@kando-env/kando-ui 1.2.467-alpha.1 → 1.2.467-alpha.12

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.
@@ -100,10 +100,8 @@ var SamplingProperties = function SamplingProperties() {
100
100
  name: samplingProperties.canceled_by_name,
101
101
  // ||
102
102
  // userInfo.first_name + ' ' + userInfo.last_name,
103
- id: samplingProperties.sampling.canceled_by_id
104
- // || userInfo.id,
103
+ id: samplingProperties.sampling.is_canceled ? samplingProperties.sampling.canceled_by_id : userInfo.id
105
104
  };
106
-
107
105
  formikValues.kando_rep = samplingProperties.sampling.kando_rep;
108
106
  formik.setValues(formikValues);
109
107
  };
@@ -179,11 +177,11 @@ var SamplingProperties = function SamplingProperties() {
179
177
  }
180
178
  };
181
179
  var handleSubmit = function handleSubmit(values) {
182
- var _samplingProperties$s;
183
180
  setSavingMsg(_i18n.default.t('buttons.saving'));
184
181
  values.pictures_attributes = photos;
185
- if (values.canceled_by_id && isCancelledLayout(samplingProperties)) values.canceled_by_id = samplingProperties === null || samplingProperties === void 0 ? void 0 : (_samplingProperties$s = samplingProperties.sampling) === null || _samplingProperties$s === void 0 ? void 0 : _samplingProperties$s.canceled_by_id;
186
- // || userInfo.id;
182
+ // debugger;
183
+ // if (values.canceled_by_id?.id > 0 && isCancelledLayout(samplingProperties))
184
+ values.canceled_by_id = values.canceled_by_id.id;
187
185
  var time_zone = (samplingPlan === null || samplingPlan === void 0 ? void 0 : samplingPlan.time_zone) || 'UTC';
188
186
  values.collection_time = (0, _samplingPropertiesUtils.collectionTimeInTimeZone)(values.collection_time, time_zone);
189
187
  var saveFormData = formDataBuilder(values);
@@ -211,7 +209,7 @@ var SamplingProperties = function SamplingProperties() {
211
209
  };
212
210
  var updateOrCreate = /*#__PURE__*/function () {
213
211
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(formData) {
214
- var _samplingProperties$s2;
212
+ var _samplingProperties$s;
215
213
  var updateOrCreateSuccess, samplingID;
216
214
  return _regenerator.default.wrap(function _callee2$(_context2) {
217
215
  while (1) {
@@ -223,7 +221,7 @@ var SamplingProperties = function SamplingProperties() {
223
221
  setOriginalSaveMessageWithTimeout();
224
222
  handleClose();
225
223
  };
226
- samplingID = samplingProperties === null || samplingProperties === void 0 ? void 0 : (_samplingProperties$s2 = samplingProperties.sampling) === null || _samplingProperties$s2 === void 0 ? void 0 : _samplingProperties$s2.id;
224
+ samplingID = samplingProperties === null || samplingProperties === void 0 ? void 0 : (_samplingProperties$s = samplingProperties.sampling) === null || _samplingProperties$s === void 0 ? void 0 : _samplingProperties$s.id;
227
225
  if (!(samplingID === null)) {
228
226
  _context2.next = 16;
229
227
  break;
@@ -358,4 +356,4 @@ var SamplingProperties = function SamplingProperties() {
358
356
  }))));
359
357
  };
360
358
  exports.SamplingProperties = SamplingProperties;
361
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RGV2aWNlRGV0ZWN0IiwiX2Zvcm1payIsIl9yZWFjdFJvdXRlckRvbSIsIl9yZWFjdFJlZHV4IiwiX0xheW91dCIsIl9pMThuIiwiX3VzZVF1ZXJ5VVJMIiwiX1NwaW5uZXIiLCJfdXJscyIsIl9zdHlsZXMiLCJfc2FtcGxpbmdzUGFnZVV0aWxzIiwiX1NhbXBsaW5nUHJvcGVydGllc0Zvcm0iLCJfU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsIl9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIiwiX3NhbXBsaW5nUHJvcGVydGllc1V0aWxzIiwiX1NhbXBsZXJJblByb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImlzUHJvcGVydGllc1BhZ2UiLCJwYWdlVHlwZSIsIlNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiRGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb2xsZWN0aW9uVGltZSIsInNldENvbGxlY3Rpb25UaW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwaG90b3MiLCJzZXRQaG90b3MiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBob3Rvc1RvRGVsZXRlIiwic2V0UGhvdG9zVG9EZWxldGUiLCJfdXNlU3RhdGU3IiwiaTE4biIsInQiLCJfdXNlU3RhdGU4Iiwic2F2aW5nTXNnIiwic2V0U2F2aW5nTXNnIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2FtcGxpbmdVcGRhdGVkIiwic2V0U2FtcGxpbmdVcGRhdGVkIiwiX3VzZVN0YXRlMTEiLCJ1bmRlZmluZWQiLCJfdXNlU3RhdGUxMiIsInNhbXBsaW5nUGxhbiIsInNldFNhbXBsaW5nUGxhbiIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwibG9jYXRpb24iLCJ1c2VMb2NhdGlvbiIsInF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJ1c2VySW5mbyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwZXJtaXNzaW9ucyIsInVzZXJfaW5mbyIsImRhdGVGb3JtYXQiLCJkYXRlX3RpbWVfZm9ybWF0IiwidXNlUmVmIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNhbXBsaW5nUHJvcGVydGllcyIsInNldFNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VQYXJhbXMiLCJ1c2VQYXJhbXMiLCJzYW1wbGVJZCIsIndhdGVyQXV0aG9yaXR5SWQiLCJnbG9iYWxfZGF0YSIsImxvY2FsZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJuYXZDb250ZXh0IiwiaW5pdEZvcm1pa1ZhbHVlcyIsImlzQ2FuY2VsZWQiLCJ0aW1lWm9uZSIsInBhZ2VDb2xsZWN0aW9uVGltZSIsImlzQ29sbGVjdExheW91dCIsImN1cnJlbnQiLCJjb2xsZWN0aW9uVGltZUZvcm1hdCIsInNhbXBsaW5nIiwiY29sbGVjdGlvbl90aW1lIiwic2FtIiwiZm9ybWlrVmFsdWVzIiwibGFiX2lkIiwicHVtcF9zYW1wbGluZ192b2x1bWUiLCJwdW1wX2JhdHRlcnlfbGV2ZWwiLCJkZXNjcmlwdGlvbiIsImthbmRvX3JlcCIsInNhbXBsaW5nX3BsYW5faWQiLCJjYW5jZWxsYXRpb25fcmVhc29uIiwiaXNfY2FuY2VsZWQiLCJpc0NhbmNlbGxlZExheW91dCIsImNhbmNlbGVkX2J5X2lkIiwibmFtZSIsImNhbmNlbGVkX2J5X25hbWUiLCJpZCIsImZvcm1payIsInNldFZhbHVlcyIsInBhZ2VUeXBlMmlzQ2FuY2VsbGVkIiwiY2FuY2VsIiwiY29sbGVjdCIsInJldmVydF9jYW5jZWwiLCJmZXRjaFNhbXBsaW5nUHJvcGVydGllcyIsInVzZUNhbGxiYWNrIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJzYW1wbGluZ0lkIiwib3AiLCJyZXNwb25zZSIsIl9hcmdzIiwiYXJndW1lbnRzIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsImF4aW9zIiwidXJscyIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJzZW50IiwiZGF0YSIsInNhbXBsaW5nX3Byb3BlcnRpZXMiLCJkZXRlY3RQYWdlVHlwZSIsImRldGVybWluZUNvbGxlY3Rpb25UaW1lIiwic2FtcGxpbmdfcGxhbiIsInRpbWVfem9uZSIsInN0b3AiLCJ1c2VFZmZlY3QiLCJnZXRVcmxRdWVyeU9wIiwidmFsaWRhdGlvblNjaGVtYSIsInByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hIiwiY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYSIsInVzZUZvcm1payIsImVuYWJsZVJlaW5pdGlhbGl6ZSIsImluaXRpYWxWYWx1ZXMiLCJzYW1wbGluZ1Byb3BlcnR5IiwidmFsaWRhdGVPbkNoYW5nZSIsInZhbGlkYXRlT25CbHVyIiwib25TdWJtaXQiLCJ2YWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDbG9zZSIsImdvQmFjayIsInB1c2giLCJzYW1wbGluZ3NQYWdlIiwic2FtcGxpbmdzTGlzdFJvdXRlIiwiX3NhbXBsaW5nUHJvcGVydGllcyRzIiwicGljdHVyZXNfYXR0cmlidXRlcyIsImNvbGxlY3Rpb25UaW1lSW5UaW1lWm9uZSIsInNhdmVGb3JtRGF0YSIsImZvcm1EYXRhQnVpbGRlciIsInVwZGF0ZU9yQ3JlYXRlIiwic2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0Iiwic2V0VGltZW91dCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJ2YWx1ZSIsImFwcGVuZCIsImNvbmNhdCIsInVuaXF1ZVBob3Rvc1RvRGVsZXRlIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIlNldCIsImZvckVhY2giLCJpbmRleCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfcmVmMiIsIl9jYWxsZWUyIiwiX3NhbXBsaW5nUHJvcGVydGllcyRzMiIsInVwZGF0ZU9yQ3JlYXRlU3VjY2VzcyIsInNhbXBsaW5nSUQiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJtc2ciLCJwb3N0IiwiY3JlYXRlU2FtcGxpbmciLCJ0MCIsInB1dCIsInVwZGF0ZVNhbXBsaW5nIiwidDEiLCJfeCIsImFwcGx5IiwiaXNTYW1wbGluZ0NhbmNlbGxlZCIsImVkaXRQYWdlVmFsdWUiLCJDT0xMRUNUX1NBTVBMSU5HX09QIiwiQ0FOQ0VMX1NBTVBMSU5HX09QIiwiUkVWRVJUX0NBTkNFTExBVElPTiIsInNlcnZlckNvbGxlY3Rpb25UaW1lIiwiY3VycmVudFRpbWUiLCJzZXJ2ZXJUaW1lIiwiaW5jbHVkZXMiLCJjcmVhdGVFbGVtZW50IiwiU3Bpbm5lciIsImlzX3B1bXBfaW5fcHJvZ3Jlc3MiLCJTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZSIsImlzTW9iaWxlIiwiU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsImlzRGF0ZVBpY2tlckRpc2FibGVkIiwiU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZE1vYmlsZSIsIlNhbXBsaW5nUHJvcGVydGllc0Zvcm0iLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhZ2VzL1NhbXBsaW5nc1BhZ2UvU2FtcGxpbmdQcm9wZXJ0aWVzL1NhbXBsaW5nUHJvcGVydGllcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFByb3BlcnRpZXMgYW5kIENhbmNlbGxpbmcgZm9ybXMuXG4gKiovXG5pbXBvcnQgUmVhY3QsIHsgRkMsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgRm9ybWlrQ29uZmlnIH0gZnJvbSAnZm9ybWlrL2Rpc3QvdHlwZXMnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdyZWFjdC1kZXZpY2UtZGV0ZWN0JztcbmltcG9ydCB7IHVzZUZvcm1payB9IGZyb20gJ2Zvcm1payc7XG5pbXBvcnQgeyB1c2VIaXN0b3J5LCB1c2VQYXJhbXMsIHVzZUxvY2F0aW9uIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQgeyB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcblxuaW1wb3J0IExheW91dCBmcm9tICdzcmMvdWkta2l0L0xheW91dC9MYXlvdXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICdzcmMvaG9va3MvdXNlUXVlcnlVUkwnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lcic7XG5pbXBvcnQgeyB1cmxzIH0gZnJvbSAnc3JjL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc1N0eWxlIH0gZnJvbSAnLi9zdHlsZXMnO1xuaW1wb3J0IHtcbiAgQ0FOQ0VMX1NBTVBMSU5HX09QLFxuICBDT0xMRUNUX1NBTVBMSU5HX09QLFxuICBSRVZFUlRfQ0FOQ0VMTEFUSU9OLFxuICBTYW1wbGluZ0ZldGNoRGF0YSxcbn0gZnJvbSAnLi4vc2FtcGxpbmdzUGFnZVV0aWxzJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0Zvcm0gfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0Zvcm0nO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlJztcbmltcG9ydCB7XG4gIEZvcm1UeXBlLFxuICBUU2FtcGxpbmdQcm9wZXJ0aWVzLFxuICBjYW5jZWxsYXRpb25WYWxpZGF0aW9uU2NoZW1hLFxuICBpc0NvbGxlY3RMYXlvdXQsXG4gIHByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hLFxuICBzYW1wbGluZ1Byb3BlcnR5LFxuICBjb2xsZWN0aW9uVGltZUZvcm1hdCxcbiAgY29sbGVjdGlvblRpbWVJblRpbWVab25lLFxufSBmcm9tICcuL3NhbXBsaW5nUHJvcGVydGllc1V0aWxzJztcbmltcG9ydCBTYW1wbGVySW5Qcm9jZXNzIGZyb20gJy4vU2FtcGxlckluUHJvY2Vzcyc7XG5cbmNvbnN0IGlzUHJvcGVydGllc1BhZ2UgPSAocGFnZVR5cGUpID0+IHBhZ2VUeXBlID09PSAnZWRpdCc7XG5cbmV4cG9ydCBjb25zdCBTYW1wbGluZ1Byb3BlcnRpZXM6IEZDID0gKCkgPT4ge1xuICBjb25zdCBbY29sbGVjdGlvblRpbWUsIHNldENvbGxlY3Rpb25UaW1lXSA9IHVzZVN0YXRlPHN0cmluZyB8IERhdGUgfCBudWxsPihcbiAgICBuZXcgRGF0ZSgpLFxuICApO1xuICBjb25zdCBbcGhvdG9zLCBzZXRQaG90b3NdID0gdXNlU3RhdGU8c3RyaW5nIHwgQmxvYiB8IGFueT4oW10pO1xuICBjb25zdCBbcGhvdG9zVG9EZWxldGUsIHNldFBob3Rvc1RvRGVsZXRlXSA9IHVzZVN0YXRlPG51bWJlcltdPihbXSk7XG4gIGNvbnN0IFtzYXZpbmdNc2csIHNldFNhdmluZ01zZ10gPSB1c2VTdGF0ZTxzdHJpbmc+KGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICBjb25zdCBbc2FtcGxpbmdVcGRhdGVkLCBzZXRTYW1wbGluZ1VwZGF0ZWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuICBjb25zdCBbc2FtcGxpbmdQbGFuLCBzZXRTYW1wbGluZ1BsYW5dID0gdXNlU3RhdGU8XG4gICAgU2FtcGxpbmdGZXRjaERhdGEgfCB1bmRlZmluZWRcbiAgPih1bmRlZmluZWQpO1xuICBjb25zdCBoaXN0b3J5ID0gdXNlSGlzdG9yeSgpO1xuICBjb25zdCBsb2NhdGlvbiA9IHVzZUxvY2F0aW9uKCk7XG4gIGNvbnN0IHF1ZXJ5ID0gdXNlUXVlcnlVUkwoKTtcbiAgY29uc3QgdXNlckluZm8gPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlLnBlcm1pc3Npb25zLnVzZXJfaW5mbyk7XG4gIGNvbnN0IGRhdGVGb3JtYXQgPVxuICAgIHVzZXJJbmZvLmRhdGVfdGltZV9mb3JtYXQgPT09ICd1cydcbiAgICAgID8gJ01NTSBkLCB5eXl5IGhoOm1tIGFhJ1xuICAgICAgOiAnZC9NTS95eXl5IEhIOm1tJztcbiAgY29uc3QgcGFnZVR5cGUgPSB1c2VSZWY8c3RyaW5nPignJyk7XG4gIGNvbnN0IFtzYW1wbGluZ1Byb3BlcnRpZXMsIHNldFNhbXBsaW5nUHJvcGVydGllc10gPVxuICAgIHVzZVN0YXRlPFRTYW1wbGluZ1Byb3BlcnRpZXM+KCk7XG4gIGNvbnN0IHsgc2FtcGxlSWQgfSA9IHVzZVBhcmFtcygpO1xuICBjb25zdCB3YXRlckF1dGhvcml0eUlkID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5nbG9iYWxfZGF0YS53YXRlckF1dGhvcml0eUlkLFxuICApO1xuICBjb25zdCBsb2NhbGUgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLm5hdl9jb250ZXh0X2RhdGEubmF2Q29udGV4dC5sb2NhbGUsXG4gICk7XG5cbiAgY29uc3QgaW5pdEZvcm1pa1ZhbHVlcyA9IChcbiAgICBzYW1wbGluZ1Byb3BlcnRpZXMsXG4gICAgaXNDYW5jZWxlZCxcbiAgICB0aW1lWm9uZSxcbiAgICB1c2VySW5mbyxcbiAgKSA9PiB7XG4gICAgY29uc3QgcGFnZUNvbGxlY3Rpb25UaW1lID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgICA/IGNvbGxlY3Rpb25UaW1lXG4gICAgICA6IGNvbGxlY3Rpb25UaW1lRm9ybWF0KFxuICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jb2xsZWN0aW9uX3RpbWUsXG4gICAgICAgICAgdGltZVpvbmUsXG4gICAgICAgICk7XG4gICAgY29uc3Qgc2FtID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nO1xuICAgIGxldCBmb3JtaWtWYWx1ZXM6IEZvcm1UeXBlID0ge1xuICAgICAgbGFiX2lkOiBzYW0ubGFiX2lkLFxuICAgICAgY29sbGVjdGlvbl90aW1lOiBwYWdlQ29sbGVjdGlvblRpbWUsXG4gICAgICBwdW1wX3NhbXBsaW5nX3ZvbHVtZTogc2FtLnB1bXBfc2FtcGxpbmdfdm9sdW1lLFxuICAgICAgcHVtcF9iYXR0ZXJ5X2xldmVsOiBzYW0ucHVtcF9iYXR0ZXJ5X2xldmVsLFxuICAgICAgZGVzY3JpcHRpb246IHNhbS5kZXNjcmlwdGlvbixcbiAgICAgIGthbmRvX3JlcDogc2FtLmthbmRvX3JlcCxcbiAgICAgIHNhbXBsaW5nX3BsYW5faWQ6IHNhbS5zYW1wbGluZ19wbGFuX2lkLFxuICAgICAgY2FuY2VsbGF0aW9uX3JlYXNvbjogc2FtLmNhbmNlbGxhdGlvbl9yZWFzb24gfHwgJycsXG4gICAgICBpc19jYW5jZWxlZDogaXNDYW5jZWxlZCxcbiAgICB9O1xuXG4gICAgaWYgKGlzQ2FuY2VsbGVkTGF5b3V0KHNhbXBsaW5nUHJvcGVydGllcykpXG4gICAgICBmb3JtaWtWYWx1ZXMuY2FuY2VsZWRfYnlfaWQgPSB7XG4gICAgICAgIG5hbWU6IHNhbXBsaW5nUHJvcGVydGllcy5jYW5jZWxlZF9ieV9uYW1lLFxuICAgICAgICAvLyAgfHxcbiAgICAgICAgLy8gdXNlckluZm8uZmlyc3RfbmFtZSArICcgJyArIHVzZXJJbmZvLmxhc3RfbmFtZSxcbiAgICAgICAgaWQ6IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jYW5jZWxlZF9ieV9pZCxcbiAgICAgICAgLy8gIHx8IHVzZXJJbmZvLmlkLFxuICAgICAgfTtcbiAgICBmb3JtaWtWYWx1ZXMua2FuZG9fcmVwID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmthbmRvX3JlcDtcbiAgICBmb3JtaWsuc2V0VmFsdWVzKGZvcm1pa1ZhbHVlcyk7XG4gIH07XG5cbiAgY29uc3QgaXNDYW5jZWxsZWRMYXlvdXQgPSAoc2FtcGxpbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgcGFnZVR5cGUyaXNDYW5jZWxsZWQgPSB7XG4gICAgICBjYW5jZWw6IHRydWUsXG4gICAgICBjb2xsZWN0OiBmYWxzZSxcbiAgICAgIHJldmVydF9jYW5jZWw6IGZhbHNlLFxuICAgIH07XG4gICAgbGV0IGlzQ2FuY2VsZWQgPSBwYWdlVHlwZTJpc0NhbmNlbGxlZFtwYWdlVHlwZS5jdXJyZW50XTtcbiAgICBpZiAoaXNDYW5jZWxlZCA9PT0gbnVsbCkge1xuICAgICAgaXNDYW5jZWxlZCA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ2FuY2VsZWQ7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkLCBvcCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzYW1wbGluZyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCBzYW1wbGluZ1Byb3BlcnRpZXMgPSBzYW1wbGluZy5zYW1wbGluZ19wcm9wZXJ0aWVzO1xuICAgICAgcGFnZVR5cGUuY3VycmVudCA9IGRldGVjdFBhZ2VUeXBlKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuaXNfY2FuY2VsZWQsXG4gICAgICAgIG9wLFxuICAgICAgKTtcbiAgICAgIHNldENvbGxlY3Rpb25UaW1lKFxuICAgICAgICBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZShcbiAgICAgICAgICBjb2xsZWN0aW9uVGltZUZvcm1hdChcbiAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jb2xsZWN0aW9uX3RpbWUsXG4gICAgICAgICAgICBzYW1wbGluZy5zYW1wbGluZ19wbGFuLnRpbWVfem9uZSxcbiAgICAgICAgICApLFxuICAgICAgICAgIG9wLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGxldCBpc0NhbmNlbGVkID0gaXNDYW5jZWxsZWRMYXlvdXQoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICk7XG4gICAgICBpbml0Rm9ybWlrVmFsdWVzKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMsXG4gICAgICAgIGlzQ2FuY2VsZWQsXG4gICAgICAgIHNhbXBsaW5nLnNhbXBsaW5nX3BsYW4udGltZV96b25lLFxuICAgICAgICB1c2VySW5mbyxcbiAgICAgICk7XG4gICAgICBzZXRTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxpbmdQcm9wZXJ0aWVzKTtcbiAgICAgIHNldFNhbXBsaW5nUGxhbihzYW1wbGluZy5zYW1wbGluZ19wbGFuKTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQsIGdldFVybFF1ZXJ5T3AoKSk7XG4gIH0sIFtzYW1wbGluZ1VwZGF0ZWRdKTtcblxuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgPyBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYVxuICAgIDogY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYTtcbiAgY29uc3QgZm9ybWlrID0gdXNlRm9ybWlrPEZvcm1pa0NvbmZpZzxGb3JtVHlwZT4+KHtcbiAgICBlbmFibGVSZWluaXRpYWxpemU6IHRydWUsXG4gICAgaW5pdGlhbFZhbHVlczogc2FtcGxpbmdQcm9wZXJ0eSxcbiAgICB2YWxpZGF0aW9uU2NoZW1hOiB2YWxpZGF0aW9uU2NoZW1hLFxuICAgIHZhbGlkYXRlT25DaGFuZ2U6IGZhbHNlLFxuICAgIHZhbGlkYXRlT25CbHVyOiB0cnVlLFxuICAgIG9uU3VibWl0OiAodmFsdWVzKSA9PiB7XG4gICAgICBoYW5kbGVTdWJtaXQodmFsdWVzKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBpZiAobG9jYXRpb24ua2V5KSB7XG4gICAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIHVybHMoeyBsb2NhbGUsIHdhdGVyQXV0aG9yaXR5SWQgfSkuc2FtcGxpbmdzUGFnZS5zYW1wbGluZ3NMaXN0Um91dGUudXJsLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuc2F2aW5nJykpO1xuICAgIHZhbHVlcy5waWN0dXJlc19hdHRyaWJ1dGVzID0gcGhvdG9zO1xuICAgIGlmICh2YWx1ZXMuY2FuY2VsZWRfYnlfaWQgJiYgaXNDYW5jZWxsZWRMYXlvdXQoc2FtcGxpbmdQcm9wZXJ0aWVzKSlcbiAgICAgIHZhbHVlcy5jYW5jZWxlZF9ieV9pZCA9IHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmNhbmNlbGVkX2J5X2lkO1xuICAgIC8vIHx8IHVzZXJJbmZvLmlkO1xuICAgIGNvbnN0IHRpbWVfem9uZSA9IHNhbXBsaW5nUGxhbj8udGltZV96b25lIHx8ICdVVEMnO1xuICAgIHZhbHVlcy5jb2xsZWN0aW9uX3RpbWUgPSBjb2xsZWN0aW9uVGltZUluVGltZVpvbmUoXG4gICAgICB2YWx1ZXMuY29sbGVjdGlvbl90aW1lLFxuICAgICAgdGltZV96b25lLFxuICAgICk7XG4gICAgY29uc3Qgc2F2ZUZvcm1EYXRhID0gZm9ybURhdGFCdWlsZGVyKHZhbHVlcyk7XG4gICAgdXBkYXRlT3JDcmVhdGUoc2F2ZUZvcm1EYXRhKTtcbiAgfTtcblxuICBjb25zdCBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQgPSAoKSA9PiB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gICAgfSwgMzAwMCk7XG4gIH07XG5cbiAgY29uc3QgZm9ybURhdGFCdWlsZGVyID0gKHZhbHVlcykgPT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWVzKSB7XG4gICAgICBpZiAoa2V5ICE9PSAncGljdHVyZXNfYXR0cmlidXRlcycpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XSA9PT0gbnVsbCA/ICcnIDogdmFsdWVzW2tleV07XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChgc2FtcGxpbmdbJHtrZXl9XWAsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHVuaXF1ZVBob3Rvc1RvRGVsZXRlID0gWy4uLm5ldyBTZXQocGhvdG9zVG9EZWxldGUpXTtcbiAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5sZW5ndGggIT09IDAgJiZcbiAgICAgIHVuaXF1ZVBob3Rvc1RvRGVsZXRlLmZvckVhY2goKGlkLCBpbmRleCkgPT4ge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAgICAgYHNhbXBsaW5nW3BpY3R1cmVzX2F0dHJpYnV0ZXNdWyR7aW5kZXh9XVtpZF1gLFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGlkKSxcbiAgICAgICAgKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1bX2Rlc3Ryb3ldYCxcbiAgICAgICAgICAndHJ1ZScsXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gZm9ybURhdGE7XG4gIH07XG5cbiAgY29uc3QgdXBkYXRlT3JDcmVhdGUgPSBhc3luYyAoZm9ybURhdGEpID0+IHtcbiAgICBjb25zdCB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MgPSAobXNnKSA9PiB7XG4gICAgICBzZXRTYXZpbmdNc2coaTE4bi50KG1zZykpO1xuICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkKHRydWUpO1xuICAgICAgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0KCk7XG4gICAgICBoYW5kbGVDbG9zZSgpO1xuICAgIH07XG5cbiAgICBjb25zdCBzYW1wbGluZ0lEID0gc2FtcGxpbmdQcm9wZXJ0aWVzPy5zYW1wbGluZz8uaWQ7XG4gICAgaWYgKHNhbXBsaW5nSUQgPT09IG51bGwpIHtcbiAgICAgIC8vIGNyZWF0ZVxuICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICBgc2FtcGxpbmdbZGF0ZV1gLFxuICAgICAgICBmb3JtRGF0YS5nZXQoJ3NhbXBsaW5nW2NvbGxlY3Rpb25fdGltZV0nKSxcbiAgICAgICk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBheGlvcy5wb3N0KFxuICAgICAgICAgIHVybHMoe1xuICAgICAgICAgICAgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCxcbiAgICAgICAgICB9KS5zYW1wbGluZ1Byb3BlcnRpZXMuY3JlYXRlU2FtcGxpbmcudXJsLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICApO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MoJ2J1dHRvbnMuY3JlYXRlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLmVycm9yJykpO1xuICAgICAgICBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHBhZ2VUeXBlLmN1cnJlbnQgPT09ICdyZXZlcnRfY2FuY2VsJykge1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nW2NvbGxlY3Rpb25fdGltZV1gLCBjb2xsZWN0aW9uVGltZSk7XG4gICAgICB9XG4gICAgICAvLyB1cGRhdGVcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGF4aW9zLnB1dChcbiAgICAgICAgICB1cmxzKHsgc2FtcGxpbmdJZDogc2FtcGxpbmdJRCwgd2F0ZXJBdXRob3JpdHlJZDogd2F0ZXJBdXRob3JpdHlJZCB9KVxuICAgICAgICAgICAgLnNhbXBsaW5nUHJvcGVydGllcy51cGRhdGVTYW1wbGluZy51cmwsXG4gICAgICAgICAgZm9ybURhdGEsXG4gICAgICAgICk7XG4gICAgICAgIHVwZGF0ZU9yQ3JlYXRlU3VjY2VzcygnYnV0dG9ucy51cGRhdGVkJyk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuZXJyb3InKSk7XG4gICAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZXRlY3RQYWdlVHlwZSA9IChpc1NhbXBsaW5nQ2FuY2VsbGVkLCBvcCkgPT4ge1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBpc1NhbXBsaW5nQ2FuY2VsbGVkID8gJ2NhbmNlbCcgOiAnY29sbGVjdCc7XG4gICAgaWYgKG9wID09PSAnZWRpdCcpIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IENPTExFQ1RfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiAnY29sbGVjdCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ0FOQ0VMX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gJ2NhbmNlbCc7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gUkVWRVJUX0NBTkNFTExBVElPTikge1xuICAgICAgcmV0dXJuICdyZXZlcnRfY2FuY2VsJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGRldGVybWluZUNvbGxlY3Rpb25UaW1lID0gKHNlcnZlckNvbGxlY3Rpb25UaW1lLCBvcCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gbmV3IERhdGUoKTtcbiAgICBjb25zdCBzZXJ2ZXJUaW1lID0gc2VydmVyQ29sbGVjdGlvblRpbWVcbiAgICAgID8gbmV3IERhdGUoc2VydmVyQ29sbGVjdGlvblRpbWUpXG4gICAgICA6IGN1cnJlbnRUaW1lO1xuICAgIGNvbnN0IGVkaXRQYWdlVmFsdWUgPSBzZXJ2ZXJDb2xsZWN0aW9uVGltZSA/IHNlcnZlclRpbWUgOiBjdXJyZW50VGltZTtcbiAgICBpZiAob3AgPT09ICdlZGl0Jykge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfSBlbHNlIGlmIChvcCA9PT0gQ09MTEVDVF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuIGN1cnJlbnRUaW1lO1xuICAgIH0gZWxzZSBpZiAoW0NBTkNFTF9TQU1QTElOR19PUCwgUkVWRVJUX0NBTkNFTExBVElPTl0uaW5jbHVkZXMob3ApKSB7XG4gICAgICByZXR1cm4gc2VydmVyVGltZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGVkaXRQYWdlVmFsdWU7XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGdldFVybFF1ZXJ5T3AgPSAoKSA9PiB7XG4gICAgbGV0IG9wID0gcXVlcnkuZ2V0KCdvcCcpO1xuICAgIC8vIGlmIG5vdCBwcmVzZW50IHRoZW4gZGVmYXVsdCBvcCBpcyAnY29sbGVjdGluZydcbiAgICBpZiAoW3VuZGVmaW5lZCwgbnVsbCwgJyddLmluY2x1ZGVzKG9wKSkge1xuICAgICAgcmV0dXJuIENPTExFQ1RfU0FNUExJTkdfT1A7XG4gICAgfVxuICAgIHJldHVybiBvcDtcbiAgfTtcblxuICBpZiAoIXNhbXBsaW5nUGxhbiB8fCAhc2FtcGxpbmdQcm9wZXJ0aWVzKSB7XG4gICAgcmV0dXJuIDxTcGlubmVyIC8+O1xuICB9XG5cbiAgaWYgKHNhbXBsaW5nUHJvcGVydGllcy5pc19wdW1wX2luX3Byb2dyZXNzKSB7XG4gICAgcmV0dXJuIDxTYW1wbGVySW5Qcm9jZXNzIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX0gLz47XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxmb3JtIG9uU3VibWl0PXtmb3JtaWsuaGFuZGxlU3VibWl0fT5cbiAgICAgIDxMYXlvdXQ+XG4gICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICAgICAgICB7IWlzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge2lzTW9iaWxlICYmIChcbiAgICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlXG4gICAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcz17c2FtcGxpbmdQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgICBzYW1wbGluZz17c2FtcGxpbmdQbGFufVxuICAgICAgICAgICAgICBmb3JtaWs9e2Zvcm1pa31cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25UaW1lPXtjb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0Q29sbGVjdGlvblRpbWU9e3NldENvbGxlY3Rpb25UaW1lfVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgaXNEYXRlUGlja2VyRGlzYWJsZWQ9e2lzUHJvcGVydGllc1BhZ2UocGFnZVR5cGUpfVxuICAgICAgICAgICAgICBkYXRlRm9ybWF0PXtkYXRlRm9ybWF0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuXG4gICAgICAgICAge3NhbXBsaW5nUHJvcGVydGllcyAmJiBwYWdlVHlwZSAmJiAoXG4gICAgICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzRm9ybVxuICAgICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nUGxhbn1cbiAgICAgICAgICAgICAgcGFnZVR5cGU9e3BhZ2VUeXBlLmN1cnJlbnR9XG4gICAgICAgICAgICAgIHNldFNhbXBsaW5nVXBkYXRlZD17c2V0U2FtcGxpbmdVcGRhdGVkfVxuICAgICAgICAgICAgICBzYXZpbmdNc2c9e3NhdmluZ01zZ31cbiAgICAgICAgICAgICAgaGFuZGxlQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICAgICAgICBzZXRQaG90b3NUb0RlbGV0ZT17c2V0UGhvdG9zVG9EZWxldGV9XG4gICAgICAgICAgICAgIHNldFBob3Rvcz17c2V0UGhvdG9zfVxuICAgICAgICAgICAgICBwaG90b3M9e3Bob3Rvc31cbiAgICAgICAgICAgICAgZm9ybWlrPXtmb3JtaWt9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGU+XG4gICAgICA8L0xheW91dD5cbiAgICA8L2Zvcm0+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxNQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBRyxrQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBRUEsSUFBQU8sT0FBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsWUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsUUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsS0FBQSxHQUFBWCxPQUFBO0FBQ0EsSUFBQVksT0FBQSxHQUFBWixPQUFBO0FBQ0EsSUFBQWEsbUJBQUEsR0FBQWIsT0FBQTtBQU1BLElBQUFjLHVCQUFBLEdBQUFkLE9BQUE7QUFDQSxJQUFBZSx1QkFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLDZCQUFBLEdBQUFoQixPQUFBO0FBQ0EsSUFBQWlCLHdCQUFBLEdBQUFqQixPQUFBO0FBVUEsSUFB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
359
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0RGV2aWNlRGV0ZWN0IiwiX2Zvcm1payIsIl9yZWFjdFJvdXRlckRvbSIsIl9yZWFjdFJlZHV4IiwiX0xheW91dCIsIl9pMThuIiwiX3VzZVF1ZXJ5VVJMIiwiX1NwaW5uZXIiLCJfdXJscyIsIl9zdHlsZXMiLCJfc2FtcGxpbmdzUGFnZVV0aWxzIiwiX1NhbXBsaW5nUHJvcGVydGllc0Zvcm0iLCJfU2FtcGxpbmdQcm9wZXJ0aWVzSGVhZCIsIl9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIiwiX3NhbXBsaW5nUHJvcGVydGllc1V0aWxzIiwiX1NhbXBsZXJJblByb2Nlc3MiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJub2RlSW50ZXJvcCIsIldlYWtNYXAiLCJjYWNoZUJhYmVsSW50ZXJvcCIsImNhY2hlTm9kZUludGVyb3AiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImlzUHJvcGVydGllc1BhZ2UiLCJwYWdlVHlwZSIsIlNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiRGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJjb2xsZWN0aW9uVGltZSIsInNldENvbGxlY3Rpb25UaW1lIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwaG90b3MiLCJzZXRQaG90b3MiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInBob3Rvc1RvRGVsZXRlIiwic2V0UGhvdG9zVG9EZWxldGUiLCJfdXNlU3RhdGU3IiwiaTE4biIsInQiLCJfdXNlU3RhdGU4Iiwic2F2aW5nTXNnIiwic2V0U2F2aW5nTXNnIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwic2FtcGxpbmdVcGRhdGVkIiwic2V0U2FtcGxpbmdVcGRhdGVkIiwiX3VzZVN0YXRlMTEiLCJ1bmRlZmluZWQiLCJfdXNlU3RhdGUxMiIsInNhbXBsaW5nUGxhbiIsInNldFNhbXBsaW5nUGxhbiIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwibG9jYXRpb24iLCJ1c2VMb2NhdGlvbiIsInF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJ1c2VySW5mbyIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwZXJtaXNzaW9ucyIsInVzZXJfaW5mbyIsImRhdGVGb3JtYXQiLCJkYXRlX3RpbWVfZm9ybWF0IiwidXNlUmVmIiwiX3VzZVN0YXRlMTMiLCJfdXNlU3RhdGUxNCIsInNhbXBsaW5nUHJvcGVydGllcyIsInNldFNhbXBsaW5nUHJvcGVydGllcyIsIl91c2VQYXJhbXMiLCJ1c2VQYXJhbXMiLCJzYW1wbGVJZCIsIndhdGVyQXV0aG9yaXR5SWQiLCJnbG9iYWxfZGF0YSIsImxvY2FsZSIsIm5hdl9jb250ZXh0X2RhdGEiLCJuYXZDb250ZXh0IiwiaW5pdEZvcm1pa1ZhbHVlcyIsImlzQ2FuY2VsZWQiLCJ0aW1lWm9uZSIsInBhZ2VDb2xsZWN0aW9uVGltZSIsImlzQ29sbGVjdExheW91dCIsImN1cnJlbnQiLCJjb2xsZWN0aW9uVGltZUZvcm1hdCIsInNhbXBsaW5nIiwiY29sbGVjdGlvbl90aW1lIiwic2FtIiwiZm9ybWlrVmFsdWVzIiwibGFiX2lkIiwicHVtcF9zYW1wbGluZ192b2x1bWUiLCJwdW1wX2JhdHRlcnlfbGV2ZWwiLCJkZXNjcmlwdGlvbiIsImthbmRvX3JlcCIsInNhbXBsaW5nX3BsYW5faWQiLCJjYW5jZWxsYXRpb25fcmVhc29uIiwiaXNfY2FuY2VsZWQiLCJpc0NhbmNlbGxlZExheW91dCIsImNhbmNlbGVkX2J5X2lkIiwibmFtZSIsImNhbmNlbGVkX2J5X25hbWUiLCJpZCIsImZvcm1payIsInNldFZhbHVlcyIsInBhZ2VUeXBlMmlzQ2FuY2VsbGVkIiwiY2FuY2VsIiwiY29sbGVjdCIsInJldmVydF9jYW5jZWwiLCJmZXRjaFNhbXBsaW5nUHJvcGVydGllcyIsInVzZUNhbGxiYWNrIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJzYW1wbGluZ0lkIiwib3AiLCJyZXNwb25zZSIsIl9hcmdzIiwiYXJndW1lbnRzIiwid3JhcCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJwcmV2IiwibmV4dCIsImxlbmd0aCIsImF4aW9zIiwidXJscyIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJzZW50IiwiZGF0YSIsInNhbXBsaW5nX3Byb3BlcnRpZXMiLCJkZXRlY3RQYWdlVHlwZSIsImRldGVybWluZUNvbGxlY3Rpb25UaW1lIiwic2FtcGxpbmdfcGxhbiIsInRpbWVfem9uZSIsInN0b3AiLCJ1c2VFZmZlY3QiLCJnZXRVcmxRdWVyeU9wIiwidmFsaWRhdGlvblNjaGVtYSIsInByb3BlcnRpZXNWYWxpZGF0aW9uU2NoZW1hIiwiY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYSIsInVzZUZvcm1payIsImVuYWJsZVJlaW5pdGlhbGl6ZSIsImluaXRpYWxWYWx1ZXMiLCJzYW1wbGluZ1Byb3BlcnR5IiwidmFsaWRhdGVPbkNoYW5nZSIsInZhbGlkYXRlT25CbHVyIiwib25TdWJtaXQiLCJ2YWx1ZXMiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDbG9zZSIsImdvQmFjayIsInB1c2giLCJzYW1wbGluZ3NQYWdlIiwic2FtcGxpbmdzTGlzdFJvdXRlIiwicGljdHVyZXNfYXR0cmlidXRlcyIsImNvbGxlY3Rpb25UaW1lSW5UaW1lWm9uZSIsInNhdmVGb3JtRGF0YSIsImZvcm1EYXRhQnVpbGRlciIsInVwZGF0ZU9yQ3JlYXRlIiwic2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0Iiwic2V0VGltZW91dCIsImZvcm1EYXRhIiwiRm9ybURhdGEiLCJ2YWx1ZSIsImFwcGVuZCIsImNvbmNhdCIsInVuaXF1ZVBob3Rvc1RvRGVsZXRlIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsIlNldCIsImZvckVhY2giLCJpbmRleCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfcmVmMiIsIl9jYWxsZWUyIiwiX3NhbXBsaW5nUHJvcGVydGllcyRzIiwidXBkYXRlT3JDcmVhdGVTdWNjZXNzIiwic2FtcGxpbmdJRCIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsIm1zZyIsInBvc3QiLCJjcmVhdGVTYW1wbGluZyIsInQwIiwicHV0IiwidXBkYXRlU2FtcGxpbmciLCJ0MSIsIl94IiwiYXBwbHkiLCJpc1NhbXBsaW5nQ2FuY2VsbGVkIiwiZWRpdFBhZ2VWYWx1ZSIsIkNPTExFQ1RfU0FNUExJTkdfT1AiLCJDQU5DRUxfU0FNUExJTkdfT1AiLCJSRVZFUlRfQ0FOQ0VMTEFUSU9OIiwic2VydmVyQ29sbGVjdGlvblRpbWUiLCJjdXJyZW50VGltZSIsInNlcnZlclRpbWUiLCJpbmNsdWRlcyIsImNyZWF0ZUVsZW1lbnQiLCJTcGlubmVyIiwiaXNfcHVtcF9pbl9wcm9ncmVzcyIsIlNhbXBsaW5nUHJvcGVydGllc1N0eWxlIiwiaXNNb2JpbGUiLCJTYW1wbGluZ1Byb3BlcnRpZXNIZWFkIiwiaXNEYXRlUGlja2VyRGlzYWJsZWQiLCJTYW1wbGluZ1Byb3BlcnRpZXNIZWFkTW9iaWxlIiwiU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGFnZXMvU2FtcGxpbmdzUGFnZS9TYW1wbGluZ1Byb3BlcnRpZXMvU2FtcGxpbmdQcm9wZXJ0aWVzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHJvcGVydGllcyBhbmQgQ2FuY2VsbGluZyBmb3Jtcy5cbiAqKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBGb3JtaWtDb25maWcgfSBmcm9tICdmb3JtaWsvZGlzdC90eXBlcyc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJ3JlYWN0LWRldmljZS1kZXRlY3QnO1xuaW1wb3J0IHsgdXNlRm9ybWlrIH0gZnJvbSAnZm9ybWlrJztcbmltcG9ydCB7IHVzZUhpc3RvcnksIHVzZVBhcmFtcywgdXNlTG9jYXRpb24gfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuXG5pbXBvcnQgTGF5b3V0IGZyb20gJ3NyYy91aS1raXQvTGF5b3V0L0xheW91dCc7XG5pbXBvcnQgaTE4biBmcm9tICdzcmMvdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJ3NyYy9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnc3JjL2NvbXBvbmVudHMvU3Bpbm5lci9TcGlubmVyJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICdzcmMvdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGUgfSBmcm9tICcuL3N0eWxlcyc7XG5pbXBvcnQge1xuICBDQU5DRUxfU0FNUExJTkdfT1AsXG4gIENPTExFQ1RfU0FNUExJTkdfT1AsXG4gIFJFVkVSVF9DQU5DRUxMQVRJT04sXG4gIFNhbXBsaW5nRmV0Y2hEYXRhLFxufSBmcm9tICcuLi9zYW1wbGluZ3NQYWdlVXRpbHMnO1xuaW1wb3J0IHsgU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSB9IGZyb20gJy4vU2FtcGxpbmdQcm9wZXJ0aWVzRm9ybSc7XG5pbXBvcnQgeyBTYW1wbGluZ1Byb3BlcnRpZXNIZWFkIH0gZnJvbSAnLi9TYW1wbGluZ1Byb3BlcnRpZXNIZWFkJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUgfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0hlYWRNb2JpbGUnO1xuaW1wb3J0IHtcbiAgRm9ybVR5cGUsXG4gIFRTYW1wbGluZ1Byb3BlcnRpZXMsXG4gIGNhbmNlbGxhdGlvblZhbGlkYXRpb25TY2hlbWEsXG4gIGlzQ29sbGVjdExheW91dCxcbiAgcHJvcGVydGllc1ZhbGlkYXRpb25TY2hlbWEsXG4gIHNhbXBsaW5nUHJvcGVydHksXG4gIGNvbGxlY3Rpb25UaW1lRm9ybWF0LFxuICBjb2xsZWN0aW9uVGltZUluVGltZVpvbmUsXG59IGZyb20gJy4vc2FtcGxpbmdQcm9wZXJ0aWVzVXRpbHMnO1xuaW1wb3J0IFNhbXBsZXJJblByb2Nlc3MgZnJvbSAnLi9TYW1wbGVySW5Qcm9jZXNzJztcblxuY29uc3QgaXNQcm9wZXJ0aWVzUGFnZSA9IChwYWdlVHlwZSkgPT4gcGFnZVR5cGUgPT09ICdlZGl0JztcblxuZXhwb3J0IGNvbnN0IFNhbXBsaW5nUHJvcGVydGllczogRkMgPSAoKSA9PiB7XG4gIGNvbnN0IFtjb2xsZWN0aW9uVGltZSwgc2V0Q29sbGVjdGlvblRpbWVdID0gdXNlU3RhdGU8c3RyaW5nIHwgRGF0ZSB8IG51bGw+KFxuICAgIG5ldyBEYXRlKCksXG4gICk7XG4gIGNvbnN0IFtwaG90b3MsIHNldFBob3Rvc10gPSB1c2VTdGF0ZTxzdHJpbmcgfCBCbG9iIHwgYW55PihbXSk7XG4gIGNvbnN0IFtwaG90b3NUb0RlbGV0ZSwgc2V0UGhvdG9zVG9EZWxldGVdID0gdXNlU3RhdGU8bnVtYmVyW10+KFtdKTtcbiAgY29uc3QgW3NhdmluZ01zZywgc2V0U2F2aW5nTXNnXSA9IHVzZVN0YXRlPHN0cmluZz4oaTE4bi50KCdidXR0b25zLnNhdmUnKSk7XG4gIGNvbnN0IFtzYW1wbGluZ1VwZGF0ZWQsIHNldFNhbXBsaW5nVXBkYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzYW1wbGluZ1BsYW4sIHNldFNhbXBsaW5nUGxhbl0gPSB1c2VTdGF0ZTxcbiAgICBTYW1wbGluZ0ZldGNoRGF0YSB8IHVuZGVmaW5lZFxuICA+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KCk7XG4gIGNvbnN0IGxvY2F0aW9uID0gdXNlTG9jYXRpb24oKTtcbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCB1c2VySW5mbyA9IHVzZVNlbGVjdG9yKChzdGF0ZSkgPT4gc3RhdGUucGVybWlzc2lvbnMudXNlcl9pbmZvKTtcbiAgY29uc3QgZGF0ZUZvcm1hdCA9XG4gICAgdXNlckluZm8uZGF0ZV90aW1lX2Zvcm1hdCA9PT0gJ3VzJ1xuICAgICAgPyAnTU1NIGQsIHl5eXkgaGg6bW0gYWEnXG4gICAgICA6ICdkL01NL3l5eXkgSEg6bW0nO1xuICBjb25zdCBwYWdlVHlwZSA9IHVzZVJlZjxzdHJpbmc+KCcnKTtcbiAgY29uc3QgW3NhbXBsaW5nUHJvcGVydGllcywgc2V0U2FtcGxpbmdQcm9wZXJ0aWVzXSA9XG4gICAgdXNlU3RhdGU8VFNhbXBsaW5nUHJvcGVydGllcz4oKTtcbiAgY29uc3QgeyBzYW1wbGVJZCB9ID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IHdhdGVyQXV0aG9yaXR5SWQgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGUpID0+IHN0YXRlLmdsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWQsXG4gICk7XG4gIGNvbnN0IGxvY2FsZSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubmF2X2NvbnRleHRfZGF0YS5uYXZDb250ZXh0LmxvY2FsZSxcbiAgKTtcblxuICBjb25zdCBpbml0Rm9ybWlrVmFsdWVzID0gKFxuICAgIHNhbXBsaW5nUHJvcGVydGllcyxcbiAgICBpc0NhbmNlbGVkLFxuICAgIHRpbWVab25lLFxuICAgIHVzZXJJbmZvLFxuICApID0+IHtcbiAgICBjb25zdCBwYWdlQ29sbGVjdGlvblRpbWUgPSBpc0NvbGxlY3RMYXlvdXQocGFnZVR5cGUuY3VycmVudClcbiAgICAgID8gY29sbGVjdGlvblRpbWVcbiAgICAgIDogY29sbGVjdGlvblRpbWVGb3JtYXQoXG4gICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmNvbGxlY3Rpb25fdGltZSxcbiAgICAgICAgICB0aW1lWm9uZSxcbiAgICAgICAgKTtcbiAgICBjb25zdCBzYW0gPSBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmc7XG4gICAgbGV0IGZvcm1pa1ZhbHVlczogRm9ybVR5cGUgPSB7XG4gICAgICBsYWJfaWQ6IHNhbS5sYWJfaWQsXG4gICAgICBjb2xsZWN0aW9uX3RpbWU6IHBhZ2VDb2xsZWN0aW9uVGltZSxcbiAgICAgIHB1bXBfc2FtcGxpbmdfdm9sdW1lOiBzYW0ucHVtcF9zYW1wbGluZ192b2x1bWUsXG4gICAgICBwdW1wX2JhdHRlcnlfbGV2ZWw6IHNhbS5wdW1wX2JhdHRlcnlfbGV2ZWwsXG4gICAgICBkZXNjcmlwdGlvbjogc2FtLmRlc2NyaXB0aW9uLFxuICAgICAga2FuZG9fcmVwOiBzYW0ua2FuZG9fcmVwLFxuICAgICAgc2FtcGxpbmdfcGxhbl9pZDogc2FtLnNhbXBsaW5nX3BsYW5faWQsXG4gICAgICBjYW5jZWxsYXRpb25fcmVhc29uOiBzYW0uY2FuY2VsbGF0aW9uX3JlYXNvbiB8fCAnJyxcbiAgICAgIGlzX2NhbmNlbGVkOiBpc0NhbmNlbGVkLFxuICAgIH07XG5cbiAgICBpZiAoaXNDYW5jZWxsZWRMYXlvdXQoc2FtcGxpbmdQcm9wZXJ0aWVzKSlcbiAgICAgIGZvcm1pa1ZhbHVlcy5jYW5jZWxlZF9ieV9pZCA9IHtcbiAgICAgICAgbmFtZTogc2FtcGxpbmdQcm9wZXJ0aWVzLmNhbmNlbGVkX2J5X25hbWUsXG4gICAgICAgIC8vICB8fFxuICAgICAgICAvLyB1c2VySW5mby5maXJzdF9uYW1lICsgJyAnICsgdXNlckluZm8ubGFzdF9uYW1lLFxuICAgICAgICBpZDogc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmlzX2NhbmNlbGVkXG4gICAgICAgICAgPyBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuY2FuY2VsZWRfYnlfaWRcbiAgICAgICAgICA6IHVzZXJJbmZvLmlkLFxuICAgICAgfTtcbiAgICBmb3JtaWtWYWx1ZXMua2FuZG9fcmVwID0gc2FtcGxpbmdQcm9wZXJ0aWVzLnNhbXBsaW5nLmthbmRvX3JlcDtcbiAgICBmb3JtaWsuc2V0VmFsdWVzKGZvcm1pa1ZhbHVlcyk7XG4gIH07XG5cbiAgY29uc3QgaXNDYW5jZWxsZWRMYXlvdXQgPSAoc2FtcGxpbmdQcm9wZXJ0aWVzKSA9PiB7XG4gICAgY29uc3QgcGFnZVR5cGUyaXNDYW5jZWxsZWQgPSB7XG4gICAgICBjYW5jZWw6IHRydWUsXG4gICAgICBjb2xsZWN0OiBmYWxzZSxcbiAgICAgIHJldmVydF9jYW5jZWw6IGZhbHNlLFxuICAgIH07XG4gICAgbGV0IGlzQ2FuY2VsZWQgPSBwYWdlVHlwZTJpc0NhbmNlbGxlZFtwYWdlVHlwZS5jdXJyZW50XTtcbiAgICBpZiAoaXNDYW5jZWxlZCA9PT0gbnVsbCkge1xuICAgICAgaXNDYW5jZWxlZCA9IHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCB8fCBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGlzQ2FuY2VsZWQ7XG4gIH07XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkLCBvcCkgPT4ge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgICk7XG4gICAgICBjb25zdCBzYW1wbGluZyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICBjb25zdCBzYW1wbGluZ1Byb3BlcnRpZXMgPSBzYW1wbGluZy5zYW1wbGluZ19wcm9wZXJ0aWVzO1xuICAgICAgcGFnZVR5cGUuY3VycmVudCA9IGRldGVjdFBhZ2VUeXBlKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMuc2FtcGxpbmcuaXNfY2FuY2VsZWQsXG4gICAgICAgIG9wLFxuICAgICAgKTtcbiAgICAgIHNldENvbGxlY3Rpb25UaW1lKFxuICAgICAgICBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZShcbiAgICAgICAgICBjb2xsZWN0aW9uVGltZUZvcm1hdChcbiAgICAgICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5jb2xsZWN0aW9uX3RpbWUsXG4gICAgICAgICAgICBzYW1wbGluZy5zYW1wbGluZ19wbGFuLnRpbWVfem9uZSxcbiAgICAgICAgICApLFxuICAgICAgICAgIG9wLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICAgIGxldCBpc0NhbmNlbGVkID0gaXNDYW5jZWxsZWRMYXlvdXQoXG4gICAgICAgIHNhbXBsaW5nUHJvcGVydGllcy5zYW1wbGluZy5pc19jYW5jZWxlZCxcbiAgICAgICk7XG4gICAgICBpbml0Rm9ybWlrVmFsdWVzKFxuICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXMsXG4gICAgICAgIGlzQ2FuY2VsZWQsXG4gICAgICAgIHNhbXBsaW5nLnNhbXBsaW5nX3BsYW4udGltZV96b25lLFxuICAgICAgICB1c2VySW5mbyxcbiAgICAgICk7XG4gICAgICBzZXRTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxpbmdQcm9wZXJ0aWVzKTtcbiAgICAgIHNldFNhbXBsaW5nUGxhbihzYW1wbGluZy5zYW1wbGluZ19wbGFuKTtcbiAgICB9LFxuICAgIFtdLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQsIGdldFVybFF1ZXJ5T3AoKSk7XG4gIH0sIFtzYW1wbGluZ1VwZGF0ZWRdKTtcblxuICBjb25zdCB2YWxpZGF0aW9uU2NoZW1hID0gaXNDb2xsZWN0TGF5b3V0KHBhZ2VUeXBlLmN1cnJlbnQpXG4gICAgPyBwcm9wZXJ0aWVzVmFsaWRhdGlvblNjaGVtYVxuICAgIDogY2FuY2VsbGF0aW9uVmFsaWRhdGlvblNjaGVtYTtcbiAgY29uc3QgZm9ybWlrID0gdXNlRm9ybWlrPEZvcm1pa0NvbmZpZzxGb3JtVHlwZT4+KHtcbiAgICBlbmFibGVSZWluaXRpYWxpemU6IHRydWUsXG4gICAgaW5pdGlhbFZhbHVlczogc2FtcGxpbmdQcm9wZXJ0eSxcbiAgICB2YWxpZGF0aW9uU2NoZW1hOiB2YWxpZGF0aW9uU2NoZW1hLFxuICAgIHZhbGlkYXRlT25DaGFuZ2U6IGZhbHNlLFxuICAgIHZhbGlkYXRlT25CbHVyOiB0cnVlLFxuICAgIG9uU3VibWl0OiAodmFsdWVzKSA9PiB7XG4gICAgICBoYW5kbGVTdWJtaXQodmFsdWVzKTtcbiAgICB9LFxuICB9KTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBpZiAobG9jYXRpb24ua2V5KSB7XG4gICAgICBoaXN0b3J5LmdvQmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBoaXN0b3J5LnB1c2goXG4gICAgICAgIHVybHMoeyBsb2NhbGUsIHdhdGVyQXV0aG9yaXR5SWQgfSkuc2FtcGxpbmdzUGFnZS5zYW1wbGluZ3NMaXN0Um91dGUudXJsLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaGFuZGxlU3VibWl0ID0gKHZhbHVlcykgPT4ge1xuICAgIHNldFNhdmluZ01zZyhpMThuLnQoJ2J1dHRvbnMuc2F2aW5nJykpO1xuICAgIHZhbHVlcy5waWN0dXJlc19hdHRyaWJ1dGVzID0gcGhvdG9zO1xuICAgIC8vIGRlYnVnZ2VyO1xuICAgIC8vIGlmICh2YWx1ZXMuY2FuY2VsZWRfYnlfaWQ/LmlkID4gMCAmJiBpc0NhbmNlbGxlZExheW91dChzYW1wbGluZ1Byb3BlcnRpZXMpKVxuICAgIHZhbHVlcy5jYW5jZWxlZF9ieV9pZCA9IHZhbHVlcy5jYW5jZWxlZF9ieV9pZC5pZDtcbiAgICBjb25zdCB0aW1lX3pvbmUgPSBzYW1wbGluZ1BsYW4/LnRpbWVfem9uZSB8fCAnVVRDJztcbiAgICB2YWx1ZXMuY29sbGVjdGlvbl90aW1lID0gY29sbGVjdGlvblRpbWVJblRpbWVab25lKFxuICAgICAgdmFsdWVzLmNvbGxlY3Rpb25fdGltZSxcbiAgICAgIHRpbWVfem9uZSxcbiAgICApO1xuICAgIGNvbnN0IHNhdmVGb3JtRGF0YSA9IGZvcm1EYXRhQnVpbGRlcih2YWx1ZXMpO1xuICAgIHVwZGF0ZU9yQ3JlYXRlKHNhdmVGb3JtRGF0YSk7XG4gIH07XG5cbiAgY29uc3Qgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0ID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5zYXZlJykpO1xuICAgIH0sIDMwMDApO1xuICB9O1xuXG4gIGNvbnN0IGZvcm1EYXRhQnVpbGRlciA9ICh2YWx1ZXMpID0+IHtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlcykge1xuICAgICAgaWYgKGtleSAhPT0gJ3BpY3R1cmVzX2F0dHJpYnV0ZXMnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2tleV0gPT09IG51bGwgPyAnJyA6IHZhbHVlc1trZXldO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoYHNhbXBsaW5nWyR7a2V5fV1gLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCB1bmlxdWVQaG90b3NUb0RlbGV0ZSA9IFsuLi5uZXcgU2V0KHBob3Rvc1RvRGVsZXRlKV07XG4gICAgdW5pcXVlUGhvdG9zVG9EZWxldGUubGVuZ3RoICE9PSAwICYmXG4gICAgICB1bmlxdWVQaG90b3NUb0RlbGV0ZS5mb3JFYWNoKChpZCwgaW5kZXgpID0+IHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKFxuICAgICAgICAgIGBzYW1wbGluZ1twaWN0dXJlc19hdHRyaWJ1dGVzXVske2luZGV4fV1baWRdYCxcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpZCksXG4gICAgICAgICk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgICBgc2FtcGxpbmdbcGljdHVyZXNfYXR0cmlidXRlc11bJHtpbmRleH1dW19kZXN0cm95XWAsXG4gICAgICAgICAgJ3RydWUnLFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgcmV0dXJuIGZvcm1EYXRhO1xuICB9O1xuXG4gIGNvbnN0IHVwZGF0ZU9yQ3JlYXRlID0gYXN5bmMgKGZvcm1EYXRhKSA9PiB7XG4gICAgY29uc3QgdXBkYXRlT3JDcmVhdGVTdWNjZXNzID0gKG1zZykgPT4ge1xuICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udChtc2cpKTtcbiAgICAgIHNldFNhbXBsaW5nVXBkYXRlZCh0cnVlKTtcbiAgICAgIHNldE9yaWdpbmFsU2F2ZU1lc3NhZ2VXaXRoVGltZW91dCgpO1xuICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2FtcGxpbmdJRCA9IHNhbXBsaW5nUHJvcGVydGllcz8uc2FtcGxpbmc/LmlkO1xuICAgIGlmIChzYW1wbGluZ0lEID09PSBudWxsKSB7XG4gICAgICAvLyBjcmVhdGVcbiAgICAgIGZvcm1EYXRhLmFwcGVuZChcbiAgICAgICAgYHNhbXBsaW5nW2RhdGVdYCxcbiAgICAgICAgZm9ybURhdGEuZ2V0KCdzYW1wbGluZ1tjb2xsZWN0aW9uX3RpbWVdJyksXG4gICAgICApO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgYXhpb3MucG9zdChcbiAgICAgICAgICB1cmxzKHtcbiAgICAgICAgICAgIHdhdGVyQXV0aG9yaXR5SWQ6IHdhdGVyQXV0aG9yaXR5SWQsXG4gICAgICAgICAgfSkuc2FtcGxpbmdQcm9wZXJ0aWVzLmNyZWF0ZVNhbXBsaW5nLnVybCxcbiAgICAgICAgICBmb3JtRGF0YSxcbiAgICAgICAgKTtcbiAgICAgICAgdXBkYXRlT3JDcmVhdGVTdWNjZXNzKCdidXR0b25zLmNyZWF0ZWQnKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2V0U2F2aW5nTXNnKGkxOG4udCgnYnV0dG9ucy5lcnJvcicpKTtcbiAgICAgICAgc2V0T3JpZ2luYWxTYXZlTWVzc2FnZVdpdGhUaW1lb3V0KCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChwYWdlVHlwZS5jdXJyZW50ID09PSAncmV2ZXJ0X2NhbmNlbCcpIHtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKGBzYW1wbGluZ1tjb2xsZWN0aW9uX3RpbWVdYCwgY29sbGVjdGlvblRpbWUpO1xuICAgICAgfVxuICAgICAgLy8gdXBkYXRlXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBheGlvcy5wdXQoXG4gICAgICAgICAgdXJscyh7IHNhbXBsaW5nSWQ6IHNhbXBsaW5nSUQsIHdhdGVyQXV0aG9yaXR5SWQ6IHdhdGVyQXV0aG9yaXR5SWQgfSlcbiAgICAgICAgICAgIC5zYW1wbGluZ1Byb3BlcnRpZXMudXBkYXRlU2FtcGxpbmcudXJsLFxuICAgICAgICAgIGZvcm1EYXRhLFxuICAgICAgICApO1xuICAgICAgICB1cGRhdGVPckNyZWF0ZVN1Y2Nlc3MoJ2J1dHRvbnMudXBkYXRlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBzZXRTYXZpbmdNc2coaTE4bi50KCdidXR0b25zLmVycm9yJykpO1xuICAgICAgICBzZXRPcmlnaW5hbFNhdmVNZXNzYWdlV2l0aFRpbWVvdXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgY29uc3QgZGV0ZWN0UGFnZVR5cGUgPSAoaXNTYW1wbGluZ0NhbmNlbGxlZCwgb3ApID0+IHtcbiAgICBjb25zdCBlZGl0UGFnZVZhbHVlID0gaXNTYW1wbGluZ0NhbmNlbGxlZCA/ICdjYW5jZWwnIDogJ2NvbGxlY3QnO1xuICAgIGlmIChvcCA9PT0gJ2VkaXQnKSB7XG4gICAgICByZXR1cm4gZWRpdFBhZ2VWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKG9wID09PSBDT0xMRUNUX1NBTVBMSU5HX09QKSB7XG4gICAgICByZXR1cm4gJ2NvbGxlY3QnO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IENBTkNFTF9TQU1QTElOR19PUCkge1xuICAgICAgcmV0dXJuICdjYW5jZWwnO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IFJFVkVSVF9DQU5DRUxMQVRJT04pIHtcbiAgICAgIHJldHVybiAncmV2ZXJ0X2NhbmNlbCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBkZXRlcm1pbmVDb2xsZWN0aW9uVGltZSA9IChzZXJ2ZXJDb2xsZWN0aW9uVGltZSwgb3ApID0+IHtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3Qgc2VydmVyVGltZSA9IHNlcnZlckNvbGxlY3Rpb25UaW1lXG4gICAgICA/IG5ldyBEYXRlKHNlcnZlckNvbGxlY3Rpb25UaW1lKVxuICAgICAgOiBjdXJyZW50VGltZTtcbiAgICBjb25zdCBlZGl0UGFnZVZhbHVlID0gc2VydmVyQ29sbGVjdGlvblRpbWUgPyBzZXJ2ZXJUaW1lIDogY3VycmVudFRpbWU7XG4gICAgaWYgKG9wID09PSAnZWRpdCcpIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAob3AgPT09IENPTExFQ1RfU0FNUExJTkdfT1ApIHtcbiAgICAgIHJldHVybiBjdXJyZW50VGltZTtcbiAgICB9IGVsc2UgaWYgKFtDQU5DRUxfU0FNUExJTkdfT1AsIFJFVkVSVF9DQU5DRUxMQVRJT05dLmluY2x1ZGVzKG9wKSkge1xuICAgICAgcmV0dXJuIHNlcnZlclRpbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBlZGl0UGFnZVZhbHVlO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBnZXRVcmxRdWVyeU9wID0gKCkgPT4ge1xuICAgIGxldCBvcCA9IHF1ZXJ5LmdldCgnb3AnKTtcbiAgICAvLyBpZiBub3QgcHJlc2VudCB0aGVuIGRlZmF1bHQgb3AgaXMgJ2NvbGxlY3RpbmcnXG4gICAgaWYgKFt1bmRlZmluZWQsIG51bGwsICcnXS5pbmNsdWRlcyhvcCkpIHtcbiAgICAgIHJldHVybiBDT0xMRUNUX1NBTVBMSU5HX09QO1xuICAgIH1cbiAgICByZXR1cm4gb3A7XG4gIH07XG5cbiAgaWYgKCFzYW1wbGluZ1BsYW4gfHwgIXNhbXBsaW5nUHJvcGVydGllcykge1xuICAgIHJldHVybiA8U3Bpbm5lciAvPjtcbiAgfVxuXG4gIGlmIChzYW1wbGluZ1Byb3BlcnRpZXMuaXNfcHVtcF9pbl9wcm9ncmVzcykge1xuICAgIHJldHVybiA8U2FtcGxlckluUHJvY2VzcyBoYW5kbGVDbG9zZT17aGFuZGxlQ2xvc2V9IC8+O1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9ybSBvblN1Ym1pdD17Zm9ybWlrLmhhbmRsZVN1Ym1pdH0+XG4gICAgICA8TGF5b3V0PlxuICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzU3R5bGU+XG4gICAgICAgICAgeyFpc01vYmlsZSAmJiAoXG4gICAgICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzSGVhZFxuICAgICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nUGxhbn1cbiAgICAgICAgICAgICAgZm9ybWlrPXtmb3JtaWt9XG4gICAgICAgICAgICAgIHBhZ2VUeXBlPXtwYWdlVHlwZS5jdXJyZW50fVxuICAgICAgICAgICAgICBjb2xsZWN0aW9uVGltZT17Y29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldENvbGxlY3Rpb25UaW1lPXtzZXRDb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkPXtzZXRTYW1wbGluZ1VwZGF0ZWR9XG4gICAgICAgICAgICAgIGlzRGF0ZVBpY2tlckRpc2FibGVkPXtpc1Byb3BlcnRpZXNQYWdlKHBhZ2VUeXBlKX1cbiAgICAgICAgICAgICAgZGF0ZUZvcm1hdD17ZGF0ZUZvcm1hdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtpc01vYmlsZSAmJiAoXG4gICAgICAgICAgICA8U2FtcGxpbmdQcm9wZXJ0aWVzSGVhZE1vYmlsZVxuICAgICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgICAgc2FtcGxpbmc9e3NhbXBsaW5nUGxhbn1cbiAgICAgICAgICAgICAgZm9ybWlrPXtmb3JtaWt9XG4gICAgICAgICAgICAgIHBhZ2VUeXBlPXtwYWdlVHlwZS5jdXJyZW50fVxuICAgICAgICAgICAgICBjb2xsZWN0aW9uVGltZT17Y29sbGVjdGlvblRpbWV9XG4gICAgICAgICAgICAgIHNldENvbGxlY3Rpb25UaW1lPXtzZXRDb2xsZWN0aW9uVGltZX1cbiAgICAgICAgICAgICAgc2V0U2FtcGxpbmdVcGRhdGVkPXtzZXRTYW1wbGluZ1VwZGF0ZWR9XG4gICAgICAgICAgICAgIGlzRGF0ZVBpY2tlckRpc2FibGVkPXtpc1Byb3BlcnRpZXNQYWdlKHBhZ2VUeXBlKX1cbiAgICAgICAgICAgICAgZGF0ZUZvcm1hdD17ZGF0ZUZvcm1hdH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cblxuICAgICAgICAgIHtzYW1wbGluZ1Byb3BlcnRpZXMgJiYgcGFnZVR5cGUgJiYgKFxuICAgICAgICAgICAgPFNhbXBsaW5nUHJvcGVydGllc0Zvcm1cbiAgICAgICAgICAgICAgc2FtcGxpbmdQcm9wZXJ0aWVzPXtzYW1wbGluZ1Byb3BlcnRpZXN9XG4gICAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ1BsYW59XG4gICAgICAgICAgICAgIHBhZ2VUeXBlPXtwYWdlVHlwZS5jdXJyZW50fVxuICAgICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAgICAgc2F2aW5nTXNnPXtzYXZpbmdNc2d9XG4gICAgICAgICAgICAgIGhhbmRsZUNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgICAgICAgc2V0UGhvdG9zVG9EZWxldGU9e3NldFBob3Rvc1RvRGVsZXRlfVxuICAgICAgICAgICAgICBzZXRQaG90b3M9e3NldFBob3Rvc31cbiAgICAgICAgICAgICAgcGhvdG9zPXtwaG90b3N9XG4gICAgICAgICAgICAgIGZvcm1paz17Zm9ybWlrfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1NhbXBsaW5nUHJvcGVydGllc1N0eWxlPlxuICAgICAgPC9MYXlvdXQ+XG4gICAgPC9mb3JtPlxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsa0JBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLFlBQUEsR0FBQVAsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFVLFFBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLEtBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLG1CQUFBLEdBQUFiLE9BQUE7QUFNQSxJQUFBYyx1QkFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsdUJBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQiw2QkFBQSxHQUFBaEIsT0FBQTtBQUNBLElBQUFpQix3QkFBQSxHQUFBakIsT0FBQTtB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
@@ -12,6 +12,7 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactD3Tree = _interopRequireDefault(require("react-d3-tree"));
13
13
  var _ScoreNode = _interopRequireDefault(require("./ScoreNode"));
14
14
  var _PollutionContributorNode = _interopRequireDefault(require("./PollutionContributorNode"));
15
+ var _NetworkNode = _interopRequireDefault(require("./NetworkNode"));
15
16
  var _utils = require("./utils");
16
17
  var _reactRedux = require("react-redux");
17
18
  var _reactRouterDom = require("react-router-dom");
@@ -124,19 +125,35 @@ function AutoFitTree(_ref) {
124
125
  siteID = _useParams.siteID,
125
126
  areaID = _useParams.areaID;
126
127
  var renderCustomNodeElement = function renderCustomNodeElement(rd3tProps) {
127
- var _selectedFilters$Samp, _selectedFilters$Insi, _rd3tProps$nodeDatum$, _rd3tProps$nodeDatum$2, _rd3tProps$nodeDatum$3, _rd3tProps$nodeDatum$4, _rd3tProps$nodeDatum$5;
128
+ var _selectedFilters$Samp, _selectedFilters$Netw, _selectedFilters$Insi, _rd3tProps$nodeDatum$, _rd3tProps$nodeDatum$2, _rd3tProps$nodeDatum$3, _rd3tProps$nodeDatum$4, _rd3tProps$nodeDatum$5;
128
129
  var isRoot = rd3tProps.nodeDatum.__rd3t.depth === 0;
129
130
  var showSamplers = (selectedFilters === null || selectedFilters === void 0 ? void 0 : (_selectedFilters$Samp = selectedFilters.SamplerFilterItem) === null || _selectedFilters$Samp === void 0 ? void 0 : _selectedFilters$Samp.toString()) === 'with' || false;
130
- var insightData = (selectedFilters === null || selectedFilters === void 0 ? void 0 : (_selectedFilters$Insi = selectedFilters.InsightDataFilterItem) === null || _selectedFilters$Insi === void 0 ? void 0 : _selectedFilters$Insi.toString()) || 'score';
131
+ var insightData = (selectedFilters === null || selectedFilters === void 0 ? void 0 : (_selectedFilters$Netw = selectedFilters.NetworkInsightDataFilterItem) === null || _selectedFilters$Netw === void 0 ? void 0 : _selectedFilters$Netw.toString()) || (selectedFilters === null || selectedFilters === void 0 ? void 0 : (_selectedFilters$Insi = selectedFilters.InsightDataFilterItem) === null || _selectedFilters$Insi === void 0 ? void 0 : _selectedFilters$Insi.toString()) || 'score';
131
132
  var isHighlight = siteID && siteID === ((_rd3tProps$nodeDatum$ = rd3tProps.nodeDatum.attributes) === null || _rd3tProps$nodeDatum$ === void 0 ? void 0 : (_rd3tProps$nodeDatum$2 = _rd3tProps$nodeDatum$.point_id) === null || _rd3tProps$nodeDatum$2 === void 0 ? void 0 : _rd3tProps$nodeDatum$2.toString()) || areaID && areaID === ((_rd3tProps$nodeDatum$3 = rd3tProps.nodeDatum.attributes) === null || _rd3tProps$nodeDatum$3 === void 0 ? void 0 : (_rd3tProps$nodeDatum$4 = _rd3tProps$nodeDatum$3.area_id) === null || _rd3tProps$nodeDatum$4 === void 0 ? void 0 : _rd3tProps$nodeDatum$4.toString());
132
133
  var isExceeded = exceededSiteIds.includes((_rd3tProps$nodeDatum$5 = rd3tProps.nodeDatum.attributes) === null || _rd3tProps$nodeDatum$5 === void 0 ? void 0 : _rd3tProps$nodeDatum$5.point_id);
133
- return !isRoot && (0, _utils.shouldFilterOut)(rd3tProps, selectedFilters) ? /*#__PURE__*/_react.default.createElement("div", null) : insightData === 'score' ? /*#__PURE__*/_react.default.createElement(_ScoreNode.default, Object.assign({}, rd3tProps, {
134
- isHighlight: isHighlight,
135
- isExceeded: isExceeded,
136
- onNodeClick: rest.onNodeClick,
137
- earlyAdopter: early_adopter,
138
- showSamplers: showSamplers
139
- })) : /*#__PURE__*/_react.default.createElement(_PollutionContributorNode.default, Object.assign({}, rd3tProps, {
134
+ if (!isRoot && (0, _utils.shouldFilterOut)(rd3tProps, selectedFilters)) {
135
+ return /*#__PURE__*/_react.default.createElement("div", null);
136
+ }
137
+ if (insightData === 'score') {
138
+ return /*#__PURE__*/_react.default.createElement(_ScoreNode.default, Object.assign({}, rd3tProps, {
139
+ isHighlight: isHighlight,
140
+ isExceeded: isExceeded,
141
+ onNodeClick: rest.onNodeClick,
142
+ earlyAdopter: early_adopter,
143
+ showSamplers: showSamplers
144
+ }));
145
+ }
146
+ if (insightData === 'pollution_contributor') {
147
+ return /*#__PURE__*/_react.default.createElement(_PollutionContributorNode.default, Object.assign({}, rd3tProps, {
148
+ isExceeded: isExceeded,
149
+ isHighlight: isHighlight,
150
+ onNodeClick: rest.onNodeClick,
151
+ earlyAdopter: early_adopter,
152
+ showSamplers: showSamplers
153
+ }));
154
+ }
155
+ return /*#__PURE__*/_react.default.createElement(_NetworkNode.default, Object.assign({}, rd3tProps, {
156
+ insightType: insightData,
140
157
  isExceeded: isExceeded,
141
158
  isHighlight: isHighlight,
142
159
  onNodeClick: rest.onNodeClick,
@@ -170,4 +187,4 @@ function AutoFitTree(_ref) {
170
187
  initialDepth: initialDepth
171
188
  }, rest)));
172
189
  }
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REM1RyZWUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1Njb3JlTm9kZSIsIl9Qb2xsdXRpb25Db250cmlidXRvck5vZGUiLCJfdXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdFJvdXRlckRvbSIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiY291bnREZXB0aEFuZEJyZWFkdGgiLCJyb290IiwibWF4RGVwdGgiLCJicmVhZHRoQnlEZXB0aCIsImRmcyIsIm4iLCJfbiRjaGlsZHJlbiIsImQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJNYXRoIiwibWF4IiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiYyIsIm1heEJyZWFkdGgiLCJhcHBseSIsIkF1dG9GaXRUcmVlIiwiX3JlZiIsImRhdGEiLCJfcmVmJG9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJpbml0aWFsRGVwdGgiLCJ0cmVlS2V5IiwiX3JlZiRzZWxlY3RlZEZpbHRlcnMiLCJzZWxlY3RlZEZpbHRlcnMiLCJfcmVmJGV4Y2VlZGVkU2l0ZUlkcyIsImV4Y2VlZGVkU2l0ZUlkcyIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiUEFERElORyIsIndyYXBwZXJSZWYiLCJ1c2VSZWYiLCJub2RlU2l6ZSIsIngiLCJ5Iiwic2VwYXJhdGlvbiIsInNpYmxpbmdzIiwibm9uU2libGluZ3MiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIndpZHRoIiwiaGVpZ2h0IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRpbXMiLCJzZXREaW1zIiwiZWFybHlfYWRvcHRlciIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwZXJtaXNzaW9ucyIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwiciIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiX3VzZU1lbW8iLCJ1c2VNZW1vIiwiX2NvdW50RGVwdGhBbmRCcmVhZHRoIiwicmVxVyIsInJlcUgiLCJhdmFpbFciLCJhdmFpbEgiLCJmaXRab29tIiwibWluIiwieiIsImlzRmluaXRlIiwiem9vbSIsInRyYW5zbGF0ZSIsInNldENvbGxhcHNlZEJ5RGVwdGgiLCJub2RlIiwiX25vZGUkY2hpbGRyZW4iLCJjb2xsYXBzZWQiLCJ2aWV3RGF0YSIsImNsb25lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiX3VzZVBhcmFtcyIsInVzZVBhcmFtcyIsInNpdGVJRCIsImFyZWFJRCIsInJlbmRlckN1c3RvbU5vZGVFbGVtZW50IiwicmQzdFByb3BzIiwiX3NlbGVjdGVkRmlsdGVycyRTYW1wIiwiX3NlbGVjdGVkRmlsdGVycyRJbnNpIiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kIiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kMiIsIl9yZDN0UHJvcHMkbm9kZURhdHVtJDMiLCJfcmQzdFByb3BzJG5vZGVEYXR1bSQ0IiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kNSIsImlzUm9vdCIsIm5vZGVEYXR1bSIsIl9fcmQzdCIsImRlcHRoIiwic2hvd1NhbXBsZXJzIiwiU2FtcGxlckZpbHRlckl0ZW0iLCJ0b1N0cmluZyIsImluc2lnaHREYXRhIiwiSW5zaWdodERhdGFGaWx0ZXJJdGVtIiwiaXNIaWdobGlnaHQiLCJhdHRyaWJ1dGVzIiwicG9pbnRfaWQiLCJhcmVhX2lkIiwiaXNFeGNlZWRlZCIsImluY2x1ZGVzIiwic2hvdWxkRmlsdGVyT3V0IiwiY3JlYXRlRWxlbWVudCIsImFzc2lnbiIsIm9uTm9kZUNsaWNrIiwiZWFybHlBZG9wdGVyIiwicmVmIiwic3R5bGUiLCJvdmVyZmxvdyIsInBhdGhGdW5jIiwiem9vbWFibGUiLCJzY2FsZUV4dGVudCIsImNvbGxhcHNpYmxlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9BdXRvRml0VHJlZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUcmVlLCB7IFJhd05vZGVEYXR1bSB9IGZyb20gJ3JlYWN0LWQzLXRyZWUnO1xuaW1wb3J0IFNjb3JlTm9kZSBmcm9tICcuL1Njb3JlTm9kZSc7XG5pbXBvcnQgUG9sbHV0aW9uQ29udHJpYnV0b3JOb2RlIGZyb20gJy4vUG9sbHV0aW9uQ29udHJpYnV0b3JOb2RlJztcbmltcG9ydCB7IEluc2lnaHREYXRhLCBzaG91bGRGaWx0ZXJPdXQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbnR5cGUgU2VwID0geyBzaWJsaW5nczogbnVtYmVyOyBub25TaWJsaW5nczogbnVtYmVyIH07XG5cbmZ1bmN0aW9uIGNvdW50RGVwdGhBbmRCcmVhZHRoKHJvb3Q6IFJhd05vZGVEYXR1bSkge1xuICBsZXQgbWF4RGVwdGggPSAwO1xuICBjb25zdCBicmVhZHRoQnlEZXB0aDogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgZGZzID0gKG46IFJhd05vZGVEYXR1bSwgZCA9IDApID0+IHtcbiAgICBtYXhEZXB0aCA9IE1hdGgubWF4KG1heERlcHRoLCBkKTtcbiAgICBicmVhZHRoQnlEZXB0aFtkXSA9IChicmVhZHRoQnlEZXB0aFtkXSB8fCAwKSArIDE7XG4gICAgbi5jaGlsZHJlbj8uZm9yRWFjaCgoYykgPT4gZGZzKGMsIGQgKyAxKSk7XG4gIH07XG4gIGRmcyhyb290KTtcbiAgY29uc3QgbWF4QnJlYWR0aCA9IE1hdGgubWF4KC4uLmJyZWFkdGhCeURlcHRoKTtcbiAgcmV0dXJuIHsgbWF4RGVwdGgsIG1heEJyZWFkdGggfTtcbn1cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEF1dG9GaXRUcmVlKHtcbiAgZGF0YSxcbiAgb3JpZW50YXRpb24gPSAndmVydGljYWwnLFxuICBpbml0aWFsRGVwdGgsXG4gIHRyZWVLZXksXG4gIHNlbGVjdGVkRmlsdGVycyA9IHt9LFxuICBleGNlZWRlZFNpdGVJZHMgPSBbXSxcbiAgLi4ucmVzdFxufToge1xuICBkYXRhOiBhbnk7XG4gIG9yaWVudGF0aW9uPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcbiAgaW5pdGlhbERlcHRoOiBudW1iZXI7XG4gIG9uTm9kZUNsaWNrPzogKG5vZGVEYXRhOiBhbnkpID0+IHZvaWQ7XG4gIHRyZWVLZXk6IG51bWJlcjtcbiAgc2VsZWN0ZWRGaWx0ZXJzPzogYW55O1xuICBleGNlZWRlZFNpdGVJZHM/OiBudW1iZXJbXTtcbn0pIHtcbiAgY29uc3QgUEFERElORyA9IDQyOyAvLyBzY3JlZW4gcGFkZGluZyBpbiBweFxuICBjb25zdCB3cmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgY29uc3Qgbm9kZVNpemUgPSB7IHg6IDI3MCwgeTogMjcwIH07IC8vIGhvdyBtdWNoIHNwYWNlIGVhY2ggbm9kZSBvY2N1cGllc1xuICBjb25zdCBzZXBhcmF0aW9uOiBTZXAgPSB7IHNpYmxpbmdzOiAwLjgsIG5vblNpYmxpbmdzOiAwLjkgfTsgLy8gbm9kZSBzcGFjaW5nXG4gIGNvbnN0IFtkaW1zLCBzZXREaW1zXSA9IHVzZVN0YXRlKHsgd2lkdGg6IDUwMCwgaGVpZ2h0OiAxMDAgfSk7XG4gIGNvbnN0IGVhcmx5X2Fkb3B0ZXIgPSB1c2VTZWxlY3RvcihcbiAgICAoc3RhdGU6IGFueSkgPT4gc3RhdGUucGVybWlzc2lvbnMuZWFybHlfYWRvcHRlcixcbiAgKTtcblxuICAvLyBrZWVwIHdyYXBwZXIgc2l6ZWQgdG8gdGhlIHZpZXdwb3J0XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQpIHJldHVybjtcbiAgICBjb25zdCBybyA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XG4gICAgICBjb25zdCByID0gd3JhcHBlclJlZi5jdXJyZW50IS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgIHNldERpbXMoeyB3aWR0aDogci53aWR0aCwgaGVpZ2h0OiByLmhlaWdodCB9KTtcbiAgICB9KTtcbiAgICByby5vYnNlcnZlKHdyYXBwZXJSZWYuY3VycmVudCk7XG4gICAgcmV0dXJuICgpID0+IHJvLmRpc2Nvbm5lY3QoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHsgdHJhbnNsYXRlLCB6b29tIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB7IG1heERlcHRoLCBtYXhCcmVhZHRoIH0gPSBjb3VudERlcHRoQW5kQnJlYWR0aChkYXRhKTtcblxuICAgIC8vIGFwcHJveGltYXRlIHJlcXVpcmVkIHBpeGVsIHNpemUgb2YgdGhlIGxhaWQtb3V0IHRyZWVcbiAgICBjb25zdCByZXFXID0gbWF4QnJlYWR0aCAqIG5vZGVTaXplLnggKiBzZXBhcmF0aW9uLnNpYmxpbmdzO1xuICAgIGNvbnN0IHJlcUggPSAobWF4RGVwdGggKyAxKSAqIG5vZGVTaXplLnk7XG5cbiAgICBjb25zdCBhdmFpbFcgPSBNYXRoLm1heCgxLCBkaW1zLndpZHRoIC0gUEFERElORyAqIDIpO1xuICAgIGNvbnN0IGF2YWlsSCA9IE1hdGgubWF4KDEsIGRpbXMuaGVpZ2h0IC0gUEFERElORyAqIDIpO1xuXG4gICAgY29uc3QgZml0Wm9vbSA9IDAuNyAqIE1hdGgubWluKGF2YWlsVyAvIHJlcVcsIGF2YWlsSCAvIHJlcUgpO1xuICAgIGNvbnN0IHogPSBpc0Zpbml0ZShmaXRab29tKSAmJiBmaXRab29tID4gMCA/IGZpdFpvb20gOiAxLjI7XG5cbiAgICByZXR1cm4geyB6b29tOiB6LCB0cmFuc2xhdGU6IHsgeDogZGltcy53aWR0aCAvIDIsIHk6IFBBRERJTkcgfSB9O1xuICB9LCBbXG4gICAgZGF0YSxcbiAgICBub2RlU2l6ZS54LFxuICAgIG5vZGVTaXplLnksXG4gICAgc2VwYXJhdGlvbi5zaWJsaW5ncyxcbiAgICBkaW1zLndpZHRoLFxuICAgIGRpbXMuaGVpZ2h0LFxuICBdKTtcblxuICBmdW5jdGlvbiBzZXRDb2xsYXBzZWRCeURlcHRoKG5vZGU6IGFueSwgbWF4RGVwdGg6IG51bWJlciwgZCA9IDApIHtcbiAgICBub2RlLmNvbGxhcHNlZCA9IGQgPj0gbWF4RGVwdGg7XG4gICAgbm9kZS5jaGlsZHJlbj8uZm9yRWFjaCgoYykgPT4gc2V0Q29sbGFwc2VkQnlEZXB0aChjLCBtYXhEZXB0aCwgZCArIDEpKTtcbiAgICByZXR1cm4gbm9kZTtcbiAgfVxuXG4gIGNvbnN0IHZpZXdEYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKCFkYXRhKSByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBjbG9uZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHJldHVybiBzZXRDb2xsYXBzZWRCeURlcHRoKGNsb25lLCBpbml0aWFsRGVwdGgpO1xuICB9LCBbZGF0YSwgaW5pdGlhbERlcHRoXSk7XG5cbiAgY29uc3QgeyBzaXRlSUQsIGFyZWFJRCB9ID0gdXNlUGFyYW1zKCk7XG5cbiAgY29uc3QgcmVuZGVyQ3VzdG9tTm9kZUVsZW1lbnQgPSAocmQzdFByb3BzKSA9PiB7XG4gICAgY29uc3QgaXNSb290ID0gcmQzdFByb3BzLm5vZGVEYXR1bS5fX3JkM3QuZGVwdGggPT09IDA7XG4gICAgY29uc3Qgc2hvd1NhbXBsZXJzID1cbiAgICAgIHNlbGVjdGVkRmlsdGVycz8uU2FtcGxlckZpbHRlckl0ZW0/LnRvU3RyaW5nKCkgPT09ICd3aXRoJyB8fCBmYWxzZTtcbiAgICBjb25zdCBpbnNpZ2h0RGF0YSA9XG4gICAgICAoc2VsZWN0ZWRGaWx0ZXJzPy5JbnNpZ2h0RGF0YUZpbHRlckl0ZW0/LnRvU3RyaW5nKCkgYXMgSW5zaWdodERhdGEpIHx8XG4gICAgICAnc2NvcmUnO1xuICAgIGNvbnN0IGlzSGlnaGxpZ2h0ID1cbiAgICAgIChzaXRlSUQgJiZcbiAgICAgICAgc2l0ZUlEID09PSByZDN0UHJvcHMubm9kZURhdHVtLmF0dHJpYnV0ZXM/LnBvaW50X2lkPy50b1N0cmluZygpKSB8fFxuICAgICAgKGFyZWFJRCAmJlxuICAgICAgICBhcmVhSUQgPT09IHJkM3RQcm9wcy5ub2RlRGF0dW0uYXR0cmlidXRlcz8uYXJlYV9pZD8udG9TdHJpbmcoKSk7XG4gICAgY29uc3QgaXNFeGNlZWRlZCA9IGV4Y2VlZGVkU2l0ZUlkcy5pbmNsdWRlcyhcbiAgICAgIHJkM3RQcm9wcy5ub2RlRGF0dW0uYXR0cmlidXRlcz8ucG9pbnRfaWQsXG4gICAgKTtcbiAgICByZXR1cm4gIWlzUm9vdCAmJiBzaG91bGRGaWx0ZXJPdXQocmQzdFByb3BzLCBzZWxlY3RlZEZpbHRlcnMpID8gKFxuICAgICAgPGRpdj48L2Rpdj5cbiAgICApIDogaW5zaWdodERhdGEgPT09ICdzY29yZScgPyAoXG4gICAgICA8U2NvcmVOb2RlXG4gICAgICAgIHsuLi5yZDN0UHJvcHN9XG4gICAgICAgIGlzSGlnaGxpZ2h0PXtpc0hpZ2hsaWdodH1cbiAgICAgICAgaXNFeGNlZWRlZD17aXNFeGNlZWRlZH1cbiAgICAgICAgb25Ob2RlQ2xpY2s9e3Jlc3Qub25Ob2RlQ2xpY2t9XG4gICAgICAgIGVhcmx5QWRvcHRlcj17ZWFybHlfYWRvcHRlcn1cbiAgICAgICAgc2hvd1NhbXBsZXJzPXtzaG93U2FtcGxlcnN9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICA8UG9sbHV0aW9uQ29udHJpYnV0b3JOb2RlXG4gICAgICAgIHsuLi5yZDN0UHJvcHN9XG4gICAgICAgIGlzRXhjZWVkZWQ9e2lzRXhjZWVkZWR9XG4gICAgICAgIGlzSGlnaGxpZ2h0PXtpc0hpZ2hsaWdodH1cbiAgICAgICAgb25Ob2RlQ2xpY2s9e3Jlc3Qub25Ob2RlQ2xpY2t9XG4gICAgICAgIGVhcmx5QWRvcHRlcj17ZWFybHlfYWRvcHRlcn1cbiAgICAgICAgc2hvd1NhbXBsZXJzPXtzaG93U2FtcGxlcnN9XG4gICAgICAvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICBzdHlsZT17eyB3aWR0aDogJzEwMHZ3JywgaGVpZ2h0OiAnMTAwdmgnLCBvdmVyZmxvdzogJ2hpZGRlbicgfX1cbiAgICA+XG4gICAgICA8VHJlZVxuICAgICAgICBrZXk9e3RyZWVLZXl9XG4gICAgICAgIGRhdGE9e3ZpZXdEYXRhfVxuICAgICAgICBvcmllbnRhdGlvbj17b3JpZW50YXRpb259XG4gICAgICAgIHBhdGhGdW5jPVwic3RlcFwiXG4gICAgICAgIG5vZGVTaXplPXtub2RlU2l6ZX1cbiAgICAgICAgc2VwYXJhdGlvbj17c2VwYXJhdGlvbn1cbiAgICAgICAgdHJhbnNsYXRlPXt0cmFuc2xhdGV9XG4gICAgICAgIHpvb209e3pvb219XG4gICAgICAgIHpvb21hYmxlXG4gICAgICAgIHNjYWxlRXh0ZW50PXt7IG1pbjogMC4xLCBtYXg6IDIgfX1cbiAgICAgICAgcmVuZGVyQ3VzdG9tTm9kZUVsZW1lbnQ9e3JlbmRlckN1c3RvbU5vZGVFbGVtZW50fVxuICAgICAgICBjb2xsYXBzaWJsZVxuICAgICAgICBpbml0aWFsRGVwdGg9e2luaXRpYWxEZXB0aH1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICAvPlxuICAgIDwvZGl2PlxuICApO1xufVxuIl0sIm1hcHBpbmdzIjoi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
190
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3REM1RyZWUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1Njb3JlTm9kZSIsIl9Qb2xsdXRpb25Db250cmlidXRvck5vZGUiLCJfTmV0d29ya05vZGUiLCJfdXRpbHMiLCJfcmVhY3RSZWR1eCIsIl9yZWFjdFJvdXRlckRvbSIsIl9leGNsdWRlZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiY291bnREZXB0aEFuZEJyZWFkdGgiLCJyb290IiwibWF4RGVwdGgiLCJicmVhZHRoQnlEZXB0aCIsImRmcyIsIm4iLCJfbiRjaGlsZHJlbiIsImQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJNYXRoIiwibWF4IiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiYyIsIm1heEJyZWFkdGgiLCJhcHBseSIsIkF1dG9GaXRUcmVlIiwiX3JlZiIsImRhdGEiLCJfcmVmJG9yaWVudGF0aW9uIiwib3JpZW50YXRpb24iLCJpbml0aWFsRGVwdGgiLCJ0cmVlS2V5IiwiX3JlZiRzZWxlY3RlZEZpbHRlcnMiLCJzZWxlY3RlZEZpbHRlcnMiLCJfcmVmJGV4Y2VlZGVkU2l0ZUlkcyIsImV4Y2VlZGVkU2l0ZUlkcyIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiUEFERElORyIsIndyYXBwZXJSZWYiLCJ1c2VSZWYiLCJub2RlU2l6ZSIsIngiLCJ5Iiwic2VwYXJhdGlvbiIsInNpYmxpbmdzIiwibm9uU2libGluZ3MiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIndpZHRoIiwiaGVpZ2h0IiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRpbXMiLCJzZXREaW1zIiwiZWFybHlfYWRvcHRlciIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJwZXJtaXNzaW9ucyIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJybyIsIlJlc2l6ZU9ic2VydmVyIiwiciIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiX3VzZU1lbW8iLCJ1c2VNZW1vIiwiX2NvdW50RGVwdGhBbmRCcmVhZHRoIiwicmVxVyIsInJlcUgiLCJhdmFpbFciLCJhdmFpbEgiLCJmaXRab29tIiwibWluIiwieiIsImlzRmluaXRlIiwiem9vbSIsInRyYW5zbGF0ZSIsInNldENvbGxhcHNlZEJ5RGVwdGgiLCJub2RlIiwiX25vZGUkY2hpbGRyZW4iLCJjb2xsYXBzZWQiLCJ2aWV3RGF0YSIsImNsb25lIiwiSlNPTiIsInBhcnNlIiwic3RyaW5naWZ5IiwiX3VzZVBhcmFtcyIsInVzZVBhcmFtcyIsInNpdGVJRCIsImFyZWFJRCIsInJlbmRlckN1c3RvbU5vZGVFbGVtZW50IiwicmQzdFByb3BzIiwiX3NlbGVjdGVkRmlsdGVycyRTYW1wIiwiX3NlbGVjdGVkRmlsdGVycyROZXR3IiwiX3NlbGVjdGVkRmlsdGVycyRJbnNpIiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kIiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kMiIsIl9yZDN0UHJvcHMkbm9kZURhdHVtJDMiLCJfcmQzdFByb3BzJG5vZGVEYXR1bSQ0IiwiX3JkM3RQcm9wcyRub2RlRGF0dW0kNSIsImlzUm9vdCIsIm5vZGVEYXR1bSIsIl9fcmQzdCIsImRlcHRoIiwic2hvd1NhbXBsZXJzIiwiU2FtcGxlckZpbHRlckl0ZW0iLCJ0b1N0cmluZyIsImluc2lnaHREYXRhIiwiTmV0d29ya0luc2lnaHREYXRhRmlsdGVySXRlbSIsIkluc2lnaHREYXRhRmlsdGVySXRlbSIsImlzSGlnaGxpZ2h0IiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiYXJlYV9pZCIsImlzRXhjZWVkZWQiLCJpbmNsdWRlcyIsInNob3VsZEZpbHRlck91dCIsImNyZWF0ZUVsZW1lbnQiLCJhc3NpZ24iLCJvbk5vZGVDbGljayIsImVhcmx5QWRvcHRlciIsImluc2lnaHRUeXBlIiwicmVmIiwic3R5bGUiLCJvdmVyZmxvdyIsInBhdGhGdW5jIiwiem9vbWFibGUiLCJzY2FsZUV4dGVudCIsImNvbGxhcHNpYmxlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9BdXRvRml0VHJlZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVJlZiwgdXNlU3RhdGUsIHVzZUVmZmVjdCwgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBUcmVlLCB7IFJhd05vZGVEYXR1bSB9IGZyb20gJ3JlYWN0LWQzLXRyZWUnO1xuaW1wb3J0IFNjb3JlTm9kZSBmcm9tICcuL1Njb3JlTm9kZSc7XG5pbXBvcnQgUG9sbHV0aW9uQ29udHJpYnV0b3JOb2RlIGZyb20gJy4vUG9sbHV0aW9uQ29udHJpYnV0b3JOb2RlJztcbmltcG9ydCBOZXR3b3JrTm9kZSBmcm9tICcuL05ldHdvcmtOb2RlJztcbmltcG9ydCB7IHNob3VsZEZpbHRlck91dCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcblxudHlwZSBTZXAgPSB7IHNpYmxpbmdzOiBudW1iZXI7IG5vblNpYmxpbmdzOiBudW1iZXIgfTtcblxuZnVuY3Rpb24gY291bnREZXB0aEFuZEJyZWFkdGgocm9vdDogUmF3Tm9kZURhdHVtKSB7XG4gIGxldCBtYXhEZXB0aCA9IDA7XG4gIGNvbnN0IGJyZWFkdGhCeURlcHRoOiBudW1iZXJbXSA9IFtdO1xuICBjb25zdCBkZnMgPSAobjogUmF3Tm9kZURhdHVtLCBkID0gMCkgPT4ge1xuICAgIG1heERlcHRoID0gTWF0aC5tYXgobWF4RGVwdGgsIGQpO1xuICAgIGJyZWFkdGhCeURlcHRoW2RdID0gKGJyZWFkdGhCeURlcHRoW2RdIHx8IDApICsgMTtcbiAgICBuLmNoaWxkcmVuPy5mb3JFYWNoKChjKSA9PiBkZnMoYywgZCArIDEpKTtcbiAgfTtcbiAgZGZzKHJvb3QpO1xuICBjb25zdCBtYXhCcmVhZHRoID0gTWF0aC5tYXgoLi4uYnJlYWR0aEJ5RGVwdGgpO1xuICByZXR1cm4geyBtYXhEZXB0aCwgbWF4QnJlYWR0aCB9O1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQXV0b0ZpdFRyZWUoe1xuICBkYXRhLFxuICBvcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCcsXG4gIGluaXRpYWxEZXB0aCxcbiAgdHJlZUtleSxcbiAgc2VsZWN0ZWRGaWx0ZXJzID0ge30sXG4gIGV4Y2VlZGVkU2l0ZUlkcyA9IFtdLFxuICAuLi5yZXN0XG59OiB7XG4gIGRhdGE6IGFueTtcbiAgb3JpZW50YXRpb24/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuICBpbml0aWFsRGVwdGg6IG51bWJlcjtcbiAgb25Ob2RlQ2xpY2s/OiAobm9kZURhdGE6IGFueSkgPT4gdm9pZDtcbiAgdHJlZUtleTogbnVtYmVyO1xuICBzZWxlY3RlZEZpbHRlcnM/OiBhbnk7XG4gIGV4Y2VlZGVkU2l0ZUlkcz86IG51bWJlcltdO1xufSkge1xuICBjb25zdCBQQURESU5HID0gNDI7IC8vIHNjcmVlbiBwYWRkaW5nIGluIHB4XG4gIGNvbnN0IHdyYXBwZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCBub2RlU2l6ZSA9IHsgeDogMjcwLCB5OiAyNzAgfTsgLy8gaG93IG11Y2ggc3BhY2UgZWFjaCBub2RlIG9jY3VwaWVzXG4gIGNvbnN0IHNlcGFyYXRpb246IFNlcCA9IHsgc2libGluZ3M6IDAuOCwgbm9uU2libGluZ3M6IDAuOSB9OyAvLyBub2RlIHNwYWNpbmdcbiAgY29uc3QgW2RpbXMsIHNldERpbXNdID0gdXNlU3RhdGUoeyB3aWR0aDogNTAwLCBoZWlnaHQ6IDEwMCB9KTtcbiAgY29uc3QgZWFybHlfYWRvcHRlciA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogYW55KSA9PiBzdGF0ZS5wZXJtaXNzaW9ucy5lYXJseV9hZG9wdGVyLFxuICApO1xuXG4gIC8vIGtlZXAgd3JhcHBlciBzaXplZCB0byB0aGUgdmlld3BvcnRcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIXdyYXBwZXJSZWYuY3VycmVudCkgcmV0dXJuO1xuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIGNvbnN0IHIgPSB3cmFwcGVyUmVmLmN1cnJlbnQhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgc2V0RGltcyh7IHdpZHRoOiByLndpZHRoLCBoZWlnaHQ6IHIuaGVpZ2h0IH0pO1xuICAgIH0pO1xuICAgIHJvLm9ic2VydmUod3JhcHBlclJlZi5jdXJyZW50KTtcbiAgICByZXR1cm4gKCkgPT4gcm8uZGlzY29ubmVjdCgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgeyB0cmFuc2xhdGUsIHpvb20gfSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHsgbWF4RGVwdGgsIG1heEJyZWFkdGggfSA9IGNvdW50RGVwdGhBbmRCcmVhZHRoKGRhdGEpO1xuXG4gICAgLy8gYXBwcm94aW1hdGUgcmVxdWlyZWQgcGl4ZWwgc2l6ZSBvZiB0aGUgbGFpZC1vdXQgdHJlZVxuICAgIGNvbnN0IHJlcVcgPSBtYXhCcmVhZHRoICogbm9kZVNpemUueCAqIHNlcGFyYXRpb24uc2libGluZ3M7XG4gICAgY29uc3QgcmVxSCA9IChtYXhEZXB0aCArIDEpICogbm9kZVNpemUueTtcblxuICAgIGNvbnN0IGF2YWlsVyA9IE1hdGgubWF4KDEsIGRpbXMud2lkdGggLSBQQURESU5HICogMik7XG4gICAgY29uc3QgYXZhaWxIID0gTWF0aC5tYXgoMSwgZGltcy5oZWlnaHQgLSBQQURESU5HICogMik7XG5cbiAgICBjb25zdCBmaXRab29tID0gMC43ICogTWF0aC5taW4oYXZhaWxXIC8gcmVxVywgYXZhaWxIIC8gcmVxSCk7XG4gICAgY29uc3QgeiA9IGlzRmluaXRlKGZpdFpvb20pICYmIGZpdFpvb20gPiAwID8gZml0Wm9vbSA6IDEuMjtcblxuICAgIHJldHVybiB7IHpvb206IHosIHRyYW5zbGF0ZTogeyB4OiBkaW1zLndpZHRoIC8gMiwgeTogUEFERElORyB9IH07XG4gIH0sIFtcbiAgICBkYXRhLFxuICAgIG5vZGVTaXplLngsXG4gICAgbm9kZVNpemUueSxcbiAgICBzZXBhcmF0aW9uLnNpYmxpbmdzLFxuICAgIGRpbXMud2lkdGgsXG4gICAgZGltcy5oZWlnaHQsXG4gIF0pO1xuXG4gIGZ1bmN0aW9uIHNldENvbGxhcHNlZEJ5RGVwdGgobm9kZTogYW55LCBtYXhEZXB0aDogbnVtYmVyLCBkID0gMCkge1xuICAgIG5vZGUuY29sbGFwc2VkID0gZCA+PSBtYXhEZXB0aDtcbiAgICBub2RlLmNoaWxkcmVuPy5mb3JFYWNoKChjKSA9PiBzZXRDb2xsYXBzZWRCeURlcHRoKGMsIG1heERlcHRoLCBkICsgMSkpO1xuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgY29uc3Qgdmlld0RhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWRhdGEpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNsb25lID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgcmV0dXJuIHNldENvbGxhcHNlZEJ5RGVwdGgoY2xvbmUsIGluaXRpYWxEZXB0aCk7XG4gIH0sIFtkYXRhLCBpbml0aWFsRGVwdGhdKTtcblxuICBjb25zdCB7IHNpdGVJRCwgYXJlYUlEIH0gPSB1c2VQYXJhbXMoKTtcblxuICBjb25zdCByZW5kZXJDdXN0b21Ob2RlRWxlbWVudCA9IChyZDN0UHJvcHMpID0+IHtcbiAgICBjb25zdCBpc1Jvb3QgPSByZDN0UHJvcHMubm9kZURhdHVtLl9fcmQzdC5kZXB0aCA9PT0gMDtcbiAgICBjb25zdCBzaG93U2FtcGxlcnMgPVxuICAgICAgc2VsZWN0ZWRGaWx0ZXJzPy5TYW1wbGVyRmlsdGVySXRlbT8udG9TdHJpbmcoKSA9PT0gJ3dpdGgnIHx8IGZhbHNlO1xuICAgIGNvbnN0IGluc2lnaHREYXRhID1cbiAgICAgIHNlbGVjdGVkRmlsdGVycz8uTmV0d29ya0luc2lnaHREYXRhRmlsdGVySXRlbT8udG9TdHJpbmcoKSB8fFxuICAgICAgc2VsZWN0ZWRGaWx0ZXJzPy5JbnNpZ2h0RGF0YUZpbHRlckl0ZW0/LnRvU3RyaW5nKCkgfHxcbiAgICAgICdzY29yZSc7XG4gICAgY29uc3QgaXNIaWdobGlnaHQgPVxuICAgICAgKHNpdGVJRCAmJlxuICAgICAgICBzaXRlSUQgPT09IHJkM3RQcm9wcy5ub2RlRGF0dW0uYXR0cmlidXRlcz8ucG9pbnRfaWQ/LnRvU3RyaW5nKCkpIHx8XG4gICAgICAoYXJlYUlEICYmXG4gICAgICAgIGFyZWFJRCA9PT0gcmQzdFByb3BzLm5vZGVEYXR1bS5hdHRyaWJ1dGVzPy5hcmVhX2lkPy50b1N0cmluZygpKTtcbiAgICBjb25zdCBpc0V4Y2VlZGVkID0gZXhjZWVkZWRTaXRlSWRzLmluY2x1ZGVzKFxuICAgICAgcmQzdFByb3BzLm5vZGVEYXR1bS5hdHRyaWJ1dGVzPy5wb2ludF9pZCxcbiAgICApO1xuICAgIGlmICghaXNSb290ICYmIHNob3VsZEZpbHRlck91dChyZDN0UHJvcHMsIHNlbGVjdGVkRmlsdGVycykpIHtcbiAgICAgIHJldHVybiA8ZGl2PjwvZGl2PjtcbiAgICB9XG5cbiAgICBpZiAoaW5zaWdodERhdGEgPT09ICdzY29yZScpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTY29yZU5vZGVcbiAgICAgICAgICB7Li4ucmQzdFByb3BzfVxuICAgICAgICAgIGlzSGlnaGxpZ2h0PXtpc0hpZ2hsaWdodH1cbiAgICAgICAgICBpc0V4Y2VlZGVkPXtpc0V4Y2VlZGVkfVxuICAgICAgICAgIG9uTm9kZUNsaWNrPXtyZXN0Lm9uTm9kZUNsaWNrfVxuICAgICAgICAgIGVhcmx5QWRvcHRlcj17ZWFybHlfYWRvcHRlcn1cbiAgICAgICAgICBzaG93U2FtcGxlcnM9e3Nob3dTYW1wbGVyc31cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGluc2lnaHREYXRhID09PSAncG9sbHV0aW9uX2NvbnRyaWJ1dG9yJykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFBvbGx1dGlvbkNvbnRyaWJ1dG9yTm9kZVxuICAgICAgICAgIHsuLi5yZDN0UHJvcHN9XG4gICAgICAgICAgaXNFeGNlZWRlZD17aXNFeGNlZWRlZH1cbiAgICAgICAgICBpc0hpZ2hsaWdodD17aXNIaWdobGlnaHR9XG4gICAgICAgICAgb25Ob2RlQ2xpY2s9e3Jlc3Qub25Ob2RlQ2xpY2t9XG4gICAgICAgICAgZWFybHlBZG9wdGVyPXtlYXJseV9hZG9wdGVyfVxuICAgICAgICAgIHNob3dTYW1wbGVycz17c2hvd1NhbXBsZXJzfVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPE5ldHdvcmtOb2RlXG4gICAgICAgIHsuLi5yZDN0UHJvcHN9XG4gICAgICAgIGluc2lnaHRUeXBlPXtpbnNpZ2h0RGF0YX1cbiAgICAgICAgaXNFeGNlZWRlZD17aXNFeGNlZWRlZH1cbiAgICAgICAgaXNIaWdobGlnaHQ9e2lzSGlnaGxpZ2h0fVxuICAgICAgICBvbk5vZGVDbGljaz17cmVzdC5vbk5vZGVDbGlja31cbiAgICAgICAgZWFybHlBZG9wdGVyPXtlYXJseV9hZG9wdGVyfVxuICAgICAgICBzaG93U2FtcGxlcnM9e3Nob3dTYW1wbGVyc31cbiAgICAgIC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17d3JhcHBlclJlZn1cbiAgICAgIHN0eWxlPXt7IHdpZHRoOiAnMTAwdncnLCBoZWlnaHQ6ICcxMDB2aCcsIG92ZXJmbG93OiAnaGlkZGVuJyB9fVxuICAgID5cbiAgICAgIDxUcmVlXG4gICAgICAgIGtleT17dHJlZUtleX1cbiAgICAgICAgZGF0YT17dmlld0RhdGF9XG4gICAgICAgIG9yaWVudGF0aW9uPXtvcmllbnRhdGlvbn1cbiAgICAgICAgcGF0aEZ1bmM9XCJzdGVwXCJcbiAgICAgICAgbm9kZVNpemU9e25vZGVTaXplfVxuICAgICAgICBzZXBhcmF0aW9uPXtzZXBhcmF0aW9ufVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgem9vbT17em9vbX1cbiAgICAgICAgem9vbWFibGVcbiAgICAgICAgc2NhbGVFeHRlbnQ9e3sgbWluOiAwLjEsIG1heDogMiB9fVxuICAgICAgICByZW5kZXJDdXN0b21Ob2RlRWxlbWVudD17cmVuZGVyQ3VzdG9tTm9kZUVsZW1lbnR9XG4gICAgICAgIGNvbGxhcHNpYmxlXG4gICAgICAgIGluaXRpYWxEZXB0aD17aW5pdGlhbERlcHRofVxuICAgICAgICB7Li4ucmVzdH1cbiAgICAgIC8+XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxZQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxVQUFBLEdBQUFELHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSx5QkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssWUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZUFBQSxHQUFBUixPQUFBO0FBQTZDLElBQUFTLFNBQUE7QUFBQSxTQUFBQyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVosd0JBQUFnQixHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFaLEdBQUEsUUFBQVksR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixHQUFBLEVBQUFZLEdBQUEsU0FBQUksSUFBQSxHQUFBUixxQkFBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFYLEdBQUEsRUFBQVksR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBWixHQUFBLENBQUFZLEdBQUEsU0FBQUwsTUFBQSxDQUFBSixPQUFBLEdBQUFILEdBQUEsTUFBQUksS0FBQSxJQUFBQSxLQUFBLENBQUFhLEdBQUEsQ0FBQWpCLEdBQUEsRUFBQU8sTUFBQSxZQUFBQSxNQUFBO0FBSTdDLFNBQVNXLG9CQUFvQkEsQ0FBQ0MsSUFBa0IsRUFBRTtFQUNoRCxJQUFJQyxRQUFRLEdBQUcsQ0FBQztFQUNoQixJQUFNQyxjQUF3QixHQUFHLEVBQUU7RUFDbkMsSUFBTUMsR0FBRyxHQUFHLFNBQU5BLEdBQUdBLENBQUlDLENBQWUsRUFBWTtJQUFBLElBQUFDLFdBQUE7SUFBQSxJQUFWQyxDQUFDLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLENBQUM7SUFDakNOLFFBQVEsR0FBR1MsSUFBSSxDQUFDQyxHQUFHLENBQUNWLFFBQVEsRUFBRUssQ0FBQyxDQUFDO0lBQ2hDSixjQUFjLENBQUNJLENBQUMsQ0FBQyxHQUFHLENBQUNKLGNBQWMsQ0FBQ0ksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDaEQsQ0FBQUQsV0FBQSxHQUFBRCxDQUFDLENBQUNRLFFBQVEsY0FBQVAsV0FBQSx1QkFBVkEsV0FBQSxDQUFZUSxPQUFPLENBQUMsVUFBQ0MsQ0FBQztNQUFBLE9BQUtYLEdBQUcsQ0FBQ1csQ0FBQyxFQUFFUixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQUEsRUFBQztFQUMzQyxDQUFDO0VBQ0RILEdBQUcsQ0FBQ0gsSUFBSSxDQUFDO0VBQ1QsSUFBTWUsVUFBVSxHQUFHTCxJQUFJLENBQUNDLEdBQUcsQ0FBQUssS0FBQSxDQUFSTixJQUFJLEVBQVFSLGNBQWMsQ0FBQztFQUM5QyxPQUFPO0lBQUVELFFBQVEsRUFBUkEsUUFBUTtJQUFFYyxVQUFVLEVBQVZBO0VBQVcsQ0FBQztBQUNqQztBQUNlLFNBQVNFLFdBQVdBLENBQUFDLElBQUEsRUFnQmhDO0VBQUEsSUFmREMsSUFBSSxHQUFBRCxJQUFBLENBQUpDLElBQUk7SUFBQUMsZ0JBQUEsR0FBQUYsSUFBQSxDQUNKRyxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsZ0JBQUEsY0FBRyxVQUFVLEdBQUFBLGdCQUFBO0lBQ3hCRSxZQUFZLEdBQUFKLElBQUEsQ0FBWkksWUFBWTtJQUNaQyxPQUFPLEdBQUFMLElBQUEsQ0FBUEssT0FBTztJQUFBQyxvQkFBQSxHQUFBTixJQUFBLENBQ1BPLGVBQWU7SUFBZkEsZUFBZSxHQUFBRCxvQkFBQSxjQUFHLENBQUMsQ0FBQyxHQUFBQSxvQkFBQTtJQUFBRSxvQkFBQSxHQUFBUixJQUFBLENBQ3BCUyxlQUFlO0lBQWZBLGVBQWUsR0FBQUQsb0JBQUEsY0FBRyxFQUFFLEdBQUFBLG9CQUFBO0lBQ2pCRSxJQUFJLE9BQUFDLHlCQUFBLENBQUE3QyxPQUFBLEVBQUFrQyxJQUFBLEVBQUEzQyxTQUFBO0VBVVAsSUFBTXVELE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztFQUNwQixJQUFNQyxVQUFVLEdBQUcsSUFBQUMsYUFBTSxFQUFpQixJQUFJLENBQUM7RUFDL0MsSUFBTUMsUUFBUSxHQUFHO0lBQUVDLENBQUMsRUFBRSxHQUFHO0lBQUVDLENBQUMsRUFBRTtFQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3JDLElBQU1DLFVBQWUsR0FBRztJQUFFQyxRQUFRLEVBQUUsR0FBRztJQUFFQyxXQUFXLEVBQUU7RUFBSSxDQUFDLENBQUMsQ0FBQztFQUM3RCxJQUFBQyxTQUFBLEdBQXdCLElBQUFDLGVBQVEsRUFBQztNQUFFQyxLQUFLLEVBQUUsR0FBRztNQUFFQyxNQUFNLEVBQUU7SUFBSSxDQUFDLENBQUM7SUFBQUMsVUFBQSxPQUFBQyxlQUFBLENBQUE1RCxPQUFBLEVBQUF1RCxTQUFBO0lBQXRETSxJQUFJLEdBQUFGLFVBQUE7SUFBRUcsT0FBTyxHQUFBSCxVQUFBO0VBQ3BCLElBQU1JLGFBQWEsR0FBRyxJQUFBQyx1QkFBVyxFQUMvQixVQUFDQyxLQUFVO0lBQUEsT0FBS0EsS0FBSyxDQUFDQyxXQUFXLENBQUNILGFBQWE7RUFBQSxDQUNqRCxDQUFDOztFQUVEO0VBQ0EsSUFBQUksZ0JBQVMsRUFBQyxZQUFNO0lBQ2QsSUFBSSxDQUFDcEIsVUFBVSxDQUFDcUIsT0FBTyxFQUFFO0lBQ3pCLElBQU1DLEVBQUUsR0FBRyxJQUFJQyxjQUFjLENBQUMsWUFBTTtNQUNsQyxJQUFNQyxDQUFDLEdBQUd4QixVQUFVLENBQUNxQixPQUFPLENBQUVJLHFCQUFxQixDQUFDLENBQUM7TUFDckRWLE9BQU8sQ0FBQztRQUFFTCxLQUFLLEVBQUVjLENBQUMsQ0FBQ2QsS0FBSztRQUFFQyxNQUFNLEVBQUVhLENBQUMsQ0FBQ2I7TUFBTyxDQUFDLENBQUM7SUFDL0MsQ0FBQyxDQUFDO0lBQ0ZXLEVBQUUsQ0FBQ0ksT0FBTyxDQUFDMUIsVUFBVSxDQUFDcUIsT0FBTyxDQUFDO0lBQzlCLE9BQU87TUFBQSxPQUFNQyxFQUFFLENBQUNLLFVBQVUsQ0FBQyxDQUFDO0lBQUE7RUFDOUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQUFDLFFBQUEsR0FBNEIsSUFBQUMsY0FBTyxFQUFDLFlBQU07TUFDeEMsSUFBQUMscUJBQUEsR0FBaUM5RCxvQkFBb0IsQ0FBQ29CLElBQUksQ0FBQztRQUFuRGxCLFFBQVEsR0FBQTRELHFCQUFBLENBQVI1RCxRQUFRO1FBQUVjLFVBQVUsR0FBQThDLHFCQUFBLENBQVY5QyxVQUFVOztNQUU1QjtNQUNBLElBQU0rQyxJQUFJLEdBQUcvQyxVQUFVLEdBQUdrQixRQUFRLENBQUNDLENBQUMsR0FBR0UsVUFBVSxDQUFDQyxRQUFRO01BQzFELElBQU0wQixJQUFJLEdBQUcsQ0FBQzlELFFBQVEsR0FBRyxDQUFDLElBQUlnQyxRQUFRLENBQUNFLENBQUM7TUFFeEMsSUFBTTZCLE1BQU0sR0FBR3RELElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRWtDLElBQUksQ0FBQ0osS0FBSyxHQUFHWCxPQUFPLEdBQUcsQ0FBQyxDQUFDO01BQ3BELElBQU1tQyxNQUFNLEdBQUd2RCxJQUFJLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUVrQyxJQUFJLENBQUNILE1BQU0sR0FBR1osT0FBTyxHQUFHLENBQUMsQ0FBQztNQUVyRCxJQUFNb0MsT0FBTyxHQUFHLEdBQUcsR0FBR3hELElBQUksQ0FBQ3lELEdBQUcsQ0FBQ0gsTUFBTSxHQUFHRixJQUFJLEVBQUVHLE1BQU0sR0FBR0YsSUFBSSxDQUFDO01BQzVELElBQU1LLENBQUMsR0FBR0MsUUFBUSxDQUFDSCxPQUFPLENBQUMsSUFBSUEsT0FBTyxHQUFHLENBQUMsR0FBR0EsT0FBTyxHQUFHLEdBQUc7TUFFMUQsT0FBTztRQUFFSSxJQUFJLEVBQUVGLENBQUM7UUFBRUcsU0FBUyxFQUFFO1VBQUVyQyxDQUFDLEVBQUVXLElBQUksQ0FBQ0osS0FBSyxHQUFHLENBQUM7VUFBRU4sQ0FBQyxFQUFFTDtRQUFRO01BQUUsQ0FBQztJQUNsRSxDQUFDLEVBQUUsQ0FDRFgsSUFBSSxFQUNKYyxRQUFRLENBQUNDLENBQUMsRUFDVkQsUUFBUSxDQUFDRSxDQUFDLEVBQ1ZDLFVBQVUsQ0FBQ0MsUUFBUSxFQUNuQlEsSUFBSSxDQUFDSixLQUFLLEVBQ1ZJLElBQUksQ0FBQ0gsTUFBTSxDQUNaLENBQUM7SUFyQk02QixTQUFTLEdBQUFaLFFBQUEsQ0FBVFksU0FBUztJQUFFRCxJQUFJLEdBQUFYLFFBQUEsQ0FBSlcsSUFBSTtFQXVCdkIsU0FBU0UsbUJBQW1CQSxDQUFDQyxJQUFTLEVBQUV4RSxRQUFnQixFQUFTO0lBQUEsSUFBQXlFLGNBQUE7SUFBQSxJQUFQcEUsQ0FBQyxHQUFBQyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBRSxTQUFBLEdBQUFGLFNBQUEsTUFBRyxDQUFDO0lBQzdEa0UsSUFBSSxDQUFDRSxTQUFTLEdBQUdyRSxDQUFDLElBQUlMLFFBQVE7SUFDOUIsQ0FBQXlFLGNBQUEsR0FBQUQsSUFBSSxDQUFDN0QsUUFBUSxjQUFBOEQsY0FBQSx1QkFBYkEsY0FBQSxDQUFlN0QsT0FBTyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLMEQsbUJBQW1CLENBQUMxRCxDQUFDLEVBQUViLFFBQVEsRUFBRUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUFBLEVBQUM7SUFDdEUsT0FBT21FLElBQUk7RUFDYjtFQUVBLElBQU1HLFFBQVEsR0FBRyxJQUFBaEIsY0FBTyxFQUFDLFlBQU07SUFDN0IsSUFBSSxDQUFDekMsSUFBSSxFQUFFLE9BQU8sSUFBSTtJQUN0QixJQUFNMEQsS0FBSyxHQUFHQyxJQUFJLENBQUNDLEtBQUssQ0FBQ0QsSUFBSSxDQUFDRSxTQUFTLENBQUM3RCxJQUFJLENBQUMsQ0FBQztJQUM5QyxPQUFPcUQsbUJBQW1CLENBQUNLLEtBQUssRUFBRXZELFlBQVksQ0FBQztFQUNqRCxDQUFDLEVBQUUsQ0FBQ0gsSUFBSSxFQUFFRyxZQUFZLENBQUMsQ0FBQztFQUV4QixJQUFBMkQsVUFBQSxHQUEyQixJQUFBQyx5QkFBUyxFQUFDLENBQUM7SUFBOUJDLE1BQU0sR0FBQUYsVUFBQSxDQUFORSxNQUFNO0lBQUVDLE1BQU0sR0FBQUgsVUFBQSxDQUFORyxNQUFNO0VBRXRCLElBQU1DLHVCQUF1QixHQUFHLFNBQTFCQSx1QkFBdUJBLENBQUlDLFNBQVMsRUFBSztJQUFBLElBQUFDLHFCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBO0lBQzdDLElBQU1DLE1BQU0sR0FBR1QsU0FBUyxDQUFDVSxTQUFTLENBQUNDLE1BQU0sQ0FBQ0MsS0FBSyxLQUFLLENBQUM7SUFDckQsSUFBTUMsWUFBWSxHQUNoQixDQUFBMUUsZUFBZSxhQUFmQSxlQUFlLHdCQUFBOEQscUJBQUEsR0FBZjlELGVBQWUsQ0FBRTJFLGlCQUFpQixjQUFBYixxQkFBQSx1QkFBbENBLHFCQUFBLENBQW9DYyxRQUFRLENBQUMsQ0FBQyxNQUFLLE1BQU0sSUFBSSxLQUFLO0lBQ3BFLElBQU1DLFdBQVcsR0FDZixDQUFBN0UsZUFBZSxhQUFmQSxlQUFlLHdCQUFBK0QscUJBQUEsR0FBZi9ELGVBQWUsQ0FBRThFLDRCQUE0QixjQUFBZixxQkFBQSx1QkFBN0NBLHFCQUFBLENBQStDYSxRQUFRLENBQUMsQ0FBQyxNQUN6RDVFLGVBQWUsYUFBZkEsZUFBZSx3QkFBQWdFLHFCQUFBLEdBQWZoRSxlQUFlLENBQUUrRSxxQkFBcUIsY0FBQWYscUJBQUEsdUJBQXRDQSxxQkFBQSxDQUF3Q1ksUUFBUSxDQUFDLENBQUMsS0FDbEQsT0FBTztJQUNULElBQU1JLFdBQVcsR0FDZHRCLE1BQU0sSUFDTEEsTUFBTSxPQUFBTyxxQkFBQSxHQUFLSixTQUFTLENBQUNVLFNBQVMsQ0FBQ1UsVUFBVSxjQUFBaEIscUJBQUEsd0JBQUFDLHNCQUFBLEdBQTlCRCxxQkFBQSxDQUFnQ2lCLFFBQVEsY0FBQWhCLHNCQUFBLHVCQUF4Q0Esc0JBQUEsQ0FBMENVLFFBQVEsQ0FBQyxDQUFDLEtBQ2hFakIsTUFBTSxJQUNMQSxNQUFNLE9BQUFRLHNCQUFBLEdBQUtOLFNBQVMsQ0FBQ1UsU0FBUyxDQUFDVSxVQUFVLGNBQUFkLHNCQUFBLHdCQUFBQyxzQkFBQSxHQUE5QkQsc0JBQUEsQ0FBZ0NnQixPQUFPLGNBQUFmLHNCQUFBLHVCQUF2Q0Esc0JBQUEsQ0FBeUNRLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbkUsSUFBTVEsVUFBVSxHQUFHbEYsZUFBZSxDQUFDbUYsUUFBUSxFQUFBaEIsc0JBQUEsR0FDekNSLFNBQVMsQ0FBQ1UsU0FBUyxDQUFDVSxVQUFVLGNBQUFaLHNCQUFBLHVCQUE5QkEsc0JBQUEsQ0FBZ0NhLFFBQ2xDLENBQUM7SUFDRCxJQUFJLENBQUNaLE1BQU0sSUFBSSxJQUFBZ0Isc0JBQWUsRUFBQ3pCLFNBQVMsRUFBRTdELGVBQWUsQ0FBQyxFQUFFO01BQzFELG9CQUFPN0QsTUFBQSxDQUFBb0IsT0FBQSxDQUFBZ0ksYUFBQSxZQUFVLENBQUM7SUFDcEI7SUFFQSxJQUFJVixXQUFXLEtBQUssT0FBTyxFQUFFO01BQzNCLG9CQUNFMUksTUFBQSxDQUFBb0IsT0FBQSxDQUFBZ0ksYUFBQSxDQUFDL0ksVUFBQSxDQUFBZSxPQUFTLEVBQUFNLE1BQUEsQ0FBQTJILE1BQUEsS0FDSjNCLFNBQVM7UUFDYm1CLFdBQVcsRUFBRUEsV0FBWTtRQUN6QkksVUFBVSxFQUFFQSxVQUFXO1FBQ3ZCSyxXQUFXLEVBQUV0RixJQUFJLENBQUNzRixXQUFZO1FBQzlCQyxZQUFZLEVBQUVwRSxhQUFjO1FBQzVCb0QsWUFBWSxFQUFFQTtNQUFhLEVBQzVCLENBQUM7SUFFTjtJQUVBLElBQUlHLFdBQVcsS0FBSyx1QkFBdUIsRUFBRTtNQUMzQyxvQkFDRTFJLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQWdJLGFBQUEsQ0FBQzlJLHlCQUFBLENBQUFjLE9BQXdCLEVBQUFNLE1BQUEsQ0FBQTJILE1BQUEsS0FDbkIzQixTQUFTO1FBQ2J1QixVQUFVLEVBQUVBLFVBQVc7UUFDdkJKLFdBQVcsRUFBRUEsV0FBWTtRQUN6QlMsV0FBVyxFQUFFdEYsSUFBSSxDQUFDc0YsV0FBWTtRQUM5QkMsWUFBWSxFQUFFcEUsYUFBYztRQUM1Qm9ELFlBQVksRUFBRUE7TUFBYSxFQUM1QixDQUFDO0lBRU47SUFFQSxvQkFDRXZJLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQWdJLGFBQUEsQ0FBQzdJLFlBQUEsQ0FBQWEsT0FBVyxFQUFBTSxNQUFBLENBQUEySCxNQUFBLEtBQ04zQixTQUFTO01BQ2I4QixXQUFXLEVBQUVkLFdBQVk7TUFDekJPLFVBQVUsRUFBRUEsVUFBVztNQUN2QkosV0FBVyxFQUFFQSxXQUFZO01BQ3pCUyxXQUFXLEVBQUV0RixJQUFJLENBQUNzRixXQUFZO01BQzlCQyxZQUFZLEVBQUVwRSxhQUFjO01BQzVCb0QsWUFBWSxFQUFFQTtJQUFhLEVBQzVCLENBQUM7RUFFTixDQUFDO0VBRUQsb0JBQ0V2SSxNQUFBLENBQUFvQixPQUFBLENBQUFnSSxhQUFBO0lBQ0VLLEdBQUcsRUFBRXRGLFVBQVc7SUFDaEJ1RixLQUFLLEVBQUU7TUFBRTdFLEtBQUssRUFBRSxPQUFPO01BQUVDLE1BQU0sRUFBRSxPQUFPO01BQUU2RSxRQUFRLEVBQUU7SUFBUztFQUFFLGdCQUUvRDNKLE1BQUEsQ0FBQW9CLE9BQUEsQ0FBQWdJLGFBQUEsQ0FBQ2pKLFlBQUEsQ0FBQWlCLE9BQUksRUFBQU0sTUFBQSxDQUFBMkgsTUFBQTtJQUNIeEgsR0FBRyxFQUFFOEIsT0FBUTtJQUNiSixJQUFJLEVBQUV5RCxRQUFTO0lBQ2Z2RCxXQUFXLEVBQUVBLFdBQVk7SUFDekJtRyxRQUFRLEVBQUMsTUFBTTtJQUNmdkYsUUFBUSxFQUFFQSxRQUFTO0lBQ25CRyxVQUFVLEVBQUVBLFVBQVc7SUFDdkJtQyxTQUFTLEVBQUVBLFNBQVU7SUFDckJELElBQUksRUFBRUEsSUFBSztJQUNYbUQsUUFBUTtJQUNSQyxXQUFXLEVBQUU7TUFBRXZELEdBQUcsRUFBRSxHQUFHO01BQUV4RCxHQUFHLEVBQUU7SUFBRSxDQUFFO0lBQ2xDMEUsdUJBQXVCLEVBQUVBLHVCQUF3QjtJQUNqRHNDLFdBQVc7SUFDWHJHLFlBQVksRUFBRUE7RUFBYSxHQUN2Qk0sSUFBSSxDQUNULENBQ0UsQ0FBQztBQUVWIn0=
@@ -13,6 +13,7 @@ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime
13
13
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
  var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
16
+ var _kql = require("utilities/kql");
16
17
  var _utils = require("./utils");
17
18
  var _reactRedux = require("react-redux");
18
19
  var _AutoFitTree = _interopRequireDefault(require("./AutoFitTree"));
@@ -24,7 +25,11 @@ var _useApiWithDashboardQuery = require("../../hooks/useApiWithDashboardQuery");
24
25
  var _FilterContainer = _interopRequireDefault(require("../../pages/EventsPage/events/events_list/Filter/FilterContainer"));
25
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
27
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
- var HierarchyGraph = function HierarchyGraph() {
28
+ var HierarchyGraph = function HierarchyGraph(_ref) {
29
+ var _ref$show = _ref.show,
30
+ show = _ref$show === void 0 ? false : _ref$show,
31
+ _ref$filterType = _ref.filterType,
32
+ filterType = _ref$filterType === void 0 ? 'HierarchyFilter' : _ref$filterType;
28
33
  var searchQuery = (0, _useQueryURL.default)();
29
34
  var ReduxState = (0, _reactRedux.useSelector)(function (state) {
30
35
  return state;
@@ -56,7 +61,7 @@ var HierarchyGraph = function HierarchyGraph() {
56
61
  _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
57
62
  exceededSiteIds = _useState12[0],
58
63
  setExceededSiteIds = _useState12[1];
59
- var isHierarchyTab = searchQuery.get('view') === 'hierarchy';
64
+ var isHierarchyTab = searchQuery.get('view') === 'hierarchy' || show;
60
65
  var points_data = ReduxState.points_data,
61
66
  edges_data = ReduxState.edges_data,
62
67
  _ReduxState$global_da = ReduxState.global_data,
@@ -75,7 +80,8 @@ var HierarchyGraph = function HierarchyGraph() {
75
80
  }, []);
76
81
  var paramsAll = (0, _react.useMemo)(function () {
77
82
  return {
78
- type: 'All'
83
+ type: 'All',
84
+ is_network: 'NetworkFilter' === filterType ? 'true' : 'false'
79
85
  };
80
86
  }, []);
81
87
 
@@ -99,11 +105,15 @@ var HierarchyGraph = function HierarchyGraph() {
99
105
  pollution = _step$value.pollution,
100
106
  sector_name = _step$value.sector_name,
101
107
  sector_id = _step$value.sector_id,
102
- contributor_percents = _step$value.contributor_percents;
108
+ contributor_percents = _step$value.contributor_percents,
109
+ risk = _step$value.risk,
110
+ cost = _step$value.cost;
103
111
  var extraData = {
104
112
  sector_name: sector_name,
105
113
  contributor_percents: contributor_percents,
106
- sector_id: sector_id
114
+ sector_id: sector_id,
115
+ risk: risk,
116
+ cost: cost
107
117
  };
108
118
  if (pollution === null || pollution === void 0 ? void 0 : pollution.type_distribution) extraData['pollution'] = pollution.type_distribution;
109
119
  m.set(site_id, extraData);
@@ -172,7 +182,7 @@ var HierarchyGraph = function HierarchyGraph() {
172
182
  // Process the applied filter as needed
173
183
  var selectedFilters = {};
174
184
  appliedFilter.filter_items.forEach(function (item) {
175
- selectedFilters[item.type] = item.selected_options;
185
+ selectedFilters[item.type] = (0, _kql.parseSelectedItems)(item)[0];
176
186
  });
177
187
  setFilterOptions(selectedFilters);
178
188
  var samplingParameters = appliedFilter.filter_items.find(function (item) {
@@ -206,7 +216,7 @@ var HierarchyGraph = function HierarchyGraph() {
206
216
  return;
207
217
  }
208
218
  var fetchExceededSites = /*#__PURE__*/function () {
209
- var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
219
+ var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
210
220
  var response, _yield$response$json, data, siteIds;
211
221
  return _regenerator.default.wrap(function _callee$(_context) {
212
222
  while (1) {
@@ -244,7 +254,7 @@ var HierarchyGraph = function HierarchyGraph() {
244
254
  }, _callee, null, [[0, 12]]);
245
255
  }));
246
256
  return function fetchExceededSites() {
247
- return _ref.apply(this, arguments);
257
+ return _ref2.apply(this, arguments);
248
258
  };
249
259
  }();
250
260
  fetchExceededSites();
@@ -262,7 +272,7 @@ var HierarchyGraph = function HierarchyGraph() {
262
272
  className: 'hierarchy-graph-page'
263
273
  }, !points_data.isFetching && treeKey > -1 && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FilterContainer.default, {
264
274
  filterPopupOpen: true,
265
- fetchType: 'HierarchyFilter',
275
+ fetchType: filterType,
266
276
  applyLogic: updateFilter,
267
277
  custom_points: filterPoints,
268
278
  resetFilter: resetFilter
@@ -301,4 +311,4 @@ var HierarchyGraph = function HierarchyGraph() {
301
311
  };
302
312
  var _default = HierarchyGraph;
303
313
  exports.default = _default;
304
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3V0aWxzIiwiX3JlYWN0UmVkdXgiLCJfQXV0b0ZpdFRyZWUiLCJfcmVhY3RCb290c3RyYXAiLCJfTG9hZGVyIiwiX1JpZ2h0UGFuZWwiLCJfdXJscyIsIl91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfRmlsdGVyQ29udGFpbmVyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJIaWVyYXJjaHlHcmFwaCIsInNlYXJjaFF1ZXJ5IiwidXNlUXVlcnlVUkwiLCJSZWR1eFN0YXRlIiwidXNlU2VsZWN0b3IiLCJzdGF0ZSIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsInRyZWVLZXkiLCJzZXRUcmVlS2V5IiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJzZWxlY3RlZFBvaW50Iiwic2V0U2VsZWN0ZWRQb2ludCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2Iiwic2hvd1JpZ2h0UGFuZWwiLCJzZXRTaG93UmlnaHRQYW5lbCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiZmlsdGVyT3B0aW9ucyIsInNldEZpbHRlck9wdGlvbnMiLCJfdXNlU3RhdGU5IiwiX3VzZVN0YXRlMTAiLCJmaWx0ZXJQYXJhbWV0ZXJJZHMiLCJzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMiLCJfdXNlU3RhdGUxMSIsInNob3VsZEZldGNoIiwic2l0ZUlkcyIsIl91c2VTdGF0ZTEyIiwiZXhjZWVkZWRTaXRlSWRzIiwic2V0RXhjZWVkZWRTaXRlSWRzIiwiaXNIaWVyYXJjaHlUYWIiLCJwb2ludHNfZGF0YSIsImVkZ2VzX2RhdGEiLCJfUmVkdXhTdGF0ZSRnbG9iYWxfZGEiLCJnbG9iYWxfZGF0YSIsIndhdGVyQXV0aG9yaXR5TmFtZSIsIndhdGVyQXV0aG9yaXR5SWQiLCJvbk5vZGVDbGljayIsIm5vZGVEYXRhIiwiaXRlbXMiLCJmaW5kIiwicCIsImlkIiwiYXR0cmlidXRlcyIsInBvaW50X2lkIiwiZmFjdG9yaWVzRW5kUG9pbnQiLCJ1c2VNZW1vIiwidXJscyIsImRhc2hib2FyZCIsIlV0aWxpdHkiLCJmYWN0b3JpZXMiLCJwYXJhbXNBbGwiLCJ0eXBlIiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRIiwidXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX3VzZUFwaVdpdGhEYXNoYm9hcmRRMiIsInJlc3BvbnNlU2l0ZXMiLCJpc0xvYWRpbmdTaXRlcyIsImVycm9yU2l0ZXMiLCJwb2xsdXRpb25CeVNpdGVJZCIsIm0iLCJNYXAiLCJkYXRhIiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIyIiwiX3N0ZXAiLCJzIiwibiIsImRvbmUiLCJfc3RlcCR2YWx1ZSIsInZhbHVlIiwic2l0ZV9pZCIsInBvbGx1dGlvbiIsInNlY3Rvcl9uYW1lIiwic2VjdG9yX2lkIiwiY29udHJpYnV0b3JfcGVyY2VudHMiLCJleHRyYURhdGEiLCJ0eXBlX2Rpc3RyaWJ1dGlvbiIsImVyciIsImUiLCJmIiwiZGVjb3JhdGVkUG9pbnRzQnlJZCIsImJhc2UiLCJtYXBCeUlkIiwiY29weSIsIl9pIiwiX09iamVjdCRrZXlzIiwia2V5cyIsImxlbmd0aCIsIm51bUlkIiwiTnVtYmVyIiwiX29iamVjdFNwcmVhZDIiLCJlZGdlc1dpdGhEZXZpY2UiLCJwb2ludHNXaXRoRGV2aWNlIiwiZmlsdGVyIiwiaGFzX2RldmljZSIsImVkZ2UiLCJzb3VyY2VfcG9pbnRfaWQiLCJkZXNjZW5kYW50c19oYXNfZGV2aWNlIiwiZmlsdGVyUG9pbnRzIiwicG9pbnRzT3B0aW9uIiwicG9pbnRMaXN0IiwiZm9yRWFjaCIsInNvdXJjZVBvaW50IiwidGFyZ2V0UG9pbnQiLCJ0YXJnZXRfcG9pbnRfaWQiLCJuYW1lIiwiZ3JvdXAiLCJ2YWx1ZXMiLCJ0cmVlRGF0YSIsImJ1aWxkVHJlZSIsInVwZGF0ZUZpbHRlciIsImFwcGxpZWRGaWx0ZXIiLCJzZWxlY3RlZEZpbHRlcnMiLCJmaWx0ZXJfaXRlbXMiLCJpdGVtIiwic2VsZWN0ZWRfb3B0aW9ucyIsInNhbXBsaW5nUGFyYW1ldGVycyIsInVzZUVmZmVjdCIsImZldGNoRXhjZWVkZWRTaXRlcyIsIl9yZWYiLCJfYXN5bmNUb0dlbmVyYXRvcjIiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsInJlc3BvbnNlIiwiX3lpZWxkJHJlc3BvbnNlJGpzb24iLCJ3cmFwIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInByZXYiLCJuZXh0IiwiZmV0Y2giLCJwYXJhbWV0ZXJJZHMiLCJoaWVyYXJjaHkiLCJleGNlZWRhbmNlQnlQYXJhbWV0ZXIiLCJ1cmwiLCJzZW50IiwianNvbiIsInNpdGVfaWRzIiwidDAiLCJjb25zb2xlIiwiZXJyb3IiLCJzdG9wIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJyZXNldEZpbHRlciIsImRlZmF1bHRGaWx0ZXIiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiaXNGZXRjaGluZyIsIkZyYWdtZW50IiwiZmlsdGVyUG9wdXBPcGVuIiwiZmV0Y2hUeXBlIiwiYXBwbHlMb2dpYyIsImN1c3RvbV9wb2ludHMiLCJzdHlsZSIsIm1hcmdpbklubGluZVN0YXJ0IiwiY29uY2F0IiwiQ29udGFpbmVyIiwiZmx1aWQiLCJvdmVyZmxvdyIsIlJvdyIsInNtIiwiQ29sIiwiaGVpZ2h0IiwiTG9hZGVyIiwiaW5pdGlhbERlcHRoIiwicG9pbnQiLCJvbkNsb3NlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3VpLWtpdC9IaWVyYXJjaHlHcmFwaC9IaWVyYXJjaHlHcmFwaC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VRdWVyeVVSTCBmcm9tICcuLi8uLi9ob29rcy91c2VRdWVyeVVSTCc7XG5pbXBvcnQgeyBidWlsZFRyZWUsIG1hcEJ5SWQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBBdXRvRml0VHJlZSBmcm9tICcuL0F1dG9GaXRUcmVlJztcbmltcG9ydCB7IENvbnRhaW5lciwgUm93LCBDb2wgfSBmcm9tICdyZWFjdC1ib290c3RyYXAnO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAnLi4vLi4vcGFnZXMvRGFzaGJvYXJkTWFwL0xvYWRlcic7XG5pbXBvcnQgUmlnaHRQYW5lbCBmcm9tICcuLi8uLi9wYWdlcy9PcGVyYXRpb25zUGFnZS9SaWdodFBhbmVsJztcbmltcG9ydCB7IHVybHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvdXJscyc7XG5pbXBvcnQgeyB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkgfSBmcm9tICcuLi8uLi9ob29rcy91c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnknO1xuaW1wb3J0IHsgRmFjdG9yaWVzUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9XaWRnZXRzL01vc3RQb2xsdXRpbmcvRmFjdG9yaWVzL2ZhY3Rvcmllc1Jlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgRmlsdGVyQ29udGFpbmVyIGZyb20gJy4uLy4uL3BhZ2VzL0V2ZW50c1BhZ2UvZXZlbnRzL2V2ZW50c19saXN0L0ZpbHRlci9GaWx0ZXJDb250YWluZXInO1xuXG5jb25zdCBIaWVyYXJjaHlHcmFwaCA9ICgpID0+IHtcbiAgY29uc3Qgc2VhcmNoUXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBSZWR1eFN0YXRlID0gdXNlU2VsZWN0b3IoKHN0YXRlKSA9PiBzdGF0ZSk7XG4gIGNvbnN0IFt0cmVlS2V5LCBzZXRUcmVlS2V5XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCBbc2VsZWN0ZWRQb2ludCwgc2V0U2VsZWN0ZWRQb2ludF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgY29uc3QgW3Nob3dSaWdodFBhbmVsLCBzZXRTaG93UmlnaHRQYW5lbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmaWx0ZXJPcHRpb25zLCBzZXRGaWx0ZXJPcHRpb25zXSA9IHVzZVN0YXRlKHt9KTtcbiAgY29uc3QgW2ZpbHRlclBhcmFtZXRlcklkcywgc2V0RmlsdGVyUGFyYW1ldGVySWRzXSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbZXhjZWVkZWRTaXRlSWRzLCBzZXRFeGNlZWRlZFNpdGVJZHNdID0gdXNlU3RhdGUoe1xuICAgIHNob3VsZEZldGNoOiBmYWxzZSxcbiAgICBzaXRlSWRzOiBbXSxcbiAgfSk7XG4gIGNvbnN0IGlzSGllcmFyY2h5VGFiID0gc2VhcmNoUXVlcnkuZ2V0KCd2aWV3JykgPT09ICdoaWVyYXJjaHknO1xuICBjb25zdCB7XG4gICAgcG9pbnRzX2RhdGEsXG4gICAgZWRnZXNfZGF0YSxcbiAgICBnbG9iYWxfZGF0YTogeyB3YXRlckF1dGhvcml0eU5hbWUsIHdhdGVyQXV0aG9yaXR5SWQgfSxcbiAgfSA9IFJlZHV4U3RhdGU7XG5cbiAgY29uc3Qgb25Ob2RlQ2xpY2sgPSAobm9kZURhdGEpID0+IHtcbiAgICBzZXRTZWxlY3RlZFBvaW50KFxuICAgICAgcG9pbnRzX2RhdGEuaXRlbXMuZmluZCgocCkgPT4gcC5pZCA9PT0gbm9kZURhdGEuYXR0cmlidXRlcy5wb2ludF9pZCksXG4gICAgKTtcbiAgICBzZXRTaG93UmlnaHRQYW5lbCghc2hvd1JpZ2h0UGFuZWwpO1xuICB9O1xuXG4gIC8vIHN0YWJsZSBlbmRwb2ludHMvcGFyYW1zIOKchVxuICBjb25zdCBmYWN0b3JpZXNFbmRQb2ludCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gdXJscygpLmRhc2hib2FyZC5VdGlsaXR5LmZhY3RvcmllcyxcbiAgICBbXSxcbiAgKTtcblxuICBjb25zdCBwYXJhbXNBbGwgPSB1c2VNZW1vKCgpID0+ICh7IHR5cGU6ICdBbGwnIH0pLCBbXSk7XG5cbiAgLy8gZmV0Y2hlc1xuICBjb25zdCBbcmVzcG9uc2VTaXRlcywgaXNMb2FkaW5nU2l0ZXMsIGVycm9yU2l0ZXNdID1cbiAgICB1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnk8RmFjdG9yaWVzUmVzcG9uc2U+KGZhY3Rvcmllc0VuZFBvaW50LCBwYXJhbXNBbGwpO1xuXG4gIC8vIDEpIEJ1aWxkIGEgcG9sbHV0aW9uIG1hcCBmcm9tIGJvdGggcmVzcG9uc2VzIChubyBzdGF0ZTsgcHVyZSBtZW1vKVxuICBjb25zdCBwb2xsdXRpb25CeVNpdGVJZCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IG0gPSBuZXcgTWFwPG51bWJlciwgYW55PigpO1xuICAgIGlmIChyZXNwb25zZVNpdGVzPy5kYXRhKSB7XG4gICAgICBmb3IgKGNvbnN0IHtcbiAgICAgICAgc2l0ZV9pZCxcbiAgICAgICAgcG9sbHV0aW9uLFxuICAgICAgICBzZWN0b3JfbmFtZSxcbiAgICAgICAgc2VjdG9yX2lkLFxuICAgICAgICBjb250cmlidXRvcl9wZXJjZW50cyxcbiAgICAgIH0gb2YgcmVzcG9uc2VTaXRlcy5kYXRhKSB7XG4gICAgICAgIGNvbnN0IGV4dHJhRGF0YSA9IHsgc2VjdG9yX25hbWUsIGNvbnRyaWJ1dG9yX3BlcmNlbnRzLCBzZWN0b3JfaWQgfTtcbiAgICAgICAgaWYgKHBvbGx1dGlvbj8udHlwZV9kaXN0cmlidXRpb24pXG4gICAgICAgICAgZXh0cmFEYXRhWydwb2xsdXRpb24nXSA9IHBvbGx1dGlvbi50eXBlX2Rpc3RyaWJ1dGlvbjtcbiAgICAgICAgbS5zZXQoc2l0ZV9pZCwgZXh0cmFEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH0sIFtyZXNwb25zZVNpdGVzPy5kYXRhXSk7XG5cbiAgLy8gMikgQ3JlYXRlIGEgU0FGRSBjb3B5IG9mIHBvaW50X21hcF9kYXRhIHdpdGggcG9sbHV0aW9uIG1lcmdlZCBpbiAobm8gbXV0YXRpb25zKVxuICBjb25zdCBkZWNvcmF0ZWRQb2ludHNCeUlkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcykgcmV0dXJucyBhIHBsYWluIG9iamVjdCBrZXllZCBieSBpZDsgY2xvbmUgaXRcbiAgICBjb25zdCBiYXNlID0gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcyk7XG4gICAgY29uc3QgY29weTogUmVjb3JkPG51bWJlciwgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICAgIGNvbnN0IG51bUlkID0gTnVtYmVyKGlkKTtcbiAgICAgIGNvbnN0IHBvbGx1dGlvbiA9IHBvbGx1dGlvbkJ5U2l0ZUlkLmdldChudW1JZCk7XG4gICAgICAvLyBzaGFsbG93IGNsb25lIGVhY2ggcG9pbnQ7IGFkZCBwb2xsdXRpb24gaWYgZXhpc3RzXG4gICAgICBjb3B5W251bUlkXSA9IHBvbGx1dGlvblxuICAgICAgICA/IHsgLi4uYmFzZVtudW1JZF0sIC4uLnBvbGx1dGlvbiB9XG4gICAgICAgIDogeyAuLi5iYXNlW251bUlkXSB9O1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBwb2xsdXRpb25CeVNpdGVJZF0pO1xuXG4gIC8vIDMpIENvbXB1dGUgZWRnZXNXaXRoRGV2aWNlIHNhZmVseS9tZW1vaXplZCAobm8gZXh0cmEgcmVuZGVycylcbiAgY29uc3QgZWRnZXNXaXRoRGV2aWNlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcG9pbnRzV2l0aERldmljZSA9IG1hcEJ5SWQoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5maWx0ZXIoKHApID0+IHAuaGFzX2RldmljZSksXG4gICAgKTtcbiAgICByZXR1cm4gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgICAoZWRnZSkgPT5cbiAgICAgICAgcG9pbnRzV2l0aERldmljZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0gfHwgZWRnZS5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgZWRnZXNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IGZpbHRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50c09wdGlvbiA9IHt9O1xuICAgIGNvbnN0IHBvaW50TGlzdCA9IHBvaW50c19kYXRhLml0ZW1zO1xuICAgIGVkZ2VzV2l0aERldmljZS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvbltzb3VyY2VQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHNvdXJjZVBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHNvdXJjZVBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgICBpZiAodGFyZ2V0UG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvblt0YXJnZXRQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHRhcmdldFBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHRhcmdldFBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocG9pbnRzT3B0aW9uKTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBlZGdlc1dpdGhEZXZpY2VdKTtcblxuICAvLyA0KSBCdWlsZCB0aGUgdHJlZSBPTkxZIHdoZW4gZGF0YSBpcyByZWFkeTsga2VlcCByZWZlcmVudGlhbCBzdGFiaWxpdHlcbiAgY29uc3QgdHJlZURhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nU2l0ZXMgfHwgZXJyb3JTaXRlcykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gYnVpbGRUcmVlKGVkZ2VzV2l0aERldmljZSwgZGVjb3JhdGVkUG9pbnRzQnlJZCwgd2F0ZXJBdXRob3JpdHlOYW1lKTtcbiAgfSwgW1xuICAgIGVkZ2VzV2l0aERldmljZSxcbiAgICBkZWNvcmF0ZWRQb2ludHNCeUlkLFxuICAgIHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICBpc0xvYWRpbmdTaXRlcyxcbiAgICBlcnJvclNpdGVzLFxuICBdKTtcblxuICBjb25zdCB1cGRhdGVGaWx0ZXIgPSAoYXBwbGllZEZpbHRlcikgPT4ge1xuICAgIC8vIFByb2Nlc3MgdGhlIGFwcGxpZWQgZmlsdGVyIGFzIG5lZWRlZFxuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHt9O1xuXG4gICAgYXBwbGllZEZpbHRlci5maWx0ZXJfaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc2VsZWN0ZWRGaWx0ZXJzW2l0ZW0udHlwZV0gPSBpdGVtLnNlbGVjdGVkX29wdGlvbnM7XG4gICAgfSk7XG4gICAgc2V0RmlsdGVyT3B0aW9ucyhzZWxlY3RlZEZpbHRlcnMpO1xuICAgIGNvbnN0IHNhbXBsaW5nUGFyYW1ldGVycyA9IGFwcGxpZWRGaWx0ZXIuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbS50eXBlID09PSAnU2FtcGxpbmdQYXJhbWV0ZXJGaWx0ZXJJdGVtJyxcbiAgICApO1xuICAgIGlmIChzYW1wbGluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiB0cnVlLCBzaXRlSWRzOiBbXSB9KTtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhzYW1wbGluZ1BhcmFtZXRlcnMuc2VsZWN0ZWRfb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhudWxsKTtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkczogW10gfSk7XG4gICAgfVxuICAgIC8vIFlvdSBjYW4gdXBkYXRlIHN0YXRlIG9yIG1ha2UgQVBJIGNhbGxzIGJhc2VkIG9uIHRoZSBhcHBsaWVkIGZpbHRlclxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZpbHRlclBhcmFtZXRlcklkcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZXRFeGNlZWRlZFNpdGVJZHMoeyBzaG91bGRGZXRjaDogZmFsc2UsIHNpdGVJZHM6IFtdIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VlZGVkU2l0ZUlkcy5zaG91bGRGZXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEV4Y2VlZGVkU2l0ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIHVybHMoeyBwYXJhbWV0ZXJJZHM6IGZpbHRlclBhcmFtZXRlcklkcywgd2F0ZXJBdXRob3JpdHlJZCB9KS5oaWVyYXJjaHlcbiAgICAgICAgICAgIC5leGNlZWRhbmNlQnlQYXJhbWV0ZXIudXJsLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgY29uc3Qgc2l0ZUlkcyA9IGRhdGEuc2l0ZV9pZHMgfHwgW107XG4gICAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkcyB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGV4Y2VlZGVkIHNpdGVzOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hFeGNlZWRlZFNpdGVzKCk7XG4gIH0sIFtmaWx0ZXJQYXJhbWV0ZXJJZHMsIGV4Y2VlZGVkU2l0ZUlkc10pO1xuXG4gIGNvbnN0IHJlc2V0RmlsdGVyID0gKGRlZmF1bHRGaWx0ZXIpID0+IHtcbiAgICBzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMobnVsbCk7XG4gICAgc2V0RXhjZWVkZWRTaXRlSWRzKFtdKTtcbiAgICB1cGRhdGVGaWx0ZXIoZGVmYXVsdEZpbHRlcik7XG4gICAgc2V0VHJlZUtleSh0cmVlS2V5ICsgMSk7XG4gIH07XG5cbiAgaWYgKCFpc0hpZXJhcmNoeVRhYikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2hpZXJhcmNoeS1ncmFwaC1wYWdlJ30+XG4gICAgICB7IXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiYgdHJlZUtleSA+IC0xICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgICAgICBmaWx0ZXJQb3B1cE9wZW49e3RydWV9XG4gICAgICAgICAgICBmZXRjaFR5cGU9eydIaWVyYXJjaHlGaWx0ZXInfVxuICAgICAgICAgICAgYXBwbHlMb2dpYz17dXBkYXRlRmlsdGVyfVxuICAgICAgICAgICAgY3VzdG9tX3BvaW50cz17ZmlsdGVyUG9pbnRzfVxuICAgICAgICAgICAgcmVzZXRGaWx0ZXI9e3Jlc2V0RmlsdGVyfVxuICAgICAgICAgIC8+XG4gICAgICAgICAge2ZpbHRlclBhcmFtZXRlcklkcyAmJiAoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbklubGluZVN0YXJ0OiAyMCB9fVxuICAgICAgICAgICAgPntgJHtleGNlZWRlZFNpdGVJZHMuc2l0ZUlkcy5sZW5ndGh9IHNpdGVzIHdpdGggZXhjZWVkaW5nIHJlc3VsdHNgfTwvZGl2PlxuICAgICAgICAgICl9XG4gICAgICAgIDwvPlxuICAgICAgKX1cblxuICAgICAgPENvbnRhaW5lciBmbHVpZCBjbGFzc05hbWU9XCJwLTBcIiBzdHlsZT17eyBvdmVyZmxvdzogJ2hpZGRlbicgfX0+XG4gICAgICAgIDxSb3cgY2xhc3NOYW1lPVwibWFwLWNvbHVtblwiIHNtPXsxMn0+XG4gICAgICAgICAgPENvbCBzdHlsZT17eyBoZWlnaHQ6ICc4NXZoJyB9fT5cbiAgICAgICAgICAgIHtlZGdlc19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgIHBvaW50c19kYXRhLmlzRmV0Y2hpbmcgfHxcbiAgICAgICAgICAgICFmaWx0ZXJPcHRpb25zIHx8XG4gICAgICAgICAgICAhdHJlZURhdGEgfHxcbiAgICAgICAgICAgIGlzTG9hZGluZ1NpdGVzID8gKFxuICAgICAgICAgICAgICA8TG9hZGVyIC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8QXV0b0ZpdFRyZWVcbiAgICAgICAgICAgICAgICB0cmVlS2V5PXt0cmVlS2V5fVxuICAgICAgICAgICAgICAgIGluaXRpYWxEZXB0aD17MTJ9XG4gICAgICAgICAgICAgICAgZGF0YT17dHJlZURhdGF9XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzPXtmaWx0ZXJPcHRpb25zfVxuICAgICAgICAgICAgICAgIGV4Y2VlZGVkU2l0ZUlkcz17ZXhjZWVkZWRTaXRlSWRzLnNpdGVJZHN9XG4gICAgICAgICAgICAgICAgb25Ob2RlQ2xpY2s9e29uTm9kZUNsaWNrfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxSaWdodFBhbmVsXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17YHJpZ2h0LXBhbmVsICR7c2hvd1JpZ2h0UGFuZWwgPyAnb3BlbicgOiAnJ31gfVxuICAgICAgICAgICAgICBwb2ludD17c2VsZWN0ZWRQb2ludH1cbiAgICAgICAgICAgICAgb25DbG9zZT17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkUG9pbnQobnVsbCk7XG4gICAgICAgICAgICAgICAgc2V0U2hvd1JpZ2h0UGFuZWwoZmFsc2UpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0NvbD5cbiAgICAgICAgPC9Sb3c+XG4gICAgICA8L0NvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5leHBvcnQgZGVmYXVsdCBIaWVyYXJjaHlHcmFwaDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLFlBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUosT0FBQTtBQUVBLElBQUFLLFlBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLEtBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLHlCQUFBLEdBQUFWLE9BQUE7QUFFQSxJQUFBVyxnQkFBQSxHQUFBVCxzQkFBQSxDQUFBRixPQUFBO0FBQStGLFNBQUFZLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsV0FB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
314
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlUXVlcnlVUkwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2txbCIsIl91dGlscyIsIl9yZWFjdFJlZHV4IiwiX0F1dG9GaXRUcmVlIiwiX3JlYWN0Qm9vdHN0cmFwIiwiX0xvYWRlciIsIl9SaWdodFBhbmVsIiwiX3VybHMiLCJfdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5IiwiX0ZpbHRlckNvbnRhaW5lciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiSGllcmFyY2h5R3JhcGgiLCJfcmVmIiwiX3JlZiRzaG93Iiwic2hvdyIsIl9yZWYkZmlsdGVyVHlwZSIsImZpbHRlclR5cGUiLCJzZWFyY2hRdWVyeSIsInVzZVF1ZXJ5VVJMIiwiUmVkdXhTdGF0ZSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJ0cmVlS2V5Iiwic2V0VHJlZUtleSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2VsZWN0ZWRQb2ludCIsInNldFNlbGVjdGVkUG9pbnQiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNob3dSaWdodFBhbmVsIiwic2V0U2hvd1JpZ2h0UGFuZWwiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImZpbHRlck9wdGlvbnMiLCJzZXRGaWx0ZXJPcHRpb25zIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTEwIiwiZmlsdGVyUGFyYW1ldGVySWRzIiwic2V0RmlsdGVyUGFyYW1ldGVySWRzIiwiX3VzZVN0YXRlMTEiLCJzaG91bGRGZXRjaCIsInNpdGVJZHMiLCJfdXNlU3RhdGUxMiIsImV4Y2VlZGVkU2l0ZUlkcyIsInNldEV4Y2VlZGVkU2l0ZUlkcyIsImlzSGllcmFyY2h5VGFiIiwicG9pbnRzX2RhdGEiLCJlZGdlc19kYXRhIiwiX1JlZHV4U3RhdGUkZ2xvYmFsX2RhIiwiZ2xvYmFsX2RhdGEiLCJ3YXRlckF1dGhvcml0eU5hbWUiLCJ3YXRlckF1dGhvcml0eUlkIiwib25Ob2RlQ2xpY2siLCJub2RlRGF0YSIsIml0ZW1zIiwiZmluZCIsInAiLCJpZCIsImF0dHJpYnV0ZXMiLCJwb2ludF9pZCIsImZhY3Rvcmllc0VuZFBvaW50IiwidXNlTWVtbyIsInVybHMiLCJkYXNoYm9hcmQiLCJVdGlsaXR5IiwiZmFjdG9yaWVzIiwicGFyYW1zQWxsIiwidHlwZSIsImlzX25ldHdvcmsiLCJfdXNlQXBpV2l0aERhc2hib2FyZFEiLCJ1c2VBcGlXaXRoRGFzaGJvYXJkUXVlcnkiLCJfdXNlQXBpV2l0aERhc2hib2FyZFEyIiwicmVzcG9uc2VTaXRlcyIsImlzTG9hZGluZ1NpdGVzIiwiZXJyb3JTaXRlcyIsInBvbGx1dGlvbkJ5U2l0ZUlkIiwibSIsIk1hcCIsImRhdGEiLCJfaXRlcmF0b3IiLCJfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcjIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsIl9zdGVwJHZhbHVlIiwidmFsdWUiLCJzaXRlX2lkIiwicG9sbHV0aW9uIiwic2VjdG9yX25hbWUiLCJzZWN0b3JfaWQiLCJjb250cmlidXRvcl9wZXJjZW50cyIsInJpc2siLCJjb3N0IiwiZXh0cmFEYXRhIiwidHlwZV9kaXN0cmlidXRpb24iLCJlcnIiLCJlIiwiZiIsImRlY29yYXRlZFBvaW50c0J5SWQiLCJiYXNlIiwibWFwQnlJZCIsImNvcHkiLCJfaSIsIl9PYmplY3Qka2V5cyIsImtleXMiLCJsZW5ndGgiLCJudW1JZCIsIk51bWJlciIsIl9vYmplY3RTcHJlYWQyIiwiZWRnZXNXaXRoRGV2aWNlIiwicG9pbnRzV2l0aERldmljZSIsImZpbHRlciIsImhhc19kZXZpY2UiLCJlZGdlIiwic291cmNlX3BvaW50X2lkIiwiZGVzY2VuZGFudHNfaGFzX2RldmljZSIsImZpbHRlclBvaW50cyIsInBvaW50c09wdGlvbiIsInBvaW50TGlzdCIsImZvckVhY2giLCJzb3VyY2VQb2ludCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwibmFtZSIsImdyb3VwIiwidmFsdWVzIiwidHJlZURhdGEiLCJidWlsZFRyZWUiLCJ1cGRhdGVGaWx0ZXIiLCJhcHBsaWVkRmlsdGVyIiwic2VsZWN0ZWRGaWx0ZXJzIiwiZmlsdGVyX2l0ZW1zIiwiaXRlbSIsInBhcnNlU2VsZWN0ZWRJdGVtcyIsInNhbXBsaW5nUGFyYW1ldGVycyIsInNlbGVjdGVkX29wdGlvbnMiLCJ1c2VFZmZlY3QiLCJmZXRjaEV4Y2VlZGVkU2l0ZXMiLCJfcmVmMiIsIl9hc3luY1RvR2VuZXJhdG9yMiIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwicmVzcG9uc2UiLCJfeWllbGQkcmVzcG9uc2UkanNvbiIsIndyYXAiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwicHJldiIsIm5leHQiLCJmZXRjaCIsInBhcmFtZXRlcklkcyIsImhpZXJhcmNoeSIsImV4Y2VlZGFuY2VCeVBhcmFtZXRlciIsInVybCIsInNlbnQiLCJqc29uIiwic2l0ZV9pZHMiLCJ0MCIsImNvbnNvbGUiLCJlcnJvciIsInN0b3AiLCJhcHBseSIsImFyZ3VtZW50cyIsInJlc2V0RmlsdGVyIiwiZGVmYXVsdEZpbHRlciIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJpc0ZldGNoaW5nIiwiRnJhZ21lbnQiLCJmaWx0ZXJQb3B1cE9wZW4iLCJmZXRjaFR5cGUiLCJhcHBseUxvZ2ljIiwiY3VzdG9tX3BvaW50cyIsInN0eWxlIiwibWFyZ2luSW5saW5lU3RhcnQiLCJjb25jYXQiLCJDb250YWluZXIiLCJmbHVpZCIsIm92ZXJmbG93IiwiUm93Iiwic20iLCJDb2wiLCJoZWlnaHQiLCJMb2FkZXIiLCJpbml0aWFsRGVwdGgiLCJwb2ludCIsIm9uQ2xvc2UiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdWkta2l0L0hpZXJhcmNoeUdyYXBoL0hpZXJhcmNoeUdyYXBoLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJy4uLy4uL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCB7IHBhcnNlU2VsZWN0ZWRJdGVtcyB9IGZyb20gJ3NyYy91dGlsaXRpZXMva3FsJztcbmltcG9ydCB7IGJ1aWxkVHJlZSwgbWFwQnlJZCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2VsZWN0b3IgfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEF1dG9GaXRUcmVlIGZyb20gJy4vQXV0b0ZpdFRyZWUnO1xuaW1wb3J0IHsgQ29udGFpbmVyLCBSb3csIENvbCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBMb2FkZXIgfSBmcm9tICcuLi8uLi9wYWdlcy9EYXNoYm9hcmRNYXAvTG9hZGVyJztcbmltcG9ydCBSaWdodFBhbmVsIGZyb20gJy4uLy4uL3BhZ2VzL09wZXJhdGlvbnNQYWdlL1JpZ2h0UGFuZWwnO1xuaW1wb3J0IHsgdXJscyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy91cmxzJztcbmltcG9ydCB7IHVzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUFwaVdpdGhEYXNoYm9hcmRRdWVyeSc7XG5pbXBvcnQgeyBGYWN0b3JpZXNSZXNwb25zZSB9IGZyb20gJy4uLy4uL1dpZGdldHMvTW9zdFBvbGx1dGluZy9GYWN0b3JpZXMvZmFjdG9yaWVzUmVzcG9uc2UuaW50ZXJmYWNlJztcbmltcG9ydCBGaWx0ZXJDb250YWluZXIgZnJvbSAnLi4vLi4vcGFnZXMvRXZlbnRzUGFnZS9ldmVudHMvZXZlbnRzX2xpc3QvRmlsdGVyL0ZpbHRlckNvbnRhaW5lcic7XG5cbmNvbnN0IEhpZXJhcmNoeUdyYXBoID0gKHsgc2hvdyA9IGZhbHNlLCBmaWx0ZXJUeXBlID0gJ0hpZXJhcmNoeUZpbHRlcicgfSkgPT4ge1xuICBjb25zdCBzZWFyY2hRdWVyeSA9IHVzZVF1ZXJ5VVJMKCk7XG4gIGNvbnN0IFJlZHV4U3RhdGUgPSB1c2VTZWxlY3Rvcigoc3RhdGUpID0+IHN0YXRlKTtcbiAgY29uc3QgW3RyZWVLZXksIHNldFRyZWVLZXldID0gdXNlU3RhdGUoMCk7XG4gIGNvbnN0IFtzZWxlY3RlZFBvaW50LCBzZXRTZWxlY3RlZFBvaW50XSA9IHVzZVN0YXRlKG51bGwpO1xuICBjb25zdCBbc2hvd1JpZ2h0UGFuZWwsIHNldFNob3dSaWdodFBhbmVsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2ZpbHRlck9wdGlvbnMsIHNldEZpbHRlck9wdGlvbnNdID0gdXNlU3RhdGUoe30pO1xuICBjb25zdCBbZmlsdGVyUGFyYW1ldGVySWRzLCBzZXRGaWx0ZXJQYXJhbWV0ZXJJZHNdID0gdXNlU3RhdGUobnVsbCk7XG4gIGNvbnN0IFtleGNlZWRlZFNpdGVJZHMsIHNldEV4Y2VlZGVkU2l0ZUlkc10gPSB1c2VTdGF0ZSh7XG4gICAgc2hvdWxkRmV0Y2g6IGZhbHNlLFxuICAgIHNpdGVJZHM6IFtdLFxuICB9KTtcbiAgY29uc3QgaXNIaWVyYXJjaHlUYWIgPSBzZWFyY2hRdWVyeS5nZXQoJ3ZpZXcnKSA9PT0gJ2hpZXJhcmNoeScgfHwgc2hvdztcbiAgY29uc3Qge1xuICAgIHBvaW50c19kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gICAgZ2xvYmFsX2RhdGE6IHsgd2F0ZXJBdXRob3JpdHlOYW1lLCB3YXRlckF1dGhvcml0eUlkIH0sXG4gIH0gPSBSZWR1eFN0YXRlO1xuXG4gIGNvbnN0IG9uTm9kZUNsaWNrID0gKG5vZGVEYXRhKSA9PiB7XG4gICAgc2V0U2VsZWN0ZWRQb2ludChcbiAgICAgIHBvaW50c19kYXRhLml0ZW1zLmZpbmQoKHApID0+IHAuaWQgPT09IG5vZGVEYXRhLmF0dHJpYnV0ZXMucG9pbnRfaWQpLFxuICAgICk7XG4gICAgc2V0U2hvd1JpZ2h0UGFuZWwoIXNob3dSaWdodFBhbmVsKTtcbiAgfTtcblxuICAvLyBzdGFibGUgZW5kcG9pbnRzL3BhcmFtcyDinIVcbiAgY29uc3QgZmFjdG9yaWVzRW5kUG9pbnQgPSB1c2VNZW1vKFxuICAgICgpID0+IHVybHMoKS5kYXNoYm9hcmQuVXRpbGl0eS5mYWN0b3JpZXMsXG4gICAgW10sXG4gICk7XG5cbiAgY29uc3QgcGFyYW1zQWxsID0gdXNlTWVtbyhcbiAgICAoKSA9PiAoe1xuICAgICAgdHlwZTogJ0FsbCcsXG4gICAgICBpc19uZXR3b3JrOiAnTmV0d29ya0ZpbHRlcicgPT09IGZpbHRlclR5cGUgPyAndHJ1ZScgOiAnZmFsc2UnLFxuICAgIH0pLFxuICAgIFtdLFxuICApO1xuXG4gIC8vIGZldGNoZXNcbiAgY29uc3QgW3Jlc3BvbnNlU2l0ZXMsIGlzTG9hZGluZ1NpdGVzLCBlcnJvclNpdGVzXSA9XG4gICAgdXNlQXBpV2l0aERhc2hib2FyZFF1ZXJ5PEZhY3Rvcmllc1Jlc3BvbnNlPihmYWN0b3JpZXNFbmRQb2ludCwgcGFyYW1zQWxsKTtcblxuICAvLyAxKSBCdWlsZCBhIHBvbGx1dGlvbiBtYXAgZnJvbSBib3RoIHJlc3BvbnNlcyAobm8gc3RhdGU7IHB1cmUgbWVtbylcbiAgY29uc3QgcG9sbHV0aW9uQnlTaXRlSWQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBtID0gbmV3IE1hcDxudW1iZXIsIGFueT4oKTtcbiAgICBpZiAocmVzcG9uc2VTaXRlcz8uZGF0YSkge1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIHNpdGVfaWQsXG4gICAgICAgIHBvbGx1dGlvbixcbiAgICAgICAgc2VjdG9yX25hbWUsXG4gICAgICAgIHNlY3Rvcl9pZCxcbiAgICAgICAgY29udHJpYnV0b3JfcGVyY2VudHMsXG4gICAgICAgIHJpc2ssXG4gICAgICAgIGNvc3QsXG4gICAgICB9IG9mIHJlc3BvbnNlU2l0ZXMuZGF0YSkge1xuICAgICAgICBjb25zdCBleHRyYURhdGEgPSB7XG4gICAgICAgICAgc2VjdG9yX25hbWUsXG4gICAgICAgICAgY29udHJpYnV0b3JfcGVyY2VudHMsXG4gICAgICAgICAgc2VjdG9yX2lkLFxuICAgICAgICAgIHJpc2ssXG4gICAgICAgICAgY29zdCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKHBvbGx1dGlvbj8udHlwZV9kaXN0cmlidXRpb24pXG4gICAgICAgICAgZXh0cmFEYXRhWydwb2xsdXRpb24nXSA9IHBvbGx1dGlvbi50eXBlX2Rpc3RyaWJ1dGlvbjtcbiAgICAgICAgbS5zZXQoc2l0ZV9pZCwgZXh0cmFEYXRhKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG07XG4gIH0sIFtyZXNwb25zZVNpdGVzPy5kYXRhXSk7XG5cbiAgLy8gMikgQ3JlYXRlIGEgU0FGRSBjb3B5IG9mIHBvaW50X21hcF9kYXRhIHdpdGggcG9sbHV0aW9uIG1lcmdlZCBpbiAobm8gbXV0YXRpb25zKVxuICBjb25zdCBkZWNvcmF0ZWRQb2ludHNCeUlkID0gdXNlTWVtbygoKSA9PiB7XG4gICAgLy8gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcykgcmV0dXJucyBhIHBsYWluIG9iamVjdCBrZXllZCBieSBpZDsgY2xvbmUgaXRcbiAgICBjb25zdCBiYXNlID0gbWFwQnlJZChwb2ludHNfZGF0YS5pdGVtcyk7XG4gICAgY29uc3QgY29weTogUmVjb3JkPG51bWJlciwgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgaWQgb2YgT2JqZWN0LmtleXMoYmFzZSkpIHtcbiAgICAgIGNvbnN0IG51bUlkID0gTnVtYmVyKGlkKTtcbiAgICAgIGNvbnN0IHBvbGx1dGlvbiA9IHBvbGx1dGlvbkJ5U2l0ZUlkLmdldChudW1JZCk7XG4gICAgICAvLyBzaGFsbG93IGNsb25lIGVhY2ggcG9pbnQ7IGFkZCBwb2xsdXRpb24gaWYgZXhpc3RzXG4gICAgICBjb3B5W251bUlkXSA9IHBvbGx1dGlvblxuICAgICAgICA/IHsgLi4uYmFzZVtudW1JZF0sIC4uLnBvbGx1dGlvbiB9XG4gICAgICAgIDogeyAuLi5iYXNlW251bUlkXSB9O1xuICAgIH1cbiAgICByZXR1cm4gY29weTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBwb2xsdXRpb25CeVNpdGVJZF0pO1xuXG4gIC8vIDMpIENvbXB1dGUgZWRnZXNXaXRoRGV2aWNlIHNhZmVseS9tZW1vaXplZCAobm8gZXh0cmEgcmVuZGVycylcbiAgY29uc3QgZWRnZXNXaXRoRGV2aWNlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcG9pbnRzV2l0aERldmljZSA9IG1hcEJ5SWQoXG4gICAgICBwb2ludHNfZGF0YS5pdGVtcy5maWx0ZXIoKHApID0+IHAuaGFzX2RldmljZSksXG4gICAgKTtcbiAgICByZXR1cm4gZWRnZXNfZGF0YS5pdGVtcy5maWx0ZXIoXG4gICAgICAoZWRnZSkgPT5cbiAgICAgICAgcG9pbnRzV2l0aERldmljZVtlZGdlLnNvdXJjZV9wb2ludF9pZF0gfHwgZWRnZS5kZXNjZW5kYW50c19oYXNfZGV2aWNlLFxuICAgICk7XG4gIH0sIFtwb2ludHNfZGF0YS5pdGVtcywgZWRnZXNfZGF0YS5pdGVtc10pO1xuXG4gIGNvbnN0IGZpbHRlclBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IHBvaW50c09wdGlvbiA9IHt9O1xuICAgIGNvbnN0IHBvaW50TGlzdCA9IHBvaW50c19kYXRhLml0ZW1zO1xuICAgIGVkZ2VzV2l0aERldmljZS5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBjb25zdCBzb3VyY2VQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBjb25zdCB0YXJnZXRQb2ludCA9IHBvaW50TGlzdC5maW5kKChwKSA9PiBwLmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCk7XG4gICAgICBpZiAoc291cmNlUG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvbltzb3VyY2VQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHNvdXJjZVBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHNvdXJjZVBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgICBpZiAodGFyZ2V0UG9pbnQpXG4gICAgICAgIHBvaW50c09wdGlvblt0YXJnZXRQb2ludC5pZF0gPSB7XG4gICAgICAgICAgaWQ6IHRhcmdldFBvaW50LmlkLFxuICAgICAgICAgIG5hbWU6IHRhcmdldFBvaW50Lmdyb3VwLm5hbWUsXG4gICAgICAgIH07XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMocG9pbnRzT3B0aW9uKTtcbiAgfSwgW3BvaW50c19kYXRhLml0ZW1zLCBlZGdlc1dpdGhEZXZpY2VdKTtcblxuICAvLyA0KSBCdWlsZCB0aGUgdHJlZSBPTkxZIHdoZW4gZGF0YSBpcyByZWFkeTsga2VlcCByZWZlcmVudGlhbCBzdGFiaWxpdHlcbiAgY29uc3QgdHJlZURhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNMb2FkaW5nU2l0ZXMgfHwgZXJyb3JTaXRlcykgcmV0dXJuIG51bGw7XG5cbiAgICByZXR1cm4gYnVpbGRUcmVlKGVkZ2VzV2l0aERldmljZSwgZGVjb3JhdGVkUG9pbnRzQnlJZCwgd2F0ZXJBdXRob3JpdHlOYW1lKTtcbiAgfSwgW1xuICAgIGVkZ2VzV2l0aERldmljZSxcbiAgICBkZWNvcmF0ZWRQb2ludHNCeUlkLFxuICAgIHdhdGVyQXV0aG9yaXR5TmFtZSxcbiAgICBpc0xvYWRpbmdTaXRlcyxcbiAgICBlcnJvclNpdGVzLFxuICBdKTtcblxuICBjb25zdCB1cGRhdGVGaWx0ZXIgPSAoYXBwbGllZEZpbHRlcikgPT4ge1xuICAgIC8vIFByb2Nlc3MgdGhlIGFwcGxpZWQgZmlsdGVyIGFzIG5lZWRlZFxuICAgIGNvbnN0IHNlbGVjdGVkRmlsdGVycyA9IHt9O1xuXG4gICAgYXBwbGllZEZpbHRlci5maWx0ZXJfaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgc2VsZWN0ZWRGaWx0ZXJzW2l0ZW0udHlwZV0gPSBwYXJzZVNlbGVjdGVkSXRlbXMoaXRlbSlbMF07XG4gICAgfSk7XG4gICAgc2V0RmlsdGVyT3B0aW9ucyhzZWxlY3RlZEZpbHRlcnMpO1xuICAgIGNvbnN0IHNhbXBsaW5nUGFyYW1ldGVycyA9IGFwcGxpZWRGaWx0ZXIuZmlsdGVyX2l0ZW1zLmZpbmQoXG4gICAgICAoaXRlbSkgPT4gaXRlbS50eXBlID09PSAnU2FtcGxpbmdQYXJhbWV0ZXJGaWx0ZXJJdGVtJyxcbiAgICApO1xuICAgIGlmIChzYW1wbGluZ1BhcmFtZXRlcnMpIHtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiB0cnVlLCBzaXRlSWRzOiBbXSB9KTtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhzYW1wbGluZ1BhcmFtZXRlcnMuc2VsZWN0ZWRfb3B0aW9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEZpbHRlclBhcmFtZXRlcklkcyhudWxsKTtcbiAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkczogW10gfSk7XG4gICAgfVxuICAgIC8vIFlvdSBjYW4gdXBkYXRlIHN0YXRlIG9yIG1ha2UgQVBJIGNhbGxzIGJhc2VkIG9uIHRoZSBhcHBsaWVkIGZpbHRlclxuICB9O1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGZpbHRlclBhcmFtZXRlcklkcz8ubGVuZ3RoID09PSAwKSB7XG4gICAgICBzZXRFeGNlZWRlZFNpdGVJZHMoeyBzaG91bGRGZXRjaDogZmFsc2UsIHNpdGVJZHM6IFtdIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIWV4Y2VlZGVkU2l0ZUlkcy5zaG91bGRGZXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmZXRjaEV4Y2VlZGVkU2l0ZXMgPSBhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICAgIHVybHMoeyBwYXJhbWV0ZXJJZHM6IGZpbHRlclBhcmFtZXRlcklkcywgd2F0ZXJBdXRob3JpdHlJZCB9KS5oaWVyYXJjaHlcbiAgICAgICAgICAgIC5leGNlZWRhbmNlQnlQYXJhbWV0ZXIudXJsLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcbiAgICAgICAgY29uc3Qgc2l0ZUlkcyA9IGRhdGEuc2l0ZV9pZHMgfHwgW107XG4gICAgICAgIHNldEV4Y2VlZGVkU2l0ZUlkcyh7IHNob3VsZEZldGNoOiBmYWxzZSwgc2l0ZUlkcyB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGV4Y2VlZGVkIHNpdGVzOicsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZmV0Y2hFeGNlZWRlZFNpdGVzKCk7XG4gIH0sIFtmaWx0ZXJQYXJhbWV0ZXJJZHMsIGV4Y2VlZGVkU2l0ZUlkc10pO1xuXG4gIGNvbnN0IHJlc2V0RmlsdGVyID0gKGRlZmF1bHRGaWx0ZXIpID0+IHtcbiAgICBzZXRGaWx0ZXJQYXJhbWV0ZXJJZHMobnVsbCk7XG4gICAgc2V0RXhjZWVkZWRTaXRlSWRzKFtdKTtcbiAgICB1cGRhdGVGaWx0ZXIoZGVmYXVsdEZpbHRlcik7XG4gICAgc2V0VHJlZUtleSh0cmVlS2V5ICsgMSk7XG4gIH07XG5cbiAgaWYgKCFpc0hpZXJhcmNoeVRhYikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17J2hpZXJhcmNoeS1ncmFwaC1wYWdlJ30+XG4gICAgICB7IXBvaW50c19kYXRhLmlzRmV0Y2hpbmcgJiYgdHJlZUtleSA+IC0xICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsdGVyQ29udGFpbmVyXG4gICAgICAgICAgICBmaWx0ZXJQb3B1cE9wZW49e3RydWV9XG4gICAgICAgICAgICBmZXRjaFR5cGU9e2ZpbHRlclR5cGV9XG4gICAgICAgICAgICBhcHBseUxvZ2ljPXt1cGRhdGVGaWx0ZXJ9XG4gICAgICAgICAgICBjdXN0b21fcG9pbnRzPXtmaWx0ZXJQb2ludHN9XG4gICAgICAgICAgICByZXNldEZpbHRlcj17cmVzZXRGaWx0ZXJ9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7ZmlsdGVyUGFyYW1ldGVySWRzICYmIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luSW5saW5lU3RhcnQ6IDIwIH19XG4gICAgICAgICAgICA+e2Ake2V4Y2VlZGVkU2l0ZUlkcy5zaXRlSWRzLmxlbmd0aH0gc2l0ZXMgd2l0aCBleGNlZWRpbmcgcmVzdWx0c2B9PC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC8+XG4gICAgICApfVxuXG4gICAgICA8Q29udGFpbmVyIGZsdWlkIGNsYXNzTmFtZT1cInAtMFwiIHN0eWxlPXt7IG92ZXJmbG93OiAnaGlkZGVuJyB9fT5cbiAgICAgICAgPFJvdyBjbGFzc05hbWU9XCJtYXAtY29sdW1uXCIgc209ezEyfT5cbiAgICAgICAgICA8Q29sIHN0eWxlPXt7IGhlaWdodDogJzg1dmgnIH19PlxuICAgICAgICAgICAge2VkZ2VzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgICAgICAgcG9pbnRzX2RhdGEuaXNGZXRjaGluZyB8fFxuICAgICAgICAgICAgIWZpbHRlck9wdGlvbnMgfHxcbiAgICAgICAgICAgICF0cmVlRGF0YSB8fFxuICAgICAgICAgICAgaXNMb2FkaW5nU2l0ZXMgPyAoXG4gICAgICAgICAgICAgIDxMb2FkZXIgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxBdXRvRml0VHJlZVxuICAgICAgICAgICAgICAgIHRyZWVLZXk9e3RyZWVLZXl9XG4gICAgICAgICAgICAgICAgaW5pdGlhbERlcHRoPXsxMn1cbiAgICAgICAgICAgICAgICBkYXRhPXt0cmVlRGF0YX1cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEZpbHRlcnM9e2ZpbHRlck9wdGlvbnN9XG4gICAgICAgICAgICAgICAgZXhjZWVkZWRTaXRlSWRzPXtleGNlZWRlZFNpdGVJZHMuc2l0ZUlkc31cbiAgICAgICAgICAgICAgICBvbk5vZGVDbGljaz17b25Ob2RlQ2xpY2t9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgPFJpZ2h0UGFuZWxcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcmlnaHQtcGFuZWwgJHtzaG93UmlnaHRQYW5lbCA/ICdvcGVuJyA6ICcnfWB9XG4gICAgICAgICAgICAgIHBvaW50PXtzZWxlY3RlZFBvaW50fVxuICAgICAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0U2VsZWN0ZWRQb2ludChudWxsKTtcbiAgICAgICAgICAgICAgICBzZXRTaG93UmlnaHRQYW5lbChmYWxzZSk7XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvQ29sPlxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvZGl2PlxuICApO1xufTtcbmV4cG9ydCBkZWZhdWx0IEhpZXJhcmNoeUdyYXBoO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFB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