@tricoteuses/assemblee 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dossiers_legislatifs.d.ts +11 -0
- package/lib/dossiers_legislatifs.js +1 -1
- package/lib/dossiers_legislatifs.mjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/lib/index.mjs +1 -1
- package/lib/loaders.d.ts +12 -0
- package/lib/loaders.js +61 -1
- package/lib/loaders.mjs +30 -1
- package/lib/scripts/retrieve_documents.js +27 -23
- package/lib/scripts/retrieve_documents.mjs +12 -7
- package/package.json +1 -1
package/lib/loaders.js
CHANGED
|
@@ -22,6 +22,13 @@ require("core-js/modules/web.dom-collections.for-each.js");
|
|
|
22
22
|
require("core-js/modules/es.object.set-prototype-of.js");
|
|
23
23
|
require("core-js/modules/es.promise.js");
|
|
24
24
|
require("core-js/modules/es.array.reverse.js");
|
|
25
|
+
require("core-js/modules/es.symbol.to-primitive.js");
|
|
26
|
+
require("core-js/modules/es.date.to-primitive.js");
|
|
27
|
+
require("core-js/modules/es.number.constructor.js");
|
|
28
|
+
require("core-js/modules/es.array.filter.js");
|
|
29
|
+
require("core-js/modules/es.object.get-own-property-descriptor.js");
|
|
30
|
+
require("core-js/modules/es.object.get-own-property-descriptors.js");
|
|
31
|
+
require("core-js/modules/es.object.define-properties.js");
|
|
25
32
|
Object.defineProperty(exports, "__esModule", {
|
|
26
33
|
value: true
|
|
27
34
|
});
|
|
@@ -42,6 +49,7 @@ exports.iterLoadAssembleeReunions = iterLoadAssembleeReunions;
|
|
|
42
49
|
exports.iterLoadAssembleeScrutins = iterLoadAssembleeScrutins;
|
|
43
50
|
exports.loadAssembleeData = loadAssembleeData;
|
|
44
51
|
exports.loadAssembleeDataFromBigFiles = loadAssembleeDataFromBigFiles;
|
|
52
|
+
exports.loadAssembleeDocumentFileInfos = loadAssembleeDocumentFileInfos;
|
|
45
53
|
exports.loadAssembleePhotosDeputes = loadAssembleePhotosDeputes;
|
|
46
54
|
exports.loadAssembleePhotosSenateurs = loadAssembleePhotosSenateurs;
|
|
47
55
|
exports.pathFromDocumentUid = pathFromDocumentUid;
|
|
@@ -82,6 +90,11 @@ var _scrutins = require("./types/scrutins");
|
|
|
82
90
|
var _questions = require("./types/questions");
|
|
83
91
|
var _debats = require("./types/debats");
|
|
84
92
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
93
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
94
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
95
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
96
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
97
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
85
98
|
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
86
99
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
87
100
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
@@ -1952,6 +1965,53 @@ function loadAssembleeDataFromBigFiles(dataDir, enabledDatasets, legislature) {
|
|
|
1952
1965
|
compteRenduByUid: compteRenduByUid
|
|
1953
1966
|
};
|
|
1954
1967
|
}
|
|
1968
|
+
|
|
1969
|
+
/**
|
|
1970
|
+
* Read a document or a division of a document from file system
|
|
1971
|
+
*
|
|
1972
|
+
* @param dataDir
|
|
1973
|
+
* @param uid UID of a document or a division
|
|
1974
|
+
* @param formats requested formats of the document in decreasing preference order
|
|
1975
|
+
*/
|
|
1976
|
+
function loadAssembleeDocumentFileInfos(dataDir, uid, formats) {
|
|
1977
|
+
var documentsDir = _path["default"].join(dataDir, "Documents");
|
|
1978
|
+
var documentDir = pathFromDocumentUid(documentsDir, uid);
|
|
1979
|
+
var indexPath = _path["default"].join(documentDir, "index.json");
|
|
1980
|
+
if (!_fsExtra["default"].pathExistsSync(indexPath)) {
|
|
1981
|
+
return undefined;
|
|
1982
|
+
}
|
|
1983
|
+
var index = _fsExtra["default"].readJsonSync(indexPath);
|
|
1984
|
+
var _iterator56 = _createForOfIteratorHelper(formats),
|
|
1985
|
+
_step56;
|
|
1986
|
+
try {
|
|
1987
|
+
for (_iterator56.s(); !(_step56 = _iterator56.n()).done;) {
|
|
1988
|
+
var _index$format;
|
|
1989
|
+
var format = _step56.value;
|
|
1990
|
+
var _iterator57 = _createForOfIteratorHelper((_index$format = index[format]) !== null && _index$format !== void 0 ? _index$format : []),
|
|
1991
|
+
_step57;
|
|
1992
|
+
try {
|
|
1993
|
+
for (_iterator57.s(); !(_step57 = _iterator57.n()).done;) {
|
|
1994
|
+
var documentFileInfos = _step57.value;
|
|
1995
|
+
if (documentFileInfos.filename === undefined) {
|
|
1996
|
+
continue;
|
|
1997
|
+
}
|
|
1998
|
+
return _objectSpread(_objectSpread({}, documentFileInfos), {}, {
|
|
1999
|
+
format: format
|
|
2000
|
+
});
|
|
2001
|
+
}
|
|
2002
|
+
} catch (err) {
|
|
2003
|
+
_iterator57.e(err);
|
|
2004
|
+
} finally {
|
|
2005
|
+
_iterator57.f();
|
|
2006
|
+
}
|
|
2007
|
+
}
|
|
2008
|
+
} catch (err) {
|
|
2009
|
+
_iterator56.e(err);
|
|
2010
|
+
} finally {
|
|
2011
|
+
_iterator56.f();
|
|
2012
|
+
}
|
|
2013
|
+
return undefined;
|
|
2014
|
+
}
|
|
1955
2015
|
function loadAssembleePhotosDeputes(dataDir, legislature) {
|
|
1956
2016
|
var _ref12 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
1957
2017
|
_ref12$log = _ref12.log,
|
|
@@ -2044,4 +2104,4 @@ function pathFromUid(dataDir, uid, dataRegexp) {
|
|
|
2044
2104
|
_fsExtra["default"].ensureDirSync(numeroMilliersDir);
|
|
2045
2105
|
return _path["default"].join(numeroMilliersDir, uid);
|
|
2046
2106
|
}
|
|
2047
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJBcnJheSIsImZyb20iLCJpc0FycmF5IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsImFsbG93QXJyYXlMaWtlIiwiaXQiLCJGIiwiX2UiLCJub3JtYWxDb21wbGV0aW9uIiwiZGlkRXJyIiwiZXJyIiwic3RlcCIsIl9lMiIsIm1pbkxlbiIsInRvU3RyaW5nIiwidGVzdCIsImxlbiIsImFycjIiLCJkb2N1bWVudFVpZFJlZ2V4IiwiZG9zc2llclVpZFJlZ2V4IiwicmV1bmlvblVpZFJlZ2V4Iiwic2NydXRpblVpZFJlZ2V4IiwiaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzIiwiZGF0YURpciIsImxlZ2lzbGF0dXJlIiwiX3JlZiIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9yZWYkbG9nIiwibG9nIiwiX2NhbGxlZSIsImFjdGV1cnNVaWQiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImRhdGFzZXQiLCJkYXRhc2V0RGlyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsImFjdGV1clNwbGl0UGF0aCIsImFjdGV1ckZpbGVuYW1lIiwiYWN0ZXVyRmlsZVBhdGgiLCJhY3RldXJKc29uIiwiYWN0ZXVyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsIlNldCIsImRhdGFzZXRzIiwiYWN0ZXVyc0V0T3JnYW5lcyIsImlnbm9yZUZvcldlYiIsIkxlZ2lzbGF0dXJlIiwiQWxsIiwicGF0aCIsImpvaW4iLCJmaWxlbmFtZSIsInJlcGxhY2UiLCJ3YWxrRGlyIiwiZW5kc1dpdGgiLCJhcHBseSIsImNvbmNhdCIsImNvbnNvbGUiLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQiLCJ0b0FjdGV1ciIsImhhcyIsInVpZCIsImFkZCIsImRhdGFzZXRMZWdpc2xhdHVyZSIsInQwIiwidDEiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX3JlZjIiLCJfcmVmMiRsb2ciLCJfY2FsbGVlMiIsImFtZW5kZW1lbnRzVWlkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiYW1lbmRlbWVudEpzb24iLCJhbWVuZGVtZW50IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYW1lbmRlbWVudHMiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIl9yZWYzIiwiX3JlZjMkbG9nIiwiX2NhbGxlZTMiLCJkb2N1bWVudHNVaWQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJkb2N1bWVudCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfcmVmNCIsIl9yZWY0JGxvZyIsIl9jYWxsZWU0IiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlc1VpZCIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCIsImRvc3NpZXJQYXJsZW1lbnRhaXJlSnNvbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIml0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyIsIl9yZWY1IiwiX3JlZjUkbG9nIiwiX2NhbGxlZTUiLCJvcmdhbmVzVWlkIiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lRmlsZVBhdGgiLCJvcmdhbmVKc29uIiwib3JnYW5lIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX3JlZjYiLCJfcmVmNiRsb2ciLCJfY2FsbGVlNiIsInJldW5pb25zVWlkIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25GaWxlUGF0aCIsInJldW5pb25Kc29uIiwicmV1bmlvbiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfcmVmNyIsIl9yZWY3JGxvZyIsIl9jYWxsZWU3Iiwic2NydXRpbnNVaWQiLCJfaXRlcmF0b3IxMyIsIl9zdGVwMTMiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJzY3J1dGluIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9yZWY4IiwiX3JlZjgkbG9nIiwiX2NhbGxlZTgiLCJxdWVzdGlvbnNVaWQiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJxdWVzdGlvblNwbGl0UGF0aCIsInF1ZXN0aW9uRmlsZW5hbWUiLCJxdWVzdGlvbkZpbGVQYXRoIiwicXVlc3Rpb25Kc29uIiwicXVlc3Rpb24iLCJfY2FsbGVlOCQiLCJfY29udGV4dDgiLCJxdWVzdGlvbnMiLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyIsIl9yZWY5IiwiX3JlZjkkbG9nIiwiX2NhbGxlZTkiLCJjb21wdGVzUmVuZHVzVWlkIiwiX2l0ZXJhdG9yMTciLCJfc3RlcDE3IiwiX2l0ZXJhdG9yMTgiLCJfc3RlcDE4IiwiY29tcHRlUmVuZHVTcGxpdFBhdGgiLCJjb21wdGVSZW5kdUZpbGVuYW1lIiwiY29tcHRlUmVuZHVGaWxlUGF0aCIsImNvbXB0ZVJlbmR1SnNvbiIsImNvbXB0ZVJlbmR1IiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImVuYWJsZWREYXRhc2V0cyIsIl9yZWYxMCIsIl9yZWYxMCRsb2ciLCJhY3RldXJCeVVpZCIsIm9yZ2FuZUJ5VWlkIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IyMiIsIl9zdGVwMjIiLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMjQiLCJwb2ludHNPZGoiLCJfc3RlcDI0IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IyNSIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAyNSIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjI2IiwiX3N0ZXAyNiIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsImRvc3NpZXJTcGxpdFBhdGgiLCJkb3NzaWVyRmlsZW5hbWUiLCJkb3NzaWVyRmlsZVBhdGgiLCJkb3NzaWVySnNvbiIsImRvc3NpZXIiLCJ0aXRyZURvc3NpZXIiLCJzZW5hdENoZW1pbiIsInRpdHJlQ2hlbWluIiwicGhvdG9CeVVpZCIsIlBob3RvcyIsImpzb25GaWxlUGF0aCIsIlNlaXplIiwiZXhpc3RzU3luYyIsImpzb24iLCJhc3NpZ24iLCJKU09OIiwicGFyc2UiLCJzY3J1dGluQnlVaWQiLCJTY3J1dGlucyIsIl9pdGVyYXRvcjMxIiwiX3N0ZXAzMSIsIl9pdGVyYXRvcjMyIiwiX3N0ZXAzMiIsInF1ZXN0aW9uQnlVaWQiLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3IzMyIsIl9zdGVwMzMiLCJfaXRlcmF0b3IzNCIsIl9zdGVwMzQiLCJjb21wdGVSZW5kdUJ5VWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IzNSIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJjb21wdGVSZW5kdVBhdGgiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIl9yZWYxMSIsIl9yZWYxMSRsb2ciLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IzOCIsImFjdGV1cnMiLCJfc3RlcDM4IiwiX2l0ZXJhdG9yMzkiLCJvcmdhbmVzIiwiX3N0ZXAzOSIsIl9pdGVyYXRvcjQwIiwiX3N0ZXA0MCIsInRvQWdlbmRhcyIsIl9pdGVyYXRvcjQxIiwicmV1bmlvbnMiLCJfc3RlcDQxIiwiX2l0ZXJhdG9yNDIiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJfc3RlcDQzIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwidG9BbWVuZGVtZW50cyIsIl9pdGVyYXRvcjQ1IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJfc3RlcDQ1IiwidGV4dGVMZWdpc2xhdGlmIiwiX2l0ZXJhdG9yNDYiLCJfc3RlcDQ2IiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwidG9Eb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwiX2l0ZXJhdG9yNDkiLCJkb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX3N0ZXA0OSIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsInRvU2NydXRpbnMiLCJfaXRlcmF0b3I1MSIsIl9zdGVwNTEiLCJfaXRlcmF0b3I1MiIsIl9zdGVwNTIiLCJ0b1F1ZXN0aW9ucyIsIl9pdGVyYXRvcjUzIiwiX3N0ZXA1MyIsIl9pdGVyYXRvcjU0IiwiX3N0ZXA1NCIsImNvbXB0ZXNSZW5kdXMiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJfaXRlcmF0b3I1NSIsIl9zdGVwNTUiLCJsb2FkQXNzZW1ibGVlUGhvdG9zRGVwdXRlcyIsIl9yZWYxMiIsIl9yZWYxMiRsb2ciLCJsb2FkQXNzZW1ibGVlUGhvdG9zU2VuYXRldXJzIiwiX3JlZjEzIiwiX3JlZjEzJGxvZyIsInBhdGhGcm9tRG9jdW1lbnRVaWQiLCJkb2N1bWVudHNEaXIiLCJtYXRjaCIsImV4ZWMiLCJhc3NlcnQiLCJub3RTdHJpY3RFcXVhbCIsImRvY3VtZW50VHlwZSIsImNoYW1icmVEaXIiLCJyZXB1YmxpcXVlRGlyIiwibGVnaXNsYXR1cmVEaXIiLCJldGF0RGlyIiwibnVtZXJvIiwic3Vic3RyIiwibnVtZXJvTWlsbGllcnNEaXIiLCJlbnN1cmVEaXJTeW5jIiwicGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZCIsImRvc3NpZXJzRGlyIiwicGF0aEZyb21SZXVuaW9uVWlkIiwicmV1bmlvbnNEaXIiLCJzZXNzaW9uRGlyIiwiaWREaXIiLCJudW1lcm9NaWxsaW9uc0RpciIsInBhdGhGcm9tU2NydXRpblVpZCIsInNjcnV0aW5zRGlyIiwicGF0aEZyb21VaWQiLCJkYXRhUmVnZXhwIl0sInNvdXJjZXMiOlsiLi4vc3JjL2xvYWRlcnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8vIExvYWQgZGF0YSBmcm9tIGZpbGVzXG5cbmltcG9ydCBhc3NlcnQgZnJvbSBcImFzc2VydFwiXG5pbXBvcnQgZnMgZnJvbSBcImZzLWV4dHJhXCJcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IHsgRW5hYmxlZERhdGFzZXRzIH0gZnJvbSBcIi4vZGF0YXNldHNcIlxuaW1wb3J0IHsgZGF0YXNldHMsIEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmV4cG9ydCB7IHdhbGtEaXIgfSBmcm9tIFwiLi9maWxlX3N5c3RlbXNcIlxuaW1wb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQge1xuICBBY3RldXIsXG4gIENvbnZlcnQgYXMgQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQsXG4gIE9yZ2FuZSxcbiAgUGhvdG8sXG59IGZyb20gXCIuL3R5cGVzL2FjdGV1cnNfZXRfb3JnYW5lc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIEFnZW5kYXNDb252ZXJ0LCBSZXVuaW9uIH0gZnJvbSBcIi4vdHlwZXMvYWdlbmRhc1wiXG5pbXBvcnQgeyBBbWVuZGVtZW50LCBDb252ZXJ0IGFzIEFtZW5kZW1lbnRzQ29udmVydCB9IGZyb20gXCIuL3R5cGVzL2FtZW5kZW1lbnRzXCJcbmltcG9ydCB7XG4gIENvbnZlcnQgYXMgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQsXG4gIERvY3VtZW50LFxuICBEb3NzaWVyUGFybGVtZW50YWlyZSxcbn0gZnJvbSBcIi4vdHlwZXMvZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuaW1wb3J0IHsgTGVnaXNsYXR1cmUgfSBmcm9tIFwiLi90eXBlcy9sZWdpc2xhdHVyZXNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBTY3J1dGluc0NvbnZlcnQsIFNjcnV0aW4gfSBmcm9tIFwiLi90eXBlcy9zY3J1dGluc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFF1ZXN0aW9uc0NvbnZlcnQsIFF1ZXN0aW9uIH0gZnJvbSBcIi4vdHlwZXMvcXVlc3Rpb25zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQ29tcHRlc1JlbmR1c0NvbnZlcnQsIENvbXB0ZVJlbmR1IH0gZnJvbSBcIi4vdHlwZXMvZGViYXRzXCJcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcbiAgcmVhZG9ubHkgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH1cbiAgcmVhZG9ubHkgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfVxuICByZWFkb25seSBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfVxuICByZWFkb25seSBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfVxuICByZWFkb25seSBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbiAgcmVhZG9ubHkgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfVxuICByZWFkb25seSByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfVxuICByZWFkb25seSBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9XG4gIHJlYWRvbmx5IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfVxuICByZWFkb25seSBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH1cbn1cblxuY29uc3QgZG9jdW1lbnRVaWRSZWdleCA9XG4gIC9eKEFDSU58QUxDTnxBVkNFfEFWSVN8REVDTHxFVERJfExFVFR8TUVTU3xQSU9OfFBOUkV8UFJKTHxSQVBQfFJJTkZ8UklPTikoQU58U04pKFJcXGQrKVtMU10oXFxkKykoQnxCVEF8QlRDfFRBUCkoXFxkKykoLS4qKT8kL1xuY29uc3QgZG9zc2llclVpZFJlZ2V4ID0gL15ETChSXFxkKykoTFxcZCspTihcXGQrKSQvXG5jb25zdCByZXVuaW9uVWlkUmVnZXggPVxuICAvXlJVKEFOfENHfFNOKShSXFxkKykoTFxcZCspKFtBU11cXGR7NH0pKElEQ3xJREZMP3xJRFMpKFxcZCspJC9cbmNvbnN0IHNjcnV0aW5VaWRSZWdleCA9IC9eVlRBTihSXFxkKykoTFxcZCspVihcXGQrKSQvXG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYWN0ZXVyOiBBY3RldXI7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGFjdGV1cnNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGFjdGV1clNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImFjdGV1cnNcIl0pKSB7XG4gICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghYWN0ZXVyRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgYWN0ZXVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYWN0ZXVyU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBhY3RldXJKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYWN0ZXVyRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGFjdGV1ciA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyKGFjdGV1ckpzb24pXG4gICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgaWYgKGFjdGV1cnNVaWQuaGFzKGFjdGV1ci51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhY3RldXJzVWlkLmFkZChhY3RldXIudWlkKVxuICAgICAgeWllbGQgeyBhY3RldXIsIGRhdGFzZXRMZWdpc2xhdHVyZTogZGF0YXNldC5sZWdpc2xhdHVyZSB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBbWVuZGVtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQ7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGFtZW5kZW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgYW1lbmRlbWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hbWVuZGVtZW50U3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgaWYgKGFtZW5kZW1lbnRzVWlkLmhhcyhhbWVuZGVtZW50LnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFtZW5kZW1lbnRzVWlkLmFkZChhbWVuZGVtZW50LnVpZClcbiAgICAgIHlpZWxkIHsgYW1lbmRlbWVudCwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgZG9jdW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFkb2N1bWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9jdW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgIGlmIChkb2N1bWVudHNVaWQuaGFzKGRvY3VtZW50LnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50c1VpZC5hZGQoZG9jdW1lbnQudWlkKVxuICAgICAgeWllbGQgeyBkb2N1bWVudCwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGRvc3NpZXJzUGFybGVtZW50YWlyZXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1xuICAgICAgXCJkb3NzaWVyc1wiLFxuICAgIF0pKSB7XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lID1cbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhc2V0RGlyLFxuICAgICAgICAuLi5kb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUpzb24sXG4gICAgICAgIClcbiAgICAgIGlmIChkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmhhcyhkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmFkZChkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpXG4gICAgICB5aWVsZCB7IGRvc3NpZXJQYXJsZW1lbnRhaXJlLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IG9yZ2FuZTogT3JnYW5lOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCBvcmdhbmVzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgY29uc3Qgb3JnYW5lRmlsZW5hbWUgPSBvcmdhbmVTcGxpdFBhdGhbb3JnYW5lU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIW9yZ2FuZUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yZ2FuZUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLm9yZ2FuZVNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtvcmdhbmVGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pXG4gICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgIGlmIChvcmdhbmVzVWlkLmhhcyhvcmdhbmUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgb3JnYW5lc1VpZC5hZGQob3JnYW5lLnVpZClcbiAgICAgIHlpZWxkIHsgb3JnYW5lLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUmV1bmlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyByZXVuaW9uOiBSZXVuaW9uOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCByZXVuaW9uc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgcmV1bmlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghcmV1bmlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJldW5pb25GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5yZXVuaW9uU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgcmV1bmlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyZXVuaW9uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHJldW5pb24gPSBBZ2VuZGFzQ29udmVydC50b1JldW5pb24ocmV1bmlvbkpzb24pXG4gICAgICBpZiAocmV1bmlvbnNVaWQuaGFzKHJldW5pb24udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV1bmlvbnNVaWQuYWRkKHJldW5pb24udWlkKVxuICAgICAgeWllbGQgeyByZXVuaW9uLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBzY3J1dGluOiBTY3J1dGluOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCBzY3J1dGluc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IHNjcnV0aW5TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBzY3J1dGluRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uc2NydXRpblNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcnV0aW5Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoc2NydXRpbkZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pXG4gICAgICBjb25zdCBzY3J1dGluID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbihzY3J1dGluSnNvbilcbiAgICAgIGlmIChzY3J1dGluc1VpZC5oYXMoc2NydXRpbi51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBzY3J1dGluc1VpZC5hZGQoc2NydXRpbi51aWQpXG4gICAgICB5aWVsZCB7IHNjcnV0aW4sIGRhdGFzZXRMZWdpc2xhdHVyZTogZGF0YXNldC5sZWdpc2xhdHVyZSB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVRdWVzdGlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBxdWVzdGlvbjogUXVlc3Rpb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHF1ZXN0aW9uc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBxdWVzdGlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghcXVlc3Rpb25GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBxdWVzdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnF1ZXN0aW9uU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXN0aW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHF1ZXN0aW9uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uKHF1ZXN0aW9uSnNvbilcbiAgICAgIGlmIChxdWVzdGlvbnNVaWQuaGFzKHF1ZXN0aW9uLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHF1ZXN0aW9uc1VpZC5hZGQocXVlc3Rpb24udWlkKVxuICAgICAgeWllbGQgeyBxdWVzdGlvbiwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGNvbXB0ZXNSZW5kdXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBjb21wdGVSZW5kdVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVuYW1lID1cbiAgICAgICAgY29tcHRlUmVuZHVTcGxpdFBhdGhbY29tcHRlUmVuZHVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghY29tcHRlUmVuZHVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmNvbXB0ZVJlbmR1U3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2NvbXB0ZVJlbmR1RmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGNvbXB0ZVJlbmR1RmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICBpZiAoY29tcHRlc1JlbmR1c1VpZC5oYXMoY29tcHRlUmVuZHUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29tcHRlc1JlbmR1c1VpZC5hZGQoY29tcHRlUmVuZHUudWlkKVxuICAgICAgeWllbGQgeyBjb21wdGVSZW5kdSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIHNwbGl0IGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IFVzZSBpdGVyTG9hZC4uLiBpdGVyYXRvcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YShcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhY3RldXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJhY3RldXJzXCJdKSkge1xuICAgICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFjdGV1ckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke29yZ2FuZUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmV1bmlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCByZXVuaW9uID0gQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25Kc29uKVxuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYW1lbmRlbWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlbmFtZSA9IGRvY3VtZW50U3BsaXRQYXRoW2RvY3VtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9jdW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvY3VtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb2N1bWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb3NzaWVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVuYW1lID0gZG9zc2llclNwbGl0UGF0aFtkb3NzaWVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9zc2llckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb3NzaWVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvc3NpZXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9zc2llciA9XG4gICAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShkb3NzaWVySnNvbilcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNjcnV0aW5GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4oc2NydXRpbkpzb24pXG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhxdWVzdGlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbihxdWVzdGlvbkpzb24pXG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlbmFtZSA9IGNvbXB0ZVJlbmR1UGF0aFtjb21wdGVSZW5kdVBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtjb21wdGVSZW5kdUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHUgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1KGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gYmlnIG1vbm9seXRpYyBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBBc3NlbWJsw6llIG5hdGlvbmFsZSBvcGVuIGRhdGEgbm8gbW9yZSB1c2VzIG1vbm9seXRpYyBmaWxlcy5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1ciBvZiBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBhY3RldXJzRXRPcmdhbmVzLm9yZ2FuZXMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFnZW5kYXMgPSBBZ2VuZGFzQ29udmVydC50b0FnZW5kYXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50cyhqc29uKVxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50IG9mIHRleHRlTGVnaXNsYXRpZi5hbWVuZGVtZW50cykge1xuICAgICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnMgPVxuICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnQgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXIgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyc1BhcmxlbWVudGFpcmVzKSB7XG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAgY29uc3QgcGhvdG9CeVVpZCA9IHt9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuU2VpemUgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHNjcnV0aW5zID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbnMoanNvbilcbiAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBzY3J1dGlucy5zY3J1dGlucykge1xuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZXNSZW5kdXMgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZXNSZW5kdXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHUgb2YgY29tcHRlc1JlbmR1cy5jb21wdGVzUmVuZHVzKSB7XG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5TZWl6ZSA6IGxlZ2lzbGF0dXJlXG4gICAgfWAsXG4gICAgXCJkZXB1dGVzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudFVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIGRvY3VtZW50IFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBkb2N1bWVudFR5cGUgPSBwYXRoLmpvaW4oZG9jdW1lbnRzRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oZG9jdW1lbnRUeXBlLCBtYXRjaCFbMl0pXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oY2hhbWJyZURpciwgbWF0Y2ghWzNdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbNF0pXG4gIGNvbnN0IGV0YXREaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG1hdGNoIVs1XSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbNl1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4oZXRhdERpciwgbnVtZXJvLnN1YnN0cigwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZChcbiAgZG9zc2llcnNEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IGRvc3NpZXJVaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBkb3NzaWVyIHBhcmxlbWVudGFpcmUgVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oZG9zc2llcnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzJdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIG1hdGNoIVszXVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbnVtZXJvLnN1YnN0cigwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21SZXVuaW9uVWlkKHJldW5pb25zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSByZXVuaW9uVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgcmV1bmlvbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgY2hhbWJyZURpciA9IHBhdGguam9pbihyZXVuaW9uc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGNoYW1icmVEaXIsIG1hdGNoIVsyXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzNdKVxuICBjb25zdCBzZXNzaW9uRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBtYXRjaCFbNF0pXG4gIGNvbnN0IGlkRGlyID0gcGF0aC5qb2luKHNlc3Npb25EaXIsIG1hdGNoIVs1XSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwMDAwXCIgKyBtYXRjaCFbNl1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gOSlcbiAgY29uc3QgbnVtZXJvTWlsbGlvbnNEaXIgPSBwYXRoLmpvaW4oaWREaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKG51bWVyb01pbGxpb25zRGlyLCBudW1lcm8uc3Vic3RyKDMsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVNjcnV0aW5VaWQoc2NydXRpbnNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHNjcnV0aW5VaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBzY3J1dGluIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKHNjcnV0aW5zRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuLy8gR2V0IHN0YW5kYXJkIHBhdGggZm9yIG9iamVjdCB3aXRoIHVpZCA6IHJlcHVibGlxdWUgPiBsZWdpc2xhdHVyZSA+IGdyb3VwIG9iamVjdHMgYnkgdGhvdXNhbmRzXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21VaWQoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4gIGRhdGFSZWdleHA6IFJlZ0V4cCxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gZGF0YVJlZ2V4cC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBvYmplY3Qgd2l0aCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihkYXRhRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUVBLElBQUFJLGFBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLG1CQUFBLEdBQUFMLE9BQUE7QUFNQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxZQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxxQkFBQSxHQUFBUixPQUFBO0FBS0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsVUFBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQTZFLFNBQUFELHVCQUFBYyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFBQSxTQUFBRSxvQkFBQSxrQkF6QjdFLHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBQyxDQUFBLFNBQUFDLENBQUEsRUFBQUQsQ0FBQSxPQUFBRSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsU0FBQSxFQUFB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
|
|
2107
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXNzZXJ0IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZnNFeHRyYSIsIl9wYXRoIiwiX2RhdGFzZXRzIiwiX2ZpbGVfc3lzdGVtcyIsIl9hY3RldXJzX2V0X29yZ2FuZXMiLCJfYWdlbmRhcyIsIl9hbWVuZGVtZW50cyIsIl9kb3NzaWVyc19sZWdpc2xhdGlmcyIsIl9sZWdpc2xhdHVyZXMiLCJfc2NydXRpbnMiLCJfcXVlc3Rpb25zIiwiX2RlYmF0cyIsIm9iaiIsIl9fZXNNb2R1bGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiX3R5cGVvZiIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwiaSIsImEiLCJpdGVyYXRvciIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiX2ludm9rZSIsIkFzeW5jSXRlcmF0b3IiLCJpbnZva2UiLCJyZXNvbHZlIiwiX19hd2FpdCIsInRoZW4iLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsIkVycm9yIiwiZG9uZSIsIm1ldGhvZCIsImRlbGVnYXRlIiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJyZXZlcnNlIiwicG9wIiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJ2YWwiLCJoYW5kbGUiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsImRlbGVnYXRlWWllbGQiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiaXRlciIsIkFycmF5IiwiZnJvbSIsImlzQXJyYXkiLCJfYXJyYXlMaWtlVG9BcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJlcnIiLCJzdGVwIiwiX2UyIiwibWluTGVuIiwidG9TdHJpbmciLCJ0ZXN0IiwibGVuIiwiYXJyMiIsImRvY3VtZW50VWlkUmVnZXgiLCJkb3NzaWVyVWlkUmVnZXgiLCJyZXVuaW9uVWlkUmVnZXgiLCJzY3J1dGluVWlkUmVnZXgiLCJpdGVyTG9hZEFzc2VtYmxlZUFjdGV1cnMiLCJkYXRhRGlyIiwibGVnaXNsYXR1cmUiLCJfcmVmIiwiX3JlZiRsb2ciLCJsb2ciLCJfY2FsbGVlIiwiYWN0ZXVyc1VpZCIsIl9pdGVyYXRvciIsIl9zdGVwIiwiZGF0YXNldCIsImRhdGFzZXREaXIiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiYWN0ZXVyU3BsaXRQYXRoIiwiYWN0ZXVyRmlsZW5hbWUiLCJhY3RldXJGaWxlUGF0aCIsImFjdGV1ckpzb24iLCJhY3RldXIiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiU2V0IiwiZGF0YXNldHMiLCJhY3RldXJzRXRPcmdhbmVzIiwiaWdub3JlRm9yV2ViIiwiTGVnaXNsYXR1cmUiLCJBbGwiLCJwYXRoIiwiam9pbiIsImZpbGVuYW1lIiwicmVwbGFjZSIsIndhbGtEaXIiLCJlbmRzV2l0aCIsImNvbmNhdCIsImNvbnNvbGUiLCJmcyIsInJlYWRGaWxlU3luYyIsImVuY29kaW5nIiwiQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQiLCJ0b0FjdGV1ciIsImhhcyIsInVpZCIsImFkZCIsImRhdGFzZXRMZWdpc2xhdHVyZSIsInQwIiwidDEiLCJpdGVyTG9hZEFzc2VtYmxlZUFtZW5kZW1lbnRzIiwiX3JlZjIiLCJfcmVmMiRsb2ciLCJfY2FsbGVlMiIsImFtZW5kZW1lbnRzVWlkIiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJhbWVuZGVtZW50U3BsaXRQYXRoIiwiYW1lbmRlbWVudEZpbGVuYW1lIiwiYW1lbmRlbWVudEZpbGVQYXRoIiwiYW1lbmRlbWVudEpzb24iLCJhbWVuZGVtZW50IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiYW1lbmRlbWVudHMiLCJBbWVuZGVtZW50c0NvbnZlcnQiLCJ0b0FtZW5kZW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyIsIl9yZWYzIiwiX3JlZjMkbG9nIiwiX2NhbGxlZTMiLCJkb2N1bWVudHNVaWQiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwiX2l0ZXJhdG9yNiIsIl9zdGVwNiIsImRvY3VtZW50U3BsaXRQYXRoIiwiZG9jdW1lbnRGaWxlbmFtZSIsImRvY3VtZW50RmlsZVBhdGgiLCJkb2N1bWVudEpzb24iLCJkb2N1bWVudCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImRvc3NpZXJzTGVnaXNsYXRpZnMiLCJEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCIsInRvRG9jdW1lbnQiLCJpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMiLCJfcmVmNCIsIl9yZWY0JGxvZyIsIl9jYWxsZWU0IiwiZG9zc2llcnNQYXJsZW1lbnRhaXJlc1VpZCIsIl9pdGVyYXRvcjciLCJfc3RlcDciLCJfaXRlcmF0b3I4IiwiX3N0ZXA4IiwiZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgiLCJkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lIiwiZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCIsImRvc3NpZXJQYXJsZW1lbnRhaXJlSnNvbiIsImRvc3NpZXJQYXJsZW1lbnRhaXJlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0IiwidG9Eb3NzaWVyUGFybGVtZW50YWlyZSIsIml0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyIsIl9yZWY1IiwiX3JlZjUkbG9nIiwiX2NhbGxlZTUiLCJvcmdhbmVzVWlkIiwiX2l0ZXJhdG9yOSIsIl9zdGVwOSIsIl9pdGVyYXRvcjEwIiwiX3N0ZXAxMCIsIm9yZ2FuZVNwbGl0UGF0aCIsIm9yZ2FuZUZpbGVuYW1lIiwib3JnYW5lRmlsZVBhdGgiLCJvcmdhbmVKc29uIiwib3JnYW5lIiwiX2NhbGxlZTUkIiwiX2NvbnRleHQ1IiwidG9PcmdhbmUiLCJpdGVyTG9hZEFzc2VtYmxlZVJldW5pb25zIiwiX3JlZjYiLCJfcmVmNiRsb2ciLCJfY2FsbGVlNiIsInJldW5pb25zVWlkIiwiX2l0ZXJhdG9yMTEiLCJfc3RlcDExIiwiX2l0ZXJhdG9yMTIiLCJfc3RlcDEyIiwicmV1bmlvblNwbGl0UGF0aCIsInJldW5pb25GaWxlbmFtZSIsInJldW5pb25GaWxlUGF0aCIsInJldW5pb25Kc29uIiwicmV1bmlvbiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFnZW5kYXMiLCJBZ2VuZGFzQ29udmVydCIsInRvUmV1bmlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMiLCJfcmVmNyIsIl9yZWY3JGxvZyIsIl9jYWxsZWU3Iiwic2NydXRpbnNVaWQiLCJfaXRlcmF0b3IxMyIsIl9zdGVwMTMiLCJfaXRlcmF0b3IxNCIsIl9zdGVwMTQiLCJzY3J1dGluU3BsaXRQYXRoIiwic2NydXRpbkZpbGVuYW1lIiwic2NydXRpbkZpbGVQYXRoIiwic2NydXRpbkpzb24iLCJzY3J1dGluIiwiX2NhbGxlZTckIiwiX2NvbnRleHQ3Iiwic2NydXRpbnMiLCJTY3J1dGluc0NvbnZlcnQiLCJ0b1NjcnV0aW4iLCJpdGVyTG9hZEFzc2VtYmxlZVF1ZXN0aW9ucyIsIl9yZWY4IiwiX3JlZjgkbG9nIiwiX2NhbGxlZTgiLCJxdWVzdGlvbnNVaWQiLCJfaXRlcmF0b3IxNSIsIl9zdGVwMTUiLCJfaXRlcmF0b3IxNiIsIl9zdGVwMTYiLCJxdWVzdGlvblNwbGl0UGF0aCIsInF1ZXN0aW9uRmlsZW5hbWUiLCJxdWVzdGlvbkZpbGVQYXRoIiwicXVlc3Rpb25Kc29uIiwicXVlc3Rpb24iLCJfY2FsbGVlOCQiLCJfY29udGV4dDgiLCJxdWVzdGlvbnMiLCJRdWVzdGlvbnNDb252ZXJ0IiwidG9RdWVzdGlvbiIsIml0ZXJMb2FkQXNzZW1ibGVlQ29tcHRlc1JlbmR1cyIsIl9yZWY5IiwiX3JlZjkkbG9nIiwiX2NhbGxlZTkiLCJjb21wdGVzUmVuZHVzVWlkIiwiX2l0ZXJhdG9yMTciLCJfc3RlcDE3IiwiX2l0ZXJhdG9yMTgiLCJfc3RlcDE4IiwiY29tcHRlUmVuZHVTcGxpdFBhdGgiLCJjb21wdGVSZW5kdUZpbGVuYW1lIiwiY29tcHRlUmVuZHVGaWxlUGF0aCIsImNvbXB0ZVJlbmR1SnNvbiIsImNvbXB0ZVJlbmR1IiwiX2NhbGxlZTkkIiwiX2NvbnRleHQ5IiwiY29tcHRlc1JlbmR1c1NlYW5jZXMiLCJDb21wdGVzUmVuZHVzQ29udmVydCIsInRvQ29tcHRlUmVuZHUiLCJsb2FkQXNzZW1ibGVlRGF0YSIsImVuYWJsZWREYXRhc2V0cyIsIl9yZWYxMCIsIl9yZWYxMCRsb2ciLCJhY3RldXJCeVVpZCIsIm9yZ2FuZUJ5VWlkIiwiRW5hYmxlZERhdGFzZXRzIiwiQWN0ZXVyc0V0T3JnYW5lcyIsIl9pdGVyYXRvcjE5IiwiX3N0ZXAxOSIsIl9pdGVyYXRvcjIwIiwiX3N0ZXAyMCIsIl9pdGVyYXRvcjIxIiwiX3N0ZXAyMSIsInJldW5pb25CeVVpZCIsInJldW5pb25zQnlEYXkiLCJyZXVuaW9uc0J5RG9zc2llclVpZCIsIkFnZW5kYXMiLCJfaXRlcmF0b3IyMiIsIl9zdGVwMjIiLCJfaXRlcmF0b3IyMyIsIl9zdGVwMjMiLCJkYXkiLCJ0aW1lc3RhbXBEZWJ1dCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyZXVuaW9uc0F0RGF5Iiwib2RqIiwiX2l0ZXJhdG9yMjQiLCJwb2ludHNPZGoiLCJfc3RlcDI0IiwicG9pbnRPZGoiLCJfaXRlcmF0b3IyNSIsImRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIiwiX3N0ZXAyNSIsImRvc3NpZXJMZWdpc2xhdGlmUmVmIiwicmV1bmlvbnNBdERvc3NpZXJVaWQiLCJhbWVuZGVtZW50QnlVaWQiLCJBbWVuZGVtZW50cyIsIl9pdGVyYXRvcjI2IiwiX3N0ZXAyNiIsIl9pdGVyYXRvcjI3IiwiX3N0ZXAyNyIsImRvY3VtZW50QnlVaWQiLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4iLCJkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkIiwiRG9zc2llcnNMZWdpc2xhdGlmcyIsIl9pdGVyYXRvcjI4IiwiX3N0ZXAyOCIsIl9pdGVyYXRvcjI5IiwiX3N0ZXAyOSIsIl9pdGVyYXRvcjMwIiwiX3N0ZXAzMCIsImRvc3NpZXJTcGxpdFBhdGgiLCJkb3NzaWVyRmlsZW5hbWUiLCJkb3NzaWVyRmlsZVBhdGgiLCJkb3NzaWVySnNvbiIsImRvc3NpZXIiLCJ0aXRyZURvc3NpZXIiLCJzZW5hdENoZW1pbiIsInRpdHJlQ2hlbWluIiwicGhvdG9CeVVpZCIsIlBob3RvcyIsImpzb25GaWxlUGF0aCIsIlNlaXplIiwiZXhpc3RzU3luYyIsImpzb24iLCJhc3NpZ24iLCJKU09OIiwicGFyc2UiLCJzY3J1dGluQnlVaWQiLCJTY3J1dGlucyIsIl9pdGVyYXRvcjMxIiwiX3N0ZXAzMSIsIl9pdGVyYXRvcjMyIiwiX3N0ZXAzMiIsInF1ZXN0aW9uQnlVaWQiLCJRdWVzdGlvbnMiLCJfaXRlcmF0b3IzMyIsIl9zdGVwMzMiLCJfaXRlcmF0b3IzNCIsIl9zdGVwMzQiLCJjb21wdGVSZW5kdUJ5VWlkIiwiQ29tcHRlc1JlbmR1c1NlYW5jZXMiLCJfaXRlcmF0b3IzNSIsIl9zdGVwMzUiLCJfaXRlcmF0b3IzNiIsIl9zdGVwMzYiLCJjb21wdGVSZW5kdVBhdGgiLCJsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyIsIl9yZWYxMSIsIl9yZWYxMSRsb2ciLCJfaXRlcmF0b3IzNyIsIl9zdGVwMzciLCJ0b0FjdGV1cnNFdE9yZ2FuZXMiLCJfaXRlcmF0b3IzOCIsImFjdGV1cnMiLCJfc3RlcDM4IiwiX2l0ZXJhdG9yMzkiLCJvcmdhbmVzIiwiX3N0ZXAzOSIsIl9pdGVyYXRvcjQwIiwiX3N0ZXA0MCIsInRvQWdlbmRhcyIsIl9pdGVyYXRvcjQxIiwicmV1bmlvbnMiLCJfc3RlcDQxIiwiX2l0ZXJhdG9yNDIiLCJfc3RlcDQyIiwiX2l0ZXJhdG9yNDMiLCJfc3RlcDQzIiwiX2l0ZXJhdG9yNDQiLCJfc3RlcDQ0IiwidG9BbWVuZGVtZW50cyIsIl9pdGVyYXRvcjQ1IiwidGV4dGVzTGVnaXNsYXRpZnMiLCJfc3RlcDQ1IiwidGV4dGVMZWdpc2xhdGlmIiwiX2l0ZXJhdG9yNDYiLCJfc3RlcDQ2IiwiX2l0ZXJhdG9yNDciLCJfc3RlcDQ3IiwidG9Eb3NzaWVyc0xlZ2lzbGF0aWZzIiwiX2l0ZXJhdG9yNDgiLCJfc3RlcDQ4IiwiX2l0ZXJhdG9yNDkiLCJkb3NzaWVyc1BhcmxlbWVudGFpcmVzIiwiX3N0ZXA0OSIsIl9pdGVyYXRvcjUwIiwiX3N0ZXA1MCIsInRvU2NydXRpbnMiLCJfaXRlcmF0b3I1MSIsIl9zdGVwNTEiLCJfaXRlcmF0b3I1MiIsIl9zdGVwNTIiLCJ0b1F1ZXN0aW9ucyIsIl9pdGVyYXRvcjUzIiwiX3N0ZXA1MyIsIl9pdGVyYXRvcjU0IiwiX3N0ZXA1NCIsImNvbXB0ZXNSZW5kdXMiLCJ0b0NvbXB0ZXNSZW5kdXMiLCJfaXRlcmF0b3I1NSIsIl9zdGVwNTUiLCJsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlSW5mb3MiLCJmb3JtYXRzIiwiZG9jdW1lbnRzRGlyIiwiZG9jdW1lbnREaXIiLCJwYXRoRnJvbURvY3VtZW50VWlkIiwiaW5kZXhQYXRoIiwicGF0aEV4aXN0c1N5bmMiLCJpbmRleCIsInJlYWRKc29uU3luYyIsIl9pdGVyYXRvcjU2IiwiX3N0ZXA1NiIsIl9pbmRleCRmb3JtYXQiLCJmb3JtYXQiLCJfaXRlcmF0b3I1NyIsIl9zdGVwNTciLCJkb2N1bWVudEZpbGVJbmZvcyIsImxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzIiwiX3JlZjEyIiwiX3JlZjEyJGxvZyIsImxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMiLCJfcmVmMTMiLCJfcmVmMTMkbG9nIiwibWF0Y2giLCJleGVjIiwiYXNzZXJ0Iiwibm90U3RyaWN0RXF1YWwiLCJkb2N1bWVudFR5cGUiLCJjaGFtYnJlRGlyIiwicmVwdWJsaXF1ZURpciIsImxlZ2lzbGF0dXJlRGlyIiwiZXRhdERpciIsIm51bWVybyIsInN1YnN0ciIsIm51bWVyb01pbGxpZXJzRGlyIiwiZW5zdXJlRGlyU3luYyIsInBhdGhGcm9tRG9zc2llclBhcmxlbWVudGFpcmVVaWQiLCJkb3NzaWVyc0RpciIsInBhdGhGcm9tUmV1bmlvblVpZCIsInJldW5pb25zRGlyIiwic2Vzc2lvbkRpciIsImlkRGlyIiwibnVtZXJvTWlsbGlvbnNEaXIiLCJwYXRoRnJvbVNjcnV0aW5VaWQiLCJzY3J1dGluc0RpciIsInBhdGhGcm9tVWlkIiwiZGF0YVJlZ2V4cCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9sb2FkZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vLyBMb2FkIGRhdGEgZnJvbSBmaWxlc1xuXG5pbXBvcnQgYXNzZXJ0IGZyb20gXCJhc3NlcnRcIlxuaW1wb3J0IGZzIGZyb20gXCJmcy1leHRyYVwiXG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiXG5cbmV4cG9ydCB7IEVuYWJsZWREYXRhc2V0cyB9IGZyb20gXCIuL2RhdGFzZXRzXCJcbmltcG9ydCB7IGRhdGFzZXRzLCBFbmFibGVkRGF0YXNldHMgfSBmcm9tIFwiLi9kYXRhc2V0c1wiXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50RmlsZUluZm9zIH0gZnJvbSBcIi4vZG9zc2llcnNfbGVnaXNsYXRpZnNcIlxuZXhwb3J0IHsgd2Fsa0RpciB9IGZyb20gXCIuL2ZpbGVfc3lzdGVtc1wiXG5pbXBvcnQgeyB3YWxrRGlyIH0gZnJvbSBcIi4vZmlsZV9zeXN0ZW1zXCJcbmltcG9ydCB7XG4gIEFjdGV1cixcbiAgQ29udmVydCBhcyBBY3RldXJzRXRPcmdhbmVzQ29udmVydCxcbiAgT3JnYW5lLFxuICBQaG90byxcbn0gZnJvbSBcIi4vdHlwZXMvYWN0ZXVyc19ldF9vcmdhbmVzXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgQWdlbmRhc0NvbnZlcnQsIFJldW5pb24gfSBmcm9tIFwiLi90eXBlcy9hZ2VuZGFzXCJcbmltcG9ydCB7IEFtZW5kZW1lbnQsIENvbnZlcnQgYXMgQW1lbmRlbWVudHNDb252ZXJ0IH0gZnJvbSBcIi4vdHlwZXMvYW1lbmRlbWVudHNcIlxuaW1wb3J0IHtcbiAgQ29udmVydCBhcyBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydCxcbiAgRG9jdW1lbnQsXG4gIERvc3NpZXJQYXJsZW1lbnRhaXJlLFxufSBmcm9tIFwiLi90eXBlcy9kb3NzaWVyc19sZWdpc2xhdGlmc1wiXG5pbXBvcnQgeyBMZWdpc2xhdHVyZSB9IGZyb20gXCIuL3R5cGVzL2xlZ2lzbGF0dXJlc1wiXG5pbXBvcnQgeyBDb252ZXJ0IGFzIFNjcnV0aW5zQ29udmVydCwgU2NydXRpbiB9IGZyb20gXCIuL3R5cGVzL3NjcnV0aW5zXCJcbmltcG9ydCB7IENvbnZlcnQgYXMgUXVlc3Rpb25zQ29udmVydCwgUXVlc3Rpb24gfSBmcm9tIFwiLi90eXBlcy9xdWVzdGlvbnNcIlxuaW1wb3J0IHsgQ29udmVydCBhcyBDb21wdGVzUmVuZHVzQ29udmVydCwgQ29tcHRlUmVuZHUgfSBmcm9tIFwiLi90eXBlcy9kZWJhdHNcIlxuaW1wb3J0IHsgRG9jdW1lbnRVcmxGb3JtYXQgfSBmcm9tIFwiLi91cmxzXCJcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhIHtcbiAgcmVhZG9ubHkgYWN0ZXVyQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQWN0ZXVyIH1cbiAgcmVhZG9ubHkgYW1lbmRlbWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IEFtZW5kZW1lbnQgfVxuICByZWFkb25seSBkb2N1bWVudEJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvY3VtZW50IH1cbiAgcmVhZG9ubHkgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfVxuICByZWFkb25seSBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9XG4gIHJlYWRvbmx5IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmUgfVxuICByZWFkb25seSBvcmdhbmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBPcmdhbmUgfVxuICByZWFkb25seSBwaG90b0J5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbiAgcmVhZG9ubHkgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfVxuICByZWFkb25seSByZXVuaW9uc0J5RGF5OiB7IFtkYXk6IHN0cmluZ106IFJldW5pb25bXSB9XG4gIHJlYWRvbmx5IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfVxuICByZWFkb25seSBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9XG4gIHJlYWRvbmx5IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfVxuICByZWFkb25seSBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH1cbn1cblxuY29uc3QgZG9jdW1lbnRVaWRSZWdleCA9XG4gIC9eKEFDSU58QUxDTnxBVkNFfEFWSVN8REVDTHxFVERJfExFVFR8TUVTU3xQSU9OfFBOUkV8UFJKTHxSQVBQfFJJTkZ8UklPTikoQU58U04pKFJcXGQrKVtMU10oXFxkKykoQnxCVEF8QlRDfFRBUCkoXFxkKykoLS4qKT8kL1xuY29uc3QgZG9zc2llclVpZFJlZ2V4ID0gL15ETChSXFxkKykoTFxcZCspTihcXGQrKSQvXG5jb25zdCByZXVuaW9uVWlkUmVnZXggPVxuICAvXlJVKEFOfENHfFNOKShSXFxkKykoTFxcZCspKFtBU11cXGR7NH0pKElEQ3xJREZMP3xJRFMpKFxcZCspJC9cbmNvbnN0IHNjcnV0aW5VaWRSZWdleCA9IC9eVlRBTihSXFxkKykoTFxcZCspVihcXGQrKSQvXG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBY3RldXJzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiBHZW5lcmF0b3I8XG4gIHsgYWN0ZXVyOiBBY3RldXI7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGFjdGV1cnNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWN0ZXVyc0V0T3JnYW5lcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGFjdGV1clNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImFjdGV1cnNcIl0pKSB7XG4gICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghYWN0ZXVyRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgYWN0ZXVyRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYWN0ZXVyU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBhY3RldXJKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoYWN0ZXVyRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGFjdGV1ciA9IEFjdGV1cnNFdE9yZ2FuZXNDb252ZXJ0LnRvQWN0ZXVyKGFjdGV1ckpzb24pXG4gICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgaWYgKGFjdGV1cnNVaWQuaGFzKGFjdGV1ci51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBhY3RldXJzVWlkLmFkZChhY3RldXIudWlkKVxuICAgICAgeWllbGQgeyBhY3RldXIsIGRhdGFzZXRMZWdpc2xhdHVyZTogZGF0YXNldC5sZWdpc2xhdHVyZSB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVBbWVuZGVtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGFtZW5kZW1lbnQ6IEFtZW5kZW1lbnQ7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGFtZW5kZW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgYW1lbmRlbWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICBhbWVuZGVtZW50U3BsaXRQYXRoW2FtZW5kZW1lbnRTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghYW1lbmRlbWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFtZW5kZW1lbnRGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hbWVuZGVtZW50U3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FtZW5kZW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgaWYgKGFtZW5kZW1lbnRzVWlkLmhhcyhhbWVuZGVtZW50LnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGFtZW5kZW1lbnRzVWlkLmFkZChhbWVuZGVtZW50LnVpZClcbiAgICAgIHlpZWxkIHsgYW1lbmRlbWVudCwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvY3VtZW50cyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IGRvY3VtZW50OiBEb2N1bWVudDsgZGF0YXNldExlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSB9LFxuICB2b2lkLFxuICB1bmtub3duXG4+IHtcbiAgY29uc3QgZG9jdW1lbnRzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZW5hbWUgPSBkb2N1bWVudFNwbGl0UGF0aFtkb2N1bWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgaWYgKCFkb2N1bWVudEZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRvY3VtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uZG9jdW1lbnRTcGxpdFBhdGgpXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7ZG9jdW1lbnRGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICB9KVxuICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgIGlmIChkb2N1bWVudHNVaWQuaGFzKGRvY3VtZW50LnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGRvY3VtZW50c1VpZC5hZGQoZG9jdW1lbnQudWlkKVxuICAgICAgeWllbGQgeyBkb2N1bWVudCwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZURvc3NpZXJzUGFybGVtZW50YWlyZXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAge1xuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICAgIGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmVcbiAgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGRvc3NpZXJzUGFybGVtZW50YWlyZXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpciwgW1xuICAgICAgXCJkb3NzaWVyc1wiLFxuICAgIF0pKSB7XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVuYW1lID1cbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGhbZG9zc2llclBhcmxlbWVudGFpcmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghZG9zc2llclBhcmxlbWVudGFpcmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhc2V0RGlyLFxuICAgICAgICAuLi5kb3NzaWVyUGFybGVtZW50YWlyZVNwbGl0UGF0aCxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyUGFybGVtZW50YWlyZUZpbGVQYXRofeKApmApXG4gICAgICB9XG4gICAgICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhcbiAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVGaWxlUGF0aCxcbiAgICAgICAge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlID1cbiAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUpzb24sXG4gICAgICAgIClcbiAgICAgIGlmIChkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmhhcyhkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBkb3NzaWVyc1BhcmxlbWVudGFpcmVzVWlkLmFkZChkb3NzaWVyUGFybGVtZW50YWlyZS51aWQpXG4gICAgICB5aWVsZCB7IGRvc3NpZXJQYXJsZW1lbnRhaXJlLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlT3JnYW5lcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBsZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUsXG4gIHsgbG9nID0gZmFsc2UgfSA9IHt9LFxuKTogR2VuZXJhdG9yPFxuICB7IG9yZ2FuZTogT3JnYW5lOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCBvcmdhbmVzVWlkID0gbmV3IFNldDxzdHJpbmc+KClcbiAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgY29uc3Qgb3JnYW5lRmlsZW5hbWUgPSBvcmdhbmVTcGxpdFBhdGhbb3JnYW5lU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIW9yZ2FuZUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IG9yZ2FuZUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLm9yZ2FuZVNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtvcmdhbmVGaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pXG4gICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgIGlmIChvcmdhbmVzVWlkLmhhcyhvcmdhbmUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgb3JnYW5lc1VpZC5hZGQob3JnYW5lLnVpZClcbiAgICAgIHlpZWxkIHsgb3JnYW5lLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlUmV1bmlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyByZXVuaW9uOiBSZXVuaW9uOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCByZXVuaW9uc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBpZiAoXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgKSB7XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgZGF0YURpcixcbiAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgIClcblxuICAgIGZvciAoY29uc3QgcmV1bmlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghcmV1bmlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJldW5pb25GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5yZXVuaW9uU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgfVxuICAgICAgY29uc3QgcmV1bmlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhyZXVuaW9uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHJldW5pb24gPSBBZ2VuZGFzQ29udmVydC50b1JldW5pb24ocmV1bmlvbkpzb24pXG4gICAgICBpZiAocmV1bmlvbnNVaWQuaGFzKHJldW5pb24udWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV1bmlvbnNVaWQuYWRkKHJldW5pb24udWlkKVxuICAgICAgeWllbGQgeyByZXVuaW9uLCBkYXRhc2V0TGVnaXNsYXR1cmU6IGRhdGFzZXQubGVnaXNsYXR1cmUgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGl0ZXJMb2FkQXNzZW1ibGVlU2NydXRpbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBzY3J1dGluOiBTY3J1dGluOyBkYXRhc2V0TGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlIH0sXG4gIHZvaWQsXG4gIHVua25vd25cbj4ge1xuICBjb25zdCBzY3J1dGluc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgaWYgKFxuICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICkge1xuICAgICAgY29udGludWVcbiAgICB9XG4gICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgIGRhdGFEaXIsXG4gICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICApXG5cbiAgICBmb3IgKGNvbnN0IHNjcnV0aW5TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICBpZiAoIXNjcnV0aW5GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBzY3J1dGluRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uc2NydXRpblNwbGl0UGF0aClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNjcnV0aW5Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoc2NydXRpbkZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgIH0pXG4gICAgICBjb25zdCBzY3J1dGluID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbihzY3J1dGluSnNvbilcbiAgICAgIGlmIChzY3J1dGluc1VpZC5oYXMoc2NydXRpbi51aWQpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBzY3J1dGluc1VpZC5hZGQoc2NydXRpbi51aWQpXG4gICAgICB5aWVsZCB7IHNjcnV0aW4sIGRhdGFzZXRMZWdpc2xhdHVyZTogZGF0YXNldC5sZWdpc2xhdHVyZSB9XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaXRlckxvYWRBc3NlbWJsZWVRdWVzdGlvbnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBxdWVzdGlvbjogUXVlc3Rpb247IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IHF1ZXN0aW9uc1VpZCA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5xdWVzdGlvbnMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBxdWVzdGlvblNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghcXVlc3Rpb25GaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBxdWVzdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnF1ZXN0aW9uU3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IHF1ZXN0aW9uSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHF1ZXN0aW9uRmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9uID0gUXVlc3Rpb25zQ29udmVydC50b1F1ZXN0aW9uKHF1ZXN0aW9uSnNvbilcbiAgICAgIGlmIChxdWVzdGlvbnNVaWQuaGFzKHF1ZXN0aW9uLnVpZCkpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIHF1ZXN0aW9uc1VpZC5hZGQocXVlc3Rpb24udWlkKVxuICAgICAgeWllbGQgeyBxdWVzdGlvbiwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBpdGVyTG9hZEFzc2VtYmxlZUNvbXB0ZXNSZW5kdXMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IEdlbmVyYXRvcjxcbiAgeyBjb21wdGVSZW5kdTogQ29tcHRlUmVuZHU7IGRhdGFzZXRMZWdpc2xhdHVyZTogTGVnaXNsYXR1cmUgfSxcbiAgdm9pZCxcbiAgdW5rbm93blxuPiB7XG4gIGNvbnN0IGNvbXB0ZXNSZW5kdXNVaWQgPSBuZXcgU2V0PHN0cmluZz4oKVxuICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuY29tcHRlc1JlbmR1c1NlYW5jZXMpIHtcbiAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGlmIChcbiAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICApIHtcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICBkYXRhRGlyLFxuICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgKVxuXG4gICAgZm9yIChjb25zdCBjb21wdGVSZW5kdVNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIpKSB7XG4gICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVuYW1lID1cbiAgICAgICAgY29tcHRlUmVuZHVTcGxpdFBhdGhbY29tcHRlUmVuZHVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgIGlmICghY29tcHRlUmVuZHVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBjb21wdGVSZW5kdUZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmNvbXB0ZVJlbmR1U3BsaXRQYXRoKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2NvbXB0ZVJlbmR1RmlsZVBhdGh94oCmYClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1SnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGNvbXB0ZVJlbmR1RmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1ID0gQ29tcHRlc1JlbmR1c0NvbnZlcnQudG9Db21wdGVSZW5kdShjb21wdGVSZW5kdUpzb24pXG4gICAgICBpZiAoY29tcHRlc1JlbmR1c1VpZC5oYXMoY29tcHRlUmVuZHUudWlkKSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29tcHRlc1JlbmR1c1VpZC5hZGQoY29tcHRlUmVuZHUudWlkKVxuICAgICAgeWllbGQgeyBjb21wdGVSZW5kdSwgZGF0YXNldExlZ2lzbGF0dXJlOiBkYXRhc2V0LmxlZ2lzbGF0dXJlIH1cbiAgICB9XG4gIH1cbn1cblxuLy8vIExvYWQgZGF0YSBmcm9tIHNwbGl0IGZpbGVzLlxuLy8vIERlcHJlY2F0ZWQ6IFVzZSBpdGVyTG9hZC4uLiBpdGVyYXRvcnMgaW5zdGVhZC5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YShcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBhY3RldXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJhY3RldXJzXCJdKSkge1xuICAgICAgICBjb25zdCBhY3RldXJGaWxlbmFtZSA9IGFjdGV1clNwbGl0UGF0aFthY3RldXJTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFhY3RldXJGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3RldXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5hY3RldXJTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2FjdGV1ckZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYWN0ZXVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGFjdGV1ckZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBhY3RldXIgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b0FjdGV1cihhY3RldXJKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcImFjdGV1clwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAoYWN0ZXVyQnlVaWRbYWN0ZXVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID0gYWN0ZXVyXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yIChjb25zdCBvcmdhbmVTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJvcmdhbmVzXCJdKSkge1xuICAgICAgICBjb25zdCBvcmdhbmVGaWxlbmFtZSA9IG9yZ2FuZVNwbGl0UGF0aFtvcmdhbmVTcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFvcmdhbmVGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvcmdhbmVGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5vcmdhbmVTcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke29yZ2FuZUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb3JnYW5lSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKG9yZ2FuZUZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBvcmdhbmUgPSBBY3RldXJzRXRPcmdhbmVzQ29udmVydC50b09yZ2FuZShvcmdhbmVKc29uKVxuICAgICAgICAvLyBLZWVwIHRoZSBmaXJzdCBleGlzdGluZyBcIm9yZ2FuZVwiLCBiZWNhdXNlIHRoZSBmaXJzdCB3cmFwcGVyIGlzIHRoZSBtb3N0IGNvbXBsZXRlLlxuICAgICAgICBpZiAob3JnYW5lQnlVaWRbb3JnYW5lLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID0gb3JnYW5lXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCByZXVuaW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUmV1bmlvbiB9ID0ge31cbiAgY29uc3QgcmV1bmlvbnNCeURheTogeyBbZGF5OiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEb3NzaWVyVWlkOiB7IFtkb3NzaWVyVWlkOiBzdHJpbmddOiBSZXVuaW9uW10gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuQWdlbmRhcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hZ2VuZGFzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG4gICAgICBmb3IgKGNvbnN0IHJldW5pb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCByZXVuaW9uRmlsZW5hbWUgPSByZXVuaW9uU3BsaXRQYXRoW3JldW5pb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFyZXVuaW9uRmlsZW5hbWUuZW5kc1dpdGgoXCIuanNvblwiKSkge1xuICAgICAgICAgIGNvbnRpbnVlXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcmV1bmlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLnJldW5pb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3JldW5pb25GaWxlUGF0aH3igKZgKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJldW5pb25Kc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMocmV1bmlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCByZXVuaW9uID0gQWdlbmRhc0NvbnZlcnQudG9SZXVuaW9uKHJldW5pb25Kc29uKVxuICAgICAgICBpZiAocmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbkJ5VWlkW3JldW5pb24udWlkXSA9IHJldW5pb25cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRheSA9IHJldW5pb24udGltZXN0YW1wRGVidXQudG9JU09TdHJpbmcoKS5zcGxpdChcIlRcIilbMF1cbiAgICAgICAgbGV0IHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV1cbiAgICAgICAgaWYgKHJldW5pb25zQXREYXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldW5pb25zQXREYXkgPSByZXVuaW9uc0J5RGF5W2RheV0gPSBbXVxuICAgICAgICB9XG4gICAgICAgIHJldW5pb25zQXREYXkucHVzaChyZXVuaW9uKVxuXG4gICAgICAgIGNvbnN0IG9kaiA9IHJldW5pb24ub2RqXG4gICAgICAgIGlmIChvZGogIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGZvciAoY29uc3QgcG9pbnRPZGogb2Ygb2RqLnBvaW50c09kaiB8fCBbXSkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBkb3NzaWVyTGVnaXNsYXRpZlJlZiBvZiBwb2ludE9kai5kb3NzaWVyc0xlZ2lzbGF0aWZzUmVmcyB8fFxuICAgICAgICAgICAgICBbXSkge1xuICAgICAgICAgICAgICBsZXQgcmV1bmlvbnNBdERvc3NpZXJVaWQgPVxuICAgICAgICAgICAgICAgIHJldW5pb25zQnlEb3NzaWVyVWlkW2Rvc3NpZXJMZWdpc2xhdGlmUmVmXVxuICAgICAgICAgICAgICBpZiAocmV1bmlvbnNBdERvc3NpZXJVaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkID0gcmV1bmlvbnNCeURvc3NpZXJVaWRbXG4gICAgICAgICAgICAgICAgICBkb3NzaWVyTGVnaXNsYXRpZlJlZlxuICAgICAgICAgICAgICAgIF0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldW5pb25zQXREb3NzaWVyVWlkLnB1c2gocmV1bmlvbilcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBhbWVuZGVtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogQW1lbmRlbWVudCB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BbWVuZGVtZW50cykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5hbWVuZGVtZW50cykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRhdGFzZXREaXIgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llXCIpLFxuICAgICAgKVxuXG4gICAgICBmb3IgKGNvbnN0IGFtZW5kZW1lbnRTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZW5hbWUgPVxuICAgICAgICAgIGFtZW5kZW1lbnRTcGxpdFBhdGhbYW1lbmRlbWVudFNwbGl0UGF0aC5sZW5ndGggLSAxXVxuICAgICAgICBpZiAoIWFtZW5kZW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhbWVuZGVtZW50RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uYW1lbmRlbWVudFNwbGl0UGF0aClcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7YW1lbmRlbWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYW1lbmRlbWVudEpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhhbWVuZGVtZW50RmlsZVBhdGgsIHtcbiAgICAgICAgICBlbmNvZGluZzogXCJ1dGY4XCIsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IGFtZW5kZW1lbnQgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50KGFtZW5kZW1lbnRKc29uKVxuICAgICAgICBpZiAoYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgYW1lbmRlbWVudEJ5VWlkW2FtZW5kZW1lbnQudWlkXSA9IGFtZW5kZW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvY3VtZW50QnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogRG9jdW1lbnQgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW46IHtcbiAgICBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZVxuICB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb3NzaWVyUGFybGVtZW50YWlyZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Eb3NzaWVyc0xlZ2lzbGF0aWZzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBkb2N1bWVudFNwbGl0UGF0aCBvZiB3YWxrRGlyKGRhdGFzZXREaXIsIFtcImRvY3VtZW50c1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9jdW1lbnRGaWxlbmFtZSA9IGRvY3VtZW50U3BsaXRQYXRoW2RvY3VtZW50U3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9jdW1lbnRGaWxlbmFtZS5lbmRzV2l0aChcIi5qc29uXCIpKSB7XG4gICAgICAgICAgY29udGludWVcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb2N1bWVudEZpbGVQYXRoID0gcGF0aC5qb2luKGRhdGFzZXREaXIsIC4uLmRvY3VtZW50U3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb2N1bWVudEZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZG9jdW1lbnRKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoZG9jdW1lbnRGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0RvY3VtZW50KGRvY3VtZW50SnNvbilcbiAgICAgICAgaWYgKGRvY3VtZW50QnlVaWRbZG9jdW1lbnQudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID0gZG9jdW1lbnRcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXJTcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyLCBbXCJkb3NzaWVyc1wiXSkpIHtcbiAgICAgICAgY29uc3QgZG9zc2llckZpbGVuYW1lID0gZG9zc2llclNwbGl0UGF0aFtkb3NzaWVyU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghZG9zc2llckZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRvc3NpZXJGaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5kb3NzaWVyU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtkb3NzaWVyRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkb3NzaWVySnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGRvc3NpZXJGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgZG9zc2llciA9XG4gICAgICAgICAgRG9zc2llcnNMZWdpc2xhdGlmc0NvbnZlcnQudG9Eb3NzaWVyUGFybGVtZW50YWlyZShkb3NzaWVySnNvbilcbiAgICAgICAgY29uc3QgdGl0cmVEb3NzaWVyID0gZG9zc2llci50aXRyZURvc3NpZXJcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRpdHJlRG9zc2llci5zZW5hdENoZW1pbiAmJlxuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID09PVxuICAgICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pblt0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW5dID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIudGl0cmVDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW5bdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZFtkb3NzaWVyLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID0gZG9zc2llclxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBMZWdpc2xhdHVyZS5BbGwuXG4gICAgICAgICAgbGVnaXNsYXR1cmUgPT09IExlZ2lzbGF0dXJlLkFsbCA/IExlZ2lzbGF0dXJlLlNlaXplIDogbGVnaXNsYXR1cmVcbiAgICAgICAgfWAsXG4gICAgICAgIFwiZGVwdXRlcy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuXG4gICAge1xuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgICAgICBcInNlbmF0ZXVycy5qc29uXCIsXG4gICAgICApXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyhqc29uRmlsZVBhdGgpKSB7XG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICAgIE9iamVjdC5hc3NpZ24ocGhvdG9CeVVpZCwgSlNPTi5wYXJzZShqc29uKSlcbiAgICAgIH0gZWxzZSBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyBtaXNzaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2NydXRpbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFNjcnV0aW4gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuU2NydXRpbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuc2NydXRpbnMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBkYXRhc2V0RGlyID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZVwiKSxcbiAgICAgIClcblxuICAgICAgZm9yIChjb25zdCBzY3J1dGluU3BsaXRQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3Qgc2NydXRpbkZpbGVuYW1lID0gc2NydXRpblNwbGl0UGF0aFtzY3J1dGluU3BsaXRQYXRoLmxlbmd0aCAtIDFdXG4gICAgICAgIGlmICghc2NydXRpbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNjcnV0aW5GaWxlUGF0aCA9IHBhdGguam9pbihkYXRhc2V0RGlyLCAuLi5zY3J1dGluU3BsaXRQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtzY3J1dGluRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY3J1dGluSnNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKHNjcnV0aW5GaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3Qgc2NydXRpbiA9IFNjcnV0aW5zQ29udmVydC50b1NjcnV0aW4oc2NydXRpbkpzb24pXG4gICAgICAgIGlmIChzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBzY3J1dGluQnlVaWRbc2NydXRpbi51aWRdID0gc2NydXRpblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcXVlc3Rpb25CeVVpZDogeyBbdWlkOiBzdHJpbmddOiBRdWVzdGlvbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5RdWVzdGlvbnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMucXVlc3Rpb25zKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb25TcGxpdFBhdGggb2Ygd2Fsa0RpcihkYXRhc2V0RGlyKSkge1xuICAgICAgICBjb25zdCBxdWVzdGlvbkZpbGVuYW1lID0gcXVlc3Rpb25TcGxpdFBhdGhbcXVlc3Rpb25TcGxpdFBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFxdWVzdGlvbkZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHF1ZXN0aW9uRmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4ucXVlc3Rpb25TcGxpdFBhdGgpXG4gICAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke3F1ZXN0aW9uRmlsZVBhdGh94oCmYClcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBxdWVzdGlvbkpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhxdWVzdGlvbkZpbGVQYXRoLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6IFwidXRmOFwiLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBxdWVzdGlvbiA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbihxdWVzdGlvbkpzb24pXG4gICAgICAgIGlmIChxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHF1ZXN0aW9uQnlVaWRbcXVlc3Rpb24udWlkXSA9IHF1ZXN0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21wdGVSZW5kdUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IENvbXB0ZVJlbmR1IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmNvbXB0ZXNSZW5kdXNTZWFuY2VzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QgZGF0YXNldERpciA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWVcIiksXG4gICAgICApXG5cbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHVQYXRoIG9mIHdhbGtEaXIoZGF0YXNldERpcikpIHtcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVGaWxlbmFtZSA9IGNvbXB0ZVJlbmR1UGF0aFtjb21wdGVSZW5kdVBhdGgubGVuZ3RoIC0gMV1cbiAgICAgICAgaWYgKCFjb21wdGVSZW5kdUZpbGVuYW1lLmVuZHNXaXRoKFwiLmpzb25cIikpIHtcbiAgICAgICAgICBjb250aW51ZVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXB0ZVJlbmR1RmlsZVBhdGggPSBwYXRoLmpvaW4oZGF0YXNldERpciwgLi4uY29tcHRlUmVuZHVQYXRoKVxuICAgICAgICBpZiAobG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtjb21wdGVSZW5kdUZpbGVQYXRofeKApmApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHVKc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoY29tcHRlUmVuZHVGaWxlUGF0aCwge1xuICAgICAgICAgIGVuY29kaW5nOiBcInV0ZjhcIixcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgY29tcHRlUmVuZHUgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZVJlbmR1KGNvbXB0ZVJlbmR1SnNvbilcbiAgICAgICAgaWYgKGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29tcHRlUmVuZHVCeVVpZFtjb21wdGVSZW5kdS51aWRdID0gY29tcHRlUmVuZHVcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYWN0ZXVyQnlVaWQsXG4gICAgYW1lbmRlbWVudEJ5VWlkLFxuICAgIGRvY3VtZW50QnlVaWQsXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkLFxuICAgIG9yZ2FuZUJ5VWlkLFxuICAgIHBob3RvQnlVaWQsXG4gICAgcmV1bmlvbkJ5VWlkLFxuICAgIHJldW5pb25zQnlEYXksXG4gICAgcmV1bmlvbnNCeURvc3NpZXJVaWQsXG4gICAgc2NydXRpbkJ5VWlkLFxuICAgIHF1ZXN0aW9uQnlVaWQsXG4gICAgY29tcHRlUmVuZHVCeVVpZCxcbiAgfVxufVxuXG4vLy8gTG9hZCBkYXRhIGZyb20gYmlnIG1vbm9seXRpYyBmaWxlcy5cbi8vLyBEZXByZWNhdGVkOiBBc3NlbWJsw6llIG5hdGlvbmFsZSBvcGVuIGRhdGEgbm8gbW9yZSB1c2VzIG1vbm9seXRpYyBmaWxlcy5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRGF0YUZyb21CaWdGaWxlcyhcbiAgZGF0YURpcjogc3RyaW5nLFxuICBlbmFibGVkRGF0YXNldHM6IEVuYWJsZWREYXRhc2V0cyxcbiAgbGVnaXNsYXR1cmU6IExlZ2lzbGF0dXJlLFxuICB7IGxvZyA9IGZhbHNlIH0gPSB7fSxcbik6IERhdGEge1xuICBjb25zdCBhY3RldXJCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBY3RldXIgfSA9IHt9XG4gIGNvbnN0IG9yZ2FuZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IE9yZ2FuZSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5BY3RldXJzRXRPcmdhbmVzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFjdGV1cnNFdE9yZ2FuZXMpIHtcbiAgICAgIGlmIChkYXRhc2V0Lmlnbm9yZUZvcldlYikge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGRhdGFzZXQubGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBsZWdpc2xhdHVyZSAhPT0gZGF0YXNldC5sZWdpc2xhdHVyZVxuICAgICAgKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgZGF0YXNldC5maWxlbmFtZS5yZXBsYWNlKC9cXC5qc29uJC8sIFwiX25ldHRveWUuanNvblwiKSxcbiAgICAgIClcbiAgICAgIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb246IHN0cmluZyA9IGZzLnJlYWRGaWxlU3luYyhqc29uRmlsZVBhdGgsIHsgZW5jb2Rpbmc6IFwidXRmOFwiIH0pXG4gICAgICBjb25zdCBhY3RldXJzRXRPcmdhbmVzID0gQWN0ZXVyc0V0T3JnYW5lc0NvbnZlcnQudG9BY3RldXJzRXRPcmdhbmVzKGpzb24pXG4gICAgICBmb3IgKGNvbnN0IGFjdGV1ciBvZiBhY3RldXJzRXRPcmdhbmVzLmFjdGV1cnMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJhY3RldXJcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKGFjdGV1ckJ5VWlkW2FjdGV1ci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBhY3RldXJCeVVpZFthY3RldXIudWlkXSA9IGFjdGV1clxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IG9yZ2FuZSBvZiBhY3RldXJzRXRPcmdhbmVzLm9yZ2FuZXMpIHtcbiAgICAgICAgLy8gS2VlcCB0aGUgZmlyc3QgZXhpc3RpbmcgXCJvcmdhbmVcIiwgYmVjYXVzZSB0aGUgZmlyc3Qgd3JhcHBlciBpcyB0aGUgbW9zdCBjb21wbGV0ZS5cbiAgICAgICAgaWYgKG9yZ2FuZUJ5VWlkW29yZ2FuZS51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBvcmdhbmVCeVVpZFtvcmdhbmUudWlkXSA9IG9yZ2FuZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmV1bmlvbkJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IFJldW5pb24gfSA9IHt9XG4gIGNvbnN0IHJldW5pb25zQnlEYXk6IHsgW2RheTogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBjb25zdCByZXVuaW9uc0J5RG9zc2llclVpZDogeyBbZG9zc2llclVpZDogc3RyaW5nXTogUmV1bmlvbltdIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFnZW5kYXMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuYWdlbmRhcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGFnZW5kYXMgPSBBZ2VuZGFzQ29udmVydC50b0FnZW5kYXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcmV1bmlvbiBvZiBhZ2VuZGFzLnJldW5pb25zKSB7XG4gICAgICAgIGlmIChyZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXVuaW9uQnlVaWRbcmV1bmlvbi51aWRdID0gcmV1bmlvblxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF5ID0gcmV1bmlvbi50aW1lc3RhbXBEZWJ1dC50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXVxuICAgICAgICBsZXQgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XVxuICAgICAgICBpZiAocmV1bmlvbnNBdERheSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV1bmlvbnNBdERheSA9IHJldW5pb25zQnlEYXlbZGF5XSA9IFtdXG4gICAgICAgIH1cbiAgICAgICAgcmV1bmlvbnNBdERheS5wdXNoKHJldW5pb24pXG5cbiAgICAgICAgY29uc3Qgb2RqID0gcmV1bmlvbi5vZGpcbiAgICAgICAgaWYgKG9kaiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBwb2ludE9kaiBvZiBvZGoucG9pbnRzT2RqIHx8IFtdKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRvc3NpZXJMZWdpc2xhdGlmUmVmIG9mIHBvaW50T2RqLmRvc3NpZXJzTGVnaXNsYXRpZnNSZWZzIHx8XG4gICAgICAgICAgICAgIFtdKSB7XG4gICAgICAgICAgICAgIGxldCByZXVuaW9uc0F0RG9zc2llclVpZCA9XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNCeURvc3NpZXJVaWRbZG9zc2llckxlZ2lzbGF0aWZSZWZdXG4gICAgICAgICAgICAgIGlmIChyZXVuaW9uc0F0RG9zc2llclVpZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQgPSByZXVuaW9uc0J5RG9zc2llclVpZFtcbiAgICAgICAgICAgICAgICAgIGRvc3NpZXJMZWdpc2xhdGlmUmVmXG4gICAgICAgICAgICAgICAgXSA9IFtdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV1bmlvbnNBdERvc3NpZXJVaWQucHVzaChyZXVuaW9uKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGFtZW5kZW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBBbWVuZGVtZW50IH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkFtZW5kZW1lbnRzKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLmFtZW5kZW1lbnRzKSB7XG4gICAgICBpZiAoZGF0YXNldC5pZ25vcmVGb3JXZWIpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IExlZ2lzbGF0dXJlLkFsbCAmJlxuICAgICAgICBkYXRhc2V0LmxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgbGVnaXNsYXR1cmUgIT09IGRhdGFzZXQubGVnaXNsYXR1cmVcbiAgICAgICkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgY29uc3QganNvbkZpbGVQYXRoOiBzdHJpbmcgPSBwYXRoLmpvaW4oXG4gICAgICAgIGRhdGFEaXIsXG4gICAgICAgIGRhdGFzZXQuZmlsZW5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCBcIl9uZXR0b3llLmpzb25cIiksXG4gICAgICApXG4gICAgICBpZiAobG9nKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICB9XG4gICAgICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICAgICAgY29uc3QgYW1lbmRlbWVudHMgPSBBbWVuZGVtZW50c0NvbnZlcnQudG9BbWVuZGVtZW50cyhqc29uKVxuICAgICAgZm9yIChjb25zdCB0ZXh0ZUxlZ2lzbGF0aWYgb2YgYW1lbmRlbWVudHMudGV4dGVzTGVnaXNsYXRpZnMpIHtcbiAgICAgICAgZm9yIChjb25zdCBhbWVuZGVtZW50IG9mIHRleHRlTGVnaXNsYXRpZi5hbWVuZGVtZW50cykge1xuICAgICAgICAgIGlmIChhbWVuZGVtZW50QnlVaWRbYW1lbmRlbWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFtZW5kZW1lbnRCeVVpZFthbWVuZGVtZW50LnVpZF0gPSBhbWVuZGVtZW50XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG9jdW1lbnRCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBEb2N1bWVudCB9ID0ge31cbiAgY29uc3QgZG9zc2llclBhcmxlbWVudGFpcmVCeVNlbmF0Q2hlbWluOiB7XG4gICAgW3VpZDogc3RyaW5nXTogRG9zc2llclBhcmxlbWVudGFpcmVcbiAgfSA9IHt9XG4gIGNvbnN0IGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlUaXRyZUNoZW1pbjoge1xuICAgIFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlXG4gIH0gPSB7fVxuICBjb25zdCBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkOiB7IFt1aWQ6IHN0cmluZ106IERvc3NpZXJQYXJsZW1lbnRhaXJlIH0gPSB7fVxuICBpZiAoZW5hYmxlZERhdGFzZXRzICYgRW5hYmxlZERhdGFzZXRzLkRvc3NpZXJzTGVnaXNsYXRpZnMpIHtcbiAgICBmb3IgKGNvbnN0IGRhdGFzZXQgb2YgZGF0YXNldHMuZG9zc2llcnNMZWdpc2xhdGlmcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGRvc3NpZXJzTGVnaXNsYXRpZnMgPVxuICAgICAgICBEb3NzaWVyc0xlZ2lzbGF0aWZzQ29udmVydC50b0Rvc3NpZXJzTGVnaXNsYXRpZnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgZG9jdW1lbnQgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy50ZXh0ZXNMZWdpc2xhdGlmcykge1xuICAgICAgICBpZiAoZG9jdW1lbnRCeVVpZFtkb2N1bWVudC51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb2N1bWVudEJ5VWlkW2RvY3VtZW50LnVpZF0gPSBkb2N1bWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRvc3NpZXIgb2YgZG9zc2llcnNMZWdpc2xhdGlmcy5kb3NzaWVyc1BhcmxlbWVudGFpcmVzKSB7XG4gICAgICAgIGNvbnN0IHRpdHJlRG9zc2llciA9IGRvc3NpZXIudGl0cmVEb3NzaWVyXG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aXRyZURvc3NpZXIuc2VuYXRDaGVtaW4gJiZcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9PT1cbiAgICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5U2VuYXRDaGVtaW5bdGl0cmVEb3NzaWVyLnNlbmF0Q2hlbWluXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgdGl0cmVEb3NzaWVyLnRpdHJlQ2hlbWluICYmXG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPT09XG4gICAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVRpdHJlQ2hlbWluW3RpdHJlRG9zc2llci50aXRyZUNoZW1pbl0gPSBkb3NzaWVyXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlVaWRbZG9zc2llci51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VWlkW2Rvc3NpZXIudWlkXSA9IGRvc3NpZXJcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHBob3RvQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUGhvdG8gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUGhvdG9zKSB7XG4gICAgY29uc3QgcGhvdG9CeVVpZCA9IHt9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgYHBob3Rvc19kZXB1dGVzXyR7XG4gICAgICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgICAgICBsZWdpc2xhdHVyZSA9PT0gTGVnaXNsYXR1cmUuQWxsID8gTGVnaXNsYXR1cmUuU2VpemUgOiBsZWdpc2xhdHVyZVxuICAgICAgICB9YCxcbiAgICAgICAgXCJkZXB1dGVzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG5cbiAgICB7XG4gICAgICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICAgICAgZGF0YURpcixcbiAgICAgICAgXCJwaG90b3Nfc2VuYXRldXJzXCIsXG4gICAgICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgICAgIClcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGpzb25GaWxlUGF0aCkpIHtcbiAgICAgICAgaWYgKGxvZykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGBMb2FkaW5nIGZpbGU6ICR7anNvbkZpbGVQYXRofWApXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgICAgT2JqZWN0LmFzc2lnbihwaG90b0J5VWlkLCBKU09OLnBhcnNlKGpzb24pKVxuICAgICAgfSBlbHNlIGlmIChsb2cpIHtcbiAgICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIG1pc3NpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBzY3J1dGluQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogU2NydXRpbiB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5TY3J1dGlucykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5zY3J1dGlucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHNjcnV0aW5zID0gU2NydXRpbnNDb252ZXJ0LnRvU2NydXRpbnMoanNvbilcbiAgICAgIGZvciAoY29uc3Qgc2NydXRpbiBvZiBzY3J1dGlucy5zY3J1dGlucykge1xuICAgICAgICBpZiAoc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2NydXRpbkJ5VWlkW3NjcnV0aW4udWlkXSA9IHNjcnV0aW5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHF1ZXN0aW9uQnlVaWQ6IHsgW3VpZDogc3RyaW5nXTogUXVlc3Rpb24gfSA9IHt9XG4gIGlmIChlbmFibGVkRGF0YXNldHMgJiBFbmFibGVkRGF0YXNldHMuUXVlc3Rpb25zKSB7XG4gICAgZm9yIChjb25zdCBkYXRhc2V0IG9mIGRhdGFzZXRzLnF1ZXN0aW9ucykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IHF1ZXN0aW9ucyA9IFF1ZXN0aW9uc0NvbnZlcnQudG9RdWVzdGlvbnMoanNvbilcbiAgICAgIGZvciAoY29uc3QgcXVlc3Rpb24gb2YgcXVlc3Rpb25zLnF1ZXN0aW9ucykge1xuICAgICAgICBpZiAocXVlc3Rpb25CeVVpZFtxdWVzdGlvbi51aWRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBxdWVzdGlvbkJ5VWlkW3F1ZXN0aW9uLnVpZF0gPSBxdWVzdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29tcHRlUmVuZHVCeVVpZDogeyBbdWlkOiBzdHJpbmddOiBDb21wdGVSZW5kdSB9ID0ge31cbiAgaWYgKGVuYWJsZWREYXRhc2V0cyAmIEVuYWJsZWREYXRhc2V0cy5Db21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgIGZvciAoY29uc3QgZGF0YXNldCBvZiBkYXRhc2V0cy5jb21wdGVzUmVuZHVzU2VhbmNlcykge1xuICAgICAgaWYgKGRhdGFzZXQuaWdub3JlRm9yV2ViKSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgICBpZiAoXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBMZWdpc2xhdHVyZS5BbGwgJiZcbiAgICAgICAgZGF0YXNldC5sZWdpc2xhdHVyZSAhPT0gTGVnaXNsYXR1cmUuQWxsICYmXG4gICAgICAgIGxlZ2lzbGF0dXJlICE9PSBkYXRhc2V0LmxlZ2lzbGF0dXJlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICAgIGNvbnN0IGpzb25GaWxlUGF0aDogc3RyaW5nID0gcGF0aC5qb2luKFxuICAgICAgICBkYXRhRGlyLFxuICAgICAgICBkYXRhc2V0LmZpbGVuYW1lLnJlcGxhY2UoL1xcLmpzb24kLywgXCJfbmV0dG95ZS5qc29uXCIpLFxuICAgICAgKVxuICAgICAgaWYgKGxvZykge1xuICAgICAgICBjb25zb2xlLmxvZyhgTG9hZGluZyBmaWxlOiAke2pzb25GaWxlUGF0aH1gKVxuICAgICAgfVxuICAgICAgY29uc3QganNvbjogc3RyaW5nID0gZnMucmVhZEZpbGVTeW5jKGpzb25GaWxlUGF0aCwgeyBlbmNvZGluZzogXCJ1dGY4XCIgfSlcbiAgICAgIGNvbnN0IGNvbXB0ZXNSZW5kdXMgPSBDb21wdGVzUmVuZHVzQ29udmVydC50b0NvbXB0ZXNSZW5kdXMoanNvbilcbiAgICAgIGZvciAoY29uc3QgY29tcHRlUmVuZHUgb2YgY29tcHRlc1JlbmR1cy5jb21wdGVzUmVuZHVzKSB7XG4gICAgICAgIGlmIChjb21wdGVSZW5kdUJ5VWlkW2NvbXB0ZVJlbmR1LnVpZF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbXB0ZVJlbmR1QnlVaWRbY29tcHRlUmVuZHUudWlkXSA9IGNvbXB0ZVJlbmR1XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGV1ckJ5VWlkLFxuICAgIGFtZW5kZW1lbnRCeVVpZCxcbiAgICBkb2N1bWVudEJ5VWlkLFxuICAgIGRvc3NpZXJQYXJsZW1lbnRhaXJlQnlTZW5hdENoZW1pbixcbiAgICBkb3NzaWVyUGFybGVtZW50YWlyZUJ5VGl0cmVDaGVtaW4sXG4gICAgZG9zc2llclBhcmxlbWVudGFpcmVCeVVpZCxcbiAgICBvcmdhbmVCeVVpZCxcbiAgICBwaG90b0J5VWlkLFxuICAgIHJldW5pb25CeVVpZCxcbiAgICByZXVuaW9uc0J5RGF5LFxuICAgIHJldW5pb25zQnlEb3NzaWVyVWlkLFxuICAgIHNjcnV0aW5CeVVpZCxcbiAgICBxdWVzdGlvbkJ5VWlkLFxuICAgIGNvbXB0ZVJlbmR1QnlVaWQsXG4gIH1cbn1cblxuLyoqXG4gKiBSZWFkIGEgZG9jdW1lbnQgb3IgYSBkaXZpc2lvbiBvZiBhIGRvY3VtZW50IGZyb20gZmlsZSBzeXN0ZW1cbiAqXG4gKiBAcGFyYW0gZGF0YURpclxuICogQHBhcmFtIHVpZCBVSUQgb2YgYSBkb2N1bWVudCBvciBhIGRpdmlzaW9uXG4gKiBAcGFyYW0gZm9ybWF0cyByZXF1ZXN0ZWQgZm9ybWF0cyBvZiB0aGUgZG9jdW1lbnQgaW4gZGVjcmVhc2luZyBwcmVmZXJlbmNlIG9yZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2FkQXNzZW1ibGVlRG9jdW1lbnRGaWxlSW5mb3MoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4gIGZvcm1hdHM6IERvY3VtZW50VXJsRm9ybWF0W10sXG4pOiAoRG9jdW1lbnRGaWxlSW5mb3MgJiB7IGZvcm1hdDogRG9jdW1lbnRVcmxGb3JtYXQgfSkgfCB1bmRlZmluZWQge1xuICBjb25zdCBkb2N1bWVudHNEaXIgPSBwYXRoLmpvaW4oZGF0YURpciwgXCJEb2N1bWVudHNcIilcbiAgY29uc3QgZG9jdW1lbnREaXIgPSBwYXRoRnJvbURvY3VtZW50VWlkKGRvY3VtZW50c0RpciwgdWlkKVxuICBjb25zdCBpbmRleFBhdGggPSBwYXRoLmpvaW4oZG9jdW1lbnREaXIsIFwiaW5kZXguanNvblwiKVxuICBpZiAoIWZzLnBhdGhFeGlzdHNTeW5jKGluZGV4UGF0aCkpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkXG4gIH1cbiAgY29uc3QgaW5kZXggPSBmcy5yZWFkSnNvblN5bmMoaW5kZXhQYXRoKVxuICBmb3IgKGNvbnN0IGZvcm1hdCBvZiBmb3JtYXRzKSB7XG4gICAgZm9yIChjb25zdCBkb2N1bWVudEZpbGVJbmZvcyBvZiBpbmRleFtmb3JtYXRdID8/IFtdKSB7XG4gICAgICBpZiAoZG9jdW1lbnRGaWxlSW5mb3MuZmlsZW5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuICAgICAgcmV0dXJuIHsgLi4uZG9jdW1lbnRGaWxlSW5mb3MsIGZvcm1hdCB9XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NEZXB1dGVzKFxuICBkYXRhRGlyOiBzdHJpbmcsXG4gIGxlZ2lzbGF0dXJlOiBMZWdpc2xhdHVyZSxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIGBwaG90b3NfZGVwdXRlc18ke1xuICAgICAgLy8gVE9ETzogSGFuZGxlIExlZ2lzbGF0dXJlLkFsbC5cbiAgICAgIGxlZ2lzbGF0dXJlID09PSBMZWdpc2xhdHVyZS5BbGwgPyBMZWdpc2xhdHVyZS5TZWl6ZSA6IGxlZ2lzbGF0dXJlXG4gICAgfWAsXG4gICAgXCJkZXB1dGVzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRBc3NlbWJsZWVQaG90b3NTZW5hdGV1cnMoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgeyBsb2cgPSBmYWxzZSB9ID0ge30sXG4pOiB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH0ge1xuICBjb25zdCBqc29uRmlsZVBhdGg6IHN0cmluZyA9IHBhdGguam9pbihcbiAgICBkYXRhRGlyLFxuICAgIFwicGhvdG9zX3NlbmF0ZXVyc1wiLFxuICAgIFwic2VuYXRldXJzLmpzb25cIixcbiAgKVxuICBpZiAobG9nKSB7XG4gICAgY29uc29sZS5sb2coYExvYWRpbmcgZmlsZTogJHtqc29uRmlsZVBhdGh9YClcbiAgfVxuICBjb25zdCBqc29uOiBzdHJpbmcgPSBmcy5yZWFkRmlsZVN5bmMoanNvbkZpbGVQYXRoLCB7IGVuY29kaW5nOiBcInV0ZjhcIiB9KVxuICByZXR1cm4gSlNPTi5wYXJzZShqc29uKSBhcyB7IFt1aWQ6IHN0cmluZ106IFBob3RvIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGhGcm9tRG9jdW1lbnRVaWQoZG9jdW1lbnRzRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSBkb2N1bWVudFVpZFJlZ2V4LmV4ZWModWlkKVxuICBhc3NlcnQubm90U3RyaWN0RXF1YWwoXG4gICAgbWF0Y2gsXG4gICAgbnVsbCxcbiAgICBgVW5leHBlY3RlZCBzdHJ1Y3R1cmUgZm9yIGRvY3VtZW50IFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCBkb2N1bWVudFR5cGUgPSBwYXRoLmpvaW4oZG9jdW1lbnRzRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGNoYW1icmVEaXIgPSBwYXRoLmpvaW4oZG9jdW1lbnRUeXBlLCBtYXRjaCFbMl0pXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oY2hhbWJyZURpciwgbWF0Y2ghWzNdKVxuICBjb25zdCBsZWdpc2xhdHVyZURpciA9IHBhdGguam9pbihyZXB1YmxpcXVlRGlyLCBtYXRjaCFbNF0pXG4gIGNvbnN0IGV0YXREaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG1hdGNoIVs1XSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbNl1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4oZXRhdERpciwgbnVtZXJvLnN1YnN0cigwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21Eb3NzaWVyUGFybGVtZW50YWlyZVVpZChcbiAgZG9zc2llcnNEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IGRvc3NpZXJVaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBkb3NzaWVyIHBhcmxlbWVudGFpcmUgVUlEOiAke3VpZH1gLFxuICApXG4gIGNvbnN0IHJlcHVibGlxdWVEaXIgPSBwYXRoLmpvaW4oZG9zc2llcnNEaXIsIG1hdGNoIVsxXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzJdKVxuICBsZXQgbnVtZXJvID0gXCIwMDAwMDBcIiArIG1hdGNoIVszXVxuICBudW1lcm8gPSBudW1lcm8uc3Vic3RyKG51bWVyby5sZW5ndGggLSA2KVxuICBjb25zdCBudW1lcm9NaWxsaWVyc0RpciA9IHBhdGguam9pbihsZWdpc2xhdHVyZURpciwgbnVtZXJvLnN1YnN0cigwLCAzKSlcbiAgZnMuZW5zdXJlRGlyU3luYyhudW1lcm9NaWxsaWVyc0RpcilcbiAgcmV0dXJuIHBhdGguam9pbihudW1lcm9NaWxsaWVyc0RpciwgdWlkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21SZXVuaW9uVWlkKHJldW5pb25zRGlyOiBzdHJpbmcsIHVpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbWF0Y2ggPSByZXVuaW9uVWlkUmVnZXguZXhlYyh1aWQpXG4gIGFzc2VydC5ub3RTdHJpY3RFcXVhbChcbiAgICBtYXRjaCxcbiAgICBudWxsLFxuICAgIGBVbmV4cGVjdGVkIHN0cnVjdHVyZSBmb3IgcmV1bmlvbiBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgY2hhbWJyZURpciA9IHBhdGguam9pbihyZXVuaW9uc0RpciwgbWF0Y2ghWzFdKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKGNoYW1icmVEaXIsIG1hdGNoIVsyXSlcbiAgY29uc3QgbGVnaXNsYXR1cmVEaXIgPSBwYXRoLmpvaW4ocmVwdWJsaXF1ZURpciwgbWF0Y2ghWzNdKVxuICBjb25zdCBzZXNzaW9uRGlyID0gcGF0aC5qb2luKGxlZ2lzbGF0dXJlRGlyLCBtYXRjaCFbNF0pXG4gIGNvbnN0IGlkRGlyID0gcGF0aC5qb2luKHNlc3Npb25EaXIsIG1hdGNoIVs1XSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwMDAwXCIgKyBtYXRjaCFbNl1cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gOSlcbiAgY29uc3QgbnVtZXJvTWlsbGlvbnNEaXIgPSBwYXRoLmpvaW4oaWREaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGNvbnN0IG51bWVyb01pbGxpZXJzRGlyID0gcGF0aC5qb2luKG51bWVyb01pbGxpb25zRGlyLCBudW1lcm8uc3Vic3RyKDMsIDMpKVxuICBmcy5lbnN1cmVEaXJTeW5jKG51bWVyb01pbGxpZXJzRGlyKVxuICByZXR1cm4gcGF0aC5qb2luKG51bWVyb01pbGxpZXJzRGlyLCB1aWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXRoRnJvbVNjcnV0aW5VaWQoc2NydXRpbnNEaXI6IHN0cmluZywgdWlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBtYXRjaCA9IHNjcnV0aW5VaWRSZWdleC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBzY3J1dGluIFVJRDogJHt1aWR9YCxcbiAgKVxuICBjb25zdCByZXB1YmxpcXVlRGlyID0gcGF0aC5qb2luKHNjcnV0aW5zRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cblxuLy8gR2V0IHN0YW5kYXJkIHBhdGggZm9yIG9iamVjdCB3aXRoIHVpZCA6IHJlcHVibGlxdWUgPiBsZWdpc2xhdHVyZSA+IGdyb3VwIG9iamVjdHMgYnkgdGhvdXNhbmRzXG5leHBvcnQgZnVuY3Rpb24gcGF0aEZyb21VaWQoXG4gIGRhdGFEaXI6IHN0cmluZyxcbiAgdWlkOiBzdHJpbmcsXG4gIGRhdGFSZWdleHA6IFJlZ0V4cCxcbik6IHN0cmluZyB7XG4gIGNvbnN0IG1hdGNoID0gZGF0YVJlZ2V4cC5leGVjKHVpZClcbiAgYXNzZXJ0Lm5vdFN0cmljdEVxdWFsKFxuICAgIG1hdGNoLFxuICAgIG51bGwsXG4gICAgYFVuZXhwZWN0ZWQgc3RydWN0dXJlIGZvciBvYmplY3Qgd2l0aCBVSUQ6ICR7dWlkfWAsXG4gIClcbiAgY29uc3QgcmVwdWJsaXF1ZURpciA9IHBhdGguam9pbihkYXRhRGlyLCBtYXRjaCFbMV0pXG4gIGNvbnN0IGxlZ2lzbGF0dXJlRGlyID0gcGF0aC5qb2luKHJlcHVibGlxdWVEaXIsIG1hdGNoIVsyXSlcbiAgbGV0IG51bWVybyA9IFwiMDAwMDAwXCIgKyBtYXRjaCFbM11cbiAgbnVtZXJvID0gbnVtZXJvLnN1YnN0cihudW1lcm8ubGVuZ3RoIC0gNilcbiAgY29uc3QgbnVtZXJvTWlsbGllcnNEaXIgPSBwYXRoLmpvaW4obGVnaXNsYXR1cmVEaXIsIG51bWVyby5zdWJzdHIoMCwgMykpXG4gIGZzLmVuc3VyZURpclN5bmMobnVtZXJvTWlsbGllcnNEaXIpXG4gIHJldHVybiBwYXRoLmpvaW4obnVtZXJvTWlsbGllcnNEaXIsIHVpZClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|