@projectcor/maia-components 2.11.41-3 → 2.11.41-4

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.
@@ -16,4 +16,4 @@ export var useUser = function useUser() {
16
16
  }
17
17
  return user;
18
18
  };
19
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDb250ZXh0IiwiVXNlckNvbnRleHQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJ1c2VyIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9jb3ItdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVc2VyQ29udGV4dCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9wcm92aWRlcnMvVXNlclByb3ZpZGVyJ1xuXG5leHBvcnQgZW51bSBDT1JVc2VyUm9sZSB7XG4gIENMRVZFTCA9IDEsXG4gIERJUkVDVE9SID0gMixcbiAgUFJPSkVDVF9NQU5BR0VSID0gMyxcbiAgQ09MTEFCT1JBVE9SID0gNCxcbiAgRlJFRUxBTkNFUiA9IDUsXG4gIENMSUVOVCA9IDYsXG59XG5cbnR5cGUgUGVybWlzc2lvbkFjdGlvbiA9XG4gIHwgJ3ZpZXcnXG4gIHwgJ2VkaXQnXG4gIHwgJ2NyZWF0ZSdcbiAgfCAnZGVsZXRlJ1xuICB8ICdhcmNoaXZlJ1xuICB8ICdkZWxldGVGaWxlJ1xuICB8ICdpbnZvaWNlJ1xuICB8ICd2aWV3VXNlckNhcGFjaXR5J1xuICB8ICd2aWV3SG91cnMnXG4gIHwgJ2NyZWF0ZVN1YlRhc2tzJ1xuICB8ICd2aWV3VGFza3NPcHRpb25zJ1xuICB8ICd1cGRhdGVEZXNjcmlwdGlvbidcblxudHlwZSBQZXJtaXNzaW9uTW9kdWxlID1cbiAgfCAncXVvdGF0aW9ucydcbiAgfCAncHJveWVjdG9zJ1xuICB8ICd0YXNrcydcbiAgfCAndGFza3NfZGVhZGxpbmUnXG4gIHwgJ2NsaWVudHMnXG4gIHwgJ3VzZXJzJ1xuICB8ICdsZWF2ZXMnXG4gIHwgJ3Byb2plY3RfZ2FudHQnXG4gIHwgJ3NldHRpbmdzJ1xuICB8ICdwYXNzd29yZHMnXG4gIHwgJ25vdGlmaWNhdGlvbnMnXG4gIHwgJ2hvdXJzJ1xuICB8ICdwcm9qZWN0X3RlbXBsYXRlcydcbiAgfCAnbWV0cmljcydcbiAgfCAnZGFzaGJvYXJkcydcbiAgfCAnZ2FudHQnXG4gIHwgJ3NhbGFyeSdcbiAgfCAnYWlfYWdlbnRzJ1xuXG50eXBlIEFjY2Vzc1R5cGVNb2R1bGUgPSBQZXJtaXNzaW9uTW9kdWxlIHwgJ3BsYW5uZXJfdmlldycgfCAncGxhbm5lcl9lZGl0J1xuXG5leHBvcnQgdHlwZSBDT1JVc2VyID0ge1xuICB1c2VyX3Bvc2l0aW9uPzogc3RyaW5nXG4gIGNvbXBhbnlfaWQ6IG51bWJlclxuICBpZDogbnVtYmVyXG4gIGZpcnN0TmFtZTogc3RyaW5nXG4gIGxhc3ROYW1lOiBzdHJpbmdcbiAgLyoqIFByZXNlbnRlIGVuIHJ1bnRpbWUgdsOtYSBgVXNlclByb3ZpZGVyYDsgdXNhZG8gcC4gZWouIGVuIHRvb2x0aXAgZGUgbWVuY2nDs24g4oCcWW/igJ0uICovXG4gIGVtYWlsPzogc3RyaW5nXG4gIHBpY3R1cmU6IHN0cmluZ1xuICByb2xlOiBzdHJpbmdcbiAgY29tcGFueTogc3RyaW5nXG4gIHJvbGVfaWQ6IENPUlVzZXJSb2xlXG4gIGxhbmc6IHN0cmluZ1xuICBwZXJtaXNzaW9ucz86IHtcbiAgICBbTSBpbiBQZXJtaXNzaW9uTW9kdWxlXT86IFBhcnRpYWw8UmVjb3JkPFBlcm1pc3Npb25BY3Rpb24sIGJvb2xlYW4+PlxuICB9XG4gIGFjY2Vzc190eXBlPzoge1xuICAgIFtNIGluIEFjY2Vzc1R5cGVNb2R1bGVdPzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVVzZXIgPSAoKSA9PiB7XG4gIGNvbnN0IHVzZXIgPSB1c2VDb250ZXh0KFVzZXJDb250ZXh0KVxuXG4gIGlmICghdXNlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignVXNlckNvbnRleHQgbm90IGZvdW5kJylcbiAgfVxuXG4gIHJldHVybiB1c2VyIGFzIENPUlVzZXJcbn1cbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsVUFBVSxRQUFRLE9BQU87QUFDbEMsU0FBU0MsV0FBVyxRQUFRLG9EQUFvRDtBQUVoRixXQUFZQyxXQUFXLDBCQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQUEsT0FBWEEsV0FBVztBQUFBO0FBa0V2QixPQUFPLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBLEVBQVM7RUFDM0IsSUFBTUMsSUFBSSxHQUFHSixVQUFVLENBQUNDLFdBQVcsQ0FBQztFQUVwQyxJQUFJLENBQUNHLElBQUksRUFBRTtJQUNULE1BQU0sSUFBSUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDO0VBQzFDO0VBRUEsT0FBT0QsSUFBSTtBQUNiLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
19
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDb250ZXh0IiwiVXNlckNvbnRleHQiLCJDT1JVc2VyUm9sZSIsInVzZVVzZXIiLCJ1c2VyIiwiRXJyb3IiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udGV4dC9jb3ItdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBVc2VyQ29udGV4dCB9IGZyb20gJ0Bwcm9qZWN0Y29yL2Nvci1jb21tb25zL2xpYi9wcm92aWRlcnMvVXNlclByb3ZpZGVyJ1xuXG5leHBvcnQgZW51bSBDT1JVc2VyUm9sZSB7XG4gIENMRVZFTCA9IDEsXG4gIERJUkVDVE9SID0gMixcbiAgUFJPSkVDVF9NQU5BR0VSID0gMyxcbiAgQ09MTEFCT1JBVE9SID0gNCxcbiAgRlJFRUxBTkNFUiA9IDUsXG4gIENMSUVOVCA9IDYsXG59XG5cbnR5cGUgUGVybWlzc2lvbkFjdGlvbiA9XG4gIHwgJ3ZpZXcnXG4gIHwgJ2VkaXQnXG4gIHwgJ2NyZWF0ZSdcbiAgfCAnZGVsZXRlJ1xuICB8ICdhcmNoaXZlJ1xuICB8ICdkZWxldGVGaWxlJ1xuICB8ICdpbnZvaWNlJ1xuICB8ICd2aWV3VXNlckNhcGFjaXR5J1xuICB8ICd2aWV3SG91cnMnXG4gIHwgJ2NyZWF0ZVN1YlRhc2tzJ1xuICB8ICd2aWV3VGFza3NPcHRpb25zJ1xuICB8ICd1cGRhdGVEZXNjcmlwdGlvbidcblxudHlwZSBQZXJtaXNzaW9uTW9kdWxlID1cbiAgfCAncXVvdGF0aW9ucydcbiAgfCAncHJveWVjdG9zJ1xuICB8ICd0YXNrcydcbiAgfCAndGFza3NfZGVhZGxpbmUnXG4gIHwgJ2NsaWVudHMnXG4gIHwgJ3VzZXJzJ1xuICB8ICdsZWF2ZXMnXG4gIHwgJ3Byb2plY3RfZ2FudHQnXG4gIHwgJ3NldHRpbmdzJ1xuICB8ICdwYXNzd29yZHMnXG4gIHwgJ25vdGlmaWNhdGlvbnMnXG4gIHwgJ2hvdXJzJ1xuICB8ICdwcm9qZWN0X3RlbXBsYXRlcydcbiAgfCAnbWV0cmljcydcbiAgfCAnZGFzaGJvYXJkcydcbiAgfCAnZ2FudHQnXG4gIHwgJ3NhbGFyeSdcbiAgfCAnYWlfYWdlbnRzJ1xuXG50eXBlIEFjY2Vzc1R5cGVNb2R1bGUgPSBQZXJtaXNzaW9uTW9kdWxlIHwgJ3BsYW5uZXJfdmlldycgfCAncGxhbm5lcl9lZGl0J1xuXG50eXBlIFVzZXJQb3NpdGlvbiA9IHtcbiAgaWQ/OiBudW1iZXJcbiAgdXNlcl9wb3NpdGlvbnNfdW5pZmllZF9pZD86IG51bWJlclxuICBsYW5nPzogc3RyaW5nXG4gIGNvbXBhbnlfaWQ/OiBudW1iZXJcbiAgY3JlYXRlZF9hdD86IHN0cmluZ1xuICBuYW1lPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIENPUlVzZXIgPSB7XG4gIHVzZXJfcG9zaXRpb24/OiBzdHJpbmcgfCBVc2VyUG9zaXRpb25cbiAgY29tcGFueV9pZDogbnVtYmVyXG4gIGlkOiBudW1iZXJcbiAgZmlyc3ROYW1lOiBzdHJpbmdcbiAgbGFzdE5hbWU6IHN0cmluZ1xuICAvKiogUHJlc2VudGUgZW4gcnVudGltZSB2w61hIGBVc2VyUHJvdmlkZXJgOyB1c2FkbyBwLiBlai4gZW4gdG9vbHRpcCBkZSBtZW5jacOzbiDigJxZb+KAnS4gKi9cbiAgZW1haWw/OiBzdHJpbmdcbiAgcGljdHVyZTogc3RyaW5nXG4gIHJvbGU6IHN0cmluZ1xuICBjb21wYW55OiBzdHJpbmdcbiAgcm9sZV9pZDogQ09SVXNlclJvbGVcbiAgbGFuZzogc3RyaW5nXG4gIHBlcm1pc3Npb25zPzoge1xuICAgIFtNIGluIFBlcm1pc3Npb25Nb2R1bGVdPzogUGFydGlhbDxSZWNvcmQ8UGVybWlzc2lvbkFjdGlvbiwgYm9vbGVhbj4+XG4gIH1cbiAgYWNjZXNzX3R5cGU/OiB7XG4gICAgW00gaW4gQWNjZXNzVHlwZU1vZHVsZV0/OiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgdXNlVXNlciA9ICgpID0+IHtcbiAgY29uc3QgdXNlciA9IHVzZUNvbnRleHQoVXNlckNvbnRleHQpXG5cbiAgaWYgKCF1c2VyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVc2VyQ29udGV4dCBub3QgZm91bmQnKVxuICB9XG5cbiAgcmV0dXJuIHVzZXIgYXMgQ09SVXNlclxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsT0FBTztBQUNsQyxTQUFTQyxXQUFXLFFBQVEsb0RBQW9EO0FBRWhGLFdBQVlDLFdBQVcsMEJBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBWEEsV0FBVyxDQUFYQSxXQUFXO0VBQVhBLFdBQVcsQ0FBWEEsV0FBVztFQUFYQSxXQUFXLENBQVhBLFdBQVc7RUFBQSxPQUFYQSxXQUFXO0FBQUE7QUEyRXZCLE9BQU8sSUFBTUMsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUEsRUFBUztFQUMzQixJQUFNQyxJQUFJLEdBQUdKLFVBQVUsQ0FBQ0MsV0FBVyxDQUFDO0VBRXBDLElBQUksQ0FBQ0csSUFBSSxFQUFFO0lBQ1QsTUFBTSxJQUFJQyxLQUFLLENBQUMsdUJBQXVCLENBQUM7RUFDMUM7RUFFQSxPQUFPRCxJQUFJO0FBQ2IsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -2,6 +2,7 @@ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
4
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ import _typeof from "@babel/runtime/helpers/typeof";
5
6
  import _regeneratorRuntime from "@babel/runtime/regenerator";
6
7
  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; }
7
8
  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; }
@@ -147,6 +148,13 @@ var normalizeTrimmedString = function normalizeTrimmedString(value) {
147
148
  if (typeof value !== 'string') return '';
148
149
  return value.trim();
149
150
  };
