@merchi/product-form 1.19.21 → 1.19.22

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.
@@ -23,7 +23,7 @@ import { fetchJobQuote } from '../actions/jobs';
23
23
  import { productHasGroups } from '../utils/products';
24
24
  import { getMerchiSourceJobTags } from '../components/utils';
25
25
  import { productAllowsClientDesign } from '../utils/draftTemplates';
26
- import { loadArtworkPath, loadDrafts } from '../utils/draftStorage';
26
+ import { checkoutClientFiles, loadArtworkPath, loadDesignMethod, loadDrafts, loadTemplateUploads } from '../utils/draftStorage';
27
27
  import ProductDraftsHost from '../components/drafts/ProductDraftsHost';
28
28
  import { buildEmptyVariationFromField, cleanJobVariationsAndGroups, syncJobSelectedOptionsFromValues } from '../components/utils';
29
29
  import { pricing } from '@merchi/sdk';
@@ -790,7 +790,7 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
790
790
  };
791
791
  var runDraftCheckout = /*#__PURE__*/function () {
792
792
  var _ref6 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee6(proceed) {
793
- var quoted, jobData, drafts, hasSaved;
793
+ var quoted, jobData, uploadJob, drafts, hasSaved;
794
794
  return _regenerator().w(function (_context6) {
795
795
  while (1) switch (_context6.n) {
796
796
  case 0:
@@ -833,13 +833,24 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
833
833
  }));
834
834
  return _context6.a(2);
835
835
  case 6:
836
+ if (!(loadDesignMethod(initProduct.id) === 'templates')) {
837
+ _context6.n = 7;
838
+ break;
839
+ }
840
+ uploadJob = _objectSpread(_objectSpread({}, jobData), {}, {
841
+ clientFiles: checkoutClientFiles(loadTemplateUploads(initProduct.id))
842
+ });
843
+ delete uploadJob.ownDrafts;
844
+ proceed(uploadJob);
845
+ return _context6.a(2);
846
+ case 7:
836
847
  drafts = loadDrafts(initProduct.id);
837
848
  hasSaved = drafts.some(function (draft) {
838
849
  var _draft$templateData;
839
850
  return draft.productId === initProduct.id && ((_draft$templateData = draft.templateData) === null || _draft$templateData === void 0 ? void 0 : _draft$templateData.length);
840
851
  });
841
852
  if (!hasSaved) {
842
- _context6.n = 7;
853
+ _context6.n = 8;
843
854
  break;
844
855
  }
845
856
  setDraftAppproveCallback(function () {
@@ -860,9 +871,9 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
860
871
  });
861
872
  setIsDraftModalOpen(true);
862
873
  return _context6.a(2);
863
- case 7:
864
- proceed(jobData);
865
874
  case 8:
875
+ proceed(jobData);
876
+ case 9:
866
877
  return _context6.a(2);
867
878
  }
868
879
  }, _callee6);
@@ -1017,4 +1028,4 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
1017
1028
  }) : children, /*#__PURE__*/_jsx(ProductDraftsHost, {})]
1018
1029
  });
1019
1030
  };
