@merchi/product-form 1.19.26 → 1.19.28
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 {
|
|
26
|
+
import { loadArtworkPath, loadDesignMethod, loadDrafts, loadTemplateUploads, templateCheckoutJob } 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,
|
|
793
|
+
var quoted, jobData, drafts, hasSaved;
|
|
794
794
|
return _regenerator().w(function (_context6) {
|
|
795
795
|
while (1) switch (_context6.n) {
|
|
796
796
|
case 0:
|
|
@@ -837,11 +837,7 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
|
|
|
837
837
|
_context6.n = 7;
|
|
838
838
|
break;
|
|
839
839
|
}
|
|
840
|
-
|
|
841
|
-
clientFiles: checkoutClientFiles(loadTemplateUploads(initProduct.id))
|
|
842
|
-
});
|
|
843
|
-
delete uploadJob.ownDrafts;
|
|
844
|
-
proceed(uploadJob);
|
|
840
|
+
proceed(templateCheckoutJob(jobData, loadTemplateUploads(initProduct.id)));
|
|
845
841
|
return _context6.a(2);
|
|
846
842
|
case 7:
|
|
847
843
|
drafts = loadDrafts(initProduct.id);
|
|
@@ -1028,4 +1024,4 @@ export var MerchiProductFormProvider = function MerchiProductFormProvider(_ref)
|
|
|
1028
1024
|
}) : children, /*#__PURE__*/_jsx(ProductDraftsHost, {})]
|
|
1029
1025
|
});
|
|
1030
1026
|
};
|
|
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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
|
|
1027
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdHlwZW9mIiwibyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX3JlZ2VuZXJhdG9yIiwibiIsInRvU3RyaW5nVGFnIiwiYyIsIkdlbmVyYXRvciIsInUiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsIiwiZG9uZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJ3IiwibSIsIl9yZWdlbmVyYXRvckRlZmluZSIsIl9pbnZva2UiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsIl9uZXh0IiwiX3Rocm93IiwiX3NsaWNlZFRvQXJyYXkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJuZXh0IiwiaXNBcnJheSIsIlJlYWN0IiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsInVzZUZvcm0iLCJmZXRjaEpvYlF1b3RlIiwicHJvZHVjdEhhc0dyb3VwcyIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJwcm9kdWN0QWxsb3dzQ2xpZW50RGVzaWduIiwibG9hZEFydHdvcmtQYXRoIiwibG9hZERlc2lnbk1ldGhvZCIsImxvYWREcmFmdHMiLCJsb2FkVGVtcGxhdGVVcGxvYWRzIiwidGVtcGxhdGVDaGVja291dEpvYiIsIlByb2R1Y3REcmFmdHNIb3N0IiwiYnVpbGRFbXB0eVZhcmlhdGlvbkZyb21GaWVsZCIsImNsZWFuSm9iVmFyaWF0aW9uc0FuZEdyb3VwcyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwicHJpY2luZyIsInRvU2VsZWN0aW9ucyIsInNjcm9sbFRvRmlyc3RGb3JtRXJyb3IiLCJidWlsZERlc2lyZWRWYXJpYXRpb25zRnJvbUZpZWxkcyIsInByb2R1Y3RGaWVsZHNGb3JQcmljaW5nRmllbGRzIiwicmVjb25jaWxlVmFyaWF0aW9ucyIsImdyb3VwRmllbGRUZW1wbGF0ZXMiLCJncm91cEZpZWxkVGVtcGxhdGVzRnJvbVByb2R1Y3QiLCJsaWZ0SW5kZXBlbmRlbnRWYXJpYXRpb25zRnJvbUdyb3VwcyIsInNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQiLCJhcGlVcmwiLCJhbGxvd0FkZFRvQ2FydCIsImJ0bk5hbWVBZGRUb0NhcnQiLCJ1bmRlZmluZWQiLCJjbGFzc05hbWVBbGVydFNlbGxlckVkaXRhYmxlIiwiY2xhc3NOYW1lQnV0dG9uU3VibWl0IiwiY2xhc3NOYW1lQnV0dG9uR3JvdXBBZGQiLCJjbGFzc05hbWVCdXR0b25Hcm91cFJlbW92ZSIsImNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIiLCJjbGFzc05hbWVCdXR0b25BcHByb3ZlRHJhZnRzIiwiY2xhc3NOYW1lQnV0dG9uQ2xvc2VEcmFmdHMiLCJjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0Q3RhIiwiY2xhc3NOYW1lRHJhZnRHcm91cENvbnRhaW5lciIsImNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSIsImNsYXNzTmFtZURyYWZ0U2hlZXQiLCJjbGFzc05hbWVEcmFmdFRvb2xiYXIiLCJjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZCIsImNsYXNzTmFtZUZpbGVQcmV2aWV3Q29udGFpbmVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIiLCJjbGFzc05hbWVGaWxlUHJldmlld0ljb25XcmFwcGVyIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEJ1dHRvbiIsImNsYXNzTmFtZUZpbGVVcGxvYWRJY29uIiwiY2xhc3NOYW1lRmlsZVVwbG9hZEljb25TZWNvbmQiLCJjbGFzc05hbWVGaWxlVXBsb2FkSWNvbkNvbnRhaW5lciIsImNsYXNzTmFtZUZpbGVMaXN0SXRlbSIsImNsYXNzTmFtZUZpbGVCdXR0b25EZWxldGUiLCJjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIiLCJjbGFzc05hbWVHcm91cHNDb250YWluZXIiLCJjbGFzc05hbWVHcm91cFByaWNlQ29udGFpbmVyIiwiY2xhc3NOYW1lSW5wdXQiLCJjbGFzc05hbWVJbnB1dENvbnRhaW5lciIsImNsYXNzTmFtZUludmVudG9yeVN0YXR1cyIsImNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbklucHV0IiwiY2xhc3NOYW1lT3B0aW9uTGFiZWwiLCJjbGFzc05hbWVPcHRpb25TdXBlciIsImNsYXNzTmFtZU9wdGlvbnNDaGVja2JveFJhZGlvQ29udGFpbmVyIiwiY2xhc3NOYW1lT3B0aW9uSW1hZ2UiLCJjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ciIsImNsYXNzTmFtZU9wdGlvbkNvbG91ckNvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RPcmlnaW5UaXRsZSIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbENvbnRhaW5lciIsImNsYXNzTmFtZVByb2R1Y3RUb3RhbCIsImNsYXNzTmFtZVF1YW50aXR5TGFiZWxDb250YWluZXIiLCJjbGFzc05hbWVVbml0UHJpY2UiLCJjbGFzc05hbWVQcmljZU1hdHJpeCIsImNvbnRyb2wiLCJjdXJyZW50VXNlciIsImRyYWZ0QXBwcm92ZUNhbGxiYWNrIiwiZ2V0UXVvdGUiLCJoY2FwdGNoYVNpdGVLZXkiLCJwcmljaW5nUnVsZXMiLCJoaWRlQ29zdCIsImhpZGVDb3VudHJ5IiwiaGlkZURvbWFpbk5hbWUiLCJoaWRlQ2FsY3VsYXRlZFByaWNlIiwiaGlkZVF1YW50aXR5RmllbGQiLCJoaWRlUmVxdWVzdFF1b3RhdGlvbkJ1dHRvbiIsImhpZGVQYXltZW50VXBmcm9udEJ1dHRvbiIsImhpZGVUaXRsZSIsImhvb2tGb3JtIiwiaXNDYXJ0SXRlbSIsImluaXRKb2IiLCJpc0RyYWZ0RGVzaWduZXJPcGVuIiwiaXNEcmFmdE1vZGFsT3BlbiIsImNvbnN1bWVQZW5kaW5nQ2hlY2tvdXQiLCJqb2IiLCJsb2FkaW5nIiwiaW52ZW50b3J5TG9hZGluZyIsIm9uQWRkVG9DYXJ0Iiwib25CdXlOb3ciLCJvbkdldFF1b3RlIiwib25TdWJtaXQiLCJwcm9kdWN0IiwicHJvZHVjdEZvcm1JZCIsInNldENsaWVudCIsInNldElzRHJhZnREZXNpZ25lck9wZW4iLCJzZXRJc0RyYWZ0TW9kYWxPcGVuIiwic2V0Sm9iIiwic2V0TG9hZGluZyIsInNob3dBbGVydCIsImFsZXJ0Iiwic2hvd0N1cnJlbmN5Iiwic2hvd0N1cnJlbmN5Q29kZSIsInNob3dGZWF0dXJlRGVhZGxpbmUiLCJzaG93R3JvdXBCdXlTdGF0dXMiLCJzaG93UHJpY2VNYXRyaXgiLCJzaG93VW5pdFByaWNlIiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJNZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyIiwiX3JlZiIsIl9yZWYkYXBpVXJsIiwiX3JlZiRjbGFzc05hbWVBbGVydFNlIiwiX3JlZiRjbGFzc05hbWVCdXR0b25TIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HIiwiX3JlZiRjbGFzc05hbWVCdXR0b25HMiIsIl9yZWYkY2xhc3NOYW1lQnV0dG9ucyIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQSIsIl9yZWYkY2xhc3NOYW1lQnV0dG9uQyIsIl9yZWYkY2xhc3NOYW1lRHJhZnRCdSIsIl9yZWYkY2xhc3NOYW1lRHJhZnRDdCIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHciIsIl9yZWYkY2xhc3NOYW1lRHJhZnRHcjIiLCJfcmVmJGNsYXNzTmFtZURyYWZ0U2giLCJfcmVmJGNsYXNzTmFtZURyYWZ0VG8iLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGwyIiwiX3JlZiRjbGFzc05hbWVGaWxlUHJlIiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsMyIsIl9yZWYkY2xhc3NOYW1lRmlsZVByZTIiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw0IiwiX3JlZiRjbGFzc05hbWVGaWxlVXBsNSIsIl9yZWYkY2xhc3NOYW1lRmlsZVVwbDYiLCJfcmVmJGNsYXNzTmFtZUZpbGVVcGw3IiwiX3JlZiRjbGFzc05hbWVGaWxlTGlzIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0IiwiY2xhc3NOYW1lRmlsZUJ1dHRvbkRvd25sb2FkIiwiX3JlZiRjbGFzc05hbWVGaWxlQnV0MiIsIl9yZWYkY2xhc3NOYW1lRmlsZUxpczIiLCJfcmVmJGNsYXNzTmFtZUdyb3Vwc0MiLCJfcmVmJGNsYXNzTmFtZUdyb3VwUHIiLCJfcmVmJGNsYXNzTmFtZUlucHV0IiwiX3JlZiRjbGFzc05hbWVJbnZlbnRvIiwiX3JlZiRjbGFzc05hbWVJbnB1dENvIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JIiwiX3JlZiRjbGFzc05hbWVPcHRpb25MIiwiX3JlZiRjbGFzc05hbWVPcHRpb25TIiwiX3JlZiRjbGFzc05hbWVPcHRpb25zIiwiX3JlZiRjbGFzc05hbWVPcHRpb25JMiIsIl9yZWYkY2xhc3NOYW1lT3B0aW9uSTMiLCJfcmVmJGNsYXNzTmFtZU9wdGlvbkMyIiwiX3JlZiRjbGFzc05hbWVPcHRpb25DMyIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdCIsIl9yZWYkY2xhc3NOYW1lUHJvZHVjdDIiLCJfcmVmJGNsYXNzTmFtZVByb2R1Y3QzIiwiX3JlZiRjbGFzc05hbWVQcm9kdWN0NCIsIl9yZWYkY2xhc3NOYW1lUXVhbnRpdCIsImNoaWxkcmVuIiwiX3JlZiRoaWRlQ291bnRyeSIsIl9yZWYkaGlkZURvbWFpbk5hbWUiLCJfcmVmJGhpZGVUaXRsZSIsImluaXRQcm9kdWN0IiwicHJpY2luZ1J1bGVzUHJvcCIsIl9yZWYkc2hvd1ByaWNlTWF0cml4IiwiZGVmYXVsdEpvYiIsImRlZmF1bHRWYWx1ZXMiLCJyZVZhbGlkYXRlTW9kZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJjbGllbnQiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2V0RHJhZnRBcHBwcm92ZUNhbGxiYWNrIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMCIsIl91c2VTdGF0ZTEiLCJfdXNlU3RhdGUxMCIsInNldEludmVudG9yeUxvYWRpbmciLCJnZXRWYWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJyZXNldCIsInRyaWdnZXIiLCJkb1N1Ym1pdCIsInZhbGlkYXRlRm9ybSIsIl9yZWYyIiwiX2NhbGxlZSIsInZhbGlkIiwiX2NvbnRleHQiLCJ0YWdzIiwiaW52ZW50b3J5UmVmcmVzaFRpbWVyIiwidXNlUmVmIiwic2VydmVyUXVvdGVUaW1lciIsInF1b3RlUmVxdWVzdElkIiwiU0VSVkVSX1FVT1RFX0RFQk9VTkNFX01TIiwiY2xpZW50U2lkZUVuYWJsZWQiLCJCb29sZWFuIiwiY2xpZW50U2lkZUNhbGN1bGF0aW9uIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsImZldGNoZWRQcmljaW5nUnVsZXMiLCJzZXRGZXRjaGVkUHJpY2luZ1J1bGVzIiwidXNlRWZmZWN0IiwiaWQiLCJjYW5jZWxsZWQiLCJfY2FsbGVlMiIsImJhc2UiLCJyZXMiLCJydWxlcyIsIl90IiwiX2NvbnRleHQyIiwiZW5kc1dpdGgiLCJjb25jYXQiLCJmZXRjaCIsIm9rIiwianNvbiIsImN1cnJlbnQiLCJjbGVhclRpbWVvdXQiLCJ2YXJpYXRpb25zSGF2ZUZpZWxkTWV0YWRhdGEiLCJqb2JWYWx1ZXMiLCJjaGVjayIsInZhcmlhdGlvbnMiLCJldmVyeSIsInZhcmlhdGlvbiIsIl92YXJpYXRpb24kdmFyaWF0aW9uRiIsInZhcmlhdGlvbkZpZWxkIiwiZmllbGRUeXBlIiwidmFyaWF0aW9uc0dyb3VwcyIsImdyb3VwIiwiYXBwbHlPcHRpb25WaXNpYmlsaXR5IiwidmlzaWJsZU9wdGlvbklkcyIsInVuYXZhaWxhYmxlT3B0aW9uSWRzIiwiY2hhbmdlZCIsInNlbGVjdGFibGVPcHRpb25zIiwib3B0aW9uIiwiaXNWaXNpYmxlIiwiaGFzIiwib3B0aW9uSWQiLCJhdmFpbGFibGUiLCJyZXNldEZvcm1QcmVzZXJ2aW5nU2Nyb2xsIiwidmFsdWVzIiwiaGFzV2luZG93Iiwid2luZG93Iiwic2Nyb2xsUGFyZW50IiwiZmluZFNjcm9sbFBhcmVudCIsInNjcm9sbFgiLCJzY3JvbGxZIiwicGFyZW50VG9wIiwic2Nyb2xsVG9wIiwicGFyZW50TGVmdCIsInNjcm9sbExlZnQiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJzY3JvbGxUbyIsImRvY3VtZW50IiwiYWN0aXZlIiwiYWN0aXZlRWxlbWVudCIsIm5vZGUiLCJib2R5Iiwic3R5bGUiLCJnZXRDb21wdXRlZFN0eWxlIiwiY2FuU2Nyb2xsWSIsIm92ZXJmbG93WSIsInNjcm9sbEhlaWdodCIsImNsaWVudEhlaWdodCIsImdldEF0dHJpYnV0ZSIsInBhcmVudEVsZW1lbnQiLCJ2aWV3cG9ydCIsInF1ZXJ5U2VsZWN0b3IiLCJmb3JtUXVhbnRpdGllc01hdGNoUmVxdWVzdCIsImZvcm1WYWx1ZXMiLCJyZXF1ZXN0RGF0YSIsImdyb3VwcyIsImluZGV4IiwiX2Zvcm1WYWx1ZXMkdmFyaWF0aW9uIiwicXVhbnRpdHkiLCJhcHBseVNlcnZlclF1b3RlIiwic2VydmVySm9iIiwiY2xlYW5lZEZvcm1WYWx1ZXMiLCJpbmRlcGVuZGVudFJlY29uY2lsZSIsInZpc2liaWxpdHlDaGFuZ2VkIiwibWVyZ2VkSm9iIiwiY29zdCIsImNvc3RQZXJVbml0IiwidGF4QW1vdW50IiwidG90YWxDb3N0IiwiY3VycmVuY3kiLCJpbnZlbnRvcnlDb3VudCIsImludmVudG9yeVN1ZmZpY2llbnQiLCJtYXAiLCJzZXJ2ZXJHcm91cCIsImdyb3VwUmVjb25jaWxlIiwiZ3JvdXBDb3N0IiwibWF0Y2hpbmdJbnZlbnRvcmllcyIsIm1lcmdlSW52ZW50b3J5IiwicHJldiIsIm1lcmdlZCIsImciLCJzZyIsInNjaGVkdWxlSW52ZW50b3J5UmVmcmVzaCIsImNsZWFuZWRWYWx1ZXMiLCJuZWVkc0ludmVudG9yeSIsInNldFRpbWVvdXQiLCJfY2FsbGVlMyIsImRhdGEiLCJfdDIiLCJfY29udGV4dDMiLCJ0b0pzb24iLCJhcHBseUNsaWVudFF1b3RlIiwic2VsZWN0aW9ucyIsInJlc3VsdCIsImVzdGltYXRlUXVvdGUiLCJpbmRlcGVuZGVudFNjb3BlIiwiZmllbGRWYWx1ZXMiLCJpbmRlcGVuZGVudFZpc2libGVGaWVsZHMiLCJyZXNvbHZlVmlzaWJsZUZpZWxkcyIsImluZGVwZW5kZW50RmllbGRUZW1wbGF0ZXMiLCJmaWVsZHMiLCJkZXNpcmVkSW5kZXBlbmRlbnQiLCJpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyIsImluZGVwZW5kZW50VmlzaWJsZSIsInJlc29sdmVWaXNpYmxlT3B0aW9uSWRzIiwiaW5kZXBlbmRlbnRVbmF2YWlsYWJsZSIsInJlc29sdmVVbmF2YWlsYWJsZU9wdGlvbklkcyIsImhhc0dyb3VwcyIsIl9yZXN1bHQkZ3JvdXBDb3N0cyRpIiwiZ3JvdXBDb3N0cyIsImdyb3VwU2NvcGUiLCJncm91cFZpc2libGVGaWVsZHMiLCJncm91cEZpZWxkcyIsImRlc2lyZWRHcm91cCIsImdyb3VwVmlzaWJsZSIsImdyb3VwVW5hdmFpbGFibGUiLCJuZXh0Sm9iIiwiZXhlY3V0ZVNlcnZlclF1b3RlIiwiX2V4ZWN1dGVTZXJ2ZXJRdW90ZSIsIl9jYWxsZWUwIiwicmVxdWVzdElkIiwiY3VycmVudFZhbHVlcyIsIl9hcHBseVNlcnZlclF1b3RlIiwibWVzc2FnZSIsIl90NCIsIl9jb250ZXh0MCIsImVycm9yTWVzc2FnZSIsImNvbnNvbGUiLCJlcnJvciIsIm9wdGlvbnMiLCJjbGllbnRKb2IiLCJpbW1lZGlhdGUiLCJfY2FsbGVlNCIsIl90MyIsIl9jb250ZXh0NCIsImFwcGxpZWRDbGllbnRSdWxlc1JlZiIsInVuc3VwcG9ydGVkIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJwZW5kaW5nQ2hlY2tvdXRSZWYiLCJwZW5kaW5nIiwicnVuRHJhZnRDaGVja291dCIsIl9yZWY2IiwiX2NhbGxlZTYiLCJwcm9jZWVkIiwicXVvdGVkIiwiam9iRGF0YSIsImRyYWZ0cyIsImhhc1NhdmVkIiwiX2NvbnRleHQ2Iiwib3duRHJhZnRzIiwiY2xpZW50RmlsZXMiLCJzb21lIiwiZHJhZnQiLCJfZHJhZnQkdGVtcGxhdGVEYXRhIiwicHJvZHVjdElkIiwidGVtcGxhdGVEYXRhIiwiX3JlZjciLCJfY2FsbGVlNSIsImRyYWZ0Sm9iRGF0YSIsIl9jb250ZXh0NSIsIl94MiIsIl94IiwiYWRkVG9DYXJ0IiwiX2NhbGxlZTciLCJfY29udGV4dDciLCJidXlOb3ciLCJfY2FsbGVlOCIsIl9jb250ZXh0OCIsImdldFN1Ym1pdFF1b3RlIiwiX2NhbGxlZTkiLCJfY29udGV4dDkiLCJQcm92aWRlciJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L01lcmNoaVByb2R1Y3RGb3JtUHJvdmlkZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50JztcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIFJlYWN0Tm9kZSwgdXNlQ29udGV4dCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IGZldGNoSm9iUXVvdGUgfSBmcm9tICcuLi9hY3Rpb25zL2pvYnMnO1xuaW1wb3J0IHsgcHJvZHVjdEhhc0dyb3VwcyB9IGZyb20gJy4uL3V0aWxzL3Byb2R1Y3RzJztcbmltcG9ydCB7IGdldE1lcmNoaVNvdXJjZUpvYlRhZ3MgfSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IERyYWZ0VGVtcGxhdGVEYXRhIH0gZnJvbSAnLi4vdXRpbHMvdHlwZXMnO1xuaW1wb3J0IHsgcHJvZHVjdEFsbG93c0NsaWVudERlc2lnbiB9IGZyb20gJy4uL3V0aWxzL2RyYWZ0VGVtcGxhdGVzJztcbmltcG9ydCB7XG4gIGxvYWRBcnR3b3JrUGF0aCxcbiAgbG9hZERlc2lnbk1ldGhvZCxcbiAgbG9hZERyYWZ0cyxcbiAgbG9hZFRlbXBsYXRlVXBsb2FkcyxcbiAgdGVtcGxhdGVDaGVja291dEpvYixcbn0gZnJvbSAnLi4vdXRpbHMvZHJhZnRTdG9yYWdlJztcbmltcG9ydCBQcm9kdWN0RHJhZnRzSG9zdCBmcm9tICcuLi9jb21wb25lbnRzL2RyYWZ0cy9Qcm9kdWN0RHJhZnRzSG9zdCc7XG5pbXBvcnQge1xuICBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkLFxuICBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMsXG4gIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzLFxufSBmcm9tICcuLi9jb21wb25lbnRzL3V0aWxzJztcbmltcG9ydCB7IHByaWNpbmcgfSBmcm9tICdAbWVyY2hpL3Nkayc7XG5pbXBvcnQgeyB0b1NlbGVjdGlvbnMgfSBmcm9tICcuLi91dGlscy9zZWxlY3Rpb25zJztcbmltcG9ydCB7IHNjcm9sbFRvRmlyc3RGb3JtRXJyb3IgfSBmcm9tICcuLi91dGlscy9mb3JtRXJyb3JzJztcbmltcG9ydCB7XG4gIGJ1aWxkRGVzaXJlZFZhcmlhdGlvbnNGcm9tRmllbGRzLFxuICBwcm9kdWN0RmllbGRzRm9yUHJpY2luZ0ZpZWxkcyxcbiAgcmVjb25jaWxlVmFyaWF0aW9ucyxcbn0gZnJvbSAnLi4vdXRpbHMvcmVjb25jaWxlVmFyaWF0aW9ucyc7XG5pbXBvcnQge1xuICBncm91cEZpZWxkVGVtcGxhdGVzIGFzIGdyb3VwRmllbGRUZW1wbGF0ZXNGcm9tUHJvZHVjdCxcbiAgbGlmdEluZGVwZW5kZW50VmFyaWF0aW9uc0Zyb21Hcm91cHMsXG4gIHNhbml0aXplUHJvZHVjdFZhcmlhdGlvbkZpZWxkcyxcbn0gZnJvbSAnLi4vdXRpbHMvdmFyaWF0aW9uRmllbGRzJztcbnR5cGUgRm9ybU1ldGhvZHMgPSBSZXR1cm5UeXBlPHR5cGVvZiB1c2VGb3JtPjtcblxuaW50ZXJmYWNlIElNZXJjaGlQcm9kdWN0Rm9ybSB7XG4gIGFwaVVybD86IHN0cmluZztcbiAgYWxsb3dBZGRUb0NhcnQ/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+IHZvaWQsXG4gICkgPT4ge1xuICAgIGlmICghKGF3YWl0IHZhbGlkYXRlRm9ybSgpKSkgcmV0dXJuO1xuICAgIGNvbnN0IHF1b3RlZCA9IGF3YWl0IGdldFF1b3RlKHsgaW1tZWRpYXRlOiB0cnVlIH0pO1xuICAgIGlmICghcXVvdGVkKSByZXR1cm47XG4gICAgY29uc3Qgam9iRGF0YSA9IGxpZnRJbmRlcGVuZGVudFZhcmlhdGlvbnNGcm9tR3JvdXBzKHF1b3RlZCwgcHJvZHVjdCk7XG5cbiAgICBpZiAoIXByb2R1Y3RBbGxvd3NDbGllbnREZXNpZ24oaW5pdFByb2R1Y3QpKSB7XG4gICAgICBwcm9jZWVkKGpvYkRhdGEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChsb2FkQXJ0d29ya1BhdGgoaW5pdFByb2R1Y3QuaWQpID09PSAnc2VydmljZScpIHtcbiAgICAgIHByb2NlZWQoe1xuICAgICAgICAuLi5qb2JEYXRhLFxuICAgICAgICBvd25EcmFmdHM6IFtdLFxuICAgICAgICBjbGllbnRGaWxlczogW10sXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAobG9hZERlc2lnbk1ldGhvZChpbml0UHJvZHVjdC5pZCkgPT09ICd0ZW1wbGF0ZXMnKSB7XG4gICAgICBwcm9jZWVkKHRlbXBsYXRlQ2hlY2tvdXRKb2Ioam9iRGF0YSwgbG9hZFRlbXBsYXRlVXBsb2Fkcyhpbml0UHJvZHVjdC5pZCkpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcmFmdHMgPSBsb2FkRHJhZnRzKGluaXRQcm9kdWN0LmlkKTtcbiAgICBjb25zdCBoYXNTYXZlZCA9IGRyYWZ0cy5zb21lKFxuICAgICAgKGRyYWZ0OiBEcmFmdFRlbXBsYXRlRGF0YSkgPT5cbiAgICAgICAgZHJhZnQucHJvZHVjdElkID09PSBpbml0UHJvZHVjdC5pZCAmJiBkcmFmdC50ZW1wbGF0ZURhdGE/Lmxlbmd0aFxuICAgICk7XG4gICAgaWYgKGhhc1NhdmVkKSB7XG4gICAgICBzZXREcmFmdEFwcHByb3ZlQ2FsbGJhY2soKCkgPT4gYXN5bmMgKGRyYWZ0Sm9iRGF0YTogYW55KSA9PiB7XG4gICAgICAgIHByb2NlZWQoZHJhZnRKb2JEYXRhIHx8IGpvYkRhdGEpO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICB9KTtcbiAgICAgIHNldElzRHJhZnRNb2RhbE9wZW4odHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvY2VlZChqb2JEYXRhKTtcbiAgfTtcblxuICBjb25zdCBhZGRUb0NhcnQgPSBvbkFkZFRvQ2FydFxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBpZiAoIWpvYkRhdGEucHJvZHVjdCkgam9iRGF0YS5wcm9kdWN0ID0geyBpZDogaW5pdFByb2R1Y3QuaWQgfTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25BZGRUb0NhcnQoeyAuLi5qb2JEYXRhLCB0YWdzIH0pO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBidXlOb3cgPSBvbkJ1eU5vd1xuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkJ1eU5vdyh7IC4uLmpvYkRhdGEgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgOiB1bmRlZmluZWQ7XG4gIGNvbnN0IGdldFN1Ym1pdFF1b3RlID0gb25HZXRRdW90ZVxuICAgID8gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcnVuRHJhZnRDaGVja291dCgoam9iRGF0YSkgPT4ge1xuICAgICAgICBvbkdldFF1b3RlKHsgLi4uam9iRGF0YSB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICA6IHVuZGVmaW5lZDtcblxuICByZXR1cm4gKFxuICAgIDxNZXJjaGlQcm9kdWN0Rm9ybUNvbnRleHQuUHJvdmlkZXJcbiAgICAgIHZhbHVlPXtcbiAgICAgICAge1xuICAgICAgICAgIGFwaVVybCxcbiAgICAgICAgICBhbGxvd0FkZFRvQ2FydCxcbiAgICAgICAgICBidG5OYW1lQWRkVG9DYXJ0LFxuICAgICAgICAgIGNsYXNzTmFtZUFsZXJ0U2VsbGVyRWRpdGFibGUsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uU3VibWl0LFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwQWRkLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbkdyb3VwUmVtb3ZlLFxuICAgICAgICAgIGNsYXNzTmFtZUJ1dHRvbnNTdWJtaXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lQnV0dG9uQXBwcm92ZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVCdXR0b25DbG9zZURyYWZ0cyxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEJ1dHRvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEN0YSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdEdyb3VwQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0R3JvdXBUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVEcmFmdFNoZWV0LFxuICAgICAgICAgIGNsYXNzTmFtZURyYWZ0VG9vbGJhcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVVwbG9hZFRleHRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZVByZXZpZXdJY29uV3JhcHBlcixcbiAgICAgICAgICBjbGFzc05hbWVGaWxlVXBsb2FkQnV0dG9uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uU2Vjb25kLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVVcGxvYWRJY29uQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUZpbGVMaXN0SXRlbSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlQnV0dG9uRG93bmxvYWQsXG4gICAgICAgICAgY2xhc3NOYW1lRmlsZUJ1dHRvbkRlbGV0ZSxcbiAgICAgICAgICBjbGFzc05hbWVGaWxlTGlzdEl0ZW1Db250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lR3JvdXBzQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZUdyb3VwUHJpY2VDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXQsXG4gICAgICAgICAgY2xhc3NOYW1lSW5wdXRDb250YWluZXIsXG4gICAgICAgICAgY2xhc3NOYW1lSW52ZW50b3J5U3RhdHVzLFxuICAgICAgICAgIGNsYXNzTmFtZU9wdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbnB1dCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25MYWJlbCxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25TdXBlcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25zQ2hlY2tib3hSYWRpb0NvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZSxcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25JbWFnZUNvbnRhaW5lcixcbiAgICAgICAgICBjbGFzc05hbWVPcHRpb25Db2xvdXIsXG4gICAgICAgICAgY2xhc3NOYW1lT3B0aW9uQ29sb3VyQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUaXRsZSxcbiAgICAgICAgICBjbGFzc05hbWVQcm9kdWN0T3JpZ2luVGl0bGUsXG4gICAgICAgICAgY2xhc3NOYW1lUHJvZHVjdFRvdGFsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVByb2R1Y3RUb3RhbCxcbiAgICAgICAgICBjbGFzc05hbWVRdWFudGl0eUxhYmVsQ29udGFpbmVyLFxuICAgICAgICAgIGNsYXNzTmFtZVVuaXRQcmljZSxcbiAgICAgICAgICBjbGFzc05hbWVQcmljZU1hdHJpeCxcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgY29udHJvbCxcbiAgICAgICAgICBkcmFmdEFwcHJvdmVDYWxsYmFjayxcbiAgICAgICAgICBnZXRRdW90ZSxcbiAgICAgICAgICBoY2FwdGNoYVNpdGVLZXksXG4gICAgICAgICAgcHJpY2luZ1J1bGVzLFxuICAgICAgICAgIGhpZGVDb3N0LFxuICAgICAgICAgIGhpZGVDb3VudHJ5LFxuICAgICAgICAgIGhpZGVDYWxjdWxhdGVkUHJpY2UsXG4gICAgICAgICAgaGlkZURvbWFpbk5hbWUsXG4gICAgICAgICAgaGlkZVF1YW50aXR5RmllbGQsXG4gICAgICAgICAgaGlkZVJlcXVlc3RRdW90YXRpb25CdXR0b24sXG4gICAgICAgICAgaGlkZVBheW1lbnRVcGZyb250QnV0dG9uLFxuICAgICAgICAgIGhpZGVUaXRsZSxcbiAgICAgICAgICBob29rRm9ybSxcbiAgICAgICAgICBpc0NhcnRJdGVtLFxuICAgICAgICAgIGlzRHJhZnREZXNpZ25lck9wZW4sXG4gICAgICAgICAgaXNEcmFmdE1vZGFsT3BlbixcbiAgICAgICAgICBjb25zdW1lUGVuZGluZ0NoZWNrb3V0LFxuICAgICAgICAgIGpvYixcbiAgICAgICAgICBsb2FkaW5nLFxuICAgICAgICAgIGludmVudG9yeUxvYWRpbmcsXG4gICAgICAgICAgb25BZGRUb0NhcnQ6IGFkZFRvQ2FydCxcbiAgICAgICAgICBvbkJ1eU5vdzogYnV5Tm93LFxuICAgICAgICAgIG9uR2V0UXVvdGU6IGdldFN1Ym1pdFF1b3RlLFxuICAgICAgICAgIG9uU3VibWl0LFxuICAgICAgICAgIHByb2R1Y3QsXG4gICAgICAgICAgcHJvZHVjdEZvcm1JZCxcbiAgICAgICAgICBzZXRDbGllbnQsXG4gICAgICAgICAgc2V0SXNEcmFmdERlc2lnbmVyT3BlbixcbiAgICAgICAgICBzZXRJc0RyYWZ0TW9kYWxPcGVuLFxuICAgICAgICAgIHNldEpvYixcbiAgICAgICAgICBzZXRMb2FkaW5nLFxuICAgICAgICAgIHNob3dBbGVydCxcbiAgICAgICAgICBzaG93Q3VycmVuY3ksXG4gICAgICAgICAgc2hvd0N1cnJlbmN5Q29kZSxcbiAgICAgICAgICBzaG93RmVhdHVyZURlYWRsaW5lLFxuICAgICAgICAgIHNob3dHcm91cEJ1eVN0YXR1cyxcbiAgICAgICAgICBzaG93UHJpY2VNYXRyaXgsXG4gICAgICAgICAgc2hvd1VuaXRQcmljZSxcbiAgICAgICAgfSBhcyBhbnlcbiAgICAgIH1cbiAgICA+XG4gICAgICB7cHJvZHVjdEZvcm1JZCA/IChcbiAgICAgICAgPGZvcm0gaWQ9e3Byb2R1Y3RGb3JtSWR9IG9uU3VibWl0PXtkb1N1Ym1pdH0+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Zvcm0+XG4gICAgICApIDogY2hpbGRyZW59XG4gICAgICA8UHJvZHVjdERyYWZ0c0hvc3QgLz5cbiAgICA8L01lcmNoaVByb2R1Y3RGb3JtQ29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7O0FBQUMsU0FBQUEsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFYLENBQUEsR0FBQVMsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQVAsQ0FBQSxHQUFBQSxDQUFBLENBQUFZLE1BQUEsV0FBQUwsQ0FBQSxXQUFBRSxNQUFBLENBQUFJLHdCQUFBLENBQUFQLENBQUEsRUFBQUMsQ0FBQSxFQUFBTyxVQUFBLE9BQUFOLENBQUEsQ0FBQU8sSUFBQSxDQUFBQyxLQUFBLENBQUFSLENBQUEsRUFBQVIsQ0FBQSxZQUFBUSxDQUFBO0FBQUEsU0FBQVMsY0FBQVgsQ0FBQSxhQUFBQyxD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
|
|
@@ -26,6 +26,8 @@ export declare function checkoutClientFiles(files: TemplateUpload[]): {
|
|
|
26
26
|
};
|
|
27
27
|
objectId: string;
|
|
28
28
|
}[];
|
|
29
|
+
/** Attach reuploaded templates as print files and as the job's client draft. */
|
|
30
|
+
export declare function templateCheckoutJob(jobData: any, files: TemplateUpload[]): any;
|
|
29
31
|
export declare function pruneDrafts(drafts: DraftTemplateData[], groupCount: number): DraftTemplateData[];
|
|
30
32
|
export declare function savedPreview(drafts: DraftTemplateData[], groupIndex: number, templateId: number): RenderedDraftPreview | undefined;
|
|
31
33
|
export declare function isPreviewComplete(preview?: RenderedDraftPreview | null): boolean;
|
|
@@ -96,6 +96,27 @@ export function checkoutClientFiles(files) {
|
|
|
96
96
|
};
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
|
+
|
|
100
|
+
/** Attach reuploaded templates as print files and as the job's client draft. */
|
|
101
|
+
export function templateCheckoutJob(jobData, files) {
|
|
102
|
+
var clientFiles = checkoutClientFiles(files);
|
|
103
|
+
var next = _objectSpread(_objectSpread({}, jobData), {}, {
|
|
104
|
+
clientFiles: clientFiles
|
|
105
|
+
});
|
|
106
|
+
if (!clientFiles.length) {
|
|
107
|
+
delete next.ownDrafts;
|
|
108
|
+
return next;
|
|
109
|
+
}
|
|
110
|
+
next.ownDrafts = [{
|
|
111
|
+
accepted: Math.floor(Date.now() / 1000),
|
|
112
|
+
images: clientFiles.map(function (entry) {
|
|
113
|
+
return {
|
|
114
|
+
id: entry.file.id
|
|
115
|
+
};
|
|
116
|
+
})
|
|
117
|
+
}];
|
|
118
|
+
return next;
|
|
119
|
+
}
|
|
99
120
|
export function pruneDrafts(drafts, groupCount) {
|
|
100
121
|
return (drafts || []).filter(function (draft) {
|
|
101
122
|
return draft.groupIndex < groupCount;
|
|
@@ -192,4 +213,4 @@ export function completeGroupCount(product, formValues, drafts) {
|
|
|
192
213
|
total: count
|
|
193
214
|
};
|
|
194
215
|
}
|
|
195
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsImFydHdvcmtQYXRoS2V5IiwibG9hZEFydHdvcmtQYXRoIiwiX3VudXNlZDIiLCJzYXZlQXJ0d29ya1BhdGgiLCJwYXRoIiwiZGVzaWduTWV0aG9kS2V5IiwibG9hZERlc2lnbk1ldGhvZCIsIl91bnVzZWQzIiwic2F2ZURlc2lnbk1ldGhvZCIsIm1ldGhvZCIsInRlbXBsYXRlVXBsb2Fkc0tleSIsImxvYWRUZW1wbGF0ZVVwbG9hZHMiLCJmaWx0ZXIiLCJmaWxlIiwiaWQiLCJfdW51c2VkNCIsInNhdmVUZW1wbGF0ZVVwbG9hZHMiLCJmaWxlcyIsImNoZWNrb3V0Q2xpZW50RmlsZXMiLCJtYXAiLCJvYmplY3RJZCIsIlN0cmluZyIsInBydW5lRHJhZnRzIiwiZ3JvdXBDb3VudCIsImRyYWZ0IiwiZ3JvdXBJbmRleCIsInNhdmVkUHJldmlldyIsInRlbXBsYXRlSWQiLCJncm91cCIsImZpbmQiLCJ0ZW1wbGF0ZURhdGEiLCJpdGVtIiwiaXNQcmV2aWV3Q29tcGxldGUiLCJwcmV2aWV3IiwiQm9vbGVhbiIsImNhbnZhc1ByZXZpZXciLCJ1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQiLCJuZXh0IiwiX29iamVjdFNwcmVhZCIsIl90b0NvbnN1bWFibGVBcnJheSIsInByZXZpZXdzIiwicHVzaCIsImluZGV4IiwiZmluZEluZGV4IiwicmVxdWlyZWREZXNpZ25TbG90cyIsInByb2R1Y3QiLCJmb3JtVmFsdWVzIiwiY291bnQiLCJpbmRlcGVuZGVudCIsInZhcmlhdGlvbnMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2xvdHMiLCJfZ3JvdXBzJGdyb3VwSW5kZXgiLCJncm91cFZhcnMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidGVtcGxhdGUiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVkIiwiX3JlZiIsImNvbXBsZXRlR3JvdXBDb3VudCIsImNvbXBsZXRlIiwiX2xvb3AiLCJfZ3JvdXBzJGdyb3VwSW5kZXgyIiwidGVtcGxhdGVzIiwiYWxsU2F2ZWQiLCJldmVyeSIsInRvdGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEcmFmdFRlbXBsYXRlRGF0YSxcbiAgUmVuZGVyZWREcmFmdFByZXZpZXcsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZGVzaWduR3JvdXBDb3VudCxcbiAgdGVtcGxhdGVzRm9yR3JvdXAsXG59IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwcm9kdWN0RHJhZnRUZW1wbGF0ZS0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWZ0cyhwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xuICAgIGlmICghcmF3KSByZXR1cm4gW107XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWQgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRHJhZnRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCksIEpTT04uc3RyaW5naWZ5KGRyYWZ0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShkcmFmdFN0b3JhZ2VLZXkocHJvZHVjdElkKSk7XG59XG5cbmV4cG9ydCB0eXBlIEFydHdvcmtQYXRoID0gJ3NlbGYnIHwgJ3NlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RBcnR3b3JrUGF0aC0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFydHdvcmtQYXRoKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogQXJ0d29ya1BhdGgge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnc2VsZic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQpKSA9PT0gJ3NlcnZpY2UnXG4gICAgICA/ICdzZXJ2aWNlJ1xuICAgICAgOiAnc2VsZic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnc2VsZic7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcnR3b3JrUGF0aChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIHBhdGg6IEFydHdvcmtQYXRoLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkKSwgcGF0aCk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2lnbk1ldGhvZCA9ICdkZXNpZ25lcicgfCAndGVtcGxhdGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVVwbG9hZCB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmlld1VybD86IHN0cmluZztcbiAgZG93bmxvYWRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3REZXNpZ25NZXRob2QtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZXNpZ25NZXRob2QocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEZXNpZ25NZXRob2Qge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnZGVzaWduZXInO1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCkpID09PSAndGVtcGxhdGVzJ1xuICAgICAgPyAndGVtcGxhdGVzJ1xuICAgICAgOiAnZGVzaWduZXInO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ2Rlc2lnbmVyJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURlc2lnbk1ldGhvZChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIG1ldGhvZDogRGVzaWduTWV0aG9kLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCksIG1ldGhvZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RUZW1wbGF0ZVVwbG9hZHMtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZVVwbG9hZHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBUZW1wbGF0ZVVwbG9hZFtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkLmZpbHRlcigoZmlsZSkgPT4gZmlsZT8uaWQgIT0gbnVsbCkgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlVGVtcGxhdGVVcGxvYWRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10sXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkKSwgSlNPTi5zdHJpbmdpZnkoZmlsZXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrb3V0Q2xpZW50RmlsZXMoZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgcmV0dXJuIChmaWxlcyB8fCBbXSlcbiAgICAuZmlsdGVyKChmaWxlKSA9PiBmaWxlPy5pZCAhPSBudWxsKVxuICAgIC5tYXAoKGZpbGUpID0+ICh7XG4gICAgICBmaWxlOiB7IGlkOiBmaWxlLmlkIH0sXG4gICAgICBvYmplY3RJZDogU3RyaW5nKGZpbGUuaWQpLFxuICAgIH0pKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBydW5lRHJhZnRzKFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4gIGdyb3VwQ291bnQ6IG51bWJlcixcbik6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICByZXR1cm4gKGRyYWZ0cyB8fCBbXSkuZmlsdGVyKChkcmFmdCkgPT4gZHJhZnQuZ3JvdXBJbmRleCA8IGdyb3VwQ291bnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZWRQcmV2aWV3KFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4gIGdyb3VwSW5kZXg6IG51bWJlcixcbiAgdGVtcGxhdGVJZDogbnVtYmVyLFxuKTogUmVuZGVyZWREcmFmdFByZXZpZXcgfCB1bmRlZmluZWQge1xuICBjb25zdCBncm91cCA9IChkcmFmdHMgfHwgW10pLmZpbmQoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4ID09PSBncm91cEluZGV4KTtcbiAgcmV0dXJuIChncm91cD8udGVtcGxhdGVEYXRhIHx8IFtdKS5maW5kKFxuICAgIChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlSWQgPT09IHRlbXBsYXRlSWRcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJldmlld0NvbXBsZXRlKHByZXZpZXc/OiBSZW5kZXJlZERyYWZ0UHJldmlldyB8IG51bGwpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4ocHJldmlldz8uZHJhZnQgJiYgcHJldmlldz8uY2FudmFzUHJldmlldyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgcHJvZHVjdElkOiBudW1iZXIsXG4gIGdyb3VwSW5kZXg6IG51bWJlcixcbiAgcHJldmlldzogUmVuZGVyZWREcmFmdFByZXZpZXcsXG4pOiBEcmFmdFRlbXBsYXRlRGF0YVtdIHtcbiAgY29uc3QgbmV4dCA9IChkcmFmdHMgfHwgW10pLm1hcCgoZHJhZnQpID0+ICh7XG4gICAgLi4uZHJhZnQsXG4gICAgdGVtcGxhdGVEYXRhOiBbLi4uKGRyYWZ0LnRlbXBsYXRlRGF0YSB8fCBbXSldLFxuICAgIHByZXZpZXdzOiBbLi4uKGRyYWZ0LnByZXZpZXdzIHx8IFtdKV0sXG4gIH0pKTtcbiAgbGV0IGdyb3VwID0gbmV4dC5maW5kKChkcmFmdCkgPT4gZHJhZnQuZ3JvdXBJbmRleCA9PT0gZ3JvdXBJbmRleCk7XG4gIGlmICghZ3JvdXApIHtcbiAgICBncm91cCA9IHsgZ3JvdXBJbmRleCwgcHJvZHVjdElkLCB0ZW1wbGF0ZURhdGE6IFtdLCBwcmV2aWV3czogW10gfTtcbiAgICBuZXh0LnB1c2goZ3JvdXApO1xuICB9XG4gIGNvbnN0IGluZGV4ID0gZ3JvdXAudGVtcGxhdGVEYXRhLmZpbmRJbmRleChcbiAgICAoaXRlbSkgPT4gaXRlbS50ZW1wbGF0ZUlkID09PSBwcmV2aWV3LnRlbXBsYXRlSWRcbiAgKTtcbiAgaWYgKGluZGV4ID49IDApIGdyb3VwLnRlbXBsYXRlRGF0YVtpbmRleF0gPSBwcmV2aWV3O1xuICBlbHNlIGdyb3VwLnRlbXBsYXRlRGF0YS5wdXNoKHByZXZpZXcpO1xuICByZXR1cm4gbmV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdDogYW55LCBmb3JtVmFsdWVzOiBhbnkpIHtcbiAgY29uc3QgY291bnQgPSBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICBjb25zdCBpbmRlcGVuZGVudCA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnMgfHwgW107XG4gIGNvbnN0IGdyb3VwcyA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnNHcm91cHMgfHwgW107XG4gIGNvbnN0IHNsb3RzOiB7IGdyb3VwSW5kZXg6IG51bWJlcjsgdGVtcGxhdGU6IGFueSB9W10gPSBbXTtcbiAgZm9yIChsZXQgZ3JvdXBJbmRleCA9IDA7IGdyb3VwSW5kZXggPCBjb3VudDsgZ3JvdXBJbmRleCArPSAxKSB7XG4gICAgY29uc3QgZ3JvdXBWYXJzID0gZ3JvdXBzW2dyb3VwSW5kZXhdPy52YXJpYXRpb25zIHx8IFtdO1xuICAgIGZvciAoY29uc3QgdGVtcGxhdGUgb2YgdGVtcGxhdGVzRm9yR3JvdXAocHJvZHVjdCwgaW5kZXBlbmRlbnQsIGdyb3VwVmFycykpIHtcbiAgICAgIHNsb3RzLnB1c2goeyBncm91cEluZGV4LCB0ZW1wbGF0ZSB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHNsb3RzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ0Rlc2lnblNsb3RzKFxuICBwcm9kdWN0OiBhbnksXG4gIGZvcm1WYWx1ZXM6IGFueSxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKSB7XG4gIGNvbnN0IHBydW5lZCA9IHBydW5lRHJhZnRzKGRyYWZ0cywgZGVzaWduR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzKSk7XG4gIHJldHVybiByZXF1aXJlZERlc2lnblNsb3RzKHByb2R1Y3QsIGZvcm1WYWx1ZXMpLmZpbHRlcihcbiAgICAoeyBncm91cEluZGV4LCB0ZW1wbGF0ZSB9KSA9PlxuICAgICAgIWlzUHJldmlld0NvbXBsZXRlKHNhdmVkUHJldmlldyhwcnVuZWQsIGdyb3VwSW5kZXgsIHRlbXBsYXRlLmlkKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0OiBhbnksIGZvcm1WYWx1ZXM6IGFueSwgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdKSB7XG4gIGNvbnN0IGNvdW50ID0gZGVzaWduR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzKTtcbiAgY29uc3QgaW5kZXBlbmRlbnQgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zIHx8IFtdO1xuICBjb25zdCBncm91cHMgPSBmb3JtVmFsdWVzPy52YXJpYXRpb25zR3JvdXBzIHx8IFtdO1xuICBsZXQgY29tcGxldGUgPSAwO1xuICBmb3IgKGxldCBncm91cEluZGV4ID0gMDsgZ3JvdXBJbmRleCA8IGNvdW50OyBncm91cEluZGV4ICs9IDEpIHtcbiAgICBjb25zdCB0ZW1wbGF0ZXMgPSB0ZW1wbGF0ZXNGb3JHcm91cChcbiAgICAgIHByb2R1Y3QsXG4gICAgICBpbmRlcGVuZGVudCxcbiAgICAgIGdyb3Vwc1tncm91cEluZGV4XT8udmFyaWF0aW9ucyB8fCBbXSxcbiAgICApO1xuICAgIGNvbnN0IGFsbFNhdmVkID0gdGVtcGxhdGVzLmV2ZXJ5KCh0ZW1wbGF0ZTogYW55KSA9PlxuICAgICAgaXNQcmV2aWV3Q29tcGxldGUoc2F2ZWRQcmV2aWV3KGRyYWZ0cywgZ3JvdXBJbmRleCwgdGVtcGxhdGUuaWQpKVxuICAgICk7XG4gICAgaWYgKGFsbFNhdmVkKSBjb21wbGV0ZSArPSAxO1xuICB9XG4gIHJldHVybiB7IGNvbXBsZXRlLCB0b3RhbDogY291bnQgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUlBLFNBQ0VBLGdCQUFnQixFQUNoQkMsaUJBQWlCLFFBQ1osa0JBQWtCO0FBRXpCLE9BQU8sU0FBU0MsZUFBZUEsQ0FBQ0MsU0FBMEIsRUFBVTtFQUNsRSwrQkFBQUMsTUFBQSxDQUErQkQsU0FBUztBQUMxQztBQUVBLE9BQU8sU0FBU0UsVUFBVUEsQ0FBQ0YsU0FBMEIsRUFBdUI7RUFDMUUsSUFBSSxPQUFPRyxNQUFNLEtBQUssV0FBVyxJQUFJSCxTQUFTLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRTtFQUNqRSxJQUFJO0lBQ0YsSUFBTUksR0FBRyxHQUFHRCxNQUFNLENBQUNFLFlBQVksQ0FBQ0MsT0FBTyxDQUFDUCxlQUFlLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQ25FLElBQUksQ0FBQ0ksR0FBRyxFQUFFLE9BQU8sRUFBRTtJQUNuQixJQUFNRyxNQUFNLEdBQUdDLElBQUksQ0FBQ0MsS0FBSyxDQUFDTCxHQUFHLENBQUM7SUFDOUIsT0FBT00sS0FBSyxDQUFDQyxPQUFPLENBQUNKLE1BQU0sQ0FBQyxHQUFHQSxNQUFNLEdBQUcsRUFBRTtFQUM1QyxDQUFDLENBQUMsT0FBQUssT0FBQSxFQUFNO0lBQ04sT0FBTyxFQUFFO0VBQ1g7QUFDRjtBQUVBLE9BQU8sU0FBU0MsVUFBVUEsQ0FDeEJiLFNBQTBCLEVBQzFCYyxNQUEyQixFQUNyQjtFQUNOLElBQUksT0FBT1gsTUFBTSxLQUFLLFdBQVcsSUFBSUgsU0FBUyxJQUFJLElBQUksRUFBRTtFQUN4REcsTUFBTSxDQUFDRSxZQUFZLENBQUNVLE9BQU8sQ0FBQ2hCLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDLEVBQUVRLElBQUksQ0FBQ1EsU0FBUyxDQUFDRixNQUFNLENBQUMsQ0FBQztBQUNqRjtBQUVBLE9BQU8sU0FBU0csV0FBV0EsQ0FBQ2pCLFNBQTBCLEVBQVE7RUFDNUQs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
|
|
216
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpZ25Hcm91cENvdW50IiwidGVtcGxhdGVzRm9yR3JvdXAiLCJkcmFmdFN0b3JhZ2VLZXkiLCJwcm9kdWN0SWQiLCJjb25jYXQiLCJsb2FkRHJhZnRzIiwid2luZG93IiwicmF3IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsInBhcnNlZCIsIkpTT04iLCJwYXJzZSIsIkFycmF5IiwiaXNBcnJheSIsIl91bnVzZWQiLCJzYXZlRHJhZnRzIiwiZHJhZnRzIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsImNsZWFyRHJhZnRzIiwicmVtb3ZlSXRlbSIsImFydHdvcmtQYXRoS2V5IiwibG9hZEFydHdvcmtQYXRoIiwiX3VudXNlZDIiLCJzYXZlQXJ0d29ya1BhdGgiLCJwYXRoIiwiZGVzaWduTWV0aG9kS2V5IiwibG9hZERlc2lnbk1ldGhvZCIsIl91bnVzZWQzIiwic2F2ZURlc2lnbk1ldGhvZCIsIm1ldGhvZCIsInRlbXBsYXRlVXBsb2Fkc0tleSIsImxvYWRUZW1wbGF0ZVVwbG9hZHMiLCJmaWx0ZXIiLCJmaWxlIiwiaWQiLCJfdW51c2VkNCIsInNhdmVUZW1wbGF0ZVVwbG9hZHMiLCJmaWxlcyIsImNoZWNrb3V0Q2xpZW50RmlsZXMiLCJtYXAiLCJvYmplY3RJZCIsIlN0cmluZyIsInRlbXBsYXRlQ2hlY2tvdXRKb2IiLCJqb2JEYXRhIiwiY2xpZW50RmlsZXMiLCJuZXh0IiwiX29iamVjdFNwcmVhZCIsImxlbmd0aCIsIm93bkRyYWZ0cyIsImFjY2VwdGVkIiwiTWF0aCIsImZsb29yIiwiRGF0ZSIsIm5vdyIsImltYWdlcyIsImVudHJ5IiwicHJ1bmVEcmFmdHMiLCJncm91cENvdW50IiwiZHJhZnQiLCJncm91cEluZGV4Iiwic2F2ZWRQcmV2aWV3IiwidGVtcGxhdGVJZCIsImdyb3VwIiwiZmluZCIsInRlbXBsYXRlRGF0YSIsIml0ZW0iLCJpc1ByZXZpZXdDb21wbGV0ZSIsInByZXZpZXciLCJCb29sZWFuIiwiY2FudmFzUHJldmlldyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIl90b0NvbnN1bWFibGVBcnJheSIsInByZXZpZXdzIiwicHVzaCIsImluZGV4IiwiZmluZEluZGV4IiwicmVxdWlyZWREZXNpZ25TbG90cyIsInByb2R1Y3QiLCJmb3JtVmFsdWVzIiwiY291bnQiLCJpbmRlcGVuZGVudCIsInZhcmlhdGlvbnMiLCJncm91cHMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2xvdHMiLCJfZ3JvdXBzJGdyb3VwSW5kZXgiLCJncm91cFZhcnMiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlciIsIl9zdGVwIiwicyIsIm4iLCJkb25lIiwidGVtcGxhdGUiLCJ2YWx1ZSIsImVyciIsImUiLCJmIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVkIiwiX3JlZiIsImNvbXBsZXRlR3JvdXBDb3VudCIsImNvbXBsZXRlIiwiX2xvb3AiLCJfZ3JvdXBzJGdyb3VwSW5kZXgyIiwidGVtcGxhdGVzIiwiYWxsU2F2ZWQiLCJldmVyeSIsInRvdGFsIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEcmFmdFRlbXBsYXRlRGF0YSxcbiAgUmVuZGVyZWREcmFmdFByZXZpZXcsXG59IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtcbiAgZGVzaWduR3JvdXBDb3VudCxcbiAgdGVtcGxhdGVzRm9yR3JvdXAsXG59IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwcm9kdWN0RHJhZnRUZW1wbGF0ZS0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZERyYWZ0cyhwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyk6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByYXcgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCkpO1xuICAgIGlmICghcmF3KSByZXR1cm4gW107XG4gICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShyYXcpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHBhcnNlZCkgPyBwYXJzZWQgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlRHJhZnRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZHJhZnRTdG9yYWdlS2V5KHByb2R1Y3RJZCksIEpTT04uc3RyaW5naWZ5KGRyYWZ0cykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEcmFmdHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShkcmFmdFN0b3JhZ2VLZXkocHJvZHVjdElkKSk7XG59XG5cbmV4cG9ydCB0eXBlIEFydHdvcmtQYXRoID0gJ3NlbGYnIHwgJ3NlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RBcnR3b3JrUGF0aC0ke3Byb2R1Y3RJZH1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9hZEFydHdvcmtQYXRoKHByb2R1Y3RJZDogbnVtYmVyIHwgc3RyaW5nKTogQXJ0d29ya1BhdGgge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnc2VsZic7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhcnR3b3JrUGF0aEtleShwcm9kdWN0SWQpKSA9PT0gJ3NlcnZpY2UnXG4gICAgICA/ICdzZXJ2aWNlJ1xuICAgICAgOiAnc2VsZic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiAnc2VsZic7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcnR3b3JrUGF0aChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIHBhdGg6IEFydHdvcmtQYXRoLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oYXJ0d29ya1BhdGhLZXkocHJvZHVjdElkKSwgcGF0aCk7XG59XG5cbmV4cG9ydCB0eXBlIERlc2lnbk1ldGhvZCA9ICdkZXNpZ25lcicgfCAndGVtcGxhdGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVVwbG9hZCB7XG4gIGlkOiBudW1iZXIgfCBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdmlld1VybD86IHN0cmluZztcbiAgZG93bmxvYWRVcmw/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNpZ25NZXRob2RLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3REZXNpZ25NZXRob2QtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWREZXNpZ25NZXRob2QocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBEZXNpZ25NZXRob2Qge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgcHJvZHVjdElkID09IG51bGwpIHJldHVybiAnZGVzaWduZXInO1xuICB0cnkge1xuICAgIHJldHVybiB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCkpID09PSAndGVtcGxhdGVzJ1xuICAgICAgPyAndGVtcGxhdGVzJ1xuICAgICAgOiAnZGVzaWduZXInO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gJ2Rlc2lnbmVyJztcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURlc2lnbk1ldGhvZChcbiAgcHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcsXG4gIG1ldGhvZDogRGVzaWduTWV0aG9kLFxuKTogdm9pZCB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCBwcm9kdWN0SWQgPT0gbnVsbCkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oZGVzaWduTWV0aG9kS2V5KHByb2R1Y3RJZCksIG1ldGhvZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHByb2R1Y3RUZW1wbGF0ZVVwbG9hZHMtJHtwcm9kdWN0SWR9YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZVVwbG9hZHMocHJvZHVjdElkOiBudW1iZXIgfCBzdHJpbmcpOiBUZW1wbGF0ZVVwbG9hZFtdIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm4gW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmF3ID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRlbXBsYXRlVXBsb2Fkc0tleShwcm9kdWN0SWQpKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KTtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwYXJzZWQpID8gcGFyc2VkLmZpbHRlcigoZmlsZSkgPT4gZmlsZT8uaWQgIT0gbnVsbCkgOiBbXTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlVGVtcGxhdGVVcGxvYWRzKFxuICBwcm9kdWN0SWQ6IG51bWJlciB8IHN0cmluZyxcbiAgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10sXG4pOiB2b2lkIHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHByb2R1Y3RJZCA9PSBudWxsKSByZXR1cm47XG4gIHdpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0ZW1wbGF0ZVVwbG9hZHNLZXkocHJvZHVjdElkKSwgSlNPTi5zdHJpbmdpZnkoZmlsZXMpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrb3V0Q2xpZW50RmlsZXMoZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgcmV0dXJuIChmaWxlcyB8fCBbXSlcbiAgICAuZmlsdGVyKChmaWxlKSA9PiBmaWxlPy5pZCAhPSBudWxsKVxuICAgIC5tYXAoKGZpbGUpID0+ICh7XG4gICAgICBmaWxlOiB7IGlkOiBmaWxlLmlkIH0sXG4gICAgICBvYmplY3RJZDogU3RyaW5nKGZpbGUuaWQpLFxuICAgIH0pKTtcbn1cblxuLyoqIEF0dGFjaCByZXVwbG9hZGVkIHRlbXBsYXRlcyBhcyBwcmludCBmaWxlcyBhbmQgYXMgdGhlIGpvYidzIGNsaWVudCBkcmFmdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZUNoZWNrb3V0Sm9iKGpvYkRhdGE6IGFueSwgZmlsZXM6IFRlbXBsYXRlVXBsb2FkW10pIHtcbiAgY29uc3QgY2xpZW50RmlsZXMgPSBjaGVja291dENsaWVudEZpbGVzKGZpbGVzKTtcbiAgY29uc3QgbmV4dCA9IHsgLi4uam9iRGF0YSwgY2xpZW50RmlsZXMgfTtcbiAgaWYgKCFjbGllbnRGaWxlcy5sZW5ndGgpIHtcbiAgICBkZWxldGUgbmV4dC5vd25EcmFmdHM7XG4gICAgcmV0dXJuIG5leHQ7XG4gIH1cbiAgbmV4dC5vd25EcmFmdHMgPSBbe1xuICAgIGFjY2VwdGVkOiBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKSxcbiAgICBpbWFnZXM6IGNsaWVudEZpbGVzLm1hcCgoZW50cnkpID0+ICh7IGlkOiBlbnRyeS5maWxlLmlkIH0pKSxcbiAgfV07XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJ1bmVEcmFmdHMoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBDb3VudDogbnVtYmVyLFxuKTogRHJhZnRUZW1wbGF0ZURhdGFbXSB7XG4gIHJldHVybiAoZHJhZnRzIHx8IFtdKS5maWx0ZXIoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4IDwgZ3JvdXBDb3VudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzYXZlZFByZXZpZXcoXG4gIGRyYWZ0czogRHJhZnRUZW1wbGF0ZURhdGFbXSxcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICB0ZW1wbGF0ZUlkOiBudW1iZXIsXG4pOiBSZW5kZXJlZERyYWZ0UHJldmlldyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdyb3VwID0gKGRyYWZ0cyB8fCBbXSkuZmluZCgoZHJhZnQpID0+IGRyYWZ0Lmdyb3VwSW5kZXggPT09IGdyb3VwSW5kZXgpO1xuICByZXR1cm4gKGdyb3VwPy50ZW1wbGF0ZURhdGEgfHwgW10pLmZpbmQoXG4gICAgKGl0ZW0pID0+IGl0ZW0udGVtcGxhdGVJZCA9PT0gdGVtcGxhdGVJZFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcmV2aWV3Q29tcGxldGUocHJldmlldz86IFJlbmRlcmVkRHJhZnRQcmV2aWV3IHwgbnVsbCk6IGJvb2xlYW4ge1xuICByZXR1cm4gQm9vbGVhbihwcmV2aWV3Py5kcmFmdCAmJiBwcmV2aWV3Py5jYW52YXNQcmV2aWV3KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdChcbiAgZHJhZnRzOiBEcmFmdFRlbXBsYXRlRGF0YVtdLFxuICBwcm9kdWN0SWQ6IG51bWJlcixcbiAgZ3JvdXBJbmRleDogbnVtYmVyLFxuICBwcmV2aWV3OiBSZW5kZXJlZERyYWZ0UHJldmlldyxcbik6IERyYWZ0VGVtcGxhdGVEYXRhW10ge1xuICBjb25zdCBuZXh0ID0gKGRyYWZ0cyB8fCBbXSkubWFwKChkcmFmdCkgPT4gKHtcbiAgICAuLi5kcmFmdCxcbiAgICB0ZW1wbGF0ZURhdGE6IFsuLi4oZHJhZnQudGVtcGxhdGVEYXRhIHx8IFtdKV0sXG4gICAgcHJldmlld3M6IFsuLi4oZHJhZnQucHJldmlld3MgfHwgW10pXSxcbiAgfSkpO1xuICBsZXQgZ3JvdXAgPSBuZXh0LmZpbmQoKGRyYWZ0KSA9PiBkcmFmdC5ncm91cEluZGV4ID09PSBncm91cEluZGV4KTtcbiAgaWYgKCFncm91cCkge1xuICAgIGdyb3VwID0geyBncm91cEluZGV4LCBwcm9kdWN0SWQsIHRlbXBsYXRlRGF0YTogW10sIHByZXZpZXdzOiBbXSB9O1xuICAgIG5leHQucHVzaChncm91cCk7XG4gIH1cbiAgY29uc3QgaW5kZXggPSBncm91cC50ZW1wbGF0ZURhdGEuZmluZEluZGV4KFxuICAgIChpdGVtKSA9PiBpdGVtLnRlbXBsYXRlSWQgPT09IHByZXZpZXcudGVtcGxhdGVJZFxuICApO1xuICBpZiAoaW5kZXggPj0gMCkgZ3JvdXAudGVtcGxhdGVEYXRhW2luZGV4XSA9IHByZXZpZXc7XG4gIGVsc2UgZ3JvdXAudGVtcGxhdGVEYXRhLnB1c2gocHJldmlldyk7XG4gIHJldHVybiBuZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVxdWlyZWREZXNpZ25TbG90cyhwcm9kdWN0OiBhbnksIGZvcm1WYWx1ZXM6IGFueSkge1xuICBjb25zdCBjb3VudCA9IGRlc2lnbkdyb3VwQ291bnQocHJvZHVjdCwgZm9ybVZhbHVlcyk7XG4gIGNvbnN0IGluZGVwZW5kZW50ID0gZm9ybVZhbHVlcz8udmFyaWF0aW9ucyB8fCBbXTtcbiAgY29uc3QgZ3JvdXBzID0gZm9ybVZhbHVlcz8udmFyaWF0aW9uc0dyb3VwcyB8fCBbXTtcbiAgY29uc3Qgc2xvdHM6IHsgZ3JvdXBJbmRleDogbnVtYmVyOyB0ZW1wbGF0ZTogYW55IH1bXSA9IFtdO1xuICBmb3IgKGxldCBncm91cEluZGV4ID0gMDsgZ3JvdXBJbmRleCA8IGNvdW50OyBncm91cEluZGV4ICs9IDEpIHtcbiAgICBjb25zdCBncm91cFZhcnMgPSBncm91cHNbZ3JvdXBJbmRleF0/LnZhcmlhdGlvbnMgfHwgW107XG4gICAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiB0ZW1wbGF0ZXNGb3JHcm91cChwcm9kdWN0LCBpbmRlcGVuZGVudCwgZ3JvdXBWYXJzKSkge1xuICAgICAgc2xvdHMucHVzaCh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gc2xvdHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaXNzaW5nRGVzaWduU2xvdHMoXG4gIHByb2R1Y3Q6IGFueSxcbiAgZm9ybVZhbHVlczogYW55LFxuICBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10sXG4pIHtcbiAgY29uc3QgcHJ1bmVkID0gcHJ1bmVEcmFmdHMoZHJhZnRzLCBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpKTtcbiAgcmV0dXJuIHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykuZmlsdGVyKFxuICAgICh7IGdyb3VwSW5kZXgsIHRlbXBsYXRlIH0pID0+XG4gICAgICAhaXNQcmV2aWV3Q29tcGxldGUoc2F2ZWRQcmV2aWV3KHBydW5lZCwgZ3JvdXBJbmRleCwgdGVtcGxhdGUuaWQpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcGxldGVHcm91cENvdW50KHByb2R1Y3Q6IGFueSwgZm9ybVZhbHVlczogYW55LCBkcmFmdHM6IERyYWZ0VGVtcGxhdGVEYXRhW10pIHtcbiAgY29uc3QgY291bnQgPSBkZXNpZ25Hcm91cENvdW50KHByb2R1Y3QsIGZvcm1WYWx1ZXMpO1xuICBjb25zdCBpbmRlcGVuZGVudCA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnMgfHwgW107XG4gIGNvbnN0IGdyb3VwcyA9IGZvcm1WYWx1ZXM/LnZhcmlhdGlvbnNHcm91cHMgfHwgW107XG4gIGxldCBjb21wbGV0ZSA9IDA7XG4gIGZvciAobGV0IGdyb3VwSW5kZXggPSAwOyBncm91cEluZGV4IDwgY291bnQ7IGdyb3VwSW5kZXggKz0gMSkge1xuICAgIGNvbnN0IHRlbXBsYXRlcyA9IHRlbXBsYXRlc0Zvckdyb3VwKFxuICAgICAgcHJvZHVjdCxcbiAgICAgIGluZGVwZW5kZW50LFxuICAgICAgZ3JvdXBzW2dyb3VwSW5kZXhdPy52YXJpYXRpb25zIHx8IFtdLFxuICAgICk7XG4gICAgY29uc3QgYWxsU2F2ZWQgPSB0ZW1wbGF0ZXMuZXZlcnkoKHRlbXBsYXRlOiBhbnkpID0+XG4gICAgICBpc1ByZXZpZXdDb21wbGV0ZShzYXZlZFByZXZpZXcoZHJhZnRzLCBncm91cEluZGV4LCB0ZW1wbGF0ZS5pZCkpXG4gICAgKTtcbiAgICBpZiAoYWxsU2F2ZWQpIGNvbXBsZXRlICs9IDE7XG4gIH1cbiAgcmV0dXJuIHsgY29tcGxldGUsIHRvdGFsOiBjb3VudCB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBSUEsU0FDRUEsZ0JBQWdCLEVBQ2hCQyxpQkFBaUIsUUFDWixrQkFBa0I7QUFFekIsT0FBTyxTQUFTQyxlQUFlQSxDQUFDQyxTQUEwQixFQUFVO0VBQ2xFLCtCQUFBQyxNQUFBLENBQStCRCxTQUFTO0FBQzFDO0FBRUEsT0FBTyxTQUFTRSxVQUFVQSxDQUFDRixTQUEwQixFQUF1QjtFQUMxRSxJQUFJLE9BQU9HLE1B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QUNwRCxVQUFBb0UsSUFBQTtJQUFBLElBQUd6QyxVQUFVLEdBQUF5QyxJQUFBLENBQVZ6QyxVQUFVO01BQUVrQyxRQUFRLEdBQUFPLElBQUEsQ0FBUlAsUUFBUTtJQUFBLE9BQ3JCLENBQUMzQixpQkFBaUIsQ0FBQ04sWUFBWSxDQUFDdUMsTUFBTSxFQUFFeEMsVUFBVSxFQUFFa0MsUUFBUSxDQUFDM0QsRUFBRSxDQUFDLENBQUM7RUFBQSxDQUNyRSxDQUFDO0FBQ0g7QUFFQSxPQUFPLFNBQVNtRSxrQkFBa0JBLENBQUN4QixPQUFZLEVBQUVDLFVBQWUsRUFBRS9ELE1BQTJCLEVBQUU7RUFDN0YsSUFBTWdFLEtBQUssR0FBR2pGLGdCQUFnQixDQUFDK0UsT0FBTyxFQUFFQyxVQUFVLENBQUM7RUFDbkQsSUFBTUUsV0FBVyxHQUFHLENBQUFGLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFRyxVQUFVLEtBQUksRUFBRTtFQUNoRCxJQUFNQyxNQUFNLEdBQUcsQ0FBQUosVUFBVSxhQUFWQSxVQUFVLHVCQUFWQSxVQUFVLENBQUVLLGdCQUFnQixLQUFJLEVBQUU7RUFDakQsSUFBSW1CLFFBQVEsR0FBRyxDQUFDO0VBQUMsSUFBQUMsS0FBQSxZQUFBQSxNQUFBNUMsVUFBQSxFQUM2QztJQUFBLElBQUE2QyxtQkFBQTtJQUM1RCxJQUFNQyxTQUFTLEdBQUcxRyxpQkFBaUIsQ0FDakM4RSxPQUFPLEVBQ1BHLFdBQVcsRUFDWCxFQUFBd0IsbUJBQUEsR0FBQXRCLE1BQU0sQ0FBQ3ZCLFVBQVUsQ0FBQyxjQUFBNkMsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQnZCLFVBQVUsS0FBSSxFQUNwQyxDQUFDO0lBQ0QsSUFBTXlCLFFBQVEsR0FBR0QsU0FBUyxDQUFDRSxLQUFLLENBQUMsVUFBQ2QsUUFBYTtNQUFBLE9BQzdDM0IsaUJBQWlCLENBQUNOLFlBQVksQ0FBQzdDLE1BQU0sRUFBRTRDLFVBQVUsRUFBRWtDLFFBQVEsQ0FBQzNELEVBQUUsQ0FBQyxDQUFDO0lBQUEsQ0FDbEUsQ0FBQztJQUNELElBQUl3RSxRQUFRLEVBQUVKLFFBQVEsSUFBSSxDQUFDO0VBQzdCLENBQUM7RUFWRCxLQUFLLElBQUkzQyxVQUFVLEdBQUcsQ0FBQyxFQUFFQSxVQUFVLEdBQUdvQixLQUFLLEVBQUVwQixVQUFVLElBQUksQ0FBQztJQUFBNEMsS0FBQSxDQUFBNUMsVUFBQTtFQUFBO0VBVzVELE9BQU87SUFBRTJDLFFBQVEsRUFBUkEsUUFBUTtJQUFFTSxLQUFLLEVBQUU3QjtFQUFNLENBQUM7QUFDbkMiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -4,7 +4,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
4
4
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
5
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
7
|
-
import { artworkPathKey, clearDrafts, completeGroupCount, draftStorageKey, isPreviewComplete, checkoutClientFiles, loadArtworkPath, loadDesignMethod, loadDrafts, loadTemplateUploads, missingDesignSlots, pruneDrafts, requiredDesignSlots, savedPreview, saveArtworkPath, saveDesignMethod, saveDrafts, saveTemplateUploads, upsertGroupTemplateDraft } from './draftStorage';
|
|
7
|
+
import { artworkPathKey, clearDrafts, completeGroupCount, draftStorageKey, isPreviewComplete, checkoutClientFiles, templateCheckoutJob, loadArtworkPath, loadDesignMethod, loadDrafts, loadTemplateUploads, missingDesignSlots, pruneDrafts, requiredDesignSlots, savedPreview, saveArtworkPath, saveDesignMethod, saveDrafts, saveTemplateUploads, upsertGroupTemplateDraft } from './draftStorage';
|
|
8
8
|
import { FieldType } from './types';
|
|
9
9
|
var product = {
|
|
10
10
|
needsDrafting: true,
|
|
@@ -63,6 +63,26 @@ test('template uploads are remembered and shaped for checkout', function () {
|
|
|
63
63
|
},
|
|
64
64
|
objectId: '9'
|
|
65
65
|
}]);
|
|
66
|
+
var quoted = {
|
|
67
|
+
quantity: 100,
|
|
68
|
+
ownDrafts: []
|
|
69
|
+
};
|
|
70
|
+
var withUpload = templateCheckoutJob(quoted, loadTemplateUploads(44));
|
|
71
|
+
expect(withUpload.clientFiles).toEqual([{
|
|
72
|
+
file: {
|
|
73
|
+
id: 9
|
|
74
|
+
},
|
|
75
|
+
objectId: '9'
|
|
76
|
+
}]);
|
|
77
|
+
expect(withUpload.ownDrafts).toEqual([{
|
|
78
|
+
accepted: expect.any(Number),
|
|
79
|
+
images: [{
|
|
80
|
+
id: 9
|
|
81
|
+
}]
|
|
82
|
+
}]);
|
|
83
|
+
var withoutUpload = templateCheckoutJob(quoted, []);
|
|
84
|
+
expect(withoutUpload.clientFiles).toEqual([]);
|
|
85
|
+
expect(withoutUpload.ownDrafts).toBeUndefined();
|
|
66
86
|
saveTemplateUploads(44, []);
|
|
67
87
|
saveDesignMethod(44, 'designer');
|
|
68
88
|
});
|
|
@@ -146,4 +166,4 @@ test('gated templates drop out of required slots', function () {
|
|
|
146
166
|
}, []);
|
|
147
167
|
expect(shown[0].template.id).toBe(2);
|
|
148
168
|
});
|
|
149
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnR3b3JrUGF0aEtleSIsImNsZWFyRHJhZnRzIiwiY29tcGxldGVHcm91cENvdW50IiwiZHJhZnRTdG9yYWdlS2V5IiwiaXNQcmV2aWV3Q29tcGxldGUiLCJjaGVja291dENsaWVudEZpbGVzIiwibG9hZEFydHdvcmtQYXRoIiwibG9hZERlc2lnbk1ldGhvZCIsImxvYWREcmFmdHMiLCJsb2FkVGVtcGxhdGVVcGxvYWRzIiwibWlzc2luZ0Rlc2lnblNsb3RzIiwicHJ1bmVEcmFmdHMiLCJyZXF1aXJlZERlc2lnblNsb3RzIiwic2F2ZWRQcmV2aWV3Iiwic2F2ZUFydHdvcmtQYXRoIiwic2F2ZURlc2lnbk1ldGhvZCIsInNhdmVEcmFmdHMiLCJzYXZlVGVtcGxhdGVVcGxvYWRzIiwidXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0IiwiRmllbGRUeXBlIiwicHJvZHVjdCIsIm5lZWRzRHJhZnRpbmciLCJhbGxvd0NsaWVudERyYWZ0Q29udHJpYnV0aW9uIiwiZ3JvdXBWYXJpYXRpb25GaWVsZHMiLCJpZCIsImRyYWZ0VGVtcGxhdGVzIiwic2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9ucyIsImVkaXRlZEJ5VmFyaWF0aW9uRmllbGRzIiwidGVzdCIsImV4cGVjdCIsInRvQmUiLCJ3aW5kb3ciLCJsb2NhbFN0b3JhZ2UiLCJncm91cEluZGV4IiwicHJvZHVjdElkIiwidGVtcGxhdGVEYXRhIiwicHJldmlld3MiLCJ0b0hhdmVMZW5ndGgiLCJ0b0VxdWFsIiwicmVtb3ZlSXRlbSIsIm5hbWUiLCJ2aWV3VXJsIiwiZmlsZSIsIm9iamVjdElkIiwiX3NhdmVkUHJldmlldyIsImRyYWZ0cyIsInRlbXBsYXRlSWQiLCJkcmFmdCIsImNhbnZhc1ByZXZpZXciLCJmb3JtVmFsdWVzIiwidmFyaWF0aW9ucyIsInZhcmlhdGlvbnNHcm91cHMiLCJzYXZlZCIsImNvbXBsZXRlIiwidG90YWwiLCJnYXRlZCIsIl9vYmplY3RTcHJlYWQiLCJmaWVsZFR5cGUiLCJURVhUX0lOUFVUIiwiaGlkZGVuIiwidGVtcGxhdGUiLCJzaG93biIsInZhbHVlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0U3RvcmFnZS50ZXN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGFydHdvcmtQYXRoS2V5LFxuICBjbGVhckRyYWZ0cyxcbiAgY29tcGxldGVHcm91cENvdW50LFxuICBkcmFmdFN0b3JhZ2VLZXksXG4gIGlzUHJldmlld0NvbXBsZXRlLFxuICBjaGVja291dENsaWVudEZpbGVzLFxuICBsb2FkQXJ0d29ya1BhdGgsXG4gIGxvYWREZXNpZ25NZXRob2QsXG4gIGxvYWREcmFmdHMsXG4gIGxvYWRUZW1wbGF0ZVVwbG9hZHMsXG4gIG1pc3NpbmdEZXNpZ25TbG90cyxcbiAgcHJ1bmVEcmFmdHMsXG4gIHJlcXVpcmVkRGVzaWduU2xvdHMsXG4gIHNhdmVkUHJldmlldyxcbiAgc2F2ZUFydHdvcmtQYXRoLFxuICBzYXZlRGVzaWduTWV0aG9kLFxuICBzYXZlRHJhZnRzLFxuICBzYXZlVGVtcGxhdGVVcGxvYWRzLFxuICB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQsXG59IGZyb20gJy4vZHJhZnRTdG9yYWdlJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBwcm9kdWN0ID0ge1xuICBuZWVkc0RyYWZ0aW5nOiB0cnVlLFxuICBhbGxvd0NsaWVudERyYWZ0Q29udHJpYnV0aW9uOiB0cnVlLFxuICBncm91cFZhcmlhdGlvbkZpZWxkczogW3sgaWQ6IDkgfV0sXG4gIGRyYWZ0VGVtcGxhdGVzOiBbXG4gICAgeyBpZDogMSwgc2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9uczogW10sIGVkaXRlZEJ5VmFyaWF0aW9uRmllbGRzOiBbXSB9LFxuICBdLFxufTtcblxudGVzdCgnZHJhZnRTdG9yYWdlS2V5IGlzIHBlciBwcm9kdWN0JywgKCkgPT4ge1xuICBleHBlY3QoZHJhZnRTdG9yYWdlS2V5KDQ0KSkudG9CZSgncHJvZHVjdERyYWZ0VGVtcGxhdGUtNDQnKTtcbn0pO1xuXG50ZXN0KCdjbGVhckRyYWZ0cyByZW1vdmVzIHNhdmVkIGFydHdvcmsgZm9yIGEgcHJvZHVjdCcsICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gIHNhdmVEcmFmdHMoNDQsIFt7IGdyb3VwSW5kZXg6IDAsIHByb2R1Y3RJZDogNDQsIHRlbXBsYXRlRGF0YTogW10sIHByZXZpZXdzOiBbXSB9XSk7XG4gIGV4cGVjdChsb2FkRHJhZnRzKDQ0KSkudG9IYXZlTGVuZ3RoKDEpO1xuICBjbGVhckRyYWZ0cyg0NCk7XG4gIGV4cGVjdChsb2FkRHJhZnRzKDQ0KSkudG9FcXVhbChbXSk7XG59KTtcblxudGVzdCgnYXJ0d29yayBwYXRoIGRlZmF1bHRzIHRvIHNlbGYgYW5kIGNhbiBzd2l0Y2ggdG8gdGhlIGZyZWUgZGVzaWduIHNlcnZpY2UnLCAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhd2luZG93LmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYXJ0d29ya1BhdGhLZXkoNDQpKTtcbiAgZXhwZWN0KGxvYWRBcnR3b3JrUGF0aCg0NCkpLnRvQmUoJ3NlbGYnKTtcbiAgc2F2ZUFydHdvcmtQYXRoKDQ0LCAnc2VydmljZScpO1xuICBleHBlY3QobG9hZEFydHdvcmtQYXRoKDQ0KSkudG9CZSgnc2VydmljZScpO1xuICBzYXZlQXJ0d29ya1BhdGgoNDQsICdzZWxmJyk7XG4gIGV4cGVjdChsb2FkQXJ0d29ya1BhdGgoNDQpKS50b0JlKCdzZWxmJyk7XG59KTtcblxudGVzdCgndGVtcGxhdGUgdXBsb2FkcyBhcmUgcmVtZW1iZXJlZCBhbmQgc2hhcGVkIGZvciBjaGVja291dCcsICgpID0+IHtcbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF3aW5kb3cubG9jYWxTdG9yYWdlKSByZXR1cm47XG4gIGV4cGVjdChsb2FkRGVzaWduTWV0aG9kKDQ0KSkudG9CZSgnZGVzaWduZXInKTtcbiAgc2F2ZURlc2lnbk1ldGhvZCg0NCwgJ3RlbXBsYXRlcycpO1xuICBleHBlY3QobG9hZERlc2lnbk1ldGhvZCg0NCkpLnRvQmUoJ3RlbXBsYXRlcycpO1xuICBzYXZlVGVtcGxhdGVVcGxvYWRzKDQ0LCBbeyBpZDogOSwgbmFtZTogJ2Zyb250LnBuZycsIHZpZXdVcmw6ICdodHRwczovL2Nkbi5leGFtcGxlL2Zyb250LnBuZycgfV0pO1xuICBleHBlY3QobG9hZFRlbXBsYXRlVXBsb2Fkcyg0NCkpLnRvRXF1YWwoW1xuICAgIHsgaWQ6IDksIG5hbWU6ICdmcm9udC5wbmcnLCB2aWV3VXJsOiAnaHR0cHM6Ly9jZG4uZXhhbXBsZS9mcm9udC5wbmcnIH0sXG4gIF0pO1xuICBleHBlY3QoY2hlY2tvdXRDbGllbnRGaWxlcyhsb2FkVGVtcGxhdGVVcGxvYWRzKDQ0KSkpLnRvRXF1YWwoW1xuICAgIHsgZmlsZTogeyBpZDogOSB9LCBvYmplY3RJZDogJzknIH0sXG4gIF0pO1xuICBzYXZlVGVtcGxhdGVVcGxvYWRzKDQ0LCBbXSk7XG4gIHNhdmVEZXNpZ25NZXRob2QoNDQsICdkZXNpZ25lcicpO1xufSk7XG5cbnRlc3QoJ3Vwc2VydCBhbmQgcHJ1bmUga2VlcCBwZXItZ3JvdXAgdGVtcGxhdGUgZHJhZnRzJywgKCkgPT4ge1xuICBsZXQgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KFtdLCA0NCwgMCwge1xuICAgIHRlbXBsYXRlSWQ6IDEsXG4gICAgZHJhZnQ6ICdkYXRhOmEnLFxuICAgIGNhbnZhc1ByZXZpZXc6ICdkYXRhOmInLFxuICB9KTtcbiAgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KGRyYWZ0cywgNDQsIDEsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAnZGF0YTpjJyxcbiAgICBjYW52YXNQcmV2aWV3OiAnZGF0YTpkJyxcbiAgfSk7XG4gIGV4cGVjdChkcmFmdHMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KHNhdmVkUHJldmlldyhkcmFmdHMsIDEsIDEpPy5kcmFmdCkudG9CZSgnZGF0YTpjJyk7XG4gIGV4cGVjdChwcnVuZURyYWZ0cyhkcmFmdHMsIDEpKS50b0hhdmVMZW5ndGgoMSk7XG59KTtcblxudGVzdCgnbWlzc2luZ0Rlc2lnblNsb3RzIHJlcG9ydHMgdW5zYXZlZCBncm91cCB0ZW1wbGF0ZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGZvcm1WYWx1ZXMgPSB7XG4gICAgdmFyaWF0aW9uczogW10sXG4gICAgdmFyaWF0aW9uc0dyb3VwczogW3sgdmFyaWF0aW9uczogW10gfSwgeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfTtcbiAgZXhwZWN0KHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBbXSkpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgY29uc3Qgc2F2ZWQgPSB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQoW10sIDEsIDAsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAneCcsXG4gICAgY2FudmFzUHJldmlldzogJ3knLFxuICB9KTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgZXhwZWN0KGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvRXF1YWwoe1xuICAgIGNvbXBsZXRlOiAxLFxuICAgIHRvdGFsOiAyLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdpc1ByZXZpZXdDb21wbGV0ZSByZXF1aXJlcyBib3RoIHBuZ3MnLCAoKSA9PiB7XG4gIGV4cGVjdChpc1ByZXZpZXdDb21wbGV0ZSh7IHRlbXBsYXRlSWQ6IDEsIGRyYWZ0OiAnJywgY2FudmFzUHJldmlldzogJ2EnIH0pKS50b0JlKGZhbHNlKTtcbiAgZXhwZWN0KGlzUHJldmlld0NvbXBsZXRlKHsgdGVtcGxhdGVJZDogMSwgZHJhZnQ6ICdhJywgY2FudmFzUHJldmlldzogJ2InIH0pKS50b0JlKHRydWUpO1xufSk7XG5cbnRlc3QoJ2dhdGVkIHRlbXBsYXRlcyBkcm9wIG91dCBvZiByZXF1aXJlZCBzbG90cycsICgpID0+IHtcbiAgY29uc3QgZ2F0ZWQgPSB7XG4gICAgLi4ucHJvZHVjdCxcbiAgICBkcmFmdFRlbXBsYXRlczogW3tcbiAgICAgIGlkOiAyLFxuICAgICAgc2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9uczogW3sgaWQ6IDc3IH1dLFxuICAgICAgZWRpdGVkQnlWYXJpYXRpb25GaWVsZHM6IFt7IGlkOiAzLCBmaWVsZFR5cGU6IEZpZWxkVHlwZS5URVhUX0lOUFVUIH1dLFxuICAgIH1dLFxuICB9O1xuICBjb25zdCBoaWRkZW4gPSBtaXNzaW5nRGVzaWduU2xvdHMoZ2F0ZWQsIHtcbiAgICB2YXJpYXRpb25zOiBbXSxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiBbeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfSwgW10pO1xuICBleHBlY3QoaGlkZGVuWzBdLnRlbXBsYXRlLmlkKS50b0JlKDApO1xuICBjb25zdCBzaG93biA9IG1pc3NpbmdEZXNpZ25TbG90cyhnYXRlZCwge1xuICAgIHZhcmlhdGlvbnM6IFt7IHZhbHVlOiAnNzcnIH1dLFxuICAgIHZhcmlhdGlvbnNHcm91cHM6IFt7IHZhcmlhdGlvbnM6IFtdIH1dLFxuICB9LCBbXSk7XG4gIGV4cGVjdChzaG93blswXS50ZW1wbGF0ZS5pZCkudG9CZSgyKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsbUJBQW1CLEVBQ25CQyxl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
|
|
169
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcnR3b3JrUGF0aEtleSIsImNsZWFyRHJhZnRzIiwiY29tcGxldGVHcm91cENvdW50IiwiZHJhZnRTdG9yYWdlS2V5IiwiaXNQcmV2aWV3Q29tcGxldGUiLCJjaGVja291dENsaWVudEZpbGVzIiwidGVtcGxhdGVDaGVja291dEpvYiIsImxvYWRBcnR3b3JrUGF0aCIsImxvYWREZXNpZ25NZXRob2QiLCJsb2FkRHJhZnRzIiwibG9hZFRlbXBsYXRlVXBsb2FkcyIsIm1pc3NpbmdEZXNpZ25TbG90cyIsInBydW5lRHJhZnRzIiwicmVxdWlyZWREZXNpZ25TbG90cyIsInNhdmVkUHJldmlldyIsInNhdmVBcnR3b3JrUGF0aCIsInNhdmVEZXNpZ25NZXRob2QiLCJzYXZlRHJhZnRzIiwic2F2ZVRlbXBsYXRlVXBsb2FkcyIsInVwc2VydEdyb3VwVGVtcGxhdGVEcmFmdCIsIkZpZWxkVHlwZSIsInByb2R1Y3QiLCJuZWVkc0RyYWZ0aW5nIiwiYWxsb3dDbGllbnREcmFmdENvbnRyaWJ1dGlvbiIsImdyb3VwVmFyaWF0aW9uRmllbGRzIiwiaWQiLCJkcmFmdFRlbXBsYXRlcyIsInNlbGVjdGVkQnlWYXJpYXRpb25GaWVsZE9wdGlvbnMiLCJlZGl0ZWRCeVZhcmlhdGlvbkZpZWxkcyIsInRlc3QiLCJleHBlY3QiLCJ0b0JlIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ3JvdXBJbmRleCIsInByb2R1Y3RJZCIsInRlbXBsYXRlRGF0YSIsInByZXZpZXdzIiwidG9IYXZlTGVuZ3RoIiwidG9FcXVhbCIsInJlbW92ZUl0ZW0iLCJuYW1lIiwidmlld1VybCIsImZpbGUiLCJvYmplY3RJZCIsInF1b3RlZCIsInF1YW50aXR5Iiwib3duRHJhZnRzIiwid2l0aFVwbG9hZCIsImNsaWVudEZpbGVzIiwiYWNjZXB0ZWQiLCJhbnkiLCJOdW1iZXIiLCJpbWFnZXMiLCJ3aXRob3V0VXBsb2FkIiwidG9CZVVuZGVmaW5lZCIsIl9zYXZlZFByZXZpZXciLCJkcmFmdHMiLCJ0ZW1wbGF0ZUlkIiwiZHJhZnQiLCJjYW52YXNQcmV2aWV3IiwiZm9ybVZhbHVlcyIsInZhcmlhdGlvbnMiLCJ2YXJpYXRpb25zR3JvdXBzIiwic2F2ZWQiLCJjb21wbGV0ZSIsInRvdGFsIiwiZ2F0ZWQiLCJfb2JqZWN0U3ByZWFkIiwiZmllbGRUeXBlIiwiVEVYVF9JTlBVVCIsImhpZGRlbiIsInRlbXBsYXRlIiwic2hvd24iLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kcmFmdFN0b3JhZ2UudGVzdC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhcnR3b3JrUGF0aEtleSxcbiAgY2xlYXJEcmFmdHMsXG4gIGNvbXBsZXRlR3JvdXBDb3VudCxcbiAgZHJhZnRTdG9yYWdlS2V5LFxuICBpc1ByZXZpZXdDb21wbGV0ZSxcbiAgY2hlY2tvdXRDbGllbnRGaWxlcyxcbiAgdGVtcGxhdGVDaGVja291dEpvYixcbiAgbG9hZEFydHdvcmtQYXRoLFxuICBsb2FkRGVzaWduTWV0aG9kLFxuICBsb2FkRHJhZnRzLFxuICBsb2FkVGVtcGxhdGVVcGxvYWRzLFxuICBtaXNzaW5nRGVzaWduU2xvdHMsXG4gIHBydW5lRHJhZnRzLFxuICByZXF1aXJlZERlc2lnblNsb3RzLFxuICBzYXZlZFByZXZpZXcsXG4gIHNhdmVBcnR3b3JrUGF0aCxcbiAgc2F2ZURlc2lnbk1ldGhvZCxcbiAgc2F2ZURyYWZ0cyxcbiAgc2F2ZVRlbXBsYXRlVXBsb2FkcyxcbiAgdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0LFxufSBmcm9tICcuL2RyYWZ0U3RvcmFnZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgcHJvZHVjdCA9IHtcbiAgbmVlZHNEcmFmdGluZzogdHJ1ZSxcbiAgYWxsb3dDbGllbnREcmFmdENvbnRyaWJ1dGlvbjogdHJ1ZSxcbiAgZ3JvdXBWYXJpYXRpb25GaWVsZHM6IFt7IGlkOiA5IH1dLFxuICBkcmFmdFRlbXBsYXRlczogW1xuICAgIHsgaWQ6IDEsIHNlbGVjdGVkQnlWYXJpYXRpb25GaWVsZE9wdGlvbnM6IFtdLCBlZGl0ZWRCeVZhcmlhdGlvbkZpZWxkczogW10gfSxcbiAgXSxcbn07XG5cbnRlc3QoJ2RyYWZ0U3RvcmFnZUtleSBpcyBwZXIgcHJvZHVjdCcsICgpID0+IHtcbiAgZXhwZWN0KGRyYWZ0U3RvcmFnZUtleSg0NCkpLnRvQmUoJ3Byb2R1Y3REcmFmdFRlbXBsYXRlLTQ0Jyk7XG59KTtcblxudGVzdCgnY2xlYXJEcmFmdHMgcmVtb3ZlcyBzYXZlZCBhcnR3b3JrIGZvciBhIHByb2R1Y3QnLCAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhd2luZG93LmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICBzYXZlRHJhZnRzKDQ0LCBbeyBncm91cEluZGV4OiAwLCBwcm9kdWN0SWQ6IDQ0LCB0ZW1wbGF0ZURhdGE6IFtdLCBwcmV2aWV3czogW10gfV0pO1xuICBleHBlY3QobG9hZERyYWZ0cyg0NCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgY2xlYXJEcmFmdHMoNDQpO1xuICBleHBlY3QobG9hZERyYWZ0cyg0NCkpLnRvRXF1YWwoW10pO1xufSk7XG5cbnRlc3QoJ2FydHdvcmsgcGF0aCBkZWZhdWx0cyB0byBzZWxmIGFuZCBjYW4gc3dpdGNoIHRvIHRoZSBmcmVlIGRlc2lnbiBzZXJ2aWNlJywgKCkgPT4ge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCcgfHwgIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHJldHVybjtcbiAgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGFydHdvcmtQYXRoS2V5KDQ0KSk7XG4gIGV4cGVjdChsb2FkQXJ0d29ya1BhdGgoNDQpKS50b0JlKCdzZWxmJyk7XG4gIHNhdmVBcnR3b3JrUGF0aCg0NCwgJ3NlcnZpY2UnKTtcbiAgZXhwZWN0KGxvYWRBcnR3b3JrUGF0aCg0NCkpLnRvQmUoJ3NlcnZpY2UnKTtcbiAgc2F2ZUFydHdvcmtQYXRoKDQ0LCAnc2VsZicpO1xuICBleHBlY3QobG9hZEFydHdvcmtQYXRoKDQ0KSkudG9CZSgnc2VsZicpO1xufSk7XG5cbnRlc3QoJ3RlbXBsYXRlIHVwbG9hZHMgYXJlIHJlbWVtYmVyZWQgYW5kIHNoYXBlZCBmb3IgY2hlY2tvdXQnLCAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhd2luZG93LmxvY2FsU3RvcmFnZSkgcmV0dXJuO1xuICBleHBlY3QobG9hZERlc2lnbk1ldGhvZCg0NCkpLnRvQmUoJ2Rlc2lnbmVyJyk7XG4gIHNhdmVEZXNpZ25NZXRob2QoNDQsICd0ZW1wbGF0ZXMnKTtcbiAgZXhwZWN0KGxvYWREZXNpZ25NZXRob2QoNDQpKS50b0JlKCd0ZW1wbGF0ZXMnKTtcbiAgc2F2ZVRlbXBsYXRlVXBsb2Fkcyg0NCwgW3sgaWQ6IDksIG5hbWU6ICdmcm9udC5wbmcnLCB2aWV3VXJsOiAnaHR0cHM6Ly9jZG4uZXhhbXBsZS9mcm9udC5wbmcnIH1dKTtcbiAgZXhwZWN0KGxvYWRUZW1wbGF0ZVVwbG9hZHMoNDQpKS50b0VxdWFsKFtcbiAgICB7IGlkOiA5LCBuYW1lOiAnZnJvbnQucG5nJywgdmlld1VybDogJ2h0dHBzOi8vY2RuLmV4YW1wbGUvZnJvbnQucG5nJyB9LFxuICBdKTtcbiAgZXhwZWN0KGNoZWNrb3V0Q2xpZW50RmlsZXMobG9hZFRlbXBsYXRlVXBsb2Fkcyg0NCkpKS50b0VxdWFsKFtcbiAgICB7IGZpbGU6IHsgaWQ6IDkgfSwgb2JqZWN0SWQ6ICc5JyB9LFxuICBdKTtcbiAgY29uc3QgcXVvdGVkID0geyBxdWFudGl0eTogMTAwLCBvd25EcmFmdHM6IFtdIGFzIHVua25vd25bXSB9O1xuICBjb25zdCB3aXRoVXBsb2FkID0gdGVtcGxhdGVDaGVja291dEpvYihxdW90ZWQsIGxvYWRUZW1wbGF0ZVVwbG9hZHMoNDQpKTtcbiAgZXhwZWN0KHdpdGhVcGxvYWQuY2xpZW50RmlsZXMpLnRvRXF1YWwoW3sgZmlsZTogeyBpZDogOSB9LCBvYmplY3RJZDogJzknIH1dKTtcbiAgZXhwZWN0KHdpdGhVcGxvYWQub3duRHJhZnRzKS50b0VxdWFsKFtcbiAgICB7IGFjY2VwdGVkOiBleHBlY3QuYW55KE51bWJlciksIGltYWdlczogW3sgaWQ6IDkgfV0gfSxcbiAgXSk7XG4gIGNvbnN0IHdpdGhvdXRVcGxvYWQgPSB0ZW1wbGF0ZUNoZWNrb3V0Sm9iKHF1b3RlZCwgW10pO1xuICBleHBlY3Qod2l0aG91dFVwbG9hZC5jbGllbnRGaWxlcykudG9FcXVhbChbXSk7XG4gIGV4cGVjdCh3aXRob3V0VXBsb2FkLm93bkRyYWZ0cykudG9CZVVuZGVmaW5lZCgpO1xuICBzYXZlVGVtcGxhdGVVcGxvYWRzKDQ0LCBbXSk7XG4gIHNhdmVEZXNpZ25NZXRob2QoNDQsICdkZXNpZ25lcicpO1xufSk7XG5cbnRlc3QoJ3Vwc2VydCBhbmQgcHJ1bmUga2VlcCBwZXItZ3JvdXAgdGVtcGxhdGUgZHJhZnRzJywgKCkgPT4ge1xuICBsZXQgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KFtdLCA0NCwgMCwge1xuICAgIHRlbXBsYXRlSWQ6IDEsXG4gICAgZHJhZnQ6ICdkYXRhOmEnLFxuICAgIGNhbnZhc1ByZXZpZXc6ICdkYXRhOmInLFxuICB9KTtcbiAgZHJhZnRzID0gdXBzZXJ0R3JvdXBUZW1wbGF0ZURyYWZ0KGRyYWZ0cywgNDQsIDEsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAnZGF0YTpjJyxcbiAgICBjYW52YXNQcmV2aWV3OiAnZGF0YTpkJyxcbiAgfSk7XG4gIGV4cGVjdChkcmFmdHMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KHNhdmVkUHJldmlldyhkcmFmdHMsIDEsIDEpPy5kcmFmdCkudG9CZSgnZGF0YTpjJyk7XG4gIGV4cGVjdChwcnVuZURyYWZ0cyhkcmFmdHMsIDEpKS50b0hhdmVMZW5ndGgoMSk7XG59KTtcblxudGVzdCgnbWlzc2luZ0Rlc2lnblNsb3RzIHJlcG9ydHMgdW5zYXZlZCBncm91cCB0ZW1wbGF0ZXMnLCAoKSA9PiB7XG4gIGNvbnN0IGZvcm1WYWx1ZXMgPSB7XG4gICAgdmFyaWF0aW9uczogW10sXG4gICAgdmFyaWF0aW9uc0dyb3VwczogW3sgdmFyaWF0aW9uczogW10gfSwgeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfTtcbiAgZXhwZWN0KHJlcXVpcmVkRGVzaWduU2xvdHMocHJvZHVjdCwgZm9ybVZhbHVlcykpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBbXSkpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgY29uc3Qgc2F2ZWQgPSB1cHNlcnRHcm91cFRlbXBsYXRlRHJhZnQoW10sIDEsIDAsIHtcbiAgICB0ZW1wbGF0ZUlkOiAxLFxuICAgIGRyYWZ0OiAneCcsXG4gICAgY2FudmFzUHJldmlldzogJ3knLFxuICB9KTtcbiAgZXhwZWN0KG1pc3NpbmdEZXNpZ25TbG90cyhwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgZXhwZWN0KGNvbXBsZXRlR3JvdXBDb3VudChwcm9kdWN0LCBmb3JtVmFsdWVzLCBzYXZlZCkpLnRvRXF1YWwoe1xuICAgIGNvbXBsZXRlOiAxLFxuICAgIHRvdGFsOiAyLFxuICB9KTtcbn0pO1xuXG50ZXN0KCdpc1ByZXZpZXdDb21wbGV0ZSByZXF1aXJlcyBib3RoIHBuZ3MnLCAoKSA9PiB7XG4gIGV4cGVjdChpc1ByZXZpZXdDb21wbGV0ZSh7IHRlbXBsYXRlSWQ6IDEsIGRyYWZ0OiAnJywgY2FudmFzUHJldmlldzogJ2EnIH0pKS50b0JlKGZhbHNlKTtcbiAgZXhwZWN0KGlzUHJldmlld0NvbXBsZXRlKHsgdGVtcGxhdGVJZDogMSwgZHJhZnQ6ICdhJywgY2FudmFzUHJldmlldzogJ2InIH0pKS50b0JlKHRydWUpO1xufSk7XG5cbnRlc3QoJ2dhdGVkIHRlbXBsYXRlcyBkcm9wIG91dCBvZiByZXF1aXJlZCBzbG90cycsICgpID0+IHtcbiAgY29uc3QgZ2F0ZWQgPSB7XG4gICAgLi4ucHJvZHVjdCxcbiAgICBkcmFmdFRlbXBsYXRlczogW3tcbiAgICAgIGlkOiAyLFxuICAgICAgc2VsZWN0ZWRCeVZhcmlhdGlvbkZpZWxkT3B0aW9uczogW3sgaWQ6IDc3IH1dLFxuICAgICAgZWRpdGVkQnlWYXJpYXRpb25GaWVsZHM6IFt7IGlkOiAzLCBmaWVsZFR5cGU6IEZpZWxkVHlwZS5URVhUX0lOUFVUIH1dLFxuICAgIH1dLFxuICB9O1xuICBjb25zdCBoaWRkZW4gPSBtaXNzaW5nRGVzaWduU2xvdHMoZ2F0ZWQsIHtcbiAgICB2YXJpYXRpb25zOiBbXSxcbiAgICB2YXJpYXRpb25zR3JvdXBzOiBbeyB2YXJpYXRpb25zOiBbXSB9XSxcbiAgfSwgW10pO1xuICBleHBlY3QoaGlkZGVuWzBdLnRlbXBsYXRlLmlkKS50b0JlKDApO1xuICBjb25zdCBzaG93biA9IG1pc3NpbmdEZXNpZ25TbG90cyhnYXRlZCwge1xuICAgIHZhcmlhdGlvbnM6IFt7IHZhbHVlOiAnNzcnIH1dLFxuICAgIHZhcmlhdGlvbnNHcm91cHM6IFt7IHZhcmlhdGlvbnM6IFtdIH1dLFxuICB9LCBbXSk7XG4gIGV4cGVjdChzaG93blswXS50ZW1wbGF0ZS5pZCkudG9CZSgyKTtcbn0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUNFQSxjQUFjLEVBQ2RDLFdBQVcsRUFDWEMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZDLGlCQUFpQixFQUNqQkMsbUJBQW1CLEVBQ25CQyxtQkFBbUIsRUFDbkJDLGVBQWUsRUFDZkMsZ0JBQWdCLEVBQ2hCQyxVQUFVLEVBQ1ZDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxXQUFXLEVBQ1hDLG1CQUFtQixFQUNuQkMsWUFBWSxFQUNaQyxlQUFlLEVBQ2ZDLGdCQUFnQixFQUNoQkMsVUFBVSxFQUNWQyxtQkFBbUIsRUFDbkJDLHdCQUF3QixRQUNuQixnQkFBZ0I7QUFDdkIsU0FBU0MsU0FBUyxRQUFRLFNBQVM7QUFFbkMsSUFBTUMsT0FBTyxHQUFHO0VBQ2RD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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@merchi/product-form",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.28",
|
|
4
4
|
"description": "A React component for Merchi product forms",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"draft-js": "^0.11.7",
|
|
82
82
|
"konva": "^10.3.2",
|
|
83
83
|
"lodash": "^4.17.21",
|
|
84
|
-
"@merchi/sdk": "^1.42.
|
|
84
|
+
"@merchi/sdk": "^1.42.11",
|
|
85
85
|
"moment-timezone": "^0.5.45",
|
|
86
86
|
"react-dropzone": "^14.2.3",
|
|
87
87
|
"react-hook-form": "^7.45.4",
|