@agilemotion/oui-react-js 2.0.13 → 2.0.14

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.
@@ -11,6 +11,7 @@ var _TextField = _interopRequireDefault(require("./TextField"));
11
11
  var _CurrencyField = _interopRequireDefault(require("./CurrencyField"));
12
12
  var _AddressSearch = _interopRequireDefault(require("./AddressSearch"));
13
13
  var _LookupField = _interopRequireDefault(require("./LookupField"));
14
+ var _MultiLookupField = _interopRequireDefault(require("./MultiLookupField"));
14
15
  var _SelectItem = _interopRequireDefault(require("./SelectItem"));
15
16
  var _DatePicker = _interopRequireDefault(require("./DatePicker"));
16
17
  var _TimePicker = _interopRequireDefault(require("./TimePicker"));
@@ -113,6 +114,17 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
113
114
  values: props.values,
114
115
  viewId: props.viewId
115
116
  });
117
+ case 'MULTI_LOOKUP':
118
+ return /*#__PURE__*/_react.default.createElement(_MultiLookupField.default, {
119
+ keyHandler: props.keyHandler,
120
+ config: component,
121
+ form: props.form,
122
+ parentId: props.parentId,
123
+ handle: createComponentHandle(component),
124
+ valueChangeHandler: () => fireChangeEvent(),
125
+ values: props.values,
126
+ viewId: props.viewId
127
+ });
116
128
  case 'TEXT_FIELD':
117
129
  return /*#__PURE__*/_react.default.createElement(_TextField.default, {
118
130
  keyHandler: props.keyHandler,
@@ -530,4 +542,4 @@ const FieldSet = /*#__PURE__*/_react.default.memo(props => {
530
542
  }, props.config.attributes['label']) : null, !_Utils.default.isNull(fieldGrid) ? render(props.config) : null);
531
543
  });
532
544
  var _default = exports.default = FieldSet;
