single-scripture-rcl 3.4.16-beta.12 → 3.4.16
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.
|
@@ -1369,19 +1369,14 @@ export default function ScriptureCard(_ref2) {
|
|
|
1369
1369
|
})));
|
|
1370
1370
|
return newItems;
|
|
1371
1371
|
};
|
|
1372
|
-
|
|
1373
|
-
// @ts-ignore
|
|
1374
|
-
var refString = verseObjectsMap ? _toConsumableArray(verseObjectsMap.keys()).join(';') : '';
|
|
1375
|
-
var selectionBookObjects = originalScriptureBookObjects === null || originalScriptureBookObjects === void 0 ? void 0 : originalScriptureBookObjects.chapters;
|
|
1376
1372
|
return /*#__PURE__*/React.createElement(SelectionsContextProvider, {
|
|
1377
|
-
|
|
1378
|
-
occurrence: fixOccurrence(selectedQuote === null || selectedQuote === void 0 ? void 0 : selectedQuote.occurrence),
|
|
1373
|
+
selections: selections,
|
|
1379
1374
|
onSelections: function onSelections(newSelections) {
|
|
1380
1375
|
// console.log('onSelections', newSelections)
|
|
1381
1376
|
},
|
|
1382
|
-
quote:
|
|
1383
|
-
|
|
1384
|
-
|
|
1377
|
+
quote: selectedQuote === null || selectedQuote === void 0 ? void 0 : selectedQuote.quote,
|
|
1378
|
+
occurrence: fixOccurrence(selectedQuote === null || selectedQuote === void 0 ? void 0 : selectedQuote.occurrence),
|
|
1379
|
+
verseObjectsMap: verseObjectsMap
|
|
1385
1380
|
}, /*#__PURE__*/React.createElement(Card, {
|
|
1386
1381
|
id: "scripture_card_".concat(cardNum),
|
|
1387
1382
|
title: scriptureLabel,
|
|
@@ -1517,4 +1512,4 @@ ScriptureCard.propTypes = {
|
|
|
1517
1512
|
/** use method for using local storage specific for user */
|
|
1518
1513
|
useUserLocalStorage: PropTypes.func.isRequired
|
|
1519
1514
|
};
|
|
1520
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJLRVlfRk9OVF9TSVpFX0JBU0UiLCJsYWJlbCIsInN0eWxlIiwibWFyZ2luVG9wIiwid2lkdGgiLCJjb21wYXJlT2JqZWN0IiwidmVyc2VSZWYiLCJfdmVyc2VEYXRhJHZlcnNlT2JqZWMiLCJfcmVmIiwiY2hhcHRlciIsInZlcnNlIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwiSlNPTiIsInN0cmluZ2lmeSIsImFyZVZlcnNlc1NhbWUiLCJ2ZXJzZXNGb3JSZWYxIiwidmVyc2VzRm9yUmVmMiIsImFyZVNhbWUiLCJ2ZXJzZTEiLCJ2ZXJzZTIiLCJnZXRDdXJyZW50Qm9vayIsInNjcmlwdHVyZUNvbmZpZyIsImJvb2tJZCIsIl9zY3JpcHR1cmVDb25maWckcmVzbyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzIiLCJfYm9va05hbWUkdG9Mb3dlckNhc2UiLCJsYXRlc3RCaWJsZSIsInJlc291cmNlU3RhdGUiLCJyZXNvdXJjZSIsInByb2plY3RJZCIsImZpbGVuYW1lIiwiaXNCb29rVmFsaWQiLCJib29rTmFtZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiIsImNvbmNhdCIsImJpYmxlVXNmbSIsIlNjcmlwdHVyZUNhcmQiLCJfcmVmMiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzMiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc280IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNSIsIl9zY3JpcHR1cmVDb25maWckcmVzbzYiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc283IiwiX2F1dGhlbnRpY2F0aW9uJHRva2VuIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvOSIsIl9zY3JpcHR1cmVDb25maWckcmVzbzEwIiwiX2h0dHBDb25maWciLCJfaHR0cENvbmZpZzIiLCJfYXV0aGVudGljYXRpb24kdXNlciIsIl92ZXJzZXNGb3JSZWYzIiwiX3ZlcnNlc0ZvclJlZjQiLCJhcHBSZWYiLCJhdXRoZW50aWNhdGlvbiIsImJvb2tJbmRleCIsImNhcmROdW0iLCJjbGFzc2VzIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ2V0TGFuZ3VhZ2UiLCJnZXRMZXhpY29uRGF0YSIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJodHRwQ29uZmlnIiwiaWQiLCJpc05UIiwibG9nZ2VkSW5Vc2VyIiwib25NaW5pbWl6ZSIsIm9uUmVzb3VyY2VFcnJvciIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiY2hlY2tGb3JFZGl0QnJhbmNoIiwiY3VycmVudFJlZmVyZW5jZSIsImVkaXRCcmFuY2hSZWFkeSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwicmVhZHlGb3JGZXRjaCIsInJlZiIsInNhdmVDbGlja2VkIiwic2F2ZUNvbnRlbnQiLCJzYXZlRGlmZlBhdGNoIiwic2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJzZWxlY3Rpb25zIiwiTWFwIiwic2hvd0FsaWdubWVudFBvcHVwIiwic3RhcnRTYXZlIiwidXJsRXJyb3IiLCJ1c2luZ1VzZXJCcmFuY2giLCJ1bnNhdmVkQ2hhbmdlc0xpc3QiLCJ2ZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJ2ZXJzZXNGb3JSZWYiLCJ2ZXJzZU9iamVjdHNNYXAiLCJ2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3VzZVVzZXJMb2NhbFN0b3JhZ2UiLCJfdXNlVXNlckxvY2FsU3RvcmFnZTIiLCJmb250U2l6ZSIsInNldEZvbnRTaXplIiwiaXNOVF8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2FjaGUiLCJtYXhBZ2UiLCJub0NhY2hlIiwiX3VzZVNjcmlwdHVyZVNldHRpbmdzIiwic2V0VXJsRXJyb3IiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVNldHRpbmdzIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJmZXRjaGVkUmVzb3VyY2UiLCJyZXBvIiwicmVmZXJlbmNlXyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsImNhcmRSZXNvdXJjZUlkIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJfdXNlVXNlckJyYW5jaCIsImNhcmRJZCIsIl91c2VVc2VyQnJhbmNoJHN0YXRlIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfdXNlVXNlckJyYW5jaCRhY3Rpb24iLCJhY3Rpb25zIiwic3RhcnRFZGl0QnJhbmNoIiwic3RhcnRFZGl0IiwiZmluaXNoRWRpdCIsIl91c2VCcmFuY2hNZXJnZXIiLCJ1c2VyQnJhbmNoIiwidG9rZW5pZCIsInRva2VuIiwic2hhMSIsIl91c2VCcmFuY2hNZXJnZXIkc3RhdCIsIm1lcmdlVG9NYXN0ZXIiLCJtZXJnZVN0YXR1cyIsIm1lcmdlRnJvbU1hc3RlciIsInVwZGF0ZVN0YXR1cyIsInVwZGF0ZUJ1dHRvblByb3BzIiwiaXNTYXZpbmciLCJvblVwZGF0ZSIsInJlbG9hZFJlc291cmNlIiwiY2FsbFVwZGF0ZVVzZXJCcmFuY2giLCJpc0Vycm9yRGlhbG9nT3BlbiIsIm9uQ2xvc2VFcnJvckRpYWxvZyIsImlzVXBkYXRlTG9hZGluZyIsImlzTG9hZGluZyIsImRpYWxvZ01lc3NhZ2UiLCJkaWFsb2dUaXRsZSIsImRpYWxvZ0xpbmsiLCJkaWFsb2dMaW5rVG9vbHRpcCIsIm9uTWVyZ2UiLCJsb2ciLCJfdXNlTWFzdGVyTWVyZ2VQcm9wcyIsImlzTWVyZ2VMb2FkaW5nIiwiY2FsbE1lcmdlVXNlckJyYW5jaCIsInVzZUVmZmVjdCIsInByZXZDYXJkc0xvYWRpbmciLCJ3b3JraW5nUmVmIiwic2NyaXB0dXJlVGl0bGUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc284IiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsImVycm9yTWVzc2FnZSIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsIl9yZWZlcmVuY2UiLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiX3VzZUNhcmRTdGF0ZSIsIl91c2VDYXJkU3RhdGUkc3RhdGUiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsIl91c2VDYXJkU3RhdGUkYWN0aW9ucyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiX3JlZjMiLCJfcmVmMyRnZXRDaGFuZ2VzIiwiZ2V0Q2hhbmdlcyIsIl9yZWYzJGNsZWFyQ2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl9yZWYzJHN0YXRlIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJmaW5kUmVmSW5BcnJheSIsImZpbmRJdGVtIiwiY2h1bmtzIiwicmVmTGVuIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJjaHVuayIsImlkeCIsInN1YnN0cmluZyIsIm5leHRDaGFyIiwiZ2V0Qm9va05hbWUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlZmUiLCJib29rQ2FwcyIsInRvVXBwZXJDYXNlIiwiZmlsZXBhdGgiLCJzaGEiLCJfdXNlRWRpdCIsImNvbnRlbnQiLCJjb25maWciLCJkb250Q3JlYXRlQnJhbmNoIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJhdXRob3IiLCJlbWFpbCIsInVzZXIiLCJicmFuY2giLCJzYXZlRXJyb3IiLCJpc1NhdmVFcnJvciIsImlzRXJyb3IiLCJvblNhdmVFZGl0Iiwib25TYXZlRWRpdFBhdGNoIiwiX3NhdmVTdWNjZXNmdWwiLCJwcmV2Q2FyZHNTYXZpbmciLCJ1bnNhdmVkQ2FyZEluZGljZXMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImNhcmRJbmRleCIsIl9zYXZlRWRpdCIsIl9yZWY0IiwiX2NhbGxlZSIsInVwbG9hZEZ1bmN0aW9uIiwic3VjY2VzcyIsInJlc3VsdHMiLCJfc2F2ZUNvbnRlbnQiLCJmaWxlU2hhIiwic2F2ZWRCaWJsZVVzZm0iLCJlZGl0ZWRCaWJsZVVzZm0iLCJ1cFRvRGF0ZSIsImRpZmZQYXRjaCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0iLCJ1cGRhdGVkVmVyc2VPYmplY3RzIiwibmV3VXNmbSIsImNoYXB0ZXJDaHVua3MiLCJzcGxpdCIsImNoYXB0ZXJJbmRleCIsImN1cnJlbnRDaGFwdGVyIiwidmVyc2VDaHVua3MiLCJ2ZXJzZUluZGV4IiwiZnJvbnRNYXR0ZXIiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJwcmVmaXhMZW4iLCJpbmRleE9mIiwidmVyc2VOdW1MZW4iLCJuZXdDaGFwdGVyIiwiam9pbiIsImdldFJlYWR5Rm9yU2F2ZSIsIl9nZXRSZWFkeUZvclNhdmUiLCJfY2FsbGVlMiIsImNyZWF0ZUVkaXRCcmFuY2giLCJiaWJsZVVzZm1Jbml0aWFsIiwiYmlibGVVc2ZtTmV3IiwibWVyZ2VGYWlsIiwiX2NhcmROdW0iLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfIiwiX3N0YXRlIiwiX2dldENoYW5nZXMiLCJfcmVmNSIsIl9zYXZlRGlmZlBhdGNoIiwiX3NhdmVGdWxsQmlibGVDb250ZW50IiwibmV3Qm9va0pzb24iLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX2NhcmRJbmRleCIsIl9jYXJkTnVtMiIsIl91bnNhdmVkQ2hhbmdlc0xpc3QkXzIiLCJfZ2V0Q2hhbmdlczIiLCJfc3RhdGUyIiwiX25ld1VzZm0iLCJfZ2V0Q2hhbmdlczMiLCJuZXdWZXJzZVRleHQiLCJfcmVmNiIsIl91cGRhdGVkVmVyc2VPYmplY3RzIiwidGFyZ2V0VmVyc2VPYmplY3RzXyIsIl9BbGlnbm1lbnRIZWxwZXJzJHVwZCIsInRhcmdldFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzExIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwicGFyc2VJbnQiLCJ0MCIsInVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlIiwidXBkYXRlVmVyc2UiLCJ0b1VTRk0iLCJmb3JjZWROZXdMaW5lcyIsImluaXRpYWwiLCJfcmVmNyIsIl92ZXJzZXNGb3JSZWYiLCJuZXdTZWxlY3Rpb25zIiwidXBkYXRlU2VsZWN0aW9ucyIsIl9tYXAiLCJvcmlnaW5hbEJvb2tJZCIsImJvb2tWZXJzZU9iamVjdCIsImNoYXB0ZXJzIiwibmV3U2VsZWN0ZWRRdW90ZSIsInF1b3RlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMyIsIm9yaWdpbmFsVmVyc2VzIiwic3Vic3RpdHV0ZSIsInN0YXJ0VmVyc2UiLCJsYXN0VmVyc2UiLCJfdmVyc2UiLCJ2ZXJzZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwidmVyc2VJdGVtIiwidm8iLCJfYm9va1ZlcnNlT2JqZWN0JF9jaGEiLCJzZXQiLCJfc2VsZWN0ZWRRdW90ZSRyZWZlcmUiLCJfc2VsZWN0ZWRRdW90ZSRyZWZlcmUyIiwic3ViUmVmIiwicXVvdGVNYXRjaGVzIiwiYm9va09iamVjdCIsIm9jY3VycmVuY2UiLCJzaXplIiwid29yZHMiLCJfa2V5IiwibWFwIiwid29yZCIsInRleHQiLCJub3JtYWxpemVTdHJpbmciLCJib29rc05vdFNhbWUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJhbGlnbmVkIiwiX3ZlcnNlc0ZvclJlZjIiLCJfcmVmOCIsInJlbmRlcmVkU2NyaXB0dXJlUGFuZXMiLCJfY3VycmVudFZlcnNlRGF0YSIsIl9jdXJyZW50VmVyc2VEYXRhJHZlciIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJfcmVmOSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiZGV0ZXJtaW5pbmdCcmFuY2giLCJvbkFsaWdubWVudEZpbmlzaCIsInNhdmluZyIsImhhbmRsZUFsaWduQnV0dG9uQ2xpY2siLCJvblJlbmRlclRvb2xiYXIiLCJfcmVmMTAiLCJuZXdJdGVtcyIsImFsbFZlcnNlc0FsaWduZWQiLCJldmVyeSIsImFsaWduU3RhdHVzIiwiYWxpZ25JY29uIiwiYWxpZ25CdXR0b25UZXh0IiwiY29sb3IiLCJvbkNsaWNrIiwiY3Vyc29yIiwiRnJhZ21lbnQiLCJvcGVuIiwib25DbG9zZSIsImxpbmsiLCJsaW5rVG9vbHRpcCIsInJlZlN0cmluZyIsInNlbGVjdGlvbkJvb2tPYmplY3RzIiwib25TZWxlY3Rpb25zIiwic2V0dGluZ3NUaXRsZSIsImdldEN1c3RvbUNvbXBvbmVudCIsImhpZGVNYXJrZG93blRvZ2dsZSIsImVkaXRhYmxlIiwib25WZXJzZVNlbGVjdCIsInByb3BUeXBlcyIsInN0cmluZyIsImlzUmVxdWlyZWQiLCJvYmplY3QiLCJudW1iZXIiLCJib29sIiwiZnVuYyIsInNoYXBlIiwib25lT2ZUeXBlIiwiYW55Iiwic2V0QXJlUmVzb3VyY2VzTG9hZGluZyIsInNldEFyZVJlc291cmNlc1NhdmluZyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1NjcmlwdHVyZUNhcmQvU2NyaXB0dXJlQ2FyZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgKiBhcyBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcydcbmltcG9ydCB7IGNvcmUsIFNlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXIgfSBmcm9tICdzY3JpcHR1cmUtcmVzb3VyY2VzLXJjbCdcbmltcG9ydCB1c2ZtanMgZnJvbSAndXNmbS1qcydcbmltcG9ydCB7IHVzZUVkaXQgfSBmcm9tICdnaXRlYS1yZWFjdC10b29sa2l0J1xuaW1wb3J0IHsgSWNvbkJ1dHRvbiB9IGZyb20gJ0BtdWkvbWF0ZXJpYWwnXG5pbXBvcnQgeyBSeExpbmsyLCBSeExpbmtCcmVhazIgfSBmcm9tICdyZWFjdC1pY29ucy9yeCdcbmltcG9ydCB7XG4gIENhcmQsXG4gIEVycm9yRGlhbG9nLFxuICBFUlJPUl9TVEFURSxcbiAgTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUixcbiAgVXBkYXRlQnJhbmNoQnV0dG9uLFxuICB1c2VCcmFuY2hNZXJnZXIsXG4gIHVzZUNhcmRTdGF0ZSxcbiAgdXNlQ29udGVudFVwZGF0ZVByb3BzLFxuICB1c2VNYXN0ZXJNZXJnZVByb3BzLFxuICB1c2VVc2VyQnJhbmNoLFxufSBmcm9tICd0cmFuc2xhdGlvbi1oZWxwcy1yY2wnXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYgfSBmcm9tICd1dy1xdW90ZS1oZWxwZXJzJ1xuaW1wb3J0IHsgQWxpZ25tZW50SGVscGVycywgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyB9IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnQHJlYWN0LWhvb2t6L2RlZXAtZXF1YWwnXG5pbXBvcnQgeyBnZXRWZXJzZXMgfSBmcm9tICdiaWJsZS1yZWZlcmVuY2UtcmFuZ2UnXG5pbXBvcnQgeyBTY3JpcHR1cmVQYW5lLCBTY3JpcHR1cmVTZWxlY3RvciB9IGZyb20gJy4uJ1xuaW1wb3J0IHsgdXNlU2NyaXB0dXJlU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9ob29rcy91c2VTY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7XG4gIGNsZWFudXBWZXJzZU9iamVjdHMsXG4gIGZldGNoQmlibGVCb29rLFxuICBmaXhPY2N1cnJlbmNlLFxuICBnZXRCb29rTmFtZUZyb21Vc2ZtRmlsZU5hbWUsXG4gIGdldFJlc291cmNlTGluayxcbiAgZ2V0UmVzb3VyY2VNZXNzYWdlLFxuICBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3MsXG4gIGlzT3JpZ2luYWxCaWJsZSxcbn0gZnJvbSAnLi4vLi4vdXRpbHMvU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQgeyBkZWxheSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGF5J1xuaW1wb3J0IHsgYXJlTWFwc1RoZVNhbWUgfSBmcm9tICcuLi8uLi91dGlscy9tYXBzJ1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICcuLi9TY3JpcHR1cmVQYW5lL3N0eWxlZCdcbmltcG9ydCB7XG4gIE5UX09SSUdfTEFORyxcbiAgT1JJR0lOQUxfU09VUkNFLFxuICBPVF9PUklHX0xBTkcsXG59IGZyb20gJy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgVmVyc2VTZWxlY3RvclBvcHVwIH0gZnJvbSAnLi4vVmVyc2VTZWxlY3RvclBvcHVwJ1xuaW1wb3J0IHsgZ2V0UGF0Y2ggfSBmcm9tICcuLi8uLi91dGlscy9maWxlcydcblxuY29uc3QgS0VZX0ZPTlRfU0laRV9CQVNFID0gJ3NjcmlwdHVyZVBhbmVGb250U2l6ZV8nXG5jb25zdCBsYWJlbCA9ICdWZXJzaW9uJ1xuY29uc3Qgc3R5bGUgPSB7IG1hcmdpblRvcDogJzE2cHgnLCB3aWR0aDogJzUwMHB4JyB9XG5cbi8qKlxuICogY3JlYXRlIGEgc2hvcnQgY29tcGFyaXNvbiB2ZXJzZSByZWYgb2JqZWN0IHdpdGhvdXQgYWxsIHRoZSB2ZXJzZURhdGFcbiAqIEBwYXJhbSB2ZXJzZVJlZlxuICovXG5mdW5jdGlvbiBjb21wYXJlT2JqZWN0KHZlcnNlUmVmKSB7XG4gIGNvbnN0IHtcbiAgICBjaGFwdGVyLFxuICAgIHZlcnNlLFxuICAgIHZlcnNlRGF0YSxcbiAgfSA9IHZlcnNlUmVmIHx8IHt9XG4gIGNvbnN0IHZlcnNlT2JqZWN0cyA9IHZlcnNlRGF0YT8udmVyc2VPYmplY3RzPy5sZW5ndGggPyBKU09OLnN0cmluZ2lmeSh2ZXJzZURhdGEudmVyc2VPYmplY3RzKSA6ICcnXG4gIHJldHVybiB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICB2ZXJzZU9iamVjdHMsXG4gIH1cbn1cblxuLyoqXG4gKiBjb21wYXJlIHR3byB2ZXJzZSByZWZzIHRvIHNlZSBpZiB0aGV5IGFyZSBzdWJzdGFudGlhbGx5IHNpbWlsYXJcbiAqIEBwYXJhbSB2ZXJzZXNGb3JSZWYxXG4gKiBAcGFyYW0gdmVyc2VzRm9yUmVmMlxuICovXG5mdW5jdGlvbiBhcmVWZXJzZXNTYW1lKHZlcnNlc0ZvclJlZjE6IGFueVtdLCB2ZXJzZXNGb3JSZWYyOiBhbnlbXSkge1xuICB2ZXJzZXNGb3JSZWYxID0gdmVyc2VzRm9yUmVmMSB8fCBbXVxuICB2ZXJzZXNGb3JSZWYyID0gdmVyc2VzRm9yUmVmMiB8fCBbXVxuICBsZXQgYXJlU2FtZSA9IGZhbHNlXG5cbiAgaWYgKHZlcnNlc0ZvclJlZjEubGVuZ3RoID09PSB2ZXJzZXNGb3JSZWYyLmxlbmd0aCkge1xuICAgIGFyZVNhbWUgPSB0cnVlXG5cbiAgICBmb3IgKGxldCBpID0gMCwgbD0gdmVyc2VzRm9yUmVmMS5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHZlcnNlMSA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMVtpXSlcbiAgICAgIGNvbnN0IHZlcnNlMiA9IGNvbXBhcmVPYmplY3QodmVyc2VzRm9yUmVmMltpXSlcbiAgICAgIGFyZVNhbWUgPSBpc0VxdWFsKHZlcnNlMSwgdmVyc2UyKVxuXG4gICAgICBpZiAoIWFyZVNhbWUpIHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXJlU2FtZVxufVxuXG4vKipcbiAqIGdldCB0aGUgVVNGTSBmb3IgYm9va0lkIGZyb20gc2NyaXB0dXJlQ29uZmlnLlxuICogQHBhcmFtIHtvYmplY3R9IHNjcmlwdHVyZUNvbmZpZ1xuICogQHBhcmFtIHtzdHJpbmd9IGJvb2tJZFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudEJvb2sgPSAoc2NyaXB0dXJlQ29uZmlnLCBib29rSWQpID0+IHtcbiAgY29uc3QgbGF0ZXN0QmlibGUgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5wcm9qZWN0SWRcbiAgY29uc3QgZmlsZW5hbWUgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGU/LnJlc291cmNlPy5uYW1lIC8vIExpa2UgXCI1Ny1USVQudXNmbVwiXG4gIGxldCBpc0Jvb2tWYWxpZCA9IGZhbHNlXG4gIGNvbnN0IGJvb2tOYW1lID0gZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lKGZpbGVuYW1lKVxuICBpc0Jvb2tWYWxpZCA9IGJvb2tOYW1lPy50b0xvd2VyQ2FzZSgpPy5pbmNsdWRlcyhib29rSWQpXG4gIGlmICghaXNCb29rVmFsaWQpIHtcbiAgICBjb25zb2xlLndhcm4oYEN1cnJlbnQgYm9va0lkIGlzICR7Ym9va0lkfSBhbmQgVVNGTSBmaWxlIGlzICR7ZmlsZW5hbWV9YClcbiAgfVxuICBpZiAobGF0ZXN0QmlibGU/LnRvTG93ZXJDYXNlKCkgIT09IGJvb2tJZCkge1xuICAgIGNvbnNvbGUud2FybihgQ3VycmVudCBib29rSWQgaXMgJHtib29rSWR9IGJ1dCBmZXRjaGVkIHByb2plY3RJZCBpcyAke2xhdGVzdEJpYmxlfWApXG4gICAgaXNCb29rVmFsaWQgPSBmYWxzZVxuICB9XG4gIGlmIChpc0Jvb2tWYWxpZCkge1xuICAgIGNvbnN0IGJpYmxlVXNmbSA9IHNjcmlwdHVyZUNvbmZpZz8uYmlibGVVc2ZtO1xuICAgIGlmIChiaWJsZVVzZm0pIHtcbiAgICAgIHJldHVybiBiaWJsZVVzZm1cbiAgICB9XG4gICAgY29uc29sZS5lcnJvcihgZ2V0Q3VycmVudEJvb2soKSAtIEJpYmxlIFVTRk0gbWlzc2luZ2ApXG4gIH1cbiAgY29uc29sZS5lcnJvcihgZ2V0Q3VycmVudEJvb2soKSAtIEV4cGVjdGVkICR7Ym9va0lkfSBidXQgZ290IGZpbGUgJHtmaWxlbmFtZX1gKVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JpcHR1cmVDYXJkKHtcbiAgYXBwUmVmLFxuICBhdXRoZW50aWNhdGlvbixcbiAgYm9va0luZGV4LFxuICBjYXJkTnVtLFxuICBjbGFzc2VzLFxuICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gIGdldExhbmd1YWdlLFxuICBnZXRMZXhpY29uRGF0YSxcbiAgZ3JlZWtSZXBvVXJsLFxuICBoZWJyZXdSZXBvVXJsLFxuICBodHRwQ29uZmlnLFxuICBpZCxcbiAgaXNOVCxcbiAgbG9nZ2VkSW5Vc2VyLFxuICBvbk1pbmltaXplLFxuICBvblJlc291cmNlRXJyb3IsXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsXG4gIHJlZmVyZW5jZSxcbiAgcmVzb3VyY2U6IHtcbiAgICBvd25lcixcbiAgICBsYW5ndWFnZUlkLFxuICAgIHJlc291cmNlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICB9LFxuICByZXNvdXJjZUxpbmssXG4gIHNlbGVjdGVkUXVvdGUsXG4gIHNlcnZlcixcbiAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2UsXG4gIHNldENhcmRzTG9hZGluZ1VwZGF0ZSxcbiAgc2V0Q2FyZHNTYXZpbmcsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc2V0V29yZEFsaWduZXJTdGF0dXMsXG4gIHRyYW5zbGF0ZSxcbiAgdGl0bGUsXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIHVwZGF0ZU1lcmdlU3RhdGUsXG59KSB7XG4gIGNvbnN0IGJvb2tJZCA9IHJlZmVyZW5jZT8ucHJvamVjdElkXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2g6IDAsXG4gICAgY3VycmVudFJlZmVyZW5jZTogbnVsbCxcbiAgICBlZGl0QnJhbmNoUmVhZHk6IGZhbHNlLFxuICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGU6IG51bGwsXG4gICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgcmVmOiBhcHBSZWYsXG4gICAgc2F2ZUNsaWNrZWQ6IGZhbHNlLFxuICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgIHNhdmVEaWZmUGF0Y2g6IGZhbHNlLFxuICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBudWxsLFxuICAgIHNlbGVjdGlvbnM6IG5ldyBNYXAoKSxcbiAgICBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlLFxuICAgIHN0YXJ0U2F2ZTogZmFsc2UsXG4gICAgdXJsRXJyb3I6IG51bGwsXG4gICAgdXNpbmdVc2VyQnJhbmNoOiBmYWxzZSxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3Q6IHt9LFxuICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICB2ZXJzZXNGb3JSZWY6IG51bGwsXG4gICAgdmVyc2VPYmplY3RzTWFwOiBuZXcgTWFwKCksXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCxcbiAgfSlcbiAgY29uc3Qge1xuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBjdXJyZW50UmVmZXJlbmNlLFxuICAgIGVkaXRCcmFuY2hSZWFkeSxcbiAgICBoYXZlVW5zYXZlZENoYW5nZXMsXG4gICAgbGFzdFNlbGVjdGVkUXVvdGUsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWYsXG4gICAgc2F2ZUNsaWNrZWQsXG4gICAgc2F2ZUNvbnRlbnQsXG4gICAgc2F2ZURpZmZQYXRjaCxcbiAgICBzYXZlRnVsbEJpYmxlQ29udGVudCxcbiAgICBzZWxlY3Rpb25zLFxuICAgIHNob3dBbGlnbm1lbnRQb3B1cCxcbiAgICBzdGFydFNhdmUsXG4gICAgdXJsRXJyb3IsXG4gICAgdXNpbmdVc2VyQnJhbmNoLFxuICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdCxcbiAgICB2ZXJzZU9iamVjdHNNYXAsXG4gICAgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXMsXG4gICAgdmVyc2VzRm9yUmVmLFxuICB9ID0gc3RhdGVcblxuICBjb25zdCBbZm9udFNpemUsIHNldEZvbnRTaXplXSA9IHVzZVVzZXJMb2NhbFN0b3JhZ2UoS0VZX0ZPTlRfU0laRV9CQVNFICsgY2FyZE51bSwgMTAwKVxuICBjb25zdCBpc05UXyA9IGlzTlQoYm9va0lkKVxuXG4gIGZ1bmN0aW9uIHNldFN0YXRlKG5ld1N0YXRlKSB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoeyAuLi5wcmV2U3RhdGUsIC4uLm5ld1N0YXRlIH0pKVxuICB9XG5cbiAgaHR0cENvbmZpZyA9IHtcbiAgICAuLi5odHRwQ29uZmlnLFxuICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgIG5vQ2FjaGU6IHRydWUsXG4gIH0gLy8gZGlzYWJsZSBodHRwIGNhY2hpbmdcblxuICBjb25zdCB7XG4gICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNldFNjcmlwdHVyZSxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgfSA9IHVzZVNjcmlwdHVyZVNldHRpbmdzKHtcbiAgICBhcHBSZWY6IHJlZixcbiAgICBjYXJkTnVtLFxuICAgIGRpc2FibGVXb3JkUG9wb3ZlcixcbiAgICBncmVla1JlcG9VcmwsXG4gICAgaGVicmV3UmVwb1VybCxcbiAgICBodHRwQ29uZmlnLFxuICAgIGlzTlQsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXIsXG4gICAgb3duZXIsXG4gICAgcmVhZHlGb3JGZXRjaCxcbiAgICByZWZlcmVuY2U6IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlLFxuICAgIHJlc291cmNlSWQsXG4gICAgcmVzb3VyY2VMaW5rLFxuICAgIHNldFVybEVycm9yOiAoZXJyb3IpID0+IHNldFN0YXRlKHsgdXJsRXJyb3I6IGVycm9yIH0pLFxuICAgIHNlcnZlcixcbiAgICB0aXRsZSxcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICAgIHdob2xlQm9vazogdHJ1ZSxcbiAgfSlcblxuICBjb25zdCBmZXRjaGVkUmVzb3VyY2UgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdGVcbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZXBvID0gYCR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ubGFuZ3VhZ2VJZH1fJHtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5wcm9qZWN0SWR9YFxuICBjb25zdCByZWZlcmVuY2VfID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2UgfHwgbnVsbFxuICBjb25zdCB1c2luZ09yaWdpbmFsQmlibGUgPSBpc09yaWdpbmFsQmlibGUoc2NyaXB0dXJlQ29uZmlnWydyZXNvdXJjZSddPy5wcm9qZWN0SWQpXG5cblxuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IGNhcmRSZXNvdXJjZUlkID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkIHx8IHJlc291cmNlSWRcbiAgLy8gQHRzLWlnbm9yZVxuICBsZXQgcmVmXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnJlZiB8fCBhcHBSZWZcbiAgY29uc3QgY2FuVXNlRWRpdEJyYW5jaCA9ICEhKGxvZ2dlZEluVXNlciAmJiBhdXRoZW50aWNhdGlvbiAmJiAocmVzb3VyY2VJZCAhPT0gT1JJR0lOQUxfU09VUkNFKSAmJiAvLyBUUklDS1kgaWYgbm90IG9yaWdpbmFsIGxhbmd1YWdlIGFuZCB3ZSBoYXZlIGxvZ2luIGRhdGEsIHRoZW4gd2UgY2FuIHVzZSB0aGUgZWRpdCBicmFuY2hcbiAgICAoKHJlZl8gPT09ICdtYXN0ZXInKSB8fCAocmVmXy5pbmNsdWRlcyhsb2dnZWRJblVzZXIpKSkpIC8vIGFsc28gbWFrZSBzdXJlIG5vdCBhIHZlcnNpb24gdGFnXG5cbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBicmFuY2hEZXRlcm1pbmVkLFxuICAgICAgdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoLFxuICAgICAgd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIH0sXG4gICAgYWN0aW9uczoge1xuICAgICAgc3RhcnRFZGl0OiBzdGFydEVkaXRCcmFuY2gsXG4gICAgICBmaW5pc2hFZGl0LFxuICAgIH0sXG4gIH0gPSB1c2VVc2VyQnJhbmNoKHtcbiAgICBhcHBSZWYsXG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0lkLFxuICAgIGNhcmRJZDogaWQsXG4gICAgY2FyZFJlc291cmNlSWQsXG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoLFxuICAgIGxhbmd1YWdlSWQsXG4gICAgbG9nZ2VkSW5Vc2VyOiBjYW5Vc2VFZGl0QnJhbmNoID8gbG9nZ2VkSW5Vc2VyIDogbnVsbCxcbiAgICBvd25lcixcbiAgICBvblJlc291cmNlRXJyb3IsXG4gICAgc2VydmVyLFxuICAgIHVzZVVzZXJMb2NhbFN0b3JhZ2UsXG4gIH0pXG5cbiAgY29uc3QgX3VzZUJyYW5jaE1lcmdlciA9IHVzZUJyYW5jaE1lcmdlcih7IHNlcnZlciwgb3duZXIsIHJlcG8sIHVzZXJCcmFuY2g6IHVzZXJFZGl0QnJhbmNoTmFtZSwgdG9rZW5pZDogYXV0aGVudGljYXRpb24/LnRva2VuPy5zaGExIH0pXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgbWVyZ2VTdGF0dXM6IG1lcmdlVG9NYXN0ZXIsXG4gICAgICB1cGRhdGVTdGF0dXM6IG1lcmdlRnJvbU1hc3RlcixcbiAgICB9LFxuICB9ID0gX3VzZUJyYW5jaE1lcmdlclxuXG4gIGNvbnN0IHVwZGF0ZUJ1dHRvblByb3BzID0gdXNlQ29udGVudFVwZGF0ZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvblVwZGF0ZTogKCkgPT4ge1xuICAgICAgZGVsYXkoNTAwKS50aGVuKCgpID0+IHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2UoKSlcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHtcbiAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICBpc0Vycm9yRGlhbG9nT3BlbixcbiAgICBvbkNsb3NlRXJyb3JEaWFsb2csXG4gICAgaXNMb2FkaW5nOiBpc1VwZGF0ZUxvYWRpbmcsXG4gICAgZGlhbG9nTWVzc2FnZSxcbiAgICBkaWFsb2dUaXRsZSxcbiAgICBkaWFsb2dMaW5rLFxuICAgIGRpYWxvZ0xpbmtUb29sdGlwLFxuICB9ID0gdXBkYXRlQnV0dG9uUHJvcHNcblxuICBjb25zdCBvbk1lcmdlID0gKCkgPT4ge1xuICAgIGZpbmlzaEVkaXQoKVxuICAgIGNvbnNvbGUubG9nKGBvbk1lcmdlKCkgc3dpdGNoaW5nIGJhY2sgdG8gbWFzdGVyIGFmdGVyIG1lcmdlIGFwcFJlZjpgLCBhcHBSZWYpXG4gICAgc2V0U3RhdGUoe1xuICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICByZWY6IGFwcFJlZixcbiAgICB9KVxuICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiB7XG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSwgLy8gdHJpZ2dlciByZWNoZWNrIG9mIHVzZXIgYnJhbmNoIHdoaWNoIHdpbGwgc3dpdGNoIHRoZSBicmFuY2ggYmFjayB0byBtYXN0ZXJcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogZmFsc2UsXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICBjb25zdCB7IGlzTG9hZGluZzogaXNNZXJnZUxvYWRpbmcsIGNhbGxNZXJnZVVzZXJCcmFuY2ggfSA9IHVzZU1hc3Rlck1lcmdlUHJvcHMoe1xuICAgIGlzU2F2aW5nOiBzdGFydFNhdmUsXG4gICAgdXNlQnJhbmNoTWVyZ2VyOiBfdXNlQnJhbmNoTWVyZ2VyLFxuICAgIG9uTWVyZ2UsXG4gIH0pXG5cbiAgLy8gU2luY2Ugb3JpZ2luYWwgdGV4dCAoR3JlZWsvSGVicmV3KSBzaG91bGQgbm90IGJlIGVkaXRlZCwgZG8gbm90IGluY2x1ZGVcbiAgLy8gdGhlbSBpbiBtZXJnZSBzdGF0ZSBzaW5jZSB1c2VyIHdpbGwgbm90IG1lcmdlL3B1c2ggY2hhbmdlcy5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoY2FyZFJlc291cmNlSWQgJiYgIXVzaW5nT3JpZ2luYWxCaWJsZSkge1xuICAgICAgdXBkYXRlTWVyZ2VTdGF0ZSAmJiB1cGRhdGVNZXJnZVN0YXRlKFxuICAgICAgICBjYXJkUmVzb3VyY2VJZCxcbiAgICAgICAgc2NyaXB0dXJlQ29uZmlnLnRpdGxlLFxuICAgICAgICBtZXJnZUZyb21NYXN0ZXIsXG4gICAgICAgIG1lcmdlVG9NYXN0ZXIsXG4gICAgICAgIGNhbGxVcGRhdGVVc2VyQnJhbmNoLFxuICAgICAgICBjYWxsTWVyZ2VVc2VyQnJhbmNoLFxuICAgICAgKVxuICAgIH1cbiAgfSxbY2FyZFJlc291cmNlSWQsIHNjcmlwdHVyZUNvbmZpZy50aXRsZSwgbWVyZ2VGcm9tTWFzdGVyLCBtZXJnZVRvTWFzdGVyXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc1VwZGF0ZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gWy4uLnByZXZDYXJkc0xvYWRpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNVcGRhdGVMb2FkaW5nXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChpc01lcmdlTG9hZGluZykge1xuICAgICAgc2V0Q2FyZHNMb2FkaW5nTWVyZ2U/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBwcmV2Q2FyZHNMb2FkaW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgfVxuICB9LCBbaXNNZXJnZUxvYWRpbmddKVxuXG4gIGNvbnN0IHdvcmtpbmdSZWYgPSBjYW5Vc2VFZGl0QnJhbmNoID8gd29ya2luZ1Jlc291cmNlQnJhbmNoIDogYXBwUmVmXG4gIGxldCBzY3JpcHR1cmVUaXRsZVxuXG4gIGlmICghY2FuVXNlRWRpdEJyYW5jaCAmJiAhcmVhZHlGb3JGZXRjaCkgeyAvLyBpZiBiaWJsZSBub3QgZWxpZ2libGUgZm9yIHVzZXIgYnJhbmNoLCBtYWtlIHN1cmUgaXQncyByZWFkeVxuICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogdHJ1ZSB9KVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBib29rIGNoYW5nZWRgLCB7IGJvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWQgfSlcblxuICAgIGlmIChjYW5Vc2VFZGl0QnJhbmNoKSB7IC8vIGlmIGJpYmxlIGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgcmVmcmVzaCBpdFxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiBmYWxzZSwgY2hlY2tGb3JFZGl0QnJhbmNoOiBjaGVja0ZvckVkaXRCcmFuY2ggKyAxIH0pXG4gICAgfVxuICB9LCBbYm9va0lkLCBvd25lciwgbGFuZ3VhZ2VJZCwgcmVzb3VyY2VJZF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoIWlzRXF1YWwocmVmZXJlbmNlLCBjdXJyZW50UmVmZXJlbmNlKSkge1xuICAgICAgLy8gY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgcmVmZXJlbmNlIGNoYW5nZWRgLCByZWZlcmVuY2UpXG4gICAgICBzZXRTdGF0ZSh7IGN1cnJlbnRSZWZlcmVuY2U6IHJlZmVyZW5jZSB9KVxuICAgIH1cbiAgfSwgW3JlZmVyZW5jZV0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2FpdGluZyBmb3IgYnJhbmNoIGZldGNoIHRvIGNvbXBsZXRlXG4gICAgaWYgKCFyZWFkeUZvckZldGNoICYmIGJyYW5jaERldGVybWluZWQgKSB7XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZCBicmFuY2hEZXRlcm1pbmVkIGlzICR7YnJhbmNoRGV0ZXJtaW5lZH0gYW5kIHdvcmtpbmdSZWYgaXMgJHt3b3JraW5nUmVmfWApXG4gICAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUsIHJlZjogd29ya2luZ1JlZiB9KVxuICAgIH1cbiAgfSwgW2JyYW5jaERldGVybWluZWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNlbGVjdCBjb3JyZWN0IHdvcmtpbmcgcmVmIC0gY291bGQgYmUgbWFzdGVyLCB1c2VyIGJyYW5jaCwgb3IgcmVsZWFzZVxuICAgIGlmIChfdXNpbmdVc2VyQnJhbmNoICE9PSB1c2luZ1VzZXJCcmFuY2gpIHtcbiAgICAgIHNldFN0YXRlKHsgdXNpbmdVc2VyQnJhbmNoOiBfdXNpbmdVc2VyQnJhbmNoIH0pXG4gICAgfVxuICB9LCBbX3VzaW5nVXNlckJyYW5jaCwgdXNpbmdVc2VyQnJhbmNoXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB1cGRhdGUgZGlzcGxheSBzdGF0dXMgaWYgZXJyb3JcbiAgICBjb25zdCBlcnJvciA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXM/LltFUlJPUl9TVEFURV1cblxuICAgIGlmIChlcnJvcikgeyAvLyBpZiBlcnJvciB3YXMgZm91bmQgZG8gY2FsbGJhY2tcbiAgICAgIGNvbnN0IHJlc291cmNlU3RhdHVzID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1c1xuICAgICAgY29uc3QgcmVzb3VyY2VMaW5rID0gZ2V0UmVzb3VyY2VMaW5rKHNjcmlwdHVyZUNvbmZpZylcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBnZXRSZXNvdXJjZU1lc3NhZ2UocmVzb3VyY2VTdGF0dXMsIHNlcnZlciwgcmVzb3VyY2VMaW5rLCBpc05UXylcbiAgICAgIGNvbnN0IGlzQWNjZXNzRXJyb3IgPSByZXNvdXJjZVN0YXR1c1tNQU5JRkVTVF9OT1RfTE9BREVEX0VSUk9SXVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihtZXNzYWdlLCBpc0FjY2Vzc0Vycm9yLCByZXNvdXJjZVN0YXR1cylcbiAgICB9XG4gIH0sIFtzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXSlcblxuICBpZiAoc2NyaXB0dXJlQ29uZmlnLnRpdGxlICYmIHNjcmlwdHVyZUNvbmZpZy52ZXJzaW9uKSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgJHtzY3JpcHR1cmVDb25maWcudGl0bGV9IHYke3NjcmlwdHVyZUNvbmZpZy52ZXJzaW9ufWBcbiAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdC51cGRhdGVUaXRsZShzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLCBzY3JpcHR1cmVUaXRsZSlcbiAgfSBlbHNlIHtcbiAgICBzY3JpcHR1cmVUaXRsZSA9IGBUaXRsZSBtaXNzaW5nIGZyb20gcHJvamVjdCBtYW5pZmVzdGBcbiAgfVxuXG4gIC8qKiBEeW5hbWljYWxseSBjcmVhdGVzIHRoZSBzY3JpcHR1cmUgc2VsZWN0aW9uIGRyb3Bkb3duIHRvIGJlIGluc2VydGVkIGludG8gY2FyZCBzZXR0aW5ncyAqL1xuICBmdW5jdGlvbiBnZXRTY3JpcHR1cmVTZWxlY3RvcigpIHtcbiAgICBjb25zdCBzY3JpcHR1cmVTZWxlY3Rpb25Db25maWcgPSBnZXRTY3JpcHR1cmVWZXJzaW9uU2V0dGluZ3Moe1xuICAgICAgbGFiZWwsXG4gICAgICByZXNvdXJjZUxpbms6IHNjcmlwdHVyZUNvbmZpZy5yZXNvdXJjZUxpbmssXG4gICAgICBzZXRTY3JpcHR1cmUsXG4gICAgICBzY3JpcHR1cmVWZXJzaW9uSGlzdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIDxTY3JpcHR1cmVTZWxlY3RvciB7Li4uc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnfSBzdHlsZT17c3R5bGV9IGVycm9yTWVzc2FnZT17dXJsRXJyb3J9IC8+XG4gIH1cblxuICBmdW5jdGlvbiBvbk1lbnVDbG9zZSgpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhgb25NZW51Q2xvc2UoKWApXG4gICAgc2V0U3RhdGUoeyB1cmxFcnJvcjogbnVsbCB9KVxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBsYW5ndWFnZUlkXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWRcbiAgY29uc3QgbGFuZ3VhZ2UgPSBnZXRMYW5ndWFnZSh7IGxhbmd1YWdlSWQ6IGxhbmd1YWdlSWRfIH0pXG4gIGNvbnN0IGRpcmVjdGlvbiA9IChsYW5ndWFnZT8uZGlyZWN0aW9uKSB8fCAnbHRyJ1xuICBjb25zdCBfcmVmZXJlbmNlID0gY3VycmVudFJlZmVyZW5jZSB8fCByZWZlcmVuY2VcblxuICBjb25zdCBpc0hlYnJldyA9IChsYW5ndWFnZUlkXyA9PT0gJ2hibycpXG4gIGNvbnN0IGZvbnRGYWN0b3IgPSBpc0hlYnJldyA/IDEuNCA6IDEgLy8gd2UgYXV0b21hdGljYWxseSBzY2FsZSB1cCBmb250IHNpemUgZm9yIEhlYnJld1xuICBjb25zdCBzY2FsZWRGb250U2l6ZSA9IGZvbnRTaXplICogZm9udEZhY3RvclxuXG4gIGNvbnN0IGl0ZW1zID0gbnVsbFxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIGhlYWRlcnMsIGZpbHRlcnMsIGl0ZW1JbmRleCwgbWFya2Rvd25WaWV3LFxuICAgIH0sXG4gICAgYWN0aW9uczoge1xuICAgICAgc2V0RmlsdGVycywgc2V0SXRlbUluZGV4LCBzZXRNYXJrZG93blZpZXcsXG4gICAgfSxcbiAgfSA9IHVzZUNhcmRTdGF0ZSh7IGl0ZW1zIH0pXG5cbiAgY29uc3QgcmVmU3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6IGAke01hdGgucm91bmQoc2NhbGVkRm9udFNpemUgKiAwLjkpfSVgLFxuICB9KSwgW3NjYWxlZEZvbnRTaXplXSlcblxuICBjb25zdCBjb250ZW50U3R5bGUgPSBSZWFjdC51c2VNZW1vKCgpID0+ICh7XG4gICAgZm9udEZhbWlseTogJ05vdG8gU2FucycsXG4gICAgZm9udFNpemU6IGAke3NjYWxlZEZvbnRTaXplfSVgLFxuICB9KSwgW3NjYWxlZEZvbnRTaXplXSlcblxuICBjb25zdCBzY3JpcHR1cmVMYWJlbCA9IDxUaXRsZT57c2NyaXB0dXJlVGl0bGV9PC9UaXRsZT5cbiAgbGV0IGRpc2FibGVXb3JkUG9wb3Zlcl8gPSBkaXNhYmxlV29yZFBvcG92ZXJcblxuICBpZiAoZGlzYWJsZVdvcmRQb3BvdmVyID09PSB1bmRlZmluZWQpIHsgLy8gaWYgbm90IHNwZWNpZmllZCwgdGhlbiBkZXRlcm1pbmUgaWYgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVzb3VyY2VcbiAgICBkaXNhYmxlV29yZFBvcG92ZXJfID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICB9XG5cbiAgY29uc3QgZW5hYmxlRWRpdCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3QgZW5hYmxlQWxpZ25tZW50ID0gIXVzaW5nT3JpZ2luYWxCaWJsZVxuICBjb25zdCBvcmlnaW5hbFJlcG9VcmwgPSBpc05ld1Rlc3RhbWVudCA/IGdyZWVrUmVwb1VybCA6IGhlYnJld1JlcG9VcmxcbiAgY29uc3Qgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICBhdXRoZW50aWNhdGlvbjogY2FuVXNlRWRpdEJyYW5jaCA/IGF1dGhlbnRpY2F0aW9uIDogbnVsbCxcbiAgICBib29rSW5kZXgsXG4gICAgY3VycmVudFZlcnNlUmVmOiBfcmVmZXJlbmNlLFxuICAgIGVuYWJsZUVkaXQsXG4gICAgZW5hYmxlQWxpZ25tZW50LFxuICAgIGh0dHBDb25maWcsXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBvcmlnaW5hbFJlcG9VcmwsXG4gICAgc2NyaXB0dXJlQ29uZmlnLFxuICAgIHNjcmlwdHVyZVNldHRpbmdzLFxuICAgIHN0YXJ0RWRpdEJyYW5jaCxcbiAgICBzZXRTYXZlZENoYW5nZXM6IF9zZXRTYXZlZENoYW5nZXMsXG4gICAgc291cmNlTGFuZ3VhZ2U6IGlzTlRfID8gTlRfT1JJR19MQU5HIDogT1RfT1JJR19MQU5HLFxuICAgIHRhcmdldExhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICB0aXRsZTogc2NyaXB0dXJlVGl0bGUsXG4gICAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiByZWYsXG4gIH1cblxuICAvKipcbiAgICogdGhpcyBnZXRzIGNhbGxlZCB3aGVuZXZlciBhIHNjcmlwdHVyZSBwYW5lIGhhcyBhIGNoYW5nZSBpbiBzYXZlIHN0YXRlXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjdXJyZW50SW5kZXhcbiAgICogQHBhcmFtIHtib29sZWFufSBzYXZlZFxuICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBnZXRDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgdXNlciBjbGlja3Mgc2F2ZSBidXR0b25cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gY2xlYXJDaGFuZ2VzIC0gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgc2F2ZSBoYXMgY29tcGxldGVkXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBzdGF0ZSAtIGN1cnJlbnQgc3RhdGUgb2Ygd29yZCBhbGlnbm1lbnQvZWRpdFxuICAgKi9cbiAgZnVuY3Rpb24gX3NldFNhdmVkQ2hhbmdlcyhjdXJyZW50SW5kZXgsIHNhdmVkLCB7IGdldENoYW5nZXMgPSBudWxsLCBjbGVhckNoYW5nZXMgPSBudWxsLCBzdGF0ZSA9IG51bGwgfSkge1xuICAgIGNvbnN0IF91bnNhdmVkQ2hhbmdlc0xpc3QgPSB7IC4uLnVuc2F2ZWRDaGFuZ2VzTGlzdCB9XG5cbiAgICBpZiAoc2F2ZWQpIHtcbiAgICAgIGlmIChfdW5zYXZlZENoYW5nZXNMaXN0Lmhhc093blByb3BlcnR5KGN1cnJlbnRJbmRleCkpIHtcbiAgICAgICAgZGVsZXRlIF91bnNhdmVkQ2hhbmdlc0xpc3RbY3VycmVudEluZGV4XVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF0gPSB7IGdldENoYW5nZXMsIGNsZWFyQ2hhbmdlcywgc3RhdGUgfSAvLyB1cGRhdGUgd2l0aCBsYXRlc3RcbiAgICB9XG5cbiAgICBjb25zdCBfaGF2ZVVuc2F2ZWRDaGFuZ2VzID0gISFPYmplY3Qua2V5cyhfdW5zYXZlZENoYW5nZXNMaXN0KS5sZW5ndGhcblxuICAgIGlmIChoYXZlVW5zYXZlZENoYW5nZXMgIT0gX2hhdmVVbnNhdmVkQ2hhbmdlcykge1xuICAgICAgc2V0U2F2ZWRDaGFuZ2VzICYmIHNldFNhdmVkQ2hhbmdlcyhyZXNvdXJjZUlkLCAhX2hhdmVVbnNhdmVkQ2hhbmdlcylcbiAgICAgIHNldFN0YXRlKHsgaGF2ZVVuc2F2ZWRDaGFuZ2VzOiBfaGF2ZVVuc2F2ZWRDaGFuZ2VzIH0pXG4gICAgfVxuXG4gICAgaWYgKCFpc0VxdWFsKF91bnNhdmVkQ2hhbmdlc0xpc3QsIHVuc2F2ZWRDaGFuZ2VzTGlzdCkpIHtcbiAgICAgIHNldFN0YXRlKHsgdW5zYXZlZENoYW5nZXNMaXN0OiBfdW5zYXZlZENoYW5nZXNMaXN0IH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIHNlYXJjaCBjaGFwdGVyIG9yIHZlcnNlIGNodW5rIHRvIGxpbmUgdGhhdCBzdGFydHMgd2l0aCBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge251bWJlcnxzdHJpbmd9IGZpbmRJdGVtXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNodW5rc1xuICAgKi9cbiAgZnVuY3Rpb24gZmluZFJlZkluQXJyYXkoZmluZEl0ZW0sIGNodW5rcykge1xuICAgIGNvbnN0IHJlZl8gPSBmaW5kSXRlbSArICcnXG4gICAgY29uc3QgcmVmTGVuID0gcmVmXy5sZW5ndGhcbiAgICBjb25zdCBpbmRleCA9IGNodW5rcy5maW5kSW5kZXgoKGNodW5rLCBpZHgpID0+IHtcbiAgICAgIGlmIChpZHggPiAwKSB7XG4gICAgICAgIGlmIChjaHVuay5zdWJzdHJpbmcoMCwgcmVmTGVuKSA9PT0gcmVmXykge1xuICAgICAgICAgIGNvbnN0IG5leHRDaGFyID0gY2h1bmtbcmVmTGVuXVxuXG4gICAgICAgICAgaWYgKChuZXh0Q2hhciA+ICc5JykgfHwgKG5leHRDaGFyIDwgJzAnKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gICAgcmV0dXJuIGluZGV4XG4gIH1cblxuICBmdW5jdGlvbiBnZXRCb29rTmFtZSgpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgYm9va0NhcHMgPSBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZT8ucHJvamVjdElkID8gc2NyaXB0dXJlQ29uZmlnLnJlZmVyZW5jZS5wcm9qZWN0SWQudG9VcHBlckNhc2UoKSA6ICcnXG4gICAgcmV0dXJuIGAke2Jvb2tJbmRleH0tJHtib29rQ2Fwc30udXNmbWBcbiAgfVxuXG4gIGNvbnN0IGZpbGVwYXRoID0gZ2V0Qm9va05hbWUoKVxuICBjb25zdCBzaGEgPSBmZXRjaGVkUmVzb3VyY2U/LnNoYVxuXG4gIC8vIGtlZXAgdHJhY2sgb2YgdmVyc2UgZWRpdCBzdGF0ZVxuICBjb25zdCB7XG4gICAgZXJyb3I6IHNhdmVFcnJvcixcbiAgICBpc0Vycm9yOiBpc1NhdmVFcnJvcixcbiAgICBvblNhdmVFZGl0LFxuICAgIG9uU2F2ZUVkaXRQYXRjaCxcbiAgfSA9IHVzZUVkaXQoe1xuICAgIHNoYSxcbiAgICBvd25lcixcbiAgICBjb250ZW50OiBzYXZlQ29udGVudCxcbiAgICBjb25maWc6IHtcbiAgICAgIGNhY2hlOiB7IG1heEFnZTogMCB9LFxuICAgICAgLi4uYXV0aGVudGljYXRpb24/LmNvbmZpZyxcbiAgICAgIGRvbnRDcmVhdGVCcmFuY2g6IHRydWUsXG4gICAgICB0b2tlbjogYXV0aGVudGljYXRpb24/LnRva2VuLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGltZW91dDogaHR0cENvbmZpZz8uc2VydmVyVGltZU91dCB8fCBodHRwQ29uZmlnPy50aW1lb3V0IHx8IDEwMDAwLFxuICAgICAgc2VydmVyLFxuICAgIH0sXG4gICAgYXV0aG9yOiBsb2dnZWRJblVzZXIsXG4gICAgZW1haWw6IGF1dGhlbnRpY2F0aW9uPy51c2VyPy5lbWFpbCxcbiAgICB0b2tlbjogYXV0aGVudGljYXRpb24/LnRva2VuLFxuICAgIGJyYW5jaDogd29ya2luZ1Jlc291cmNlQnJhbmNoLFxuICAgIGZpbGVwYXRoLFxuICAgIHJlcG8sXG4gIH0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gd2hlbiB3ZSBnZXQgYSBzYXZlIHNhdmVFcnJvclxuICAgIGlmIChzYXZlRXJyb3IgJiYgaXNTYXZlRXJyb3IgJiYgIXN0YXJ0U2F2ZSkgeyAvLyBpZiBlcnJvciB0aGVuIHNob3cgYWZ0ZXIgc2F2ZSBjb21wbGV0ZXMsIHNpbmNlIHdlIG1heSByZXRyeVxuICAgICAgY29uc29sZS5sb2coYHNhdmUgZXJyb3JgLCBzYXZlRXJyb3IpXG4gICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3Igc2F2aW5nICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH0gJHtzYXZlRXJyb3J9YCwgdHJ1ZSlcbiAgICB9XG4gIH0sIFtzYXZlRXJyb3IsIGlzU2F2ZUVycm9yLCBzdGFydFNhdmVdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gc3RhcnRTYXZlIGdvZXMgdHJ1ZSwgc2F2ZSBlZGl0cyB0byB1c2VyIGJyYW5jaCBhbmQgdGhlbiBjbGVhciBzdGFydFNhdmVcbiAgICBmdW5jdGlvbiBfc2F2ZVN1Y2Nlc2Z1bCgpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc2NyaXB0dXJlIGVkaXRzIHN1Y2Nlc3NgKVxuICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IHByZXZDYXJkc1NhdmluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgdW5zYXZlZENhcmRJbmRpY2VzID0gT2JqZWN0LmtleXModW5zYXZlZENoYW5nZXNMaXN0KVxuXG4gICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgY29uc3Qge2NsZWFyQ2hhbmdlc30gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZEluZGV4XVxuICAgICAgICAgIGNsZWFyQ2hhbmdlcyAmJiBjbGVhckNoYW5nZXMoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUuaW5mbygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBSZWxvYWRpbmcgcmVzb3VyY2UnKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgICAgICByZWFkeUZvckZldGNoOiB0cnVlLFxuICAgICAgICBzYXZlRnVsbEJpYmxlQ29udGVudDogbnVsbCxcbiAgICAgICAgc2F2ZUNvbnRlbnQ6IG51bGwsXG4gICAgICAgIHJlZjogdXNlckVkaXRCcmFuY2hOYW1lLFxuICAgICAgfSlcbiAgICAgIGRlbGF5KDEwMCkudGhlbigoKSA9PiB7XG4gICAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgICAgc2NyaXB0dXJlQ29uZmlnPy5yZWxvYWRSZXNvdXJjZShzaGEsIHVzZXJFZGl0QnJhbmNoTmFtZSlcbiAgICAgIH0pXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIGNvbnN0IF9zYXZlRWRpdCA9IGFzeW5jICgpID0+IHsgLy8gYmVnaW4gdXBsb2FkaW5nIG5ldyBVU0ZNXG4gICAgICBjb25zb2xlLmluZm8oYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gVXNpbmcgc2hhOiAke3NoYX1gKVxuICAgICAgbGV0IHVwbG9hZEZ1bmN0aW9uID0gb25TYXZlRWRpdFxuICAgICAgaWYgKHNhdmVEaWZmUGF0Y2gpIHtcbiAgICAgICAgdXBsb2FkRnVuY3Rpb24gPSBvblNhdmVFZGl0UGF0Y2ggLy8gaWYgd2UgYXJlIHNlbmRpbmcgdXAgYSBkaWZmcGF0Y2gsIHdlIHdpbGwgdXNlIHRoaXMgbWV0aG9kXG4gICAgICB9XG4gICAgICBsZXQgc3VjY2VzcyA9IGF3YWl0IHVwbG9hZEZ1bmN0aW9uKHVzZXJFZGl0QnJhbmNoTmFtZSkvLyBwdXNoIGNoYW5nZSB0byBzZXJ2ZXJcbiAgICAgIGxldCBlcnJvciA9IHN1Y2Nlc3MgPyBudWxsIDogJ3NhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQnXG5cbiAgICAgIGlmICghc3VjY2VzcykgeyAvLyBpZiBzYXZlIGZhaWxlZCwgYXR0ZW1wdCBhIHJldHJ5XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCwgcmV0cnlpbmcnKVxuICAgICAgICBhd2FpdCBkZWxheSg1MDApIC8vIHNpbmNlIHdlIGhhZCBhbiBlcnJvciwgd2FpdCBmb3IgZGF0YSB0byB1cGRhdGUgb24gc2VydmVyIGJlZm9yZSBnZXR0aW5nIHRoZSBsYXRlc3RcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAvLyBmZXRjaCB0aGUgbGF0ZXN0IGJvb2sgY29udGVudCwgc28gd2UgY2FuIHRlbGwgaWYgbGF0ZXN0IGNoYW5nZXMgd2VyZSBzYXZlZCBhbmQgaGF2ZSB0aGUgbGF0ZXN0IGZpbGUgc2hhXG4gICAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBmZXRjaEJpYmxlQm9vayhzZXJ2ZXIsIGh0dHBDb25maWcsIHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2UsIHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlKVxuICAgICAgICBlcnJvciA9IHJlc3VsdHM/LmVycm9yXG4gICAgICAgIGxldCBfc2F2ZUNvbnRlbnQgPSBzYXZlQ29udGVudFxuICAgICAgICBsZXQgZmlsZVNoYSA9IG51bGxcbiAgICAgICAgY29uc3Qgc2F2ZWRCaWJsZVVzZm0gPSByZXN1bHRzPy5iaWJsZVVzZm1cbiAgICAgICAgY29uc3QgZWRpdGVkQmlibGVVc2ZtID0gc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ/Lm5ld1xuICAgICAgICBsZXQgdXBUb0RhdGUgPSBzYXZlZEJpYmxlVXNmbSA9PT0gZWRpdGVkQmlibGVVc2ZtIC8vIGNoZWNrIGlmIG5ldyBiaWJsZSBjb250ZW50IGRpZmZlcnMgZnJvbSBsYXRlc3Qgb24gcmVwb1xuXG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICBpZiAodXBUb0RhdGUpIHsgLy8gaWYgdGhlIGRhdGEgd2UgYXJlIHRyeWluZyB0byBzYXZlIG1hdGNoZXMgd2hhdCBpcyBub3cgb24gdGhlIHNlcnZlciB0aGVyZSBpcyBub3RoaW5nIHRvIGRvXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBkYXRhIHdhcyBjb3JyZWN0bHkgdXBsb2FkZWQsIHNvIG5vdGhpbmcgbW9yZSB0byBkbycpXG4gICAgICAgICAgICBzdWNjZXNzID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoc2F2ZURpZmZQYXRjaCkge1xuICAgICAgICAgICAgICBhd2FpdCBkZWxheSgxMDApIC8vIGFsbG93IFVJIHRvIHVwZGF0ZSBiZWZvcmUgcnVubmluZyBjb21wdXRhdGlvbmFsbHkgZXhwZW5zaXZlIGZ1bmN0aW9uXG4gICAgICAgICAgICAgIC8vIHJlZ2VuZXJhdGUgdGhlIHBhdGNoIGFnYWluc3QgdGhlIGxhdGVzdCBjb250ZW50XG4gICAgICAgICAgICAgIGNvbnN0IGRpZmZQYXRjaCA9IGdldFBhdGNoKHNhdmVGdWxsQmlibGVDb250ZW50Py5maWxlbmFtZSwgc2F2ZWRCaWJsZVVzZm0sIGVkaXRlZEJpYmxlVXNmbSwgZmFsc2UpXG4gICAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IGRpZmZQYXRjaFxuICAgICAgICAgICAgICBmaWxlU2hhID0gcmVzdWx0cz8uc2hhXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN1Y2Nlc3MgPSBhd2FpdCB1cGxvYWRGdW5jdGlvbih1c2VyRWRpdEJyYW5jaE5hbWUsIF9zYXZlQ29udGVudCwgZmlsZVNoYSkgLy8gcHVzaCBjaGFuZ2UgdG8gc2VydmVyXG4gICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgZXJyb3IgPSAnc2F2aW5nIGNoYW5nZWQgc2NyaXB0dXJlIGZhaWxlZCBvbiBzZWNvbmQgYXR0ZW1wdCdcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmUgc3VjY2Vzc2Z1bCBvbiBzZWNvbmQgYXR0ZW1wdCcpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXJyb3IgJiYgc3VjY2VzcykgeyAvLyBpZiBubyBlcnJvciBtZXNzYWdlIGFuZCBzYXZlIHdhcyBhIHN1Y2Nlc3NcbiAgICAgICAgcmV0dXJuIF9zYXZlU3VjY2VzZnVsKCkgLy8gbm90aGluZyB0byBkb1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtICR7ZXJyb3IgfHwgJ3Vua25vd24gc2F2ZSBlcnJvcid9YClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtzdGFydFNhdmU6IGZhbHNlfSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGlmIChzdGFydFNhdmUpIHtcbiAgICAgIGlmICghZWRpdEJyYW5jaFJlYWR5KSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBlZGl0IGJyYW5jaCBub3QgeWV0IGNyZWF0ZWRgKVxuICAgICAgfSBlbHNlIGlmICghc2hhKSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBzYXZlIHNoYSBub3QgeWV0IHJlYWR5YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjYWxsaW5nIF9zYXZlRWRpdCgpYClcbiAgICAgICAgc2V0Q2FyZHNTYXZpbmcocHJldkNhcmRzU2F2aW5nID0+IFsuLi5wcmV2Q2FyZHNTYXZpbmcsIGNhcmRSZXNvdXJjZUlkXSlcbiAgICAgICAgX3NhdmVFZGl0KClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzdGFydFNhdmUsIGVkaXRCcmFuY2hSZWFkeSwgc2hhXSlcblxuICAvKipcbiAgICogY29udmVydCB1cGRhdGVkVmVyc2VPYmplY3RzIHRvIFVTRk0gYW5kIG1lcmdlIGludG8gdGhlIGJpYmxlVXNmbVxuICAgKiBAcGFyYW0ge3N0cmluZ30gYmlibGVVc2ZtIC0gVVNGTSBvZiBiaWJsZVxuICAgKiBAcGFyYW0ge29iamVjdH0gcmVmIC0gcmVmZXJlbmNlIG9mIHZlcnNlIHRvIG1lcmdlIGluXG4gICAqIEBwYXJhbSB7b2JqZWN0W119IHVwZGF0ZWRWZXJzZU9iamVjdHMgLSBuZXcgdmVyc2UgaW4gdmVyc2VPYmplY3QgZm9ybWF0XG4gICAqIEBwYXJhbSB7bnVtYmVyfSBjYXJkTnVtXG4gICAqL1xuICBmdW5jdGlvbiBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtLCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW06IG51bWJlcikge1xuICAgIGxldCBuZXdVc2ZtXG4gICAgY29uc3QgY2hhcHRlckNodW5rcyA9IGJpYmxlVXNmbT8uc3BsaXQoJ1xcXFxjICcpXG4gICAgY29uc3QgY2hhcHRlckluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy5jaGFwdGVyLCBjaGFwdGVyQ2h1bmtzKVxuXG4gICAgaWYgKGNoYXB0ZXJJbmRleCA+PSAwKSB7XG4gICAgICBjb25zdCBjdXJyZW50Q2hhcHRlciA9IGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XVxuICAgICAgbGV0IHZlcnNlQ2h1bmtzID0gY3VycmVudENoYXB0ZXIuc3BsaXQoJ1xcXFx2ICcpXG4gICAgICBjb25zdCB2ZXJzZUluZGV4ID0gZmluZFJlZkluQXJyYXkocmVmPy52ZXJzZSwgdmVyc2VDaHVua3MpXG4gICAgICBjb25zdCBmcm9udE1hdHRlciA9IHJlZj8udmVyc2UgPT09ICdmcm9udCdcblxuICAgICAgaWYgKGZyb250TWF0dGVyIHx8IHZlcnNlSW5kZXggPj0gMCkge1xuICAgICAgICBjb25zdCBuZXdWZXJzZVVzZm0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0odXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gbmV3IFVTRk0gZm9yIGNhcmQgJHtjYXJkTnVtfSwgdmVyc2UgJHtyZWY/LnZlcnNlfTp9IC0gJHtuZXdWZXJzZVVzZm0uc3Vic3RyaW5nKDAsIDEwMCl9YClcbiAgICAgICAgaWYgKGZyb250TWF0dGVyKSB7IC8vIGZyb250IG1hdHRlciBnb2VzIGJlZm9yZSBmaXJzdCB2ZXJzZVxuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbMF1cbiAgICAgICAgICBjb25zdCBwcmVmaXhMZW4gPSBvbGRWZXJzZS5pbmRleE9mKCdcXG4nKSAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgZnJvbnQgbWF0dGVyIHRleHRcbiAgICAgICAgICB2ZXJzZUNodW5rc1swXSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCBwcmVmaXhMZW4gKyAxKSArIG5ld1ZlcnNlVXNmbVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IG9sZFZlcnNlID0gdmVyc2VDaHVua3NbdmVyc2VJbmRleF1cbiAgICAgICAgICBjb25zdCB2ZXJzZU51bUxlbiA9IChyZWY/LnZlcnNlICsgJycpLmxlbmd0aCAvLyBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgdmVyc2UgdGV4dFxuICAgICAgICAgIHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdID0gb2xkVmVyc2Uuc3Vic3RyaW5nKDAsIHZlcnNlTnVtTGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDaGFwdGVyID0gdmVyc2VDaHVua3Muam9pbignXFxcXHYgJylcbiAgICAgICAgY2hhcHRlckNodW5rc1tjaGFwdGVySW5kZXhdID0gbmV3Q2hhcHRlclxuICAgICAgICBuZXdVc2ZtID0gY2hhcHRlckNodW5rcy5qb2luKCdcXFxcYyAnKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV3VXNmbVxuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gZm9yIGVhY2ggdW5zYXZlZCBjaGFuZ2UsIGNhbGwgaW50byBzY3JpcHR1cmVQYW5lIHRvIGdldCBsYXRlc3QgY2hhbmdlcyBmb3IgdmVyc2UgdG8gc2F2ZVxuICAgIGFzeW5jIGZ1bmN0aW9uIGdldFJlYWR5Rm9yU2F2ZSgpIHtcbiAgICAgIGlmIChzYXZlQ2xpY2tlZCkge1xuICAgICAgICBsZXQgY3JlYXRlRWRpdEJyYW5jaCA9ICFfdXNpbmdVc2VyQnJhbmNoXG5cbiAgICAgICAgaWYgKCFjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIGFscmVhZHkgdXNpbmcgdGhlIHVzZXIgYnJhbmNoXG4gICAgICAgICAgaWYgKHdvcmtpbmdSZXNvdXJjZUJyYW5jaCAhPT0gdXNlckVkaXRCcmFuY2hOYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIHN0YXRlIGNvbmZsaWN0IC0gc2hvdWxkIGJlIGluIHVzZXIgYnJhbmNoICR7dXNlckVkaXRCcmFuY2hOYW1lfSwgYnV0IGFjdHVhbGx5IHVzaW5nICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBjcmVhdGVFZGl0QnJhbmNoID0gdHJ1ZVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gYWxyZWFkeSB1c2luZyBlZGl0IGJyYW5jaDogJHt3b3JraW5nUmVzb3VyY2VCcmFuY2h9YClcbiAgICAgICAgICAgIHNldFN0YXRlKHsgZWRpdEJyYW5jaFJlYWR5OiB0cnVlIH0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNyZWF0ZUVkaXRCcmFuY2gpIHsgLy8gaWYgbm90IHlldCB1c2luZyB0aGUgdXNlciBicmFuY2gsIGNyZWF0ZSBpdFxuICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBjcmVhdGluZyBlZGl0IGJyYW5jaGApXG4gICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgICAgICAgc2hhOiBudWxsLFxuICAgICAgICAgIH0pIC8vIHdlIHdpbGwgbmVlZCBhIG5ldyBzaGEgZm9yIGJvb2svYnJhbmNoXG5cbiAgICAgICAgICBjb25zdCBicmFuY2ggPSBhd2FpdCBzdGFydEVkaXRCcmFuY2goKVxuXG4gICAgICAgICAgaWYgKGJyYW5jaCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGVkaXQgYnJhbmNoIGNyZWF0ZWRgKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBlZGl0QnJhbmNoUmVhZHk6IHRydWUsXG4gICAgICAgICAgICAgIHJlYWR5Rm9yRmV0Y2g6IHRydWUsXG4gICAgICAgICAgICAgIHJlZjogYnJhbmNoLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBlcnJvciBjcmVhdGluZyBlZGl0IGJyYW5jaCcpXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2ggJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGdldHRpbmcgdmVyc2UgY2hhbmdlc2ApXG4gICAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgICBpZiAodW5zYXZlZENhcmRJbmRpY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgYmlibGVVc2ZtSW5pdGlhbCA9IGdldEN1cnJlbnRCb29rKHNjcmlwdHVyZUNvbmZpZywgYm9va0lkKSAvLyBnZXQgb3JpZ2luYWwgVVNGTVxuICAgICAgICAgIGxldCBiaWJsZVVzZm1OZXcgPSBiaWJsZVVzZm1Jbml0aWFsIC8vIG1ha2UgYSBjb3B5IHRvIGVkaXRcbiAgICAgICAgICBsZXQgbWVyZ2VGYWlsID0gZmFsc2VcblxuICAgICAgICAgIGlmIChiaWJsZVVzZm1Jbml0aWFsKSB7XG4gICAgICAgICAgICBsZXQgY2FyZE51bSA9IDBcblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgYmlibGVVc2ZtTmV3KSB7IC8vIGp1c3QgcmVwbGFjZSB2ZXJzZVxuICAgICAgICAgICAgICAgICAgbmV3VXNmbSA9IG1lcmdlVmVyc2VPYmplY3RzSW50b0JpYmxlVXNmbShiaWJsZVVzZm1OZXcsIHJlZiwgdXBkYXRlZFZlcnNlT2JqZWN0cywgY2FyZE51bSlcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAobmV3VXNmbSkge1xuICAgICAgICAgICAgICAgICAgYmlibGVVc2ZtTmV3ID0gbmV3VXNmbVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICBtZXJnZUZhaWwgPSB0cnVlXG4gICAgICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBzYXZlRGlmZlBhdGNoID0gZmFsc2UgLy8gaWYgdHJ1ZSB0aGVuIHdlIHdpbGwgc2VuZCB1cCBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHRoZSB3aG9sZSBib29rXG4gICAgICAgICAgbGV0IF9zYXZlRnVsbEJpYmxlQ29udGVudCA9IG51bGxcbiAgICAgICAgICBsZXQgX3NhdmVDb250ZW50ID0gYmlibGVVc2ZtTmV3XG5cbiAgICAgICAgICBpZiAobWVyZ2VGYWlsKSB7IC8vIGlmIHdlIGZhaWxlZCB0byBtZXJnZSwgZmFsbGJhY2sgdG8gYnJ1dGUgZm9yY2UgdmVyc2Ugb2JqZWN0cyB0byBVU0ZNXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCR7Y2FyZE51bX0pIC0gdmVyc2Ugbm90IGZvdW5kLCBmYWxsaW5nIGJhY2sgdG8gaW5zZXJ0aW5nIHZlcnNlIG9iamVjdGApXG4gICAgICAgICAgICBsZXQgbmV3Qm9va0pzb25cblxuICAgICAgICAgICAgZm9yIChjb25zdCBjYXJkSW5kZXggb2YgdW5zYXZlZENhcmRJbmRpY2VzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGNhcmROdW0gPSBwYXJzZUludChjYXJkSW5kZXgpXG4gICAgICAgICAgICAgIGNvbnN0IHsgZ2V0Q2hhbmdlcywgc3RhdGUgfSA9IHVuc2F2ZWRDaGFuZ2VzTGlzdFtjYXJkTnVtXVxuXG4gICAgICAgICAgICAgIGlmIChnZXRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1VzZm1cbiAgICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAgICAgICAgICAgICByZWYsXG4gICAgICAgICAgICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgICAgICAgICAgIH0gPSBnZXRDaGFuZ2VzKHN0YXRlKVxuXG4gICAgICAgICAgICAgICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIW5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXRWZXJzZU9iamVjdHNfID0gbnVsbFxuXG4gICAgICAgICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXdWZXJzZVRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZSh1cGRhdGVkVmVyc2VPYmplY3RzLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV3Qm9va0pzb24gPSB0YXJnZXRWZXJzZU9iamVjdHNfICYmIHNjcmlwdHVyZUNvbmZpZz8udXBkYXRlVmVyc2UocmVmLmNoYXB0ZXIsIHJlZi52ZXJzZSwge3ZlcnNlT2JqZWN0czogdGFyZ2V0VmVyc2VPYmplY3RzX30pXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IHVzZm1qcy50b1VTRk0obmV3Qm9va0pzb24sIHsgZm9yY2VkTmV3TGluZXM6IHRydWUgfSlcbiAgICAgICAgICB9IGVsc2UgeyAvLyBpZiBvbmx5IGNoYW5nZWQgYSBmZXcgdmVyc2VzLCB3ZSB3aWxsIGp1c3QgbWFrZSBhIGRpZmZwYXRjaCBpbnN0ZWFkIG9mIHNlbmRpbmcgdGhlIHdob2xlIGJvb2tcbiAgICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ubmFtZSAvLyBMaWtlIFwiNTctVElULnVzZm1cIlxuICAgICAgICAgICAgaWYgKGZpbGVuYW1lICYmIGJpYmxlVXNmbU5ldyAmJiBiaWJsZVVzZm1Jbml0aWFsKSB7IC8vIG1ha2Ugc3VyZSB3ZSBoYXZlIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIG1ha2UgYSBwYXRjaFxuICAgICAgICAgICAgICBpZiAoYmlibGVVc2ZtSW5pdGlhbCA9PT0gYmlibGVVc2ZtTmV3KSB7IC8vIGlmIG5vIGRhdGEgY2hhbmdlLCB0aGVuIHNraXAgc2F2ZSBiZWNhdXNlIERDUyBjcmFzaGVzIG9uIGFuIGVtcHR5IHBhdGNoXG4gICAgICAgICAgICAgICAgY29uc29sZS53YXJuKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHRoZXJlIGlzIG5vdGhpbmcgdG8gc2F2ZSwgc2tpcHBpbmdgKVxuICAgICAgICAgICAgICAgIHNldFN0YXRlKHsgc2F2ZUNsaWNrZWQ6IGZhbHNlIH0pXG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3QgZGlmZlBhdGNoID0gZ2V0UGF0Y2goZmlsZW5hbWUsIGJpYmxlVXNmbUluaXRpYWwsIGJpYmxlVXNmbU5ldywgZmFsc2UpXG4gICAgICAgICAgICAgIHNhdmVEaWZmUGF0Y2ggPSB0cnVlXG4gICAgICAgICAgICAgIF9zYXZlQ29udGVudCA9IGRpZmZQYXRjaCAvLyByZXBsYWNlIHdob2xlIGJvb2sgY29udGVudCB3aXRoIGp1c3QgcGF0Y2ggZGF0YSAobXVjaCBmYXN0ZXIgdXBsb2FkcylcbiAgICAgICAgICAgICAgX3NhdmVGdWxsQmlibGVDb250ZW50ID0geyAgLy8ga2VlcCB0cmFjayBvZiBwYXRjaCBkYXRhIGluIGNhc2Ugd2UgbmVlZCB0byByZXRyeSBzYXZlXG4gICAgICAgICAgICAgICAgZmlsZW5hbWUsXG4gICAgICAgICAgICAgICAgaW5pdGlhbDogYmlibGVVc2ZtSW5pdGlhbCxcbiAgICAgICAgICAgICAgICBuZXc6IGJpYmxlVXNmbU5ldyxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChiaWJsZVVzZm1OZXcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBuZXcgVVNGTTogJHtiaWJsZVVzZm1OZXcuc3Vic3RyaW5nKDAsIDEwMCl9Li4uYClcbiAgICAgICAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBbLi4ucHJldkNhcmRzU2F2aW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgICAgICAgICBzZXRTdGF0ZSh7XG4gICAgICAgICAgICAgIHNhdmVDb250ZW50OiBfc2F2ZUNvbnRlbnQsXG4gICAgICAgICAgICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2F2ZURpZmZQYXRjaCxcbiAgICAgICAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IF9zYXZlRnVsbEJpYmxlQ29udGVudCxcbiAgICAgICAgICAgICAgc3RhcnRTYXZlOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBFcnJvciByZXRyaWV2aW5nIHRoZSBjb3JyZWN0IGJvb2sgZGF0YTogaW5jb3JyZWN0IGJvb2sgJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWApXG4gICAgICAgICAgICBvblJlc291cmNlRXJyb3IgJiYgb25SZXNvdXJjZUVycm9yKG51bGwsIGZhbHNlLCBudWxsLCBgRXJyb3IgcmV0cmlldmluZyB0aGUgY29ycmVjdCBib29rIGRhdGEgJHtsYW5ndWFnZUlkX31fJHtyZXNvdXJjZUlkfWAsIHRydWUpXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGdldFJlYWR5Rm9yU2F2ZSgpXG4gIH0sIFtzYXZlQ2xpY2tlZF0pXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCB7IGNoYXB0ZXIgfSA9IF9yZWZlcmVuY2UgfHwge31cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuICAgIGxldCBuZXdTZWxlY3Rpb25zID0gbmV3IE1hcCgpXG4gICAgbGV0IHVwZGF0ZVNlbGVjdGlvbnMgPSBmYWxzZVxuICAgIGNvbnN0IF9tYXAgPSBuZXdTZWxlY3Rpb25zXG4gICAgY29uc3Qgb3JpZ2luYWxCb29rSWQgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5ib29rSWRcbiAgICBjb25zdCBib29rVmVyc2VPYmplY3QgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVyc1xuICAgIGxldCBuZXdTZWxlY3RlZFF1b3RlID0gbnVsbFxuXG4gICAgLy8gaWYgd2UgaGF2ZSBldmVyeXRoaW5nIHdlIG5lZWQgdG8gY2FsY3VsYXRlIHNlbGVjdGlvbnNcbiAgICBpZiAoX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoICYmXG4gICAgICBib29rVmVyc2VPYmplY3QgJiZcbiAgICAgIChib29rSWQgPT09IG9yaWdpbmFsQm9va0lkKSAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0W2NoYXB0ZXJdICYmIC8vIHdlIG5lZWQgdG8gaGF2ZSBkYXRhIGZvciBjaGFwdGVyXG4gICAgICBzZWxlY3RlZFF1b3RlPy5xdW90ZVxuICAgICkge1xuICAgICAgLy8gaWYgcXVvdGUgaXMgZGlmZmVyZW50IHRoYW4gbGFzdFxuICAgICAgaWYgKCFpc0VxdWFsKGxhc3RTZWxlY3RlZFF1b3RlLCBzZWxlY3RlZFF1b3RlKSB8fFxuICAgICAgICAhaXNFcXVhbCh2ZXJzZXNGb3JSZWYsIF92ZXJzZXNGb3JSZWYpKSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVmVyc2VzID0ge31cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0ZSA9IHt9IC8vIGtlZXAgdHJhY2sgb2YgdmVyc2Ugc3Vic3RpdHV0aW9uc1xuICAgICAgICBsZXQgc3RhcnRWZXJzZSA9IF92ZXJzZXNGb3JSZWZbMF0udmVyc2VcblxuICAgICAgICBpZiAodHlwZW9mIHN0YXJ0VmVyc2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgc3RhcnRWZXJzZSA9IHBhcnNlSW50KHN0YXJ0VmVyc2UpXG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbGFzdFZlcnNlID0gc3RhcnRWZXJzZVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsID0gX3ZlcnNlc0ZvclJlZi5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgICAgICBjb25zdCB2ZXJzZVJlZiA9IF92ZXJzZXNGb3JSZWZbaV1cbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjaGFwdGVyLFxuICAgICAgICAgICAgdmVyc2UsXG4gICAgICAgICAgfSA9IHZlcnNlUmVmXG4gICAgICAgICAgLy8gVFJJQ0tZIC0gd2UgcmVtYXAgdmVyc2VzIGluIHJlZmVyZW5jZSByYW5nZSB0byBhIGxpbmVhciBzZXJpZXMgb2YgdmVyc2VzIHNvIHZlcnNlIHNwYW5zIGRvbid0IGNob2tlIGdldFF1b3RlTWF0Y2hlc0luQm9va1JlZlxuICAgICAgICAgIGxldCBfdmVyc2UgPSBzdGFydFZlcnNlICsgaVxuICAgICAgICAgIGxhc3RWZXJzZSA9IF92ZXJzZVxuICAgICAgICAgIHN1YnN0aXR1dGVbYCR7Y2hhcHRlcn06JHtfdmVyc2V9YF0gPSBgJHtjaGFwdGVyfToke3ZlcnNlfWBcblxuICAgICAgICAgIGlmICghb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl0pIHtcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdID0ge31cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgdmVyc2VPYmplY3RzID0gW11cblxuICAgICAgICAgIGlmICgodHlwZW9mIHZlcnNlID09PSAnc3RyaW5nJykgJiYgKHZlcnNlLmluY2x1ZGVzKCctJykpKSB7XG4gICAgICAgICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXMoYm9va1ZlcnNlT2JqZWN0LCBgJHtjaGFwdGVyfToke3ZlcnNlfWApXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgdmVyc2VJdGVtIG9mIHZlcnNlcykge1xuICAgICAgICAgICAgICBjb25zdCB2byA9IHZlcnNlSXRlbS52ZXJzZURhdGEudmVyc2VPYmplY3RzXG4gICAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IHZlcnNlT2JqZWN0cy5jb25jYXQodm8pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXVt2ZXJzZV0/LnZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh2ZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICAgIHZlcnNlT2JqZWN0cyA9IGNsZWFudXBWZXJzZU9iamVjdHModmVyc2VPYmplY3RzKVxuICAgICAgICAgICAgb3JpZ2luYWxWZXJzZXNbY2hhcHRlcl1bX3ZlcnNlXSA9IHsgdmVyc2VPYmplY3RzIH1cbiAgICAgICAgICAgIF9tYXAuc2V0KGAke2NoYXB0ZXJ9OiR7dmVyc2V9YCwgdmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNyZWF0ZSBuZXcgcmVmZXJlbmNlIHJhbmdlIGZvciBuZXcgbGluZWFyIHZlcnNlIHJhbmdlXG4gICAgICAgIGNvbnN0IFtjaGFwdGVyXSA9IHNlbGVjdGVkUXVvdGU/LnJlZmVyZW5jZT8uc3BsaXQoJzonKVxuICAgICAgICBsZXQgc3ViUmVmID0gYCR7Y2hhcHRlcn06JHtzdGFydFZlcnNlfWBcblxuICAgICAgICBpZiAobGFzdFZlcnNlICE9IHN0YXJ0VmVyc2UpIHtcbiAgICAgICAgICBzdWJSZWYgKz0gYC0ke2xhc3RWZXJzZX1gXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBxdW90ZU1hdGNoZXMgPSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWYoe1xuICAgICAgICAgIGJvb2tPYmplY3Q6IG9yaWdpbmFsVmVyc2VzLFxuICAgICAgICAgIHJlZjogc3ViUmVmLFxuICAgICAgICAgIHF1b3RlOiBzZWxlY3RlZFF1b3RlPy5xdW90ZSxcbiAgICAgICAgICBvY2N1cnJlbmNlOiBzZWxlY3RlZFF1b3RlPy5vY2N1cnJlbmNlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbnMgPSBuZXcgTWFwKClcblxuICAgICAgICBpZiAocXVvdGVNYXRjaGVzPy5zaXplKSB7XG4gICAgICAgICAgcXVvdGVNYXRjaGVzLmZvckVhY2goKHdvcmRzLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IF9rZXkgPSBzdWJzdGl0dXRlW2tleV1cblxuICAgICAgICAgICAgc2VsZWN0aW9ucy5zZXQoX2tleSwgd29yZHMubWFwKHdvcmQgPT4gKFxuICAgICAgICAgICAgICB7IC4uLndvcmQsIHRleHQ6IGNvcmUubm9ybWFsaXplU3RyaW5nKHdvcmQudGV4dCkgfVxuICAgICAgICAgICAgKSkpXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICBuZXdTZWxlY3Rpb25zID0gc2VsZWN0aW9uc1xuICAgICAgICBuZXdTZWxlY3RlZFF1b3RlID0gc2VsZWN0ZWRRdW90ZVxuICAgICAgICB1cGRhdGVTZWxlY3Rpb25zID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG5ld1N0YXRlOiBhbnkgPSB7fVxuXG4gICAgLy8gdXBkYXRlIHN0YXRlcyB0aGF0IGhhdmUgY2hhbmdlZFxuICAgIGlmICghYXJlTWFwc1RoZVNhbWUodmVyc2VPYmplY3RzTWFwLCBfbWFwKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VPYmplY3RzTWFwID0gX21hcFxuICAgIH1cblxuICAgIGNvbnN0IGJvb2tzTm90U2FtZSA9IHJlZmVyZW5jZT8ucHJvamVjdElkICE9PSBjdXJyZW50UmVmZXJlbmNlPy5wcm9qZWN0SWRcblxuICAgIGlmIChib29rc05vdFNhbWUgfHwgIWFyZVZlcnNlc1NhbWUodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgbmV3U3RhdGUudmVyc2VzRm9yUmVmID0gX3ZlcnNlc0ZvclJlZlxuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgIH1cblxuICAgIGlmIChuZXdTZWxlY3RlZFF1b3RlKSB7XG4gICAgICBuZXdTdGF0ZS5sYXN0U2VsZWN0ZWRRdW90ZSA9IG5ld1NlbGVjdGVkUXVvdGVcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlU2VsZWN0aW9ucykge1xuICAgICAgaWYgKCFhcmVNYXBzVGhlU2FtZShzZWxlY3Rpb25zIHx8IChuZXcgTWFwKCkpLCBuZXdTZWxlY3Rpb25zKSkge1xuICAgICAgICBuZXdTdGF0ZS5zZWxlY3Rpb25zID0gbmV3U2VsZWN0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChPYmplY3Qua2V5cyhuZXdTdGF0ZSkubGVuZ3RoKSB7XG4gICAgICBzZXRTdGF0ZShuZXdTdGF0ZSlcbiAgICB9XG4gIH0sIFtcbiAgICBvd25lcixcbiAgICByZXNvdXJjZUlkLFxuICAgIGJvb2tJZCxcbiAgICBsYW5ndWFnZUlkXyxcbiAgICBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZixcbiAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICAgIHNlbGVjdGVkUXVvdGUsXG4gIF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gY2xlYXIgc2V0dGluZ3Mgb24gdmVyc2UgY2hhbmdlXG4gICAgc2V0U3RhdGUoe1xuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiBudWxsLFxuICAgICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICAgIGhhdmVVbnNhdmVkQ2hhbmdlczogZmFsc2UsXG4gICAgfSlcbiAgfSwgW19yZWZlcmVuY2VdKVxuXG4gIGNvbnN0IHVwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1cyA9IChyZWZlcmVuY2UsIGFsaWduZWQpID0+IHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7XG4gICAgICAuLi5wcmV2U3RhdGUsXG4gICAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IHsgLi4ucHJldlN0YXRlLnZlcnNlc0FsaWdubWVudFN0YXR1cywgW2Ake3JlZmVyZW5jZS5jaGFwdGVyfToke3JlZmVyZW5jZS52ZXJzZX1gXTogYWxpZ25lZCB9LFxuICAgIH0pKVxuICB9XG5cbiAgbGV0IF92ZXJzZXNGb3JSZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZlxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCkge1xuICAgICAgY29uc3QgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9ID0gc2NyaXB0dXJlQ29uZmlnIHx8IHt9XG4gICAgICBjb25zb2xlLmxvZyhgU2NyaXB0dXJlQ2FyZC5fdmVyc2VzRm9yUmVmIGNoYW5nZWRgLCB7IHJlZmVyZW5jZSwgcmVzb3VyY2VMaW5rIH0pXG4gICAgfVxuICB9LCBbX3ZlcnNlc0ZvclJlZl0pXG5cbiAgaWYgKCFfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHsgLy8gaWYgZW1wdHkgb2YgcmVmZXJlbmNlcywgY3JlYXRlIHNpbmdsZSBlbXB0eSByZWZlcmVuY2VcbiAgICBfdmVyc2VzRm9yUmVmID0gW3sgLi4ucmVmZXJlbmNlIH1dXG4gIH1cblxuICBjb25zdCByZW5kZXJlZFNjcmlwdHVyZVBhbmVzID0gX3ZlcnNlc0ZvclJlZj8ubWFwKChfY3VycmVudFZlcnNlRGF0YSwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBpbml0aWFsVmVyc2VPYmplY3RzID0gX2N1cnJlbnRWZXJzZURhdGE/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzIHx8IFtdXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHsgY2hhcHRlciwgdmVyc2UgfSA9IF9jdXJyZW50VmVyc2VEYXRhIHx8IHt9XG4gICAgY29uc3QgcHJvamVjdElkID0gY3VycmVudFJlZmVyZW5jZT8ucHJvamVjdElkIHx8IHJlZmVyZW5jZT8ucHJvamVjdElkXG4gICAgY29uc3QgX3JlZmVyZW5jZSA9IHtcbiAgICAgIC4uLl92ZXJzZXNGb3JSZWYsXG4gICAgICBjaGFwdGVyLFxuICAgICAgcHJvamVjdElkLFxuICAgICAgdmVyc2UsXG4gICAgfVxuICAgIGNvbnN0IF9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnID0ge1xuICAgICAgLi4uc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyxcbiAgICAgIGN1cnJlbnRJbmRleDogaW5kZXgsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgcmVmZXJlbmNlOiBfcmVmZXJlbmNlLFxuICAgICAgaXNOZXdUZXN0YW1lbnQsXG4gICAgfVxuXG4gICAgbGV0IGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IGZhbHNlXG5cbiAgICBpZiAodmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCkge1xuICAgICAgaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50ID0gdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC5jaGFwdGVyID09IGNoYXB0ZXIgJiYgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudC52ZXJzZSA9PSB2ZXJzZVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8U2NyaXB0dXJlUGFuZVxuICAgICAgICB7Li4uc2NyaXB0dXJlQ29uZmlnfVxuICAgICAgICBjb250ZW50U3R5bGU9e2NvbnRlbnRTdHlsZX1cbiAgICAgICAgY3VycmVudEluZGV4PXtpbmRleH1cbiAgICAgICAgZGV0ZXJtaW5pbmdCcmFuY2g9eyFyZWFkeUZvckZldGNofVxuICAgICAgICBkaXJlY3Rpb249e2RpcmVjdGlvbn1cbiAgICAgICAgZGlzYWJsZVdvcmRQb3BvdmVyPXtkaXNhYmxlV29yZFBvcG92ZXJffVxuICAgICAgICBmb250U2l6ZT17Zm9udFNpemV9XG4gICAgICAgIGdldExleGljb25EYXRhPXtnZXRMZXhpY29uRGF0YX1cbiAgICAgICAgaXNOVD17aXNOVF99XG4gICAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudD17aXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50fVxuICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICBvbkFsaWdubWVudEZpbmlzaD17KCkgPT4gc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiBudWxsIH0pfVxuICAgICAgICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPXtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzfVxuICAgICAgICByZWZTdHlsZT17cmVmU3R5bGV9XG4gICAgICAgIHJlZmVyZW5jZT17X3JlZmVyZW5jZX1cbiAgICAgICAgc2F2aW5nPXtzdGFydFNhdmV9XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZz17X3NjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWd9XG4gICAgICAgIHNldFdvcmRBbGlnbmVyU3RhdHVzPXtzZXRXb3JkQWxpZ25lclN0YXR1c31cbiAgICAgICAgc2VydmVyPXtzZXJ2ZXJ9XG4gICAgICAgIHRyYW5zbGF0ZT17dHJhbnNsYXRlfVxuICAgICAgICB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXM9e3VwZGF0ZVZlcnNlc0FsaWdubWVudFN0YXR1c31cbiAgICAgIC8+XG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUFsaWduQnV0dG9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID4gMSkge1xuICAgICAgc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IHRydWUgfSlcbiAgICB9IGVsc2UgaWYgKHZlcnNlc0ZvclJlZj8ubGVuZ3RoID09PSAxKSB7XG4gICAgICBzZXRTdGF0ZSh7IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlc0ZvclJlZlswXSB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG9uUmVuZGVyVG9vbGJhciA9ICh7IGl0ZW1zIH0pID0+IHtcbiAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi5pdGVtc11cblxuICAgIGxldCBhbGxWZXJzZXNBbGlnbmVkID0gZmFsc2VcblxuICAgIC8vIENoZWNrIGlmIGFsbCB2YWx1ZXMgaW4gdmVyc2VzQWxpZ25tZW50U3RhdHVzIGFyZSB0cnVlXG4gICAgaWYgKHZlcnNlc0FsaWdubWVudFN0YXR1cykge1xuICAgICAgYWxsVmVyc2VzQWxpZ25lZCA9IE9iamVjdC52YWx1ZXModmVyc2VzQWxpZ25tZW50U3RhdHVzKS5ldmVyeShhbGlnblN0YXR1cyA9PiBhbGlnblN0YXR1cyA9PT0gdHJ1ZSlcbiAgICB9XG5cbiAgICBsZXQgYWxpZ25JY29uID0gbnVsbFxuICAgIGxldCBhbGlnbkJ1dHRvblRleHQgPSAnJ1xuXG4gICAgaWYgKGFsbFZlcnNlc0FsaWduZWQpIHtcbiAgICAgIGFsaWduSWNvbiA9IDxSeExpbmsyIGlkPXtgdmFsaWRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyNCQkInIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIFZhbGlkJ1xuICAgIH0gZWxzZSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rQnJlYWsyIGlkPXtgaW52YWxpZF9hbGlnbm1lbnRfaWNvbl8ke3Jlc291cmNlSWR9YH0gY29sb3I9JyMwMDAnIC8+XG4gICAgICBhbGlnbkJ1dHRvblRleHQgPSAnQWxpZ25tZW50IGlzIEludmFsaWQnXG4gICAgfVxuXG4gICAgaWYgKHNldFdvcmRBbGlnbmVyU3RhdHVzICYmIHJlc291cmNlSWQgIT09ICdPUklHSU5BTF9TT1VSQ0UnKSB7XG4gICAgICBuZXdJdGVtcy5wdXNoKFxuICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgIGlkPXtgYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9XG4gICAgICAgICAga2V5PSdjaGVja2luZy1idXR0b24nXG4gICAgICAgICAgb25DbGljaz17aGFuZGxlQWxpZ25CdXR0b25DbGlja31cbiAgICAgICAgICB0aXRsZT17YWxpZ25CdXR0b25UZXh0fVxuICAgICAgICAgIGFyaWEtbGFiZWw9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBzdHlsZT17eyBjdXJzb3I6ICdwb2ludGVyJyB9fVxuICAgICAgICA+XG4gICAgICAgICAge2FsaWduSWNvbn1cbiAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIE9ubHkgc2hvdyB0aGUgdXBkYXRlIGZyb20gbWFpbiBidXR0b24gaWYgc2NyaXB0dXJlIGlzIG5vdCBvcmlnaW5hbCB0ZXh0LlxuICAgICF1c2luZ09yaWdpbmFsQmlibGUgJiYgbmV3SXRlbXMucHVzaChcbiAgICAgIDw+XG4gICAgICAgIDxVcGRhdGVCcmFuY2hCdXR0b24gey4uLnVwZGF0ZUJ1dHRvblByb3BzfSBpc0xvYWRpbmc9e2lzVXBkYXRlTG9hZGluZyB8fCBzdGFydFNhdmV9Lz5cbiAgICAgICAgPEVycm9yRGlhbG9nIHRpdGxlPXtkaWFsb2dUaXRsZX0gY29udGVudD17ZGlhbG9nTWVzc2FnZX0gb3Blbj17aXNFcnJvckRpYWxvZ09wZW59IG9uQ2xvc2U9e29uQ2xvc2VFcnJvckRpYWxvZ30gaXNMb2FkaW5nPXsgaXNVcGRhdGVMb2FkaW5nIHx8IHN0YXJ0U2F2ZSB9IGxpbms9e2RpYWxvZ0xpbmt9IGxpbmtUb29sdGlwPXtkaWFsb2dMaW5rVG9vbHRpcH0gLz5cbiAgICAgIDwvPlxuICAgIClcblxuICAgIHJldHVybiBuZXdJdGVtc1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCByZWZTdHJpbmcgPSB2ZXJzZU9iamVjdHNNYXAgPyBbLi4udmVyc2VPYmplY3RzTWFwLmtleXMoKV0uam9pbignOycpIDogJydcbiAgY29uc3Qgc2VsZWN0aW9uQm9va09iamVjdHMgPSBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5jaGFwdGVycztcblxuICByZXR1cm4gKFxuICAgIDxTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyXG4gICAgICBib29rT2JqZWN0PXtzZWxlY3Rpb25Cb29rT2JqZWN0cyB8fCB7fX1cbiAgICAgIG9jY3VycmVuY2U9e2ZpeE9jY3VycmVuY2Uoc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSl9XG4gICAgICBvblNlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnMgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnb25TZWxlY3Rpb25zJywgbmV3U2VsZWN0aW9ucylcbiAgICAgIH19XG4gICAgICBxdW90ZT17c2VsZWN0ZWRRdW90ZT8ucXVvdGUgfHwgJyd9XG4gICAgICByZWZTdHJpbmc9e3JlZlN0cmluZ31cbiAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgPlxuICAgICAgPENhcmRcbiAgICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgICAgdGl0bGU9e3NjcmlwdHVyZUxhYmVsfVxuICAgICAgICBzZXR0aW5nc1RpdGxlPXtzY3JpcHR1cmVUaXRsZSArICcgU2V0dGluZ3MnfVxuICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgIGhlYWRlcnM9e2hlYWRlcnN9XG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgaXRlbUluZGV4PXtpdGVtSW5kZXh9XG4gICAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICAgIHNldEZvbnRTaXplPXtzZXRGb250U2l6ZX1cbiAgICAgICAgc2V0SXRlbUluZGV4PXtzZXRJdGVtSW5kZXh9XG4gICAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgICBzZXRNYXJrZG93blZpZXc9e3NldE1hcmtkb3duVmlld31cbiAgICAgICAgZ2V0Q3VzdG9tQ29tcG9uZW50PXtnZXRTY3JpcHR1cmVTZWxlY3Rvcn1cbiAgICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICAgIG9uTWVudUNsb3NlPXtvbk1lbnVDbG9zZX1cbiAgICAgICAgb25NaW5pbWl6ZT17b25NaW5pbWl6ZSA/ICgpID0+IG9uTWluaW1pemUoaWQsIHNjcmlwdHVyZVRpdGxlKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICA8L1NlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKiByZXBvIGJyYW5jaCBvciB0YWcgc3VjaCBhcyBtYXN0ZXIgKi9cbiAgYXBwUmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaW5kZXggZm9yIGN1cnJlbnQgYm9vayAoZS5nLiAnMDEnIGZvciAnZ2VuJykqL1xuICBib29rSW5kZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGlmIHRydWUgdGhlbiB3b3JkIGRhdGEgaG92ZXIgaXMgc2hvd24gKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIGdldCBsYW5ndWFnZSBkZXRhaWxzICovXG4gIGdldExhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIGh0dHAgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGZldGNoaW5nIHJlc291cmNlcywgZGVmYXVsdCBpcyAwICh2ZXJ5IGxvbmcgd2FpdCkgKi9cbiAgaHR0cENvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGh0bWwgaWRlbnRpZmllciB0byB1c2UgZm9yIGNhcmQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBtZXRob2QgdG8gZGV0ZXJtaW5lIGlmIE5UIG9yIE9UICovXG4gIGlzTlQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiB1c2VyLW5hbWUgKi9cbiAgbG9nZ2VkSW5Vc2VyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGNhbGxiYWNrIGlmIGVycm9yIGxvYWRpbmcgcmVzb3VyY2UsIHBhcmFtZXRlciByZXR1cm5lZCBhcmU6XG4gICAqICAgICh7c3RyaW5nfSBlcnJvck1lc3NhZ2UsIHtib29sZWFufSBpc0FjY2Vzc0Vycm9yLCB7b2JqZWN0fSByZXNvdXJjZVN0YXR1cylcbiAgICogICAgICAtIGlzQWNjZXNzRXJyb3IgLSBpcyB0cnVlIGlmIHRoaXMgd2FzIGFuIGVycm9yIHRyeWluZyB0byBhY2Nlc3MgZmlsZVxuICAgKiAgICAgIC0gcmVzb3VyY2VTdGF0dXMgLSBpcyBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHByb2JsZW1zIGZldGNoaW5nIHJlc291cmNlICovXG4gIG9uUmVzb3VyY2VFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aGUgb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2sgKi9cbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgcmVmZXJlbmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiBwcm9qZWN0SWQgKGJvb2tJRCkgdG8gdXNlICovXG4gICAgcHJvamVjdElkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgY2hhcHRlciBudW1iZXIgKi9cbiAgICBjaGFwdGVyOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCB2ZXJzZSBudW1iZXIgKi9cbiAgICB2ZXJzZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIH0pLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZUxpbmsgKi9cbiAgcmVzb3VyY2VMaW5rOiBQcm9wVHlwZXMuYW55LFxuICAvKipUaGlzIGlzIGN1cnJlbnRseSBzZWxlY3RlZCBxdW90ZSAqL1xuICBzZWxlY3RlZFF1b3RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogc2VydmVyIChlLmcuICdodHRwczovL2dpdC5kb29yNDMub3JnJykgKi9cbiAgc2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgbG9hZGluZyBzdGF0ZSAqL1xuICBzZXRBcmVSZXNvdXJjZXNMb2FkaW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSBzYXZpbmcgc3RhdGUqL1xuICBzZXRBcmVSZXNvdXJjZXNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgbWVyZ2Ugc3RhdHVzICovXG4gIHNldENhcmRzTG9hZGluZ01lcmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHVwZGF0ZSBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHNhdmluZyBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB3b3JkIGFsaWduZXIgc3RhdGUgKi9cbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdGl0bGUgZm9yIHNjcmlwdHVyZSBjYXJkICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgdGhlIGNhcmQncyBtZXJnZSBzdGF0ZSBpbiBhcHAgKi9cbiAgdXBkYXRlTWVyZ2VTdGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFTLEtBQUEsRUFBQVAsQ0FBQSxFQUFBaUIsVUFBQSxNQUFBQyxZQUFBLE1BQUFDLFFBQUEsU0FBQXBCLENBQUEsQ0FBQUQsQ0FBQSxXQUFBa0IsTUFBQSxtQkFBQWpCLENBQUEsSUFBQWlCLE1BQUEsWUFBQUEsT0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLFdBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLGdCQUFBb0IsS0FBQXJCLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUssQ0FBQSxHQUFBVixDQUFBLElBQUFBLENBQUEsQ0FBQUksU0FBQSxZQUFBbUIsU0FBQSxHQUFBdkIsQ0FBQSxHQUFBdUIsU0FBQSxFQUFBWCxDQUFBLEdBQUFULE1BQUEsQ0FBQXFCLE1BQUEsQ0FBQWQsQ0FBQSxDQUFBTixTQUFBLEdBQUFVLENBQUEsT0FBQVcsT0FBQSxDQUFBcEIsQ0FBQSxnQkFBQUUsQ0FBQSxDQUFBSyxDQUFBLGVBQUFILEtBQUEsRUFBQWlCLGdCQUFBLENBQUF6QixDQUFBLEVBQUFDLENBQUEsRUFBQVksQ0FBQSxNQUFBRixDQUFBLGFBQUFlLFNBQUExQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxtQkFBQTBCLElBQUEsWUFBQUMsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBNkIsSUFBQSxDQUFBOUIsQ0FBQSxFQUFBRSxDQUFBLGNBQUFELENBQUEsYUFBQTJCLElBQUEsV0FBQUMsR0FBQSxFQUFBNUIsQ0FBQSxRQUFBRCxDQUFBLENBQUFzQixJQUFBLEdBQUFBLElBQUEsTUFBQVMsQ0FBQSxxQkFBQUMsQ0FBQSxxQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQUMsQ0FBQSxnQkFBQVosVUFBQSxjQUFBYSxrQkFBQSxjQUFBQywyQkFBQSxTQUFBQyxDQUFBLE9BQUFwQixNQUFBLENBQUFvQixDQUFBLEVBQUExQixDQUFBLHFDQUFBMkIsQ0FBQSxHQUFBcEMsTUFBQSxDQUFBcUMsY0FBQSxFQUFBQyxDQUFBLEdBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBQSxDQUFBLENBQUFHLE1BQUEsUUFBQUQsQ0FBQSxJQUFBQSxDQUFBLEtBQUF2QyxDQUFBLElBQUFHLENBQUEsQ0FBQXlCLElBQUEsQ0FBQVcsQ0FBQSxFQUFBN0IsQ0FBQSxNQUFBMEIsQ0FBQSxHQUFBRyxDQUFBLE9BQUFFLENBQUEsR0FBQU4sMEJBQUEsQ0FBQWpDLFNBQUEsR0FBQW1CLFNBQUEsQ0FBQW5CLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBYyxDQUFBLFlBQUFNLHNCQUFBM0MsQ0FBQSxnQ0FBQTRDLE9BQUEsV0FBQTdDLENBQUEsSUFBQWtCLE1BQUEsQ0FBQWpCLENBQUEsRUFBQUQsQ0FBQSxZQUFBQyxDQUFBLGdCQUFBNkMsT0FBQSxDQUFBOUMsQ0FBQSxFQUFBQyxDQUFBLHNCQUFBOEMsY0FBQTlDLENBQUEsRUFBQUQsQ0FBQSxhQUFBZ0QsT0FBQTlDLENBQUEsRUFBQUssQ0FBQSxFQUFBRyxDQUFBLEVBQUFFLENBQUEsUUFBQUUsQ0FBQSxHQUFBYSxRQUFBLENBQUExQixDQUFBLENBQUFDLENBQUEsR0FBQUQsQ0FBQSxFQUFBTSxDQUFBLG1CQUFBTyxDQUFBLENBQUFjLElBQUEsUUFBQVosQ0FBQSxHQUFBRixDQUFBLENBQUFlLEdBQUEsRUFBQUUsQ0FBQSxHQUFBZixDQUFBLENBQUFQLEtBQUEsU0FBQXNCLENBQUEsZ0JBQUFrQixPQUFBLENBQUFsQixDQUFBLEtBQUExQixDQUFBLENBQUF5QixJQUFBLENBQUFDLENBQUEsZUFBQS9CLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsQ0FBQW9CLE9BQUEsRUFBQUMsSUFBQSxXQUFBbkQsQ0FBQSxJQUFBK0MsTUFBQSxTQUFBL0MsQ0FBQSxFQUFBUyxDQUFBLEVBQUFFLENBQUEsZ0JBQUFYLENBQUEsSUFBQStDLE1BQUEsVUFBQS9DLENBQUEsRUFBQVMsQ0FBQSxFQUFBRSxDQUFBLFFBQUFaLENBQUEsQ0FBQWtELE9BQUEsQ0FBQW5CLENBQUEsRUFBQXFCLElBQUEsV0FBQW5ELENBQUEsSUFBQWUsQ0FBQSxDQUFBUCxLQUFBLEdBQUFSLENBQUEsRUFBQVMsQ0FBQSxDQUFBTSxDQUFBLGdCQUFBZixDQUFBLFdBQUErQyxNQUFBLFVBQUEvQyxDQUFBLEVBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLENBQUFFLENBQUEsQ0FBQWUsR0FBQSxTQUFBM0IsQ0FBQSxFQUFBSyxDQUFBLG9CQUFBRSxLQUFBLFdBQUFBLE1BQUFSLENBQUEsRUFBQUksQ0FBQSxhQUFBZ0QsMkJBQUEsZUFBQXJELENBQUEsV0FBQUEsQ0FBQSxFQUFBRSxDQUFBLElBQUE4QyxNQUFBLENBQUEvQyxDQUFBLEVBQUFJLENBQUEsRUFBQUwsQ0FBQSxFQUFBRSxDQUFBLGdCQUFBQSxDQUFBLEdBQUFBLENBQUEsR0FBQUEsQ0FBQSxDQUFBa0QsSUFBQSxDQUFBQywwQkFBQSxFQUFBQSwwQkFBQSxJQUFBQSwwQkFBQSxxQkFBQTNCLGlCQUFBMUIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsUUFBQUUsQ0FBQSxHQUFBd0IsQ0FBQSxtQkFBQXJCLENBQUEsRUFBQUUsQ0FBQSxRQUFBTCxDQUFBLEtBQUEwQixDQUFBLFlBQUFxQixLQUFBLHNDQUFBL0MsQ0FBQSxLQUFBMkIsQ0FBQSxvQkFBQXhCLENBQUEsUUFBQUUsQ0FBQSxXQUFBSCxLQUFBLEVBQUFSLENBQUEsRUFBQXNELElBQUEsZUFBQWxELENBQUEsQ0FBQW1ELE1BQUEsR0FBQTlDLENBQUEsRUFBQUwsQ0FBQSxDQUFBd0IsR0FBQSxHQUFBakIsQ0FBQSxVQUFBRSxDQUFBLEdBQUFULENBQUEsQ0FBQW9ELFFBQUEsTUFBQTNDLENBQUEsUUFBQUUsQ0FBQSxHQUFBMEMsbUJBQUEsQ0FBQTVDLENBQUEsRUFBQVQsQ0FBQSxPQUFBVyxDQUFBLFFBQUFBLENBQUEsS0FBQW1CLENBQUEsbUJBQUFuQixDQUFBLHFCQUFBWCxDQUFBLENBQUFtRCxNQUFBLEVBQUFuRCxDQUFBLENBQUFzRCxJQUFBLEdBQUF0RCxDQUFBLENBQUF1RCxLQUFBLEdBQUF2RCxDQUFBLENBQUF3QixHQUFBLHNCQUFBeEIsQ0FBQSxDQUFBbUQsTUFBQSxRQUFBakQsQ0FBQSxLQUFBd0IsQ0FBQSxRQUFBeEIsQ0FBQSxHQUFBMkIsQ0FBQSxFQUFBN0IsQ0FBQSxDQUFBd0IsR0FBQSxFQUFBeEIsQ0FBQSxDQUFBd0QsaUJBQUEsQ0FBQXhELENBQUEsQ0FBQXdCLEdBQUEsdUJBQUF4QixDQUFBLENBQUFtRCxNQUFBLElBQUFuRCxDQUFBLENBQUF5RCxNQUFBLFdBQUF6RCxDQUFBLENBQUF3QixHQUFBLEdBQUF0QixDQUFBLEdBQUEwQixDQUFBLE1BQUFLLENBQUEsR0FBQVgsUUFBQSxDQUFBM0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsb0JBQUFpQyxDQUFBLENBQUFWLElBQUEsUUFBQXJCLENBQUEsR0FBQUYsQ0FBQSxDQUFBa0QsSUFBQSxHQUFBckIsQ0FBQSxHQUFBRixDQUFBLEVBQUFNLENBQUEsQ0FBQVQsR0FBQSxLQUFBTSxDQUFBLHFCQUFBMUIsS0FBQSxFQUFBNkIsQ0FBQSxDQUFBVCxHQUFBLEVBQUEwQixJQUFBLEVBQUFsRCxDQUFBLENBQUFrRCxJQUFBLGtCQUFBakIsQ0FBQSxDQUFBVixJQUFBLEtBQUFyQixDQUFBLEdBQUEyQixDQUFBLEVBQUE3QixDQUFBLENBQUFtRCxNQUFBLFlBQUFuRCxDQUFBLENBQUF3QixHQUFBLEdBQUFTLENBQUEsQ0FBQVQsR0FBQSxtQkFBQTZCLG9CQUFBMUQsQ0FBQSxFQUFBRSxDQUFBLFFBQUFHLENBQUEsR0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxFQUFBakQsQ0FBQSxHQUFBUCxDQUFBLENBQUFhLFFBQUEsQ0FBQVIsQ0FBQSxPQUFBRSxDQUFBLEtBQUFOLENBQUEsU0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxxQkFBQXBELENBQUEsSUFBQUwsQ0FBQSxDQUFBYSxRQUFBLGVBQUFYLENBQUEsQ0FBQXNELE1BQUEsYUFBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsRUFBQXlELG1CQUFBLENBQUExRCxDQUFBLEVBQUFFLENBQUEsZUFBQUEsQ0FBQSxDQUFBc0QsTUFBQSxrQkFBQW5ELENBQUEsS0FBQUgsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxPQUFBa0MsU0FBQSx1Q0FBQTFELENBQUEsaUJBQUE4QixDQUFBLE1BQUF6QixDQUFBLEdBQUFpQixRQUFBLENBQUFwQixDQUFBLEVBQUFQLENBQUEsQ0FBQWEsUUFBQSxFQUFBWCxDQUFBLENBQUEyQixHQUFBLG1CQUFBbkIsQ0FBQSxDQUFBa0IsSUFBQSxTQUFBMUIsQ0FBQSxDQUFBc0QsTUFBQSxZQUFBdEQsQ0FBQSxDQUFBMkIsR0FBQSxHQUFBbkIsQ0FBQSxDQUFBbUIsR0FBQSxFQUFBM0IsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxNQUFBdkIsQ0FBQSxHQUFBRixDQUFBLENBQUFtQixHQUFBLFNBQUFqQixDQUFBLEdBQUFBLENBQUEsQ0FBQTJDLElBQUEsSUFBQXJELENBQUEsQ0FBQUYsQ0FBQSxDQUFBZ0UsVUFBQSxJQUFBcEQsQ0FBQSxDQUFBSCxLQUFBLEVBQUFQLENBQUEsQ0FBQStELElBQUEsR0FBQWpFLENBQUEsQ0FBQWtFLE9BQUEsZUFBQWhFLENBQUEsQ0FBQXNELE1BQUEsS0FBQXRELENBQUEsQ0FBQXNELE1BQUEsV0FBQXRELENBQUEsQ0FBQTJCLEdBQUEsR0FBQTVCLENBQUEsR0FBQUMsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxJQUFBdkIsQ0FBQSxJQUFBVixDQUFBLENBQUFzRCxNQUFBLFlBQUF0RCxDQUFBLENBQUEyQixHQUFBLE9BQUFrQyxTQUFBLHNDQUFBN0QsQ0FBQSxDQUFBdUQsUUFBQSxTQUFBdEIsQ0FBQSxjQUFBZ0MsYUFBQWxFLENBQUEsUUFBQUQsQ0FBQSxLQUFBb0UsTUFBQSxFQUFBbkUsQ0FBQSxZQUFBQSxDQUFBLEtBQUFELENBQUEsQ0FBQXFFLFFBQUEsR0FBQXBFLENBQUEsV0FBQUEsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRSxVQUFBLEdBQUFyRSxDQUFBLEtBQUFELENBQUEsQ0FBQXVFLFFBQUEsR0FBQXRFLENBQUEsV0FBQXVFLFVBQUEsQ0FBQUMsSUFBQSxDQUFBekUsQ0FBQSxjQUFBMEUsY0FBQXpFLENBQUEsUUFBQUQsQ0FBQSxHQUFBQyxDQUFBLENBQUEwRSxVQUFBLFFBQUEzRSxDQUFBLENBQUE0QixJQUFBLG9CQUFBNUIsQ0FBQSxDQUFBNkIsR0FBQSxFQUFBNUIsQ0FBQSxDQUFBMEUsVUFBQSxHQUFBM0UsQ0FBQSxhQUFBeUIsUUFBQXhCLENBQUEsU0FBQXVFLFVBQUEsTUFBQUosTUFBQSxhQUFBbkUsQ0FBQSxDQUFBNEMsT0FBQSxDQUFBc0IsWUFBQSxjQUFBUyxLQUFBLGlCQUFBbEMsT0FBQTFDLENBQUEsUUFBQUEsQ0FBQSxXQUFBQSxDQUFBLFFBQUFFLENBQUEsR0FBQUYsQ0FBQSxDQUFBWSxDQUFBLE9BQUFWLENBQUEsU0FBQUEsQ0FBQSxDQUFBNEIsSUFBQSxDQUFBOUIsQ0FBQSw0QkFBQUEsQ0FBQSxDQUFBaUUsSUFBQSxTQUFBakUsQ0FBQSxPQUFBNkUsS0FBQSxDQUFBN0UsQ0FBQSxDQUFBOEUsTUFBQSxTQUFBdkUsQ0FBQSxPQUFBRyxDQUFBLFlBQUF1RCxLQUFBLGFBQUExRCxDQUFBLEdBQUFQLENBQUEsQ0FBQThFLE1BQUEsT0FBQXpFLENBQUEsQ0FBQXlCLElBQUEsQ0FBQTlCLENBQUEsRUFBQU8sQ0FBQSxVQUFBMEQsSUFBQSxDQUFBeEQsS0FBQSxHQUFBVCxDQUFBLENBQUFPLENBQUEsR0FBQTBELElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFNBQUFBLElBQUEsQ0FBQXhELEtBQUEsR0FBQVIsQ0FBQSxFQUFBZ0UsSUFBQSxDQUFBVixJQUFBLE9BQUFVLElBQUEsWUFBQXZELENBQUEsQ0FBQXVELElBQUEsR0FBQXZELENBQUEsZ0JBQUFxRCxTQUFBLENBQUFkLE9BQUEsQ0FBQWpELENBQUEsa0NBQUFvQyxpQkFBQSxDQUFBaEMsU0FBQSxHQUFBaUMsMEJBQUEsRUFBQTlCLENBQUEsQ0FBQW9DLENBQUEsbUJBQUFsQyxLQUFBLEVBQUE0QiwwQkFBQSxFQUFBakIsWUFBQSxTQUFBYixDQUFBLENBQUE4QiwwQkFBQSxtQkFBQTVCLEtBQUEsRUFBQTJCLGlCQUFBLEVBQUFoQixZQUFBLFNBQUFnQixpQkFBQSxDQUFBMkMsV0FBQSxHQUFBN0QsTUFBQSxDQUFBbUIsMEJBQUEsRUFBQXJCLENBQUEsd0JBQUFoQixDQUFBLENBQUFnRixtQkFBQSxhQUFBL0UsQ0FBQSxRQUFBRCxDQUFBLHdCQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQWdGLFdBQUEsV0FBQWpGLENBQUEsS0FBQUEsQ0FBQSxLQUFBb0MsaUJBQUEsNkJBQUFwQyxDQUFBLENBQUErRSxXQUFBLElBQUEvRSxDQUFBLENBQUFrRixJQUFBLE9BQUFsRixDQUFBLENBQUFtRixJQUFBLGFBQUFsRixDQUFBLFdBQUFFLE1BQUEsQ0FBQWlGLGNBQUEsR0FBQWpGLE1BQUEsQ0FBQWlGLGNBQUEsQ0FBQW5GLENBQUEsRUFBQW9DLDBCQUFBLEtBQUFwQyxDQUFBLENBQUFvRixTQUFBLEdBQUFoRCwwQkFBQSxFQUFBbkIsTUFBQSxDQUFBakIsQ0FBQSxFQUFBZSxDQUFBLHlCQUFBZixDQUFBLENBQUFHLFNBQUEsR0FBQUQsTUFBQSxDQUFBcUIsTUFBQSxDQUFBbUIsQ0FBQSxHQUFBMUMsQ0FBQSxLQUFBRCxDQUFBLENBQUFzRixLQUFBLGFBQUFyRixDQUFBLGFBQUFrRCxPQUFBLEVBQUFsRCxDQUFBLE9BQUEyQyxxQkFBQSxDQUFBRyxhQUFBLENBQUEzQyxTQUFBLEdBQUFjLE1BQUEsQ0FBQTZCLGFBQUEsQ0FBQTNDLFNBQUEsRUFBQVUsQ0FBQSxpQ0FBQWQsQ0FBQSxDQUFBK0MsYUFBQSxHQUFBQSxhQUFBLEVBQUEvQyxDQUFBLENBQUF1RixLQUFBLGFBQUF0RixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEVBQUFHLENBQUEsZUFBQUEsQ0FBQSxLQUFBQSxDQUFBLEdBQUE4RSxPQUFBLE9BQUE1RSxDQUFBLE9BQUFtQyxhQUFBLENBQUF6QixJQUFBLENBQUFyQixDQUFBLEVBQUFDLENBQUEsRUFBQUcsQ0FBQSxFQUFBRSxDQUFBLEdBQUFHLENBQUEsVUFBQVYsQ0FBQSxDQUFBZ0YsbUJBQUEsQ0FBQTlFLENBQUEsSUFBQVUsQ0FBQSxHQUFBQSxDQUFBLENBQUFxRCxJQUFBLEdBQUFiLElBQUEsV0FBQW5ELENBQUEsV0FBQUEsQ0FBQSxDQUFBc0QsSUFBQSxHQUFBdEQsQ0FBQSxDQUFBUSxLQUFBLEdBQUFHLENBQUEsQ0FBQXFELElBQUEsV0FBQXJCLHFCQUFBLENBQUFELENBQUEsR0FBQXpCLE1BQUEsQ0FBQXlCLENBQUEsRUFBQTNCLENBQUEsZ0JBQUFFLE1BQUEsQ0FBQXlCLENBQUEsRUFBQS9CLENBQUEsaUNBQUFNLE1BQUEsQ0FBQXlCLENBQUEsNkRBQUEzQyxDQUFBLENBQUF5RixJQUFBLGFBQUF4RixDQUFBLFFBQUFELENBQUEsR0FBQUcsTUFBQSxDQUFBRixDQUFBLEdBQUFDLENBQUEsZ0JBQUFHLENBQUEsSUFBQUwsQ0FBQSxFQUFBRSxDQUFBLENBQUF1RSxJQUFBLENBQUFwRSxDQUFBLFVBQUFILENBQUEsQ0FBQXdGLE9BQUEsYUFBQXpCLEtBQUEsV0FBQS9ELENBQUEsQ0FBQTRFLE1BQUEsU0FBQTdFLENBQUEsR0FBQUMsQ0FBQSxDQUFBeUYsR0FBQSxRQUFBMUYsQ0FBQSxJQUFBRCxDQUFBLFNBQUFpRSxJQUFBLENBQUF4RCxLQUFBLEdBQUFSLENBQUEsRUFBQWdFLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFdBQUFBLElBQUEsQ0FBQVYsSUFBQSxPQUFBVSxJQUFBLFFBQUFqRSxDQUFBLENBQUEwQyxNQUFBLEdBQUFBLE1BQUEsRUFBQWpCLE9BQUEsQ0FBQXJCLFNBQUEsS0FBQTZFLFdBQUEsRUFBQXhELE9BQUEsRUFBQW1ELEtBQUEsV0FBQUEsTUFBQTVFLENBQUEsYUFBQTRGLElBQUEsV0FBQTNCLElBQUEsV0FBQU4sSUFBQSxRQUFBQyxLQUFBLEdBQUEzRCxDQUFBLE9BQUFzRCxJQUFBLFlBQUFFLFFBQUEsY0FBQUQsTUFBQSxnQkFBQTNCLEdBQUEsR0FBQTVCLENBQUEsT0FBQXVFLFVBQUEsQ0FBQTNCLE9BQUEsQ0FBQTZCLGFBQUEsSUFBQTFFLENBQUEsV0FBQUUsQ0FBQSxrQkFBQUEsQ0FBQSxDQUFBMkYsTUFBQSxPQUFBeEYsQ0FBQSxDQUFBeUIsSUFBQSxPQUFBNUIsQ0FBQSxNQUFBMkUsS0FBQSxFQUFBM0UsQ0FBQSxDQUFBNEYsS0FBQSxjQUFBNUYsQ0FBQSxJQUFBRCxDQUFBLE1BQUE4RixJQUFBLFdBQUFBLEtBQUEsU0FBQXhDLElBQUEsV0FBQXRELENBQUEsUUFBQXVFLFVBQUEsSUFBQUcsVUFBQSxrQkFBQTFFLENBQUEsQ0FBQTJCLElBQUEsUUFBQTNCLENBQUEsQ0FBQTRCLEdBQUEsY0FBQW1FLElBQUEsS0FBQW5DLGlCQUFBLFdBQUFBLGtCQUFBN0QsQ0FBQSxhQUFBdUQsSUFBQSxRQUFBdkQsQ0FBQSxNQUFBRSxDQUFBLGtCQUFBK0YsT0FBQTVGLENBQUEsRUFBQUUsQ0FBQSxXQUFBSyxDQUFBLENBQUFnQixJQUFBLFlBQUFoQixDQUFBLENBQUFpQixHQUFBLEdBQUE3QixDQUFBLEVBQUFFLENBQUEsQ0FBQStELElBQUEsR0FBQTVELENBQUEsRUFBQUUsQ0FBQSxLQUFBTCxDQUFBLENBQUFzRCxNQUFBLFdBQUF0RCxDQUFBLENBQUEyQixHQUFBLEdBQUE1QixDQUFBLEtBQUFNLENBQUEsYUFBQUEsQ0FBQSxRQUFBaUUsVUFBQSxDQUFBTSxNQUFBLE1BQUF2RSxDQUFBLFNBQUFBLENBQUEsUUFBQUcsQ0FBQSxRQUFBOEQsVUFBQSxDQUFBakUsQ0FBQSxHQUFBSyxDQUFBLEdBQUFGLENBQUEsQ0FBQWlFLFVBQUEsaUJBQUFqRSxDQUFBLENBQUEwRCxNQUFBLFNBQUE2QixNQUFBLGFBQUF2RixDQUFBLENBQUEwRCxNQUFBLFNBQUF3QixJQUFBLFFBQUE5RSxDQUFBLEdBQUFULENBQUEsQ0FBQXlCLElBQUEsQ0FBQXBCLENBQUEsZUFBQU0sQ0FBQSxHQUFBWCxDQUFBLENBQUF5QixJQUFBLENBQUFwQixDQUFBLHFCQUFBSSxDQUFBLElBQUFFLENBQUEsYUFBQTRFLElBQUEsR0FBQWxGLENBQUEsQ0FBQTJELFFBQUEsU0FBQTRCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTJELFFBQUEsZ0JBQUF1QixJQUFBLEdBQUFsRixDQUFBLENBQUE0RCxVQUFBLFNBQUEyQixNQUFBLENBQUF2RixDQUFBLENBQUE0RCxVQUFBLGNBQUF4RCxDQUFBLGFBQUE4RSxJQUFBLEdBQUFsRixDQUFBLENBQUEyRCxRQUFBLFNBQUE0QixNQUFBLENBQUF2RixDQUFBLENBQUEyRCxRQUFBLHFCQUFBckQsQ0FBQSxZQUFBc0MsS0FBQSxxREFBQXNDLElBQUEsR0FBQWxGLENBQUEsQ0FBQTRELFVBQUEsU0FBQTJCLE1BQUEsQ0FBQXZGLENBQUEsQ0FBQTRELFVBQUEsWUFBQVIsTUFBQSxXQUFBQSxPQUFBN0QsQ0FBQSxFQUFBRCxDQUFBLGFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBNUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFLLENBQUEsUUFBQWlFLFVBQUEsQ0FBQXRFLENBQUEsT0FBQUssQ0FBQSxDQUFBNkQsTUFBQSxTQUFBd0IsSUFBQSxJQUFBdkYsQ0FBQSxDQUFBeUIsSUFBQSxDQUFBdkIsQ0FBQSx3QkFBQXFGLElBQUEsR0FBQXJGLENBQUEsQ0FBQStELFVBQUEsUUFBQTVELENBQUEsR0FBQUgsQ0FBQSxhQUFBRyxDQUFBLGlCQUFBVCxDQUFBLG1CQUFBQSxDQUFBLEtBQUFTLENBQUEsQ0FBQTBELE1BQUEsSUFBQXBFLENBQUEsSUFBQUEsQ0FBQSxJQUFBVSxDQUFBLENBQUE0RCxVQUFBLEtBQUE1RCxDQUFBLGNBQUFFLENBQUEsR0FBQUYsQ0FBQSxHQUFBQSxDQUFBLENBQUFpRSxVQUFBLGNBQUEvRCxDQUFBLENBQUFnQixJQUFBLEdBQUEzQixDQUFBLEVBQUFXLENBQUEsQ0FBQWlCLEdBQUEsR0FBQTdCLENBQUEsRUFBQVUsQ0FBQSxTQUFBOEMsTUFBQSxnQkFBQVMsSUFBQSxHQUFBdkQsQ0FBQSxDQUFBNEQsVUFBQSxFQUFBbkMsQ0FBQSxTQUFBK0QsUUFBQSxDQUFBdEYsQ0FBQSxNQUFBc0YsUUFBQSxXQUFBQSxTQUFBakcsQ0FBQSxFQUFBRCxDQUFBLG9CQUFBQyxDQUFBLENBQUEyQixJQUFBLFFBQUEzQixDQUFBLENBQUE0QixHQUFBLHFCQUFBNUIsQ0FBQSxDQUFBMkIsSUFBQSxtQkFBQTNCLENBQUEsQ0FBQTJCLElBQUEsUUFBQXFDLElBQUEsR0FBQWhFLENBQUEsQ0FBQTRCLEdBQUEsZ0JBQUE1QixDQUFBLENBQUEyQixJQUFBLFNBQUFvRSxJQUFBLFFBQUFuRSxHQUFBLEdBQUE1QixDQUFBLENBQUE0QixHQUFBLE9BQUEyQixNQUFBLGtCQUFBUyxJQUFBLHlCQUFBaEUsQ0FBQSxDQUFBMkIsSUFBQSxJQUFBNUIsQ0FBQSxVQUFBaUUsSUFBQSxHQUFBakUsQ0FBQSxHQUFBbUMsQ0FBQSxLQUFBZ0UsTUFBQSxXQUFBQSxPQUFBbEcsQ0FBQSxhQUFBRCxDQUFBLFFBQUF3RSxVQUFBLENBQUFNLE1BQUEsTUFBQTlFLENBQUEsU0FBQUEsQ0FBQSxRQUFBRSxDQUFBLFFBQUFzRSxVQUFBLENBQUF4RSxDQUFBLE9BQUFFLENBQUEsQ0FBQW9FLFVBQUEsS0FBQXJFLENBQUEsY0FBQWlHLFFBQUEsQ0FBQWhHLENBQUEsQ0FBQXlFLFVBQUEsRUFBQXpFLENBQUEsQ0FBQXFFLFFBQUEsR0FBQUcsYUFBQSxDQUFBeEUsQ0FBQSxHQUFBaUMsQ0FBQSx5QkFBQWlFLE9BQUFuRyxDQUFBLGFBQUFELENBQUEsUUFBQXdFLFVBQUEsQ0FBQU0sTUFBQSxNQUFBOUUsQ0FBQSxTQUFBQSxDQUFBLFFBQUFFLENBQUEsUUFBQXNFLFVBQUEsQ0FBQXhFLENBQUEsT0FBQUUsQ0FBQSxDQUFBa0UsTUFBQSxLQUFBbkUsQ0FBQSxRQUFBSSxDQUFBLEdBQUFILENBQUEsQ0FBQXlFLFVBQUEsa0JBQUF0RSxDQUFBLENBQUF1QixJQUFBLFFBQUFyQixDQUFBLEdBQUFGLENBQUEsQ0FBQXdCLEdBQUEsRUFBQTZDLGFBQUEsQ0FBQXhFLENBQUEsWUFBQUssQ0FBQSxnQkFBQStDLEtBQUEsOEJBQUErQyxhQUFBLFdBQUFBLGNBQUFyRyxDQUFBLEVBQUFFLENBQUEsRUFBQUcsQ0FBQSxnQkFBQW9ELFFBQUEsS0FBQTVDLFFBQUEsRUFBQTZCLE1BQUEsQ0FBQTFDLENBQUEsR0FBQWdFLFVBQUEsRUFBQTlELENBQUEsRUFBQWdFLE9BQUEsRUFBQTdELENBQUEsb0JBQUFtRCxNQUFBLFVBQUEzQixHQUFBLEdBQUE1QixDQUFBLEdBQUFrQyxDQUFBLE9BQUFuQyxDQUFBO0FBQUEsU0FBQXNHLG1CQUFBQyxHQUFBLEVBQUFyRCxPQUFBLEVBQUFzRCxNQUFBLEVBQUFDLEtBQUEsRUFBQUMsTUFBQSxFQUFBQyxHQUFBLEVBQUE5RSxHQUFBLGNBQUErRSxJQUFBLEdBQUFMLEdBQUEsQ0FBQUksR0FBQSxFQUFBOUUsR0FBQSxPQUFBcEIsS0FBQSxHQUFBbUcsSUFBQSxDQUFBbkcsS0FBQSxXQUFBb0csS0FBQSxJQUFBTCxNQUFBLENBQUFLLEtBQUEsaUJBQUFELElBQUEsQ0FBQXJELElBQUEsSUFBQUwsT0FBQSxDQUFBekMsS0FBQSxZQUFBK0UsT0FBQSxDQUFBdEMsT0FBQSxDQUFBekMsS0FBQSxFQUFBMkMsSUFBQSxDQUFBcUQsS0FBQSxFQUFBQyxNQUFBO0FBQUEsU0FBQUksa0JBQUFDLEVBQUEsNkJBQUFDLElBQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLGFBQUExQixPQUFBLFdBQUF0QyxPQUFBLEVBQUFzRCxNQUFBLFFBQUFELEdBQUEsR0FBQVEsRUFBQSxDQUFBSSxLQUFBLENBQUFILElBQUEsRUFBQUMsSUFBQSxZQUFBUixNQUFBaEcsS0FBQSxJQUFBNkYsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsVUFBQWpHLEtBQUEsY0FBQWlHLE9BQUFVLEdBQUEsSUFBQWQsa0JBQUEsQ0FBQUMsR0FBQSxFQUFBckQsT0FBQSxFQUFBc0QsTUFBQSxFQUFBQyxLQUFBLEVBQUFDLE1BQUEsV0FBQVUsR0FBQSxLQUFBWCxLQUFBLENBQUFZLFNBQUE7QUFBQSxTQUFBQywyQkFBQS9HLENBQUEsRUFBQWdILGNBQUEsUUFBQUMsRUFBQSxVQUFBN0csTUFBQSxvQkFBQUosQ0FBQSxDQUFBSSxNQUFBLENBQUFFLFFBQUEsS0FBQU4sQ0FBQSxxQkFBQWlILEVBQUEsUUFBQUMsS0FBQSxDQUFBQyxPQUFBLENBQUFuSCxDQUFBLE1BQUFpSCxFQUFBLEdBQUFHLDJCQUFBLENBQUFwSCxDQUFBLE1BQUFnSCxjQUFBLElBQUFoSCxDQUFBLFdBQUFBLENBQUEsQ0FBQXVFLE1BQUEscUJBQUEwQyxFQUFBLEVBQUFqSCxDQUFBLEdBQUFpSCxFQUFBLE1BQUE5RyxDQUFBLFVBQUFrSCxDQUFBLFlBQUFBLEVBQUEsZUFBQTFGLENBQUEsRUFBQTBGLENBQUEsRUFBQXZILENBQUEsV0FBQUEsRUFBQSxRQUFBSyxDQUFBLElBQUFILENBQUEsQ0FBQXVFLE1BQUEsV0FBQXZCLElBQUEsbUJBQUFBLElBQUEsU0FBQTlDLEtBQUEsRUFBQUYsQ0FBQSxDQUFBRyxDQUFBLFVBQUFWLENBQUEsV0FBQUEsRUFBQTZILEVBQUEsVUFBQUEsRUFBQSxLQUFBNUYsQ0FBQSxFQUFBMkYsQ0FBQSxnQkFBQTdELFNBQUEsaUpBQUErRCxnQkFBQSxTQUFBQyxNQUFBLFVBQUFYLEdBQUEsV0FBQWxGLENBQUEsV0FBQUEsRUFBQSxJQUFBc0YsRUFBQSxHQUFBQSxFQUFBLENBQUExRixJQUFBLENBQUF2QixDQUFBLE1BQUFGLENBQUEsV0FBQUEsRUFBQSxRQUFBMkgsSUFBQSxHQUFBUixFQUFBLENBQUF2RCxJQUFBLElBQUE2RCxnQkFBQSxHQUFBRSxJQUFBLENBQUF6RSxJQUFBLFNBQUF5RSxJQUFBLEtBQUFoSSxDQUFBLFdBQUFBLEVBQUFpSSxHQUFBLElBQUFGLE1BQUEsU0FBQVgsR0FBQSxHQUFBYSxHQUFBLEtBQUFoRyxDQUFBLFdBQUFBLEVBQUEsZUFBQTZGLGdCQUFBLElBQUFOLEVBQUEsb0JBQUFBLEVBQUEsOEJBQUFPLE1BQUEsUUFBQVgsR0FBQTtBQUFBLFNBQUFjLFNBQUEsSUFBQUEsUUFBQSxHQUFBL0gsTUFBQSxDQUFBZ0ksTUFBQSxHQUFBaEksTUFBQSxDQUFBZ0ksTUFBQSxDQUFBQyxJQUFBLGVBQUFDLE1BQUEsYUFBQTNILENBQUEsTUFBQUEsQ0FBQSxHQUFBd0csU0FBQSxDQUFBcEMsTUFBQSxFQUFBcEUsQ0FBQSxVQUFBNEgsTUFBQSxHQUFBcEIsU0FBQSxDQUFBeEcsQ0FBQSxZQUFBaUcsR0FBQSxJQUFBMkIsTUFBQSxRQUFBbkksTUFBQSxDQUFBQyxTQUFBLENBQUFFLGNBQUEsQ0FBQXdCLElBQUEsQ0FBQXdHLE1BQUEsRUFBQTNCLEdBQUEsS0FBQTBCLE1BQUEsQ0FBQTFCLEdBQUEsSUFBQTJCLE1BQUEsQ0FBQTNCLEdBQUEsZ0JBQUEwQixNQUFBLFlBQUFILFFBQUEsQ0FBQWYsS0FBQSxPQUFBRCxTQUFBO0FBQUEsU0FBQXFCLG1CQUFBQyxHQUFBLFdBQUFDLGtCQUFBLENBQUFELEdBQUEsS0FBQUUsZ0JBQUEsQ0FBQUYsR0FBQSxLQUFBYiwyQkFBQSxDQUFBYSxHQUFBLEtBQUFHLGtCQUFBO0FBQUEsU0FBQUEsbUJBQUEsY0FBQTVFLFNBQUE7QUFBQSxTQUFBMkUsaUJBQUFFLElBQUEsZUFBQWpJLE1BQUEsb0JBQUFpSSxJQUFBLENBQUFqSSxNQUFBLENBQUFFLFFBQUEsYUFBQStILElBQUEsK0JBQUFuQixLQUFBLENBQUFvQixJQUFBLENBQUFELElBQUE7QUFBQSxTQUFBSCxtQkFBQUQsR0FBQSxRQUFBZixLQUFBLENBQUFDLE9BQUEsQ0FBQWMsR0FBQSxVQUFBTSxpQkFBQSxDQUFBTixHQUFBO0FBQUEsU0FBQU8sUUFBQS9JLENBQUEsRUFBQUUsQ0FBQSxRQUFBRCxDQUFBLEdBQUFFLE1BQUEsQ0FBQXNGLElBQUEsQ0FBQXpGLENBQUEsT0FBQUcsTUFBQSxDQUFBNkkscUJBQUEsUUFBQXpJLENBQUEsR0FBQUosTUFBQSxDQUFBNkkscUJBQUEsQ0FBQWhKLENBQUEsR0FBQUUsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQTBJLE1BQUEsV0FBQS9JLENBQUEsV0FBQUMsTUFBQSxDQUFBK0ksd0JBQUEsQ0FBQWxKLENBQUEsRUFBQUUsQ0FBQSxFQUFBaUIsVUFBQSxPQUFBbEIsQ0FBQSxDQUFBd0UsSUFBQSxDQUFBMEMsS0FBQSxDQUFBbEgsQ0FBQSxFQUFBTSxDQUFBLFlBQUFOLENBQUE7QUFBQSxTQUFBa0osY0FBQW5KLENBQUEsYUFBQUUsQ0FBQSxNQUFBQSxDQUFBLEdBQUFnSCxTQUFBLENBQUFwQyxNQUFBLEVBQUE1RSxDQUFBLFVBQUFELENBQUEsV0FBQWlILFNBQUEsQ0FBQWhILENBQUEsSUFBQWdILFNBQUEsQ0FBQWhILENBQUEsUUFBQUEsQ0FBQSxPQUFBNkksT0FBQSxDQUFBNUksTUFBQSxDQUFBRixDQUFBLE9BQUE0QyxPQUFBLFdBQUEzQyxDQUFBLElBQUFrSixlQUFBLENBQUFwSixDQUFBLEVBQUFFLENBQUEsRUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFNBQUFDLE1BQUEsQ0FBQWtKLHlCQUFBLEdBQUFsSixNQUFBLENBQUFtSixnQkFBQSxDQUFBdEosQ0FBQSxFQUFBRyxNQUFBLENBQUFrSix5QkFBQSxDQUFBcEosQ0FBQSxLQUFBOEksT0FBQSxDQUFBNUksTUFBQSxDQUFBRixDQUFBLEdBQUE0QyxPQUFBLFdBQUEzQyxDQUFBLElBQUFDLE1BQUEsQ0FBQUssY0FBQSxDQUFBUixDQUFBLEVBQUFFLENBQUEsRUFBQUMsTUFBQSxDQUFBK0ksd0JBQUEsQ0FBQWpKLENBQUEsRUFBQUMsQ0FBQSxpQkFBQUYsQ0FBQTtBQUFBLFNBQUFvSixnQkFBQUcsR0FBQSxFQUFBNUMsR0FBQSxFQUFBbEcsS0FBQSxJQUFBa0csR0FBQSxHQUFBNkMsY0FBQSxDQUFBN0MsR0FBQSxPQUFBQSxHQUFBLElBQUE0QyxHQUFBLElBQUFwSixNQUFBLENBQUFLLGNBQUEsQ0FBQStJLEdBQUEsRUFBQTVDLEdBQUEsSUFBQWxHLEtBQUEsRUFBQUEsS0FBQSxFQUFBVSxVQUFBLFFBQUFDLFlBQUEsUUFBQUMsUUFBQSxvQkFBQWtJLEdBQUEsQ0FBQTVDLEdBQUEsSUFBQWxHLEtBQUEsV0FBQThJLEdBQUE7QUFBQSxTQUFBQyxlQUFBM0gsR0FBQSxRQUFBOEUsR0FBQSxHQUFBOEMsWUFBQSxDQUFBNUgsR0FBQSxvQkFBQW9CLE9BQUEsQ0FBQTBELEdBQUEsaUJBQUFBLEdBQUEsR0FBQStDLE1BQUEsQ0FBQS9DLEdBQUE7QUFBQSxTQUFBOEMsYUFBQUUsS0FBQSxFQUFBQyxJQUFBLFFBQUEzRyxPQUFBLENBQUEwRyxLQUFBLGtCQUFBQSxLQUFBLGtCQUFBQSxLQUFBLE1BQUFFLElBQUEsR0FBQUYsS0FBQSxDQUFBaEosTUFBQSxDQUFBbUosV0FBQSxPQUFBRCxJQUFBLEtBQUF4QyxTQUFBLFFBQUEwQyxHQUFBLEdBQUFGLElBQUEsQ0FBQS9ILElBQUEsQ0FBQTZILEtBQUEsRUFBQUMsSUFBQSxvQkFBQTNHLE9BQUEsQ0FBQThHLEdBQUEsdUJBQUFBLEdBQUEsWUFBQWhHLFNBQUEsNERBQUE2RixJQUFBLGdCQUFBRixNQUFBLEdBQUFNLE1BQUEsRUFBQUwsS0FBQTtBQUFBLFNBQUFNLGVBQUF6QixHQUFBLEVBQUE5SCxDQUFBLFdBQUF3SixlQUFBLENBQUExQixHQUFBLEtBQUEyQixxQkFBQSxDQUFBM0IsR0FBQSxFQUFBOUgsQ0FBQSxLQUFBaUgsMkJBQUEsQ0FBQWEsR0FBQSxFQUFBOUgsQ0FBQSxLQUFBMEosZ0JBQUE7QUFBQSxTQUFBQSxpQkFBQSxjQUFBckcsU0FBQTtBQUFBLFNBQUE0RCw0QkFBQXBILENBQUEsRUFBQThKLE1BQUEsU0FBQTlKLENBQUEscUJBQUFBLENBQUEsc0JBQUF1SSxpQkFBQSxDQUFBdkksQ0FBQSxFQUFBOEosTUFBQSxPQUFBaEssQ0FBQSxHQUFBRixNQUFBLENBQUFDLFNBQUEsQ0FBQWtLLFFBQUEsQ0FBQXhJLElBQUEsQ0FBQXZCLENBQUEsRUFBQXVGLEtBQUEsYUFBQXpGLENBQUEsaUJBQUFFLENBQUEsQ0FBQTBFLFdBQUEsRUFBQTVFLENBQUEsR0FBQUUsQ0FBQSxDQUFBMEUsV0FBQSxDQUFBQyxJQUFBLE1BQUE3RSxDQUFBLGNBQUFBLENBQUEsbUJBQUFvSCxLQUFBLENBQUFvQixJQUFBLENBQUF0SSxDQUFBLE9BQUFGLENBQUEsK0RBQUFrSyxJQUFBLENBQUFsSyxDQUFBLFVBQUF5SSxpQkFBQSxDQUFBdkksQ0FBQSxFQUFBOEosTUFBQTtBQUFBLFNBQUF2QixrQkFBQU4sR0FBQSxFQUFBZ0MsR0FBQSxRQUFBQSxHQUFBLFlBQUFBLEdBQUEsR0FBQWhDLEdBQUEsQ0FBQTFELE1BQUEsRUFBQTBGLEdBQUEsR0FBQWhDLEdBQUEsQ0FBQTFELE1BQUEsV0FBQXBFLENBQUEsTUFBQStKLElBQUEsT0FBQWhELEtBQUEsQ0FBQStDLEdBQUEsR0FBQTlKLENBQUEsR0FBQThKLEdBQUEsRUFBQTlKLENBQUEsSUFBQStKLElBQUEsQ0FBQS9KLENBQUEsSUFBQThILEdBQUEsQ0FBQTlILENBQUEsVUFBQStKLElBQUE7QUFBQSxTQUFBTixzQkFBQWpLLENBQUEsRUFBQThCLENBQUEsUUFBQS9CLENBQUEsV0FBQUMsQ0FBQSxnQ0FBQVMsTUFBQSxJQUFBVCxDQUFBLENBQUFTLE1BQUEsQ0FBQUUsUUFBQSxLQUFBWCxDQUFBLDRCQUFBRCxDQUFBLFFBQUFELENBQUEsRUFBQUssQ0FBQSxFQUFBSyxDQUFBLEVBQUFNLENBQUEsRUFBQUosQ0FBQSxPQUFBcUIsQ0FBQSxPQUFBMUIsQ0FBQSxpQkFBQUcsQ0FBQSxJQUFBVCxDQUFBLEdBQUFBLENBQUEsQ0FBQTZCLElBQUEsQ0FBQTVCLENBQUEsR0FBQStELElBQUEsUUFBQWpDLENBQUEsUUFBQTdCLE1BQUEsQ0FBQUYsQ0FBQSxNQUFBQSxDQUFBLFVBQUFnQyxDQUFBLHVCQUFBQSxDQUFBLElBQUFqQyxDQUFBLEdBQUFVLENBQUEsQ0FBQW9CLElBQUEsQ0FBQTdCLENBQUEsR0FBQXNELElBQUEsTUFBQTNDLENBQUEsQ0FBQTZELElBQUEsQ0FBQXpFLENBQUEsQ0FBQVMsS0FBQSxHQUFBRyxDQUFBLENBQUFrRSxNQUFBLEtBQUE5QyxDQUFBLEdBQUFDLENBQUEsaUJBQUEvQixDQUFBLElBQUFLLENBQUEsT0FBQUYsQ0FBQSxHQUFBSCxDQUFBLHlCQUFBK0IsQ0FBQSxZQUFBaEMsQ0FBQSxlQUFBZSxDQUFBLEdBQUFmLENBQUEsY0FBQUUsTUFBQSxDQUFBYSxDQUFBLE1BQUFBLENBQUEsMkJBQUFULENBQUEsUUFBQUYsQ0FBQSxhQUFBTyxDQUFBO0FBQUEsU0FBQXNKLGdCQUFBMUIsR0FBQSxRQUFBZixLQUFBLENBQUFDLE9BQUEsQ0FBQWMsR0FBQSxVQUFBQSxHQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQURBLE9BQU8sS0FBS2tDLEtBQUssTUFBTSxPQUFPO0FBQzlCLE9BQU8sS0FBS0MsU0FBUyxNQUFNLFlBQVk7QUFDdkMsU0FBU0MsSUFBSSxFQUFFQyx5QkFBeUIsUUFBUSx5QkFBeUI7QUFDekUsT0FBT0MsTUFBTSxNQUFNLFNBQVM7QUFDNUIsU0FBU0MsT0FBTyxRQUFRLHFCQUFxQjtBQUM3QyxTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUMxQyxTQUFTQyxPQUFPLEVBQUVDLFlBQVksUUFBUSxnQkFBZ0I7QUFDdEQsU0FDRUMsSUFBSSxFQUNKQyxXQUFXLEVBQ1hDLFdBQVcsRUFDWEMseUJBQXlCLEVBQ3pCQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZkMsWUFBWSxFQUNaQyxxQkFBcUIsRUFDckJDLG1CQUFtQixFQUNuQkMsYUFBYSxRQUNSLHVCQUF1QjtBQUM5QjtBQUNBLFNBQVNDLHdCQUF3QixRQUFRLGtCQUFrQjtBQUMzRCxTQUFTQyxnQkFBZ0IsRUFBRUMseUJBQXlCLFFBQVEsa0JBQWtCO0FBQzlFLFNBQVNDLE9BQU8sUUFBUSx5QkFBeUI7QUFDakQsU0FBU0MsU0FBUyxRQUFRLHVCQUF1QjtBQUNqRCxTQUFTQyxhQUFhLEVBQUVDLGlCQUFpQixRQUFRLElBQUk7QUFDckQsU0FBU0Msb0JBQW9CLFFBQVEsa0NBQWtDO0FBQ3ZFLFNBQ0VDLG1CQUFtQixFQUNuQkMsY0FBYyxFQUNkQyxhQUFhLEVBQ2JDLDJCQUEyQixFQUMzQkMsZUFBZSxFQUNmQyxrQkFBa0IsRUFDbEJDLDJCQUEyQixFQUMzQkMsZUFBZSxRQUNWLCtCQUErQjtBQUN0QyxTQUFTQyxLQUFLLFFBQVEsbUJBQW1CO0FBQ3pDLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7QUFDakQsU0FBU0MsS0FBSyxRQUFRLHlCQUF5QjtBQUMvQyxTQUNFQyxZQUFZLEVBQ1pDLGVBQWUsRUFDZkMsWUFBWSxRQUNQLGFBQWE7QUFDcEIsU0FBU0Msa0JBQWtCLFFBQVEsdUJBQXVCO0FBQzFELFNBQVNDLFFBQVEsUUFBUSxtQkFBbUI7QUFFNUMsSUFBTUMsa0JBQWtCLEdBQUcsd0JBQXdCO0FBQ25ELElBQU1DLEtBQUssR0FBRyxTQUFTO0FBQ3ZCLElBQU1DLEtBQUssR0FBRztFQUFFQyxTQUFTLEVBQUUsTUFBTTtFQUFFQyxLQUFLLEVBQUU7QUFBUSxDQUFDOztBQUVuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNDLGFBQWFBLENBQUNDLFFBQVEsRUFBRTtFQUFBLElBQUFDLHFCQUFBO0VBQy9CLElBQUFDLElBQUEsR0FJSUYsUUFBUSxJQUFJLENBQUMsQ0FBQztJQUhoQkcsT0FBTyxHQUFBRCxJQUFBLENBQVBDLE9BQU87SUFDUEMsS0FBSyxHQUFBRixJQUFBLENBQUxFLEtBQUs7SUFDTEMsU0FBUyxHQUFBSCxJQUFBLENBQVRHLFNBQVM7RUFFWCxJQUFNQyxZQUFZLEdBQUdELFNBQVMsYUFBVEEsU0FBUyxnQkFBQUoscUJBQUEsR0FBVEksU0FBUyxDQUFFQyxZQUFZLGNBQUFMLHFCQUFBLGVBQXZCQSxxQkFBQSxDQUF5QjlJLE1BQU0sR0FBR29KLElBQUksQ0FBQ0MsU0FBUyxDQUFDSCxTQUFTLENBQUNDLFlBQVksQ0FBQyxHQUFHLEVBQUU7RUFDbEcsT0FBTztJQUNMSCxPQUFPLEVBQVBBLE9BQU87SUFDUEMsS0FBSyxFQUFMQSxLQUFLO0lBQ0xFLFlBQVksRUFBWkE7RUFDRixDQUFDO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNHLGFBQWFBLENBQUNDLGFBQW9CLEVBQUVDLGFBQW9CLEVBQUU7RUFDakVELGFBQWEsR0FBR0EsYUFBYSxJQUFJLEVBQUU7RUFDbkNDLGFBQWEsR0FBR0EsYUFBYSxJQUFJLEVBQUU7RUFDbkMsSUFBSUMsT0FBTyxHQUFHLEtBQUs7RUFFbkIsSUFBSUYsYUFBYSxDQUFDdkosTUFBTSxLQUFLd0osYUFBYSxDQUFDeEosTUFBTSxFQUFFO0lBQ2pEeUosT0FBTyxHQUFHLElBQUk7SUFFZCxLQUFLLElBQUk3TixDQUFDLEdBQUcsQ0FBQyxFQUFFc0IsQ0FBQyxHQUFFcU0sYUFBYSxDQUFDdkosTUFBTSxFQUFFcEUsQ0FBQyxHQUFHc0IsQ0FBQyxFQUFFdEIsQ0FBQyxFQUFFLEVBQUU7TUFDbkQsSUFBTThOLE1BQU0sR0FBR2QsYUFBYSxDQUFDVyxhQUFhLENBQUMzTixDQUFDLENBQUMsQ0FBQztNQUM5QyxJQUFNK04sTUFBTSxHQUFHZixhQUFhLENBQUNZLGFBQWEsQ0FBQzVOLENBQUMsQ0FBQyxDQUFDO01BQzlDNk4sT0FBTyxHQUFHdkMsT0FBTyxDQUFDd0MsTUFBTSxFQUFFQyxNQUFNLENBQUM7TUFFakMsSUFBSSxDQUFDRixPQUFPLEVBQUU7UUFDWjtNQUNGO0lBQ0Y7RUFDRjtFQUVBLE9BQU9BLE9BQU87QUFDaEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUcsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFJQyxlQUFlLEVBQUVDLE1BQU0sRUFBSztFQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHFCQUFBO0VBQ3pELElBQU1DLFdBQVcsR0FBR0wsZUFBZSxhQUFmQSxlQUFlLGdCQUFBRSxxQkFBQSxHQUFmRixlQUFlLENBQUVNLGFBQWEsY0FBQUoscUJBQUEsZ0JBQUFBLHFCQUFBLEdBQTlCQSxxQkFBQSxDQUFnQ0ssUUFBUSxjQUFBTCxxQkFBQSx1QkFBeENBLHFCQUFBLENBQTBDTSxTQUFTO0VBQ3ZFLElBQU1DLFFBQVEsR0FBR1QsZUFBZSxhQUFmQSxlQUFlLGdCQUFBRyxzQkFBQSxHQUFmSCxlQUFlLENBQUVNLGFBQWEsY0FBQUgsc0JBQUEsZ0JBQUFBLHNCQUFBLEdBQTlCQSxzQkFBQSxDQUFnQ0ksUUFBUSxjQUFBSixzQkFBQSx1QkFBeENBLHNCQUFBLENBQTBDNUosSUFBSSxFQUFDO0VBQ2hFLElBQUltSyxXQUFXLEdBQUcsS0FBSztFQUN2QixJQUFNQyxRQUFRLEdBQUc5QywyQkFBMkIsQ0FBQzRDLFFBQVEsQ0FBQztFQUN0REMsV0FBVyxHQUFHQyxRQUFRLGFBQVJBLFFBQVEsZ0JBQUFQLHFCQUFBLEdBQVJPLFFBQVEsQ0FBRUMsV0FBVyxDQUFDLENBQUMsY0FBQVIscUJBQUEsdUJBQXZCQSxxQkFBQSxDQUF5QlMsUUFBUSxDQUFDWixNQUFNLENBQUM7RUFDdkQsSUFBSSxDQUFDUyxXQUFXLEVBQUU7SUFDaEJJLE9BQU8sQ0FBQ0MsSUFBSSxzQkFBQUMsTUFBQSxDQUFzQmYsTUFBTSx3QkFBQWUsTUFBQSxDQUFxQlAsUUFBUSxDQUFFLENBQUM7RUFDMUU7RUFDQSxJQUFJLENBQUFKLFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFTyxXQUFXLENBQUMsQ0FBQyxNQUFLWCxNQUFNLEVBQUU7SUFDekNhLE9BQU8sQ0FBQ0MsSUFBSSxzQkFBQUMsTUFBQSxDQUFzQmYsTUFBTSxnQ0FBQWUsTUFBQSxDQUE2QlgsV0FBVyxDQUFFLENBQUM7SUFDbkZLLFdBQVcsR0FBRyxLQUFLO0VBQ3JCO0VBQ0EsSUFBSUEsV0FBVyxFQUFFO0lBQ2YsSUFBTU8sU0FBUyxHQUFHakIsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUVpQixTQUFTO0lBQzVDLElBQUlBLFNBQVMsRUFBRTtNQUNiLE9BQU9BLFNBQVM7SUFDbEI7SUFDQUgsT0FBTyxDQUFDNUksS0FBSyx3Q0FBd0MsQ0FBQztFQUN4RDtFQUNBNEksT0FBTyxDQUFDNUksS0FBSyxnQ0FBQThJLE1BQUEsQ0FBZ0NmLE1BQU0sb0JBQUFlLE1BQUEsQ0FBaUJQLFFBQVEsQ0FBRSxDQUFDO0VBQy9FLE9BQU8sSUFBSTtBQUNiLENBQUM7QUFFRCxlQUFlLFNBQVNTLGFBQWFBLENBQUFDLEtBQUEsRUFxQ2xDO0VBQUEsSUFBQUMsc0JBQUEsRUFBQUMsc0JBQUEsRUFBQUMsc0JBQUEsRUFBQUMsc0JBQUEsRUFBQUMsc0JBQUEsRUFBQUMscUJBQUEsRUFBQUMsc0JBQUEsRUFBQUMsdUJBQUEsRUFBQUMsV0FBQSxFQUFBQyxZQUFBLEVBQUFDLG9CQUFBLEVBQUFDLGNBQUEsRUFBQUMsY0FBQTtFQUFBLElBcENEQyxNQUFNLEdBQUFkLEtBQUEsQ0FBTmMsTUFBTTtJQUNOQyxjQUFjLEdBQUFmLEtBQUEsQ0FBZGUsY0FBYztJQUNkQyxTQUFTLEdBQUFoQixLQUFBLENBQVRnQixTQUFTO0lBQ1RDLE9BQU8sR0FBQWpCLEtBQUEsQ0FBUGlCLE9BQU87SUFDUEMsT0FBTyxHQUFBbEIsS0FBQSxDQUFQa0IsT0FBTztJQUNQQyxrQkFBa0IsR0FBQW5CLEtBQUEsQ0FBbEJtQixrQkFBa0I7SUFDbEJDLFdBQVcsR0FBQXBCLEtBQUEsQ0FBWG9CLFdBQVc7SUFDWEMsY0FBYyxHQUFBckIsS0FBQSxDQUFkcUIsY0FBYztJQUNkQyxZQUFZLEdBQUF0QixLQUFBLENBQVpzQixZQUFZO0lBQ1pDLGFBQWEsR0FBQXZCLEtBQUEsQ0FBYnVCLGFBQWE7SUFDYkMsVUFBVSxHQUFBeEIsS0FBQSxDQUFWd0IsVUFBVTtJQUNWQyxFQUFFLEdBQUF6QixLQUFBLENBQUZ5QixFQUFFO0lBQ0ZDLElBQUksR0FBQTFCLEtBQUEsQ0FBSjBCLElBQUk7SUFDSkMsWUFBWSxHQUFBM0IsS0FBQSxDQUFaMkIsWUFBWTtJQUNaQyxVQUFVLEdBQUE1QixLQUFBLENBQVY0QixVQUFVO0lBQ1ZDLGVBQWUsR0FBQTdCLEtBQUEsQ0FBZjZCLGVBQWU7SUFDZkMsNEJBQTRCLEdBQUE5QixLQUFBLENBQTVCOEIsNEJBQTRCO0lBQzVCQyxTQUFTLEdBQUEvQixLQUFBLENBQVQrQixTQUFTO0lBQUFDLGNBQUEsR0FBQWhDLEtBQUEsQ0FDVFosUUFBUTtJQUNONkMsS0FBSyxHQUFBRCxjQUFBLENBQUxDLEtBQUs7SUFDTEMsVUFBVSxHQUFBRixjQUFBLENBQVZFLFVBQVU7SUFDVkMsVUFBVSxHQUFBSCxjQUFBLENBQVZHLFVBQVU7SUFDVkMscUJBQXFCLEdBQUFKLGNBQUEsQ0FBckJJLHFCQUFxQjtJQUV2QkMsWUFBWSxHQUFBckMsS0FBQSxDQUFacUMsWUFBWTtJQUNaQyxhQUFhLEdBQUF0QyxLQUFBLENBQWJzQyxhQUFhO0lBQ2JDLE1BQU0sR0FBQXZDLEtBQUEsQ0FBTnVDLE1BQU07SUFDTkMsb0JBQW9CLEdBQUF4QyxLQUFBLENBQXBCd0Msb0JBQW9CO0lBQ3BCQyxxQkFBcUIsR0FBQXpDLEtBQUEsQ0FBckJ5QyxxQkFBcUI7SUFDckJDLGNBQWMsR0FBQTFDLEtBQUEsQ0FBZDBDLGNBQWM7SUFDZEMsZUFBZSxHQUFBM0MsS0FBQSxDQUFmMkMsZUFBZTtJQUNmQyxvQkFBb0IsR0FBQTVDLEtBQUEsQ0FBcEI0QyxvQkFBb0I7SUFDcEJDLFNBQVMsR0FBQTdDLEtBQUEsQ0FBVDZDLFNBQVM7SUFDVEMsS0FBSyxHQUFBOUMsS0FBQSxDQUFMOEMsS0FBSztJQUNMQyxtQkFBbUIsR0FBQS9DLEtBQUEsQ0FBbkIrQyxtQkFBbUI7SUFDbkJDLGdCQUFnQixHQUFBaEQsS0FBQSxDQUFoQmdELGdCQUFnQjtFQUVoQixJQUFNbEUsTUFBTSxHQUFHaUQsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUUxQyxTQUFTO0VBQ25DLElBQUE0RCxlQUFBLEdBQTJCckksS0FBSyxDQUFDc0ksUUFBUSxDQUFDO01BQ3hDQyxrQkFBa0IsRUFBRSxDQUFDO01BQ3JCQyxnQkFBZ0IsRUFBRSxJQUFJO01BQ3RCQyxlQUFlLEVBQUUsS0FBSztNQUN0QkMsa0JBQWtCLEVBQUUsS0FBSztNQUN6QkMsaUJBQWlCLEVBQUUsSUFBSTtNQUN2QkMsYUFBYSxFQUFFLEtBQUs7TUFDcEJDLEdBQUcsRUFBRTNDLE1BQU07TUFDWDRDLFdBQVcsRUFBRSxLQUFLO01BQ2xCQyxXQUFXLEVBQUUsSUFBSTtNQUNqQkMsYUFBYSxFQUFFLEtBQUs7TUFDcEJDLG9CQUFvQixFQUFFLElBQUk7TUFDMUJDLFVBQVUsRUFBRSxJQUFJQyxHQUFHLENBQUMsQ0FBQztNQUNyQkMsa0JBQWtCLEVBQUUsS0FBSztNQUN6QkMsU0FBUyxFQUFFLEtBQUs7TUFDaEJDLFFBQVEsRUFBRSxJQUFJO01BQ2RDLGVBQWUsRUFBRSxLQUFLO01BQ3RCQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7TUFDdEJDLHFCQUFxQixFQUFFLElBQUk7TUFDM0JDLFlBQVksRUFBRSxJQUFJO01BQ2xCQyxlQUFlLEVBQUUsSUFBSVIsR0FBRyxDQUFDLENBQUM7TUFDMUJTLHlCQUF5QixFQUFFO0lBQzdCLENBQUMsQ0FBQztJQUFBQyxnQkFBQSxHQUFBdEssY0FBQSxDQUFBOEksZUFBQTtJQXRCS3lCLEtBQUssR0FBQUQsZ0JBQUE7SUFBRUUsU0FBUyxHQUFBRixnQkFBQTtFQXVCdkIsSUFDRXRCLGtCQUFrQixHQXFCaEJ1QixLQUFLLENBckJQdkIsa0JBQWtCO0lBQ2xCQyxnQkFBZ0IsR0FvQmRzQixLQUFLLENBcEJQdEIsZ0JBQWdCO0lBQ2hCQyxlQUFlLEdBbUJicUIsS0FBSyxDQW5CUHJCLGVBQWU7SUFDZkMsa0JBQWtCLEdBa0JoQm9CLEtBQUssQ0FsQlBwQixrQkFBa0I7SUFDbEJDLGlCQUFpQixHQWlCZm1CLEtBQUssQ0FqQlBuQixpQkFBaUI7SUFDakJDLGFBQWEsR0FnQlhrQixLQUFLLENBaEJQbEIsYUFBYTtJQUNiQyxHQUFHLEdBZURpQixLQUFLLENBZlBqQixHQUFHO0lBQ0hDLFdBQVcsR0FjVGdCLEtBQUssQ0FkUGhCLFdBQVc7SUFDWEMsV0FBVyxHQWFUZSxLQUFLLENBYlBmLFdBQVc7SUFDWEMsYUFBYSxHQVlYYyxLQUFLLENBWlBkLGFBQWE7SUFDYkMsb0JBQW9CLEdBV2xCYSxLQUFLLENBWFBiLG9CQUFvQjtJQUNwQkMsVUFBVSxHQVVSWSxLQUFLLENBVlBaLFVBQVU7SUFDVkUsa0JBQWtCLEdBU2hCVSxLQUFLLENBVFBWLGtCQUFrQjtJQUNsQkMsU0FBUyxHQVFQUyxLQUFLLENBUlBULFNBQVM7SUFDVEMsUUFBUSxHQU9OUSxLQUFLLENBUFBSLFFBQVE7SUFDUkMsZUFBZSxHQU1iTyxLQUFLLENBTlBQLGVBQWU7SUFDZkMsa0JBQWtCLEdBS2hCTSxLQUFLLENBTFBOLGtCQUFrQjtJQUNsQkcsZUFBZSxHQUliRyxLQUFLLENBSlBILGVBQWU7SUFDZkMseUJBQXlCLEdBR3ZCRSxLQUFLLENBSFBGLHlCQUF5QjtJQUN6QkgscUJBQXFCLEdBRW5CSyxLQUFLLENBRlBMLHFCQUFxQjtJQUNyQkMsWUFBWSxHQUNWSSxLQUFLLENBRFBKLFlBQVk7RUFHZCxJQUFBTSxvQkFBQSxHQUFnQzdCLG1CQUFtQixDQUFDeEYsa0JBQWtCLEdBQUcwRCxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQUE0RCxxQkFBQSxHQUFBMUssY0FBQSxDQUFBeUssb0JBQUE7SUFBL0VFLFFBQVEsR0FBQUQscUJBQUE7SUFBRUUsV0FBVyxHQUFBRixxQkFBQTtFQUM1QixJQUFNRyxLQUFLLEdBQUd0RCxJQUFJLENBQUM1QyxNQUFNLENBQUM7RUFFMUIsU0FBU21HLFFBQVFBLENBQUNDLFFBQVEsRUFBRTtJQUMxQlAsU0FBUyxDQUFDLFVBQUFRLFNBQVM7TUFBQSxPQUFBOUwsYUFBQSxDQUFBQSxhQUFBLEtBQVU4TCxTQUFTLEdBQUtELFFBQVE7SUFBQSxDQUFHLENBQUM7RUFDekQ7RUFFQTFELFVBQVUsR0FBQW5JLGFBQUEsQ0FBQUEsYUFBQSxLQUNMbUksVUFBVTtJQUNiNEQsS0FBSyxFQUFFO01BQUVDLE1BQU0sRUFBRTtJQUFFLENBQUM7SUFDcEJDLE9BQU8sRUFBRTtFQUFJLEVBQ2QsRUFBQzs7RUFFRixJQUFBQyxxQkFBQSxHQU1Jakosb0JBQW9CLENBQUM7TUFDdkJ3RSxNQUFNLEVBQUUyQyxHQUFHO01BQ1h4QyxPQUFPLEVBQVBBLE9BQU87TUFDUEUsa0JBQWtCLEVBQWxCQSxrQkFBa0I7TUFDbEJHLFlBQVksRUFBWkEsWUFBWTtNQUNaQyxhQUFhLEVBQWJBLGFBQWE7TUFDYkMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZFLElBQUksRUFBSkEsSUFBSTtNQUNKUSxVQUFVLEVBQVZBLFVBQVU7TUFDVkUscUJBQXFCLEVBQXJCQSxxQkFBcUI7TUFDckJILEtBQUssRUFBTEEsS0FBSztNQUNMdUIsYUFBYSxFQUFiQSxhQUFhO01BQ2J6QixTQUFTLEVBQUVxQixnQkFBZ0IsSUFBSXJCLFNBQVM7TUFDeENJLFVBQVUsRUFBVkEsVUFBVTtNQUNWRSxZQUFZLEVBQVpBLFlBQVk7TUFDWm1ELFdBQVcsRUFBRSxTQUFBQSxZQUFDek8sS0FBSztRQUFBLE9BQUtrTyxRQUFRLENBQUM7VUFBRWYsUUFBUSxFQUFFbk47UUFBTSxDQUFDLENBQUM7TUFBQTtNQUNyRHdMLE1BQU0sRUFBTkEsTUFBTTtNQUNOTyxLQUFLLEVBQUxBLEtBQUs7TUFDTEMsbUJBQW1CLEVBQW5CQSxtQkFBbUI7TUFDbkIwQyxTQUFTLEVBQUU7SUFDYixDQUFDLENBQUM7SUF6QkFDLGNBQWMsR0FBQUgscUJBQUEsQ0FBZEcsY0FBYztJQUNkN0csZUFBZSxHQUFBMEcscUJBQUEsQ0FBZjFHLGVBQWU7SUFDZjhHLFlBQVksR0FBQUoscUJBQUEsQ0FBWkksWUFBWTtJQUNaQyxpQkFBaUIsR0FBQUwscUJBQUEsQ0FBakJLLGlCQUFpQjtJQUNqQkMsb0JBQW9CLEdBQUFOLHFCQUFBLENBQXBCTSxvQkFBb0I7RUF1QnRCLElBQU1DLGVBQWUsR0FBR2pILGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFTSxhQUFhO0VBQ3REO0VBQ0EsSUFBTTRHLElBQUksTUFBQWxHLE1BQUEsQ0FBTWhCLGVBQWUsYUFBZkEsZUFBZSxnQkFBQW9CLHNCQUFBLEdBQWZwQixlQUFlLENBQUVPLFFBQVEsY0FBQWEsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQmlDLFVBQVUsT0FBQXJDLE1BQUEsQ0FBSWhCLGVBQWUsYUFBZkEsZUFBZSxnQkFBQXFCLHNCQUFBLEdBQWZyQixlQUFlLENBQUVPLFFBQVEsY0FBQWMsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQmIsU0FBUyxDQUFFO0VBQy9GLElBQU0yRyxVQUFVLEdBQUcsQ0FBQW5ILGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFa0QsU0FBUyxLQUFJLElBQUk7RUFDckQsSUFBTWtFLGtCQUFrQixHQUFHbkosZUFBZSxFQUFBcUQsc0JBQUEsR0FBQ3RCLGVBQWUsQ0FBQyxVQUFVLENBQUMsY0FBQXNCLHNCQUFBLHVCQUEzQkEsc0JBQUEsQ0FBNkJkLFNBQVMsQ0FBQzs7RUFHbEY7RUFDQSxJQUFNNkcsY0FBYyxHQUFHLENBQUFySCxlQUFlLGFBQWZBLGVBQWUsZ0JBQUF1QixzQkFBQSxHQUFmdkIsZUFBZSxDQUFFTyxRQUFRLGNBQUFnQixzQkFBQSx1QkFBekJBLHNCQUFBLENBQTJCZixTQUFTLEtBQUk4QyxVQUFVO0VBQ3pFO0VBQ0EsSUFBSWdFLElBQUksR0FBRyxDQUFBdEgsZUFBZSxhQUFmQSxlQUFlLGdCQUFBd0Isc0JBQUEsR0FBZnhCLGVBQWUsQ0FBRU8sUUFBUSxjQUFBaUIsc0JBQUEsdUJBQXpCQSxzQkFBQSxDQUEyQm9ELEdBQUcsS0FBSTNDLE1BQU07RUFDbkQsSUFBTXNGLGdCQUFnQixHQUFHLENBQUMsRUFBRXpFLFlBQVksSUFBSVosY0FBYyxJQUFLb0IsVUFBVSxLQUFLaEYsZUFBZ0I7RUFBSTtFQUM5RmdKLElBQUksS0FBSyxRQUFRLElBQU1BLElBQUksQ0FBQ3pHLFFBQVEsQ0FBQ2lDLFlBQVksQ0FBRSxDQUFDLENBQUMsRUFBQzs7RUFFMUQsSUFBQTBFLGNBQUEsR0FXSXZLLGFBQWEsQ0FBQztNQUNoQmdGLE1BQU0sRUFBTkEsTUFBTTtNQUNOQyxjQUFjLEVBQUVxRixnQkFBZ0IsR0FBR3JGLGNBQWMsR0FBRyxJQUFJO01BQ3hEakMsTUFBTSxFQUFOQSxNQUFNO01BQ053SCxNQUFNLEVBQUU3RSxFQUFFO01BQ1Z5RSxjQUFjLEVBQWRBLGNBQWM7TUFDZC9DLGtCQUFrQixFQUFsQkEsa0JBQWtCO01BQ2xCakIsVUFBVSxFQUFWQSxVQUFVO01BQ1ZQLFlBQVksRUFBRXlFLGdCQUFnQixHQUFHekUsWUFBWSxHQUFHLElBQUk7TUFDcERNLEtBQUssRUFBTEEsS0FBSztNQUNMSixlQUFlLEVBQWZBLGVBQWU7TUFDZlUsTUFBTSxFQUFOQSxNQUFNO01BQ05RLG1CQUFtQixFQUFuQkE7SUFDRixDQUFDLENBQUM7SUFBQXdELG9CQUFBLEdBQUFGLGNBQUEsQ0F2QkEzQixLQUFLO0lBQ0g4QixnQkFBZ0IsR0FBQUQsb0JBQUEsQ0FBaEJDLGdCQUFnQjtJQUNoQkMsa0JBQWtCLEdBQUFGLG9CQUFBLENBQWxCRSxrQkFBa0I7SUFDREMsZ0JBQWdCLEdBQUFILG9CQUFBLENBQWpDcEMsZUFBZTtJQUNmd0MscUJBQXFCLEdBQUFKLG9CQUFBLENBQXJCSSxxQkFBcUI7SUFBQUMscUJBQUEsR0FBQVAsY0FBQSxDQUV2QlEsT0FBTztJQUNNQyxlQUFlLEdBQUFGLHFCQUFBLENBQTFCRyxTQUFTO0lBQ1RDLFVBQVUsR0FBQUoscUJBQUEsQ0FBVkksVUFBVTtFQWlCZCxJQUFNQyxnQkFBZ0IsR0FBR3ZMLGVBQWUsQ0FBQztJQUFFNkcsTUFBTSxFQUFOQSxNQUFNO0lBQUVOLEtBQUssRUFBTEEsS0FBSztJQUFFOEQsSUFBSSxFQUFKQSxJQUFJO0lBQUVtQixVQUFVLEVBQUVULGtCQUFrQjtJQUFFVSxPQUFPLEVBQUVwRyxjQUFjLGFBQWRBLGNBQWMsZ0JBQUFULHFCQUFBLEdBQWRTLGNBQWMsQ0FBRXFHLEtBQUssY0FBQTlHLHFCQUFBLHVCQUFyQkEscUJBQUEsQ0FBdUIrRztFQUFLLENBQUMsQ0FBQztFQUN2SSxJQUFBQyxxQkFBQSxHQUtJTCxnQkFBZ0IsQ0FKbEJ2QyxLQUFLO0lBQ1U2QyxhQUFhLEdBQUFELHFCQUFBLENBQTFCRSxXQUFXO0lBQ0dDLGVBQWUsR0FBQUgscUJBQUEsQ0FBN0JJLFlBQVk7RUFJaEIsSUFBTUMsaUJBQWlCLEdBQUcvTCxxQkFBcUIsQ0FBQztJQUM5Q2dNLFFBQVEsRUFBRTNELFNBQVM7SUFDbkJ2SSxlQUFlLEVBQUV1TCxnQkFBZ0I7SUFDakNZLFFBQVEsRUFBRSxTQUFBQSxTQUFBLEVBQU07TUFDZDlLLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ3pKLElBQUksQ0FBQztRQUFBLE9BQU11TCxlQUFlLGFBQWZBLGVBQWUsdUJBQWZBLGVBQWUsQ0FBRWlKLGNBQWMsQ0FBQyxDQUFDO01BQUEsRUFBQztJQUMxRDtFQUNGLENBQUMsQ0FBQztFQUVGLElBQ0VDLG9CQUFvQixHQVFsQkosaUJBQWlCLENBUm5CSSxvQkFBb0I7SUFDcEJDLGlCQUFpQixHQU9mTCxpQkFBaUIsQ0FQbkJLLGlCQUFpQjtJQUNqQkMsa0JBQWtCLEdBTWhCTixpQkFBaUIsQ0FObkJNLGtCQUFrQjtJQUNQQyxlQUFlLEdBS3hCUCxpQkFBaUIsQ0FMbkJRLFNBQVM7SUFDVEMsYUFBYSxHQUlYVCxpQkFBaUIsQ0FKbkJTLGFBQWE7SUFDYkMsV0FBVyxHQUdUVixpQkFBaUIsQ0FIbkJVLFdBQVc7SUFDWEMsVUFBVSxHQUVSWCxpQkFBaUIsQ0FGbkJXLFVBQVU7SUFDVkMsaUJBQWlCLEdBQ2ZaLGlCQUFpQixDQURuQlksaUJBQWlCO0VBR25CLElBQU1DLE9BQU8sR0FBRyxTQUFWQSxPQUFPQSxDQUFBLEVBQVM7SUFDcEJ4QixVQUFVLENBQUMsQ0FBQztJQUNackgsT0FBTyxDQUFDOEksR0FBRywyREFBMkQzSCxNQUFNLENBQUM7SUFDN0VtRSxRQUFRLENBQUM7TUFDUHpCLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxHQUFHLEVBQUUzQztJQUNQLENBQUMsQ0FBQztJQUNGL0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDekosSUFBSSxDQUFDLFlBQU07TUFDcEIyUixRQUFRLENBQUM7UUFDUDlCLGtCQUFrQixFQUFFQSxrQkFBa0IsR0FBRyxDQUFDO1FBQUU7UUFDNUNLLGFBQWEsRUFBRTtNQUNqQixDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7RUFDSixDQUFDO0VBRUQsSUFBQWtGLG9CQUFBLEdBQTJEN00sbUJBQW1CLENBQUM7TUFDN0UrTCxRQUFRLEVBQUUzRCxTQUFTO01BQ25CdkksZUFBZSxFQUFFdUwsZ0JBQWdCO01BQ2pDdUIsT0FBTyxFQUFQQTtJQUNGLENBQUMsQ0FBQztJQUppQkcsY0FBYyxHQUFBRCxvQkFBQSxDQUF6QlAsU0FBUztJQUFrQlMsbUJBQW1CLEdBQUFGLG9CQUFBLENBQW5CRSxtQkFBbUI7O0VBTXREO0VBQ0E7RUFDQWhPLEtBQUssQ0FBQ2lPLFNBQVMsQ0FBQyxZQUFNO0lBQ3BCLElBQUkzQyxjQUFjLElBQUksQ0FBQ0Qsa0JBQWtCLEVBQUU7TUFDekNqRCxnQkFBZ0IsSUFBSUEsZ0JBQWdCLENBQ2xDa0QsY0FBYyxFQUNkckgsZUFBZSxDQUFDaUUsS0FBSyxFQUNyQjJFLGVBQWUsRUFDZkYsYUFBYSxFQUNiUSxvQkFBb0IsRUFDcEJhLG1CQUNGLENBQUM7SUFDSDtFQUNGLENBQUMsRUFBQyxDQUFDMUMsY0FBYyxFQUFFckgsZUFBZSxDQUFDaUUsS0FBSyxFQUFFMkUsZUFBZSxFQUFFRixhQUFhLENBQUMsQ0FBQztFQUUxRTNNLEtBQUssQ0FBQ2lPLFNBQVMsQ0FBQyxZQUFNO0lBQ3BCLElBQUlYLGVBQWUsRUFBRTtNQUNuQnpGLHFCQUFxQixhQUFyQkEscUJBQXFCLGVBQXJCQSxxQkFBcUIsQ0FBRyxVQUFBcUcsZ0JBQWdCO1FBQUEsVUFBQWpKLE1BQUEsQ0FBQXBILGtCQUFBLENBQVFxUSxnQkFBZ0IsSUFBRTVDLGNBQWM7TUFBQSxDQUFDLENBQUM7SUFDcEYsQ0FBQyxNQUFNO01BQ0x6RCxxQkFBcUIsYUFBckJBLHFCQUFxQixlQUFyQkEscUJBQXFCLENBQUcsVUFBQXFHLGdCQUFnQjtRQUFBLE9BQUlBLGdCQUFnQixDQUFDM1AsTUFBTSxDQUFDLFVBQUFtTixNQUFNO1VBQUEsT0FBSUEsTUFBTSxLQUFLSixjQUFjO1FBQUEsRUFBQztNQUFBLEVBQUM7SUFDM0c7RUFDRixDQUFDLEVBQUUsQ0FBQ2dDLGVBQWUsQ0FBQyxDQUFDO0VBRXJCdE4sS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBSUYsY0FBYyxFQUFFO01BQ2xCbkcsb0JBQW9CLGFBQXBCQSxvQkFBb0IsZUFBcEJBLG9CQUFvQixDQUFHLFVBQUFzRyxnQkFBZ0I7UUFBQSxVQUFBakosTUFBQSxDQUFBcEgsa0JBQUEsQ0FBUXFRLGdCQUFnQixJQUFFNUMsY0FBYztNQUFBLENBQUMsQ0FBQztJQUNuRixDQUFDLE1BQU07TUFDTDFELG9CQUFvQixhQUFwQkEsb0JBQW9CLGVBQXBCQSxvQkFBb0IsQ0FBRyxVQUFBc0csZ0JBQWdCO1FBQUEsT0FBSUEsZ0JBQWdCLENBQUMzUCxNQUFNLENBQUMsVUFBQW1OLE1BQU07VUFBQSxPQUFJQSxNQUFNLEtBQUtKLGNBQWM7UUFBQSxFQUFDO01BQUEsRUFBQztJQUMxRztFQUNGLENBQUMsRUFBRSxDQUFDeUMsY0FBYyxDQUFDLENBQUM7RUFFcEIsSUFBTUksVUFBVSxHQUFHM0MsZ0JBQWdCLEdBQUdPLHFCQUFxQixHQUFHN0YsTUFBTTtFQUNwRSxJQUFJa0ksY0FBYztFQUVsQixJQUFJLENBQUM1QyxnQkFBZ0IsSUFBSSxDQUFDNUMsYUFBYSxFQUFFO0lBQUU7SUFDekN5QixRQUFRLENBQUM7TUFBRXpCLGFBQWEsRUFBRTtJQUFLLENBQUMsQ0FBQztFQUNuQztFQUVBNUksS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFDcEJsSixPQUFPLENBQUM4SSxHQUFHLCtCQUErQjtNQUFFM0osTUFBTSxFQUFOQSxNQUFNO01BQUVtRCxLQUFLLEVBQUxBLEtBQUs7TUFBRUMsVUFBVSxFQUFWQSxVQUFVO01BQUVDLFVBQVUsRUFBVkE7SUFBVyxDQUFDLENBQUM7SUFFcEYsSUFBSWlFLGdCQUFnQixFQUFFO01BQUU7TUFDdEJuQixRQUFRLENBQUM7UUFBRXpCLGFBQWEsRUFBRSxLQUFLO1FBQUVMLGtCQUFrQixFQUFFQSxrQkFBa0IsR0FBRztNQUFFLENBQUMsQ0FBQztJQUNoRjtFQUNGLENBQUMsRUFBRSxDQUFDckUsTUFBTSxFQUFFbUQsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsQ0FBQyxDQUFDO0VBRTNDdkgsS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBSSxDQUFDM00sT0FBTyxDQUFDNkYsU0FBUyxFQUFFcUIsZ0JBQWdCLENBQUMsRUFBRTtNQUN6QztNQUNBNkIsUUFBUSxDQUFDO1FBQUU3QixnQkFBZ0IsRUFBRXJCO01BQVUsQ0FBQyxDQUFDO0lBQzNDO0VBQ0YsQ0FBQyxFQUFFLENBQUNBLFNBQVMsQ0FBQyxDQUFDO0VBRWZuSCxLQUFLLENBQUNpTyxTQUFTLENBQUMsWUFBTTtJQUFFO0lBQ3RCLElBQUksQ0FBQ3JGLGFBQWEsSUFBSWdELGdCQUFnQixFQUFHO01BQ3ZDN0csT0FBTyxDQUFDOEksR0FBRyxzQ0FBQTVJLE1BQUEsQ0FBc0MyRyxnQkFBZ0IseUJBQUEzRyxNQUFBLENBQXNCa0osVUFBVSxDQUFFLENBQUM7TUFDcEc5RCxRQUFRLENBQUM7UUFBRXpCLGFBQWEsRUFBRSxJQUFJO1FBQUVDLEdBQUcsRUFBRXNGO01BQVcsQ0FBQyxDQUFDO0lBQ3BEO0VBQ0YsQ0FBQyxFQUFFLENBQUN2QyxnQkFBZ0IsQ0FBQyxDQUFDO0VBRXRCNUwsS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFBRTtJQUN0QixJQUFJbkMsZ0JBQWdCLEtBQUt2QyxlQUFlLEVBQUU7TUFDeENjLFFBQVEsQ0FBQztRQUFFZCxlQUFlLEVBQUV1QztNQUFpQixDQUFDLENBQUM7SUFDakQ7RUFDRixDQUFDLEVBQUUsQ0FBQ0EsZ0JBQWdCLEVBQUV2QyxlQUFlLENBQUMsQ0FBQztFQUV2Q3ZKLEtBQUssQ0FBQ2lPLFNBQVMsQ0FBQyxZQUFNO0lBQUEsSUFBQUksc0JBQUE7SUFBRTtJQUN0QixJQUFNbFMsS0FBSyxHQUFHOEgsZUFBZSxhQUFmQSxlQUFlLGdCQUFBb0ssc0JBQUEsR0FBZnBLLGVBQWUsQ0FBRXFLLGNBQWMsY0FBQUQsc0JBQUEsdUJBQS9CQSxzQkFBQSxDQUFrQzFOLFdBQVcsQ0FBQztJQUU1RCxJQUFJeEUsS0FBSyxFQUFFO01BQUU7TUFDWCxJQUFNbVMsY0FBYyxHQUFHckssZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUVxSyxjQUFjO01BQ3RELElBQU03RyxhQUFZLEdBQUcxRixlQUFlLENBQUNrQyxlQUFlLENBQUM7TUFDckQsSUFBTXNLLE9BQU8sR0FBR3ZNLGtCQUFrQixDQUFDc00sY0FBYyxFQUFFM0csTUFBTSxFQUFFRixhQUFZLEVBQUUyQyxLQUFLLENBQUM7TUFDL0UsSUFBTW9FLGFBQWEsR0FBR0YsY0FBYyxDQUFDMU4seUJBQXlCLENBQUM7TUFDL0RxRyxlQUFlLElBQUlBLGVBQWUsQ0FBQ3NILE9BQU8sRUFBRUMsYUFBYSxFQUFFRixjQUFjLENBQUM7SUFDNUU7RUFDRixDQUFDLEVBQUUsQ0FBQ3JLLGVBQWUsYUFBZkEsZUFBZSxnQkFBQTBCLHNCQUFBLEdBQWYxQixlQUFlLENBQUVxSyxjQUFjLGNBQUEzSSxzQkFBQSx1QkFBL0JBLHNCQUFBLENBQWtDaEYsV0FBVyxDQUFDLENBQUMsQ0FBQztFQUVwRCxJQUFJc0QsZUFBZSxDQUFDaUUsS0FBSyxJQUFJakUsZUFBZSxDQUFDd0ssT0FBTyxFQUFFO0lBQ3BETCxjQUFjLE1BQUFuSixNQUFBLENBQU1oQixlQUFlLENBQUNpRSxLQUFLLFFBQUFqRCxNQUFBLENBQUtoQixlQUFlLENBQUN3SyxPQUFPLENBQUU7SUFDdkV4RCxvQkFBb0IsQ0FBQ3lELFdBQVcsQ0FBQ3pLLGVBQWUsQ0FBQ3dELFlBQVksRUFBRTJHLGNBQWMsQ0FBQztFQUNoRixDQUFDLE1BQU07SUFDTEEsY0FBYyx3Q0FBd0M7RUFDeEQ7O0VBRUE7RUFDQSxTQUFTTyxvQkFBb0JBLENBQUEsRUFBRztJQUM5QixJQUFNQyx3QkFBd0IsR0FBRzNNLDJCQUEyQixDQUFDO01BQzNEVyxLQUFLLEVBQUxBLEtBQUs7TUFDTDZFLFlBQVksRUFBRXhELGVBQWUsQ0FBQ3dELFlBQVk7TUFDMUNzRCxZQUFZLEVBQVpBLFlBQVk7TUFDWkUsb0JBQW9CLEVBQXBCQTtJQUNGLENBQUMsQ0FBQztJQUVGLG9CQUFPakwsS0FBQSxDQUFBNk8sYUFBQSxDQUFDcE4saUJBQWlCLEVBQUFqRSxRQUFBLEtBQUtvUix3QkFBd0I7TUFBRS9MLEtBQUssRUFBRUEsS0FBTTtNQUFDaU0sWUFBWSxFQUFFeEY7SUFBUyxFQUFFLENBQUM7RUFDbEc7RUFFQSxTQUFTeUYsV0FBV0EsQ0FBQSxFQUFHO0lBQ3JCO0lBQ0ExRSxRQUFRLENBQUM7TUFBRWYsUUFBUSxFQUFFO0lBQUssQ0FBQyxDQUFDO0VBQzlCOztFQUVBO0VBQ0EsSUFBTTBGLFdBQVcsR0FBRy9LLGVBQWUsYUFBZkEsZUFBZSxnQkFBQTJCLHVCQUFBLEdBQWYzQixlQUFlLENBQUVPLFFBQVEsY0FBQW9CLHVCQUFBLHVCQUF6QkEsdUJBQUEsQ0FBMkIwQixVQUFVO0VBQ3pELElBQU0ySCxRQUFRLEdBQUd6SSxXQUFXLENBQUM7SUFBRWMsVUFBVSxFQUFFMEg7RUFBWSxDQUFDLENBQUM7RUFDekQsSUFBTUUsU0FBUyxHQUFHLENBQUNELFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFQyxTQUFTLEtBQUssS0FBSztFQUNoRCxJQUFNQyxVQUFVLEdBQUczRyxnQkFBZ0IsSUFBSXJCLFNBQVM7RUFFaEQsSUFBTWlJLFFBQVEsR0FBSUosV0FBVyxLQUFLLEtBQU07RUFDeEMsSUFBTUssVUFBVSxHQUFHRCxRQUFRLEdBQUcsR0FBRyxHQUFHLENBQUMsRUFBQztFQUN0QyxJQUFNRSxjQUFjLEdBQUdwRixRQUFRLEdBQUdtRixVQUFVO0VBRTVDLElBQU1FLEtBQUssR0FBRyxJQUFJO0VBQ2xCLElBQUFDLGFBQUEsR0FPSXpPLFlBQVksQ0FBQztNQUFFd08sS0FBSyxFQUFMQTtJQUFNLENBQUMsQ0FBQztJQUFBRSxtQkFBQSxHQUFBRCxhQUFBLENBTnpCMUYsS0FBSztJQUNINEYsT0FBTyxHQUFBRCxtQkFBQSxDQUFQQyxPQUFPO0lBQUVDLE9BQU8sR0FBQUYsbUJBQUEsQ0FBUEUsT0FBTztJQUFFQyxTQUFTLEdBQUFILG1CQUFBLENBQVRHLFNBQVM7SUFBRUMsWUFBWSxHQUFBSixtQkFBQSxDQUFaSSxZQUFZO0lBQUFDLHFCQUFBLEdBQUFOLGFBQUEsQ0FFM0N2RCxPQUFPO0lBQ0w4RCxVQUFVLEdBQUFELHFCQUFBLENBQVZDLFVBQVU7SUFBRUMsWUFBWSxHQUFBRixxQkFBQSxDQUFaRSxZQUFZO0lBQUVDLGVBQWUsR0FBQUgscUJBQUEsQ0FBZkcsZUFBZTtFQUk3QyxJQUFNQyxRQUFRLEdBQUdsUSxLQUFLLENBQUNtUSxPQUFPLENBQUM7SUFBQSxPQUFPO01BQ3BDQyxVQUFVLEVBQUUsV0FBVztNQUN2QmxHLFFBQVEsS0FBQWpGLE1BQUEsQ0FBS29MLElBQUksQ0FBQ0MsS0FBSyxDQUFDaEIsY0FBYyxHQUFHLEdBQUcsQ0FBQztJQUMvQyxDQUFDO0VBQUEsQ0FBQyxFQUFFLENBQUNBLGNBQWMsQ0FBQyxDQUFDO0VBRXJCLElBQU1pQixZQUFZLEdBQUd2USxLQUFLLENBQUNtUSxPQUFPLENBQUM7SUFBQSxPQUFPO01BQ3hDQyxVQUFVLEVBQUUsV0FBVztNQUN2QmxHLFFBQVEsS0FBQWpGLE1BQUEsQ0FBS3FLLGNBQWM7SUFDN0IsQ0FBQztFQUFBLENBQUMsRUFBRSxDQUFDQSxjQUFjLENBQUMsQ0FBQztFQUVyQixJQUFNa0IsY0FBYyxnQkFBR3hRLEtBQUEsQ0FBQTZPLGFBQUEsQ0FBQ3hNLEtBQUssUUFBRStMLGNBQXNCLENBQUM7RUFDdEQsSUFBSXFDLG1CQUFtQixHQUFHbEssa0JBQWtCO0VBRTVDLElBQUlBLGtCQUFrQixLQUFLNUosU0FBUyxFQUFFO0lBQUU7SUFDdEM4VCxtQkFBbUIsR0FBRyxDQUFDcEYsa0JBQWtCO0VBQzNDO0VBRUEsSUFBTXFGLFVBQVUsR0FBRyxDQUFDckYsa0JBQWtCO0VBQ3RDLElBQU1zRixlQUFlLEdBQUcsQ0FBQ3RGLGtCQUFrQjtFQUMzQyxJQUFNdUYsZUFBZSxHQUFHOUYsY0FBYyxHQUFHcEUsWUFBWSxHQUFHQyxhQUFhO0VBQ3JFLElBQU1rSyw0QkFBNEIsR0FBRztJQUNuQzFLLGNBQWMsRUFBRXFGLGdCQUFnQixHQUFHckYsY0FBYyxHQUFHLElBQUk7SUFDeERDLFNBQVMsRUFBVEEsU0FBUztJQUNUMEssZUFBZSxFQUFFM0IsVUFBVTtJQUMzQnVCLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxlQUFlLEVBQWZBLGVBQWU7SUFDZi9KLFVBQVUsRUFBVkEsVUFBVTtJQUNWO0lBQ0FrRSxjQUFjLEVBQWRBLGNBQWM7SUFDZC9ELFlBQVksRUFBRXlFLGdCQUFnQixHQUFHekUsWUFBWSxHQUFHLElBQUk7SUFDcERTLHFCQUFxQixFQUFyQkEscUJBQXFCO0lBQ3JCO0lBQ0FvSixlQUFlLEVBQWZBLGVBQWU7SUFDZjNNLGVBQWUsRUFBZkEsZUFBZTtJQUNmK0csaUJBQWlCLEVBQWpCQSxpQkFBaUI7SUFDakJrQixlQUFlLEVBQWZBLGVBQWU7SUFDZm5FLGVBQWUsRUFBRWdKLGdCQUFnQjtJQUNqQ0MsY0FBYyxFQUFFNUcsS0FBSyxHQUFHOUgsWUFBWSxHQUFHRSxZQUFZO0lBQ25EeU8sY0FBYyxFQUFFaEMsUUFBUTtJQUN4Qi9HLEtBQUssRUFBRWtHLGNBQWM7SUFDckJyQyxxQkFBcUIsRUFBRWxEO0VBQ3pCLENBQUM7O0VBRUQ7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQVNrSSxnQkFBZ0JBLENBQUNHLFlBQVksRUFBRUMsS0FBSyxFQUFBQyxLQUFBLEVBQTREO0lBQUEsSUFBQUMsZ0JBQUEsR0FBQUQsS0FBQSxDQUF4REUsVUFBVTtNQUFWQSxVQUFVLEdBQUFELGdCQUFBLGNBQUcsSUFBSSxHQUFBQSxnQkFBQTtNQUFBRSxrQkFBQSxHQUFBSCxLQUFBLENBQUVJLFlBQVk7TUFBWkEsWUFBWSxHQUFBRCxrQkFBQSxjQUFHLElBQUksR0FBQUEsa0JBQUE7TUFBQUUsV0FBQSxHQUFBTCxLQUFBLENBQUV0SCxLQUFLO01BQUxBLEtBQUssR0FBQTJILFdBQUEsY0FBRyxJQUFJLEdBQUFBLFdBQUE7SUFDbkcsSUFBTUMsbUJBQW1CLEdBQUFqVCxhQUFBLEtBQVErSyxrQkFBa0IsQ0FBRTtJQUVyRCxJQUFJMkgsS0FBSyxFQUFFO01BQ1QsSUFBSU8sbUJBQW1CLENBQUM5YixjQUFjLENBQUNzYixZQUFZLENBQUMsRUFBRTtRQUNwRCxPQUFPUSxtQkFBbUIsQ0FBQ1IsWUFBWSxDQUFDO01BQzFDO0lBQ0YsQ0FBQyxNQUFNO01BQ0xRLG1CQUFtQixDQUFDUixZQUFZLENBQUMsR0FBRztRQUFFSSxVQUFVLEVBQVZBLFVBQVU7UUFBRUUsWUFBWSxFQUFaQSxZQUFZO1FBQUUxSCxLQUFLLEVBQUxBO01BQU0sQ0FBQyxFQUFDO0lBQzFFOztJQUVBLElBQU02SCxtQkFBbUIsR0FBRyxDQUFDLENBQUNsYyxNQUFNLENBQUNzRixJQUFJLENBQUMyVyxtQkFBbUIsQ0FBQyxDQUFDdFgsTUFBTTtJQUVyRSxJQUFJc08sa0JBQWtCLElBQUlpSixtQkFBbUIsRUFBRTtNQUM3QzVKLGVBQWUsSUFBSUEsZUFBZSxDQUFDUixVQUFVLEVBQUUsQ0FBQ29LLG1CQUFtQixDQUFDO01BQ3BFdEgsUUFBUSxDQUFDO1FBQUUzQixrQkFBa0IsRUFBRWlKO01BQW9CLENBQUMsQ0FBQztJQUN2RDtJQUVBLElBQUksQ0FBQ3JRLE9BQU8sQ0FBQ29RLG1CQUFtQixFQUFFbEksa0JBQWtCLENBQUMsRUFBRTtNQUNyRGEsUUFBUSxDQUFDO1FBQUViLGtCQUFrQixFQUFFa0k7TUFBb0IsQ0FBQyxDQUFDO0lBQ3ZEO0VBQ0Y7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFLFNBQVNFLGNBQWNBLENBQUNDLFFBQVEsRUFBRUMsTUFBTSxFQUFFO0lBQ3hDLElBQU12RyxJQUFJLEdBQUdzRyxRQUFRLEdBQUcsRUFBRTtJQUMxQixJQUFNRSxNQUFNLEdBQUd4RyxJQUFJLENBQUNuUixNQUFNO0lBQzFCLElBQU00WCxLQUFLLEdBQUdGLE1BQU0sQ0FBQ0csU0FBUyxDQUFDLFVBQUNDLEtBQUssRUFBRUMsR0FBRyxFQUFLO01BQzdDLElBQUlBLEdBQUcsR0FBRyxDQUFDLEVBQUU7UUFDWCxJQUFJRCxLQUFLLENBQUNFLFNBQVMsQ0FBQyxDQUFDLEVBQUVMLE1BQU0sQ0FBQyxLQUFLeEcsSUFBSSxFQUFFO1VBQ3ZDLElBQU04RyxRQUFRLEdBQUdILEtBQUssQ0FBQ0gsTUFBTSxDQUFDO1VBRTlCLElBQUtNLFFBQVEsR0FBRyxHQUFHLElBQU1BLFFBQVEsR0FBRyxHQUFJLEVBQUU7WUFDeEMsT0FBTyxJQUFJO1VBQ2I7UUFDRjtNQUNGO01BQ0EsT0FBTyxLQUFLO0lBQ2QsQ0FBQyxDQUFDO0lBQ0YsT0FBT0wsS0FBSztFQUNkO0VBRUEsU0FBU00sV0FBV0EsQ0FBQSxFQUFHO0lBQUEsSUFBQUMscUJBQUE7SUFDckI7SUFDQSxJQUFNQyxRQUFRLEdBQUd2TyxlQUFlLGFBQWZBLGVBQWUsZ0JBQUFzTyxxQkFBQSxHQUFmdE8sZUFBZSxDQUFFa0QsU0FBUyxjQUFBb0wscUJBQUEsZUFBMUJBLHFCQUFBLENBQTRCOU4sU0FBUyxHQUFHUixlQUFlLENBQUNrRCxTQUFTLENBQUMxQyxTQUFTLENBQUNnTyxXQUFXLENBQUMsQ0FBQyxHQUFHLEVBQUU7SUFDL0csVUFBQXhOLE1BQUEsQ0FBVW1CLFNBQVMsT0FBQW5CLE1BQUEsQ0FBSXVOLFFBQVE7RUFDakM7RUFFQSxJQUFNRSxRQUFRLEdBQUdKLFdBQVcsQ0FBQyxDQUFDO0VBQzlCLElBQU1LLEdBQUcsR0FBR3pILGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFeUgsR0FBRzs7RUFFaEM7RUFDQSxJQUFBQyxRQUFBLEdBS0l2UyxPQUFPLENBQUM7TUFDVnNTLEdBQUcsRUFBSEEsR0FBRztNQUNIdEwsS0FBSyxFQUFMQSxLQUFLO01BQ0x3TCxPQUFPLEVBQUU5SixXQUFXO01BQ3BCK0osTUFBTSxFQUFBclUsYUFBQSxDQUFBQSxhQUFBO1FBQ0orTCxLQUFLLEVBQUU7VUFBRUMsTUFBTSxFQUFFO1FBQUU7TUFBQyxHQUNqQnRFLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFMk0sTUFBTTtRQUN6QkMsZ0JBQWdCLEVBQUUsSUFBSTtRQUN0QnZHLEtBQUssRUFBRXJHLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFcUcsS0FBSztRQUM1QjtRQUNBd0csT0FBTyxFQUFFLEVBQUFuTixXQUFBLEdBQUFlLFVBQVUsY0FBQWYsV0FBQSx1QkFBVkEsV0FBQSxDQUFZb04sYUFBYSxPQUFBbk4sWUFBQSxHQUFJYyxVQUFVLGNBQUFkLFlBQUEsdUJBQVZBLFlBQUEsQ0FBWWtOLE9BQU8sS0FBSSxLQUFLO1FBQ2xFckwsTUFBTSxFQUFOQTtNQUFNLEVBQ1A7TUFDRHVMLE1BQU0sRUFBRW5NLFlBQVk7TUFDcEJvTSxLQUFLLEVBQUVoTixjQUFjLGFBQWRBLGNBQWMsZ0JBQUFKLG9CQUFBLEdBQWRJLGNBQWMsQ0FBRWlOLElBQUksY0FBQXJOLG9CQUFBLHVCQUFwQkEsb0JBQUEsQ0FBc0JvTixLQUFLO01BQ2xDM0csS0FBSyxFQUFFckcsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUVxRyxLQUFLO01BQzVCNkcsTUFBTSxFQUFFdEgscUJBQXFCO01BQzdCMkcsUUFBUSxFQUFSQSxRQUFRO01BQ1J2SCxJQUFJLEVBQUpBO0lBQ0YsQ0FBQyxDQUFDO0lBdkJPbUksU0FBUyxHQUFBVixRQUFBLENBQWhCelcsS0FBSztJQUNJb1gsV0FBVyxHQUFBWCxRQUFBLENBQXBCWSxPQUFPO0lBQ1BDLFVBQVUsR0FBQWIsUUFBQSxDQUFWYSxVQUFVO0lBQ1ZDLGVBQWUsR0FBQWQsUUFBQSxDQUFmYyxlQUFlO0VBc0JqQjFULEtBQUssQ0FBQ2lPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFDdEIsSUFBSXFGLFNBQVMsSUFBSUMsV0FBVyxJQUFJLENBQUNsSyxTQUFTLEVBQUU7TUFBRTtNQUM1Q3RFLE9BQU8sQ0FBQzhJLEdBQUcsZUFBZXlGLFNBQVMsQ0FBQztNQUNwQ3JNLGVBQWUsSUFBSUEsZUFBZSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxrQkFBQWhDLE1BQUEsQ0FBa0IrSixXQUFXLE9BQUEvSixNQUFBLENBQUlzQyxVQUFVLE9BQUF0QyxNQUFBLENBQUlxTyxTQUFTLEdBQUksSUFBSSxDQUFDO0lBQ3ZIO0VBQ0YsQ0FBQyxFQUFFLENBQUNBLFNBQVMsRUFBRUMsV0FBVyxFQUFFbEssU0FBUyxDQUFDLENBQUM7RUFFdkNySixLQUFLLENBQUNpTyxTQUFTLENBQUMsWUFBTTtJQUFFO0lBQ3RCLFNBQVMwRixjQUFjQSxDQUFBLEVBQUc7TUFDeEI1TyxPQUFPLENBQUM4SSxHQUFHLHNEQUFzRCxDQUFDO01BQ2xFL0YsY0FBYyxDQUFDLFVBQUE4TCxlQUFlO1FBQUEsT0FBSUEsZUFBZSxDQUFDclYsTUFBTSxDQUFDLFVBQUFtTixNQUFNO1VBQUEsT0FBSUEsTUFBTSxLQUFLSixjQUFjO1FBQUEsRUFBQztNQUFBLEVBQUM7TUFDOUZqQixRQUFRLENBQUM7UUFDUGhCLFNBQVMsRUFBRTtNQUNiLENBQUMsQ0FBQztNQUVGLElBQU13SyxrQkFBa0IsR0FBR3BlLE1BQU0sQ0FBQ3NGLElBQUksQ0FBQ3lPLGtCQUFrQixDQUFDO01BRTFELElBQUlxSyxrQkFBa0IsYUFBbEJBLGtCQUFrQixlQUFsQkEsa0JBQWtCLENBQUV6WixNQUFNLEVBQUU7UUFBQSxJQUFBMFosU0FBQSxHQUFBbFgsMEJBQUEsQ0FDTmlYLGtCQUFrQjtVQUFBRSxLQUFBO1FBQUE7VUFBMUMsS0FBQUQsU0FBQSxDQUFBdGMsQ0FBQSxNQUFBdWMsS0FBQSxHQUFBRCxTQUFBLENBQUFuZSxDQUFBLElBQUFrRCxJQUFBLEdBQTRDO1lBQUEsSUFBakNtYixTQUFTLEdBQUFELEtBQUEsQ0FBQWhlLEtBQUE7WUFDbEIsSUFBT3liLFlBQVksR0FBSWhJLGtCQUFrQixDQUFDd0ssU0FBUyxDQUFDLENBQTdDeEMsWUFBWTtZQUNuQkEsWUFBWSxJQUFJQSxZQUFZLENBQUMsQ0FBQztVQUNoQztRQUFDLFNBQUE5VSxHQUFBO1VBQUFvWCxTQUFBLENBQUF4ZSxDQUFBLENBQUFvSCxHQUFBO1FBQUE7VUFBQW9YLFNBQUEsQ0FBQXZjLENBQUE7UUFBQTtNQUNIO01BRUF3TixPQUFPLENBQUM3SSxJQUFJLENBQUMsMkNBQTJDLENBQUM7TUFDekRtTyxRQUFRLENBQUM7UUFDUGhCLFNBQVMsRUFBRSxLQUFLO1FBQ2hCVCxhQUFhLEVBQUUsSUFBSTtRQUNuQkssb0JBQW9CLEVBQUUsSUFBSTtRQUMxQkYsV0FBVyxFQUFFLElBQUk7UUFDakJGLEdBQUcsRUFBRWdEO01BQ1AsQ0FBQyxDQUFDO01BQ0YxSixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUN6SixJQUFJLENBQUMsWUFBTTtRQUNwQm9QLGNBQWMsQ0FBQyxVQUFBOEwsZUFBZTtVQUFBLE9BQUlBLGVBQWUsQ0FBQ3JWLE1BQU0sQ0FBQyxVQUFBbU4sTUFBTTtZQUFBLE9BQUlBLE1BQU0sS0FBS0osY0FBYztVQUFBLEVBQUM7UUFBQSxFQUFDO1FBQzlGckgsZUFBZSxhQUFmQSxlQUFlLGVBQWZBLGVBQWUsQ0FBRWlKLGNBQWMsQ0FBQ3lGLEdBQUcsRUFBRTlHLGtCQUFrQixDQUFDO01BQzFELENBQUMsQ0FBQztNQUNGLE9BQU8sSUFBSTtJQUNiO0lBRUEsSUFBTW9JLFNBQVM7TUFBQSxJQUFBQyxLQUFBLEdBQUE5WCxpQkFBQSxlQUFBL0csbUJBQUEsR0FBQW9GLElBQUEsQ0FBRyxTQUFBMFosUUFBQTtRQUFBLElBQUFDLGNBQUEsRUFBQUMsT0FBQSxFQUFBbFksS0FBQSxFQUFBbVksT0FBQSxFQUFBQyxZQUFBLEVBQUFDLE9BQUEsRUFBQUMsY0FBQSxFQUFBQyxlQUFBLEVBQUFDLFFBQUEsRUFBQUMsU0FBQTtRQUFBLE9BQUF2ZixtQkFBQSxHQUFBdUIsSUFBQSxVQUFBaWUsU0FBQUMsUUFBQTtVQUFBLGtCQUFBQSxRQUFBLENBQUE1WixJQUFBLEdBQUE0WixRQUFBLENBQUF2YixJQUFBO1lBQUE7Y0FBYztjQUM5QndMLE9BQU8sQ0FBQzdJLElBQUksc0NBQUErSSxNQUFBLENBQXNDME4sR0FBRyxDQUFFLENBQUM7Y0FDcER5QixjQUFjLEdBQUdYLFVBQVU7Y0FDL0IsSUFBSXpLLGFBQWEsRUFBRTtnQkFDakJvTCxjQUFjLEdBQUdWLGVBQWUsRUFBQztjQUNuQztjQUFDb0IsUUFBQSxDQUFBdmIsSUFBQTtjQUFBLE9BQ21CNmEsY0FBYyxDQUFDdkksa0JBQWtCLENBQUM7WUFBQTtjQUFsRHdJLE9BQU8sR0FBQVMsUUFBQSxDQUFBN2IsSUFBQTtjQUEyQztjQUNsRGtELEtBQUssR0FBR2tZLE9BQU8sR0FBRyxJQUFJLEdBQUcsaUNBQWlDO2NBQUEsSUFFekRBLE9BQU87Z0JBQUFTLFFBQUEsQ0FBQXZiLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ2R3TCxPQUFPLENBQUM1SSxLQUFLLENBQUMsa0VBQWtFLENBQUM7Y0FBQTJZLFFBQUEsQ0FBQXZiLElBQUE7Y0FBQSxPQUMzRTRJLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFBQTtjQUFBMlMsUUFBQSxDQUFBdmIsSUFBQTtjQUFBLE9BR01xSSxjQUFjLENBQUMrRixNQUFNLEVBQUVmLFVBQVUsRUFBRTNDLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFTyxRQUFRLEVBQUVQLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFa0QsU0FBUyxDQUFDO1lBQUE7Y0FBekdtTixPQUFPLEdBQUFRLFFBQUEsQ0FBQTdiLElBQUE7Y0FDYmtELEtBQUssR0FBR21ZLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFblksS0FBSztjQUNsQm9ZLFlBQVksR0FBR3hMLFdBQVc7Y0FDMUJ5TCxPQUFPLEdBQUcsSUFBSTtjQUNaQyxjQUFjLEdBQUdILE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFcFAsU0FBUztjQUNuQ3dQLGVBQWUsR0FBR3pMLG9CQUFvQixhQUFwQkEsb0JBQW9CLHVCQUFwQkEsb0JBQW9CLE9BQUs7Y0FDN0MwTCxRQUFRLEdBQUdGLGNBQWMsS0FBS0MsZUFBZSxFQUFDO2NBQUEsSUFFN0N2WSxLQUFLO2dCQUFBMlksUUFBQSxDQUFBdmIsSUFBQTtnQkFBQTtjQUFBO2NBQUEsS0FDSm9iLFFBQVE7Z0JBQUFHLFFBQUEsQ0FBQXZiLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ2R3TCxPQUFPLENBQUM4SSxHQUFHLENBQUMsMkVBQTJFLENBQUM7Y0FDeEZ3RyxPQUFPLEdBQUcsSUFBSTtjQUFBUyxRQUFBLENBQUF2YixJQUFBO2NBQUE7WUFBQTtjQUFBLEtBRVZ5UCxhQUFhO2dCQUFBOEwsUUFBQSxDQUFBdmIsSUFBQTtnQkFBQTtjQUFBO2NBQUF1YixRQUFBLENBQUF2YixJQUFBO2NBQUEsT0FDVDRJLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFBQTtjQUFDO2NBQ2pCO2NBQ015UyxTQUFTLEdBQUdsUyxRQUFRLENBQUN1RyxvQkFBb0IsYUFBcEJBLG9CQUFvQix1QkFBcEJBLG9CQUFvQixDQUFFdkUsUUFBUSxFQUFFK1AsY0FBYyxFQUFFQyxlQUFlLEVBQUUsS0FBSyxDQUFDO2NBQ2xHSCxZQUFZLEdBQUdLLFNBQVM7Y0FDeEJKLE9BQU8sR0FBR0YsT0FBTyxhQUFQQSxPQUFPLHVCQUFQQSxPQUFPLENBQUUzQixHQUFHO1lBQUE7Y0FBQW1DLFFBQUEsQ0FBQXZiLElBQUE7Y0FBQSxPQUdSNmEsY0FBYyxDQUFDdkksa0JBQWtCLEVBQUUwSSxZQUFZLEVBQUVDLE9BQU8sQ0FBQztZQUFBO2NBQXpFSCxPQUFPLEdBQUFTLFFBQUEsQ0FBQTdiLElBQUE7Y0FBbUU7Y0FDMUUsSUFBSSxDQUFDb2IsT0FBTyxFQUFFO2dCQUNabFksS0FBSyxHQUFHLG1EQUFtRDtjQUM3RCxDQUFDLE1BQU07Z0JBQ0w0SSxPQUFPLENBQUM4SSxHQUFHLENBQUMsMERBQTBELENBQUM7Y0FDekU7WUFBQztjQUFBLE1BS0gsQ0FBQzFSLEtBQUssSUFBSWtZLE9BQU87Z0JBQUFTLFFBQUEsQ0FBQXZiLElBQUE7Z0JBQUE7Y0FBQTtjQUFBLE9BQUF1YixRQUFBLENBQUExYixNQUFBLFdBQ1p1YSxjQUFjLENBQUMsQ0FBQztZQUFBO2NBR3pCNU8sT0FBTyxDQUFDNUksS0FBSywyQkFBQThJLE1BQUEsQ0FBMkI5SSxLQUFLLElBQUksb0JBQW9CLENBQUUsQ0FBQztjQUN4RTJMLGNBQWMsQ0FBQyxVQUFBOEwsZUFBZTtnQkFBQSxPQUFJQSxlQUFlLENBQUNyVixNQUFNLENBQUMsVUFBQW1OLE1BQU07a0JBQUEsT0FBSUEsTUFBTSxLQUFLSixjQUFjO2dCQUFBLEVBQUM7Y0FBQSxFQUFDO2NBQzlGakIsUUFBUSxDQUFDO2dCQUFDaEIsU0FBUyxFQUFFO2NBQUssQ0FBQyxDQUFDO2NBQUEsT0FBQXlMLFFBQUEsQ0FBQTFiLE1BQUEsV0FDckIsS0FBSztZQUFBO1lBQUE7Y0FBQSxPQUFBMGIsUUFBQSxDQUFBelosSUFBQTtVQUFBO1FBQUEsR0FBQThZLE9BQUE7TUFBQSxDQUNiO01BQUEsZ0JBckRLRixTQUFTQSxDQUFBO1FBQUEsT0FBQUMsS0FBQSxDQUFBelgsS0FBQSxPQUFBRCxTQUFBO01BQUE7SUFBQSxHQXFEZDtJQUVELElBQUk2TSxTQUFTLEVBQUU7TUFDYixJQUFJLENBQUNaLGVBQWUsRUFBRTtRQUNwQjtNQUFBLENBQ0QsTUFBTSxJQUFJLENBQUNrSyxHQUFHLEVBQUU7UUFDZjtNQUFBLENBQ0QsTUFBTTtRQUNMO1FBQ0E3SyxjQUFjLENBQUMsVUFBQThMLGVBQWU7VUFBQSxVQUFBM08sTUFBQSxDQUFBcEgsa0JBQUEsQ0FBUStWLGVBQWUsSUFBRXRJLGNBQWM7UUFBQSxDQUFDLENBQUM7UUFDdkUySSxTQUFTLENBQUMsQ0FBQztNQUNiO0lBQ0Y7RUFDRixDQUFDLEVBQUUsQ0FBQzVLLFNBQVMsRUFBRVosZUFBZSxFQUFFa0ssR0FBRyxDQUFDLENBQUM7O0VBRXJDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsU0FBU29DLDhCQUE4QkEsQ0FBQzdQLFNBQVMsRUFBRTJELEdBQUcsRUFBRW1NLG1CQUFtQixFQUFFM08sT0FBZSxFQUFFO0lBQzVGLElBQUk0TyxPQUFPO0lBQ1gsSUFBTUMsYUFBYSxHQUFHaFEsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUVpUSxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQzlDLElBQU1DLFlBQVksR0FBR3hELGNBQWMsQ0FBQy9JLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFekYsT0FBTyxFQUFFOFIsYUFBYSxDQUFDO0lBRWhFLElBQUlFLFlBQVksSUFBSSxDQUFDLEVBQUU7TUFDckIsSUFBTUMsY0FBYyxHQUFHSCxhQUFhLENBQUNFLFlBQVksQ0FBQztNQUNsRCxJQUFJRSxXQUFXLEdBQUdELGNBQWMsQ0FBQ0YsS0FBSyxDQUFDLE1BQU0sQ0FBQztNQUM5QyxJQUFNSSxVQUFVLEdBQUczRCxjQUFjLENBQUMvSSxHQUFHLGFBQUhBLEdBQUcsdUJBQUhBLEdBQUcsQ0FBRXhGLEtBQUssRUFBRWlTLFdBQVcsQ0FBQztNQUMxRCxJQUFNRSxXQUFXLEdBQUcsQ0FBQTNNLEdBQUcsYUFBSEEsR0FBRyx1QkFBSEEsR0FBRyxDQUFFeEYsS0FBSyxNQUFLLE9BQU87TUFFMUMsSUFBSW1TLFdBQVcsSUFBSUQsVUFBVSxJQUFJLENBQUMsRUFBRTtRQUNsQyxJQUFNRSxZQUFZLEdBQUdwVSx5QkFBeUIsQ0FBQ3FVLHNCQUFzQixDQUFDVixtQkFBbUIsQ0FBQztRQUMxRmpRLE9BQU8sQ0FBQzhJLEdBQUcsNkNBQUE1SSxNQUFBLENBQTZDb0IsT0FBTyxjQUFBcEIsTUFBQSxDQUFXNEQsR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUV4RixLQUFLLFdBQUE0QixNQUFBLENBQVF3USxZQUFZLENBQUNyRCxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFFLENBQUM7UUFDN0gsSUFBSW9ELFdBQVcsRUFBRTtVQUFFO1VBQ2pCLElBQU1HLFFBQVEsR0FBR0wsV0FBVyxDQUFDLENBQUMsQ0FBQztVQUMvQixJQUFNTSxTQUFTLEdBQUdELFFBQVEsQ0FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDO1VBQ3pDUCxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUdLLFFBQVEsQ0FBQ3ZELFNBQVMsQ0FBQyxDQUFDLEVBQUV3RCxTQUFTLEdBQUcsQ0FBQyxDQUFDLEdBQUdILFlBQVk7UUFDdEUsQ0FBQyxNQUFNO1VBQ0wsSUFBTUUsU0FBUSxHQUFHTCxXQUFXLENBQUNDLFVBQVUsQ0FBQztVQUN4QyxJQUFNTyxXQUFXLEdBQUcsQ0FBQyxDQUFBak4sR0FBRyxhQUFIQSxHQUFHLHVCQUFIQSxHQUFHLENBQUV4RixLQUFLLElBQUcsRUFBRSxFQUFFakosTUFBTSxFQUFDO1VBQzdDa2IsV0FBVyxDQUFDQyxVQUFVLENBQUMsR0FBR0ksU0FBUSxDQUFDdkQsU0FBUyxDQUFDLENBQUMsRUFBRTBELFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBR0wsWUFBWTtRQUNqRjtRQUNBLElBQU1NLFVBQVUsR0FBR1QsV0FBVyxDQUFDVSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNDZCxhQUFhLENBQUNFLFlBQVksQ0FBQyxHQUFHVyxVQUFVO1FBQ3hDZCxPQUFPLEdBQUdDLGFBQWEsQ0FBQ2MsSUFBSSxDQUFDLE1BQU0sQ0FBQztNQUN0QztJQUNGO0lBQ0EsT0FBT2YsT0FBTztFQUNoQjtFQUVBalYsS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFBRTtJQUFBLFNBQ1BnSSxlQUFlQSxDQUFBO01BQUEsT0FBQUMsZ0JBQUEsQ0FBQXpaLEtBQUEsT0FBQUQsU0FBQTtJQUFBO0lBQUEsU0FBQTBaLGlCQUFBO01BQUFBLGdCQUFBLEdBQUE5WixpQkFBQSxlQUFBL0csbUJBQUEsR0FBQW9GLElBQUEsQ0FBOUIsU0FBQTBiLFNBQUE7UUFBQSxJQUFBQyxnQkFBQSxFQUFBL0MsTUFBQSxFQUFBUSxrQkFBQSxFQUFBd0MsZ0JBQUEsRUFBQUMsWUFBQSxFQUFBQyxTQUFBLEVBQUFDLFFBQUEsRUFBQUMsVUFBQSxFQUFBQyxNQUFBLEVBQUExQyxTQUFBLEVBQUEyQyxxQkFBQSxFQUFBckYsVUFBQSxFQUFBc0YsTUFBQSxFQUFBM0IsT0FBQSxFQUFBNEIsV0FBQSxFQUFBQyxLQUFBLEVBQUE5QixtQkFBQSxFQUFBK0IsY0FBQSxFQUFBQyxxQkFBQSxFQUFBekMsWUFBQSxFQUFBMEMsV0FBQSxFQUFBQyxVQUFBLEVBQUFDLE1BQUEsRUFBQUMsVUFBQSxFQUFBQyxTQUFBLEVBQUFDLHNCQUFBLEVBQUFDLFlBQUEsRUFBQUMsT0FBQSxFQUFBQyxRQUFBLEVBQUFDLFlBQUEsRUFBQUMsWUFBQSxFQUFBQyxLQUFBLEVBQUFDLG9CQUFBLEVBQUFDLG1CQUFBLEVBQUFDLHFCQUFBLEVBQUFDLGtCQUFBLEVBQUFDLHVCQUFBLEVBQUF2VCxRQUFBLEVBQUFrUSxTQUFBO1FBQUEsT0FBQXZmLG1CQUFBLEdBQUF1QixJQUFBLFVBQUFzaEIsVUFBQUMsU0FBQTtVQUFBLGtCQUFBQSxTQUFBLENBQUFqZCxJQUFBLEdBQUFpZCxTQUFBLENBQUE1ZSxJQUFBO1lBQUE7Y0FBQSxLQUNNdVAsV0FBVztnQkFBQXFQLFNBQUEsQ0FBQTVlLElBQUE7Z0JBQUE7Y0FBQTtjQUNUNmMsZ0JBQWdCLEdBQUcsQ0FBQ3RLLGdCQUFnQjtjQUV4QyxJQUFJLENBQUNzSyxnQkFBZ0IsRUFBRTtnQkFBRTtnQkFDdkIsSUFBSXJLLHFCQUFxQixLQUFLRixrQkFBa0IsRUFBRTtrQkFDaEQ5RyxPQUFPLENBQUNDLElBQUksbUVBQUFDLE1BQUEsQ0FBbUU0RyxrQkFBa0IsMkJBQUE1RyxNQUFBLENBQXdCOEcscUJBQXFCLENBQUUsQ0FBQztrQkFDakpxSyxnQkFBZ0IsR0FBRyxJQUFJO2dCQUN6QixDQUFDLE1BQU07a0JBQ0xyUixPQUFPLENBQUM4SSxHQUFHLG9EQUFBNUksTUFBQSxDQUFvRDhHLHFCQUFxQixDQUFFLENBQUM7a0JBQ3ZGMUIsUUFBUSxDQUFDO29CQUFFNUIsZUFBZSxFQUFFO2tCQUFLLENBQUMsQ0FBQztnQkFDckM7Y0FDRjtjQUFDLEtBRUcyTixnQkFBZ0I7Z0JBQUErQixTQUFBLENBQUE1ZSxJQUFBO2dCQUFBO2NBQUE7Y0FBSTtjQUN0QndMLE9BQU8sQ0FBQzhJLEdBQUcsNENBQTRDLENBQUM7Y0FDeER4RCxRQUFRLENBQUM7Z0JBQ1A1QixlQUFlLEVBQUUsS0FBSztnQkFDdEJHLGFBQWEsRUFBRSxLQUFLO2dCQUNwQitKLEdBQUcsRUFBRTtjQUNQLENBQUMsQ0FBQyxFQUFDO2NBQUF3RixTQUFBLENBQUE1ZSxJQUFBO2NBQUEsT0FFa0IyUyxlQUFlLENBQUMsQ0FBQztZQUFBO2NBQWhDbUgsTUFBTSxHQUFBOEUsU0FBQSxDQUFBbGYsSUFBQTtjQUFBLEtBRVJvYSxNQUFNO2dCQUFBOEUsU0FBQSxDQUFBNWUsSUFBQTtnQkFBQTtjQUFBO2NBQ1J3TCxPQUFPLENBQUM4SSxHQUFHLDJDQUEyQyxDQUFDO2NBQ3ZEeEQsUUFBUSxDQUFDO2dCQUNQNUIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCRyxhQUFhLEVBQUUsSUFBSTtnQkFDbkJDLEdBQUcsRUFBRXdLO2NBQ1AsQ0FBQyxDQUFDO2NBQUE4RSxTQUFBLENBQUE1ZSxJQUFBO2NBQUE7WUFBQTtjQUVGd0wsT0FBTyxDQUFDNUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDO2NBQ2xFOEssZUFBZSxJQUFJQSxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLGdDQUFBaEMsTUFBQSxDQUFnQytKLFdBQVcsT0FBQS9KLE1BQUEsQ0FBSXNDLFVBQVUsR0FBSSxJQUFJLENBQUM7Y0FDdEg4QyxRQUFRLENBQUM7Z0JBQUV2QixXQUFXLEVBQUU7Y0FBTSxDQUFDLENBQUM7Y0FBQSxPQUFBcVAsU0FBQSxDQUFBL2UsTUFBQTtZQUFBO2NBS3BDMkwsT0FBTyxDQUFDOEksR0FBRyw2Q0FBNkMsQ0FBQztjQUNuRGdHLGtCQUFrQixHQUFHcGUsTUFBTSxDQUFDc0YsSUFBSSxDQUFDeU8sa0JBQWtCLENBQUM7Y0FBQSxNQUV0RHFLLGtCQUFrQixhQUFsQkEsa0JBQWtCLGVBQWxCQSxrQkFBa0IsQ0FBRXpaLE1BQU07Z0JBQUErZCxTQUFBLENBQUE1ZSxJQUFBO2dCQUFBO2NBQUE7Y0FDeEI4YyxnQkFBZ0IsR0FBR3JTLGNBQWMsQ0FBQ0MsZUFBZSxFQUFFQyxNQUFNLENBQUMsRUFBQztjQUMzRG9TLFlBQVksR0FBR0QsZ0JBQWdCLEVBQUM7Y0FDaENFLFNBQVMsR0FBRyxLQUFLO2NBQUEsS0FFakJGLGdCQUFnQjtnQkFBQThCLFNBQUEsQ0FBQTVlLElBQUE7Z0JBQUE7Y0FBQTtjQUNkOE0sUUFBTyxHQUFHLENBQUM7Y0FBQW9RLFVBQUEsR0FBQTdaLDBCQUFBLENBRVNpWCxrQkFBa0I7Y0FBQXNFLFNBQUEsQ0FBQWpkLElBQUE7Y0FBQXViLFVBQUEsQ0FBQWpmLENBQUE7WUFBQTtjQUFBLEtBQUFrZixNQUFBLEdBQUFELFVBQUEsQ0FBQTlnQixDQUFBLElBQUFrRCxJQUFBO2dCQUFBc2YsU0FBQSxDQUFBNWUsSUFBQTtnQkFBQTtjQUFBO2NBQS9CeWEsU0FBUyxHQUFBMEMsTUFBQSxDQUFBM2dCLEtBQUE7Y0FDbEJzUSxRQUFPLEdBQUcrUixRQUFRLENBQUNwRSxTQUFTLENBQUM7Y0FBQTJDLHFCQUFBLEdBQ0NuTixrQkFBa0IsQ0FBQ25ELFFBQU8sQ0FBQyxFQUFqRGlMLFVBQVUsR0FBQXFGLHFCQUFBLENBQVZyRixVQUFVLEVBQUV4SCxNQUFLLEdBQUE2TSxxQkFBQSxDQUFMN00sS0FBSztjQUFBLEtBRXJCd0gsVUFBVTtnQkFBQTZHLFNBQUEsQ0FBQTVlLElBQUE7Z0JBQUE7Y0FBQTtjQUNSMGIsT0FBTztjQUFBNEIsV0FBQSxHQUlQdkYsVUFBVSxDQUFDeEgsTUFBSyxDQUFDLEVBRm5CakIsS0FBRyxHQUFBZ08sV0FBQSxDQUFIaE8sR0FBRyxFQUNIbU0sbUJBQW1CLEdBQUE2QixXQUFBLENBQW5CN0IsbUJBQW1CO2NBR3JCLElBQUlBLG1CQUFtQixJQUFJc0IsWUFBWSxFQUFFO2dCQUFFO2dCQUN6Q3JCLE9BQU8sR0FBR0YsOEJBQThCLENBQUN1QixZQUFZLEVBQUV6TixLQUFHLEVBQUVtTSxtQkFBbUIsRUFBRTNPLFFBQU8sQ0FBQztjQUMzRjtjQUFDLEtBRUc0TyxPQUFPO2dCQUFBa0QsU0FBQSxDQUFBNWUsSUFBQTtnQkFBQTtjQUFBO2NBQ1QrYyxZQUFZLEdBQUdyQixPQUFPO2NBQUFrRCxTQUFBLENBQUE1ZSxJQUFBO2NBQUE7WUFBQTtjQUV0QmdkLFNBQVMsR0FBRyxJQUFJO2NBQUEsT0FBQTRCLFNBQUEsQ0FBQS9lLE1BQUE7WUFBQTtjQUFBK2UsU0FBQSxDQUFBNWUsSUFBQTtjQUFBO1lBQUE7Y0FBQTRlLFNBQUEsQ0FBQTVlLElBQUE7Y0FBQTtZQUFBO2NBQUE0ZSxTQUFBLENBQUFqZCxJQUFBO2NBQUFpZCxTQUFBLENBQUFFLEVBQUEsR0FBQUYsU0FBQTtjQUFBMUIsVUFBQSxDQUFBbmhCLENBQUEsQ0FBQTZpQixTQUFBLENBQUFFLEVBQUE7WUFBQTtjQUFBRixTQUFBLENBQUFqZCxJQUFBO2NBQUF1YixVQUFBLENBQUFsZixDQUFBO2NBQUEsT0FBQTRnQixTQUFBLENBQUExYyxNQUFBO1lBQUE7Y0FPcEJ1TixjQUFhLEdBQUcsS0FBSyxFQUFDO2NBQ3RCZ08scUJBQXFCLEdBQUcsSUFBSTtjQUM1QnpDLFlBQVksR0FBRytCLFlBQVk7Y0FBQSxLQUUzQkMsU0FBUztnQkFBQTRCLFNBQUEsQ0FBQTVlLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ2Z3TCxPQUFPLENBQUM4SSxHQUFHLHVCQUFBNUksTUFBQSxDQUF1Qm9CLE9BQU8sZ0VBQTZELENBQUM7Y0FBQTZRLFVBQUEsR0FBQXRhLDBCQUFBLENBRy9FaVgsa0JBQWtCO2NBQUE7Z0JBQTFDLEtBQUFxRCxVQUFBLENBQUExZixDQUFBLE1BQUEyZixNQUFBLEdBQUFELFVBQUEsQ0FBQXZoQixDQUFBLElBQUFrRCxJQUFBLEdBQTRDO2tCQUFqQ21iLFVBQVMsR0FBQW1ELE1BQUEsQ0FBQXBoQixLQUFBO2tCQUNac1EsU0FBTyxHQUFHK1IsUUFBUSxDQUFDcEUsVUFBUyxDQUFDO2tCQUFBc0Qsc0JBQUEsR0FDTDlOLGtCQUFrQixDQUFDbkQsU0FBTyxDQUFDLEVBQWpEaUwsWUFBVSxHQUFBZ0csc0JBQUEsQ0FBVmhHLFVBQVUsRUFBRXhILE9BQUssR0FBQXdOLHNCQUFBLENBQUx4TixLQUFLO2tCQUV6QixJQUFJd0gsWUFBVSxFQUFFO29CQUNWMkQsUUFBTztvQkFBQXlDLFlBQUEsR0FLUHBHLFlBQVUsQ0FBQ3hILE9BQUssQ0FBQyxFQUhuQjZOLFlBQVksR0FBQUQsWUFBQSxDQUFaQyxZQUFZLEVBQ1o5TyxLQUFHLEdBQUE2TyxZQUFBLENBQUg3TyxHQUFHLEVBQ0htTSxvQkFBbUIsR0FBQTBDLFlBQUEsQ0FBbkIxQyxtQkFBbUI7b0JBR3JCLElBQUlBLG9CQUFtQixJQUFJLENBQUNDLFFBQU8sRUFBRTtzQkFDL0I2QyxtQkFBbUIsR0FBRyxJQUFJO3NCQUU5QixJQUFJalAsS0FBRyxFQUFFO3dCQUNQLElBQUk4TyxZQUFZLEVBQUU7MEJBQUFJLHFCQUFBLEdBQ2UzVyxnQkFBZ0IsQ0FBQ2tYLDZCQUE2QixDQUFDdEQsb0JBQW1CLEVBQUUyQyxZQUFZLENBQUMsRUFBeEdLLGtCQUFrQixHQUFBRCxxQkFBQSxDQUFsQkMsa0JBQWtCOzBCQUMxQkYsbUJBQW1CLEdBQUdFLGtCQUFrQjt3QkFDMUMsQ0FBQyxNQUFNOzBCQUNMRixtQkFBbUIsR0FBRzlDLG9CQUFtQjt3QkFDM0M7d0JBQ0FpQyxXQUFXLEdBQUdhLG1CQUFtQixLQUFJN1QsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUVzVSxXQUFXLENBQUMxUCxLQUFHLENBQUN6RixPQUFPLEVBQUV5RixLQUFHLENBQUN4RixLQUFLLEVBQUU7MEJBQUNFLFlBQVksRUFBRXVVO3dCQUFtQixDQUFDLENBQUM7c0JBQ2hJO29CQUNGO2tCQUNGO2dCQUNGO2NBQUMsU0FBQXBiLEdBQUE7Z0JBQUF3YSxVQUFBLENBQUE1aEIsQ0FBQSxDQUFBb0gsR0FBQTtjQUFBO2dCQUFBd2EsVUFBQSxDQUFBM2YsQ0FBQTtjQUFBO2NBRURnZCxZQUFZLEdBQUduVSxNQUFNLENBQUNvWSxNQUFNLENBQUN2QixXQUFXLEVBQUU7Z0JBQUV3QixjQUFjLEVBQUU7Y0FBSyxDQUFDLENBQUM7Y0FBQU4sU0FBQSxDQUFBNWUsSUFBQTtjQUFBO1lBQUE7Y0FDNUQ7Y0FDRG1MLFFBQVEsR0FBR1QsZUFBZSxhQUFmQSxlQUFlLGdCQUFBZ1UsdUJBQUEsR0FBZmhVLGVBQWUsQ0FBRU0sYUFBYSxjQUFBMFQsdUJBQUEsZ0JBQUFBLHVCQUFBLEdBQTlCQSx1QkFBQSxDQUFnQ3pULFFBQVEsY0FBQXlULHVCQUFBLHVCQUF4Q0EsdUJBQUEsQ0FBMEN6ZCxJQUFJLEVBQUM7Y0FBQSxNQUM1RGtLLFFBQVEsSUFBSTRSLFlBQVksSUFBSUQsZ0JBQWdCO2dCQUFBOEIsU0FBQSxDQUFBNWUsSUFBQTtnQkFBQTtjQUFBO2NBQUEsTUFDMUM4YyxnQkFBZ0IsS0FBS0MsWUFBWTtnQkFBQTZCLFNBQUEsQ0FBQTVlLElBQUE7Z0JBQUE7Y0FBQTtjQUFJO2NBQ3ZDd0wsT0FBTyxDQUFDQyxJQUFJLDREQUE0RCxDQUFDO2NBQ3pFcUYsUUFBUSxDQUFDO2dCQUFFdkIsV0FBVyxFQUFFO2NBQU0sQ0FBQyxDQUFDO2NBQUEsT0FBQXFQLFNBQUEsQ0FBQS9lLE1BQUE7WUFBQTtjQUc1QndiLFNBQVMsR0FBR2xTLFFBQVEsQ0FBQ2dDLFFBQVEsRUFBRTJSLGdCQUFnQixFQUFFQyxZQUFZLEVBQUUsS0FBSyxDQUFDO2NBQzNFdE4sY0FBYSxHQUFHLElBQUk7Y0FDcEJ1TCxZQUFZLEdBQUdLLFNBQVMsRUFBQztjQUN6Qm9DLHFCQUFxQixHQUFHO2dCQUFHO2dCQUN6QnRTLFFBQVEsRUFBUkEsUUFBUTtnQkFDUmdVLE9BQU8sRUFBRXJDLGdCQUFnQjtnQkFDekIsT0FBS0M7Y0FDUCxDQUFDO1lBQUE7Y0FJTCxJQUFJQSxZQUFZLEVBQUU7Z0JBQ2hCdlIsT0FBTyxDQUFDOEksR0FBRyw0Q0FBQTVJLE1BQUEsQ0FBNENxUixZQUFZLENBQUNsRSxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxRQUFLLENBQUM7Z0JBQzNGdEssY0FBYyxDQUFDLFVBQUE4TCxlQUFlO2tCQUFBLFVBQUEzTyxNQUFBLENBQUFwSCxrQkFBQSxDQUFRK1YsZUFBZSxJQUFFdEksY0FBYztnQkFBQSxDQUFDLENBQUM7Z0JBQ3ZFakIsUUFBUSxDQUFDO2tCQUNQdEIsV0FBVyxFQUFFd0wsWUFBWTtrQkFDekJ6TCxXQUFXLEVBQUUsS0FBSztrQkFDbEJFLGFBQWEsRUFBYkEsY0FBYTtrQkFDYkMsb0JBQW9CLEVBQUUrTixxQkFBcUI7a0JBQzNDM04sU0FBUyxFQUFFO2dCQUNiLENBQUMsQ0FBQztjQUNKLENBQUMsTUFBTTtnQkFDTHRFLE9BQU8sQ0FBQzVJLEtBQUssa0ZBQUE4SSxNQUFBLENBQWtGK0osV0FBVyxPQUFBL0osTUFBQSxDQUFJc0MsVUFBVSxDQUFFLENBQUM7Z0JBQzNITixlQUFlLElBQUlBLGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksNENBQUFoQyxNQUFBLENBQTRDK0osV0FBVyxPQUFBL0osTUFBQSxDQUFJc0MsVUFBVSxHQUFJLElBQUksQ0FBQztnQkFDbEk4QyxRQUFRLENBQUM7a0JBQUV2QixXQUFXLEVBQUU7Z0JBQU0sQ0FBQyxDQUFDO2NBQ2xDO1lBQUM7WUFBQTtjQUFBLE9BQUFxUCxTQUFBLENBQUE5YyxJQUFBO1VBQUE7UUFBQSxHQUFBOGEsUUFBQTtNQUFBLENBR047TUFBQSxPQUFBRCxnQkFBQSxDQUFBelosS0FBQSxPQUFBRCxTQUFBO0lBQUE7SUFFRHlaLGVBQWUsQ0FBQyxDQUFDO0VBQ25CLENBQUMsRUFBRSxDQUFDbk4sV0FBVyxDQUFDLENBQUM7O0VBRWpCO0VBQ0EsSUFBQTZQLEtBQUEsR0FBb0J4SixVQUFVLElBQUksQ0FBQyxDQUFDO0lBQTVCL0wsT0FBTyxHQUFBdVYsS0FBQSxDQUFQdlYsT0FBTztFQUVmcEQsS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFDcEIsSUFBTTJLLGFBQWEsR0FBRzNVLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFeUYsWUFBWTtJQUNuRCxJQUFJbVAsYUFBYSxHQUFHLElBQUkxUCxHQUFHLENBQUMsQ0FBQztJQUM3QixJQUFJMlAsZ0JBQWdCLEdBQUcsS0FBSztJQUM1QixJQUFNQyxJQUFJLEdBQUdGLGFBQWE7SUFDMUIsSUFBTUcsY0FBYyxHQUFHOVIsNEJBQTRCLGFBQTVCQSw0QkFBNEIsdUJBQTVCQSw0QkFBNEIsQ0FBRWhELE1BQU07SUFDM0QsSUFBTStVLGVBQWUsR0FBRy9SLDRCQUE0QixhQUE1QkEsNEJBQTRCLHVCQUE1QkEsNEJBQTRCLENBQUVnUyxRQUFRO0lBQzlELElBQUlDLGdCQUFnQixHQUFHLElBQUk7O0lBRTNCO0lBQ0EsSUFBSVAsYUFBYSxhQUFiQSxhQUFhLGVBQWJBLGFBQWEsQ0FBRXhlLE1BQU0sSUFDdkI2ZSxlQUFlLElBQ2QvVSxNQUFNLEtBQUs4VSxjQUFlLElBQzNCQyxlQUFlLENBQUM3VixPQUFPLENBQUMsSUFBSTtJQUM1QnNFLGFBQWEsYUFBYkEsYUFBYSxlQUFiQSxhQUFhLENBQUUwUixLQUFLLEVBQ3BCO01BQ0E7TUFDQSxJQUFJLENBQUM5WCxPQUFPLENBQUNxSCxpQkFBaUIsRUFBRWpCLGFBQWEsQ0FBQyxJQUM1QyxDQUFDcEcsT0FBTyxDQUFDb0ksWUFBWSxFQUFFa1AsYUFBYSxDQUFDLEVBQUU7UUFBQSxJQUFBUyxzQkFBQTtRQUN2QyxJQUFNQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQU1DLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBQztRQUN0QixJQUFJQyxVQUFVLEdBQUdaLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQ3ZWLEtBQUs7UUFFdkMsSUFBSSxPQUFPbVcsVUFBVSxLQUFLLFFBQVEsRUFBRTtVQUNsQ0EsVUFBVSxHQUFHcEIsUUFBUSxDQUFDb0IsVUFBVSxDQUFDO1FBQ25DO1FBRUEsSUFBSUMsU0FBUyxHQUFHRCxVQUFVO1FBRTFCLEtBQUssSUFBSXhqQixDQUFDLEdBQUcsQ0FBQyxFQUFFc0IsQ0FBQyxHQUFHc2hCLGFBQWEsQ0FBQ3hlLE1BQU0sRUFBRXBFLENBQUMsR0FBR3NCLENBQUMsRUFBRXRCLENBQUMsRUFBRSxFQUFFO1VBQ3BELElBQU1pTixRQUFRLEdBQUcyVixhQUFhLENBQUM1aUIsQ0FBQyxDQUFDO1VBQ2pDLElBQ0VvTixRQUFPLEdBRUxILFFBQVEsQ0FGVkcsT0FBTztZQUNQQyxLQUFLLEdBQ0hKLFFBQVEsQ0FEVkksS0FBSztVQUVQO1VBQ0EsSUFBSXFXLE1BQU0sR0FBR0YsVUFBVSxHQUFHeGpCLENBQUM7VUFDM0J5akIsU0FBUyxHQUFHQyxNQUFNO1VBQ2xCSCxVQUFVLElBQUF0VSxNQUFBLENBQUk3QixRQUFPLE9BQUE2QixNQUFBLENBQUl5VSxNQUFNLEVBQUcsTUFBQXpVLE1BQUEsQ0FBTTdCLFFBQU8sT0FBQTZCLE1BQUEsQ0FBSTVCLEtBQUssQ0FBRTtVQUUxRCxJQUFJLENBQUNpVyxjQUFjLENBQUNsVyxRQUFPLENBQUMsRUFBRTtZQUM1QmtXLGNBQWMsQ0FBQ2xXLFFBQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztVQUM5QjtVQUVBLElBQUlHLFlBQVksR0FBRyxFQUFFO1VBRXJCLElBQUssT0FBT0YsS0FBSyxLQUFLLFFBQVEsSUFBTUEsS0FBSyxDQUFDeUIsUUFBUSxDQUFDLEdBQUcsQ0FBRSxFQUFFO1lBQ3hELElBQU02VSxNQUFNLEdBQUdwWSxTQUFTLENBQUMwWCxlQUFlLEtBQUFoVSxNQUFBLENBQUs3QixRQUFPLE9BQUE2QixNQUFBLENBQUk1QixLQUFLLENBQUUsQ0FBQztZQUFBLElBQUF1VyxVQUFBLEdBQUFoZCwwQkFBQSxDQUV4QytjLE1BQU07Y0FBQUUsTUFBQTtZQUFBO2NBQTlCLEtBQUFELFVBQUEsQ0FBQXBpQixDQUFBLE1BQUFxaUIsTUFBQSxHQUFBRCxVQUFBLENBQUFqa0IsQ0FBQSxJQUFBa0QsSUFBQSxHQUFnQztnQkFBQSxJQUFyQmloQixTQUFTLEdBQUFELE1BQUEsQ0FBQTlqQixLQUFBO2dCQUNsQixJQUFNZ2tCLEVBQUUsR0FBR0QsU0FBUyxDQUFDeFcsU0FBUyxDQUFDQyxZQUFZO2dCQUMzQ0EsWUFBWSxHQUFHQSxZQUFZLENBQUMwQixNQUFNLENBQUM4VSxFQUFFLENBQUM7Y0FDeEM7WUFBQyxTQUFBcmQsR0FBQTtjQUFBa2QsVUFBQSxDQUFBdGtCLENBQUEsQ0FBQW9ILEdBQUE7WUFBQTtjQUFBa2QsVUFBQSxDQUFBcmlCLENBQUE7WUFBQTtVQUNILENBQUMsTUFBTTtZQUFBLElBQUF5aUIscUJBQUE7WUFDTHpXLFlBQVksSUFBQXlXLHFCQUFBLEdBQUdmLGVBQWUsQ0FBQzdWLFFBQU8sQ0FBQyxDQUFDQyxLQUFLLENBQUMsY0FBQTJXLHFCQUFBLHVCQUEvQkEscUJBQUEsQ0FBaUN6VyxZQUFZO1VBQzlEO1VBRUEsSUFBSUEsWUFBWSxFQUFFO1lBQ2hCQSxZQUFZLEdBQUc1QixtQkFBbUIsQ0FBQzRCLFlBQVksQ0FBQztZQUNoRCtWLGNBQWMsQ0FBQ2xXLFFBQU8sQ0FBQyxDQUFDc1csTUFBTSxDQUFDLEdBQUc7Y0FBRW5XLFlBQVksRUFBWkE7WUFBYSxDQUFDO1lBQ2xEd1YsSUFBSSxDQUFDa0IsR0FBRyxJQUFBaFYsTUFBQSxDQUFJN0IsUUFBTyxPQUFBNkIsTUFBQSxDQUFJNUIsS0FBSyxHQUFJRSxZQUFZLENBQUM7VUFDL0M7UUFDRjs7UUFFQTtRQUNBLElBQUEyVyxxQkFBQSxHQUFrQnhTLGFBQWEsYUFBYkEsYUFBYSxnQkFBQTJSLHNCQUFBLEdBQWIzUixhQUFhLENBQUVQLFNBQVMsY0FBQWtTLHNCQUFBLHVCQUF4QkEsc0JBQUEsQ0FBMEJsRSxLQUFLLENBQUMsR0FBRyxDQUFDO1VBQUFnRixzQkFBQSxHQUFBNWEsY0FBQSxDQUFBMmEscUJBQUE7VUFBL0M5VyxTQUFPLEdBQUErVyxzQkFBQTtRQUNkLElBQUlDLE1BQU0sTUFBQW5WLE1BQUEsQ0FBTTdCLFNBQU8sT0FBQTZCLE1BQUEsQ0FBSXVVLFVBQVUsQ0FBRTtRQUV2QyxJQUFJQyxTQUFTLElBQUlELFVBQVUsRUFBRTtVQUMzQlksTUFBTSxRQUFBblYsTUFBQSxDQUFRd1UsU0FBUyxDQUFFO1FBQzNCO1FBRUEsSUFBTVksWUFBWSxHQUFHbFosd0JBQXdCLENBQUM7VUFDNUNtWixVQUFVLEVBQUVoQixjQUFjO1VBQzFCelEsR0FBRyxFQUFFdVIsTUFBTTtVQUNYaEIsS0FBSyxFQUFFMVIsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUUwUixLQUFLO1VBQzNCbUIsVUFBVSxFQUFFN1MsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUU2UztRQUM3QixDQUFDLENBQUM7UUFFRixJQUFNclIsV0FBVSxHQUFHLElBQUlDLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUlrUixZQUFZLGFBQVpBLFlBQVksZUFBWkEsWUFBWSxDQUFFRyxJQUFJLEVBQUU7VUFDdEJILFlBQVksQ0FBQ2xpQixPQUFPLENBQUMsVUFBQ3NpQixLQUFLLEVBQUV4ZSxHQUFHLEVBQUs7WUFDbkMsSUFBTXllLElBQUksR0FBR25CLFVBQVUsQ0FBQ3RkLEdBQUcsQ0FBQztZQUU1QmlOLFdBQVUsQ0FBQytRLEdBQUcsQ0FBQ1MsSUFBSSxFQUFFRCxLQUFLLENBQUNFLEdBQUcsQ0FBQyxVQUFBQyxJQUFJO2NBQUEsT0FBQW5jLGFBQUEsQ0FBQUEsYUFBQSxLQUM1Qm1jLElBQUk7Z0JBQUVDLElBQUksRUFBRTNhLElBQUksQ0FBQzRhLGVBQWUsQ0FBQ0YsSUFBSSxDQUFDQyxJQUFJO2NBQUM7WUFBQSxDQUNqRCxDQUFDLENBQUM7VUFDTCxDQUFDLENBQUM7UUFDSjtRQUNBaEMsYUFBYSxHQUFHM1AsV0FBVTtRQUMxQmlRLGdCQUFnQixHQUFHelIsYUFBYTtRQUNoQ29SLGdCQUFnQixHQUFHLElBQUk7TUFDekI7SUFDRjtJQUVBLElBQU14TyxRQUFhLEdBQUcsQ0FBQyxDQUFDOztJQUV4QjtJQUNBLElBQUksQ0FBQ2xJLGNBQWMsQ0FBQ3VILGVBQWUsRUFBRW9QLElBQUksQ0FBQyxFQUFFO01BQzFDek8sUUFBUSxDQUFDWCxlQUFlLEdBQUdvUCxJQUFJO0lBQ2pDO0lBRUEsSUFBTWdDLFlBQVksR0FBRyxDQUFBNVQsU0FBUyxhQUFUQSxTQUFTLHVCQUFUQSxTQUFTLENBQUUxQyxTQUFTLE9BQUsrRCxnQkFBZ0IsYUFBaEJBLGdCQUFnQix1QkFBaEJBLGdCQUFnQixDQUFFL0QsU0FBUztJQUV6RSxJQUFJc1csWUFBWSxJQUFJLENBQUNyWCxhQUFhLENBQUNnRyxZQUFZLEVBQUVrUCxhQUFhLENBQUMsRUFBRTtNQUMvRHRPLFFBQVEsQ0FBQ1osWUFBWSxHQUFHa1AsYUFBYTtNQUNyQ3RPLFFBQVEsQ0FBQzNCLGlCQUFpQixHQUFHd1EsZ0JBQWdCO01BQzdDN08sUUFBUSxDQUFDcEIsVUFBVSxHQUFHMlAsYUFBYTtJQUNyQztJQUVBLElBQUlNLGdCQUFnQixFQUFFO01BQ3BCN08sUUFBUSxDQUFDM0IsaUJBQWlCLEdBQUd3USxnQkFBZ0I7SUFDL0M7SUFFQSxJQUFJTCxnQkFBZ0IsRUFBRTtNQUNwQixJQUFJLENBQUMxVyxjQUFjLENBQUM4RyxVQUFVLElBQUssSUFBSUMsR0FBRyxDQUFDLENBQUUsRUFBRTBQLGFBQWEsQ0FBQyxFQUFFO1FBQzdEdk8sUUFBUSxDQUFDcEIsVUFBVSxHQUFHMlAsYUFBYTtNQUNyQztJQUNGO0lBRUEsSUFBSXBqQixNQUFNLENBQUNzRixJQUFJLENBQUN1UCxRQUFRLENBQUMsQ0FBQ2xRLE1BQU0sRUFBRTtNQUNoQ2lRLFFBQVEsQ0FBQ0MsUUFBUSxDQUFDO0lBQ3BCO0VBQ0YsQ0FBQyxFQUFFLENBQ0RqRCxLQUFLLEVBQ0xFLFVBQVUsRUFDVnJELE1BQU0sRUFDTjhLLFdBQVcsRUFDWC9LLGVBQWUsYUFBZkEsZUFBZSx1QkFBZkEsZUFBZSxDQUFFeUYsWUFBWSxFQUM3QnhDLDRCQUE0QixFQUM1QlEsYUFBYSxDQUNkLENBQUM7RUFFRjFILEtBQUssQ0FBQ2lPLFNBQVMsQ0FBQyxZQUFNO0lBQUU7SUFDdEI1RCxRQUFRLENBQUM7TUFDUFoscUJBQXFCLEVBQUUsSUFBSTtNQUMzQkQsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO01BQ3RCZCxrQkFBa0IsRUFBRTtJQUN0QixDQUFDLENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQ3lHLFVBQVUsQ0FBQyxDQUFDO0VBRWhCLElBQU02TCwyQkFBMkIsR0FBRyxTQUE5QkEsMkJBQTJCQSxDQUFJN1QsU0FBUyxFQUFFOFQsT0FBTyxFQUFLO0lBQzFEbFIsU0FBUyxDQUFDLFVBQUFRLFNBQVM7TUFBQSxPQUFBOUwsYUFBQSxDQUFBQSxhQUFBLEtBQ2Q4TCxTQUFTO1FBQ1pkLHFCQUFxQixFQUFBaEwsYUFBQSxDQUFBQSxhQUFBLEtBQU84TCxTQUFTLENBQUNkLHFCQUFxQixPQUFBL0ssZUFBQSxRQUFBdUcsTUFBQSxDQUFNa0MsU0FBUyxDQUFDL0QsT0FBTyxPQUFBNkIsTUFBQSxDQUFJa0MsU0FBUyxDQUFDOUQsS0FBSyxHQUFLNFgsT0FBTztNQUFFO0lBQUEsQ0FDbkgsQ0FBQztFQUNMLENBQUM7RUFFRCxJQUFJckMsYUFBYSxHQUFHM1UsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUV5RixZQUFZO0VBRWpEMUosS0FBSyxDQUFDaU8sU0FBUyxDQUFDLFlBQU07SUFBQSxJQUFBaU4sY0FBQTtJQUNwQixLQUFBQSxjQUFBLEdBQUl0QyxhQUFhLGNBQUFzQyxjQUFBLGVBQWJBLGNBQUEsQ0FBZTlnQixNQUFNLEVBQUU7TUFDekIsSUFBQStnQixLQUFBLEdBQW9DbFgsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUFqRGtELFdBQVMsR0FBQWdVLEtBQUEsQ0FBVGhVLFNBQVM7UUFBRU0sY0FBWSxHQUFBMFQsS0FBQSxDQUFaMVQsWUFBWTtNQUMvQjFDLE9BQU8sQ0FBQzhJLEdBQUcsd0NBQXdDO1FBQUUxRyxTQUFTLEVBQVRBLFdBQVM7UUFBRU0sWUFBWSxFQUFaQTtNQUFhLENBQUMsQ0FBQztJQUNqRjtFQUNGLENBQUMsRUFBRSxDQUFDbVIsYUFBYSxDQUFDLENBQUM7RUFFbkIsSUFBSSxHQUFBNVMsY0FBQSxHQUFDNFMsYUFBYSxjQUFBNVMsY0FBQSxlQUFiQSxjQUFBLENBQWU1TCxNQUFNLEdBQUU7SUFBRTtJQUM1QndlLGFBQWEsR0FBRyxDQUFBbmEsYUFBQSxLQUFNMEksU0FBUyxFQUFHO0VBQ3BDO0VBRUEsSUFBTWlVLHNCQUFzQixJQUFBblYsY0FBQSxHQUFHMlMsYUFBYSxjQUFBM1MsY0FBQSx1QkFBYkEsY0FBQSxDQUFlMFUsR0FBRyxDQUFDLFVBQUNVLGlCQUFpQixFQUFFckosS0FBSyxFQUFLO0lBQUEsSUFBQXNKLHFCQUFBO0lBQzlFLElBQU1DLG1CQUFtQixHQUFHLENBQUFGLGlCQUFpQixhQUFqQkEsaUJBQWlCLGdCQUFBQyxxQkFBQSxHQUFqQkQsaUJBQWlCLENBQUUvWCxTQUFTLGNBQUFnWSxxQkFBQSx1QkFBNUJBLHFCQUFBLENBQThCL1gsWUFBWSxLQUFJLEVBQUU7SUFDNUU7SUFDQSxJQUFBaVksS0FBQSxHQUEyQkgsaUJBQWlCLElBQUksQ0FBQyxDQUFDO01BQTFDalksT0FBTyxHQUFBb1ksS0FBQSxDQUFQcFksT0FBTztNQUFFQyxLQUFLLEdBQUFtWSxLQUFBLENBQUxuWSxLQUFLO0lBQ3RCLElBQU1vQixTQUFTLEdBQUcsQ0FBQStELGdCQUFnQixhQUFoQkEsZ0JBQWdCLHVCQUFoQkEsZ0JBQWdCLENBQUUvRCxTQUFTLE1BQUkwQyxTQUFTLGFBQVRBLFNBQVMsdUJBQVRBLFNBQVMsQ0FBRTFDLFNBQVM7SUFDckUsSUFBTTBLLFVBQVUsR0FBQTFRLGFBQUEsQ0FBQUEsYUFBQSxLQUNYbWEsYUFBYTtNQUNoQnhWLE9BQU8sRUFBUEEsT0FBTztNQUNQcUIsU0FBUyxFQUFUQSxTQUFTO01BQ1RwQixLQUFLLEVBQUxBO0lBQUssRUFDTjtJQUNELElBQU1vWSw2QkFBNkIsR0FBQWhkLGFBQUEsQ0FBQUEsYUFBQSxLQUM5Qm9TLDRCQUE0QjtNQUMvQkssWUFBWSxFQUFFYyxLQUFLO01BQ25CdUosbUJBQW1CLEVBQW5CQSxtQkFBbUI7TUFDbkJwVSxTQUFTLEVBQUVnSSxVQUFVO01BQ3JCckUsY0FBYyxFQUFkQTtJQUFjLEVBQ2Y7SUFFRCxJQUFJNFEsMkJBQTJCLEdBQUcsS0FBSztJQUV2QyxJQUFJOVIseUJBQXlCLEVBQUU7TUFDN0I4UiwyQkFBMkIsR0FBRzlSLHlCQUF5QixDQUFDeEcsT0FBTyxJQUFJQSxPQUFPLElBQUl3Ryx5QkFBeUIsQ0FBQ3ZHLEtBQUssSUFBSUEsS0FBSztJQUN4SDtJQUVBLG9CQUNFckQsS0FBQSxDQUFBNk8sYUFBQSxDQUFDck4sYUFBYSxFQUFBaEUsUUFBQSxLQUNSeUcsZUFBZTtNQUNuQnNNLFlBQVksRUFBRUEsWUFBYTtNQUMzQlcsWUFBWSxFQUFFYyxLQUFNO01BQ3BCMkosaUJBQWlCLEVBQUUsQ0FBQy9TLGFBQWM7TUFDbENzRyxTQUFTLEVBQUVBLFNBQVU7TUFDckIzSSxrQkFBa0IsRUFBRWtLLG1CQUFvQjtNQUN4Q3ZHLFFBQVEsRUFBRUEsUUFBUztNQUNuQnpELGNBQWMsRUFBRUEsY0FBZTtNQUMvQkssSUFBSSxFQUFFc0QsS0FBTTtNQUNac1IsMkJBQTJCLEVBQUVBLDJCQUE0QjtNQUN6RHpmLEdBQUcsRUFBRStWLEtBQU07TUFDWDRKLGlCQUFpQixFQUFFLFNBQUFBLGtCQUFBO1FBQUEsT0FBTXZSLFFBQVEsQ0FBQztVQUFFVCx5QkFBeUIsRUFBRTtRQUFLLENBQUMsQ0FBQztNQUFBLENBQUM7TUFDdkUxQyw0QkFBNEIsRUFBRUEsNEJBQTZCO01BQzNEZ0osUUFBUSxFQUFFQSxRQUFTO01BQ25CL0ksU0FBUyxFQUFFZ0ksVUFBVztNQUN0QjBNLE1BQU0sRUFBRXhTO01BQ1I7TUFBQTtNQUNBd0gsNEJBQTRCLEVBQUU0Syw2QkFBOEI7TUFDNUR6VCxvQkFBb0IsRUFBRUEsb0JBQXFCO01BQzNDTCxNQUFNLEVBQUVBLE1BQU87TUFDZk0sU0FBUyxFQUFFQSxTQUFVO01BQ3JCK1MsMkJBQTJCLEVBQUVBO0lBQTRCLEVBQzFELENBQUM7RUFFTixDQUFDLENBQUM7RUFFRixJQUFNYyxzQkFBc0IsR0FBRyxTQUF6QkEsc0JBQXNCQSxDQUFBLEVBQVM7SUFDbkMsSUFBSSxDQUFBcFMsWUFBWSxhQUFaQSxZQUFZLHVCQUFaQSxZQUFZLENBQUV0UCxNQUFNLElBQUcsQ0FBQyxFQUFFO01BQzVCaVEsUUFBUSxDQUFDO1FBQUVqQixrQkFBa0IsRUFBRTtNQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDLE1BQU0sSUFBSSxDQUFBTSxZQUFZLGFBQVpBLFlBQVksdUJBQVpBLFlBQVksQ0FBRXRQLE1BQU0sTUFBSyxDQUFDLEVBQUU7TUFDckNpUSxRQUFRLENBQUM7UUFBRVQseUJBQXlCLEVBQUVGLFlBQVksQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDO0lBQzFEO0VBQ0YsQ0FBQztFQUVELElBQU1xUyxlQUFlLEdBQUcsU0FBbEJBLGVBQWVBLENBQUFDLE1BQUEsRUFBa0I7SUFBQSxJQUFaek0sS0FBSyxHQUFBeU0sTUFBQSxDQUFMek0sS0FBSztJQUM5QixJQUFNME0sUUFBUSxHQUFBcGUsa0JBQUEsQ0FBTzBSLEtBQUssQ0FBQztJQUUzQixJQUFJMk0sZ0JBQWdCLEdBQUcsS0FBSzs7SUFFNUI7SUFDQSxJQUFJelMscUJBQXFCLEVBQUU7TUFDekJ5UyxnQkFBZ0IsR0FBR3ptQixNQUFNLENBQUN1QyxNQUFNLENBQUN5UixxQkFBcUIsQ0FBQyxDQUFDMFMsS0FBSyxDQUFDLFVBQUFDLFdBQVc7UUFBQSxPQUFJQSxXQUFXLEtBQUssSUFBSTtNQUFBLEVBQUM7SUFDcEc7SUFFQSxJQUFJQyxTQUFTLEdBQUcsSUFBSTtJQUNwQixJQUFJQyxlQUFlLEdBQUcsRUFBRTtJQUV4QixJQUFJSixnQkFBZ0IsRUFBRTtNQUNwQkcsU0FBUyxnQkFBR3JjLEtBQUEsQ0FBQTZPLGFBQUEsQ0FBQ3RPLE9BQU87UUFBQ3NHLEVBQUUsZ0JBQUE1QixNQUFBLENBQWdCc0MsVUFBVSxDQUFHO1FBQUNnVixLQUFLLEVBQUM7TUFBTSxDQUFFLENBQUM7TUFDcEVELGVBQWUsR0FBRyxvQkFBb0I7SUFDeEMsQ0FBQyxNQUFNO01BQ0xELFNBQVMsZ0JBQUdyYyxLQUFBLENBQUE2TyxhQUFBLENBQUNyTyxZQUFZO1FBQUNxRyxFQUFFLDRCQUFBNUIsTUFBQSxDQUE0QnNDLFVBQVUsQ0FBRztRQUFDZ1YsS0FBSyxFQUFDO01BQU0sQ0FBRSxDQUFDO01BQ3JGRCxlQUFlLEdBQUcsc0JBQXNCO0lBQzFDO0lBRUEsSUFBSXRVLG9CQUFvQixJQUFJVCxVQUFVLEtBQUssaUJBQWlCLEVBQUU7TUFDNUQwVSxRQUFRLENBQUNsaUIsSUFBSSxlQUNYaUcsS0FBQSxDQUFBNk8sYUFBQSxDQUFDdk8sVUFBVTtRQUNUdUcsRUFBRSxvQkFBQTVCLE1BQUEsQ0FBb0JzQyxVQUFVLENBQUc7UUFDbkN0TCxHQUFHLEVBQUMsaUJBQWlCO1FBQ3JCdWdCLE9BQU8sRUFBRVYsc0JBQXVCO1FBQ2hDNVQsS0FBSyxFQUFFb1UsZUFBZ0I7UUFDdkIsY0FBWUEsZUFBZ0I7UUFDNUJ6WixLQUFLLEVBQUU7VUFBRTRaLE1BQU0sRUFBRTtRQUFVO01BQUUsR0FFNUJKLFNBQ1MsQ0FDZCxDQUFDO0lBQ0g7O0lBRUE7SUFDQSxDQUFDaFIsa0JBQWtCLElBQUk0USxRQUFRLENBQUNsaUIsSUFBSSxlQUNsQ2lHLEtBQUEsQ0FBQTZPLGFBQUEsQ0FBQTdPLEtBQUEsQ0FBQTBjLFFBQUEscUJBQ0UxYyxLQUFBLENBQUE2TyxhQUFBLENBQUNoTyxrQkFBa0IsRUFBQXJELFFBQUEsS0FBS3VQLGlCQUFpQjtNQUFFUSxTQUFTLEVBQUVELGVBQWUsSUFBSWpFO0lBQVUsRUFBQyxDQUFDLGVBQ3JGckosS0FBQSxDQUFBNk8sYUFBQSxDQUFDbk8sV0FBVztNQUFDd0gsS0FBSyxFQUFFdUYsV0FBWTtNQUFDb0YsT0FBTyxFQUFFckYsYUFBYztNQUFDbVAsSUFBSSxFQUFFdlAsaUJBQWtCO01BQUN3UCxPQUFPLEVBQUV2UCxrQkFBbUI7TUFBQ0UsU0FBUyxFQUFHRCxlQUFlLElBQUlqRSxTQUFXO01BQUN3VCxJQUFJLEVBQUVuUCxVQUFXO01BQUNvUCxXQUFXLEVBQUVuUDtJQUFrQixDQUFFLENBQzdNLENBQ0osQ0FBQztJQUVELE9BQU9zTyxRQUFRO0VBQ2pCLENBQUM7O0VBRUQ7RUFDQSxJQUFNYyxTQUFTLEdBQUdwVCxlQUFlLEdBQUc5TCxrQkFBQSxDQUFJOEwsZUFBZSxDQUFDNU8sSUFBSSxDQUFDLENBQUMsRUFBRWliLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO0VBQzlFLElBQU1nSCxvQkFBb0IsR0FBRzlWLDRCQUE0QixhQUE1QkEsNEJBQTRCLHVCQUE1QkEsNEJBQTRCLENBQUVnUyxRQUFRO0VBRW5FLG9CQUNFbFosS0FBQSxDQUFBNk8sYUFBQSxDQUFDMU8seUJBQXlCO0lBQ3hCbWEsVUFBVSxFQUFFMEMsb0JBQW9CLElBQUksQ0FBQyxDQUFFO0lBQ3ZDekMsVUFBVSxFQUFFMVksYUFBYSxDQUFDNkYsYUFBYSxhQUFiQSxhQUFhLHVCQUFiQSxhQUFhLENBQUU2UyxVQUFVLENBQUU7SUFDckQwQyxZQUFZLEVBQUUsU0FBQUEsYUFBQXBFLGFBQWEsRUFBSTtNQUM3QjtJQUFBLENBQ0E7SUFDRk8sS0FBSyxFQUFFLENBQUExUixhQUFhLGFBQWJBLGFBQWEsdUJBQWJBLGFBQWEsQ0FBRTBSLEtBQUssS0FBSSxFQUFHO0lBQ2xDMkQsU0FBUyxFQUFFQSxTQUFVO0lBQ3JCN1QsVUFBVSxFQUFFQTtFQUFXLGdCQUV2QmxKLEtBQUEsQ0FBQTZPLGFBQUEsQ0FBQ3BPLElBQUk7SUFDSG9HLEVBQUUsb0JBQUE1QixNQUFBLENBQW9Cb0IsT0FBTyxDQUFHO0lBQ2hDNkIsS0FBSyxFQUFFc0ksY0FBZTtJQUN0QjBNLGFBQWEsRUFBRTlPLGNBQWMsR0FBRyxXQUFZO0lBQzVDbUIsS0FBSyxFQUFFQSxLQUFNO0lBQ2JqSixPQUFPLEVBQUVBLE9BQVE7SUFDakJvSixPQUFPLEVBQUVBLE9BQVE7SUFDakJDLE9BQU8sRUFBRUEsT0FBUTtJQUNqQnpGLFFBQVEsRUFBRUEsUUFBUztJQUNuQjBGLFNBQVMsRUFBRUEsU0FBVTtJQUNyQkcsVUFBVSxFQUFFQSxVQUFXO0lBQ3ZCNUYsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCNkYsWUFBWSxFQUFFQSxZQUFhO0lBQzNCSCxZQUFZLEVBQUVBLFlBQWE7SUFDM0JJLGVBQWUsRUFBRUEsZUFBZ0I7SUFDakNrTixrQkFBa0IsRUFBRXhPLG9CQUFxQjtJQUN6Q3lPLGtCQUFrQjtJQUNsQnJPLFdBQVcsRUFBRUEsV0FBWTtJQUN6Qi9ILFVBQVUsRUFBRUEsVUFBVSxHQUFHO01BQUEsT0FBTUEsVUFBVSxDQUFDSCxFQUFFLEVBQUV1SCxjQUFjLENBQUM7SUFBQSxJQUFHLElBQUs7SUFDckVpUCxRQUFRLEVBQUUzTSxVQUFVLElBQUlDLGVBQWdCO0lBQ3hDUSxLQUFLLEVBQUU5SCxTQUFTLElBQUksQ0FBQ1gsa0JBQW1CO0lBQ3hDK0ssVUFBVSxFQUFFLFNBQUFBLFdBQUE7TUFBQSxPQUFNcEosUUFBUSxDQUFDO1FBQUV2QixXQUFXLEVBQUU7TUFBSyxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ2xEaVQsZUFBZSxFQUFFQTtFQUFnQixnQkFFakMvYixLQUFBLENBQUE2TyxhQUFBO0lBQUtoSSxFQUFFLEVBQUM7RUFBcUIsR0FDMUJ1VSxzQkFDRSxDQUNELENBQUMsZUFDUHBiLEtBQUEsQ0FBQTZPLGFBQUEsQ0FBQ3BNLGtCQUFrQjtJQUNqQjhFLFVBQVUsRUFBRUEsVUFBVztJQUN2Qm9WLElBQUksRUFBRXZULGtCQUFtQjtJQUN6QndULE9BQU8sRUFBRSxTQUFBQSxRQUFBO01BQUEsT0FBTXZTLFFBQVEsQ0FBQztRQUFFakIsa0JBQWtCLEVBQUU7TUFBTSxDQUFDLENBQUM7SUFBQSxDQUFDO0lBQ3ZETSxZQUFZLEVBQUVBLFlBQWE7SUFDM0JELHFCQUFxQixFQUFFQSxxQkFBc0I7SUFDN0M2VCxhQUFhLEVBQUUsU0FBQUEsY0FBQ2phLEtBQUs7TUFBQSxPQUFLZ0gsUUFBUSxDQUFDO1FBQ2pDVCx5QkFBeUIsRUFBRXZHLEtBQUs7UUFDaEMrRixrQkFBa0IsRUFBRTtNQUN0QixDQUFDLENBQUM7SUFBQTtFQUFDLENBQ0osQ0FDd0IsQ0FBQztBQUVoQztBQUVBakUsYUFBYSxDQUFDb1ksU0FBUyxHQUFHO0VBQ3hCO0VBQ0FyWCxNQUFNLEVBQUVqRyxTQUFTLENBQUN1ZCxNQUFNLENBQUNDLFVBQVU7RUFDbkM7RUFDQXRYLGNBQWMsRUFBRWxHLFNBQVMsQ0FBQ3lkLE1BQU07RUFDaEM7RUFDQXRYLFNBQVMsRUFBRW5HLFNBQVMsQ0FBQ3VkLE1BQU07RUFDM0I7RUFDQW5YLE9BQU8sRUFBRXBHLFNBQVMsQ0FBQzBkLE1BQU0sQ0FBQ0YsVUFBVTtFQUNwQztFQUNBblgsT0FBTyxFQUFFckcsU0FBUyxDQUFDeWQsTUFBTTtFQUN6QjtFQUNBblgsa0JBQWtCLEVBQUV0RyxTQUFTLENBQUMyZCxJQUFJO0VBQ2xDO0VBQ0FwWCxXQUFXLEVBQUV2RyxTQUFTLENBQUM0ZCxJQUFJLENBQUNKLFVBQVU7RUFDdEM7RUFDQWhYLGNBQWMsRUFBRXhHLFNBQVMsQ0FBQzRkLElBQUk7RUFDOUI7RUFDQW5YLFlBQVksRUFBRXpHLFNBQVMsQ0FBQ3VkLE1BQU07RUFDOUI7RUFDQTdXLGFBQWEsRUFBRTFHLFNBQVMsQ0FBQ3VkLE1BQU07RUFDL0I7RUFDQTVXLFVBQVUsRUFBRTNHLFNBQVMsQ0FBQ3lkLE1BQU07RUFDNUI7RUFDQTdXLEVBQUUsRUFBRTVHLFNBQVMsQ0FBQ3VkLE1BQU07RUFDcEI7RUFDQTFXLElBQUksRUFBRTdHLFNBQVMsQ0FBQzRkLElBQUksQ0FBQ0osVUFBVTtFQUMvQjtFQUNBMVcsWUFBWSxFQUFFOUcsU0FBUyxDQUFDdWQsTUFBTTtFQUM5QjtFQUNBeFcsVUFBVSxFQUFFL0csU0FBUyxDQUFDNGQsSUFBSTtFQUMxQjtBQUNGO0FBQ0E7QUFDQTtFQUNFNVcsZUFBZSxFQUFFaEgsU0FBUyxDQUFDNGQsSUFBSTtFQUMvQjtFQUNBM1csNEJBQTRCLEVBQUVqSCxTQUFTLENBQUN5ZCxNQUFNO0VBQzlDdlcsU0FBUyxFQUFFbEgsU0FBUyxDQUFDNmQsS0FBSyxDQUFDO0lBQ3pCO0lBQ0FyWixTQUFTLEVBQUV4RSxTQUFTLENBQUN1ZCxNQUFNLENBQUNDLFVBQVU7SUFDdEM7SUFDQXJhLE9BQU8sRUFBRW5ELFNBQVMsQ0FBQzhkLFNBQVMsQ0FBQyxDQUFDOWQsU0FBUyxDQUFDMGQsTUFBTSxFQUFFMWQsU0FBUyxDQUFDdWQsTUFBTSxDQUFDLENBQUMsQ0FBQ0MsVUFBVTtJQUM3RTtJQUNBcGEsS0FBSyxFQUFFcEQsU0FBUyxDQUFDOGQsU0FBUyxDQUFDLENBQUM5ZCxTQUFTLENBQUMwZCxNQUFNLEVBQUUxZCxTQUFTLENBQUN1ZCxNQUFNLENBQUMsQ0FBQyxDQUFDQztFQUNuRSxDQUFDLENBQUM7RUFDRjtFQUNBalosUUFBUSxFQUFFdkUsU0FBUyxDQUFDNmQsS0FBSyxDQUFDO0lBQ3hCO0lBQ0F4VyxVQUFVLEVBQUVySCxTQUFTLENBQUN1ZCxNQUFNLENBQUNDLFVBQVU7SUFDdkM7SUFDQXBXLEtBQUssRUFBRXBILFNBQVMsQ0FBQ3VkLE1BQU0sQ0FBQ0MsVUFBVTtJQUNsQztJQUNBbFcsVUFBVSxFQUFFdEgsU0FBUyxDQUFDdWQsTUFBTSxDQUFDQyxVQUFVO0lBQ3ZDO0lBQ0FqVyxxQkFBcUIsRUFBRXZILFNBQVMsQ0FBQ3VkLE1BQU0sQ0FBQ0M7RUFDMUMsQ0FBQyxDQUFDO0VBQ0Y7RUFDQWhXLFlBQVksRUFBRXhILFNBQVMsQ0FBQytkLEdBQUc7RUFDM0I7RUFDQXRXLGFBQWEsRUFBRXpILFNBQVMsQ0FBQ3lkLE1BQU07RUFDL0I7RUFDQS9WLE1BQU0sRUFBRTFILFNBQVMsQ0FBQ3VkLE1BQU0sQ0FBQ0MsVUFBVTtFQUNuQztFQUNBUSxzQkFBc0IsRUFBRWhlLFNBQVMsQ0FBQzRkLElBQUk7RUFDdEM7RUFDQUsscUJBQXFCLEVBQUVqZSxTQUFTLENBQUM0ZCxJQUFJO0VBQ3JDO0VBQ0FqVyxvQkFBb0IsRUFBRTNILFNBQVMsQ0FBQzRkLElBQUk7RUFDcEM7RUFDQWhXLHFCQUFxQixFQUFFNUgsU0FBUyxDQUFDNGQsSUFBSTtFQUNyQztFQUNBL1YsY0FBYyxFQUFFN0gsU0FBUyxDQUFDNGQsSUFBSTtFQUM5QjtFQUNBOVYsZUFBZSxFQUFFOUgsU0FBUyxDQUFDNGQsSUFBSTtFQUMvQjtFQUNBN1Ysb0JBQW9CLEVBQUUvSCxTQUFTLENBQUM0ZCxJQUFJO0VBQ3BDO0VBQ0EzVixLQUFLLEVBQUVqSSxTQUFTLENBQUN1ZCxNQUFNLENBQUNDLFVBQVU7RUFDbEM7RUFDQXhWLFNBQVMsRUFBRWhJLFNBQVMsQ0FBQzRkLElBQUk7RUFDekI7RUFDQXpWLGdCQUFnQixFQUFFbkksU0FBUyxDQUFDNGQsSUFBSTtFQUNoQztFQUNBMVYsbUJBQW1CLEVBQUVsSSxTQUFTLENBQUM0ZCxJQUFJLENBQUNKO0FBQ3RDLENBQUMifQ==
|
|
1515
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0Iiwic291cmNlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiYXJyIiwiX2FycmF5V2l0aG91dEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVNwcmVhZCIsIml0ZXIiLCJmcm9tIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJvd25LZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiX29iamVjdFNwcmVhZCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib2JqIiwiX3RvUHJvcGVydHlLZXkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJfc2xpY2VkVG9BcnJheSIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl9ub25JdGVyYWJsZVJlc3QiLCJtaW5MZW4iLCJ0b1N0cmluZyIsInRlc3QiLCJsZW4iLCJhcnIyIiwiUmVhY3QiLCJQcm9wVHlwZXMiLCJjb3JlIiwiU2VsZWN0aW9uc0NvbnRleHRQcm92aWRlciIsInVzZm1qcyIsInVzZUVkaXQiLCJJY29uQnV0dG9uIiwiUnhMaW5rMiIsIlJ4TGlua0JyZWFrMiIsIkNhcmQiLCJFcnJvckRpYWxvZyIsIkVSUk9SX1NUQVRFIiwiTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUiIsIlVwZGF0ZUJyYW5jaEJ1dHRvbiIsInVzZUJyYW5jaE1lcmdlciIsInVzZUNhcmRTdGF0ZSIsInVzZUNvbnRlbnRVcGRhdGVQcm9wcyIsInVzZU1hc3Rlck1lcmdlUHJvcHMiLCJ1c2VVc2VyQnJhbmNoIiwiZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIiwiQWxpZ25tZW50SGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJpc0VxdWFsIiwiZ2V0VmVyc2VzIiwiU2NyaXB0dXJlUGFuZSIsIlNjcmlwdHVyZVNlbGVjdG9yIiwidXNlU2NyaXB0dXJlU2V0dGluZ3MiLCJjbGVhbnVwVmVyc2VPYmplY3RzIiwiZmV0Y2hCaWJsZUJvb2siLCJmaXhPY2N1cnJlbmNlIiwiZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lIiwiZ2V0UmVzb3VyY2VMaW5rIiwiZ2V0UmVzb3VyY2VNZXNzYWdlIiwiZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzIiwiaXNPcmlnaW5hbEJpYmxlIiwiZGVsYXkiLCJhcmVNYXBzVGhlU2FtZSIsIlRpdGxlIiwiTlRfT1JJR19MQU5HIiwiT1JJR0lOQUxfU09VUkNFIiwiT1RfT1JJR19MQU5HIiwiVmVyc2VTZWxlY3RvclBvcHVwIiwiZ2V0UGF0Y2giLCJLRVlfRk9OVF9TSVpFX0JBU0UiLCJsYWJlbCIsInN0eWxlIiwibWFyZ2luVG9wIiwid2lkdGgiLCJjb21wYXJlT2JqZWN0IiwidmVyc2VSZWYiLCJfdmVyc2VEYXRhJHZlcnNlT2JqZWMiLCJfcmVmIiwiY2hhcHRlciIsInZlcnNlIiwidmVyc2VEYXRhIiwidmVyc2VPYmplY3RzIiwiSlNPTiIsInN0cmluZ2lmeSIsImFyZVZlcnNlc1NhbWUiLCJ2ZXJzZXNGb3JSZWYxIiwidmVyc2VzRm9yUmVmMiIsImFyZVNhbWUiLCJ2ZXJzZTEiLCJ2ZXJzZTIiLCJnZXRDdXJyZW50Qm9vayIsInNjcmlwdHVyZUNvbmZpZyIsImJvb2tJZCIsIl9zY3JpcHR1cmVDb25maWckcmVzbyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzIiLCJfYm9va05hbWUkdG9Mb3dlckNhc2UiLCJsYXRlc3RCaWJsZSIsInJlc291cmNlU3RhdGUiLCJyZXNvdXJjZSIsInByb2plY3RJZCIsImZpbGVuYW1lIiwiaXNCb29rVmFsaWQiLCJib29rTmFtZSIsInRvTG93ZXJDYXNlIiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiIsImNvbmNhdCIsImJpYmxlVXNmbSIsIlNjcmlwdHVyZUNhcmQiLCJfcmVmMiIsIl9zY3JpcHR1cmVDb25maWckcmVzbzMiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc280IiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvNSIsIl9zY3JpcHR1cmVDb25maWckcmVzbzYiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc283IiwiX2F1dGhlbnRpY2F0aW9uJHRva2VuIiwiX3NjcmlwdHVyZUNvbmZpZyRyZXNvOSIsIl9zY3JpcHR1cmVDb25maWckcmVzbzEwIiwiX2h0dHBDb25maWciLCJfaHR0cENvbmZpZzIiLCJfYXV0aGVudGljYXRpb24kdXNlciIsIl92ZXJzZXNGb3JSZWYzIiwiX3ZlcnNlc0ZvclJlZjQiLCJhcHBSZWYiLCJhdXRoZW50aWNhdGlvbiIsImJvb2tJbmRleCIsImNhcmROdW0iLCJjbGFzc2VzIiwiZGlzYWJsZVdvcmRQb3BvdmVyIiwiZ2V0TGFuZ3VhZ2UiLCJnZXRMZXhpY29uRGF0YSIsImdyZWVrUmVwb1VybCIsImhlYnJld1JlcG9VcmwiLCJodHRwQ29uZmlnIiwiaWQiLCJpc05UIiwibG9nZ2VkSW5Vc2VyIiwib25NaW5pbWl6ZSIsIm9uUmVzb3VyY2VFcnJvciIsIm9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMiLCJyZWZlcmVuY2UiLCJfcmVmMiRyZXNvdXJjZSIsIm93bmVyIiwibGFuZ3VhZ2VJZCIsInJlc291cmNlSWQiLCJvcmlnaW5hbExhbmd1YWdlT3duZXIiLCJyZXNvdXJjZUxpbmsiLCJzZWxlY3RlZFF1b3RlIiwic2VydmVyIiwic2V0Q2FyZHNMb2FkaW5nTWVyZ2UiLCJzZXRDYXJkc0xvYWRpbmdVcGRhdGUiLCJzZXRDYXJkc1NhdmluZyIsInNldFNhdmVkQ2hhbmdlcyIsInNldFdvcmRBbGlnbmVyU3RhdHVzIiwidHJhbnNsYXRlIiwidGl0bGUiLCJ1c2VVc2VyTG9jYWxTdG9yYWdlIiwidXBkYXRlTWVyZ2VTdGF0ZSIsIl9SZWFjdCR1c2VTdGF0ZSIsInVzZVN0YXRlIiwiY2hlY2tGb3JFZGl0QnJhbmNoIiwiY3VycmVudFJlZmVyZW5jZSIsImVkaXRCcmFuY2hSZWFkeSIsImhhdmVVbnNhdmVkQ2hhbmdlcyIsImxhc3RTZWxlY3RlZFF1b3RlIiwicmVhZHlGb3JGZXRjaCIsInJlZiIsInNhdmVDbGlja2VkIiwic2F2ZUNvbnRlbnQiLCJzYXZlRGlmZlBhdGNoIiwic2F2ZUZ1bGxCaWJsZUNvbnRlbnQiLCJzZWxlY3Rpb25zIiwiTWFwIiwic2hvd0FsaWdubWVudFBvcHVwIiwic3RhcnRTYXZlIiwidXJsRXJyb3IiLCJ1c2luZ1VzZXJCcmFuY2giLCJ1bnNhdmVkQ2hhbmdlc0xpc3QiLCJ2ZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJ2ZXJzZXNGb3JSZWYiLCJ2ZXJzZU9iamVjdHNNYXAiLCJ2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiX1JlYWN0JHVzZVN0YXRlMiIsInN0YXRlIiwic2V0U3RhdGVfIiwiX3VzZVVzZXJMb2NhbFN0b3JhZ2UiLCJfdXNlVXNlckxvY2FsU3RvcmFnZTIiLCJmb250U2l6ZSIsInNldEZvbnRTaXplIiwiaXNOVF8iLCJzZXRTdGF0ZSIsIm5ld1N0YXRlIiwicHJldlN0YXRlIiwiY2FjaGUiLCJtYXhBZ2UiLCJub0NhY2hlIiwiX3VzZVNjcmlwdHVyZVNldHRpbmdzIiwic2V0VXJsRXJyb3IiLCJ3aG9sZUJvb2siLCJpc05ld1Rlc3RhbWVudCIsInNldFNjcmlwdHVyZSIsInNjcmlwdHVyZVNldHRpbmdzIiwic2NyaXB0dXJlVmVyc2lvbkhpc3QiLCJmZXRjaGVkUmVzb3VyY2UiLCJyZXBvIiwicmVmZXJlbmNlXyIsInVzaW5nT3JpZ2luYWxCaWJsZSIsImNhcmRSZXNvdXJjZUlkIiwicmVmXyIsImNhblVzZUVkaXRCcmFuY2giLCJfdXNlVXNlckJyYW5jaCIsImNhcmRJZCIsIl91c2VVc2VyQnJhbmNoJHN0YXRlIiwiYnJhbmNoRGV0ZXJtaW5lZCIsInVzZXJFZGl0QnJhbmNoTmFtZSIsIl91c2luZ1VzZXJCcmFuY2giLCJ3b3JraW5nUmVzb3VyY2VCcmFuY2giLCJfdXNlVXNlckJyYW5jaCRhY3Rpb24iLCJhY3Rpb25zIiwic3RhcnRFZGl0QnJhbmNoIiwic3RhcnRFZGl0IiwiZmluaXNoRWRpdCIsIl91c2VCcmFuY2hNZXJnZXIiLCJ1c2VyQnJhbmNoIiwidG9rZW5pZCIsInRva2VuIiwic2hhMSIsIl91c2VCcmFuY2hNZXJnZXIkc3RhdCIsIm1lcmdlVG9NYXN0ZXIiLCJtZXJnZVN0YXR1cyIsIm1lcmdlRnJvbU1hc3RlciIsInVwZGF0ZVN0YXR1cyIsInVwZGF0ZUJ1dHRvblByb3BzIiwiaXNTYXZpbmciLCJvblVwZGF0ZSIsInJlbG9hZFJlc291cmNlIiwiY2FsbFVwZGF0ZVVzZXJCcmFuY2giLCJpc0Vycm9yRGlhbG9nT3BlbiIsIm9uQ2xvc2VFcnJvckRpYWxvZyIsImlzVXBkYXRlTG9hZGluZyIsImlzTG9hZGluZyIsImRpYWxvZ01lc3NhZ2UiLCJkaWFsb2dUaXRsZSIsImRpYWxvZ0xpbmsiLCJkaWFsb2dMaW5rVG9vbHRpcCIsIm9uTWVyZ2UiLCJsb2ciLCJfdXNlTWFzdGVyTWVyZ2VQcm9wcyIsImlzTWVyZ2VMb2FkaW5nIiwiY2FsbE1lcmdlVXNlckJyYW5jaCIsInVzZUVmZmVjdCIsInByZXZDYXJkc0xvYWRpbmciLCJ3b3JraW5nUmVmIiwic2NyaXB0dXJlVGl0bGUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlc284IiwicmVzb3VyY2VTdGF0dXMiLCJtZXNzYWdlIiwiaXNBY2Nlc3NFcnJvciIsInZlcnNpb24iLCJ1cGRhdGVUaXRsZSIsImdldFNjcmlwdHVyZVNlbGVjdG9yIiwic2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnIiwiY3JlYXRlRWxlbWVudCIsImVycm9yTWVzc2FnZSIsIm9uTWVudUNsb3NlIiwibGFuZ3VhZ2VJZF8iLCJsYW5ndWFnZSIsImRpcmVjdGlvbiIsIl9yZWZlcmVuY2UiLCJpc0hlYnJldyIsImZvbnRGYWN0b3IiLCJzY2FsZWRGb250U2l6ZSIsIml0ZW1zIiwiX3VzZUNhcmRTdGF0ZSIsIl91c2VDYXJkU3RhdGUkc3RhdGUiLCJoZWFkZXJzIiwiZmlsdGVycyIsIml0ZW1JbmRleCIsIm1hcmtkb3duVmlldyIsIl91c2VDYXJkU3RhdGUkYWN0aW9ucyIsInNldEZpbHRlcnMiLCJzZXRJdGVtSW5kZXgiLCJzZXRNYXJrZG93blZpZXciLCJyZWZTdHlsZSIsInVzZU1lbW8iLCJmb250RmFtaWx5IiwiTWF0aCIsInJvdW5kIiwiY29udGVudFN0eWxlIiwic2NyaXB0dXJlTGFiZWwiLCJkaXNhYmxlV29yZFBvcG92ZXJfIiwiZW5hYmxlRWRpdCIsImVuYWJsZUFsaWdubWVudCIsIm9yaWdpbmFsUmVwb1VybCIsInNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWciLCJjdXJyZW50VmVyc2VSZWYiLCJfc2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJ0YXJnZXRMYW5ndWFnZSIsImN1cnJlbnRJbmRleCIsInNhdmVkIiwiX3JlZjMiLCJfcmVmMyRnZXRDaGFuZ2VzIiwiZ2V0Q2hhbmdlcyIsIl9yZWYzJGNsZWFyQ2hhbmdlcyIsImNsZWFyQ2hhbmdlcyIsIl9yZWYzJHN0YXRlIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCIsIl9oYXZlVW5zYXZlZENoYW5nZXMiLCJmaW5kUmVmSW5BcnJheSIsImZpbmRJdGVtIiwiY2h1bmtzIiwicmVmTGVuIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJjaHVuayIsImlkeCIsInN1YnN0cmluZyIsIm5leHRDaGFyIiwiZ2V0Qm9va05hbWUiLCJfc2NyaXB0dXJlQ29uZmlnJHJlZmUiLCJib29rQ2FwcyIsInRvVXBwZXJDYXNlIiwiZmlsZXBhdGgiLCJzaGEiLCJfdXNlRWRpdCIsImNvbnRlbnQiLCJjb25maWciLCJkb250Q3JlYXRlQnJhbmNoIiwidGltZW91dCIsInNlcnZlclRpbWVPdXQiLCJhdXRob3IiLCJlbWFpbCIsInVzZXIiLCJicmFuY2giLCJzYXZlRXJyb3IiLCJpc1NhdmVFcnJvciIsImlzRXJyb3IiLCJvblNhdmVFZGl0Iiwib25TYXZlRWRpdFBhdGNoIiwiX3NhdmVTdWNjZXNmdWwiLCJwcmV2Q2FyZHNTYXZpbmciLCJ1bnNhdmVkQ2FyZEluZGljZXMiLCJfaXRlcmF0b3IiLCJfc3RlcCIsImNhcmRJbmRleCIsIl9zYXZlRWRpdCIsIl9yZWY0IiwiX2NhbGxlZSIsInVwbG9hZEZ1bmN0aW9uIiwic3VjY2VzcyIsInJlc3VsdHMiLCJfc2F2ZUNvbnRlbnQiLCJmaWxlU2hhIiwic2F2ZWRCaWJsZVVzZm0iLCJlZGl0ZWRCaWJsZVVzZm0iLCJ1cFRvRGF0ZSIsImRpZmZQYXRjaCIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0iLCJ1cGRhdGVkVmVyc2VPYmplY3RzIiwibmV3VXNmbSIsImNoYXB0ZXJDaHVua3MiLCJzcGxpdCIsImNoYXB0ZXJJbmRleCIsImN1cnJlbnRDaGFwdGVyIiwidmVyc2VDaHVua3MiLCJ2ZXJzZUluZGV4IiwiZnJvbnRNYXR0ZXIiLCJuZXdWZXJzZVVzZm0iLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwib2xkVmVyc2UiLCJwcmVmaXhMZW4iLCJpbmRleE9mIiwidmVyc2VOdW1MZW4iLCJuZXdDaGFwdGVyIiwiam9pbiIsImdldFJlYWR5Rm9yU2F2ZSIsIl9nZXRSZWFkeUZvclNhdmUiLCJfY2FsbGVlMiIsImNyZWF0ZUVkaXRCcmFuY2giLCJiaWJsZVVzZm1Jbml0aWFsIiwiYmlibGVVc2ZtTmV3IiwibWVyZ2VGYWlsIiwiX2NhcmROdW0iLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiX3Vuc2F2ZWRDaGFuZ2VzTGlzdCRfIiwiX3N0YXRlIiwiX2dldENoYW5nZXMiLCJfcmVmNSIsIl9zYXZlRGlmZlBhdGNoIiwiX3NhdmVGdWxsQmlibGVDb250ZW50IiwibmV3Qm9va0pzb24iLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX2NhcmRJbmRleCIsIl9jYXJkTnVtMiIsIl91bnNhdmVkQ2hhbmdlc0xpc3QkXzIiLCJfZ2V0Q2hhbmdlczIiLCJfc3RhdGUyIiwiX25ld1VzZm0iLCJfZ2V0Q2hhbmdlczMiLCJuZXdWZXJzZVRleHQiLCJfcmVmNiIsIl91cGRhdGVkVmVyc2VPYmplY3RzIiwidGFyZ2V0VmVyc2VPYmplY3RzXyIsIl9BbGlnbm1lbnRIZWxwZXJzJHVwZCIsInRhcmdldFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVDb25maWckcmVzbzExIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwicGFyc2VJbnQiLCJ0MCIsInVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlIiwidXBkYXRlVmVyc2UiLCJ0b1VTRk0iLCJmb3JjZWROZXdMaW5lcyIsImluaXRpYWwiLCJfcmVmNyIsIl92ZXJzZXNGb3JSZWYiLCJuZXdTZWxlY3Rpb25zIiwidXBkYXRlU2VsZWN0aW9ucyIsIl9tYXAiLCJvcmlnaW5hbEJvb2tJZCIsImJvb2tWZXJzZU9iamVjdCIsImNoYXB0ZXJzIiwibmV3U2VsZWN0ZWRRdW90ZSIsInF1b3RlIiwiX3NlbGVjdGVkUXVvdGUkcmVmZXJlMyIsIm9yaWdpbmFsVmVyc2VzIiwic3Vic3RpdHV0ZSIsInN0YXJ0VmVyc2UiLCJsYXN0VmVyc2UiLCJfdmVyc2UiLCJ2ZXJzZXMiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwidmVyc2VJdGVtIiwidm8iLCJfYm9va1ZlcnNlT2JqZWN0JF9jaGEiLCJzZXQiLCJfc2VsZWN0ZWRRdW90ZSRyZWZlcmUiLCJfc2VsZWN0ZWRRdW90ZSRyZWZlcmUyIiwic3ViUmVmIiwicXVvdGVNYXRjaGVzIiwiYm9va09iamVjdCIsIm9jY3VycmVuY2UiLCJzaXplIiwid29yZHMiLCJfa2V5IiwibWFwIiwid29yZCIsInRleHQiLCJub3JtYWxpemVTdHJpbmciLCJib29rc05vdFNhbWUiLCJ1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMiLCJhbGlnbmVkIiwiX3ZlcnNlc0ZvclJlZjIiLCJfcmVmOCIsInJlbmRlcmVkU2NyaXB0dXJlUGFuZXMiLCJfY3VycmVudFZlcnNlRGF0YSIsIl9jdXJyZW50VmVyc2VEYXRhJHZlciIsImluaXRpYWxWZXJzZU9iamVjdHMiLCJfcmVmOSIsIl9zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnIiwiaXNWZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50IiwiZGV0ZXJtaW5pbmdCcmFuY2giLCJvbkFsaWdubWVudEZpbmlzaCIsInNhdmluZyIsImhhbmRsZUFsaWduQnV0dG9uQ2xpY2siLCJvblJlbmRlclRvb2xiYXIiLCJfcmVmMTAiLCJuZXdJdGVtcyIsImFsbFZlcnNlc0FsaWduZWQiLCJldmVyeSIsImFsaWduU3RhdHVzIiwiYWxpZ25JY29uIiwiYWxpZ25CdXR0b25UZXh0IiwiY29sb3IiLCJvbkNsaWNrIiwiY3Vyc29yIiwiRnJhZ21lbnQiLCJvcGVuIiwib25DbG9zZSIsImxpbmsiLCJsaW5rVG9vbHRpcCIsIm9uU2VsZWN0aW9ucyIsInNldHRpbmdzVGl0bGUiLCJnZXRDdXN0b21Db21wb25lbnQiLCJoaWRlTWFya2Rvd25Ub2dnbGUiLCJlZGl0YWJsZSIsIm9uVmVyc2VTZWxlY3QiLCJwcm9wVHlwZXMiLCJzdHJpbmciLCJpc1JlcXVpcmVkIiwib2JqZWN0IiwibnVtYmVyIiwiYm9vbCIsImZ1bmMiLCJzaGFwZSIsIm9uZU9mVHlwZSIsImFueSIsInNldEFyZVJlc291cmNlc0xvYWRpbmciLCJzZXRBcmVSZXNvdXJjZXNTYXZpbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9TY3JpcHR1cmVDYXJkL1NjcmlwdHVyZUNhcmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0ICogYXMgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnXG5pbXBvcnQgeyBjb3JlLCBTZWxlY3Rpb25zQ29udGV4dFByb3ZpZGVyIH0gZnJvbSAnc2NyaXB0dXJlLXJlc291cmNlcy1yY2wnXG5pbXBvcnQgdXNmbWpzIGZyb20gJ3VzZm0tanMnXG5pbXBvcnQgeyB1c2VFZGl0IH0gZnJvbSAnZ2l0ZWEtcmVhY3QtdG9vbGtpdCdcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUnhMaW5rMiwgUnhMaW5rQnJlYWsyIH0gZnJvbSAncmVhY3QtaWNvbnMvcngnXG5pbXBvcnQge1xuICBDYXJkLFxuICBFcnJvckRpYWxvZyxcbiAgRVJST1JfU1RBVEUsXG4gIE1BTklGRVNUX05PVF9MT0FERURfRVJST1IsXG4gIFVwZGF0ZUJyYW5jaEJ1dHRvbixcbiAgdXNlQnJhbmNoTWVyZ2VyLFxuICB1c2VDYXJkU3RhdGUsXG4gIHVzZUNvbnRlbnRVcGRhdGVQcm9wcyxcbiAgdXNlTWFzdGVyTWVyZ2VQcm9wcyxcbiAgdXNlVXNlckJyYW5jaCxcbn0gZnJvbSAndHJhbnNsYXRpb24taGVscHMtcmNsJ1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmIH0gZnJvbSAndXctcXVvdGUtaGVscGVycydcbmltcG9ydCB7IEFsaWdubWVudEhlbHBlcnMsIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMgfSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHsgZ2V0VmVyc2VzIH0gZnJvbSAnYmlibGUtcmVmZXJlbmNlLXJhbmdlJ1xuaW1wb3J0IHsgU2NyaXB0dXJlUGFuZSwgU2NyaXB0dXJlU2VsZWN0b3IgfSBmcm9tICcuLidcbmltcG9ydCB7IHVzZVNjcmlwdHVyZVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlU2NyaXB0dXJlU2V0dGluZ3MnXG5pbXBvcnQge1xuICBjbGVhbnVwVmVyc2VPYmplY3RzLFxuICBmZXRjaEJpYmxlQm9vayxcbiAgZml4T2NjdXJyZW5jZSxcbiAgZ2V0Qm9va05hbWVGcm9tVXNmbUZpbGVOYW1lLFxuICBnZXRSZXNvdXJjZUxpbmssXG4gIGdldFJlc291cmNlTWVzc2FnZSxcbiAgZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzLFxuICBpc09yaWdpbmFsQmlibGUsXG59IGZyb20gJy4uLy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tICcuLi8uLi91dGlscy9kZWxheSdcbmltcG9ydCB7IGFyZU1hcHNUaGVTYW1lIH0gZnJvbSAnLi4vLi4vdXRpbHMvbWFwcydcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSAnLi4vU2NyaXB0dXJlUGFuZS9zdHlsZWQnXG5pbXBvcnQge1xuICBOVF9PUklHX0xBTkcsXG4gIE9SSUdJTkFMX1NPVVJDRSxcbiAgT1RfT1JJR19MQU5HLFxufSBmcm9tICcuLi8uLi91dGlscydcbmltcG9ydCB7IFZlcnNlU2VsZWN0b3JQb3B1cCB9IGZyb20gJy4uL1ZlcnNlU2VsZWN0b3JQb3B1cCdcbmltcG9ydCB7IGdldFBhdGNoIH0gZnJvbSAnLi4vLi4vdXRpbHMvZmlsZXMnXG5cbmNvbnN0IEtFWV9GT05UX1NJWkVfQkFTRSA9ICdzY3JpcHR1cmVQYW5lRm9udFNpemVfJ1xuY29uc3QgbGFiZWwgPSAnVmVyc2lvbidcbmNvbnN0IHN0eWxlID0geyBtYXJnaW5Ub3A6ICcxNnB4Jywgd2lkdGg6ICc1MDBweCcgfVxuXG4vKipcbiAqIGNyZWF0ZSBhIHNob3J0IGNvbXBhcmlzb24gdmVyc2UgcmVmIG9iamVjdCB3aXRob3V0IGFsbCB0aGUgdmVyc2VEYXRhXG4gKiBAcGFyYW0gdmVyc2VSZWZcbiAqL1xuZnVuY3Rpb24gY29tcGFyZU9iamVjdCh2ZXJzZVJlZikge1xuICBjb25zdCB7XG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICB2ZXJzZURhdGEsXG4gIH0gPSB2ZXJzZVJlZiB8fCB7fVxuICBjb25zdCB2ZXJzZU9iamVjdHMgPSB2ZXJzZURhdGE/LnZlcnNlT2JqZWN0cz8ubGVuZ3RoID8gSlNPTi5zdHJpbmdpZnkodmVyc2VEYXRhLnZlcnNlT2JqZWN0cykgOiAnJ1xuICByZXR1cm4ge1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgdmVyc2VPYmplY3RzLFxuICB9XG59XG5cbi8qKlxuICogY29tcGFyZSB0d28gdmVyc2UgcmVmcyB0byBzZWUgaWYgdGhleSBhcmUgc3Vic3RhbnRpYWxseSBzaW1pbGFyXG4gKiBAcGFyYW0gdmVyc2VzRm9yUmVmMVxuICogQHBhcmFtIHZlcnNlc0ZvclJlZjJcbiAqL1xuZnVuY3Rpb24gYXJlVmVyc2VzU2FtZSh2ZXJzZXNGb3JSZWYxOiBhbnlbXSwgdmVyc2VzRm9yUmVmMjogYW55W10pIHtcbiAgdmVyc2VzRm9yUmVmMSA9IHZlcnNlc0ZvclJlZjEgfHwgW11cbiAgdmVyc2VzRm9yUmVmMiA9IHZlcnNlc0ZvclJlZjIgfHwgW11cbiAgbGV0IGFyZVNhbWUgPSBmYWxzZVxuXG4gIGlmICh2ZXJzZXNGb3JSZWYxLmxlbmd0aCA9PT0gdmVyc2VzRm9yUmVmMi5sZW5ndGgpIHtcbiAgICBhcmVTYW1lID0gdHJ1ZVxuXG4gICAgZm9yIChsZXQgaSA9IDAsIGw9IHZlcnNlc0ZvclJlZjEubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCB2ZXJzZTEgPSBjb21wYXJlT2JqZWN0KHZlcnNlc0ZvclJlZjFbaV0pXG4gICAgICBjb25zdCB2ZXJzZTIgPSBjb21wYXJlT2JqZWN0KHZlcnNlc0ZvclJlZjJbaV0pXG4gICAgICBhcmVTYW1lID0gaXNFcXVhbCh2ZXJzZTEsIHZlcnNlMilcblxuICAgICAgaWYgKCFhcmVTYW1lKSB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFyZVNhbWVcbn1cblxuLyoqXG4gKiBnZXQgdGhlIFVTRk0gZm9yIGJvb2tJZCBmcm9tIHNjcmlwdHVyZUNvbmZpZy5cbiAqIEBwYXJhbSB7b2JqZWN0fSBzY3JpcHR1cmVDb25maWdcbiAqIEBwYXJhbSB7c3RyaW5nfSBib29rSWRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEN1cnJlbnRCb29rID0gKHNjcmlwdHVyZUNvbmZpZywgYm9va0lkKSA9PiB7XG4gIGNvbnN0IGxhdGVzdEJpYmxlID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ucHJvamVjdElkXG4gIGNvbnN0IGZpbGVuYW1lID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlPy5yZXNvdXJjZT8ubmFtZSAvLyBMaWtlIFwiNTctVElULnVzZm1cIlxuICBsZXQgaXNCb29rVmFsaWQgPSBmYWxzZVxuICBjb25zdCBib29rTmFtZSA9IGdldEJvb2tOYW1lRnJvbVVzZm1GaWxlTmFtZShmaWxlbmFtZSlcbiAgaXNCb29rVmFsaWQgPSBib29rTmFtZT8udG9Mb3dlckNhc2UoKT8uaW5jbHVkZXMoYm9va0lkKVxuICBpZiAoIWlzQm9va1ZhbGlkKSB7XG4gICAgY29uc29sZS53YXJuKGBDdXJyZW50IGJvb2tJZCBpcyAke2Jvb2tJZH0gYW5kIFVTRk0gZmlsZSBpcyAke2ZpbGVuYW1lfWApXG4gIH1cbiAgaWYgKGxhdGVzdEJpYmxlPy50b0xvd2VyQ2FzZSgpICE9PSBib29rSWQpIHtcbiAgICBjb25zb2xlLndhcm4oYEN1cnJlbnQgYm9va0lkIGlzICR7Ym9va0lkfSBidXQgZmV0Y2hlZCBwcm9qZWN0SWQgaXMgJHtsYXRlc3RCaWJsZX1gKVxuICAgIGlzQm9va1ZhbGlkID0gZmFsc2VcbiAgfVxuICBpZiAoaXNCb29rVmFsaWQpIHtcbiAgICBjb25zdCBiaWJsZVVzZm0gPSBzY3JpcHR1cmVDb25maWc/LmJpYmxlVXNmbTtcbiAgICBpZiAoYmlibGVVc2ZtKSB7XG4gICAgICByZXR1cm4gYmlibGVVc2ZtXG4gICAgfVxuICAgIGNvbnNvbGUuZXJyb3IoYGdldEN1cnJlbnRCb29rKCkgLSBCaWJsZSBVU0ZNIG1pc3NpbmdgKVxuICB9XG4gIGNvbnNvbGUuZXJyb3IoYGdldEN1cnJlbnRCb29rKCkgLSBFeHBlY3RlZCAke2Jvb2tJZH0gYnV0IGdvdCBmaWxlICR7ZmlsZW5hbWV9YClcbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2NyaXB0dXJlQ2FyZCh7XG4gIGFwcFJlZixcbiAgYXV0aGVudGljYXRpb24sXG4gIGJvb2tJbmRleCxcbiAgY2FyZE51bSxcbiAgY2xhc3NlcyxcbiAgZGlzYWJsZVdvcmRQb3BvdmVyLFxuICBnZXRMYW5ndWFnZSxcbiAgZ2V0TGV4aWNvbkRhdGEsXG4gIGdyZWVrUmVwb1VybCxcbiAgaGVicmV3UmVwb1VybCxcbiAgaHR0cENvbmZpZyxcbiAgaWQsXG4gIGlzTlQsXG4gIGxvZ2dlZEluVXNlcixcbiAgb25NaW5pbWl6ZSxcbiAgb25SZXNvdXJjZUVycm9yLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICByZWZlcmVuY2UsXG4gIHJlc291cmNlOiB7XG4gICAgb3duZXIsXG4gICAgbGFuZ3VhZ2VJZCxcbiAgICByZXNvdXJjZUlkLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgfSxcbiAgcmVzb3VyY2VMaW5rLFxuICBzZWxlY3RlZFF1b3RlLFxuICBzZXJ2ZXIsXG4gIHNldENhcmRzTG9hZGluZ01lcmdlLFxuICBzZXRDYXJkc0xvYWRpbmdVcGRhdGUsXG4gIHNldENhcmRzU2F2aW5nLFxuICBzZXRTYXZlZENoYW5nZXMsXG4gIHNldFdvcmRBbGlnbmVyU3RhdHVzLFxuICB0cmFuc2xhdGUsXG4gIHRpdGxlLFxuICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB1cGRhdGVNZXJnZVN0YXRlLFxufSkge1xuICBjb25zdCBib29rSWQgPSByZWZlcmVuY2U/LnByb2plY3RJZFxuICBjb25zdCBbc3RhdGUsIHNldFN0YXRlX10gPSBSZWFjdC51c2VTdGF0ZSh7XG4gICAgY2hlY2tGb3JFZGl0QnJhbmNoOiAwLFxuICAgIGN1cnJlbnRSZWZlcmVuY2U6IG51bGwsXG4gICAgZWRpdEJyYW5jaFJlYWR5OiBmYWxzZSxcbiAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIGxhc3RTZWxlY3RlZFF1b3RlOiBudWxsLFxuICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgIHJlZjogYXBwUmVmLFxuICAgIHNhdmVDbGlja2VkOiBmYWxzZSxcbiAgICBzYXZlQ29udGVudDogbnVsbCxcbiAgICBzYXZlRGlmZlBhdGNoOiBmYWxzZSxcbiAgICBzYXZlRnVsbEJpYmxlQ29udGVudDogbnVsbCxcbiAgICBzZWxlY3Rpb25zOiBuZXcgTWFwKCksXG4gICAgc2hvd0FsaWdubWVudFBvcHVwOiBmYWxzZSxcbiAgICBzdGFydFNhdmU6IGZhbHNlLFxuICAgIHVybEVycm9yOiBudWxsLFxuICAgIHVzaW5nVXNlckJyYW5jaDogZmFsc2UsXG4gICAgdW5zYXZlZENoYW5nZXNMaXN0OiB7fSxcbiAgICB2ZXJzZXNBbGlnbm1lbnRTdGF0dXM6IG51bGwsXG4gICAgdmVyc2VzRm9yUmVmOiBudWxsLFxuICAgIHZlcnNlT2JqZWN0c01hcDogbmV3IE1hcCgpLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IG51bGwsXG4gIH0pXG4gIGNvbnN0IHtcbiAgICBjaGVja0ZvckVkaXRCcmFuY2gsXG4gICAgY3VycmVudFJlZmVyZW5jZSxcbiAgICBlZGl0QnJhbmNoUmVhZHksXG4gICAgaGF2ZVVuc2F2ZWRDaGFuZ2VzLFxuICAgIGxhc3RTZWxlY3RlZFF1b3RlLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmLFxuICAgIHNhdmVDbGlja2VkLFxuICAgIHNhdmVDb250ZW50LFxuICAgIHNhdmVEaWZmUGF0Y2gsXG4gICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQsXG4gICAgc2VsZWN0aW9ucyxcbiAgICBzaG93QWxpZ25tZW50UG9wdXAsXG4gICAgc3RhcnRTYXZlLFxuICAgIHVybEVycm9yLFxuICAgIHVzaW5nVXNlckJyYW5jaCxcbiAgICB1bnNhdmVkQ2hhbmdlc0xpc3QsXG4gICAgdmVyc2VPYmplY3RzTWFwLFxuICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQsXG4gICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzLFxuICAgIHZlcnNlc0ZvclJlZixcbiAgfSA9IHN0YXRlXG5cbiAgY29uc3QgW2ZvbnRTaXplLCBzZXRGb250U2l6ZV0gPSB1c2VVc2VyTG9jYWxTdG9yYWdlKEtFWV9GT05UX1NJWkVfQkFTRSArIGNhcmROdW0sIDEwMClcbiAgY29uc3QgaXNOVF8gPSBpc05UKGJvb2tJZClcblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGh0dHBDb25maWcgPSB7XG4gICAgLi4uaHR0cENvbmZpZyxcbiAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICBub0NhY2hlOiB0cnVlLFxuICB9IC8vIGRpc2FibGUgaHR0cCBjYWNoaW5nXG5cbiAgY29uc3Qge1xuICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzZXRTY3JpcHR1cmUsXG4gICAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gIH0gPSB1c2VTY3JpcHR1cmVTZXR0aW5ncyh7XG4gICAgYXBwUmVmOiByZWYsXG4gICAgY2FyZE51bSxcbiAgICBkaXNhYmxlV29yZFBvcG92ZXIsXG4gICAgZ3JlZWtSZXBvVXJsLFxuICAgIGhlYnJld1JlcG9VcmwsXG4gICAgaHR0cENvbmZpZyxcbiAgICBpc05ULFxuICAgIGxhbmd1YWdlSWQsXG4gICAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICAgIG93bmVyLFxuICAgIHJlYWR5Rm9yRmV0Y2gsXG4gICAgcmVmZXJlbmNlOiBjdXJyZW50UmVmZXJlbmNlIHx8IHJlZmVyZW5jZSxcbiAgICByZXNvdXJjZUlkLFxuICAgIHJlc291cmNlTGluayxcbiAgICBzZXRVcmxFcnJvcjogKGVycm9yKSA9PiBzZXRTdGF0ZSh7IHVybEVycm9yOiBlcnJvciB9KSxcbiAgICBzZXJ2ZXIsXG4gICAgdGl0bGUsXG4gICAgdXNlVXNlckxvY2FsU3RvcmFnZSxcbiAgICB3aG9sZUJvb2s6IHRydWUsXG4gIH0pXG5cbiAgY29uc3QgZmV0Y2hlZFJlc291cmNlID0gc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXRlXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgcmVwbyA9IGAke3NjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/Lmxhbmd1YWdlSWR9XyR7c2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZT8ucHJvamVjdElkfWBcbiAgY29uc3QgcmVmZXJlbmNlXyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVmZXJlbmNlIHx8IG51bGxcbiAgY29uc3QgdXNpbmdPcmlnaW5hbEJpYmxlID0gaXNPcmlnaW5hbEJpYmxlKHNjcmlwdHVyZUNvbmZpZ1sncmVzb3VyY2UnXT8ucHJvamVjdElkKVxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdCBjYXJkUmVzb3VyY2VJZCA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2U/LnByb2plY3RJZCB8fCByZXNvdXJjZUlkXG4gIC8vIEB0cy1pZ25vcmVcbiAgbGV0IHJlZl8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5yZWYgfHwgYXBwUmVmXG4gIGNvbnN0IGNhblVzZUVkaXRCcmFuY2ggPSAhIShsb2dnZWRJblVzZXIgJiYgYXV0aGVudGljYXRpb24gJiYgKHJlc291cmNlSWQgIT09IE9SSUdJTkFMX1NPVVJDRSkgJiYgLy8gVFJJQ0tZIGlmIG5vdCBvcmlnaW5hbCBsYW5ndWFnZSBhbmQgd2UgaGF2ZSBsb2dpbiBkYXRhLCB0aGVuIHdlIGNhbiB1c2UgdGhlIGVkaXQgYnJhbmNoXG4gICAgKChyZWZfID09PSAnbWFzdGVyJykgfHwgKHJlZl8uaW5jbHVkZXMobG9nZ2VkSW5Vc2VyKSkpKSAvLyBhbHNvIG1ha2Ugc3VyZSBub3QgYSB2ZXJzaW9uIHRhZ1xuXG4gIGNvbnN0IHtcbiAgICBzdGF0ZToge1xuICAgICAgYnJhbmNoRGV0ZXJtaW5lZCxcbiAgICAgIHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIHVzaW5nVXNlckJyYW5jaDogX3VzaW5nVXNlckJyYW5jaCxcbiAgICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHN0YXJ0RWRpdDogc3RhcnRFZGl0QnJhbmNoLFxuICAgICAgZmluaXNoRWRpdCxcbiAgICB9LFxuICB9ID0gdXNlVXNlckJyYW5jaCh7XG4gICAgYXBwUmVmLFxuICAgIGF1dGhlbnRpY2F0aW9uOiBjYW5Vc2VFZGl0QnJhbmNoID8gYXV0aGVudGljYXRpb24gOiBudWxsLFxuICAgIGJvb2tJZCxcbiAgICBjYXJkSWQ6IGlkLFxuICAgIGNhcmRSZXNvdXJjZUlkLFxuICAgIGNoZWNrRm9yRWRpdEJyYW5jaCxcbiAgICBsYW5ndWFnZUlkLFxuICAgIGxvZ2dlZEluVXNlcjogY2FuVXNlRWRpdEJyYW5jaCA/IGxvZ2dlZEluVXNlciA6IG51bGwsXG4gICAgb3duZXIsXG4gICAgb25SZXNvdXJjZUVycm9yLFxuICAgIHNlcnZlcixcbiAgICB1c2VVc2VyTG9jYWxTdG9yYWdlLFxuICB9KVxuXG4gIGNvbnN0IF91c2VCcmFuY2hNZXJnZXIgPSB1c2VCcmFuY2hNZXJnZXIoeyBzZXJ2ZXIsIG93bmVyLCByZXBvLCB1c2VyQnJhbmNoOiB1c2VyRWRpdEJyYW5jaE5hbWUsIHRva2VuaWQ6IGF1dGhlbnRpY2F0aW9uPy50b2tlbj8uc2hhMSB9KVxuICBjb25zdCB7XG4gICAgc3RhdGU6IHtcbiAgICAgIG1lcmdlU3RhdHVzOiBtZXJnZVRvTWFzdGVyLFxuICAgICAgdXBkYXRlU3RhdHVzOiBtZXJnZUZyb21NYXN0ZXIsXG4gICAgfSxcbiAgfSA9IF91c2VCcmFuY2hNZXJnZXJcblxuICBjb25zdCB1cGRhdGVCdXR0b25Qcm9wcyA9IHVzZUNvbnRlbnRVcGRhdGVQcm9wcyh7XG4gICAgaXNTYXZpbmc6IHN0YXJ0U2F2ZSxcbiAgICB1c2VCcmFuY2hNZXJnZXI6IF91c2VCcmFuY2hNZXJnZXIsXG4gICAgb25VcGRhdGU6ICgpID0+IHtcbiAgICAgIGRlbGF5KDUwMCkudGhlbigoKSA9PiBzY3JpcHR1cmVDb25maWc/LnJlbG9hZFJlc291cmNlKCkpXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCB7XG4gICAgY2FsbFVwZGF0ZVVzZXJCcmFuY2gsXG4gICAgaXNFcnJvckRpYWxvZ09wZW4sXG4gICAgb25DbG9zZUVycm9yRGlhbG9nLFxuICAgIGlzTG9hZGluZzogaXNVcGRhdGVMb2FkaW5nLFxuICAgIGRpYWxvZ01lc3NhZ2UsXG4gICAgZGlhbG9nVGl0bGUsXG4gICAgZGlhbG9nTGluayxcbiAgICBkaWFsb2dMaW5rVG9vbHRpcCxcbiAgfSA9IHVwZGF0ZUJ1dHRvblByb3BzXG5cbiAgY29uc3Qgb25NZXJnZSA9ICgpID0+IHtcbiAgICBmaW5pc2hFZGl0KClcbiAgICBjb25zb2xlLmxvZyhgb25NZXJnZSgpIHN3aXRjaGluZyBiYWNrIHRvIG1hc3RlciBhZnRlciBtZXJnZSBhcHBSZWY6YCwgYXBwUmVmKVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgcmVmOiBhcHBSZWYsXG4gICAgfSlcbiAgICBkZWxheSg1MDApLnRoZW4oKCkgPT4ge1xuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBjaGVja0ZvckVkaXRCcmFuY2g6IGNoZWNrRm9yRWRpdEJyYW5jaCArIDEsIC8vIHRyaWdnZXIgcmVjaGVjayBvZiB1c2VyIGJyYW5jaCB3aGljaCB3aWxsIHN3aXRjaCB0aGUgYnJhbmNoIGJhY2sgdG8gbWFzdGVyXG4gICAgICAgIHJlYWR5Rm9yRmV0Y2g6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgeyBpc0xvYWRpbmc6IGlzTWVyZ2VMb2FkaW5nLCBjYWxsTWVyZ2VVc2VyQnJhbmNoIH0gPSB1c2VNYXN0ZXJNZXJnZVByb3BzKHtcbiAgICBpc1NhdmluZzogc3RhcnRTYXZlLFxuICAgIHVzZUJyYW5jaE1lcmdlcjogX3VzZUJyYW5jaE1lcmdlcixcbiAgICBvbk1lcmdlLFxuICB9KVxuXG4gIC8vIFNpbmNlIG9yaWdpbmFsIHRleHQgKEdyZWVrL0hlYnJldykgc2hvdWxkIG5vdCBiZSBlZGl0ZWQsIGRvIG5vdCBpbmNsdWRlXG4gIC8vIHRoZW0gaW4gbWVyZ2Ugc3RhdGUgc2luY2UgdXNlciB3aWxsIG5vdCBtZXJnZS9wdXNoIGNoYW5nZXMuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNhcmRSZXNvdXJjZUlkICYmICF1c2luZ09yaWdpbmFsQmlibGUpIHtcbiAgICAgIHVwZGF0ZU1lcmdlU3RhdGUgJiYgdXBkYXRlTWVyZ2VTdGF0ZShcbiAgICAgICAgY2FyZFJlc291cmNlSWQsXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZy50aXRsZSxcbiAgICAgICAgbWVyZ2VGcm9tTWFzdGVyLFxuICAgICAgICBtZXJnZVRvTWFzdGVyLFxuICAgICAgICBjYWxsVXBkYXRlVXNlckJyYW5jaCxcbiAgICAgICAgY2FsbE1lcmdlVXNlckJyYW5jaCxcbiAgICAgIClcbiAgICB9XG4gIH0sW2NhcmRSZXNvdXJjZUlkLCBzY3JpcHR1cmVDb25maWcudGl0bGUsIG1lcmdlRnJvbU1hc3RlciwgbWVyZ2VUb01hc3Rlcl0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNVcGRhdGVMb2FkaW5nKSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdVcGRhdGU/LihwcmV2Q2FyZHNMb2FkaW5nID0+IFsuLi5wcmV2Q2FyZHNMb2FkaW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ1VwZGF0ZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzVXBkYXRlTG9hZGluZ10pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoaXNNZXJnZUxvYWRpbmcpIHtcbiAgICAgIHNldENhcmRzTG9hZGluZ01lcmdlPy4ocHJldkNhcmRzTG9hZGluZyA9PiBbLi4ucHJldkNhcmRzTG9hZGluZywgY2FyZFJlc291cmNlSWRdKVxuICAgIH0gZWxzZSB7XG4gICAgICBzZXRDYXJkc0xvYWRpbmdNZXJnZT8uKHByZXZDYXJkc0xvYWRpbmcgPT4gcHJldkNhcmRzTG9hZGluZy5maWx0ZXIoY2FyZElkID0+IGNhcmRJZCAhPT0gY2FyZFJlc291cmNlSWQpKVxuICAgIH1cbiAgfSwgW2lzTWVyZ2VMb2FkaW5nXSlcblxuICBjb25zdCB3b3JraW5nUmVmID0gY2FuVXNlRWRpdEJyYW5jaCA/IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCA6IGFwcFJlZlxuICBsZXQgc2NyaXB0dXJlVGl0bGVcblxuICBpZiAoIWNhblVzZUVkaXRCcmFuY2ggJiYgIXJlYWR5Rm9yRmV0Y2gpIHsgLy8gaWYgYmlibGUgbm90IGVsaWdpYmxlIGZvciB1c2VyIGJyYW5jaCwgbWFrZSBzdXJlIGl0J3MgcmVhZHlcbiAgICBzZXRTdGF0ZSh7IHJlYWR5Rm9yRmV0Y2g6IHRydWUgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYm9vayBjaGFuZ2VkYCwgeyBib29rSWQsIG93bmVyLCBsYW5ndWFnZUlkLCByZXNvdXJjZUlkIH0pXG5cbiAgICBpZiAoY2FuVXNlRWRpdEJyYW5jaCkgeyAvLyBpZiBiaWJsZSBlbGlnaWJsZSBmb3IgdXNlciBicmFuY2gsIHJlZnJlc2ggaXRcbiAgICAgIHNldFN0YXRlKHsgcmVhZHlGb3JGZXRjaDogZmFsc2UsIGNoZWNrRm9yRWRpdEJyYW5jaDogY2hlY2tGb3JFZGl0QnJhbmNoICsgMSB9KVxuICAgIH1cbiAgfSwgW2Jvb2tJZCwgb3duZXIsIGxhbmd1YWdlSWQsIHJlc291cmNlSWRdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc0VxdWFsKHJlZmVyZW5jZSwgY3VycmVudFJlZmVyZW5jZSkpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBTY3JpcHR1cmVDYXJkIHJlZmVyZW5jZSBjaGFuZ2VkYCwgcmVmZXJlbmNlKVxuICAgICAgc2V0U3RhdGUoeyBjdXJyZW50UmVmZXJlbmNlOiByZWZlcmVuY2UgfSlcbiAgICB9XG4gIH0sIFtyZWZlcmVuY2VdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdhaXRpbmcgZm9yIGJyYW5jaCBmZXRjaCB0byBjb21wbGV0ZVxuICAgIGlmICghcmVhZHlGb3JGZXRjaCAmJiBicmFuY2hEZXRlcm1pbmVkICkge1xuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQgYnJhbmNoRGV0ZXJtaW5lZCBpcyAke2JyYW5jaERldGVybWluZWR9IGFuZCB3b3JraW5nUmVmIGlzICR7d29ya2luZ1JlZn1gKVxuICAgICAgc2V0U3RhdGUoeyByZWFkeUZvckZldGNoOiB0cnVlLCByZWY6IHdvcmtpbmdSZWYgfSlcbiAgICB9XG4gIH0sIFticmFuY2hEZXRlcm1pbmVkXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyBzZWxlY3QgY29ycmVjdCB3b3JraW5nIHJlZiAtIGNvdWxkIGJlIG1hc3RlciwgdXNlciBicmFuY2gsIG9yIHJlbGVhc2VcbiAgICBpZiAoX3VzaW5nVXNlckJyYW5jaCAhPT0gdXNpbmdVc2VyQnJhbmNoKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVzaW5nVXNlckJyYW5jaDogX3VzaW5nVXNlckJyYW5jaCB9KVxuICAgIH1cbiAgfSwgW191c2luZ1VzZXJCcmFuY2gsIHVzaW5nVXNlckJyYW5jaF0pXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gdXBkYXRlIGRpc3BsYXkgc3RhdHVzIGlmIGVycm9yXG4gICAgY29uc3QgZXJyb3IgPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlU3RhdHVzPy5bRVJST1JfU1RBVEVdXG5cbiAgICBpZiAoZXJyb3IpIHsgLy8gaWYgZXJyb3Igd2FzIGZvdW5kIGRvIGNhbGxiYWNrXG4gICAgICBjb25zdCByZXNvdXJjZVN0YXR1cyA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0dXNcbiAgICAgIGNvbnN0IHJlc291cmNlTGluayA9IGdldFJlc291cmNlTGluayhzY3JpcHR1cmVDb25maWcpXG4gICAgICBjb25zdCBtZXNzYWdlID0gZ2V0UmVzb3VyY2VNZXNzYWdlKHJlc291cmNlU3RhdHVzLCBzZXJ2ZXIsIHJlc291cmNlTGluaywgaXNOVF8pXG4gICAgICBjb25zdCBpc0FjY2Vzc0Vycm9yID0gcmVzb3VyY2VTdGF0dXNbTUFOSUZFU1RfTk9UX0xPQURFRF9FUlJPUl1cbiAgICAgIG9uUmVzb3VyY2VFcnJvciAmJiBvblJlc291cmNlRXJyb3IobWVzc2FnZSwgaXNBY2Nlc3NFcnJvciwgcmVzb3VyY2VTdGF0dXMpXG4gICAgfVxuICB9LCBbc2NyaXB0dXJlQ29uZmlnPy5yZXNvdXJjZVN0YXR1cz8uW0VSUk9SX1NUQVRFXV0pXG5cbiAgaWYgKHNjcmlwdHVyZUNvbmZpZy50aXRsZSAmJiBzY3JpcHR1cmVDb25maWcudmVyc2lvbikge1xuICAgIHNjcmlwdHVyZVRpdGxlID0gYCR7c2NyaXB0dXJlQ29uZmlnLnRpdGxlfSB2JHtzY3JpcHR1cmVDb25maWcudmVyc2lvbn1gXG4gICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QudXBkYXRlVGl0bGUoc2NyaXB0dXJlQ29uZmlnLnJlc291cmNlTGluaywgc2NyaXB0dXJlVGl0bGUpXG4gIH0gZWxzZSB7XG4gICAgc2NyaXB0dXJlVGl0bGUgPSBgVGl0bGUgbWlzc2luZyBmcm9tIHByb2plY3QgbWFuaWZlc3RgXG4gIH1cblxuICAvKiogRHluYW1pY2FsbHkgY3JlYXRlcyB0aGUgc2NyaXB0dXJlIHNlbGVjdGlvbiBkcm9wZG93biB0byBiZSBpbnNlcnRlZCBpbnRvIGNhcmQgc2V0dGluZ3MgKi9cbiAgZnVuY3Rpb24gZ2V0U2NyaXB0dXJlU2VsZWN0b3IoKSB7XG4gICAgY29uc3Qgc2NyaXB0dXJlU2VsZWN0aW9uQ29uZmlnID0gZ2V0U2NyaXB0dXJlVmVyc2lvblNldHRpbmdzKHtcbiAgICAgIGxhYmVsLFxuICAgICAgcmVzb3VyY2VMaW5rOiBzY3JpcHR1cmVDb25maWcucmVzb3VyY2VMaW5rLFxuICAgICAgc2V0U2NyaXB0dXJlLFxuICAgICAgc2NyaXB0dXJlVmVyc2lvbkhpc3QsXG4gICAgfSlcblxuICAgIHJldHVybiA8U2NyaXB0dXJlU2VsZWN0b3Igey4uLnNjcmlwdHVyZVNlbGVjdGlvbkNvbmZpZ30gc3R5bGU9e3N0eWxlfSBlcnJvck1lc3NhZ2U9e3VybEVycm9yfSAvPlxuICB9XG5cbiAgZnVuY3Rpb24gb25NZW51Q2xvc2UoKSB7XG4gICAgLy8gY29uc29sZS5sb2coYG9uTWVudUNsb3NlKClgKVxuICAgIHNldFN0YXRlKHsgdXJsRXJyb3I6IG51bGwgfSlcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbGFuZ3VhZ2VJZF8gPSBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlPy5sYW5ndWFnZUlkXG4gIGNvbnN0IGxhbmd1YWdlID0gZ2V0TGFuZ3VhZ2UoeyBsYW5ndWFnZUlkOiBsYW5ndWFnZUlkXyB9KVxuICBjb25zdCBkaXJlY3Rpb24gPSAobGFuZ3VhZ2U/LmRpcmVjdGlvbikgfHwgJ2x0cidcbiAgY29uc3QgX3JlZmVyZW5jZSA9IGN1cnJlbnRSZWZlcmVuY2UgfHwgcmVmZXJlbmNlXG5cbiAgY29uc3QgaXNIZWJyZXcgPSAobGFuZ3VhZ2VJZF8gPT09ICdoYm8nKVxuICBjb25zdCBmb250RmFjdG9yID0gaXNIZWJyZXcgPyAxLjQgOiAxIC8vIHdlIGF1dG9tYXRpY2FsbHkgc2NhbGUgdXAgZm9udCBzaXplIGZvciBIZWJyZXdcbiAgY29uc3Qgc2NhbGVkRm9udFNpemUgPSBmb250U2l6ZSAqIGZvbnRGYWN0b3JcblxuICBjb25zdCBpdGVtcyA9IG51bGxcbiAgY29uc3Qge1xuICAgIHN0YXRlOiB7XG4gICAgICBoZWFkZXJzLCBmaWx0ZXJzLCBpdGVtSW5kZXgsIG1hcmtkb3duVmlldyxcbiAgICB9LFxuICAgIGFjdGlvbnM6IHtcbiAgICAgIHNldEZpbHRlcnMsIHNldEl0ZW1JbmRleCwgc2V0TWFya2Rvd25WaWV3LFxuICAgIH0sXG4gIH0gPSB1c2VDYXJkU3RhdGUoeyBpdGVtcyB9KVxuXG4gIGNvbnN0IHJlZlN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtNYXRoLnJvdW5kKHNjYWxlZEZvbnRTaXplICogMC45KX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3QgY29udGVudFN0eWxlID0gUmVhY3QudXNlTWVtbygoKSA9PiAoe1xuICAgIGZvbnRGYW1pbHk6ICdOb3RvIFNhbnMnLFxuICAgIGZvbnRTaXplOiBgJHtzY2FsZWRGb250U2l6ZX0lYCxcbiAgfSksIFtzY2FsZWRGb250U2l6ZV0pXG5cbiAgY29uc3Qgc2NyaXB0dXJlTGFiZWwgPSA8VGl0bGU+e3NjcmlwdHVyZVRpdGxlfTwvVGl0bGU+XG4gIGxldCBkaXNhYmxlV29yZFBvcG92ZXJfID0gZGlzYWJsZVdvcmRQb3BvdmVyXG5cbiAgaWYgKGRpc2FibGVXb3JkUG9wb3ZlciA9PT0gdW5kZWZpbmVkKSB7IC8vIGlmIG5vdCBzcGVjaWZpZWQsIHRoZW4gZGV0ZXJtaW5lIGlmIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlXG4gICAgZGlzYWJsZVdvcmRQb3BvdmVyXyA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgfVxuXG4gIGNvbnN0IGVuYWJsZUVkaXQgPSAhdXNpbmdPcmlnaW5hbEJpYmxlXG4gIGNvbnN0IGVuYWJsZUFsaWdubWVudCA9ICF1c2luZ09yaWdpbmFsQmlibGVcbiAgY29uc3Qgb3JpZ2luYWxSZXBvVXJsID0gaXNOZXdUZXN0YW1lbnQgPyBncmVla1JlcG9VcmwgOiBoZWJyZXdSZXBvVXJsXG4gIGNvbnN0IHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcgPSB7XG4gICAgYXV0aGVudGljYXRpb246IGNhblVzZUVkaXRCcmFuY2ggPyBhdXRoZW50aWNhdGlvbiA6IG51bGwsXG4gICAgYm9va0luZGV4LFxuICAgIGN1cnJlbnRWZXJzZVJlZjogX3JlZmVyZW5jZSxcbiAgICBlbmFibGVFZGl0LFxuICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICBodHRwQ29uZmlnLFxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBpc05ld1Rlc3RhbWVudCxcbiAgICBsb2dnZWRJblVzZXI6IGNhblVzZUVkaXRCcmFuY2ggPyBsb2dnZWRJblVzZXIgOiBudWxsLFxuICAgIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgb3JpZ2luYWxSZXBvVXJsLFxuICAgIHNjcmlwdHVyZUNvbmZpZyxcbiAgICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgICBzdGFydEVkaXRCcmFuY2gsXG4gICAgc2V0U2F2ZWRDaGFuZ2VzOiBfc2V0U2F2ZWRDaGFuZ2VzLFxuICAgIHNvdXJjZUxhbmd1YWdlOiBpc05UXyA/IE5UX09SSUdfTEFORyA6IE9UX09SSUdfTEFORyxcbiAgICB0YXJnZXRMYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgdGl0bGU6IHNjcmlwdHVyZVRpdGxlLFxuICAgIHdvcmtpbmdSZXNvdXJjZUJyYW5jaDogcmVmLFxuICB9XG5cbiAgLyoqXG4gICAqIHRoaXMgZ2V0cyBjYWxsZWQgd2hlbmV2ZXIgYSBzY3JpcHR1cmUgcGFuZSBoYXMgYSBjaGFuZ2UgaW4gc2F2ZSBzdGF0ZVxuICAgKiBAcGFyYW0ge251bWJlcn0gY3VycmVudEluZGV4XG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZWRcbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gZ2V0Q2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHVzZXIgY2xpY2tzIHNhdmUgYnV0dG9uXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IGNsZWFyQ2hhbmdlcyAtIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIHNhdmUgaGFzIGNvbXBsZXRlZFxuICAgKiBAcGFyYW0ge29iamVjdH0gc3RhdGUgLSBjdXJyZW50IHN0YXRlIG9mIHdvcmQgYWxpZ25tZW50L2VkaXRcbiAgICovXG4gIGZ1bmN0aW9uIF9zZXRTYXZlZENoYW5nZXMoY3VycmVudEluZGV4LCBzYXZlZCwgeyBnZXRDaGFuZ2VzID0gbnVsbCwgY2xlYXJDaGFuZ2VzID0gbnVsbCwgc3RhdGUgPSBudWxsIH0pIHtcbiAgICBjb25zdCBfdW5zYXZlZENoYW5nZXNMaXN0ID0geyAuLi51bnNhdmVkQ2hhbmdlc0xpc3QgfVxuXG4gICAgaWYgKHNhdmVkKSB7XG4gICAgICBpZiAoX3Vuc2F2ZWRDaGFuZ2VzTGlzdC5oYXNPd25Qcm9wZXJ0eShjdXJyZW50SW5kZXgpKSB7XG4gICAgICAgIGRlbGV0ZSBfdW5zYXZlZENoYW5nZXNMaXN0W2N1cnJlbnRJbmRleF1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgX3Vuc2F2ZWRDaGFuZ2VzTGlzdFtjdXJyZW50SW5kZXhdID0geyBnZXRDaGFuZ2VzLCBjbGVhckNoYW5nZXMsIHN0YXRlIH0gLy8gdXBkYXRlIHdpdGggbGF0ZXN0XG4gICAgfVxuXG4gICAgY29uc3QgX2hhdmVVbnNhdmVkQ2hhbmdlcyA9ICEhT2JqZWN0LmtleXMoX3Vuc2F2ZWRDaGFuZ2VzTGlzdCkubGVuZ3RoXG5cbiAgICBpZiAoaGF2ZVVuc2F2ZWRDaGFuZ2VzICE9IF9oYXZlVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgIHNldFNhdmVkQ2hhbmdlcyAmJiBzZXRTYXZlZENoYW5nZXMocmVzb3VyY2VJZCwgIV9oYXZlVW5zYXZlZENoYW5nZXMpXG4gICAgICBzZXRTdGF0ZSh7IGhhdmVVbnNhdmVkQ2hhbmdlczogX2hhdmVVbnNhdmVkQ2hhbmdlcyB9KVxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChfdW5zYXZlZENoYW5nZXNMaXN0LCB1bnNhdmVkQ2hhbmdlc0xpc3QpKSB7XG4gICAgICBzZXRTdGF0ZSh7IHVuc2F2ZWRDaGFuZ2VzTGlzdDogX3Vuc2F2ZWRDaGFuZ2VzTGlzdCB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggY2hhcHRlciBvciB2ZXJzZSBjaHVuayB0byBsaW5lIHRoYXQgc3RhcnRzIHdpdGggZmluZEl0ZW1cbiAgICogQHBhcmFtIHtudW1iZXJ8c3RyaW5nfSBmaW5kSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBjaHVua3NcbiAgICovXG4gIGZ1bmN0aW9uIGZpbmRSZWZJbkFycmF5KGZpbmRJdGVtLCBjaHVua3MpIHtcbiAgICBjb25zdCByZWZfID0gZmluZEl0ZW0gKyAnJ1xuICAgIGNvbnN0IHJlZkxlbiA9IHJlZl8ubGVuZ3RoXG4gICAgY29uc3QgaW5kZXggPSBjaHVua3MuZmluZEluZGV4KChjaHVuaywgaWR4KSA9PiB7XG4gICAgICBpZiAoaWR4ID4gMCkge1xuICAgICAgICBpZiAoY2h1bmsuc3Vic3RyaW5nKDAsIHJlZkxlbikgPT09IHJlZl8pIHtcbiAgICAgICAgICBjb25zdCBuZXh0Q2hhciA9IGNodW5rW3JlZkxlbl1cblxuICAgICAgICAgIGlmICgobmV4dENoYXIgPiAnOScpIHx8IChuZXh0Q2hhciA8ICcwJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9KVxuICAgIHJldHVybiBpbmRleFxuICB9XG5cbiAgZnVuY3Rpb24gZ2V0Qm9va05hbWUoKSB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJvb2tDYXBzID0gc2NyaXB0dXJlQ29uZmlnPy5yZWZlcmVuY2U/LnByb2plY3RJZCA/IHNjcmlwdHVyZUNvbmZpZy5yZWZlcmVuY2UucHJvamVjdElkLnRvVXBwZXJDYXNlKCkgOiAnJ1xuICAgIHJldHVybiBgJHtib29rSW5kZXh9LSR7Ym9va0NhcHN9LnVzZm1gXG4gIH1cblxuICBjb25zdCBmaWxlcGF0aCA9IGdldEJvb2tOYW1lKClcbiAgY29uc3Qgc2hhID0gZmV0Y2hlZFJlc291cmNlPy5zaGFcblxuICAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIGVkaXQgc3RhdGVcbiAgY29uc3Qge1xuICAgIGVycm9yOiBzYXZlRXJyb3IsXG4gICAgaXNFcnJvcjogaXNTYXZlRXJyb3IsXG4gICAgb25TYXZlRWRpdCxcbiAgICBvblNhdmVFZGl0UGF0Y2gsXG4gIH0gPSB1c2VFZGl0KHtcbiAgICBzaGEsXG4gICAgb3duZXIsXG4gICAgY29udGVudDogc2F2ZUNvbnRlbnQsXG4gICAgY29uZmlnOiB7XG4gICAgICBjYWNoZTogeyBtYXhBZ2U6IDAgfSxcbiAgICAgIC4uLmF1dGhlbnRpY2F0aW9uPy5jb25maWcsXG4gICAgICBkb250Q3JlYXRlQnJhbmNoOiB0cnVlLFxuICAgICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRpbWVvdXQ6IGh0dHBDb25maWc/LnNlcnZlclRpbWVPdXQgfHwgaHR0cENvbmZpZz8udGltZW91dCB8fCAxMDAwMCxcbiAgICAgIHNlcnZlcixcbiAgICB9LFxuICAgIGF1dGhvcjogbG9nZ2VkSW5Vc2VyLFxuICAgIGVtYWlsOiBhdXRoZW50aWNhdGlvbj8udXNlcj8uZW1haWwsXG4gICAgdG9rZW46IGF1dGhlbnRpY2F0aW9uPy50b2tlbixcbiAgICBicmFuY2g6IHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbiAgICBmaWxlcGF0aCxcbiAgICByZXBvLFxuICB9KVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHdoZW4gd2UgZ2V0IGEgc2F2ZSBzYXZlRXJyb3JcbiAgICBpZiAoc2F2ZUVycm9yICYmIGlzU2F2ZUVycm9yICYmICFzdGFydFNhdmUpIHsgLy8gaWYgZXJyb3IgdGhlbiBzaG93IGFmdGVyIHNhdmUgY29tcGxldGVzLCBzaW5jZSB3ZSBtYXkgcmV0cnlcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlIGVycm9yYCwgc2F2ZUVycm9yKVxuICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHNhdmluZyAke2xhbmd1YWdlSWRffV8ke3Jlc291cmNlSWR9ICR7c2F2ZUVycm9yfWAsIHRydWUpXG4gICAgfVxuICB9LCBbc2F2ZUVycm9yLCBpc1NhdmVFcnJvciwgc3RhcnRTYXZlXSlcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4geyAvLyB3aGVuIHN0YXJ0U2F2ZSBnb2VzIHRydWUsIHNhdmUgZWRpdHMgdG8gdXNlciBicmFuY2ggYW5kIHRoZW4gY2xlYXIgc3RhcnRTYXZlXG4gICAgZnVuY3Rpb24gX3NhdmVTdWNjZXNmdWwoKSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHNjcmlwdHVyZSBlZGl0cyBzdWNjZXNzYClcbiAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBwcmV2Q2FyZHNTYXZpbmcuZmlsdGVyKGNhcmRJZCA9PiBjYXJkSWQgIT09IGNhcmRSZXNvdXJjZUlkKSlcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHVuc2F2ZWRDYXJkSW5kaWNlcyA9IE9iamVjdC5rZXlzKHVuc2F2ZWRDaGFuZ2VzTGlzdClcblxuICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgIGNvbnN0IHtjbGVhckNoYW5nZXN9ID0gdW5zYXZlZENoYW5nZXNMaXN0W2NhcmRJbmRleF1cbiAgICAgICAgICBjbGVhckNoYW5nZXMgJiYgY2xlYXJDaGFuZ2VzKClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmluZm8oJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gUmVsb2FkaW5nIHJlc291cmNlJylcbiAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgc3RhcnRTYXZlOiBmYWxzZSxcbiAgICAgICAgcmVhZHlGb3JGZXRjaDogdHJ1ZSxcbiAgICAgICAgc2F2ZUZ1bGxCaWJsZUNvbnRlbnQ6IG51bGwsXG4gICAgICAgIHNhdmVDb250ZW50OiBudWxsLFxuICAgICAgICByZWY6IHVzZXJFZGl0QnJhbmNoTmFtZSxcbiAgICAgIH0pXG4gICAgICBkZWxheSgxMDApLnRoZW4oKCkgPT4ge1xuICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICAgIHNjcmlwdHVyZUNvbmZpZz8ucmVsb2FkUmVzb3VyY2Uoc2hhLCB1c2VyRWRpdEJyYW5jaE5hbWUpXG4gICAgICB9KVxuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICBjb25zdCBfc2F2ZUVkaXQgPSBhc3luYyAoKSA9PiB7IC8vIGJlZ2luIHVwbG9hZGluZyBuZXcgVVNGTVxuICAgICAgY29uc29sZS5pbmZvKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIFVzaW5nIHNoYTogJHtzaGF9YClcbiAgICAgIGxldCB1cGxvYWRGdW5jdGlvbiA9IG9uU2F2ZUVkaXRcbiAgICAgIGlmIChzYXZlRGlmZlBhdGNoKSB7XG4gICAgICAgIHVwbG9hZEZ1bmN0aW9uID0gb25TYXZlRWRpdFBhdGNoIC8vIGlmIHdlIGFyZSBzZW5kaW5nIHVwIGEgZGlmZnBhdGNoLCB3ZSB3aWxsIHVzZSB0aGlzIG1ldGhvZFxuICAgICAgfVxuICAgICAgbGV0IHN1Y2Nlc3MgPSBhd2FpdCB1cGxvYWRGdW5jdGlvbih1c2VyRWRpdEJyYW5jaE5hbWUpLy8gcHVzaCBjaGFuZ2UgdG8gc2VydmVyXG4gICAgICBsZXQgZXJyb3IgPSBzdWNjZXNzID8gbnVsbCA6ICdzYXZpbmcgY2hhbmdlZCBzY3JpcHR1cmUgZmFpbGVkJ1xuXG4gICAgICBpZiAoIXN1Y2Nlc3MpIHsgLy8gaWYgc2F2ZSBmYWlsZWQsIGF0dGVtcHQgYSByZXRyeVxuICAgICAgICBjb25zb2xlLmVycm9yKCdzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIHNhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQsIHJldHJ5aW5nJylcbiAgICAgICAgYXdhaXQgZGVsYXkoNTAwKSAvLyBzaW5jZSB3ZSBoYWQgYW4gZXJyb3IsIHdhaXQgZm9yIGRhdGEgdG8gdXBkYXRlIG9uIHNlcnZlciBiZWZvcmUgZ2V0dGluZyB0aGUgbGF0ZXN0XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgLy8gZmV0Y2ggdGhlIGxhdGVzdCBib29rIGNvbnRlbnQsIHNvIHdlIGNhbiB0ZWxsIGlmIGxhdGVzdCBjaGFuZ2VzIHdlcmUgc2F2ZWQgYW5kIGhhdmUgdGhlIGxhdGVzdCBmaWxlIHNoYVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgZmV0Y2hCaWJsZUJvb2soc2VydmVyLCBodHRwQ29uZmlnLCBzY3JpcHR1cmVDb25maWc/LnJlc291cmNlLCBzY3JpcHR1cmVDb25maWc/LnJlZmVyZW5jZSlcbiAgICAgICAgZXJyb3IgPSByZXN1bHRzPy5lcnJvclxuICAgICAgICBsZXQgX3NhdmVDb250ZW50ID0gc2F2ZUNvbnRlbnRcbiAgICAgICAgbGV0IGZpbGVTaGEgPSBudWxsXG4gICAgICAgIGNvbnN0IHNhdmVkQmlibGVVc2ZtID0gcmVzdWx0cz8uYmlibGVVc2ZtXG4gICAgICAgIGNvbnN0IGVkaXRlZEJpYmxlVXNmbSA9IHNhdmVGdWxsQmlibGVDb250ZW50Py5uZXdcbiAgICAgICAgbGV0IHVwVG9EYXRlID0gc2F2ZWRCaWJsZVVzZm0gPT09IGVkaXRlZEJpYmxlVXNmbSAvLyBjaGVjayBpZiBuZXcgYmlibGUgY29udGVudCBkaWZmZXJzIGZyb20gbGF0ZXN0IG9uIHJlcG9cblxuICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgaWYgKHVwVG9EYXRlKSB7IC8vIGlmIHRoZSBkYXRhIHdlIGFyZSB0cnlpbmcgdG8gc2F2ZSBtYXRjaGVzIHdoYXQgaXMgbm93IG9uIHRoZSBzZXJ2ZXIgdGhlcmUgaXMgbm90aGluZyB0byBkb1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gZGF0YSB3YXMgY29ycmVjdGx5IHVwbG9hZGVkLCBzbyBub3RoaW5nIG1vcmUgdG8gZG8nKVxuICAgICAgICAgICAgc3VjY2VzcyA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHNhdmVEaWZmUGF0Y2gpIHtcbiAgICAgICAgICAgICAgYXdhaXQgZGVsYXkoMTAwKSAvLyBhbGxvdyBVSSB0byB1cGRhdGUgYmVmb3JlIHJ1bm5pbmcgY29tcHV0YXRpb25hbGx5IGV4cGVuc2l2ZSBmdW5jdGlvblxuICAgICAgICAgICAgICAvLyByZWdlbmVyYXRlIHRoZSBwYXRjaCBhZ2FpbnN0IHRoZSBsYXRlc3QgY29udGVudFxuICAgICAgICAgICAgICBjb25zdCBkaWZmUGF0Y2ggPSBnZXRQYXRjaChzYXZlRnVsbEJpYmxlQ29udGVudD8uZmlsZW5hbWUsIHNhdmVkQmlibGVVc2ZtLCBlZGl0ZWRCaWJsZVVzZm0sIGZhbHNlKVxuICAgICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSBkaWZmUGF0Y2hcbiAgICAgICAgICAgICAgZmlsZVNoYSA9IHJlc3VsdHM/LnNoYVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdWNjZXNzID0gYXdhaXQgdXBsb2FkRnVuY3Rpb24odXNlckVkaXRCcmFuY2hOYW1lLCBfc2F2ZUNvbnRlbnQsIGZpbGVTaGEpIC8vIHB1c2ggY2hhbmdlIHRvIHNlcnZlclxuICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgIGVycm9yID0gJ3NhdmluZyBjaGFuZ2VkIHNjcmlwdHVyZSBmYWlsZWQgb24gc2Vjb25kIGF0dGVtcHQnXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZlIHN1Y2Nlc3NmdWwgb24gc2Vjb25kIGF0dGVtcHQnKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWVycm9yICYmIHN1Y2Nlc3MpIHsgLy8gaWYgbm8gZXJyb3IgbWVzc2FnZSBhbmQgc2F2ZSB3YXMgYSBzdWNjZXNzXG4gICAgICAgIHJldHVybiBfc2F2ZVN1Y2Nlc2Z1bCgpIC8vIG5vdGhpbmcgdG8gZG9cbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSAke2Vycm9yIHx8ICd1bmtub3duIHNhdmUgZXJyb3InfWApXG4gICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gcHJldkNhcmRzU2F2aW5nLmZpbHRlcihjYXJkSWQgPT4gY2FyZElkICE9PSBjYXJkUmVzb3VyY2VJZCkpXG4gICAgICBzZXRTdGF0ZSh7c3RhcnRTYXZlOiBmYWxzZX0pXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG5cbiAgICBpZiAoc3RhcnRTYXZlKSB7XG4gICAgICBpZiAoIWVkaXRCcmFuY2hSZWFkeSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gZWRpdCBicmFuY2ggbm90IHlldCBjcmVhdGVkYClcbiAgICAgIH0gZWxzZSBpZiAoIXNoYSkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gc2F2ZSBzaGEgbm90IHlldCByZWFkeWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY2FsbGluZyBfc2F2ZUVkaXQoKWApXG4gICAgICAgIHNldENhcmRzU2F2aW5nKHByZXZDYXJkc1NhdmluZyA9PiBbLi4ucHJldkNhcmRzU2F2aW5nLCBjYXJkUmVzb3VyY2VJZF0pXG4gICAgICAgIF9zYXZlRWRpdCgpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhcnRTYXZlLCBlZGl0QnJhbmNoUmVhZHksIHNoYV0pXG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgdXBkYXRlZFZlcnNlT2JqZWN0cyB0byBVU0ZNIGFuZCBtZXJnZSBpbnRvIHRoZSBiaWJsZVVzZm1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGJpYmxlVXNmbSAtIFVTRk0gb2YgYmlibGVcbiAgICogQHBhcmFtIHtvYmplY3R9IHJlZiAtIHJlZmVyZW5jZSBvZiB2ZXJzZSB0byBtZXJnZSBpblxuICAgKiBAcGFyYW0ge29iamVjdFtdfSB1cGRhdGVkVmVyc2VPYmplY3RzIC0gbmV3IHZlcnNlIGluIHZlcnNlT2JqZWN0IGZvcm1hdFxuICAgKiBAcGFyYW0ge251bWJlcn0gY2FyZE51bVxuICAgKi9cbiAgZnVuY3Rpb24gbWVyZ2VWZXJzZU9iamVjdHNJbnRvQmlibGVVc2ZtKGJpYmxlVXNmbSwgcmVmLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBjYXJkTnVtOiBudW1iZXIpIHtcbiAgICBsZXQgbmV3VXNmbVxuICAgIGNvbnN0IGNoYXB0ZXJDaHVua3MgPSBiaWJsZVVzZm0/LnNwbGl0KCdcXFxcYyAnKVxuICAgIGNvbnN0IGNoYXB0ZXJJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8uY2hhcHRlciwgY2hhcHRlckNodW5rcylcblxuICAgIGlmIChjaGFwdGVySW5kZXggPj0gMCkge1xuICAgICAgY29uc3QgY3VycmVudENoYXB0ZXIgPSBjaGFwdGVyQ2h1bmtzW2NoYXB0ZXJJbmRleF1cbiAgICAgIGxldCB2ZXJzZUNodW5rcyA9IGN1cnJlbnRDaGFwdGVyLnNwbGl0KCdcXFxcdiAnKVxuICAgICAgY29uc3QgdmVyc2VJbmRleCA9IGZpbmRSZWZJbkFycmF5KHJlZj8udmVyc2UsIHZlcnNlQ2h1bmtzKVxuICAgICAgY29uc3QgZnJvbnRNYXR0ZXIgPSByZWY/LnZlcnNlID09PSAnZnJvbnQnXG5cbiAgICAgIGlmIChmcm9udE1hdHRlciB8fCB2ZXJzZUluZGV4ID49IDApIHtcbiAgICAgICAgY29uc3QgbmV3VmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKHVwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQoKSAtIG5ldyBVU0ZNIGZvciBjYXJkICR7Y2FyZE51bX0sIHZlcnNlICR7cmVmPy52ZXJzZX06fSAtICR7bmV3VmVyc2VVc2ZtLnN1YnN0cmluZygwLCAxMDApfWApXG4gICAgICAgIGlmIChmcm9udE1hdHRlcikgeyAvLyBmcm9udCBtYXR0ZXIgZ29lcyBiZWZvcmUgZmlyc3QgdmVyc2VcbiAgICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzWzBdXG4gICAgICAgICAgY29uc3QgcHJlZml4TGVuID0gb2xkVmVyc2UuaW5kZXhPZignXFxuJykgLy8gY2hhcmFjdGVycyBiZWZvcmUgdGhlIGZyb250IG1hdHRlciB0ZXh0XG4gICAgICAgICAgdmVyc2VDaHVua3NbMF0gPSBvbGRWZXJzZS5zdWJzdHJpbmcoMCwgcHJlZml4TGVuICsgMSkgKyBuZXdWZXJzZVVzZm1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBvbGRWZXJzZSA9IHZlcnNlQ2h1bmtzW3ZlcnNlSW5kZXhdXG4gICAgICAgICAgY29uc3QgdmVyc2VOdW1MZW4gPSAocmVmPy52ZXJzZSArICcnKS5sZW5ndGggLy8gY2hhcmFjdGVycyBiZWZvcmUgdGhlIHZlcnNlIHRleHRcbiAgICAgICAgICB2ZXJzZUNodW5rc1t2ZXJzZUluZGV4XSA9IG9sZFZlcnNlLnN1YnN0cmluZygwLCB2ZXJzZU51bUxlbiArIDEpICsgbmV3VmVyc2VVc2ZtXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Q2hhcHRlciA9IHZlcnNlQ2h1bmtzLmpvaW4oJ1xcXFx2ICcpXG4gICAgICAgIGNoYXB0ZXJDaHVua3NbY2hhcHRlckluZGV4XSA9IG5ld0NoYXB0ZXJcbiAgICAgICAgbmV3VXNmbSA9IGNoYXB0ZXJDaHVua3Muam9pbignXFxcXGMgJylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld1VzZm1cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGZvciBlYWNoIHVuc2F2ZWQgY2hhbmdlLCBjYWxsIGludG8gc2NyaXB0dXJlUGFuZSB0byBnZXQgbGF0ZXN0IGNoYW5nZXMgZm9yIHZlcnNlIHRvIHNhdmVcbiAgICBhc3luYyBmdW5jdGlvbiBnZXRSZWFkeUZvclNhdmUoKSB7XG4gICAgICBpZiAoc2F2ZUNsaWNrZWQpIHtcbiAgICAgICAgbGV0IGNyZWF0ZUVkaXRCcmFuY2ggPSAhX3VzaW5nVXNlckJyYW5jaFxuXG4gICAgICAgIGlmICghY3JlYXRlRWRpdEJyYW5jaCkgeyAvLyBpZiBhbHJlYWR5IHVzaW5nIHRoZSB1c2VyIGJyYW5jaFxuICAgICAgICAgIGlmICh3b3JraW5nUmVzb3VyY2VCcmFuY2ggIT09IHVzZXJFZGl0QnJhbmNoTmFtZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBzdGF0ZSBjb25mbGljdCAtIHNob3VsZCBiZSBpbiB1c2VyIGJyYW5jaCAke3VzZXJFZGl0QnJhbmNoTmFtZX0sIGJ1dCBhY3R1YWxseSB1c2luZyAke3dvcmtpbmdSZXNvdXJjZUJyYW5jaH1gKVxuICAgICAgICAgICAgY3JlYXRlRWRpdEJyYW5jaCA9IHRydWVcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCAtIGFscmVhZHkgdXNpbmcgZWRpdCBicmFuY2g6ICR7d29ya2luZ1Jlc291cmNlQnJhbmNofWApXG4gICAgICAgICAgICBzZXRTdGF0ZSh7IGVkaXRCcmFuY2hSZWFkeTogdHJ1ZSB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjcmVhdGVFZGl0QnJhbmNoKSB7IC8vIGlmIG5vdCB5ZXQgdXNpbmcgdGhlIHVzZXIgYnJhbmNoLCBjcmVhdGUgaXRcbiAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkIC0gY3JlYXRpbmcgZWRpdCBicmFuY2hgKVxuICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgIGVkaXRCcmFuY2hSZWFkeTogZmFsc2UsXG4gICAgICAgICAgICByZWFkeUZvckZldGNoOiBmYWxzZSxcbiAgICAgICAgICAgIHNoYTogbnVsbCxcbiAgICAgICAgICB9KSAvLyB3ZSB3aWxsIG5lZWQgYSBuZXcgc2hhIGZvciBib29rL2JyYW5jaFxuXG4gICAgICAgICAgY29uc3QgYnJhbmNoID0gYXdhaXQgc3RhcnRFZGl0QnJhbmNoKClcblxuICAgICAgICAgIGlmIChicmFuY2gpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBlZGl0IGJyYW5jaCBjcmVhdGVkYClcbiAgICAgICAgICAgIHNldFN0YXRlKHtcbiAgICAgICAgICAgICAgZWRpdEJyYW5jaFJlYWR5OiB0cnVlLFxuICAgICAgICAgICAgICByZWFkeUZvckZldGNoOiB0cnVlLFxuICAgICAgICAgICAgICByZWY6IGJyYW5jaCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3NhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gZXJyb3IgY3JlYXRpbmcgZWRpdCBicmFuY2gnKVxuICAgICAgICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIGNyZWF0aW5nIGVkaXQgYnJhbmNoICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gLCB0cnVlKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnNvbGUubG9nKGBzYXZlQ2hhbmdlc1RvQ2xvdWQgLSBnZXR0aW5nIHZlcnNlIGNoYW5nZXNgKVxuICAgICAgICBjb25zdCB1bnNhdmVkQ2FyZEluZGljZXMgPSBPYmplY3Qua2V5cyh1bnNhdmVkQ2hhbmdlc0xpc3QpXG5cbiAgICAgICAgaWYgKHVuc2F2ZWRDYXJkSW5kaWNlcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgbGV0IGJpYmxlVXNmbUluaXRpYWwgPSBnZXRDdXJyZW50Qm9vayhzY3JpcHR1cmVDb25maWcsIGJvb2tJZCkgLy8gZ2V0IG9yaWdpbmFsIFVTRk1cbiAgICAgICAgICBsZXQgYmlibGVVc2ZtTmV3ID0gYmlibGVVc2ZtSW5pdGlhbCAvLyBtYWtlIGEgY29weSB0byBlZGl0XG4gICAgICAgICAgbGV0IG1lcmdlRmFpbCA9IGZhbHNlXG5cbiAgICAgICAgICBpZiAoYmlibGVVc2ZtSW5pdGlhbCkge1xuICAgICAgICAgICAgbGV0IGNhcmROdW0gPSAwXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmIGJpYmxlVXNmbU5ldykgeyAvLyBqdXN0IHJlcGxhY2UgdmVyc2VcbiAgICAgICAgICAgICAgICAgIG5ld1VzZm0gPSBtZXJnZVZlcnNlT2JqZWN0c0ludG9CaWJsZVVzZm0oYmlibGVVc2ZtTmV3LCByZWYsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGNhcmROdW0pXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKG5ld1VzZm0pIHtcbiAgICAgICAgICAgICAgICAgIGJpYmxlVXNmbU5ldyA9IG5ld1VzZm1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgbWVyZ2VGYWlsID0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBsZXQgc2F2ZURpZmZQYXRjaCA9IGZhbHNlIC8vIGlmIHRydWUgdGhlbiB3ZSB3aWxsIHNlbmQgdXAgYSBkaWZmcGF0Y2ggaW5zdGVhZCBvZiB0aGUgd2hvbGUgYm9va1xuICAgICAgICAgIGxldCBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQgPSBudWxsXG4gICAgICAgICAgbGV0IF9zYXZlQ29udGVudCA9IGJpYmxlVXNmbU5ld1xuXG4gICAgICAgICAgaWYgKG1lcmdlRmFpbCkgeyAvLyBpZiB3ZSBmYWlsZWQgdG8gbWVyZ2UsIGZhbGxiYWNrIHRvIGJydXRlIGZvcmNlIHZlcnNlIG9iamVjdHMgdG8gVVNGTVxuICAgICAgICAgICAgY29uc29sZS5sb2coYHNhdmVDaGFuZ2VzVG9DbG91ZCgke2NhcmROdW19KSAtIHZlcnNlIG5vdCBmb3VuZCwgZmFsbGluZyBiYWNrIHRvIGluc2VydGluZyB2ZXJzZSBvYmplY3RgKVxuICAgICAgICAgICAgbGV0IG5ld0Jvb2tKc29uXG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgY2FyZEluZGV4IG9mIHVuc2F2ZWRDYXJkSW5kaWNlcykge1xuICAgICAgICAgICAgICBjb25zdCBjYXJkTnVtID0gcGFyc2VJbnQoY2FyZEluZGV4KVxuICAgICAgICAgICAgICBjb25zdCB7IGdldENoYW5nZXMsIHN0YXRlIH0gPSB1bnNhdmVkQ2hhbmdlc0xpc3RbY2FyZE51bV1cblxuICAgICAgICAgICAgICBpZiAoZ2V0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIGxldCBuZXdVc2ZtXG4gICAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICAgICAgICAgICAgcmVmLFxuICAgICAgICAgICAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICAgICAgICAgICAgICB9ID0gZ2V0Q2hhbmdlcyhzdGF0ZSlcblxuICAgICAgICAgICAgICAgIGlmICh1cGRhdGVkVmVyc2VPYmplY3RzICYmICFuZXdVc2ZtKSB7XG4gICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0VmVyc2VPYmplY3RzXyA9IG51bGxcblxuICAgICAgICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmV3VmVyc2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UodXBkYXRlZFZlcnNlT2JqZWN0cywgbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldFZlcnNlT2JqZWN0c18gPSB0YXJnZXRWZXJzZU9iamVjdHNcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0Jvb2tKc29uID0gdGFyZ2V0VmVyc2VPYmplY3RzXyAmJiBzY3JpcHR1cmVDb25maWc/LnVwZGF0ZVZlcnNlKHJlZi5jaGFwdGVyLCByZWYudmVyc2UsIHt2ZXJzZU9iamVjdHM6IHRhcmdldFZlcnNlT2JqZWN0c199KVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSB1c2ZtanMudG9VU0ZNKG5ld0Jvb2tKc29uLCB7IGZvcmNlZE5ld0xpbmVzOiB0cnVlIH0pXG4gICAgICAgICAgfSBlbHNlIHsgLy8gaWYgb25seSBjaGFuZ2VkIGEgZmV3IHZlcnNlcywgd2Ugd2lsbCBqdXN0IG1ha2UgYSBkaWZmcGF0Y2ggaW5zdGVhZCBvZiBzZW5kaW5nIHRoZSB3aG9sZSBib29rXG4gICAgICAgICAgICBjb25zdCBmaWxlbmFtZSA9IHNjcmlwdHVyZUNvbmZpZz8ucmVzb3VyY2VTdGF0ZT8ucmVzb3VyY2U/Lm5hbWUgLy8gTGlrZSBcIjU3LVRJVC51c2ZtXCJcbiAgICAgICAgICAgIGlmIChmaWxlbmFtZSAmJiBiaWJsZVVzZm1OZXcgJiYgYmlibGVVc2ZtSW5pdGlhbCkgeyAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBldmVyeXRoaW5nIG5lZWRlZCB0byBtYWtlIGEgcGF0Y2hcbiAgICAgICAgICAgICAgaWYgKGJpYmxlVXNmbUluaXRpYWwgPT09IGJpYmxlVXNmbU5ldykgeyAvLyBpZiBubyBkYXRhIGNoYW5nZSwgdGhlbiBza2lwIHNhdmUgYmVjYXVzZSBEQ1MgY3Jhc2hlcyBvbiBhbiBlbXB0eSBwYXRjaFxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2Fybihgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSB0aGVyZSBpcyBub3RoaW5nIHRvIHNhdmUsIHNraXBwaW5nYClcbiAgICAgICAgICAgICAgICBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiBmYWxzZSB9KVxuICAgICAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IGRpZmZQYXRjaCA9IGdldFBhdGNoKGZpbGVuYW1lLCBiaWJsZVVzZm1Jbml0aWFsLCBiaWJsZVVzZm1OZXcsIGZhbHNlKVxuICAgICAgICAgICAgICBzYXZlRGlmZlBhdGNoID0gdHJ1ZVxuICAgICAgICAgICAgICBfc2F2ZUNvbnRlbnQgPSBkaWZmUGF0Y2ggLy8gcmVwbGFjZSB3aG9sZSBib29rIGNvbnRlbnQgd2l0aCBqdXN0IHBhdGNoIGRhdGEgKG11Y2ggZmFzdGVyIHVwbG9hZHMpXG4gICAgICAgICAgICAgIF9zYXZlRnVsbEJpYmxlQ29udGVudCA9IHsgIC8vIGtlZXAgdHJhY2sgb2YgcGF0Y2ggZGF0YSBpbiBjYXNlIHdlIG5lZWQgdG8gcmV0cnkgc2F2ZVxuICAgICAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICAgICAgIGluaXRpYWw6IGJpYmxlVXNmbUluaXRpYWwsXG4gICAgICAgICAgICAgICAgbmV3OiBiaWJsZVVzZm1OZXcsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoYmlibGVVc2ZtTmV3KSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgc2F2ZUNoYW5nZXNUb0Nsb3VkKCkgLSBzYXZpbmcgbmV3IFVTRk06ICR7YmlibGVVc2ZtTmV3LnN1YnN0cmluZygwLCAxMDApfS4uLmApXG4gICAgICAgICAgICBzZXRDYXJkc1NhdmluZyhwcmV2Q2FyZHNTYXZpbmcgPT4gWy4uLnByZXZDYXJkc1NhdmluZywgY2FyZFJlc291cmNlSWRdKVxuICAgICAgICAgICAgc2V0U3RhdGUoe1xuICAgICAgICAgICAgICBzYXZlQ29udGVudDogX3NhdmVDb250ZW50LFxuICAgICAgICAgICAgICBzYXZlQ2xpY2tlZDogZmFsc2UsXG4gICAgICAgICAgICAgIHNhdmVEaWZmUGF0Y2gsXG4gICAgICAgICAgICAgIHNhdmVGdWxsQmlibGVDb250ZW50OiBfc2F2ZUZ1bGxCaWJsZUNvbnRlbnQsXG4gICAgICAgICAgICAgIHN0YXJ0U2F2ZTogdHJ1ZSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYHNhdmVDaGFuZ2VzVG9DbG91ZCgpIC0gRXJyb3IgcmV0cmlldmluZyB0aGUgY29ycmVjdCBib29rIGRhdGE6IGluY29ycmVjdCBib29rICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gKVxuICAgICAgICAgICAgb25SZXNvdXJjZUVycm9yICYmIG9uUmVzb3VyY2VFcnJvcihudWxsLCBmYWxzZSwgbnVsbCwgYEVycm9yIHJldHJpZXZpbmcgdGhlIGNvcnJlY3QgYm9vayBkYXRhICR7bGFuZ3VhZ2VJZF99XyR7cmVzb3VyY2VJZH1gLCB0cnVlKVxuICAgICAgICAgICAgc2V0U3RhdGUoeyBzYXZlQ2xpY2tlZDogZmFsc2UgfSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRSZWFkeUZvclNhdmUoKVxuICB9LCBbc2F2ZUNsaWNrZWRdKVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgeyBjaGFwdGVyIH0gPSBfcmVmZXJlbmNlIHx8IHt9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcbiAgICBsZXQgbmV3U2VsZWN0aW9ucyA9IG5ldyBNYXAoKVxuICAgIGxldCB1cGRhdGVTZWxlY3Rpb25zID0gZmFsc2VcbiAgICBjb25zdCBfbWFwID0gbmV3U2VsZWN0aW9uc1xuICAgIGNvbnN0IG9yaWdpbmFsQm9va0lkID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uYm9va0lkXG4gICAgY29uc3QgYm9va1ZlcnNlT2JqZWN0ID0gb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz8uY2hhcHRlcnNcbiAgICBsZXQgbmV3U2VsZWN0ZWRRdW90ZSA9IG51bGxcblxuICAgIC8vIGlmIHdlIGhhdmUgZXZlcnl0aGluZyB3ZSBuZWVkIHRvIGNhbGN1bGF0ZSBzZWxlY3Rpb25zXG4gICAgaWYgKF92ZXJzZXNGb3JSZWY/Lmxlbmd0aCAmJlxuICAgICAgYm9va1ZlcnNlT2JqZWN0ICYmXG4gICAgICAoYm9va0lkID09PSBvcmlnaW5hbEJvb2tJZCkgJiZcbiAgICAgIGJvb2tWZXJzZU9iamVjdFtjaGFwdGVyXSAmJiAvLyB3ZSBuZWVkIHRvIGhhdmUgZGF0YSBmb3IgY2hhcHRlclxuICAgICAgc2VsZWN0ZWRRdW90ZT8ucXVvdGVcbiAgICApIHtcbiAgICAgIC8vIGlmIHF1b3RlIGlzIGRpZmZlcmVudCB0aGFuIGxhc3RcbiAgICAgIGlmICghaXNFcXVhbChsYXN0U2VsZWN0ZWRRdW90ZSwgc2VsZWN0ZWRRdW90ZSkgfHxcbiAgICAgICAgIWlzRXF1YWwodmVyc2VzRm9yUmVmLCBfdmVyc2VzRm9yUmVmKSkge1xuICAgICAgICBjb25zdCBvcmlnaW5hbFZlcnNlcyA9IHt9XG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGUgPSB7fSAvLyBrZWVwIHRyYWNrIG9mIHZlcnNlIHN1YnN0aXR1dGlvbnNcbiAgICAgICAgbGV0IHN0YXJ0VmVyc2UgPSBfdmVyc2VzRm9yUmVmWzBdLnZlcnNlXG5cbiAgICAgICAgaWYgKHR5cGVvZiBzdGFydFZlcnNlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHN0YXJ0VmVyc2UgPSBwYXJzZUludChzdGFydFZlcnNlKVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxhc3RWZXJzZSA9IHN0YXJ0VmVyc2VcblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbCA9IF92ZXJzZXNGb3JSZWYubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgY29uc3QgdmVyc2VSZWYgPSBfdmVyc2VzRm9yUmVmW2ldXG4gICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgY2hhcHRlcixcbiAgICAgICAgICAgIHZlcnNlLFxuICAgICAgICAgIH0gPSB2ZXJzZVJlZlxuICAgICAgICAgIC8vIFRSSUNLWSAtIHdlIHJlbWFwIHZlcnNlcyBpbiByZWZlcmVuY2UgcmFuZ2UgdG8gYSBsaW5lYXIgc2VyaWVzIG9mIHZlcnNlcyBzbyB2ZXJzZSBzcGFucyBkb24ndCBjaG9rZSBnZXRRdW90ZU1hdGNoZXNJbkJvb2tSZWZcbiAgICAgICAgICBsZXQgX3ZlcnNlID0gc3RhcnRWZXJzZSArIGlcbiAgICAgICAgICBsYXN0VmVyc2UgPSBfdmVyc2VcbiAgICAgICAgICBzdWJzdGl0dXRlW2Ake2NoYXB0ZXJ9OiR7X3ZlcnNlfWBdID0gYCR7Y2hhcHRlcn06JHt2ZXJzZX1gXG5cbiAgICAgICAgICBpZiAoIW9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdKSB7XG4gICAgICAgICAgICBvcmlnaW5hbFZlcnNlc1tjaGFwdGVyXSA9IHt9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICAgICAgICBpZiAoKHR5cGVvZiB2ZXJzZSA9PT0gJ3N0cmluZycpICYmICh2ZXJzZS5pbmNsdWRlcygnLScpKSkge1xuICAgICAgICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzKGJvb2tWZXJzZU9iamVjdCwgYCR7Y2hhcHRlcn06JHt2ZXJzZX1gKVxuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHZlcnNlSXRlbSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICAgICAgY29uc3Qgdm8gPSB2ZXJzZUl0ZW0udmVyc2VEYXRhLnZlcnNlT2JqZWN0c1xuICAgICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSB2ZXJzZU9iamVjdHMuY29uY2F0KHZvKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBib29rVmVyc2VPYmplY3RbY2hhcHRlcl1bdmVyc2VdPy52ZXJzZU9iamVjdHNcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICB2ZXJzZU9iamVjdHMgPSBjbGVhbnVwVmVyc2VPYmplY3RzKHZlcnNlT2JqZWN0cylcbiAgICAgICAgICAgIG9yaWdpbmFsVmVyc2VzW2NoYXB0ZXJdW192ZXJzZV0gPSB7IHZlcnNlT2JqZWN0cyB9XG4gICAgICAgICAgICBfbWFwLnNldChgJHtjaGFwdGVyfToke3ZlcnNlfWAsIHZlcnNlT2JqZWN0cylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjcmVhdGUgbmV3IHJlZmVyZW5jZSByYW5nZSBmb3IgbmV3IGxpbmVhciB2ZXJzZSByYW5nZVxuICAgICAgICBjb25zdCBbY2hhcHRlcl0gPSBzZWxlY3RlZFF1b3RlPy5yZWZlcmVuY2U/LnNwbGl0KCc6JylcbiAgICAgICAgbGV0IHN1YlJlZiA9IGAke2NoYXB0ZXJ9OiR7c3RhcnRWZXJzZX1gXG5cbiAgICAgICAgaWYgKGxhc3RWZXJzZSAhPSBzdGFydFZlcnNlKSB7XG4gICAgICAgICAgc3ViUmVmICs9IGAtJHtsYXN0VmVyc2V9YFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcXVvdGVNYXRjaGVzID0gZ2V0UXVvdGVNYXRjaGVzSW5Cb29rUmVmKHtcbiAgICAgICAgICBib29rT2JqZWN0OiBvcmlnaW5hbFZlcnNlcyxcbiAgICAgICAgICByZWY6IHN1YlJlZixcbiAgICAgICAgICBxdW90ZTogc2VsZWN0ZWRRdW90ZT8ucXVvdGUsXG4gICAgICAgICAgb2NjdXJyZW5jZTogc2VsZWN0ZWRRdW90ZT8ub2NjdXJyZW5jZSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCBzZWxlY3Rpb25zID0gbmV3IE1hcCgpXG5cbiAgICAgICAgaWYgKHF1b3RlTWF0Y2hlcz8uc2l6ZSkge1xuICAgICAgICAgIHF1b3RlTWF0Y2hlcy5mb3JFYWNoKCh3b3Jkcywga2V5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBfa2V5ID0gc3Vic3RpdHV0ZVtrZXldXG5cbiAgICAgICAgICAgIHNlbGVjdGlvbnMuc2V0KF9rZXksIHdvcmRzLm1hcCh3b3JkID0+IChcbiAgICAgICAgICAgICAgeyAuLi53b3JkLCB0ZXh0OiBjb3JlLm5vcm1hbGl6ZVN0cmluZyh3b3JkLnRleHQpIH1cbiAgICAgICAgICAgICkpKVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgICAgbmV3U2VsZWN0aW9ucyA9IHNlbGVjdGlvbnNcbiAgICAgICAgbmV3U2VsZWN0ZWRRdW90ZSA9IHNlbGVjdGVkUXVvdGVcbiAgICAgICAgdXBkYXRlU2VsZWN0aW9ucyA9IHRydWVcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBuZXdTdGF0ZTogYW55ID0ge31cblxuICAgIC8vIHVwZGF0ZSBzdGF0ZXMgdGhhdCBoYXZlIGNoYW5nZWRcbiAgICBpZiAoIWFyZU1hcHNUaGVTYW1lKHZlcnNlT2JqZWN0c01hcCwgX21hcCkpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlT2JqZWN0c01hcCA9IF9tYXBcbiAgICB9XG5cbiAgICBjb25zdCBib29rc05vdFNhbWUgPSByZWZlcmVuY2U/LnByb2plY3RJZCAhPT0gY3VycmVudFJlZmVyZW5jZT8ucHJvamVjdElkXG5cbiAgICBpZiAoYm9va3NOb3RTYW1lIHx8ICFhcmVWZXJzZXNTYW1lKHZlcnNlc0ZvclJlZiwgX3ZlcnNlc0ZvclJlZikpIHtcbiAgICAgIG5ld1N0YXRlLnZlcnNlc0ZvclJlZiA9IF92ZXJzZXNGb3JSZWZcbiAgICAgIG5ld1N0YXRlLmxhc3RTZWxlY3RlZFF1b3RlID0gbmV3U2VsZWN0ZWRRdW90ZVxuICAgICAgbmV3U3RhdGUuc2VsZWN0aW9ucyA9IG5ld1NlbGVjdGlvbnNcbiAgICB9XG5cbiAgICBpZiAobmV3U2VsZWN0ZWRRdW90ZSkge1xuICAgICAgbmV3U3RhdGUubGFzdFNlbGVjdGVkUXVvdGUgPSBuZXdTZWxlY3RlZFF1b3RlXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZVNlbGVjdGlvbnMpIHtcbiAgICAgIGlmICghYXJlTWFwc1RoZVNhbWUoc2VsZWN0aW9ucyB8fCAobmV3IE1hcCgpKSwgbmV3U2VsZWN0aW9ucykpIHtcbiAgICAgICAgbmV3U3RhdGUuc2VsZWN0aW9ucyA9IG5ld1NlbGVjdGlvbnNcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoT2JqZWN0LmtleXMobmV3U3RhdGUpLmxlbmd0aCkge1xuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgfVxuICB9LCBbXG4gICAgb3duZXIsXG4gICAgcmVzb3VyY2VJZCxcbiAgICBib29rSWQsXG4gICAgbGFuZ3VhZ2VJZF8sXG4gICAgc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWYsXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgICBzZWxlY3RlZFF1b3RlLFxuICBdKVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIGNsZWFyIHNldHRpbmdzIG9uIHZlcnNlIGNoYW5nZVxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlc0FsaWdubWVudFN0YXR1czogbnVsbCxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzTGlzdDoge30sXG4gICAgICBoYXZlVW5zYXZlZENoYW5nZXM6IGZhbHNlLFxuICAgIH0pXG4gIH0sIFtfcmVmZXJlbmNlXSlcblxuICBjb25zdCB1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXMgPSAocmVmZXJlbmNlLCBhbGlnbmVkKSA9PiB7XG4gICAgc2V0U3RhdGVfKHByZXZTdGF0ZSA9PiAoe1xuICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzOiB7IC4uLnByZXZTdGF0ZS52ZXJzZXNBbGlnbm1lbnRTdGF0dXMsIFtgJHtyZWZlcmVuY2UuY2hhcHRlcn06JHtyZWZlcmVuY2UudmVyc2V9YF06IGFsaWduZWQgfSxcbiAgICB9KSlcbiAgfVxuXG4gIGxldCBfdmVyc2VzRm9yUmVmID0gc2NyaXB0dXJlQ29uZmlnPy52ZXJzZXNGb3JSZWZcblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChfdmVyc2VzRm9yUmVmPy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHsgcmVmZXJlbmNlLCByZXNvdXJjZUxpbmsgfSA9IHNjcmlwdHVyZUNvbmZpZyB8fCB7fVxuICAgICAgY29uc29sZS5sb2coYFNjcmlwdHVyZUNhcmQuX3ZlcnNlc0ZvclJlZiBjaGFuZ2VkYCwgeyByZWZlcmVuY2UsIHJlc291cmNlTGluayB9KVxuICAgIH1cbiAgfSwgW192ZXJzZXNGb3JSZWZdKVxuXG4gIGlmICghX3ZlcnNlc0ZvclJlZj8ubGVuZ3RoKSB7IC8vIGlmIGVtcHR5IG9mIHJlZmVyZW5jZXMsIGNyZWF0ZSBzaW5nbGUgZW1wdHkgcmVmZXJlbmNlXG4gICAgX3ZlcnNlc0ZvclJlZiA9IFt7IC4uLnJlZmVyZW5jZSB9XVxuICB9XG5cbiAgY29uc3QgcmVuZGVyZWRTY3JpcHR1cmVQYW5lcyA9IF92ZXJzZXNGb3JSZWY/Lm1hcCgoX2N1cnJlbnRWZXJzZURhdGEsIGluZGV4KSA9PiB7XG4gICAgY29uc3QgaW5pdGlhbFZlcnNlT2JqZWN0cyA9IF9jdXJyZW50VmVyc2VEYXRhPy52ZXJzZURhdGE/LnZlcnNlT2JqZWN0cyB8fCBbXVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCB7IGNoYXB0ZXIsIHZlcnNlIH0gPSBfY3VycmVudFZlcnNlRGF0YSB8fCB7fVxuICAgIGNvbnN0IHByb2plY3RJZCA9IGN1cnJlbnRSZWZlcmVuY2U/LnByb2plY3RJZCB8fCByZWZlcmVuY2U/LnByb2plY3RJZFxuICAgIGNvbnN0IF9yZWZlcmVuY2UgPSB7XG4gICAgICAuLi5fdmVyc2VzRm9yUmVmLFxuICAgICAgY2hhcHRlcixcbiAgICAgIHByb2plY3RJZCxcbiAgICAgIHZlcnNlLFxuICAgIH1cbiAgICBjb25zdCBfc2NyaXB0dXJlQWxpZ25tZW50RWRpdENvbmZpZyA9IHtcbiAgICAgIC4uLnNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWcsXG4gICAgICBjdXJyZW50SW5kZXg6IGluZGV4LFxuICAgICAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgICAgIHJlZmVyZW5jZTogX3JlZmVyZW5jZSxcbiAgICAgIGlzTmV3VGVzdGFtZW50LFxuICAgIH1cblxuICAgIGxldCBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQgPSBmYWxzZVxuXG4gICAgaWYgKHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQpIHtcbiAgICAgIGlzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudCA9IHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQuY2hhcHRlciA9PSBjaGFwdGVyICYmIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQudmVyc2UgPT0gdmVyc2VcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFNjcmlwdHVyZVBhbmVcbiAgICAgICAgey4uLnNjcmlwdHVyZUNvbmZpZ31cbiAgICAgICAgY29udGVudFN0eWxlPXtjb250ZW50U3R5bGV9XG4gICAgICAgIGN1cnJlbnRJbmRleD17aW5kZXh9XG4gICAgICAgIGRldGVybWluaW5nQnJhbmNoPXshcmVhZHlGb3JGZXRjaH1cbiAgICAgICAgZGlyZWN0aW9uPXtkaXJlY3Rpb259XG4gICAgICAgIGRpc2FibGVXb3JkUG9wb3Zlcj17ZGlzYWJsZVdvcmRQb3BvdmVyX31cbiAgICAgICAgZm9udFNpemU9e2ZvbnRTaXplfVxuICAgICAgICBnZXRMZXhpY29uRGF0YT17Z2V0TGV4aWNvbkRhdGF9XG4gICAgICAgIGlzTlQ9e2lzTlRffVxuICAgICAgICBpc1ZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ9e2lzVmVyc2VTZWxlY3RlZEZvckFsaWdubWVudH1cbiAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgb25BbGlnbm1lbnRGaW5pc2g9eygpID0+IHNldFN0YXRlKHsgdmVyc2VTZWxlY3RlZEZvckFsaWdubWVudDogbnVsbCB9KX1cbiAgICAgICAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cz17b3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0c31cbiAgICAgICAgcmVmU3R5bGU9e3JlZlN0eWxlfVxuICAgICAgICByZWZlcmVuY2U9e19yZWZlcmVuY2V9XG4gICAgICAgIHNhdmluZz17c3RhcnRTYXZlfVxuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIHNjcmlwdHVyZUFsaWdubWVudEVkaXRDb25maWc9e19zY3JpcHR1cmVBbGlnbm1lbnRFZGl0Q29uZmlnfVxuICAgICAgICBzZXRXb3JkQWxpZ25lclN0YXR1cz17c2V0V29yZEFsaWduZXJTdGF0dXN9XG4gICAgICAgIHNlcnZlcj17c2VydmVyfVxuICAgICAgICB0cmFuc2xhdGU9e3RyYW5zbGF0ZX1cbiAgICAgICAgdXBkYXRlVmVyc2VzQWxpZ25tZW50U3RhdHVzPXt1cGRhdGVWZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAvPlxuICAgIClcbiAgfSlcblxuICBjb25zdCBoYW5kbGVBbGlnbkJ1dHRvbkNsaWNrID0gKCkgPT4ge1xuICAgIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHNldFN0YXRlKHsgc2hvd0FsaWdubWVudFBvcHVwOiB0cnVlIH0pXG4gICAgfSBlbHNlIGlmICh2ZXJzZXNGb3JSZWY/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgc2V0U3RhdGUoeyB2ZXJzZVNlbGVjdGVkRm9yQWxpZ25tZW50OiB2ZXJzZXNGb3JSZWZbMF0gfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBvblJlbmRlclRvb2xiYXIgPSAoeyBpdGVtcyB9KSA9PiB7XG4gICAgY29uc3QgbmV3SXRlbXMgPSBbLi4uaXRlbXNdXG5cbiAgICBsZXQgYWxsVmVyc2VzQWxpZ25lZCA9IGZhbHNlXG5cbiAgICAvLyBDaGVjayBpZiBhbGwgdmFsdWVzIGluIHZlcnNlc0FsaWdubWVudFN0YXR1cyBhcmUgdHJ1ZVxuICAgIGlmICh2ZXJzZXNBbGlnbm1lbnRTdGF0dXMpIHtcbiAgICAgIGFsbFZlcnNlc0FsaWduZWQgPSBPYmplY3QudmFsdWVzKHZlcnNlc0FsaWdubWVudFN0YXR1cykuZXZlcnkoYWxpZ25TdGF0dXMgPT4gYWxpZ25TdGF0dXMgPT09IHRydWUpXG4gICAgfVxuXG4gICAgbGV0IGFsaWduSWNvbiA9IG51bGxcbiAgICBsZXQgYWxpZ25CdXR0b25UZXh0ID0gJydcblxuICAgIGlmIChhbGxWZXJzZXNBbGlnbmVkKSB7XG4gICAgICBhbGlnbkljb24gPSA8UnhMaW5rMiBpZD17YHZhbGlkX2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPScjQkJCJyAvPlxuICAgICAgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWdubWVudCBpcyBWYWxpZCdcbiAgICB9IGVsc2Uge1xuICAgICAgYWxpZ25JY29uID0gPFJ4TGlua0JyZWFrMiBpZD17YGludmFsaWRfYWxpZ25tZW50X2ljb25fJHtyZXNvdXJjZUlkfWB9IGNvbG9yPScjMDAwJyAvPlxuICAgICAgYWxpZ25CdXR0b25UZXh0ID0gJ0FsaWdubWVudCBpcyBJbnZhbGlkJ1xuICAgIH1cblxuICAgIGlmIChzZXRXb3JkQWxpZ25lclN0YXR1cyAmJiByZXNvdXJjZUlkICE9PSAnT1JJR0lOQUxfU09VUkNFJykge1xuICAgICAgbmV3SXRlbXMucHVzaChcbiAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICBpZD17YGFsaWdubWVudF9pY29uXyR7cmVzb3VyY2VJZH1gfVxuICAgICAgICAgIGtleT0nY2hlY2tpbmctYnV0dG9uJ1xuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUFsaWduQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgdGl0bGU9e2FsaWduQnV0dG9uVGV4dH1cbiAgICAgICAgICBhcmlhLWxhYmVsPXthbGlnbkJ1dHRvblRleHR9XG4gICAgICAgICAgc3R5bGU9e3sgY3Vyc29yOiAncG9pbnRlcicgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHthbGlnbkljb259XG4gICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBPbmx5IHNob3cgdGhlIHVwZGF0ZSBmcm9tIG1haW4gYnV0dG9uIGlmIHNjcmlwdHVyZSBpcyBub3Qgb3JpZ2luYWwgdGV4dC5cbiAgICAhdXNpbmdPcmlnaW5hbEJpYmxlICYmIG5ld0l0ZW1zLnB1c2goXG4gICAgICA8PlxuICAgICAgICA8VXBkYXRlQnJhbmNoQnV0dG9uIHsuLi51cGRhdGVCdXR0b25Qcm9wc30gaXNMb2FkaW5nPXtpc1VwZGF0ZUxvYWRpbmcgfHwgc3RhcnRTYXZlfS8+XG4gICAgICAgIDxFcnJvckRpYWxvZyB0aXRsZT17ZGlhbG9nVGl0bGV9IGNvbnRlbnQ9e2RpYWxvZ01lc3NhZ2V9IG9wZW49e2lzRXJyb3JEaWFsb2dPcGVufSBvbkNsb3NlPXtvbkNsb3NlRXJyb3JEaWFsb2d9IGlzTG9hZGluZz17IGlzVXBkYXRlTG9hZGluZyB8fCBzdGFydFNhdmUgfSBsaW5rPXtkaWFsb2dMaW5rfSBsaW5rVG9vbHRpcD17ZGlhbG9nTGlua1Rvb2x0aXB9IC8+XG4gICAgICA8Lz5cbiAgICApXG5cbiAgICByZXR1cm4gbmV3SXRlbXNcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPFNlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXJcbiAgICAgIHNlbGVjdGlvbnM9e3NlbGVjdGlvbnN9XG4gICAgICBvblNlbGVjdGlvbnM9e25ld1NlbGVjdGlvbnMgPT4ge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnb25TZWxlY3Rpb25zJywgbmV3U2VsZWN0aW9ucylcbiAgICAgIH19XG4gICAgICBxdW90ZT17c2VsZWN0ZWRRdW90ZT8ucXVvdGV9XG4gICAgICBvY2N1cnJlbmNlPXtmaXhPY2N1cnJlbmNlKHNlbGVjdGVkUXVvdGU/Lm9jY3VycmVuY2UpfVxuICAgICAgdmVyc2VPYmplY3RzTWFwPXt2ZXJzZU9iamVjdHNNYXB9XG4gICAgPlxuICAgICAgPENhcmRcbiAgICAgICAgaWQ9e2BzY3JpcHR1cmVfY2FyZF8ke2NhcmROdW19YH1cbiAgICAgICAgdGl0bGU9e3NjcmlwdHVyZUxhYmVsfVxuICAgICAgICBzZXR0aW5nc1RpdGxlPXtzY3JpcHR1cmVUaXRsZSArICcgU2V0dGluZ3MnfVxuICAgICAgICBpdGVtcz17aXRlbXN9XG4gICAgICAgIGNsYXNzZXM9e2NsYXNzZXN9XG4gICAgICAgIGhlYWRlcnM9e2hlYWRlcnN9XG4gICAgICAgIGZpbHRlcnM9e2ZpbHRlcnN9XG4gICAgICAgIGZvbnRTaXplPXtmb250U2l6ZX1cbiAgICAgICAgaXRlbUluZGV4PXtpdGVtSW5kZXh9XG4gICAgICAgIHNldEZpbHRlcnM9e3NldEZpbHRlcnN9XG4gICAgICAgIHNldEZvbnRTaXplPXtzZXRGb250U2l6ZX1cbiAgICAgICAgc2V0SXRlbUluZGV4PXtzZXRJdGVtSW5kZXh9XG4gICAgICAgIG1hcmtkb3duVmlldz17bWFya2Rvd25WaWV3fVxuICAgICAgICBzZXRNYXJrZG93blZpZXc9e3NldE1hcmtkb3duVmlld31cbiAgICAgICAgZ2V0Q3VzdG9tQ29tcG9uZW50PXtnZXRTY3JpcHR1cmVTZWxlY3Rvcn1cbiAgICAgICAgaGlkZU1hcmtkb3duVG9nZ2xlXG4gICAgICAgIG9uTWVudUNsb3NlPXtvbk1lbnVDbG9zZX1cbiAgICAgICAgb25NaW5pbWl6ZT17b25NaW5pbWl6ZSA/ICgpID0+IG9uTWluaW1pemUoaWQsIHNjcmlwdHVyZVRpdGxlKSA6IG51bGx9XG4gICAgICAgIGVkaXRhYmxlPXtlbmFibGVFZGl0IHx8IGVuYWJsZUFsaWdubWVudH1cbiAgICAgICAgc2F2ZWQ9e3N0YXJ0U2F2ZSB8fCAhaGF2ZVVuc2F2ZWRDaGFuZ2VzfVxuICAgICAgICBvblNhdmVFZGl0PXsoKSA9PiBzZXRTdGF0ZSh7IHNhdmVDbGlja2VkOiB0cnVlIH0pfVxuICAgICAgICBvblJlbmRlclRvb2xiYXI9e29uUmVuZGVyVG9vbGJhcn1cbiAgICAgID5cbiAgICAgICAgPGRpdiBpZD1cInNjcmlwdHVyZS1wYW5lLWxpc3RcIj5cbiAgICAgICAgICB7cmVuZGVyZWRTY3JpcHR1cmVQYW5lc31cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L0NhcmQ+XG4gICAgICA8VmVyc2VTZWxlY3RvclBvcHVwXG4gICAgICAgIHJlc291cmNlSWQ9e3Jlc291cmNlSWR9XG4gICAgICAgIG9wZW49e3Nob3dBbGlnbm1lbnRQb3B1cH1cbiAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0U3RhdGUoeyBzaG93QWxpZ25tZW50UG9wdXA6IGZhbHNlIH0pfVxuICAgICAgICB2ZXJzZXNGb3JSZWY9e3ZlcnNlc0ZvclJlZn1cbiAgICAgICAgdmVyc2VzQWxpZ25tZW50U3RhdHVzPXt2ZXJzZXNBbGlnbm1lbnRTdGF0dXN9XG4gICAgICAgIG9uVmVyc2VTZWxlY3Q9eyh2ZXJzZSkgPT4gc2V0U3RhdGUoe1xuICAgICAgICAgIHZlcnNlU2VsZWN0ZWRGb3JBbGlnbm1lbnQ6IHZlcnNlLFxuICAgICAgICAgIHNob3dBbGlnbm1lbnRQb3B1cDogZmFsc2UsXG4gICAgICAgIH0pfVxuICAgICAgLz5cbiAgICA8L1NlbGVjdGlvbnNDb250ZXh0UHJvdmlkZXI+XG4gIClcbn1cblxuU2NyaXB0dXJlQ2FyZC5wcm9wVHlwZXMgPSB7XG4gIC8qKiByZXBvIGJyYW5jaCBvciB0YWcgc3VjaCBhcyBtYXN0ZXIgKi9cbiAgYXBwUmVmOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBhdXRoZW50aWNhdGlvbiBpbmZvICovXG4gIGF1dGhlbnRpY2F0aW9uOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogaW5kZXggZm9yIGN1cnJlbnQgYm9vayAoZS5nLiAnMDEnIGZvciAnZ2VuJykqL1xuICBib29rSW5kZXg6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBzY3JpcHR1cmUgY2FyZCBudW1iZXIgKDAgdG8gMiBmb3IgZXhhbXBsZSkgKi9cbiAgY2FyZE51bTogUHJvcFR5cGVzLm51bWJlci5pc1JlcXVpcmVkLFxuICAvKiogQ1NTIGNsYXNzZXMgKi9cbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGlmIHRydWUgdGhlbiB3b3JkIGRhdGEgaG92ZXIgaXMgc2hvd24gKi9cbiAgZGlzYWJsZVdvcmRQb3BvdmVyOiBQcm9wVHlwZXMuYm9vbCxcbiAgLyoqIGdldCBsYW5ndWFnZSBkZXRhaWxzICovXG4gIGdldExhbmd1YWdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAvKiogZnVuY3Rpb24gdG8gZ2V0IGxhdGVzdCBsZXhpY29uIGRhdGEgKi9cbiAgZ2V0TGV4aWNvbkRhdGE6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogb3B0aW9uYWwgdXJsIGZvciBncmVlayByZXBvICovXG4gIGdyZWVrUmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIHVybCBmb3IgaGVicmV3IHJlcG8gKi9cbiAgaGVicmV3UmVwb1VybDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqIG9wdGlvbmFsIGh0dHAgdGltZW91dCBpbiBtaWxsaXNlY29uZHMgZm9yIGZldGNoaW5nIHJlc291cmNlcywgZGVmYXVsdCBpcyAwICh2ZXJ5IGxvbmcgd2FpdCkgKi9cbiAgaHR0cENvbmZpZzogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqIGh0bWwgaWRlbnRpZmllciB0byB1c2UgZm9yIGNhcmQgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKiBtZXRob2QgdG8gZGV0ZXJtaW5lIGlmIE5UIG9yIE9UICovXG4gIGlzTlQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gIC8qKiB1c2VyLW5hbWUgKi9cbiAgbG9nZ2VkSW5Vc2VyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKiogZnVuY3Rpb24gdG8gbWluaW1pemUgdGhlIGNhcmQgKG9wdGlvbmFsKSAqL1xuICBvbk1pbmltaXplOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIG9wdGlvbmFsIGNhbGxiYWNrIGlmIGVycm9yIGxvYWRpbmcgcmVzb3VyY2UsIHBhcmFtZXRlciByZXR1cm5lZCBhcmU6XG4gICAqICAgICh7c3RyaW5nfSBlcnJvck1lc3NhZ2UsIHtib29sZWFufSBpc0FjY2Vzc0Vycm9yLCB7b2JqZWN0fSByZXNvdXJjZVN0YXR1cylcbiAgICogICAgICAtIGlzQWNjZXNzRXJyb3IgLSBpcyB0cnVlIGlmIHRoaXMgd2FzIGFuIGVycm9yIHRyeWluZyB0byBhY2Nlc3MgZmlsZVxuICAgKiAgICAgIC0gcmVzb3VyY2VTdGF0dXMgLSBpcyBvYmplY3QgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IHByb2JsZW1zIGZldGNoaW5nIHJlc291cmNlICovXG4gIG9uUmVzb3VyY2VFcnJvcjogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB0aGUgb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2sgKi9cbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogUHJvcFR5cGVzLm9iamVjdCxcbiAgcmVmZXJlbmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiBwcm9qZWN0SWQgKGJvb2tJRCkgdG8gdXNlICovXG4gICAgcHJvamVjdElkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIGN1cnJlbnQgY2hhcHRlciBudW1iZXIgKi9cbiAgICBjaGFwdGVyOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMubnVtYmVyLCBQcm9wVHlwZXMuc3RyaW5nXSkuaXNSZXF1aXJlZCxcbiAgICAvKiogY3VycmVudCB2ZXJzZSBudW1iZXIgKi9cbiAgICB2ZXJzZTogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIH0pLFxuICAvKiogcmVzb3VyY2Ugb2JqZWN0ICovXG4gIHJlc291cmNlOiBQcm9wVHlwZXMuc2hhcGUoe1xuICAgIC8qKiByZXNvdXJjZSBsYW5ndWFnZSB0byB1c2UgKi9cbiAgICBsYW5ndWFnZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgc3VjaCBhcyB1bmZvbGRpbmdXb3JkICovXG4gICAgb3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAvKiogcmVzb3VyY2VJZCB0byB1c2UgKGUuZy4gdWdudCkgKi9cbiAgICByZXNvdXJjZUlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgLyoqIHJlcG8gb3duZXIgZm9yIG9yaWdpbmFsIGxhbmd1YWdlcyBzdWNoIGFzIHVuZm9sZGluZ1dvcmQgKi9cbiAgICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgfSksXG4gIC8qKiByZXNvdXJjZUxpbmsgKi9cbiAgcmVzb3VyY2VMaW5rOiBQcm9wVHlwZXMuYW55LFxuICAvKipUaGlzIGlzIGN1cnJlbnRseSBzZWxlY3RlZCBxdW90ZSAqL1xuICBzZWxlY3RlZFF1b3RlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAvKiogc2VydmVyIChlLmcuICdodHRwczovL2dpdC5kb29yNDMub3JnJykgKi9cbiAgc2VydmVyOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgbG9hZGluZyBzdGF0ZSAqL1xuICBzZXRBcmVSZXNvdXJjZXNMb2FkaW5nOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSBzYXZpbmcgc3RhdGUqL1xuICBzZXRBcmVSZXNvdXJjZXNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogY2FsbGJhY2sgdG8gcmVwb3J0IGNhcmQgbWVyZ2Ugc3RhdHVzICovXG4gIHNldENhcmRzTG9hZGluZ01lcmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHVwZGF0ZSBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNMb2FkaW5nVXBkYXRlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHJlcG9ydCBjYXJkIHNhdmluZyBzdGF0dXMgKi9cbiAgc2V0Q2FyZHNTYXZpbmc6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogZnVuY3Rpb24gdG8gc2V0IHN0YXRlIGluIGFwcCB0aGF0IHRoZXJlIGFyZSB1bnNhdmVkIGNoYW5nZXMgKi9cbiAgc2V0U2F2ZWRDaGFuZ2VzOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqIGNhbGxiYWNrIHRvIHVwZGF0ZSB3b3JkIGFsaWduZXIgc3RhdGUgKi9cbiAgc2V0V29yZEFsaWduZXJTdGF0dXM6IFByb3BUeXBlcy5mdW5jLFxuICAvKiogdGl0bGUgZm9yIHNjcmlwdHVyZSBjYXJkICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIC8qKiBvcHRpb25hbCBmdW5jdGlvbiBmb3IgbG9jYWxpemF0aW9uICovXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiBjYWxsYmFjayB0byB1cGRhdGUgdGhlIGNhcmQncyBtZXJnZSBzdGF0ZSBpbiBhcHAgKi9cbiAgdXBkYXRlTWVyZ2VTdGF0ZTogUHJvcFR5cGVzLmZ1bmMsXG4gIC8qKiB1c2UgbWV0aG9kIGZvciB1c2luZyBsb2NhbCBzdG9yYWdlIHNwZWNpZmljIGZvciB1c2VyICovXG4gIHVzZVVzZXJMb2NhbFN0b3JhZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFB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
|
|
@@ -502,7 +502,6 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
502
502
|
_updatedVerseObjects,
|
|
503
503
|
_verseTextChanged,
|
|
504
504
|
newState,
|
|
505
|
-
verseText,
|
|
506
505
|
_AlignmentHelpers$upd4,
|
|
507
506
|
targetVerseObjects,
|
|
508
507
|
_alignmentsChanged,
|
|
@@ -514,28 +513,21 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
514
513
|
if (enableEdit) {
|
|
515
514
|
if (editing_ !== editing) {
|
|
516
515
|
_newVerseText = _newVerseText || initialVerseText;
|
|
517
|
-
_updatedVerseObjects =
|
|
516
|
+
_updatedVerseObjects = null;
|
|
518
517
|
_verseTextChanged = _newVerseText !== initialVerseText;
|
|
519
518
|
newState = {
|
|
520
519
|
editing: editing_,
|
|
521
520
|
newVerseText: _newVerseText,
|
|
522
521
|
verseTextChanged: _verseTextChanged
|
|
523
522
|
};
|
|
524
|
-
if (editing_) {
|
|
525
|
-
//
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
});
|
|
533
|
-
if (hasTextChangedSignificantly(verseText, _newVerseText)) {
|
|
534
|
-
// apply alignment to current text
|
|
535
|
-
_AlignmentHelpers$upd4 = AlignmentHelpers.updateAlignmentsToTargetVerse(currentVerseObjects, _newVerseText), targetVerseObjects = _AlignmentHelpers$upd4.targetVerseObjects;
|
|
536
|
-
_updatedVerseObjects = targetVerseObjects; // update verseObjects to match current text
|
|
537
|
-
newState['updatedVerseObjects'] = _updatedVerseObjects;
|
|
538
|
-
}
|
|
523
|
+
if (!editing_ && _verseTextChanged) {
|
|
524
|
+
// if done editing and verse has changed, update the verse objects
|
|
525
|
+
// do migration of alignments to match latest original language
|
|
526
|
+
_updatedVerseObjects = migrateAlignments('setEditing()', updatedVerseObjects || currentVerseObjects);
|
|
527
|
+
// apply alignments from updated verseObjects to edited verse text
|
|
528
|
+
_AlignmentHelpers$upd4 = AlignmentHelpers.updateAlignmentsToTargetVerse(_updatedVerseObjects, _newVerseText), targetVerseObjects = _AlignmentHelpers$upd4.targetVerseObjects;
|
|
529
|
+
_updatedVerseObjects = targetVerseObjects; // update verseObjects to match current text
|
|
530
|
+
newState['updatedVerseObjects'] = _updatedVerseObjects;
|
|
539
531
|
}
|
|
540
532
|
setState(newState);
|
|
541
533
|
_alignmentsChanged = _updatedVerseObjects && !isEqual(initialVerseObjects, _updatedVerseObjects);
|
|
@@ -646,4 +638,4 @@ export function useScriptureAlignmentEdit(_ref) {
|
|
|
646
638
|
}
|
|
647
639
|
};
|
|
648
640
|
}
|
|
649
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJTZXJ2ZXJDb25maWciLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0QWxpZ25tZW50cyIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJPUklHSU5BTF9TT1VSQ0UiLCJnZXRWZXJzZXNGb3JSZWYiLCJpc1VzZm1BbGlnbmVkIiwidGFyZ2V0VmVyc2VVU0ZNIiwib3JpZ2luYWxWZXJzZU9iamVjdHMiLCJfb3JpZ2luYWxWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyRleHQiLCJleHRyYWN0QWxpZ25tZW50c0Zyb21UYXJnZXRWZXJzZSIsImFsaWdubWVudHMiLCJ3b3JkQmFuayIsImFyZUFsZ25tZW50c0NvbXBsZXRlIiwiZ2V0Q3VycmVudFZlcnNlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwidmVyc2VUZXh0Q2hhbmdlZCIsIm5ld1ZlcnNlVGV4dCIsImN1cnJlbnRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZVRleHQiLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwiYWxsU3BhY2VzIiwidGV4dCIsImhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseSIsImluaXRpYWxWZXJzZVRleHQiLCJjaGFuZ2VkIiwibGVuZ3RoRGlmZmVyZW5jZSIsImZpcnN0UGFydE9mSW5pdGlhbCIsInN1YnN0cmluZyIsImxhc3RDaGFycyIsInBvcyIsImxhc3RJbmRleE9mIiwibGFzdFVzZm1UYWciLCJlbmRzV2l0aFF1b3RlIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIl9yZWYiLCJjdXJyZW50SW5kZXgiLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50IiwiaHR0cENvbmZpZyIsImlzTmV3VGVzdGFtZW50Iiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsIm9yaWdpbmFsUmVwb1VybCIsInJlZmVyZW5jZSIsInNjcmlwdHVyZUNvbmZpZyIsInNjcmlwdHVyZVNldHRpbmdzIiwic2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJzdGFydEVkaXRCcmFuY2giLCJ0YXJnZXRMYW5ndWFnZSIsInRpdGxlIiwid29ya2luZ1Jlc291cmNlQnJhbmNoIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJlZGl0aW5nIiwibmV3QWxpZ25tZW50cyIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJzdGF0ZSIsInNldFN0YXRlXyIsIl9zdGF0ZSIsImNoYXB0ZXIiLCJ2ZXJzZSIsInByb2plY3RJZCIsImJhc2ljUmVmZXJlbmNlIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNsZWFyQ2hhbmdlcyIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJKU09OIiwic3RyaW5naWZ5IiwiY2xlYXJTdGF0ZSIsIm9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfIiwicmVzb3VyY2VJZCIsImJvb2tJZCIsIm9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3MiLCJyZXNvdXJjZUxpbmsiLCJ1c2VNZW1vIiwidmVyc2VPYmplY3RzIiwidmVyc2VzIiwibGFuZ3VhZ2VJZCIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX3ZlcnNlUmVmZXJlbmNlJHZlcnNlIiwidmVyc2VSZWZlcmVuY2UiLCJvcmlnVmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwiZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyIsIl91cGRhdGVkVmVyc2VPYmplY3RzIiwidXNlRWZmZWN0Iiwibm90RW1wdHkiLCJhbGlnbmVkXyIsInJlc3VsdHMiLCJnZXRDaGFuZ2VzIiwiX25ld1N0YXRlIiwidXBkYXRlZFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkMiIsInRhcmdldFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVDb25maWckdmVycyIsInJlZiIsInZlcnNlc0ZvclJlZiIsImlzTWlncmF0ZWQiLCJwcmVmaXgiLCJfaW5pdGlhbFZlcnNlT2JqZWN0cyIsInVwZGF0ZWRBbGlnbm1lbnRzIiwiaW5pdGlhbEFsaWdubWVudHMiLCJzYW1lIiwiZmlyc3REaWZmIiwidXBkYXRlZEFsaWdubWVudCIsImluaXRpYWxBbGlnbm1lbnQiLCJkaWZmZXJlbnQiLCJtaWdyYXRlQWxpZ25tZW50cyIsIm1pZ3JhdGVUYXJnZXRBbGlnbm1lbnRzVG9PcmlnaW5hbCIsImhhbmRsZUFsaWdubWVudENsaWNrIiwiX2hhbmRsZUFsaWdubWVudENsaWNrIiwiX2NhbGxlZSIsIl9hbGlnbmVyRGF0YSIsIm9yaWdpbmFsVmVyc2VVc2ZtIiwiX0FsaWdubWVudEhlbHBlcnMkcGFyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhIiwidGFyZ2V0V29yZHMiLCJ2ZXJzZUFsaWdubWVudHMiLCJlcnJvck1lc3NhZ2UiLCJfbmV3QWxpZ25tZW50cyIsInZlcnNlVXNmbSIsImFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTSIsImFsaWduZWRWZXJzZU9iamVjdHMiLCJ1c2ZtVmVyc2VUb0pzb24iLCJzYXZlQWxpZ25tZW50IiwiY2FsbFNldFNhdmVkU3RhdGUiLCJjYW5jZWxBbGlnbm1lbnQiLCJzZXRFZGl0aW5nIiwiX3giLCJfc2V0RWRpdGluZyIsIl9jYWxsZWUyIiwiZWRpdGluZ18iLCJfbmV3VmVyc2VUZXh0IiwiX3ZlcnNlVGV4dENoYW5nZWQiLCJ2ZXJzZVRleHQiLCJfQWxpZ25tZW50SGVscGVycyR1cGQ0IiwiX2FsaWdubWVudHNDaGFuZ2VkIiwiX2FyZ3MyIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiY3VycmVudFZlcnNlT2JqZWN0cyIsImdldFVzZm1Gb3JWZXJzZUNvbnRlbnQiLCJzZXRWZXJzZUNoYW5nZWQiLCJfaW5pdGlhbFZlcnNlVGV4dCIsIl90YXJnZXRWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyR1cGQzIiwidW5zYXZlZENoYW5nZXMiLCJ1bnNhdmVkQ2hhbmdlc18iLCJvbkFsaWdubWVudHNDaGFuZ2UiLCJhbGlnbm1lbnRDb21wbGV0ZSIsImFjdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9va3MvdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWlnbm9yZVxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQge1xuICBBbGlnbm1lbnRIZWxwZXJzLFxuICBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMsXG4gIFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMsXG4gIHVzZm1IZWxwZXJzLFxufSBmcm9tICd3b3JkLWFsaWduZXItcmNsJ1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ0ByZWFjdC1ob29rei9kZWVwLWVxdWFsJ1xuaW1wb3J0IHtcbiAgQm9va09iamVjdHNUeXBlLFxuICBTY3JpcHR1cmVDb25maWcsXG4gIFNjcmlwdHVyZVJlZmVyZW5jZSxcbiAgU2VydmVyQ29uZmlnLFxuICBWZXJzZU9iamVjdHNUeXBlLFxufSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGdldEFsaWdubWVudHMsIGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MgfSBmcm9tICcuLi91dGlscy9TY3JpcHR1cmVTZXR0aW5ncydcbmltcG9ydCB7IE9SSUdJTkFMX1NPVVJDRSB9IGZyb20gJy4uL3V0aWxzJ1xuaW1wb3J0IHsgZ2V0VmVyc2VzRm9yUmVmIH0gZnJvbSAnLi91c2VTY3JpcHR1cmUnXG5cbmludGVyZmFjZSBTdGFydEVkaXQge1xuICAoKTogUHJvbWlzZTxzdHJpbmc+O1xufVxuXG50eXBlIExhbmd1YWdlVHlwZSA9IHtcbiAgbGFuZ3VhZ2VJZDogc3RyaW5nLCAvLyBzaG9ydCBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgXCJlblwiXG4gIGRpcmVjdGlvbjogc3RyaW5nLCAvLyBsYW5ndWFnZSBkaXJlY3Rpb24gXCJsdHJcIiBvciBcInJ0bFwiXG59O1xuXG5pbnRlcmZhY2UgQWxpZ25lckRhdGFUeXBlIHtcbiAgICB3b3JkQmFuaz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmRiYW5rIHdvcmQgKHRhcmdldCBsYW5ndWFnZSB3b3JkcykgaW4gZm9ybWF0IG5lZWRlZCBieSB3b3JkLWFsaWduZXItcmNsXG4gICAgYWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgbmVlZGVkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmcsIC8vIGlmIHByZXNlbnQgdGhlbiB3ZSBkb24ndCBoYXZlIG5lY2Vzc2FyeSBkYXRhIHRvIGRvIGFsaWdubWVudFxufVxuXG5pbnRlcmZhY2UgQWxpZ25lclJlc3VsdHNEYXRhVHlwZSB7XG4gICAgdGFyZ2V0V29yZHM/OiBPYmplY3RbXSwgLy8gbGlzdCBvZiB0YXJnZXQgbGFuZ3VhZ2Ugd29yZHMgaW4gZm9ybWF0IHVzZWQgaW4gd29yZC1hbGlnbmVyLXJjbFxuICAgIHZlcnNlQWxpZ25tZW50cz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHdvcmQgYWxpZ25tZW50cyBpbiBmb3JtYXQgdXNlZCBieSB3b3JkLWFsaWduZXItcmNsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzIHtcbiAgLy8gaW5kZXggdG8gdXNlIGZvciBib29rIChlLmcuIGAwMWAgZm9yIGBHRU5gKVxuICBib29rSW5kZXg6IHN0cmluZyxcbiAgLy8gY3VycmVudCB2ZXJzZSBzZWxlY3RlZCBmcm9tIGluaXRpYWxWZXJzZU9iamVjdHNbXVxuICBjdXJyZW50SW5kZXg6IG51bWJlcixcbiAgLy8gcmVmZXJlbmNlIGZvciB2ZXJzZSBzZWxlY3RlZCBmb3IgYWxpZ25tZW50XG4gIGN1cnJlbnRWZXJzZVJlZjogU2NyaXB0dXJlUmVmZXJlbmNlLFxuICAvLyBpZiB0cnVlIHRoZW4gZWRpdGluZyBpcyBhbGxvd2VkXG4gIGVuYWJsZUVkaXQ6IGJvb2xlYW4sXG4gIC8vIGlmIHRydWUgdGhlbiBhbGlnbm1lbnQgaXMgYWxsb3dlZFxuICBlbmFibGVBbGlnbm1lbnQ6IGJvb2xlYW4sXG4gIC8vIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciBodHRwIGNvbW11bmljYXRpb25cbiAgaHR0cENvbmZpZzogU2VydmVyQ29uZmlnLFxuICAvLyBhcnJheSBvZiB0aGUgaW5pdGlhbCB2ZXJzZU9iamVjdHMgZm9yIGN1cnJlbnQgcmVmZXJlbmNlXG4gIGluaXRpYWxWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gIC8vIGluaXRpYWwgdGV4dCBmb3IgdmVyc2VcbiAgaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nLFxuICAvLyBmbGFnIHRoYXQgd2UgYXJlIHdvcmtpbmcgb24gTlQgYm9va1xuICBpc05ld1Rlc3RhbWVudDogYm9vbGVhbixcbiAgLy8gdXNlciBuYW1lIG9mIGxvZ2dlZCBpbiB1c2VyXG4gIGxvZ2dlZEluVXNlcjogc3RyaW5nLFxuICAvLyBvd25lciB0byB1c2Ugd2hlbiBmZXRjaGluZyBvcmlnaW5hbCBsYW5ndWFnZSByZXNvdXJjZXNcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyOiBzdHJpbmcsXG4gIC8vIHVybCBmb3IgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHJlcG9cbiAgb3JpZ2luYWxSZXBvVXJsOiBzdHJpbmcsXG4gIC8vIG9yaWdpbmFsIHNjcmlwdHVyZSBib29rT2JqZWN0cyBmb3IgY3VycmVudCBib29rXG4gIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM6IEJvb2tPYmplY3RzVHlwZSxcbiAgLyoqIGN1cnJlbnQgcmVmZXJlbmNlICoqL1xuICByZWZlcmVuY2U6IFNjcmlwdHVyZVJlZmVyZW5jZTtcbiAgLy8gZGV0YWlscyBhYm91dCB0aGUgY3VycmVudCBzY3JpcHR1cmUgbG9hZGVkXG4gIHNjcmlwdHVyZUNvbmZpZzogU2NyaXB0dXJlQ29uZmlnLFxuICAvLyBzZXR0aW5ncyB0byBiZSB1c2VkIGZvciBzY3JpcHR1cmVcbiAgc2NyaXB0dXJlU2V0dGluZ3M6IHsgfSxcbiAgLy8gY2FsbGJhY2sgdG8gc2F2ZSBjdXJyZW50IHZlcnNlIGVkaXQgYW5kIGFsaWdubWVudCBjaGFuZ2VzXG4gIHNldFNhdmVkQ2hhbmdlczogRnVuY3Rpb24sXG4gIC8vIHNvdXJjZSBsYW5ndWFnZSBjb2RlIHN1Y2ggYXMgYGhib2BcbiAgc291cmNlTGFuZ3VhZ2U6IHN0cmluZyxcbiAgLy8gY2FsbGJhY2sgdG8gY3JlYXRlIGEgdXNlciBicmFuY2ggZm9yIHNhdmluZyBlZGl0IGRhdGFcbiAgc3RhcnRFZGl0QnJhbmNoOiBTdGFydEVkaXQsXG4gIC8vIGN1cnJlbnQgdGFyZ2V0IGxhbmd1YWdlXG4gIHRhcmdldExhbmd1YWdlOiBMYW5ndWFnZVR5cGUsXG4gIC8vIHRpdGxlIHRvIHNob3cgaW4gYWxpZ25tZW50XG4gIHRpdGxlOiBzdHJpbmcsXG4gICAvLyBicmFuY2ggbmFtZSBjdXJyZW50bHkgYmVpbmcgdXNlZCAoZS5nLiBgbWFzdGVyYCBvciB1c2VyIGJyYW5jaClcbiAgd29ya2luZ1Jlc291cmNlQnJhbmNoOiBzdHJpbmcsXG59XG5cbi8qKlxuICogZGV0ZXJtaW5lcyBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGUgYmFzZWQgb24gdGFyZ2V0IFVTRk0gYW5kIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlIG9iamVjdHNcbiAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRWZXJzZVVTRk1cbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gb3JpZ2luYWxWZXJzZU9iamVjdHNcbiAqL1xuZnVuY3Rpb24gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk06c3RyaW5nLCBvcmlnaW5hbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlKTpib29sZWFuIHtcbiAgb3JpZ2luYWxWZXJzZU9iamVjdHMgPSBvcmlnaW5hbFZlcnNlT2JqZWN0cz8ubGVuZ3RoID8gb3JpZ2luYWxWZXJzZU9iamVjdHMgOiBudWxsIC8vIG1ha2Ugc3VyZSBub3QgcGFzc2luZyBlbXB0eSBBcnJheVxuICBjb25zdCB7IGFsaWdubWVudHMsIHdvcmRCYW5rIH0gPSBBbGlnbm1lbnRIZWxwZXJzLmV4dHJhY3RBbGlnbm1lbnRzRnJvbVRhcmdldFZlcnNlKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gIHJldHVybiBBbGlnbm1lbnRIZWxwZXJzLmFyZUFsZ25tZW50c0NvbXBsZXRlKHdvcmRCYW5rLCBhbGlnbm1lbnRzKVxufVxuXG4vKipcbiAqIGdldCB0aGUgdXBkYXRlZCBVU0ZNIGZvciB0YXJnZXQgdmVyc2UgZnJvbSB0aGUgdXBkYXRlZCB2ZXJzZSBvYmplY3RzIGFuZCBsYXRlc3QgdGV4dFxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IGluaXRpYWxWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gdmVyc2VUZXh0Q2hhbmdlZFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICovXG5mdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSwgaW5pdGlhbFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCB2ZXJzZVRleHRDaGFuZ2VkOiBib29sZWFuLCBuZXdWZXJzZVRleHQ6c3RyaW5nKTpzdHJpbmcge1xuICBsZXQgdGFyZ2V0VmVyc2VVU0ZNID0gbnVsbFxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuXG4gIGlmICh2ZXJzZVRleHRDaGFuZ2VkICYmIG5ld1ZlcnNlVGV4dCkge1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gdGFyZ2V0VmVyc2VUZXh0XG4gIH0gZWxzZSB7XG4gICAgdGFyZ2V0VmVyc2VVU0ZNID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICB9XG4gIHJldHVybiB0YXJnZXRWZXJzZVVTRk1cbn1cblxuLyoqXG4gKiByZXR1cm4gdHJ1ZSBpZiBvbmx5IHNwYWNlcyBpbiBjb250ZW50XG4gKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuICovXG5mdW5jdGlvbiBhbGxTcGFjZXModGV4dDpzdHJpbmcpOmJvb2xlYW4ge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IHRleHQubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAodGV4dFtpXSAhPT0gJyAnKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRydWVcbn1cblxuLyoqXG4gKiBtYWtlIHN1cmUgdGhlcmUgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2UgdG8gdGhlIHRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBuZXdWZXJzZVRleHRcbiAqIEBwYXJhbSB7c3RyaW5nfSBpbml0aWFsVmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseShuZXdWZXJzZVRleHQ6c3RyaW5nLCBpbml0aWFsVmVyc2VUZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGxldCBjaGFuZ2VkID0gbmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0XG5cbiAgaWYgKGNoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7IC8vIG1ha2Ugc3VyZSBpdCdzIHNpZ25pZmljYW50XG4gICAgY29uc3QgbGVuZ3RoRGlmZmVyZW5jZSA9IG5ld1ZlcnNlVGV4dC5sZW5ndGggLSBpbml0aWFsVmVyc2VUZXh0Py5sZW5ndGhcbiAgICBjb25zdCBmaXJzdFBhcnRPZkluaXRpYWwgPSBuZXdWZXJzZVRleHQuc3Vic3RyaW5nKDAsIGluaXRpYWxWZXJzZVRleHQubGVuZ3RoKVxuXG4gICAgaWYgKChsZW5ndGhEaWZmZXJlbmNlID4gMCkgJiYgKGluaXRpYWxWZXJzZVRleHQgPT09IGZpcnN0UGFydE9mSW5pdGlhbCkpIHsgLy8gaWYgaW5pdGlhbCBwYXJ0cyBtYXRjaFxuICAgICAgLy8gYWRkIGV4ZW1wdGlvbiBpZiB0aGUgdXNmbSBlbmRzIHdpdGggYSBxdW90ZSB0YWdcbiAgICAgIGNvbnN0IGxhc3RDaGFycyA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcobmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGxlbmd0aERpZmZlcmVuY2UpXG4gICAgICBjb25zdCBwb3MgPSBuZXdWZXJzZVRleHQubGFzdEluZGV4T2YoJ1xcXFwnKVxuICAgICAgY29uc3QgbGFzdFVzZm1UYWcgPSBuZXdWZXJzZVRleHRbcG9zICsgMV1cbiAgICAgIGNvbnN0IGVuZHNXaXRoUXVvdGUgPSAocG9zID4gMCkgJiYgKGxhc3RVc2ZtVGFnID09PSAncScpXG5cbiAgICAgIGlmIChlbmRzV2l0aFF1b3RlICYmIGFsbFNwYWNlcyhsYXN0Q2hhcnMpKSB7XG4gICAgICAgIGNoYW5nZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gY2hhbmdlZFxufVxuXG4vLyBtYW5hZ2UgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IHN0YXRlc1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNjcmlwdHVyZUFsaWdubWVudEVkaXQoe1xuICBjdXJyZW50SW5kZXgsXG4gIGVuYWJsZUVkaXQsXG4gIGVuYWJsZUFsaWdubWVudCxcbiAgaHR0cENvbmZpZyxcbiAgaW5pdGlhbFZlcnNlT2JqZWN0cyxcbiAgaW5pdGlhbFZlcnNlVGV4dCxcbiAgaXNOZXdUZXN0YW1lbnQsXG4gIG9yaWdpbmFsTGFuZ3VhZ2VPd25lcixcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyxcbiAgb3JpZ2luYWxSZXBvVXJsLFxuICByZWZlcmVuY2UsXG4gIHNjcmlwdHVyZUNvbmZpZyxcbiAgc2NyaXB0dXJlU2V0dGluZ3MsXG4gIHNldFNhdmVkQ2hhbmdlcyxcbiAgc291cmNlTGFuZ3VhZ2UsXG4gIHN0YXJ0RWRpdEJyYW5jaCxcbiAgdGFyZ2V0TGFuZ3VhZ2UsXG4gIHRpdGxlLFxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2gsXG59IDogU2NyaXB0dXJlQUxpZ25tZW50RWRpdFByb3BzKSB7XG4gIHR5cGUgU3RhdGVUeXBlcyA9IHtcbiAgICBhbGlnbmVkOiBib29sZWFuLFxuICAgIGFsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUsXG4gICAgZWRpdGluZzogYm9vbGVhbixcbiAgICBuZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlLFxuICAgIG5ld1ZlcnNlVGV4dDogc3RyaW5nLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogYm9vbGVhbixcbiAgfVxuXG4gIGNvbnN0IFtzdGF0ZSwgc2V0U3RhdGVfXSA9IFJlYWN0LnVzZVN0YXRlKHtcbiAgICBhbGlnbmVkOiBmYWxzZSxcbiAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBudWxsLFxuICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IF9zdGF0ZTogU3RhdGVUeXBlcyA9IHN0YXRlIC8vIFRyaWNreTogd29yay1hcm91bmQgZm9yIGJ1ZyB0aGF0IHN0YW5kYXJkIHR5cGVzY3JpcHQgdHlwZSBjYXN0aW5nIGRvZXMgbm90IHdvcmsgaW4gLnRzeCBmaWxlc1xuICBjb25zdCB7XG4gICAgYWxpZ25lZCxcbiAgICBhbGlnbmVyRGF0YSxcbiAgICBlZGl0aW5nLFxuICAgIG5ld0FsaWdubWVudHMsXG4gICAgbmV3VmVyc2VUZXh0LFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgfSA9IF9zdGF0ZVxuICBjb25zdCBjaGFwdGVyID0gcmVmZXJlbmNlPy5jaGFwdGVyXG4gIGNvbnN0IHZlcnNlID0gcmVmZXJlbmNlPy52ZXJzZVxuICBjb25zdCBwcm9qZWN0SWQgPSByZWZlcmVuY2U/LnByb2plY3RJZFxuICBjb25zdCBiYXNpY1JlZmVyZW5jZSA9IHsgLy8gb25seSBoYXMgdGhlIHRocmVlIGJhc2ljIGZpZWxkc1xuICAgIGNoYXB0ZXIsXG4gICAgdmVyc2UsXG4gICAgcHJvamVjdElkLFxuICB9XG5cbiAgZnVuY3Rpb24gc2V0U3RhdGUobmV3U3RhdGUpIHtcbiAgICBzZXRTdGF0ZV8ocHJldlN0YXRlID0+ICh7IC4uLnByZXZTdGF0ZSwgLi4ubmV3U3RhdGUgfSkpXG4gIH1cblxuICBmdW5jdGlvbiBjbGVhckNoYW5nZXMoKSB7XG4gICAgY29uc29sZS5sb2coYGNsZWFyQ2hhbmdlcygpIC0gJHtKU09OLnN0cmluZ2lmeShiYXNpY1JlZmVyZW5jZSl9YClcbiAgICBjb25zdCBjbGVhclN0YXRlID0ge1xuICAgICAgLi4uc3RhdGUsXG4gICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgIG5ld1ZlcnNlVGV4dDogbnVsbCxcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkOiBmYWxzZSxcbiAgICB9XG5cbiAgICBpZiAoIWlzRXF1YWwoc3RhdGUsIGNsZWFyU3RhdGUpKSB7XG4gICAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSByZWZlcmVuY2UgY2hhbmdlZCwgcmVzZXQgZWRpdC9hbGlnbm1lbnQgc3RhdGUgdmFyaWFibGVzYClcbiAgICAgIHNldFN0YXRlKGNsZWFyU3RhdGUpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5nc18gPSB7XG4gICAgLi4uc2NyaXB0dXJlU2V0dGluZ3MsXG4gICAgcmVzb3VyY2VJZDogT1JJR0lOQUxfU09VUkNFLFxuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBodHRwQ29uZmlnID0gaHR0cENvbmZpZyB8fCB7fVxuICBjb25zdCBib29rSWQgPSBwcm9qZWN0SWRcbiAgY29uc3Qgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncyA9IGdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MoXG4gICAgYm9va0lkLCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzXywgaXNOZXdUZXN0YW1lbnQsIG9yaWdpbmFsUmVwb1VybCxcbiAgKVxuXG4gIGlmICghZW5hYmxlQWxpZ25tZW50KSB7IC8vIGlmIG5vdCBlbmFibGVkLCB0aGVuIHdlIGRvbid0IGZldGNoIHJlc291cmNlXG4gICAgb3JpZ2luYWxTY3JpcHR1cmVTZXR0aW5ncy5yZXNvdXJjZUxpbmsgPSBudWxsXG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IFJlYWN0LnVzZU1lbW8oKCkgPT4geyAvLyBnZXQgdGhlIG9yaWdpbmFsIGxhbmd1YWdlIHZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHZlcnNlT2JqZWN0cyA9IFtdXG5cbiAgICBpZiAob3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cykge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgY29uc3QgdmVyc2VzID0gZ2V0VmVyc2VzRm9yUmVmKGJhc2ljUmVmZXJlbmNlLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzPy5sYW5ndWFnZUlkKVxuXG4gICAgICBpZiAodmVyc2VzPy5sZW5ndGgpIHtcbiAgICAgICAgZm9yIChjb25zdCB2ZXJzZVJlZmVyZW5jZSBvZiB2ZXJzZXMpIHtcbiAgICAgICAgICBjb25zdCBvcmlnVmVyc2VPYmplY3RzID0gdmVyc2VSZWZlcmVuY2U/LnZlcnNlRGF0YT8udmVyc2VPYmplY3RzXG5cbiAgICAgICAgICBpZiAob3JpZ1ZlcnNlT2JqZWN0cykge1xuICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkodmVyc2VPYmplY3RzLCBvcmlnVmVyc2VPYmplY3RzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdmVyc2VPYmplY3RzXG4gIH0sIFtvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLCBjaGFwdGVyLCB2ZXJzZSwgcHJvamVjdElkXSlcblxuICAvKipcbiAgICogZ2V0IGN1cnJlbnQgdmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgLSBvcHRpb25hbCBvdmVycmlkZXMgdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyhfdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IHVwZGF0ZWRWZXJzZU9iamVjdHMpIHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IF91cGRhdGVkVmVyc2VPYmplY3RzIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHVwZGF0ZSBhbGlnbm1lbnQgc3RhdHVzIHdoZW4gYWxpZ25lciBpcyBoaWRkZW5cbiAgICBjb25zdCBub3RFbXB0eSA9ICEhaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGxldCBhbGlnbmVkXyA9IGZhbHNlXG5cbiAgICBpZiAoIWFsaWduZXJEYXRhKSB7IC8vIHNraXAgaWYgYWxpZ25lciBpcyBiZWluZyBzaG93blxuICAgICAgaWYgKG5vdEVtcHR5KSB7IC8vIHNraXAgaWYgZW1wdHlcbiAgICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcblxuICAgICAgICBpZiAoIWVuYWJsZUFsaWdubWVudCkge1xuICAgICAgICAgIGFsaWduZWRfID0gdHJ1ZVxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZlcnNlVGV4dCAmJiAobmV3VmVyc2VUZXh0ICE9PSBpbml0aWFsVmVyc2VUZXh0KSkge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHJlc3VsdHM/LnRhcmdldFZlcnNlVGV4dCwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICAgICAgICAgIGFsaWduZWRfID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChhbGlnbmVkICE9PSBhbGlnbmVkXykge1xuICAgICAgICBzZXRTdGF0ZSh7IGFsaWduZWQ6IGFsaWduZWRfIH0pXG4gICAgICB9XG4gICAgfVxuICB9LCBbaW5pdGlhbFZlcnNlT2JqZWN0cywgYWxpZ25lckRhdGEsIG5ld1ZlcnNlVGV4dCwgaW5pdGlhbFZlcnNlVGV4dCwgZW5hYmxlQWxpZ25tZW50LCBvcmlnaW5hbFZlcnNlT2JqZWN0c10pXG5cbiAgLyoqXG4gICAqIGdldCBjaGFuZ2VzIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlIC0gb3B0aW9uYWxseSBwYXNzIGluIG5ldyBzdGF0ZSAodG8gb3ZlcnJpZGUgc3RhdGUpXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDaGFuZ2VzKG5ld1N0YXRlID0ge30pIHtcbiAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIHN0YXJ0ZWQgJHtjdXJyZW50SW5kZXh9IC0gcGFzc2VkIHN0YXRlYCwgbmV3U3RhdGUpXG4gICAgY29uc3QgX25ld1N0YXRlID0ge1xuICAgICAgc3RhdGUsXG4gICAgICAuLi5uZXdTdGF0ZSxcbiAgICB9XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld0FsaWdubWVudHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzLFxuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9ID0gX25ld1N0YXRlXG4gICAgbGV0IHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuXG4gICAgaWYgKG5ld0FsaWdubWVudHMpIHsgLy8gaWYgdW5zYXZlZCBhbGlnbm1lbnQgY2hhbmdlcywgYXBwbHkgdGhlbVxuICAgICAgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1bnNhdmVkIGFsaWdubWVudHN9YClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdXBkYXRlVmVyc2VXaXRoTmV3QWxpZ25tZW50cygpXG4gICAgfVxuXG4gICAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIG5ldyB0ZXh0OmAsIG5ld1ZlcnNlVGV4dClcbiAgICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyh1cGRhdGVkVmVyc2VPYmplY3RzXylcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYClcbiAgICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VPYmplY3RzIH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKGN1cnJlbnRWZXJzZU9iamVjdHNfLCBuZXdWZXJzZVRleHQpXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHRhcmdldFZlcnNlT2JqZWN0c1xuICAgIH0gZWxzZSB7IC8vIG9ubHkgYWxpZ25tZW50IGNoYW5nZXMgdG8gdXBsb2FkXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyAmJiBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVwZGF0ZWQgYWxpZ25tZW50c2AsIHsgbmV3VmVyc2VUZXh0LCB1cGRhdGVkVmVyc2VPYmplY3RzXyB9KVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgfVxuXG4gICAgaWYgKHVwZGF0ZWRWZXJzZU9iamVjdHNfKSB7XG4gICAgICBjb25zdCByZWYgPSBzY3JpcHR1cmVDb25maWc/LnZlcnNlc0ZvclJlZj8uW2N1cnJlbnRJbmRleF1cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgICAgcmVmLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiB1cGRhdGVkVmVyc2VPYmplY3RzXyxcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge31cbiAgfVxuXG4gIC8qKlxuICAgKiBjb21wYXJlIGluaXRpYWwgYWxpZ25tZW50cyB3aXRoIGZpbmFsIHRvIHNlZSBpZiBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF9pbml0aWFsVmVyc2VPYmplY3RzXG4gICAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIGNoYW5nZWRcbiAgICovXG4gIGZ1bmN0aW9uIGlzTWlncmF0ZWQocHJlZml4OnN0cmluZywgX3VwZGF0ZWRWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IHVwZGF0ZWRWZXJzZU9iamVjdHMsIF9pbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUgPSBpbml0aWFsVmVyc2VPYmplY3RzKTpib29sZWFuIHtcbiAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX3VwZGF0ZWRWZXJzZU9iamVjdHMpXG4gICAgY29uc3QgaW5pdGlhbEFsaWdubWVudHMgPSBnZXRBbGlnbm1lbnRzKF9pbml0aWFsVmVyc2VPYmplY3RzKVxuICAgIGxldCBzYW1lID0gdXBkYXRlZEFsaWdubWVudHMubGVuZ3RoID09PSBpbml0aWFsQWxpZ25tZW50cy5sZW5ndGggLy8gZmlyc3QgbWFrZSBzdXJlIGxlbmd0aHMgYXJlIHRoZSBzYW1lXG4gICAgbGV0IGZpcnN0RGlmZlxuXG4gICAgaWYgKHNhbWUpIHsgLy8gZXZlbiBpZiBsZW5ndGhzIGFyZSB0aGUgc2FtZSBkb3VibGUgY2hlY2sgZWFjaCBhbGlnbm1lbnRcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdXBkYXRlZEFsaWdubWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgdXBkYXRlZEFsaWdubWVudCA9IHVwZGF0ZWRBbGlnbm1lbnRzW2ldXG4gICAgICAgIGNvbnN0IGluaXRpYWxBbGlnbm1lbnQgPSBpbml0aWFsQWxpZ25tZW50c1tpXVxuXG4gICAgICAgIGlmICghaXNFcXVhbCh1cGRhdGVkQWxpZ25tZW50LCBpbml0aWFsQWxpZ25tZW50KSkge1xuICAgICAgICAgIGZpcnN0RGlmZiA9IGlcbiAgICAgICAgICBzYW1lID0gZmFsc2VcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZGlmZmVyZW50ID0gIXNhbWVcblxuICAgIGlmIChkaWZmZXJlbnQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAke3ByZWZpeH0gLSB0YXJnZXQgdmVyc2UgYWxpZ25tZW50cyBtaWdyYXRlZCB0byBtYXRjaCBvcmlnaW5hbCBsYW5ndWFnZSwgZmlyc3QgZGlmZmVyZW5jZSBpcyBhdCAke2ZpcnN0RGlmZn1gLCB1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzKVxuICAgIH1cblxuICAgIHJldHVybiBkaWZmZXJlbnRcbiAgfVxuXG4gIC8qKlxuICAgKiBkbyBhbGlnbm1lbnRzIG1pZ3JhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHJlZml4XG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgKi9cbiAgZnVuY3Rpb24gbWlncmF0ZUFsaWdubWVudHMocHJlZml4OiBzdHJpbmcsIHVwZGF0ZWRWZXJzZU9iamVjdHM6IFZlcnNlT2JqZWN0c1R5cGUgPSBudWxsKTogVmVyc2VPYmplY3RzVHlwZSB7XG4gICAgdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgZ2V0Q3VycmVudFZlcnNlT2JqZWN0cygpXG4gICAgY29uc3QgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSBtaWdyYXRlT3JpZ2luYWxMYW5ndWFnZUhlbHBlcnMubWlncmF0ZVRhcmdldEFsaWdubWVudHNUb09yaWdpbmFsKHVwZGF0ZWRWZXJzZU9iamVjdHMsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGlzTWlncmF0ZWQocHJlZml4LCBfdXBkYXRlZFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICByZXR1cm4gX3VwZGF0ZWRWZXJzZU9iamVjdHNcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYWxpZ25tZW50IGJ1dHRvbiAtIHdpbGwgc2hvdyBpZiBub3QgYWxyZWFkeSBzaG93blxuICAgKi9cbiAgYXN5bmMgZnVuY3Rpb24gaGFuZGxlQWxpZ25tZW50Q2xpY2soKSB7XG4gICAgaWYgKGVuYWJsZUFsaWdubWVudCkge1xuICAgICAgbGV0IF9hbGlnbmVyRGF0YTogQWxpZ25lckRhdGFUeXBlID0gbnVsbFxuICAgICAgYXdhaXQgc3RhcnRFZGl0QnJhbmNoKClcblxuICAgICAgaWYgKCFhbGlnbmVyRGF0YSkgeyAvLyBpZiB3b3JkIGFsaWduZXIgbm90IHNob3duXG4gICAgICAgIGNvbnNvbGUubG9nKGBoYW5kbGVBbGlnbm1lbnRDbGljayAtIHRvZ2dsZSBPTiBhbGlnbm1lbnRgKVxuICAgICAgICBsZXQgb3JpZ2luYWxWZXJzZVVzZm0gPSBudWxsXG4gICAgICAgIGxldCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNcblxuICAgICAgICBpZiAob3JpZ2luYWxWZXJzZU9iamVjdHMpIHtcbiAgICAgICAgICBvcmlnaW5hbFZlcnNlVXNmbSA9IFVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMuY29udmVydFZlcnNlRGF0YVRvVVNGTShvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVBbGlnbm1lbnRzKCdoYW5kbGVBbGlnbm1lbnRDbGljaygpJylcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IGdldEN1cnJlbnRWZXJzZVVzZm0oX3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgdGFyZ2V0V29yZHM6IHdvcmRCYW5rLFxuICAgICAgICAgIHZlcnNlQWxpZ25tZW50czogYWxpZ25tZW50cyxcbiAgICAgICAgfSA9IEFsaWdubWVudEhlbHBlcnMucGFyc2VVc2ZtVG9Xb3JkQWxpZ25lckRhdGEodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlVXNmbSlcbiAgICAgICAgX2FsaWduZXJEYXRhID0geyB3b3JkQmFuaywgYWxpZ25tZW50cyB9XG5cbiAgICAgICAgaWYgKCFhbGlnbm1lbnRzPy5sZW5ndGgpIHtcbiAgICAgICAgICBfYWxpZ25lckRhdGEuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGFyZSBubyB3b3JkcyB0byBhbGlnbiBpbiB0aGUgT3JpZ2luYWwgbGFuZ3VhZ2UnXG4gICAgICAgIH0gZWxzZSBpZiAoIXdvcmRCYW5rPy5sZW5ndGgpIHtcbiAgICAgICAgICBfYWxpZ25lckRhdGEuZXJyb3JNZXNzYWdlID0gJ1RoZXJlIGFyZSBubyB3b3JkcyB0byBhbGlnbiBpbiB0aGUgTGl0ZXJhbC9TaW1wbGlmaWVkIFNjcmlwdHVyZSBUZXh0J1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgeyAvLyB3b3JkIGFsaWduZXIgY3VycmVudGx5IHNob3duXG4gICAgICAgIGNvbnNvbGUubG9nKGBoYW5kbGVBbGlnbm1lbnRDbGljayAtIGFsaWdubWVudCBhbHJlYWR5IHNob3duYClcbiAgICAgICAgX2FsaWduZXJEYXRhID0gYWxpZ25lckRhdGFcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IF9hbGlnbmVyRGF0YSB9KVxuICAgICAgY29uc29sZS5sb2coX2FsaWduZXJEYXRhKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdXBkYXRlZCB2ZXJzZSBvYmplY3RzIGFmdGVyIGFsaWdubWVudHMgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cyk6VmVyc2VPYmplY3RzVHlwZSB7XG4gICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVRleHQgPSBuZXdWZXJzZVRleHQgfHwgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKGN1cnJlbnRWZXJzZU9iamVjdHNfKVxuICAgIGNvbnN0IHZlcnNlVXNmbSA9IEFsaWdubWVudEhlbHBlcnMuYWRkQWxpZ25tZW50c1RvVmVyc2VVU0ZNKF9uZXdBbGlnbm1lbnRzLnRhcmdldFdvcmRzLCBfbmV3QWxpZ25tZW50cy52ZXJzZUFsaWdubWVudHMsIHRhcmdldFZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkVmVyc2VPYmplY3RzID0gdXNmbUhlbHBlcnMudXNmbVZlcnNlVG9Kc29uKHZlcnNlVXNmbSlcbiAgICByZXR1cm4gYWxpZ25lZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gc2F2ZSBjdXJyZW50IGFsaWdubWVudHMgaW4gd29yZCBhbGlnbmVyLiAgR2VuZXJhdGVzIG5ldyB2ZXJzZSBjb250ZW50IGFuZCBzYXZlcyBpbiBzdGF0ZS4gQ2xvc2VzIGFsaWduZXIgZGlzcGxheVxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IF9uZXdBbGlnbm1lbnRzIC0gcmVzdWx0cyBvZiBhbGlnbmVyXG4gICAqL1xuICBmdW5jdGlvbiBzYXZlQWxpZ25tZW50KF9uZXdBbGlnbm1lbnRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlID0gbmV3QWxpZ25tZW50cykge1xuICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBuZXdBbGlnbm1lbnRzYCwgX25ld0FsaWdubWVudHMpXG5cbiAgICBpZiAoX25ld0FsaWdubWVudHMpIHtcbiAgICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKF9uZXdBbGlnbm1lbnRzKVxuICAgICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIGFsaWduZWRWZXJzZU9iamVjdHNgLCBhbGlnbmVkVmVyc2VPYmplY3RzKVxuICAgICAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgICAgbmV3QWxpZ25tZW50czogbnVsbCxcbiAgICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0czogYWxpZ25lZFZlcnNlT2JqZWN0cyxcbiAgICAgIH1cbiAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgY2FsbFNldFNhdmVkU3RhdGUodHJ1ZSwgbmV3U3RhdGUgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gbm8gYWxpZ25tZW50IGNoYW5nZXNgKVxuICAgICAgc2V0U3RhdGUoe1xuICAgICAgICBhbGlnbmVyRGF0YTogbnVsbCxcbiAgICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3Igd2hlbiB1c2VyIGNsaWNrZWQgb24gYnV0dG9uIHRvIGNhbmNlbCB3b3JrIGluIHdvcmQgYWxpZ25lci4gIENhbGN1bGF0ZXMgYW5kIGRpc3BsYXlzIGN1cnJlbnQgYWxpZ25tZW50IHZhbGlkIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqL1xuICBmdW5jdGlvbiBjYW5jZWxBbGlnbm1lbnQoKSB7XG4gICAgY29uc29sZS5sb2coYGNhbmNlbEFsaWdubWVudCgpYClcbiAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBnZXRDdXJyZW50VmVyc2VVc2ZtKHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIHNldFN0YXRlKHsgYWxpZ25lckRhdGE6IG51bGwsIGFsaWduZWQgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmb3IgYnV0dG9uIHRvIHNldCBlZGl0aW5nIHN0YXRlXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gZWRpdGluZ18gLSBpZiB0cnVlLCBlZGl0b3IgaXMgc2hvd24sIG90aGVyd2lzZSBlZGl0b3IgaXMgaGlkZGVuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfbmV3VmVyc2VUZXh0IC0gb3B0aW9uYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlcXVpcmUtYXdhaXRcbiAgYXN5bmMgZnVuY3Rpb24gc2V0RWRpdGluZyhlZGl0aW5nXzogYm9vbGVhbiwgX25ld1ZlcnNlVGV4dDogc3RyaW5nID0gbmV3VmVyc2VUZXh0KSB7XG4gICAgaWYgKGVuYWJsZUVkaXQpIHtcbiAgICAgIGlmIChlZGl0aW5nXyAhPT0gZWRpdGluZykge1xuICAgICAgICBfbmV3VmVyc2VUZXh0ID0gX25ld1ZlcnNlVGV4dCB8fCBpbml0aWFsVmVyc2VUZXh0XG4gICAgICAgIGxldCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZWRWZXJzZU9iamVjdHMgfHwgY3VycmVudFZlcnNlT2JqZWN0c1xuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkID0gX25ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICBlZGl0aW5nOiBlZGl0aW5nXyxcbiAgICAgICAgICBuZXdWZXJzZVRleHQ6IF9uZXdWZXJzZVRleHQsXG4gICAgICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlZGl0aW5nXyApIHsgLy8gYnkgZGVmYXVsdCBkbyBtaWdyYXRpb24gb2YgYWxpZ25tZW50cyB0byBtYXRjaCBsYXRlc3Qgb3JpZ2luYWwgbGFuZ3VhZ2VcbiAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVBbGlnbm1lbnRzKCdzZXRFZGl0aW5nKCknLCBfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdmVyc2VUZXh0Q2hhbmdlZCkge1xuICAgICAgICAgIC8vIGZhbGxiYWNrIHRvIG1ha2Ugc3VyZSB0ZXh0IGZyb20gdmVyc2VPYmplY3RzIG1hdGNoZXMgY3VycmVudCB0ZXh0XG4gICAgICAgICAgY29uc3QgdmVyc2VUZXh0ID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5nZXRVc2ZtRm9yVmVyc2VDb250ZW50KHsgdmVyc2VPYmplY3RzOiBjdXJyZW50VmVyc2VPYmplY3RzIH0gKVxuXG4gICAgICAgICAgaWYgKGhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseSh2ZXJzZVRleHQsIF9uZXdWZXJzZVRleHQpKSB7XG4gICAgICAgICAgICAvLyBhcHBseSBhbGlnbm1lbnQgdG8gY3VycmVudCB0ZXh0XG4gICAgICAgICAgICBjb25zdCB7IHRhcmdldFZlcnNlT2JqZWN0cyB9ID0gQWxpZ25tZW50SGVscGVycy51cGRhdGVBbGlnbm1lbnRzVG9UYXJnZXRWZXJzZShjdXJyZW50VmVyc2VPYmplY3RzLCBfbmV3VmVyc2VUZXh0KVxuICAgICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gdXBkYXRlIHZlcnNlT2JqZWN0cyB0byBtYXRjaCBjdXJyZW50IHRleHRcbiAgICAgICAgICAgIG5ld1N0YXRlWyd1cGRhdGVkVmVyc2VPYmplY3RzJ10gPSBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgICBjb25zdCBfYWxpZ25tZW50c0NoYW5nZWQgPSAoX3VwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh2ZXJzZVRleHRDaGFuZ2VkIHx8IF9hbGlnbm1lbnRzQ2hhbmdlZCwgbmV3U3RhdGUgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmcm9tIHRoZSBlZGl0IG9uQ2hhbmdlIGV2ZW50IHRvIHVwZGF0ZSBlZGl0IHN0YXRlIHZhcmlhYmxlc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoYW5nZWQgLSB0cnVlIGlmIHRoZSBuZXdWZXJzZVRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGluaXRpYWxWZXJzZVRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dCAtIGN1cnJlbnQgY2hhbmdlZCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfaW5pdGlhbFZlcnNlVGV4dCAtIGluaXRpYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDogc3RyaW5nLCBfaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgX3RhcmdldFZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF90YXJnZXRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICBhbGlnbmVkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gZ2VuZXJhdGUgbmV3IHZlcnNlT2JqZWN0cyB0byBkaXNwbGF5IGluIFNjcmlwdHVyZVBhbmVcbiAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cykge1xuICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVzZm1IZWxwZXJzLnVzZm1WZXJzZVRvSnNvbih0YXJnZXRWZXJzZVVTRk0pXG4gICAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxWZXJzZU9iamVjdHNcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dF0pXG5cbiAgY29uc3QgdW5zYXZlZENoYW5nZXM6Ym9vbGVhbiA9IFJlYWN0LnVzZU1lbW8oICgpID0+IHsgLy8gaWYgdmVyc2UgaGFzIGJlZW4gZWRpdGVkIG9yIGFsaWdubWVudCBjaGFuZ2VkLCB0aGVuIGluZGljYXRlIHdlIGhhdmUgdW5zYXZlZCBjaGFuZ2VzXG4gICAgY29uc3QgY2hhbmdlZCA9IHZlcnNlVGV4dENoYW5nZWQgfHwgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cykpXG4gICAgcmV0dXJuIGNoYW5nZWRcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWRdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBzY3JpcHR1cmUgY2FyZCB0byB1cGRhdGVkIHdpdGggbGF0ZXN0IHN0YXRlIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtib29sZWFufSB1bnNhdmVkQ2hhbmdlc19cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlXG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc186IGJvb2xlYW4sIG5ld1N0YXRlOiB7fSA9IHsgfSApIHtcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKGBjYWxsU2V0U2F2ZWRTdGF0ZSAtIG5ldyBzdGF0ZWAsIF9uZXdTdGF0ZSlcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKGN1cnJlbnRJbmRleCwgIXVuc2F2ZWRDaGFuZ2VzXywge1xuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIHN0YXRlOiBfbmV3U3RhdGUsXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNldCBzYXZlZCBjaGFuZ2VzIHdoZW5ldmVyIHVzZXIgZWRpdHMgdmVyc2UgdGV4dCBvciBhbGlnbm1lbnRzIG9yIGlmIGFsaWdubWVudHMgYXJlIG9wZW5cbiAgICBjb25zdCB1bnNhdmVkQ2hhbmdlc18gPSB1bnNhdmVkQ2hhbmdlcyB8fCAhIWFsaWduZXJEYXRhXG4gICAgY2FsbFNldFNhdmVkU3RhdGUodW5zYXZlZENoYW5nZXNfKVxuICB9LCBbdW5zYXZlZENoYW5nZXMsIGFsaWduZXJEYXRhXSlcblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gYWxpZ25tZW50cyBhcmUgYmVpbmcgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IHJlc3VsdHNcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQWxpZ25tZW50c0NoYW5nZShyZXN1bHRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlKTpib29sZWFuIHtcbiAgICBjb25zb2xlLmxvZyhgb25BbGlnbm1lbnRzQ2hhbmdlKCkgLSBhbGlnbm1lbnQgY2hhbmdlZCwgcmVzdWx0c2AsIHJlc3VsdHMpIC8vIG1lcmdlIGFsaWdubWVudHMgaW50byB0YXJnZXQgdmVyc2UgYW5kIGNvbnZlcnQgdG8gVVNGTVxuICAgIGNvbnN0IHsgdGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cyB9ID0gcmVzdWx0c1xuICAgIGNvbnN0IGFsaWdubWVudENvbXBsZXRlID0gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzKVxuICAgIGNvbnNvbGUubG9nKGBBbGlnbm1lbnRzIGFyZSAke2FsaWdubWVudENvbXBsZXRlID8gJ0NPTVBMRVRFIScgOiAnaW5jb21wbGV0ZSd9YClcbiAgICBzZXRTdGF0ZSh7IG5ld0FsaWdubWVudHM6IHJlc3VsdHMsIGFsaWduZWQ6IGFsaWdubWVudENvbXBsZXRlIH0pXG4gICAgcmV0dXJuIGFsaWdubWVudENvbXBsZXRlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgcmVmZXJlbmNlOiBiYXNpY1JlZmVyZW5jZSxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxD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
|
|
641
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZSIsInQiLCJyIiwiT2JqZWN0IiwicHJvdG90eXBlIiwibiIsImhhc093blByb3BlcnR5IiwibyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiU3ltYm9sIiwiYSIsIml0ZXJhdG9yIiwiYyIsImFzeW5jSXRlcmF0b3IiLCJ1IiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJ3cmFwIiwiR2VuZXJhdG9yIiwiY3JlYXRlIiwiQ29udGV4dCIsIm1ha2VJbnZva2VNZXRob2QiLCJ0cnlDYXRjaCIsInR5cGUiLCJhcmciLCJjYWxsIiwiaCIsImwiLCJmIiwicyIsInkiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwicCIsImQiLCJnZXRQcm90b3R5cGVPZiIsInYiLCJ2YWx1ZXMiLCJnIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiaW52b2tlIiwiX3R5cGVvZiIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiY29uc3RydWN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJrZXlzIiwicmV2ZXJzZSIsInBvcCIsInByZXYiLCJjaGFyQXQiLCJzbGljZSIsInN0b3AiLCJydmFsIiwiaGFuZGxlIiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwicmVqZWN0IiwiX25leHQiLCJfdGhyb3ciLCJrZXkiLCJpbmZvIiwiZXJyb3IiLCJfYXN5bmNUb0dlbmVyYXRvciIsImZuIiwic2VsZiIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsImVyciIsInVuZGVmaW5lZCIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiYWxsb3dBcnJheUxpa2UiLCJpdCIsIkFycmF5IiwiaXNBcnJheSIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIkYiLCJfZSIsIm5vcm1hbENvbXBsZXRpb24iLCJkaWRFcnIiLCJzdGVwIiwiX2UyIiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIm9iaiIsIl90b1Byb3BlcnR5S2V5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfbm9uSXRlcmFibGVSZXN0IiwibWluTGVuIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0IiwibGVuIiwiYXJyMiIsIlJlYWN0IiwiQWxpZ25tZW50SGVscGVycyIsIm1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyIsIlVzZm1GaWxlQ29udmVyc2lvbkhlbHBlcnMiLCJ1c2ZtSGVscGVycyIsImlzRXF1YWwiLCJCb29rT2JqZWN0c1R5cGUiLCJTY3JpcHR1cmVDb25maWciLCJTY3JpcHR1cmVSZWZlcmVuY2UiLCJTZXJ2ZXJDb25maWciLCJWZXJzZU9iamVjdHNUeXBlIiwiZ2V0QWxpZ25tZW50cyIsImdldFNjcmlwdHVyZVJlc291cmNlU2V0dGluZ3MiLCJPUklHSU5BTF9TT1VSQ0UiLCJnZXRWZXJzZXNGb3JSZWYiLCJpc1VzZm1BbGlnbmVkIiwidGFyZ2V0VmVyc2VVU0ZNIiwib3JpZ2luYWxWZXJzZU9iamVjdHMiLCJfb3JpZ2luYWxWZXJzZU9iamVjdHMiLCJfQWxpZ25tZW50SGVscGVycyRleHQiLCJleHRyYWN0QWxpZ25tZW50c0Zyb21UYXJnZXRWZXJzZSIsImFsaWdubWVudHMiLCJ3b3JkQmFuayIsImFyZUFsZ25tZW50c0NvbXBsZXRlIiwiZ2V0Q3VycmVudFZlcnNlVXNmbSIsInVwZGF0ZWRWZXJzZU9iamVjdHMiLCJpbml0aWFsVmVyc2VPYmplY3RzIiwidmVyc2VUZXh0Q2hhbmdlZCIsIm5ld1ZlcnNlVGV4dCIsImN1cnJlbnRWZXJzZU9iamVjdHNfIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkIiwidXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UiLCJ0YXJnZXRWZXJzZVRleHQiLCJjb252ZXJ0VmVyc2VEYXRhVG9VU0ZNIiwiYWxsU3BhY2VzIiwidGV4dCIsImhhc1RleHRDaGFuZ2VkU2lnbmlmaWNhbnRseSIsImluaXRpYWxWZXJzZVRleHQiLCJjaGFuZ2VkIiwibGVuZ3RoRGlmZmVyZW5jZSIsImZpcnN0UGFydE9mSW5pdGlhbCIsInN1YnN0cmluZyIsImxhc3RDaGFycyIsInBvcyIsImxhc3RJbmRleE9mIiwibGFzdFVzZm1UYWciLCJlbmRzV2l0aFF1b3RlIiwidXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCIsIl9yZWYiLCJjdXJyZW50SW5kZXgiLCJlbmFibGVFZGl0IiwiZW5hYmxlQWxpZ25tZW50IiwiaHR0cENvbmZpZyIsImlzTmV3VGVzdGFtZW50Iiwib3JpZ2luYWxMYW5ndWFnZU93bmVyIiwib3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0cyIsIm9yaWdpbmFsUmVwb1VybCIsInJlZmVyZW5jZSIsInNjcmlwdHVyZUNvbmZpZyIsInNjcmlwdHVyZVNldHRpbmdzIiwic2V0U2F2ZWRDaGFuZ2VzIiwic291cmNlTGFuZ3VhZ2UiLCJzdGFydEVkaXRCcmFuY2giLCJ0YXJnZXRMYW5ndWFnZSIsInRpdGxlIiwid29ya2luZ1Jlc291cmNlQnJhbmNoIiwiX1JlYWN0JHVzZVN0YXRlIiwidXNlU3RhdGUiLCJhbGlnbmVkIiwiYWxpZ25lckRhdGEiLCJlZGl0aW5nIiwibmV3QWxpZ25tZW50cyIsIl9SZWFjdCR1c2VTdGF0ZTIiLCJzdGF0ZSIsInNldFN0YXRlXyIsIl9zdGF0ZSIsImNoYXB0ZXIiLCJ2ZXJzZSIsInByb2plY3RJZCIsImJhc2ljUmVmZXJlbmNlIiwic2V0U3RhdGUiLCJuZXdTdGF0ZSIsInByZXZTdGF0ZSIsImNsZWFyQ2hhbmdlcyIsImNvbnNvbGUiLCJsb2ciLCJjb25jYXQiLCJKU09OIiwic3RyaW5naWZ5IiwiY2xlYXJTdGF0ZSIsIm9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfIiwicmVzb3VyY2VJZCIsImJvb2tJZCIsIm9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3MiLCJyZXNvdXJjZUxpbmsiLCJ1c2VNZW1vIiwidmVyc2VPYmplY3RzIiwidmVyc2VzIiwibGFuZ3VhZ2VJZCIsIl9pdGVyYXRvciIsIl9zdGVwIiwiX3ZlcnNlUmVmZXJlbmNlJHZlcnNlIiwidmVyc2VSZWZlcmVuY2UiLCJvcmlnVmVyc2VPYmplY3RzIiwidmVyc2VEYXRhIiwiZ2V0Q3VycmVudFZlcnNlT2JqZWN0cyIsIl91cGRhdGVkVmVyc2VPYmplY3RzIiwidXNlRWZmZWN0Iiwibm90RW1wdHkiLCJhbGlnbmVkXyIsInJlc3VsdHMiLCJnZXRDaGFuZ2VzIiwiX25ld1N0YXRlIiwidXBkYXRlZFZlcnNlT2JqZWN0c18iLCJ1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzIiwiX0FsaWdubWVudEhlbHBlcnMkdXBkMiIsInRhcmdldFZlcnNlT2JqZWN0cyIsIl9zY3JpcHR1cmVDb25maWckdmVycyIsInJlZiIsInZlcnNlc0ZvclJlZiIsImlzTWlncmF0ZWQiLCJwcmVmaXgiLCJfaW5pdGlhbFZlcnNlT2JqZWN0cyIsInVwZGF0ZWRBbGlnbm1lbnRzIiwiaW5pdGlhbEFsaWdubWVudHMiLCJzYW1lIiwiZmlyc3REaWZmIiwidXBkYXRlZEFsaWdubWVudCIsImluaXRpYWxBbGlnbm1lbnQiLCJkaWZmZXJlbnQiLCJtaWdyYXRlQWxpZ25tZW50cyIsIm1pZ3JhdGVUYXJnZXRBbGlnbm1lbnRzVG9PcmlnaW5hbCIsImhhbmRsZUFsaWdubWVudENsaWNrIiwiX2hhbmRsZUFsaWdubWVudENsaWNrIiwiX2NhbGxlZSIsIl9hbGlnbmVyRGF0YSIsIm9yaWdpbmFsVmVyc2VVc2ZtIiwiX0FsaWdubWVudEhlbHBlcnMkcGFyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInBhcnNlVXNmbVRvV29yZEFsaWduZXJEYXRhIiwidGFyZ2V0V29yZHMiLCJ2ZXJzZUFsaWdubWVudHMiLCJlcnJvck1lc3NhZ2UiLCJfbmV3QWxpZ25tZW50cyIsInZlcnNlVXNmbSIsImFkZEFsaWdubWVudHNUb1ZlcnNlVVNGTSIsImFsaWduZWRWZXJzZU9iamVjdHMiLCJ1c2ZtVmVyc2VUb0pzb24iLCJzYXZlQWxpZ25tZW50IiwiY2FsbFNldFNhdmVkU3RhdGUiLCJjYW5jZWxBbGlnbm1lbnQiLCJzZXRFZGl0aW5nIiwiX3giLCJfc2V0RWRpdGluZyIsIl9jYWxsZWUyIiwiZWRpdGluZ18iLCJfbmV3VmVyc2VUZXh0IiwiX3ZlcnNlVGV4dENoYW5nZWQiLCJfQWxpZ25tZW50SGVscGVycyR1cGQ0IiwiX2FsaWdubWVudHNDaGFuZ2VkIiwiX2FyZ3MyIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwiY3VycmVudFZlcnNlT2JqZWN0cyIsInNldFZlcnNlQ2hhbmdlZCIsIl9pbml0aWFsVmVyc2VUZXh0IiwiX3RhcmdldFZlcnNlT2JqZWN0cyIsIl9BbGlnbm1lbnRIZWxwZXJzJHVwZDMiLCJ1bnNhdmVkQ2hhbmdlcyIsInVuc2F2ZWRDaGFuZ2VzXyIsIm9uQWxpZ25tZW50c0NoYW5nZSIsImFsaWdubWVudENvbXBsZXRlIiwiYWN0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ob29rcy91c2VTY3JpcHR1cmVBbGlnbm1lbnRFZGl0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIEFsaWdubWVudEhlbHBlcnMsXG4gIG1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycyxcbiAgVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycyxcbiAgdXNmbUhlbHBlcnMsXG59IGZyb20gJ3dvcmQtYWxpZ25lci1yY2wnXG5pbXBvcnQgeyBpc0VxdWFsIH0gZnJvbSAnQHJlYWN0LWhvb2t6L2RlZXAtZXF1YWwnXG5pbXBvcnQge1xuICBCb29rT2JqZWN0c1R5cGUsXG4gIFNjcmlwdHVyZUNvbmZpZyxcbiAgU2NyaXB0dXJlUmVmZXJlbmNlLFxuICBTZXJ2ZXJDb25maWcsXG4gIFZlcnNlT2JqZWN0c1R5cGUsXG59IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0QWxpZ25tZW50cywgZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyB9IGZyb20gJy4uL3V0aWxzL1NjcmlwdHVyZVNldHRpbmdzJ1xuaW1wb3J0IHsgT1JJR0lOQUxfU09VUkNFIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBnZXRWZXJzZXNGb3JSZWYgfSBmcm9tICcuL3VzZVNjcmlwdHVyZSdcblxuaW50ZXJmYWNlIFN0YXJ0RWRpdCB7XG4gICgpOiBQcm9taXNlPHN0cmluZz47XG59XG5cbnR5cGUgTGFuZ3VhZ2VUeXBlID0ge1xuICBsYW5ndWFnZUlkOiBzdHJpbmcsIC8vIHNob3J0IGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBcImVuXCJcbiAgZGlyZWN0aW9uOiBzdHJpbmcsIC8vIGxhbmd1YWdlIGRpcmVjdGlvbiBcImx0clwiIG9yIFwicnRsXCJcbn07XG5cbmludGVyZmFjZSBBbGlnbmVyRGF0YVR5cGUge1xuICAgIHdvcmRCYW5rPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZGJhbmsgd29yZCAodGFyZ2V0IGxhbmd1YWdlIHdvcmRzKSBpbiBmb3JtYXQgbmVlZGVkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbiAgICBhbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCBuZWVkZWQgYnkgd29yZC1hbGlnbmVyLXJjbFxuICAgIGVycm9yTWVzc2FnZT86IHN0cmluZywgLy8gaWYgcHJlc2VudCB0aGVuIHdlIGRvbid0IGhhdmUgbmVjZXNzYXJ5IGRhdGEgdG8gZG8gYWxpZ25tZW50XG59XG5cbmludGVyZmFjZSBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlIHtcbiAgICB0YXJnZXRXb3Jkcz86IE9iamVjdFtdLCAvLyBsaXN0IG9mIHRhcmdldCBsYW5ndWFnZSB3b3JkcyBpbiBmb3JtYXQgdXNlZCBpbiB3b3JkLWFsaWduZXItcmNsXG4gICAgdmVyc2VBbGlnbm1lbnRzPzogT2JqZWN0W10sIC8vIGxpc3Qgb2Ygd29yZCBhbGlnbm1lbnRzIGluIGZvcm1hdCB1c2VkIGJ5IHdvcmQtYWxpZ25lci1yY2xcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMge1xuICAvLyBpbmRleCB0byB1c2UgZm9yIGJvb2sgKGUuZy4gYDAxYCBmb3IgYEdFTmApXG4gIGJvb2tJbmRleDogc3RyaW5nLFxuICAvLyBjdXJyZW50IHZlcnNlIHNlbGVjdGVkIGZyb20gaW5pdGlhbFZlcnNlT2JqZWN0c1tdXG4gIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAvLyByZWZlcmVuY2UgZm9yIHZlcnNlIHNlbGVjdGVkIGZvciBhbGlnbm1lbnRcbiAgY3VycmVudFZlcnNlUmVmOiBTY3JpcHR1cmVSZWZlcmVuY2UsXG4gIC8vIGlmIHRydWUgdGhlbiBlZGl0aW5nIGlzIGFsbG93ZWRcbiAgZW5hYmxlRWRpdDogYm9vbGVhbixcbiAgLy8gaWYgdHJ1ZSB0aGVuIGFsaWdubWVudCBpcyBhbGxvd2VkXG4gIGVuYWJsZUFsaWdubWVudDogYm9vbGVhbixcbiAgLy8gY29uZmlndXJhdGlvbiB0byB1c2UgZm9yIGh0dHAgY29tbXVuaWNhdGlvblxuICBodHRwQ29uZmlnOiBTZXJ2ZXJDb25maWcsXG4gIC8vIGFycmF5IG9mIHRoZSBpbml0aWFsIHZlcnNlT2JqZWN0cyBmb3IgY3VycmVudCByZWZlcmVuY2VcbiAgaW5pdGlhbFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSxcbiAgLy8gaW5pdGlhbCB0ZXh0IGZvciB2ZXJzZVxuICBpbml0aWFsVmVyc2VUZXh0OiBzdHJpbmcsXG4gIC8vIGZsYWcgdGhhdCB3ZSBhcmUgd29ya2luZyBvbiBOVCBib29rXG4gIGlzTmV3VGVzdGFtZW50OiBib29sZWFuLFxuICAvLyB1c2VyIG5hbWUgb2YgbG9nZ2VkIGluIHVzZXJcbiAgbG9nZ2VkSW5Vc2VyOiBzdHJpbmcsXG4gIC8vIG93bmVyIHRvIHVzZSB3aGVuIGZldGNoaW5nIG9yaWdpbmFsIGxhbmd1YWdlIHJlc291cmNlc1xuICBvcmlnaW5hbExhbmd1YWdlT3duZXI6IHN0cmluZyxcbiAgLy8gdXJsIGZvciB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgcmVwb1xuICBvcmlnaW5hbFJlcG9Vcmw6IHN0cmluZyxcbiAgLy8gb3JpZ2luYWwgc2NyaXB0dXJlIGJvb2tPYmplY3RzIGZvciBjdXJyZW50IGJvb2tcbiAgb3JpZ2luYWxTY3JpcHR1cmVCb29rT2JqZWN0czogQm9va09iamVjdHNUeXBlLFxuICAvKiogY3VycmVudCByZWZlcmVuY2UgKiovXG4gIHJlZmVyZW5jZTogU2NyaXB0dXJlUmVmZXJlbmNlO1xuICAvLyBkZXRhaWxzIGFib3V0IHRoZSBjdXJyZW50IHNjcmlwdHVyZSBsb2FkZWRcbiAgc2NyaXB0dXJlQ29uZmlnOiBTY3JpcHR1cmVDb25maWcsXG4gIC8vIHNldHRpbmdzIHRvIGJlIHVzZWQgZm9yIHNjcmlwdHVyZVxuICBzY3JpcHR1cmVTZXR0aW5nczogeyB9LFxuICAvLyBjYWxsYmFjayB0byBzYXZlIGN1cnJlbnQgdmVyc2UgZWRpdCBhbmQgYWxpZ25tZW50IGNoYW5nZXNcbiAgc2V0U2F2ZWRDaGFuZ2VzOiBGdW5jdGlvbixcbiAgLy8gc291cmNlIGxhbmd1YWdlIGNvZGUgc3VjaCBhcyBgaGJvYFxuICBzb3VyY2VMYW5ndWFnZTogc3RyaW5nLFxuICAvLyBjYWxsYmFjayB0byBjcmVhdGUgYSB1c2VyIGJyYW5jaCBmb3Igc2F2aW5nIGVkaXQgZGF0YVxuICBzdGFydEVkaXRCcmFuY2g6IFN0YXJ0RWRpdCxcbiAgLy8gY3VycmVudCB0YXJnZXQgbGFuZ3VhZ2VcbiAgdGFyZ2V0TGFuZ3VhZ2U6IExhbmd1YWdlVHlwZSxcbiAgLy8gdGl0bGUgdG8gc2hvdyBpbiBhbGlnbm1lbnRcbiAgdGl0bGU6IHN0cmluZyxcbiAgIC8vIGJyYW5jaCBuYW1lIGN1cnJlbnRseSBiZWluZyB1c2VkIChlLmcuIGBtYXN0ZXJgIG9yIHVzZXIgYnJhbmNoKVxuICB3b3JraW5nUmVzb3VyY2VCcmFuY2g6IHN0cmluZyxcbn1cblxuLyoqXG4gKiBkZXRlcm1pbmVzIGlmIGFsaWdubWVudCBpcyBjb21wbGV0ZSBiYXNlZCBvbiB0YXJnZXQgVVNGTSBhbmQgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2Ugb2JqZWN0c1xuICogQHBhcmFtIHtzdHJpbmd9IHRhcmdldFZlcnNlVVNGTVxuICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBvcmlnaW5hbFZlcnNlT2JqZWN0c1xuICovXG5mdW5jdGlvbiBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTTpzdHJpbmcsIG9yaWdpbmFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUpOmJvb2xlYW4ge1xuICBvcmlnaW5hbFZlcnNlT2JqZWN0cyA9IG9yaWdpbmFsVmVyc2VPYmplY3RzPy5sZW5ndGggPyBvcmlnaW5hbFZlcnNlT2JqZWN0cyA6IG51bGwgLy8gbWFrZSBzdXJlIG5vdCBwYXNzaW5nIGVtcHR5IEFycmF5XG4gIGNvbnN0IHsgYWxpZ25tZW50cywgd29yZEJhbmsgfSA9IEFsaWdubWVudEhlbHBlcnMuZXh0cmFjdEFsaWdubWVudHNGcm9tVGFyZ2V0VmVyc2UodGFyZ2V0VmVyc2VVU0ZNLCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgcmV0dXJuIEFsaWdubWVudEhlbHBlcnMuYXJlQWxnbm1lbnRzQ29tcGxldGUod29yZEJhbmssIGFsaWdubWVudHMpXG59XG5cbi8qKlxuICogZ2V0IHRoZSB1cGRhdGVkIFVTRk0gZm9yIHRhcmdldCB2ZXJzZSBmcm9tIHRoZSB1cGRhdGVkIHZlcnNlIG9iamVjdHMgYW5kIGxhdGVzdCB0ZXh0XG4gKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IHVwZGF0ZWRWZXJzZU9iamVjdHNcbiAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gaW5pdGlhbFZlcnNlT2JqZWN0c1xuICogQHBhcmFtIHtib29sZWFufSB2ZXJzZVRleHRDaGFuZ2VkXG4gKiBAcGFyYW0ge3N0cmluZ30gbmV3VmVyc2VUZXh0XG4gKi9cbmZ1bmN0aW9uIGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlLCBpbml0aWFsVmVyc2VPYmplY3RzOlZlcnNlT2JqZWN0c1R5cGUsIHZlcnNlVGV4dENoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDpzdHJpbmcpOnN0cmluZyB7XG4gIGxldCB0YXJnZXRWZXJzZVVTRk0gPSBudWxsXG4gIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBpbml0aWFsVmVyc2VPYmplY3RzXG5cbiAgaWYgKHZlcnNlVGV4dENoYW5nZWQgJiYgbmV3VmVyc2VUZXh0KSB7XG4gICAgY29uc3QgeyB0YXJnZXRWZXJzZVRleHQgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSB0YXJnZXRWZXJzZVRleHRcbiAgfSBlbHNlIHtcbiAgICB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gIH1cbiAgcmV0dXJuIHRhcmdldFZlcnNlVVNGTVxufVxuXG4vKipcbiAqIHJldHVybiB0cnVlIGlmIG9ubHkgc3BhY2VzIGluIGNvbnRlbnRcbiAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG4gKi9cbmZ1bmN0aW9uIGFsbFNwYWNlcyh0ZXh0OnN0cmluZyk6Ym9vbGVhbiB7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdGV4dC5sZW5ndGg7IGkrKykge1xuICAgIGlmICh0ZXh0W2ldICE9PSAnICcpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIG1ha2Ugc3VyZSB0aGVyZSBpcyBhIHNpZ25pZmljYW50IGNoYW5nZSB0byB0aGUgdGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dFxuICogQHBhcmFtIHtzdHJpbmd9IGluaXRpYWxWZXJzZVRleHRcbiAqL1xuZnVuY3Rpb24gaGFzVGV4dENoYW5nZWRTaWduaWZpY2FudGx5KG5ld1ZlcnNlVGV4dDpzdHJpbmcsIGluaXRpYWxWZXJzZVRleHQ6c3RyaW5nKTpib29sZWFuIHtcbiAgbGV0IGNoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcblxuICBpZiAoY2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHsgLy8gbWFrZSBzdXJlIGl0J3Mgc2lnbmlmaWNhbnRcbiAgICBjb25zdCBsZW5ndGhEaWZmZXJlbmNlID0gbmV3VmVyc2VUZXh0Lmxlbmd0aCAtIGluaXRpYWxWZXJzZVRleHQ/Lmxlbmd0aFxuICAgIGNvbnN0IGZpcnN0UGFydE9mSW5pdGlhbCA9IG5ld1ZlcnNlVGV4dC5zdWJzdHJpbmcoMCwgaW5pdGlhbFZlcnNlVGV4dC5sZW5ndGgpXG5cbiAgICBpZiAoKGxlbmd0aERpZmZlcmVuY2UgPiAwKSAmJiAoaW5pdGlhbFZlcnNlVGV4dCA9PT0gZmlyc3RQYXJ0T2ZJbml0aWFsKSkgeyAvLyBpZiBpbml0aWFsIHBhcnRzIG1hdGNoXG4gICAgICAvLyBhZGQgZXhlbXB0aW9uIGlmIHRoZSB1c2ZtIGVuZHMgd2l0aCBhIHF1b3RlIHRhZ1xuICAgICAgY29uc3QgbGFzdENoYXJzID0gbmV3VmVyc2VUZXh0LnN1YnN0cmluZyhuZXdWZXJzZVRleHQubGVuZ3RoIC0gbGVuZ3RoRGlmZmVyZW5jZSlcbiAgICAgIGNvbnN0IHBvcyA9IG5ld1ZlcnNlVGV4dC5sYXN0SW5kZXhPZignXFxcXCcpXG4gICAgICBjb25zdCBsYXN0VXNmbVRhZyA9IG5ld1ZlcnNlVGV4dFtwb3MgKyAxXVxuICAgICAgY29uc3QgZW5kc1dpdGhRdW90ZSA9IChwb3MgPiAwKSAmJiAobGFzdFVzZm1UYWcgPT09ICdxJylcblxuICAgICAgaWYgKGVuZHNXaXRoUXVvdGUgJiYgYWxsU3BhY2VzKGxhc3RDaGFycykpIHtcbiAgICAgICAgY2hhbmdlZCA9IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBjaGFuZ2VkXG59XG5cbi8vIG1hbmFnZSB2ZXJzZSBlZGl0IGFuZCBhbGlnbm1lbnQgc3RhdGVzXG5leHBvcnQgZnVuY3Rpb24gdXNlU2NyaXB0dXJlQWxpZ25tZW50RWRpdCh7XG4gIGN1cnJlbnRJbmRleCxcbiAgZW5hYmxlRWRpdCxcbiAgZW5hYmxlQWxpZ25tZW50LFxuICBodHRwQ29uZmlnLFxuICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICBpbml0aWFsVmVyc2VUZXh0LFxuICBpc05ld1Rlc3RhbWVudCxcbiAgb3JpZ2luYWxMYW5ndWFnZU93bmVyLFxuICBvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzLFxuICBvcmlnaW5hbFJlcG9VcmwsXG4gIHJlZmVyZW5jZSxcbiAgc2NyaXB0dXJlQ29uZmlnLFxuICBzY3JpcHR1cmVTZXR0aW5ncyxcbiAgc2V0U2F2ZWRDaGFuZ2VzLFxuICBzb3VyY2VMYW5ndWFnZSxcbiAgc3RhcnRFZGl0QnJhbmNoLFxuICB0YXJnZXRMYW5ndWFnZSxcbiAgdGl0bGUsXG4gIHdvcmtpbmdSZXNvdXJjZUJyYW5jaCxcbn0gOiBTY3JpcHR1cmVBTGlnbm1lbnRFZGl0UHJvcHMpIHtcbiAgdHlwZSBTdGF0ZVR5cGVzID0ge1xuICAgIGFsaWduZWQ6IGJvb2xlYW4sXG4gICAgYWxpZ25lckRhdGE6IEFsaWduZXJEYXRhVHlwZSxcbiAgICBlZGl0aW5nOiBib29sZWFuLFxuICAgIG5ld0FsaWdubWVudHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUsXG4gICAgbmV3VmVyc2VUZXh0OiBzdHJpbmcsXG4gICAgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSxcbiAgICB2ZXJzZVRleHRDaGFuZ2VkOiBib29sZWFuLFxuICB9XG5cbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV9dID0gUmVhY3QudXNlU3RhdGUoe1xuICAgIGFsaWduZWQ6IGZhbHNlLFxuICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgIG5ld0FsaWdubWVudHM6IG51bGwsXG4gICAgbmV3VmVyc2VUZXh0OiBudWxsLFxuICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IG51bGwsXG4gICAgdmVyc2VUZXh0Q2hhbmdlZDogZmFsc2UsXG4gIH0pXG5cbiAgY29uc3QgX3N0YXRlOiBTdGF0ZVR5cGVzID0gc3RhdGUgLy8gVHJpY2t5OiB3b3JrLWFyb3VuZCBmb3IgYnVnIHRoYXQgc3RhbmRhcmQgdHlwZXNjcmlwdCB0eXBlIGNhc3RpbmcgZG9lcyBub3Qgd29yayBpbiAudHN4IGZpbGVzXG4gIGNvbnN0IHtcbiAgICBhbGlnbmVkLFxuICAgIGFsaWduZXJEYXRhLFxuICAgIGVkaXRpbmcsXG4gICAgbmV3QWxpZ25tZW50cyxcbiAgICBuZXdWZXJzZVRleHQsXG4gICAgdXBkYXRlZFZlcnNlT2JqZWN0cyxcbiAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICB9ID0gX3N0YXRlXG4gIGNvbnN0IGNoYXB0ZXIgPSByZWZlcmVuY2U/LmNoYXB0ZXJcbiAgY29uc3QgdmVyc2UgPSByZWZlcmVuY2U/LnZlcnNlXG4gIGNvbnN0IHByb2plY3RJZCA9IHJlZmVyZW5jZT8ucHJvamVjdElkXG4gIGNvbnN0IGJhc2ljUmVmZXJlbmNlID0geyAvLyBvbmx5IGhhcyB0aGUgdGhyZWUgYmFzaWMgZmllbGRzXG4gICAgY2hhcHRlcixcbiAgICB2ZXJzZSxcbiAgICBwcm9qZWN0SWQsXG4gIH1cblxuICBmdW5jdGlvbiBzZXRTdGF0ZShuZXdTdGF0ZSkge1xuICAgIHNldFN0YXRlXyhwcmV2U3RhdGUgPT4gKHsgLi4ucHJldlN0YXRlLCAuLi5uZXdTdGF0ZSB9KSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGNsZWFyQ2hhbmdlcygpIHtcbiAgICBjb25zb2xlLmxvZyhgY2xlYXJDaGFuZ2VzKCkgLSAke0pTT04uc3RyaW5naWZ5KGJhc2ljUmVmZXJlbmNlKX1gKVxuICAgIGNvbnN0IGNsZWFyU3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgZWRpdGluZzogZmFsc2UsXG4gICAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgICAgbmV3VmVyc2VUZXh0OiBudWxsLFxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0czogbnVsbCxcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQ6IGZhbHNlLFxuICAgIH1cblxuICAgIGlmICghaXNFcXVhbChzdGF0ZSwgY2xlYXJTdGF0ZSkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBjbGVhckNoYW5nZXMoKSAtIHJlZmVyZW5jZSBjaGFuZ2VkLCByZXNldCBlZGl0L2FsaWdubWVudCBzdGF0ZSB2YXJpYWJsZXNgKVxuICAgICAgc2V0U3RhdGUoY2xlYXJTdGF0ZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzXyA9IHtcbiAgICAuLi5zY3JpcHR1cmVTZXR0aW5ncyxcbiAgICByZXNvdXJjZUlkOiBPUklHSU5BTF9TT1VSQ0UsXG4gIH1cblxuICAvLyBAdHMtaWdub3JlXG4gIGh0dHBDb25maWcgPSBodHRwQ29uZmlnIHx8IHt9XG4gIGNvbnN0IGJvb2tJZCA9IHByb2plY3RJZFxuICBjb25zdCBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzID0gZ2V0U2NyaXB0dXJlUmVzb3VyY2VTZXR0aW5ncyhcbiAgICBib29rSWQsIG9yaWdpbmFsU2NyaXB0dXJlU2V0dGluZ3NfLCBpc05ld1Rlc3RhbWVudCwgb3JpZ2luYWxSZXBvVXJsLFxuICApXG5cbiAgaWYgKCFlbmFibGVBbGlnbm1lbnQpIHsgLy8gaWYgbm90IGVuYWJsZWQsIHRoZW4gd2UgZG9uJ3QgZmV0Y2ggcmVzb3VyY2VcbiAgICBvcmlnaW5hbFNjcmlwdHVyZVNldHRpbmdzLnJlc291cmNlTGluayA9IG51bGxcbiAgfVxuXG4gIGNvbnN0IG9yaWdpbmFsVmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbygoKSA9PiB7IC8vIGdldCB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgdmVyc2VPYmplY3RzXG4gICAgY29uc3QgdmVyc2VPYmplY3RzID0gW11cblxuICAgIGlmIChvcmlnaW5hbFNjcmlwdHVyZUJvb2tPYmplY3RzKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCB2ZXJzZXMgPSBnZXRWZXJzZXNGb3JSZWYoYmFzaWNSZWZlcmVuY2UsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIG9yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHM/Lmxhbmd1YWdlSWQpXG5cbiAgICAgIGlmICh2ZXJzZXM/Lmxlbmd0aCkge1xuICAgICAgICBmb3IgKGNvbnN0IHZlcnNlUmVmZXJlbmNlIG9mIHZlcnNlcykge1xuICAgICAgICAgIGNvbnN0IG9yaWdWZXJzZU9iamVjdHMgPSB2ZXJzZVJlZmVyZW5jZT8udmVyc2VEYXRhPy52ZXJzZU9iamVjdHNcblxuICAgICAgICAgIGlmIChvcmlnVmVyc2VPYmplY3RzKSB7XG4gICAgICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh2ZXJzZU9iamVjdHMsIG9yaWdWZXJzZU9iamVjdHMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2ZXJzZU9iamVjdHNcbiAgfSwgW29yaWdpbmFsU2NyaXB0dXJlQm9va09iamVjdHMsIGNoYXB0ZXIsIHZlcnNlLCBwcm9qZWN0SWRdKVxuXG4gIC8qKlxuICAgKiBnZXQgY3VycmVudCB2ZXJzZU9iamVjdHNcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSBfdXBkYXRlZFZlcnNlT2JqZWN0cyAtIG9wdGlvbmFsIG92ZXJyaWRlcyB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBnZXRDdXJyZW50VmVyc2VPYmplY3RzKF91cGRhdGVkVmVyc2VPYmplY3RzOiBWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cykge1xuICAgIGNvbnN0IGN1cnJlbnRWZXJzZU9iamVjdHNfID0gX3VwZGF0ZWRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIHJldHVybiBjdXJyZW50VmVyc2VPYmplY3RzX1xuICB9XG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHsgLy8gdXBkYXRlIGFsaWdubWVudCBzdGF0dXMgd2hlbiBhbGlnbmVyIGlzIGhpZGRlblxuICAgIGNvbnN0IG5vdEVtcHR5ID0gISFpbml0aWFsVmVyc2VPYmplY3RzXG4gICAgbGV0IGFsaWduZWRfID0gZmFsc2VcblxuICAgIGlmICghYWxpZ25lckRhdGEpIHsgLy8gc2tpcCBpZiBhbGlnbmVyIGlzIGJlaW5nIHNob3duXG4gICAgICBpZiAobm90RW1wdHkpIHsgLy8gc2tpcCBpZiBlbXB0eVxuICAgICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IGdldEN1cnJlbnRWZXJzZU9iamVjdHMoKVxuXG4gICAgICAgIGlmICghZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICAgICAgYWxpZ25lZF8gPSB0cnVlXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmVyc2VUZXh0ICYmIChuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHQpKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0cyA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgICAgICBhbGlnbmVkXyA9IGlzVXNmbUFsaWduZWQocmVzdWx0cz8udGFyZ2V0VmVyc2VUZXh0LCBvcmlnaW5hbFZlcnNlT2JqZWN0cylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0YXJnZXRWZXJzZVVTRk0gPSBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgICAgICAgYWxpZ25lZF8gPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKGFsaWduZWQgIT09IGFsaWduZWRfKSB7XG4gICAgICAgIHNldFN0YXRlKHsgYWxpZ25lZDogYWxpZ25lZF8gfSlcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtpbml0aWFsVmVyc2VPYmplY3RzLCBhbGlnbmVyRGF0YSwgbmV3VmVyc2VUZXh0LCBpbml0aWFsVmVyc2VUZXh0LCBlbmFibGVBbGlnbm1lbnQsIG9yaWdpbmFsVmVyc2VPYmplY3RzXSlcblxuICAvKipcbiAgICogZ2V0IGNoYW5nZXMgZm9yIHNhdmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gbmV3U3RhdGUgLSBvcHRpb25hbGx5IHBhc3MgaW4gbmV3IHN0YXRlICh0byBvdmVycmlkZSBzdGF0ZSlcbiAgICovXG4gIGZ1bmN0aW9uIGdldENoYW5nZXMobmV3U3RhdGUgPSB7fSkge1xuICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gc3RhcnRlZCAke2N1cnJlbnRJbmRleH0gLSBwYXNzZWQgc3RhdGVgLCBuZXdTdGF0ZSlcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICBzdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3Qge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbmV3QWxpZ25tZW50cyxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG5ld1ZlcnNlVGV4dCxcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHMsXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB2ZXJzZVRleHRDaGFuZ2VkLFxuICAgIH0gPSBfbmV3U3RhdGVcbiAgICBsZXQgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVkVmVyc2VPYmplY3RzXG5cbiAgICBpZiAobmV3QWxpZ25tZW50cykgeyAvLyBpZiB1bnNhdmVkIGFsaWdubWVudCBjaGFuZ2VzLCBhcHBseSB0aGVtXG4gICAgICBjb25zb2xlLmxvZyhgZ2V0Q2hhbmdlcyAtIGFwcGx5aW5nIHVuc2F2ZWQgYWxpZ25tZW50c31gKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gPSB1cGRhdGVWZXJzZVdpdGhOZXdBbGlnbm1lbnRzKClcbiAgICB9XG5cbiAgICBpZiAodmVyc2VUZXh0Q2hhbmdlZCAmJiBuZXdWZXJzZVRleHQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgbmV3IHRleHQ6YCwgbmV3VmVyc2VUZXh0KVxuICAgICAgY29uc3QgY3VycmVudFZlcnNlT2JqZWN0c18gPSBnZXRDdXJyZW50VmVyc2VPYmplY3RzKHVwZGF0ZWRWZXJzZU9iamVjdHNfKVxuICAgICAgdXBkYXRlZFZlcnNlT2JqZWN0c18gJiYgY29uc29sZS5sb2coYGdldENoYW5nZXMgLSBhcHBseWluZyB1cGRhdGVkIGFsaWdubWVudHNgKVxuICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoY3VycmVudFZlcnNlT2JqZWN0c18sIG5ld1ZlcnNlVGV4dClcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfID0gdGFyZ2V0VmVyc2VPYmplY3RzXG4gICAgfSBlbHNlIHsgLy8gb25seSBhbGlnbm1lbnQgY2hhbmdlcyB0byB1cGxvYWRcbiAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHNfICYmIGNvbnNvbGUubG9nKGBnZXRDaGFuZ2VzIC0gYXBwbHlpbmcgdXBkYXRlZCBhbGlnbm1lbnRzYCwgeyBuZXdWZXJzZVRleHQsIHVwZGF0ZWRWZXJzZU9iamVjdHNfIH0pXG4gICAgICB1cGRhdGVkVmVyc2VPYmplY3RzXyA9IHVwZGF0ZWRWZXJzZU9iamVjdHNfIHx8IGluaXRpYWxWZXJzZU9iamVjdHNcbiAgICB9XG5cbiAgICBpZiAodXBkYXRlZFZlcnNlT2JqZWN0c18pIHtcbiAgICAgIGNvbnN0IHJlZiA9IHNjcmlwdHVyZUNvbmZpZz8udmVyc2VzRm9yUmVmPy5bY3VycmVudEluZGV4XVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgICByZWYsXG4gICAgICAgIHVwZGF0ZWRWZXJzZU9iamVjdHM6IHVwZGF0ZWRWZXJzZU9iamVjdHNfLFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7fVxuICB9XG5cbiAgLyoqXG4gICAqIGNvbXBhcmUgaW5pdGlhbCBhbGlnbm1lbnRzIHdpdGggZmluYWwgdG8gc2VlIGlmIGNoYW5nZWRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHByZWZpeFxuICAgKiBAcGFyYW0ge1ZlcnNlT2JqZWN0c1R5cGV9IF91cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqIEBwYXJhbSB7VmVyc2VPYmplY3RzVHlwZX0gX2luaXRpYWxWZXJzZU9iamVjdHNcbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgY2hhbmdlZFxuICAgKi9cbiAgZnVuY3Rpb24gaXNNaWdyYXRlZChwcmVmaXg6c3RyaW5nLCBfdXBkYXRlZFZlcnNlT2JqZWN0czpWZXJzZU9iamVjdHNUeXBlID0gdXBkYXRlZFZlcnNlT2JqZWN0cywgX2luaXRpYWxWZXJzZU9iamVjdHM6VmVyc2VPYmplY3RzVHlwZSA9IGluaXRpYWxWZXJzZU9iamVjdHMpOmJvb2xlYW4ge1xuICAgIGNvbnN0IHVwZGF0ZWRBbGlnbm1lbnRzID0gZ2V0QWxpZ25tZW50cyhfdXBkYXRlZFZlcnNlT2JqZWN0cylcbiAgICBjb25zdCBpbml0aWFsQWxpZ25tZW50cyA9IGdldEFsaWdubWVudHMoX2luaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgbGV0IHNhbWUgPSB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGggPT09IGluaXRpYWxBbGlnbm1lbnRzLmxlbmd0aCAvLyBmaXJzdCBtYWtlIHN1cmUgbGVuZ3RocyBhcmUgdGhlIHNhbWVcbiAgICBsZXQgZmlyc3REaWZmXG5cbiAgICBpZiAoc2FtZSkgeyAvLyBldmVuIGlmIGxlbmd0aHMgYXJlIHRoZSBzYW1lIGRvdWJsZSBjaGVjayBlYWNoIGFsaWdubWVudFxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB1cGRhdGVkQWxpZ25tZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCB1cGRhdGVkQWxpZ25tZW50ID0gdXBkYXRlZEFsaWdubWVudHNbaV1cbiAgICAgICAgY29uc3QgaW5pdGlhbEFsaWdubWVudCA9IGluaXRpYWxBbGlnbm1lbnRzW2ldXG5cbiAgICAgICAgaWYgKCFpc0VxdWFsKHVwZGF0ZWRBbGlnbm1lbnQsIGluaXRpYWxBbGlnbm1lbnQpKSB7XG4gICAgICAgICAgZmlyc3REaWZmID0gaVxuICAgICAgICAgIHNhbWUgPSBmYWxzZVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJlbnQgPSAhc2FtZVxuXG4gICAgaWYgKGRpZmZlcmVudCkge1xuICAgICAgY29uc29sZS5sb2coYCR7cHJlZml4fSAtIHRhcmdldCB2ZXJzZSBhbGlnbm1lbnRzIG1pZ3JhdGVkIHRvIG1hdGNoIG9yaWdpbmFsIGxhbmd1YWdlLCBmaXJzdCBkaWZmZXJlbmNlIGlzIGF0ICR7Zmlyc3REaWZmfWAsIHVwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGRpZmZlcmVudFxuICB9XG5cbiAgLyoqXG4gICAqIGRvIGFsaWdubWVudHMgbWlncmF0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwcmVmaXhcbiAgICogQHBhcmFtIHtWZXJzZU9iamVjdHNUeXBlfSB1cGRhdGVkVmVyc2VPYmplY3RzXG4gICAqL1xuICBmdW5jdGlvbiBtaWdyYXRlQWxpZ25tZW50cyhwcmVmaXg6IHN0cmluZywgdXBkYXRlZFZlcnNlT2JqZWN0czogVmVyc2VPYmplY3RzVHlwZSA9IG51bGwpOiBWZXJzZU9iamVjdHNUeXBlIHtcbiAgICB1cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0cyB8fCBnZXRDdXJyZW50VmVyc2VPYmplY3RzKClcbiAgICBjb25zdCBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVPcmlnaW5hbExhbmd1YWdlSGVscGVycy5taWdyYXRlVGFyZ2V0QWxpZ25tZW50c1RvT3JpZ2luYWwodXBkYXRlZFZlcnNlT2JqZWN0cywgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgaXNNaWdyYXRlZChwcmVmaXgsIF91cGRhdGVkVmVyc2VPYmplY3RzLCB1cGRhdGVkVmVyc2VPYmplY3RzKVxuICAgIHJldHVybiBfdXBkYXRlZFZlcnNlT2JqZWN0c1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBhbGlnbm1lbnQgYnV0dG9uIC0gd2lsbCBzaG93IGlmIG5vdCBhbHJlYWR5IHNob3duXG4gICAqL1xuICBhc3luYyBmdW5jdGlvbiBoYW5kbGVBbGlnbm1lbnRDbGljaygpIHtcbiAgICBpZiAoZW5hYmxlQWxpZ25tZW50KSB7XG4gICAgICBsZXQgX2FsaWduZXJEYXRhOiBBbGlnbmVyRGF0YVR5cGUgPSBudWxsXG4gICAgICBhd2FpdCBzdGFydEVkaXRCcmFuY2goKVxuXG4gICAgICBpZiAoIWFsaWduZXJEYXRhKSB7IC8vIGlmIHdvcmQgYWxpZ25lciBub3Qgc2hvd25cbiAgICAgICAgY29uc29sZS5sb2coYGhhbmRsZUFsaWdubWVudENsaWNrIC0gdG9nZ2xlIE9OIGFsaWdubWVudGApXG4gICAgICAgIGxldCBvcmlnaW5hbFZlcnNlVXNmbSA9IG51bGxcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gdXBkYXRlZFZlcnNlT2JqZWN0c1xuXG4gICAgICAgIGlmIChvcmlnaW5hbFZlcnNlT2JqZWN0cykge1xuICAgICAgICAgIG9yaWdpbmFsVmVyc2VVc2ZtID0gVXNmbUZpbGVDb252ZXJzaW9uSGVscGVycy5jb252ZXJ0VmVyc2VEYXRhVG9VU0ZNKG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgICAgICAgIF91cGRhdGVkVmVyc2VPYmplY3RzID0gbWlncmF0ZUFsaWdubWVudHMoJ2hhbmRsZUFsaWdubWVudENsaWNrKCknKVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbShfdXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB0YXJnZXRXb3Jkczogd29yZEJhbmssXG4gICAgICAgICAgdmVyc2VBbGlnbm1lbnRzOiBhbGlnbm1lbnRzLFxuICAgICAgICB9ID0gQWxpZ25tZW50SGVscGVycy5wYXJzZVVzZm1Ub1dvcmRBbGlnbmVyRGF0YSh0YXJnZXRWZXJzZVVTRk0sIG9yaWdpbmFsVmVyc2VVc2ZtKVxuICAgICAgICBfYWxpZ25lckRhdGEgPSB7IHdvcmRCYW5rLCBhbGlnbm1lbnRzIH1cblxuICAgICAgICBpZiAoIWFsaWdubWVudHM/Lmxlbmd0aCkge1xuICAgICAgICAgIF9hbGlnbmVyRGF0YS5lcnJvck1lc3NhZ2UgPSAnVGhlcmUgYXJlIG5vIHdvcmRzIHRvIGFsaWduIGluIHRoZSBPcmlnaW5hbCBsYW5ndWFnZSdcbiAgICAgICAgfSBlbHNlIGlmICghd29yZEJhbms/Lmxlbmd0aCkge1xuICAgICAgICAgIF9hbGlnbmVyRGF0YS5lcnJvck1lc3NhZ2UgPSAnVGhlcmUgYXJlIG5vIHdvcmRzIHRvIGFsaWduIGluIHRoZSBMaXRlcmFsL1NpbXBsaWZpZWQgU2NyaXB0dXJlIFRleHQnXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7IC8vIHdvcmQgYWxpZ25lciBjdXJyZW50bHkgc2hvd25cbiAgICAgICAgY29uc29sZS5sb2coYGhhbmRsZUFsaWdubWVudENsaWNrIC0gYWxpZ25tZW50IGFscmVhZHkgc2hvd25gKVxuICAgICAgICBfYWxpZ25lckRhdGEgPSBhbGlnbmVyRGF0YVxuICAgICAgfVxuICAgICAgc2V0U3RhdGUoeyBhbGlnbmVyRGF0YTogX2FsaWduZXJEYXRhIH0pXG4gICAgICBjb25zb2xlLmxvZyhfYWxpZ25lckRhdGEpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGdldCB1cGRhdGVkIHZlcnNlIG9iamVjdHMgYWZ0ZXIgYWxpZ25tZW50cyBjaGFuZ2VkXG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gX25ld0FsaWdubWVudHMgLSByZXN1bHRzIG9mIGFsaWduZXJcbiAgICovXG4gIGZ1bmN0aW9uIHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoX25ld0FsaWdubWVudHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUgPSBuZXdBbGlnbm1lbnRzKTpWZXJzZU9iamVjdHNUeXBlIHtcbiAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IGdldEN1cnJlbnRWZXJzZU9iamVjdHMoKVxuICAgIGNvbnN0IHRhcmdldFZlcnNlVGV4dCA9IG5ld1ZlcnNlVGV4dCB8fCBVc2ZtRmlsZUNvbnZlcnNpb25IZWxwZXJzLmNvbnZlcnRWZXJzZURhdGFUb1VTRk0oY3VycmVudFZlcnNlT2JqZWN0c18pXG4gICAgY29uc3QgdmVyc2VVc2ZtID0gQWxpZ25tZW50SGVscGVycy5hZGRBbGlnbm1lbnRzVG9WZXJzZVVTRk0oX25ld0FsaWdubWVudHMudGFyZ2V0V29yZHMsIF9uZXdBbGlnbm1lbnRzLnZlcnNlQWxpZ25tZW50cywgdGFyZ2V0VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWRWZXJzZU9iamVjdHMgPSB1c2ZtSGVscGVycy51c2ZtVmVyc2VUb0pzb24odmVyc2VVc2ZtKVxuICAgIHJldHVybiBhbGlnbmVkVmVyc2VPYmplY3RzXG4gIH1cblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gdXNlciBjbGlja2VkIG9uIGJ1dHRvbiB0byBzYXZlIGN1cnJlbnQgYWxpZ25tZW50cyBpbiB3b3JkIGFsaWduZXIuICBHZW5lcmF0ZXMgbmV3IHZlcnNlIGNvbnRlbnQgYW5kIHNhdmVzIGluIHN0YXRlLiBDbG9zZXMgYWxpZ25lciBkaXNwbGF5XG4gICAqIEBwYXJhbSB7QWxpZ25lclJlc3VsdHNEYXRhVHlwZX0gX25ld0FsaWdubWVudHMgLSByZXN1bHRzIG9mIGFsaWduZXJcbiAgICovXG4gIGZ1bmN0aW9uIHNhdmVBbGlnbm1lbnQoX25ld0FsaWdubWVudHM6IEFsaWduZXJSZXN1bHRzRGF0YVR5cGUgPSBuZXdBbGlnbm1lbnRzKSB7XG4gICAgY29uc29sZS5sb2coYHNhdmVBbGlnbm1lbnQoKSAtIG5ld0FsaWdubWVudHNgLCBfbmV3QWxpZ25tZW50cylcblxuICAgIGlmIChfbmV3QWxpZ25tZW50cykge1xuICAgICAgY29uc3QgYWxpZ25lZFZlcnNlT2JqZWN0cyA9IHVwZGF0ZVZlcnNlV2l0aE5ld0FsaWdubWVudHMoX25ld0FsaWdubWVudHMpXG4gICAgICBjb25zb2xlLmxvZyhgc2F2ZUFsaWdubWVudCgpIC0gYWxpZ25lZFZlcnNlT2JqZWN0c2AsIGFsaWduZWRWZXJzZU9iamVjdHMpXG4gICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgYWxpZ25lckRhdGE6IG51bGwsXG4gICAgICAgIGVkaXRpbmc6IGZhbHNlLFxuICAgICAgICBuZXdBbGlnbm1lbnRzOiBudWxsLFxuICAgICAgICB1cGRhdGVkVmVyc2VPYmplY3RzOiBhbGlnbmVkVmVyc2VPYmplY3RzLFxuICAgICAgfVxuICAgICAgc2V0U3RhdGUobmV3U3RhdGUpXG4gICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh0cnVlLCBuZXdTdGF0ZSApXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGBzYXZlQWxpZ25tZW50KCkgLSBubyBhbGlnbm1lbnQgY2hhbmdlc2ApXG4gICAgICBzZXRTdGF0ZSh7XG4gICAgICAgIGFsaWduZXJEYXRhOiBudWxsLFxuICAgICAgICBlZGl0aW5nOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciB3aGVuIHVzZXIgY2xpY2tlZCBvbiBidXR0b24gdG8gY2FuY2VsIHdvcmsgaW4gd29yZCBhbGlnbmVyLiAgQ2FsY3VsYXRlcyBhbmQgZGlzcGxheXMgY3VycmVudCBhbGlnbm1lbnQgdmFsaWQgc3RhdGUuIENsb3NlcyBhbGlnbmVyIGRpc3BsYXlcbiAgICovXG4gIGZ1bmN0aW9uIGNhbmNlbEFsaWdubWVudCgpIHtcbiAgICBjb25zb2xlLmxvZyhgY2FuY2VsQWxpZ25tZW50KClgKVxuICAgIGNvbnN0IHRhcmdldFZlcnNlVVNGTSA9IGdldEN1cnJlbnRWZXJzZVVzZm0odXBkYXRlZFZlcnNlT2JqZWN0cywgaW5pdGlhbFZlcnNlT2JqZWN0cywgdmVyc2VUZXh0Q2hhbmdlZCwgbmV3VmVyc2VUZXh0KVxuICAgIGNvbnN0IGFsaWduZWQgPSBpc1VzZm1BbGlnbmVkKHRhcmdldFZlcnNlVVNGTSwgb3JpZ2luYWxWZXJzZU9iamVjdHMpXG4gICAgc2V0U3RhdGUoeyBhbGlnbmVyRGF0YTogbnVsbCwgYWxpZ25lZCB9KVxuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxiYWNrIGZvciBidXR0b24gdG8gc2V0IGVkaXRpbmcgc3RhdGVcbiAgICogQHBhcmFtIHtib29sZWFufSBlZGl0aW5nXyAtIGlmIHRydWUsIGVkaXRvciBpcyBzaG93biwgb3RoZXJ3aXNlIGVkaXRvciBpcyBoaWRkZW5cbiAgICogQHBhcmFtIHtzdHJpbmd9IF9uZXdWZXJzZVRleHQgLSBvcHRpb25hbCB2ZXJzZSB0ZXh0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVxdWlyZS1hd2FpdFxuICBhc3luYyBmdW5jdGlvbiBzZXRFZGl0aW5nKGVkaXRpbmdfOiBib29sZWFuLCBfbmV3VmVyc2VUZXh0OiBzdHJpbmcgPSBuZXdWZXJzZVRleHQpIHtcbiAgICBpZiAoZW5hYmxlRWRpdCkge1xuICAgICAgaWYgKGVkaXRpbmdfICE9PSBlZGl0aW5nKSB7XG4gICAgICAgIF9uZXdWZXJzZVRleHQgPSBfbmV3VmVyc2VUZXh0IHx8IGluaXRpYWxWZXJzZVRleHRcbiAgICAgICAgbGV0IF91cGRhdGVkVmVyc2VPYmplY3RzID0gbnVsbFxuICAgICAgICBjb25zdCB2ZXJzZVRleHRDaGFuZ2VkID0gX25ld1ZlcnNlVGV4dCAhPT0gaW5pdGlhbFZlcnNlVGV4dFxuICAgICAgICBjb25zdCBuZXdTdGF0ZSA9IHtcbiAgICAgICAgICBlZGl0aW5nOiBlZGl0aW5nXyxcbiAgICAgICAgICBuZXdWZXJzZVRleHQ6IF9uZXdWZXJzZVRleHQsXG4gICAgICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZWRpdGluZ18gJiYgdmVyc2VUZXh0Q2hhbmdlZCkgeyAvLyBpZiBkb25lIGVkaXRpbmcgYW5kIHZlcnNlIGhhcyBjaGFuZ2VkLCB1cGRhdGUgdGhlIHZlcnNlIG9iamVjdHNcbiAgICAgICAgICAvLyBkbyBtaWdyYXRpb24gb2YgYWxpZ25tZW50cyB0byBtYXRjaCBsYXRlc3Qgb3JpZ2luYWwgbGFuZ3VhZ2VcbiAgICAgICAgICBfdXBkYXRlZFZlcnNlT2JqZWN0cyA9IG1pZ3JhdGVBbGlnbm1lbnRzKCdzZXRFZGl0aW5nKCknLCB1cGRhdGVkVmVyc2VPYmplY3RzIHx8IGN1cnJlbnRWZXJzZU9iamVjdHMpXG4gICAgICAgICAgLy8gYXBwbHkgYWxpZ25tZW50cyBmcm9tIHVwZGF0ZWQgdmVyc2VPYmplY3RzIHRvIGVkaXRlZCB2ZXJzZSB0ZXh0XG4gICAgICAgICAgY29uc3QgeyB0YXJnZXRWZXJzZU9iamVjdHMgfSA9IEFsaWdubWVudEhlbHBlcnMudXBkYXRlQWxpZ25tZW50c1RvVGFyZ2V0VmVyc2UoX3VwZGF0ZWRWZXJzZU9iamVjdHMsIF9uZXdWZXJzZVRleHQpXG4gICAgICAgICAgX3VwZGF0ZWRWZXJzZU9iamVjdHMgPSB0YXJnZXRWZXJzZU9iamVjdHMgLy8gdXBkYXRlIHZlcnNlT2JqZWN0cyB0byBtYXRjaCBjdXJyZW50IHRleHRcbiAgICAgICAgICBuZXdTdGF0ZVsndXBkYXRlZFZlcnNlT2JqZWN0cyddID0gX3VwZGF0ZWRWZXJzZU9iamVjdHNcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFN0YXRlKG5ld1N0YXRlKVxuICAgICAgICBjb25zdCBfYWxpZ25tZW50c0NoYW5nZWQgPSAoX3VwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgX3VwZGF0ZWRWZXJzZU9iamVjdHMpKVxuICAgICAgICBjYWxsU2V0U2F2ZWRTdGF0ZSh2ZXJzZVRleHRDaGFuZ2VkIHx8IF9hbGlnbm1lbnRzQ2hhbmdlZCwgbmV3U3RhdGUgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayBmcm9tIHRoZSBlZGl0IG9uQ2hhbmdlIGV2ZW50IHRvIHVwZGF0ZSBlZGl0IHN0YXRlIHZhcmlhYmxlc1xuICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNoYW5nZWQgLSB0cnVlIGlmIHRoZSBuZXdWZXJzZVRleHQgaXMgZGlmZmVyZW50IHRoYW4gdGhlIGluaXRpYWxWZXJzZVRleHRcbiAgICogQHBhcmFtIHtzdHJpbmd9IG5ld1ZlcnNlVGV4dCAtIGN1cnJlbnQgY2hhbmdlZCB2ZXJzZSB0ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfaW5pdGlhbFZlcnNlVGV4dCAtIGluaXRpYWwgdmVyc2UgdGV4dFxuICAgKi9cbiAgZnVuY3Rpb24gc2V0VmVyc2VDaGFuZ2VkKGNoYW5nZWQ6IGJvb2xlYW4sIG5ld1ZlcnNlVGV4dDogc3RyaW5nLCBfaW5pdGlhbFZlcnNlVGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgX3RhcmdldFZlcnNlT2JqZWN0cyA9IGN1cnJlbnRWZXJzZU9iamVjdHMgfHwgaW5pdGlhbFZlcnNlT2JqZWN0c1xuICAgIGNvbnN0IHsgdGFyZ2V0VmVyc2VUZXh0IH0gPSBBbGlnbm1lbnRIZWxwZXJzLnVwZGF0ZUFsaWdubWVudHNUb1RhcmdldFZlcnNlKF90YXJnZXRWZXJzZU9iamVjdHMsIG5ld1ZlcnNlVGV4dClcbiAgICBjb25zdCBhbGlnbmVkID0gaXNVc2ZtQWxpZ25lZCh0YXJnZXRWZXJzZVRleHQsIG9yaWdpbmFsVmVyc2VPYmplY3RzKVxuICAgIGNvbnN0IHZlcnNlVGV4dENoYW5nZWQgPSBuZXdWZXJzZVRleHQgIT09IGluaXRpYWxWZXJzZVRleHRcblxuICAgIHNldFN0YXRlKHtcbiAgICAgIHZlcnNlVGV4dENoYW5nZWQsXG4gICAgICBuZXdWZXJzZVRleHQsXG4gICAgICBhbGlnbmVkLFxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzID0gUmVhY3QudXNlTWVtbyggKCkgPT4geyAvLyBpZiB2ZXJzZSBoYXMgYmVlbiBlZGl0ZWQgb3IgYWxpZ25tZW50IGNoYW5nZWQsIHRoZW4gZ2VuZXJhdGUgbmV3IHZlcnNlT2JqZWN0cyB0byBkaXNwbGF5IGluIFNjcmlwdHVyZVBhbmVcbiAgICBpZiAoaW5pdGlhbFZlcnNlT2JqZWN0cykge1xuICAgICAgY29uc3QgdGFyZ2V0VmVyc2VVU0ZNID0gZ2V0Q3VycmVudFZlcnNlVXNmbSh1cGRhdGVkVmVyc2VPYmplY3RzLCBpbml0aWFsVmVyc2VPYmplY3RzLCB2ZXJzZVRleHRDaGFuZ2VkLCBuZXdWZXJzZVRleHQpXG4gICAgICBjb25zdCBjdXJyZW50VmVyc2VPYmplY3RzXyA9IHVzZm1IZWxwZXJzLnVzZm1WZXJzZVRvSnNvbih0YXJnZXRWZXJzZVVTRk0pXG4gICAgICByZXR1cm4gY3VycmVudFZlcnNlT2JqZWN0c19cbiAgICB9XG4gICAgcmV0dXJuIGluaXRpYWxWZXJzZU9iamVjdHNcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWQsIG5ld1ZlcnNlVGV4dF0pXG5cbiAgY29uc3QgdW5zYXZlZENoYW5nZXM6Ym9vbGVhbiA9IFJlYWN0LnVzZU1lbW8oICgpID0+IHsgLy8gaWYgdmVyc2UgaGFzIGJlZW4gZWRpdGVkIG9yIGFsaWdubWVudCBjaGFuZ2VkLCB0aGVuIGluZGljYXRlIHdlIGhhdmUgdW5zYXZlZCBjaGFuZ2VzXG4gICAgY29uc3QgY2hhbmdlZCA9IHZlcnNlVGV4dENoYW5nZWQgfHwgKHVwZGF0ZWRWZXJzZU9iamVjdHMgJiYgIWlzRXF1YWwoaW5pdGlhbFZlcnNlT2JqZWN0cywgdXBkYXRlZFZlcnNlT2JqZWN0cykpXG4gICAgcmV0dXJuIGNoYW5nZWRcbiAgfSwgW3VwZGF0ZWRWZXJzZU9iamVjdHMsIGluaXRpYWxWZXJzZU9iamVjdHMsIHZlcnNlVGV4dENoYW5nZWRdKVxuXG4gIC8qKlxuICAgKiBjYWxsYmFjayB0byBzY3JpcHR1cmUgY2FyZCB0byB1cGRhdGVkIHdpdGggbGF0ZXN0IHN0YXRlIGZvciBzYXZpbmdcbiAgICogQHBhcmFtIHtib29sZWFufSB1bnNhdmVkQ2hhbmdlc19cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1N0YXRlXG4gICAqL1xuICBmdW5jdGlvbiBjYWxsU2V0U2F2ZWRTdGF0ZSh1bnNhdmVkQ2hhbmdlc186IGJvb2xlYW4sIG5ld1N0YXRlOiB7fSA9IHsgfSApIHtcbiAgICBjb25zdCBfbmV3U3RhdGUgPSB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLm5ld1N0YXRlLFxuICAgIH1cblxuICAgIC8vIGNvbnNvbGUubG9nKGBjYWxsU2V0U2F2ZWRTdGF0ZSAtIG5ldyBzdGF0ZWAsIF9uZXdTdGF0ZSlcbiAgICBzZXRTYXZlZENoYW5nZXMgJiYgc2V0U2F2ZWRDaGFuZ2VzKGN1cnJlbnRJbmRleCwgIXVuc2F2ZWRDaGFuZ2VzXywge1xuICAgICAgZ2V0Q2hhbmdlcyxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIHN0YXRlOiBfbmV3U3RhdGUsXG4gICAgfSlcbiAgfVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7IC8vIHNldCBzYXZlZCBjaGFuZ2VzIHdoZW5ldmVyIHVzZXIgZWRpdHMgdmVyc2UgdGV4dCBvciBhbGlnbm1lbnRzIG9yIGlmIGFsaWdubWVudHMgYXJlIG9wZW5cbiAgICBjb25zdCB1bnNhdmVkQ2hhbmdlc18gPSB1bnNhdmVkQ2hhbmdlcyB8fCAhIWFsaWduZXJEYXRhXG4gICAgY2FsbFNldFNhdmVkU3RhdGUodW5zYXZlZENoYW5nZXNfKVxuICB9LCBbdW5zYXZlZENoYW5nZXMsIGFsaWduZXJEYXRhXSlcblxuICAvKipcbiAgICogY2FsbGJhY2sgZm9yIHdoZW4gYWxpZ25tZW50cyBhcmUgYmVpbmcgY2hhbmdlZFxuICAgKiBAcGFyYW0ge0FsaWduZXJSZXN1bHRzRGF0YVR5cGV9IHJlc3VsdHNcbiAgICogQHJldHVybiB7Ym9vbGVhbn0gdHJ1ZSBpZiBhbGlnbm1lbnQgaXMgY29tcGxldGVcbiAgICovXG4gIGZ1bmN0aW9uIG9uQWxpZ25tZW50c0NoYW5nZShyZXN1bHRzOiBBbGlnbmVyUmVzdWx0c0RhdGFUeXBlKTpib29sZWFuIHtcbiAgICBjb25zb2xlLmxvZyhgb25BbGlnbm1lbnRzQ2hhbmdlKCkgLSBhbGlnbm1lbnQgY2hhbmdlZCwgcmVzdWx0c2AsIHJlc3VsdHMpIC8vIG1lcmdlIGFsaWdubWVudHMgaW50byB0YXJnZXQgdmVyc2UgYW5kIGNvbnZlcnQgdG8gVVNGTVxuICAgIGNvbnN0IHsgdGFyZ2V0V29yZHMsIHZlcnNlQWxpZ25tZW50cyB9ID0gcmVzdWx0c1xuICAgIGNvbnN0IGFsaWdubWVudENvbXBsZXRlID0gQWxpZ25tZW50SGVscGVycy5hcmVBbGdubWVudHNDb21wbGV0ZSh0YXJnZXRXb3JkcywgdmVyc2VBbGlnbm1lbnRzKVxuICAgIGNvbnNvbGUubG9nKGBBbGlnbm1lbnRzIGFyZSAke2FsaWdubWVudENvbXBsZXRlID8gJ0NPTVBMRVRFIScgOiAnaW5jb21wbGV0ZSd9YClcbiAgICBzZXRTdGF0ZSh7IG5ld0FsaWdubWVudHM6IHJlc3VsdHMsIGFsaWduZWQ6IGFsaWdubWVudENvbXBsZXRlIH0pXG4gICAgcmV0dXJuIGFsaWdubWVudENvbXBsZXRlXG4gIH1cblxuICByZXR1cm4ge1xuICAgIGFjdGlvbnM6IHtcbiAgICAgIGNhbmNlbEFsaWdubWVudCxcbiAgICAgIGNsZWFyQ2hhbmdlcyxcbiAgICAgIGdldENoYW5nZXMsXG4gICAgICBoYW5kbGVBbGlnbm1lbnRDbGljayxcbiAgICAgIG9uQWxpZ25tZW50c0NoYW5nZSxcbiAgICAgIHNhdmVBbGlnbm1lbnQsXG4gICAgICBzZXRFZGl0aW5nLFxuICAgICAgc2V0VmVyc2VDaGFuZ2VkLFxuICAgIH0sXG4gICAgc3RhdGU6IHtcbiAgICAgIGFsaWduZWQsXG4gICAgICBhbGlnbmVyRGF0YSxcbiAgICAgIGN1cnJlbnRWZXJzZU9iamVjdHMsXG4gICAgICBlZGl0aW5nLFxuICAgICAgZW5hYmxlRWRpdCxcbiAgICAgIGVuYWJsZUFsaWdubWVudCxcbiAgICAgIGluaXRpYWxWZXJzZVRleHQsXG4gICAgICBpbml0aWFsVmVyc2VPYmplY3RzLFxuICAgICAgbmV3VmVyc2VUZXh0LFxuICAgICAgcmVmZXJlbmNlOiBiYXNpY1JlZmVyZW5jZSxcbiAgICAgIHNvdXJjZUxhbmd1YWdlLFxuICAgICAgdGFyZ2V0TGFuZ3VhZ2UsXG4gICAgICB0aXRsZSxcbiAgICAgIHVuc2F2ZWRDaGFuZ2VzLFxuICAgICAgdmVyc2VUZXh0Q2hhbmdlZCxcbiAgICB9LFxuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7K0NBQ0EscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLENBQUEsU0FBQUMsQ0FBQSxFQUFBRCxDQUFBLE9BQUFFLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxTQUFBLEVBQUFDLENBQUEsR0FBQUgsQ0FBQSxDQUFBSSxjQUFBLEVBQUFDLENBQUEsR0FBQUosTUFBQSxDQUFBSyxjQUFBLGNBQUFQLENBQUEsRUFBQUQsQ0FBQSxFQUFBRSxDQUFBLElBQUFELENBQUEsQ0FBQUQsQ0FBQSxJQUFBRSxDQUFBLENBQUFPLEtBQUEsS0FBQUMsQ0FBQSx3QkFBQUMsTUFBQSxHQUFBQSxNQUFBLE9BQUFDLENBQUEsR0FBQUYsQ0FBQSxDQUFBRyxRQUFBLGtCQUFBQyxDQUFBLEdBQUFKLENBQUEsQ0FBQUssYUFBQSx1QkFBQUMsQ0FBQSxHQUFBTixDQUFBLENBQUFPLFdBQUEsOEJBQUFDLE9BQUFqQixDQUFBLEVBQUFELENBQUEsRUFBQUUsQ0FBQSxXQUFBQyxNQUFBLENBQUFLLGNBQUEsQ0FBQVAsQ0FBQSxFQUFBRCxDQUFBLElBQUFT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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "single-scripture-rcl",
|
|
3
3
|
"description": "A React Component Library for Rendering a Single Scripture Resource.",
|
|
4
|
-
"version": "3.4.16
|
|
4
|
+
"version": "3.4.16",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/unfoldingWord/single-scripture-rcl.git"
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"react": "^17.x",
|
|
29
29
|
"react-dom": "^17.x",
|
|
30
30
|
"react-icons": "^4.8.0",
|
|
31
|
-
"scripture-resources-rcl": "^5.
|
|
31
|
+
"scripture-resources-rcl": "^5.2.0",
|
|
32
32
|
"tc-ui-toolkit": "^5.3.3",
|
|
33
33
|
"translation-helps-rcl": "^3.4.2",
|
|
34
34
|
"word-aligner": "^1.0.0",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"react-dom": "^17.0.1",
|
|
83
83
|
"react-icons": "^4.8.0",
|
|
84
84
|
"react-styleguidist": "11.2.0",
|
|
85
|
-
"scripture-resources-rcl": "^5.
|
|
85
|
+
"scripture-resources-rcl": "^5.4.1",
|
|
86
86
|
"style-loader": "^2.0.0",
|
|
87
87
|
"tc-ui-toolkit": "^5.3.3",
|
|
88
88
|
"translation-helps-rcl": "^3.4.2",
|
|
@@ -103,6 +103,7 @@
|
|
|
103
103
|
"source-map-loader": "^1.1.3",
|
|
104
104
|
"styled-components": "^5.2.1",
|
|
105
105
|
"ts-loader": "^8.0.12",
|
|
106
|
-
"typescript": "^5.2.2"
|
|
106
|
+
"typescript": "^5.2.2",
|
|
107
|
+
"uw-quote-helpers": "0.0.1-beta.15"
|
|
107
108
|
}
|
|
108
109
|
}
|