1020
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3JlZ2VuZXJhdG9yIiwibiIsInRvU3RyaW5nVGFnIiwiYyIsIkdlbmVyYXRvciIsInUiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsIiwiZG9uZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJuZXh0IiwiaXNBcnJheSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsInVzZUZvcm0iLCJmZXRjaEpvYlF1b3RlIiwicHJvZHVjdEhhc0dyb3VwcyIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduIiwibG9hZEFydHdvcmtQYXRoIiwibG9hZERyYWZ0cyIsIlByb2R1Y3REcmFmdHNIb3N0IiwiYnVpbGRFbXB0eVZhcmlhdGlvbkZyb21GaWVsZCIsImNsZWFuSm9iVmFyaWF0aW9uc0FuZEdyb3VwcyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwicHJpY2luZyIsInRvU2VsZWN0aW9ucyIsInNjcm9sbFRvRmlyc3RGb3JtRXJyb3IiLCJidWlsZERlc2lyZWRWYXJpYXRpb25zRnJvbUZpZWxkcyIsInByb2R1Y3RGaWVsZHNGb3JQcmljaW5nRmllbGRzIiwicmVjb25jaWxlVmFyaWF0aW9ucyIsImdyb3VwRmllbGRUZW1wbGF0ZXMiLCJncm91cEZpZWxkVGVtcGxhdGVzRnJvbVByb2R1Y3QiLCJsaWZ0SW5kZXBlbmRlbnRWYXJpYXRpb25zRnJvbUdyb3VwcyIsInNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQiLCJhcGlVcmwiLCJhbGxvd0FkZFRvQ2FydCIsImJ0bk5hbWVBZGRUb0NhcnQiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVBbGVydFNlbGxlckVkaXRhYmxlIiwiY2xhc3NOYW1lQnV0dG9uU3VibWl0IiwiY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQiLCJjbGFzc05hbWVCdXR0b25Hcm91cFJlbW92ZSIsImNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIiLCJjbGFzc05hbWVCdXR0b25BcHByb3ZlRHJhZnRzIiwiY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHMiLCJjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0Q3RhIiwiY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSIsImNsYXNzTmFtZURyYWZ0U2hlZXQiLCJjbGFzc05hbWVEcmFmdFRvb2xiYXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZCIsImNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIiLCJjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbiIsImNsYXNzTmFtZUZpbGVVcGxvYWRJY29uIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEljb25TZWNvbmQiLCJjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVMaXN0SXRlbSIsImNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGUiLCJjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIiLCJjbGFzc05hbWVHcm91cHNDb250YWluZXIiLCJjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyIiwiY2xhc3NOYW1lSW5wdXQiLCJjbGFzc05hbWVJbnB1dENvbnRhaW5lciIsImNsYXNzTmFtZUludmVudG9yeVN0YXR1cyIsImNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbklucHV0IiwiY2xhc3NOYW1lT3B0aW9uTGFiZWwiLCJjbGFzc05hbWVPcHRpb25TdXBlciIsImNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyIiwiY2xhc3NOYW1lT3B0aW9uSW1hZ2UiLCJjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RPcmlnaW5UaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbCIsImNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIiLCJjbGFzc05hbWVVbml0UHJpY2UiLCJjbGFzc05hbWVQcmljZU1hdHJpeCIsImNvbnRyb2wiLCJjdXJyZW50VXNlciIsImRyYWZ0QXBwcm92ZUNhbGxiYWNrIiwiZ2V0UXVvdGUiLCJoY2FwdGNoYVNpdGVLZXkiLCJwcmljaW5nUnVsZXMiLCJoaWRlQ29zdCIsImhpZGVDb3VudHJ5IiwiaGlkZURvbWFpbk5hbWUiLCJoaWRlQ2FsY3VsYXRlZFByaWNlIiwiaGlkZVF1YW50aXR5RmllbGQiLCJoaWRlUmVxdWVzdFF1b3RhdGlvbkJ1dHRvbiIsImhpZGVQYXltZW50VXBmcm9udEJ1dHRvbiIsImhpZGVUaXRsZSIsImhvb2tGb3JtIiwiaXNDYXJ0SXRlbSIsImluaXRKb2IiLCJpc0RyYWZ0RGVzaWduZXJPcGVuIiwiaXNEcmFmdE1vZGFsT3BlbiIsImNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQiLCJqb2IiLCJsb2FkaW5nIiwiaW52ZW50b3J5TG9hZGluZyIsIm9uQWRkVG9DYXJ0Iiwib25CdXlOb3ciLCJvbkdldFF1b3RlIiwib25TdWJtaXQiLCJwcm9kdWN0IiwicHJvZHVjdEZvcm1JZCIsInNldENsaWVudCIsInNldElzRHJhZnREZXNpZ25lck9wZW4iLCJzZXRJc0RyYWZ0TW9kYWxPcGVuIiwic2V0Sm9iIiwic2V0TG9hZGluZyIsInNob3dBbGVydCIsImFsZXJ0Iiwic2hvd0N1cnJlbmN5Iiwic2hvd0N1cnJlbmN5Q29kZSIsInNob3dGZWF0dXJlRGVhZGxpbmUiLCJzaG93R3JvdXBCdXlTdGF0dXMiLCJzaG93UHJpY2VNYXRyaXgiLCJzaG93VW5pdFByaWNlIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyIiwiX3JlZiIsIl9yZWYkYXBpVXJsIiwiX3JlZiRjbGFzc05hbWVBbGVydFNlIiwiX3JlZiRjbGFzc05hbWVCdXR0b25TIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HMiIsIl9yZWYkY2xhc3NOYW1lQnV0dG9ucyIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQSIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQyIsIl9yZWYkY2xhc3NOYW1lRHJhZnRCdSIsIl9yZWYkY2xhc3NOYW1lRHJhZnRDdCIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHciIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHcjIiLCJfcmVmJGNsYXNzTmFtZURyYWZ0U2giLCJfcmVmJGNsYXNzTmFtZURyYWZ0VG8iLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwyIiwiX3JlZiRjbGFzc05hbWVGaWxlUHJlIiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsMyIsIl9yZWYkY2xhc3NOYW1lRmlsZVByZTIiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw0IiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsNSIsIl9yZWYkY2xhc3NOYW1lRmlsZVVwbDYiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw3IiwiX3JlZiRjbGFzc05hbWVGaWxlTGlzIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0IiwiY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0MiIsIl9yZWYkY2xhc3NOYW1lRmlsZUxpczIiLCJfcmVmJGNsYXNzTmFtZUdyb3Vwc0MiLCJfcmVmJGNsYXNzTmFtZUdyb3VwUHIiLCJfcmVmJGNsYXNzTmFtZUlucHV0IiwiX3JlZiRjbGFzc05hbWVJbnZlbnRvIiwiX3JlZiRjbGFzc05hbWVJbnB1dENvIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JIiwiX3JlZiRjbGFzc05hbWVPcHRpb25MIiwiX3JlZiRjbGFzc05hbWVPcHRpb25TIiwiX3JlZiRjbGFzc05hbWVPcHRpb25zIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JMiIsIl9yZWYkY2xhc3NOYW1lT3B0aW9uSTMiLCJfcmVmJGNsYXNzTmFtZU9wdGlvbkMyIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DMyIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdCIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdDIiLCJfcmVmJGNsYXNzTmFtZVByb2R1Y3QzIiwiX3JlZiRjbGFzc05hbWVQcm9kdWN0NCIsIl9yZWYkY2xhc3NOYW1lUXVhbnRpdCIsImNoaWxkcmVuIiwiX3JlZiRoaWRlQ291bnRyeSIsIl9yZWYkaGlkZURvbWFpbk5hbWUiLCJfcmVmJGhpZGVUaXRsZSIsImluaXRQcm9kdWN0IiwicHJpY2luZ1J1bGVzUHJvcCIsIl9yZWYkc2hvd1ByaWNlTWF0cml4IiwiZGVmYXVsdEpvYiIsImRlZmF1bHRWYWx1ZXMiLCJyZVZhbGlkYXRlTW9kZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJjbGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0RHJhZnRBcHBwcm92ZUNhbGxiYWNrIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNldEludmVudG9yeUxvYWRpbmciLCJnZXRWYWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJyZXNldCIsInRyaWdnZXIiLCJkb1N1Ym1pdCIsInZhbGlkYXRlRm9ybSIsIl9yZWYyIiwiX2NhbGxlZSIsInZhbGlkIiwiX2NvbnRleHQiLCJ0YWdzIiwiaW52ZW50b3J5UmVmcmVzaFRpbWVyIiwidXNlUmVmIiwic2VydmVyUXVvdGVUaW1lciIsInF1b3RlUmVxdWVzdElkIiwiU0VSVkVSX1FVT1RFX0RFQk9VTkNFX01TIiwiY2xpZW50U2lkZUVuYWJsZWQiLCJCb29sZWFuIiwiY2xpZW50U2lkZUNhbGN1bGF0aW9uIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImZldGNoZWRQcmljaW5nUnVsZXMiLCJzZXRGZXRjaGVkUHJpY2luZ1J1bGVzIiwidXNlRWZmZWN0IiwiaWQiLCJjYW5jZWxsZWQiLCJfY2FsbGVlMiIsImJhc2UiLCJyZXMiLCJydWxlcyIsIl90IiwiX2NvbnRleHQyIiwiZW5kc1dpdGgiLCJjb25jYXQiLCJmZXRjaCIsIm9rIiwianNvbiIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJ2YXJpYXRpb25zSGF2ZUZpZWxkTWV0YWRhdGEiLCJqb2JWYWx1ZXMiLCJjaGVjayIsInZhcmlhdGlvbnMiLCJldmVyeSIsInZhcmlhdGlvbiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsInZhcmlhdGlvbkZpZWxkIiwiZmllbGRUeXBlIiwidmFyaWF0aW9uc0dyb3VwcyIsImdyb3VwIiwiYXBwbHlPcHRpb25WaXNpYmlsaXR5IiwidmlzaWJsZU9wdGlvbklkcyIsInVuYXZhaWxhYmxlT3B0aW9uSWRzIiwiY2hhbmdlZCIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uIiwiaXNWaXNpYmxlIiwiaGFzIiwib3B0aW9uSWQiLCJhdmFpbGFibGUiLCJyZXNldEZvcm1QcmVzZXJ2aW5nU2Nyb2xsIiwidmFsdWVzIiwiaGFzV2luZG93Iiwid2luZG93Iiwic2Nyb2xsUGFyZW50IiwiZmluZFNjcm9sbFBhcmVudCIsInNjcm9sbFgiLCJzY3JvbGxZIiwicGFyZW50VG9wIiwic2Nyb2xsVG9wIiwicGFyZW50TGVmdCIsInNjcm9sbExlZnQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzY3JvbGxUbyIsImRvY3VtZW50IiwiYWN0aXZlIiwiYWN0aXZlRWxlbWVudCIsIm5vZGUiLCJib2R5Iiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiY2FuU2Nyb2xsWSIsIm92ZXJmbG93WSIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImdldEF0dHJpYnV0ZSIsInBhcmVudEVsZW1lbnQiLCJ2aWV3cG9ydCIsInF1ZXJ5U2VsZWN0b3IiLCJmb3JtUXVhbnRpdGllc01hdGNoUmVxdWVzdCIsImZvcm1WYWx1ZXMiLCJyZXF1ZXN0RGF0YSIsImdyb3VwcyIsImluZGV4IiwiX2Zvcm1WYWx1ZXMkdmFyaWF0aW9uIiwicXVhbnRpdHkiLCJhcHBseVNlcnZlclF1b3RlIiwic2VydmVySm9iIiwiY2xlYW5lZEZvcm1WYWx1ZXMiLCJpbmRlcGVuZGVudFJlY29uY2lsZSIsInZpc2liaWxpdHlDaGFuZ2VkIiwibWVyZ2VkSm9iIiwiY29zdCIsImNvc3RQZXJVbml0IiwidGF4QW1vdW50IiwidG90YWxDb3N0IiwiY3VycmVuY3kiLCJpbnZlbnRvcnlDb3VudCIsImludmVudG9yeVN1ZmZpY2llbnQiLCJtYXAiLCJzZXJ2ZXJHcm91cCIsImdyb3VwUmVjb25jaWxlIiwiZ3JvdXBDb3N0IiwibWF0Y2hpbmdJbnZlbnRvcmllcyIsIm1lcmdlSW52ZW50b3J5IiwicHJldiIsIm1lcmdlZCIsImciLCJzZyIsInNjaGVkdWxlSW52ZW50b3J5UmVmcmVzaCIsImNsZWFuZWRWYWx1ZXMiLCJuZWVkc0ludmVudG9yeSIsInNldFRpbWVvdXQiLCJfY2FsbGVlMyIsImRhdGEiLCJfdDIiLCJfY29udGV4dDMiLCJ0b0pzb24iLCJhcHBseUNsaWVudFF1b3RlIiwic2VsZWN0aW9ucyIsInJlc3VsdCIsImVzdGltYXRlUXVvdGUiLCJpbmRlcGVuZGVudFNjb3BlIiwiZmllbGRWYWx1ZXMiLCJpbmRlcGVuZGVudFZpc2libGVGaWVsZHMiLCJyZXNvbHZlVmlzaWJsZUZpZWxkcyIsImluZGVwZW5kZW50RmllbGRUZW1wbGF0ZXMiLCJmaWVsZHMiLCJkZXNpcmVkSW5kZXBlbmRlbnQiLCJpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyIsImluZGVwZW5kZW50VmlzaWJsZSIsInJlc29sdmVWaXNpYmxlT3B0aW9uSWRzIiwiaW5kZXBlbmRlbnRVbmF2YWlsYWJsZSIsInJlc29sdmVVbmF2YWlsYWJsZU9wdGlvbklkcyIsImhhc0dyb3VwcyIsIl9yZXN1bHQkZ3JvdXBDb3N0cyRpIiwiZ3JvdXBDb3N0cyIsImdyb3VwU2NvcGUiLCJncm91cFZpc2libGVGaWVsZHMiLCJncm91cEZpZWxkcyIsImRlc2lyZWRHcm91cCIsImdyb3VwVmlzaWJsZSIsImdyb3VwVW5hdmFpbGFibGUiLCJuZXh0Sm9iIiwiZXhlY3V0ZVNlcnZlclF1b3RlIiwiX2V4ZWN1dGVTZXJ2ZXJRdW90ZSIsIl9jYWxsZWUwIiwicmVxdWVzdElkIiwiY3VycmVudFZhbHVlcyIsIl9hcHBseVNlcnZlclF1b3RlIiwibWVzc2FnZSIsIl90NCIsIl9jb250ZXh0MCIsImVycm9yTWVzc2FnZSIsImNvbnNvbGUiLCJlcnJvciIsIm9wdGlvbnMiLCJjbGllbnRKb2IiLCJpbW1lZGlhdGUiLCJfY2FsbGVlNCIsIl90MyIsIl9jb250ZXh0NCIsImFwcGxpZWRDbGllbnRSdWxlc1JlZiIsInVuc3VwcG9ydGVkIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJwZW5kaW5nQ2hlY2tvdXRSZWYiLCJwZW5kaW5nIiwicnVuRHJhZnRDaGVja291dCIsIl9yZWY2IiwiX2NhbGxlZTYiLCJwcm9jZWVkIiwicXVvdGVkIiwiam9iRGF0YSIsImRyYWZ0cyIsImhhc1NhdmVkIiwiX2NvbnRleHQ2Iiwib3duRHJhZnRzIiwiY2xpZW50RmlsZXMiLCJzb21lIiwiZHJhZnQiLCJfZHJhZnQkdGVtcGxhdGVEYXRhIiwicHJvZHVjdElkIiwidGVtcGxhdGVEYXRhIiwiX3JlZjciLCJfY2FsbGVlNSIsImRyYWZ0Sm9iRGF0YSIsIl9jb250ZXh0NSIsIl94MiIsIl94IiwiYWRkVG9DYXJ0IiwiX2NhbGxlZTciLCJfY29udGV4dDciLCJidXlOb3ciLCJfY2FsbGVlOCIsIl9jb250ZXh0OCIsImdldFN1Ym1pdFF1b3RlIiwiX2NhbGxlZTkiLCJfY29udGV4dDkiLCJQcm92aWRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIFJlYWN0Tm9kZSwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGZldGNoSm9iUXVvdGUgfSBmcm9tICcuLi9hY3Rpb25zL2pvYnMnO1xuaW1wb3J0IHsgcHJvZHVjdEhhc0dyb3VwcyB9IGZyb20gJy4uL3V0aWxzL3Byb2R1Y3RzJztcbmltcG9ydCB7IGdldE1lcmNoaVNvdXJjZUpvYlRhZ3MgfSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IERyYWZ0VGVtcGxhdGVEYXRhIH0gZnJvbSAnLi4vdXRpbHMvdHlwZXMnO1xuaW1wb3J0IHsgcHJvZHVjdEFsbG93c0NsaWVudERlc2lnbiB9IGZyb20gJy4uL3V0aWxzL2RyYWZ0VGVtcGxhdGVzJztcbmltcG9ydCB7XG4gIGxvYWRBcnR3b3JrUGF0aCxcbiAgbG9hZERyYWZ0cyxcbn0gZnJvbSAnLi4vdXRpbHMvZHJhZnRTdG9yYWdlJztcbmltcG9ydCBQcm9kdWN0RHJhZnRzSG9zdCBmcm9tICcuLi9jb21wb25lbnRzL2RyYWZ0cy9Qcm9kdWN0RHJhZnRzSG9zdCc7XG5pbXBvcnQge1xuICBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkLFxuICBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMsXG4gIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IHByaWNpbmcgfSBmcm9tICdAbWVyY2hpL3Nkayc7XG5pbXBvcnQgeyB0b1NlbGVjdGlvbnMgfSBmcm9tICcuLi91dGlscy9zZWxlY3Rpb25zJztcbmltcG9ydCB7IHNjcm9sbFRvRmlyc3RGb3JtRXJyb3IgfSBmcm9tICcuLi91dGlscy9mb3JtRXJyb3JzJztcbmltcG9ydCB7XG4gIGJ1aWxkRGVzaXJlZFZhcmlhdGlvbnNGcm9tRmllbGRzLFxuICBwcm9kdWN0RmllbGRzRm9yUHJpY2luZ0ZpZWxkcyxcbiAgcmVjb25jaWxlVmFyaWF0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMvcmVjb25jaWxlVmFyaWF0aW9ucyc7XG5pbXBvcnQge1xuICBncm91cEZpZWxkVGVtcGxhdGVzIGFzIGdyb3VwRmllbGRUZW1wbGF0ZXNGcm9tUHJvZHVjdCxcbiAgbGlmdEluZGVwZW5kZW50VmFyaWF0aW9uc0Zyb21Hcm91cHMsXG4gIHNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyxcbn0gZnJvbSAnLi4vdXRpbHMvdmFyaWF0aW9uRmllbGRzJztcbnR5cGUgRm9ybU1ldGhvZHMgPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VGb3JtPjtcblxuaW50ZXJmYWNlIElNZXJjaGlQcm9kdWN0Rm9ybSB7XG4gIGFwaVVybD86IHN0cmluZztcbiAgYWxsb3dBZGRUb0NhcnQ/OiBib29sZWFuO1xuICBidG5OYW1lQWRkVG9DYXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVBbGVydFNlbGxlckVkaXRhYmxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25TdWJtaXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkPzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25Hcm91cFJlbW92ZT86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uc1N1Ym1pdENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uQXBwcm92ZURyYWZ0cz86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0QnV0dG9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdEN0YT86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRHcm91cFRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdFNoZWV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdFRvb2xiYXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkVGV4dENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlQnV0dG9uRG93bmxvYWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVJbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lSW5wdXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cz86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvblN1cGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25Db2xvdXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsPzogc3RyaW5nO1xuICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVVbml0UHJpY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByaWNlTWF0cml4Pzogc3RyaW5nO1xuICBjb250cm9sOiBhbnk7XG4gIGN1cnJlbnRVc2VyPzogYW55O1xuICBkcmFmdEFwcHJvdmVDYWxsYmFjazogKChqb2I6IGFueSkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuICBnZXRRdW90ZTogYW55O1xuICBoY2FwdGNoYVNpdGVLZXk/OiBzdHJpbmc7XG4gIHByaWNpbmdSdWxlcz86IGFueTtcbiAgaGlkZUNvc3Q/OiBib29sZWFuO1xuICBoaWRlQ291bnRyeT86IGJvb2xlYW47XG4gIGhpZGVDYWxjdWxhdGVkUHJpY2U/OiBib29sZWFuO1xuICBoaWRlRG9tYWluTmFtZT86IGJvb2xlYW47XG4gIGhpZGVRdWFudGl0eUZpZWxkPzogYm9vbGVhbjtcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24/OiBib29sZWFuO1xuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24/OiBib29sZWFuO1xuICBoaWRlVGl0bGU/OiBib29sZWFuO1xuICBob29rRm9ybTogRm9ybU1ldGhvZHM7XG4gIGlzQ2FydEl0ZW0/OiBib29sZWFuO1xuICBpbml0Sm9iPzogYW55O1xuICBpc0RyYWZ0RGVzaWduZXJPcGVuOiBib29sZWFuO1xuICBpc0RyYWZ0TW9kYWxPcGVuOiBib29sZWFuO1xuICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0PzogKCkgPT4gKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgam9iOiBhbnk7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGludmVudG9yeUxvYWRpbmc/OiBib29sZWFuO1xuICBvbkFkZFRvQ2FydD86ICgpID0+IHZvaWQ7XG4gIG9uQnV5Tm93PzogKCkgPT4gdm9pZDtcbiAgb25HZXRRdW90ZT86ICgpID0+IHZvaWQ7XG4gIG9uU3VibWl0PzogKGpvYkRhdGE6IGFueSkgPT4gdm9pZDtcbiAgcHJvZHVjdDogYW55O1xuICBwcm9kdWN0Rm9ybUlkPzogc3RyaW5nO1xuICBzZXRDbGllbnQ6IChjbGllbnQ6IGFueSkgPT4gdm9pZDtcbiAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2V0SXNEcmFmdE1vZGFsT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHNldExvYWRpbmc6IChsb2FkaW5nOiBib29sZWFuKSA9PiB2b2lkO1xuICBzaG93QWxlcnQ6IChhbGVydDogYW55KSA9PiB2b2lkO1xuICBzaG93Q3VycmVuY3k/OiBib29sZWFuO1xuICBzaG93Q3VycmVuY3lDb2RlPzogYm9vbGVhbjtcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XG4gIHNob3dHcm91cEJ1eVN0YXR1cz86IGJvb2xlYW47XG4gIHNob3dQcmljZU1hdHJpeD86IGJvb2xlYW47XG4gIHNob3dVbml0UHJpY2U/OiBib29sZWFuO1xufVxuXG5jb25zdCBNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PElNZXJjaGlQcm9kdWN0Rm9ybT4oe1xuICBhcGlVcmw6ICcnLFxuICBhbGxvd0FkZFRvQ2FydDogZmFsc2UsXG4gIGJ0bk5hbWVBZGRUb0NhcnQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQWxlcnRTZWxsZXJFZGl0YWJsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVCdXR0b25TdWJtaXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uc1N1Ym1pdENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVCdXR0b25BcHByb3ZlRHJhZnRzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUJ1dHRvbkNsb3NlRHJhZnRzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0QnV0dG9uQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0Q3RhOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRHJhZnRHcm91cFRpdGxlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0U2hlZXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkVGV4dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRCdXR0b246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25TZWNvbmQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1czogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW5wdXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWw6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uU3VwZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2VDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUHJvZHVjdE9yaWdpblRpdGxlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVQcm9kdWN0VG90YWw6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVVbml0UHJpY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUHJpY2VNYXRyaXg6IHVuZGVmaW5lZCxcbiAgY29udHJvbDoge30sXG4gIGN1cnJlbnRVc2VyOiB7fSxcbiAgZHJhZnRBcHByb3ZlQ2FsbGJhY2s6IG51bGwsXG4gIGdldFF1b3RlKCkgeyB9LFxuICBoY2FwdGNoYVNpdGVLZXk6IHVuZGVmaW5lZCxcbiAgcHJpY2luZ1J1bGVzOiB1bmRlZmluZWQsXG4gIGhpZGVDb3N0OiBmYWxzZSxcbiAgaGlkZUNvdW50cnk6IGZhbHNlLFxuICBoaWRlRG9tYWluTmFtZTogZmFsc2UsXG4gIGhpZGVDYWxjdWxhdGVkUHJpY2U6IGZhbHNlLFxuICBoaWRlUXVhbnRpdHlGaWVsZDogZmFsc2UsXG4gIGhpZGVSZXF1ZXN0UXVvdGF0aW9uQnV0dG9uOiBmYWxzZSxcbiAgaGlkZVBheW1lbnRVcGZyb250QnV0dG9uOiBmYWxzZSxcbiAgaGlkZVRpdGxlOiBmYWxzZSxcbiAgaG9va0Zvcm06IHt9IGFzIGFueSxcbiAgaXNDYXJ0SXRlbTogZmFsc2UsXG4gIGluaXRKb2I6IHVuZGVmaW5lZCxcbiAgaXNEcmFmdERlc2lnbmVyT3BlbjogZmFsc2UsXG4gIGlzRHJhZnRNb2RhbE9wZW46IGZhbHNlLFxuICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0KCkgeyByZXR1cm4gbnVsbDsgfSxcbiAgam9iOiB7fSxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGludmVudG9yeUxvYWRpbmc6IGZhbHNlLFxuICBvbkFkZFRvQ2FydCgpIHsgfSxcbiAgb25CdXlOb3coKSB7IH0sXG4gIG9uR2V0UXVvdGUoKSB7IH0sXG4gIG9uU3VibWl0KCkgeyB9LFxuICBwcm9kdWN0OiB7fSxcbiAgcHJvZHVjdEZvcm1JZDogdW5kZWZpbmVkLFxuICBzZXRDbGllbnQoKSB7IH0sXG4gIHNldElzRHJhZnREZXNpZ25lck9wZW4oKSB7IH0sXG4gIHNldElzRHJhZnRNb2RhbE9wZW4oKSB7IH0sXG4gIHNldEpvYihqb2IpIHsgfSxcbiAgc2V0TG9hZGluZyhsb2FkaW5nKSB7IH0sXG4gIHNob3dBbGVydChhbGVydCkgeyB9LFxuICBzaG93Q3VycmVuY3k6IGZhbHNlLFxuICBzaG93Q3VycmVuY3lDb2RlOiBmYWxzZSxcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZTogZmFsc2UsXG4gIHNob3dHcm91cEJ1eVN0YXR1czogZmFsc2UsXG4gIHNob3dQcmljZU1hdHJpeDogdHJ1ZSxcbiAgc2hvd1VuaXRQcmljZTogZmFsc2UsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUZvcm1Db250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQpO1xuXG5leHBvcnQgY29uc3QgTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlciA9ICh7XG4gIGFwaVVybCA9ICdodHRwczovL2FwaS5tZXJjaGkuY28vdjYvJyxcbiAgYWxsb3dBZGRUb0NhcnQsXG4gIGJ0bk5hbWVBZGRUb0NhcnQsXG4gIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUgPSAnYWxlcnQgYWxlcnQtbGlnaHQnLFxuICBjbGFzc05hbWVCdXR0b25TdWJtaXQgPSAnYnRuIGJ0bi1wcmltYXJ5IG1lcmNoaS1lbWJlZC1mb3JtX2J1dHRvbi1zdWJtaXQnLFxuICBjbGFzc05hbWVCdXR0b25Hcm91cEFkZCA9ICdidG4gYnRuLXdoaXRlJyxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmUgPSAnYnRuIGJ0bi1kYW5nZXInLFxuICBjbGFzc05hbWVCdXR0b25zU3VibWl0Q29udGFpbmVyID0gJ21lcmNoaS1wcm9kdWN0LWJ1dHRvbnMtc3VibWl0LWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUJ1dHRvbkFwcHJvdmVEcmFmdHMgPSAnYnRuIGJ0bi1zdWNjZXNzJyxcbiAgY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHMgPSAnYnRuIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lciA9ICdtZXJjaGktcHJvZHVjdC1kcmFmdC1idXR0b24tY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lRHJhZnRDdGEgPSAnbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhJyxcbiAgY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciA9ICdtZXJjaGktcHJvZHVjdC1kcmFmdC1ncm91cC1jb250YWluZXInLFxuICBjbGFzc05hbWVEcmFmdEdyb3VwVGl0bGUgPSAnbWVyY2hpLXByb2R1Y3QtZHJhZnQtZ3JvdXAtdGl0bGUnLFxuICBjbGFzc05hbWVEcmFmdFNoZWV0ID0gJ21lcmNoaS1wcm9kdWN0LWRyYWZ0LXNoZWV0JyxcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyID0gJ21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRvb2xiYXInLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyID0gJ21lcmNoaS1pbnB1dC1maWxlLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWQgPSAnbWVyY2hpLWVtYmVkLWZvcm1fZHJvcHpvbmUnLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lciA9ICd1cGxvYWRlZC12YXJpYXRpb24tZmlsZScsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRUZXh0Q29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLXRleHQtY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlciA9ICd1cGxvYWRlZC12YXJpYXRpb24tZmlsZS1pY29uLXdyYXBwZXInLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uID0gJ2J0biBidG4tc20gYnRuLWxpbmsgbWwtYXV0bycsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLWljb24nLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZCA9ICdtZXJjaGktZW1iZWQtZm9ybV9kcm9wem9uZS1pY29uLXBsdXMnLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9kcm9wem9uZS1pY29uLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gbm8tei1pbmRleC1ob3ZlcicsXG4gIGNsYXNzTmFtZUZpbGVCdXR0b25Eb3dubG9hZCA9ICdidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVGaWxlQnV0dG9uRGVsZXRlID0gJ2J0biBidG4tc20gYnRuLWRhbmdlciBtbC0yJyxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyID0gJ2xpc3QtZ3JvdXAnLFxuICBjbGFzc05hbWVHcm91cHNDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC1jb250YWluZXInLFxuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX3Byb2R1Y3QtZ3JvdXAtdG90YWwtY29zdCcsXG4gIGNsYXNzTmFtZUlucHV0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cyA9ICdmbGV4LWZpbGwnLFxuICBjbGFzc05hbWVJbnB1dENvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLWlucHV0LXF0eS1jb250YWluZXInLFxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY2hlY2tib3hfcmFkaW8taXRlbScsXG4gIGNsYXNzTmFtZU9wdGlvbklucHV0ID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NoZWNrYm94X3JhZGlvLWlucHV0JyxcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWwgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY2hlY2tib3hfcmFkaW8tbGFiZWwnLFxuICBjbGFzc05hbWVPcHRpb25TdXBlciA9ICdtZXJjaGktZW1iZWQtZm9ybV9jaGVja2JveF9yYWRpby1zdXBlcicsXG4gIGNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyID0gJycsXG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlID0gJ21lcmNoaS1lbWJlZC1mb3JtX2ltYWdlLXNlbGVjdC1vcHRpb24taXRlbS1pbWcnLFxuICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9pbWFnZS1zZWxlY3Qtb3B0aW9uLWl0ZW0tY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NvbG9yLXNlbGVjdC1vcHRpb24nLFxuICBjbGFzc05hbWVPcHRpb25Db2xvdXJDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY29sb3Itc2VsZWN0LWl0ZW0nLFxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGUgPSAnbWVyY2hpLXByb2R1Y3QtdGl0bGUnLFxuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUgPSAnbWVyY2hpLXByb2R1Y3Qtb3JpZ2luLXRpdGxlJyxcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsID0gJ21lcmNoaS1lbWJlZC1mb3JtX3N1bW1hcnktcHJvZHVjdC1jb3N0JyxcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX3N1bW1hcnktcHJvZHVjdC1jb3N0LWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcXVhbnRpdHktbGFiZWwtY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lVW5pdFByaWNlLFxuICBjbGFzc05hbWVQcmljZU1hdHJpeCxcbiAgY2hpbGRyZW4sXG4gIGN1cnJlbnRVc2VyLFxuICBoY2FwdGNoYVNpdGVLZXksXG4gIGhpZGVDb3N0LFxuICBoaWRlQ291bnRyeSA9IGZhbHNlLFxuICBoaWRlQ2FsY3VsYXRlZFByaWNlLFxuICBoaWRlRG9tYWluTmFtZSA9IGZhbHNlLFxuICBoaWRlUXVhbnRpdHlGaWVsZCxcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24sXG4gIGhpZGVQYXltZW50VXBmcm9udEJ1dHRvbixcbiAgaGlkZVRpdGxlID0gZmFsc2UsXG4gIGlzQ2FydEl0ZW0sXG4gIGluaXRKb2IsXG4gIGluaXRQcm9kdWN0LFxuICBwcmljaW5nUnVsZXM6IHByaWNpbmdSdWxlc1Byb3AsXG4gIG9uQWRkVG9DYXJ0LFxuICBvbkJ1eU5vdyxcbiAgb25HZXRRdW90ZSxcbiAgb25TdWJtaXQsXG4gIHByb2R1Y3RGb3JtSWQsXG4gIHNob3dDdXJyZW5jeSxcbiAgc2hvd0N1cnJlbmN5Q29kZSxcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZSxcbiAgc2hvd0dyb3VwQnV5U3RhdHVzLFxuICBzaG93UHJpY2VNYXRyaXggPSB0cnVlLFxuICBzaG93VW5pdFByaWNlLFxufToge1xuICBhcGlVcmw/OiBzdHJpbmc7XG4gIGFsbG93QWRkVG9DYXJ0PzogYm9vbGVhbjtcbiAgYnRuTmFtZUFkZFRvQ2FydD86IHN0cmluZztcbiAgY2xhc3NOYW1lQWxlcnRTZWxsZXJFZGl0YWJsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uU3VibWl0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25Hcm91cEFkZD86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkFwcHJvdmVEcmFmdHM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkNsb3NlRHJhZnRzPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRDdGE/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRTaGVldD86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZD86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlQnV0dG9uRGVsZXRlPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lR3JvdXBQcmljZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVJbnZlbnRvcnlTdGF0dXM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25TdXBlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByb2R1Y3RPcmlnaW5UaXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0VG90YWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lVW5pdFByaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcmljZU1hdHJpeD86IHN0cmluZztcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGhjYXB0Y2hhU2l0ZUtleT86IHN0cmluZztcbiAgaGlkZUNhbGN1bGF0ZWRQcmljZT86IGJvb2xlYW47XG4gIGhpZGVDb3N0PzogYm9vbGVhbjtcbiAgaGlkZUNvdW50cnk/OiBib29sZWFuO1xuICBoaWRlRG9tYWluTmFtZT86IGJvb2xlYW47XG4gIGhpZGVRdWFudGl0eUZpZWxkPzogYm9vbGVhbjtcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24/OiBib29sZWFuO1xuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24/OiBib29sZWFuO1xuICBoaWRlVGl0bGU/OiBib29sZWFuO1xuICBpc0NhcnRJdGVtPzogYm9vbGVhbjtcbiAgaW5pdEpvYj86IGFueTtcbiAgaW5pdFByb2R1Y3Q6IGFueTtcbiAgcHJpY2luZ1J1bGVzPzogYW55O1xuICBvbkFkZFRvQ2FydD86IChqb2I6IGFueSkgPT4gdm9pZDtcbiAgb25CdXlOb3c/OiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIG9uR2V0UXVvdGU/OiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIG9uU3VibWl0PzogKGpvYjogYW55KSA9PiB2b2lkO1xuICBwcm9kdWN0Rm9ybUlkPzogc3RyaW5nO1xuICBzaG93Q3VycmVuY3k/OiBib29sZWFuO1xuICBzaG93Q3VycmVuY3lDb2RlPzogYm9vbGVhbjtcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XG4gIHNob3dHcm91cEJ1eVN0YXR1cz86IGJvb2xlYW47XG4gIHNob3dQcmljZU1hdHJpeD86IGJvb2xlYW47XG4gIHNob3dVbml0UHJpY2U/OiBib29sZWFuO1xufSkgPT4ge1xuICBjb25zdCBwcm9kdWN0ID0gc2FuaXRpemVQcm9kdWN0VmFyaWF0aW9uRmllbGRzKGluaXRQcm9kdWN0KTtcbiAgY29uc3QgZGVmYXVsdEpvYiA9IGxpZnRJbmRlcGVuZGVudFZhcmlhdGlvbnNGcm9tR3JvdXBzKFxuICAgIGluaXRKb2IgfHwgcHJvZHVjdC5kZWZhdWx0Sm9iIHx8IHt9LFxuICAgIHByb2R1Y3RcbiAgKTtcbiAgY29uc3QgaG9va0Zvcm0gPSB1c2VGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiBkZWZhdWx0Sm9iLFxuICAgIC8vIFJlLWNoZWNrIHJ1bGVzIGFzIHRoZSB1c2VyIGVkaXRzIGFmdGVyIHRoZSBmaXJzdCB2YWxpZGF0aW9uIGF0dGVtcHQuXG4gICAgcmVWYWxpZGF0ZU1vZGU6ICdvbkNoYW5nZScsXG4gIH0pO1xuICBjb25zdCBbY2xpZW50LCBzZXRDbGllbnRdID0gdXNlU3RhdGUoY3VycmVudFVzZXIpO1xuICBjb25zdCBbYWxlcnQsIHNob3dBbGVydF0gPSB1c2VTdGF0ZSgobnVsbCBhcyBhbnkpKTtcbiAgY29uc3QgW2RyYWZ0QXBwcm92ZUNhbGxiYWNrLCBzZXREcmFmdEFwcHByb3ZlQ2FsbGJhY2tdID0gdXNlU3RhdGU8KChqb2I6IGFueSkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2pvYiwgc2V0Sm9iXSA9IHVzZVN0YXRlPGFueT4oZGVmYXVsdEpvYik7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ludmVudG9yeUxvYWRpbmcsIHNldEludmVudG9yeUxvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IGNvbnRyb2wsIGdldFZhbHVlcywgaGFuZGxlU3VibWl0LCByZXNldCwgdHJpZ2dlciB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IGRvU3VibWl0ID0gb25TdWJtaXRcbiAgICA/IGhhbmRsZVN1Ym1pdChvblN1Ym1pdCwgKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0ZpcnN0Rm9ybUVycm9yKCk7XG4gICAgICB9KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIC8qKiBSdW4gZmllbGQgcnVsZXMgKGluY2x1ZGluZyBNT1EpIGJlZm9yZSBidXkgLyBjYXJ0IC8gcXVvdGUgYWN0aW9ucy4gKi9cbiAgY29uc3QgdmFsaWRhdGVGb3JtID0gYXN5bmMgKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgdHJpZ2dlcigpO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHNjcm9sbFRvRmlyc3RGb3JtRXJyb3IoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkO1xuICB9O1xuXG4gIGNvbnN0IHRhZ3MgPSBnZXRNZXJjaGlTb3VyY2VKb2JUYWdzKCk7XG5cbiAgY29uc3QgaW52ZW50b3J5UmVmcmVzaFRpbWVyID0gUmVhY3QudXNlUmVmPGFueT4obnVsbCk7XG4gIGNvbnN0IHNlcnZlclF1b3RlVGltZXIgPSBSZWFjdC51c2VSZWY8YW55PihudWxsKTtcbiAgY29uc3QgcXVvdGVSZXF1ZXN0SWQgPSBSZWFjdC51c2VSZWYoMCk7XG4gIGNvbnN0IFNFUlZFUl9RVU9URV9ERUJPVU5DRV9NUyA9IDEwMDA7XG5cbiAgLy8gQ2xpZW50LXNpZGUgcXVvdGluZyBpcyBkcml2ZW4gc29sZWx5IGJ5IHRoZSBwcm9kdWN0J3MgY2xpZW50U2lkZUNhbGN1bGF0aW9uXG4gIC8vIGF0dHJpYnV0ZSAoc2V0IGJ5IHRoZSBtYW5hZ2VyKS4gSXQgaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguXG4gIGNvbnN0IGNsaWVudFNpZGVFbmFibGVkID0gQm9vbGVhbihpbml0UHJvZHVjdD8uY2xpZW50U2lkZUNhbGN1bGF0aW9uKTtcblxuICAvLyBGZXRjaCBwcmljaW5nLXJ1bGVzIGZvciBjbGllbnQtc2lkZSBxdW90aW5nIGFuZCB0aGUgYnVsayBwcmljZSB0YWJsZS5cbiAgLy8gQSBgcHJpY2luZ1J1bGVzYCBwcm9wLCBpZiBzdXBwbGllZCwgb3ZlcnJpZGVzIHRoZSBmZXRjaC5cbiAgY29uc3QgW2ZldGNoZWRQcmljaW5nUnVsZXMsIHNldEZldGNoZWRQcmljaW5nUnVsZXNdID0gdXNlU3RhdGU8YW55PihudWxsKTtcbiAgY29uc3QgcHJpY2luZ1J1bGVzID0gcHJpY2luZ1J1bGVzUHJvcCB8fCBmZXRjaGVkUHJpY2luZ1J1bGVzO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKCFjbGllbnRTaWRlRW5hYmxlZCAmJiAhc2hvd1ByaWNlTWF0cml4KSB8fFxuICAgICAgcHJpY2luZ1J1bGVzUHJvcCB8fFxuICAgICAgIWluaXRQcm9kdWN0Py5pZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBhcGlVcmwuZW5kc1dpdGgoJy8nKSA/IGFwaVVybCA6IGAke2FwaVVybH0vYDtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYCR7YmFzZX1wcm9kdWN0cy8ke2luaXRQcm9kdWN0LmlkfS9wcmljaW5nLXJ1bGVzL2ApO1xuICAgICAgICBpZiAoIXJlcy5vaykgcmV0dXJuO1xuICAgICAgICBjb25zdCBydWxlcyA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgIGlmICghY2FuY2VsbGVkKSBzZXRGZXRjaGVkUHJpY2luZ1J1bGVzKHJ1bGVzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQmVzdC1lZmZvcnQ6IGZvcm0gZmFsbHMgYmFjayB0byBzZXJ2ZXItc2lkZSBxdW90aW5nIG9uIGZhaWx1cmUuXG4gICAgICB9XG4gICAgfSkoKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbY2xpZW50U2lkZUVuYWJsZWQsIHNob3dQcmljZU1hdHJpeCwgcHJpY2luZ1J1bGVzUHJvcCwgaW5pdFByb2R1Y3Q/LmlkLCBhcGlVcmxdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgIGlmIChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGZ1bmN0aW9uIHZhcmlhdGlvbnNIYXZlRmllbGRNZXRhZGF0YShqb2JWYWx1ZXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrID0gKHZhcmlhdGlvbnM6IGFueVtdIHwgdW5kZWZpbmVkKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFyaWF0aW9ucykgfHxcbiAgICAgIHZhcmlhdGlvbnMuZXZlcnkoKHZhcmlhdGlvbikgPT4gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8uZmllbGRUeXBlICE9IG51bGwpO1xuICAgIGlmICghY2hlY2soam9iVmFsdWVzPy52YXJpYXRpb25zKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGpvYlZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcykpIHtcbiAgICAgIHJldHVybiBqb2JWYWx1ZXMudmFyaWF0aW9uc0dyb3Vwcy5ldmVyeSgoZ3JvdXA6IGFueSkgPT5cbiAgICAgICAgY2hlY2soZ3JvdXA/LnZhcmlhdGlvbnMpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5T3B0aW9uVmlzaWJpbGl0eShcbiAgICB2YXJpYXRpb25zOiBhbnlbXSxcbiAgICB2aXNpYmxlT3B0aW9uSWRzOiBTZXQ8bnVtYmVyPixcbiAgICB1bmF2YWlsYWJsZU9wdGlvbklkczogU2V0PG51bWJlcj5cbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAodmFyaWF0aW9ucyB8fCBbXSkuZm9yRWFjaCgodmFyaWF0aW9uOiBhbnkpID0+IHtcbiAgICAgICh2YXJpYXRpb24uc2VsZWN0YWJsZU9wdGlvbnMgfHwgW10pLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIC8vIE1pcnJvciB0aGUgc2VydmVyJ3MgcGVyLW9wdGlvbiBpc1Zpc2libGUgKHNlbGVjdGVkQnkgcmVzb2x1dGlvbikuXG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHZpc2libGVPcHRpb25JZHMuaGFzKG9wdGlvbi5vcHRpb25JZCk7XG4gICAgICAgIGlmIChvcHRpb24uaXNWaXNpYmxlICE9PSBpc1Zpc2libGUpIHtcbiAgICAgICAgICBvcHRpb24uaXNWaXNpYmxlID0gaXNWaXNpYmxlO1xuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIENvbWJpbmF0aW9uLWF3YXJlIGF2YWlsYWJpbGl0eTogYW4gb3B0aW9uIGlzIHVuYXZhaWxhYmxlIHdoZW4gdGhlXG4gICAgICAgIC8vIGNvbWJpbmF0aW9uIG9mIChjdXJyZW50IGludmVudG9yeSBzZWxlY3Rpb25zICsgdGhpcyBvcHRpb24pIGhhcyBub1xuICAgICAgICAvLyBtYXRjaGluZyBzdG9jay4gTm9uLWludmVudG9yeSBwcm9kdWN0cyB5aWVsZCBhbiBlbXB0eSBzZXQgLT4gYWxsXG4gICAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gIXVuYXZhaWxhYmxlT3B0aW9uSWRzLmhhcyhvcHRpb24ub3B0aW9uSWQpO1xuICAgICAgICBpZiAob3B0aW9uLmF2YWlsYWJsZSAhPT0gYXZhaWxhYmxlKSB7XG4gICAgICAgICAgb3B0aW9uLmF2YWlsYWJsZSA9IGF2YWlsYWJsZTtcbiAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNoYW5nZWQ7XG4gIH1cblxuICAvLyBGb3IgaW52ZW50b3J5LWxpbWl0ZWQgcHJvZHVjdHMsIHJlZnJlc2ggcXVhbnRpdHktZGVwZW5kZW50IGludmVudG9yeVxuICAvLyAoZ3JvdXAgaW52ZW50b3J5Q291bnQvaW52ZW50b3J5U3VmZmljaWVudCkgZnJvbSB0aGUgYXV0aG9yaXRhdGl2ZSBzZXJ2ZXIgaW5cbiAgLy8gdGhlIGJhY2tncm91bmQsIGRlYm91bmNlZCwgYW5kIG1lcmdlIGl0IHRocm91Z2ggc2V0Sm9iICh3aGljaCByZW5kZXJzXG4gIC8vIHdpdGhvdXQgYSBmb3JtIHJlc2V0LCBzbyB0aGUgdmlld3BvcnQgbmV2ZXIganVtcHMpLiBUaGUgY2xpZW50IHByaWNlIHN0YXlzXG4gIC8vIGluc3RhbnQ7IHRoZSBpbnZlbnRvcnkgYmFkZ2UgY2F0Y2hlcyB1cCBhIGJlYXQgbGF0ZXIuXG4gIGZ1bmN0aW9uIHJlc2V0Rm9ybVByZXNlcnZpbmdTY3JvbGwodmFsdWVzOiBhbnkpIHtcbiAgICBjb25zdCBoYXNXaW5kb3cgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBzY3JvbGxQYXJlbnQgPSBmaW5kU2Nyb2xsUGFyZW50KCk7XG4gICAgY29uc3Qgc2Nyb2xsWCA9IGhhc1dpbmRvdyA/IHdpbmRvdy5zY3JvbGxYIDogMDtcbiAgICBjb25zdCBzY3JvbGxZID0gaGFzV2luZG93ID8gd2luZG93LnNjcm9sbFkgOiAwO1xuICAgIGNvbnN0IHBhcmVudFRvcCA9IHNjcm9sbFBhcmVudCA/IHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgOiAwO1xuICAgIGNvbnN0IHBhcmVudExlZnQgPSBzY3JvbGxQYXJlbnQgPyBzY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCA6IDA7XG4gICAgcmVzZXQodmFsdWVzKTtcbiAgICBpZiAoaGFzV2luZG93ICYmIHR5cGVvZiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbFBhcmVudCkge1xuICAgICAgICAgIHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgPSBwYXJlbnRUb3A7XG4gICAgICAgICAgc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgPSBwYXJlbnRMZWZ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxYLCBzY3JvbGxZKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZmluZFNjcm9sbFBhcmVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsID0gYWN0aXZlO1xuICAgIHdoaWxlIChub2RlICYmIG5vZGUgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgICBjb25zdCBjYW5TY3JvbGxZID1cbiAgICAgICAgKHN0eWxlLm92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IHN0eWxlLm92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpICYmXG4gICAgICAgIG5vZGUuc2Nyb2xsSGVpZ2h0ID4gbm9kZS5jbGllbnRIZWlnaHQ7XG4gICAgICBpZiAoY2FuU2Nyb2xsWSkgcmV0dXJuIG5vZGU7XG4gICAgICAvLyBSYWRpeCBTY3JvbGxBcmVhIHZpZXdwb3J0XG4gICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdCcpID09PSAnc2Nyb2xsLWFyZWEtdmlld3BvcnQnKSByZXR1cm4gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IHZpZXdwb3J0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICdbZGF0YS1zbG90PVwiZGlhbG9nLWNvbnRlbnRcIl0gW2RhdGEtc2xvdD1cInNjcm9sbC1hcmVhLXZpZXdwb3J0XCJdJ1xuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIHJldHVybiB2aWV3cG9ydDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1RdWFudGl0aWVzTWF0Y2hSZXF1ZXN0KFxuICAgIGZvcm1WYWx1ZXM6IGFueSxcbiAgICByZXF1ZXN0RGF0YTogYW55LFxuICAgIHByb2R1Y3Q6IGFueVxuICApOiBib29sZWFuIHtcbiAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgY29uc3QgZ3JvdXBzID0gcmVxdWVzdERhdGEudmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgICAgIHJldHVybiBncm91cHMuZXZlcnkoKGdyb3VwOiBhbnksIGluZGV4OiBudW1iZXIpID0+XG4gICAgICAgIE51bWJlcihncm91cC5xdWFudGl0eSkgPT09IE51bWJlcihmb3JtVmFsdWVzLnZhcmlhdGlvbnNHcm91cHM/LltpbmRleF0/LnF1YW50aXR5KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcihyZXF1ZXN0RGF0YS5xdWFudGl0eSkgPT09IE51bWJlcihmb3JtVmFsdWVzLnF1YW50aXR5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5U2VydmVyUXVvdGUoZm9ybVZhbHVlczogYW55LCBzZXJ2ZXJKb2I6IGFueSkge1xuICAgIGNvbnN0IGNsZWFuZWRGb3JtVmFsdWVzID0gY2xlYW5Kb2JWYXJpYXRpb25zQW5kR3JvdXBzKHsgLi4uZm9ybVZhbHVlcyB9KTtcbiAgICAvLyBBZG9wdCBmaWVsZHMgdGhlIHNlcnZlciBhZGRlZC9yZW1vdmVkIHZpYSBmaWxsX2R5bmFtaWNfdmFyaWF0aW9ucywgd2hpbGVcbiAgICAvLyBwcmVzZXJ2aW5nIHRoZSB1c2VyJ3MgaW4tcHJvZ3Jlc3MgdmFsdWVzIChxdWFudGl0eSBlZGl0cywgc2VsZWN0aW9ucykuXG4gICAgLy8gTWF0Y2ggYnkgdmFyaWF0aW9uRmllbGQuaWQgLyBvcHRpb25JZCDigJQgaW5kZXggc3luYyBicmVha3Mgd2hlbiB0aGVcbiAgICAvLyBjb25kaXRpb25hbCBmaWVsZCBsaXN0IGNoYW5nZXMgbGVuZ3RoIG9yIG9yZGVyLlxuICAgIGNvbnN0IGluZGVwZW5kZW50UmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhcbiAgICAgIGNsZWFuZWRGb3JtVmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBzZXJ2ZXJKb2IudmFyaWF0aW9uc1xuICAgICk7XG4gICAgbGV0IHZpc2liaWxpdHlDaGFuZ2VkID0gaW5kZXBlbmRlbnRSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQ7XG4gICAgY29uc3QgbWVyZ2VkSm9iOiBhbnkgPSB7XG4gICAgICAuLi5jbGVhbmVkRm9ybVZhbHVlcyxcbiAgICAgIHZhcmlhdGlvbnM6IGluZGVwZW5kZW50UmVjb25jaWxlLnZhcmlhdGlvbnMsXG4gICAgICBjb3N0OiBzZXJ2ZXJKb2IuY29zdCxcbiAgICAgIGNvc3RQZXJVbml0OiBzZXJ2ZXJKb2IuY29zdFBlclVuaXQsXG4gICAgICB0YXhBbW91bnQ6IHNlcnZlckpvYi50YXhBbW91bnQsXG4gICAgICB0b3RhbENvc3Q6IHNlcnZlckpvYi50b3RhbENvc3QsXG4gICAgICBjdXJyZW5jeTogc2VydmVySm9iLmN1cnJlbmN5LFxuICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlDb3VudCxcbiAgICAgIGludmVudG9yeVN1ZmZpY2llbnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgIH07XG4gICAgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheShjbGVhbmVkRm9ybVZhbHVlcy52YXJpYXRpb25zR3JvdXBzKVxuICAgICAgJiYgQXJyYXkuaXNBcnJheShzZXJ2ZXJKb2IudmFyaWF0aW9uc0dyb3VwcylcbiAgICApIHtcbiAgICAgIG1lcmdlZEpvYi52YXJpYXRpb25zR3JvdXBzID0gY2xlYW5lZEZvcm1WYWx1ZXMudmFyaWF0aW9uc0dyb3Vwcy5tYXAoXG4gICAgICAgIChncm91cDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VydmVyR3JvdXAgPSBzZXJ2ZXJKb2IudmFyaWF0aW9uc0dyb3Vwc1tpbmRleF07XG4gICAgICAgICAgaWYgKCFzZXJ2ZXJHcm91cCkgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgIGNvbnN0IGdyb3VwUmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhcbiAgICAgICAgICAgIGdyb3VwLnZhcmlhdGlvbnMsXG4gICAgICAgICAgICBzZXJ2ZXJHcm91cC52YXJpYXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZ3JvdXBSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgICAgdmFyaWF0aW9uczogZ3JvdXBSZWNvbmNpbGUudmFyaWF0aW9ucyxcbiAgICAgICAgICAgIGdyb3VwQ29zdDogc2VydmVyR3JvdXAuZ3JvdXBDb3N0LFxuICAgICAgICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckdyb3VwLmludmVudG9yeUNvdW50LFxuICAgICAgICAgICAgaW52ZW50b3J5U3VmZmljaWVudDogc2VydmVyR3JvdXAuaW52ZW50b3J5U3VmZmljaWVudCxcbiAgICAgICAgICAgIG1hdGNoaW5nSW52ZW50b3JpZXM6IHNlcnZlckdyb3VwLm1hdGNoaW5nSW52ZW50b3JpZXMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgbWVyZ2VkSm9iLCB2aXNpYmlsaXR5Q2hhbmdlZCB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbWVyZ2VJbnZlbnRvcnkocHJldjogYW55LCBzZXJ2ZXJKb2I6IGFueSkge1xuICAgIGlmICghcHJldikgcmV0dXJuIHByZXY7XG4gICAgY29uc3QgbWVyZ2VkOiBhbnkgPSB7XG4gICAgICAuLi5wcmV2LFxuICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlDb3VudCxcbiAgICAgIGludmVudG9yeVN1ZmZpY2llbnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgIH07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJldi52YXJpYXRpb25zR3JvdXBzKSAmJiBBcnJheS5pc0FycmF5KHNlcnZlckpvYi52YXJpYXRpb25zR3JvdXBzKSkge1xuICAgICAgbWVyZ2VkLnZhcmlhdGlvbnNHcm91cHMgPSBwcmV2LnZhcmlhdGlvbnNHcm91cHMubWFwKChnOiBhbnksIGk6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBzZyA9IHNlcnZlckpvYi52YXJpYXRpb25zR3JvdXBzW2ldO1xuICAgICAgICBpZiAoIXNnKSByZXR1cm4gZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5nLFxuICAgICAgICAgIGludmVudG9yeUNvdW50OiBzZy5pbnZlbnRvcnlDb3VudCxcbiAgICAgICAgICBpbnZlbnRvcnlTdWZmaWNpZW50OiBzZy5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgICAgICAgIG1hdGNoaW5nSW52ZW50b3JpZXM6IHNnLm1hdGNoaW5nSW52ZW50b3JpZXMsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNjaGVkdWxlSW52ZW50b3J5UmVmcmVzaChjbGVhbmVkVmFsdWVzOiBhbnkpIHtcbiAgICBpZiAoIXByaWNpbmdSdWxlcyB8fCAhcHJpY2luZ1J1bGVzLm5lZWRzSW52ZW50b3J5KSByZXR1cm47XG4gICAgaWYgKGludmVudG9yeVJlZnJlc2hUaW1lci5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoaW52ZW50b3J5UmVmcmVzaFRpbWVyLmN1cnJlbnQpO1xuICAgIH1cbiAgICAvLyBTaG93IHRoZSBsb2FkaW5nIHN0YXRlIGluIHRoZSBpbnZlbnRvcnkgcGlsbHMgZnJvbSB0aGUgbW9tZW50IGEgY2hhbmdlIGlzXG4gICAgLy8gbWFkZSB1bnRpbCB0aGUgYXV0aG9yaXRhdGl2ZSBzdG9jayBjb21lcyBiYWNrIChjb3ZlcnMgdGhlIGRlYm91bmNlIHdhaXRcbiAgICAvLyBhbmQgdGhlIHJlcXVlc3QpLiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gYGxvYWRpbmdgIHNvIHRoZSBpbnN0YW50IGNsaWVudFxuICAgIC8vIHByaWNlIG5ldmVyIGZsaWNrZXJzIHRvIGEgc3Bpbm5lci5cbiAgICBzZXRJbnZlbnRvcnlMb2FkaW5nKHRydWUpO1xuICAgIGludmVudG9yeVJlZnJlc2hUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsZXQgZGF0YSA9IHsgLi4uY2xlYW5lZFZhbHVlcywgcHJvZHVjdDogeyBpZDogaW5pdFByb2R1Y3QuaWQgfSB9O1xuICAgICAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgICAgIGRlbGV0ZSBkYXRhLnF1YW50aXR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaEpvYlF1b3RlKGRhdGEsIGFwaVVybCk7XG4gICAgICAgIGNvbnN0IHNlcnZlckpvYiA9IHIudG9Kc29uKCk7XG4gICAgICAgIHNldEpvYigocHJldjogYW55KSA9PiBtZXJnZUludmVudG9yeShwcmV2LCBzZXJ2ZXJKb2IpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQmVzdC1lZmZvcnQ6IGlmIHRoZSBpbnZlbnRvcnkgcmVmcmVzaCBmYWlscyB0aGUgcHJpY2UgaXMgdW5hZmZlY3RlZC5cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldEludmVudG9yeUxvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIDQ1MCk7XG4gIH1cblxuICBmdW5jdGlvbiBhcHBseUNsaWVudFF1b3RlKHZhbHVlczogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0aW9ucyA9IHRvU2VsZWN0aW9ucyh2YWx1ZXMsIHByaWNpbmdSdWxlcyk7XG4gICAgY29uc3QgcmVzdWx0ID0gcHJpY2luZy5lc3RpbWF0ZVF1b3RlKHByaWNpbmdSdWxlcywgc2VsZWN0aW9ucyk7XG4gICAgaWYgKCd1bnN1cHBvcnRlZCcgaW4gcmVzdWx0KSByZXR1cm4gbnVsbDtcbiAgICAvLyBWaXNpYmlsaXR5IEFORCBhdmFpbGFiaWxpdHkgYXJlIHNjb3BlZCBwZXIgY29udGFpbmVyLCBtaXJyb3JpbmcgdGhlXG4gICAgLy8gc2VydmVyOiBpbmRlcGVuZGVudCB2YXJpYXRpb25zIHJlc29sdmUgYWdhaW5zdCBpbmRlcGVuZGVudCBzZWxlY3Rpb25zXG4gICAgLy8gb25seTsgZWFjaCBncm91cCByZXNvbHZlcyBhZ2FpbnN0IGl0cyBvd24gc2VsZWN0aW9ucyArIGluZGVwZW5kZW50LlxuICAgIC8vIE90aGVyIGdyb3VwcyBuZXZlciBsZWFrIGluLiBBdmFpbGFiaWxpdHkgaXMgY29tYmluYXRpb24tYXdhcmU6IGFuIG9wdGlvblxuICAgIC8vIGlzIGRpc2FibGVkIHdoZW4gKGN1cnJlbnQgaW52ZW50b3J5IHNlbGVjdGlvbnMgKyB0aGF0IG9wdGlvbikgaGFzIG5vXG4gICAgLy8gbWF0Y2hpbmcgc3RvY2suXG4gICAgLy8gRmllbGQgbWVtYmVyc2hpcCBtaXJyb3JzIGZpbGxfZHluYW1pY192YXJpYXRpb25zOiBnYXRlZCBmaWVsZHMgYXJlXG4gICAgLy8gYWRkZWQvcmVtb3ZlZCB2aWEgcmVzb2x2ZVZpc2libGVGaWVsZHMgKyBwcm9kdWN0IGZpZWxkIHRlbXBsYXRlcy5cbiAgICBjb25zdCBpbmRlcGVuZGVudFNjb3BlID0ge1xuICAgICAgcXVhbnRpdHk6IHNlbGVjdGlvbnMucXVhbnRpdHksXG4gICAgICBmaWVsZFZhbHVlczogc2VsZWN0aW9ucy5maWVsZFZhbHVlcyxcbiAgICB9O1xuICAgIGNvbnN0IGluZGVwZW5kZW50VmlzaWJsZUZpZWxkcyA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVGaWVsZHMoXG4gICAgICBwcmljaW5nUnVsZXMsXG4gICAgICBpbmRlcGVuZGVudFNjb3BlXG4gICAgKTtcbiAgICBjb25zdCBpbmRlcGVuZGVudEZpZWxkVGVtcGxhdGVzID1cbiAgICAgIHByb2R1Y3RGaWVsZHNGb3JQcmljaW5nRmllbGRzKHByaWNpbmdSdWxlcy5maWVsZHMsIHByb2R1Y3QpO1xuICAgIGNvbnN0IGRlc2lyZWRJbmRlcGVuZGVudCA9IGJ1aWxkRGVzaXJlZFZhcmlhdGlvbnNGcm9tRmllbGRzKFxuICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBpbmRlcGVuZGVudEZpZWxkVGVtcGxhdGVzID8/IHByb2R1Y3Q/LmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzLFxuICAgICAgaW5kZXBlbmRlbnRWaXNpYmxlRmllbGRzLFxuICAgICAgYnVpbGRFbXB0eVZhcmlhdGlvbkZyb21GaWVsZFxuICAgICk7XG4gICAgY29uc3QgaW5kZXBlbmRlbnRSZWNvbmNpbGUgPSByZWNvbmNpbGVWYXJpYXRpb25zKFxuICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBkZXNpcmVkSW5kZXBlbmRlbnRcbiAgICApO1xuICAgIHZhbHVlcy52YXJpYXRpb25zID0gaW5kZXBlbmRlbnRSZWNvbmNpbGUudmFyaWF0aW9ucztcblxuICAgIGNvbnN0IGluZGVwZW5kZW50VmlzaWJsZSA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVPcHRpb25JZHMocHJpY2luZ1J1bGVzLCBpbmRlcGVuZGVudFNjb3BlKTtcbiAgICBjb25zdCBpbmRlcGVuZGVudFVuYXZhaWxhYmxlID0gcHJpY2luZy5yZXNvbHZlVW5hdmFpbGFibGVPcHRpb25JZHMocHJpY2luZ1J1bGVzLCBpbmRlcGVuZGVudFNjb3BlKTtcbiAgICBsZXQgdmlzaWJpbGl0eUNoYW5nZWQgPVxuICAgICAgaW5kZXBlbmRlbnRSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQgfHxcbiAgICAgIGFwcGx5T3B0aW9uVmlzaWJpbGl0eShcbiAgICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsIGluZGVwZW5kZW50VmlzaWJsZSwgaW5kZXBlbmRlbnRVbmF2YWlsYWJsZVxuICAgICAgKTtcbiAgICBpZiAocHJpY2luZ1J1bGVzLmhhc0dyb3VwcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlcy52YXJpYXRpb25zR3JvdXBzKSkge1xuICAgICAgdmFsdWVzLnZhcmlhdGlvbnNHcm91cHMuZm9yRWFjaCgoZzogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgZy5ncm91cENvc3QgPSByZXN1bHQuZ3JvdXBDb3N0c1tpXSA/PyAwO1xuICAgICAgICBjb25zdCBncm91cFNjb3BlID0ge1xuICAgICAgICAgIGZpZWxkVmFsdWVzOiBzZWxlY3Rpb25zLmZpZWxkVmFsdWVzLFxuICAgICAgICAgIGdyb3Vwczogc2VsZWN0aW9ucy5ncm91cHMgPyBbc2VsZWN0aW9ucy5ncm91cHNbaV1dIDogW10sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGdyb3VwVmlzaWJsZUZpZWxkcyA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVGaWVsZHMoXG4gICAgICAgICAgcHJpY2luZ1J1bGVzLFxuICAgICAgICAgIGdyb3VwU2NvcGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZ3JvdXBGaWVsZFRlbXBsYXRlcyA9XG4gICAgICAgICAgcHJvZHVjdEZpZWxkc0ZvclByaWNpbmdGaWVsZHMocHJpY2luZ1J1bGVzLmdyb3VwRmllbGRzLCBwcm9kdWN0KTtcbiAgICAgICAgY29uc3QgZGVzaXJlZEdyb3VwID0gYnVpbGREZXNpcmVkVmFyaWF0aW9uc0Zyb21GaWVsZHMoXG4gICAgICAgICAgZy52YXJpYXRpb25zLFxuICAgICAgICAgIGdyb3VwRmllbGRUZW1wbGF0ZXMgPz8gZ3JvdXBGaWVsZFRlbXBsYXRlc0Zyb21Qcm9kdWN0KHByb2R1Y3QpLFxuICAgICAgICAgIGdyb3VwVmlzaWJsZUZpZWxkcyxcbiAgICAgICAgICBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGdyb3VwUmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhnLnZhcmlhdGlvbnMsIGRlc2lyZWRHcm91cCk7XG4gICAgICAgIGcudmFyaWF0aW9ucyA9IGdyb3VwUmVjb25jaWxlLnZhcmlhdGlvbnM7XG4gICAgICAgIGlmIChncm91cFJlY29uY2lsZS52aXNpYmlsaXR5Q2hhbmdlZCkge1xuICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBncm91cFZpc2libGUgPSBwcmljaW5nLnJlc29sdmVWaXNpYmxlT3B0aW9uSWRzKHByaWNpbmdSdWxlcywgZ3JvdXBTY29wZSk7XG4gICAgICAgIGNvbnN0IGdyb3VwVW5hdmFpbGFibGUgPSBwcmljaW5nLnJlc29sdmVVbmF2YWlsYWJsZU9wdGlvbklkcyhwcmljaW5nUnVsZXMsIGdyb3VwU2NvcGUpO1xuICAgICAgICBpZiAoYXBwbHlPcHRpb25WaXNpYmlsaXR5KGcudmFyaWF0aW9ucywgZ3JvdXBWaXNpYmxlLCBncm91cFVuYXZhaWxhYmxlKSkge1xuICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG5leHRKb2IgPSBzeW5jSm9iU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlcyh7XG4gICAgICAuLi52YWx1ZXMsXG4gICAgICBjb3N0OiByZXN1bHQuY29zdCxcbiAgICAgIGNvc3RQZXJVbml0OiByZXN1bHQuY29zdFBlclVuaXQsXG4gICAgICB0YXhBbW91bnQ6IHJlc3VsdC50YXhBbW91bnQsXG4gICAgICB0b3RhbENvc3Q6IHJlc3VsdC50b3RhbENvc3QsXG4gICAgICBjdXJyZW5jeTogcmVzdWx0LmN1cnJlbmN5LFxuICAgIH0pO1xuICAgIHNldEpvYihuZXh0Sm9iKTtcbiAgICAvLyBPbmx5IHJlLXNlZWQgdGhlIGZvcm0gd2hlbiBvcHRpb24vZmllbGQgdmlzaWJpbGl0eSBhY3R1YWxseSBjaGFuZ2VkIOKAlFxuICAgIC8vIGkuZS4gb24gc2VsZWN0aW9uIGNoYW5nZXMsIG5vdCBvbiBxdWFudGl0eSBlZGl0cy4gQ29zdC9ncm91cC1jb3N0IHVwZGF0ZXNcbiAgICAvLyBmbG93IHRocm91Z2ggc2V0Sm9iIHdpdGhvdXQgYSByZXNldC4gcmVzZXQoKSBtYWtlcyB1c2VGaWVsZEFycmF5IHJlbW91bnRcbiAgICAvLyBpdHMgaXRlbXMsIHdoaWNoIG1ha2VzIHRoZSBicm93c2VyIGxvc2UgdGhlIHNjcm9sbCBwb3NpdGlvbjsgY2FwdHVyZSBhbmRcbiAgICAvLyByZXN0b3JlIGl0IHNvIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGp1bXAgd2hlbiB0b2dnbGluZyBhIHNlbGVjdC5cbiAgICAvLyBOZXZlciByZXNldCB3aXRoIHZhcmlhdGlvbnMgdGhhdCBsb3N0IHZhcmlhdGlvbkZpZWxkIOKAlCB0aGF0IGNvbGxhcHNlc1xuICAgIC8vIHRoZSBmb3JtIChEeW5hbWljVmFyaWF0aW9uSW5wdXQgY2Fubm90IHJlbmRlciB3aXRob3V0IGZpZWxkIG1ldGFkYXRhKS5cbiAgICBpZiAodmlzaWJpbGl0eUNoYW5nZWQgJiYgdmFyaWF0aW9uc0hhdmVGaWVsZE1ldGFkYXRhKG5leHRKb2IpKSB7XG4gICAgICByZXNldEZvcm1QcmVzZXJ2aW5nU2Nyb2xsKG5leHRKb2IpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dEpvYjtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVTZXJ2ZXJRdW90ZSgpOiBQcm9taXNlPGFueSB8IG51bGw+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBnZXRWYWx1ZXMoKTtcbiAgICBjb25zdCBjbGVhbmVkVmFsdWVzID0gY2xlYW5Kb2JWYXJpYXRpb25zQW5kR3JvdXBzKHZhbHVlcyk7XG4gICAgY29uc3QgcmVxdWVzdElkID0gKytxdW90ZVJlcXVlc3RJZC5jdXJyZW50O1xuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgbGV0IGRhdGEgPSB7IC4uLmNsZWFuZWRWYWx1ZXMsIHByb2R1Y3Q6IHsgaWQ6IGluaXRQcm9kdWN0LmlkIH0gfTtcbiAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgLy8gaWYgdGhlIHByb2R1Y3QgaGFzIGdyb3VwIHZhcmlhdGlvbiBmaWVsZHMgd2UgZGVsZXRlIHF1YW50aXR5XG4gICAgICAvLyBiZWNhdXNlIGVhY2ggZ3JvdXAgaGFzIGl0J3Mgb3duIHF1YW50aXR5XG4gICAgICBkZWxldGUgZGF0YS5xdWFudGl0eTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaEpvYlF1b3RlKGRhdGEsIGFwaVVybCk7XG4gICAgICBpZiAocmVxdWVzdElkICE9PSBxdW90ZVJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VydmVySm9iID0gci50b0pzb24oKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBnZXRWYWx1ZXMoKTtcbiAgICAgIGlmICghZm9ybVF1YW50aXRpZXNNYXRjaFJlcXVlc3QoY3VycmVudFZhbHVlcywgZGF0YSwgcHJvZHVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCB7IG1lcmdlZEpvYiwgdmlzaWJpbGl0eUNoYW5nZWQgfSA9IGFwcGx5U2VydmVyUXVvdGUoY3VycmVudFZhbHVlcywgc2VydmVySm9iKTtcbiAgICAgIHNldEpvYihtZXJnZWRKb2IpO1xuICAgICAgLy8gS2VlcCB0aGUgdXNlcidzIGluLXByb2dyZXNzIHF1YW50aXR5IHZhbHVlczsgb25seSByZS1zZWVkIHRoZSBmb3JtIHdoZW5cbiAgICAgIC8vIG9wdGlvbiB2aXNpYmlsaXR5IGNoYW5nZWQgKG1pcnJvcnMgY2xpZW50LXNpZGUgcXVvdGluZykuXG4gICAgICBpZiAodmlzaWJpbGl0eUNoYW5nZWQgJiYgdmFyaWF0aW9uc0hhdmVGaWVsZE1ldGFkYXRhKG1lcmdlZEpvYikpIHtcbiAgICAgICAgcmVzZXRGb3JtUHJlc2VydmluZ1Njcm9sbChtZXJnZWRKb2IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lcmdlZEpvYjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlLmVycm9yTWVzc2FnZSB8fCBlLm1lc3NhZ2UgfHwgJ1NlcnZlciBlcnJvcic7XG4gICAgICBzaG93QWxlcnQoeyBtZXNzYWdlIH0pO1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocmVxdWVzdElkID09PSBxdW90ZVJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFF1b3RlKG9wdGlvbnM/OiB7IGltbWVkaWF0ZT86IGJvb2xlYW4gfSk6IFByb21pc2U8YW55IHwgbnVsbD4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcygpO1xuICAgIGNvbnN0IGNsZWFuZWRWYWx1ZXMgPSBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHModmFsdWVzKTtcbiAgICBpZiAoY2xpZW50U2lkZUVuYWJsZWQgJiYgcHJpY2luZ1J1bGVzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjbGllbnRKb2IgPSBhcHBseUNsaWVudFF1b3RlKGNsZWFuZWRWYWx1ZXMpO1xuICAgICAgICBpZiAoY2xpZW50Sm9iKSB7XG4gICAgICAgICAgc2NoZWR1bGVJbnZlbnRvcnlSZWZyZXNoKGNsZWFuZWRWYWx1ZXMpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY2xpZW50Sm9iKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBmYWxsIHRocm91Z2ggdG8gc2VydmVyIG9uIGFueSBjbGllbnQtY2FsYyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucz8uaW1tZWRpYXRlKSB7XG4gICAgICBpZiAoc2VydmVyUXVvdGVUaW1lci5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpO1xuICAgICAgICBzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWN1dGVTZXJ2ZXJRdW90ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHNlcnZlclF1b3RlVGltZXIuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgc2VydmVyUXVvdGVUaW1lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgcmVzb2x2ZShhd2FpdCBleGVjdXRlU2VydmVyUXVvdGUoKSk7XG4gICAgICB9LCBTRVJWRVJfUVVPVEVfREVCT1VOQ0VfTVMpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gV2hlbiBwcmljaW5nIHJ1bGVzIGFycml2ZSAoYXN5bmMgZmV0Y2gpLCByZS1xdW90ZSBzbyBBcmVhL290aGVyXG4gIC8vIGNsaWVudC1zaWRlIGNvc3RzIGFwcGx5IHdpdGhvdXQgcmVxdWlyaW5nIGFub3RoZXIgZmllbGQgZWRpdC5cbiAgY29uc3QgYXBwbGllZENsaWVudFJ1bGVzUmVmID0gUmVhY3QudXNlUmVmPGFueT4obnVsbCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjbGllbnRTaWRlRW5hYmxlZCB8fCAhcHJpY2luZ1J1bGVzIHx8IHByaWNpbmdSdWxlcy51bnN1cHBvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYXBwbGllZENsaWVudFJ1bGVzUmVmLmN1cnJlbnQgPT09IHByaWNpbmdSdWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhcHBsaWVkQ2xpZW50UnVsZXNSZWYuY3VycmVudCA9IHByaWNpbmdSdWxlcztcbiAgICBnZXRRdW90ZSgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2NsaWVudFNpZGVFbmFibGVkLCBwcmljaW5nUnVsZXNdKTtcblxuICBjb25zdCBbaXNEcmFmdE1vZGFsT3Blbiwgc2V0SXNEcmFmdE1vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc0RyYWZ0RGVzaWduZXJPcGVuLCBzZXRJc0RyYWZ0RGVzaWduZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgcGVuZGluZ0NoZWNrb3V0UmVmID0gUmVhY3QudXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQgPSAoKSA9PiB7XG4gICAgY29uc3QgcGVuZGluZyA9IHBlbmRpbmdDaGVja291dFJlZi5jdXJyZW50O1xuICAgIHBlbmRpbmdDaGVja291dFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICByZXR1cm4gcGVuZGluZztcbiAgfTtcblxuICBjb25zdCBydW5EcmFmdENoZWNrb3V0ID0gYXN5bmMgKFxuICAgIHByb2NlZWQ6IChqb2JEYXRhOiBhbnkpID0+IHZvaWQsXG4gICkgPT4ge1xuICAgIGlmICghKGF3YWl0IHZhbGlkYXRlRm9ybSgpKSkgcmV0dXJuO1xuICAgIGNvbnN0IHF1b3RlZCA9IGF3YWl0IGdldFF1b3RlKHsgaW1tZWRpYXRlOiB0cnVlIH0pO1xuICAgIGlmICghcXVvdGVkKSByZXR1cm47XG4gICAgY29uc3Qgam9iRGF0YSA9IGxpZnRJbmRlcGVuZGVudFZhcmlhdGlvbnNGcm9tR3JvdXBzKHF1b3RlZCwgcHJvZHVjdCk7XG5cbiAgICBpZiAoIXByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24oaW5pdFByb2R1Y3QpKSB7XG4gICAgICBwcm9jZWVkKGpvYkRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsb2FkQXJ0d29ya1BhdGgoaW5pdFByb2R1Y3QuaWQpID09PSAnc2VydmljZScpIHtcbiAgICAgIHByb2NlZWQoe1xuICAgICAgICAuLi5qb2JEYXRhLFxuICAgICAgICBvd25EcmFmdHM6IFtdLFxuICAgICAgICBjbGllbnRGaWxlczogW10sXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFmdHMgPSBsb2FkRHJhZnRzKGluaXRQcm9kdWN0LmlkKTtcbiAgICBjb25zdCBoYXNTYXZlZCA9IGRyYWZ0cy5zb21lKFxuICAgICAgKGRyYWZ0OiBEcmFmdFRlbXBsYXRlRGF0YSkgPT5cbiAgICAgICAgZHJhZnQucHJvZHVjdElkID09PSBpbml0UHJvZHVjdC5pZCAmJiBkcmFmdC50ZW1wbGF0ZURhdGE/Lmxlbmd0aFxuICAgICk7XG4gICAgaWYgKGhhc1NhdmVkKSB7XG4gICAgICBzZXREcmFmdEFwcHByb3ZlQ2FsbGJhY2soKCkgPT4gYXN5bmMgKGRyYWZ0Sm9iRGF0YTogYW55KSA9PiB7XG4gICAgICAgIHByb2NlZWQoZHJhZnRKb2JEYXRhIHx8IGpvYkRhdGEpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHNldElzRHJhZnRNb2RhbE9wZW4odHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvY2VlZChqb2JEYXRhKTtcbiAgfTtcblxuICBjb25zdCBhZGRUb0NhcnQgPSBvbkFkZFRvQ2FydFxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBpZiAoIWpvYkRhdGEucHJvZHVjdCkgam9iRGF0YS5wcm9kdWN0ID0geyBpZDogaW5pdFByb2R1Y3QuaWQgfTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25BZGRUb0NhcnQoeyAuLi5qb2JEYXRhLCB0YWdzIH0pO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBidXlOb3cgPSBvbkJ1eU5vd1xuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkJ1eU5vdyh7IC4uLmpvYkRhdGEgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldFN1Ym1pdFF1b3RlID0gb25HZXRRdW90ZVxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkdldFF1b3RlKHsgLi4uam9iRGF0YSB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXtcbiAgICAgICAge1xuICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICBhbGxvd0FkZFRvQ2FydCxcbiAgICAgICAgICBidG5OYW1lQWRkVG9DYXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uU3VibWl0LFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwUmVtb3ZlLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uQXBwcm92ZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVCdXR0b25DbG9zZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEN0YSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEdyb3VwQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdFNoZWV0LFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0VG9vbGJhcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlQnV0dG9uRG93bmxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRlbGV0ZSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUdyb3VwUHJpY2VDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW52ZW50b3J5U3RhdHVzLFxuICAgICAgICAgIGNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbnB1dCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25MYWJlbCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25TdXBlcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZSxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25Db2xvdXIsXG4gICAgICAgICAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUsXG4gICAgICAgICAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUb3RhbCxcbiAgICAgICAgICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVVuaXRQcmljZSxcbiAgICAgICAgICBjbGFzc05hbWVQcmljZU1hdHJpeCxcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICBkcmFmdEFwcHJvdmVDYWxsYmFjayxcbiAgICAgICAgICBnZXRRdW90ZSxcbiAgICAgICAgICBoY2FwdGNoYVNpdGVLZXksXG4gICAgICAgICAgcHJpY2luZ1J1bGVzLFxuICAgICAgICAgIGhpZGVDb3N0LFxuICAgICAgICAgIGhpZGVDb3VudHJ5LFxuICAgICAgICAgIGhpZGVDYWxjdWxhdGVkUHJpY2UsXG4gICAgICAgICAgaGlkZURvbWFpbk5hbWUsXG4gICAgICAgICAgaGlkZVF1YW50aXR5RmllbGQsXG4gICAgICAgICAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24sXG4gICAgICAgICAgaGlkZVBheW1lbnRVcGZyb250QnV0dG9uLFxuICAgICAgICAgIGhpZGVUaXRsZSxcbiAgICAgICAgICBob29rRm9ybSxcbiAgICAgICAgICBpc0NhcnRJdGVtLFxuICAgICAgICAgIGlzRHJhZnREZXNpZ25lck9wZW4sXG4gICAgICAgICAgaXNEcmFmdE1vZGFsT3BlbixcbiAgICAgICAgICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0LFxuICAgICAgICAgIGpvYixcbiAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgIGludmVudG9yeUxvYWRpbmcsXG4gICAgICAgICAgb25BZGRUb0NhcnQ6IGFkZFRvQ2FydCxcbiAgICAgICAgICBvbkJ1eU5vdzogYnV5Tm93LFxuICAgICAgICAgIG9uR2V0UXVvdGU6IGdldFN1Ym1pdFF1b3RlLFxuICAgICAgICAgIG9uU3VibWl0LFxuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgICAgcHJvZHVjdEZvcm1JZCxcbiAgICAgICAgICBzZXRDbGllbnQsXG4gICAgICAgICAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbixcbiAgICAgICAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuLFxuICAgICAgICAgIHNldEpvYixcbiAgICAgICAgICBzZXRMb2FkaW5nLFxuICAgICAgICAgIHNob3dBbGVydCxcbiAgICAgICAgICBzaG93Q3VycmVuY3ksXG4gICAgICAgICAgc2hvd0N1cnJlbmN5Q29kZSxcbiAgICAgICAgICBzaG93RmVhdHVyZURlYWRsaW5lLFxuICAgICAgICAgIHNob3dHcm91cEJ1eVN0YXR1cyxcbiAgICAgICAgICBzaG93UHJpY2VNYXRyaXgsXG4gICAgICAgICAgc2hvd1VuaXRQcmljZSxcbiAgICAgICAgfSBhcyBhbnlcbiAgICAgIH1cbiAgICA+XG4gICAgICB7cHJvZHVjdEZvcm1JZCA/IChcbiAgICAgICAgPGZvcm0gaWQ9e3Byb2R1Y3RGb3JtSWR9IG9uU3VibWl0PXtkb1N1Ym1pdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Zvcm0+XG4gICAgICApIDogY2hpbGRyZW59XG4gICAgICA8UHJvZHVjdERyYWZ0c0hvc3QgLz5cbiAgICA8L01lcmNoaVByb2R1Y3RGb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwi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
1031
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3JlZ2VuZXJhdG9yIiwibiIsInRvU3RyaW5nVGFnIiwiYyIsIkdlbmVyYXRvciIsInUiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsIiwiZG9uZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJuZXh0IiwiaXNBcnJheSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsInVzZUZvcm0iLCJmZXRjaEpvYlF1b3RlIiwicHJvZHVjdEhhc0dyb3VwcyIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduIiwiY2hlY2tvdXRDbGllbnRGaWxlcyIsImxvYWRBcnR3b3JrUGF0aCIsImxvYWREZXNpZ25NZXRob2QiLCJsb2FkRHJhZnRzIiwibG9hZFRlbXBsYXRlVXBsb2FkcyIsIlByb2R1Y3REcmFmdHNIb3N0IiwiYnVpbGRFbXB0eVZhcmlhdGlvbkZyb21GaWVsZCIsImNsZWFuSm9iVmFyaWF0aW9uc0FuZEdyb3VwcyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwicHJpY2luZyIsInRvU2VsZWN0aW9ucyIsInNjcm9sbFRvRmlyc3RGb3JtRXJyb3IiLCJidWlsZERlc2lyZWRWYXJpYXRpb25zRnJvbUZpZWxkcyIsInByb2R1Y3RGaWVsZHNGb3JQcmljaW5nRmllbGRzIiwicmVjb25jaWxlVmFyaWF0aW9ucyIsImdyb3VwRmllbGRUZW1wbGF0ZXMiLCJncm91cEZpZWxkVGVtcGxhdGVzRnJvbVByb2R1Y3QiLCJsaWZ0SW5kZXBlbmRlbnRWYXJpYXRpb25zRnJvbUdyb3VwcyIsInNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQiLCJhcGlVcmwiLCJhbGxvd0FkZFRvQ2FydCIsImJ0bk5hbWVBZGRUb0NhcnQiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVBbGVydFNlbGxlckVkaXRhYmxlIiwiY2xhc3NOYW1lQnV0dG9uU3VibWl0IiwiY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQiLCJjbGFzc05hbWVCdXR0b25Hcm91cFJlbW92ZSIsImNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIiLCJjbGFzc05hbWVCdXR0b25BcHByb3ZlRHJhZnRzIiwiY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHMiLCJjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0Q3RhIiwiY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSIsImNsYXNzTmFtZURyYWZ0U2hlZXQiLCJjbGFzc05hbWVEcmFmdFRvb2xiYXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZCIsImNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIiLCJjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbiIsImNsYXNzTmFtZUZpbGVVcGxvYWRJY29uIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEljb25TZWNvbmQiLCJjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVMaXN0SXRlbSIsImNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGUiLCJjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIiLCJjbGFzc05hbWVHcm91cHNDb250YWluZXIiLCJjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyIiwiY2xhc3NOYW1lSW5wdXQiLCJjbGFzc05hbWVJbnB1dENvbnRhaW5lciIsImNsYXNzTmFtZUludmVudG9yeVN0YXR1cyIsImNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbklucHV0IiwiY2xhc3NOYW1lT3B0aW9uTGFiZWwiLCJjbGFzc05hbWVPcHRpb25TdXBlciIsImNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyIiwiY2xhc3NOYW1lT3B0aW9uSW1hZ2UiLCJjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RPcmlnaW5UaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbCIsImNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIiLCJjbGFzc05hbWVVbml0UHJpY2UiLCJjbGFzc05hbWVQcmljZU1hdHJpeCIsImNvbnRyb2wiLCJjdXJyZW50VXNlciIsImRyYWZ0QXBwcm92ZUNhbGxiYWNrIiwiZ2V0UXVvdGUiLCJoY2FwdGNoYVNpdGVLZXkiLCJwcmljaW5nUnVsZXMiLCJoaWRlQ29zdCIsImhpZGVDb3VudHJ5IiwiaGlkZURvbWFpbk5hbWUiLCJoaWRlQ2FsY3VsYXRlZFByaWNlIiwiaGlkZVF1YW50aXR5RmllbGQiLCJoaWRlUmVxdWVzdFF1b3RhdGlvbkJ1dHRvbiIsImhpZGVQYXltZW50VXBmcm9udEJ1dHRvbiIsImhpZGVUaXRsZSIsImhvb2tGb3JtIiwiaXNDYXJ0SXRlbSIsImluaXRKb2IiLCJpc0RyYWZ0RGVzaWduZXJPcGVuIiwiaXNEcmFmdE1vZGFsT3BlbiIsImNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQiLCJqb2IiLCJsb2FkaW5nIiwiaW52ZW50b3J5TG9hZGluZyIsIm9uQWRkVG9DYXJ0Iiwib25CdXlOb3ciLCJvbkdldFF1b3RlIiwib25TdWJtaXQiLCJwcm9kdWN0IiwicHJvZHVjdEZvcm1JZCIsInNldENsaWVudCIsInNldElzRHJhZnREZXNpZ25lck9wZW4iLCJzZXRJc0RyYWZ0TW9kYWxPcGVuIiwic2V0Sm9iIiwic2V0TG9hZGluZyIsInNob3dBbGVydCIsImFsZXJ0Iiwic2hvd0N1cnJlbmN5Iiwic2hvd0N1cnJlbmN5Q29kZSIsInNob3dGZWF0dXJlRGVhZGxpbmUiLCJzaG93R3JvdXBCdXlTdGF0dXMiLCJzaG93UHJpY2VNYXRyaXgiLCJzaG93VW5pdFByaWNlIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyIiwiX3JlZiIsIl9yZWYkYXBpVXJsIiwiX3JlZiRjbGFzc05hbWVBbGVydFNlIiwiX3JlZiRjbGFzc05hbWVCdXR0b25TIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HMiIsIl9yZWYkY2xhc3NOYW1lQnV0dG9ucyIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQSIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQyIsIl9yZWYkY2xhc3NOYW1lRHJhZnRCdSIsIl9yZWYkY2xhc3NOYW1lRHJhZnRDdCIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHciIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHcjIiLCJfcmVmJGNsYXNzTmFtZURyYWZ0U2giLCJfcmVmJGNsYXNzTmFtZURyYWZ0VG8iLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwyIiwiX3JlZiRjbGFzc05hbWVGaWxlUHJlIiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsMyIsIl9yZWYkY2xhc3NOYW1lRmlsZVByZTIiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw0IiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsNSIsIl9yZWYkY2xhc3NOYW1lRmlsZVVwbDYiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw3IiwiX3JlZiRjbGFzc05hbWVGaWxlTGlzIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0IiwiY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0MiIsIl9yZWYkY2xhc3NOYW1lRmlsZUxpczIiLCJfcmVmJGNsYXNzTmFtZUdyb3Vwc0MiLCJfcmVmJGNsYXNzTmFtZUdyb3VwUHIiLCJfcmVmJGNsYXNzTmFtZUlucHV0IiwiX3JlZiRjbGFzc05hbWVJbnZlbnRvIiwiX3JlZiRjbGFzc05hbWVJbnB1dENvIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JIiwiX3JlZiRjbGFzc05hbWVPcHRpb25MIiwiX3JlZiRjbGFzc05hbWVPcHRpb25TIiwiX3JlZiRjbGFzc05hbWVPcHRpb25zIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JMiIsIl9yZWYkY2xhc3NOYW1lT3B0aW9uSTMiLCJfcmVmJGNsYXNzTmFtZU9wdGlvbkMyIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DMyIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdCIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdDIiLCJfcmVmJGNsYXNzTmFtZVByb2R1Y3QzIiwiX3JlZiRjbGFzc05hbWVQcm9kdWN0NCIsIl9yZWYkY2xhc3NOYW1lUXVhbnRpdCIsImNoaWxkcmVuIiwiX3JlZiRoaWRlQ291bnRyeSIsIl9yZWYkaGlkZURvbWFpbk5hbWUiLCJfcmVmJGhpZGVUaXRsZSIsImluaXRQcm9kdWN0IiwicHJpY2luZ1J1bGVzUHJvcCIsIl9yZWYkc2hvd1ByaWNlTWF0cml4IiwiZGVmYXVsdEpvYiIsImRlZmF1bHRWYWx1ZXMiLCJyZVZhbGlkYXRlTW9kZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJjbGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0RHJhZnRBcHBwcm92ZUNhbGxiYWNrIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNldEludmVudG9yeUxvYWRpbmciLCJnZXRWYWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJyZXNldCIsInRyaWdnZXIiLCJkb1N1Ym1pdCIsInZhbGlkYXRlRm9ybSIsIl9yZWYyIiwiX2NhbGxlZSIsInZhbGlkIiwiX2NvbnRleHQiLCJ0YWdzIiwiaW52ZW50b3J5UmVmcmVzaFRpbWVyIiwidXNlUmVmIiwic2VydmVyUXVvdGVUaW1lciIsInF1b3RlUmVxdWVzdElkIiwiU0VSVkVSX1FVT1RFX0RFQk9VTkNFX01TIiwiY2xpZW50U2lkZUVuYWJsZWQiLCJCb29sZWFuIiwiY2xpZW50U2lkZUNhbGN1bGF0aW9uIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImZldGNoZWRQcmljaW5nUnVsZXMiLCJzZXRGZXRjaGVkUHJpY2luZ1J1bGVzIiwidXNlRWZmZWN0IiwiaWQiLCJjYW5jZWxsZWQiLCJfY2FsbGVlMiIsImJhc2UiLCJyZXMiLCJydWxlcyIsIl90IiwiX2NvbnRleHQyIiwiZW5kc1dpdGgiLCJjb25jYXQiLCJmZXRjaCIsIm9rIiwianNvbiIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJ2YXJpYXRpb25zSGF2ZUZpZWxkTWV0YWRhdGEiLCJqb2JWYWx1ZXMiLCJjaGVjayIsInZhcmlhdGlvbnMiLCJldmVyeSIsInZhcmlhdGlvbiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsInZhcmlhdGlvbkZpZWxkIiwiZmllbGRUeXBlIiwidmFyaWF0aW9uc0dyb3VwcyIsImdyb3VwIiwiYXBwbHlPcHRpb25WaXNpYmlsaXR5IiwidmlzaWJsZU9wdGlvbklkcyIsInVuYXZhaWxhYmxlT3B0aW9uSWRzIiwiY2hhbmdlZCIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uIiwiaXNWaXNpYmxlIiwiaGFzIiwib3B0aW9uSWQiLCJhdmFpbGFibGUiLCJyZXNldEZvcm1QcmVzZXJ2aW5nU2Nyb2xsIiwidmFsdWVzIiwiaGFzV2luZG93Iiwid2luZG93Iiwic2Nyb2xsUGFyZW50IiwiZmluZFNjcm9sbFBhcmVudCIsInNjcm9sbFgiLCJzY3JvbGxZIiwicGFyZW50VG9wIiwic2Nyb2xsVG9wIiwicGFyZW50TGVmdCIsInNjcm9sbExlZnQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzY3JvbGxUbyIsImRvY3VtZW50IiwiYWN0aXZlIiwiYWN0aXZlRWxlbWVudCIsIm5vZGUiLCJib2R5Iiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiY2FuU2Nyb2xsWSIsIm92ZXJmbG93WSIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImdldEF0dHJpYnV0ZSIsInBhcmVudEVsZW1lbnQiLCJ2aWV3cG9ydCIsInF1ZXJ5U2VsZWN0b3IiLCJmb3JtUXVhbnRpdGllc01hdGNoUmVxdWVzdCIsImZvcm1WYWx1ZXMiLCJyZXF1ZXN0RGF0YSIsImdyb3VwcyIsImluZGV4IiwiX2Zvcm1WYWx1ZXMkdmFyaWF0aW9uIiwicXVhbnRpdHkiLCJhcHBseVNlcnZlclF1b3RlIiwic2VydmVySm9iIiwiY2xlYW5lZEZvcm1WYWx1ZXMiLCJpbmRlcGVuZGVudFJlY29uY2lsZSIsInZpc2liaWxpdHlDaGFuZ2VkIiwibWVyZ2VkSm9iIiwiY29zdCIsImNvc3RQZXJVbml0IiwidGF4QW1vdW50IiwidG90YWxDb3N0IiwiY3VycmVuY3kiLCJpbnZlbnRvcnlDb3VudCIsImludmVudG9yeVN1ZmZpY2llbnQiLCJtYXAiLCJzZXJ2ZXJHcm91cCIsImdyb3VwUmVjb25jaWxlIiwiZ3JvdXBDb3N0IiwibWF0Y2hpbmdJbnZlbnRvcmllcyIsIm1lcmdlSW52ZW50b3J5IiwicHJldiIsIm1lcmdlZCIsImciLCJzZyIsInNjaGVkdWxlSW52ZW50b3J5UmVmcmVzaCIsImNsZWFuZWRWYWx1ZXMiLCJuZWVkc0ludmVudG9yeSIsInNldFRpbWVvdXQiLCJfY2FsbGVlMyIsImRhdGEiLCJfdDIiLCJfY29udGV4dDMiLCJ0b0pzb24iLCJhcHBseUNsaWVudFF1b3RlIiwic2VsZWN0aW9ucyIsInJlc3VsdCIsImVzdGltYXRlUXVvdGUiLCJpbmRlcGVuZGVudFNjb3BlIiwiZmllbGRWYWx1ZXMiLCJpbmRlcGVuZGVudFZpc2libGVGaWVsZHMiLCJyZXNvbHZlVmlzaWJsZUZpZWxkcyIsImluZGVwZW5kZW50RmllbGRUZW1wbGF0ZXMiLCJmaWVsZHMiLCJkZXNpcmVkSW5kZXBlbmRlbnQiLCJpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyIsImluZGVwZW5kZW50VmlzaWJsZSIsInJlc29sdmVWaXNpYmxlT3B0aW9uSWRzIiwiaW5kZXBlbmRlbnRVbmF2YWlsYWJsZSIsInJlc29sdmVVbmF2YWlsYWJsZU9wdGlvbklkcyIsImhhc0dyb3VwcyIsIl9yZXN1bHQkZ3JvdXBDb3N0cyRpIiwiZ3JvdXBDb3N0cyIsImdyb3VwU2NvcGUiLCJncm91cFZpc2libGVGaWVsZHMiLCJncm91cEZpZWxkcyIsImRlc2lyZWRHcm91cCIsImdyb3VwVmlzaWJsZSIsImdyb3VwVW5hdmFpbGFibGUiLCJuZXh0Sm9iIiwiZXhlY3V0ZVNlcnZlclF1b3RlIiwiX2V4ZWN1dGVTZXJ2ZXJRdW90ZSIsIl9jYWxsZWUwIiwicmVxdWVzdElkIiwiY3VycmVudFZhbHVlcyIsIl9hcHBseVNlcnZlclF1b3RlIiwibWVzc2FnZSIsIl90NCIsIl9jb250ZXh0MCIsImVycm9yTWVzc2FnZSIsImNvbnNvbGUiLCJlcnJvciIsIm9wdGlvbnMiLCJjbGllbnRKb2IiLCJpbW1lZGlhdGUiLCJfY2FsbGVlNCIsIl90MyIsIl9jb250ZXh0NCIsImFwcGxpZWRDbGllbnRSdWxlc1JlZiIsInVuc3VwcG9ydGVkIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJwZW5kaW5nQ2hlY2tvdXRSZWYiLCJwZW5kaW5nIiwicnVuRHJhZnRDaGVja291dCIsIl9yZWY2IiwiX2NhbGxlZTYiLCJwcm9jZWVkIiwicXVvdGVkIiwiam9iRGF0YSIsInVwbG9hZEpvYiIsImRyYWZ0cyIsImhhc1NhdmVkIiwiX2NvbnRleHQ2Iiwib3duRHJhZnRzIiwiY2xpZW50RmlsZXMiLCJzb21lIiwiZHJhZnQiLCJfZHJhZnQkdGVtcGxhdGVEYXRhIiwicHJvZHVjdElkIiwidGVtcGxhdGVEYXRhIiwiX3JlZjciLCJfY2FsbGVlNSIsImRyYWZ0Sm9iRGF0YSIsIl9jb250ZXh0NSIsIl94MiIsIl94IiwiYWRkVG9DYXJ0IiwiX2NhbGxlZTciLCJfY29udGV4dDciLCJidXlOb3ciLCJfY2FsbGVlOCIsIl9jb250ZXh0OCIsImdldFN1Ym1pdFF1b3RlIiwiX2NhbGxlZTkiLCJfY29udGV4dDkiLCJQcm92aWRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIFJlYWN0Tm9kZSwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGZldGNoSm9iUXVvdGUgfSBmcm9tICcuLi9hY3Rpb25zL2pvYnMnO1xuaW1wb3J0IHsgcHJvZHVjdEhhc0dyb3VwcyB9IGZyb20gJy4uL3V0aWxzL3Byb2R1Y3RzJztcbmltcG9ydCB7IGdldE1lcmNoaVNvdXJjZUpvYlRhZ3MgfSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IERyYWZ0VGVtcGxhdGVEYXRhIH0gZnJvbSAnLi4vdXRpbHMvdHlwZXMnO1xuaW1wb3J0IHsgcHJvZHVjdEFsbG93c0NsaWVudERlc2lnbiB9IGZyb20gJy4uL3V0aWxzL2RyYWZ0VGVtcGxhdGVzJztcbmltcG9ydCB7XG4gIGNoZWNrb3V0Q2xpZW50RmlsZXMsXG4gIGxvYWRBcnR3b3JrUGF0aCxcbiAgbG9hZERlc2lnbk1ldGhvZCxcbiAgbG9hZERyYWZ0cyxcbiAgbG9hZFRlbXBsYXRlVXBsb2Fkcyxcbn0gZnJvbSAnLi4vdXRpbHMvZHJhZnRTdG9yYWdlJztcbmltcG9ydCBQcm9kdWN0RHJhZnRzSG9zdCBmcm9tICcuLi9jb21wb25lbnRzL2RyYWZ0cy9Qcm9kdWN0RHJhZnRzSG9zdCc7XG5pbXBvcnQge1xuICBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkLFxuICBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMsXG4gIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IHByaWNpbmcgfSBmcm9tICdAbWVyY2hpL3Nkayc7XG5pbXBvcnQgeyB0b1NlbGVjdGlvbnMgfSBmcm9tICcuLi91dGlscy9zZWxlY3Rpb25zJztcbmltcG9ydCB7IHNjcm9sbFRvRmlyc3RGb3JtRXJyb3IgfSBmcm9tICcuLi91dGlscy9mb3JtRXJyb3JzJztcbmltcG9ydCB7XG4gIGJ1aWxkRGVzaXJlZFZhcmlhdGlvbnNGcm9tRmllbGRzLFxuICBwcm9kdWN0RmllbGRzRm9yUHJpY2luZ0ZpZWxkcyxcbiAgcmVjb25jaWxlVmFyaWF0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMvcmVjb25jaWxlVmFyaWF0aW9ucyc7XG5pbXBvcnQge1xuICBncm91cEZpZWxkVGVtcGxhdGVzIGFzIGdyb3VwRmllbGRUZW1wbGF0ZXNGcm9tUHJvZHVjdCxcbiAgbGlmdEluZGVwZW5kZW50VmFyaWF0aW9uc0Zyb21Hcm91cHMsXG4gIHNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyxcbn0gZnJvbSAnLi4vdXRpbHMvdmFyaWF0aW9uRmllbGRzJztcbnR5cGUgRm9ybU1ldGhvZHMgPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VGb3JtPjtcblxuaW50ZXJmYWNlIElNZXJjaGlQcm9kdWN0Rm9ybSB7XG4gIGFwaVVybD86IHN0cmluZztcbiAgYWxsb3dBZGRUb0NhcnQ/OiBib29sZWFuO1xuICBidG5OYW1lQWRkVG9DYXJ0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVBbGVydFNlbGxlckVkaXRhYmxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25TdWJtaXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkPzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25Hcm91cFJlbW92ZT86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uc1N1Ym1pdENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uQXBwcm92ZURyYWZ0cz86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0QnV0dG9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdEN0YT86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRHcm91cFRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdFNoZWV0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdFRvb2xiYXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkVGV4dENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlQnV0dG9uRG93bmxvYWQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVJbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lSW5wdXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cz86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25JbnB1dD86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvblN1cGVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25Db2xvdXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRpdGxlPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsPzogc3RyaW5nO1xuICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVVbml0UHJpY2U/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByaWNlTWF0cml4Pzogc3RyaW5nO1xuICBjb250cm9sOiBhbnk7XG4gIGN1cnJlbnRVc2VyPzogYW55O1xuICBkcmFmdEFwcHJvdmVDYWxsYmFjazogKChqb2I6IGFueSkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsO1xuICBnZXRRdW90ZTogYW55O1xuICBoY2FwdGNoYVNpdGVLZXk/OiBzdHJpbmc7XG4gIHByaWNpbmdSdWxlcz86IGFueTtcbiAgaGlkZUNvc3Q/OiBib29sZWFuO1xuICBoaWRlQ291bnRyeT86IGJvb2xlYW47XG4gIGhpZGVDYWxjdWxhdGVkUHJpY2U/OiBib29sZWFuO1xuICBoaWRlRG9tYWluTmFtZT86IGJvb2xlYW47XG4gIGhpZGVRdWFudGl0eUZpZWxkPzogYm9vbGVhbjtcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24/OiBib29sZWFuO1xuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24/OiBib29sZWFuO1xuICBoaWRlVGl0bGU/OiBib29sZWFuO1xuICBob29rRm9ybTogRm9ybU1ldGhvZHM7XG4gIGlzQ2FydEl0ZW0/OiBib29sZWFuO1xuICBpbml0Sm9iPzogYW55O1xuICBpc0RyYWZ0RGVzaWduZXJPcGVuOiBib29sZWFuO1xuICBpc0RyYWZ0TW9kYWxPcGVuOiBib29sZWFuO1xuICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0PzogKCkgPT4gKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgam9iOiBhbnk7XG4gIGxvYWRpbmc6IGJvb2xlYW47XG4gIGludmVudG9yeUxvYWRpbmc/OiBib29sZWFuO1xuICBvbkFkZFRvQ2FydD86ICgpID0+IHZvaWQ7XG4gIG9uQnV5Tm93PzogKCkgPT4gdm9pZDtcbiAgb25HZXRRdW90ZT86ICgpID0+IHZvaWQ7XG4gIG9uU3VibWl0PzogKGpvYkRhdGE6IGFueSkgPT4gdm9pZDtcbiAgcHJvZHVjdDogYW55O1xuICBwcm9kdWN0Rm9ybUlkPzogc3RyaW5nO1xuICBzZXRDbGllbnQ6IChjbGllbnQ6IGFueSkgPT4gdm9pZDtcbiAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2V0SXNEcmFmdE1vZGFsT3BlbjogKGlzT3BlbjogYm9vbGVhbikgPT4gdm9pZDtcbiAgc2V0Sm9iOiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIHNldExvYWRpbmc6IChsb2FkaW5nOiBib29sZWFuKSA9PiB2b2lkO1xuICBzaG93QWxlcnQ6IChhbGVydDogYW55KSA9PiB2b2lkO1xuICBzaG93Q3VycmVuY3k/OiBib29sZWFuO1xuICBzaG93Q3VycmVuY3lDb2RlPzogYm9vbGVhbjtcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XG4gIHNob3dHcm91cEJ1eVN0YXR1cz86IGJvb2xlYW47XG4gIHNob3dQcmljZU1hdHJpeD86IGJvb2xlYW47XG4gIHNob3dVbml0UHJpY2U/OiBib29sZWFuO1xufVxuXG5jb25zdCBNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQgPSBjcmVhdGVDb250ZXh0PElNZXJjaGlQcm9kdWN0Rm9ybT4oe1xuICBhcGlVcmw6ICcnLFxuICBhbGxvd0FkZFRvQ2FydDogZmFsc2UsXG4gIGJ0bk5hbWVBZGRUb0NhcnQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQWxlcnRTZWxsZXJFZGl0YWJsZTogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVCdXR0b25TdWJtaXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lQnV0dG9uc1N1Ym1pdENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVCdXR0b25BcHByb3ZlRHJhZnRzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUJ1dHRvbkNsb3NlRHJhZnRzOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0QnV0dG9uQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0Q3RhOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRHJhZnRHcm91cFRpdGxlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZURyYWZ0U2hlZXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkVGV4dENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRCdXR0b246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb246IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25TZWNvbmQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUlucHV0OiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1czogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW5wdXQ6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWw6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uU3VwZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uSW1hZ2VDb250YWluZXI6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUHJvZHVjdE9yaWdpblRpdGxlOiB1bmRlZmluZWQsXG4gIGNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVQcm9kdWN0VG90YWw6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lcjogdW5kZWZpbmVkLFxuICBjbGFzc05hbWVVbml0UHJpY2U6IHVuZGVmaW5lZCxcbiAgY2xhc3NOYW1lUHJpY2VNYXRyaXg6IHVuZGVmaW5lZCxcbiAgY29udHJvbDoge30sXG4gIGN1cnJlbnRVc2VyOiB7fSxcbiAgZHJhZnRBcHByb3ZlQ2FsbGJhY2s6IG51bGwsXG4gIGdldFF1b3RlKCkgeyB9LFxuICBoY2FwdGNoYVNpdGVLZXk6IHVuZGVmaW5lZCxcbiAgcHJpY2luZ1J1bGVzOiB1bmRlZmluZWQsXG4gIGhpZGVDb3N0OiBmYWxzZSxcbiAgaGlkZUNvdW50cnk6IGZhbHNlLFxuICBoaWRlRG9tYWluTmFtZTogZmFsc2UsXG4gIGhpZGVDYWxjdWxhdGVkUHJpY2U6IGZhbHNlLFxuICBoaWRlUXVhbnRpdHlGaWVsZDogZmFsc2UsXG4gIGhpZGVSZXF1ZXN0UXVvdGF0aW9uQnV0dG9uOiBmYWxzZSxcbiAgaGlkZVBheW1lbnRVcGZyb250QnV0dG9uOiBmYWxzZSxcbiAgaGlkZVRpdGxlOiBmYWxzZSxcbiAgaG9va0Zvcm06IHt9IGFzIGFueSxcbiAgaXNDYXJ0SXRlbTogZmFsc2UsXG4gIGluaXRKb2I6IHVuZGVmaW5lZCxcbiAgaXNEcmFmdERlc2lnbmVyT3BlbjogZmFsc2UsXG4gIGlzRHJhZnRNb2RhbE9wZW46IGZhbHNlLFxuICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0KCkgeyByZXR1cm4gbnVsbDsgfSxcbiAgam9iOiB7fSxcbiAgbG9hZGluZzogZmFsc2UsXG4gIGludmVudG9yeUxvYWRpbmc6IGZhbHNlLFxuICBvbkFkZFRvQ2FydCgpIHsgfSxcbiAgb25CdXlOb3coKSB7IH0sXG4gIG9uR2V0UXVvdGUoKSB7IH0sXG4gIG9uU3VibWl0KCkgeyB9LFxuICBwcm9kdWN0OiB7fSxcbiAgcHJvZHVjdEZvcm1JZDogdW5kZWZpbmVkLFxuICBzZXRDbGllbnQoKSB7IH0sXG4gIHNldElzRHJhZnREZXNpZ25lck9wZW4oKSB7IH0sXG4gIHNldElzRHJhZnRNb2RhbE9wZW4oKSB7IH0sXG4gIHNldEpvYihqb2IpIHsgfSxcbiAgc2V0TG9hZGluZyhsb2FkaW5nKSB7IH0sXG4gIHNob3dBbGVydChhbGVydCkgeyB9LFxuICBzaG93Q3VycmVuY3k6IGZhbHNlLFxuICBzaG93Q3VycmVuY3lDb2RlOiBmYWxzZSxcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZTogZmFsc2UsXG4gIHNob3dHcm91cEJ1eVN0YXR1czogZmFsc2UsXG4gIHNob3dQcmljZU1hdHJpeDogdHJ1ZSxcbiAgc2hvd1VuaXRQcmljZTogZmFsc2UsXG59KTtcblxuZXhwb3J0IGNvbnN0IHVzZU1lcmNoaUZvcm1Db250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQpO1xuXG5leHBvcnQgY29uc3QgTWVyY2hpUHJvZHVjdEZvcm1Qcm92aWRlciA9ICh7XG4gIGFwaVVybCA9ICdodHRwczovL2FwaS5tZXJjaGkuY28vdjYvJyxcbiAgYWxsb3dBZGRUb0NhcnQsXG4gIGJ0bk5hbWVBZGRUb0NhcnQsXG4gIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUgPSAnYWxlcnQgYWxlcnQtbGlnaHQnLFxuICBjbGFzc05hbWVCdXR0b25TdWJtaXQgPSAnYnRuIGJ0bi1wcmltYXJ5IG1lcmNoaS1lbWJlZC1mb3JtX2J1dHRvbi1zdWJtaXQnLFxuICBjbGFzc05hbWVCdXR0b25Hcm91cEFkZCA9ICdidG4gYnRuLXdoaXRlJyxcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmUgPSAnYnRuIGJ0bi1kYW5nZXInLFxuICBjbGFzc05hbWVCdXR0b25zU3VibWl0Q29udGFpbmVyID0gJ21lcmNoaS1wcm9kdWN0LWJ1dHRvbnMtc3VibWl0LWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUJ1dHRvbkFwcHJvdmVEcmFmdHMgPSAnYnRuIGJ0bi1zdWNjZXNzJyxcbiAgY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHMgPSAnYnRuIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lciA9ICdtZXJjaGktcHJvZHVjdC1kcmFmdC1idXR0b24tY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lRHJhZnRDdGEgPSAnbWVyY2hpLXByb2R1Y3QtZHJhZnQtY3RhJyxcbiAgY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciA9ICdtZXJjaGktcHJvZHVjdC1kcmFmdC1ncm91cC1jb250YWluZXInLFxuICBjbGFzc05hbWVEcmFmdEdyb3VwVGl0bGUgPSAnbWVyY2hpLXByb2R1Y3QtZHJhZnQtZ3JvdXAtdGl0bGUnLFxuICBjbGFzc05hbWVEcmFmdFNoZWV0ID0gJ21lcmNoaS1wcm9kdWN0LWRyYWZ0LXNoZWV0JyxcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyID0gJ21lcmNoaS1wcm9kdWN0LWRyYWZ0LXRvb2xiYXInLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyID0gJ21lcmNoaS1pbnB1dC1maWxlLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWQgPSAnbWVyY2hpLWVtYmVkLWZvcm1fZHJvcHpvbmUnLFxuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lciA9ICd1cGxvYWRlZC12YXJpYXRpb24tZmlsZScsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRUZXh0Q29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLXRleHQtY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlciA9ICd1cGxvYWRlZC12YXJpYXRpb24tZmlsZS1pY29uLXdyYXBwZXInLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uID0gJ2J0biBidG4tc20gYnRuLWxpbmsgbWwtYXV0bycsXG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uID0gJ21lcmNoaS1lbWJlZC1mb3JtX2Ryb3B6b25lLWljb24nLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZCA9ICdtZXJjaGktZW1iZWQtZm9ybV9kcm9wem9uZS1pY29uLXBsdXMnLFxuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9kcm9wem9uZS1pY29uLWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSA9ICdsaXN0LWdyb3VwLWl0ZW0gbm8tei1pbmRleC1ob3ZlcicsXG4gIGNsYXNzTmFtZUZpbGVCdXR0b25Eb3dubG9hZCA9ICdidG4gYnRuLXNtIGJ0bi1zZWNvbmRhcnknLFxuICBjbGFzc05hbWVGaWxlQnV0dG9uRGVsZXRlID0gJ2J0biBidG4tc20gYnRuLWRhbmdlciBtbC0yJyxcbiAgY2xhc3NOYW1lRmlsZUxpc3RJdGVtQ29udGFpbmVyID0gJ2xpc3QtZ3JvdXAnLFxuICBjbGFzc05hbWVHcm91cHNDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC1jb250YWluZXInLFxuICBjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX3Byb2R1Y3QtZ3JvdXAtdG90YWwtY29zdCcsXG4gIGNsYXNzTmFtZUlucHV0ID0gJ2Zvcm0tY29udHJvbCcsXG4gIGNsYXNzTmFtZUludmVudG9yeVN0YXR1cyA9ICdmbGV4LWZpbGwnLFxuICBjbGFzc05hbWVJbnB1dENvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLWlucHV0LXF0eS1jb250YWluZXInLFxuICBjbGFzc05hbWVPcHRpb25Db250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY2hlY2tib3hfcmFkaW8taXRlbScsXG4gIGNsYXNzTmFtZU9wdGlvbklucHV0ID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NoZWNrYm94X3JhZGlvLWlucHV0JyxcbiAgY2xhc3NOYW1lT3B0aW9uTGFiZWwgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY2hlY2tib3hfcmFkaW8tbGFiZWwnLFxuICBjbGFzc05hbWVPcHRpb25TdXBlciA9ICdtZXJjaGktZW1iZWQtZm9ybV9jaGVja2JveF9yYWRpby1zdXBlcicsXG4gIGNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyID0gJycsXG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlID0gJ21lcmNoaS1lbWJlZC1mb3JtX2ltYWdlLXNlbGVjdC1vcHRpb24taXRlbS1pbWcnLFxuICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lciA9ICdtZXJjaGktZW1iZWQtZm9ybV9pbWFnZS1zZWxlY3Qtb3B0aW9uLWl0ZW0tY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyID0gJ21lcmNoaS1lbWJlZC1mb3JtX2NvbG9yLXNlbGVjdC1vcHRpb24nLFxuICBjbGFzc05hbWVPcHRpb25Db2xvdXJDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fY29sb3Itc2VsZWN0LWl0ZW0nLFxuICBjbGFzc05hbWVQcm9kdWN0VGl0bGUgPSAnbWVyY2hpLXByb2R1Y3QtdGl0bGUnLFxuICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUgPSAnbWVyY2hpLXByb2R1Y3Qtb3JpZ2luLXRpdGxlJyxcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsID0gJ21lcmNoaS1lbWJlZC1mb3JtX3N1bW1hcnktcHJvZHVjdC1jb3N0JyxcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyID0gJ21lcmNoaS1lbWJlZC1mb3JtX3N1bW1hcnktcHJvZHVjdC1jb3N0LWNvbnRhaW5lcicsXG4gIGNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIgPSAnbWVyY2hpLWVtYmVkLWZvcm1fcXVhbnRpdHktbGFiZWwtY29udGFpbmVyJyxcbiAgY2xhc3NOYW1lVW5pdFByaWNlLFxuICBjbGFzc05hbWVQcmljZU1hdHJpeCxcbiAgY2hpbGRyZW4sXG4gIGN1cnJlbnRVc2VyLFxuICBoY2FwdGNoYVNpdGVLZXksXG4gIGhpZGVDb3N0LFxuICBoaWRlQ291bnRyeSA9IGZhbHNlLFxuICBoaWRlQ2FsY3VsYXRlZFByaWNlLFxuICBoaWRlRG9tYWluTmFtZSA9IGZhbHNlLFxuICBoaWRlUXVhbnRpdHlGaWVsZCxcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24sXG4gIGhpZGVQYXltZW50VXBmcm9udEJ1dHRvbixcbiAgaGlkZVRpdGxlID0gZmFsc2UsXG4gIGlzQ2FydEl0ZW0sXG4gIGluaXRKb2IsXG4gIGluaXRQcm9kdWN0LFxuICBwcmljaW5nUnVsZXM6IHByaWNpbmdSdWxlc1Byb3AsXG4gIG9uQWRkVG9DYXJ0LFxuICBvbkJ1eU5vdyxcbiAgb25HZXRRdW90ZSxcbiAgb25TdWJtaXQsXG4gIHByb2R1Y3RGb3JtSWQsXG4gIHNob3dDdXJyZW5jeSxcbiAgc2hvd0N1cnJlbmN5Q29kZSxcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZSxcbiAgc2hvd0dyb3VwQnV5U3RhdHVzLFxuICBzaG93UHJpY2VNYXRyaXggPSB0cnVlLFxuICBzaG93VW5pdFByaWNlLFxufToge1xuICBhcGlVcmw/OiBzdHJpbmc7XG4gIGFsbG93QWRkVG9DYXJ0PzogYm9vbGVhbjtcbiAgYnRuTmFtZUFkZFRvQ2FydD86IHN0cmluZztcbiAgY2xhc3NOYW1lQWxlcnRTZWxsZXJFZGl0YWJsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uU3VibWl0Pzogc3RyaW5nO1xuICBjbGFzc05hbWVCdXR0b25Hcm91cEFkZD86IHN0cmluZztcbiAgY2xhc3NOYW1lQnV0dG9uR3JvdXBSZW1vdmU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkFwcHJvdmVEcmFmdHM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUJ1dHRvbkNsb3NlRHJhZnRzPzogc3RyaW5nO1xuICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRDdGE/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRTaGVldD86IHN0cmluZztcbiAgY2xhc3NOYW1lRHJhZnRUb29sYmFyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlUHJldmlld0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVQcmV2aWV3SWNvbldyYXBwZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRCdXR0b24/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlVXBsb2FkSWNvblNlY29uZD86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZVVwbG9hZEljb25Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUZpbGVMaXN0SXRlbT86IHN0cmluZztcbiAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlQnV0dG9uRGVsZXRlPzogc3RyaW5nO1xuICBjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lR3JvdXBQcmljZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZUlucHV0Q29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVJbnZlbnRvcnlTdGF0dXM/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uSW5wdXQ/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25TdXBlcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uc0NoZWNrYm94UmFkaW9Db250YWluZXI/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkltYWdlPzogc3RyaW5nO1xuICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0VGl0bGU/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZVByb2R1Y3RPcmlnaW5UaXRsZT86IHN0cmluZztcbiAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcm9kdWN0VG90YWw/OiBzdHJpbmc7XG4gIGNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lUXVhbnRpdHlMYWJlbENvbnRhaW5lcj86IHN0cmluZztcbiAgY2xhc3NOYW1lVW5pdFByaWNlPzogc3RyaW5nO1xuICBjbGFzc05hbWVQcmljZU1hdHJpeD86IHN0cmluZztcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY3VycmVudFVzZXI/OiBhbnk7XG4gIGhjYXB0Y2hhU2l0ZUtleT86IHN0cmluZztcbiAgaGlkZUNhbGN1bGF0ZWRQcmljZT86IGJvb2xlYW47XG4gIGhpZGVDb3N0PzogYm9vbGVhbjtcbiAgaGlkZUNvdW50cnk/OiBib29sZWFuO1xuICBoaWRlRG9tYWluTmFtZT86IGJvb2xlYW47XG4gIGhpZGVRdWFudGl0eUZpZWxkPzogYm9vbGVhbjtcbiAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24/OiBib29sZWFuO1xuICBoaWRlUGF5bWVudFVwZnJvbnRCdXR0b24/OiBib29sZWFuO1xuICBoaWRlVGl0bGU/OiBib29sZWFuO1xuICBpc0NhcnRJdGVtPzogYm9vbGVhbjtcbiAgaW5pdEpvYj86IGFueTtcbiAgaW5pdFByb2R1Y3Q6IGFueTtcbiAgcHJpY2luZ1J1bGVzPzogYW55O1xuICBvbkFkZFRvQ2FydD86IChqb2I6IGFueSkgPT4gdm9pZDtcbiAgb25CdXlOb3c/OiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIG9uR2V0UXVvdGU/OiAoam9iOiBhbnkpID0+IHZvaWQ7XG4gIG9uU3VibWl0PzogKGpvYjogYW55KSA9PiB2b2lkO1xuICBwcm9kdWN0Rm9ybUlkPzogc3RyaW5nO1xuICBzaG93Q3VycmVuY3k/OiBib29sZWFuO1xuICBzaG93Q3VycmVuY3lDb2RlPzogYm9vbGVhbjtcbiAgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XG4gIHNob3dHcm91cEJ1eVN0YXR1cz86IGJvb2xlYW47XG4gIHNob3dQcmljZU1hdHJpeD86IGJvb2xlYW47XG4gIHNob3dVbml0UHJpY2U/OiBib29sZWFuO1xufSkgPT4ge1xuICBjb25zdCBwcm9kdWN0ID0gc2FuaXRpemVQcm9kdWN0VmFyaWF0aW9uRmllbGRzKGluaXRQcm9kdWN0KTtcbiAgY29uc3QgZGVmYXVsdEpvYiA9IGxpZnRJbmRlcGVuZGVudFZhcmlhdGlvbnNGcm9tR3JvdXBzKFxuICAgIGluaXRKb2IgfHwgcHJvZHVjdC5kZWZhdWx0Sm9iIHx8IHt9LFxuICAgIHByb2R1Y3RcbiAgKTtcbiAgY29uc3QgaG9va0Zvcm0gPSB1c2VGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiBkZWZhdWx0Sm9iLFxuICAgIC8vIFJlLWNoZWNrIHJ1bGVzIGFzIHRoZSB1c2VyIGVkaXRzIGFmdGVyIHRoZSBmaXJzdCB2YWxpZGF0aW9uIGF0dGVtcHQuXG4gICAgcmVWYWxpZGF0ZU1vZGU6ICdvbkNoYW5nZScsXG4gIH0pO1xuICBjb25zdCBbY2xpZW50LCBzZXRDbGllbnRdID0gdXNlU3RhdGUoY3VycmVudFVzZXIpO1xuICBjb25zdCBbYWxlcnQsIHNob3dBbGVydF0gPSB1c2VTdGF0ZSgobnVsbCBhcyBhbnkpKTtcbiAgY29uc3QgW2RyYWZ0QXBwcm92ZUNhbGxiYWNrLCBzZXREcmFmdEFwcHByb3ZlQ2FsbGJhY2tdID0gdXNlU3RhdGU8KChqb2I6IGFueSkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsPihudWxsKTtcbiAgY29uc3QgW2pvYiwgc2V0Sm9iXSA9IHVzZVN0YXRlPGFueT4oZGVmYXVsdEpvYik7XG4gIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ludmVudG9yeUxvYWRpbmcsIHNldEludmVudG9yeUxvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCB7IGNvbnRyb2wsIGdldFZhbHVlcywgaGFuZGxlU3VibWl0LCByZXNldCwgdHJpZ2dlciB9ID0gaG9va0Zvcm07XG4gIGNvbnN0IGRvU3VibWl0ID0gb25TdWJtaXRcbiAgICA/IGhhbmRsZVN1Ym1pdChvblN1Ym1pdCwgKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0ZpcnN0Rm9ybUVycm9yKCk7XG4gICAgICB9KVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIC8qKiBSdW4gZmllbGQgcnVsZXMgKGluY2x1ZGluZyBNT1EpIGJlZm9yZSBidXkgLyBjYXJ0IC8gcXVvdGUgYWN0aW9ucy4gKi9cbiAgY29uc3QgdmFsaWRhdGVGb3JtID0gYXN5bmMgKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZhbGlkID0gYXdhaXQgdHJpZ2dlcigpO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHNjcm9sbFRvRmlyc3RGb3JtRXJyb3IoKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkO1xuICB9O1xuXG4gIGNvbnN0IHRhZ3MgPSBnZXRNZXJjaGlTb3VyY2VKb2JUYWdzKCk7XG5cbiAgY29uc3QgaW52ZW50b3J5UmVmcmVzaFRpbWVyID0gUmVhY3QudXNlUmVmPGFueT4obnVsbCk7XG4gIGNvbnN0IHNlcnZlclF1b3RlVGltZXIgPSBSZWFjdC51c2VSZWY8YW55PihudWxsKTtcbiAgY29uc3QgcXVvdGVSZXF1ZXN0SWQgPSBSZWFjdC51c2VSZWYoMCk7XG4gIGNvbnN0IFNFUlZFUl9RVU9URV9ERUJPVU5DRV9NUyA9IDEwMDA7XG5cbiAgLy8gQ2xpZW50LXNpZGUgcXVvdGluZyBpcyBkcml2ZW4gc29sZWx5IGJ5IHRoZSBwcm9kdWN0J3MgY2xpZW50U2lkZUNhbGN1bGF0aW9uXG4gIC8vIGF0dHJpYnV0ZSAoc2V0IGJ5IHRoZSBtYW5hZ2VyKS4gSXQgaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGguXG4gIGNvbnN0IGNsaWVudFNpZGVFbmFibGVkID0gQm9vbGVhbihpbml0UHJvZHVjdD8uY2xpZW50U2lkZUNhbGN1bGF0aW9uKTtcblxuICAvLyBGZXRjaCBwcmljaW5nLXJ1bGVzIGZvciBjbGllbnQtc2lkZSBxdW90aW5nIGFuZCB0aGUgYnVsayBwcmljZSB0YWJsZS5cbiAgLy8gQSBgcHJpY2luZ1J1bGVzYCBwcm9wLCBpZiBzdXBwbGllZCwgb3ZlcnJpZGVzIHRoZSBmZXRjaC5cbiAgY29uc3QgW2ZldGNoZWRQcmljaW5nUnVsZXMsIHNldEZldGNoZWRQcmljaW5nUnVsZXNdID0gdXNlU3RhdGU8YW55PihudWxsKTtcbiAgY29uc3QgcHJpY2luZ1J1bGVzID0gcHJpY2luZ1J1bGVzUHJvcCB8fCBmZXRjaGVkUHJpY2luZ1J1bGVzO1xuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKFxuICAgICAgKCFjbGllbnRTaWRlRW5hYmxlZCAmJiAhc2hvd1ByaWNlTWF0cml4KSB8fFxuICAgICAgcHJpY2luZ1J1bGVzUHJvcCB8fFxuICAgICAgIWluaXRQcm9kdWN0Py5pZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgKGFzeW5jICgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGJhc2UgPSBhcGlVcmwuZW5kc1dpdGgoJy8nKSA/IGFwaVVybCA6IGAke2FwaVVybH0vYDtcbiAgICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goYCR7YmFzZX1wcm9kdWN0cy8ke2luaXRQcm9kdWN0LmlkfS9wcmljaW5nLXJ1bGVzL2ApO1xuICAgICAgICBpZiAoIXJlcy5vaykgcmV0dXJuO1xuICAgICAgICBjb25zdCBydWxlcyA9IGF3YWl0IHJlcy5qc29uKCk7XG4gICAgICAgIGlmICghY2FuY2VsbGVkKSBzZXRGZXRjaGVkUHJpY2luZ1J1bGVzKHJ1bGVzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQmVzdC1lZmZvcnQ6IGZvcm0gZmFsbHMgYmFjayB0byBzZXJ2ZXItc2lkZSBxdW90aW5nIG9uIGZhaWx1cmUuXG4gICAgICB9XG4gICAgfSkoKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY2FuY2VsbGVkID0gdHJ1ZTtcbiAgICB9O1xuICB9LCBbY2xpZW50U2lkZUVuYWJsZWQsIHNob3dQcmljZU1hdHJpeCwgcHJpY2luZ1J1bGVzUHJvcCwgaW5pdFByb2R1Y3Q/LmlkLCBhcGlVcmxdKTtcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgIGlmIChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgIGNsZWFyVGltZW91dChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpO1xuICAgIH1cbiAgfSwgW10pO1xuXG4gIGZ1bmN0aW9uIHZhcmlhdGlvbnNIYXZlRmllbGRNZXRhZGF0YShqb2JWYWx1ZXM6IGFueSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNoZWNrID0gKHZhcmlhdGlvbnM6IGFueVtdIHwgdW5kZWZpbmVkKSA9PlxuICAgICAgIUFycmF5LmlzQXJyYXkodmFyaWF0aW9ucykgfHxcbiAgICAgIHZhcmlhdGlvbnMuZXZlcnkoKHZhcmlhdGlvbikgPT4gdmFyaWF0aW9uPy52YXJpYXRpb25GaWVsZD8uZmllbGRUeXBlICE9IG51bGwpO1xuICAgIGlmICghY2hlY2soam9iVmFsdWVzPy52YXJpYXRpb25zKSkgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGpvYlZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcykpIHtcbiAgICAgIHJldHVybiBqb2JWYWx1ZXMudmFyaWF0aW9uc0dyb3Vwcy5ldmVyeSgoZ3JvdXA6IGFueSkgPT5cbiAgICAgICAgY2hlY2soZ3JvdXA/LnZhcmlhdGlvbnMpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5T3B0aW9uVmlzaWJpbGl0eShcbiAgICB2YXJpYXRpb25zOiBhbnlbXSxcbiAgICB2aXNpYmxlT3B0aW9uSWRzOiBTZXQ8bnVtYmVyPixcbiAgICB1bmF2YWlsYWJsZU9wdGlvbklkczogU2V0PG51bWJlcj5cbiAgKTogYm9vbGVhbiB7XG4gICAgbGV0IGNoYW5nZWQgPSBmYWxzZTtcbiAgICAodmFyaWF0aW9ucyB8fCBbXSkuZm9yRWFjaCgodmFyaWF0aW9uOiBhbnkpID0+IHtcbiAgICAgICh2YXJpYXRpb24uc2VsZWN0YWJsZU9wdGlvbnMgfHwgW10pLmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIC8vIE1pcnJvciB0aGUgc2VydmVyJ3MgcGVyLW9wdGlvbiBpc1Zpc2libGUgKHNlbGVjdGVkQnkgcmVzb2x1dGlvbikuXG4gICAgICAgIGNvbnN0IGlzVmlzaWJsZSA9IHZpc2libGVPcHRpb25JZHMuaGFzKG9wdGlvbi5vcHRpb25JZCk7XG4gICAgICAgIGlmIChvcHRpb24uaXNWaXNpYmxlICE9PSBpc1Zpc2libGUpIHtcbiAgICAgICAgICBvcHRpb24uaXNWaXNpYmxlID0gaXNWaXNpYmxlO1xuICAgICAgICAgIGNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIC8vIENvbWJpbmF0aW9uLWF3YXJlIGF2YWlsYWJpbGl0eTogYW4gb3B0aW9uIGlzIHVuYXZhaWxhYmxlIHdoZW4gdGhlXG4gICAgICAgIC8vIGNvbWJpbmF0aW9uIG9mIChjdXJyZW50IGludmVudG9yeSBzZWxlY3Rpb25zICsgdGhpcyBvcHRpb24pIGhhcyBub1xuICAgICAgICAvLyBtYXRjaGluZyBzdG9jay4gTm9uLWludmVudG9yeSBwcm9kdWN0cyB5aWVsZCBhbiBlbXB0eSBzZXQgLT4gYWxsXG4gICAgICAgIC8vIGF2YWlsYWJsZS5cbiAgICAgICAgY29uc3QgYXZhaWxhYmxlID0gIXVuYXZhaWxhYmxlT3B0aW9uSWRzLmhhcyhvcHRpb24ub3B0aW9uSWQpO1xuICAgICAgICBpZiAob3B0aW9uLmF2YWlsYWJsZSAhPT0gYXZhaWxhYmxlKSB7XG4gICAgICAgICAgb3B0aW9uLmF2YWlsYWJsZSA9IGF2YWlsYWJsZTtcbiAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGNoYW5nZWQ7XG4gIH1cblxuICAvLyBGb3IgaW52ZW50b3J5LWxpbWl0ZWQgcHJvZHVjdHMsIHJlZnJlc2ggcXVhbnRpdHktZGVwZW5kZW50IGludmVudG9yeVxuICAvLyAoZ3JvdXAgaW52ZW50b3J5Q291bnQvaW52ZW50b3J5U3VmZmljaWVudCkgZnJvbSB0aGUgYXV0aG9yaXRhdGl2ZSBzZXJ2ZXIgaW5cbiAgLy8gdGhlIGJhY2tncm91bmQsIGRlYm91bmNlZCwgYW5kIG1lcmdlIGl0IHRocm91Z2ggc2V0Sm9iICh3aGljaCByZW5kZXJzXG4gIC8vIHdpdGhvdXQgYSBmb3JtIHJlc2V0LCBzbyB0aGUgdmlld3BvcnQgbmV2ZXIganVtcHMpLiBUaGUgY2xpZW50IHByaWNlIHN0YXlzXG4gIC8vIGluc3RhbnQ7IHRoZSBpbnZlbnRvcnkgYmFkZ2UgY2F0Y2hlcyB1cCBhIGJlYXQgbGF0ZXIuXG4gIGZ1bmN0aW9uIHJlc2V0Rm9ybVByZXNlcnZpbmdTY3JvbGwodmFsdWVzOiBhbnkpIHtcbiAgICBjb25zdCBoYXNXaW5kb3cgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbiAgICBjb25zdCBzY3JvbGxQYXJlbnQgPSBmaW5kU2Nyb2xsUGFyZW50KCk7XG4gICAgY29uc3Qgc2Nyb2xsWCA9IGhhc1dpbmRvdyA/IHdpbmRvdy5zY3JvbGxYIDogMDtcbiAgICBjb25zdCBzY3JvbGxZID0gaGFzV2luZG93ID8gd2luZG93LnNjcm9sbFkgOiAwO1xuICAgIGNvbnN0IHBhcmVudFRvcCA9IHNjcm9sbFBhcmVudCA/IHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgOiAwO1xuICAgIGNvbnN0IHBhcmVudExlZnQgPSBzY3JvbGxQYXJlbnQgPyBzY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCA6IDA7XG4gICAgcmVzZXQodmFsdWVzKTtcbiAgICBpZiAoaGFzV2luZG93ICYmIHR5cGVvZiB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgaWYgKHNjcm9sbFBhcmVudCkge1xuICAgICAgICAgIHNjcm9sbFBhcmVudC5zY3JvbGxUb3AgPSBwYXJlbnRUb3A7XG4gICAgICAgICAgc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQgPSBwYXJlbnRMZWZ0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHdpbmRvdy5zY3JvbGxUbyhzY3JvbGxYLCBzY3JvbGxZKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gZmluZFNjcm9sbFBhcmVudCgpOiBIVE1MRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBhY3RpdmUgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBsZXQgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsID0gYWN0aXZlO1xuICAgIHdoaWxlIChub2RlICYmIG5vZGUgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZSk7XG4gICAgICBjb25zdCBjYW5TY3JvbGxZID1cbiAgICAgICAgKHN0eWxlLm92ZXJmbG93WSA9PT0gJ2F1dG8nIHx8IHN0eWxlLm92ZXJmbG93WSA9PT0gJ3Njcm9sbCcpICYmXG4gICAgICAgIG5vZGUuc2Nyb2xsSGVpZ2h0ID4gbm9kZS5jbGllbnRIZWlnaHQ7XG4gICAgICBpZiAoY2FuU2Nyb2xsWSkgcmV0dXJuIG5vZGU7XG4gICAgICAvLyBSYWRpeCBTY3JvbGxBcmVhIHZpZXdwb3J0XG4gICAgICBpZiAobm9kZS5nZXRBdHRyaWJ1dGUoJ2RhdGEtc2xvdCcpID09PSAnc2Nyb2xsLWFyZWEtdmlld3BvcnQnKSByZXR1cm4gbm9kZTtcbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIGNvbnN0IHZpZXdwb3J0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICdbZGF0YS1zbG90PVwiZGlhbG9nLWNvbnRlbnRcIl0gW2RhdGEtc2xvdD1cInNjcm9sbC1hcmVhLXZpZXdwb3J0XCJdJ1xuICAgICkgYXMgSFRNTEVsZW1lbnQgfCBudWxsO1xuICAgIHJldHVybiB2aWV3cG9ydDtcbiAgfVxuXG4gIGZ1bmN0aW9uIGZvcm1RdWFudGl0aWVzTWF0Y2hSZXF1ZXN0KFxuICAgIGZvcm1WYWx1ZXM6IGFueSxcbiAgICByZXF1ZXN0RGF0YTogYW55LFxuICAgIHByb2R1Y3Q6IGFueVxuICApOiBib29sZWFuIHtcbiAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgY29uc3QgZ3JvdXBzID0gcmVxdWVzdERhdGEudmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgICAgIHJldHVybiBncm91cHMuZXZlcnkoKGdyb3VwOiBhbnksIGluZGV4OiBudW1iZXIpID0+XG4gICAgICAgIE51bWJlcihncm91cC5xdWFudGl0eSkgPT09IE51bWJlcihmb3JtVmFsdWVzLnZhcmlhdGlvbnNHcm91cHM/LltpbmRleF0/LnF1YW50aXR5KVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIE51bWJlcihyZXF1ZXN0RGF0YS5xdWFudGl0eSkgPT09IE51bWJlcihmb3JtVmFsdWVzLnF1YW50aXR5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGFwcGx5U2VydmVyUXVvdGUoZm9ybVZhbHVlczogYW55LCBzZXJ2ZXJKb2I6IGFueSkge1xuICAgIGNvbnN0IGNsZWFuZWRGb3JtVmFsdWVzID0gY2xlYW5Kb2JWYXJpYXRpb25zQW5kR3JvdXBzKHsgLi4uZm9ybVZhbHVlcyB9KTtcbiAgICAvLyBBZG9wdCBmaWVsZHMgdGhlIHNlcnZlciBhZGRlZC9yZW1vdmVkIHZpYSBmaWxsX2R5bmFtaWNfdmFyaWF0aW9ucywgd2hpbGVcbiAgICAvLyBwcmVzZXJ2aW5nIHRoZSB1c2VyJ3MgaW4tcHJvZ3Jlc3MgdmFsdWVzIChxdWFudGl0eSBlZGl0cywgc2VsZWN0aW9ucykuXG4gICAgLy8gTWF0Y2ggYnkgdmFyaWF0aW9uRmllbGQuaWQgLyBvcHRpb25JZCDigJQgaW5kZXggc3luYyBicmVha3Mgd2hlbiB0aGVcbiAgICAvLyBjb25kaXRpb25hbCBmaWVsZCBsaXN0IGNoYW5nZXMgbGVuZ3RoIG9yIG9yZGVyLlxuICAgIGNvbnN0IGluZGVwZW5kZW50UmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhcbiAgICAgIGNsZWFuZWRGb3JtVmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBzZXJ2ZXJKb2IudmFyaWF0aW9uc1xuICAgICk7XG4gICAgbGV0IHZpc2liaWxpdHlDaGFuZ2VkID0gaW5kZXBlbmRlbnRSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQ7XG4gICAgY29uc3QgbWVyZ2VkSm9iOiBhbnkgPSB7XG4gICAgICAuLi5jbGVhbmVkRm9ybVZhbHVlcyxcbiAgICAgIHZhcmlhdGlvbnM6IGluZGVwZW5kZW50UmVjb25jaWxlLnZhcmlhdGlvbnMsXG4gICAgICBjb3N0OiBzZXJ2ZXJKb2IuY29zdCxcbiAgICAgIGNvc3RQZXJVbml0OiBzZXJ2ZXJKb2IuY29zdFBlclVuaXQsXG4gICAgICB0YXhBbW91bnQ6IHNlcnZlckpvYi50YXhBbW91bnQsXG4gICAgICB0b3RhbENvc3Q6IHNlcnZlckpvYi50b3RhbENvc3QsXG4gICAgICBjdXJyZW5jeTogc2VydmVySm9iLmN1cnJlbmN5LFxuICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlDb3VudCxcbiAgICAgIGludmVudG9yeVN1ZmZpY2llbnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgIH07XG4gICAgaWYgKFxuICAgICAgQXJyYXkuaXNBcnJheShjbGVhbmVkRm9ybVZhbHVlcy52YXJpYXRpb25zR3JvdXBzKVxuICAgICAgJiYgQXJyYXkuaXNBcnJheShzZXJ2ZXJKb2IudmFyaWF0aW9uc0dyb3VwcylcbiAgICApIHtcbiAgICAgIG1lcmdlZEpvYi52YXJpYXRpb25zR3JvdXBzID0gY2xlYW5lZEZvcm1WYWx1ZXMudmFyaWF0aW9uc0dyb3Vwcy5tYXAoXG4gICAgICAgIChncm91cDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2VydmVyR3JvdXAgPSBzZXJ2ZXJKb2IudmFyaWF0aW9uc0dyb3Vwc1tpbmRleF07XG4gICAgICAgICAgaWYgKCFzZXJ2ZXJHcm91cCkgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgIGNvbnN0IGdyb3VwUmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhcbiAgICAgICAgICAgIGdyb3VwLnZhcmlhdGlvbnMsXG4gICAgICAgICAgICBzZXJ2ZXJHcm91cC52YXJpYXRpb25zXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoZ3JvdXBSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQpIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmdyb3VwLFxuICAgICAgICAgICAgdmFyaWF0aW9uczogZ3JvdXBSZWNvbmNpbGUudmFyaWF0aW9ucyxcbiAgICAgICAgICAgIGdyb3VwQ29zdDogc2VydmVyR3JvdXAuZ3JvdXBDb3N0LFxuICAgICAgICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckdyb3VwLmludmVudG9yeUNvdW50LFxuICAgICAgICAgICAgaW52ZW50b3J5U3VmZmljaWVudDogc2VydmVyR3JvdXAuaW52ZW50b3J5U3VmZmljaWVudCxcbiAgICAgICAgICAgIG1hdGNoaW5nSW52ZW50b3JpZXM6IHNlcnZlckdyb3VwLm1hdGNoaW5nSW52ZW50b3JpZXMsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgbWVyZ2VkSm9iLCB2aXNpYmlsaXR5Q2hhbmdlZCB9O1xuICB9XG5cbiAgZnVuY3Rpb24gbWVyZ2VJbnZlbnRvcnkocHJldjogYW55LCBzZXJ2ZXJKb2I6IGFueSkge1xuICAgIGlmICghcHJldikgcmV0dXJuIHByZXY7XG4gICAgY29uc3QgbWVyZ2VkOiBhbnkgPSB7XG4gICAgICAuLi5wcmV2LFxuICAgICAgaW52ZW50b3J5Q291bnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlDb3VudCxcbiAgICAgIGludmVudG9yeVN1ZmZpY2llbnQ6IHNlcnZlckpvYi5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgIH07XG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJldi52YXJpYXRpb25zR3JvdXBzKSAmJiBBcnJheS5pc0FycmF5KHNlcnZlckpvYi52YXJpYXRpb25zR3JvdXBzKSkge1xuICAgICAgbWVyZ2VkLnZhcmlhdGlvbnNHcm91cHMgPSBwcmV2LnZhcmlhdGlvbnNHcm91cHMubWFwKChnOiBhbnksIGk6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBzZyA9IHNlcnZlckpvYi52YXJpYXRpb25zR3JvdXBzW2ldO1xuICAgICAgICBpZiAoIXNnKSByZXR1cm4gZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5nLFxuICAgICAgICAgIGludmVudG9yeUNvdW50OiBzZy5pbnZlbnRvcnlDb3VudCxcbiAgICAgICAgICBpbnZlbnRvcnlTdWZmaWNpZW50OiBzZy5pbnZlbnRvcnlTdWZmaWNpZW50LFxuICAgICAgICAgIG1hdGNoaW5nSW52ZW50b3JpZXM6IHNnLm1hdGNoaW5nSW52ZW50b3JpZXMsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lcmdlZDtcbiAgfVxuXG4gIGZ1bmN0aW9uIHNjaGVkdWxlSW52ZW50b3J5UmVmcmVzaChjbGVhbmVkVmFsdWVzOiBhbnkpIHtcbiAgICBpZiAoIXByaWNpbmdSdWxlcyB8fCAhcHJpY2luZ1J1bGVzLm5lZWRzSW52ZW50b3J5KSByZXR1cm47XG4gICAgaWYgKGludmVudG9yeVJlZnJlc2hUaW1lci5jdXJyZW50KSB7XG4gICAgICBjbGVhclRpbWVvdXQoaW52ZW50b3J5UmVmcmVzaFRpbWVyLmN1cnJlbnQpO1xuICAgIH1cbiAgICAvLyBTaG93IHRoZSBsb2FkaW5nIHN0YXRlIGluIHRoZSBpbnZlbnRvcnkgcGlsbHMgZnJvbSB0aGUgbW9tZW50IGEgY2hhbmdlIGlzXG4gICAgLy8gbWFkZSB1bnRpbCB0aGUgYXV0aG9yaXRhdGl2ZSBzdG9jayBjb21lcyBiYWNrIChjb3ZlcnMgdGhlIGRlYm91bmNlIHdhaXRcbiAgICAvLyBhbmQgdGhlIHJlcXVlc3QpLiBUaGlzIGlzIHNlcGFyYXRlIGZyb20gYGxvYWRpbmdgIHNvIHRoZSBpbnN0YW50IGNsaWVudFxuICAgIC8vIHByaWNlIG5ldmVyIGZsaWNrZXJzIHRvIGEgc3Bpbm5lci5cbiAgICBzZXRJbnZlbnRvcnlMb2FkaW5nKHRydWUpO1xuICAgIGludmVudG9yeVJlZnJlc2hUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsZXQgZGF0YSA9IHsgLi4uY2xlYW5lZFZhbHVlcywgcHJvZHVjdDogeyBpZDogaW5pdFByb2R1Y3QuaWQgfSB9O1xuICAgICAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgICAgIGRlbGV0ZSBkYXRhLnF1YW50aXR5O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaEpvYlF1b3RlKGRhdGEsIGFwaVVybCk7XG4gICAgICAgIGNvbnN0IHNlcnZlckpvYiA9IHIudG9Kc29uKCk7XG4gICAgICAgIHNldEpvYigocHJldjogYW55KSA9PiBtZXJnZUludmVudG9yeShwcmV2LCBzZXJ2ZXJKb2IpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gQmVzdC1lZmZvcnQ6IGlmIHRoZSBpbnZlbnRvcnkgcmVmcmVzaCBmYWlscyB0aGUgcHJpY2UgaXMgdW5hZmZlY3RlZC5cbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNldEludmVudG9yeUxvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH0sIDQ1MCk7XG4gIH1cblxuICBmdW5jdGlvbiBhcHBseUNsaWVudFF1b3RlKHZhbHVlczogYW55KSB7XG4gICAgY29uc3Qgc2VsZWN0aW9ucyA9IHRvU2VsZWN0aW9ucyh2YWx1ZXMsIHByaWNpbmdSdWxlcyk7XG4gICAgY29uc3QgcmVzdWx0ID0gcHJpY2luZy5lc3RpbWF0ZVF1b3RlKHByaWNpbmdSdWxlcywgc2VsZWN0aW9ucyk7XG4gICAgaWYgKCd1bnN1cHBvcnRlZCcgaW4gcmVzdWx0KSByZXR1cm4gbnVsbDtcbiAgICAvLyBWaXNpYmlsaXR5IEFORCBhdmFpbGFiaWxpdHkgYXJlIHNjb3BlZCBwZXIgY29udGFpbmVyLCBtaXJyb3JpbmcgdGhlXG4gICAgLy8gc2VydmVyOiBpbmRlcGVuZGVudCB2YXJpYXRpb25zIHJlc29sdmUgYWdhaW5zdCBpbmRlcGVuZGVudCBzZWxlY3Rpb25zXG4gICAgLy8gb25seTsgZWFjaCBncm91cCByZXNvbHZlcyBhZ2FpbnN0IGl0cyBvd24gc2VsZWN0aW9ucyArIGluZGVwZW5kZW50LlxuICAgIC8vIE90aGVyIGdyb3VwcyBuZXZlciBsZWFrIGluLiBBdmFpbGFiaWxpdHkgaXMgY29tYmluYXRpb24tYXdhcmU6IGFuIG9wdGlvblxuICAgIC8vIGlzIGRpc2FibGVkIHdoZW4gKGN1cnJlbnQgaW52ZW50b3J5IHNlbGVjdGlvbnMgKyB0aGF0IG9wdGlvbikgaGFzIG5vXG4gICAgLy8gbWF0Y2hpbmcgc3RvY2suXG4gICAgLy8gRmllbGQgbWVtYmVyc2hpcCBtaXJyb3JzIGZpbGxfZHluYW1pY192YXJpYXRpb25zOiBnYXRlZCBmaWVsZHMgYXJlXG4gICAgLy8gYWRkZWQvcmVtb3ZlZCB2aWEgcmVzb2x2ZVZpc2libGVGaWVsZHMgKyBwcm9kdWN0IGZpZWxkIHRlbXBsYXRlcy5cbiAgICBjb25zdCBpbmRlcGVuZGVudFNjb3BlID0ge1xuICAgICAgcXVhbnRpdHk6IHNlbGVjdGlvbnMucXVhbnRpdHksXG4gICAgICBmaWVsZFZhbHVlczogc2VsZWN0aW9ucy5maWVsZFZhbHVlcyxcbiAgICB9O1xuICAgIGNvbnN0IGluZGVwZW5kZW50VmlzaWJsZUZpZWxkcyA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVGaWVsZHMoXG4gICAgICBwcmljaW5nUnVsZXMsXG4gICAgICBpbmRlcGVuZGVudFNjb3BlXG4gICAgKTtcbiAgICBjb25zdCBpbmRlcGVuZGVudEZpZWxkVGVtcGxhdGVzID1cbiAgICAgIHByb2R1Y3RGaWVsZHNGb3JQcmljaW5nRmllbGRzKHByaWNpbmdSdWxlcy5maWVsZHMsIHByb2R1Y3QpO1xuICAgIGNvbnN0IGRlc2lyZWRJbmRlcGVuZGVudCA9IGJ1aWxkRGVzaXJlZFZhcmlhdGlvbnNGcm9tRmllbGRzKFxuICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBpbmRlcGVuZGVudEZpZWxkVGVtcGxhdGVzID8/IHByb2R1Y3Q/LmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzLFxuICAgICAgaW5kZXBlbmRlbnRWaXNpYmxlRmllbGRzLFxuICAgICAgYnVpbGRFbXB0eVZhcmlhdGlvbkZyb21GaWVsZFxuICAgICk7XG4gICAgY29uc3QgaW5kZXBlbmRlbnRSZWNvbmNpbGUgPSByZWNvbmNpbGVWYXJpYXRpb25zKFxuICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsXG4gICAgICBkZXNpcmVkSW5kZXBlbmRlbnRcbiAgICApO1xuICAgIHZhbHVlcy52YXJpYXRpb25zID0gaW5kZXBlbmRlbnRSZWNvbmNpbGUudmFyaWF0aW9ucztcblxuICAgIGNvbnN0IGluZGVwZW5kZW50VmlzaWJsZSA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVPcHRpb25JZHMocHJpY2luZ1J1bGVzLCBpbmRlcGVuZGVudFNjb3BlKTtcbiAgICBjb25zdCBpbmRlcGVuZGVudFVuYXZhaWxhYmxlID0gcHJpY2luZy5yZXNvbHZlVW5hdmFpbGFibGVPcHRpb25JZHMocHJpY2luZ1J1bGVzLCBpbmRlcGVuZGVudFNjb3BlKTtcbiAgICBsZXQgdmlzaWJpbGl0eUNoYW5nZWQgPVxuICAgICAgaW5kZXBlbmRlbnRSZWNvbmNpbGUudmlzaWJpbGl0eUNoYW5nZWQgfHxcbiAgICAgIGFwcGx5T3B0aW9uVmlzaWJpbGl0eShcbiAgICAgICAgdmFsdWVzLnZhcmlhdGlvbnMsIGluZGVwZW5kZW50VmlzaWJsZSwgaW5kZXBlbmRlbnRVbmF2YWlsYWJsZVxuICAgICAgKTtcbiAgICBpZiAocHJpY2luZ1J1bGVzLmhhc0dyb3VwcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlcy52YXJpYXRpb25zR3JvdXBzKSkge1xuICAgICAgdmFsdWVzLnZhcmlhdGlvbnNHcm91cHMuZm9yRWFjaCgoZzogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgZy5ncm91cENvc3QgPSByZXN1bHQuZ3JvdXBDb3N0c1tpXSA/PyAwO1xuICAgICAgICBjb25zdCBncm91cFNjb3BlID0ge1xuICAgICAgICAgIGZpZWxkVmFsdWVzOiBzZWxlY3Rpb25zLmZpZWxkVmFsdWVzLFxuICAgICAgICAgIGdyb3Vwczogc2VsZWN0aW9ucy5ncm91cHMgPyBbc2VsZWN0aW9ucy5ncm91cHNbaV1dIDogW10sXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGdyb3VwVmlzaWJsZUZpZWxkcyA9IHByaWNpbmcucmVzb2x2ZVZpc2libGVGaWVsZHMoXG4gICAgICAgICAgcHJpY2luZ1J1bGVzLFxuICAgICAgICAgIGdyb3VwU2NvcGVcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZ3JvdXBGaWVsZFRlbXBsYXRlcyA9XG4gICAgICAgICAgcHJvZHVjdEZpZWxkc0ZvclByaWNpbmdGaWVsZHMocHJpY2luZ1J1bGVzLmdyb3VwRmllbGRzLCBwcm9kdWN0KTtcbiAgICAgICAgY29uc3QgZGVzaXJlZEdyb3VwID0gYnVpbGREZXNpcmVkVmFyaWF0aW9uc0Zyb21GaWVsZHMoXG4gICAgICAgICAgZy52YXJpYXRpb25zLFxuICAgICAgICAgIGdyb3VwRmllbGRUZW1wbGF0ZXMgPz8gZ3JvdXBGaWVsZFRlbXBsYXRlc0Zyb21Qcm9kdWN0KHByb2R1Y3QpLFxuICAgICAgICAgIGdyb3VwVmlzaWJsZUZpZWxkcyxcbiAgICAgICAgICBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGdyb3VwUmVjb25jaWxlID0gcmVjb25jaWxlVmFyaWF0aW9ucyhnLnZhcmlhdGlvbnMsIGRlc2lyZWRHcm91cCk7XG4gICAgICAgIGcudmFyaWF0aW9ucyA9IGdyb3VwUmVjb25jaWxlLnZhcmlhdGlvbnM7XG4gICAgICAgIGlmIChncm91cFJlY29uY2lsZS52aXNpYmlsaXR5Q2hhbmdlZCkge1xuICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBncm91cFZpc2libGUgPSBwcmljaW5nLnJlc29sdmVWaXNpYmxlT3B0aW9uSWRzKHByaWNpbmdSdWxlcywgZ3JvdXBTY29wZSk7XG4gICAgICAgIGNvbnN0IGdyb3VwVW5hdmFpbGFibGUgPSBwcmljaW5nLnJlc29sdmVVbmF2YWlsYWJsZU9wdGlvbklkcyhwcmljaW5nUnVsZXMsIGdyb3VwU2NvcGUpO1xuICAgICAgICBpZiAoYXBwbHlPcHRpb25WaXNpYmlsaXR5KGcudmFyaWF0aW9ucywgZ3JvdXBWaXNpYmxlLCBncm91cFVuYXZhaWxhYmxlKSkge1xuICAgICAgICAgIHZpc2liaWxpdHlDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG5leHRKb2IgPSBzeW5jSm9iU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlcyh7XG4gICAgICAuLi52YWx1ZXMsXG4gICAgICBjb3N0OiByZXN1bHQuY29zdCxcbiAgICAgIGNvc3RQZXJVbml0OiByZXN1bHQuY29zdFBlclVuaXQsXG4gICAgICB0YXhBbW91bnQ6IHJlc3VsdC50YXhBbW91bnQsXG4gICAgICB0b3RhbENvc3Q6IHJlc3VsdC50b3RhbENvc3QsXG4gICAgICBjdXJyZW5jeTogcmVzdWx0LmN1cnJlbmN5LFxuICAgIH0pO1xuICAgIHNldEpvYihuZXh0Sm9iKTtcbiAgICAvLyBPbmx5IHJlLXNlZWQgdGhlIGZvcm0gd2hlbiBvcHRpb24vZmllbGQgdmlzaWJpbGl0eSBhY3R1YWxseSBjaGFuZ2VkIOKAlFxuICAgIC8vIGkuZS4gb24gc2VsZWN0aW9uIGNoYW5nZXMsIG5vdCBvbiBxdWFudGl0eSBlZGl0cy4gQ29zdC9ncm91cC1jb3N0IHVwZGF0ZXNcbiAgICAvLyBmbG93IHRocm91Z2ggc2V0Sm9iIHdpdGhvdXQgYSByZXNldC4gcmVzZXQoKSBtYWtlcyB1c2VGaWVsZEFycmF5IHJlbW91bnRcbiAgICAvLyBpdHMgaXRlbXMsIHdoaWNoIG1ha2VzIHRoZSBicm93c2VyIGxvc2UgdGhlIHNjcm9sbCBwb3NpdGlvbjsgY2FwdHVyZSBhbmRcbiAgICAvLyByZXN0b3JlIGl0IHNvIHRoZSB2aWV3cG9ydCBkb2Vzbid0IGp1bXAgd2hlbiB0b2dnbGluZyBhIHNlbGVjdC5cbiAgICAvLyBOZXZlciByZXNldCB3aXRoIHZhcmlhdGlvbnMgdGhhdCBsb3N0IHZhcmlhdGlvbkZpZWxkIOKAlCB0aGF0IGNvbGxhcHNlc1xuICAgIC8vIHRoZSBmb3JtIChEeW5hbWljVmFyaWF0aW9uSW5wdXQgY2Fubm90IHJlbmRlciB3aXRob3V0IGZpZWxkIG1ldGFkYXRhKS5cbiAgICBpZiAodmlzaWJpbGl0eUNoYW5nZWQgJiYgdmFyaWF0aW9uc0hhdmVGaWVsZE1ldGFkYXRhKG5leHRKb2IpKSB7XG4gICAgICByZXNldEZvcm1QcmVzZXJ2aW5nU2Nyb2xsKG5leHRKb2IpO1xuICAgIH1cbiAgICByZXR1cm4gbmV4dEpvYjtcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVTZXJ2ZXJRdW90ZSgpOiBQcm9taXNlPGFueSB8IG51bGw+IHtcbiAgICBjb25zdCB2YWx1ZXMgPSBnZXRWYWx1ZXMoKTtcbiAgICBjb25zdCBjbGVhbmVkVmFsdWVzID0gY2xlYW5Kb2JWYXJpYXRpb25zQW5kR3JvdXBzKHZhbHVlcyk7XG4gICAgY29uc3QgcmVxdWVzdElkID0gKytxdW90ZVJlcXVlc3RJZC5jdXJyZW50O1xuICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgbGV0IGRhdGEgPSB7IC4uLmNsZWFuZWRWYWx1ZXMsIHByb2R1Y3Q6IHsgaWQ6IGluaXRQcm9kdWN0LmlkIH0gfTtcbiAgICBpZiAocHJvZHVjdEhhc0dyb3Vwcyhwcm9kdWN0KSkge1xuICAgICAgLy8gaWYgdGhlIHByb2R1Y3QgaGFzIGdyb3VwIHZhcmlhdGlvbiBmaWVsZHMgd2UgZGVsZXRlIHF1YW50aXR5XG4gICAgICAvLyBiZWNhdXNlIGVhY2ggZ3JvdXAgaGFzIGl0J3Mgb3duIHF1YW50aXR5XG4gICAgICBkZWxldGUgZGF0YS5xdWFudGl0eTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCBmZXRjaEpvYlF1b3RlKGRhdGEsIGFwaVVybCk7XG4gICAgICBpZiAocmVxdWVzdElkICE9PSBxdW90ZVJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VydmVySm9iID0gci50b0pzb24oKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZXMgPSBnZXRWYWx1ZXMoKTtcbiAgICAgIGlmICghZm9ybVF1YW50aXRpZXNNYXRjaFJlcXVlc3QoY3VycmVudFZhbHVlcywgZGF0YSwgcHJvZHVjdCkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBjb25zdCB7IG1lcmdlZEpvYiwgdmlzaWJpbGl0eUNoYW5nZWQgfSA9IGFwcGx5U2VydmVyUXVvdGUoY3VycmVudFZhbHVlcywgc2VydmVySm9iKTtcbiAgICAgIHNldEpvYihtZXJnZWRKb2IpO1xuICAgICAgLy8gS2VlcCB0aGUgdXNlcidzIGluLXByb2dyZXNzIHF1YW50aXR5IHZhbHVlczsgb25seSByZS1zZWVkIHRoZSBmb3JtIHdoZW5cbiAgICAgIC8vIG9wdGlvbiB2aXNpYmlsaXR5IGNoYW5nZWQgKG1pcnJvcnMgY2xpZW50LXNpZGUgcXVvdGluZykuXG4gICAgICBpZiAodmlzaWJpbGl0eUNoYW5nZWQgJiYgdmFyaWF0aW9uc0hhdmVGaWVsZE1ldGFkYXRhKG1lcmdlZEpvYikpIHtcbiAgICAgICAgcmVzZXRGb3JtUHJlc2VydmluZ1Njcm9sbChtZXJnZWRKb2IpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG1lcmdlZEpvYjtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBlLmVycm9yTWVzc2FnZSB8fCBlLm1lc3NhZ2UgfHwgJ1NlcnZlciBlcnJvcic7XG4gICAgICBzaG93QWxlcnQoeyBtZXNzYWdlIH0pO1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocmVxdWVzdElkID09PSBxdW90ZVJlcXVlc3RJZC5jdXJyZW50KSB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFF1b3RlKG9wdGlvbnM/OiB7IGltbWVkaWF0ZT86IGJvb2xlYW4gfSk6IFByb21pc2U8YW55IHwgbnVsbD4ge1xuICAgIGNvbnN0IHZhbHVlcyA9IGdldFZhbHVlcygpO1xuICAgIGNvbnN0IGNsZWFuZWRWYWx1ZXMgPSBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHModmFsdWVzKTtcbiAgICBpZiAoY2xpZW50U2lkZUVuYWJsZWQgJiYgcHJpY2luZ1J1bGVzKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjbGllbnRKb2IgPSBhcHBseUNsaWVudFF1b3RlKGNsZWFuZWRWYWx1ZXMpO1xuICAgICAgICBpZiAoY2xpZW50Sm9iKSB7XG4gICAgICAgICAgc2NoZWR1bGVJbnZlbnRvcnlSZWZyZXNoKGNsZWFuZWRWYWx1ZXMpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoY2xpZW50Sm9iKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBmYWxsIHRocm91Z2ggdG8gc2VydmVyIG9uIGFueSBjbGllbnQtY2FsYyBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucz8uaW1tZWRpYXRlKSB7XG4gICAgICBpZiAoc2VydmVyUXVvdGVUaW1lci5jdXJyZW50KSB7XG4gICAgICAgIGNsZWFyVGltZW91dChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpO1xuICAgICAgICBzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWN1dGVTZXJ2ZXJRdW90ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgIGlmIChzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgY2xlYXJUaW1lb3V0KHNlcnZlclF1b3RlVGltZXIuY3VycmVudCk7XG4gICAgICB9XG4gICAgICBzZXJ2ZXJRdW90ZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgc2VydmVyUXVvdGVUaW1lci5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgcmVzb2x2ZShhd2FpdCBleGVjdXRlU2VydmVyUXVvdGUoKSk7XG4gICAgICB9LCBTRVJWRVJfUVVPVEVfREVCT1VOQ0VfTVMpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gV2hlbiBwcmljaW5nIHJ1bGVzIGFycml2ZSAoYXN5bmMgZmV0Y2gpLCByZS1xdW90ZSBzbyBBcmVhL290aGVyXG4gIC8vIGNsaWVudC1zaWRlIGNvc3RzIGFwcGx5IHdpdGhvdXQgcmVxdWlyaW5nIGFub3RoZXIgZmllbGQgZWRpdC5cbiAgY29uc3QgYXBwbGllZENsaWVudFJ1bGVzUmVmID0gUmVhY3QudXNlUmVmPGFueT4obnVsbCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFjbGllbnRTaWRlRW5hYmxlZCB8fCAhcHJpY2luZ1J1bGVzIHx8IHByaWNpbmdSdWxlcy51bnN1cHBvcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYXBwbGllZENsaWVudFJ1bGVzUmVmLmN1cnJlbnQgPT09IHByaWNpbmdSdWxlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhcHBsaWVkQ2xpZW50UnVsZXNSZWYuY3VycmVudCA9IHByaWNpbmdSdWxlcztcbiAgICBnZXRRdW90ZSgpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC1ob29rcy9leGhhdXN0aXZlLWRlcHNcbiAgfSwgW2NsaWVudFNpZGVFbmFibGVkLCBwcmljaW5nUnVsZXNdKTtcblxuICBjb25zdCBbaXNEcmFmdE1vZGFsT3Blbiwgc2V0SXNEcmFmdE1vZGFsT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtpc0RyYWZ0RGVzaWduZXJPcGVuLCBzZXRJc0RyYWZ0RGVzaWduZXJPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgcGVuZGluZ0NoZWNrb3V0UmVmID0gUmVhY3QudXNlUmVmPCgoKSA9PiB2b2lkKSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0IGNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQgPSAoKSA9PiB7XG4gICAgY29uc3QgcGVuZGluZyA9IHBlbmRpbmdDaGVja291dFJlZi5jdXJyZW50O1xuICAgIHBlbmRpbmdDaGVja291dFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICByZXR1cm4gcGVuZGluZztcbiAgfTtcblxuICBjb25zdCBydW5EcmFmdENoZWNrb3V0ID0gYXN5bmMgKFxuICAgIHByb2NlZWQ6IChqb2JEYXRhOiBhbnkpID0+IHZvaWQsXG4gICkgPT4ge1xuICAgIGlmICghKGF3YWl0IHZhbGlkYXRlRm9ybSgpKSkgcmV0dXJuO1xuICAgIGNvbnN0IHF1b3RlZCA9IGF3YWl0IGdldFF1b3RlKHsgaW1tZWRpYXRlOiB0cnVlIH0pO1xuICAgIGlmICghcXVvdGVkKSByZXR1cm47XG4gICAgY29uc3Qgam9iRGF0YSA9IGxpZnRJbmRlcGVuZGVudFZhcmlhdGlvbnNGcm9tR3JvdXBzKHF1b3RlZCwgcHJvZHVjdCk7XG5cbiAgICBpZiAoIXByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24oaW5pdFByb2R1Y3QpKSB7XG4gICAgICBwcm9jZWVkKGpvYkRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsb2FkQXJ0d29ya1BhdGgoaW5pdFByb2R1Y3QuaWQpID09PSAnc2VydmljZScpIHtcbiAgICAgIHByb2NlZWQoe1xuICAgICAgICAuLi5qb2JEYXRhLFxuICAgICAgICBvd25EcmFmdHM6IFtdLFxuICAgICAgICBjbGllbnRGaWxlczogW10sXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobG9hZERlc2lnbk1ldGhvZChpbml0UHJvZHVjdC5pZCkgPT09ICd0ZW1wbGF0ZXMnKSB7XG4gICAgICBjb25zdCB1cGxvYWRKb2IgPSB7XG4gICAgICAgIC4uLmpvYkRhdGEsXG4gICAgICAgIGNsaWVudEZpbGVzOiBjaGVja291dENsaWVudEZpbGVzKGxvYWRUZW1wbGF0ZVVwbG9hZHMoaW5pdFByb2R1Y3QuaWQpKSxcbiAgICAgIH07XG4gICAgICBkZWxldGUgdXBsb2FkSm9iLm93bkRyYWZ0cztcbiAgICAgIHByb2NlZWQodXBsb2FkSm9iKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFmdHMgPSBsb2FkRHJhZnRzKGluaXRQcm9kdWN0LmlkKTtcbiAgICBjb25zdCBoYXNTYXZlZCA9IGRyYWZ0cy5zb21lKFxuICAgICAgKGRyYWZ0OiBEcmFmdFRlbXBsYXRlRGF0YSkgPT5cbiAgICAgICAgZHJhZnQucHJvZHVjdElkID09PSBpbml0UHJvZHVjdC5pZCAmJiBkcmFmdC50ZW1wbGF0ZURhdGE/Lmxlbmd0aFxuICAgICk7XG4gICAgaWYgKGhhc1NhdmVkKSB7XG4gICAgICBzZXREcmFmdEFwcHByb3ZlQ2FsbGJhY2soKCkgPT4gYXN5bmMgKGRyYWZ0Sm9iRGF0YTogYW55KSA9PiB7XG4gICAgICAgIHByb2NlZWQoZHJhZnRKb2JEYXRhIHx8IGpvYkRhdGEpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHNldElzRHJhZnRNb2RhbE9wZW4odHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvY2VlZChqb2JEYXRhKTtcbiAgfTtcblxuICBjb25zdCBhZGRUb0NhcnQgPSBvbkFkZFRvQ2FydFxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBpZiAoIWpvYkRhdGEucHJvZHVjdCkgam9iRGF0YS5wcm9kdWN0ID0geyBpZDogaW5pdFByb2R1Y3QuaWQgfTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25BZGRUb0NhcnQoeyAuLi5qb2JEYXRhLCB0YWdzIH0pO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBidXlOb3cgPSBvbkJ1eU5vd1xuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkJ1eU5vdyh7IC4uLmpvYkRhdGEgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldFN1Ym1pdFF1b3RlID0gb25HZXRRdW90ZVxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkdldFF1b3RlKHsgLi4uam9iRGF0YSB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXtcbiAgICAgICAge1xuICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICBhbGxvd0FkZFRvQ2FydCxcbiAgICAgICAgICBidG5OYW1lQWRkVG9DYXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uU3VibWl0LFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwUmVtb3ZlLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uQXBwcm92ZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVCdXR0b25DbG9zZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEN0YSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEdyb3VwQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdFNoZWV0LFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0VG9vbGJhcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlQnV0dG9uRG93bmxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRlbGV0ZSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUdyb3VwUHJpY2VDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW52ZW50b3J5U3RhdHVzLFxuICAgICAgICAgIGNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbnB1dCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25MYWJlbCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25TdXBlcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZSxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25Db2xvdXIsXG4gICAgICAgICAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUsXG4gICAgICAgICAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUb3RhbCxcbiAgICAgICAgICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVVuaXRQcmljZSxcbiAgICAgICAgICBjbGFzc05hbWVQcmljZU1hdHJpeCxcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICBkcmFmdEFwcHJvdmVDYWxsYmFjayxcbiAgICAgICAgICBnZXRRdW90ZSxcbiAgICAgICAgICBoY2FwdGNoYVNpdGVLZXksXG4gICAgICAgICAgcHJpY2luZ1J1bGVzLFxuICAgICAgICAgIGhpZGVDb3N0LFxuICAgICAgICAgIGhpZGVDb3VudHJ5LFxuICAgICAgICAgIGhpZGVDYWxjdWxhdGVkUHJpY2UsXG4gICAgICAgICAgaGlkZURvbWFpbk5hbWUsXG4gICAgICAgICAgaGlkZVF1YW50aXR5RmllbGQsXG4gICAgICAgICAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24sXG4gICAgICAgICAgaGlkZVBheW1lbnRVcGZyb250QnV0dG9uLFxuICAgICAgICAgIGhpZGVUaXRsZSxcbiAgICAgICAgICBob29rRm9ybSxcbiAgICAgICAgICBpc0NhcnRJdGVtLFxuICAgICAgICAgIGlzRHJhZnREZXNpZ25lck9wZW4sXG4gICAgICAgICAgaXNEcmFmdE1vZGFsT3BlbixcbiAgICAgICAgICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0LFxuICAgICAgICAgIGpvYixcbiAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgIGludmVudG9yeUxvYWRpbmcsXG4gICAgICAgICAgb25BZGRUb0NhcnQ6IGFkZFRvQ2FydCxcbiAgICAgICAgICBvbkJ1eU5vdzogYnV5Tm93LFxuICAgICAgICAgIG9uR2V0UXVvdGU6IGdldFN1Ym1pdFF1b3RlLFxuICAgICAgICAgIG9uU3VibWl0LFxuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgICAgcHJvZHVjdEZvcm1JZCxcbiAgICAgICAgICBzZXRDbGllbnQsXG4gICAgICAgICAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbixcbiAgICAgICAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuLFxuICAgICAgICAgIHNldEpvYixcbiAgICAgICAgICBzZXRMb2FkaW5nLFxuICAgICAgICAgIHNob3dBbGVydCxcbiAgICAgICAgICBzaG93Q3VycmVuY3ksXG4gICAgICAgICAgc2hvd0N1cnJlbmN5Q29kZSxcbiAgICAgICAgICBzaG93RmVhdHVyZURlYWRsaW5lLFxuICAgICAgICAgIHNob3dHcm91cEJ1eVN0YXR1cyxcbiAgICAgICAgICBzaG93UHJpY2VNYXRyaXgsXG4gICAgICAgICAgc2hvd1VuaXRQcmljZSxcbiAgICAgICAgfSBhcyBhbnlcbiAgICAgIH1cbiAgICA+XG4gICAgICB7cHJvZHVjdEZvcm1JZCA/IChcbiAgICAgICAgPGZvcm0gaWQ9e3Byb2R1Y3RGb3JtSWR9IG9uU3VibWl0PXtkb1N1Ym1pdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Zvcm0+XG4gICAgICApIDogY2hpbGRyZW59XG4gICAgICA8UHJvZHVjdERyYWZ0c0hvc3QgLz5cbiAgICA8L01lcmNoaVByb2R1Y3RGb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFYLENBQUEsR0FBQVMsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQVAsQ0FBQSxHQUFBQSxDQUFBLENBQUFZLE1BQUEsV0FBQUwsQ0FBQSxXQUFBRSxNQUFBLENBQUFJLHdCQUFB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