533
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfU2VsZWN0SXRlbSIsIl9EYXRlUGlja2VyIiwiX1RpbWVQaWNrZXIiLCJfQ2hlY2tib3giLCJfTGFiZWxGaWVsZCIsIl9VcGxvYWRGaWVsZCIsIl9UcmFuc2Zlckxpc3QiLCJfR3JpZEZpZWxkIiwiX0ltYWdlRWRpdG9yIiwiX1JhZGlvR3JvdXAiLCJfRXZlbnQiLCJfRXZlbnRUeXBlIiwiX1Jlc3RTZXJ2aWNlIiwiX1NpZ25hdHVyZVRlbXBsYXRlRGVzaWduZXJGaWVsZCIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfQnV0dG9uIiwiX0h0bWxQYW5lbCIsIl9BdXRvQ29tcGxldGUiLCJfTXVsdGlGaWxlVXBsb2FkRmllbGQiLCJfSWNvbiIsIl9Td2l0Y2giLCJfSWNvbkZpZWxkIiwiX0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lciIsIl9EeW5hbWljSlMiLCJfTGF5b3V0IiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiRmllbGRTZXQiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsImZpZWxkR3JpZCIsInVzZVN0YXRlIiwiVXRpbHMiLCJnZXRGaWVsZEdyaWQiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiZmllbGRzIiwiY29tcG9uZW50SGFuZGxlcyIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwiY3JlYXRlQ29tcG9uZW50SGFuZGxlIiwiZmllbGQiLCJpc051bGwiLCJpZCIsImhhbmRsZSIsInVzZUVmZmVjdCIsImFwaSIsInVzZUxheW91dEVmZmVjdCIsInJlZnJlc2giLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImV2ZW50TWFuYWdlciIsImFkZFN1YnNjcmlwdGlvbnMiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImRpc2FibGVkIiwidXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZSIsImZpcmVDaGFuZ2VFdmVudCIsImV2ZW50IiwiRXZlbnQiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJWQUxVRV9DSEFOR0UiLCJwcm9wZXJ0aWVzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsInByb3BlcnR5IiwiY29tcG9uZW50SGFuZGxlIiwicmVmcmVzaENvbXBvbmVudHMiLCJyZW5kZXJDb21wb25lbnQiLCJjb21wb25lbnQiLCJmaWVsZFR5cGUiLCJjb25zb2xlIiwiZXJyb3IiLCJpc0Rpc2FibGVkIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImNyZWF0ZUVsZW1lbnQiLCJrZXlIYW5kbGVyIiwiZm9ybSIsInBhcmVudElkIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwidmFsdWVzIiwidHlwZSIsIm11bHRpbGluZSIsInN0eWxlIiwiTGF5b3V0IiwiZmllbGREYXRhQmluZGluZ3MiLCJmaWVsZE5hbWVzIiwicHVzaCIsImRhdGFCaW5kaW5nIiwiY2xlYXIiLCJjb21wb25lbnRSZWYiLCJ2YWx1ZSIsImdldENoaWxkcmVuIiwiY2hpbGRyZW4iLCJtb2RlbCIsImZvcm1WYWx1ZSIsImxvYWREYXRhIiwiYWN0aW9uQ29uZmlnIiwiYWN0aW9uRXZlbnQiLCJzZXJ2aWNlIiwiZGF0YVNlcnZpY2UiLCJjb21wb25lbnRWYWx1ZSIsImlzRXZlbnREYXRhIiwidG9TdHJpbmciLCJzdGFydHNXaXRoIiwiaXNFcHJlc3Npb24iLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJpc0V4cHJlc3Npb24iLCJ2YWwiLCJyZXNvbHZlRXhwcmVzc2lvblZhbHVlIiwiZGF0YSIsImJpbmREYXRhIiwiREFUQV9BUlJJVkVEIiwibWV0aG9kIiwiaW52b2tlUnBjIiwiaW52b2tlUmVzdCIsInJlZiIsImN1cnJlbnQiLCJ0aGVuIiwicmVzdWx0IiwiY2F0Y2giLCJwdWJsaXNoRXJyb3JNZXNzYWdlIiwicmVuZGVyIiwiZmllbGRTZXQiLCJsZW5ndGgiLCJyb3dzIiwibWFwIiwicm93IiwiaSIsImNsYXNzTmFtZSIsImtleSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImluZGV4IiwiX2ZpZWxkJGF0dHJpYnV0ZXMiLCJfZmllbGQkYXR0cmlidXRlczIiLCJjb2xzcGFuIiwid2lkdGgiLCJjb2xzcGFuVmFsIiwiZ2V0RmllbGRDb2xzcGFuIiwibWF4Q29sUGVyUm93IiwiY29udGFpbmVyU3R5bGUiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCIsIm1pbldpZHRoIiwibWVyZ2VPYmplY3RzIiwibWVyZ2VTdHlsZXMiLCJkaXNwbGF5IiwibWFyZ2luIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vRmllbGRTZXQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIu+7v2ltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi8uLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBUZXh0RmllbGQgZnJvbSAnLi9UZXh0RmllbGQnO1xuaW1wb3J0IEN1cnJlbmN5RmllbGQgZnJvbSAnLi9DdXJyZW5jeUZpZWxkJztcbmltcG9ydCBBZGRyZXNzU2VhcmNoIGZyb20gJy4vQWRkcmVzc1NlYXJjaCc7XG5pbXBvcnQgTG9va3VwRmllbGQgZnJvbSAnLi9Mb29rdXBGaWVsZCc7XG5pbXBvcnQgU2VsZWN0SXRlbSBmcm9tICcuL1NlbGVjdEl0ZW0nO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9EYXRlUGlja2VyJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vVGltZVBpY2tlcic7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi9DaGVja2JveCc7XG5pbXBvcnQgTGFiZWxGaWVsZCBmcm9tICcuL0xhYmVsRmllbGQnO1xuaW1wb3J0IFVwbG9hZEZpZWxkIGZyb20gJy4vVXBsb2FkRmllbGQnO1xuaW1wb3J0IFRyYW5zZmVyTGlzdCBmcm9tICcuL1RyYW5zZmVyTGlzdCc7XG5pbXBvcnQgR3JpZEZpZWxkIGZyb20gJy4vR3JpZEZpZWxkJztcbmltcG9ydCBJbWFnZUVkaXRvciBmcm9tICcuL0ltYWdlRWRpdG9yJztcbmltcG9ydCBSYWRpb0dyb3VwIGZyb20gJy4vUmFkaW9Hcm91cCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnZva2VSZXN0LCBpbnZva2VScGN9IGZyb20gJy4uLy4uL1Jlc3RTZXJ2aWNlJztcbmltcG9ydCBTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQgZnJvbSAnLi9TaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0ICcuL2ZpZWxkc2V0LmNzcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgSHRtbFBhbmVsIGZyb20gJy4uL0h0bWxQYW5lbCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gJy4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBNdWx0aUZpbGVVcGxvYWRGaWVsZCBmcm9tICcuL011bHRpRmlsZVVwbG9hZEZpZWxkJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuL1N3aXRjaCc7XG5pbXBvcnQgSWNvbkZpZWxkIGZyb20gJy4vSWNvbkZpZWxkJztcbmltcG9ydCBEb2N1bWVudFRlbXBsYXRlRGVzaWduZXIgZnJvbSBcIi4uL0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lclwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi4vLi4vRHluYW1pY0pTXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4uL2xheW91dC9MYXlvdXRcIjtcblxuY29uc3QgRmllbGRTZXQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWVsZEdyaWRdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuZ2V0RmllbGRHcmlkKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLCBwcm9wcy5jb25maWcuZmllbGRzKSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudERpc2FibGVkU3RhdGUocHJvcHMuZGlzYWJsZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcHJvcHMuZGlzYWJsZWRdKTtcblxuICAgIGZ1bmN0aW9uIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuVkFMVUVfQ0hBTkdFLCBldmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudEhhbmRsZS5hcGkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRIYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBSRU5ESU5HIENPTVBPTkVOVCA6ICcgKyBjb21wb25lbnQuaWQgKyAnIC0gTk8gRklFTEQgVFlQRSBTUEVDSUZJRUQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuZGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoY29tcG9uZW50LmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnTE9PS1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0ZJRUxEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NVUlJFTkNZJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEN1cnJlbmN5RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnUEFTU1dPUkQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9eydwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0FSRUEnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0FERFJFU1NfU0VBUkNIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEFkZHJlc3NTZWFyY2gga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTRUxFQ1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2VsZWN0SXRlbSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdEQVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERhdGVQaWNrZXIga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQVVUT19DT01QTEVURSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdXRvQ29tcGxldGUga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdDSEVDS0JPWCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDaGVja2JveCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnU1dJVENIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFN3aXRjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0xBQkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExhYmVsRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRklMRV9VUExPQUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VXBsb2FkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXsnSU1BR0UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9GSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUZpbGVVcGxvYWRGaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUUkFOU0ZFUl9MSVNUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRyYW5zZmVyTGlzdCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0dSSUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8R3JpZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnVElNRSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX0VESVRPUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUVkaXRvclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdSQURJT19HUk9VUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSYWRpb0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0JVVFRPTic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSFRNTF9QQU5FTCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxIdG1sUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFZT1VUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExheW91dFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdJQ09OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEljb25GaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTSUdOQVRVUkVfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RPQ1VNRU5UX1RFTVBMQVRFX0RFU0lHTkVSJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERvY3VtZW50VGVtcGxhdGVEZXNpZ25lclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2PnsnVW5zdXBwb3J0ZWQgZmllbGRzZXQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC5maWVsZFR5cGUgKyAnIC0gJyArIGNvbXBvbmVudC5pZH08L2Rpdj47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgZmllbGREYXRhQmluZGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkTmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lcy5wdXNoKCFVdGlscy5pc051bGwoZmllbGQuZGF0YUJpbmRpbmcpID8gZmllbGQuZGF0YUJpbmRpbmcgOiBmaWVsZC5pZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXIoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1vZGVsKG1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKS5tb2RlbFtmaWVsZC5pZF0gPSBtb2RlbFtmaWVsZC5pZF07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbW9kZWxbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHByb3BzLmZvcm0oKS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChmb3JtVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkLmlkXSA9IGZvcm1WYWx1ZVtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvYWREYXRhOiAoYWN0aW9uQ29uZmlnLCBhY3Rpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlID0gIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UpID8gYWN0aW9uQ29uZmlnLmRhdGFTZXJ2aWNlIDpcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID8gcHJvcHMuY29uZmlnLmRhdGFTZXJ2aWNlIDogbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50VmFsdWUgPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWx1ZSkgPyBwcm9wcy5jb25maWcudmFsdWUgOlxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWcudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXZlbnREYXRhID0gY29tcG9uZW50VmFsdWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXJ0c1dpdGgoJyRldmVudC5kYXRhJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpc0VwcmVzc2lvbiA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oY29tcG9uZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNFdmVudERhdGEgfHwgaXNFcHJlc3Npb24gPyBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShjb21wb25lbnRWYWx1ZSwgYWN0aW9uRXZlbnQgPyBhY3Rpb25FdmVudC5kYXRhIDogbnVsbCkgOiBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEodmFsKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRBVEFfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWV0aG9kID0gc2VydmljZS50eXBlID09PSAncnBjJyA/IGludm9rZVJwYyA6IGludm9rZVJlc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiByZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ6IHByb3BzLnZpZXdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gcmVzdWx0LmRhdGEgOiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLnZpc2libGUsIHByb3BzLmNvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVmcmVzaENvbXBvbmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGZpZWxkU2V0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoVXRpbHMuaXNOdWxsKGZpZWxkU2V0LmZpZWxkcykgfHwgZmllbGRTZXQuZmllbGRzLmxlbmd0aCA9PT0gMCkgP1xuICAgICAgICAgICAgICAgIDxkaXY+IEVycm9yOiBBIGZpZWxkU2V0IG11c3QgaGF2ZSBmaWVsZHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRHcmlkLnJvd3MubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJyb3dcIiBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5maWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChmaWVsZC5hdHRyaWJ1dGVzLmNvbHNwYW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuVmFsID0gVXRpbHMuZ2V0RmllbGRDb2xzcGFuKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHNwYW5WYWwgPiBmaWVsZEdyaWQubWF4Q29sUGVyUm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzcGFuID0gZmllbGRHcmlkLm1heENvbFBlclJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBjb2xzcGFuVmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBjb2xzcGFuIC8gZmllbGRHcmlkLm1heENvbFBlclJvdyAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggKyAnJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGUgPSBmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLm1lcmdlT2JqZWN0cyhmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSwgY29udGFpbmVyU3R5bGUpIDogY29udGFpbmVyU3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXsoaSArIDEpICogaW5kZXh9IGNsYXNzTmFtZT1cImNvbC0qLSogb3VpLWZvcm0taXRlbS1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2ZpZWxkU2V0V3JhcHBlcid9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyhcbiAgICAgICAge1xuICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAge1xuICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmllbGRTZXRUaXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGZpZWxkR3JpZCkgP1xuICAgICAgICAgICAgICAgIHJlbmRlcihwcm9wcy5jb25maWcpXG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgIDwvZGl2Pjtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBGaWVsZFNldDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFB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QUFLLENBQUNOLFVBQVUsY0FBQXFHLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQk8sY0FBYyxHQUN4Qy9HLGNBQUssQ0FBQ21ILFlBQVksRUFBQVYsa0JBQUEsR0FBQ2hHLEtBQUssQ0FBQ04sVUFBVSxjQUFBc0csa0JBQUEsdUJBQWhCQSxrQkFBQSxDQUFrQk0sY0FBYyxFQUFFQSxjQUFjLENBQUMsR0FBR0EsY0FBYztRQUN6RixvQkFBTzFKLE1BQUEsQ0FBQW9DLE9BQUEsQ0FBQW9ELGFBQUE7VUFBS3VELEdBQUcsRUFBRSxDQUFDRixDQUFDLEdBQUcsQ0FBQyxJQUFJSyxLQUFNO1VBQUNKLFNBQVMsRUFBQyxpQ0FBaUM7VUFBQzlDLEtBQUssRUFBRUE7UUFBTSxHQUVuRmYsZUFBZSxDQUFDN0IsS0FBSyxDQUV4QixDQUFDO01BQ1YsQ0FBQyxDQUVKLENBQUM7SUFDVixDQUFDLENBRUosQ0FBQztFQUVsQjtFQUVBLG9CQUFPcEQsTUFBQSxDQUFBb0MsT0FBQSxDQUFBb0QsYUFBQTtJQUFLc0QsU0FBUyxFQUFFLGlCQUFrQjtJQUFDOUMsS0FBSyxFQUFFckQsY0FBSyxDQUFDb0gsV0FBVyxDQUM5RDtNQUNJQyxPQUFPLEVBQUUvRyxPQUFPLEdBQUcsT0FBTyxHQUFHLE1BQU07TUFDbkNnSCxNQUFNLEVBQUU7SUFDWixDQUFDLEVBQUV6SCxLQUFLLENBQUNLLE1BQU07RUFBRSxHQUViLENBQUNGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLElBQUksQ0FBQ0gsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsZ0JBQ3JGOUMsTUFBQSxDQUFBb0MsT0FBQSxDQUFBb0QsYUFBQTtJQUFLc0QsU0FBUyxFQUFFO0VBQWdCLEdBQzNCdEcsS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxPQUFPLENBQy9CLENBQUMsR0FFTixJQUFJLEVBR1IsQ0FBQ0gsY0FBSyxDQUFDVSxNQUFNLENBQUNaLFNBQVMsQ0FBQyxHQUNwQjhGLE1BQU0sQ0FBQy9GLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLEdBRXBCLElBRVAsQ0FBQztBQUNWLENBQUMsQ0FBQztBQUFDLElBQUFxSCxRQUFBLEdBQUFDLE9BQUEsQ0FBQS9ILE9BQUEsR0FFWUMsUUFBUSIsImlnbm9yZUxpc3QiOltdfQ==
545
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9PYnNlcnZhYmxlIiwiX1RleHRGaWVsZCIsIl9DdXJyZW5jeUZpZWxkIiwiX0FkZHJlc3NTZWFyY2giLCJfTG9va3VwRmllbGQiLCJfTXVsdGlMb29rdXBGaWVsZCIsIl9TZWxlY3RJdGVtIiwiX0RhdGVQaWNrZXIiLCJfVGltZVBpY2tlciIsIl9DaGVja2JveCIsIl9MYWJlbEZpZWxkIiwiX1VwbG9hZEZpZWxkIiwiX1RyYW5zZmVyTGlzdCIsIl9HcmlkRmllbGQiLCJfSW1hZ2VFZGl0b3IiLCJfUmFkaW9Hcm91cCIsIl9FdmVudCIsIl9FdmVudFR5cGUiLCJfUmVzdFNlcnZpY2UiLCJfU2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9CdXR0b24iLCJfSHRtbFBhbmVsIiwiX0F1dG9Db21wbGV0ZSIsIl9NdWx0aUZpbGVVcGxvYWRGaWVsZCIsIl9JY29uIiwiX1N3aXRjaCIsIl9JY29uRmllbGQiLCJfRG9jdW1lbnRUZW1wbGF0ZURlc2lnbmVyIiwiX0R5bmFtaWNKUyIsIl9MYXlvdXQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJGaWVsZFNldCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiZmllbGRHcmlkIiwidXNlU3RhdGUiLCJVdGlscyIsImdldEZpZWxkR3JpZCIsImNvbmZpZyIsImF0dHJpYnV0ZXMiLCJmaWVsZHMiLCJjb21wb25lbnRIYW5kbGVzIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJjcmVhdGVDb21wb25lbnRIYW5kbGUiLCJmaWVsZCIsImlzTnVsbCIsImlkIiwiaGFuZGxlIiwidXNlRWZmZWN0IiwiYXBpIiwidXNlTGF5b3V0RWZmZWN0IiwicmVmcmVzaCIsInBhcnNlZENvbmZpZyIsInBhcnNlQ29uZmlnIiwidmlld0lkIiwiZXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsImV2ZW50SGFuZGxpbmdDb25maWciLCJhZGRTeXN0ZW1TdWJzY3JpcHRpb25zIiwiZGlzYWJsZWQiLCJ1cGRhdGVDb21wb25lbnREaXNhYmxlZFN0YXRlIiwiZmlyZUNoYW5nZUV2ZW50IiwiZXZlbnQiLCJFdmVudCIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIlZBTFVFX0NIQU5HRSIsInByb3BlcnRpZXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJjb21wb25lbnRIYW5kbGUiLCJyZWZyZXNoQ29tcG9uZW50cyIsInJlbmRlckNvbXBvbmVudCIsImNvbXBvbmVudCIsImZpZWxkVHlwZSIsImNvbnNvbGUiLCJlcnJvciIsImlzRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJmb3JtIiwicGFyZW50SWQiLCJ2YWx1ZUNoYW5nZUhhbmRsZXIiLCJ2YWx1ZXMiLCJ0eXBlIiwibXVsdGlsaW5lIiwic3R5bGUiLCJMYXlvdXQiLCJmaWVsZERhdGFCaW5kaW5ncyIsImZpZWxkTmFtZXMiLCJwdXNoIiwiZGF0YUJpbmRpbmciLCJjbGVhciIsImNvbXBvbmVudFJlZiIsInZhbHVlIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vZGVsIiwiZm9ybVZhbHVlIiwibG9hZERhdGEiLCJhY3Rpb25Db25maWciLCJhY3Rpb25FdmVudCIsInNlcnZpY2UiLCJkYXRhU2VydmljZSIsImNvbXBvbmVudFZhbHVlIiwiaXNFdmVudERhdGEiLCJ0b1N0cmluZyIsInN0YXJ0c1dpdGgiLCJpc0VwcmVzc2lvbiIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsInZhbCIsInJlc29sdmVFeHByZXNzaW9uVmFsdWUiLCJkYXRhIiwiYmluZERhdGEiLCJEQVRBX0FSUklWRUQiLCJtZXRob2QiLCJpbnZva2VScGMiLCJpbnZva2VSZXN0IiwicmVmIiwiY3VycmVudCIsInRoZW4iLCJyZXN1bHQiLCJjYXRjaCIsInB1Ymxpc2hFcnJvck1lc3NhZ2UiLCJyZW5kZXIiLCJmaWVsZFNldCIsImxlbmd0aCIsInJvd3MiLCJtYXAiLCJyb3ciLCJpIiwiY2xhc3NOYW1lIiwia2V5IiwibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0IiwiaW5kZXgiLCJfZmllbGQkYXR0cmlidXRlcyIsIl9maWVsZCRhdHRyaWJ1dGVzMiIsImNvbHNwYW4iLCJ3aWR0aCIsImNvbHNwYW5WYWwiLCJnZXRGaWVsZENvbHNwYW4iLCJtYXhDb2xQZXJSb3ciLCJjb250YWluZXJTdHlsZSIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ1JpZ2h0IiwibWluV2lkdGgiLCJtZXJnZU9iamVjdHMiLCJtZXJnZVN0eWxlcyIsImRpc3BsYXkiLCJtYXJnaW4iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9GaWVsZFNldC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IFRleHRGaWVsZCBmcm9tICcuL1RleHRGaWVsZCc7XG5pbXBvcnQgQ3VycmVuY3lGaWVsZCBmcm9tICcuL0N1cnJlbmN5RmllbGQnO1xuaW1wb3J0IEFkZHJlc3NTZWFyY2ggZnJvbSAnLi9BZGRyZXNzU2VhcmNoJztcbmltcG9ydCBMb29rdXBGaWVsZCBmcm9tICcuL0xvb2t1cEZpZWxkJztcbmltcG9ydCBNdWx0aUxvb2t1cEZpZWxkIGZyb20gJy4vTXVsdGlMb29rdXBGaWVsZCc7XG5pbXBvcnQgU2VsZWN0SXRlbSBmcm9tICcuL1NlbGVjdEl0ZW0nO1xuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi9EYXRlUGlja2VyJztcbmltcG9ydCBUaW1lUGlja2VyIGZyb20gJy4vVGltZVBpY2tlcic7XG5pbXBvcnQgQ2hlY2tib3ggZnJvbSAnLi9DaGVja2JveCc7XG5pbXBvcnQgTGFiZWxGaWVsZCBmcm9tICcuL0xhYmVsRmllbGQnO1xuaW1wb3J0IFVwbG9hZEZpZWxkIGZyb20gJy4vVXBsb2FkRmllbGQnO1xuaW1wb3J0IFRyYW5zZmVyTGlzdCBmcm9tICcuL1RyYW5zZmVyTGlzdCc7XG5pbXBvcnQgR3JpZEZpZWxkIGZyb20gJy4vR3JpZEZpZWxkJztcbmltcG9ydCBJbWFnZUVkaXRvciBmcm9tICcuL0ltYWdlRWRpdG9yJztcbmltcG9ydCBSYWRpb0dyb3VwIGZyb20gJy4vUmFkaW9Hcm91cCc7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuaW1wb3J0IHtpbnZva2VSZXN0LCBpbnZva2VScGN9IGZyb20gJy4uLy4uL1Jlc3RTZXJ2aWNlJztcbmltcG9ydCBTaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQgZnJvbSAnLi9TaWduYXR1cmVUZW1wbGF0ZURlc2lnbmVyRmllbGQnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tICcuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXInO1xuaW1wb3J0ICcuL2ZpZWxkc2V0LmNzcyc7XG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgSHRtbFBhbmVsIGZyb20gJy4uL0h0bWxQYW5lbCc7XG5pbXBvcnQgQXV0b0NvbXBsZXRlIGZyb20gJy4vQXV0b0NvbXBsZXRlJztcbmltcG9ydCBNdWx0aUZpbGVVcGxvYWRGaWVsZCBmcm9tICcuL011bHRpRmlsZVVwbG9hZEZpZWxkJztcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IFN3aXRjaCBmcm9tICcuL1N3aXRjaCc7XG5pbXBvcnQgSWNvbkZpZWxkIGZyb20gJy4vSWNvbkZpZWxkJztcbmltcG9ydCBEb2N1bWVudFRlbXBsYXRlRGVzaWduZXIgZnJvbSBcIi4uL0RvY3VtZW50VGVtcGxhdGVEZXNpZ25lclwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi4vLi4vRHluYW1pY0pTXCI7XG5pbXBvcnQge0xheW91dH0gZnJvbSBcIi4uL2xheW91dC9MYXlvdXRcIjtcblxuY29uc3QgRmllbGRTZXQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWVsZEdyaWRdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuZ2V0RmllbGRHcmlkKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLCBwcm9wcy5jb25maWcuZmllbGRzKSk7XG4gICAgY29uc3QgW2NvbXBvbmVudEhhbmRsZXNdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt2aXNpYmxlLCBzZXRWaXNpYmxlXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIGNvbnN0IGNyZWF0ZUNvbXBvbmVudEhhbmRsZSA9IChmaWVsZCkgPT4ge1xuICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdKSkge1xuICAgICAgICAgICAgbGV0IGhhbmRsZSA9IHt9O1xuICAgICAgICAgICAgY29tcG9uZW50SGFuZGxlc1tmaWVsZC5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICBSZWFjdC51c2VMYXlvdXRFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpID0gYXBpKCk7XG4gICAgICAgICAgICBwcm9wcy5oYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIGxldCBwYXJzZWRDb25maWcgPSBVdGlscy5wYXJzZUNvbmZpZyhwcm9wcy5jb25maWcsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhwYXJzZWRDb25maWcuZXZlbnRIYW5kbGluZ0NvbmZpZywgcHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbVN1YnNjcmlwdGlvbnMocHJvcHMudmlld0lkLCBwYXJzZWRDb25maWcpO1xuICAgICAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHVwZGF0ZUNvbXBvbmVudERpc2FibGVkU3RhdGUocHJvcHMuZGlzYWJsZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcHJvcHMuZGlzYWJsZWRdKTtcblxuICAgIGZ1bmN0aW9uIGZpcmVDaGFuZ2VFdmVudCgpIHtcbiAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuVkFMVUVfQ0hBTkdFLCBldmVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGNvbXBvbmVudEhhbmRsZS5hcGkuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlZnJlc2hDb21wb25lbnRzKCkge1xuICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGxldCBjb21wb25lbnRIYW5kbGUgPSBjb21wb25lbnRIYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudEhhbmRsZS5hcGkpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRIYW5kbGUuYXBpLnJlZnJlc2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbmRlckNvbXBvbmVudChjb21wb25lbnQpIHtcbiAgICAgICAgaWYgKCFjb21wb25lbnQuZmllbGRUeXBlKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUiBSRU5ESU5HIENPTVBPTkVOVCA6ICcgKyBjb21wb25lbnQuaWQgKyAnIC0gTk8gRklFTEQgVFlQRSBTUEVDSUZJRUQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBpc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICBpc0Rpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuZGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChjb21wb25lbnQuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoY29tcG9uZW50LmZpZWxkVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnTE9PS1VQJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExvb2t1cEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9MT09LVVAnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8TXVsdGlMb29rdXBGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0ZJRUxEJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRleHRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0NVUlJFTkNZJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEN1cnJlbmN5RmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnUEFTU1dPUkQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9eydwYXNzd29yZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdURVhUX0FSRUEnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VGV4dEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0FERFJFU1NfU0VBUkNIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEFkZHJlc3NTZWFyY2gga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpbGluZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTRUxFQ1QnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2VsZWN0SXRlbSBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdEQVRFJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERhdGVQaWNrZXIga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnQVVUT19DT01QTEVURSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxBdXRvQ29tcGxldGUga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdDSEVDS0JPWCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDaGVja2JveCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnU1dJVENIJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFN3aXRjaCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0xBQkVMJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExhYmVsRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnRklMRV9VUExPQUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8VXBsb2FkRmllbGQga2V5SGFuZGxlcj17cHJvcHMua2V5SGFuZGxlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudElkPXtwcm9wcy5wYXJlbnRJZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxVcGxvYWRGaWVsZCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXsnSU1BR0UnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdNVUxUSV9GSUxFX1VQTE9BRCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxNdWx0aUZpbGVVcGxvYWRGaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdUUkFOU0ZFUl9MSVNUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPFRyYW5zZmVyTGlzdCBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsoKSA9PiBmaXJlQ2hhbmdlRXZlbnQoKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0dSSUQnOlxuICAgICAgICAgICAgICAgIHJldHVybiA8R3JpZEZpZWxkIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnVElNRSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxUaW1lUGlja2VyXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0lNQUdFX0VESVRPUic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxJbWFnZUVkaXRvclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdSQURJT19HUk9VUCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxSYWRpb0dyb3VwXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0JVVFRPTic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnSFRNTF9QQU5FTCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxIdG1sUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtjb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgIGZvcm09e3Byb3BzLmZvcm19XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgIC8+O1xuICAgICAgICAgICAgY2FzZSAnTEFZT1VUJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPExheW91dFxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVDb21wb25lbnRIYW5kbGUoY29tcG9uZW50KX1cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdJQ09OJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPEljb25GaWVsZFxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBjYXNlICdTSUdOQVRVUkVfVEVNUExBVEVfREVTSUdORVInOlxuICAgICAgICAgICAgICAgIHJldHVybiA8U2lnbmF0dXJlVGVtcGxhdGVEZXNpZ25lckZpZWxkXG4gICAgICAgICAgICAgICAgICAgIGtleUhhbmRsZXI9e3Byb3BzLmtleUhhbmRsZXJ9XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZz17Y29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICBmb3JtPXtwcm9wcy5mb3JtfVxuICAgICAgICAgICAgICAgICAgICBwYXJlbnRJZD17cHJvcHMucGFyZW50SWR9XG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZT17Y3JlYXRlQ29tcG9uZW50SGFuZGxlKGNvbXBvbmVudCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KCkgPT4gZmlyZUNoYW5nZUV2ZW50KCl9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcz17cHJvcHMudmFsdWVzfVxuICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH1cbiAgICAgICAgICAgICAgICAvPjtcbiAgICAgICAgICAgIGNhc2UgJ0RPQ1VNRU5UX1RFTVBMQVRFX0RFU0lHTkVSJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gPERvY3VtZW50VGVtcGxhdGVEZXNpZ25lclxuICAgICAgICAgICAgICAgICAgICBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e2NvbXBvbmVudH1cbiAgICAgICAgICAgICAgICAgICAgZm9ybT17cHJvcHMuZm9ybX1cbiAgICAgICAgICAgICAgICAgICAgcGFyZW50SWQ9e3Byb3BzLnBhcmVudElkfVxuICAgICAgICAgICAgICAgICAgICBoYW5kbGU9e2NyZWF0ZUNvbXBvbmVudEhhbmRsZShjb21wb25lbnQpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eygpID0+IGZpcmVDaGFuZ2VFdmVudCgpfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgLz47XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2PnsnVW5zdXBwb3J0ZWQgZmllbGRzZXQgY29tcG9uZW50IHR5cGUgJyArIGNvbXBvbmVudC5maWVsZFR5cGUgKyAnIC0gJyArIGNvbXBvbmVudC5pZH08L2Rpdj47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgZmllbGREYXRhQmluZGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkTmFtZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHByb3BzLmNvbmZpZy5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGROYW1lcy5wdXNoKCFVdGlscy5pc051bGwoZmllbGQuZGF0YUJpbmRpbmcpID8gZmllbGQuZGF0YUJpbmRpbmcgOiBmaWVsZC5pZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkTmFtZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IGRpc2FibGVkKGRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShkaXNhYmxlZCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2xlYXIoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjb21wb25lbnRIYW5kbGVzKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGNvbXBvbmVudEhhbmRsZXMpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcGVydHkgb2YgcHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNvbXBvbmVudEhhbmRsZXNbcHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGRyZW47XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2V0IG1vZGVsKG1vZGVsKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmZvcm0oKS5tb2RlbFtmaWVsZC5pZF0gPSBtb2RlbFtmaWVsZC5pZF07XG5cbiAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudFJlZiA9IGNvbXBvbmVudEhhbmRsZXNbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuYXBpLnZhbHVlID0gbW9kZWxbZmllbGQuaWRdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXQgdmFsdWUoKSB7XG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgbGV0IGZvcm1WYWx1ZSA9IHByb3BzLmZvcm0oKS52YWx1ZTtcblxuICAgICAgICAgICAgICAgIGlmIChmb3JtVmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBwcm9wcy5jb25maWcuZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlW2ZpZWxkLmlkXSA9IGZvcm1WYWx1ZVtmaWVsZC5pZF07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGxvYWREYXRhOiAoYWN0aW9uQ29uZmlnLCBhY3Rpb25FdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlID0gIVV0aWxzLmlzTnVsbChhY3Rpb25Db25maWcuZGF0YVNlcnZpY2UpID8gYWN0aW9uQ29uZmlnLmRhdGFTZXJ2aWNlIDpcbiAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcpID8gcHJvcHMuY29uZmlnLmRhdGFTZXJ2aWNlIDogbnVsbDtcbiAgICAgICAgICAgICAgICBsZXQgY29tcG9uZW50VmFsdWUgPSAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWx1ZSkgPyBwcm9wcy5jb25maWcudmFsdWUgOlxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25Db25maWcudmFsdWU7XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50VmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGlzRXZlbnREYXRhID0gY29tcG9uZW50VmFsdWUudG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN0YXJ0c1dpdGgoJyRldmVudC5kYXRhJyk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpc0VwcmVzc2lvbiA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24oY29tcG9uZW50VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNFdmVudERhdGEgfHwgaXNFcHJlc3Npb24gPyBhcHBsaWNhdGlvbk1hbmFnZXIucmVzb2x2ZUV4cHJlc3Npb25WYWx1ZShjb21wb25lbnRWYWx1ZSwgYWN0aW9uRXZlbnQgPyBhY3Rpb25FdmVudC5kYXRhIDogbnVsbCkgOiBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEodmFsKTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRBVEFfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWV0aG9kID0gc2VydmljZS50eXBlID09PSAncnBjJyA/IGludm9rZVJwYyA6IGludm9rZVJlc3Q7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Qoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IHNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiByZWYuY3VycmVudCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ6IHByb3BzLnZpZXdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSkudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBzZXJ2aWNlLnR5cGUgPT09ICdycGMnID8gcmVzdWx0LmRhdGEgOiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZm9ybSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYmluZERhdGEoZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuREFUQV9BUlJJVkVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLnB1Ymxpc2hFcnJvck1lc3NhZ2UoZSwgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52aXNpYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBzZXRWaXNpYmxlKFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLnZpc2libGUsIHByb3BzLmNvbmZpZy5pZCkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlQ29tcG9uZW50RGlzYWJsZWRTdGF0ZShVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5kaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVmcmVzaENvbXBvbmVudHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVuZGVyKGZpZWxkU2V0KSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAoVXRpbHMuaXNOdWxsKGZpZWxkU2V0LmZpZWxkcykgfHwgZmllbGRTZXQuZmllbGRzLmxlbmd0aCA9PT0gMCkgP1xuICAgICAgICAgICAgICAgIDxkaXY+IEVycm9yOiBBIGZpZWxkU2V0IG11c3QgaGF2ZSBmaWVsZHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRHcmlkLnJvd3MubWFwKChyb3csIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9XCJyb3dcIiBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luTGVmdDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5SaWdodDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5maWVsZHMubWFwKChmaWVsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgd2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGZpZWxkLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChmaWVsZC5hdHRyaWJ1dGVzLmNvbHNwYW4pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2xzcGFuVmFsID0gVXRpbHMuZ2V0RmllbGRDb2xzcGFuKGZpZWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbHNwYW5WYWwgPiBmaWVsZEdyaWQubWF4Q29sUGVyUm93KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xzcGFuID0gZmllbGRHcmlkLm1heENvbFBlclJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHNwYW4gPSBjb2xzcGFuVmFsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGggPSBjb2xzcGFuIC8gZmllbGRHcmlkLm1heENvbFBlclJvdyAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29udGFpbmVyU3R5bGUgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdSaWdodDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpblJpZ2h0OiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbldpZHRoOiAnMzIwcHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGggKyAnJSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3R5bGUgPSBmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLm1lcmdlT2JqZWN0cyhmaWVsZC5hdHRyaWJ1dGVzPy5jb250YWluZXJTdHlsZSwgY29udGFpbmVyU3R5bGUpIDogY29udGFpbmVyU3R5bGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXsoaSArIDEpICogaW5kZXh9IGNsYXNzTmFtZT1cImNvbC0qLSogb3VpLWZvcm0taXRlbS1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJDb21wb25lbnQoZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+O1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J2ZpZWxkU2V0V3JhcHBlcid9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyhcbiAgICAgICAge1xuICAgICAgICAgICAgZGlzcGxheTogdmlzaWJsZSA/ICdibG9jaycgOiAnbm9uZScsXG4gICAgICAgICAgICBtYXJnaW46ICcwJ1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAge1xuICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgJiYgIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnZmllbGRTZXRUaXRsZSd9PlxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXNbJ2xhYmVsJ119XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgICAgICB7XG4gICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGZpZWxkR3JpZCkgP1xuICAgICAgICAgICAgICAgIHJlbmRlcihwcm9wcy5jb25maWcpXG4gICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgfVxuICAgIDwvZGl2Pjtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBGaWVsZFNldDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsTUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsV0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsVUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8saUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFdBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFZLFdBQUEsR0FBQWIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFhLFlBQUEsR0FBQWQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFjLGFBQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFlLFVBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0IsWUFBQSxHQUFBakIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFpQixXQUFBLEdBQUFsQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWtCLE1BQUEsR0FBQW5CLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBbUIsVUFBQSxHQUFBcEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFvQixZQUFBLEdBQUFwQixPQUFBO0FBQ0EsSUFBQXFCLCtCQUFBLEdBQUF0QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXNCLG1CQUFBLEdBQUF2QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBdUIsT0FBQSxHQUFBeEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUF3QixVQUFBLEdBQUF6QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXlCLGFBQUEsR0FBQTFCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBMEIscUJBQUEsR0FBQTNCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBMkIsS0FBQSxHQUFBNUIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUE0QixPQUFBLEdBQUE3QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQTZCLFVBQUEsR0FBQTlCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBOEIseUJBQUEsR0FBQS9CLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBK0IsVUFBQSxHQUFBaEMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFnQyxPQUFBLEdBQUFoQyxPQUFBO0FBQXdDLFNBQUFELHVCQUFBa0MsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUV4QyxNQUFNRyxRQUFRLGdCQUFHQyxjQUFLLENBQUNDLElBQUksQ0FBRUMsS0FBSyxJQUFLO0VBQ25DLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDLEdBQUdILGNBQUssQ0FBQ0ksUUFBUSxDQUFDQyxjQUFLLENBQUNDLFlBQVksQ0FBQ0osS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsRUFBRU4sS0FBSyxDQUFDSyxNQUFNLENBQUNFLE1BQU0sQ0FBQyxDQUFDO0VBQ3BHLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsR0FBR1YsY0FBSyxDQUFDSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDN0MsTUFBTSxDQUFDTyxPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHWixjQUFLLENBQUNJLFFBQVEsQ0FBQyxLQUFLLENBQUM7RUFFbkQsTUFBTVMscUJBQXFCLEdBQUlDLEtBQUssSUFBSztJQUNyQyxJQUFJVCxjQUFLLENBQUNVLE1BQU0sQ0FBQ0wsZ0JBQWdCLENBQUNJLEtBQUssQ0FBQ0UsRUFBRSxDQUFDLENBQUMsRUFBRTtNQUMxQyxJQUFJQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO01BQ2ZQLGdCQUFnQixDQUFDSSxLQUFLLENBQUNFLEVBQUUsQ0FBQyxHQUFHQyxNQUFNO01BQ25DLE9BQU9BLE1BQU07SUFDakI7SUFFQSxPQUFPUCxnQkFBZ0IsQ0FBQ0ksS0FBSyxDQUFDRSxFQUFFLENBQUM7RUFDckMsQ0FBQztFQUVEaEIsY0FBSyxDQUFDa0IsU0FBUyxDQUNYLE1BQU07SUFDRmhCLEtBQUssQ0FBQ2UsTUFBTSxDQUFDRSxHQUFHLEdBQUdBLEdBQUcsQ0FBQyxDQUFDO0VBQzVCLENBQUMsQ0FBQztFQUVObkIsY0FBSyxDQUFDb0IsZUFBZSxDQUNqQixNQUFNO0lBQ0ZsQixLQUFLLENBQUNlLE1BQU0sQ0FBQ0UsR0FBRyxHQUFHQSxHQUFHLENBQUMsQ0FBQztFQUM1QixDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRVZuQixjQUFLLENBQUNrQixTQUFTLENBQ1gsTUFBTTtJQUNGaEIsS0FBSyxDQUFDZSxNQUFNLENBQUNFLEdBQUcsR0FBR0EsR0FBRyxDQUFDLENBQUM7SUFDeEJqQixLQUFLLENBQUNlLE1BQU0sQ0FBQ0UsR0FBRyxDQUFDRSxPQUFPLENBQUMsQ0FBQztJQUMxQixJQUFJQyxZQUFZLEdBQUdqQixjQUFLLENBQUNrQixXQUFXLENBQUNyQixLQUFLLENBQUNLLE1BQU0sRUFBRUwsS0FBSyxDQUFDc0IsTUFBTSxDQUFDO0lBQ2hFQyxtQkFBWSxDQUFDQyxnQkFBZ0IsQ0FBQ0osWUFBWSxDQUFDSyxtQkFBbUIsRUFBRXpCLEtBQUssQ0FBQ2UsTUFBTSxFQUFFZixLQUFLLENBQUNzQixNQUFNLENBQUM7SUFDM0ZDLG1CQUFZLENBQUNHLHNCQUFzQixDQUFDMUIsS0FBSyxDQUFDc0IsTUFBTSxFQUFFRixZQUFZLENBQUM7RUFDbkUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVWdEIsY0FBSyxDQUFDa0IsU0FBUyxDQUNYLE1BQU07SUFDRixJQUFJLENBQUNiLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUMyQixRQUFRLENBQUMsRUFBRTtNQUMvQkMsNEJBQTRCLENBQUM1QixLQUFLLENBQUMyQixRQUFRLENBQUM7SUFDaEQ7RUFDSixDQUFDLEVBQUUsQ0FBQzNCLEtBQUssQ0FBQzJCLFFBQVEsQ0FBQyxDQUFDO0VBRXhCLFNBQVNFLGVBQWVBLENBQUEsRUFBRztJQUN2QixJQUFJQyxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDL0IsS0FBSyxDQUFDZSxNQUFNLEVBQUVmLEtBQUssQ0FBQ3NCLE1BQU0sQ0FBQztJQUNqREMsbUJBQVksQ0FBQ1MsU0FBUyxDQUFDQyxrQkFBUyxDQUFDQyxZQUFZLEVBQUVKLEtBQUssQ0FBQztFQUN6RDtFQUVBLFNBQVNGLDRCQUE0QkEsQ0FBQ0QsUUFBUSxFQUFFO0lBQzVDLElBQUlRLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQzdCLGdCQUFnQixDQUFDO0lBQzdELEtBQUssTUFBTThCLFFBQVEsSUFBSUgsVUFBVSxFQUFFO01BQy9CLElBQUlJLGVBQWUsR0FBRy9CLGdCQUFnQixDQUFDOEIsUUFBUSxDQUFDO01BQ2hEQyxlQUFlLENBQUN0QixHQUFHLENBQUNVLFFBQVEsR0FBR0EsUUFBUTtJQUMzQztFQUNKO0VBRUEsU0FBU2EsaUJBQWlCQSxDQUFBLEVBQUc7SUFDekIsSUFBSUwsVUFBVSxHQUFHQyxNQUFNLENBQUNDLG1CQUFtQixDQUFDN0IsZ0JBQWdCLENBQUM7SUFDN0QsS0FBSyxNQUFNOEIsUUFBUSxJQUFJSCxVQUFVLEVBQUU7TUFDL0IsSUFBSUksZUFBZSxHQUFHL0IsZ0JBQWdCLENBQUM4QixRQUFRLENBQUM7TUFDaEQsSUFBR0MsZUFBZSxDQUFDdEIsR0FBRyxFQUFFO1FBQ3BCc0IsZUFBZSxDQUFDdEIsR0FBRyxDQUFDRSxPQUFPLENBQUMsQ0FBQztNQUNqQztJQUNKO0VBQ0o7RUFFQSxTQUFTc0IsZUFBZUEsQ0FBQ0MsU0FBUyxFQUFFO0lBQ2hDLElBQUksQ0FBQ0EsU0FBUyxDQUFDQyxTQUFTLEVBQUU7TUFDdEJDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLDRCQUE0QixHQUFHSCxTQUFTLENBQUM1QixFQUFFLEdBQUcsNEJBQTRCLENBQUM7SUFDN0Y7SUFFQSxJQUFJZ0MsVUFBVSxHQUFHLEtBQUs7SUFDdEIsSUFBSSxDQUFDM0MsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLElBQUksQ0FBQ0YsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDc0IsUUFBUSxDQUFDLEVBQUU7TUFDckVtQixVQUFVLEdBQUczQyxjQUFLLENBQUM0Qyx5QkFBeUIsQ0FBQy9DLEtBQUssQ0FBQ0ssTUFBTSxDQUFDc0IsUUFBUSxFQUFFM0IsS0FBSyxDQUFDSyxNQUFNLENBQUNTLEVBQUUsQ0FBQztJQUN4RjtJQUVBLElBQUlnQyxVQUFVLEVBQUU7TUFDWixJQUFJM0MsY0FBSyxDQUFDVSxNQUFNLENBQUM2QixTQUFTLENBQUNmLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDZSxTQUFTLENBQUNmLFFBQVEsR0FBRyxJQUFJO01BQzdCO0lBQ0o7SUFFQSxRQUFRZSxTQUFTLENBQUNDLFNBQVM7TUFDdkIsS0FBSyxRQUFRO1FBQ1Qsb0JBQU9wRixNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNqRixZQUFBLENBQUE2QixPQUFXO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hDLENBQUM7TUFDTixLQUFLLGNBQWM7UUFDZixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ2hGLGlCQUFBLENBQUE0QixPQUFnQjtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUM3QyxDQUFDO01BQ04sS0FBSyxZQUFZO1FBQ2Isb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUNwRixVQUFBLENBQUFnQyxPQUFTO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlUsa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDcUIsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNXLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3RDLENBQUM7TUFDTixLQUFLLFVBQVU7UUFDWCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ25GLGNBQUEsQ0FBQStCLE9BQWE7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUNxQixJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1csTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDMUMsQ0FBQztNQUNOLEtBQUssVUFBVTtRQUNYLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDcEYsVUFBQSxDQUFBZ0MsT0FBUztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3FCLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJJLElBQUksRUFBRSxVQUFXO1VBQ2pCSCxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1csTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdEMsQ0FBQztNQUNOLEtBQUssV0FBVztRQUNaLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDcEYsVUFBQSxDQUFBZ0MsT0FBUztVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJhLFNBQVMsRUFBRSxJQUFLO1VBQ2hCSCxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUNxQixJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1csTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdEMsQ0FBQztNQUNOLEtBQUssZ0JBQWdCO1FBQ2pCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDbEYsY0FBQSxDQUFBOEIsT0FBYTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJhLFNBQVMsRUFBRSxJQUFLO1VBQ2hCSCxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUNxQixJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1csTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDMUMsQ0FBQztNQUNOLEtBQUssUUFBUTtRQUNULG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDL0UsV0FBQSxDQUFBMkIsT0FBVTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN2QyxDQUFDO01BQ04sS0FBSyxNQUFNO1FBQ1Asb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUM5RSxXQUFBLENBQUEwQixPQUFVO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3ZDLENBQUM7TUFDTixLQUFLLGVBQWU7UUFDaEIsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUM5RCxhQUFBLENBQUFVLE9BQVk7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDekMsQ0FBQztNQUNOLEtBQUssVUFBVTtRQUNYLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDNUUsU0FBQSxDQUFBd0IsT0FBUTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUNyQyxDQUFDO01BQ04sS0FBSyxRQUFRO1FBQ1Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMzRCxPQUFBLENBQUFPLE9BQU07VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDbkMsQ0FBQztNQUNOLEtBQUssT0FBTztRQUNSLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDM0UsV0FBQSxDQUFBdUIsT0FBVTtVQUFDcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN2QyxDQUFDO01BQ04sS0FBSyxhQUFhO1FBQ2Qsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMxRSxZQUFBLENBQUFzQixPQUFXO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hDLENBQUM7TUFDTixLQUFLLGNBQWM7UUFDZixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQzFFLFlBQUEsQ0FBQXNCLE9BQVc7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q2MsS0FBSyxFQUFFLE9BQVE7VUFDZkosa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEMsQ0FBQztNQUNOLEtBQUssbUJBQW1CO1FBQ3BCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDN0QscUJBQUEsQ0FBQVMsT0FBb0I7VUFDeEJxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLGVBQWU7UUFDaEIsb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN6RSxhQUFBLENBQUFxQixPQUFZO1VBQUNxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3pDLENBQUM7TUFDTixLQUFLLE1BQU07UUFDUCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3hFLFVBQUEsQ0FBQW9CLE9BQVM7VUFBQ3FELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDdEMsQ0FBQztNQUNOLEtBQUssTUFBTTtRQUNQLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDN0UsV0FBQSxDQUFBeUIsT0FBVTtVQUNkcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxjQUFjO1FBQ2Ysb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUN2RSxZQUFBLENBQUFtQixPQUFXO1VBQ2ZxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLGFBQWE7UUFDZCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3RFLFdBQUEsQ0FBQWtCLE9BQVU7VUFDZHFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssUUFBUTtRQUNULG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDaEUsT0FBQSxDQUFBWSxPQUFNO1VBQ1ZTLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJuQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDcEIsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxZQUFZO1FBQ2Isb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMvRCxVQUFBLENBQUFXLE9BQVM7VUFDYlMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQm5DLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNwQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLFFBQVE7UUFDVCxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3ZELE9BQUEsQ0FBQWdFLE1BQU07VUFDVnBELE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJuQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDcEIsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ04sS0FBSyxNQUFNO1FBQ1Asb0JBQU8vRCxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLENBQUMxRCxVQUFBLENBQUFNLE9BQVM7VUFDYnFELFVBQVUsRUFBRWpELEtBQUssQ0FBQ2lELFVBQVc7VUFDN0I1QyxNQUFNLEVBQUVxQyxTQUFVO1VBQ2xCUSxJQUFJLEVBQUVsRCxLQUFLLENBQUNrRCxJQUFLO1VBQ2pCQyxRQUFRLEVBQUVuRCxLQUFLLENBQUNtRCxRQUFTO1VBQ3pCcEMsTUFBTSxFQUFFSixxQkFBcUIsQ0FBQytCLFNBQVMsQ0FBRTtVQUN6Q1Usa0JBQWtCLEVBQUVBLENBQUEsS0FBTXZCLGVBQWUsQ0FBQyxDQUFFO1VBQzVDd0IsTUFBTSxFQUFFckQsS0FBSyxDQUFDcUQsTUFBTztVQUNyQi9CLE1BQU0sRUFBRXRCLEtBQUssQ0FBQ3NCO1FBQU8sQ0FDeEIsQ0FBQztNQUNOLEtBQUssNkJBQTZCO1FBQzlCLG9CQUFPL0QsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxDQUFDbEUsK0JBQUEsQ0FBQWMsT0FBOEI7VUFDbENxRCxVQUFVLEVBQUVqRCxLQUFLLENBQUNpRCxVQUFXO1VBQzdCNUMsTUFBTSxFQUFFcUMsU0FBVTtVQUNsQlEsSUFBSSxFQUFFbEQsS0FBSyxDQUFDa0QsSUFBSztVQUNqQkMsUUFBUSxFQUFFbkQsS0FBSyxDQUFDbUQsUUFBUztVQUN6QnBDLE1BQU0sRUFBRUoscUJBQXFCLENBQUMrQixTQUFTLENBQUU7VUFDekNVLGtCQUFrQixFQUFFQSxDQUFBLEtBQU12QixlQUFlLENBQUMsQ0FBRTtVQUM1Q3dCLE1BQU0sRUFBRXJELEtBQUssQ0FBQ3FELE1BQU87VUFDckIvQixNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtRQUFPLENBQ3hCLENBQUM7TUFDTixLQUFLLDRCQUE0QjtRQUM3QixvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsQ0FBQ3pELHlCQUFBLENBQUFLLE9BQXdCO1VBQzVCcUQsVUFBVSxFQUFFakQsS0FBSyxDQUFDaUQsVUFBVztVQUM3QjVDLE1BQU0sRUFBRXFDLFNBQVU7VUFDbEJRLElBQUksRUFBRWxELEtBQUssQ0FBQ2tELElBQUs7VUFDakJDLFFBQVEsRUFBRW5ELEtBQUssQ0FBQ21ELFFBQVM7VUFDekJwQyxNQUFNLEVBQUVKLHFCQUFxQixDQUFDK0IsU0FBUyxDQUFFO1VBQ3pDVSxrQkFBa0IsRUFBRUEsQ0FBQSxLQUFNdkIsZUFBZSxDQUFDLENBQUU7VUFDNUN3QixNQUFNLEVBQUVyRCxLQUFLLENBQUNxRCxNQUFPO1VBQ3JCL0IsTUFBTSxFQUFFdEIsS0FBSyxDQUFDc0I7UUFBTyxDQUN4QixDQUFDO01BQ047UUFDSSxvQkFBTy9ELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUEsY0FBTSxzQ0FBc0MsR0FBR04sU0FBUyxDQUFDQyxTQUFTLEdBQUcsS0FBSyxHQUFHRCxTQUFTLENBQUM1QixFQUFRLENBQUM7SUFDL0c7RUFDSjtFQUVBLE1BQU1HLEdBQUcsR0FBR0EsQ0FBQSxLQUFNO0lBQ2QsT0FBTztNQUNILElBQUlILEVBQUVBLENBQUEsRUFBRztRQUNMLE9BQU9kLEtBQUssQ0FBQ0ssTUFBTSxDQUFDUyxFQUFFO01BQzFCLENBQUM7TUFDRCxJQUFJNEMsaUJBQWlCQSxDQUFBLEVBQUc7UUFDcEIsSUFBSUMsVUFBVSxHQUFHLEVBQUU7UUFDbkIsS0FBSyxNQUFNL0MsS0FBSyxJQUFJWixLQUFLLENBQUNLLE1BQU0sQ0FBQ0UsTUFBTSxFQUFFO1VBQ3JDb0QsVUFBVSxDQUFDQyxJQUFJLENBQUMsQ0FBQ3pELGNBQUssQ0FBQ1UsTUFBTSxDQUFDRCxLQUFLLENBQUNpRCxXQUFXLENBQUMsR0FBR2pELEtBQUssQ0FBQ2lELFdBQVcsR0FBR2pELEtBQUssQ0FBQ0UsRUFBRSxDQUFDO1FBQ3BGO1FBRUEsT0FBTzZDLFVBQVU7TUFDckIsQ0FBQztNQUNELElBQUloQyxRQUFRQSxDQUFDQSxRQUFRLEVBQUU7UUFDbkJDLDRCQUE0QixDQUFDRCxRQUFRLENBQUM7TUFDMUMsQ0FBQztNQUNEbUMsS0FBS0EsQ0FBQSxFQUFHO1FBQ0osSUFBSTNCLFVBQVUsR0FBR0MsTUFBTSxDQUFDQyxtQkFBbUIsQ0FBQzdCLGdCQUFnQixDQUFDO1FBQzdELEtBQUssTUFBTThCLFFBQVEsSUFBSUgsVUFBVSxFQUFFO1VBQy9CLElBQUk0QixZQUFZLEdBQUd2RCxnQkFBZ0IsQ0FBQzhCLFFBQVEsQ0FBQztVQUM3Q3lCLFlBQVksQ0FBQzlDLEdBQUcsQ0FBQytDLEtBQUssR0FBRyxJQUFJO1FBQ2pDO01BQ0osQ0FBQztNQUNEQyxXQUFXLEVBQUVBLENBQUEsS0FBTTtRQUNmLElBQUlDLFFBQVEsR0FBRyxFQUFFO1FBQ2pCLElBQUkvQixVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsbUJBQW1CLENBQUM3QixnQkFBZ0IsQ0FBQztRQUM3RCxLQUFLLE1BQU04QixRQUFRLElBQUlILFVBQVUsRUFBRTtVQUMvQitCLFFBQVEsQ0FBQ04sSUFBSSxDQUFDcEQsZ0JBQWdCLENBQUM4QixRQUFRLENBQUMsQ0FBQztRQUM3QztRQUVBLE9BQU80QixRQUFRO01BQ25CLENBQUM7TUFDRCxJQUFJQyxLQUFLQSxDQUFDQSxLQUFLLEVBQUU7UUFDYixLQUFLLE1BQU12RCxLQUFLLElBQUlaLEtBQUssQ0FBQ0ssTUFBTSxDQUFDRSxNQUFNLEVBQUU7VUFDckNQLEtBQUssQ0FBQ2tELElBQUksQ0FBQyxDQUFDLENBQUNpQixLQUFLLENBQUN2RCxLQUFLLENBQUNFLEVBQUUsQ0FBQyxHQUFHcUQsS0FBSyxDQUFDdkQsS0FBSyxDQUFDRSxFQUFFLENBQUM7VUFFOUMsSUFBSWlELFlBQVksR0FBR3ZELGdCQUFnQixDQUFDSSxLQUFLLENBQUNFLEVBQUUsQ0FBQztVQUM3Q2lELFlBQVksQ0FBQzlDLEdBQUcsQ0FBQytDLEtBQUssR0FBR0csS0FBSyxDQUFDdkQsS0FBSyxDQUFDRSxFQUFFLENBQUM7UUFDNUM7TUFDSixDQUFDO01BQ0QsSUFBSWtELEtBQUtBLENBQUEsRUFBRztRQUNSLElBQUlBLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJSSxTQUFTLEdBQUdwRSxLQUFLLENBQUNrRCxJQUFJLENBQUMsQ0FBQyxDQUFDYyxLQUFLO1FBRWxDLElBQUlJLFNBQVMsS0FBSyxJQUFJLEVBQUU7VUFDcEIsT0FBTyxJQUFJO1FBQ2Y7UUFFQSxLQUFLLE1BQU14RCxLQUFLLElBQUlaLEtBQUssQ0FBQ0ssTUFBTSxDQUFDRSxNQUFNLEVBQUU7VUFDckN5RCxLQUFLLENBQUNwRCxLQUFLLENBQUNFLEVBQUUsQ0FBQyxHQUFHc0QsU0FBUyxDQUFDeEQsS0FBSyxDQUFDRSxFQUFFLENBQUM7UUFDekM7UUFFQSxPQUFPa0QsS0FBSztNQUNoQixDQUFDO01BQ0RLLFFBQVEsRUFBRUEsQ0FBQ0MsWUFBWSxFQUFFQyxXQUFXLEtBQUs7UUFDckMsSUFBSUMsT0FBTyxHQUFHLENBQUNyRSxjQUFLLENBQUNVLE1BQU0sQ0FBQ3lELFlBQVksQ0FBQ0csV0FBVyxDQUFDLEdBQUdILFlBQVksQ0FBQ0csV0FBVyxHQUM1RSxDQUFDdEUsY0FBSyxDQUFDVSxNQUFNLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDLEdBQUdMLEtBQUssQ0FBQ0ssTUFBTSxDQUFDb0UsV0FBVyxHQUFHLElBQUk7UUFDakUsSUFBSUMsY0FBYyxHQUFHLENBQUN2RSxjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUMyRCxLQUFLLENBQUMsR0FBR2hFLEtBQUssQ0FBQ0ssTUFBTSxDQUFDMkQsS0FBSyxHQUN2RU0sWUFBWSxDQUFDTixLQUFLO1FBRXRCLElBQUlVLGNBQWMsRUFBRTtVQUNoQixJQUFJQyxXQUFXLEdBQUdELGNBQWMsQ0FBQ0UsUUFBUSxDQUFDLENBQUMsQ0FDdENDLFVBQVUsQ0FBQyxhQUFhLENBQUM7VUFDOUIsSUFBSUMsV0FBVyxHQUFHQywyQkFBa0IsQ0FBQ0MsWUFBWSxDQUFDTixjQUFjLENBQUM7VUFDakUsSUFBSU8sR0FBRyxHQUFHTixXQUFXLElBQUlHLFdBQVcsR0FBR0MsMkJBQWtCLENBQUNHLHNCQUFzQixDQUFDUixjQUFjLEVBQUVILFdBQVcsR0FBR0EsV0FBVyxDQUFDWSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUdULGNBQWM7VUFDeEoxRSxLQUFLLENBQUNrRCxJQUFJLENBQUMsQ0FBQyxDQUNQa0MsUUFBUSxDQUFDSCxHQUFHLENBQUM7VUFFbEIsSUFBSW5ELEtBQUssR0FBRyxJQUFJQyxjQUFLLENBQUMvQixLQUFLLENBQUNlLE1BQU0sRUFBRWYsS0FBSyxDQUFDc0IsTUFBTSxFQUFFMkQsR0FBRyxDQUFDO1VBQ3REMUQsbUJBQVksQ0FBQ1MsU0FBUyxDQUFDQyxrQkFBUyxDQUFDb0QsWUFBWSxFQUFFdkQsS0FBSyxDQUFDO1FBQ3pELENBQUMsTUFBTTtVQUNILElBQUksQ0FBQzNCLGNBQUssQ0FBQ1UsTUFBTSxDQUFDMkQsT0FBTyxDQUFDLEVBQUU7WUFDeEIsSUFBSWMsTUFBTSxHQUFHZCxPQUFPLENBQUNsQixJQUFJLEtBQUssS0FBSyxHQUFHaUMsc0JBQVMsR0FBR0MsdUJBQVU7WUFDNURGLE1BQU0sQ0FBQztjQUNIZCxPQUFPLEVBQUVBLE9BQU87Y0FDaEI5QixTQUFTLEVBQUUrQyxHQUFHLENBQUNDLE9BQU87Y0FDdEJwRSxNQUFNLEVBQUV0QixLQUFLLENBQUNzQjtZQUNsQixDQUFDLENBQUMsQ0FBQ3FFLElBQUksQ0FBRUMsTUFBTSxJQUFLO2NBQ2hCLElBQUlULElBQUksR0FBR1gsT0FBTyxDQUFDbEIsSUFBSSxLQUFLLEtBQUssR0FBR3NDLE1BQU0sQ0FBQ1QsSUFBSSxHQUFHUyxNQUFNO2NBQ3hELElBQUlULElBQUksRUFBRTtnQkFDTm5GLEtBQUssQ0FBQ2tELElBQUksQ0FBQyxDQUFDLENBQ1BrQyxRQUFRLENBQUNELElBQUksQ0FBQztnQkFFbkIsSUFBSXJELEtBQUssR0FBRyxJQUFJQyxjQUFLLENBQUMvQixLQUFLLENBQUNlLE1BQU0sRUFBRWYsS0FBSyxDQUFDc0IsTUFBTSxFQUFFNkQsSUFBSSxDQUFDO2dCQUN2RDVELG1CQUFZLENBQUNTLFNBQVMsQ0FBQ0Msa0JBQVMsQ0FBQ29ELFlBQVksRUFBRXZELEtBQUssQ0FBQztjQUN6RDtZQUNKLENBQUMsQ0FBQyxDQUFDK0QsS0FBSyxDQUFFbkcsQ0FBQyxJQUFLO2NBQ1pNLEtBQUssQ0FBQzRDLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDbkQsQ0FBQyxDQUFDO2NBQ3RCUyxjQUFLLENBQUMyRixtQkFBbUIsQ0FBQ3BHLENBQUMsRUFBRU0sS0FBSyxDQUFDc0IsTUFBTSxDQUFDO1lBQzlDLENBQUMsQ0FBQztZQUVGLE9BQU8sSUFBSTtVQUNmO1FBQ0o7TUFDSixDQUFDO01BQ0RILE9BQU9BLENBQUEsRUFBRztRQUNOLElBQUksQ0FBQ2hCLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQyxJQUFJLENBQUNGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ0ksT0FBTyxDQUFDLEVBQUU7VUFDcEVDLFVBQVUsQ0FBQ1AsY0FBSyxDQUFDNEMseUJBQXlCLENBQUMvQyxLQUFLLENBQUNLLE1BQU0sQ0FBQ0ksT0FBTyxFQUFFVCxLQUFLLENBQUNLLE1BQU0sQ0FBQ1MsRUFBRSxDQUFDLENBQUM7UUFDdEYsQ0FBQyxNQUFNO1VBQ0hKLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDcEI7UUFFQSxJQUFJLENBQUNQLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQyxJQUFJLENBQUNGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ3NCLFFBQVEsQ0FBQyxFQUFFO1VBQ3JFQyw0QkFBNEIsQ0FBQ3pCLGNBQUssQ0FBQzRDLHlCQUF5QixDQUFDL0MsS0FBSyxDQUFDSyxNQUFNLENBQUNzQixRQUFRLEVBQUUzQixLQUFLLENBQUNLLE1BQU0sQ0FBQ1MsRUFBRSxDQUFDLENBQUM7UUFDekc7UUFFQTBCLGlCQUFpQixDQUFDLENBQUM7TUFDdkI7SUFDSixDQUFDO0VBQ0wsQ0FBQztFQUVELFNBQVN1RCxNQUFNQSxDQUFDQyxRQUFRLEVBQUU7SUFDdEIsT0FDSzdGLGNBQUssQ0FBQ1UsTUFBTSxDQUFDbUYsUUFBUSxDQUFDekYsTUFBTSxDQUFDLElBQUl5RixRQUFRLENBQUN6RixNQUFNLENBQUMwRixNQUFNLEtBQUssQ0FBQyxnQkFDMUQxSSxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBLGNBQUsscUNBQXdDLENBQUMsZ0JBRTlDekYsTUFBQSxDQUFBcUMsT0FBQSxDQUFBb0QsYUFBQSxjQUVRL0MsU0FBUyxDQUFDaUcsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsR0FBRyxFQUFFQyxDQUFDLEtBQUs7TUFDM0Isb0JBQU85SSxNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBO1FBQUtzRCxTQUFTLEVBQUMsS0FBSztRQUFDQyxHQUFHLEVBQUVGLENBQUU7UUFDdkI3QyxLQUFLLEVBQUU7VUFDSGdELFVBQVUsRUFBRSxHQUFHO1VBQ2ZDLFdBQVcsRUFBRTtRQUNqQjtNQUFFLEdBRU5MLEdBQUcsQ0FBQzdGLE1BQU0sQ0FBQzRGLEdBQUcsQ0FBQyxDQUFDdkYsS0FBSyxFQUFFOEYsS0FBSyxLQUFLO1FBQUEsSUFBQUMsaUJBQUEsRUFBQUMsa0JBQUE7UUFDN0IsSUFBSUMsT0FBTztRQUNYLElBQUlDLEtBQUs7UUFFVCxJQUFJM0csY0FBSyxDQUFDVSxNQUFNLENBQUNELEtBQUssQ0FBQ04sVUFBVSxDQUFDLElBQUlILGNBQUssQ0FBQ1UsTUFBTSxDQUFDRCxLQUFLLENBQUNOLFVBQVUsQ0FBQ3VHLE9BQU8sQ0FBQyxFQUFFO1VBQzFFQSxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsTUFBTTtVQUNILElBQUlFLFVBQVUsR0FBRzVHLGNBQUssQ0FBQzZHLGVBQWUsQ0FBQ3BHLEtBQUssQ0FBQztVQUM3QyxJQUFJbUcsVUFBVSxHQUFHOUcsU0FBUyxDQUFDZ0gsWUFBWSxFQUFFO1lBQ3JDSixPQUFPLEdBQUc1RyxTQUFTLENBQUNnSCxZQUFZO1VBQ3BDLENBQUMsTUFBTTtZQUNISixPQUFPLEdBQUdFLFVBQVU7VUFDeEI7UUFDSjtRQUVBRCxLQUFLLEdBQUdELE9BQU8sR0FBRzVHLFNBQVMsQ0FBQ2dILFlBQVksR0FBRyxHQUFHO1FBQzlDLElBQUlDLGNBQWMsR0FBRztVQUNqQkMsV0FBVyxFQUFFLEdBQUc7VUFDaEJDLFlBQVksRUFBRSxHQUFHO1VBQ2pCWixVQUFVLEVBQUUsR0FBRztVQUNmQyxXQUFXLEVBQUUsR0FBRztVQUNoQlksUUFBUSxFQUFFLE9BQU87VUFDakJQLEtBQUssRUFBRUEsS0FBSyxHQUFHO1FBQ25CLENBQUM7UUFFRGxHLEtBQUssQ0FBQzhGLEtBQUssR0FBR0EsS0FBSztRQUNuQixJQUFJbEQsS0FBSyxHQUFHLENBQUFtRCxpQkFBQSxHQUFBL0YsS0FBSyxDQUFDTixVQUFVLGNBQUFxRyxpQkFBQSxlQUFoQkEsaUJBQUEsQ0FBa0JPLGNBQWMsR0FDeEMvRyxjQUFLLENBQUNtSCxZQUFZLEVBQUFWLGtCQUFBLEdBQUNoRyxLQUFLLENBQUNOLFVBQVUsY0FBQXNHLGtCQUFBLHVCQUFoQkEsa0JBQUEsQ0FBa0JNLGNBQWMsRUFBRUEsY0FBYyxDQUFDLEdBQUdBLGNBQWM7UUFDekYsb0JBQU8zSixNQUFBLENBQUFxQyxPQUFBLENBQUFvRCxhQUFBO1VBQUt1RCxHQUFHLEVBQUUsQ0FBQ0YsQ0FBQyxHQUFHLENBQUMsSUFBSUssS0FBTTtVQUFDSixTQUFTLEVBQUMsaUNBQWlDO1VBQUM5QyxLQUFLLEVBQUVBO1FBQU0sR0FFbkZmLGVBQWUsQ0FBQzdCLEtBQUssQ0FFeEIsQ0FBQztNQUNWLENBQUMsQ0FFSixDQUFDO0lBQ1YsQ0FBQyxDQUVKLENBQUM7RUFFbEI7RUFFQSxvQkFBT3JELE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7SUFBS3NELFNBQVMsRUFBRSxpQkFBa0I7SUFBQzlDLEtBQUssRUFBRXJELGNBQUssQ0FBQ29ILFdBQVcsQ0FDOUQ7TUFDSUMsT0FBTyxFQUFFL0csT0FBTyxHQUFHLE9BQU8sR0FBRyxNQUFNO01BQ25DZ0gsTUFBTSxFQUFFO0lBQ1osQ0FBQyxFQUFFekgsS0FBSyxDQUFDSyxNQUFNO0VBQUUsR0FFYixDQUFDRixjQUFLLENBQUNVLE1BQU0sQ0FBQ2IsS0FBSyxDQUFDSyxNQUFNLENBQUNDLFVBQVUsQ0FBQyxJQUFJLENBQUNILGNBQUssQ0FBQ1UsTUFBTSxDQUFDYixLQUFLLENBQUNLLE1BQU0sQ0FBQ0MsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUNyRi9DLE1BQUEsQ0FBQXFDLE9BQUEsQ0FBQW9ELGFBQUE7SUFBS3NELFNBQVMsRUFBRTtFQUFnQixHQUMzQnRHLEtBQUssQ0FBQ0ssTUFBTSxDQUFDQyxVQUFVLENBQUMsT0FBTyxDQUMvQixDQUFDLEdBRU4sSUFBSSxFQUdSLENBQUNILGNBQUssQ0FBQ1UsTUFBTSxDQUFDWixTQUFTLENBQUMsR0FDcEI4RixNQUFNLENBQUMvRixLQUFLLENBQUNLLE1BQU0sQ0FBQyxHQUVwQixJQUVQLENBQUM7QUFDVixDQUFDLENBQUM7QUFBQyxJQUFBcUgsUUFBQSxHQUFBQyxPQUFBLENBQUEvSCxPQUFBLEdBRVlDLFFBQVEiLCJpZ25vcmVMaXN0IjpbXX0=