151
+ var getUserPositionName = function getUserPositionName(userPosition) {
152
+ if (typeof userPosition === 'string') return userPosition.trim();
153
+ if (userPosition && _typeof(userPosition) === 'object' && 'name' in userPosition) {
154
+ return normalizeTrimmedString(userPosition.name);
155
+ }
156
+ return '';
157
+ };
150
158
  var mapClientToItem = function mapClientToItem(c, searchValue) {
151
159
  var _c$totalProyectos, _c$totalProyectos2;
152
160
  return {
@@ -187,7 +195,7 @@ var mapCorUserToUserItem = function mapCorUserToUserItem(user, searchValue, meLa
187
195
  var _user$firstName, _user$lastName;
188
196
  var fullName = "".concat((_user$firstName = user.firstName) !== null && _user$firstName !== void 0 ? _user$firstName : '', " ").concat((_user$lastName = user.lastName) !== null && _user$lastName !== void 0 ? _user$lastName : '').trim();
189
197
  /** Solo cargo real; sin fallback a `role` (la UI muestra “Sin posición” si falta). */
190
- var positionLine = normalizeTrimmedString(user.user_position) || null;
198
+ var positionLine = getUserPositionName(user.user_position) || null;
191
199
  var email = normalizeTrimmedString(user.email) || null;
192
200
  return {
193
201
  id: user.id,
@@ -1121,4 +1129,4 @@ export var useEntitySearch = function useEntitySearch(type, scope) {
1121
1129
  fetchRecent: fetchRecent
1122
1130
  };
1123
1131
  };
1124
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldFJlY2VudENsaWVudHMiLCJnZXRSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFRhc2tzIiwidXNlVXNlciIsIlBST0pFQ1RTX0ZBTExCQUNLIiwiU0VBUkNIX0VOVElUSUVTIiwiVEFTS19GQU1JTFlfRkFMTEJBQ0siLCJTRUFSQ0hfQ0xJRU5UUyIsIlVTRVJTX0RJUkVDVE9SWSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwidXNlVCIsIm5vcm1hbGl6ZVBvc2l0aXZlSW50IiwidmFsdWUiLCJmYWxsYmFjayIsInBhcnNlZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9ybWFsaXplZCIsIk1hdGgiLCJmbG9vciIsIkJBU0VfRklMVEVSU19CWV9UWVBFIiwicHJvamVjdCIsImFyY2hpdmVkIiwidGFzayIsImJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyIsInNjb3BlIiwicmF3Q2xpZW50IiwiY2xpZW50SWQiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJyYXdQcm9qZWN0IiwicHJvamVjdElkIiwiYWdlbnRFbnRpdHkiLCJlbnRyaWVzIiwicHVzaENsaWVudCIsInB1c2giLCJwdXNoUHJvamVjdCIsImJ1aWxkVGFza1NlYXJjaEV4dHJhIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsImJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhIiwiYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhIiwidHlwZSIsImJ1aWxkRmlsdGVyc0ZvclR5cGUiLCJidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyIsInEiLCJiYXNlIiwid2l0aFBvc2l0aW9uIiwid2l0aFRlYW1zIiwidHJpbW1lZFEiLCJ0cmltIiwic2VhcmNoSW5wdXQiLCJoaWdobGlnaHRSYW5nZSIsInRleHQiLCJzZWFyY2hWYWx1ZSIsImlkeCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsInN0YXJ0IiwiZmlyc3REZWZpbmVkIiwiX2xlbiIsImFyZ3VtZW50cyIsInZhbHVlcyIsIkFycmF5IiwiX2tleSIsImZpbmQiLCJub3JtYWxpemVUcmltbWVkU3RyaW5nIiwibWFwQ2xpZW50VG9JdGVtIiwiYyIsIl9jJHRvdGFsUHJveWVjdG9zIiwiX2MkdG90YWxQcm95ZWN0b3MyIiwiaWQiLCJwcmltYXJ5IiwibmFtZSIsInByaW1hcnlIaWdobGlnaHQiLCJicmVhZGNydW1iIiwiY291bnQiLCJ0b3RhbFByb3llY3RvcyIsImNvdW50TGFiZWwiLCJyYXciLCJtYXBVc2VyVG9JdGVtIiwidSIsIl91JGZpcnN0TmFtZSIsIl91JGxhc3ROYW1lIiwiX3UkcGljdHVyZSIsIl91JHBvc2l0aW9uTmFtZSIsIl91JGVtYWlsIiwiZnVsbE5hbWUiLCJjb25jYXQiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImVtYWlsIiwicGljdHVyZSIsInBvc2l0aW9uTmFtZSIsIm1hcENvclVzZXJUb1VzZXJJdGVtIiwidXNlciIsIm1lTGFiZWwiLCJfdXNlciRmaXJzdE5hbWUiLCJfdXNlciRsYXN0TmFtZSIsInBvc2l0aW9uTGluZSIsInVzZXJfcG9zaXRpb24iLCJtYXBSZWNlbnRUYXNrVG9JdGVtIiwiX3Rhc2skcHJvamVjdE5hbWUiLCJzaG93UHJvamVjdE5hbWVJblRhc2tSb3ciLCJ0aXRsZSIsInByb2plY3ROYW1lIiwicGFyZW50Iiwibm9ybWFsaXplVGFza0ZhbWlseVJlY29yZCIsInJlY29yZCIsIl9yZWNvcmQkdGl0bGUiLCJfZmlyc3REZWZpbmVkIiwiX3JlY29yZCRwcm9qZWN0IiwiX3JlY29yZCRmYXRoZXIiLCJfcmVjb3JkJGZhdGhlcjIiLCJ0YXNrRmFtaWx5SWQiLCJfaWQiLCJmYXRoZXIiLCJoYXNGYXRoZXIiLCJ0YXNrRmF0aGVyIiwibm9ybWFsaXplUHJvamVjdHNGYWxsYmFja1JlY29yZCIsIl9yZWNvcmQkbmFtZSIsIl9maXJzdERlZmluZWQyIiwiX3JlY29yZCRjbGllbnQiLCJfcmVjb3JkJGNsaWVudCRuYW1lIiwiX3JlY29yZCRjbGllbnQyIiwiY2xpZW50IiwiY2xpZW50TmFtZSIsIm1hcFNlYXJjaFRvSXRlbSIsInIiLCJfciRwcm9qZWN0TmFtZSIsIl9yJHByb2plY3ROYW1lMiIsIl9yJGNsaWVudElkIiwiX3IkY2xpZW50TmFtZSIsIl9yJGZlZUlkIiwiX2ZhdGhlciR0aXRsZSIsInRhc2tQcm9qZWN0TmFtZSIsImZlZUlkIiwiZmF0aGVySWQiLCJmYXRoZXJUaXRsZSIsImZvcm1hdE1jcFByaW1hcnlMYWJlbCIsInNsdWciLCJyZXBsYWNlIiwiY2hhciIsInRvVXBwZXJDYXNlIiwibWFwTWNwU2x1Z3NUb0l0ZW1zIiwic2x1Z3MiLCJmaWx0ZXJlZCIsImZpbHRlciIsInMiLCJpbmNsdWRlcyIsIm1hcCIsInVzZUVudGl0eVNlYXJjaCIsIl9zY29wZSRtY3BTbHVncyIsImNvclVzZXIiLCJfdXNlVCIsInQiLCJyZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5Iiwic2V0U2VhcmNoVmFsdWUiLCJkZWJvdW5jZWRTZWFyY2hWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaXRlbXMiLCJzZXRJdGVtcyIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwibG9hZGluZyIsInNldExvYWRpbmciLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImVycm9yIiwic2V0RXJyb3IiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsImhpZGVSZWNlbnRzTGFiZWwiLCJzZXRIaWRlUmVjZW50c0xhYmVsIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiaGFzTW9yZSIsInNldEhhc01vcmUiLCJfdXNlU3RhdGUxMSIsIl91c2VTdGF0ZTEyIiwiaXNMb2FkaW5nTW9yZSIsInNldElzTG9hZGluZ01vcmUiLCJfdXNlU3RhdGUxMyIsIl91c2VTdGF0ZTE0IiwiY3VycmVudFBhZ2UiLCJzZXRDdXJyZW50UGFnZSIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJhY3RpdmVQYWdpbmF0aW9uU291cmNlIiwic2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSIsIm1jcFNsdWdzS2V5IiwibWNwU2x1Z3MiLCJqb2luIiwic3RhYmxlU2NvcGUiLCJfc2NvcGUkY2xpZW50SWQiLCJfc2NvcGUkcHJvamVjdElkIiwiX3Njb3BlJG1jcFNsdWdzMiIsIl9zY29wZSRhZ2VudEVudGl0eSIsIl91c2VMYXp5UXVlcnkiLCJ2YXJpYWJsZXMiLCJsaW1pdCIsImZldGNoUG9saWN5IiwiX3VzZUxhenlRdWVyeTIiLCJmZXRjaFNlYXJjaEVudGl0aWVzIiwiX3VzZUxhenlRdWVyeTIkIiwic2VhcmNoRGF0YSIsImRhdGEiLCJzZWFyY2hMb2FkaW5nIiwic2VhcmNoRXJyb3IiLCJfdXNlTGF6eVF1ZXJ5MyIsIl91c2VMYXp5UXVlcnk0IiwiZmV0Y2hTZWFyY2hDbGllbnRzIiwiX3VzZUxhenlRdWVyeTQkIiwiY2xpZW50c0RhdGEiLCJjbGllbnRzTG9hZGluZyIsImNsaWVudHNFcnJvciIsIl91c2VMYXp5UXVlcnk1IiwiX3VzZUxhenlRdWVyeTYiLCJmZXRjaFVzZXJzRGlyZWN0b3J5IiwiX3VzZUxhenlRdWVyeTYkIiwidXNlcnNEYXRhIiwidXNlcnNMb2FkaW5nIiwidXNlcnNFcnJvciIsInN5bmNVc2Vyc1BhZ2luYXRpb24iLCJwYXlsb2FkIiwiX3BheWxvYWQkdXNlcnNEaXJlY3RvIiwiX3BheWxvYWQkdXNlcnNEaXJlY3RvMiIsInBhZ2UiLCJ1c2Vyc0RpcmVjdG9yeSIsImxhc3RQYWdlIiwic3luY0NsaWVudHNQYWdpbmF0aW9uIiwiX3BheWxvYWQkY2xpZW50cyIsIl9wYXlsb2FkJGNsaWVudHMyIiwiY2xpZW50cyIsInN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uIiwiX3BheWxvYWQkdGFza0ZhbWlseSIsIl9wYXlsb2FkJHRhc2tGYW1pbHkyIiwicmF3UGFnZSIsInRhc2tGYW1pbHkiLCJzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiIsIl9wYXlsb2FkJHByb2plY3RzIiwiX3BheWxvYWQkcHJvamVjdHMyIiwicHJvamVjdHMiLCJfdXNlTGF6eVF1ZXJ5NyIsIl91c2VMYXp5UXVlcnk4IiwiZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2siLCJfdXNlTGF6eVF1ZXJ5OSIsIl91c2VMYXp5UXVlcnkwIiwiZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrIiwiZmV0Y2hSZWNlbnQiLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsImdlbmVyYXRpb24iLCJfc3RhYmxlU2NvcGUkbWNwU2x1Z3MiLCJtYXBwZWQiLCJfZGF0YSIsIl9tYXBwZWQiLCJfZmFsbGJhY2tEYXRhJHByb2plY3QiLCJfZmFsbGJhY2tEYXRhJHByb2plY3QyIiwiYXJndW1lbnRzRmlsdGVyIiwiX3lpZWxkJGZldGNoUHJvamVjdHNGIiwiZmFsbGJhY2tEYXRhIiwiZmFsbGJhY2tNYXBwZWQiLCJyZWNlbnRUYXNrRmlsdGVycyIsIl9kYXRhMiIsInRhc2tJdGVtcyIsIl9mYWxsYmFja0RhdGEkdGFza0ZhbSIsIl9mYWxsYmFja0RhdGEkdGFza0ZhbTIiLCJfeWllbGQkZmV0Y2hUYXNrRmFtaWwiLCJfZmFsbGJhY2tEYXRhIiwiX2RhdGEzJHVzZXJzRGlyZWN0b3J5IiwiX2RhdGEzJHVzZXJzRGlyZWN0b3J5MiIsIl95aWVsZCRmZXRjaFVzZXJzRGlyZSIsIl9kYXRhMyIsIl9tYXBwZWQyIiwibWVJdGVtIiwid2l0aG91dE1lIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImN1cnJlbnQiLCJhYnJ1cHQiLCJzZW50IiwiaXNBcnJheSIsInAiLCJjbGllbnRfaWQiLCJfb2JqZWN0U3ByZWFkIiwicGVyUGFnZSIsIml0ZW0iLCJwcm9qZWN0SWRzIiwiY2xpZW50SWRzIiwicGFnaW5hdGlvbiIsIm9mZnNldCIsInNpemUiLCJmaWx0ZXJzIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiZmluaXNoIiwic3RvcCIsIl9zdGFibGVTY29wZSRtY3BTbHVnczIiLCJleHRyYSIsIl9jbGllbnRzRGF0YSRjbGllbnRzIiwiX3VzZXJzRGF0YSR1c2Vyc0RpcmVjIiwibWVJZCIsImhhc01lSW5SZXN1bHRzIiwic29tZSIsInNlYXJjaCIsImxvYWRNb3JlIiwiX2NhbGxlZTIiLCJzYWZlQ3VycmVudFBhZ2UiLCJuZXh0UGFnZSIsImxvYWRNb3JlQmFzZWxpbmVHZW4iLCJfZGF0YSR1c2Vyc0RpcmVjdG9yeSIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5MiIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5JCIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5MyIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5JDIiLCJfZGF0YSR1c2Vyc0RpcmVjdG9yeTQiLCJfeWllbGQkZmV0Y2hVc2Vyc0RpcmUyIiwibmV4dEl0ZW1zIiwiX2RhdGE0JGNsaWVudHMiLCJfZGF0YTQkY2xpZW50czIiLCJfZGF0YTQkY2xpZW50cyRkYXRhJGwiLCJfZGF0YTQkY2xpZW50czMiLCJfZGF0YTQkY2xpZW50cyRkYXRhIiwiX2RhdGE0JGNsaWVudHM0IiwiX3lpZWxkJGZldGNoU2VhcmNoQ2xpIiwiX2RhdGE0IiwiX25leHRJdGVtcyIsIl9kYXRhNSR0YXNrRmFtaWx5IiwiX2RhdGE1JHRhc2tGYW1pbHkyIiwiX2RhdGE1JHRhc2tGYW1pbHkkZGF0IiwiX2RhdGE1JHRhc2tGYW1pbHkzIiwiX2RhdGE1JHRhc2tGYW1pbHkkZGF0MiIsIl9kYXRhNSR0YXNrRmFtaWx5NCIsIl95aWVsZCRmZXRjaFRhc2tGYW1pbDIiLCJfZGF0YTUiLCJfbmV4dEl0ZW1zMiIsIl9kYXRhNiRwcm9qZWN0cyIsIl9kYXRhNiRwcm9qZWN0czIiLCJfZGF0YTYkcHJvamVjdHMkZGF0YSQiLCJfZGF0YTYkcHJvamVjdHMzIiwiX2RhdGE2JHByb2plY3RzJGRhdGEiLCJfZGF0YTYkcHJvamVjdHM0IiwiX3lpZWxkJGZldGNoUHJvamVjdHNGMiIsIl9kYXRhNiIsIl9uZXh0SXRlbXMzIiwiX3QyIiwiX2NvbnRleHQyIiwiY29uc29sZSIsImluZm8iLCJzb3VyY2UiLCJxdWVyeSIsIl9wcmV2JCIsImV4aXN0aW5nSWRzIiwiU2V0IiwiYXBwZW5kZWQiLCJoYXMiLCJ1cGRhdGVTZWFyY2hWYWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VFbnRpdHlTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlTGF6eVF1ZXJ5IH0gZnJvbSAnQGFwb2xsby9jbGllbnQnXG5pbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBnZXRSZWNlbnRDbGllbnRzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRDbGllbnRzL2dldFJlY2VudENsaWVudHMnXG5pbXBvcnQgeyBnZXRSZWNlbnRQcm9qZWN0cyB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvUmVjZW50UHJvamVjdHMvZ2V0UmVjZW50UHJvamVjdHMnXG5pbXBvcnQgeyBnZXRSZWNlbnRUYXNrcyB9IGZyb20gJy4uL3NlcnZpY2VzL21haWEvUmVjZW50VGFza3MvZ2V0UmVjZW50VGFza3MnXG5pbXBvcnQgdHlwZSB7IFJlY2VudFRhc2tJdGVtIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRUYXNrcy9nZXRSZWNlbnRUYXNrcydcbmltcG9ydCB7IHVzZVVzZXIgfSBmcm9tICcuLi9jb250ZXh0L2Nvci11c2VyJ1xuaW1wb3J0IHsgUFJPSkVDVFNfRkFMTEJBQ0ssIFNFQVJDSF9FTlRJVElFUywgVEFTS19GQU1JTFlfRkFMTEJBQ0sgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9lbnRpdHlTZWFyY2hRdWVyeSdcbmltcG9ydCB7IFNFQVJDSF9DTElFTlRTIH0gZnJvbSAnLi4vc2VydmljZXMvcXVlcnkvQ2xpZW50U2VhcmNoUXVlcnknXG5pbXBvcnQgeyBVU0VSU19ESVJFQ1RPUlkgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS91c2Vyc0RpcmVjdG9yeVF1ZXJ5J1xuaW1wb3J0IHsgU0VBUkNIX1FVRVJZX0RFQk9VTkNFX01TIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IHVzZURlYm91bmNlIH0gZnJvbSAnLi91c2VEZWJvdW5jZSdcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuL3VzZVQnXG5pbXBvcnQgeyBDb250ZXh0RW50aXR5VHlwZSwgQ29udGV4dE1lbnRpb25JdGVtIH0gZnJvbSAnLi4vdHlwZXMvY29udGV4dE1lbnRpb24nXG5pbXBvcnQgdHlwZSB7IEFnZW50RW50aXR5IH0gZnJvbSAnLi4vdHlwZXMvYWdlbnQnXG5cbnR5cGUgUmF3U2VhcmNoUmVzdWx0ID0ge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIHRpdGxlOiBzdHJpbmdcbiAgdHlwZT86IHN0cmluZ1xuICBjbGllbnRJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgZmVlSWQ/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsXG4gIGNsaWVudE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBmYXRoZXI/OiB7IGlkOiBzdHJpbmcgfCBudW1iZXI7IHRpdGxlPzogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbFxufVxuXG50eXBlIFJhd0NsaWVudCA9IHtcbiAgaWQ6IG51bWJlciB8IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgdG90YWxQcm95ZWN0b3M/OiBudW1iZXIgfCBudWxsXG59XG5cbnR5cGUgUmF3RGlyZWN0b3J5VXNlciA9IHtcbiAgaWQ6IHN0cmluZyB8IG51bWJlclxuICBmaXJzdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGxhc3ROYW1lPzogc3RyaW5nIHwgbnVsbFxuICBlbWFpbD86IHN0cmluZyB8IG51bGxcbiAgcGljdHVyZT86IHN0cmluZyB8IG51bGxcbiAgcG9zaXRpb25OYW1lPzogc3RyaW5nIHwgbnVsbFxufVxuXG50eXBlIFNlYXJjaEVudGl0aWVzRGF0YSA9IHsgc2VhcmNoOiBSYXdTZWFyY2hSZXN1bHRbXSB8IG51bGwgfVxudHlwZSBTZWFyY2hDbGllbnRzRGF0YSA9IHtcbiAgY2xpZW50czoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhOiBSYXdDbGllbnRbXVxuICB9IHwgbnVsbFxufVxudHlwZSBVc2Vyc0RpcmVjdG9yeURhdGEgPSB7XG4gIHVzZXJzRGlyZWN0b3J5OiB7XG4gICAgdG90YWw/OiBudW1iZXIgfCBudWxsXG4gICAgcGVyUGFnZT86IG51bWJlciB8IG51bGxcbiAgICBwYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGRhdGE6IFJhd0RpcmVjdG9yeVVzZXJbXSB8IG51bGxcbiAgfSB8IG51bGxcbn1cblxudHlwZSBUYXNrRmFtaWx5UmVjb3JkID0ge1xuICBfaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHRpdGxlPzogc3RyaW5nIHwgbnVsbFxuICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHRhc2tGYXRoZXI/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIGZhdGhlcj86IHsgaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyB0aXRsZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbiAgcHJvamVjdD86IHsgaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyBuYW1lPzogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbFxufVxuXG50eXBlIFRhc2tGYW1pbHlEYXRhID0ge1xuICB0YXNrRmFtaWx5Pzoge1xuICAgIHRvdGFsPzogbnVtYmVyIHwgbnVsbFxuICAgIHBlclBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgcGFnZT86IG51bWJlciB8IG51bGxcbiAgICBsYXN0UGFnZT86IG51bWJlciB8IG51bGxcbiAgICBkYXRhPzogVGFza0ZhbWlseVJlY29yZFtdIHwgbnVsbFxuICB9IHwgbnVsbFxufVxuXG50eXBlIEZhbGxiYWNrUHJvamVjdFJlY29yZCA9IHtcbiAgaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIG5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBjbGllbnQ/OiB7IGlkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbDsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGxcbn1cblxudHlwZSBQcm9qZWN0c0ZhbGxiYWNrRGF0YSA9IHtcbiAgcHJvamVjdHM/OiB7XG4gICAgdG90YWw/OiBudW1iZXIgfCBudWxsXG4gICAgcGVyUGFnZT86IG51bWJlciB8IG51bGxcbiAgICBwYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGRhdGE/OiBGYWxsYmFja1Byb2plY3RSZWNvcmRbXSB8IG51bGxcbiAgfSB8IG51bGxcbn1cblxudHlwZSBQYWdpbmF0aW9uU291cmNlID0gJ25vbmUnIHwgJ3VzZXJzJyB8ICdjbGllbnRzLXNlYXJjaCcgfCAndGFzay1mYWxsYmFjaycgfCAncHJvamVjdC1mYWxsYmFjaydcblxuY29uc3Qgbm9ybWFsaXplUG9zaXRpdmVJbnQgPSAodmFsdWU6IHVua25vd24sIGZhbGxiYWNrOiBudW1iZXIpOiBudW1iZXIgPT4ge1xuICBjb25zdCBwYXJzZWQgPSBOdW1iZXIodmFsdWUpXG4gIGlmICghTnVtYmVyLmlzRmluaXRlKHBhcnNlZCkpIHJldHVybiBmYWxsYmFja1xuICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5mbG9vcihwYXJzZWQpXG4gIHJldHVybiBub3JtYWxpemVkID4gMCA/IG5vcm1hbGl6ZWQgOiBmYWxsYmFja1xufVxuXG4vKipcbiAqIFJlc3RyaW5nZSBsb3MgcmVzdWx0YWRvcyBhbCBgY2xpZW50SWRgL2Bwcm9qZWN0SWRgIGRlbCBhZ2VudGUgYWN0aXZvLlxuICogQ3VhbmRvIGVsIGFnZW50ZSBlc3TDoSBzY29wZWFkbyBhIHVuIGNsaWVudC9wcm9qZWN0LCB0YW50byBsb3MgcmVjZW50cyBjb21vXG4gKiBlbCBzZWFyY2ggZGViZW4gZmlsdHJhciBwb3IgZXNlIGNvbnRleHRvLiBTaSBlbCBiYWNrZW5kIG5vIGVudGllbmRlIGFsZ8O6blxuICogY2FtcG8gbG8gaWdub3JhIHkgc2UgY2FlIGFsIGNvbXBvcnRhbWllbnRvIGdsb2JhbC5cbiAqL1xuZXhwb3J0IHR5cGUgRW50aXR5U2VhcmNoU2NvcGUgPSB7XG4gIGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbFxuICBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIC8qKiBTbHVncyBkZWwgY29uZWN0b3IgTUNQIGRlbCBhZ2VudGUgKGxpc3RhZG8gbG9jYWwsIHNpbiBHcmFwaFFMKS4gKi9cbiAgbWNwU2x1Z3M/OiBzdHJpbmdbXVxuICAvKipcbiAgICogYGVudGl0eWAgZGVsIGFnZW50ZSBhY3Rpdm8uIFBhcmEgZXNwZWNpYWxpc3RhczpcbiAgICogLSBgcHJvamVjdGA6IGLDunNxdWVkYSBkZSB0YXJlYXMgZnVlcnphIGZpbHRybyBwb3IgYHByb2plY3RJZGAgZGVsIGNvbnRleHRvLlxuICAgKiAtIGBjbGllbnRgOiBiw7pzcXVlZGEgZGUgcHJveWVjdG9zIHBvciBgY2xpZW50SWRgOyB0YXJlYXMgcG9yIGNsaWVudGUgKHkgcHJveWVjdG8gc2kgYXBsaWNhKS5cbiAgICovXG4gIGFnZW50RW50aXR5PzogQWdlbnRFbnRpdHkgfCBudWxsXG59XG5cbnR5cGUgU2VhcmNoRmlsdGVyYWJsZVR5cGUgPSAncHJvamVjdCcgfCAndGFzaydcblxuY29uc3QgQkFTRV9GSUxURVJTX0JZX1RZUEU6IFJlY29yZDxTZWFyY2hGaWx0ZXJhYmxlVHlwZSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7XG4gIHByb2plY3Q6IHsgcHJvamVjdDogJ3RydWUnLCBhcmNoaXZlZDogJ2FsbCcgfSxcbiAgdGFzazogeyB0YXNrOiAndHJ1ZScsIGFyY2hpdmVkOiAnZmFsc2UnIH0sXG59XG5cbi8qKlxuICogRW50cmFkYXMgcGFyYSBlbCBhcmd1bWVudG8gR3JhcGhRTCBgZXh0cmFgIChKU09OIHN0cmluZyBkZSBhcnJheSkgYWwgYnVzY2FyIHRhcmVhcyBjb24gY29udGV4dG8uXG4gKiBFai46IFt7XCJwcm9qZWN0SWRcIjpcIjg4MTU1MlwifV1cbiAqL1xuY29uc3QgYnVpbGRUYXNrU2VhcmNoRXh0cmFFbnRyaWVzID0gKHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpOiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9PiB7XG4gIGNvbnN0IHJhd0NsaWVudCA9XG4gICAgc2NvcGU/LmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc2NvcGU/LmNsaWVudElkICE9PSBudWxsICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gJycgPyBTdHJpbmcoc2NvcGUuY2xpZW50SWQpIDogbnVsbFxuICBjb25zdCByYXdQcm9qZWN0ID1cbiAgICBzY29wZT8ucHJvamVjdElkICE9PSB1bmRlZmluZWQgJiYgc2NvcGU/LnByb2plY3RJZCAhPT0gbnVsbCAmJiBzY29wZT8ucHJvamVjdElkICE9PSAnJ1xuICAgICAgPyBTdHJpbmcoc2NvcGUucHJvamVjdElkKVxuICAgICAgOiBudWxsXG5cbiAgY29uc3QgYWdlbnRFbnRpdHkgPSBzY29wZT8uYWdlbnRFbnRpdHlcbiAgY29uc3QgZW50cmllczogQXJyYXk8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSBbXVxuXG4gIGNvbnN0IHB1c2hDbGllbnQgPSAoKSA9PiB7XG4gICAgaWYgKHJhd0NsaWVudCkgZW50cmllcy5wdXNoKHsgY2xpZW50SWQ6IHJhd0NsaWVudCB9KVxuICB9XG4gIGNvbnN0IHB1c2hQcm9qZWN0ID0gKCkgPT4ge1xuICAgIGlmIChyYXdQcm9qZWN0KSBlbnRyaWVzLnB1c2goeyBwcm9qZWN0SWQ6IHJhd1Byb2plY3QgfSlcbiAgfVxuXG4gIGlmIChhZ2VudEVudGl0eSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgaWYgKHJhd1Byb2plY3QpIHtcbiAgICAgIHB1c2hQcm9qZWN0KClcbiAgICB9IGVsc2UgaWYgKHJhd0NsaWVudCkge1xuICAgICAgcHVzaENsaWVudCgpXG4gICAgfVxuICB9IGVsc2UgaWYgKGFnZW50RW50aXR5ID09PSAnY2xpZW50Jykge1xuICAgIHB1c2hDbGllbnQoKVxuICAgIHB1c2hQcm9qZWN0KClcbiAgfSBlbHNlIHtcbiAgICBwdXNoQ2xpZW50KClcbiAgICBwdXNoUHJvamVjdCgpXG4gIH1cblxuICByZXR1cm4gZW50cmllc1xufVxuXG5jb25zdCBidWlsZFRhc2tTZWFyY2hFeHRyYSA9IChzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgZW50cmllcyA9IGJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyhzY29wZSlcbiAgaWYgKGVudHJpZXMubGVuZ3RoID09PSAwKSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShlbnRyaWVzKVxufVxuXG4vKipcbiAqIFRhYiBwcm95ZWN0bzogY29uIGBjbGllbnRJZGAgZW4gZWwgc2NvcGUsIGBleHRyYWAgYWNvdGEgbGEgYsO6c3F1ZWRhIGEgcHJveWVjdG9zIGRlIGVzZSBjbGllbnRlLlxuICogRWouOiBgW3tcImNsaWVudElkXCI6XCI0NzEwNVwifV1gIGp1bnRvIGEgYGZpbHRlcnNgIGB7XCJwcm9qZWN0XCI6XCJ0cnVlXCIsXCJhcmNoaXZlZFwiOlwiYWxsXCJ9YC5cbiAqL1xuY29uc3QgYnVpbGRQcm9qZWN0U2VhcmNoRXh0cmEgPSAoc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gIGNvbnN0IHJhd0NsaWVudCA9XG4gICAgc2NvcGU/LmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc2NvcGU/LmNsaWVudElkICE9PSBudWxsICYmIHNjb3BlPy5jbGllbnRJZCAhPT0gJycgPyBTdHJpbmcoc2NvcGUuY2xpZW50SWQpIDogbnVsbFxuICBpZiAoIXJhd0NsaWVudCkgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoW3sgY2xpZW50SWQ6IHJhd0NsaWVudCB9XSlcbn1cblxuY29uc3QgYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhID0gKHR5cGU6IFNlYXJjaEZpbHRlcmFibGVUeXBlLCBzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0YXNrJykgcmV0dXJuIGJ1aWxkVGFza1NlYXJjaEV4dHJhKHNjb3BlKVxuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSByZXR1cm4gYnVpbGRQcm9qZWN0U2VhcmNoRXh0cmEoc2NvcGUpXG4gIHJldHVybiB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiBUYWIgYHRhc2tgIC8gYHByb2plY3RgOiBgZmlsdGVyc2Agc8OzbG8gdGlwbyArIGFyY2hpdmVkICh0YXJlYXM6IG5vIGFyY2hpdmFkYXMpOyBzY29wZSAoY2xpZW50SWQgLyBwcm9qZWN0SWQgZW4gdGFyZWFzKSBlbiBgZXh0cmFgLlxuICovXG5jb25zdCBidWlsZEZpbHRlcnNGb3JUeXBlID0gKHR5cGU6IFNlYXJjaEZpbHRlcmFibGVUeXBlKTogc3RyaW5nID0+IHtcbiAgaWYgKHR5cGUgPT09ICdwcm9qZWN0Jykge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShCQVNFX0ZJTFRFUlNfQllfVFlQRS5wcm9qZWN0KVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShCQVNFX0ZJTFRFUlNfQllfVFlQRS50YXNrKVxufVxuXG4vKipcbiAqIEZpbHRyb3MgcGFyYSB1c2Vyc0RpcmVjdG9yeS4gRWwgYmFja2VuZCBlc3BlcmEgdW4gSlNPTiBzdHJpbmcgY29uXG4gKiB3aXRoUG9zaXRpb24sIHdpdGhUZWFtcyB5IHNlYXJjaElucHV0LiBMZSBhZ3JlZ2Ftb3MgY2xpZW50SWQvcHJvamVjdElkXG4gKiBkZWwgc2NvcGUgZW4gY2FzbyBkZSBxdWUgZWwgYmFja2VuZCBsb3MgYXByb3ZlY2hlIHBhcmEgZmlsdHJhciBwb3JcbiAqIGNvbnRleHRvIChzaSBubyBsb3MgZW50aWVuZGUgbG9zIGlnbm9yYSkuXG4gKi9cbmNvbnN0IGJ1aWxkVXNlcnNEaXJlY3RvcnlGaWx0ZXJzID0gKHE6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGJhc2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIHdpdGhQb3NpdGlvbjogdHJ1ZSxcbiAgICB3aXRoVGVhbXM6IHRydWUsXG4gIH1cbiAgY29uc3QgdHJpbW1lZFEgPSBxLnRyaW0oKVxuICBpZiAodHJpbW1lZFEpIHtcbiAgICBiYXNlLnNlYXJjaElucHV0ID0gdHJpbW1lZFFcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoYmFzZSlcbn1cblxuY29uc3QgaGlnaGxpZ2h0UmFuZ2UgPSAodGV4dDogc3RyaW5nLCBzZWFyY2hWYWx1ZTogc3RyaW5nKSA9PiB7XG4gIGlmICghc2VhcmNoVmFsdWUpIHJldHVybiB1bmRlZmluZWRcbiAgY29uc3QgaWR4ID0gdGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVmFsdWUudG9Mb3dlckNhc2UoKSlcbiAgaWYgKGlkeCA8IDApIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIHsgc3RhcnQ6IGlkeCwgbGVuZ3RoOiBzZWFyY2hWYWx1ZS5sZW5ndGggfVxufVxuXG5jb25zdCBmaXJzdERlZmluZWQgPSA8VD4oLi4udmFsdWVzOiBBcnJheTxUIHwgbnVsbCB8IHVuZGVmaW5lZD4pOiBUIHwgdW5kZWZpbmVkID0+XG4gIHZhbHVlcy5maW5kKHZhbHVlID0+IHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpXG5cbmNvbnN0IG5vcm1hbGl6ZVRyaW1tZWRTdHJpbmcgPSAodmFsdWU6IHVua25vd24pOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykgcmV0dXJuICcnXG4gIHJldHVybiB2YWx1ZS50cmltKClcbn1cblxuY29uc3QgbWFwQ2xpZW50VG9JdGVtID0gKGM6IFJhd0NsaWVudCwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbSA9PiAoe1xuICBpZDogYy5pZCxcbiAgdHlwZTogJ2NsaWVudCcsXG4gIHByaW1hcnk6IGMubmFtZSxcbiAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UoYy5uYW1lLCBzZWFyY2hWYWx1ZSksXG4gIGJyZWFkY3J1bWI6IHtcbiAgICBjb3VudDogYy50b3RhbFByb3llY3RvcyA/PyB1bmRlZmluZWQsXG4gICAgY291bnRMYWJlbDogJ3Byb2plY3RzJyxcbiAgfSxcbiAgcmF3OiB7XG4gICAgaWQ6IGMuaWQsXG4gICAgbmFtZTogYy5uYW1lLFxuICAgIHRvdGFsUHJveWVjdG9zOiBjLnRvdGFsUHJveWVjdG9zID8/IG51bGwsXG4gIH0sXG59KVxuXG5jb25zdCBtYXBVc2VyVG9JdGVtID0gKHU6IFJhd0RpcmVjdG9yeVVzZXIsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4ge1xuICBjb25zdCBmdWxsTmFtZSA9IGAke3UuZmlyc3ROYW1lID8/ICcnfSAke3UubGFzdE5hbWUgPz8gJyd9YC50cmltKClcbiAgY29uc3QgcHJpbWFyeSA9IGZ1bGxOYW1lIHx8IHUuZW1haWwgfHwgU3RyaW5nKHUuaWQpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogdS5pZCxcbiAgICB0eXBlOiAndXNlcicsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgcmF3OiB7XG4gICAgICBpZDogdS5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwaWN0dXJlOiB1LnBpY3R1cmUgPz8gbnVsbCxcbiAgICAgIHBvc2l0aW9uTmFtZTogdS5wb3NpdGlvbk5hbWUgPz8gbnVsbCxcbiAgICAgIGVtYWlsOiB1LmVtYWlsID8/IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBtYXBDb3JVc2VyVG9Vc2VySXRlbSA9IChcbiAgdXNlcjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlVXNlcj4sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIG1lTGFiZWw6IHN0cmluZ1xuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHt1c2VyLmZpcnN0TmFtZSA/PyAnJ30gJHt1c2VyLmxhc3ROYW1lID8/ICcnfWAudHJpbSgpXG4gIC8qKiBTb2xvIGNhcmdvIHJlYWw7IHNpbiBmYWxsYmFjayBhIGByb2xlYCAobGEgVUkgbXVlc3RyYSDigJxTaW4gcG9zaWNpw7Nu4oCdIHNpIGZhbHRhKS4gKi9cbiAgY29uc3QgcG9zaXRpb25MaW5lID0gbm9ybWFsaXplVHJpbW1lZFN0cmluZyh1c2VyLnVzZXJfcG9zaXRpb24pIHx8IG51bGxcbiAgY29uc3QgZW1haWwgPSBub3JtYWxpemVUcmltbWVkU3RyaW5nKHVzZXIuZW1haWwpIHx8IG51bGxcblxuICByZXR1cm4ge1xuICAgIGlkOiB1c2VyLmlkLFxuICAgIHR5cGU6ICd1c2VyJyxcbiAgICBwcmltYXJ5OiBtZUxhYmVsLFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKG1lTGFiZWwsIHNlYXJjaFZhbHVlKSxcbiAgICByYXc6IHtcbiAgICAgIGlkOiB1c2VyLmlkLFxuICAgICAgbmFtZTogZnVsbE5hbWUgfHwgU3RyaW5nKHVzZXIuaWQpLFxuICAgICAgcGljdHVyZTogdXNlci5waWN0dXJlIHx8IG51bGwsXG4gICAgICBwb3NpdGlvbk5hbWU6IHBvc2l0aW9uTGluZSxcbiAgICAgIGVtYWlsLFxuICAgIH0sXG4gIH1cbn1cblxuY29uc3QgbWFwUmVjZW50VGFza1RvSXRlbSA9IChcbiAgdGFzazogUmVjZW50VGFza0l0ZW0sXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA9IHRydWVcbik6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IHByaW1hcnkgPSAodGFzay50aXRsZSAmJiB0YXNrLnRpdGxlLnRyaW0oKSkgfHwgU3RyaW5nKHRhc2suaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID8gKHRhc2sucHJvamVjdE5hbWUgPz8gbnVsbCkgOiBudWxsXG4gIHJldHVybiB7XG4gICAgaWQ6IHRhc2suaWQsXG4gICAgdHlwZTogJ3Rhc2snLFxuICAgIHByaW1hcnksXG4gICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgIGJyZWFkY3J1bWI6IHByb2plY3ROYW1lID8geyBwYXJlbnQ6IHByb2plY3ROYW1lIH0gOiB1bmRlZmluZWQsXG4gICAgcmF3OiB7XG4gICAgICBpZDogdGFzay5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBwcm9qZWN0TmFtZSxcbiAgICB9LFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQgPSAocmVjb3JkOiBUYXNrRmFtaWx5UmVjb3JkKTogUmVjZW50VGFza0l0ZW0gfCBudWxsID0+IHtcbiAgY29uc3QgeyBfaWQ6IHRhc2tGYW1pbHlJZCB9ID0gcmVjb3JkXG4gIGNvbnN0IGlkID0gdGFza0ZhbWlseUlkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IChyZWNvcmQudGl0bGUgPz8gJycpLnRyaW0oKSB8fCBTdHJpbmcoaWQpXG4gIGNvbnN0IHByb2plY3ROYW1lID0gZmlyc3REZWZpbmVkKHJlY29yZC5wcm9qZWN0Py5uYW1lLCByZWNvcmQuZmF0aGVyPy50aXRsZSkgPz8gbnVsbFxuICBjb25zdCBoYXNGYXRoZXIgPSAhIWZpcnN0RGVmaW5lZChyZWNvcmQudGFza0ZhdGhlciwgcmVjb3JkLmZhdGhlcj8uaWQpXG4gIHJldHVybiB7XG4gICAgaWQsXG4gICAgdGl0bGUsXG4gICAgdHlwZTogaGFzRmF0aGVyID8gJ3N1YnRhc2snIDogJ3Rhc2snLFxuICAgIHByb2plY3ROYW1lLFxuICB9XG59XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQgPSAocmVjb3JkOiBGYWxsYmFja1Byb2plY3RSZWNvcmQpOiBSYXdTZWFyY2hSZXN1bHQgfCBudWxsID0+IHtcbiAgY29uc3QgeyBpZCB9ID0gcmVjb3JkXG4gIGlmIChpZCA9PT0gdW5kZWZpbmVkIHx8IGlkID09PSBudWxsIHx8IFN0cmluZyhpZCkgPT09ICcnKSByZXR1cm4gbnVsbFxuICBjb25zdCB0aXRsZSA9IHJlY29yZC5uYW1lID8/ICcnXG4gIGNvbnN0IGNsaWVudElkID0gZmlyc3REZWZpbmVkKHJlY29yZC5jbGllbnRJZCwgcmVjb3JkLmNsaWVudD8uaWQpID8/IG51bGxcbiAgY29uc3QgY2xpZW50TmFtZSA9IHJlY29yZC5jbGllbnQ/Lm5hbWUgPz8gbnVsbFxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICBjbGllbnRJZCxcbiAgICBjbGllbnROYW1lLFxuICB9XG59XG5cbmNvbnN0IG1hcFNlYXJjaFRvSXRlbSA9IChcbiAgcjogUmF3U2VhcmNoUmVzdWx0LFxuICB0eXBlOiBDb250ZXh0RW50aXR5VHlwZSxcbiAgc2VhcmNoVmFsdWU6IHN0cmluZyxcbiAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID0gdHJ1ZVxuKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgcHJpbWFyeSA9IHIudGl0bGUgfHwgci5wcm9qZWN0TmFtZSB8fCAnJ1xuICBsZXQgcGFyZW50OiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHBhcmVudCA9IHIuY2xpZW50TmFtZVxuICBlbHNlIGlmICh0eXBlID09PSAndGFzaycpIHBhcmVudCA9IHVuZGVmaW5lZFxuICBlbHNlIHBhcmVudCA9IHIucHJvamVjdE5hbWUgPz8gci5jbGllbnROYW1lXG5cbiAgY29uc3QgZmF0aGVyID0gdHlwZSA9PT0gJ3Rhc2snID8gci5mYXRoZXIgOiBudWxsXG4gIGNvbnN0IGhhc0ZhdGhlciA9IHR5cGUgPT09ICd0YXNrJyAmJiBmYXRoZXIgIT0gbnVsbCAmJiBmYXRoZXIuaWQgIT0gbnVsbCAmJiBTdHJpbmcoZmF0aGVyLmlkKS5sZW5ndGggPiAwXG5cbiAgY29uc3QgdGFza1Byb2plY3ROYW1lID0gdHlwZSA9PT0gJ3Rhc2snICYmICFzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPyBudWxsIDogKHIucHJvamVjdE5hbWUgPz8gbnVsbClcblxuICByZXR1cm4ge1xuICAgIGlkOiByLmlkLFxuICAgIHR5cGUsXG4gICAgcHJpbWFyeSxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShwcmltYXJ5LCBzZWFyY2hWYWx1ZSksXG4gICAgYnJlYWRjcnVtYjogcGFyZW50ID8geyBwYXJlbnQgfSA6IHVuZGVmaW5lZCxcbiAgICByYXc6IHtcbiAgICAgIGlkOiByLmlkLFxuICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIGNsaWVudElkOiByLmNsaWVudElkID8/IG51bGwsXG4gICAgICBjbGllbnROYW1lOiByLmNsaWVudE5hbWUgPz8gbnVsbCxcbiAgICAgIHByb2plY3ROYW1lOiB0YXNrUHJvamVjdE5hbWUsXG4gICAgICBmZWVJZDogci5mZWVJZCA/PyBudWxsLFxuICAgICAgZmF0aGVySWQ6IGhhc0ZhdGhlciA/IGZhdGhlci5pZCA6IG51bGwsXG4gICAgICBmYXRoZXJUaXRsZTogaGFzRmF0aGVyID8gZmF0aGVyLnRpdGxlPy50cmltKCkgfHwgbnVsbCA6IG51bGwsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBmb3JtYXRNY3BQcmltYXJ5TGFiZWwgPSAoc2x1Zzogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNsdWcucmVwbGFjZSgvXy9nLCAnICcpLnJlcGxhY2UoL1xcYlxcdy9nLCBjaGFyID0+IGNoYXIudG9VcHBlckNhc2UoKSlcblxuY29uc3QgbWFwTWNwU2x1Z3NUb0l0ZW1zID0gKHNsdWdzOiBzdHJpbmdbXSwgc2VhcmNoVmFsdWU6IHN0cmluZyk6IENvbnRleHRNZW50aW9uSXRlbVtdID0+IHtcbiAgY29uc3QgcSA9IHNlYXJjaFZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpXG4gIGxldCBmaWx0ZXJlZCA9IHNsdWdzXG4gIGlmIChxKSB7XG4gICAgZmlsdGVyZWQgPSBzbHVncy5maWx0ZXIocyA9PiB7XG4gICAgICBjb25zdCBwcmltYXJ5ID0gZm9ybWF0TWNwUHJpbWFyeUxhYmVsKHMpXG4gICAgICByZXR1cm4gcy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHEpIHx8IHByaW1hcnkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKVxuICAgIH0pXG4gIH1cbiAgcmV0dXJuIGZpbHRlcmVkLm1hcChzbHVnID0+IHtcbiAgICBjb25zdCBwcmltYXJ5ID0gZm9ybWF0TWNwUHJpbWFyeUxhYmVsKHNsdWcpXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiBzbHVnLFxuICAgICAgdHlwZTogJ21jcCcgYXMgY29uc3QsXG4gICAgICBwcmltYXJ5LFxuICAgICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgICAgcmF3OiB7XG4gICAgICAgIGlkOiBzbHVnLFxuICAgICAgICBuYW1lOiBwcmltYXJ5LFxuICAgICAgfSxcbiAgICB9XG4gIH0pXG59XG5cbmV4cG9ydCBjb25zdCB1c2VFbnRpdHlTZWFyY2ggPSAodHlwZTogQ29udGV4dEVudGl0eVR5cGUsIHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpID0+IHtcbiAgY29uc3QgY29yVXNlciA9IHVzZVVzZXIoKVxuICBjb25zdCB7IHQgfSA9IHVzZVQoKVxuICAvKiogRXZpdGEgYXBsaWNhciByZXN1bHRhZG9zIGRlIHVuIGBmZXRjaFJlY2VudGAgdmllam8gY3VhbmRvIGVsIHVzdWFyaW8geWEgY2FtYmnDsyBkZSB0YWIgKHJhY2UgYXN5bmMpLiAqL1xuICBjb25zdCByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IFtzZWFyY2hWYWx1ZSwgc2V0U2VhcmNoVmFsdWVdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IGRlYm91bmNlZFNlYXJjaFZhbHVlID0gdXNlRGVib3VuY2Uoc2VhcmNoVmFsdWUsIFNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUylcblxuICBjb25zdCBbaXRlbXMsIHNldEl0ZW1zXSA9IHVzZVN0YXRlPENvbnRleHRNZW50aW9uSXRlbVtdPihbXSlcbiAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtoaWRlUmVjZW50c0xhYmVsLCBzZXRIaWRlUmVjZW50c0xhYmVsXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaGFzTW9yZSwgc2V0SGFzTW9yZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzTG9hZGluZ01vcmUsIHNldElzTG9hZGluZ01vcmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtjdXJyZW50UGFnZSwgc2V0Q3VycmVudFBhZ2VdID0gdXNlU3RhdGUoMSlcbiAgY29uc3QgW2FjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2VdID0gdXNlU3RhdGU8UGFnaW5hdGlvblNvdXJjZT4oJ25vbmUnKVxuXG4gIGNvbnN0IG1jcFNsdWdzS2V5ID0gKHNjb3BlPy5tY3BTbHVncyA/PyBbXSkuam9pbignfCcpXG4gIGNvbnN0IHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA9IHNjb3BlPy5hZ2VudEVudGl0eSAhPT0gJ3Byb2plY3QnXG5cbiAgLy8gRXN0YWJpbGl6YW1vcyBlbCBzY29wZSBwYXJhIG5vIGRpc3BhcmFyIGZldGNocyBwb3IgY2FtYmlvcyBkZSBpZGVudGlkYWQgZGUgb2JqZXRvLlxuICBjb25zdCBzdGFibGVTY29wZSA9IHVzZU1lbW88RW50aXR5U2VhcmNoU2NvcGU+KFxuICAgICgpID0+ICh7XG4gICAgICBjbGllbnRJZDogc2NvcGU/LmNsaWVudElkID8/IG51bGwsXG4gICAgICBwcm9qZWN0SWQ6IHNjb3BlPy5wcm9qZWN0SWQgPz8gbnVsbCxcbiAgICAgIG1jcFNsdWdzOiBzY29wZT8ubWNwU2x1Z3MgPz8gW10sXG4gICAgICBhZ2VudEVudGl0eTogc2NvcGU/LmFnZW50RW50aXR5ID8/IG51bGwsXG4gICAgfSksXG4gICAgW3Njb3BlPy5jbGllbnRJZCwgc2NvcGU/LnByb2plY3RJZCwgbWNwU2x1Z3NLZXksIHNjb3BlPy5hZ2VudEVudGl0eV1cbiAgKVxuXG4gIC8vIC0tLSBTZWFyY2g6IHByb2plY3QgfCB0YXNrIChHcmFwaFFMOiBzZWFyY2gpIC0tLVxuICBjb25zdCBbZmV0Y2hTZWFyY2hFbnRpdGllcywgeyBkYXRhOiBzZWFyY2hEYXRhLCBsb2FkaW5nOiBzZWFyY2hMb2FkaW5nLCBlcnJvcjogc2VhcmNoRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hFbnRpdGllc0RhdGE+KFNFQVJDSF9FTlRJVElFUywge1xuICAgICAgdmFyaWFibGVzOiB7IGxpbWl0OiAyMCB9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgIH0pXG5cbiAgLy8gLS0tIFNlYXJjaDogY2xpZW50IChHcmFwaFFMKSAtLS1cbiAgY29uc3QgW2ZldGNoU2VhcmNoQ2xpZW50cywgeyBkYXRhOiBjbGllbnRzRGF0YSwgbG9hZGluZzogY2xpZW50c0xvYWRpbmcsIGVycm9yOiBjbGllbnRzRXJyb3IgfV0gPVxuICAgIHVzZUxhenlRdWVyeTxTZWFyY2hDbGllbnRzRGF0YT4oU0VBUkNIX0NMSUVOVFMsIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIC8vIC0tLSBTZWFyY2g6IHVzZXIgKEdyYXBoUUw6IHVzZXJzRGlyZWN0b3J5KSAtLS1cbiAgY29uc3QgW2ZldGNoVXNlcnNEaXJlY3RvcnksIHsgZGF0YTogdXNlcnNEYXRhLCBsb2FkaW5nOiB1c2Vyc0xvYWRpbmcsIGVycm9yOiB1c2Vyc0Vycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8VXNlcnNEaXJlY3RvcnlEYXRhPihVU0VSU19ESVJFQ1RPUlksIHtcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIGNvbnN0IHN5bmNVc2Vyc1BhZ2luYXRpb24gPSB1c2VDYWxsYmFjaygocGF5bG9hZD86IFVzZXJzRGlyZWN0b3J5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8udXNlcnNEaXJlY3Rvcnk/LnBhZ2UsIDEpXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy51c2Vyc0RpcmVjdG9yeT8ubGFzdFBhZ2UsIHBhZ2UpXG4gICAgc2V0Q3VycmVudFBhZ2UocGFnZSlcbiAgICBzZXRIYXNNb3JlKHBhZ2UgPCBsYXN0UGFnZSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc3luY0NsaWVudHNQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBTZWFyY2hDbGllbnRzRGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCBwYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8uY2xpZW50cz8ucGFnZSwgMSlcbiAgICBjb25zdCBsYXN0UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LmNsaWVudHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBUYXNrRmFtaWx5RGF0YSB8IG51bGwpID0+IHtcbiAgICBjb25zdCByYXdQYWdlID0gTnVtYmVyKHBheWxvYWQ/LnRhc2tGYW1pbHk/LnBhZ2UpXG4gICAgLy8gdGFza0ZhbWlseSB1c2EgcMOhZ2luYXMgMC1iYXNlZDsgY29udmVydGltb3MgYSAxLWJhc2VkIHBhcmEgY29uc2lzdGVuY2lhIGNvbiBlbCByZXN0b1xuICAgIGNvbnN0IHBhZ2UgPSBOdW1iZXIuaXNGaW5pdGUocmF3UGFnZSkgJiYgcmF3UGFnZSA+PSAwID8gTWF0aC5mbG9vcihyYXdQYWdlKSArIDEgOiAxXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy50YXNrRmFtaWx5Py5sYXN0UGFnZSwgcGFnZSlcbiAgICBzZXRDdXJyZW50UGFnZShwYWdlKVxuICAgIHNldEhhc01vcmUocGFnZSA8IGxhc3RQYWdlKVxuICB9LCBbXSlcblxuICBjb25zdCBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbiA9IHVzZUNhbGxiYWNrKChwYXlsb2FkPzogUHJvamVjdHNGYWxsYmFja0RhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LnByb2plY3RzPy5wYWdlLCAxKVxuICAgIGNvbnN0IGxhc3RQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8ucHJvamVjdHM/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IFtmZXRjaFRhc2tGYW1pbHlGYWxsYmFja10gPSB1c2VMYXp5UXVlcnk8VGFza0ZhbWlseURhdGE+KFRBU0tfRkFNSUxZX0ZBTExCQUNLLCB7XG4gICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICB9KVxuXG4gIGNvbnN0IFtmZXRjaFByb2plY3RzRmFsbGJhY2tdID0gdXNlTGF6eVF1ZXJ5PFByb2plY3RzRmFsbGJhY2tEYXRhPihQUk9KRUNUU19GQUxMQkFDSywge1xuICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgfSlcblxuICBjb25zdCBmZXRjaFJlY2VudCA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQgKz0gMVxuICAgIGNvbnN0IGdlbmVyYXRpb24gPSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnRcblxuICAgIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgICAgY29uc3Qgc2x1Z3MgPSBzdGFibGVTY29wZS5tY3BTbHVncyA/PyBbXVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgc2V0SXRlbXMobWFwTWNwU2x1Z3NUb0l0ZW1zKHNsdWdzLCAnJykpXG4gICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgc2V0TG9hZGluZyh0cnVlKVxuICAgIHNldEVycm9yKGZhbHNlKVxuICAgIHRyeSB7XG4gICAgICBpZiAodHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFJlY2VudENsaWVudHMoKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWFwcGVkID0gKGRhdGEgPz8gW10pLm1hcChjID0+IG1hcENsaWVudFRvSXRlbShjLCAnJykpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBzZXRJdGVtcyhtYXBwZWQpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAncHJvamVjdCcpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFJlY2VudFByb2plY3RzKHN0YWJsZVNjb3BlLmNsaWVudElkID8geyBjbGllbnRJZDogc3RhYmxlU2NvcGUuY2xpZW50SWQgfSA6IHVuZGVmaW5lZClcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGxldCBtYXBwZWQgPSAoQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbXSkubWFwKHAgPT5cbiAgICAgICAgICBtYXBTZWFyY2hUb0l0ZW0oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiBwLmlkLFxuICAgICAgICAgICAgICB0aXRsZTogcC50aXRsZSxcbiAgICAgICAgICAgICAgdHlwZTogJ3Byb2plY3QnLFxuICAgICAgICAgICAgICBjbGllbnRJZDogcC5jbGllbnRJZCxcbiAgICAgICAgICAgICAgZmVlSWQ6IHAuZmVlSWQsXG4gICAgICAgICAgICAgIGNsaWVudE5hbWU6IHAuY2xpZW50TmFtZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAncHJvamVjdCcsXG4gICAgICAgICAgICAnJ1xuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICBpZiAobWFwcGVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGFyZ3VtZW50c0ZpbHRlciA9XG4gICAgICAgICAgICBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSAnJ1xuICAgICAgICAgICAgICA/IHsgY2xpZW50X2lkOiBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV0gfVxuICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgIGNvbnN0IHsgZGF0YTogZmFsbGJhY2tEYXRhIH0gPSBhd2FpdCBmZXRjaFByb2plY3RzRmFsbGJhY2soe1xuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIC4uLihhcmd1bWVudHNGaWx0ZXIgPyB7IGFyZ3VtZW50czogYXJndW1lbnRzRmlsdGVyIH0gOiB7fSksXG4gICAgICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTWFwcGVkID0gKGZhbGxiYWNrRGF0YT8ucHJvamVjdHM/LmRhdGEgPz8gW10pXG4gICAgICAgICAgICAubWFwKG5vcm1hbGl6ZVByb2plY3RzRmFsbGJhY2tSZWNvcmQpXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBSYXdTZWFyY2hSZXN1bHQgPT4gaXRlbSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAoaXRlbSA9PiBtYXBTZWFyY2hUb0l0ZW0oaXRlbSwgJ3Byb2plY3QnLCAnJykpXG4gICAgICAgICAgbWFwcGVkID0gZmFsbGJhY2tNYXBwZWRcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbGxiYWNrTWFwcGVkLmxlbmd0aCA+IDApXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgncHJvamVjdC1mYWxsYmFjaycpXG4gICAgICAgICAgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24oZmFsbGJhY2tEYXRhKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0SXRlbXMobWFwcGVkKVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndGFzaycpIHtcbiAgICAgICAgbGV0IHJlY2VudFRhc2tGaWx0ZXJzOiB7IHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7IGNsaWVudElkPzogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB9IHwgdW5kZWZpbmVkXG4gICAgICAgIGlmIChzdGFibGVTY29wZS5hZ2VudEVudGl0eSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgICAgcmVjZW50VGFza0ZpbHRlcnMgPSB7IHByb2plY3RJZDogc3RhYmxlU2NvcGUucHJvamVjdElkIH1cbiAgICAgICAgfSBlbHNlIGlmIChzdGFibGVTY29wZS5hZ2VudEVudGl0eSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgICAgICByZWNlbnRUYXNrRmlsdGVycyA9IHsgY2xpZW50SWQ6IHN0YWJsZVNjb3BlLmNsaWVudElkIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0UmVjZW50VGFza3MocmVjZW50VGFza0ZpbHRlcnMpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBsZXQgdGFza0l0ZW1zID0gKGRhdGEgPz8gW10pLm1hcCh0YXNrID0+IG1hcFJlY2VudFRhc2tUb0l0ZW0odGFzaywgJycsIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdykpXG4gICAgICAgIGlmICh0YXNrSXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgY29uc3QgZmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fVxuICAgICAgICAgIGlmIChzdGFibGVTY29wZS5wcm9qZWN0SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSAnJykge1xuICAgICAgICAgICAgZmlsdGVyLnByb2plY3RJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLnByb2plY3RJZCldXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSAnJykge1xuICAgICAgICAgICAgZmlsdGVyLmNsaWVudElkcyA9IFtTdHJpbmcoc3RhYmxlU2NvcGUuY2xpZW50SWQpXVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCB7IGRhdGE6IGZhbGxiYWNrRGF0YSB9ID0gYXdhaXQgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2soe1xuICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgIGZpbHRlcjogeyBhcmNoaXZlZDogZmFsc2UsIC4uLmZpbHRlciB9LFxuICAgICAgICAgICAgICBwYWdpbmF0aW9uOiB7IG9mZnNldDogMCwgc2l6ZTogMjAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICB0YXNrSXRlbXMgPSAoZmFsbGJhY2tEYXRhPy50YXNrRmFtaWx5Py5kYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChub3JtYWxpemVUYXNrRmFtaWx5UmVjb3JkKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmVjZW50VGFza0l0ZW0gPT4gaXRlbSAhPT0gbnVsbClcbiAgICAgICAgICAgIC5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwodGFza0l0ZW1zLmxlbmd0aCA+IDApXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgndGFzay1mYWxsYmFjaycpXG4gICAgICAgICAgc3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24oZmFsbGJhY2tEYXRhKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgICAgfVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0SXRlbXModGFza0l0ZW1zKVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAndXNlcicpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFVzZXJzRGlyZWN0b3J5KHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGZpbHRlcnM6IGJ1aWxkVXNlcnNEaXJlY3RvcnlGaWx0ZXJzKCcnKSxcbiAgICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IChkYXRhPy51c2Vyc0RpcmVjdG9yeT8uZGF0YSA/PyBbXSkubWFwKHUgPT4gbWFwVXNlclRvSXRlbSh1LCAnJykpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBtZUl0ZW0gPSBtYXBDb3JVc2VyVG9Vc2VySXRlbShjb3JVc2VyLCAnJywgdCgnY29udGV4dE1lbnRpb24ubWUnKSlcbiAgICAgICAgY29uc3Qgd2l0aG91dE1lID0gbWFwcGVkLmZpbHRlcihpdGVtID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gU3RyaW5nKG1lSXRlbS5pZCkpXG4gICAgICAgIHNldEl0ZW1zKFttZUl0ZW0sIC4uLndpdGhvdXRNZV0pXG4gICAgICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24oZGF0YSlcbiAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgndXNlcnMnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdub25lJylcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgICAgc2V0Q3VycmVudFBhZ2UoMSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldEl0ZW1zKFtdKVxuICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGdlbmVyYXRpb24gPT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHR5cGUsXG4gICAgc3RhYmxlU2NvcGUsXG4gICAgZmV0Y2hVc2Vyc0RpcmVjdG9yeSxcbiAgICBmZXRjaFRhc2tGYW1pbHlGYWxsYmFjayxcbiAgICBmZXRjaFByb2plY3RzRmFsbGJhY2ssXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbixcbiAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbixcbiAgICBzaG93UHJvamVjdE5hbWVJblRhc2tSb3csXG4gICAgY29yVXNlcixcbiAgICB0LFxuICBdKVxuXG4gIC8vIERpc3BhcmFyIHNlYXJjaCBhbCBjYW1iaWFyIGRlYm91bmNlZCB2YWx1ZVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHEgPSBkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKClcblxuICAgIGlmICh0eXBlID09PSAnbWNwJykge1xuICAgICAgY29uc3Qgc2x1Z3MgPSBzdGFibGVTY29wZS5tY3BTbHVncyA/PyBbXVxuICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgc2V0SXRlbXMobWFwTWNwU2x1Z3NUb0l0ZW1zKHNsdWdzLCBxKSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmICghcSkgcmV0dXJuXG5cbiAgICBpZiAodHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgIGZldGNoU2VhcmNoQ2xpZW50cyh7XG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIGZpbHRlcjogeyBuYW1lOiBxIH0sXG4gICAgICAgICAgcGFnZTogMSxcbiAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdjbGllbnRzLXNlYXJjaCcpXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAndXNlcicpIHtcbiAgICAgIGZldGNoVXNlcnNEaXJlY3Rvcnkoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBmaWx0ZXJzOiBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyhxKSxcbiAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3VzZXJzJylcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgZmlsdGVycyA9IGJ1aWxkRmlsdGVyc0ZvclR5cGUodHlwZSlcbiAgICAgIGNvbnN0IGV4dHJhID0gYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhKHR5cGUsIHN0YWJsZVNjb3BlKVxuICAgICAgZmV0Y2hTZWFyY2hFbnRpdGllcyh7XG4gICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgIHEsXG4gICAgICAgICAgZmlsdGVycyxcbiAgICAgICAgICAuLi4oZXh0cmEgIT09IHVuZGVmaW5lZCA/IHsgZXh0cmEgfSA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdub25lJylcbiAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWUsIHR5cGUsIHN0YWJsZVNjb3BlLCBmZXRjaFNlYXJjaEVudGl0aWVzLCBmZXRjaFNlYXJjaENsaWVudHMsIGZldGNoVXNlcnNEaXJlY3RvcnldKVxuXG4gIC8vIFNpbmNyb25pemFyIHJlc3VsdGFkb3MgZGUgc2VhcmNoXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHR5cGUgPT09ICdtY3AnKSByZXR1cm5cblxuICAgIGNvbnN0IHEgPSBkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKClcbiAgICBpZiAoIXEpIHJldHVyblxuICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG5cbiAgICBpZiAodHlwZSA9PT0gJ2NsaWVudCcpIHtcbiAgICAgIHNldExvYWRpbmcoY2xpZW50c0xvYWRpbmcpXG4gICAgICBpZiAoY2xpZW50c0Vycm9yKSB7XG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKGNsaWVudHNEYXRhPy5jbGllbnRzPy5kYXRhKSB7XG4gICAgICAgIHNldEl0ZW1zKGNsaWVudHNEYXRhLmNsaWVudHMuZGF0YS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgcSkpKVxuICAgICAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24oY2xpZW50c0RhdGEpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICBzZXRMb2FkaW5nKHVzZXJzTG9hZGluZylcbiAgICAgIGlmICh1c2Vyc0Vycm9yKSB7XG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKHVzZXJzRGF0YT8udXNlcnNEaXJlY3Rvcnk/LmRhdGEpIHtcbiAgICAgICAgY29uc3QgbWFwcGVkID0gdXNlcnNEYXRhLnVzZXJzRGlyZWN0b3J5LmRhdGEubWFwKHUgPT4gbWFwVXNlclRvSXRlbSh1LCBxKSlcbiAgICAgICAgY29uc3QgbWVJZCA9IFN0cmluZyhjb3JVc2VyLmlkKVxuICAgICAgICBjb25zdCBoYXNNZUluUmVzdWx0cyA9IG1hcHBlZC5zb21lKGl0ZW0gPT4gU3RyaW5nKGl0ZW0uaWQpID09PSBtZUlkKVxuICAgICAgICBjb25zdCB3aXRob3V0TWUgPSBtYXBwZWQuZmlsdGVyKGl0ZW0gPT4gU3RyaW5nKGl0ZW0uaWQpICE9PSBtZUlkKVxuICAgICAgICBjb25zdCBtZUl0ZW0gPSBtYXBDb3JVc2VyVG9Vc2VySXRlbShjb3JVc2VyLCBxLCB0KCdjb250ZXh0TWVudGlvbi5tZScpKVxuICAgICAgICBzZXRJdGVtcyhoYXNNZUluUmVzdWx0cyA/IFttZUl0ZW0sIC4uLndpdGhvdXRNZV0gOiBtYXBwZWQpXG4gICAgICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24odXNlcnNEYXRhKVxuICAgICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TG9hZGluZyhzZWFyY2hMb2FkaW5nKVxuICAgICAgaWYgKHNlYXJjaEVycm9yKSB7XG4gICAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaERhdGE/LnNlYXJjaCkge1xuICAgICAgICBzZXRJdGVtcyhzZWFyY2hEYXRhLnNlYXJjaC5tYXAociA9PiBtYXBTZWFyY2hUb0l0ZW0ociwgdHlwZSwgcSwgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93KSkpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHNldEVycm9yKGZhbHNlKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW1xuICAgIHNlYXJjaERhdGEsXG4gICAgY2xpZW50c0RhdGEsXG4gICAgdXNlcnNEYXRhLFxuICAgIHNlYXJjaExvYWRpbmcsXG4gICAgY2xpZW50c0xvYWRpbmcsXG4gICAgdXNlcnNMb2FkaW5nLFxuICAgIHNlYXJjaEVycm9yLFxuICAgIGNsaWVudHNFcnJvcixcbiAgICB1c2Vyc0Vycm9yLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIHR5cGUsXG4gICAgc3luY0NsaWVudHNQYWdpbmF0aW9uLFxuICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24sXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgXSlcblxuICBjb25zdCBsb2FkTW9yZSA9IHVzZUNhbGxiYWNrKGFzeW5jICgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nTW9yZSB8fCAhaGFzTW9yZSB8fCBhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAnbm9uZScpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUVudGl0eVNlYXJjaF0gbG9hZE1vcmUgc2tpcHBlZCcsIHtcbiAgICAgICAgaXNMb2FkaW5nTW9yZSxcbiAgICAgICAgaGFzTW9yZSxcbiAgICAgICAgYWN0aXZlUGFnaW5hdGlvblNvdXJjZSxcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgY29uc3Qgc2FmZUN1cnJlbnRQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQoY3VycmVudFBhZ2UsIDEpXG4gICAgY29uc3QgbmV4dFBhZ2UgPSBzYWZlQ3VycmVudFBhZ2UgKyAxXG4gICAgY29uc3QgcSA9IGRlYm91bmNlZFNlYXJjaFZhbHVlLnRyaW0oKVxuICAgIGNvbnNvbGUuaW5mbygnW3VzZUVudGl0eVNlYXJjaF0gbG9hZE1vcmUgc3RhcnQnLCB7XG4gICAgICBzb3VyY2U6IGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsXG4gICAgICBjdXJyZW50UGFnZSxcbiAgICAgIG5leHRQYWdlLFxuICAgICAgcXVlcnk6IHEsXG4gICAgfSlcbiAgICBjb25zdCBsb2FkTW9yZUJhc2VsaW5lR2VuID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG4gICAgc2V0SXNMb2FkaW5nTW9yZSh0cnVlKVxuICAgIHRyeSB7XG4gICAgICBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ3VzZXJzJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoVXNlcnNEaXJlY3Rvcnkoe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgICBwYWdlOiBuZXh0UGFnZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlRW50aXR5U2VhcmNoXSB1c2VycyBsb2FkTW9yZSByZXNwb25zZScsIHtcbiAgICAgICAgICBwYWdlOiBkYXRhPy51c2Vyc0RpcmVjdG9yeT8ucGFnZSxcbiAgICAgICAgICBsYXN0UGFnZTogZGF0YT8udXNlcnNEaXJlY3Rvcnk/Lmxhc3RQYWdlLFxuICAgICAgICAgIGNvdW50OiBkYXRhPy51c2Vyc0RpcmVjdG9yeT8uZGF0YT8ubGVuZ3RoID8/IDAsXG4gICAgICAgIH0pXG4gICAgICAgIGNvbnN0IG5leHRJdGVtcyA9IChkYXRhPy51c2Vyc0RpcmVjdG9yeT8uZGF0YSA/PyBbXSkubWFwKHUgPT4gbWFwVXNlclRvSXRlbSh1LCBxKSlcbiAgICAgICAgc2V0SXRlbXMocHJldiA9PiB7XG4gICAgICAgICAgaWYgKCFxKSB7XG4gICAgICAgICAgICBjb25zdCBtZUl0ZW0gPVxuICAgICAgICAgICAgICBwcmV2WzBdPy50eXBlID09PSAndXNlcicgPyBwcmV2WzBdIDogbWFwQ29yVXNlclRvVXNlckl0ZW0oY29yVXNlciwgJycsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkpKVxuICAgICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhTdHJpbmcoaXRlbS5pZCkpKVxuICAgICAgICAgICAgY29uc3Qgd2l0aG91dE1lID0gcHJldi5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IFN0cmluZyhtZUl0ZW0uaWQpKVxuICAgICAgICAgICAgcmV0dXJuIFttZUl0ZW0sIC4uLndpdGhvdXRNZSwgLi4uYXBwZW5kZWRdXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCAuLi5hcHBlbmRlZF1cbiAgICAgICAgfSlcbiAgICAgICAgc3luY1VzZXJzUGFnaW5hdGlvbihkYXRhKVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAnY2xpZW50cy1zZWFyY2gnKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hTZWFyY2hDbGllbnRzKHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGZpbHRlcjogeyBuYW1lOiBxIH0sXG4gICAgICAgICAgICBwYWdlOiBuZXh0UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChsb2FkTW9yZUJhc2VsaW5lR2VuICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIGNsaWVudHMgbG9hZE1vcmUgcmVzcG9uc2UnLCB7XG4gICAgICAgICAgcGFnZTogZGF0YT8uY2xpZW50cz8ucGFnZSxcbiAgICAgICAgICBsYXN0UGFnZTogZGF0YT8uY2xpZW50cz8ubGFzdFBhZ2UsXG4gICAgICAgICAgY291bnQ6IGRhdGE/LmNsaWVudHM/LmRhdGE/Lmxlbmd0aCA/PyAwLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXh0SXRlbXMgPSAoZGF0YT8uY2xpZW50cz8uZGF0YSA/PyBbXSkubWFwKGMgPT4gbWFwQ2xpZW50VG9JdGVtKGMsIHEpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHN5bmNDbGllbnRzUGFnaW5hdGlvbihkYXRhKVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAndGFzay1mYWxsYmFjaycpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fVxuICAgICAgICBpZiAoc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICAgICAgICBmaWx0ZXIucHJvamVjdElkcyA9IFtTdHJpbmcoc3RhYmxlU2NvcGUucHJvamVjdElkKV1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJycpIHtcbiAgICAgICAgICBmaWx0ZXIuY2xpZW50SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5jbGllbnRJZCldXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFRhc2tGYW1pbHlGYWxsYmFjayh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBmaWx0ZXI6IHsgYXJjaGl2ZWQ6IGZhbHNlLCAuLi5maWx0ZXIgfSxcbiAgICAgICAgICAgIHBhZ2luYXRpb246IHsgb2Zmc2V0OiAobmV4dFBhZ2UgLSAxKSAqIDIwLCBzaXplOiAyMCB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChsb2FkTW9yZUJhc2VsaW5lR2VuICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIHRhc2sgZmFsbGJhY2sgbG9hZE1vcmUgcmVzcG9uc2UnLCB7XG4gICAgICAgICAgcGFnZTogZGF0YT8udGFza0ZhbWlseT8ucGFnZSxcbiAgICAgICAgICBsYXN0UGFnZTogZGF0YT8udGFza0ZhbWlseT8ubGFzdFBhZ2UsXG4gICAgICAgICAgY291bnQ6IGRhdGE/LnRhc2tGYW1pbHk/LmRhdGE/Lmxlbmd0aCA/PyAwLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXh0SXRlbXMgPSAoZGF0YT8udGFza0ZhbWlseT8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAubWFwKG5vcm1hbGl6ZVRhc2tGYW1pbHlSZWNvcmQpXG4gICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmVjZW50VGFza0l0ZW0gPT4gaXRlbSAhPT0gbnVsbClcbiAgICAgICAgICAubWFwKHRhc2sgPT4gbWFwUmVjZW50VGFza1RvSXRlbSh0YXNrLCAnJywgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93KSlcbiAgICAgICAgc2V0SXRlbXMocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbihkYXRhKVxuICAgICAgfSBlbHNlIGlmIChhY3RpdmVQYWdpbmF0aW9uU291cmNlID09PSAncHJvamVjdC1mYWxsYmFjaycpIHtcbiAgICAgICAgY29uc3QgYXJndW1lbnRzRmlsdGVyID1cbiAgICAgICAgICBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSAnJ1xuICAgICAgICAgICAgPyB7IGNsaWVudF9pZDogW1N0cmluZyhzdGFibGVTY29wZS5jbGllbnRJZCldIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrKHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIC4uLihhcmd1bWVudHNGaWx0ZXIgPyB7IGFyZ3VtZW50czogYXJndW1lbnRzRmlsdGVyIH0gOiB7fSksXG4gICAgICAgICAgICBwYWdlOiBuZXh0UGFnZSxcbiAgICAgICAgICAgIHBlclBhZ2U6IDIwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChsb2FkTW9yZUJhc2VsaW5lR2VuICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIHByb2plY3QgZmFsbGJhY2sgbG9hZE1vcmUgcmVzcG9uc2UnLCB7XG4gICAgICAgICAgcGFnZTogZGF0YT8ucHJvamVjdHM/LnBhZ2UsXG4gICAgICAgICAgbGFzdFBhZ2U6IGRhdGE/LnByb2plY3RzPy5sYXN0UGFnZSxcbiAgICAgICAgICBjb3VudDogZGF0YT8ucHJvamVjdHM/LmRhdGE/Lmxlbmd0aCA/PyAwLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXh0SXRlbXMgPSAoZGF0YT8ucHJvamVjdHM/LmRhdGEgPz8gW10pXG4gICAgICAgICAgLm1hcChub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkKVxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFJhd1NlYXJjaFJlc3VsdCA9PiBpdGVtICE9PSBudWxsKVxuICAgICAgICAgIC5tYXAoaXRlbSA9PiBtYXBTZWFyY2hUb0l0ZW0oaXRlbSwgJ3Byb2plY3QnLCAnJykpXG4gICAgICAgIHNldEl0ZW1zKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCAuLi5hcHBlbmRlZF1cbiAgICAgICAgfSlcbiAgICAgICAgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24oZGF0YSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmIChsb2FkTW9yZUJhc2VsaW5lR2VuICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgY29uc29sZS5lcnJvcignW3VzZUVudGl0eVNlYXJjaF0gbG9hZE1vcmUgZmFpbGVkJywge1xuICAgICAgICBzb3VyY2U6IGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsXG4gICAgICAgIG5leHRQYWdlLFxuICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgfSlcbiAgICAgIC8vIEV2aXRhIGxvb3AgZGUgcmVpbnRlbnRvcyBhdXRvbcOhdGljb3MgcG9yIHNjcm9sbCBjdWFuZG8gYmFja2VuZCBlc3TDoSBjYcOtZG8gKGVqLiA1MDMpLlxuICAgICAgc2V0RXJyb3IodHJ1ZSlcbiAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzTG9hZGluZ01vcmUoZmFsc2UpXG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIGZpbmlzaGVkJywgeyBzb3VyY2U6IGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsIG5leHRQYWdlIH0pXG4gICAgfVxuICB9LCBbXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBoYXNNb3JlLFxuICAgIGN1cnJlbnRQYWdlLFxuICAgIGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsXG4gICAgZGVib3VuY2VkU2VhcmNoVmFsdWUsXG4gICAgZmV0Y2hVc2Vyc0RpcmVjdG9yeSxcbiAgICBmZXRjaFNlYXJjaENsaWVudHMsXG4gICAgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2ssXG4gICAgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrLFxuICAgIHN0YWJsZVNjb3BlLnByb2plY3RJZCxcbiAgICBzdGFibGVTY29wZS5jbGllbnRJZCxcbiAgICBzaG93UHJvamVjdE5hbWVJblRhc2tSb3csXG4gICAgY29yVXNlcixcbiAgICB0LFxuICAgIHN5bmNDbGllbnRzUGFnaW5hdGlvbixcbiAgICBzeW5jVXNlcnNQYWdpbmF0aW9uLFxuICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uLFxuICAgIHN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uLFxuICBdKVxuXG4gIC8vIEN1YW5kbyBzZSBsaW1waWEgZWwgc2VhcmNoLCB2b2x2ZXIgYSByZWNlbnRzXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKCkpIHtcbiAgICAgIGZldGNoUmVjZW50KClcbiAgICB9XG4gIH0sIFtkZWJvdW5jZWRTZWFyY2hWYWx1ZSwgZmV0Y2hSZWNlbnRdKVxuXG4gIHJldHVybiB7XG4gICAgaXRlbXMsXG4gICAgbG9hZGluZyxcbiAgICBlcnJvcixcbiAgICBoaWRlUmVjZW50c0xhYmVsLFxuICAgIGhhc01vcmUsXG4gICAgaXNMb2FkaW5nTW9yZSxcbiAgICBsb2FkTW9yZSxcbiAgICBzZWFyY2hWYWx1ZSxcbiAgICB1cGRhdGVTZWFyY2hWYWx1ZTogc2V0U2VhcmNoVmFsdWUsXG4gICAgZmV0Y2hSZWNlbnQsXG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLFNBQVNBLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQUN6RSxTQUFTQyxnQkFBZ0IsUUFBUSxpREFBaUQ7QUFDbEYsU0FBU0MsaUJBQWlCLFFBQVEsbURBQW1EO0FBQ3JGLFNBQVNDLGNBQWMsUUFBUSw2Q0FBNkM7QUFFNUUsU0FBU0MsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTQyxpQkFBaUIsRUFBRUMsZUFBZSxFQUFFQyxvQkFBb0IsUUFBUSxxQ0FBcUM7QUFDOUcsU0FBU0MsY0FBYyxRQUFRLHFDQUFxQztBQUNwRSxTQUFTQyxlQUFlLFFBQVEsdUNBQXVDO0FBQ3ZFLFNBQVNDLHdCQUF3QixRQUFRLHFCQUFxQjtBQUM5RCxTQUFTQyxXQUFXLFFBQVEsZUFBZTtBQUMzQyxTQUFTQyxJQUFJLFFBQVEsUUFBUTtBQXdGN0IsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsS0FBYyxFQUFFQyxRQUFnQixFQUFhO0VBQ3pFLElBQU1DLE1BQU0sR0FBR0MsTUFBTSxDQUFDSCxLQUFLLENBQUM7RUFDNUIsSUFBSSxDQUFDRyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0YsTUFBTSxDQUFDLEVBQUUs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
1132
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VMYXp5UXVlcnkiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImdldFJlY2VudENsaWVudHMiLCJnZXRSZWNlbnRQcm9qZWN0cyIsImdldFJlY2VudFRhc2tzIiwidXNlVXNlciIsIlBST0pFQ1RTX0ZBTExCQUNLIiwiU0VBUkNIX0VOVElUSUVTIiwiVEFTS19GQU1JTFlfRkFMTEJBQ0siLCJTRUFSQ0hfQ0xJRU5UUyIsIlVTRVJTX0RJUkVDVE9SWSIsIlNFQVJDSF9RVUVSWV9ERUJPVU5DRV9NUyIsInVzZURlYm91bmNlIiwidXNlVCIsIm5vcm1hbGl6ZVBvc2l0aXZlSW50IiwidmFsdWUiLCJmYWxsYmFjayIsInBhcnNlZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9ybWFsaXplZCIsIk1hdGgiLCJmbG9vciIsIkJBU0VfRklMVEVSU19CWV9UWVBFIiwicHJvamVjdCIsImFyY2hpdmVkIiwidGFzayIsImJ1aWxkVGFza1NlYXJjaEV4dHJhRW50cmllcyIsInNjb3BlIiwicmF3Q2xpZW50IiwiY2xpZW50SWQiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJyYXdQcm9qZWN0IiwicHJvamVjdElkIiwiYWdlbnRFbnRpdHkiLCJlbnRyaWVzIiwicHVzaENsaWVudCIsInB1c2giLCJwdXNoUHJvamVjdCIsImJ1aWxkVGFza1NlYXJjaEV4dHJhIiwibGVuZ3RoIiwiSlNPTiIsInN0cmluZ2lmeSIsImJ1aWxkUHJvamVjdFNlYXJjaEV4dHJhIiwiYnVpbGRTZWFyY2hFbnRpdGllc0V4dHJhIiwidHlwZSIsImJ1aWxkRmlsdGVyc0ZvclR5cGUiLCJidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycyIsInEiLCJiYXNlIiwid2l0aFBvc2l0aW9uIiwid2l0aFRlYW1zIiwidHJpbW1lZFEiLCJ0cmltIiwic2VhcmNoSW5wdXQiLCJoaWdobGlnaHRSYW5nZSIsInRleHQiLCJzZWFyY2hWYWx1ZSIsImlkeCIsInRvTG93ZXJDYXNlIiwiaW5kZXhPZiIsInN0YXJ0IiwiZmlyc3REZWZpbmVkIiwiX2xlbiIsImFyZ3VtZW50cyIsInZhbHVlcyIsIkFycmF5IiwiX2tleSIsImZpbmQiLCJub3JtYWxpemVUcmltbWVkU3RyaW5nIiwiZ2V0VXNlclBvc2l0aW9uTmFtZSIsInVzZXJQb3NpdGlvbiIsIl90eXBlb2YiLCJuYW1lIiwibWFwQ2xpZW50VG9JdGVtIiwiYyIsIl9jJHRvdGFsUHJveWVjdG9zIiwiX2MkdG90YWxQcm95ZWN0b3MyIiwiaWQiLCJwcmltYXJ5IiwicHJpbWFyeUhpZ2hsaWdodCIsImJyZWFkY3J1bWIiLCJjb3VudCIsInRvdGFsUHJveWVjdG9zIiwiY291bnRMYWJlbCIsInJhdyIsIm1hcFVzZXJUb0l0ZW0iLCJ1IiwiX3UkZmlyc3ROYW1lIiwiX3UkbGFzdE5hbWUiLCJfdSRwaWN0dXJlIiwiX3UkcG9zaXRpb25OYW1lIiwiX3UkZW1haWwiLCJmdWxsTmFtZSIsImNvbmNhdCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJwaWN0dXJlIiwicG9zaXRpb25OYW1lIiwibWFwQ29yVXNlclRvVXNlckl0ZW0iLCJ1c2VyIiwibWVMYWJlbCIsIl91c2VyJGZpcnN0TmFtZSIsIl91c2VyJGxhc3ROYW1lIiwicG9zaXRpb25MaW5lIiwidXNlcl9wb3NpdGlvbiIsIm1hcFJlY2VudFRhc2tUb0l0ZW0iLCJfdGFzayRwcm9qZWN0TmFtZSIsInNob3dQcm9qZWN0TmFtZUluVGFza1JvdyIsInRpdGxlIiwicHJvamVjdE5hbWUiLCJwYXJlbnQiLCJub3JtYWxpemVUYXNrRmFtaWx5UmVjb3JkIiwicmVjb3JkIiwiX3JlY29yZCR0aXRsZSIsIl9maXJzdERlZmluZWQiLCJfcmVjb3JkJHByb2plY3QiLCJfcmVjb3JkJGZhdGhlciIsIl9yZWNvcmQkZmF0aGVyMiIsInRhc2tGYW1pbHlJZCIsIl9pZCIsImZhdGhlciIsImhhc0ZhdGhlciIsInRhc2tGYXRoZXIiLCJub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkIiwiX3JlY29yZCRuYW1lIiwiX2ZpcnN0RGVmaW5lZDIiLCJfcmVjb3JkJGNsaWVudCIsIl9yZWNvcmQkY2xpZW50JG5hbWUiLCJfcmVjb3JkJGNsaWVudDIiLCJjbGllbnQiLCJjbGllbnROYW1lIiwibWFwU2VhcmNoVG9JdGVtIiwiciIsIl9yJHByb2plY3ROYW1lIiwiX3IkcHJvamVjdE5hbWUyIiwiX3IkY2xpZW50SWQiLCJfciRjbGllbnROYW1lIiwiX3IkZmVlSWQiLCJfZmF0aGVyJHRpdGxlIiwidGFza1Byb2plY3ROYW1lIiwiZmVlSWQiLCJmYXRoZXJJZCIsImZhdGhlclRpdGxlIiwiZm9ybWF0TWNwUHJpbWFyeUxhYmVsIiwic2x1ZyIsInJlcGxhY2UiLCJjaGFyIiwidG9VcHBlckNhc2UiLCJtYXBNY3BTbHVnc1RvSXRlbXMiLCJzbHVncyIsImZpbHRlcmVkIiwiZmlsdGVyIiwicyIsImluY2x1ZGVzIiwibWFwIiwidXNlRW50aXR5U2VhcmNoIiwiX3Njb3BlJG1jcFNsdWdzIiwiY29yVXNlciIsIl91c2VUIiwidCIsInJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzZXRTZWFyY2hWYWx1ZSIsImRlYm91bmNlZFNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJpdGVtcyIsInNldEl0ZW1zIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJsb2FkaW5nIiwic2V0TG9hZGluZyIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZXJyb3IiLCJzZXRFcnJvciIsIl91c2VTdGF0ZTkiLCJfdXNlU3RhdGUwIiwiaGlkZVJlY2VudHNMYWJlbCIsInNldEhpZGVSZWNlbnRzTGFiZWwiLCJfdXNlU3RhdGUxIiwiX3VzZVN0YXRlMTAiLCJoYXNNb3JlIiwic2V0SGFzTW9yZSIsIl91c2VTdGF0ZTExIiwiX3VzZVN0YXRlMTIiLCJpc0xvYWRpbmdNb3JlIiwic2V0SXNMb2FkaW5nTW9yZSIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJjdXJyZW50UGFnZSIsInNldEN1cnJlbnRQYWdlIiwiX3VzZVN0YXRlMTUiLCJfdXNlU3RhdGUxNiIsImFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UiLCJzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlIiwibWNwU2x1Z3NLZXkiLCJtY3BTbHVncyIsImpvaW4iLCJzdGFibGVTY29wZSIsIl9zY29wZSRjbGllbnRJZCIsIl9zY29wZSRwcm9qZWN0SWQiLCJfc2NvcGUkbWNwU2x1Z3MyIiwiX3Njb3BlJGFnZW50RW50aXR5IiwiX3VzZUxhenlRdWVyeSIsInZhcmlhYmxlcyIsImxpbWl0IiwiZmV0Y2hQb2xpY3kiLCJfdXNlTGF6eVF1ZXJ5MiIsImZldGNoU2VhcmNoRW50aXRpZXMiLCJfdXNlTGF6eVF1ZXJ5MiQiLCJzZWFyY2hEYXRhIiwiZGF0YSIsInNlYXJjaExvYWRpbmciLCJzZWFyY2hFcnJvciIsIl91c2VMYXp5UXVlcnkzIiwiX3VzZUxhenlRdWVyeTQiLCJmZXRjaFNlYXJjaENsaWVudHMiLCJfdXNlTGF6eVF1ZXJ5NCQiLCJjbGllbnRzRGF0YSIsImNsaWVudHNMb2FkaW5nIiwiY2xpZW50c0Vycm9yIiwiX3VzZUxhenlRdWVyeTUiLCJfdXNlTGF6eVF1ZXJ5NiIsImZldGNoVXNlcnNEaXJlY3RvcnkiLCJfdXNlTGF6eVF1ZXJ5NiQiLCJ1c2Vyc0RhdGEiLCJ1c2Vyc0xvYWRpbmciLCJ1c2Vyc0Vycm9yIiwic3luY1VzZXJzUGFnaW5hdGlvbiIsInBheWxvYWQiLCJfcGF5bG9hZCR1c2Vyc0RpcmVjdG8iLCJfcGF5bG9hZCR1c2Vyc0RpcmVjdG8yIiwicGFnZSIsInVzZXJzRGlyZWN0b3J5IiwibGFzdFBhZ2UiLCJzeW5jQ2xpZW50c1BhZ2luYXRpb24iLCJfcGF5bG9hZCRjbGllbnRzIiwiX3BheWxvYWQkY2xpZW50czIiLCJjbGllbnRzIiwic3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24iLCJfcGF5bG9hZCR0YXNrRmFtaWx5IiwiX3BheWxvYWQkdGFza0ZhbWlseTIiLCJyYXdQYWdlIiwidGFza0ZhbWlseSIsInN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uIiwiX3BheWxvYWQkcHJvamVjdHMiLCJfcGF5bG9hZCRwcm9qZWN0czIiLCJwcm9qZWN0cyIsIl91c2VMYXp5UXVlcnk3IiwiX3VzZUxhenlRdWVyeTgiLCJmZXRjaFRhc2tGYW1pbHlGYWxsYmFjayIsIl91c2VMYXp5UXVlcnk5IiwiX3VzZUxhenlRdWVyeTAiLCJmZXRjaFByb2plY3RzRmFsbGJhY2siLCJmZXRjaFJlY2VudCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsIm1hcmsiLCJfY2FsbGVlIiwiZ2VuZXJhdGlvbiIsIl9zdGFibGVTY29wZSRtY3BTbHVncyIsIm1hcHBlZCIsIl9kYXRhIiwiX21hcHBlZCIsIl9mYWxsYmFja0RhdGEkcHJvamVjdCIsIl9mYWxsYmFja0RhdGEkcHJvamVjdDIiLCJhcmd1bWVudHNGaWx0ZXIiLCJfeWllbGQkZmV0Y2hQcm9qZWN0c0YiLCJmYWxsYmFja0RhdGEiLCJmYWxsYmFja01hcHBlZCIsInJlY2VudFRhc2tGaWx0ZXJzIiwiX2RhdGEyIiwidGFza0l0ZW1zIiwiX2ZhbGxiYWNrRGF0YSR0YXNrRmFtIiwiX2ZhbGxiYWNrRGF0YSR0YXNrRmFtMiIsIl95aWVsZCRmZXRjaFRhc2tGYW1pbCIsIl9mYWxsYmFja0RhdGEiLCJfZGF0YTMkdXNlcnNEaXJlY3RvcnkiLCJfZGF0YTMkdXNlcnNEaXJlY3RvcnkyIiwiX3lpZWxkJGZldGNoVXNlcnNEaXJlIiwiX2RhdGEzIiwiX21hcHBlZDIiLCJtZUl0ZW0iLCJ3aXRob3V0TWUiLCJfdCIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiY3VycmVudCIsImFicnVwdCIsInNlbnQiLCJpc0FycmF5IiwicCIsImNsaWVudF9pZCIsIl9vYmplY3RTcHJlYWQiLCJwZXJQYWdlIiwiaXRlbSIsInByb2plY3RJZHMiLCJjbGllbnRJZHMiLCJwYWdpbmF0aW9uIiwib2Zmc2V0Iiwic2l6ZSIsImZpbHRlcnMiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJmaW5pc2giLCJzdG9wIiwiX3N0YWJsZVNjb3BlJG1jcFNsdWdzMiIsImV4dHJhIiwiX2NsaWVudHNEYXRhJGNsaWVudHMiLCJfdXNlcnNEYXRhJHVzZXJzRGlyZWMiLCJtZUlkIiwiaGFzTWVJblJlc3VsdHMiLCJzb21lIiwic2VhcmNoIiwibG9hZE1vcmUiLCJfY2FsbGVlMiIsInNhZmVDdXJyZW50UGFnZSIsIm5leHRQYWdlIiwibG9hZE1vcmVCYXNlbGluZUdlbiIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5IiwiX2RhdGEkdXNlcnNEaXJlY3RvcnkyIiwiX2RhdGEkdXNlcnNEaXJlY3RvcnkkIiwiX2RhdGEkdXNlcnNEaXJlY3RvcnkzIiwiX2RhdGEkdXNlcnNEaXJlY3RvcnkkMiIsIl9kYXRhJHVzZXJzRGlyZWN0b3J5NCIsIl95aWVsZCRmZXRjaFVzZXJzRGlyZTIiLCJuZXh0SXRlbXMiLCJfZGF0YTQkY2xpZW50cyIsIl9kYXRhNCRjbGllbnRzMiIsIl9kYXRhNCRjbGllbnRzJGRhdGEkbCIsIl9kYXRhNCRjbGllbnRzMyIsIl9kYXRhNCRjbGllbnRzJGRhdGEiLCJfZGF0YTQkY2xpZW50czQiLCJfeWllbGQkZmV0Y2hTZWFyY2hDbGkiLCJfZGF0YTQiLCJfbmV4dEl0ZW1zIiwiX2RhdGE1JHRhc2tGYW1pbHkiLCJfZGF0YTUkdGFza0ZhbWlseTIiLCJfZGF0YTUkdGFza0ZhbWlseSRkYXQiLCJfZGF0YTUkdGFza0ZhbWlseTMiLCJfZGF0YTUkdGFza0ZhbWlseSRkYXQyIiwiX2RhdGE1JHRhc2tGYW1pbHk0IiwiX3lpZWxkJGZldGNoVGFza0ZhbWlsMiIsIl9kYXRhNSIsIl9uZXh0SXRlbXMyIiwiX2RhdGE2JHByb2plY3RzIiwiX2RhdGE2JHByb2plY3RzMiIsIl9kYXRhNiRwcm9qZWN0cyRkYXRhJCIsIl9kYXRhNiRwcm9qZWN0czMiLCJfZGF0YTYkcHJvamVjdHMkZGF0YSIsIl9kYXRhNiRwcm9qZWN0czQiLCJfeWllbGQkZmV0Y2hQcm9qZWN0c0YyIiwiX2RhdGE2IiwiX25leHRJdGVtczMiLCJfdDIiLCJfY29udGV4dDIiLCJjb25zb2xlIiwiaW5mbyIsInNvdXJjZSIsInF1ZXJ5IiwiX3ByZXYkIiwiZXhpc3RpbmdJZHMiLCJTZXQiLCJhcHBlbmRlZCIsImhhcyIsInVwZGF0ZVNlYXJjaFZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hvb2tzL3VzZUVudGl0eVNlYXJjaC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VMYXp5UXVlcnkgfSBmcm9tICdAYXBvbGxvL2NsaWVudCdcbmltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGdldFJlY2VudENsaWVudHMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudENsaWVudHMvZ2V0UmVjZW50Q2xpZW50cydcbmltcG9ydCB7IGdldFJlY2VudFByb2plY3RzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRQcm9qZWN0cy9nZXRSZWNlbnRQcm9qZWN0cydcbmltcG9ydCB7IGdldFJlY2VudFRhc2tzIH0gZnJvbSAnLi4vc2VydmljZXMvbWFpYS9SZWNlbnRUYXNrcy9nZXRSZWNlbnRUYXNrcydcbmltcG9ydCB0eXBlIHsgUmVjZW50VGFza0l0ZW0gfSBmcm9tICcuLi9zZXJ2aWNlcy9tYWlhL1JlY2VudFRhc2tzL2dldFJlY2VudFRhc2tzJ1xuaW1wb3J0IHsgdXNlVXNlciB9IGZyb20gJy4uL2NvbnRleHQvY29yLXVzZXInXG5pbXBvcnQgeyBQUk9KRUNUU19GQUxMQkFDSywgU0VBUkNIX0VOVElUSUVTLCBUQVNLX0ZBTUlMWV9GQUxMQkFDSyB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L2VudGl0eVNlYXJjaFF1ZXJ5J1xuaW1wb3J0IHsgU0VBUkNIX0NMSUVOVFMgfSBmcm9tICcuLi9zZXJ2aWNlcy9xdWVyeS9DbGllbnRTZWFyY2hRdWVyeSdcbmltcG9ydCB7IFVTRVJTX0RJUkVDVE9SWSB9IGZyb20gJy4uL3NlcnZpY2VzL3F1ZXJ5L3VzZXJzRGlyZWN0b3J5UXVlcnknXG5pbXBvcnQgeyBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMgfSBmcm9tICcuLi9jb25zdGFudHMvY29uZmlnJ1xuaW1wb3J0IHsgdXNlRGVib3VuY2UgfSBmcm9tICcuL3VzZURlYm91bmNlJ1xuaW1wb3J0IHsgdXNlVCB9IGZyb20gJy4vdXNlVCdcbmltcG9ydCB7IENvbnRleHRFbnRpdHlUeXBlLCBDb250ZXh0TWVudGlvbkl0ZW0gfSBmcm9tICcuLi90eXBlcy9jb250ZXh0TWVudGlvbidcbmltcG9ydCB0eXBlIHsgQWdlbnRFbnRpdHkgfSBmcm9tICcuLi90eXBlcy9hZ2VudCdcblxudHlwZSBSYXdTZWFyY2hSZXN1bHQgPSB7XG4gIGlkOiBzdHJpbmcgfCBudW1iZXJcbiAgdGl0bGU6IHN0cmluZ1xuICB0eXBlPzogc3RyaW5nXG4gIGNsaWVudElkPzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbFxuICBmZWVJZD86IG51bWJlciB8IHN0cmluZyB8IG51bGxcbiAgY2xpZW50TmFtZT86IHN0cmluZyB8IG51bGxcbiAgcHJvamVjdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGZhdGhlcj86IHsgaWQ6IHN0cmluZyB8IG51bWJlcjsgdGl0bGU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG59XG5cbnR5cGUgUmF3Q2xpZW50ID0ge1xuICBpZDogbnVtYmVyIHwgc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xuICB0b3RhbFByb3llY3Rvcz86IG51bWJlciB8IG51bGxcbn1cblxudHlwZSBSYXdEaXJlY3RvcnlVc2VyID0ge1xuICBpZDogc3RyaW5nIHwgbnVtYmVyXG4gIGZpcnN0TmFtZT86IHN0cmluZyB8IG51bGxcbiAgbGFzdE5hbWU/OiBzdHJpbmcgfCBudWxsXG4gIGVtYWlsPzogc3RyaW5nIHwgbnVsbFxuICBwaWN0dXJlPzogc3RyaW5nIHwgbnVsbFxuICBwb3NpdGlvbk5hbWU/OiBzdHJpbmcgfCBudWxsXG59XG5cbnR5cGUgU2VhcmNoRW50aXRpZXNEYXRhID0geyBzZWFyY2g6IFJhd1NlYXJjaFJlc3VsdFtdIHwgbnVsbCB9XG50eXBlIFNlYXJjaENsaWVudHNEYXRhID0ge1xuICBjbGllbnRzOiB7XG4gICAgdG90YWw/OiBudW1iZXIgfCBudWxsXG4gICAgcGVyUGFnZT86IG51bWJlciB8IG51bGxcbiAgICBwYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGRhdGE6IFJhd0NsaWVudFtdXG4gIH0gfCBudWxsXG59XG50eXBlIFVzZXJzRGlyZWN0b3J5RGF0YSA9IHtcbiAgdXNlcnNEaXJlY3Rvcnk6IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YTogUmF3RGlyZWN0b3J5VXNlcltdIHwgbnVsbFxuICB9IHwgbnVsbFxufVxuXG50eXBlIFRhc2tGYW1pbHlSZWNvcmQgPSB7XG4gIF9pZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgdGl0bGU/OiBzdHJpbmcgfCBudWxsXG4gIHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgdGFza0ZhdGhlcj86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgZmF0aGVyPzogeyBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7IHRpdGxlPzogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbFxuICBwcm9qZWN0PzogeyBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGw7IG5hbWU/OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsXG59XG5cbnR5cGUgVGFza0ZhbWlseURhdGEgPSB7XG4gIHRhc2tGYW1pbHk/OiB7XG4gICAgdG90YWw/OiBudW1iZXIgfCBudWxsXG4gICAgcGVyUGFnZT86IG51bWJlciB8IG51bGxcbiAgICBwYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGxhc3RQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIGRhdGE/OiBUYXNrRmFtaWx5UmVjb3JkW10gfCBudWxsXG4gIH0gfCBudWxsXG59XG5cbnR5cGUgRmFsbGJhY2tQcm9qZWN0UmVjb3JkID0ge1xuICBpZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgbmFtZT86IHN0cmluZyB8IG51bGxcbiAgY2xpZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIGNsaWVudD86IHsgaWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyBuYW1lPzogc3RyaW5nIHwgbnVsbCB9IHwgbnVsbFxufVxuXG50eXBlIFByb2plY3RzRmFsbGJhY2tEYXRhID0ge1xuICBwcm9qZWN0cz86IHtcbiAgICB0b3RhbD86IG51bWJlciB8IG51bGxcbiAgICBwZXJQYWdlPzogbnVtYmVyIHwgbnVsbFxuICAgIHBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgbGFzdFBhZ2U/OiBudW1iZXIgfCBudWxsXG4gICAgZGF0YT86IEZhbGxiYWNrUHJvamVjdFJlY29yZFtdIHwgbnVsbFxuICB9IHwgbnVsbFxufVxuXG50eXBlIFBhZ2luYXRpb25Tb3VyY2UgPSAnbm9uZScgfCAndXNlcnMnIHwgJ2NsaWVudHMtc2VhcmNoJyB8ICd0YXNrLWZhbGxiYWNrJyB8ICdwcm9qZWN0LWZhbGxiYWNrJ1xuXG5jb25zdCBub3JtYWxpemVQb3NpdGl2ZUludCA9ICh2YWx1ZTogdW5rbm93biwgZmFsbGJhY2s6IG51bWJlcik6IG51bWJlciA9PiB7XG4gIGNvbnN0IHBhcnNlZCA9IE51bWJlcih2YWx1ZSlcbiAgaWYgKCFOdW1iZXIuaXNGaW5pdGUocGFyc2VkKSkgcmV0dXJuIGZhbGxiYWNrXG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBNYXRoLmZsb29yKHBhcnNlZClcbiAgcmV0dXJuIG5vcm1hbGl6ZWQgPiAwID8gbm9ybWFsaXplZCA6IGZhbGxiYWNrXG59XG5cbi8qKlxuICogUmVzdHJpbmdlIGxvcyByZXN1bHRhZG9zIGFsIGBjbGllbnRJZGAvYHByb2plY3RJZGAgZGVsIGFnZW50ZSBhY3Rpdm8uXG4gKiBDdWFuZG8gZWwgYWdlbnRlIGVzdMOhIHNjb3BlYWRvIGEgdW4gY2xpZW50L3Byb2plY3QsIHRhbnRvIGxvcyByZWNlbnRzIGNvbW9cbiAqIGVsIHNlYXJjaCBkZWJlbiBmaWx0cmFyIHBvciBlc2UgY29udGV4dG8uIFNpIGVsIGJhY2tlbmQgbm8gZW50aWVuZGUgYWxnw7puXG4gKiBjYW1wbyBsbyBpZ25vcmEgeSBzZSBjYWUgYWwgY29tcG9ydGFtaWVudG8gZ2xvYmFsLlxuICovXG5leHBvcnQgdHlwZSBFbnRpdHlTZWFyY2hTY29wZSA9IHtcbiAgY2xpZW50SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsXG4gIHByb2plY3RJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGxcbiAgLyoqIFNsdWdzIGRlbCBjb25lY3RvciBNQ1AgZGVsIGFnZW50ZSAobGlzdGFkbyBsb2NhbCwgc2luIEdyYXBoUUwpLiAqL1xuICBtY3BTbHVncz86IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBgZW50aXR5YCBkZWwgYWdlbnRlIGFjdGl2by4gUGFyYSBlc3BlY2lhbGlzdGFzOlxuICAgKiAtIGBwcm9qZWN0YDogYsO6c3F1ZWRhIGRlIHRhcmVhcyBmdWVyemEgZmlsdHJvIHBvciBgcHJvamVjdElkYCBkZWwgY29udGV4dG8uXG4gICAqIC0gYGNsaWVudGA6IGLDunNxdWVkYSBkZSBwcm95ZWN0b3MgcG9yIGBjbGllbnRJZGA7IHRhcmVhcyBwb3IgY2xpZW50ZSAoeSBwcm95ZWN0byBzaSBhcGxpY2EpLlxuICAgKi9cbiAgYWdlbnRFbnRpdHk/OiBBZ2VudEVudGl0eSB8IG51bGxcbn1cblxudHlwZSBTZWFyY2hGaWx0ZXJhYmxlVHlwZSA9ICdwcm9qZWN0JyB8ICd0YXNrJ1xuXG5jb25zdCBCQVNFX0ZJTFRFUlNfQllfVFlQRTogUmVjb3JkPFNlYXJjaEZpbHRlcmFibGVUeXBlLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHtcbiAgcHJvamVjdDogeyBwcm9qZWN0OiAndHJ1ZScsIGFyY2hpdmVkOiAnYWxsJyB9LFxuICB0YXNrOiB7IHRhc2s6ICd0cnVlJywgYXJjaGl2ZWQ6ICdmYWxzZScgfSxcbn1cblxuLyoqXG4gKiBFbnRyYWRhcyBwYXJhIGVsIGFyZ3VtZW50byBHcmFwaFFMIGBleHRyYWAgKEpTT04gc3RyaW5nIGRlIGFycmF5KSBhbCBidXNjYXIgdGFyZWFzIGNvbiBjb250ZXh0by5cbiAqIEVqLjogW3tcInByb2plY3RJZFwiOlwiODgxNTUyXCJ9XVxuICovXG5jb25zdCBidWlsZFRhc2tTZWFyY2hFeHRyYUVudHJpZXMgPSAoc2NvcGU/OiBFbnRpdHlTZWFyY2hTY29wZSk6IEFycmF5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0+IHtcbiAgY29uc3QgcmF3Q2xpZW50ID1cbiAgICBzY29wZT8uY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8uY2xpZW50SWQgIT09IG51bGwgJiYgc2NvcGU/LmNsaWVudElkICE9PSAnJyA/IFN0cmluZyhzY29wZS5jbGllbnRJZCkgOiBudWxsXG4gIGNvbnN0IHJhd1Byb2plY3QgPVxuICAgIHNjb3BlPy5wcm9qZWN0SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8ucHJvamVjdElkICE9PSBudWxsICYmIHNjb3BlPy5wcm9qZWN0SWQgIT09ICcnXG4gICAgICA/IFN0cmluZyhzY29wZS5wcm9qZWN0SWQpXG4gICAgICA6IG51bGxcblxuICBjb25zdCBhZ2VudEVudGl0eSA9IHNjb3BlPy5hZ2VudEVudGl0eVxuICBjb25zdCBlbnRyaWVzOiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IFtdXG5cbiAgY29uc3QgcHVzaENsaWVudCA9ICgpID0+IHtcbiAgICBpZiAocmF3Q2xpZW50KSBlbnRyaWVzLnB1c2goeyBjbGllbnRJZDogcmF3Q2xpZW50IH0pXG4gIH1cbiAgY29uc3QgcHVzaFByb2plY3QgPSAoKSA9PiB7XG4gICAgaWYgKHJhd1Byb2plY3QpIGVudHJpZXMucHVzaCh7IHByb2plY3RJZDogcmF3UHJvamVjdCB9KVxuICB9XG5cbiAgaWYgKGFnZW50RW50aXR5ID09PSAncHJvamVjdCcpIHtcbiAgICBpZiAocmF3UHJvamVjdCkge1xuICAgICAgcHVzaFByb2plY3QoKVxuICAgIH0gZWxzZSBpZiAocmF3Q2xpZW50KSB7XG4gICAgICBwdXNoQ2xpZW50KClcbiAgICB9XG4gIH0gZWxzZSBpZiAoYWdlbnRFbnRpdHkgPT09ICdjbGllbnQnKSB7XG4gICAgcHVzaENsaWVudCgpXG4gICAgcHVzaFByb2plY3QoKVxuICB9IGVsc2Uge1xuICAgIHB1c2hDbGllbnQoKVxuICAgIHB1c2hQcm9qZWN0KClcbiAgfVxuXG4gIHJldHVybiBlbnRyaWVzXG59XG5cbmNvbnN0IGJ1aWxkVGFza1NlYXJjaEV4dHJhID0gKHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBlbnRyaWVzID0gYnVpbGRUYXNrU2VhcmNoRXh0cmFFbnRyaWVzKHNjb3BlKVxuICBpZiAoZW50cmllcy5sZW5ndGggPT09IDApIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGVudHJpZXMpXG59XG5cbi8qKlxuICogVGFiIHByb3llY3RvOiBjb24gYGNsaWVudElkYCBlbiBlbCBzY29wZSwgYGV4dHJhYCBhY290YSBsYSBiw7pzcXVlZGEgYSBwcm95ZWN0b3MgZGUgZXNlIGNsaWVudGUuXG4gKiBFai46IGBbe1wiY2xpZW50SWRcIjpcIjQ3MTA1XCJ9XWAganVudG8gYSBgZmlsdGVyc2AgYHtcInByb2plY3RcIjpcInRydWVcIixcImFyY2hpdmVkXCI6XCJhbGxcIn1gLlxuICovXG5jb25zdCBidWlsZFByb2plY3RTZWFyY2hFeHRyYSA9IChzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKTogc3RyaW5nIHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgcmF3Q2xpZW50ID1cbiAgICBzY29wZT8uY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzY29wZT8uY2xpZW50SWQgIT09IG51bGwgJiYgc2NvcGU/LmNsaWVudElkICE9PSAnJyA/IFN0cmluZyhzY29wZS5jbGllbnRJZCkgOiBudWxsXG4gIGlmICghcmF3Q2xpZW50KSByZXR1cm4gdW5kZWZpbmVkXG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShbeyBjbGllbnRJZDogcmF3Q2xpZW50IH1dKVxufVxuXG5jb25zdCBidWlsZFNlYXJjaEVudGl0aWVzRXh0cmEgPSAodHlwZTogU2VhcmNoRmlsdGVyYWJsZVR5cGUsIHNjb3BlPzogRW50aXR5U2VhcmNoU2NvcGUpOiBzdHJpbmcgfCB1bmRlZmluZWQgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3Rhc2snKSByZXR1cm4gYnVpbGRUYXNrU2VhcmNoRXh0cmEoc2NvcGUpXG4gIGlmICh0eXBlID09PSAncHJvamVjdCcpIHJldHVybiBidWlsZFByb2plY3RTZWFyY2hFeHRyYShzY29wZSlcbiAgcmV0dXJuIHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIFRhYiBgdGFza2AgLyBgcHJvamVjdGA6IGBmaWx0ZXJzYCBzw7NsbyB0aXBvICsgYXJjaGl2ZWQgKHRhcmVhczogbm8gYXJjaGl2YWRhcyk7IHNjb3BlIChjbGllbnRJZCAvIHByb2plY3RJZCBlbiB0YXJlYXMpIGVuIGBleHRyYWAuXG4gKi9cbmNvbnN0IGJ1aWxkRmlsdGVyc0ZvclR5cGUgPSAodHlwZTogU2VhcmNoRmlsdGVyYWJsZVR5cGUpOiBzdHJpbmcgPT4ge1xuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KEJBU0VfRklMVEVSU19CWV9UWVBFLnByb2plY3QpXG4gIH1cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KEJBU0VfRklMVEVSU19CWV9UWVBFLnRhc2spXG59XG5cbi8qKlxuICogRmlsdHJvcyBwYXJhIHVzZXJzRGlyZWN0b3J5LiBFbCBiYWNrZW5kIGVzcGVyYSB1biBKU09OIHN0cmluZyBjb25cbiAqIHdpdGhQb3NpdGlvbiwgd2l0aFRlYW1zIHkgc2VhcmNoSW5wdXQuIExlIGFncmVnYW1vcyBjbGllbnRJZC9wcm9qZWN0SWRcbiAqIGRlbCBzY29wZSBlbiBjYXNvIGRlIHF1ZSBlbCBiYWNrZW5kIGxvcyBhcHJvdmVjaGUgcGFyYSBmaWx0cmFyIHBvclxuICogY29udGV4dG8gKHNpIG5vIGxvcyBlbnRpZW5kZSBsb3MgaWdub3JhKS5cbiAqL1xuY29uc3QgYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMgPSAocTogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgY29uc3QgYmFzZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgd2l0aFBvc2l0aW9uOiB0cnVlLFxuICAgIHdpdGhUZWFtczogdHJ1ZSxcbiAgfVxuICBjb25zdCB0cmltbWVkUSA9IHEudHJpbSgpXG4gIGlmICh0cmltbWVkUSkge1xuICAgIGJhc2Uuc2VhcmNoSW5wdXQgPSB0cmltbWVkUVxuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeShiYXNlKVxufVxuXG5jb25zdCBoaWdobGlnaHRSYW5nZSA9ICh0ZXh0OiBzdHJpbmcsIHNlYXJjaFZhbHVlOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFzZWFyY2hWYWx1ZSkgcmV0dXJuIHVuZGVmaW5lZFxuICBjb25zdCBpZHggPSB0ZXh0LnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpKVxuICBpZiAoaWR4IDwgMCkgcmV0dXJuIHVuZGVmaW5lZFxuICByZXR1cm4geyBzdGFydDogaWR4LCBsZW5ndGg6IHNlYXJjaFZhbHVlLmxlbmd0aCB9XG59XG5cbmNvbnN0IGZpcnN0RGVmaW5lZCA9IDxUPiguLi52YWx1ZXM6IEFycmF5PFQgfCBudWxsIHwgdW5kZWZpbmVkPik6IFQgfCB1bmRlZmluZWQgPT5cbiAgdmFsdWVzLmZpbmQodmFsdWUgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZSAhPT0gbnVsbClcblxuY29uc3Qgbm9ybWFsaXplVHJpbW1lZFN0cmluZyA9ICh2YWx1ZTogdW5rbm93bik6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSByZXR1cm4gJydcbiAgcmV0dXJuIHZhbHVlLnRyaW0oKVxufVxuXG5jb25zdCBnZXRVc2VyUG9zaXRpb25OYW1lID0gKHVzZXJQb3NpdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgdXNlVXNlcj5bJ3VzZXJfcG9zaXRpb24nXSk6IHN0cmluZyA9PiB7XG4gIGlmICh0eXBlb2YgdXNlclBvc2l0aW9uID09PSAnc3RyaW5nJykgcmV0dXJuIHVzZXJQb3NpdGlvbi50cmltKClcbiAgaWYgKHVzZXJQb3NpdGlvbiAmJiB0eXBlb2YgdXNlclBvc2l0aW9uID09PSAnb2JqZWN0JyAmJiAnbmFtZScgaW4gdXNlclBvc2l0aW9uKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVRyaW1tZWRTdHJpbmcodXNlclBvc2l0aW9uLm5hbWUpXG4gIH1cbiAgcmV0dXJuICcnXG59XG5cbmNvbnN0IG1hcENsaWVudFRvSXRlbSA9IChjOiBSYXdDbGllbnQsIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4gKHtcbiAgaWQ6IGMuaWQsXG4gIHR5cGU6ICdjbGllbnQnLFxuICBwcmltYXJ5OiBjLm5hbWUsXG4gIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKGMubmFtZSwgc2VhcmNoVmFsdWUpLFxuICBicmVhZGNydW1iOiB7XG4gICAgY291bnQ6IGMudG90YWxQcm95ZWN0b3MgPz8gdW5kZWZpbmVkLFxuICAgIGNvdW50TGFiZWw6ICdwcm9qZWN0cycsXG4gIH0sXG4gIHJhdzoge1xuICAgIGlkOiBjLmlkLFxuICAgIG5hbWU6IGMubmFtZSxcbiAgICB0b3RhbFByb3llY3RvczogYy50b3RhbFByb3llY3RvcyA/PyBudWxsLFxuICB9LFxufSlcblxuY29uc3QgbWFwVXNlclRvSXRlbSA9ICh1OiBSYXdEaXJlY3RvcnlVc2VyLCBzZWFyY2hWYWx1ZTogc3RyaW5nKTogQ29udGV4dE1lbnRpb25JdGVtID0+IHtcbiAgY29uc3QgZnVsbE5hbWUgPSBgJHt1LmZpcnN0TmFtZSA/PyAnJ30gJHt1Lmxhc3ROYW1lID8/ICcnfWAudHJpbSgpXG4gIGNvbnN0IHByaW1hcnkgPSBmdWxsTmFtZSB8fCB1LmVtYWlsIHx8IFN0cmluZyh1LmlkKVxuXG4gIHJldHVybiB7XG4gICAgaWQ6IHUuaWQsXG4gICAgdHlwZTogJ3VzZXInLFxuICAgIHByaW1hcnksXG4gICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgIHJhdzoge1xuICAgICAgaWQ6IHUuaWQsXG4gICAgICBuYW1lOiBwcmltYXJ5LFxuICAgICAgcGljdHVyZTogdS5waWN0dXJlID8/IG51bGwsXG4gICAgICBwb3NpdGlvbk5hbWU6IHUucG9zaXRpb25OYW1lID8/IG51bGwsXG4gICAgICBlbWFpbDogdS5lbWFpbCA/PyBudWxsLFxuICAgIH0sXG4gIH1cbn1cblxuY29uc3QgbWFwQ29yVXNlclRvVXNlckl0ZW0gPSAoXG4gIHVzZXI6IFJldHVyblR5cGU8dHlwZW9mIHVzZVVzZXI+LFxuICBzZWFyY2hWYWx1ZTogc3RyaW5nLFxuICBtZUxhYmVsOiBzdHJpbmdcbik6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IGZ1bGxOYW1lID0gYCR7dXNlci5maXJzdE5hbWUgPz8gJyd9ICR7dXNlci5sYXN0TmFtZSA/PyAnJ31gLnRyaW0oKVxuICAvKiogU29sbyBjYXJnbyByZWFsOyBzaW4gZmFsbGJhY2sgYSBgcm9sZWAgKGxhIFVJIG11ZXN0cmEg4oCcU2luIHBvc2ljacOzbuKAnSBzaSBmYWx0YSkuICovXG4gIGNvbnN0IHBvc2l0aW9uTGluZSA9IGdldFVzZXJQb3NpdGlvbk5hbWUodXNlci51c2VyX3Bvc2l0aW9uKSB8fCBudWxsXG4gIGNvbnN0IGVtYWlsID0gbm9ybWFsaXplVHJpbW1lZFN0cmluZyh1c2VyLmVtYWlsKSB8fCBudWxsXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogdXNlci5pZCxcbiAgICB0eXBlOiAndXNlcicsXG4gICAgcHJpbWFyeTogbWVMYWJlbCxcbiAgICBwcmltYXJ5SGlnaGxpZ2h0OiBoaWdobGlnaHRSYW5nZShtZUxhYmVsLCBzZWFyY2hWYWx1ZSksXG4gICAgcmF3OiB7XG4gICAgICBpZDogdXNlci5pZCxcbiAgICAgIG5hbWU6IGZ1bGxOYW1lIHx8IFN0cmluZyh1c2VyLmlkKSxcbiAgICAgIHBpY3R1cmU6IHVzZXIucGljdHVyZSB8fCBudWxsLFxuICAgICAgcG9zaXRpb25OYW1lOiBwb3NpdGlvbkxpbmUsXG4gICAgICBlbWFpbCxcbiAgICB9LFxuICB9XG59XG5cbmNvbnN0IG1hcFJlY2VudFRhc2tUb0l0ZW0gPSAoXG4gIHRhc2s6IFJlY2VudFRhc2tJdGVtLFxuICBzZWFyY2hWYWx1ZTogc3RyaW5nLFxuICBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPSB0cnVlXG4pOiBDb250ZXh0TWVudGlvbkl0ZW0gPT4ge1xuICBjb25zdCBwcmltYXJ5ID0gKHRhc2sudGl0bGUgJiYgdGFzay50aXRsZS50cmltKCkpIHx8IFN0cmluZyh0YXNrLmlkKVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA/ICh0YXNrLnByb2plY3ROYW1lID8/IG51bGwpIDogbnVsbFxuICByZXR1cm4ge1xuICAgIGlkOiB0YXNrLmlkLFxuICAgIHR5cGU6ICd0YXNrJyxcbiAgICBwcmltYXJ5LFxuICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHByaW1hcnksIHNlYXJjaFZhbHVlKSxcbiAgICBicmVhZGNydW1iOiBwcm9qZWN0TmFtZSA/IHsgcGFyZW50OiBwcm9qZWN0TmFtZSB9IDogdW5kZWZpbmVkLFxuICAgIHJhdzoge1xuICAgICAgaWQ6IHRhc2suaWQsXG4gICAgICBuYW1lOiBwcmltYXJ5LFxuICAgICAgcHJvamVjdE5hbWUsXG4gICAgfSxcbiAgfVxufVxuXG5jb25zdCBub3JtYWxpemVUYXNrRmFtaWx5UmVjb3JkID0gKHJlY29yZDogVGFza0ZhbWlseVJlY29yZCk6IFJlY2VudFRhc2tJdGVtIHwgbnVsbCA9PiB7XG4gIGNvbnN0IHsgX2lkOiB0YXNrRmFtaWx5SWQgfSA9IHJlY29yZFxuICBjb25zdCBpZCA9IHRhc2tGYW1pbHlJZFxuICBpZiAoaWQgPT09IHVuZGVmaW5lZCB8fCBpZCA9PT0gbnVsbCB8fCBTdHJpbmcoaWQpID09PSAnJykgcmV0dXJuIG51bGxcbiAgY29uc3QgdGl0bGUgPSAocmVjb3JkLnRpdGxlID8/ICcnKS50cmltKCkgfHwgU3RyaW5nKGlkKVxuICBjb25zdCBwcm9qZWN0TmFtZSA9IGZpcnN0RGVmaW5lZChyZWNvcmQucHJvamVjdD8ubmFtZSwgcmVjb3JkLmZhdGhlcj8udGl0bGUpID8/IG51bGxcbiAgY29uc3QgaGFzRmF0aGVyID0gISFmaXJzdERlZmluZWQocmVjb3JkLnRhc2tGYXRoZXIsIHJlY29yZC5mYXRoZXI/LmlkKVxuICByZXR1cm4ge1xuICAgIGlkLFxuICAgIHRpdGxlLFxuICAgIHR5cGU6IGhhc0ZhdGhlciA/ICdzdWJ0YXNrJyA6ICd0YXNrJyxcbiAgICBwcm9qZWN0TmFtZSxcbiAgfVxufVxuXG5jb25zdCBub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkID0gKHJlY29yZDogRmFsbGJhY2tQcm9qZWN0UmVjb3JkKTogUmF3U2VhcmNoUmVzdWx0IHwgbnVsbCA9PiB7XG4gIGNvbnN0IHsgaWQgfSA9IHJlY29yZFxuICBpZiAoaWQgPT09IHVuZGVmaW5lZCB8fCBpZCA9PT0gbnVsbCB8fCBTdHJpbmcoaWQpID09PSAnJykgcmV0dXJuIG51bGxcbiAgY29uc3QgdGl0bGUgPSByZWNvcmQubmFtZSA/PyAnJ1xuICBjb25zdCBjbGllbnRJZCA9IGZpcnN0RGVmaW5lZChyZWNvcmQuY2xpZW50SWQsIHJlY29yZC5jbGllbnQ/LmlkKSA/PyBudWxsXG4gIGNvbnN0IGNsaWVudE5hbWUgPSByZWNvcmQuY2xpZW50Py5uYW1lID8/IG51bGxcbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICB0aXRsZSxcbiAgICB0eXBlOiAncHJvamVjdCcsXG4gICAgY2xpZW50SWQsXG4gICAgY2xpZW50TmFtZSxcbiAgfVxufVxuXG5jb25zdCBtYXBTZWFyY2hUb0l0ZW0gPSAoXG4gIHI6IFJhd1NlYXJjaFJlc3VsdCxcbiAgdHlwZTogQ29udGV4dEVudGl0eVR5cGUsXG4gIHNlYXJjaFZhbHVlOiBzdHJpbmcsXG4gIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyA9IHRydWVcbik6IENvbnRleHRNZW50aW9uSXRlbSA9PiB7XG4gIGNvbnN0IHByaW1hcnkgPSByLnRpdGxlIHx8IHIucHJvamVjdE5hbWUgfHwgJydcbiAgbGV0IHBhcmVudDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSBwYXJlbnQgPSByLmNsaWVudE5hbWVcbiAgZWxzZSBpZiAodHlwZSA9PT0gJ3Rhc2snKSBwYXJlbnQgPSB1bmRlZmluZWRcbiAgZWxzZSBwYXJlbnQgPSByLnByb2plY3ROYW1lID8/IHIuY2xpZW50TmFtZVxuXG4gIGNvbnN0IGZhdGhlciA9IHR5cGUgPT09ICd0YXNrJyA/IHIuZmF0aGVyIDogbnVsbFxuICBjb25zdCBoYXNGYXRoZXIgPSB0eXBlID09PSAndGFzaycgJiYgZmF0aGVyICE9IG51bGwgJiYgZmF0aGVyLmlkICE9IG51bGwgJiYgU3RyaW5nKGZhdGhlci5pZCkubGVuZ3RoID4gMFxuXG4gIGNvbnN0IHRhc2tQcm9qZWN0TmFtZSA9IHR5cGUgPT09ICd0YXNrJyAmJiAhc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93ID8gbnVsbCA6IChyLnByb2plY3ROYW1lID8/IG51bGwpXG5cbiAgcmV0dXJuIHtcbiAgICBpZDogci5pZCxcbiAgICB0eXBlLFxuICAgIHByaW1hcnksXG4gICAgcHJpbWFyeUhpZ2hsaWdodDogaGlnaGxpZ2h0UmFuZ2UocHJpbWFyeSwgc2VhcmNoVmFsdWUpLFxuICAgIGJyZWFkY3J1bWI6IHBhcmVudCA/IHsgcGFyZW50IH0gOiB1bmRlZmluZWQsXG4gICAgcmF3OiB7XG4gICAgICBpZDogci5pZCxcbiAgICAgIG5hbWU6IHByaW1hcnksXG4gICAgICBjbGllbnRJZDogci5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgY2xpZW50TmFtZTogci5jbGllbnROYW1lID8/IG51bGwsXG4gICAgICBwcm9qZWN0TmFtZTogdGFza1Byb2plY3ROYW1lLFxuICAgICAgZmVlSWQ6IHIuZmVlSWQgPz8gbnVsbCxcbiAgICAgIGZhdGhlcklkOiBoYXNGYXRoZXIgPyBmYXRoZXIuaWQgOiBudWxsLFxuICAgICAgZmF0aGVyVGl0bGU6IGhhc0ZhdGhlciA/IGZhdGhlci50aXRsZT8udHJpbSgpIHx8IG51bGwgOiBudWxsLFxuICAgIH0sXG4gIH1cbn1cblxuY29uc3QgZm9ybWF0TWNwUHJpbWFyeUxhYmVsID0gKHNsdWc6IHN0cmluZyk6IHN0cmluZyA9PlxuICBzbHVnLnJlcGxhY2UoL18vZywgJyAnKS5yZXBsYWNlKC9cXGJcXHcvZywgY2hhciA9PiBjaGFyLnRvVXBwZXJDYXNlKCkpXG5cbmNvbnN0IG1hcE1jcFNsdWdzVG9JdGVtcyA9IChzbHVnczogc3RyaW5nW10sIHNlYXJjaFZhbHVlOiBzdHJpbmcpOiBDb250ZXh0TWVudGlvbkl0ZW1bXSA9PiB7XG4gIGNvbnN0IHEgPSBzZWFyY2hWYWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBsZXQgZmlsdGVyZWQgPSBzbHVnc1xuICBpZiAocSkge1xuICAgIGZpbHRlcmVkID0gc2x1Z3MuZmlsdGVyKHMgPT4ge1xuICAgICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzKVxuICAgICAgcmV0dXJuIHMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhxKSB8fCBwcmltYXJ5LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocSlcbiAgICB9KVxuICB9XG4gIHJldHVybiBmaWx0ZXJlZC5tYXAoc2x1ZyA9PiB7XG4gICAgY29uc3QgcHJpbWFyeSA9IGZvcm1hdE1jcFByaW1hcnlMYWJlbChzbHVnKVxuICAgIHJldHVybiB7XG4gICAgICBpZDogc2x1ZyxcbiAgICAgIHR5cGU6ICdtY3AnIGFzIGNvbnN0LFxuICAgICAgcHJpbWFyeSxcbiAgICAgIHByaW1hcnlIaWdobGlnaHQ6IGhpZ2hsaWdodFJhbmdlKHByaW1hcnksIHNlYXJjaFZhbHVlKSxcbiAgICAgIHJhdzoge1xuICAgICAgICBpZDogc2x1ZyxcbiAgICAgICAgbmFtZTogcHJpbWFyeSxcbiAgICAgIH0sXG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgY29uc3QgdXNlRW50aXR5U2VhcmNoID0gKHR5cGU6IENvbnRleHRFbnRpdHlUeXBlLCBzY29wZT86IEVudGl0eVNlYXJjaFNjb3BlKSA9PiB7XG4gIGNvbnN0IGNvclVzZXIgPSB1c2VVc2VyKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgLyoqIEV2aXRhIGFwbGljYXIgcmVzdWx0YWRvcyBkZSB1biBgZmV0Y2hSZWNlbnRgIHZpZWpvIGN1YW5kbyBlbCB1c3VhcmlvIHlhIGNhbWJpw7MgZGUgdGFiIChyYWNlIGFzeW5jKS4gKi9cbiAgY29uc3QgcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZiA9IHVzZVJlZigwKVxuICBjb25zdCBbc2VhcmNoVmFsdWUsIHNldFNlYXJjaFZhbHVlXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2hWYWx1ZSA9IHVzZURlYm91bmNlKHNlYXJjaFZhbHVlLCBTRUFSQ0hfUVVFUllfREVCT1VOQ0VfTVMpXG5cbiAgY29uc3QgW2l0ZW1zLCBzZXRJdGVtc10gPSB1c2VTdGF0ZTxDb250ZXh0TWVudGlvbkl0ZW1bXT4oW10pXG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaGlkZVJlY2VudHNMYWJlbCwgc2V0SGlkZVJlY2VudHNMYWJlbF0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc01vcmUsIHNldEhhc01vcmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtpc0xvYWRpbmdNb3JlLCBzZXRJc0xvYWRpbmdNb3JlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY3VycmVudFBhZ2UsIHNldEN1cnJlbnRQYWdlXSA9IHVzZVN0YXRlKDEpXG4gIGNvbnN0IFthY3RpdmVQYWdpbmF0aW9uU291cmNlLCBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlXSA9IHVzZVN0YXRlPFBhZ2luYXRpb25Tb3VyY2U+KCdub25lJylcblxuICBjb25zdCBtY3BTbHVnc0tleSA9IChzY29wZT8ubWNwU2x1Z3MgPz8gW10pLmpvaW4oJ3wnKVxuICBjb25zdCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cgPSBzY29wZT8uYWdlbnRFbnRpdHkgIT09ICdwcm9qZWN0J1xuXG4gIC8vIEVzdGFiaWxpemFtb3MgZWwgc2NvcGUgcGFyYSBubyBkaXNwYXJhciBmZXRjaHMgcG9yIGNhbWJpb3MgZGUgaWRlbnRpZGFkIGRlIG9iamV0by5cbiAgY29uc3Qgc3RhYmxlU2NvcGUgPSB1c2VNZW1vPEVudGl0eVNlYXJjaFNjb3BlPihcbiAgICAoKSA9PiAoe1xuICAgICAgY2xpZW50SWQ6IHNjb3BlPy5jbGllbnRJZCA/PyBudWxsLFxuICAgICAgcHJvamVjdElkOiBzY29wZT8ucHJvamVjdElkID8/IG51bGwsXG4gICAgICBtY3BTbHVnczogc2NvcGU/Lm1jcFNsdWdzID8/IFtdLFxuICAgICAgYWdlbnRFbnRpdHk6IHNjb3BlPy5hZ2VudEVudGl0eSA/PyBudWxsLFxuICAgIH0pLFxuICAgIFtzY29wZT8uY2xpZW50SWQsIHNjb3BlPy5wcm9qZWN0SWQsIG1jcFNsdWdzS2V5LCBzY29wZT8uYWdlbnRFbnRpdHldXG4gIClcblxuICAvLyAtLS0gU2VhcmNoOiBwcm9qZWN0IHwgdGFzayAoR3JhcGhRTDogc2VhcmNoKSAtLS1cbiAgY29uc3QgW2ZldGNoU2VhcmNoRW50aXRpZXMsIHsgZGF0YTogc2VhcmNoRGF0YSwgbG9hZGluZzogc2VhcmNoTG9hZGluZywgZXJyb3I6IHNlYXJjaEVycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8U2VhcmNoRW50aXRpZXNEYXRhPihTRUFSQ0hfRU5USVRJRVMsIHtcbiAgICAgIHZhcmlhYmxlczogeyBsaW1pdDogMjAgfSxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICB9KVxuXG4gIC8vIC0tLSBTZWFyY2g6IGNsaWVudCAoR3JhcGhRTCkgLS0tXG4gIGNvbnN0IFtmZXRjaFNlYXJjaENsaWVudHMsIHsgZGF0YTogY2xpZW50c0RhdGEsIGxvYWRpbmc6IGNsaWVudHNMb2FkaW5nLCBlcnJvcjogY2xpZW50c0Vycm9yIH1dID1cbiAgICB1c2VMYXp5UXVlcnk8U2VhcmNoQ2xpZW50c0RhdGE+KFNFQVJDSF9DTElFTlRTLCB7XG4gICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgfSlcblxuICAvLyAtLS0gU2VhcmNoOiB1c2VyIChHcmFwaFFMOiB1c2Vyc0RpcmVjdG9yeSkgLS0tXG4gIGNvbnN0IFtmZXRjaFVzZXJzRGlyZWN0b3J5LCB7IGRhdGE6IHVzZXJzRGF0YSwgbG9hZGluZzogdXNlcnNMb2FkaW5nLCBlcnJvcjogdXNlcnNFcnJvciB9XSA9XG4gICAgdXNlTGF6eVF1ZXJ5PFVzZXJzRGlyZWN0b3J5RGF0YT4oVVNFUlNfRElSRUNUT1JZLCB7XG4gICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgfSlcblxuICBjb25zdCBzeW5jVXNlcnNQYWdpbmF0aW9uID0gdXNlQ2FsbGJhY2soKHBheWxvYWQ/OiBVc2Vyc0RpcmVjdG9yeURhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LnVzZXJzRGlyZWN0b3J5Py5wYWdlLCAxKVxuICAgIGNvbnN0IGxhc3RQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8udXNlcnNEaXJlY3Rvcnk/Lmxhc3RQYWdlLCBwYWdlKVxuICAgIHNldEN1cnJlbnRQYWdlKHBhZ2UpXG4gICAgc2V0SGFzTW9yZShwYWdlIDwgbGFzdFBhZ2UpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHN5bmNDbGllbnRzUGFnaW5hdGlvbiA9IHVzZUNhbGxiYWNrKChwYXlsb2FkPzogU2VhcmNoQ2xpZW50c0RhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LmNsaWVudHM/LnBhZ2UsIDEpXG4gICAgY29uc3QgbGFzdFBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy5jbGllbnRzPy5sYXN0UGFnZSwgcGFnZSlcbiAgICBzZXRDdXJyZW50UGFnZShwYWdlKVxuICAgIHNldEhhc01vcmUocGFnZSA8IGxhc3RQYWdlKVxuICB9LCBbXSlcblxuICBjb25zdCBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbiA9IHVzZUNhbGxiYWNrKChwYXlsb2FkPzogVGFza0ZhbWlseURhdGEgfCBudWxsKSA9PiB7XG4gICAgY29uc3QgcmF3UGFnZSA9IE51bWJlcihwYXlsb2FkPy50YXNrRmFtaWx5Py5wYWdlKVxuICAgIC8vIHRhc2tGYW1pbHkgdXNhIHDDoWdpbmFzIDAtYmFzZWQ7IGNvbnZlcnRpbW9zIGEgMS1iYXNlZCBwYXJhIGNvbnNpc3RlbmNpYSBjb24gZWwgcmVzdG9cbiAgICBjb25zdCBwYWdlID0gTnVtYmVyLmlzRmluaXRlKHJhd1BhZ2UpICYmIHJhd1BhZ2UgPj0gMCA/IE1hdGguZmxvb3IocmF3UGFnZSkgKyAxIDogMVxuICAgIGNvbnN0IGxhc3RQYWdlID0gbm9ybWFsaXplUG9zaXRpdmVJbnQocGF5bG9hZD8udGFza0ZhbWlseT8ubGFzdFBhZ2UsIHBhZ2UpXG4gICAgc2V0Q3VycmVudFBhZ2UocGFnZSlcbiAgICBzZXRIYXNNb3JlKHBhZ2UgPCBsYXN0UGFnZSlcbiAgfSwgW10pXG5cbiAgY29uc3Qgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24gPSB1c2VDYWxsYmFjaygocGF5bG9hZD86IFByb2plY3RzRmFsbGJhY2tEYXRhIHwgbnVsbCkgPT4ge1xuICAgIGNvbnN0IHBhZ2UgPSBub3JtYWxpemVQb3NpdGl2ZUludChwYXlsb2FkPy5wcm9qZWN0cz8ucGFnZSwgMSlcbiAgICBjb25zdCBsYXN0UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KHBheWxvYWQ/LnByb2plY3RzPy5sYXN0UGFnZSwgcGFnZSlcbiAgICBzZXRDdXJyZW50UGFnZShwYWdlKVxuICAgIHNldEhhc01vcmUocGFnZSA8IGxhc3RQYWdlKVxuICB9LCBbXSlcblxuICBjb25zdCBbZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2tdID0gdXNlTGF6eVF1ZXJ5PFRhc2tGYW1pbHlEYXRhPihUQVNLX0ZBTUlMWV9GQUxMQkFDSywge1xuICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgfSlcblxuICBjb25zdCBbZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrXSA9IHVzZUxhenlRdWVyeTxQcm9qZWN0c0ZhbGxiYWNrRGF0YT4oUFJPSkVDVFNfRkFMTEJBQ0ssIHtcbiAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hSZWNlbnQgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50ICs9IDFcbiAgICBjb25zdCBnZW5lcmF0aW9uID0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50XG5cbiAgICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICAgIGNvbnN0IHNsdWdzID0gc3RhYmxlU2NvcGUubWNwU2x1Z3MgPz8gW11cbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIHNldEl0ZW1zKG1hcE1jcFNsdWdzVG9JdGVtcyhzbHVncywgJycpKVxuICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIHNldExvYWRpbmcodHJ1ZSlcbiAgICBzZXRFcnJvcihmYWxzZSlcbiAgICB0cnkge1xuICAgICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRDbGllbnRzKClcbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IChkYXRhID8/IFtdKS5tYXAoYyA9PiBtYXBDbGllbnRUb0l0ZW0oYywgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgc2V0SXRlbXMobWFwcGVkKVxuICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCdub25lJylcbiAgICAgICAgc2V0SGFzTW9yZShmYWxzZSlcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Byb2plY3QnKSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBnZXRSZWNlbnRQcm9qZWN0cyhzdGFibGVTY29wZS5jbGllbnRJZCA/IHsgY2xpZW50SWQ6IHN0YWJsZVNjb3BlLmNsaWVudElkIH0gOiB1bmRlZmluZWQpXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBsZXQgbWFwcGVkID0gKEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogW10pLm1hcChwID0+XG4gICAgICAgICAgbWFwU2VhcmNoVG9JdGVtKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpZDogcC5pZCxcbiAgICAgICAgICAgICAgdGl0bGU6IHAudGl0bGUsXG4gICAgICAgICAgICAgIHR5cGU6ICdwcm9qZWN0JyxcbiAgICAgICAgICAgICAgY2xpZW50SWQ6IHAuY2xpZW50SWQsXG4gICAgICAgICAgICAgIGZlZUlkOiBwLmZlZUlkLFxuICAgICAgICAgICAgICBjbGllbnROYW1lOiBwLmNsaWVudE5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJ3Byb2plY3QnLFxuICAgICAgICAgICAgJydcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICAgaWYgKG1hcHBlZC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBjb25zdCBhcmd1bWVudHNGaWx0ZXIgPVxuICAgICAgICAgICAgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJydcbiAgICAgICAgICAgICAgPyB7IGNsaWVudF9pZDogW1N0cmluZyhzdGFibGVTY29wZS5jbGllbnRJZCldIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICBjb25zdCB7IGRhdGE6IGZhbGxiYWNrRGF0YSB9ID0gYXdhaXQgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICAuLi4oYXJndW1lbnRzRmlsdGVyID8geyBhcmd1bWVudHM6IGFyZ3VtZW50c0ZpbHRlciB9IDoge30pLFxuICAgICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgICBjb25zdCBmYWxsYmFja01hcHBlZCA9IChmYWxsYmFja0RhdGE/LnByb2plY3RzPy5kYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChub3JtYWxpemVQcm9qZWN0c0ZhbGxiYWNrUmVjb3JkKVxuICAgICAgICAgICAgLmZpbHRlcigoaXRlbSk6IGl0ZW0gaXMgUmF3U2VhcmNoUmVzdWx0ID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKGl0ZW0gPT4gbWFwU2VhcmNoVG9JdGVtKGl0ZW0sICdwcm9qZWN0JywgJycpKVxuICAgICAgICAgIG1hcHBlZCA9IGZhbGxiYWNrTWFwcGVkXG4gICAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxsYmFja01hcHBlZC5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Byb2plY3QtZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKG1hcHBlZClcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3Rhc2snKSB7XG4gICAgICAgIGxldCByZWNlbnRUYXNrRmlsdGVyczogeyBwcm9qZWN0SWQ/OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsOyBjbGllbnRJZD86IHN0cmluZyB8IG51bWJlciB8IG51bGwgfSB8IHVuZGVmaW5lZFxuICAgICAgICBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdwcm9qZWN0Jykge1xuICAgICAgICAgIHJlY2VudFRhc2tGaWx0ZXJzID0geyBwcm9qZWN0SWQ6IHN0YWJsZVNjb3BlLnByb2plY3RJZCB9XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhYmxlU2NvcGUuYWdlbnRFbnRpdHkgPT09ICdjbGllbnQnKSB7XG4gICAgICAgICAgcmVjZW50VGFza0ZpbHRlcnMgPSB7IGNsaWVudElkOiBzdGFibGVTY29wZS5jbGllbnRJZCB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGdldFJlY2VudFRhc2tzKHJlY2VudFRhc2tGaWx0ZXJzKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgbGV0IHRhc2tJdGVtcyA9IChkYXRhID8/IFtdKS5tYXAodGFzayA9PiBtYXBSZWNlbnRUYXNrVG9JdGVtKHRhc2ssICcnLCBzaG93UHJvamVjdE5hbWVJblRhc2tSb3cpKVxuICAgICAgICBpZiAodGFza0l0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGNvbnN0IGZpbHRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge31cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUucHJvamVjdElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gdW5kZWZpbmVkICYmIHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5wcm9qZWN0SWRzID0gW1N0cmluZyhzdGFibGVTY29wZS5wcm9qZWN0SWQpXVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJycpIHtcbiAgICAgICAgICAgIGZpbHRlci5jbGllbnRJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLmNsaWVudElkKV1cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBkYXRhOiBmYWxsYmFja0RhdGEgfSA9IGF3YWl0IGZldGNoVGFza0ZhbWlseUZhbGxiYWNrKHtcbiAgICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgICBmaWx0ZXI6IHsgYXJjaGl2ZWQ6IGZhbHNlLCAuLi5maWx0ZXIgfSxcbiAgICAgICAgICAgICAgcGFnaW5hdGlvbjogeyBvZmZzZXQ6IDAsIHNpemU6IDIwIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG4gICAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgICAgdGFza0l0ZW1zID0gKGZhbGxiYWNrRGF0YT8udGFza0ZhbWlseT8uZGF0YSA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAobm9ybWFsaXplVGFza0ZhbWlseVJlY29yZClcbiAgICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFJlY2VudFRhc2tJdGVtID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgICAubWFwKHRhc2sgPT4gbWFwUmVjZW50VGFza1RvSXRlbSh0YXNrLCAnJywgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93KSlcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKHRhc2tJdGVtcy5sZW5ndGggPiAwKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3Rhc2stZmFsbGJhY2snKVxuICAgICAgICAgIHN5bmNUYXNrRmFsbGJhY2tQYWdpbmF0aW9uKGZhbGxiYWNrRGF0YSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuICAgICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ25vbmUnKVxuICAgICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGdlbmVyYXRpb24gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIHNldEl0ZW1zKHRhc2tJdGVtcylcbiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hVc2Vyc0RpcmVjdG9yeSh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBmaWx0ZXJzOiBidWlsZFVzZXJzRGlyZWN0b3J5RmlsdGVycygnJyksXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBjb25zdCBtYXBwZWQgPSAoZGF0YT8udXNlcnNEaXJlY3Rvcnk/LmRhdGEgPz8gW10pLm1hcCh1ID0+IG1hcFVzZXJUb0l0ZW0odSwgJycpKVxuICAgICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc3QgbWVJdGVtID0gbWFwQ29yVXNlclRvVXNlckl0ZW0oY29yVXNlciwgJycsIHQoJ2NvbnRleHRNZW50aW9uLm1lJykpXG4gICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IG1hcHBlZC5maWx0ZXIoaXRlbSA9PiBTdHJpbmcoaXRlbS5pZCkgIT09IFN0cmluZyhtZUl0ZW0uaWQpKVxuICAgICAgICBzZXRJdGVtcyhbbWVJdGVtLCAuLi53aXRob3V0TWVdKVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKGRhdGEpXG4gICAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgICAgIHNldEFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UoJ3VzZXJzJylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChnZW5lcmF0aW9uICE9PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHJldHVyblxuICAgICAgICBzZXRJdGVtcyhbXSlcbiAgICAgICAgc2V0SGlkZVJlY2VudHNMYWJlbChmYWxzZSlcbiAgICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICAgIHNldEhhc01vcmUoZmFsc2UpXG4gICAgICAgIHNldEN1cnJlbnRQYWdlKDEpXG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICBpZiAoZ2VuZXJhdGlvbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRJdGVtcyhbXSlcbiAgICAgIHNldEhpZGVSZWNlbnRzTGFiZWwoZmFsc2UpXG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChnZW5lcmF0aW9uID09PSByZWNlbnRzRmV0Y2hHZW5lcmF0aW9uUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgc2V0TG9hZGluZyhmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICB0eXBlLFxuICAgIHN0YWJsZVNjb3BlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2ssXG4gICAgZmV0Y2hQcm9qZWN0c0ZhbGxiYWNrLFxuICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24sXG4gICAgc3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc3luY1Byb2plY3RGYWxsYmFja1BhZ2luYXRpb24sXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgXSlcblxuICAvLyBEaXNwYXJhciBzZWFyY2ggYWwgY2FtYmlhciBkZWJvdW5jZWQgdmFsdWVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBxID0gZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpXG5cbiAgICBpZiAodHlwZSA9PT0gJ21jcCcpIHtcbiAgICAgIGNvbnN0IHNsdWdzID0gc3RhYmxlU2NvcGUubWNwU2x1Z3MgPz8gW11cbiAgICAgIHNldExvYWRpbmcoZmFsc2UpXG4gICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIHNldEl0ZW1zKG1hcE1jcFNsdWdzVG9JdGVtcyhzbHVncywgcSkpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoIXEpIHJldHVyblxuXG4gICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICBmZXRjaFNlYXJjaENsaWVudHMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBmaWx0ZXI6IHsgbmFtZTogcSB9LFxuICAgICAgICAgIHBhZ2U6IDEsXG4gICAgICAgICAgcGVyUGFnZTogMjAsXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnY2xpZW50cy1zZWFyY2gnKVxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3VzZXInKSB7XG4gICAgICBmZXRjaFVzZXJzRGlyZWN0b3J5KHtcbiAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgZmlsdGVyczogYnVpbGRVc2Vyc0RpcmVjdG9yeUZpbHRlcnMocSksXG4gICAgICAgICAgcGFnZTogMSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICBzZXRBY3RpdmVQYWdpbmF0aW9uU291cmNlKCd1c2VycycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGZpbHRlcnMgPSBidWlsZEZpbHRlcnNGb3JUeXBlKHR5cGUpXG4gICAgICBjb25zdCBleHRyYSA9IGJ1aWxkU2VhcmNoRW50aXRpZXNFeHRyYSh0eXBlLCBzdGFibGVTY29wZSlcbiAgICAgIGZldGNoU2VhcmNoRW50aXRpZXMoe1xuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBxLFxuICAgICAgICAgIGZpbHRlcnMsXG4gICAgICAgICAgLi4uKGV4dHJhICE9PSB1bmRlZmluZWQgPyB7IGV4dHJhIH0gOiB7fSksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgc2V0QWN0aXZlUGFnaW5hdGlvblNvdXJjZSgnbm9uZScpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH1cbiAgfSwgW2RlYm91bmNlZFNlYXJjaFZhbHVlLCB0eXBlLCBzdGFibGVTY29wZSwgZmV0Y2hTZWFyY2hFbnRpdGllcywgZmV0Y2hTZWFyY2hDbGllbnRzLCBmZXRjaFVzZXJzRGlyZWN0b3J5XSlcblxuICAvLyBTaW5jcm9uaXphciByZXN1bHRhZG9zIGRlIHNlYXJjaFxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlID09PSAnbWNwJykgcmV0dXJuXG5cbiAgICBjb25zdCBxID0gZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpXG4gICAgaWYgKCFxKSByZXR1cm5cbiAgICBzZXRIaWRlUmVjZW50c0xhYmVsKGZhbHNlKVxuXG4gICAgaWYgKHR5cGUgPT09ICdjbGllbnQnKSB7XG4gICAgICBzZXRMb2FkaW5nKGNsaWVudHNMb2FkaW5nKVxuICAgICAgaWYgKGNsaWVudHNFcnJvcikge1xuICAgICAgICBzZXRFcnJvcih0cnVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChjbGllbnRzRGF0YT8uY2xpZW50cz8uZGF0YSkge1xuICAgICAgICBzZXRJdGVtcyhjbGllbnRzRGF0YS5jbGllbnRzLmRhdGEubWFwKGMgPT4gbWFwQ2xpZW50VG9JdGVtKGMsIHEpKSlcbiAgICAgICAgc3luY0NsaWVudHNQYWdpbmF0aW9uKGNsaWVudHNEYXRhKVxuICAgICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd1c2VyJykge1xuICAgICAgc2V0TG9hZGluZyh1c2Vyc0xvYWRpbmcpXG4gICAgICBpZiAodXNlcnNFcnJvcikge1xuICAgICAgICBzZXRFcnJvcih0cnVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmICh1c2Vyc0RhdGE/LnVzZXJzRGlyZWN0b3J5Py5kYXRhKSB7XG4gICAgICAgIGNvbnN0IG1hcHBlZCA9IHVzZXJzRGF0YS51c2Vyc0RpcmVjdG9yeS5kYXRhLm1hcCh1ID0+IG1hcFVzZXJUb0l0ZW0odSwgcSkpXG4gICAgICAgIGNvbnN0IG1lSWQgPSBTdHJpbmcoY29yVXNlci5pZClcbiAgICAgICAgY29uc3QgaGFzTWVJblJlc3VsdHMgPSBtYXBwZWQuc29tZShpdGVtID0+IFN0cmluZyhpdGVtLmlkKSA9PT0gbWVJZClcbiAgICAgICAgY29uc3Qgd2l0aG91dE1lID0gbWFwcGVkLmZpbHRlcihpdGVtID0+IFN0cmluZyhpdGVtLmlkKSAhPT0gbWVJZClcbiAgICAgICAgY29uc3QgbWVJdGVtID0gbWFwQ29yVXNlclRvVXNlckl0ZW0oY29yVXNlciwgcSwgdCgnY29udGV4dE1lbnRpb24ubWUnKSlcbiAgICAgICAgc2V0SXRlbXMoaGFzTWVJblJlc3VsdHMgPyBbbWVJdGVtLCAuLi53aXRob3V0TWVdIDogbWFwcGVkKVxuICAgICAgICBzeW5jVXNlcnNQYWdpbmF0aW9uKHVzZXJzRGF0YSlcbiAgICAgICAgc2V0RXJyb3IoZmFsc2UpXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldExvYWRpbmcoc2VhcmNoTG9hZGluZylcbiAgICAgIGlmIChzZWFyY2hFcnJvcikge1xuICAgICAgICBzZXRFcnJvcih0cnVlKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hEYXRhPy5zZWFyY2gpIHtcbiAgICAgICAgc2V0SXRlbXMoc2VhcmNoRGF0YS5zZWFyY2gubWFwKHIgPT4gbWFwU2VhcmNoVG9JdGVtKHIsIHR5cGUsIHEsIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdykpKVxuICAgICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgICAgICBzZXRFcnJvcihmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtcbiAgICBzZWFyY2hEYXRhLFxuICAgIGNsaWVudHNEYXRhLFxuICAgIHVzZXJzRGF0YSxcbiAgICBzZWFyY2hMb2FkaW5nLFxuICAgIGNsaWVudHNMb2FkaW5nLFxuICAgIHVzZXJzTG9hZGluZyxcbiAgICBzZWFyY2hFcnJvcixcbiAgICBjbGllbnRzRXJyb3IsXG4gICAgdXNlcnNFcnJvcixcbiAgICBkZWJvdW5jZWRTZWFyY2hWYWx1ZSxcbiAgICB0eXBlLFxuICAgIHN5bmNDbGllbnRzUGFnaW5hdGlvbixcbiAgICBzeW5jVXNlcnNQYWdpbmF0aW9uLFxuICAgIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdyxcbiAgICBjb3JVc2VyLFxuICAgIHQsXG4gIF0pXG5cbiAgY29uc3QgbG9hZE1vcmUgPSB1c2VDYWxsYmFjayhhc3luYyAoKSA9PiB7XG4gICAgaWYgKGlzTG9hZGluZ01vcmUgfHwgIWhhc01vcmUgfHwgYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ25vbmUnKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIHNraXBwZWQnLCB7XG4gICAgICAgIGlzTG9hZGluZ01vcmUsXG4gICAgICAgIGhhc01vcmUsXG4gICAgICAgIGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UsXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHNhZmVDdXJyZW50UGFnZSA9IG5vcm1hbGl6ZVBvc2l0aXZlSW50KGN1cnJlbnRQYWdlLCAxKVxuICAgIGNvbnN0IG5leHRQYWdlID0gc2FmZUN1cnJlbnRQYWdlICsgMVxuICAgIGNvbnN0IHEgPSBkZWJvdW5jZWRTZWFyY2hWYWx1ZS50cmltKClcbiAgICBjb25zb2xlLmluZm8oJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIHN0YXJ0Jywge1xuICAgICAgc291cmNlOiBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgICAgY3VycmVudFBhZ2UsXG4gICAgICBuZXh0UGFnZSxcbiAgICAgIHF1ZXJ5OiBxLFxuICAgIH0pXG4gICAgY29uc3QgbG9hZE1vcmVCYXNlbGluZUdlbiA9IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudFxuICAgIHNldElzTG9hZGluZ01vcmUodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgaWYgKGFjdGl2ZVBhZ2luYXRpb25Tb3VyY2UgPT09ICd1c2VycycpIHtcbiAgICAgICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCBmZXRjaFVzZXJzRGlyZWN0b3J5KHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIGZpbHRlcnM6IGJ1aWxkVXNlcnNEaXJlY3RvcnlGaWx0ZXJzKHEpLFxuICAgICAgICAgICAgcGFnZTogbmV4dFBhZ2UsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgaWYgKGxvYWRNb3JlQmFzZWxpbmVHZW4gIT09IHJlY2VudHNGZXRjaEdlbmVyYXRpb25SZWYuY3VycmVudCkgcmV0dXJuXG4gICAgICAgIGNvbnNvbGUuaW5mbygnW3VzZUVudGl0eVNlYXJjaF0gdXNlcnMgbG9hZE1vcmUgcmVzcG9uc2UnLCB7XG4gICAgICAgICAgcGFnZTogZGF0YT8udXNlcnNEaXJlY3Rvcnk/LnBhZ2UsXG4gICAgICAgICAgbGFzdFBhZ2U6IGRhdGE/LnVzZXJzRGlyZWN0b3J5Py5sYXN0UGFnZSxcbiAgICAgICAgICBjb3VudDogZGF0YT8udXNlcnNEaXJlY3Rvcnk/LmRhdGE/Lmxlbmd0aCA/PyAwLFxuICAgICAgICB9KVxuICAgICAgICBjb25zdCBuZXh0SXRlbXMgPSAoZGF0YT8udXNlcnNEaXJlY3Rvcnk/LmRhdGEgPz8gW10pLm1hcCh1ID0+IG1hcFVzZXJUb0l0ZW0odSwgcSkpXG4gICAgICAgIHNldEl0ZW1zKHByZXYgPT4ge1xuICAgICAgICAgIGlmICghcSkge1xuICAgICAgICAgICAgY29uc3QgbWVJdGVtID1cbiAgICAgICAgICAgICAgcHJldlswXT8udHlwZSA9PT0gJ3VzZXInID8gcHJldlswXSA6IG1hcENvclVzZXJUb1VzZXJJdGVtKGNvclVzZXIsICcnLCB0KCdjb250ZXh0TWVudGlvbi5tZScpKVxuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gU3RyaW5nKGl0ZW0uaWQpKSlcbiAgICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoU3RyaW5nKGl0ZW0uaWQpKSlcbiAgICAgICAgICAgIGNvbnN0IHdpdGhvdXRNZSA9IHByZXYuZmlsdGVyKGl0ZW0gPT4gU3RyaW5nKGl0ZW0uaWQpICE9PSBTdHJpbmcobWVJdGVtLmlkKSlcbiAgICAgICAgICAgIHJldHVybiBbbWVJdGVtLCAuLi53aXRob3V0TWUsIC4uLmFwcGVuZGVkXVxuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHN5bmNVc2Vyc1BhZ2luYXRpb24oZGF0YSlcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ2NsaWVudHMtc2VhcmNoJykge1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoU2VhcmNoQ2xpZW50cyh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICBmaWx0ZXI6IHsgbmFtZTogcSB9LFxuICAgICAgICAgICAgcGFnZTogbmV4dFBhZ2UsXG4gICAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlRW50aXR5U2VhcmNoXSBjbGllbnRzIGxvYWRNb3JlIHJlc3BvbnNlJywge1xuICAgICAgICAgIHBhZ2U6IGRhdGE/LmNsaWVudHM/LnBhZ2UsXG4gICAgICAgICAgbGFzdFBhZ2U6IGRhdGE/LmNsaWVudHM/Lmxhc3RQYWdlLFxuICAgICAgICAgIGNvdW50OiBkYXRhPy5jbGllbnRzPy5kYXRhPy5sZW5ndGggPz8gMCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gKGRhdGE/LmNsaWVudHM/LmRhdGEgPz8gW10pLm1hcChjID0+IG1hcENsaWVudFRvSXRlbShjLCBxKSlcbiAgICAgICAgc2V0SXRlbXMocHJldiA9PiB7XG4gICAgICAgICAgY29uc3QgZXhpc3RpbmdJZHMgPSBuZXcgU2V0KHByZXYubWFwKGl0ZW0gPT4gYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgY29uc3QgYXBwZW5kZWQgPSBuZXh0SXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWV4aXN0aW5nSWRzLmhhcyhgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICByZXR1cm4gWy4uLnByZXYsIC4uLmFwcGVuZGVkXVxuICAgICAgICB9KVxuICAgICAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24oZGF0YSlcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ3Rhc2stZmFsbGJhY2snKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlcjogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge31cbiAgICAgICAgaWYgKHN0YWJsZVNjb3BlLnByb2plY3RJZCAhPT0gbnVsbCAmJiBzdGFibGVTY29wZS5wcm9qZWN0SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5wcm9qZWN0SWQgIT09ICcnKSB7XG4gICAgICAgICAgZmlsdGVyLnByb2plY3RJZHMgPSBbU3RyaW5nKHN0YWJsZVNjb3BlLnByb2plY3RJZCldXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSBudWxsICYmIHN0YWJsZVNjb3BlLmNsaWVudElkICE9PSB1bmRlZmluZWQgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09ICcnKSB7XG4gICAgICAgICAgZmlsdGVyLmNsaWVudElkcyA9IFtTdHJpbmcoc3RhYmxlU2NvcGUuY2xpZW50SWQpXVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgZmV0Y2hUYXNrRmFtaWx5RmFsbGJhY2soe1xuICAgICAgICAgIHZhcmlhYmxlczoge1xuICAgICAgICAgICAgZmlsdGVyOiB7IGFyY2hpdmVkOiBmYWxzZSwgLi4uZmlsdGVyIH0sXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IG9mZnNldDogKG5leHRQYWdlIC0gMSkgKiAyMCwgc2l6ZTogMjAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlRW50aXR5U2VhcmNoXSB0YXNrIGZhbGxiYWNrIGxvYWRNb3JlIHJlc3BvbnNlJywge1xuICAgICAgICAgIHBhZ2U6IGRhdGE/LnRhc2tGYW1pbHk/LnBhZ2UsXG4gICAgICAgICAgbGFzdFBhZ2U6IGRhdGE/LnRhc2tGYW1pbHk/Lmxhc3RQYWdlLFxuICAgICAgICAgIGNvdW50OiBkYXRhPy50YXNrRmFtaWx5Py5kYXRhPy5sZW5ndGggPz8gMCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gKGRhdGE/LnRhc2tGYW1pbHk/LmRhdGEgPz8gW10pXG4gICAgICAgICAgLm1hcChub3JtYWxpemVUYXNrRmFtaWx5UmVjb3JkKVxuICAgICAgICAgIC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIFJlY2VudFRhc2tJdGVtID0+IGl0ZW0gIT09IG51bGwpXG4gICAgICAgICAgLm1hcCh0YXNrID0+IG1hcFJlY2VudFRhc2tUb0l0ZW0odGFzaywgJycsIHNob3dQcm9qZWN0TmFtZUluVGFza1JvdykpXG4gICAgICAgIHNldEl0ZW1zKHByZXYgPT4ge1xuICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSWRzID0gbmV3IFNldChwcmV2Lm1hcChpdGVtID0+IGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIGNvbnN0IGFwcGVuZGVkID0gbmV4dEl0ZW1zLmZpbHRlcihpdGVtID0+ICFleGlzdGluZ0lkcy5oYXMoYCR7aXRlbS50eXBlfS0ke2l0ZW0uaWR9YCkpXG4gICAgICAgICAgcmV0dXJuIFsuLi5wcmV2LCAuLi5hcHBlbmRlZF1cbiAgICAgICAgfSlcbiAgICAgICAgc3luY1Rhc2tGYWxsYmFja1BhZ2luYXRpb24oZGF0YSlcbiAgICAgIH0gZWxzZSBpZiAoYWN0aXZlUGFnaW5hdGlvblNvdXJjZSA9PT0gJ3Byb2plY3QtZmFsbGJhY2snKSB7XG4gICAgICAgIGNvbnN0IGFyZ3VtZW50c0ZpbHRlciA9XG4gICAgICAgICAgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IG51bGwgJiYgc3RhYmxlU2NvcGUuY2xpZW50SWQgIT09IHVuZGVmaW5lZCAmJiBzdGFibGVTY29wZS5jbGllbnRJZCAhPT0gJydcbiAgICAgICAgICAgID8geyBjbGllbnRfaWQ6IFtTdHJpbmcoc3RhYmxlU2NvcGUuY2xpZW50SWQpXSB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IGZldGNoUHJvamVjdHNGYWxsYmFjayh7XG4gICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAuLi4oYXJndW1lbnRzRmlsdGVyID8geyBhcmd1bWVudHM6IGFyZ3VtZW50c0ZpbHRlciB9IDoge30pLFxuICAgICAgICAgICAgcGFnZTogbmV4dFBhZ2UsXG4gICAgICAgICAgICBwZXJQYWdlOiAyMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgICAgY29uc29sZS5pbmZvKCdbdXNlRW50aXR5U2VhcmNoXSBwcm9qZWN0IGZhbGxiYWNrIGxvYWRNb3JlIHJlc3BvbnNlJywge1xuICAgICAgICAgIHBhZ2U6IGRhdGE/LnByb2plY3RzPy5wYWdlLFxuICAgICAgICAgIGxhc3RQYWdlOiBkYXRhPy5wcm9qZWN0cz8ubGFzdFBhZ2UsXG4gICAgICAgICAgY291bnQ6IGRhdGE/LnByb2plY3RzPy5kYXRhPy5sZW5ndGggPz8gMCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgbmV4dEl0ZW1zID0gKGRhdGE/LnByb2plY3RzPy5kYXRhID8/IFtdKVxuICAgICAgICAgIC5tYXAobm9ybWFsaXplUHJvamVjdHNGYWxsYmFja1JlY29yZClcbiAgICAgICAgICAuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBSYXdTZWFyY2hSZXN1bHQgPT4gaXRlbSAhPT0gbnVsbClcbiAgICAgICAgICAubWFwKGl0ZW0gPT4gbWFwU2VhcmNoVG9JdGVtKGl0ZW0sICdwcm9qZWN0JywgJycpKVxuICAgICAgICBzZXRJdGVtcyhwcmV2ID0+IHtcbiAgICAgICAgICBjb25zdCBleGlzdGluZ0lkcyA9IG5ldyBTZXQocHJldi5tYXAoaXRlbSA9PiBgJHtpdGVtLnR5cGV9LSR7aXRlbS5pZH1gKSlcbiAgICAgICAgICBjb25zdCBhcHBlbmRlZCA9IG5leHRJdGVtcy5maWx0ZXIoaXRlbSA9PiAhZXhpc3RpbmdJZHMuaGFzKGAke2l0ZW0udHlwZX0tJHtpdGVtLmlkfWApKVxuICAgICAgICAgIHJldHVybiBbLi4ucHJldiwgLi4uYXBwZW5kZWRdXG4gICAgICAgIH0pXG4gICAgICAgIHN5bmNQcm9qZWN0RmFsbGJhY2tQYWdpbmF0aW9uKGRhdGEpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAobG9hZE1vcmVCYXNlbGluZUdlbiAhPT0gcmVjZW50c0ZldGNoR2VuZXJhdGlvblJlZi5jdXJyZW50KSByZXR1cm5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1t1c2VFbnRpdHlTZWFyY2hdIGxvYWRNb3JlIGZhaWxlZCcsIHtcbiAgICAgICAgc291cmNlOiBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgICAgICBuZXh0UGFnZSxcbiAgICAgICAgZXJyb3I6IGVycixcbiAgICAgIH0pXG4gICAgICAvLyBFdml0YSBsb29wIGRlIHJlaW50ZW50b3MgYXV0b23DoXRpY29zIHBvciBzY3JvbGwgY3VhbmRvIGJhY2tlbmQgZXN0w6EgY2HDrWRvIChlai4gNTAzKS5cbiAgICAgIHNldEVycm9yKHRydWUpXG4gICAgICBzZXRIYXNNb3JlKGZhbHNlKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc0xvYWRpbmdNb3JlKGZhbHNlKVxuICAgICAgY29uc29sZS5pbmZvKCdbdXNlRW50aXR5U2VhcmNoXSBsb2FkTW9yZSBmaW5pc2hlZCcsIHsgc291cmNlOiBhY3RpdmVQYWdpbmF0aW9uU291cmNlLCBuZXh0UGFnZSB9KVxuICAgIH1cbiAgfSwgW1xuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgaGFzTW9yZSxcbiAgICBjdXJyZW50UGFnZSxcbiAgICBhY3RpdmVQYWdpbmF0aW9uU291cmNlLFxuICAgIGRlYm91bmNlZFNlYXJjaFZhbHVlLFxuICAgIGZldGNoVXNlcnNEaXJlY3RvcnksXG4gICAgZmV0Y2hTZWFyY2hDbGllbnRzLFxuICAgIGZldGNoVGFza0ZhbWlseUZhbGxiYWNrLFxuICAgIGZldGNoUHJvamVjdHNGYWxsYmFjayxcbiAgICBzdGFibGVTY29wZS5wcm9qZWN0SWQsXG4gICAgc3RhYmxlU2NvcGUuY2xpZW50SWQsXG4gICAgc2hvd1Byb2plY3ROYW1lSW5UYXNrUm93LFxuICAgIGNvclVzZXIsXG4gICAgdCxcbiAgICBzeW5jQ2xpZW50c1BhZ2luYXRpb24sXG4gICAgc3luY1VzZXJzUGFnaW5hdGlvbixcbiAgICBzeW5jVGFza0ZhbGxiYWNrUGFnaW5hdGlvbixcbiAgICBzeW5jUHJvamVjdEZhbGxiYWNrUGFnaW5hdGlvbixcbiAgXSlcblxuICAvLyBDdWFuZG8gc2UgbGltcGlhIGVsIHNlYXJjaCwgdm9sdmVyIGEgcmVjZW50c1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghZGVib3VuY2VkU2VhcmNoVmFsdWUudHJpbSgpKSB7XG4gICAgICBmZXRjaFJlY2VudCgpXG4gICAgfVxuICB9LCBbZGVib3VuY2VkU2VhcmNoVmFsdWUsIGZldGNoUmVjZW50XSlcblxuICByZXR1cm4ge1xuICAgIGl0ZW1zLFxuICAgIGxvYWRpbmcsXG4gICAgZXJyb3IsXG4gICAgaGlkZVJlY2VudHNMYWJlbCxcbiAgICBoYXNNb3JlLFxuICAgIGlzTG9hZGluZ01vcmUsXG4gICAgbG9hZE1vcmUsXG4gICAgc2VhcmNoVmFsdWUsXG4gICAgdXBkYXRlU2VhcmNoVmFsdWU6IHNldFNlYXJjaFZhbHVlLFxuICAgIGZldGNoUmVjZW50LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUEsU0FBU0EsWUFBWSxRQUFRLGdCQUFnQjtBQUM3QyxTQUFTQyxXQUFXLEVBQUVDLFNBQVMsRUFBRUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLFFBQVEsUUFBUSxPQUFPO0FBQ3pFLFNBQVNDLGdCQUFnQixRQUFRLGlEQUFpRDtBQUNsRixTQUFTQyxpQkFBaUIsUUFBUSxtREFBbUQ7QUFDckYsU0FBU0MsY0FBYyxRQUFRLDZDQUE2QztBQUU1RSxTQUFTQyxPQUFP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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@projectcor/maia-components",
3
- "version": "2.11.41-3",
3
+ "version": "2.11.41-4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "repository": {