studiokit-scaffolding-js 7.2.0-next.2.7 → 7.2.0-next.2.8

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.
@@ -38,11 +38,11 @@ const defaultLocation = exports.defaultLocation = {
38
38
  host: 'purdue.dev.studiokit.org',
39
39
  hostname: 'purdue.dev.studiokit.org',
40
40
  href: 'https://purdue.dev.studiokit.org/',
41
+ origin: 'https://purdue.dev.studiokit.org',
41
42
  pathname: '/',
42
43
  port: '',
43
44
  protocol: 'https:',
44
- search: '',
45
- origin: 'https://purdue.dev.studiokit.org'
45
+ search: ''
46
46
  };
47
47
  function mockHistory() {
48
48
  return {
@@ -434,4 +434,4 @@ const badRequestFullErrorData = exports.badRequestFullErrorData = {
434
434
  };
435
435
 
436
436
  //#endregion FetchErrorData
437
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9leHRlcm5hbFByb3ZpZGVyVHlwZSIsIl90eXBlcyIsIl9iYXNlUm9sZSIsIl90aWVyIiwiZGVmYXVsdEFwcENvbmZpZ3VyYXRpb24iLCJleHBvcnRzIiwiTk9ERV9FTlYiLCJBUFBfTkFNRSIsIlRJRVIiLCJQUk9EIiwiQVBJX0JBU0VfVVJMIiwiUk9PVF9ET01BSU4iLCJDTElFTlRfSUQiLCJDTElFTlRfU0VDUkVUIiwiSVNfRE9XTlRJTUUiLCJMTVNfTkFNRSIsIkdSQURBQkxFX0RFU0NSSVBUT1IiLCJkZWZhdWx0TG9jYXRpb24iLCJoYXNoIiwiaG9zdCIsImhvc3RuYW1lIiwiaHJlZiIsInBhdGhuYW1lIiwicG9ydCIsInByb3RvY29sIiwic2VhcmNoIiwib3JpZ2luIiwibW9ja0hpc3RvcnkiLCJsZW5ndGgiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInN0YXRlIiwiYmFjayIsImplc3QiLCJmbiIsImZvcndhcmQiLCJnbyIsInB1c2hTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsInBhc3REYXRlcyIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJjdXJyZW50RGF0ZXMiLCJkZWZhdWx0RGF0ZSIsImRlZmF1bHRVc2VyIiwidXNlckluZm8iLCJpZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiLCJhY3Rpdml0aWVzIiwicm9sZXMiLCJkYXRlRGVtb0dlbmVyYXRpb25TdWNjZWVkZWQiLCJkYXRlU3RvcmVkIiwiZGF0ZUxhc3RVcGRhdGVkIiwiaXNJbXBlcnNvbmF0ZWQiLCJjYXJlZXJBY2NvdW50QWxpYXMiLCJlbXBsb3llZU51bWJlciIsInVzZXJOYW1lIiwicHVpZCIsImxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmwiLCJkZWZhdWx0TmFtZWxlc3NVc2VySW5mbyIsImRlZmF1bHROYW1lZFVzZXJJbmZvIiwibW9ja1VzZXIiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJtZXJnZSIsImRlZmF1bHRHcm91cE93bmVyVXNlckluZm8iLCJkZWZhdWx0R3JvdXBPd25lciIsInVzZXJJZCIsImVudGl0eUlkIiwicm9sZSIsIkJBU0VfUk9MRSIsIkdST1VQX09XTkVSIiwiaXNFeHRlcm5hbCIsImRlZmF1bHROYW1lbGVzc0dyb3VwTGVhcm5lciIsIkdST1VQX0xFQVJORVIiLCJkZWZhdWx0TmFtZWRHcm91cExlYXJuZXIiLCJkZWZhdWx0R3JvdXBMZWFybmVyIiwiZGVmYXVsdEV4dGVybmFsR3JvdXBMZWFybmVyIiwiZGVmYXVsdEdyb3VwR3JhZGVyIiwiR1JPVVBfR1JBREVSIiwiZGVmYXVsdEdyb3VwVXNlclJvbGVzIiwiZGVmYXVsdEFkbWluVXNlclJvbGVzIiwiQURNSU4iLCJkZWZhdWx0R3JvdXAiLCJvd25lcnMiLCJncmFkZXJzIiwibmFtZSIsImV4dGVybmFsVGVybUlkIiwiaXNEZWxldGVkIiwiaXNSb3N0ZXJTeW5jRW5hYmxlZCIsImV4dGVybmFsR3JvdXBzIiwibW9ja0dyb3VwcyIsIm1vY2tTeW5jZWRHcm91cHMiLCJyb3N0ZXJTeW5jRW5hYmxlZEdyb3VwIiwibW9ja0x0aUdyb3VwcyIsImx0aUdyb3VwIiwiZXh0ZXJuYWxQcm92aWRlcklkIiwiZ3JvdXBJZCIsImRlc2NyaXB0aW9uIiwiZ3JhZGVzVXJsIiwicm9zdGVyVXJsIiwiaXNBdXRvR3JhZGVQdXNoRW5hYmxlZCIsImV4dGVybmFsSWQiLCJ0eXBlbmFtZSIsIm1vY2tUZXJtR3JvdXBzIiwiZ3JvdXAiLCJtb2NrVGVybUFuZFVuaVRpbWVHcm91cHMiLCJtb2NrUGFzdEdyb3VwcyIsInBhc3RHcm91cCIsIm1vY2tQYXN0QW5kQ3VycmVudEdyb3VwcyIsImN1cnJlbnRHcm91cCIsImRlZmF1bHRFeHRlcm5hbFByb3ZpZGVycyIsIkVYVEVSTkFMX1BST1ZJREVSX1RZUEUiLCJVTklUSU1FIiwidGVybVN5bmNFbmFibGVkIiwicm9zdGVyU3luY0VuYWJsZWQiLCJncmFkZVB1c2hFbmFibGVkIiwic2hvdWxkRGlzcGxheUNyZWF0ZU5vbkx0aUdyb3VwQWxlcnQiLCJMVEkiLCJkZWZhdWx0RXh0ZXJuYWxUZXJtcyIsImludGVybmFsU2VydmVyRXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsInRpdGxlIiwiZGV0YWlsIiwicmVxdWVzdFRpbWVkT3V0RXJyb3JEYXRhIiwiUkVRVUVTVF9USU1FT1VUIiwiZm9yYmlkZGVuRXJyb3JEYXRhIiwiRk9SQklEREVOIiwidW5hdXRob3JpemVkRXJyb3JEYXRhIiwiVU5BVVRIT1JJWkVEIiwiYmFkUmVxdWVzdEVycm9yRGF0YSIsIkJBRF9SRVFVRVNUIiwiYmFkUmVxdWVzdEZ1bGxFcnJvckRhdGEiLCJ0eXBlIiwiaW5zdGFuY2UiLCJ0cmFjZUlkIiwiZXJyb3JzIiwicGFzc3dvcmQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RhbnRzL21vY2tEYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgRVhURVJOQUxfUFJPVklERVJfVFlQRSB9IGZyb20gJy4uL2NvbnN0YW50cy9leHRlcm5hbFByb3ZpZGVyVHlwZSdcbmltcG9ydCB7XG5cdEFwcENvbmZpZ3VyYXRpb24sXG5cdEV4dGVybmFsUHJvdmlkZXIsXG5cdEV4dGVybmFsVGVybSxcblx0RmV0Y2hFcnJvckRhdGEsXG5cdEdyb3VwLFxuXHRHcm91cFVzZXJSb2xlLFxuXHRIVFRQX1NUQVRVU19DT0RFLFxuXHRNb2RlbENvbGxlY3Rpb24sXG5cdFNpbXBsZUxvY2F0aW9uLFxuXHRVc2VySW5mbyxcblx0VXNlclJvbGVcbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBCQVNFX1JPTEUgfSBmcm9tICcuL2Jhc2VSb2xlJ1xuaW1wb3J0IHsgVElFUiB9IGZyb20gJy4vdGllcidcblxuLy8jcmVnaW9uIEdlbmVyYWxcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBcHBDb25maWd1cmF0aW9uOiBBcHBDb25maWd1cmF0aW9uID0ge1xuXHROT0RFX0VOVjogJ3Rlc3QnLFxuXHRBUFBfTkFNRTogJ1N0dWRpb0tpdCcsXG5cdFRJRVI6IFRJRVIuUFJPRCxcblx0QVBJX0JBU0VfVVJMOiAnJyxcblx0Uk9PVF9ET01BSU46ICdzdHVkaW9raXQub3JnJyxcblx0Q0xJRU5UX0lEOiAnd2ViJyxcblx0Q0xJRU5UX1NFQ1JFVDogJyoqKionLFxuXHRJU19ET1dOVElNRTogZmFsc2UsXG5cdExNU19OQU1FOiAnQnJpZ2h0c3BhY2UnLFxuXHRHUkFEQUJMRV9ERVNDUklQVE9SOiAnYXNzZXNzbWVudCdcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhdGlvbjogU2ltcGxlTG9jYXRpb24gPSB7XG5cdGhhc2g6ICcnLFxuXHRob3N0OiAncHVyZHVlLmRldi5zdHVkaW9raXQub3JnJyxcblx0aG9zdG5hbWU6ICdwdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnLFxuXHRocmVmOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcvJyxcblx0cGF0aG5hbWU6ICcvJyxcblx0cG9ydDogJycsXG5cdHByb3RvY29sOiAnaHR0cHM6Jyxcblx0c2VhcmNoOiAnJyxcblx0b3JpZ2luOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrSGlzdG9yeSgpOiBIaXN0b3J5IHtcblx0cmV0dXJuIHtcblx0XHRsZW5ndGg6IDAsXG5cdFx0c2Nyb2xsUmVzdG9yYXRpb246ICdhdXRvJyxcblx0XHRzdGF0ZToge30sXG5cdFx0YmFjazogamVzdC5mbigpLFxuXHRcdGZvcndhcmQ6IGplc3QuZm4oKSxcblx0XHRnbzogamVzdC5mbigpLFxuXHRcdHB1c2hTdGF0ZTogamVzdC5mbigpLFxuXHRcdHJlcGxhY2VTdGF0ZTogamVzdC5mbigpXG5cdH1cbn1cblxuLy8jZW5kcmVnaW9uIEdlbmVyYWxcblxuLy8jcmVnaW9uIERhdGVzXG5cbi8qKiA1LzE1LzE4IC0gOC8xNC8xOCAqL1xuZXhwb3J0IGNvbnN0IHBhc3REYXRlcyA9IHtcblx0c3RhcnREYXRlOiAnMjAxOC0wNS0xNVQwNDowMDowMC4wMDBaJyxcblx0ZW5kRGF0ZTogJzIwMTgtMDgtMTVUMDM6NTk6NTkuOTk5Widcbn1cblxuLyoqIDgvMTUvMTggLSAxMi8zMS8xODogKi9cbmV4cG9ydCBjb25zdCBjdXJyZW50RGF0ZXMgPSB7XG5cdHN0YXJ0RGF0ZTogJzIwMTgtMDgtMTVUMDQ6MDA6MDAuMDAwWicsXG5cdGVuZERhdGU6ICcyMDE5LTAxLTAxVDA0OjU5OjU5Ljk5OVonXG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGF0ZSBhbmQgdGltZSBmb3IgYWxsIHRlc3RzLiBVc2VkIGJ5IHRoZSAnbW9ja2RhdGUnIHBhY2thZ2UuIE9uZSBtb250aCBpbnRvIGBjdXJyZW50RGF0ZXNgLlxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGUgPSAnMjAxOC0wOS0xNVQwNDowMDowMC4wMDBaJ1xuXG4vLyNlbmRyZWdpb24gRGF0ZXNcblxuLy8jcmVnaW9uIFVzZXJzXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlciA9IHtcblx0dXNlckluZm86IHtcblx0XHRpZDogJzEnLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0YWN0aXZpdGllczogW10sXG5cdFx0cm9sZXM6IFtdLFxuXHRcdGRhdGVEZW1vR2VuZXJhdGlvblN1Y2NlZWRlZDogbnVsbCxcblx0XHRkYXRlU3RvcmVkOiBkZWZhdWx0RGF0ZSxcblx0XHRkYXRlTGFzdFVwZGF0ZWQ6IGRlZmF1bHREYXRlLFxuXHRcdGlzSW1wZXJzb25hdGVkOiBmYWxzZSxcblx0XHRjYXJlZXJBY2NvdW50QWxpYXM6IG51bGwsXG5cdFx0ZW1wbG95ZWVOdW1iZXI6IG51bGwsXG5cdFx0dXNlck5hbWU6ICd0ZXN0Jyxcblx0XHRwdWlkOiBudWxsLFxuXHRcdGxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmw6IG51bGxcblx0fSBhcyBVc2VySW5mb1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVsZXNzVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHQuLi57XG5cdFx0ZW1haWw6ICduaWNraUBtaW5hai5zdXBlcmJhc3MnLFxuXHRcdHVpZDogJ25tLW5hbWVsZXNzJ1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWRVc2VySW5mbyA9IHtcblx0Li4uZGVmYXVsdFVzZXIudXNlckluZm8sXG5cdC4uLntcblx0XHRmaXJzdE5hbWU6ICdOaWNraScsXG5cdFx0bGFzdE5hbWU6ICdNaW5haicsXG5cdFx0dWlkOiAnbm0tbmFtZWQnXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVc2VyKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10pOiB7IHVzZXJJbmZvOiBVc2VySW5mbyB9IHtcblx0cmV0dXJuIG1lcmdlKHsgdXNlckluZm86IHsgYWN0aXZpdGllcyB9IH0sIGRlZmF1bHRVc2VyKVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXJVc2VySW5mbzogVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHRpZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJ1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMScsXG5cdHVzZXJJZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJyxcblx0dWlkOiAnamFuZScsXG5cdGVudGl0eUlkOiAxLFxuXHRyb2xlOiBCQVNFX1JPTEUuR1JPVVBfT1dORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWxlc3NHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMicsXG5cdHVzZXJJZDogJzMnLFxuXHRmaXJzdE5hbWU6IG51bGwsXG5cdGxhc3ROYW1lOiBudWxsLFxuXHRlbWFpbDogJ25pY2tpQG1pbmFqLnN1cGVyYmFzcycsXG5cdHVpZDogJ25tLW5hbWVsZXNzJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVkR3JvdXBMZWFybmVyOiBHcm91cFVzZXJSb2xlID0ge1xuXHRpZDogJzMnLFxuXHR1c2VySWQ6ICc0Jyxcblx0Zmlyc3ROYW1lOiAnTmlja2knLFxuXHRsYXN0TmFtZTogJ01pbmFqJyxcblx0ZW1haWw6IG51bGwsXG5cdHVpZDogJ25tLW5hbWVkJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwTGVhcm5lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICc0Jyxcblx0dXNlcklkOiAnNScsXG5cdGZpcnN0TmFtZTogJ0pvZScsXG5cdGxhc3ROYW1lOiAnU2NobW9lJyxcblx0ZW1haWw6ICdub3BlQGdtYWlsLmNvbScsXG5cdHVpZDogJ25vcGUnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNScsXG5cdHVzZXJJZDogJzYnLFxuXHRmaXJzdE5hbWU6ICdCb2InLFxuXHRsYXN0TmFtZTogJ0xvYmxhdycsXG5cdGVtYWlsOiAnYm9ibG9ibGF3QGxhd2Jsb2cuY29tJyxcblx0dWlkOiAnYm9ibG9ibGF3Jyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBHcmFkZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNicsXG5cdHVzZXJJZDogJzcnLFxuXHRmaXJzdE5hbWU6ICdHcmFkZXInLFxuXHRsYXN0TmFtZTogJ01jR3JhZGVmYWNlJyxcblx0ZW1haWw6ICdncmFkZXJAZ21haWwuY29tJyxcblx0dWlkOiAnZ3JhZGVyJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9HUkFERVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBVc2VyUm9sZXMgPSBbZGVmYXVsdEdyb3VwT3duZXIsIGRlZmF1bHRHcm91cExlYXJuZXIsIGRlZmF1bHRFeHRlcm5hbEdyb3VwTGVhcm5lcl1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZG1pblVzZXJSb2xlczogVXNlclJvbGVbXSA9IFtcblx0e1xuXHRcdGlkOiAnMScsXG5cdFx0Zmlyc3ROYW1lOiAnSm9lJyxcblx0XHRsYXN0TmFtZTogJ1NjaG1vJyxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH0sXG5cdHtcblx0XHRpZDogJzInLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogJ2Nhcmx5c2ltb25AY2xvdWRzLmluLmNvZmZlZScsXG5cdFx0dWlkOiAnY2FybHlzaW1vbicsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH1cbl1cblxuLy8jZW5kcmVnaW9uIFVzZXJzXG5cbi8vI3JlZ2lvbiBHcm91cHNcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcm91cDogR3JvdXAgPSB7XG5cdHJvbGVzOiBbXSxcblx0YWN0aXZpdGllczogW10sXG5cdG93bmVyczogW1xuXHRcdHtcblx0XHRcdGlkOiAnMScsXG5cdFx0XHRlbnRpdHlJZDogMSxcblx0XHRcdGZpcnN0TmFtZTogJ0luc3RydWN0b3InLFxuXHRcdFx0bGFzdE5hbWU6ICdNY0luc3RydWN0b3InLFxuXHRcdFx0ZW1haWw6IG51bGwsXG5cdFx0XHR1aWQ6IG51bGxcblx0XHR9XG5cdF0sXG5cdGdyYWRlcnM6IFtdLFxuXHRpZDogMSxcblx0bmFtZTogJ01jR3JvdXAnLFxuXHRleHRlcm5hbFRlcm1JZDogbnVsbCxcblx0c3RhcnREYXRlOiBjdXJyZW50RGF0ZXMuc3RhcnREYXRlLFxuXHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZSxcblx0aXNEZWxldGVkOiBmYWxzZSxcblx0aXNSb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdGV4dGVybmFsR3JvdXBzOiBbXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0dyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRyZXR1cm4geyAnMSc6IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwKSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrU3luY2VkR3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHJvc3RlclN5bmNFbmFibGVkR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdHJvc3RlclN5bmNFbmFibGVkR3JvdXAuaXNSb3N0ZXJTeW5jRW5hYmxlZCA9IHRydWVcblx0cmV0dXJuIHsgJzEnOiByb3N0ZXJTeW5jRW5hYmxlZEdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tMdGlHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgbHRpR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGx0aUdyb3VwLmlzUm9zdGVyU3luY0VuYWJsZWQgPSB0cnVlXG5cdGx0aUdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAyLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ0xUSSBFeHRlcm5hbEdyb3VwJyxcblx0XHRcdGRlc2NyaXB0aW9uOiAnTFRJIDEwMScsXG5cdFx0XHRncmFkZXNVcmw6ICd3d3cubHRpLm9yZycsXG5cdFx0XHRyb3N0ZXJVcmw6IG51bGwsXG5cdFx0XHRpc0F1dG9HcmFkZVB1c2hFbmFibGVkOiBmYWxzZSxcblx0XHRcdGV4dGVybmFsSWQ6ICcxJyxcblx0XHRcdHR5cGVuYW1lOiAnRXh0ZXJuYWxHcm91cCdcblx0XHR9XG5cdF1cblx0cmV0dXJuIHsgJzEnOiBsdGlHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBncm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0Z3JvdXAuc3RhcnREYXRlID0gbnVsbFxuXHRncm91cC5lbmREYXRlID0gbnVsbFxuXHRncm91cC5leHRlcm5hbFRlcm1JZCA9IDFcblx0cmV0dXJuIHsgJzEnOiBncm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUFuZFVuaVRpbWVHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgZ3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGdyb3VwLnN0YXJ0RGF0ZSA9IG51bGxcblx0Z3JvdXAuZW5kRGF0ZSA9IG51bGxcblx0Z3JvdXAuZXh0ZXJuYWxUZXJtSWQgPSAxXG5cdGdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAxLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ1VuaVRpbWUgRXh0ZXJuYWxHcm91cCcsXG5cdFx0XHRkZXNjcmlwdGlvbjogJ1VuaVRpbWUgMTAxJyxcblx0XHRcdGdyYWRlc1VybDogbnVsbCxcblx0XHRcdHJvc3RlclVybDogbnVsbCxcblx0XHRcdGlzQXV0b0dyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0ZXh0ZXJuYWxJZDogJzEnLFxuXHRcdFx0dHlwZW5hbWU6ICdFeHRlcm5hbEdyb3VwJ1xuXHRcdH1cblx0XVxuXHRyZXR1cm4geyAnMSc6IGdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQYXN0R3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHBhc3RHcm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cCwgcGFzdERhdGVzKVxuXHRyZXR1cm4geyAnMSc6IHBhc3RHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUGFzdEFuZEN1cnJlbnRHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgcGFzdEdyb3VwOiBHcm91cCA9IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwLCBwYXN0RGF0ZXMpXG5cdGNvbnN0IGN1cnJlbnRHcm91cDogR3JvdXAgPSBtZXJnZShcblx0XHR7IGFjdGl2aXRpZXMsIHJvbGVzIH0sXG5cdFx0ZGVmYXVsdEdyb3VwLFxuXHRcdHtcblx0XHRcdGlkOiAnMidcblx0XHR9LFxuXHRcdGN1cnJlbnREYXRlc1xuXHQpXG5cdHJldHVybiB7ICcxJzogcGFzdEdyb3VwLCAnMic6IGN1cnJlbnRHcm91cCB9XG59XG5cbi8vI2VuZHJlZ2lvbiBHcm91cHNcblxuLy8jcmVnaW9uIEV4dGVybmFsVGVybXMgKyBFeHRlcm5hbFByb3ZpZGVyc1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEV4dGVybmFsUHJvdmlkZXJzOiBNb2RlbENvbGxlY3Rpb248RXh0ZXJuYWxQcm92aWRlcj4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdHR5cGVuYW1lOiBFWFRFUk5BTF9QUk9WSURFUl9UWVBFLlVOSVRJTUUsXG5cdFx0dGVybVN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdHJvc3RlclN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdGdyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdHNob3VsZERpc3BsYXlDcmVhdGVOb25MdGlHcm91cEFsZXJ0OiBmYWxzZVxuXHR9LFxuXHQnMic6IHtcblx0XHRpZDogMixcblx0XHR0eXBlbmFtZTogRVhURVJOQUxfUFJPVklERVJfVFlQRS5MVEksXG5cdFx0dGVybVN5bmNFbmFibGVkOiBmYWxzZSxcblx0XHRyb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdFx0Z3JhZGVQdXNoRW5hYmxlZDogdHJ1ZSxcblx0XHRzaG91bGREaXNwbGF5Q3JlYXRlTm9uTHRpR3JvdXBBbGVydDogdHJ1ZVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxUZXJtczogTW9kZWxDb2xsZWN0aW9uPEV4dGVybmFsVGVybT4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdGV4dGVybmFsUHJvdmlkZXJJZDogMSxcblx0XHRleHRlcm5hbElkOiAnZm9vJyxcblx0XHRuYW1lOiAnVW5pVGltZSBGYWxsIFRlcm0nLFxuXHRcdHN0YXJ0RGF0ZTogY3VycmVudERhdGVzLnN0YXJ0RGF0ZSxcblx0XHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBFeHRlcm5hbFRlcm1zICsgRXh0ZXJuYWxQcm92aWRlcnNcblxuLy8jcmVnaW9uIEZldGNoRXJyb3JEYXRhXG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlcnZlckVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5JTlRFUk5BTF9TRVJWRVJfRVJST1IsXG5cdHRpdGxlOiAnRXJyb3InLFxuXHRkZXRhaWw6ICdBbiBlcnJvciBoYXMgb2NjdXJyZWQuJ1xufVxuXG5leHBvcnQgY29uc3QgcmVxdWVzdFRpbWVkT3V0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLlJFUVVFU1RfVElNRU9VVCxcblx0dGl0bGU6ICdSZXF1ZXN0IFRpbWVvdXQnLFxuXHRkZXRhaWw6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGZvcmJpZGRlbkVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5GT1JCSURERU4sXG5cdHRpdGxlOiAnRm9yYmlkZGVuJyxcblx0ZGV0YWlsOiAnWW91ciByZXF1ZXN0IGhhcyBiZWVuIGRlbmllZC4gWW91IGRvIG5vdCBoYXZlIGFjY2Vzcy4nXG59XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuVU5BVVRIT1JJWkVELFxuXHR0aXRsZTogJ1VuYXV0aG9yaXplZCcsXG5cdGRldGFpbDogJ1lvdXIgcmVxdWVzdCBpcyB1bmF1dGhvcml6ZWQuIFlvdSBtdXN0IGF1dGhlbnRpY2F0ZS4nXG59XG5cbmV4cG9ydCBjb25zdCBiYWRSZXF1ZXN0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucydcbn1cblxuZXhwb3J0IGNvbnN0IGJhZFJlcXVlc3RGdWxsRXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucycsXG5cdC8vIGluY2x1ZGUgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcblx0dHlwZTogJ2h0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjEnLFxuXHRpbnN0YW5jZTogJ2luc3RhbmNlJyxcblx0dHJhY2VJZDogJzAwLTM5MTRiNDNiNDUyYjk0ZTNmZjRjMzI3OTIyODgwYTAzLTRjZmVkNmZlNDJhZmRkOGYtMDAnLFxuXHRlcnJvcnM6IHtcblx0XHRwYXNzd29yZDogWydUaGUgUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMgbG9uZy4nXVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBGZXRjaEVycm9yRGF0YVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMscUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQWFBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEs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
437
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwicmVxdWlyZSIsIl9leHRlcm5hbFByb3ZpZGVyVHlwZSIsIl90eXBlcyIsIl9iYXNlUm9sZSIsIl90aWVyIiwiZGVmYXVsdEFwcENvbmZpZ3VyYXRpb24iLCJleHBvcnRzIiwiTk9ERV9FTlYiLCJBUFBfTkFNRSIsIlRJRVIiLCJQUk9EIiwiQVBJX0JBU0VfVVJMIiwiUk9PVF9ET01BSU4iLCJDTElFTlRfSUQiLCJDTElFTlRfU0VDUkVUIiwiSVNfRE9XTlRJTUUiLCJMTVNfTkFNRSIsIkdSQURBQkxFX0RFU0NSSVBUT1IiLCJkZWZhdWx0TG9jYXRpb24iLCJoYXNoIiwiaG9zdCIsImhvc3RuYW1lIiwiaHJlZiIsIm9yaWdpbiIsInBhdGhuYW1lIiwicG9ydCIsInByb3RvY29sIiwic2VhcmNoIiwibW9ja0hpc3RvcnkiLCJsZW5ndGgiLCJzY3JvbGxSZXN0b3JhdGlvbiIsInN0YXRlIiwiYmFjayIsImplc3QiLCJmbiIsImZvcndhcmQiLCJnbyIsInB1c2hTdGF0ZSIsInJlcGxhY2VTdGF0ZSIsInBhc3REYXRlcyIsInN0YXJ0RGF0ZSIsImVuZERhdGUiLCJjdXJyZW50RGF0ZXMiLCJkZWZhdWx0RGF0ZSIsImRlZmF1bHRVc2VyIiwidXNlckluZm8iLCJpZCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiZW1haWwiLCJ1aWQiLCJhY3Rpdml0aWVzIiwicm9sZXMiLCJkYXRlRGVtb0dlbmVyYXRpb25TdWNjZWVkZWQiLCJkYXRlU3RvcmVkIiwiZGF0ZUxhc3RVcGRhdGVkIiwiaXNJbXBlcnNvbmF0ZWQiLCJjYXJlZXJBY2NvdW50QWxpYXMiLCJlbXBsb3llZU51bWJlciIsInVzZXJOYW1lIiwicHVpZCIsImxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmwiLCJkZWZhdWx0TmFtZWxlc3NVc2VySW5mbyIsImRlZmF1bHROYW1lZFVzZXJJbmZvIiwibW9ja1VzZXIiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJtZXJnZSIsImRlZmF1bHRHcm91cE93bmVyVXNlckluZm8iLCJkZWZhdWx0R3JvdXBPd25lciIsInVzZXJJZCIsImVudGl0eUlkIiwicm9sZSIsIkJBU0VfUk9MRSIsIkdST1VQX09XTkVSIiwiaXNFeHRlcm5hbCIsImRlZmF1bHROYW1lbGVzc0dyb3VwTGVhcm5lciIsIkdST1VQX0xFQVJORVIiLCJkZWZhdWx0TmFtZWRHcm91cExlYXJuZXIiLCJkZWZhdWx0R3JvdXBMZWFybmVyIiwiZGVmYXVsdEV4dGVybmFsR3JvdXBMZWFybmVyIiwiZGVmYXVsdEdyb3VwR3JhZGVyIiwiR1JPVVBfR1JBREVSIiwiZGVmYXVsdEdyb3VwVXNlclJvbGVzIiwiZGVmYXVsdEFkbWluVXNlclJvbGVzIiwiQURNSU4iLCJkZWZhdWx0R3JvdXAiLCJvd25lcnMiLCJncmFkZXJzIiwibmFtZSIsImV4dGVybmFsVGVybUlkIiwiaXNEZWxldGVkIiwiaXNSb3N0ZXJTeW5jRW5hYmxlZCIsImV4dGVybmFsR3JvdXBzIiwibW9ja0dyb3VwcyIsIm1vY2tTeW5jZWRHcm91cHMiLCJyb3N0ZXJTeW5jRW5hYmxlZEdyb3VwIiwibW9ja0x0aUdyb3VwcyIsImx0aUdyb3VwIiwiZXh0ZXJuYWxQcm92aWRlcklkIiwiZ3JvdXBJZCIsImRlc2NyaXB0aW9uIiwiZ3JhZGVzVXJsIiwicm9zdGVyVXJsIiwiaXNBdXRvR3JhZGVQdXNoRW5hYmxlZCIsImV4dGVybmFsSWQiLCJ0eXBlbmFtZSIsIm1vY2tUZXJtR3JvdXBzIiwiZ3JvdXAiLCJtb2NrVGVybUFuZFVuaVRpbWVHcm91cHMiLCJtb2NrUGFzdEdyb3VwcyIsInBhc3RHcm91cCIsIm1vY2tQYXN0QW5kQ3VycmVudEdyb3VwcyIsImN1cnJlbnRHcm91cCIsImRlZmF1bHRFeHRlcm5hbFByb3ZpZGVycyIsIkVYVEVSTkFMX1BST1ZJREVSX1RZUEUiLCJVTklUSU1FIiwidGVybVN5bmNFbmFibGVkIiwicm9zdGVyU3luY0VuYWJsZWQiLCJncmFkZVB1c2hFbmFibGVkIiwic2hvdWxkRGlzcGxheUNyZWF0ZU5vbkx0aUdyb3VwQWxlcnQiLCJMVEkiLCJkZWZhdWx0RXh0ZXJuYWxUZXJtcyIsImludGVybmFsU2VydmVyRXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsInRpdGxlIiwiZGV0YWlsIiwicmVxdWVzdFRpbWVkT3V0RXJyb3JEYXRhIiwiUkVRVUVTVF9USU1FT1VUIiwiZm9yYmlkZGVuRXJyb3JEYXRhIiwiRk9SQklEREVOIiwidW5hdXRob3JpemVkRXJyb3JEYXRhIiwiVU5BVVRIT1JJWkVEIiwiYmFkUmVxdWVzdEVycm9yRGF0YSIsIkJBRF9SRVFVRVNUIiwiYmFkUmVxdWVzdEZ1bGxFcnJvckRhdGEiLCJ0eXBlIiwiaW5zdGFuY2UiLCJ0cmFjZUlkIiwiZXJyb3JzIiwicGFzc3dvcmQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RhbnRzL21vY2tEYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1lcmdlIH0gZnJvbSAnbG9kYXNoJ1xuaW1wb3J0IHsgRVhURVJOQUxfUFJPVklERVJfVFlQRSB9IGZyb20gJy4uL2NvbnN0YW50cy9leHRlcm5hbFByb3ZpZGVyVHlwZSdcbmltcG9ydCB7XG5cdEFwcENvbmZpZ3VyYXRpb24sXG5cdEV4dGVybmFsUHJvdmlkZXIsXG5cdEV4dGVybmFsVGVybSxcblx0RmV0Y2hFcnJvckRhdGEsXG5cdEdyb3VwLFxuXHRHcm91cFVzZXJSb2xlLFxuXHRIVFRQX1NUQVRVU19DT0RFLFxuXHRNb2RlbENvbGxlY3Rpb24sXG5cdFNpbXBsZUxvY2F0aW9uLFxuXHRVc2VySW5mbyxcblx0VXNlclJvbGVcbn0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgeyBCQVNFX1JPTEUgfSBmcm9tICcuL2Jhc2VSb2xlJ1xuaW1wb3J0IHsgVElFUiB9IGZyb20gJy4vdGllcidcblxuLy8jcmVnaW9uIEdlbmVyYWxcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBcHBDb25maWd1cmF0aW9uOiBBcHBDb25maWd1cmF0aW9uID0ge1xuXHROT0RFX0VOVjogJ3Rlc3QnLFxuXHRBUFBfTkFNRTogJ1N0dWRpb0tpdCcsXG5cdFRJRVI6IFRJRVIuUFJPRCxcblx0QVBJX0JBU0VfVVJMOiAnJyxcblx0Uk9PVF9ET01BSU46ICdzdHVkaW9raXQub3JnJyxcblx0Q0xJRU5UX0lEOiAnd2ViJyxcblx0Q0xJRU5UX1NFQ1JFVDogJyoqKionLFxuXHRJU19ET1dOVElNRTogZmFsc2UsXG5cdExNU19OQU1FOiAnQnJpZ2h0c3BhY2UnLFxuXHRHUkFEQUJMRV9ERVNDUklQVE9SOiAnYXNzZXNzbWVudCdcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2NhdGlvbjogU2ltcGxlTG9jYXRpb24gPSB7XG5cdGhhc2g6ICcnLFxuXHRob3N0OiAncHVyZHVlLmRldi5zdHVkaW9raXQub3JnJyxcblx0aG9zdG5hbWU6ICdwdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnLFxuXHRocmVmOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcvJyxcblx0b3JpZ2luOiAnaHR0cHM6Ly9wdXJkdWUuZGV2LnN0dWRpb2tpdC5vcmcnLFxuXHRwYXRobmFtZTogJy8nLFxuXHRwb3J0OiAnJyxcblx0cHJvdG9jb2w6ICdodHRwczonLFxuXHRzZWFyY2g6ICcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrSGlzdG9yeSgpOiBIaXN0b3J5IHtcblx0cmV0dXJuIHtcblx0XHRsZW5ndGg6IDAsXG5cdFx0c2Nyb2xsUmVzdG9yYXRpb246ICdhdXRvJyxcblx0XHRzdGF0ZToge30sXG5cdFx0YmFjazogamVzdC5mbigpLFxuXHRcdGZvcndhcmQ6IGplc3QuZm4oKSxcblx0XHRnbzogamVzdC5mbigpLFxuXHRcdHB1c2hTdGF0ZTogamVzdC5mbigpLFxuXHRcdHJlcGxhY2VTdGF0ZTogamVzdC5mbigpXG5cdH1cbn1cblxuLy8jZW5kcmVnaW9uIEdlbmVyYWxcblxuLy8jcmVnaW9uIERhdGVzXG5cbi8qKiA1LzE1LzE4IC0gOC8xNC8xOCAqL1xuZXhwb3J0IGNvbnN0IHBhc3REYXRlcyA9IHtcblx0c3RhcnREYXRlOiAnMjAxOC0wNS0xNVQwNDowMDowMC4wMDBaJyxcblx0ZW5kRGF0ZTogJzIwMTgtMDgtMTVUMDM6NTk6NTkuOTk5Widcbn1cblxuLyoqIDgvMTUvMTggLSAxMi8zMS8xODogKi9cbmV4cG9ydCBjb25zdCBjdXJyZW50RGF0ZXMgPSB7XG5cdHN0YXJ0RGF0ZTogJzIwMTgtMDgtMTVUMDQ6MDA6MDAuMDAwWicsXG5cdGVuZERhdGU6ICcyMDE5LTAxLTAxVDA0OjU5OjU5Ljk5OVonXG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGF0ZSBhbmQgdGltZSBmb3IgYWxsIHRlc3RzLiBVc2VkIGJ5IHRoZSAnbW9ja2RhdGUnIHBhY2thZ2UuIE9uZSBtb250aCBpbnRvIGBjdXJyZW50RGF0ZXNgLlxuICovXG5leHBvcnQgY29uc3QgZGVmYXVsdERhdGUgPSAnMjAxOC0wOS0xNVQwNDowMDowMC4wMDBaJ1xuXG4vLyNlbmRyZWdpb24gRGF0ZXNcblxuLy8jcmVnaW9uIFVzZXJzXG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0VXNlciA9IHtcblx0dXNlckluZm86IHtcblx0XHRpZDogJzEnLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0YWN0aXZpdGllczogW10sXG5cdFx0cm9sZXM6IFtdLFxuXHRcdGRhdGVEZW1vR2VuZXJhdGlvblN1Y2NlZWRlZDogbnVsbCxcblx0XHRkYXRlU3RvcmVkOiBkZWZhdWx0RGF0ZSxcblx0XHRkYXRlTGFzdFVwZGF0ZWQ6IGRlZmF1bHREYXRlLFxuXHRcdGlzSW1wZXJzb25hdGVkOiBmYWxzZSxcblx0XHRjYXJlZXJBY2NvdW50QWxpYXM6IG51bGwsXG5cdFx0ZW1wbG95ZWVOdW1iZXI6IG51bGwsXG5cdFx0dXNlck5hbWU6ICd0ZXN0Jyxcblx0XHRwdWlkOiBudWxsLFxuXHRcdGxvY2tEb3duQnJvd3NlclRlc3RMYXVuY2hVcmw6IG51bGxcblx0fSBhcyBVc2VySW5mb1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVsZXNzVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHQuLi57XG5cdFx0ZW1haWw6ICduaWNraUBtaW5hai5zdXBlcmJhc3MnLFxuXHRcdHVpZDogJ25tLW5hbWVsZXNzJ1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWRVc2VySW5mbyA9IHtcblx0Li4uZGVmYXVsdFVzZXIudXNlckluZm8sXG5cdC4uLntcblx0XHRmaXJzdE5hbWU6ICdOaWNraScsXG5cdFx0bGFzdE5hbWU6ICdNaW5haicsXG5cdFx0dWlkOiAnbm0tbmFtZWQnXG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVc2VyKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10pOiB7IHVzZXJJbmZvOiBVc2VySW5mbyB9IHtcblx0cmV0dXJuIG1lcmdlKHsgdXNlckluZm86IHsgYWN0aXZpdGllcyB9IH0sIGRlZmF1bHRVc2VyKVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXJVc2VySW5mbzogVXNlckluZm8gPSB7XG5cdC4uLmRlZmF1bHRVc2VyLnVzZXJJbmZvLFxuXHRpZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJ1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwT3duZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMScsXG5cdHVzZXJJZDogJzInLFxuXHRmaXJzdE5hbWU6ICdKYW5lJyxcblx0bGFzdE5hbWU6ICdEb2UnLFxuXHRlbWFpbDogJ2phbmVAZ21haWwuY29tJyxcblx0dWlkOiAnamFuZScsXG5cdGVudGl0eUlkOiAxLFxuXHRyb2xlOiBCQVNFX1JPTEUuR1JPVVBfT1dORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0TmFtZWxlc3NHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnMicsXG5cdHVzZXJJZDogJzMnLFxuXHRmaXJzdE5hbWU6IG51bGwsXG5cdGxhc3ROYW1lOiBudWxsLFxuXHRlbWFpbDogJ25pY2tpQG1pbmFqLnN1cGVyYmFzcycsXG5cdHVpZDogJ25tLW5hbWVsZXNzJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdE5hbWVkR3JvdXBMZWFybmVyOiBHcm91cFVzZXJSb2xlID0ge1xuXHRpZDogJzMnLFxuXHR1c2VySWQ6ICc0Jyxcblx0Zmlyc3ROYW1lOiAnTmlja2knLFxuXHRsYXN0TmFtZTogJ01pbmFqJyxcblx0ZW1haWw6IG51bGwsXG5cdHVpZDogJ25tLW5hbWVkJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiBmYWxzZVxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEdyb3VwTGVhcm5lcjogR3JvdXBVc2VyUm9sZSA9IHtcblx0aWQ6ICc0Jyxcblx0dXNlcklkOiAnNScsXG5cdGZpcnN0TmFtZTogJ0pvZScsXG5cdGxhc3ROYW1lOiAnU2NobW9lJyxcblx0ZW1haWw6ICdub3BlQGdtYWlsLmNvbScsXG5cdHVpZDogJ25vcGUnLFxuXHRlbnRpdHlJZDogMSxcblx0cm9sZTogQkFTRV9ST0xFLkdST1VQX0xFQVJORVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxHcm91cExlYXJuZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNScsXG5cdHVzZXJJZDogJzYnLFxuXHRmaXJzdE5hbWU6ICdCb2InLFxuXHRsYXN0TmFtZTogJ0xvYmxhdycsXG5cdGVtYWlsOiAnYm9ibG9ibGF3QGxhd2Jsb2cuY29tJyxcblx0dWlkOiAnYm9ibG9ibGF3Jyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9MRUFSTkVSLFxuXHRpc0V4dGVybmFsOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBHcmFkZXI6IEdyb3VwVXNlclJvbGUgPSB7XG5cdGlkOiAnNicsXG5cdHVzZXJJZDogJzcnLFxuXHRmaXJzdE5hbWU6ICdHcmFkZXInLFxuXHRsYXN0TmFtZTogJ01jR3JhZGVmYWNlJyxcblx0ZW1haWw6ICdncmFkZXJAZ21haWwuY29tJyxcblx0dWlkOiAnZ3JhZGVyJyxcblx0ZW50aXR5SWQ6IDEsXG5cdHJvbGU6IEJBU0VfUk9MRS5HUk9VUF9HUkFERVIsXG5cdGlzRXh0ZXJuYWw6IGZhbHNlXG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0R3JvdXBVc2VyUm9sZXMgPSBbZGVmYXVsdEdyb3VwT3duZXIsIGRlZmF1bHRHcm91cExlYXJuZXIsIGRlZmF1bHRFeHRlcm5hbEdyb3VwTGVhcm5lcl1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRBZG1pblVzZXJSb2xlczogVXNlclJvbGVbXSA9IFtcblx0e1xuXHRcdGlkOiAnMScsXG5cdFx0Zmlyc3ROYW1lOiAnSm9lJyxcblx0XHRsYXN0TmFtZTogJ1NjaG1vJyxcblx0XHRlbWFpbDogbnVsbCxcblx0XHR1aWQ6IG51bGwsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH0sXG5cdHtcblx0XHRpZDogJzInLFxuXHRcdGZpcnN0TmFtZTogbnVsbCxcblx0XHRsYXN0TmFtZTogbnVsbCxcblx0XHRlbWFpbDogJ2Nhcmx5c2ltb25AY2xvdWRzLmluLmNvZmZlZScsXG5cdFx0dWlkOiAnY2FybHlzaW1vbicsXG5cdFx0cm9sZTogQkFTRV9ST0xFLkFETUlOXG5cdH1cbl1cblxuLy8jZW5kcmVnaW9uIFVzZXJzXG5cbi8vI3JlZ2lvbiBHcm91cHNcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRHcm91cDogR3JvdXAgPSB7XG5cdHJvbGVzOiBbXSxcblx0YWN0aXZpdGllczogW10sXG5cdG93bmVyczogW1xuXHRcdHtcblx0XHRcdGlkOiAnMScsXG5cdFx0XHRlbnRpdHlJZDogMSxcblx0XHRcdGZpcnN0TmFtZTogJ0luc3RydWN0b3InLFxuXHRcdFx0bGFzdE5hbWU6ICdNY0luc3RydWN0b3InLFxuXHRcdFx0ZW1haWw6IG51bGwsXG5cdFx0XHR1aWQ6IG51bGxcblx0XHR9XG5cdF0sXG5cdGdyYWRlcnM6IFtdLFxuXHRpZDogMSxcblx0bmFtZTogJ01jR3JvdXAnLFxuXHRleHRlcm5hbFRlcm1JZDogbnVsbCxcblx0c3RhcnREYXRlOiBjdXJyZW50RGF0ZXMuc3RhcnREYXRlLFxuXHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZSxcblx0aXNEZWxldGVkOiBmYWxzZSxcblx0aXNSb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdGV4dGVybmFsR3JvdXBzOiBbXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja0dyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRyZXR1cm4geyAnMSc6IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwKSB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrU3luY2VkR3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHJvc3RlclN5bmNFbmFibGVkR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdHJvc3RlclN5bmNFbmFibGVkR3JvdXAuaXNSb3N0ZXJTeW5jRW5hYmxlZCA9IHRydWVcblx0cmV0dXJuIHsgJzEnOiByb3N0ZXJTeW5jRW5hYmxlZEdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tMdGlHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgbHRpR3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGx0aUdyb3VwLmlzUm9zdGVyU3luY0VuYWJsZWQgPSB0cnVlXG5cdGx0aUdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAyLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ0xUSSBFeHRlcm5hbEdyb3VwJyxcblx0XHRcdGRlc2NyaXB0aW9uOiAnTFRJIDEwMScsXG5cdFx0XHRncmFkZXNVcmw6ICd3d3cubHRpLm9yZycsXG5cdFx0XHRyb3N0ZXJVcmw6IG51bGwsXG5cdFx0XHRpc0F1dG9HcmFkZVB1c2hFbmFibGVkOiBmYWxzZSxcblx0XHRcdGV4dGVybmFsSWQ6ICcxJyxcblx0XHRcdHR5cGVuYW1lOiAnRXh0ZXJuYWxHcm91cCdcblx0XHR9XG5cdF1cblx0cmV0dXJuIHsgJzEnOiBsdGlHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUdyb3VwcyhhY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdLCByb2xlczogc3RyaW5nW10gPSBbXSk6IE1vZGVsQ29sbGVjdGlvbjxHcm91cD4ge1xuXHRjb25zdCBncm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cClcblx0Z3JvdXAuc3RhcnREYXRlID0gbnVsbFxuXHRncm91cC5lbmREYXRlID0gbnVsbFxuXHRncm91cC5leHRlcm5hbFRlcm1JZCA9IDFcblx0cmV0dXJuIHsgJzEnOiBncm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrVGVybUFuZFVuaVRpbWVHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgZ3JvdXA6IEdyb3VwID0gbWVyZ2UoeyBhY3Rpdml0aWVzLCByb2xlcyB9LCBkZWZhdWx0R3JvdXApXG5cdGdyb3VwLnN0YXJ0RGF0ZSA9IG51bGxcblx0Z3JvdXAuZW5kRGF0ZSA9IG51bGxcblx0Z3JvdXAuZXh0ZXJuYWxUZXJtSWQgPSAxXG5cdGdyb3VwLmV4dGVybmFsR3JvdXBzID0gW1xuXHRcdHtcblx0XHRcdGlkOiAxLFxuXHRcdFx0ZXh0ZXJuYWxQcm92aWRlcklkOiAxLFxuXHRcdFx0Z3JvdXBJZDogMSxcblx0XHRcdHVzZXJJZDogJzEnLFxuXHRcdFx0bmFtZTogJ1VuaVRpbWUgRXh0ZXJuYWxHcm91cCcsXG5cdFx0XHRkZXNjcmlwdGlvbjogJ1VuaVRpbWUgMTAxJyxcblx0XHRcdGdyYWRlc1VybDogbnVsbCxcblx0XHRcdHJvc3RlclVybDogbnVsbCxcblx0XHRcdGlzQXV0b0dyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdFx0ZXh0ZXJuYWxJZDogJzEnLFxuXHRcdFx0dHlwZW5hbWU6ICdFeHRlcm5hbEdyb3VwJ1xuXHRcdH1cblx0XVxuXHRyZXR1cm4geyAnMSc6IGdyb3VwIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQYXN0R3JvdXBzKGFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW10sIHJvbGVzOiBzdHJpbmdbXSA9IFtdKTogTW9kZWxDb2xsZWN0aW9uPEdyb3VwPiB7XG5cdGNvbnN0IHBhc3RHcm91cDogR3JvdXAgPSBtZXJnZSh7IGFjdGl2aXRpZXMsIHJvbGVzIH0sIGRlZmF1bHRHcm91cCwgcGFzdERhdGVzKVxuXHRyZXR1cm4geyAnMSc6IHBhc3RHcm91cCB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUGFzdEFuZEN1cnJlbnRHcm91cHMoYWN0aXZpdGllczogc3RyaW5nW10gPSBbXSwgcm9sZXM6IHN0cmluZ1tdID0gW10pOiBNb2RlbENvbGxlY3Rpb248R3JvdXA+IHtcblx0Y29uc3QgcGFzdEdyb3VwOiBHcm91cCA9IG1lcmdlKHsgYWN0aXZpdGllcywgcm9sZXMgfSwgZGVmYXVsdEdyb3VwLCBwYXN0RGF0ZXMpXG5cdGNvbnN0IGN1cnJlbnRHcm91cDogR3JvdXAgPSBtZXJnZShcblx0XHR7IGFjdGl2aXRpZXMsIHJvbGVzIH0sXG5cdFx0ZGVmYXVsdEdyb3VwLFxuXHRcdHtcblx0XHRcdGlkOiAnMidcblx0XHR9LFxuXHRcdGN1cnJlbnREYXRlc1xuXHQpXG5cdHJldHVybiB7ICcxJzogcGFzdEdyb3VwLCAnMic6IGN1cnJlbnRHcm91cCB9XG59XG5cbi8vI2VuZHJlZ2lvbiBHcm91cHNcblxuLy8jcmVnaW9uIEV4dGVybmFsVGVybXMgKyBFeHRlcm5hbFByb3ZpZGVyc1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEV4dGVybmFsUHJvdmlkZXJzOiBNb2RlbENvbGxlY3Rpb248RXh0ZXJuYWxQcm92aWRlcj4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdHR5cGVuYW1lOiBFWFRFUk5BTF9QUk9WSURFUl9UWVBFLlVOSVRJTUUsXG5cdFx0dGVybVN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdHJvc3RlclN5bmNFbmFibGVkOiB0cnVlLFxuXHRcdGdyYWRlUHVzaEVuYWJsZWQ6IGZhbHNlLFxuXHRcdHNob3VsZERpc3BsYXlDcmVhdGVOb25MdGlHcm91cEFsZXJ0OiBmYWxzZVxuXHR9LFxuXHQnMic6IHtcblx0XHRpZDogMixcblx0XHR0eXBlbmFtZTogRVhURVJOQUxfUFJPVklERVJfVFlQRS5MVEksXG5cdFx0dGVybVN5bmNFbmFibGVkOiBmYWxzZSxcblx0XHRyb3N0ZXJTeW5jRW5hYmxlZDogZmFsc2UsXG5cdFx0Z3JhZGVQdXNoRW5hYmxlZDogdHJ1ZSxcblx0XHRzaG91bGREaXNwbGF5Q3JlYXRlTm9uTHRpR3JvdXBBbGVydDogdHJ1ZVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RXh0ZXJuYWxUZXJtczogTW9kZWxDb2xsZWN0aW9uPEV4dGVybmFsVGVybT4gPSB7XG5cdCcxJzoge1xuXHRcdGlkOiAxLFxuXHRcdGV4dGVybmFsUHJvdmlkZXJJZDogMSxcblx0XHRleHRlcm5hbElkOiAnZm9vJyxcblx0XHRuYW1lOiAnVW5pVGltZSBGYWxsIFRlcm0nLFxuXHRcdHN0YXJ0RGF0ZTogY3VycmVudERhdGVzLnN0YXJ0RGF0ZSxcblx0XHRlbmREYXRlOiBjdXJyZW50RGF0ZXMuZW5kRGF0ZVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBFeHRlcm5hbFRlcm1zICsgRXh0ZXJuYWxQcm92aWRlcnNcblxuLy8jcmVnaW9uIEZldGNoRXJyb3JEYXRhXG5cbmV4cG9ydCBjb25zdCBpbnRlcm5hbFNlcnZlckVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5JTlRFUk5BTF9TRVJWRVJfRVJST1IsXG5cdHRpdGxlOiAnRXJyb3InLFxuXHRkZXRhaWw6ICdBbiBlcnJvciBoYXMgb2NjdXJyZWQuJ1xufVxuXG5leHBvcnQgY29uc3QgcmVxdWVzdFRpbWVkT3V0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLlJFUVVFU1RfVElNRU9VVCxcblx0dGl0bGU6ICdSZXF1ZXN0IFRpbWVvdXQnLFxuXHRkZXRhaWw6IG51bGxcbn1cblxuZXhwb3J0IGNvbnN0IGZvcmJpZGRlbkVycm9yRGF0YTogRmV0Y2hFcnJvckRhdGEgPSB7XG5cdHN0YXR1czogSFRUUF9TVEFUVVNfQ09ERS5GT1JCSURERU4sXG5cdHRpdGxlOiAnRm9yYmlkZGVuJyxcblx0ZGV0YWlsOiAnWW91ciByZXF1ZXN0IGhhcyBiZWVuIGRlbmllZC4gWW91IGRvIG5vdCBoYXZlIGFjY2Vzcy4nXG59XG5cbmV4cG9ydCBjb25zdCB1bmF1dGhvcml6ZWRFcnJvckRhdGE6IEZldGNoRXJyb3JEYXRhID0ge1xuXHRzdGF0dXM6IEhUVFBfU1RBVFVTX0NPREUuVU5BVVRIT1JJWkVELFxuXHR0aXRsZTogJ1VuYXV0aG9yaXplZCcsXG5cdGRldGFpbDogJ1lvdXIgcmVxdWVzdCBpcyB1bmF1dGhvcml6ZWQuIFlvdSBtdXN0IGF1dGhlbnRpY2F0ZS4nXG59XG5cbmV4cG9ydCBjb25zdCBiYWRSZXF1ZXN0RXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucydcbn1cblxuZXhwb3J0IGNvbnN0IGJhZFJlcXVlc3RGdWxsRXJyb3JEYXRhOiBGZXRjaEVycm9yRGF0YSA9IHtcblx0c3RhdHVzOiBIVFRQX1NUQVRVU19DT0RFLkJBRF9SRVFVRVNULFxuXHR0aXRsZTogJ0JhZCBSZXF1ZXN0Jyxcblx0ZGV0YWlsOiAnUmVhc29ucycsXG5cdC8vIGluY2x1ZGUgYWxsIG9wdGlvbmFsIHByb3BlcnRpZXNcblx0dHlwZTogJ2h0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjMxI3NlY3Rpb24tNi41LjEnLFxuXHRpbnN0YW5jZTogJ2luc3RhbmNlJyxcblx0dHJhY2VJZDogJzAwLTM5MTRiNDNiNDUyYjk0ZTNmZjRjMzI3OTIyODgwYTAzLTRjZmVkNmZlNDJhZmRkOGYtMDAnLFxuXHRlcnJvcnM6IHtcblx0XHRwYXNzd29yZDogWydUaGUgUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA2IGNoYXJhY3RlcnMgbG9uZy4nXVxuXHR9XG59XG5cbi8vI2VuZHJlZ2lvbiBGZXRjaEVycm9yRGF0YVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMscUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQWFBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEs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
@@ -131,7 +131,7 @@ function* getTokenFromCodeAndState(code, state) {
131
131
  function* getTokenFromRefreshToken(oauthTokenParam) {
132
132
  const appConfig = (0, _constants.getAppConfig)();
133
133
  if (!appConfig.CLIENT_ID) {
134
- throw new Error('CLIENT_ID, is required in AppConfig');
134
+ throw new Error('CLIENT_ID is required in AppConfig');
135
135
  }
136
136
  const getTokenModelName = 'getToken';
137
137
  const formBody = new URLSearchParams({
@@ -411,4 +411,4 @@ function authSaga() {
411
411
  } while (true);
412
412
  }();
413
413
  }
414
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZWZmZWN0cyIsInJlcXVpcmUiLCJfdXVpZCIsIl9jb25zdGFudHMiLCJfY29kZVByb3ZpZGVyU2VydmljZSIsIl9vYXV0aFBlcnNpc3RlbmNlU2VydmljZSIsIl90aWNrZXRQcm92aWRlclNlcnZpY2UiLCJfd2luZG93U2VydmljZSIsIl90eXBlcyIsIl9sb2dnZXIiLCJfdXJsIiwiX2FjdGlvbnMiLCJtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiYWN0aW9uIiwibW9kZWxOYW1lIiwiaXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uIiwibW9kZWxQYXRoIiwiZXhwb3J0cyIsInRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiaW5jb21pbmdBY3Rpb24iLCJtYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCIsImlzVHJhbnNpZW50TW9kZWxGZXRjaEVycm9yQWN0aW9uIiwidGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkIiwib2F1dGhUb2tlbiIsIm9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlIiwicmVmcmVzaExvY2siLCJsb2dnZXIiLCJnZXRUb2tlbkZyb21Db2RlIiwiY29kZSIsImFwcENvbmZpZyIsImdldEFwcENvbmZpZyIsIkNMSUVOVF9JRCIsIkNMSUVOVF9TRUNSRVQiLCJFcnJvciIsImdldFRva2VuTW9kZWxOYW1lIiwiZm9ybUJvZHkiLCJVUkxTZWFyY2hQYXJhbXMiLCJncmFudF90eXBlIiwiY2xpZW50X2lkIiwiY2xpZW50X3NlY3JldCIsInB1dCIsInR5cGUiLCJNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFIiwiRkVUQ0hfUkVRVUVTVCIsImJvZHkiLCJ0b1N0cmluZyIsIm5vU3RvcmUiLCJmZXRjaFJlc3VsdEFjdGlvbiIsImZldGNoRXJyb3JBY3Rpb24iLCJyYWNlIiwidGFrZSIsImRhdGEiLCJnZXRUb2tlbkZyb21Db2RlQW5kU3RhdGUiLCJzdGF0ZSIsIk9BVVRIX1BLQ0VfU0NPUEUiLCJPQVVUSF9QS0NFX0VORFBPSU5UIiwiY29kZVZlcmlmaWVyIiwiY2FsbCIsImdldFBlcnNpc3RlZENvZGVWZXJpZmllciIsInBlcnNpc3RlZFN0YXRlIiwiZ2V0UGVyc2lzdGVkU3RhdGUiLCJwZXJzaXN0U3RhdGUiLCJwZXJzaXN0Q29kZVZlcmlmaWVyIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJzY29wZSIsImNvZGVfdmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJvcmlnaW4iLCJnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4iLCJvYXV0aFRva2VuUGFyYW0iLCJyZWZyZXNoX3Rva2VuIiwiYXBwZW5kIiwiZXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsInBlcmZvcm1Ub2tlblJlZnJlc2giLCJyZWZyZXNoU3VjY2VzcyIsIkFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRSIsIlRPS0VOX1JFRlJFU0hfU1VDQ0VFREVEIiwicmVmcmVzaEZhaWxlZCIsIkFVVEhfQUNUSU9OX1RZUEUiLCJUT0tFTl9SRUZSRVNIX0ZBSUxFRCIsImRlYnVnIiwib3JpZ2luYWxBY2Nlc3NUb2tlbiIsImFjY2Vzc190b2tlbiIsInBlcnNpc3RUb2tlbiIsImFsbCIsImxvZ091dCIsIkxPR19PVVRfUkVRVUVTVEVEIiwibG9naW5GbG93IiwibW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24iLCJjcmVkZW50aWFsc0xvZ2luRmxvdyIsIm5vUmV0cnkiLCJjYXNWMUxvZ2luRmxvdyIsImxvY2FsTG9naW5GbG93IiwiY2FzVGlja2V0TG9naW5GbG93IiwidGlja2V0Iiwic2VydmljZSIsInF1ZXJ5UGFyYW1zIiwicGtjZUxvZ2luRmxvdyIsIl8iLCJ1dWlkdjQiLCJzaGEyNTZDb2RlVmVyaWZpZXIiLCJzaGEyNTZBc3luYyIsImNvZGVDaGFsbGVuZ2UiLCJiYXNlNjRVcmxFbmNvZGUiLCJwa2NlQXV0aFJlZGlyZWN0VVJMIiwicmVzcG9uc2VfdHlwZSIsImNvZGVfY2hhbGxlbmdlIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwicmVwbGFjZSIsImhhbmRsZUF1dGhGYWlsdXJlIiwiVU5BVVRIT1JJWkVEIiwiZ2V0T0F1dGhUb2tlbiIsInRoaXJ0eVNlY29uZHNGcm9tTm93IiwiRGF0ZSIsInNldFNlY29uZHMiLCJnZXRTZWNvbmRzIiwiYXV0aFNhZ2EiLCJvYXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZGVmYXVsdE9BdXRoUGVyc2lzdGVuY2VTZXJ2aWNlIiwidGlja2V0UHJvdmlkZXJTZXJ2aWNlIiwiZGVmYXVsdFRpY2tldFByb3ZpZGVyU2VydmljZSIsImNvZGVQcm92aWRlclNlcnZpY2UiLCJkZWZhdWx0Q29kZVByb3ZpZGVyU2VydmljZSIsImdldExvZ2dlciIsImdldFBlcnNpc3RlZFRva2VuIiwiY2FzVGlja2V0IiwiZ2V0VGlja2V0IiwicmVtb3ZlVGlja2V0IiwiZ2V0QXBwU2VydmljZU5hbWUiLCJnZXRDb2RlIiwiY2xlYXJVc2VyRGF0YSIsIk1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUiLCJjbGVhclBlcnNpc3RlbnRUb2tlbiIsImdldFN0YXRlIiwicmVtb3ZlQ29kZUFuZFN0YXRlIiwiQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSIsIkFVVEhfSU5JVElBTElaRUQiLCJ0YWtlRXZlcnkiLCJNT0RFTF9GRVRDSF9FUlJPUl9BQ1RJT05fVFlQRSIsIlRSWV9GRVRDSF9GQUlMRUQiLCJjYXNWMUFjdGlvbiIsImxvY2FsTG9naW5BY3Rpb24iLCJwa2NlTG9naW5BY3Rpb24iLCJBVVRIX0NBU19WMV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFIiwiQ0FTX1YxX0xPR0lOX1JFUVVFU1QiLCJBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJMT0NBTF9MT0dJTl9SRVFVRVNUIiwiQVVUSF9QS0NFX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJQS0NFX0xPR0lOX1JFUVVFU1QiLCJMT0dJTl9SRVFVRVNURUQiLCJsb2dpblN1Y2Nlc3MiLCJHRVRfVE9LRU5fU1VDQ0VFREVEIiwiTE9HSU5fRkFJTEVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3NhZ2FzL2F1dGhTYWdhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZ2FJdGVyYXRvciB9IGZyb20gJ0ByZWR1eC1zYWdhL2NvcmUnXG5pbXBvcnQgeyBBbnlBY3Rpb24gfSBmcm9tICdyZWR1eCdcbmltcG9ydCB7IGFsbCwgY2FsbCwgcHV0LCByYWNlLCB0YWtlLCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJ1xuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgY29kZVByb3ZpZGVyU2VydmljZSBhcyBkZWZhdWx0Q29kZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvZGVQcm92aWRlclNlcnZpY2UnXG5pbXBvcnQgeyBvYXV0aFBlcnNpc3RlbmNlU2VydmljZSBhcyBkZWZhdWx0T0F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYXV0aFBlcnNpc3RlbmNlU2VydmljZSdcbmltcG9ydCB7IHRpY2tldFByb3ZpZGVyU2VydmljZSBhcyBkZWZhdWx0VGlja2V0UHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0UHJvdmlkZXJTZXJ2aWNlJ1xuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dpbmRvd1NlcnZpY2UnXG5pbXBvcnQge1xuXHRDb2RlUHJvdmlkZXJTZXJ2aWNlLFxuXHRIVFRQX1NUQVRVU19DT0RFLFxuXHRPQXV0aFBlcnNpc3RlbmNlU2VydmljZSxcblx0T0F1dGhUb2tlbixcblx0T0F1dGhUb2tlbk9yTnVsbCxcblx0VGlja2V0UHJvdmlkZXJTZXJ2aWNlLFxuXHRUb2tlbkFjY2Vzc0Z1bmN0aW9uXG59IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TG9nZ2VyLCBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXG5pbXBvcnQgeyBiYXNlNjRVcmxFbmNvZGUsIHNoYTI1NkFzeW5jIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXJsJ1xuaW1wb3J0IHtcblx0QVVUSF9BQ1RJT05fVFlQRSxcblx0QVVUSF9DQVNfVjFfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9MT0NBTF9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLFxuXHRBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLFxuXHRBdXRoQWN0aW9uLFxuXHRBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbixcblx0QXV0aFBLQ0VMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhUb2tlbkFjdGlvbixcblx0QXV0aFRva2VuU3VjY2Vzc0FjdGlvbixcblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24sXG5cdGlzVHJhbnNpZW50TW9kZWxGZXRjaFJlc3VsdEFjdGlvbixcblx0TU9ERUxfRkVUQ0hfRVJST1JfQUNUSU9OX1RZUEUsXG5cdE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdE1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUsXG5cdE1vZGVsRmV0Y2hFcnJvckFjdGlvbixcblx0TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24sXG5cdE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb24sXG5cdE1vZGVsUmVtb3ZlS2V5QWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnXG5cbi8vI3JlZ2lvbiBIZWxwZXJzXG5cbmV4cG9ydCBjb25zdCBtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uKGFjdGlvbikgJiYgYWN0aW9uLm1vZGVsUGF0aCA9PT0gbW9kZWxOYW1lXG5cbmV4cG9ydCBjb25zdCB0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQoaW5jb21pbmdBY3Rpb24sIG1vZGVsTmFtZSlcblxuZXhwb3J0IGNvbnN0IG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubW9kZWxQYXRoID09PSBtb2RlbE5hbWVcblxuZXhwb3J0IGNvbnN0IHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGluY29taW5nQWN0aW9uLCBtb2RlbE5hbWUpXG5cbi8vI2VuZHJlZ2lvbiBIZWxwZXJzXG5cbi8vI3JlZ2lvbiBMb2NhbCBWYXJpYWJsZXNcblxubGV0IG9hdXRoVG9rZW46IE9BdXRoVG9rZW5Pck51bGwgPSBudWxsXG5sZXQgb2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2U6IE9BdXRoUGVyc2lzdGVuY2VTZXJ2aWNlXG5sZXQgcmVmcmVzaExvY2s6IGJvb2xlYW5cbmxldCBsb2dnZXI6IExvZ2dlclxuXG4vLyNlbmRyZWdpb24gTG9jYWwgVmFyaWFibGVzXG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tQ29kZShjb2RlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5DTElFTlRfU0VDUkVUKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQgYW5kIENMSUVOVF9TRUNSRVQgYXJlIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdGNsaWVudF9zZWNyZXQ6IGFwcENvbmZpZy5DTElFTlRfU0VDUkVULFxuXHRcdGNvZGU6IGNvZGVcblx0fSlcblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24gfHwgIWZldGNoUmVzdWx0QWN0aW9uPy5kYXRhKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4gZmV0Y2hSZXN1bHRBY3Rpb24uZGF0YVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdldFRva2VuRnJvbUNvZGVBbmRTdGF0ZShjb2RlOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lELCBPQVVUSF9QS0NFX1NDT1BFLCBhbmQgT0FVVEhfUEtDRV9FTkRQT0lOVCBhcmUgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXG5cdC8vIHZhbGlkYXRlIHBlcnNpc3RlZCB2YWx1ZXNcblx0Y29uc3QgY29kZVZlcmlmaWVyID0geWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRDb2RlVmVyaWZpZXIpXG5cdGlmICghY29kZVZlcmlmaWVyKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNvZGVfdmVyaWZpZXInKVxuXHR9XG5cdGNvbnN0IHBlcnNpc3RlZFN0YXRlID0geWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRTdGF0ZSlcblx0aWYgKHBlcnNpc3RlZFN0YXRlICE9PSBzdGF0ZSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzdGF0ZScpXG5cdH1cblx0Ly8gY2xlYXIgcGVyc2lzdGVkIHZhbHVlc1xuXHR5aWVsZCBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RTdGF0ZSwgbnVsbClcblx0eWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0Q29kZVZlcmlmaWVyLCBudWxsKVxuXG5cdC8vIGRpc3BhdGNoIHJlcXVlc3Rcblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdHNjb3BlOiBhcHBDb25maWcuT0FVVEhfUEtDRV9TQ09QRSxcblx0XHRjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXIsXG5cdFx0cmVkaXJlY3RfdXJpOiBsb2NhdGlvbi5vcmlnaW4sXG5cdFx0Y29kZTogY29kZVxuXHR9KVxuXHR5aWVsZCBwdXQ8TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24+KHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiBnZXRUb2tlbk1vZGVsTmFtZSxcblx0XHRib2R5OiBmb3JtQm9keS50b1N0cmluZygpLFxuXHRcdG5vU3RvcmU6IHRydWVcblx0fSlcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKGdldFRva2VuTW9kZWxOYW1lKSksXG5cdFx0ZmV0Y2hFcnJvckFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKVxuXHR9KVxuXHRpZiAoZmV0Y2hFcnJvckFjdGlvbiB8fCAhZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGEpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiBmZXRjaFJlc3VsdEFjdGlvbi5kYXRhXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tUmVmcmVzaFRva2VuKG9hdXRoVG9rZW5QYXJhbTogT0F1dGhUb2tlbik6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGlmICghYXBwQ29uZmlnLkNMSUVOVF9JRCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lELCBpcyByZXF1aXJlZCBpbiBBcHBDb25maWcnKVxuXHR9XG5cblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ3JlZnJlc2hfdG9rZW4nLFxuXHRcdGNsaWVudF9pZDogYXBwQ29uZmlnLkNMSUVOVF9JRCxcblx0XHRyZWZyZXNoX3Rva2VuOiBvYXV0aFRva2VuUGFyYW0ucmVmcmVzaF90b2tlblxuXHR9KVxuXHQvLyBjcmVhdGUgdGhlIGZvcm0gYm9keSBiYXNlZCBvbiBpZiB1c2luZyBhIGNsaWVudF9zZWNyZXQ6IHRyYWRpdGlvbmFsIE9BdXRoIHZzLiBQS0NFIGZsb3dcblx0aWYgKGFwcENvbmZpZy5DTElFTlRfU0VDUkVUKSB7XG5cdFx0Zm9ybUJvZHkuYXBwZW5kKCdjbGllbnRfc2VjcmV0JywgYXBwQ29uZmlnLkNMSUVOVF9TRUNSRVQpXG5cdH1cblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0Ly8gYW55IGVycm9yIHJlc3BvbnNlXG5cdGlmIChmZXRjaEVycm9yQWN0aW9uKSB7XG5cdFx0Ly8gaWdub3JlIHNlcnZlciBlcnJvcnNcblx0XHRpZiAoXG5cdFx0XHRmZXRjaEVycm9yQWN0aW9uLmVycm9yRGF0YT8uc3RhdHVzICYmXG5cdFx0XHRmZXRjaEVycm9yQWN0aW9uLmVycm9yRGF0YS5zdGF0dXMgPj0gSFRUUF9TVEFUVVNfQ09ERS5JTlRFUk5BTF9TRVJWRVJfRVJST1Jcblx0XHQpIHtcblx0XHRcdHJldHVybiBvYXV0aFRva2VuUGFyYW1cblx0XHR9XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHQvLyBmb3Igc29tZSByZWFzb24gdGhlIHJlc3BvbnNlIGhhZCBubyBib2R5XG5cdGlmICghZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGEpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiBmZXRjaFJlc3VsdEFjdGlvbi5kYXRhXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcGVyZm9ybVRva2VuUmVmcmVzaCgpOiBTYWdhSXRlcmF0b3Ige1xuXHRpZiAocmVmcmVzaExvY2sgfHwgIW9hdXRoVG9rZW4pIHtcblx0XHQvLyBhbHJlYWR5IHJlZnJlc2hpbmcuIHdhaXQgZm9yIHRoZSBjdXJyZW50IHJlZnJlc2ggdG8gc3VjY2VlZCBvciBmYWlsLlxuXHRcdHlpZWxkIHJhY2Uoe1xuXHRcdFx0cmVmcmVzaFN1Y2Nlc3M6IHRha2UoQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfU1VDQ0VFREVEKSxcblx0XHRcdHJlZnJlc2hGYWlsZWQ6IHRha2UoQVVUSF9BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX0ZBSUxFRClcblx0XHR9KVxuXHRcdHJldHVyblxuXHR9XG5cdGxvZ2dlci5kZWJ1ZygnUmVmcmVzaGluZyBPQXV0aCB0b2tlbicpXG5cdHJlZnJlc2hMb2NrID0gdHJ1ZVxuXHQvLyBvYXV0aFRva2VuIHdpbGwgYmUgc2V0IHRvOlxuXHQvLyAxLiBuZXcgdG9rZW4gKHN1Y2Nlc3MpXG5cdC8vIDIuIHNhbWUgdG9rZW4gKGZhaWxlZCBmcm9tIHRpbWVvdXQgb3Igc2VydmVyIGVycm9yKVxuXHQvLyAzLiBudWxsIChmYWlsKVxuXHRjb25zdCBvcmlnaW5hbEFjY2Vzc1Rva2VuID0gb2F1dGhUb2tlbi5hY2Nlc3NfdG9rZW5cblx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoZ2V0VG9rZW5Gcm9tUmVmcmVzaFRva2VuLCBvYXV0aFRva2VuKVxuXHRpZiAoISFvYXV0aFRva2VuICYmIG9hdXRoVG9rZW4uYWNjZXNzX3Rva2VuICE9PSBvcmlnaW5hbEFjY2Vzc1Rva2VuKSB7XG5cdFx0bG9nZ2VyLmRlYnVnKCdPQXV0aCB0b2tlbiByZWZyZXNoZWQnKVxuXHRcdHlpZWxkIGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBvYXV0aFRva2VuKVxuXHRcdHlpZWxkIHB1dDxBdXRoVG9rZW5TdWNjZXNzQWN0aW9uPih7IHR5cGU6IEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX1NVQ0NFRURFRCwgb2F1dGhUb2tlbiB9KVxuXHR9IGVsc2UgaWYgKG9hdXRoVG9rZW4gPT09IG51bGwpIHtcblx0XHRsb2dnZXIuZGVidWcoJ09BdXRoIHRva2VuIGZhaWxlZCB0byByZWZyZXNoJylcblx0XHQvLyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gb3V0c2lkZSBvZiB0aGUgdG9rZW4gaGF2aW5nIGJlZW4gcmV2b2tlZCBvbiB0aGUgc2VydmVyIHNpZGVcblx0XHR5aWVsZCBhbGwoe1xuXHRcdFx0cmVmcmVzaEZhaWxlZDogcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5UT0tFTl9SRUZSRVNIX0ZBSUxFRCB9KSxcblx0XHRcdGxvZ091dDogcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5MT0dfT1VUX1JFUVVFU1RFRCB9KVxuXHRcdH0pXG5cdH1cblx0cmVmcmVzaExvY2sgPSBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGxvZ2luRmxvdyhtb2RlbEZldGNoUmVxdWVzdEFjdGlvbjogTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHR5aWVsZCBwdXQobW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChtb2RlbEZldGNoUmVxdWVzdEFjdGlvbi5tb2RlbE5hbWUpKSxcblx0XHRmZXRjaEVycm9yQWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZChtb2RlbEZldGNoUmVxdWVzdEFjdGlvbi5tb2RlbE5hbWUpKVxuXHR9KVxuXHRpZiAoZmV0Y2hFcnJvckFjdGlvbikge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0Y29uc3QgY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGE/LmNvZGVcblx0aWYgKCFjb2RlKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4geWllbGQgY2FsbChnZXRUb2tlbkZyb21Db2RlLCBjb2RlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGNyZWRlbnRpYWxzTG9naW5GbG93KFxuXHRhY3Rpb246IEF1dGhDYXNWMUxvZ2luUmVxdWVzdEFjdGlvbiB8IEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbixcblx0bW9kZWxOYW1lOiBzdHJpbmdcbik6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uOiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbiA9IHtcblx0XHQvLyBzZXQgcmVxdWlyZWQgZGVmYXVsdHNcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lLFxuXHRcdG5vU3RvcmU6IHRydWUsXG5cdFx0Ly8gZm9yY2Ugbm8gcmV0cnlcblx0XHRub1JldHJ5OiB0cnVlLFxuXHRcdC8vIHBhc3MgdGhydSBib2R5XG5cdFx0Ym9keTogYWN0aW9uLmJvZHlcblx0fVxuXHRyZXR1cm4geWllbGQgY2FsbChsb2dpbkZsb3csIG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGNhc1YxTG9naW5GbG93KGFjdGlvbjogQXV0aENhc1YxTG9naW5SZXF1ZXN0QWN0aW9uKTogU2FnYUl0ZXJhdG9yIHtcblx0cmV0dXJuIHlpZWxkIGNhbGwoY3JlZGVudGlhbHNMb2dpbkZsb3csIGFjdGlvbiwgJ2NvZGVGcm9tQ2FzVjEnKVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGxvY2FsTG9naW5GbG93KGFjdGlvbjogQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uKTogU2FnYUl0ZXJhdG9yIHtcblx0cmV0dXJuIHlpZWxkIGNhbGwoY3JlZGVudGlhbHNMb2dpbkZsb3csIGFjdGlvbiwgJ2NvZGVGcm9tTG9jYWxDcmVkZW50aWFscycpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogY2FzVGlja2V0TG9naW5GbG93KHRpY2tldDogc3RyaW5nLCBzZXJ2aWNlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBtb2RlbEZldGNoUmVxdWVzdEFjdGlvbjogTW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24gPSB7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogJ2NvZGVGcm9tQ2FzVGlja2V0Jyxcblx0XHRub1N0b3JlOiB0cnVlLFxuXHRcdHF1ZXJ5UGFyYW1zOiB7XG5cdFx0XHR0aWNrZXQsXG5cdFx0XHRzZXJ2aWNlXG5cdFx0fVxuXHR9XG5cdHJldHVybiB5aWVsZCBjYWxsKGxvZ2luRmxvdywgbW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogcGtjZUxvZ2luRmxvdyhfOiBBdXRoUEtDRUxvZ2luUmVxdWVzdEFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGlmICghYXBwQ29uZmlnLkNMSUVOVF9JRCB8fCAhYXBwQ29uZmlnLk9BVVRIX1BLQ0VfU0NPUEUgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX0VORFBPSU5UKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQsIE9BVVRIX1BLQ0VfU0NPUEUsIGFuZCBPQVVUSF9QS0NFX0VORFBPSU5UIGFyZSByZXF1aXJlZCBpbiBBcHBDb25maWcnKVxuXHR9XG5cblx0Ly8gR2VuZXJhdGUgc3RhdGUgYW5kIGNvZGUgdmVyaWZpZXIgdmFsdWVzXG5cdGNvbnN0IHN0YXRlID0gdXVpZHY0KClcblx0Y29uc3QgY29kZVZlcmlmaWVyID0gdXVpZHY0KClcblx0Y29uc3Qgc2hhMjU2Q29kZVZlcmlmaWVyID0geWllbGQgY2FsbChzaGEyNTZBc3luYywgY29kZVZlcmlmaWVyKVxuXHRjb25zdCBjb2RlQ2hhbGxlbmdlID0geWllbGQgY2FsbChiYXNlNjRVcmxFbmNvZGUsIHNoYTI1NkNvZGVWZXJpZmllcilcblxuXHQvLyBQZXJzaXN0IHN0YXRlIGFuZCBjb2RlIHZlcmlmaWVyIGluIGxvY2FsIHN0b3JhZ2UgZm9yIHVzZSBhZnRlciBjb2RlIGZsb3cgcmVkaXJlY3QuXG5cdHlpZWxkIGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFN0YXRlLCBzdGF0ZSlcblx0eWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0Q29kZVZlcmlmaWVyLCBjb2RlVmVyaWZpZXIpXG5cblx0Ly8gUmVkaXJlY3QgdG8gQlMgY29kZSBmbG93IGF1dGggZW5kcG9pbnQgKHdoaWNoIHdpbGwgcmVkaXJlY3QgYmFjayBoZXJlKVxuXHRjb25zdCBsb2NhdGlvbiA9IHdpbmRvd1NlcnZpY2UuZ2V0TG9jYXRpb24oKVxuXHRjb25zdCBwa2NlQXV0aFJlZGlyZWN0VVJMID0gYCR7YXBwQ29uZmlnLk9BVVRIX1BLQ0VfRU5EUE9JTlR9PyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0cmVzcG9uc2VfdHlwZTogJ2NvZGUnLFxuXHRcdGNsaWVudF9pZDogYXBwQ29uZmlnLkNMSUVOVF9JRCxcblx0XHRzdGF0ZTogc3RhdGUsXG5cdFx0c2NvcGU6IGFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFLFxuXHRcdGNvZGVfY2hhbGxlbmdlOiBjb2RlQ2hhbGxlbmdlLFxuXHRcdGNvZGVfY2hhbGxlbmdlX21ldGhvZDogJ1MyNTYnLFxuXHRcdHJlZGlyZWN0X3VyaTogbG9jYXRpb24ub3JpZ2luXG5cdH0pfWBcblx0eWllbGQgY2FsbCh3aW5kb3dTZXJ2aWNlLnJlcGxhY2UsIHBrY2VBdXRoUmVkaXJlY3RVUkwpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogaGFuZGxlQXV0aEZhaWx1cmUoYWN0aW9uOiBNb2RlbEZldGNoRXJyb3JBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHQvLyBUaGlzIHNob3VsZCBiZSB1bmxpa2VseSBzaW5jZSB3ZSBub3JtYWxseSBoYXZlIGEgcmVmcmVzaCB0b2tlbiBsb29wIGhhcHBlbmluZ1xuXHQvLyBidXQgaWYgdGhlIGFwcCBpcyBiYWNrZ3JvdW5kZWQsIHRoZSBsb29wIG1pZ2h0IG5vdCBiZSBjYXVnaHQgdXAgeWV0XG5cdGlmIChvYXV0aFRva2VuICYmIGFjdGlvbi5lcnJvckRhdGEgJiYgYWN0aW9uLmVycm9yRGF0YS5zdGF0dXMgPT09IEhUVFBfU1RBVFVTX0NPREUuVU5BVVRIT1JJWkVEKSB7XG5cdFx0bG9nZ2VyLmRlYnVnKCd0b2tlbiBleHBpcmVkIC0gcmVmcmVzaGluZycpXG5cdFx0eWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoKVxuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBnZXRPQXV0aFRva2VuOiBUb2tlbkFjY2Vzc0Z1bmN0aW9uID0gZnVuY3Rpb24qIChtb2RlbE5hbWU6IHN0cmluZykge1xuXHQvLyBEb24ndCB0cnkgdG8gcmVmcmVzaCB0aGUgdG9rZW4gaWYgd2UncmUgYWxyZWFkeSBpbiBhIHJlcXVlc3QgdG8gcmVmcmVzaCB0aGUgdG9rZW5cblx0aWYgKG1vZGVsTmFtZSA9PT0gJ2dldFRva2VuJykge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0aWYgKG9hdXRoVG9rZW4gJiYgb2F1dGhUb2tlblsnLmV4cGlyZXMnXSkge1xuXHRcdGNvbnN0IHRoaXJ0eVNlY29uZHNGcm9tTm93ID0gbmV3IERhdGUoKVxuXHRcdHRoaXJ0eVNlY29uZHNGcm9tTm93LnNldFNlY29uZHModGhpcnR5U2Vjb25kc0Zyb21Ob3cuZ2V0U2Vjb25kcygpICsgMzApXG5cdFx0aWYgKG5ldyBEYXRlKG9hdXRoVG9rZW5bJy5leHBpcmVzJ10pIDwgdGhpcnR5U2Vjb25kc0Zyb21Ob3cpIHtcblx0XHRcdC8vIHN0YXJ0IGEgdG9rZW4gcmVmcmVzaCBhbmQgd2FpdCBmb3IgdGhlIHN1Y2Nlc3MgYWN0aW9uIGluIGNhc2UgYW5vdGhlciByZWZyZXNoIGlzIGN1cnJlbnRseSBoYXBwZW5pbmdcblx0XHRcdHlpZWxkIGNhbGwocGVyZm9ybVRva2VuUmVmcmVzaClcblx0XHRcdHJldHVybiBvYXV0aFRva2VuXG5cdFx0fVxuXHR9XG5cdHJldHVybiBvYXV0aFRva2VuXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uKiBhdXRoU2FnYShcblx0b2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2VQYXJhbTogT0F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UgPSBkZWZhdWx0T0F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UsXG5cdHRpY2tldFByb3ZpZGVyU2VydmljZTogVGlja2V0UHJvdmlkZXJTZXJ2aWNlID0gZGVmYXVsdFRpY2tldFByb3ZpZGVyU2VydmljZSxcblx0Y29kZVByb3ZpZGVyU2VydmljZTogQ29kZVByb3ZpZGVyU2VydmljZSA9IGRlZmF1bHRDb2RlUHJvdmlkZXJTZXJ2aWNlXG4pOiBTYWdhSXRlcmF0b3Ige1xuXHRsb2dnZXIgPSBnZXRMb2dnZXIoKVxuXHRvYXV0aFBlcnNpc3RlbmNlU2VydmljZSA9IG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlUGFyYW1cblxuXHQvLyBUcnkgdG8gZ2V0IHBlcnNpc3RlZCB0b2tlbiAobm9ybWFsbHkgaW4gQXN5bmNTdG9yYWdlIG9yIExvY2FsU3RvcmFnZSlcblx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UuZ2V0UGVyc2lzdGVkVG9rZW4pXG5cblx0Ly8gSWYgbm8gdG9rZW4sIHRyeSB0byBnZXQgQ0FTIHRpY2tldCAobm9ybWFsbHkgaW4gdGhlIFVSTCksIHVzZSBpdCB0byBnZXQgYSB0b2tlblxuXHRpZiAoIW9hdXRoVG9rZW4pIHtcblx0XHRjb25zdCBjYXNUaWNrZXQgPSB0aWNrZXRQcm92aWRlclNlcnZpY2UuZ2V0VGlja2V0KClcblx0XHR0aWNrZXRQcm92aWRlclNlcnZpY2UucmVtb3ZlVGlja2V0KClcblx0XHRjb25zdCBzZXJ2aWNlID0gdGlja2V0UHJvdmlkZXJTZXJ2aWNlLmdldEFwcFNlcnZpY2VOYW1lKClcblx0XHRpZiAoY2FzVGlja2V0ICYmIHNlcnZpY2UpIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGNhc1RpY2tldExvZ2luRmxvdywgY2FzVGlja2V0LCBzZXJ2aWNlKVxuXHRcdH1cblx0fVxuXG5cdC8vIElmIE9BdXRoIENvZGUgZXhpc3RzIChub3JtYWxseSBpbiB0aGUgVVJMKSwgdXNlIGl0IHRvIGdldCBhIHRva2VuXG5cdGNvbnN0IGNvZGUgPSBjb2RlUHJvdmlkZXJTZXJ2aWNlLmdldENvZGUoKVxuXHRpZiAoY29kZSkge1xuXHRcdC8vIExvZyBvdXQgdGhlIGN1cnJlbnQgdXNlciBpZiBhIG5ldyB0b2tlbiBpcyBhYm91dCB0byBiZSBnZW5lcmF0ZWQgZnJvbSB0aGUgT0F1dGggQ29kZVxuXHRcdGlmIChvYXV0aFRva2VuKSB7XG5cdFx0XHR5aWVsZCBhbGwoe1xuXHRcdFx0XHRjbGVhclVzZXJEYXRhOiBwdXQ8TW9kZWxSZW1vdmVLZXlBY3Rpb24+KHsgdHlwZTogTU9ERUxfUkVNT1ZFX0tFWV9BQ1RJT05fVFlQRSwgbW9kZWxQYXRoOiAndXNlcicgfSksXG5cdFx0XHRcdGNsZWFyUGVyc2lzdGVudFRva2VuOiBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RUb2tlbiwgbnVsbClcblx0XHRcdH0pXG5cdFx0XHRvYXV0aFRva2VuID0gbnVsbFxuXHRcdH1cblxuXHRcdC8vIElmIE9BdXRoIHN0YXRlIGV4aXN0cyAobm9ybWFsbHkgaW4gdGhlIFVSTCksIHVzZSBpdCBpbiBhZGRpdGlvbiB0byB0aGUgY29kZSBmb3IgUEtDRSBsb2dpbiBmbG93XG5cdFx0Y29uc3Qgc3RhdGUgPSBjb2RlUHJvdmlkZXJTZXJ2aWNlLmdldFN0YXRlKClcblx0XHRpZiAoc3RhdGUpIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGVBbmRTdGF0ZSwgY29kZSwgc3RhdGUpXG5cdFx0fSBlbHNlIHtcblx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGUsIGNvZGUpXG5cdFx0fVxuXHR9XG5cdGNvZGVQcm92aWRlclNlcnZpY2UucmVtb3ZlQ29kZUFuZFN0YXRlKClcblxuXHR5aWVsZCBwdXQ8QXV0aFRva2VuQWN0aW9uPih7IHR5cGU6IEFVVEhfVE9LRU5fQUNUSU9OX1RZUEUuQVVUSF9JTklUSUFMSVpFRCwgb2F1dGhUb2tlbiB9KVxuXG5cdHlpZWxkIHRha2VFdmVyeShNT0RFTF9GRVRDSF9FUlJPUl9BQ1RJT05fVFlQRS5UUllfRkVUQ0hfRkFJTEVELCBoYW5kbGVBdXRoRmFpbHVyZSlcblxuXHRkbyB7XG5cdFx0aWYgKCFvYXV0aFRva2VuKSB7XG5cdFx0XHRjb25zdCB7XG5cdFx0XHRcdGNhc1YxQWN0aW9uLFxuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uLFxuXHRcdFx0XHRwa2NlTG9naW5BY3Rpb25cblx0XHRcdH06IHtcblx0XHRcdFx0Y2FzVjFBY3Rpb24/OiBBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb25cblx0XHRcdFx0bG9jYWxMb2dpbkFjdGlvbj86IEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0XHRwa2NlTG9naW5BY3Rpb24/OiBBdXRoUEtDRUxvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0fSA9IHlpZWxkIHJhY2Uoe1xuXHRcdFx0XHRjYXNWMUFjdGlvbjogdGFrZShBVVRIX0NBU19WMV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLkNBU19WMV9MT0dJTl9SRVFVRVNUKSxcblx0XHRcdFx0bG9jYWxMb2dpbkFjdGlvbjogdGFrZShBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUuTE9DQUxfTE9HSU5fUkVRVUVTVCksXG5cdFx0XHRcdHBrY2VMb2dpbkFjdGlvbjogdGFrZShBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRS5QS0NFX0xPR0lOX1JFUVVFU1QpXG5cdFx0XHR9KVxuXG5cdFx0XHR5aWVsZCBwdXQ8QXV0aEFjdGlvbj4oeyB0eXBlOiBBVVRIX0FDVElPTl9UWVBFLkxPR0lOX1JFUVVFU1RFRCB9KVxuXHRcdFx0aWYgKGNhc1YxQWN0aW9uKSB7XG5cdFx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGNhc1YxTG9naW5GbG93LCBjYXNWMUFjdGlvbilcblx0XHRcdH0gZWxzZSBpZiAobG9jYWxMb2dpbkFjdGlvbikge1xuXHRcdFx0XHRvYXV0aFRva2VuID0geWllbGQgY2FsbChsb2NhbExvZ2luRmxvdywgbG9jYWxMb2dpbkFjdGlvbilcblx0XHRcdH0gZWxzZSBpZiAocGtjZUxvZ2luQWN0aW9uKSB7XG5cdFx0XHRcdC8vIG9hdXRoVG9rZW4gaXMgbm90IHJldHVybmVkIGhlcmUsIGFzIHRoaXMgZmxvdyB3aWxsIHJlc3VsdCBpbiBhIHdpbmRvdyByZWRpcmVjdFxuXHRcdFx0XHR5aWVsZCBjYWxsKHBrY2VMb2dpbkZsb3csIHBrY2VMb2dpbkFjdGlvbilcblx0XHRcdFx0Ly8gYnJlYWsgZXhlY3V0aW9uXG5cdFx0XHRcdHJldHVyblxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChvYXV0aFRva2VuKSB7XG5cdFx0XHR5aWVsZCBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RUb2tlbiwgb2F1dGhUb2tlbilcblx0XHRcdHlpZWxkIGFsbCh7XG5cdFx0XHRcdGxvZ2luU3VjY2VzczogcHV0PEF1dGhUb2tlblN1Y2Nlc3NBY3Rpb24+KHtcblx0XHRcdFx0XHR0eXBlOiBBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuR0VUX1RPS0VOX1NVQ0NFRURFRCxcblx0XHRcdFx0XHRvYXV0aFRva2VuXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRsb2dPdXQ6IHRha2UoQVVUSF9BQ1RJT05fVFlQRS5MT0dfT1VUX1JFUVVFU1RFRClcblx0XHRcdH0pXG5cdFx0fSBlbHNlIHtcblx0XHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuTE9HSU5fRkFJTEVEIH0pXG5cdFx0fVxuXG5cdFx0eWllbGQgYWxsKHtcblx0XHRcdGNsZWFyVXNlckRhdGE6IHB1dDxNb2RlbFJlbW92ZUtleUFjdGlvbj4oeyB0eXBlOiBNT0RFTF9SRU1PVkVfS0VZX0FDVElPTl9UWVBFLCBtb2RlbFBhdGg6ICd1c2VyJyB9KSxcblx0XHRcdGNsZWFyUGVyc2lzdGVudFRva2VuOiBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RUb2tlbiwgbnVsbClcblx0XHR9KVxuXHRcdG9hdXRoVG9rZW4gPSBudWxsXG5cdH0gd2hpbGUgKHRydWUpXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsb0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLHdCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxzQkFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sY0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sTUFBQSxHQUFBUCxPQUFBO0FBU0EsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsSUFBQSxHQUFBVCxPQUFBO0FBQ0EsSUFBQVUsUUFBQSxHQUFBVixPQUFBO0FBd0JBOztBQUVPLE1BQU1XLHlCQUF5QixHQUFHQSxDQUFDQyxNQUFpQixFQUFFQyxTQUFpQixLQUM3RSxJQUFBQywwQ0FBaUMsRUFBQ0YsTUFBTSxDQUFDLElBQUlBLE1BQU0sQ0FBQ0cs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
414
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZWZmZWN0cyIsInJlcXVpcmUiLCJfdXVpZCIsIl9jb25zdGFudHMiLCJfY29kZVByb3ZpZGVyU2VydmljZSIsIl9vYXV0aFBlcnNpc3RlbmNlU2VydmljZSIsIl90aWNrZXRQcm92aWRlclNlcnZpY2UiLCJfd2luZG93U2VydmljZSIsIl90eXBlcyIsIl9sb2dnZXIiLCJfdXJsIiwiX2FjdGlvbnMiLCJtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiYWN0aW9uIiwibW9kZWxOYW1lIiwiaXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uIiwibW9kZWxQYXRoIiwiZXhwb3J0cyIsInRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkIiwiaW5jb21pbmdBY3Rpb24iLCJtYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCIsImlzVHJhbnNpZW50TW9kZWxGZXRjaEVycm9yQWN0aW9uIiwidGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkIiwib2F1dGhUb2tlbiIsIm9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlIiwicmVmcmVzaExvY2siLCJsb2dnZXIiLCJnZXRUb2tlbkZyb21Db2RlIiwiY29kZSIsImFwcENvbmZpZyIsImdldEFwcENvbmZpZyIsIkNMSUVOVF9JRCIsIkNMSUVOVF9TRUNSRVQiLCJFcnJvciIsImdldFRva2VuTW9kZWxOYW1lIiwiZm9ybUJvZHkiLCJVUkxTZWFyY2hQYXJhbXMiLCJncmFudF90eXBlIiwiY2xpZW50X2lkIiwiY2xpZW50X3NlY3JldCIsInB1dCIsInR5cGUiLCJNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFIiwiRkVUQ0hfUkVRVUVTVCIsImJvZHkiLCJ0b1N0cmluZyIsIm5vU3RvcmUiLCJmZXRjaFJlc3VsdEFjdGlvbiIsImZldGNoRXJyb3JBY3Rpb24iLCJyYWNlIiwidGFrZSIsImRhdGEiLCJnZXRUb2tlbkZyb21Db2RlQW5kU3RhdGUiLCJzdGF0ZSIsIk9BVVRIX1BLQ0VfU0NPUEUiLCJPQVVUSF9QS0NFX0VORFBPSU5UIiwiY29kZVZlcmlmaWVyIiwiY2FsbCIsImdldFBlcnNpc3RlZENvZGVWZXJpZmllciIsInBlcnNpc3RlZFN0YXRlIiwiZ2V0UGVyc2lzdGVkU3RhdGUiLCJwZXJzaXN0U3RhdGUiLCJwZXJzaXN0Q29kZVZlcmlmaWVyIiwibG9jYXRpb24iLCJ3aW5kb3dTZXJ2aWNlIiwiZ2V0TG9jYXRpb24iLCJzY29wZSIsImNvZGVfdmVyaWZpZXIiLCJyZWRpcmVjdF91cmkiLCJvcmlnaW4iLCJnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4iLCJvYXV0aFRva2VuUGFyYW0iLCJyZWZyZXNoX3Rva2VuIiwiYXBwZW5kIiwiZXJyb3JEYXRhIiwic3RhdHVzIiwiSFRUUF9TVEFUVVNfQ09ERSIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsInBlcmZvcm1Ub2tlblJlZnJlc2giLCJyZWZyZXNoU3VjY2VzcyIsIkFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRSIsIlRPS0VOX1JFRlJFU0hfU1VDQ0VFREVEIiwicmVmcmVzaEZhaWxlZCIsIkFVVEhfQUNUSU9OX1RZUEUiLCJUT0tFTl9SRUZSRVNIX0ZBSUxFRCIsImRlYnVnIiwib3JpZ2luYWxBY2Nlc3NUb2tlbiIsImFjY2Vzc190b2tlbiIsInBlcnNpc3RUb2tlbiIsImFsbCIsImxvZ091dCIsIkxPR19PVVRfUkVRVUVTVEVEIiwibG9naW5GbG93IiwibW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24iLCJjcmVkZW50aWFsc0xvZ2luRmxvdyIsIm5vUmV0cnkiLCJjYXNWMUxvZ2luRmxvdyIsImxvY2FsTG9naW5GbG93IiwiY2FzVGlja2V0TG9naW5GbG93IiwidGlja2V0Iiwic2VydmljZSIsInF1ZXJ5UGFyYW1zIiwicGtjZUxvZ2luRmxvdyIsIl8iLCJ1dWlkdjQiLCJzaGEyNTZDb2RlVmVyaWZpZXIiLCJzaGEyNTZBc3luYyIsImNvZGVDaGFsbGVuZ2UiLCJiYXNlNjRVcmxFbmNvZGUiLCJwa2NlQXV0aFJlZGlyZWN0VVJMIiwicmVzcG9uc2VfdHlwZSIsImNvZGVfY2hhbGxlbmdlIiwiY29kZV9jaGFsbGVuZ2VfbWV0aG9kIiwicmVwbGFjZSIsImhhbmRsZUF1dGhGYWlsdXJlIiwiVU5BVVRIT1JJWkVEIiwiZ2V0T0F1dGhUb2tlbiIsInRoaXJ0eVNlY29uZHNGcm9tTm93IiwiRGF0ZSIsInNldFNlY29uZHMiLCJnZXRTZWNvbmRzIiwiYXV0aFNhZ2EiLCJvYXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiZGVmYXVsdE9BdXRoUGVyc2lzdGVuY2VTZXJ2aWNlIiwidGlja2V0UHJvdmlkZXJTZXJ2aWNlIiwiZGVmYXVsdFRpY2tldFByb3ZpZGVyU2VydmljZSIsImNvZGVQcm92aWRlclNlcnZpY2UiLCJkZWZhdWx0Q29kZVByb3ZpZGVyU2VydmljZSIsImdldExvZ2dlciIsImdldFBlcnNpc3RlZFRva2VuIiwiY2FzVGlja2V0IiwiZ2V0VGlja2V0IiwicmVtb3ZlVGlja2V0IiwiZ2V0QXBwU2VydmljZU5hbWUiLCJnZXRDb2RlIiwiY2xlYXJVc2VyRGF0YSIsIk1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUiLCJjbGVhclBlcnNpc3RlbnRUb2tlbiIsImdldFN0YXRlIiwicmVtb3ZlQ29kZUFuZFN0YXRlIiwiQVVUSF9UT0tFTl9BQ1RJT05fVFlQRSIsIkFVVEhfSU5JVElBTElaRUQiLCJ0YWtlRXZlcnkiLCJNT0RFTF9GRVRDSF9FUlJPUl9BQ1RJT05fVFlQRSIsIlRSWV9GRVRDSF9GQUlMRUQiLCJjYXNWMUFjdGlvbiIsImxvY2FsTG9naW5BY3Rpb24iLCJwa2NlTG9naW5BY3Rpb24iLCJBVVRIX0NBU19WMV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFIiwiQ0FTX1YxX0xPR0lOX1JFUVVFU1QiLCJBVVRIX0xPQ0FMX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJMT0NBTF9MT0dJTl9SRVFVRVNUIiwiQVVUSF9QS0NFX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUiLCJQS0NFX0xPR0lOX1JFUVVFU1QiLCJMT0dJTl9SRVFVRVNURUQiLCJsb2dpblN1Y2Nlc3MiLCJHRVRfVE9LRU5fU1VDQ0VFREVEIiwiTE9HSU5fRkFJTEVEIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JlZHV4L3NhZ2FzL2F1dGhTYWdhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNhZ2FJdGVyYXRvciB9IGZyb20gJ0ByZWR1eC1zYWdhL2NvcmUnXG5pbXBvcnQgeyBBbnlBY3Rpb24gfSBmcm9tICdyZWR1eCdcbmltcG9ydCB7IGFsbCwgY2FsbCwgcHV0LCByYWNlLCB0YWtlLCB0YWtlRXZlcnkgfSBmcm9tICdyZWR1eC1zYWdhL2VmZmVjdHMnXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJ1xuaW1wb3J0IHsgZ2V0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgY29kZVByb3ZpZGVyU2VydmljZSBhcyBkZWZhdWx0Q29kZVByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvZGVQcm92aWRlclNlcnZpY2UnXG5pbXBvcnQgeyBvYXV0aFBlcnNpc3RlbmNlU2VydmljZSBhcyBkZWZhdWx0T0F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vYXV0aFBlcnNpc3RlbmNlU2VydmljZSdcbmltcG9ydCB7IHRpY2tldFByb3ZpZGVyU2VydmljZSBhcyBkZWZhdWx0VGlja2V0UHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0UHJvdmlkZXJTZXJ2aWNlJ1xuaW1wb3J0IHsgd2luZG93U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3dpbmRvd1NlcnZpY2UnXG5pbXBvcnQge1xuXHRDb2RlUHJvdmlkZXJTZXJ2aWNlLFxuXHRIVFRQX1NUQVRVU19DT0RFLFxuXHRPQXV0aFBlcnNpc3RlbmNlU2VydmljZSxcblx0T0F1dGhUb2tlbixcblx0T0F1dGhUb2tlbk9yTnVsbCxcblx0VGlja2V0UHJvdmlkZXJTZXJ2aWNlLFxuXHRUb2tlbkFjY2Vzc0Z1bmN0aW9uXG59IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0TG9nZ2VyLCBMb2dnZXIgfSBmcm9tICcuLi8uLi91dGlscy9sb2dnZXInXG5pbXBvcnQgeyBiYXNlNjRVcmxFbmNvZGUsIHNoYTI1NkFzeW5jIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXJsJ1xuaW1wb3J0IHtcblx0QVVUSF9BQ1RJT05fVFlQRSxcblx0QVVUSF9DQVNfVjFfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9MT0NBTF9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLFxuXHRBVVRIX1BLQ0VfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9BQ1RJT05fVFlQRSxcblx0QVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLFxuXHRBdXRoQWN0aW9uLFxuXHRBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhMb2NhbExvZ2luUmVxdWVzdEFjdGlvbixcblx0QXV0aFBLQ0VMb2dpblJlcXVlc3RBY3Rpb24sXG5cdEF1dGhUb2tlbkFjdGlvbixcblx0QXV0aFRva2VuU3VjY2Vzc0FjdGlvbixcblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24sXG5cdGlzVHJhbnNpZW50TW9kZWxGZXRjaFJlc3VsdEFjdGlvbixcblx0TU9ERUxfRkVUQ0hfRVJST1JfQUNUSU9OX1RZUEUsXG5cdE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUsXG5cdE1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUsXG5cdE1vZGVsRmV0Y2hFcnJvckFjdGlvbixcblx0TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24sXG5cdE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb24sXG5cdE1vZGVsUmVtb3ZlS2V5QWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnXG5cbi8vI3JlZ2lvbiBIZWxwZXJzXG5cbmV4cG9ydCBjb25zdCBtYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoUmVzdWx0QWN0aW9uKGFjdGlvbikgJiYgYWN0aW9uLm1vZGVsUGF0aCA9PT0gbW9kZWxOYW1lXG5cbmV4cG9ydCBjb25zdCB0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoUmVjZWl2ZWQoaW5jb21pbmdBY3Rpb24sIG1vZGVsTmFtZSlcblxuZXhwb3J0IGNvbnN0IG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkID0gKGFjdGlvbjogQW55QWN0aW9uLCBtb2RlbE5hbWU6IHN0cmluZykgPT5cblx0aXNUcmFuc2llbnRNb2RlbEZldGNoRXJyb3JBY3Rpb24oYWN0aW9uKSAmJiBhY3Rpb24ubW9kZWxQYXRoID09PSBtb2RlbE5hbWVcblxuZXhwb3J0IGNvbnN0IHRha2VNYXRjaGVzTW9kZWxGZXRjaEZhaWxlZCA9IChtb2RlbE5hbWU6IHN0cmluZykgPT4gKGluY29taW5nQWN0aW9uOiBBbnlBY3Rpb24pID0+XG5cdG1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGluY29taW5nQWN0aW9uLCBtb2RlbE5hbWUpXG5cbi8vI2VuZHJlZ2lvbiBIZWxwZXJzXG5cbi8vI3JlZ2lvbiBMb2NhbCBWYXJpYWJsZXNcblxubGV0IG9hdXRoVG9rZW46IE9BdXRoVG9rZW5Pck51bGwgPSBudWxsXG5sZXQgb2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2U6IE9BdXRoUGVyc2lzdGVuY2VTZXJ2aWNlXG5sZXQgcmVmcmVzaExvY2s6IGJvb2xlYW5cbmxldCBsb2dnZXI6IExvZ2dlclxuXG4vLyNlbmRyZWdpb24gTG9jYWwgVmFyaWFibGVzXG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tQ29kZShjb2RlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5DTElFTlRfU0VDUkVUKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdDTElFTlRfSUQgYW5kIENMSUVOVF9TRUNSRVQgYXJlIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdGNsaWVudF9zZWNyZXQ6IGFwcENvbmZpZy5DTElFTlRfU0VDUkVULFxuXHRcdGNvZGU6IGNvZGVcblx0fSlcblx0eWllbGQgcHV0PE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uPih7XG5cdFx0dHlwZTogTU9ERUxfRkVUQ0hfUkVRVUVTVF9BQ1RJT05fVFlQRS5GRVRDSF9SRVFVRVNULFxuXHRcdG1vZGVsTmFtZTogZ2V0VG9rZW5Nb2RlbE5hbWUsXG5cdFx0Ym9keTogZm9ybUJvZHkudG9TdHJpbmcoKSxcblx0XHRub1N0b3JlOiB0cnVlXG5cdH0pXG5cdGNvbnN0IHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbixcblx0XHRmZXRjaEVycm9yQWN0aW9uXG5cdH06IHsgZmV0Y2hSZXN1bHRBY3Rpb24/OiBNb2RlbEZldGNoUmVzdWx0QWN0aW9uOyBmZXRjaEVycm9yQWN0aW9uPzogTW9kZWxGZXRjaEVycm9yQWN0aW9uIH0gPSB5aWVsZCByYWNlKHtcblx0XHRmZXRjaFJlc3VsdEFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hSZWNlaXZlZChnZXRUb2tlbk1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKGdldFRva2VuTW9kZWxOYW1lKSlcblx0fSlcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24gfHwgIWZldGNoUmVzdWx0QWN0aW9uPy5kYXRhKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRyZXR1cm4gZmV0Y2hSZXN1bHRBY3Rpb24uZGF0YVxufVxuXG5leHBvcnQgZnVuY3Rpb24qIGdldFRva2VuRnJvbUNvZGVBbmRTdGF0ZShjb2RlOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcpOiBTYWdhSXRlcmF0b3Ige1xuXHRjb25zdCBhcHBDb25maWcgPSBnZXRBcHBDb25maWcoKVxuXHRpZiAoIWFwcENvbmZpZy5DTElFTlRfSUQgfHwgIWFwcENvbmZpZy5PQVVUSF9QS0NFX1NDT1BFIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lELCBPQVVUSF9QS0NFX1NDT1BFLCBhbmQgT0FVVEhfUEtDRV9FTkRQT0lOVCBhcmUgcmVxdWlyZWQgaW4gQXBwQ29uZmlnJylcblx0fVxuXG5cdC8vIHZhbGlkYXRlIHBlcnNpc3RlZCB2YWx1ZXNcblx0Y29uc3QgY29kZVZlcmlmaWVyID0geWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRDb2RlVmVyaWZpZXIpXG5cdGlmICghY29kZVZlcmlmaWVyKSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNvZGVfdmVyaWZpZXInKVxuXHR9XG5cdGNvbnN0IHBlcnNpc3RlZFN0YXRlID0geWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRTdGF0ZSlcblx0aWYgKHBlcnNpc3RlZFN0YXRlICE9PSBzdGF0ZSkge1xuXHRcdHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzdGF0ZScpXG5cdH1cblx0Ly8gY2xlYXIgcGVyc2lzdGVkIHZhbHVlc1xuXHR5aWVsZCBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RTdGF0ZSwgbnVsbClcblx0eWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0Q29kZVZlcmlmaWVyLCBudWxsKVxuXG5cdC8vIGRpc3BhdGNoIHJlcXVlc3Rcblx0Y29uc3QgZ2V0VG9rZW5Nb2RlbE5hbWUgPSAnZ2V0VG9rZW4nXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGNvbnN0IGZvcm1Cb2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG5cdFx0Z3JhbnRfdHlwZTogJ2F1dGhvcml6YXRpb25fY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdHNjb3BlOiBhcHBDb25maWcuT0FVVEhfUEtDRV9TQ09QRSxcblx0XHRjb2RlX3ZlcmlmaWVyOiBjb2RlVmVyaWZpZXIsXG5cdFx0cmVkaXJlY3RfdXJpOiBsb2NhdGlvbi5vcmlnaW4sXG5cdFx0Y29kZTogY29kZVxuXHR9KVxuXHR5aWVsZCBwdXQ8TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24+KHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiBnZXRUb2tlbk1vZGVsTmFtZSxcblx0XHRib2R5OiBmb3JtQm9keS50b1N0cmluZygpLFxuXHRcdG5vU3RvcmU6IHRydWVcblx0fSlcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKGdldFRva2VuTW9kZWxOYW1lKSksXG5cdFx0ZmV0Y2hFcnJvckFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKVxuXHR9KVxuXHRpZiAoZmV0Y2hFcnJvckFjdGlvbiB8fCAhZmV0Y2hSZXN1bHRBY3Rpb24/LmRhdGEpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiBmZXRjaFJlc3VsdEFjdGlvbi5kYXRhXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogZ2V0VG9rZW5Gcm9tUmVmcmVzaFRva2VuKG9hdXRoVG9rZW5QYXJhbTogT0F1dGhUb2tlbik6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IGFwcENvbmZpZyA9IGdldEFwcENvbmZpZygpXG5cdGlmICghYXBwQ29uZmlnLkNMSUVOVF9JRCkge1xuXHRcdHRocm93IG5ldyBFcnJvcignQ0xJRU5UX0lEIGlzIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblxuXHRjb25zdCBnZXRUb2tlbk1vZGVsTmFtZSA9ICdnZXRUb2tlbidcblx0Y29uc3QgZm9ybUJvZHkgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHtcblx0XHRncmFudF90eXBlOiAncmVmcmVzaF90b2tlbicsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdHJlZnJlc2hfdG9rZW46IG9hdXRoVG9rZW5QYXJhbS5yZWZyZXNoX3Rva2VuXG5cdH0pXG5cdC8vIGNyZWF0ZSB0aGUgZm9ybSBib2R5IGJhc2VkIG9uIGlmIHVzaW5nIGEgY2xpZW50X3NlY3JldDogdHJhZGl0aW9uYWwgT0F1dGggdnMuIFBLQ0UgZmxvd1xuXHRpZiAoYXBwQ29uZmlnLkNMSUVOVF9TRUNSRVQpIHtcblx0XHRmb3JtQm9keS5hcHBlbmQoJ2NsaWVudF9zZWNyZXQnLCBhcHBDb25maWcuQ0xJRU5UX1NFQ1JFVClcblx0fVxuXHR5aWVsZCBwdXQ8TW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24+KHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiBnZXRUb2tlbk1vZGVsTmFtZSxcblx0XHRib2R5OiBmb3JtQm9keS50b1N0cmluZygpLFxuXHRcdG5vU3RvcmU6IHRydWVcblx0fSlcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKGdldFRva2VuTW9kZWxOYW1lKSksXG5cdFx0ZmV0Y2hFcnJvckFjdGlvbjogdGFrZSh0YWtlTWF0Y2hlc01vZGVsRmV0Y2hGYWlsZWQoZ2V0VG9rZW5Nb2RlbE5hbWUpKVxuXHR9KVxuXHQvLyBhbnkgZXJyb3IgcmVzcG9uc2Vcblx0aWYgKGZldGNoRXJyb3JBY3Rpb24pIHtcblx0XHQvLyBpZ25vcmUgc2VydmVyIGVycm9yc1xuXHRcdGlmIChcblx0XHRcdGZldGNoRXJyb3JBY3Rpb24uZXJyb3JEYXRhPy5zdGF0dXMgJiZcblx0XHRcdGZldGNoRXJyb3JBY3Rpb24uZXJyb3JEYXRhLnN0YXR1cyA+PSBIVFRQX1NUQVRVU19DT0RFLklOVEVSTkFMX1NFUlZFUl9FUlJPUlxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIG9hdXRoVG9rZW5QYXJhbVxuXHRcdH1cblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdC8vIGZvciBzb21lIHJlYXNvbiB0aGUgcmVzcG9uc2UgaGFkIG5vIGJvZHlcblx0aWYgKCFmZXRjaFJlc3VsdEFjdGlvbj8uZGF0YSkge1xuXHRcdHJldHVybiBudWxsXG5cdH1cblx0cmV0dXJuIGZldGNoUmVzdWx0QWN0aW9uLmRhdGFcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBwZXJmb3JtVG9rZW5SZWZyZXNoKCk6IFNhZ2FJdGVyYXRvciB7XG5cdGlmIChyZWZyZXNoTG9jayB8fCAhb2F1dGhUb2tlbikge1xuXHRcdC8vIGFscmVhZHkgcmVmcmVzaGluZy4gd2FpdCBmb3IgdGhlIGN1cnJlbnQgcmVmcmVzaCB0byBzdWNjZWVkIG9yIGZhaWwuXG5cdFx0eWllbGQgcmFjZSh7XG5cdFx0XHRyZWZyZXNoU3VjY2VzczogdGFrZShBVVRIX1RPS0VOX1NVQ0NFU1NfQUNUSU9OX1RZUEUuVE9LRU5fUkVGUkVTSF9TVUNDRUVERUQpLFxuXHRcdFx0cmVmcmVzaEZhaWxlZDogdGFrZShBVVRIX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfRkFJTEVEKVxuXHRcdH0pXG5cdFx0cmV0dXJuXG5cdH1cblx0bG9nZ2VyLmRlYnVnKCdSZWZyZXNoaW5nIE9BdXRoIHRva2VuJylcblx0cmVmcmVzaExvY2sgPSB0cnVlXG5cdC8vIG9hdXRoVG9rZW4gd2lsbCBiZSBzZXQgdG86XG5cdC8vIDEuIG5ldyB0b2tlbiAoc3VjY2Vzcylcblx0Ly8gMi4gc2FtZSB0b2tlbiAoZmFpbGVkIGZyb20gdGltZW91dCBvciBzZXJ2ZXIgZXJyb3IpXG5cdC8vIDMuIG51bGwgKGZhaWwpXG5cdGNvbnN0IG9yaWdpbmFsQWNjZXNzVG9rZW4gPSBvYXV0aFRva2VuLmFjY2Vzc190b2tlblxuXHRvYXV0aFRva2VuID0geWllbGQgY2FsbChnZXRUb2tlbkZyb21SZWZyZXNoVG9rZW4sIG9hdXRoVG9rZW4pXG5cdGlmICghIW9hdXRoVG9rZW4gJiYgb2F1dGhUb2tlbi5hY2Nlc3NfdG9rZW4gIT09IG9yaWdpbmFsQWNjZXNzVG9rZW4pIHtcblx0XHRsb2dnZXIuZGVidWcoJ09BdXRoIHRva2VuIHJlZnJlc2hlZCcpXG5cdFx0eWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0VG9rZW4sIG9hdXRoVG9rZW4pXG5cdFx0eWllbGQgcHV0PEF1dGhUb2tlblN1Y2Nlc3NBY3Rpb24+KHsgdHlwZTogQVVUSF9UT0tFTl9TVUNDRVNTX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfU1VDQ0VFREVELCBvYXV0aFRva2VuIH0pXG5cdH0gZWxzZSBpZiAob2F1dGhUb2tlbiA9PT0gbnVsbCkge1xuXHRcdGxvZ2dlci5kZWJ1ZygnT0F1dGggdG9rZW4gZmFpbGVkIHRvIHJlZnJlc2gnKVxuXHRcdC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBvdXRzaWRlIG9mIHRoZSB0b2tlbiBoYXZpbmcgYmVlbiByZXZva2VkIG9uIHRoZSBzZXJ2ZXIgc2lkZVxuXHRcdHlpZWxkIGFsbCh7XG5cdFx0XHRyZWZyZXNoRmFpbGVkOiBwdXQ8QXV0aEFjdGlvbj4oeyB0eXBlOiBBVVRIX0FDVElPTl9UWVBFLlRPS0VOX1JFRlJFU0hfRkFJTEVEIH0pLFxuXHRcdFx0bG9nT3V0OiBwdXQ8QXV0aEFjdGlvbj4oeyB0eXBlOiBBVVRIX0FDVElPTl9UWVBFLkxPR19PVVRfUkVRVUVTVEVEIH0pXG5cdFx0fSlcblx0fVxuXHRyZWZyZXNoTG9jayA9IGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbG9naW5GbG93KG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uOiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdHlpZWxkIHB1dChtb2RlbEZldGNoUmVxdWVzdEFjdGlvbilcblx0Y29uc3Qge1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uLFxuXHRcdGZldGNoRXJyb3JBY3Rpb25cblx0fTogeyBmZXRjaFJlc3VsdEFjdGlvbj86IE1vZGVsRmV0Y2hSZXN1bHRBY3Rpb247IGZldGNoRXJyb3JBY3Rpb24/OiBNb2RlbEZldGNoRXJyb3JBY3Rpb24gfSA9IHlpZWxkIHJhY2Uoe1xuXHRcdGZldGNoUmVzdWx0QWN0aW9uOiB0YWtlKHRha2VNYXRjaGVzTW9kZWxGZXRjaFJlY2VpdmVkKG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uLm1vZGVsTmFtZSkpLFxuXHRcdGZldGNoRXJyb3JBY3Rpb246IHRha2UodGFrZU1hdGNoZXNNb2RlbEZldGNoRmFpbGVkKG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uLm1vZGVsTmFtZSkpXG5cdH0pXG5cdGlmIChmZXRjaEVycm9yQWN0aW9uKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRjb25zdCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBmZXRjaFJlc3VsdEFjdGlvbj8uZGF0YT8uY29kZVxuXHRpZiAoIWNvZGUpIHtcblx0XHRyZXR1cm4gbnVsbFxuXHR9XG5cdHJldHVybiB5aWVsZCBjYWxsKGdldFRva2VuRnJvbUNvZGUsIGNvZGUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogY3JlZGVudGlhbHNMb2dpbkZsb3coXG5cdGFjdGlvbjogQXV0aENhc1YxTG9naW5SZXF1ZXN0QWN0aW9uIHwgQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uLFxuXHRtb2RlbE5hbWU6IHN0cmluZ1xuKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgbW9kZWxGZXRjaFJlcXVlc3RBY3Rpb246IE1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uID0ge1xuXHRcdC8vIHNldCByZXF1aXJlZCBkZWZhdWx0c1xuXHRcdHR5cGU6IE1PREVMX0ZFVENIX1JFUVVFU1RfQUNUSU9OX1RZUEUuRkVUQ0hfUkVRVUVTVCxcblx0XHRtb2RlbE5hbWUsXG5cdFx0bm9TdG9yZTogdHJ1ZSxcblx0XHQvLyBmb3JjZSBubyByZXRyeVxuXHRcdG5vUmV0cnk6IHRydWUsXG5cdFx0Ly8gcGFzcyB0aHJ1IGJvZHlcblx0XHRib2R5OiBhY3Rpb24uYm9keVxuXHR9XG5cdHJldHVybiB5aWVsZCBjYWxsKGxvZ2luRmxvdywgbW9kZWxGZXRjaFJlcXVlc3RBY3Rpb24pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogY2FzVjFMb2dpbkZsb3coYWN0aW9uOiBBdXRoQ2FzVjFMb2dpblJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRyZXR1cm4geWllbGQgY2FsbChjcmVkZW50aWFsc0xvZ2luRmxvdywgYWN0aW9uLCAnY29kZUZyb21DYXNWMScpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiogbG9jYWxMb2dpbkZsb3coYWN0aW9uOiBBdXRoTG9jYWxMb2dpblJlcXVlc3RBY3Rpb24pOiBTYWdhSXRlcmF0b3Ige1xuXHRyZXR1cm4geWllbGQgY2FsbChjcmVkZW50aWFsc0xvZ2luRmxvdywgYWN0aW9uLCAnY29kZUZyb21Mb2NhbENyZWRlbnRpYWxzJylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBjYXNUaWNrZXRMb2dpbkZsb3codGlja2V0OiBzdHJpbmcsIHNlcnZpY2U6IHN0cmluZyk6IFNhZ2FJdGVyYXRvciB7XG5cdGNvbnN0IG1vZGVsRmV0Y2hSZXF1ZXN0QWN0aW9uOiBNb2RlbEZldGNoUmVxdWVzdEFjdGlvbiA9IHtcblx0XHR0eXBlOiBNT0RFTF9GRVRDSF9SRVFVRVNUX0FDVElPTl9UWVBFLkZFVENIX1JFUVVFU1QsXG5cdFx0bW9kZWxOYW1lOiAnY29kZUZyb21DYXNUaWNrZXQnLFxuXHRcdG5vU3RvcmU6IHRydWUsXG5cdFx0cXVlcnlQYXJhbXM6IHtcblx0XHRcdHRpY2tldCxcblx0XHRcdHNlcnZpY2Vcblx0XHR9XG5cdH1cblx0cmV0dXJuIHlpZWxkIGNhbGwobG9naW5GbG93LCBtb2RlbEZldGNoUmVxdWVzdEFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBwa2NlTG9naW5GbG93KF86IEF1dGhQS0NFTG9naW5SZXF1ZXN0QWN0aW9uKTogU2FnYUl0ZXJhdG9yIHtcblx0Y29uc3QgYXBwQ29uZmlnID0gZ2V0QXBwQ29uZmlnKClcblx0aWYgKCFhcHBDb25maWcuQ0xJRU5UX0lEIHx8ICFhcHBDb25maWcuT0FVVEhfUEtDRV9TQ09QRSB8fCAhYXBwQ29uZmlnLk9BVVRIX1BLQ0VfRU5EUE9JTlQpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ0NMSUVOVF9JRCwgT0FVVEhfUEtDRV9TQ09QRSwgYW5kIE9BVVRIX1BLQ0VfRU5EUE9JTlQgYXJlIHJlcXVpcmVkIGluIEFwcENvbmZpZycpXG5cdH1cblxuXHQvLyBHZW5lcmF0ZSBzdGF0ZSBhbmQgY29kZSB2ZXJpZmllciB2YWx1ZXNcblx0Y29uc3Qgc3RhdGUgPSB1dWlkdjQoKVxuXHRjb25zdCBjb2RlVmVyaWZpZXIgPSB1dWlkdjQoKVxuXHRjb25zdCBzaGEyNTZDb2RlVmVyaWZpZXIgPSB5aWVsZCBjYWxsKHNoYTI1NkFzeW5jLCBjb2RlVmVyaWZpZXIpXG5cdGNvbnN0IGNvZGVDaGFsbGVuZ2UgPSB5aWVsZCBjYWxsKGJhc2U2NFVybEVuY29kZSwgc2hhMjU2Q29kZVZlcmlmaWVyKVxuXG5cdC8vIFBlcnNpc3Qgc3RhdGUgYW5kIGNvZGUgdmVyaWZpZXIgaW4gbG9jYWwgc3RvcmFnZSBmb3IgdXNlIGFmdGVyIGNvZGUgZmxvdyByZWRpcmVjdC5cblx0eWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5wZXJzaXN0U3RhdGUsIHN0YXRlKVxuXHR5aWVsZCBjYWxsKG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlLnBlcnNpc3RDb2RlVmVyaWZpZXIsIGNvZGVWZXJpZmllcilcblxuXHQvLyBSZWRpcmVjdCB0byBCUyBjb2RlIGZsb3cgYXV0aCBlbmRwb2ludCAod2hpY2ggd2lsbCByZWRpcmVjdCBiYWNrIGhlcmUpXG5cdGNvbnN0IGxvY2F0aW9uID0gd2luZG93U2VydmljZS5nZXRMb2NhdGlvbigpXG5cdGNvbnN0IHBrY2VBdXRoUmVkaXJlY3RVUkwgPSBgJHthcHBDb25maWcuT0FVVEhfUEtDRV9FTkRQT0lOVH0/JHtuZXcgVVJMU2VhcmNoUGFyYW1zKHtcblx0XHRyZXNwb25zZV90eXBlOiAnY29kZScsXG5cdFx0Y2xpZW50X2lkOiBhcHBDb25maWcuQ0xJRU5UX0lELFxuXHRcdHN0YXRlOiBzdGF0ZSxcblx0XHRzY29wZTogYXBwQ29uZmlnLk9BVVRIX1BLQ0VfU0NPUEUsXG5cdFx0Y29kZV9jaGFsbGVuZ2U6IGNvZGVDaGFsbGVuZ2UsXG5cdFx0Y29kZV9jaGFsbGVuZ2VfbWV0aG9kOiAnUzI1NicsXG5cdFx0cmVkaXJlY3RfdXJpOiBsb2NhdGlvbi5vcmlnaW5cblx0fSl9YFxuXHR5aWVsZCBjYWxsKHdpbmRvd1NlcnZpY2UucmVwbGFjZSwgcGtjZUF1dGhSZWRpcmVjdFVSTClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uKiBoYW5kbGVBdXRoRmFpbHVyZShhY3Rpb246IE1vZGVsRmV0Y2hFcnJvckFjdGlvbik6IFNhZ2FJdGVyYXRvciB7XG5cdC8vIFRoaXMgc2hvdWxkIGJlIHVubGlrZWx5IHNpbmNlIHdlIG5vcm1hbGx5IGhhdmUgYSByZWZyZXNoIHRva2VuIGxvb3AgaGFwcGVuaW5nXG5cdC8vIGJ1dCBpZiB0aGUgYXBwIGlzIGJhY2tncm91bmRlZCwgdGhlIGxvb3AgbWlnaHQgbm90IGJlIGNhdWdodCB1cCB5ZXRcblx0aWYgKG9hdXRoVG9rZW4gJiYgYWN0aW9uLmVycm9yRGF0YSAmJiBhY3Rpb24uZXJyb3JEYXRhLnN0YXR1cyA9PT0gSFRUUF9TVEFUVVNfQ09ERS5VTkFVVEhPUklaRUQpIHtcblx0XHRsb2dnZXIuZGVidWcoJ3Rva2VuIGV4cGlyZWQgLSByZWZyZXNoaW5nJylcblx0XHR5aWVsZCBjYWxsKHBlcmZvcm1Ub2tlblJlZnJlc2gpXG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldE9BdXRoVG9rZW46IFRva2VuQWNjZXNzRnVuY3Rpb24gPSBmdW5jdGlvbiogKG1vZGVsTmFtZTogc3RyaW5nKSB7XG5cdC8vIERvbid0IHRyeSB0byByZWZyZXNoIHRoZSB0b2tlbiBpZiB3ZSdyZSBhbHJlYWR5IGluIGEgcmVxdWVzdCB0byByZWZyZXNoIHRoZSB0b2tlblxuXHRpZiAobW9kZWxOYW1lID09PSAnZ2V0VG9rZW4nKSB7XG5cdFx0cmV0dXJuIG51bGxcblx0fVxuXHRpZiAob2F1dGhUb2tlbiAmJiBvYXV0aFRva2VuWycuZXhwaXJlcyddKSB7XG5cdFx0Y29uc3QgdGhpcnR5U2Vjb25kc0Zyb21Ob3cgPSBuZXcgRGF0ZSgpXG5cdFx0dGhpcnR5U2Vjb25kc0Zyb21Ob3cuc2V0U2Vjb25kcyh0aGlydHlTZWNvbmRzRnJvbU5vdy5nZXRTZWNvbmRzKCkgKyAzMClcblx0XHRpZiAobmV3IERhdGUob2F1dGhUb2tlblsnLmV4cGlyZXMnXSkgPCB0aGlydHlTZWNvbmRzRnJvbU5vdykge1xuXHRcdFx0Ly8gc3RhcnQgYSB0b2tlbiByZWZyZXNoIGFuZCB3YWl0IGZvciB0aGUgc3VjY2VzcyBhY3Rpb24gaW4gY2FzZSBhbm90aGVyIHJlZnJlc2ggaXMgY3VycmVudGx5IGhhcHBlbmluZ1xuXHRcdFx0eWllbGQgY2FsbChwZXJmb3JtVG9rZW5SZWZyZXNoKVxuXHRcdFx0cmV0dXJuIG9hdXRoVG9rZW5cblx0XHR9XG5cdH1cblx0cmV0dXJuIG9hdXRoVG9rZW5cbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24qIGF1dGhTYWdhKFxuXHRvYXV0aFBlcnNpc3RlbmNlU2VydmljZVBhcmFtOiBPQXV0aFBlcnNpc3RlbmNlU2VydmljZSA9IGRlZmF1bHRPQXV0aFBlcnNpc3RlbmNlU2VydmljZSxcblx0dGlja2V0UHJvdmlkZXJTZXJ2aWNlOiBUaWNrZXRQcm92aWRlclNlcnZpY2UgPSBkZWZhdWx0VGlja2V0UHJvdmlkZXJTZXJ2aWNlLFxuXHRjb2RlUHJvdmlkZXJTZXJ2aWNlOiBDb2RlUHJvdmlkZXJTZXJ2aWNlID0gZGVmYXVsdENvZGVQcm92aWRlclNlcnZpY2Vcbik6IFNhZ2FJdGVyYXRvciB7XG5cdGxvZ2dlciA9IGdldExvZ2dlcigpXG5cdG9hdXRoUGVyc2lzdGVuY2VTZXJ2aWNlID0gb2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2VQYXJhbVxuXG5cdC8vIFRyeSB0byBnZXQgcGVyc2lzdGVkIHRva2VuIChub3JtYWxseSBpbiBBc3luY1N0b3JhZ2Ugb3IgTG9jYWxTdG9yYWdlKVxuXHRvYXV0aFRva2VuID0geWllbGQgY2FsbChvYXV0aFBlcnNpc3RlbmNlU2VydmljZS5nZXRQZXJzaXN0ZWRUb2tlbilcblxuXHQvLyBJZiBubyB0b2tlbiwgdHJ5IHRvIGdldCBDQVMgdGlja2V0IChub3JtYWxseSBpbiB0aGUgVVJMKSwgdXNlIGl0IHRvIGdldCBhIHRva2VuXG5cdGlmICghb2F1dGhUb2tlbikge1xuXHRcdGNvbnN0IGNhc1RpY2tldCA9IHRpY2tldFByb3ZpZGVyU2VydmljZS5nZXRUaWNrZXQoKVxuXHRcdHRpY2tldFByb3ZpZGVyU2VydmljZS5yZW1vdmVUaWNrZXQoKVxuXHRcdGNvbnN0IHNlcnZpY2UgPSB0aWNrZXRQcm92aWRlclNlcnZpY2UuZ2V0QXBwU2VydmljZU5hbWUoKVxuXHRcdGlmIChjYXNUaWNrZXQgJiYgc2VydmljZSkge1xuXHRcdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoY2FzVGlja2V0TG9naW5GbG93LCBjYXNUaWNrZXQsIHNlcnZpY2UpXG5cdFx0fVxuXHR9XG5cblx0Ly8gSWYgT0F1dGggQ29kZSBleGlzdHMgKG5vcm1hbGx5IGluIHRoZSBVUkwpLCB1c2UgaXQgdG8gZ2V0IGEgdG9rZW5cblx0Y29uc3QgY29kZSA9IGNvZGVQcm92aWRlclNlcnZpY2UuZ2V0Q29kZSgpXG5cdGlmIChjb2RlKSB7XG5cdFx0Ly8gTG9nIG91dCB0aGUgY3VycmVudCB1c2VyIGlmIGEgbmV3IHRva2VuIGlzIGFib3V0IHRvIGJlIGdlbmVyYXRlZCBmcm9tIHRoZSBPQXV0aCBDb2RlXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGFsbCh7XG5cdFx0XHRcdGNsZWFyVXNlckRhdGE6IHB1dDxNb2RlbFJlbW92ZUtleUFjdGlvbj4oeyB0eXBlOiBNT0RFTF9SRU1PVkVfS0VZX0FDVElPTl9UWVBFLCBtb2RlbFBhdGg6ICd1c2VyJyB9KSxcblx0XHRcdFx0Y2xlYXJQZXJzaXN0ZW50VG9rZW46IGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBudWxsKVxuXHRcdFx0fSlcblx0XHRcdG9hdXRoVG9rZW4gPSBudWxsXG5cdFx0fVxuXG5cdFx0Ly8gSWYgT0F1dGggc3RhdGUgZXhpc3RzIChub3JtYWxseSBpbiB0aGUgVVJMKSwgdXNlIGl0IGluIGFkZGl0aW9uIHRvIHRoZSBjb2RlIGZvciBQS0NFIGxvZ2luIGZsb3dcblx0XHRjb25zdCBzdGF0ZSA9IGNvZGVQcm92aWRlclNlcnZpY2UuZ2V0U3RhdGUoKVxuXHRcdGlmIChzdGF0ZSkge1xuXHRcdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoZ2V0VG9rZW5Gcm9tQ29kZUFuZFN0YXRlLCBjb2RlLCBzdGF0ZSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoZ2V0VG9rZW5Gcm9tQ29kZSwgY29kZSlcblx0XHR9XG5cdH1cblx0Y29kZVByb3ZpZGVyU2VydmljZS5yZW1vdmVDb2RlQW5kU3RhdGUoKVxuXG5cdHlpZWxkIHB1dDxBdXRoVG9rZW5BY3Rpb24+KHsgdHlwZTogQVVUSF9UT0tFTl9BQ1RJT05fVFlQRS5BVVRIX0lOSVRJQUxJWkVELCBvYXV0aFRva2VuIH0pXG5cblx0eWllbGQgdGFrZUV2ZXJ5KE1PREVMX0ZFVENIX0VSUk9SX0FDVElPTl9UWVBFLlRSWV9GRVRDSF9GQUlMRUQsIGhhbmRsZUF1dGhGYWlsdXJlKVxuXG5cdGRvIHtcblx0XHRpZiAoIW9hdXRoVG9rZW4pIHtcblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0Y2FzVjFBY3Rpb24sXG5cdFx0XHRcdGxvY2FsTG9naW5BY3Rpb24sXG5cdFx0XHRcdHBrY2VMb2dpbkFjdGlvblxuXHRcdFx0fToge1xuXHRcdFx0XHRjYXNWMUFjdGlvbj86IEF1dGhDYXNWMUxvZ2luUmVxdWVzdEFjdGlvblxuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uPzogQXV0aExvY2FsTG9naW5SZXF1ZXN0QWN0aW9uXG5cdFx0XHRcdHBrY2VMb2dpbkFjdGlvbj86IEF1dGhQS0NFTG9naW5SZXF1ZXN0QWN0aW9uXG5cdFx0XHR9ID0geWllbGQgcmFjZSh7XG5cdFx0XHRcdGNhc1YxQWN0aW9uOiB0YWtlKEFVVEhfQ0FTX1YxX0xPR0lOX1JFUVVFU1RfQUNUSU9OX1RZUEUuQ0FTX1YxX0xPR0lOX1JFUVVFU1QpLFxuXHRcdFx0XHRsb2NhbExvZ2luQWN0aW9uOiB0YWtlKEFVVEhfTE9DQUxfTE9HSU5fUkVRVUVTVF9BQ1RJT05fVFlQRS5MT0NBTF9MT0dJTl9SRVFVRVNUKSxcblx0XHRcdFx0cGtjZUxvZ2luQWN0aW9uOiB0YWtlKEFVVEhfUEtDRV9MT0dJTl9SRVFVRVNUX0FDVElPTl9UWVBFLlBLQ0VfTE9HSU5fUkVRVUVTVClcblx0XHRcdH0pXG5cblx0XHRcdHlpZWxkIHB1dDxBdXRoQWN0aW9uPih7IHR5cGU6IEFVVEhfQUNUSU9OX1RZUEUuTE9HSU5fUkVRVUVTVEVEIH0pXG5cdFx0XHRpZiAoY2FzVjFBY3Rpb24pIHtcblx0XHRcdFx0b2F1dGhUb2tlbiA9IHlpZWxkIGNhbGwoY2FzVjFMb2dpbkZsb3csIGNhc1YxQWN0aW9uKVxuXHRcdFx0fSBlbHNlIGlmIChsb2NhbExvZ2luQWN0aW9uKSB7XG5cdFx0XHRcdG9hdXRoVG9rZW4gPSB5aWVsZCBjYWxsKGxvY2FsTG9naW5GbG93LCBsb2NhbExvZ2luQWN0aW9uKVxuXHRcdFx0fSBlbHNlIGlmIChwa2NlTG9naW5BY3Rpb24pIHtcblx0XHRcdFx0Ly8gb2F1dGhUb2tlbiBpcyBub3QgcmV0dXJuZWQgaGVyZSwgYXMgdGhpcyBmbG93IHdpbGwgcmVzdWx0IGluIGEgd2luZG93IHJlZGlyZWN0XG5cdFx0XHRcdHlpZWxkIGNhbGwocGtjZUxvZ2luRmxvdywgcGtjZUxvZ2luQWN0aW9uKVxuXHRcdFx0XHQvLyBicmVhayBleGVjdXRpb25cblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKG9hdXRoVG9rZW4pIHtcblx0XHRcdHlpZWxkIGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBvYXV0aFRva2VuKVxuXHRcdFx0eWllbGQgYWxsKHtcblx0XHRcdFx0bG9naW5TdWNjZXNzOiBwdXQ8QXV0aFRva2VuU3VjY2Vzc0FjdGlvbj4oe1xuXHRcdFx0XHRcdHR5cGU6IEFVVEhfVE9LRU5fU1VDQ0VTU19BQ1RJT05fVFlQRS5HRVRfVE9LRU5fU1VDQ0VFREVELFxuXHRcdFx0XHRcdG9hdXRoVG9rZW5cblx0XHRcdFx0fSksXG5cdFx0XHRcdGxvZ091dDogdGFrZShBVVRIX0FDVElPTl9UWVBFLkxPR19PVVRfUkVRVUVTVEVEKVxuXHRcdFx0fSlcblx0XHR9IGVsc2Uge1xuXHRcdFx0eWllbGQgcHV0PEF1dGhBY3Rpb24+KHsgdHlwZTogQVVUSF9BQ1RJT05fVFlQRS5MT0dJTl9GQUlMRUQgfSlcblx0XHR9XG5cblx0XHR5aWVsZCBhbGwoe1xuXHRcdFx0Y2xlYXJVc2VyRGF0YTogcHV0PE1vZGVsUmVtb3ZlS2V5QWN0aW9uPih7IHR5cGU6IE1PREVMX1JFTU9WRV9LRVlfQUNUSU9OX1RZUEUsIG1vZGVsUGF0aDogJ3VzZXInIH0pLFxuXHRcdFx0Y2xlYXJQZXJzaXN0ZW50VG9rZW46IGNhbGwob2F1dGhQZXJzaXN0ZW5jZVNlcnZpY2UucGVyc2lzdFRva2VuLCBudWxsKVxuXHRcdH0pXG5cdFx0b2F1dGhUb2tlbiA9IG51bGxcblx0fSB3aGlsZSAodHJ1ZSlcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxvQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksd0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLHNCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFTQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxJQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxRQUFBLEdBQUFWLE9BQUE7QUF3QkE7O0FBRU8sTUFBTVcseUJBQXlCLEdBQUdBLENBQUNDLE1BQWlCLEVBQUVDLFNBQWlCLEtBQzdFLElBQUFDLDBDQUFpQyxFQUFDRixNQUFNLENBQUMsSUFBSUEsTUFBTSxDQUFDRyxT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
@@ -21,8 +21,9 @@ const windowService = exports.windowService = {
21
21
  },
22
22
  getIsOnline: () => typeof isOnline !== 'undefined' ? isOnline : window.navigator.onLine,
23
23
  replace: url => {
24
+ // do nothing for mock location
24
25
  if (location) return;
25
26
  window.location.replace(url);
26
27
  }
27
28
  };
28
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2NhdGlvbiIsImhpc3RvcnkiLCJpc09ubGluZSIsIndpbmRvd1NlcnZpY2UiLCJleHBvcnRzIiwic2V0TG9jYXRpb24iLCJ2YWx1ZSIsImdldExvY2F0aW9uIiwid2luZG93Iiwic2V0SGlzdG9yeSIsImdldEhpc3RvcnkiLCJzZXRJc09ubGluZSIsImdldElzT25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwicmVwbGFjZSIsInVybCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy93aW5kb3dTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbXBsZUxvY2F0aW9uIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luZG93U2VydmljZSB7XG5cdHNldExvY2F0aW9uOiAodmFsdWU/OiBTaW1wbGVMb2NhdGlvbikgPT4gdm9pZFxuXHRnZXRMb2NhdGlvbjogKCkgPT4gU2ltcGxlTG9jYXRpb24gfCBMb2NhdGlvblxuXHRzZXRIaXN0b3J5OiAodmFsdWU/OiBIaXN0b3J5KSA9PiB2b2lkXG5cdGdldEhpc3Rvcnk6ICgpID0+IEhpc3Rvcnlcblx0c2V0SXNPbmxpbmU6IChpc09ubGluZT86IGJvb2xlYW4pID0+IHZvaWRcblx0Z2V0SXNPbmxpbmU6ICgpID0+IGJvb2xlYW4sXG5cdHJlcGxhY2U6ICh1cmw6IHN0cmluZyB8IFVSTCkgPT4gdm9pZFxufVxuXG5sZXQgbG9jYXRpb246IFNpbXBsZUxvY2F0aW9uIHwgdW5kZWZpbmVkXG5sZXQgaGlzdG9yeTogSGlzdG9yeSB8IHVuZGVmaW5lZFxubGV0IGlzT25saW5lOiBib29sZWFuIHwgdW5kZWZpbmVkXG5cbmV4cG9ydCBjb25zdCB3aW5kb3dTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlID0ge1xuXHRzZXRMb2NhdGlvbjogKHZhbHVlPzogU2ltcGxlTG9jYXRpb24pID0+IHtcblx0XHRsb2NhdGlvbiA9IHZhbHVlXG5cdH0sXG5cdGdldExvY2F0aW9uOiAoKSA9PiBsb2NhdGlvbiB8fCB3aW5kb3cubG9jYXRpb24sXG5cdHNldEhpc3Rvcnk6ICh2YWx1ZT86IEhpc3RvcnkpID0+IHtcblx0XHRoaXN0b3J5ID0gdmFsdWVcblx0fSxcblx0Z2V0SGlzdG9yeTogKCkgPT4gaGlzdG9yeSB8fCB3aW5kb3cuaGlzdG9yeSxcblx0c2V0SXNPbmxpbmU6ICh2YWx1ZT86IGJvb2xlYW4pID0+IHtcblx0XHRpc09ubGluZSA9IHZhbHVlXG5cdH0sXG5cdGdldElzT25saW5lOiAoKSA9PiAodHlwZW9mIGlzT25saW5lICE9PSAndW5kZWZpbmVkJyA/IGlzT25saW5lIDogd2luZG93Lm5hdmlnYXRvci5vbkxpbmUpLFxuXHRyZXBsYWNlOiAodXJsOiBzdHJpbmcgfCBVUkwpID0+IHtcblx0XHRpZiAobG9jYXRpb24pIHJldHVyblxuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybClcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFZQSxJQUFJQSxRQUFvQztBQUN4QyxJQUFJQyxPQUE0QjtBQUNoQyxJQUFJQyxRQUE2QjtBQUUxQixNQUFNQyxhQUE0QixHQUFBQyxPQUFBLENBQUFELGFBQUEsR0FBRztFQUMzQ0UsV0FBVyxFQUFHQyxLQUFzQixJQUFLO0lBQ3hDTixRQUFRLEdBQUdNLEtBQUs7RUFDakIsQ0FBQztFQUNEQyxXQUFXLEVBQUVBLENBQUEsS0FBTVAsUUFBUSxJQUFJUSxNQUFNLENBQUNSLFFBQVE7RUFDOUNTLFVBQVUsRUFBR0gsS0FBZSxJQUFLO0lBQ2hDTCxPQUFPLEdBQUdLLEtBQUs7RUFDaEIsQ0FBQztFQUNESSxVQUFVLEVBQUVBLENBQUEsS0FBTVQsT0FBTyxJQUFJTyxNQUFNLENBQUNQLE9BQU87RUFDM0NVLFdBQVcsRUFBR0wsS0FBZSxJQUFLO0lBQ2pDSixRQUFRLEdBQUdJLEtBQUs7RUFDakIsQ0FBQztFQUNETSxXQUFXLEVBQUVBLENBQUEsS0FBTyxPQUFPVixRQUFRLEtBQUssV0FBVyxHQUFHQSxRQUFRLEdBQUdNLE1BQU0sQ0FBQ0ssU0FBUyxDQUFDQyxNQUFPO0VBQ3pGQyxPQUFPLEVBQUdDLEdBQWlCLElBQUs7SUFDL0IsSUFBSWhCLFFBQVEsRUFBRTtJQUNkUSxNQUFNLENBQUNSLFFBQVEsQ0FBQ2UsT0FBTyxDQUFDQyxHQUFHLENBQUM7RUFDN0I7QUFDRCxDQUFDIiwiaWdub3JlTGlzdCI6W119
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2NhdGlvbiIsImhpc3RvcnkiLCJpc09ubGluZSIsIndpbmRvd1NlcnZpY2UiLCJleHBvcnRzIiwic2V0TG9jYXRpb24iLCJ2YWx1ZSIsImdldExvY2F0aW9uIiwid2luZG93Iiwic2V0SGlzdG9yeSIsImdldEhpc3RvcnkiLCJzZXRJc09ubGluZSIsImdldElzT25saW5lIiwibmF2aWdhdG9yIiwib25MaW5lIiwicmVwbGFjZSIsInVybCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy93aW5kb3dTZXJ2aWNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpbXBsZUxvY2F0aW9uIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luZG93U2VydmljZSB7XG5cdHNldExvY2F0aW9uOiAodmFsdWU/OiBTaW1wbGVMb2NhdGlvbikgPT4gdm9pZFxuXHRnZXRMb2NhdGlvbjogKCkgPT4gU2ltcGxlTG9jYXRpb24gfCBMb2NhdGlvblxuXHRzZXRIaXN0b3J5OiAodmFsdWU/OiBIaXN0b3J5KSA9PiB2b2lkXG5cdGdldEhpc3Rvcnk6ICgpID0+IEhpc3Rvcnlcblx0c2V0SXNPbmxpbmU6IChpc09ubGluZT86IGJvb2xlYW4pID0+IHZvaWRcblx0Z2V0SXNPbmxpbmU6ICgpID0+IGJvb2xlYW5cblx0cmVwbGFjZTogKHVybDogc3RyaW5nIHwgVVJMKSA9PiB2b2lkXG59XG5cbmxldCBsb2NhdGlvbjogU2ltcGxlTG9jYXRpb24gfCB1bmRlZmluZWRcbmxldCBoaXN0b3J5OiBIaXN0b3J5IHwgdW5kZWZpbmVkXG5sZXQgaXNPbmxpbmU6IGJvb2xlYW4gfCB1bmRlZmluZWRcblxuZXhwb3J0IGNvbnN0IHdpbmRvd1NlcnZpY2U6IFdpbmRvd1NlcnZpY2UgPSB7XG5cdHNldExvY2F0aW9uOiAodmFsdWU/OiBTaW1wbGVMb2NhdGlvbikgPT4ge1xuXHRcdGxvY2F0aW9uID0gdmFsdWVcblx0fSxcblx0Z2V0TG9jYXRpb246ICgpID0+IGxvY2F0aW9uIHx8IHdpbmRvdy5sb2NhdGlvbixcblx0c2V0SGlzdG9yeTogKHZhbHVlPzogSGlzdG9yeSkgPT4ge1xuXHRcdGhpc3RvcnkgPSB2YWx1ZVxuXHR9LFxuXHRnZXRIaXN0b3J5OiAoKSA9PiBoaXN0b3J5IHx8IHdpbmRvdy5oaXN0b3J5LFxuXHRzZXRJc09ubGluZTogKHZhbHVlPzogYm9vbGVhbikgPT4ge1xuXHRcdGlzT25saW5lID0gdmFsdWVcblx0fSxcblx0Z2V0SXNPbmxpbmU6ICgpID0+ICh0eXBlb2YgaXNPbmxpbmUgIT09ICd1bmRlZmluZWQnID8gaXNPbmxpbmUgOiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZSksXG5cdHJlcGxhY2U6ICh1cmw6IHN0cmluZyB8IFVSTCkgPT4ge1xuXHRcdC8vIGRvIG5vdGhpbmcgZm9yIG1vY2sgbG9jYXRpb25cblx0XHRpZiAobG9jYXRpb24pIHJldHVyblxuXHRcdHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKHVybClcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFZQSxJQUFJQSxRQUFvQztBQUN4QyxJQUFJQyxPQUE0QjtBQUNoQyxJQUFJQyxRQUE2QjtBQUUxQixNQUFNQyxhQUE0QixHQUFBQyxPQUFBLENBQUFELGFBQUEsR0FBRztFQUMzQ0UsV0FBVyxFQUFHQyxLQUFzQixJQUFLO0lBQ3hDTixRQUFRLEdBQUdNLEtBQUs7RUFDakIsQ0FBQztFQUNEQyxXQUFXLEVBQUVBLENBQUEsS0FBTVAsUUFBUSxJQUFJUSxNQUFNLENBQUNSLFFBQVE7RUFDOUNTLFVBQVUsRUFBR0gsS0FBZSxJQUFLO0lBQ2hDTCxPQUFPLEdBQUdLLEtBQUs7RUFDaEIsQ0FBQztFQUNESSxVQUFVLEVBQUVBLENBQUEsS0FBTVQsT0FBTyxJQUFJTyxNQUFNLENBQUNQLE9BQU87RUFDM0NVLFdBQVcsRUFBR0wsS0FBZSxJQUFLO0lBQ2pDSixRQUFRLEdBQUdJLEtBQUs7RUFDakIsQ0FBQztFQUNETSxXQUFXLEVBQUVBLENBQUEsS0FBTyxPQUFPVixRQUFRLEtBQUssV0FBVyxHQUFHQSxRQUFRLEdBQUdNLE1BQU0sQ0FBQ0ssU0FBUyxDQUFDQyxNQUFPO0VBQ3pGQyxPQUFPLEVBQUdDLEdBQWlCLElBQUs7SUFDL0I7SUFDQSxJQUFJaEIsUUFBUSxFQUFFO0lBQ2RRLE1BQU0sQ0FBQ1IsUUFBUSxDQUFDZSxPQUFPLENBQUNDLEdBQUcsQ0FBQztFQUM3QjtBQUNELENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
package/lib/startup.d.ts CHANGED
@@ -2,16 +2,8 @@ import { History } from 'history';
2
2
  import { Persistor } from 'redux-persist';
3
3
  import { CustomStore } from './redux/configureStore';
4
4
  import { AppConfiguration, BaseReduxState, EndpointMappings } from './types';
5
- export interface BaseStartupResponse {
5
+ export interface StartupResponse<TReduxState extends BaseReduxState> {
6
6
  history: History<any>;
7
- }
8
- /**
9
- * The base startup method. Configures AppConfig, Google Analytics, Application Insights, and Sentry.
10
- * @param appConfig The static configuration for the application.
11
- * @returns An object containing the created `history` object.
12
- */
13
- export declare const baseStartup: (appConfig: AppConfiguration) => BaseStartupResponse;
14
- export interface StartupResponse<TReduxState extends BaseReduxState> extends BaseStartupResponse {
15
7
  store: CustomStore<TReduxState>;
16
8
  persistor: Persistor;
17
9
  }
package/lib/startup.js CHANGED
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.startup = exports.baseStartup = void 0;
7
+ exports.startup = void 0;
8
8
  var _applicationinsightsWeb = require("@microsoft/applicationinsights-web");
9
9
  var Sentry = _interopRequireWildcard(require("@sentry/react"));
10
10
  var _history = require("history");
@@ -15,16 +15,30 @@ var _logger = require("./utils/logger");
15
15
  var _url = require("./utils/url");
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
17
17
  /**
18
- * The base startup method. Configures AppConfig, Google Analytics, Application Insights, and Sentry.
18
+ * The main startup method for your app. Should be called before rendering your app or importing other scaffolding modules.
19
+ *
20
+ * Optional startup methods are available to provide additional configuration. Call these **before** `startup`. These methods can all be imported from `studiokit-scaffolding-js`.
21
+ * * `redux/sagas/rootSaga`
22
+ * * `setOtherDependentSagas` to add more sagas
23
+ * * `redux/sagas/postLoginDataSaga`
24
+ * * `setOnPostLogin` to load more data after login
25
+ * * `redux/configureReducers`
26
+ * * `updatePersistBlacklist` and `setOtherReducers` to add more reducers
27
+ *
28
+ * @template TReduxState The type of state to be stored in redux
29
+ *
19
30
  * @param appConfig The static configuration for the application.
20
- * @returns An object containing the created `history` object.
31
+ * @param endpointMappings The mapping of redux models to api endpoints.
32
+ *
33
+ * @returns An object containing the created `history`, `store`, and `persistor` objects.
21
34
  */
22
- const baseStartup = appConfig => {
35
+ const startup = (appConfig, endpointMappings) => {
23
36
  // set initial config, enabling `getApiBaseUrl` and `getShardKey`
24
37
  (0, _configuration.setAppConfig)(appConfig);
25
38
  // update API_BASE_URL with final value
26
39
  const apiBaseUrl = (0, _url.getApiBaseUrl)(appConfig.TIER, appConfig.API_BASE_URL);
27
40
  appConfig.API_BASE_URL = apiBaseUrl;
41
+ (0, _configuration.setEndpointMappings)(endpointMappings);
28
42
  (0, _logger.setLogger)((0, _logger.createLogger)());
29
43
 
30
44
  // Google Analytics
@@ -112,34 +126,6 @@ const baseStartup = appConfig => {
112
126
  Sentry.captureException(evt.reason);
113
127
  }
114
128
  };
115
- return {
116
- history
117
- };
118
- };
119
- exports.baseStartup = baseStartup;
120
- /**
121
- * The main startup method for your app. Should be called before rendering your app or importing other scaffolding modules.
122
- *
123
- * Optional startup methods are available to provide additional configuration. Call these **before** `startup`. These methods can all be imported from `studiokit-scaffolding-js`.
124
- * * `redux/sagas/rootSaga`
125
- * * `setOtherDependentSagas` to add more sagas
126
- * * `redux/sagas/postLoginDataSaga`
127
- * * `setOnPostLogin` to load more data after login
128
- * * `redux/configureReducers`
129
- * * `updatePersistBlacklist` and `setOtherReducers` to add more reducers
130
- *
131
- * @template TReduxState The type of state to be stored in redux
132
- *
133
- * @param appConfig The static configuration for the application.
134
- * @param endpointMappings The mapping of redux models to api endpoints.
135
- *
136
- * @returns An object containing the created `history`, `store`, and `persistor` objects.
137
- */
138
- const startup = (appConfig, endpointMappings) => {
139
- (0, _configuration.setEndpointMappings)(endpointMappings);
140
- const {
141
- history
142
- } = baseStartup(appConfig);
143
129
 
144
130
  // Redux Store and Persistor
145
131
  const {
@@ -154,4 +140,4 @@ const startup = (appConfig, endpointMappings) => {
154
140
  return response;
155
141
  };
156
142
  exports.startup = startup;
157
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXBwbGljYXRpb25pbnNpZ2h0c1dlYiIsInJlcXVpcmUiLCJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9oaXN0b3J5IiwiX3JlYWN0R2EiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbmZpZ3VyYXRpb24iLCJfY29uZmlndXJlU3RvcmUiLCJfbG9nZ2VyIiwiX3VybCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImJhc2VTdGFydHVwIiwiYXBwQ29uZmlnIiwic2V0QXBwQ29uZmlnIiwiYXBpQmFzZVVybCIsImdldEFwaUJhc2VVcmwiLCJUSUVSIiwiQVBJX0JBU0VfVVJMIiwic2V0TG9nZ2VyIiwiY3JlYXRlTG9nZ2VyIiwiR09PR0xFX0FOQUxZVElDU19UUkFDS0lOR19JRCIsImdhIiwiaW5pdGlhbGl6ZSIsInNlbmQiLCJoaXRUeXBlIiwicGFnZSIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJBUFBfSU5TSUdIVFNfQ09OTkVDVElPTl9TVFJJTkciLCJhcHBJbnNpZ2h0c0NvbmZpZyIsImNvbm5lY3Rpb25TdHJpbmciLCJhcHBJbnNpZ2h0cyIsIkFwcGxpY2F0aW9uSW5zaWdodHMiLCJjb25maWciLCJsb2FkQXBwSW5zaWdodHMiLCJzZXRBcHBJbnNpZ2h0cyIsImhpc3RvcnkiLCJjcmVhdGVCcm93c2VySGlzdG9yeSIsImxvY2F0aW9uTGlzdGVuZXIiLCJ1c2VyX2lkIiwiZ2V0VXNlcklkIiwiZ2V0QXBwSW5zaWdodHMiLCJ0cmFja1BhZ2VWaWV3IiwidXJpIiwibGlzdGVuIiwiU0VOVFJZX0RTTiIsImluaXQiLCJkc24iLCJyZWxlYXNlIiwiVkVSU0lPTiIsImVudmlyb25tZW50IiwiZGVidWciLCJOT0RFX0VOViIsIm5vcm1hbGl6ZURlcHRoIiwibWF4VmFsdWVMZW5ndGgiLCJiZWZvcmVCcmVhZGNydW1iIiwiYnJlYWRjcnVtYiIsImNhdGVnb3J5IiwiaW50ZWdyYXRpb25zIiwiaHR0cENsaWVudEludGVncmF0aW9uIiwiZmFpbGVkUmVxdWVzdFRhcmdldHMiLCJyZWFjdFJvdXRlclY1QnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbiIsInJlcGxheUludGVncmF0aW9uIiwidHJhY2VzU2FtcGxlUmF0ZSIsIlNFTlRSWV9UUkFDRVNfU0FNUExFX1JBVEUiLCJyZXBsYXlzU2Vzc2lvblNhbXBsZVJhdGUiLCJTRU5UUllfUkVQTEFZU19TRVNTSU9OX1NBTVBMRV9SQVRFIiwicmVwbGF5c09uRXJyb3JTYW1wbGVSYXRlIiwiU0VOVFJZX1JFUExBWVNfT05fRVJST1JfU0FNUExFX1JBVEUiLCJvbnVuaGFuZGxlZHJlamVjdGlvbiIsImV2dCIsIm1lc3NhZ2UiLCJyZWFzb24iLCJzb21lIiwicyIsImluY2x1ZGVzIiwibmF2aWdhdG9yIiwib25MaW5lIiwiYWxlcnQiLCJBUFBfTkFNRSIsImRvY3VtZW50IiwicmVsb2FkIiwiY2FwdHVyZUV4Y2VwdGlvbiIsImV4cG9ydHMiLCJzdGFydHVwIiwiZW5kcG9pbnRNYXBwaW5ncyIsInNldEVuZHBvaW50TWFwcGluZ3MiLCJzdG9yZSIsInBlcnNpc3RvciIsImNvbmZpZ3VyZVN0b3JlIiwicmVzcG9uc2UiXSwic291cmNlcyI6WyIuLi9zcmMvc3RhcnR1cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvbkluc2lnaHRzIH0gZnJvbSAnQG1pY3Jvc29mdC9hcHBsaWNhdGlvbmluc2lnaHRzLXdlYidcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnksIEhpc3RvcnksIExvY2F0aW9uLCBMb2NhdGlvbkxpc3RlbmVyIH0gZnJvbSAnaGlzdG9yeSdcbmltcG9ydCBnYSBmcm9tICdyZWFjdC1nYTQnXG5pbXBvcnQgeyBQZXJzaXN0b3IgfSBmcm9tICdyZWR1eC1wZXJzaXN0J1xuaW1wb3J0IHsgZ2V0QXBwSW5zaWdodHMsIGdldFVzZXJJZCwgc2V0QXBwQ29uZmlnLCBzZXRBcHBJbnNpZ2h0cywgc2V0RW5kcG9pbnRNYXBwaW5ncyB9IGZyb20gJy4vY29uc3RhbnRzL2NvbmZpZ3VyYXRpb24nXG5pbXBvcnQgY29uZmlndXJlU3RvcmUsIHsgQ3VzdG9tU3RvcmUgfSBmcm9tICcuL3JlZHV4L2NvbmZpZ3VyZVN0b3JlJ1xuaW1wb3J0IHsgQXBwQ29uZmlndXJhdGlvbiwgQmFzZVJlZHV4U3RhdGUsIEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCBzZXRMb2dnZXIgfSBmcm9tICcuL3V0aWxzL2xvZ2dlcidcbmltcG9ydCB7IGdldEFwaUJhc2VVcmwgfSBmcm9tICcuL3V0aWxzL3VybCdcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU3RhcnR1cFJlc3BvbnNlIHtcblx0aGlzdG9yeTogSGlzdG9yeTxhbnk+XG59XG5cbi8qKlxuICogVGhlIGJhc2Ugc3RhcnR1cCBtZXRob2QuIENvbmZpZ3VyZXMgQXBwQ29uZmlnLCBHb29nbGUgQW5hbHl0aWNzLCBBcHBsaWNhdGlvbiBJbnNpZ2h0cywgYW5kIFNlbnRyeS5cbiAqIEBwYXJhbSBhcHBDb25maWcgVGhlIHN0YXRpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24uXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3JlYXRlZCBgaGlzdG9yeWAgb2JqZWN0LlxuICovXG5leHBvcnQgY29uc3QgYmFzZVN0YXJ0dXAgPSAoYXBwQ29uZmlnOiBBcHBDb25maWd1cmF0aW9uKTogQmFzZVN0YXJ0dXBSZXNwb25zZSA9PiB7XG5cdC8vIHNldCBpbml0aWFsIGNvbmZpZywgZW5hYmxpbmcgYGdldEFwaUJhc2VVcmxgIGFuZCBgZ2V0U2hhcmRLZXlgXG5cdHNldEFwcENvbmZpZyhhcHBDb25maWcpXG5cdC8vIHVwZGF0ZSBBUElfQkFTRV9VUkwgd2l0aCBmaW5hbCB2YWx1ZVxuXHRjb25zdCBhcGlCYXNlVXJsID0gZ2V0QXBpQmFzZVVybChhcHBDb25maWcuVElFUiwgYXBwQ29uZmlnLkFQSV9CQVNFX1VSTClcblx0YXBwQ29uZmlnLkFQSV9CQVNFX1VSTCA9IGFwaUJhc2VVcmxcblxuXHRzZXRMb2dnZXIoY3JlYXRlTG9nZ2VyKCkpXG5cblx0Ly8gR29vZ2xlIEFuYWx5dGljc1xuXHRpZiAoYXBwQ29uZmlnLkdPT0dMRV9BTkFMWVRJQ1NfVFJBQ0tJTkdfSUQpIHtcblx0XHRnYS5pbml0aWFsaXplKGFwcENvbmZpZy5HT09HTEVfQU5BTFlUSUNTX1RSQUNLSU5HX0lEKVxuXHRcdC8vIHRyYWNrIGluaXRpYWwgcGFnZVxuXHRcdGdhLnNlbmQoeyBoaXRUeXBlOiAncGFnZXZpZXcnLCBwYWdlOiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgfSlcblx0fVxuXG5cdC8vIEFwcGxpY2F0aW9uIEluc2lnaHRzXG5cdGlmIChhcHBDb25maWcuQVBQX0lOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HKSB7XG5cdFx0Y29uc3QgYXBwSW5zaWdodHNDb25maWcgPSB7XG5cdFx0XHRjb25uZWN0aW9uU3RyaW5nOiBhcHBDb25maWcuQVBQX0lOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HXG5cdFx0fVxuXHRcdGNvbnN0IGFwcEluc2lnaHRzID0gbmV3IEFwcGxpY2F0aW9uSW5zaWdodHMoeyBjb25maWc6IGFwcEluc2lnaHRzQ29uZmlnIH0pXG5cdFx0YXBwSW5zaWdodHMubG9hZEFwcEluc2lnaHRzKClcblx0XHRzZXRBcHBJbnNpZ2h0cyhhcHBJbnNpZ2h0cylcblx0fVxuXG5cdC8vIEhpc3RvcnkgYW5kIExpc3RlbmVyXG5cdGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpXG5cdGNvbnN0IGxvY2F0aW9uTGlzdGVuZXI6IExvY2F0aW9uTGlzdGVuZXIgPSAobG9jYXRpb246IExvY2F0aW9uKSA9PiB7XG5cdFx0Ly8gc2VuZCBwYWdldmlldyB0byBHb29nbGUgQW5hbHl0aWNzXG5cdFx0aWYgKGFwcENvbmZpZy5HT09HTEVfQU5BTFlUSUNTX1RSQUNLSU5HX0lEKSB7XG5cdFx0XHRnYS5zZW5kKHsgaGl0VHlwZTogJ3BhZ2V2aWV3JywgcGFnZTogbG9jYXRpb24ucGF0aG5hbWUsIHVzZXJfaWQ6IGdldFVzZXJJZCgpIH0pXG5cdFx0fVxuXHRcdC8vIHNlbmQgcGFnZXZpZXcgdG8gQXBwbGljYXRpb24gSW5zaWdodHNcblx0XHRpZiAoYXBwQ29uZmlnLkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORykge1xuXHRcdFx0Y29uc3QgYXBwSW5zaWdodHMgPSBnZXRBcHBJbnNpZ2h0cygpXG5cdFx0XHRhcHBJbnNpZ2h0cy50cmFja1BhZ2VWaWV3KHsgdXJpOiBsb2NhdGlvbi5wYXRobmFtZSB9KVxuXHRcdH1cblx0fVxuXHRoaXN0b3J5Lmxpc3Rlbihsb2NhdGlvbkxpc3RlbmVyKVxuXG5cdC8vIFNlbnRyeVxuXHRpZiAoYXBwQ29uZmlnLlNFTlRSWV9EU04pIHtcblx0XHRTZW50cnkuaW5pdCh7XG5cdFx0XHRkc246IGFwcENvbmZpZy5TRU5UUllfRFNOLFxuXHRcdFx0cmVsZWFzZTogYXBwQ29uZmlnLlZFUlNJT04sXG5cdFx0XHRlbnZpcm9ubWVudDogYXBwQ29uZmlnLlRJRVIsXG5cdFx0XHRkZWJ1ZzogYXBwQ29uZmlnLk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicsXG5cdFx0XHQvLyBsaW1pdCBkZXB0aCBvZiBkYXRhIGF0dGFjaGVkIHRvIGJyZWFkY3J1bWJzIGFuZCBjb250ZXh0c1xuXHRcdFx0bm9ybWFsaXplRGVwdGg6IDE1LFxuXHRcdFx0Ly8gaW5jcmVhc2UgbGVuZ3RoIG9mIGVycm9yIG1lc3NhZ2VzIGJlZm9yZSB0cnVuY2F0aW9uXG5cdFx0XHRtYXhWYWx1ZUxlbmd0aDogNDUwLFxuXHRcdFx0YmVmb3JlQnJlYWRjcnVtYihicmVhZGNydW1iKSB7XG5cdFx0XHRcdC8vIGRvIG5vdCB0cmFjayBjb25zb2xlIGxvZ3Mgd2hlbiBydW5uaW5nIGluIGRldmVsb3BtZW50IG1vZGUgKGxvY2FsbHkpXG5cdFx0XHRcdHJldHVybiBicmVhZGNydW1iLmNhdGVnb3J5ID09PSAnY29uc29sZScgJiYgYXBwQ29uZmlnLk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicgPyBudWxsIDogYnJlYWRjcnVtYlxuXHRcdFx0fSxcblx0XHRcdC8vIGVuYWJsZSBwZXJmb3JtYW5jZSB0cmFjaW5nIGFuZCBzZXNzaW9uIHJlcGxheXNcblx0XHRcdGludGVncmF0aW9uczogW1xuXHRcdFx0XHRTZW50cnkuaHR0cENsaWVudEludGVncmF0aW9uKHtcblx0XHRcdFx0XHRmYWlsZWRSZXF1ZXN0VGFyZ2V0czogW10gLy8gZGlzYWJsZSBhdXRvbWF0aWMgXCJmZXRjaFwiIGVycm9yIHRyYWNraW5nLCBzaW5jZSB3ZSBoYXZlIG91ciBvd24gY3VzdG9tIGVycm9yc1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0U2VudHJ5LnJlYWN0Um91dGVyVjVCcm93c2VyVHJhY2luZ0ludGVncmF0aW9uKHsgaGlzdG9yeSB9KSxcblx0XHRcdFx0U2VudHJ5LnJlcGxheUludGVncmF0aW9uKClcblx0XHRcdF0sXG5cdFx0XHQvLyBzZXQgc2FtcGxlIHJhdGVzIGZvciBwZXJmb3JtYW5jZSB0cmFjaW5nIGFuZCBzZXNzaW9uIHJlcGxheXNcblx0XHRcdHRyYWNlc1NhbXBsZVJhdGU6IGFwcENvbmZpZy5TRU5UUllfVFJBQ0VTX1NBTVBMRV9SQVRFLFxuXHRcdFx0cmVwbGF5c1Nlc3Npb25TYW1wbGVSYXRlOiBhcHBDb25maWcuU0VOVFJZX1JFUExBWVNfU0VTU0lPTl9TQU1QTEVfUkFURSxcblx0XHRcdHJlcGxheXNPbkVycm9yU2FtcGxlUmF0ZTogYXBwQ29uZmlnLlNFTlRSWV9SRVBMQVlTX09OX0VSUk9SX1NBTVBMRV9SQVRFXG5cdFx0fSlcblx0fVxuXG5cdC8vIFVuaGFuZGxlZCBFcnJvcnNcblx0d2luZG93Lm9udW5oYW5kbGVkcmVqZWN0aW9uID0gKGV2dDogUHJvbWlzZVJlamVjdGlvbkV2ZW50KSA9PiB7XG5cdFx0Y29uc3QgbWVzc2FnZSA9IGV2dC5yZWFzb24/Lm1lc3NhZ2Vcblx0XHRpZiAoXG5cdFx0XHRtZXNzYWdlICYmXG5cdFx0XHR0eXBlb2YgbWVzc2FnZSA9PT0gJ3N0cmluZycgJiZcblx0XHRcdFtcblx0XHRcdFx0J0ZhaWxlZCB0byBmZXRjaCBkeW5hbWljYWxseSBpbXBvcnRlZCBtb2R1bGUnLFxuXHRcdFx0XHQnZXJyb3IgbG9hZGluZyBkeW5hbWljYWxseSBpbXBvcnRlZCBtb2R1bGUnLFxuXHRcdFx0XHQnSW1wb3J0aW5nIGEgbW9kdWxlIHNjcmlwdCBmYWlsZWQnXG5cdFx0XHRdLnNvbWUocyA9PiBtZXNzYWdlLmluY2x1ZGVzKHMpKVxuXHRcdCkge1xuXHRcdFx0aWYgKCF3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuXHRcdFx0XHR3aW5kb3cuYWxlcnQoXG5cdFx0XHRcdFx0YFlvdXIgbmV0d29yayBjb25uZWN0aW9uIGFwcGVhcnMgdG8gYmUgaGF2aW5nIGlzc3Vlcy4gUGxlYXNlIGNoZWNrIHlvdXIgY29ubmVjdGlvbiBhbmQgcmVmcmVzaCB5b3VyIGJyb3dzZXIuYFxuXHRcdFx0XHQpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3cuYWxlcnQoXG5cdFx0XHRcdFx0YEEgbmV3IHZlcnNpb24gb2YgJHthcHBDb25maWcuQVBQX05BTUV9IGlzIGF2YWlsYWJsZS4gWW91ciBicm93c2VyIHdpbGwgbm93IHJlZnJlc2guIElmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFnYWluLCBwbGVhc2UgY2xlYXIgeW91ciBicm93c2VyIGNhY2hlIGFuZCB0cnkgYWdhaW4uYFxuXHRcdFx0XHQpXG5cdFx0XHRcdGRvY3VtZW50LmxvY2F0aW9uLnJlbG9hZCgpXG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdFNlbnRyeS5jYXB0dXJlRXhjZXB0aW9uKGV2dC5yZWFzb24pXG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIHsgaGlzdG9yeSB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnR1cFJlc3BvbnNlPFRSZWR1eFN0YXRlIGV4dGVuZHMgQmFzZVJlZHV4U3RhdGU+IGV4dGVuZHMgQmFzZVN0YXJ0dXBSZXNwb25zZSB7XG5cdHN0b3JlOiBDdXN0b21TdG9yZTxUUmVkdXhTdGF0ZT5cblx0cGVyc2lzdG9yOiBQZXJzaXN0b3Jcbn1cblxuLyoqXG4gKiBUaGUgbWFpbiBzdGFydHVwIG1ldGhvZCBmb3IgeW91ciBhcHAuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB5b3VyIGFwcCBvciBpbXBvcnRpbmcgb3RoZXIgc2NhZmZvbGRpbmcgbW9kdWxlcy5cbiAqXG4gKiBPcHRpb25hbCBzdGFydHVwIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSB0byBwcm92aWRlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi4gQ2FsbCB0aGVzZSAqKmJlZm9yZSoqIGBzdGFydHVwYC4gVGhlc2UgbWV0aG9kcyBjYW4gYWxsIGJlIGltcG9ydGVkIGZyb20gYHN0dWRpb2tpdC1zY2FmZm9sZGluZy1qc2AuXG4gKiAqIGByZWR1eC9zYWdhcy9yb290U2FnYWBcbiAqICAgKiBgc2V0T3RoZXJEZXBlbmRlbnRTYWdhc2AgdG8gYWRkIG1vcmUgc2FnYXNcbiAqICogYHJlZHV4L3NhZ2FzL3Bvc3RMb2dpbkRhdGFTYWdhYFxuICogICAqIGBzZXRPblBvc3RMb2dpbmAgdG8gbG9hZCBtb3JlIGRhdGEgYWZ0ZXIgbG9naW5cbiAqICogYHJlZHV4L2NvbmZpZ3VyZVJlZHVjZXJzYFxuICogICAqIGB1cGRhdGVQZXJzaXN0QmxhY2tsaXN0YCBhbmQgYHNldE90aGVyUmVkdWNlcnNgIHRvIGFkZCBtb3JlIHJlZHVjZXJzXG4gKlxuICogQHRlbXBsYXRlIFRSZWR1eFN0YXRlIFRoZSB0eXBlIG9mIHN0YXRlIHRvIGJlIHN0b3JlZCBpbiByZWR1eFxuICpcbiAqIEBwYXJhbSBhcHBDb25maWcgVGhlIHN0YXRpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24uXG4gKiBAcGFyYW0gZW5kcG9pbnRNYXBwaW5ncyBUaGUgbWFwcGluZyBvZiByZWR1eCBtb2RlbHMgdG8gYXBpIGVuZHBvaW50cy5cbiAqXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3JlYXRlZCBgaGlzdG9yeWAsIGBzdG9yZWAsIGFuZCBgcGVyc2lzdG9yYCBvYmplY3RzLlxuICovXG5leHBvcnQgY29uc3Qgc3RhcnR1cCA9IDxUUmVkdXhTdGF0ZSBleHRlbmRzIEJhc2VSZWR1eFN0YXRlPihcblx0YXBwQ29uZmlnOiBBcHBDb25maWd1cmF0aW9uLFxuXHRlbmRwb2ludE1hcHBpbmdzOiBFbmRwb2ludE1hcHBpbmdzXG4pID0+IHtcblx0c2V0RW5kcG9pbnRNYXBwaW5ncyhlbmRwb2ludE1hcHBpbmdzKVxuXHRjb25zdCB7IGhpc3RvcnkgfSA9IGJhc2VTdGFydHVwKGFwcENvbmZpZylcblxuXHQvLyBSZWR1eCBTdG9yZSBhbmQgUGVyc2lzdG9yXG5cdGNvbnN0IHsgc3RvcmUsIHBlcnNpc3RvciB9ID0gY29uZmlndXJlU3RvcmU8VFJlZHV4U3RhdGU+KGhpc3RvcnkpXG5cdGNvbnN0IHJlc3BvbnNlOiBTdGFydHVwUmVzcG9uc2U8VFJlZHV4U3RhdGU+ID0geyBoaXN0b3J5LCBzdG9yZSwgcGVyc2lzdG9yIH1cblx0cmV0dXJuIHJlc3BvbnNlXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQSxJQUFBQSx1QkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBQyxzQkFBQSxDQUFBTCxPQUFBO0FBRUEsSUFBQU0sY0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZUFBQSxH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
143
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXBwbGljYXRpb25pbnNpZ2h0c1dlYiIsInJlcXVpcmUiLCJTZW50cnkiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9oaXN0b3J5IiwiX3JlYWN0R2EiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbmZpZ3VyYXRpb24iLCJfY29uZmlndXJlU3RvcmUiLCJfbG9nZ2VyIiwiX3VybCIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInN0YXJ0dXAiLCJhcHBDb25maWciLCJlbmRwb2ludE1hcHBpbmdzIiwic2V0QXBwQ29uZmlnIiwiYXBpQmFzZVVybCIsImdldEFwaUJhc2VVcmwiLCJUSUVSIiwiQVBJX0JBU0VfVVJMIiwic2V0RW5kcG9pbnRNYXBwaW5ncyIsInNldExvZ2dlciIsImNyZWF0ZUxvZ2dlciIsIkdPT0dMRV9BTkFMWVRJQ1NfVFJBQ0tJTkdfSUQiLCJnYSIsImluaXRpYWxpemUiLCJzZW5kIiwiaGl0VHlwZSIsInBhZ2UiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInBhdGhuYW1lIiwiQVBQX0lOU0lHSFRTX0NPTk5FQ1RJT05fU1RSSU5HIiwiYXBwSW5zaWdodHNDb25maWciLCJjb25uZWN0aW9uU3RyaW5nIiwiYXBwSW5zaWdodHMiLCJBcHBsaWNhdGlvbkluc2lnaHRzIiwiY29uZmlnIiwibG9hZEFwcEluc2lnaHRzIiwic2V0QXBwSW5zaWdodHMiLCJoaXN0b3J5IiwiY3JlYXRlQnJvd3Nlckhpc3RvcnkiLCJsb2NhdGlvbkxpc3RlbmVyIiwidXNlcl9pZCIsImdldFVzZXJJZCIsImdldEFwcEluc2lnaHRzIiwidHJhY2tQYWdlVmlldyIsInVyaSIsImxpc3RlbiIsIlNFTlRSWV9EU04iLCJpbml0IiwiZHNuIiwicmVsZWFzZSIsIlZFUlNJT04iLCJlbnZpcm9ubWVudCIsImRlYnVnIiwiTk9ERV9FTlYiLCJub3JtYWxpemVEZXB0aCIsIm1heFZhbHVlTGVuZ3RoIiwiYmVmb3JlQnJlYWRjcnVtYiIsImJyZWFkY3J1bWIiLCJjYXRlZ29yeSIsImludGVncmF0aW9ucyIsImh0dHBDbGllbnRJbnRlZ3JhdGlvbiIsImZhaWxlZFJlcXVlc3RUYXJnZXRzIiwicmVhY3RSb3V0ZXJWNUJyb3dzZXJUcmFjaW5nSW50ZWdyYXRpb24iLCJyZXBsYXlJbnRlZ3JhdGlvbiIsInRyYWNlc1NhbXBsZVJhdGUiLCJTRU5UUllfVFJBQ0VTX1NBTVBMRV9SQVRFIiwicmVwbGF5c1Nlc3Npb25TYW1wbGVSYXRlIiwiU0VOVFJZX1JFUExBWVNfU0VTU0lPTl9TQU1QTEVfUkFURSIsInJlcGxheXNPbkVycm9yU2FtcGxlUmF0ZSIsIlNFTlRSWV9SRVBMQVlTX09OX0VSUk9SX1NBTVBMRV9SQVRFIiwib251bmhhbmRsZWRyZWplY3Rpb24iLCJldnQiLCJtZXNzYWdlIiwicmVhc29uIiwic29tZSIsInMiLCJpbmNsdWRlcyIsIm5hdmlnYXRvciIsIm9uTGluZSIsImFsZXJ0IiwiQVBQX05BTUUiLCJkb2N1bWVudCIsInJlbG9hZCIsImNhcHR1cmVFeGNlcHRpb24iLCJzdG9yZSIsInBlcnNpc3RvciIsImNvbmZpZ3VyZVN0b3JlIiwicmVzcG9uc2UiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL3N0YXJ0dXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25JbnNpZ2h0cyB9IGZyb20gJ0BtaWNyb3NvZnQvYXBwbGljYXRpb25pbnNpZ2h0cy13ZWInXG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9yZWFjdCdcbmltcG9ydCB7IGNyZWF0ZUJyb3dzZXJIaXN0b3J5LCBIaXN0b3J5LCBMb2NhdGlvbiwgTG9jYXRpb25MaXN0ZW5lciB9IGZyb20gJ2hpc3RvcnknXG5pbXBvcnQgZ2EgZnJvbSAncmVhY3QtZ2E0J1xuaW1wb3J0IHsgUGVyc2lzdG9yIH0gZnJvbSAncmVkdXgtcGVyc2lzdCdcbmltcG9ydCB7IGdldEFwcEluc2lnaHRzLCBnZXRVc2VySWQsIHNldEFwcENvbmZpZywgc2V0QXBwSW5zaWdodHMsIHNldEVuZHBvaW50TWFwcGluZ3MgfSBmcm9tICcuL2NvbnN0YW50cy9jb25maWd1cmF0aW9uJ1xuaW1wb3J0IGNvbmZpZ3VyZVN0b3JlLCB7IEN1c3RvbVN0b3JlIH0gZnJvbSAnLi9yZWR1eC9jb25maWd1cmVTdG9yZSdcbmltcG9ydCB7IEFwcENvbmZpZ3VyYXRpb24sIEJhc2VSZWR1eFN0YXRlLCBFbmRwb2ludE1hcHBpbmdzIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGNyZWF0ZUxvZ2dlciwgc2V0TG9nZ2VyIH0gZnJvbSAnLi91dGlscy9sb2dnZXInXG5pbXBvcnQgeyBnZXRBcGlCYXNlVXJsIH0gZnJvbSAnLi91dGlscy91cmwnXG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhcnR1cFJlc3BvbnNlPFRSZWR1eFN0YXRlIGV4dGVuZHMgQmFzZVJlZHV4U3RhdGU+IHtcblx0aGlzdG9yeTogSGlzdG9yeTxhbnk+XG5cdHN0b3JlOiBDdXN0b21TdG9yZTxUUmVkdXhTdGF0ZT5cblx0cGVyc2lzdG9yOiBQZXJzaXN0b3Jcbn1cblxuLyoqXG4gKiBUaGUgbWFpbiBzdGFydHVwIG1ldGhvZCBmb3IgeW91ciBhcHAuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIHJlbmRlcmluZyB5b3VyIGFwcCBvciBpbXBvcnRpbmcgb3RoZXIgc2NhZmZvbGRpbmcgbW9kdWxlcy5cbiAqXG4gKiBPcHRpb25hbCBzdGFydHVwIG1ldGhvZHMgYXJlIGF2YWlsYWJsZSB0byBwcm92aWRlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbi4gQ2FsbCB0aGVzZSAqKmJlZm9yZSoqIGBzdGFydHVwYC4gVGhlc2UgbWV0aG9kcyBjYW4gYWxsIGJlIGltcG9ydGVkIGZyb20gYHN0dWRpb2tpdC1zY2FmZm9sZGluZy1qc2AuXG4gKiAqIGByZWR1eC9zYWdhcy9yb290U2FnYWBcbiAqICAgKiBgc2V0T3RoZXJEZXBlbmRlbnRTYWdhc2AgdG8gYWRkIG1vcmUgc2FnYXNcbiAqICogYHJlZHV4L3NhZ2FzL3Bvc3RMb2dpbkRhdGFTYWdhYFxuICogICAqIGBzZXRPblBvc3RMb2dpbmAgdG8gbG9hZCBtb3JlIGRhdGEgYWZ0ZXIgbG9naW5cbiAqICogYHJlZHV4L2NvbmZpZ3VyZVJlZHVjZXJzYFxuICogICAqIGB1cGRhdGVQZXJzaXN0QmxhY2tsaXN0YCBhbmQgYHNldE90aGVyUmVkdWNlcnNgIHRvIGFkZCBtb3JlIHJlZHVjZXJzXG4gKlxuICogQHRlbXBsYXRlIFRSZWR1eFN0YXRlIFRoZSB0eXBlIG9mIHN0YXRlIHRvIGJlIHN0b3JlZCBpbiByZWR1eFxuICpcbiAqIEBwYXJhbSBhcHBDb25maWcgVGhlIHN0YXRpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgYXBwbGljYXRpb24uXG4gKiBAcGFyYW0gZW5kcG9pbnRNYXBwaW5ncyBUaGUgbWFwcGluZyBvZiByZWR1eCBtb2RlbHMgdG8gYXBpIGVuZHBvaW50cy5cbiAqXG4gKiBAcmV0dXJucyBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgY3JlYXRlZCBgaGlzdG9yeWAsIGBzdG9yZWAsIGFuZCBgcGVyc2lzdG9yYCBvYmplY3RzLlxuICovXG5leHBvcnQgY29uc3Qgc3RhcnR1cCA9IDxUUmVkdXhTdGF0ZSBleHRlbmRzIEJhc2VSZWR1eFN0YXRlPihcblx0YXBwQ29uZmlnOiBBcHBDb25maWd1cmF0aW9uLFxuXHRlbmRwb2ludE1hcHBpbmdzOiBFbmRwb2ludE1hcHBpbmdzXG4pID0+IHtcblx0Ly8gc2V0IGluaXRpYWwgY29uZmlnLCBlbmFibGluZyBgZ2V0QXBpQmFzZVVybGAgYW5kIGBnZXRTaGFyZEtleWBcblx0c2V0QXBwQ29uZmlnKGFwcENvbmZpZylcblx0Ly8gdXBkYXRlIEFQSV9CQVNFX1VSTCB3aXRoIGZpbmFsIHZhbHVlXG5cdGNvbnN0IGFwaUJhc2VVcmwgPSBnZXRBcGlCYXNlVXJsKGFwcENvbmZpZy5USUVSLCBhcHBDb25maWcuQVBJX0JBU0VfVVJMKVxuXHRhcHBDb25maWcuQVBJX0JBU0VfVVJMID0gYXBpQmFzZVVybFxuXG5cdHNldEVuZHBvaW50TWFwcGluZ3MoZW5kcG9pbnRNYXBwaW5ncylcblx0c2V0TG9nZ2VyKGNyZWF0ZUxvZ2dlcigpKVxuXG5cdC8vIEdvb2dsZSBBbmFseXRpY3Ncblx0aWYgKGFwcENvbmZpZy5HT09HTEVfQU5BTFlUSUNTX1RSQUNLSU5HX0lEKSB7XG5cdFx0Z2EuaW5pdGlhbGl6ZShhcHBDb25maWcuR09PR0xFX0FOQUxZVElDU19UUkFDS0lOR19JRClcblx0XHQvLyB0cmFjayBpbml0aWFsIHBhZ2Vcblx0XHRnYS5zZW5kKHsgaGl0VHlwZTogJ3BhZ2V2aWV3JywgcGFnZTogd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lIH0pXG5cdH1cblxuXHQvLyBBcHBsaWNhdGlvbiBJbnNpZ2h0c1xuXHRpZiAoYXBwQ29uZmlnLkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklORykge1xuXHRcdGNvbnN0IGFwcEluc2lnaHRzQ29uZmlnID0ge1xuXHRcdFx0Y29ubmVjdGlvblN0cmluZzogYXBwQ29uZmlnLkFQUF9JTlNJR0hUU19DT05ORUNUSU9OX1NUUklOR1xuXHRcdH1cblx0XHRjb25zdCBhcHBJbnNpZ2h0cyA9IG5ldyBBcHBsaWNhdGlvbkluc2lnaHRzKHsgY29uZmlnOiBhcHBJbnNpZ2h0c0NvbmZpZyB9KVxuXHRcdGFwcEluc2lnaHRzLmxvYWRBcHBJbnNpZ2h0cygpXG5cdFx0c2V0QXBwSW5zaWdodHMoYXBwSW5zaWdodHMpXG5cdH1cblxuXHQvLyBIaXN0b3J5IGFuZCBMaXN0ZW5lclxuXHRjb25zdCBoaXN0b3J5ID0gY3JlYXRlQnJvd3Nlckhpc3RvcnkoKVxuXHRjb25zdCBsb2NhdGlvbkxpc3RlbmVyOiBMb2NhdGlvbkxpc3RlbmVyID0gKGxvY2F0aW9uOiBMb2NhdGlvbikgPT4ge1xuXHRcdC8vIHNlbmQgcGFnZXZpZXcgdG8gR29vZ2xlIEFuYWx5dGljc1xuXHRcdGlmIChhcHBDb25maWcuR09PR0xFX0FOQUxZVElDU19UUkFDS0lOR19JRCkge1xuXHRcdFx0Z2Euc2VuZCh7IGhpdFR5cGU6ICdwYWdldmlldycsIHBhZ2U6IGxvY2F0aW9uLnBhdGhuYW1lLCB1c2VyX2lkOiBnZXRVc2VySWQoKSB9KVxuXHRcdH1cblx0XHQvLyBzZW5kIHBhZ2V2aWV3IHRvIEFwcGxpY2F0aW9uIEluc2lnaHRzXG5cdFx0aWYgKGFwcENvbmZpZy5BUFBfSU5TSUdIVFNfQ09OTkVDVElPTl9TVFJJTkcpIHtcblx0XHRcdGNvbnN0IGFwcEluc2lnaHRzID0gZ2V0QXBwSW5zaWdodHMoKVxuXHRcdFx0YXBwSW5zaWdodHMudHJhY2tQYWdlVmlldyh7IHVyaTogbG9jYXRpb24ucGF0aG5hbWUgfSlcblx0XHR9XG5cdH1cblx0aGlzdG9yeS5saXN0ZW4obG9jYXRpb25MaXN0ZW5lcilcblxuXHQvLyBTZW50cnlcblx0aWYgKGFwcENvbmZpZy5TRU5UUllfRFNOKSB7XG5cdFx0U2VudHJ5LmluaXQoe1xuXHRcdFx0ZHNuOiBhcHBDb25maWcuU0VOVFJZX0RTTixcblx0XHRcdHJlbGVhc2U6IGFwcENvbmZpZy5WRVJTSU9OLFxuXHRcdFx0ZW52aXJvbm1lbnQ6IGFwcENvbmZpZy5USUVSLFxuXHRcdFx0ZGVidWc6IGFwcENvbmZpZy5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nLFxuXHRcdFx0Ly8gbGltaXQgZGVwdGggb2YgZGF0YSBhdHRhY2hlZCB0byBicmVhZGNydW1icyBhbmQgY29udGV4dHNcblx0XHRcdG5vcm1hbGl6ZURlcHRoOiAxNSxcblx0XHRcdC8vIGluY3JlYXNlIGxlbmd0aCBvZiBlcnJvciBtZXNzYWdlcyBiZWZvcmUgdHJ1bmNhdGlvblxuXHRcdFx0bWF4VmFsdWVMZW5ndGg6IDQ1MCxcblx0XHRcdGJlZm9yZUJyZWFkY3J1bWIoYnJlYWRjcnVtYikge1xuXHRcdFx0XHQvLyBkbyBub3QgdHJhY2sgY29uc29sZSBsb2dzIHdoZW4gcnVubmluZyBpbiBkZXZlbG9wbWVudCBtb2RlIChsb2NhbGx5KVxuXHRcdFx0XHRyZXR1cm4gYnJlYWRjcnVtYi5jYXRlZ29yeSA9PT0gJ2NvbnNvbGUnICYmIGFwcENvbmZpZy5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nID8gbnVsbCA6IGJyZWFkY3J1bWJcblx0XHRcdH0sXG5cdFx0XHQvLyBlbmFibGUgcGVyZm9ybWFuY2UgdHJhY2luZyBhbmQgc2Vzc2lvbiByZXBsYXlzXG5cdFx0XHRpbnRlZ3JhdGlvbnM6IFtcblx0XHRcdFx0U2VudHJ5Lmh0dHBDbGllbnRJbnRlZ3JhdGlvbih7XG5cdFx0XHRcdFx0ZmFpbGVkUmVxdWVzdFRhcmdldHM6IFtdIC8vIGRpc2FibGUgYXV0b21hdGljIFwiZmV0Y2hcIiBlcnJvciB0cmFja2luZywgc2luY2Ugd2UgaGF2ZSBvdXIgb3duIGN1c3RvbSBlcnJvcnNcblx0XHRcdFx0fSksXG5cdFx0XHRcdFNlbnRyeS5yZWFjdFJvdXRlclY1QnJvd3NlclRyYWNpbmdJbnRlZ3JhdGlvbih7IGhpc3RvcnkgfSksXG5cdFx0XHRcdFNlbnRyeS5yZXBsYXlJbnRlZ3JhdGlvbigpXG5cdFx0XHRdLFxuXHRcdFx0Ly8gc2V0IHNhbXBsZSByYXRlcyBmb3IgcGVyZm9ybWFuY2UgdHJhY2luZyBhbmQgc2Vzc2lvbiByZXBsYXlzXG5cdFx0XHR0cmFjZXNTYW1wbGVSYXRlOiBhcHBDb25maWcuU0VOVFJZX1RSQUNFU19TQU1QTEVfUkFURSxcblx0XHRcdHJlcGxheXNTZXNzaW9uU2FtcGxlUmF0ZTogYXBwQ29uZmlnLlNFTlRSWV9SRVBMQVlTX1NFU1NJT05fU0FNUExFX1JBVEUsXG5cdFx0XHRyZXBsYXlzT25FcnJvclNhbXBsZVJhdGU6IGFwcENvbmZpZy5TRU5UUllfUkVQTEFZU19PTl9FUlJPUl9TQU1QTEVfUkFURVxuXHRcdH0pXG5cdH1cblxuXHQvLyBVbmhhbmRsZWQgRXJyb3JzXG5cdHdpbmRvdy5vbnVuaGFuZGxlZHJlamVjdGlvbiA9IChldnQ6IFByb21pc2VSZWplY3Rpb25FdmVudCkgPT4ge1xuXHRcdGNvbnN0IG1lc3NhZ2UgPSBldnQucmVhc29uPy5tZXNzYWdlXG5cdFx0aWYgKFxuXHRcdFx0bWVzc2FnZSAmJlxuXHRcdFx0dHlwZW9mIG1lc3NhZ2UgPT09ICdzdHJpbmcnICYmXG5cdFx0XHRbXG5cdFx0XHRcdCdGYWlsZWQgdG8gZmV0Y2ggZHluYW1pY2FsbHkgaW1wb3J0ZWQgbW9kdWxlJyxcblx0XHRcdFx0J2Vycm9yIGxvYWRpbmcgZHluYW1pY2FsbHkgaW1wb3J0ZWQgbW9kdWxlJyxcblx0XHRcdFx0J0ltcG9ydGluZyBhIG1vZHVsZSBzY3JpcHQgZmFpbGVkJ1xuXHRcdFx0XS5zb21lKHMgPT4gbWVzc2FnZS5pbmNsdWRlcyhzKSlcblx0XHQpIHtcblx0XHRcdGlmICghd2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcblx0XHRcdFx0d2luZG93LmFsZXJ0KFxuXHRcdFx0XHRcdGBZb3VyIG5ldHdvcmsgY29ubmVjdGlvbiBhcHBlYXJzIHRvIGJlIGhhdmluZyBpc3N1ZXMuIFBsZWFzZSBjaGVjayB5b3VyIGNvbm5lY3Rpb24gYW5kIHJlZnJlc2ggeW91ciBicm93c2VyLmBcblx0XHRcdFx0KVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2luZG93LmFsZXJ0KFxuXHRcdFx0XHRcdGBBIG5ldyB2ZXJzaW9uIG9mICR7YXBwQ29uZmlnLkFQUF9OQU1FfSBpcyBhdmFpbGFibGUuIFlvdXIgYnJvd3NlciB3aWxsIG5vdyByZWZyZXNoLiBJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhZ2FpbiwgcGxlYXNlIGNsZWFyIHlvdXIgYnJvd3NlciBjYWNoZSBhbmQgdHJ5IGFnYWluLmBcblx0XHRcdFx0KVxuXHRcdFx0XHRkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihldnQucmVhc29uKVxuXHRcdH1cblx0fVxuXG5cdC8vIFJlZHV4IFN0b3JlIGFuZCBQZXJzaXN0b3Jcblx0Y29uc3QgeyBzdG9yZSwgcGVyc2lzdG9yIH0gPSBjb25maWd1cmVTdG9yZTxUUmVkdXhTdGF0ZT4oaGlzdG9yeSlcblx0Y29uc3QgcmVzcG9uc2U6IFN0YXJ0dXBSZXNwb25zZTxUUmVkdXhTdGF0ZT4gPSB7IGhpc3RvcnksIHN0b3JlLCBwZXJzaXN0b3IgfVxuXHRyZXR1cm4gcmVzcG9uc2Vcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLHVCQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxRQUFBLEdBQUFDLHNCQUFBLENBQUFMLE9BQUE7QUFFQSxJQUFBTSxjQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFGLHNCQUFBLENBQUFMLE9BQUE7QUFFQSxJQUFBUSxPQUFBLEdBQUFSLE9BQUE7QUFDQSxJQUFBUyxJQUFBLEdBQUFULE9BQUE7QUFBMkMsU0FBQUUsd0JBQUFRLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFWLHVCQUFBLFlBQUFBLENBQUFRLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFN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
@@ -3,45 +3,57 @@
3
3
  */
4
4
  export interface SimpleLocation {
5
5
  /**
6
- * Returns the Location object's URL's fragment (includes leading "#" if non-empty).
7
- * Can be set, to navigate to the same URL with a changed fragment (ignores leading "#").
6
+ * The **`hash`** property of the Location interface is a string containing a `'#'` followed by the fragment identifier of the location URL.
7
+ *
8
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hash)
8
9
  */
9
10
  hash: string;
10
11
  /**
11
- * Returns the Location object's URL's host and port (if different from the default
12
- * port for the scheme).
13
- * Can be set, to navigate to the same URL with a changed host and port.
12
+ * The **`host`** property of the Location interface is a string containing the host, which is the Location.hostname, and then, if the port of the URL is nonempty, a `':'`, followed by the Location.port of the URL.
13
+ *
14
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/host)
14
15
  */
15
16
  host: string;
16
17
  /**
17
- * Returns the Location object's URL's host.
18
- * Can be set, to navigate to the same URL with a changed host.
18
+ * The **`hostname`** property of the Location interface is a string containing either the domain name or IP address of the location URL.
19
+ *
20
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/hostname)
19
21
  */
20
22
  hostname: string;
21
23
  /**
22
- * Returns the Location object's URL.
23
- * Can be set, to navigate to the given URL.
24
+ * The **`href`** property of the Location interface is a stringifier that returns a string containing the whole URL, and allows the href to be updated.
25
+ *
26
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/href)
24
27
  */
25
28
  href: string;
26
29
  /**
27
- * Returns the Location object's URL's path.
28
- * Can be set, to navigate to the same URL with a changed path.
30
+ * The **`origin`** read-only property of the Location interface returns a string containing the Unicode serialization of the origin of the location's URL.
31
+ *
32
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/origin)
33
+ */
34
+ readonly origin: string;
35
+ /**
36
+ * The **`pathname`** property of the Location interface is a string containing the path of the URL for the location.
37
+ *
38
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/pathname)
29
39
  */
30
40
  pathname: string;
31
41
  /**
32
- * Returns the Location object's URL's port.
33
- * Can be set, to navigate to the same URL with a changed port.
42
+ * The **`port`** property of the Location interface is a string containing the port number of the location's URL.
43
+ *
44
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/port)
34
45
  */
35
46
  port: string;
36
47
  /**
37
- * Returns the Location object's URL's scheme.
38
- * Can be set, to navigate to the same URL with a changed scheme.
48
+ * The **`protocol`** property of the Location interface is a string containing the protocol or scheme of the location's URL, including the final `':'`.
49
+ *
50
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/protocol)
39
51
  */
40
52
  protocol: string;
41
53
  /**
42
- * Returns the Location object's URL's query (includes leading "?" if non-empty).
43
- * Can be set, to navigate to the same URL with a changed query (ignores leading "?").
54
+ * The **`search`** property of the Location interface is a search string, also called a _query string_, that is a string containing a `'?'` followed by the parameters of the location's URL.
55
+ *
56
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Location/search)
44
57
  */
45
58
  search: string;
46
- origin: string;
47
59
  }
@@ -3,4 +3,4 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1NpbXBsZUxvY2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW1wbGUgaW50ZXJmYWNlIGZvciBhIGRvbSBgTG9jYXRpb25gLCB0aGF0IGNhbiBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZUxvY2F0aW9uIHtcblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIExvY2F0aW9uIG9iamVjdCdzIFVSTCdzIGZyYWdtZW50IChpbmNsdWRlcyBsZWFkaW5nIFwiI1wiIGlmIG5vbi1lbXB0eSkuXG5cdCAqIENhbiBiZSBzZXQsIHRvIG5hdmlnYXRlIHRvIHRoZSBzYW1lIFVSTCB3aXRoIGEgY2hhbmdlZCBmcmFnbWVudCAoaWdub3JlcyBsZWFkaW5nIFwiI1wiKS5cblx0ICovXG5cdGhhc2g6IHN0cmluZ1xuXHQvKipcblx0ICogUmV0dXJucyB0aGUgTG9jYXRpb24gb2JqZWN0J3MgVVJMJ3MgaG9zdCBhbmQgcG9ydCAoaWYgZGlmZmVyZW50IGZyb20gdGhlIGRlZmF1bHRcblx0ICogcG9ydCBmb3IgdGhlIHNjaGVtZSkuXG5cdCAqIENhbiBiZSBzZXQsIHRvIG5hdmlnYXRlIHRvIHRoZSBzYW1lIFVSTCB3aXRoIGEgY2hhbmdlZCBob3N0IGFuZCBwb3J0LlxuXHQgKi9cblx0aG9zdDogc3RyaW5nXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBMb2NhdGlvbiBvYmplY3QncyBVUkwncyBob3N0LlxuXHQgKiBDYW4gYmUgc2V0LCB0byBuYXZpZ2F0ZSB0byB0aGUgc2FtZSBVUkwgd2l0aCBhIGNoYW5nZWQgaG9zdC5cblx0ICovXG5cdGhvc3RuYW1lOiBzdHJpbmdcblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIExvY2F0aW9uIG9iamVjdCdzIFVSTC5cblx0ICogQ2FuIGJlIHNldCwgdG8gbmF2aWdhdGUgdG8gdGhlIGdpdmVuIFVSTC5cblx0ICovXG5cdGhyZWY6IHN0cmluZ1xuXHQvKipcblx0ICogUmV0dXJucyB0aGUgTG9jYXRpb24gb2JqZWN0J3MgVVJMJ3MgcGF0aC5cblx0ICogQ2FuIGJlIHNldCwgdG8gbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMIHdpdGggYSBjaGFuZ2VkIHBhdGguXG5cdCAqL1xuXHRwYXRobmFtZTogc3RyaW5nXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBMb2NhdGlvbiBvYmplY3QncyBVUkwncyBwb3J0LlxuXHQgKiBDYW4gYmUgc2V0LCB0byBuYXZpZ2F0ZSB0byB0aGUgc2FtZSBVUkwgd2l0aCBhIGNoYW5nZWQgcG9ydC5cblx0ICovXG5cdHBvcnQ6IHN0cmluZ1xuXHQvKipcblx0ICogUmV0dXJucyB0aGUgTG9jYXRpb24gb2JqZWN0J3MgVVJMJ3Mgc2NoZW1lLlxuXHQgKiBDYW4gYmUgc2V0LCB0byBuYXZpZ2F0ZSB0byB0aGUgc2FtZSBVUkwgd2l0aCBhIGNoYW5nZWQgc2NoZW1lLlxuXHQgKi9cblx0cHJvdG9jb2w6IHN0cmluZ1xuXHQvKipcblx0ICogUmV0dXJucyB0aGUgTG9jYXRpb24gb2JqZWN0J3MgVVJMJ3MgcXVlcnkgKGluY2x1ZGVzIGxlYWRpbmcgXCI/XCIgaWYgbm9uLWVtcHR5KS5cblx0ICogQ2FuIGJlIHNldCwgdG8gbmF2aWdhdGUgdG8gdGhlIHNhbWUgVVJMIHdpdGggYSBjaGFuZ2VkIHF1ZXJ5IChpZ25vcmVzIGxlYWRpbmcgXCI/XCIpLlxuXHQgKi9cblx0c2VhcmNoOiBzdHJpbmdcblxuXHRvcmlnaW46IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
6
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1NpbXBsZUxvY2F0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBzaW1wbGUgaW50ZXJmYWNlIGZvciBhIGRvbSBgTG9jYXRpb25gLCB0aGF0IGNhbiBiZSB1c2VkIGZvciB0ZXN0aW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZUxvY2F0aW9uIHtcblx0LyoqXG5cdCAqIFRoZSAqKmBoYXNoYCoqIHByb3BlcnR5IG9mIHRoZSBMb2NhdGlvbiBpbnRlcmZhY2UgaXMgYSBzdHJpbmcgY29udGFpbmluZyBhIGAnIydgIGZvbGxvd2VkIGJ5IHRoZSBmcmFnbWVudCBpZGVudGlmaWVyIG9mIHRoZSBsb2NhdGlvbiBVUkwuXG5cdCAqXG5cdCAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTG9jYXRpb24vaGFzaClcblx0ICovXG5cdGhhc2g6IHN0cmluZ1xuXHQvKipcblx0ICogVGhlICoqYGhvc3RgKiogcHJvcGVydHkgb2YgdGhlIExvY2F0aW9uIGludGVyZmFjZSBpcyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBob3N0LCB3aGljaCBpcyB0aGUgTG9jYXRpb24uaG9zdG5hbWUsIGFuZCB0aGVuLCBpZiB0aGUgcG9ydCBvZiB0aGUgVVJMIGlzIG5vbmVtcHR5LCBhIGAnOidgLCBmb2xsb3dlZCBieSB0aGUgTG9jYXRpb24ucG9ydCBvZiB0aGUgVVJMLlxuXHQgKlxuXHQgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0xvY2F0aW9uL2hvc3QpXG5cdCAqL1xuXHRob3N0OiBzdHJpbmdcblx0LyoqXG5cdCAqIFRoZSAqKmBob3N0bmFtZWAqKiBwcm9wZXJ0eSBvZiB0aGUgTG9jYXRpb24gaW50ZXJmYWNlIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgZWl0aGVyIHRoZSBkb21haW4gbmFtZSBvciBJUCBhZGRyZXNzIG9mIHRoZSBsb2NhdGlvbiBVUkwuXG5cdCAqXG5cdCAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTG9jYXRpb24vaG9zdG5hbWUpXG5cdCAqL1xuXHRob3N0bmFtZTogc3RyaW5nXG5cdC8qKlxuXHQgKiBUaGUgKipgaHJlZmAqKiBwcm9wZXJ0eSBvZiB0aGUgTG9jYXRpb24gaW50ZXJmYWNlIGlzIGEgc3RyaW5naWZpZXIgdGhhdCByZXR1cm5zIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHdob2xlIFVSTCwgYW5kIGFsbG93cyB0aGUgaHJlZiB0byBiZSB1cGRhdGVkLlxuXHQgKlxuXHQgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0xvY2F0aW9uL2hyZWYpXG5cdCAqL1xuXHRocmVmOiBzdHJpbmdcblx0LyoqXG5cdCAqIFRoZSAqKmBvcmlnaW5gKiogcmVhZC1vbmx5IHByb3BlcnR5IG9mIHRoZSBMb2NhdGlvbiBpbnRlcmZhY2UgcmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBVbmljb2RlIHNlcmlhbGl6YXRpb24gb2YgdGhlIG9yaWdpbiBvZiB0aGUgbG9jYXRpb24ncyBVUkwuXG5cdCAqXG5cdCAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTG9jYXRpb24vb3JpZ2luKVxuXHQgKi9cblx0cmVhZG9ubHkgb3JpZ2luOiBzdHJpbmdcblx0LyoqXG5cdCAqIFRoZSAqKmBwYXRobmFtZWAqKiBwcm9wZXJ0eSBvZiB0aGUgTG9jYXRpb24gaW50ZXJmYWNlIGlzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIHBhdGggb2YgdGhlIFVSTCBmb3IgdGhlIGxvY2F0aW9uLlxuXHQgKlxuXHQgKiBbTUROIFJlZmVyZW5jZV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZG9jcy9XZWIvQVBJL0xvY2F0aW9uL3BhdGhuYW1lKVxuXHQgKi9cblx0cGF0aG5hbWU6IHN0cmluZ1xuXHQvKipcblx0ICogVGhlICoqYHBvcnRgKiogcHJvcGVydHkgb2YgdGhlIExvY2F0aW9uIGludGVyZmFjZSBpcyBhIHN0cmluZyBjb250YWluaW5nIHRoZSBwb3J0IG51bWJlciBvZiB0aGUgbG9jYXRpb24ncyBVUkwuXG5cdCAqXG5cdCAqIFtNRE4gUmVmZXJlbmNlXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9kb2NzL1dlYi9BUEkvTG9jYXRpb24vcG9ydClcblx0ICovXG5cdHBvcnQ6IHN0cmluZ1xuXHQvKipcblx0ICogVGhlICoqYHByb3RvY29sYCoqIHByb3BlcnR5IG9mIHRoZSBMb2NhdGlvbiBpbnRlcmZhY2UgaXMgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgcHJvdG9jb2wgb3Igc2NoZW1lIG9mIHRoZSBsb2NhdGlvbidzIFVSTCwgaW5jbHVkaW5nIHRoZSBmaW5hbCBgJzonYC5cblx0ICpcblx0ICogW01ETiBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Mb2NhdGlvbi9wcm90b2NvbClcblx0ICovXG5cdHByb3RvY29sOiBzdHJpbmdcblx0LyoqXG5cdCAqIFRoZSAqKmBzZWFyY2hgKiogcHJvcGVydHkgb2YgdGhlIExvY2F0aW9uIGludGVyZmFjZSBpcyBhIHNlYXJjaCBzdHJpbmcsIGFsc28gY2FsbGVkIGEgX3F1ZXJ5IHN0cmluZ18sIHRoYXQgaXMgYSBzdHJpbmcgY29udGFpbmluZyBhIGAnPydgIGZvbGxvd2VkIGJ5IHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBsb2NhdGlvbidzIFVSTC5cblx0ICpcblx0ICogW01ETiBSZWZlcmVuY2VdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0FQSS9Mb2NhdGlvbi9zZWFyY2gpXG5cdCAqL1xuXHRzZWFyY2g6IHN0cmluZ1xufVxuIl0sIm1hcHBpbmdzIjoiIiwiaWdub3JlTGlzdCI6W119
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "studiokit-scaffolding-js",
3
- "version": "7.2.0-next.2.7",
3
+ "version": "7.2.0-next.2.8",
4
4
  "description": "Common scaffolding for Studio apps at Purdue",
5
5
  "repository": "https://gitlab.com/purdue-informatics/studiokit/studiokit-scaffolding-js",
6
6
  "license": "MIT",