@nurihaus/web-design-system 1.1.50 → 1.1.52

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.
@@ -10,8 +10,6 @@ export interface TextProps extends HTMLAttributes<HTMLElement> {
10
10
  wordBreak?: CSSProperties["wordBreak"];
11
11
  whiteSpace?: CSSProperties["whiteSpace"];
12
12
  as?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "p" | "span" | "strong";
13
- maxWidth?: number;
14
- ellipsis?: boolean;
15
13
  }
16
14
  export interface TextWithBoldProps extends TextProps {
17
15
  boldText: string;
package/dist/index.js CHANGED
@@ -803,6 +803,8 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.base-table {
803
803
  }
804
804
 
805
805
  .data-table {
806
+ position: relative;
807
+
806
808
  &:where(.table-header) {
807
809
  border-bottom: 1px solid #e4e4e7;
808
810
  }
@@ -815,7 +817,7 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.base-table {
815
817
  }
816
818
  }
817
819
  }
818
- `, "",{"version":3,"sources":["webpack://./components/table/table-style.css"],"names":[],"mappings":"AAAA;EACE;IACE,aAAa;EACf;;EAEA;IACE,WAAW;IACX,yBAAyB;EAC3B;;EAEA;IACE,WAAW;;IAEX;MACE;QACE,kBAAkB;MACpB;IACF;IACA;MACE;QACE,gBAAgB;MAClB;IACF;IACA;MACE;QACE,iBAAiB;MACnB;IACF;EACF;;EAEA;IACE,WAAW;EACb;;EAEA;EACA;;EAEA;IACE,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;EACd;AACF;;AAEA;EACE;IACE,gCAAgC;EAClC;;EAEA;IACE,gCAAgC;;IAEhC;MACE,yBAAyB;IAC3B;EACF;AACF","sourcesContent":[".base-table {\n .hide {\n display: none;\n }\n\n &.table-root {\n width: 100%;\n border-collapse: collapse;\n }\n\n .table-header {\n width: 100%;\n\n &:where(.center) {\n .table-cell {\n text-align: center;\n }\n }\n &:where(.start) {\n .table-cell {\n text-align: left;\n }\n }\n &:where(.end) {\n .table-cell {\n text-align: right;\n }\n }\n }\n\n .table-body {\n width: 100%;\n }\n\n .table-row {\n }\n\n .table-cell {\n text-align: start;\n vertical-align: middle;\n height: 60px;\n }\n}\n\n.data-table {\n &:where(.table-header) {\n border-bottom: 1px solid #e4e4e7;\n }\n\n &:where(.table-row) {\n border-bottom: 1px solid #e4e4e7;\n\n &:hover {\n background-color: #f5f5f5;\n }\n }\n}\n"],"sourceRoot":""}]);
820
+ `, "",{"version":3,"sources":["webpack://./components/table/table-style.css"],"names":[],"mappings":"AAAA;EACE;IACE,aAAa;EACf;;EAEA;IACE,WAAW;IACX,yBAAyB;EAC3B;;EAEA;IACE,WAAW;;IAEX;MACE;QACE,kBAAkB;MACpB;IACF;IACA;MACE;QACE,gBAAgB;MAClB;IACF;IACA;MACE;QACE,iBAAiB;MACnB;IACF;EACF;;EAEA;IACE,WAAW;EACb;;EAEA;EACA;;EAEA;IACE,iBAAiB;IACjB,sBAAsB;IACtB,YAAY;EACd;AACF;;AAEA;EACE,kBAAkB;;EAElB;IACE,gCAAgC;EAClC;;EAEA;IACE,gCAAgC;;IAEhC;MACE,yBAAyB;IAC3B;EACF;AACF","sourcesContent":[".base-table {\n .hide {\n display: none;\n }\n\n &.table-root {\n width: 100%;\n border-collapse: collapse;\n }\n\n .table-header {\n width: 100%;\n\n &:where(.center) {\n .table-cell {\n text-align: center;\n }\n }\n &:where(.start) {\n .table-cell {\n text-align: left;\n }\n }\n &:where(.end) {\n .table-cell {\n text-align: right;\n }\n }\n }\n\n .table-body {\n width: 100%;\n }\n\n .table-row {\n }\n\n .table-cell {\n text-align: start;\n vertical-align: middle;\n height: 60px;\n }\n}\n\n.data-table {\n position: relative;\n\n &:where(.table-header) {\n border-bottom: 1px solid #e4e4e7;\n }\n\n &:where(.table-row) {\n border-bottom: 1px solid #e4e4e7;\n\n &:hover {\n background-color: #f5f5f5;\n }\n }\n}\n"],"sourceRoot":""}]);
819
821
  // Exports
820
822
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
821
823
 
@@ -2802,20 +2804,12 @@ var Text = function Text(props) {
2802
2804
  wordBreak = props.wordBreak,
2803
2805
  whiteSpace = props.whiteSpace,
2804
2806
  as = props.as,
2805
- style = props.style,
2806
- maxWidth = props.maxWidth,
2807
- _a = props.ellipsis,
2808
- ellipsis = _a === void 0 ? false : _a;
2807
+ style = props.style;
2809
2808
  var Comp = as ? as : "p";
2810
2809
  if (typeof window === "undefined") return null;
2811
2810
  return (0,jsx_runtime_.jsx)(Comp, {
2812
2811
  className: "nuri-theme base-text ".concat(/^\d+xl$/.test(size) ? "t-".concat(size) : size, " ").concat(weight, " textAlign-").concat(textAlign, " textDecoration-").concat(textDecoration, " wordBreak-").concat(wordBreak, " whiteSpace-").concat(whiteSpace, " ").concat(color ? "color-".concat(color) : ""),
2813
- style: text_assign({
2814
- overflow: ellipsis ? "hidden" : "inherit",
2815
- textOverflow: ellipsis ? "ellipsis" : "unset",
2816
- whiteSpace: "nowrap",
2817
- maxWidth: "".concat(maxWidth, "px")
2818
- }, style),
2812
+ style: text_assign({}, style),
2819
2813
  children: text
2820
2814
  });
2821
2815
  };
@@ -2862,4 +2856,4 @@ var colors = {
2862
2856
  /******/ })()
2863
2857
  ;
2864
2858
  });
2865
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTywwR0FBMEcsS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksT0FBTyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFB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QUUsU0FBUztFQUNqQkMsTUFBTSxFQUFFLFNBQVM7RUFDakJDLE1BQU0sRUFBRSxTQUFTO0VBQ2pCQyxNQUFNLEVBQUUsU0FBUztFQUNqQkMsTUFBTSxFQUFFLFNBQVM7RUFDakJDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxRQUFRLEVBQUUsU0FBUztFQUNuQkMsUUFBUSxFQUFFLFNBQVM7RUFDbkJDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxRQUFRLEVBQUUsU0FBUztFQUNuQkMsUUFBUSxFQUFFLFNBQVM7RUFDbkJDLFFBQVEsRUFBRSxTQUFTO0VBQ25CQyxTQUFTLEVBQUUsU0FBUztFQUNwQkMsYUFBYSxFQUFFLFNBQVM7RUFDeEJDLFdBQVcsRUFBRTtBQUNqQixDQUFDOztBQ3ZCOEQ7QUFDTztBQUNHO0FBQ0s7QUFDYTtBQUN0QjtBQUNLO0FBQ29CO0FBQ2xDO0FBQ1c7QUFDTCIsInNvdXJjZXMiOlsid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vZm9udC5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS9leHRlcm5hbCB1bWQge1wicm9vdFwiOlwiUmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJyZWFjdFwiLFwidW1kXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vZXh0ZXJuYWwgdW1kIHtcInJvb3RcIjpcImpzeC1ydW50aW1lXCIsXCJjb21tb25qczJcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJjb21tb25qc1wiOlwicmVhY3QvanN4LXJ1bnRpbWVcIixcImFtZFwiOlwicmVhY3QvanN4LXJ1bnRpbWVcIixcInVtZFwiOlwicmVhY3QvanN4LXJ1bnRpbWVcIn0iLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbm9uY2UiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcz83NjAxIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY29yZS9jb21wb3Nlci9pbmRleC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9iYXNlLWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXIudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3M/ZTlmNyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzPzY2Y2EiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzPzc2YmIiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYmFzZS1idXR0b24udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzcz9iMzk5Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9jdGEtYnV0dG9uLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL29wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzPzRhODciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtb3B0aW9uLWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzcz9iNzJlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvYmFzZS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS9kYXRhLXRhYmxlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC1zdHlsZS5jc3M/N2NjNyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvYmFzZS10ZXh0LWZpZWxkLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtd2l0aC1lcnJvci50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vaGVscGVycy9ob29rcy91c2VFeHRlcm5hbFN0YXRlLnRzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vYmFzZS1yYWRpby50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby1zdHlsZS5jc3M/ZjVkOSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gtc3R5bGUuY3NzPzQ2ZWUiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvYmFzZS1jaGVjay1ib3gudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzP2Q4N2IiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvcnMudHMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpLCByZXF1aXJlKFwicmVhY3RcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wicmVhY3QvanN4LXJ1bnRpbWVcIiwgXCJyZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZmFjdG9yeShyZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIiksIHJlcXVpcmUoXCJyZWFjdFwiKSkgOiBmYWN0b3J5KHJvb3RbXCJqc3gtcnVudGltZVwiXSwgcm9vdFtcIlJlYWN0XCJdKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKHNlbGYsIChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18yMjZfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMTE5X18pID0+IHtcbnJldHVybiAiLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmF2YXRhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJiBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAmOndoZXJlKC54bCkge1xuICAgIHdpZHRoOiAxMjRweDtcbiAgICBoZWlnaHQ6IDEyNHB4O1xuICB9XG5cbiAgJjp3aGVyZSgubCkge1xuICAgIHdpZHRoOiA3NHB4O1xuICAgIGhlaWdodDogNzRweDtcbiAgfVxuXG4gICY6d2hlcmUoLm0pIHtcbiAgICB3aWR0aDogNThweDtcbiAgICBoZWlnaHQ6IDU4cHg7XG4gIH1cblxuICAmOndoZXJlKC5zKSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG5cbiAgLmF2YXRhci1za2VsZXRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAuc2tlbGV0b24tYW5pbWF0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXG4gICAgICApO1xuICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDEuNXMgaW5maW5pdGU7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCO0lBQ0Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtFQUNsQjs7RUFFQSxrQkFBa0I7O0VBRWxCO0lBQ0UsWUFBWTtJQUNaLGFBQWE7RUFDZjs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1oseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWTs7SUFFWjtNQUNFLFdBQVc7TUFDWCxZQUFZO01BQ1o7Ozs7O09BS0M7TUFDRCxnQ0FBZ0M7SUFDbEM7RUFDRjtBQUNGOztBQUVBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7RUFDQTtJQUNFLDJCQUEyQjtFQUM3QjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5hdmF0YXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgJiBkaXYge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgd2lkdGg6IDEyNHB4O1xcbiAgICBoZWlnaHQ6IDEyNHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICB3aWR0aDogNzRweDtcXG4gICAgaGVpZ2h0OiA3NHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgubSkge1xcbiAgICB3aWR0aDogNThweDtcXG4gICAgaGVpZ2h0OiA1OHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICB3aWR0aDogNDBweDtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgfVxcblxcbiAgLmF2YXRhci1za2VsZXRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuXFxuICAgIC5za2VsZXRvbi1hbmltYXRpb24ge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgICA5MGRlZyxcXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgNTAlLFxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXFxuICAgICAgKTtcXG4gICAgICBhbmltYXRpb246IHNoaW1tZXIgMS41cyBpbmZpbml0ZTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xcbiAgMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS1iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDRweDtcblxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xuXG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgubSkge1xuICAgIGhlaWdodDogNDBweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5yKSB7XG4gICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5zbSkge1xuICAgIGhlaWdodDogMjhweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJiYWNrZ3JvdW5kLVwiXSB7XG4gICAgJi5iYWNrZ3JvdW5kLWJsYWNrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtd2hpdGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC1ncmF5RmEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLXB1cnBsZTM5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0LVwiXSB7XG4gICAgJi50ZXh0LWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi50ZXh0LXdoaXRlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi50ZXh0LWdyYXlGYSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiYm9yZGVyLVwiXSB7XG4gICAgJi5ib3JkZXItYmxhY2sge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYuYm9yZGVyLXdoaXRlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmJvcmRlci1ncmF5RmEge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUU0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuYm9yZGVyLXB1cnBsZTM5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsUUFBUTs7RUFFUixtQkFBbUI7O0VBRW5CO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG9DQUFvQztFQUN0Qzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtFQUNGOztFQUVBO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjs7RUFFQTtJQUNFO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCOztJQUU5QixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0VBQ1Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1iYWRnZSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgZ2FwOiA0cHg7XFxuXFxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogMzZweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJhY2tncm91bmQtXFxcIl0ge1xcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0LVxcXCJdIHtcXG4gICAgJi50ZXh0LWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LWdyYXlGYSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJvcmRlci1cXFwiXSB7XFxuICAgICYuYm9yZGVyLWJsYWNrIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci13aGl0ZSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItZ3JheUZhIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlFNCB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBwYWRkaW5nOiAwIDIwcHg7XFxuICB9XFxuXFxuICAmLmljb24tdGV4dC1vcHRpb24gPiBzcGFuIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA0cHg7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN0YS1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgJjp3aGVyZSgucHJpbWFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICB9XG4gICY6d2hlcmUoLnNlY29uZGFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZ2hvc3QpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLndoaXRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuXG4gICY6d2hlcmUoLnhsKSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDU0cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSgueHMpIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAmOndoZXJlKC5wcmltYXJ5KSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1lOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLmdob3N0KSB7XG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICAgICY6d2hlcmUoLndoaXRlKSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsU0FBUztFQUNULGtCQUFrQjtFQUNsQixZQUFZO0VBQ1osZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGtCQUFrQjs7RUFFbEI7SUFDRSw4Q0FBOEM7SUFDOUMsaUNBQWlDO0VBQ25DO0VBQ0E7SUFDRSw4Q0FBOEM7SUFDOUMsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw0Q0FBNEM7SUFDNUMsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLFlBQVk7O0lBRVosZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7RUFDQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7RUFDQTtJQUNFLFlBQVk7O0lBRVosK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyx3Q0FBd0M7RUFDMUM7RUFDQTtJQUNFLFlBQVk7O0lBRVosK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSwwQ0FBMEM7SUFDNUM7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5jdGEtYnV0dG9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG5cXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA1NHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogNDhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgubSkge1xcbiAgICBoZWlnaHQ6IDUwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhzKSB7XFxuICAgIGhlaWdodDogMzBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOmhvdmVyIHtcXG4gICAgJjp3aGVyZSgucHJpbWFyeSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS00Yyk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC5naG9zdCkge1xcbiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmOndoZXJlKC53aGl0ZSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS1jaGVjay1ib3gge1xuICAmLmxhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICB9XG59XG5cbi5jaGVjay1ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG59XG5cbi5jaGVjay1ib3gtaW5wdXQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMjRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG5cbiAgJjp3aGVyZSgudW5jaGVja2VkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgfVxuXG4gICY6d2hlcmUoLmNoZWNrZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG5cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSw4QkFBOEI7SUFDOUIsc0NBQXNDO0lBQ3RDLGlDQUFpQztFQUNuQztBQUNGOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixnREFBZ0Q7O0VBRWhEO0lBQ0Usc0JBQXNCO0VBQ3hCOztFQUVBO0lBQ0UsOENBQThDO0VBQ2hEOztFQUVBO0lBQ0UsWUFBWTtJQUNaLDhDQUE4QztFQUNoRDtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLWNoZWNrLWJveCB7XFxuICAmLmxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgfVxcbn1cXG5cXG4uY2hlY2stYm94IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZ2FwOiAxMHB4O1xcbn1cXG5cXG4uY2hlY2stYm94LWlucHV0IHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICB3aWR0aDogMjRweDtcXG4gIGhlaWdodDogMjRweDtcXG4gIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG5cXG4gICY6d2hlcmUoLnVuY2hlY2tlZCkge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguY2hlY2tlZCkge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRleHQge1xuICAmOndoZXJlKC54c20pIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICB9XG4gICY6d2hlcmUoLnNtKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gIH1cbiAgJjp3aGVyZSguYmFzZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcbiAgfVxuICAmOndoZXJlKC5sZykge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxnKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xuICB9XG4gICY6d2hlcmUoLnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14bCk7XG4gIH1cbiAgJjp3aGVyZSgudC0yeGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0yeGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC0yeGwpO1xuICB9XG4gICY6d2hlcmUoLnQtM3hsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtM3hsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtM3hsKTtcbiAgfVxuICAmOndoZXJlKC50LTR4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTR4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTR4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC01eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS01eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC01eGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNnhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNnhsKTtcbiAgfVxuXG4gICY6d2hlcmUoLnJlZ3VsYXIpIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XG4gIH1cbiAgJjp3aGVyZSgubWVkaXVtKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gIH1cbiAgJjp3aGVyZSguc2VtaWJvbGQpIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmJvbGQpIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSguZXh0cmFib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWV4dHJhYm9sZCk7XG4gIH1cblxuICAmW2NsYXNzKj1cInRleHRBbGlnbi1cIl0ge1xuICAgICYudGV4dEFsaWduLWxlZnQge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG4gICAgJi50ZXh0QWxpZ24tY2VudGVyIHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cInRleHREZWNvcmF0aW9uLVwiXSB7XG4gICAgJi50ZXh0RGVjb3JhdGlvbi11bmRlcmxpbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tbm9uZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tbGluZVRocm91Z2gge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tb3ZlcmxpbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZTtcbiAgICB9XG4gICAgJi50ZXh0RGVjb3JhdGlvbi1ibGluayB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGJsaW5rO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwid29yZEJyZWFrLVwiXSB7XG4gICAgJi53b3JkQnJlYWstbm9ybWFsIHtcbiAgICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtBbGwge1xuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1icmVha1dvcmQge1xuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWsta2VlcEFsbCB7XG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWsta2VlcFdvcmQge1xuICAgICAgd29yZC1icmVhazoga2VlcC13b3JkO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1icmVha1NwYWNlcyB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1zcGFjZXM7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWFsbCB7XG4gICAgICB3b3JkLWJyZWFrOiBhbGw7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ3aGl0ZVNwYWNlLVwiXSB7XG4gICAgJi53aGl0ZVNwYWNlLW5vcm1hbCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2Utbm93cmFwIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmUge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZUxpbmUge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlV3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJjb2xvci1cIl0ge1xuICAgICYuY29sb3ItYmxhY2sge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmNvbG9yLXdoaXRlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RmEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUY0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlFNCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RDQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUExIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXk3MSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5NTIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS01Mik7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTNmIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktM2YpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkyNyB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5MTgge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0xOCk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlMzkge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlNGMge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS00Yyk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlRGQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1kZCk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlRTkge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1lOSk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlRjQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlNDEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS00MSk7XG4gICAgfVxuICAgICYuY29sb3ItcHVycGxlOTUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS05NSk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50UmVkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gICAgJi5jb2xvci1hY2NlbnRNYWdlbnRhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMCk7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50R3JlZW4ge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1ncmVlbi0yOCk7XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztFQUNwQztFQUNBO0lBQ0UsZ0NBQWdDO0lBQ2hDLG9DQUFvQztFQUN0QztFQUNBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztFQUNwQztFQUNBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztFQUNwQztFQUNBO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsK0JBQStCO0lBQy9CLG1DQUFtQztFQUNyQzs7RUFFQTtJQUNFLHVDQUF1QztFQUN6QztFQUNBO0lBQ0Usc0NBQXNDO0VBQ3hDO0VBQ0E7SUFDRSx3Q0FBd0M7RUFDMUM7RUFDQTtJQUNFLG9DQUFvQztFQUN0QztFQUNBO0lBQ0UseUNBQXlDO0VBQzNDOztFQUVBO0lBQ0U7TUFDRSxnQkFBZ0I7SUFDbEI7SUFDQTtNQUNFLGtCQUFrQjtJQUNwQjtFQUNGOztFQUVBO0lBQ0U7TUFDRSwwQkFBMEI7SUFDNUI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtJQUNBO01BQ0UsNkJBQTZCO0lBQy9CO0lBQ0E7TUFDRSx5QkFBeUI7SUFDM0I7SUFDQTtNQUNFLHNCQUFzQjtJQUN4QjtFQUNGOztFQUVBO0lBQ0U7TUFDRSxrQkFBa0I7SUFDcEI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtJQUNBO01BQ0Usc0JBQXNCO0lBQ3hCO0lBQ0E7TUFDRSxvQkFBb0I7SUFDdEI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtJQUNBO01BQ0Usd0JBQXdCO0lBQzFCO0lBQ0E7TUFDRSxlQUFlO0lBQ2pCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLG1CQUFtQjtJQUNyQjtJQUNBO01BQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7TUFDRSxnQkFBZ0I7SUFDbEI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxxQ0FBcUM7SUFDdkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGV4dCB7XFxuICAmOndoZXJlKC54c20pIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICB9XFxuICAmOndoZXJlKC5zbSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICB9XFxuICAmOndoZXJlKC5iYXNlKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XFxuICB9XFxuICAmOndoZXJlKC5sZykge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICB9XFxuICAmOndoZXJlKC54bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTJ4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0yeGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtM3hsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC0zeGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC00eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNHhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTR4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTV4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS01eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNnhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC02eGwpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucmVndWxhcikge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XFxuICB9XFxuICAmOndoZXJlKC5tZWRpdW0pIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICB9XFxuICAmOndoZXJlKC5zZW1pYm9sZCkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSguYm9sZCkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5leHRyYWJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWV4dHJhYm9sZCk7XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dEFsaWduLVxcXCJdIHtcXG4gICAgJi50ZXh0QWxpZ24tbGVmdCB7XFxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgfVxcbiAgICAmLnRleHRBbGlnbi1jZW50ZXIge1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcInRleHREZWNvcmF0aW9uLVxcXCJdIHtcXG4gICAgJi50ZXh0RGVjb3JhdGlvbi11bmRlcmxpbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tbm9uZSB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tbGluZVRocm91Z2gge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tb3ZlcmxpbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XFxuICAgIH1cXG4gICAgJi50ZXh0RGVjb3JhdGlvbi1ibGluayB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcIndvcmRCcmVhay1cXFwiXSB7XFxuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XFxuICAgICAgd29yZC1icmVhazogbm9ybWFsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcXG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLXdvcmQ7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXNwYWNlcztcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1hbGwge1xcbiAgICAgIHdvcmQtYnJlYWs6IGFsbDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcIndoaXRlU3BhY2UtXFxcIl0ge1xcbiAgICAmLndoaXRlU3BhY2Utbm9ybWFsIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1ub3dyYXAge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZSB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZTtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlTGluZSB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmVXcmFwIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJjb2xvci1cXFwiXSB7XFxuICAgICYuY29sb3ItYmxhY2sge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RmEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUY0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlFNCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RDQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUExIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXk3MSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5NTIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTNmIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkyNyB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5MTgge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlMzkge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlNGMge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlRGQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZGQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlRTkge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZTkpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlRjQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlNDEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNDEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItcHVycGxlOTUge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtOTUpO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50UmVkIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1hY2NlbnRNYWdlbnRhIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjApO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50R3JlZW4ge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtZ3JlZW4tMjgpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmNvbXBvbmVudC1sb2FkaW5nLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3ItcmluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAzcHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjQ1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbkBrZXlmcmFtZXMgbGRzLXJpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsOERBQThEO0VBQzlELDRFQUE0RTtBQUM5RTs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDIpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcXG59XFxuXFxuQGtleWZyYW1lcyBsZHMtcmluZyB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLnJhZGlvIHtcbiAgJjp3aGVyZSgucmFkaW8tZ3JvdXApIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWJ1dHRvbikge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8taW5kaWNhdG9yKSB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1sYWJlbCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsU0FBUztFQUNYO0VBQ0E7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQiw4Q0FBOEM7RUFDaEQ7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhDQUE4QztFQUNoRDtFQUNBO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIucmFkaW8ge1xcbiAgJjp3aGVyZSgucmFkaW8tZ3JvdXApIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZ2FwOiAxNnB4O1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8tYnV0dG9uKSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICB3aWR0aDogMThweDtcXG4gICAgaGVpZ2h0OiAxOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1pbmRpY2F0b3IpIHtcXG4gICAgd2lkdGg6IDhweDtcXG4gICAgaGVpZ2h0OiA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWxhYmVsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10YWJsZSB7XG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi50YWJsZS1yb290IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB9XG5cbiAgLnRhYmxlLWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5zdGFydCkge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5lbmQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWJvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYmxlLXJvdyB7XG4gIH1cblxuICAudGFibGUtY2VsbCB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gIH1cbn1cblxuLmRhdGEtdGFibGUge1xuICAmOndoZXJlKC50YWJsZS1oZWFkZXIpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcbiAgfVxuXG4gICY6d2hlcmUoLnRhYmxlLXJvdykge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtFQUNmOztFQUVBO0lBQ0UsV0FBVztJQUNYLHlCQUF5QjtFQUMzQjs7RUFFQTtJQUNFLFdBQVc7O0lBRVg7TUFDRTtRQUNFLGtCQUFrQjtNQUNwQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGdCQUFnQjtNQUNsQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGlCQUFpQjtNQUNuQjtJQUNGO0VBQ0Y7O0VBRUE7SUFDRSxXQUFXO0VBQ2I7O0VBRUE7RUFDQTs7RUFFQTtJQUNFLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsWUFBWTtFQUNkO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGdDQUFnQztFQUNsQzs7RUFFQTtJQUNFLGdDQUFnQzs7SUFFaEM7TUFDRSx5QkFBeUI7SUFDM0I7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRhYmxlIHtcXG4gIC5oaWRlIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gICYudGFibGUtcm9vdCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgfVxcblxcbiAgLnRhYmxlLWhlYWRlciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcblxcbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgfVxcbiAgICB9XFxuICAgICY6d2hlcmUoLnN0YXJ0KSB7XFxuICAgICAgLnRhYmxlLWNlbGwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguZW5kKSB7XFxuICAgICAgLnRhYmxlLWNlbGwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAudGFibGUtYm9keSB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLnRhYmxlLXJvdyB7XFxuICB9XFxuXFxuICAudGFibGUtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBoZWlnaHQ6IDYwcHg7XFxuICB9XFxufVxcblxcbi5kYXRhLXRhYmxlIHtcXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnRhYmxlLXJvdykge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRleHQtZmllbGQge1xuICAmOndoZXJlKC50ZXh0LWZpZWxkLXJvb3QpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udGV4dC1maWVsZCB7XG4gICYubGFiZWwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmLmlucHV0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG5cbiAgJi5pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG5cbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xuICAgIH1cbiAgfVxuXG4gICYuaGVscGVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXG4gICAgJi5lcnJvciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsV0FBVztFQUNiO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0UsYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGFBQWE7SUFDYixnREFBZ0Q7SUFDaEQsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7RUFDcEI7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHNDQUFzQzs7SUFFdEM7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjs7RUFFQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsc0NBQXNDOztJQUV0QztNQUNFLGlDQUFpQztJQUNuQztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGV4dC1maWVsZCB7XFxuICAmOndoZXJlKC50ZXh0LWZpZWxkLXJvb3QpIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxufVxcblxcbi50ZXh0LWZpZWxkIHtcXG4gICYubGFiZWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuXFxuICAmLmlucHV0LXdyYXBwZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGhlaWdodDogMjJweDtcXG4gICAgcGFkZGluZzogMTRweDtcXG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgfVxcblxcbiAgJi5pbnB1dCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuXFxuICAgIDo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmhlbHBlci10ZXh0IHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG5cXG4gICAgJi5lcnJvciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XG5cbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XG5cbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xuICAtLWNvbG9yLWFjY2VudC1tYWdlbnRhLWIwOiAjYjAyZTRjO1xuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcblxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWZmOiAjZmZmZmZmO1xuXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQzs7RUFFaEMsOEJBQThCO0VBQzlCLGtDQUFrQztFQUNsQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyw2QkFBNkI7QUFDL0JcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLm51cmktdGhlbWUge1xcbiAgLS1jb2xvci1wcmltYXJ5LWJsYWNrOiAjMDAwMDAwO1xcbiAgLS1jb2xvci1wcmltYXJ5LXdoaXRlOiAjZmZmZmZmO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mNDogI2Y0ZjRmNTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1hMTogI2ExYTFhYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxOiAjNzE3MTdhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0zZjogIzNmM2Y0NjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3OiAjMjcyNzJhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XFxuXFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS0zOTogIzM5MWQ1ZDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZGQ6ICNkZGQxZjA7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1lOTogI2U5ZTBmNTtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNDE6ICM0YzFkODg7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS05NTogIzk1N2ViNDtcXG5cXG4gIC0tY29sb3ItYWNjZW50LXJlZC1kZjogI2RmNTM1YztcXG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XFxuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcXG5cXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcXG5cXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL29yaW9uY2FjdHVzL3ByZXRlbmRhcmRAdjEuMy44L2Rpc3Qvd2ViL3N0YXRpYy9wcmV0ZW5kYXJkLmNzcyk7XCJdKTtcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCJAaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCZkaXNwbGF5PXN3YXApO1wiXSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlhbCtJY29ucyk7XCJdKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWZvbnQtc2l6ZS14c206IDEycHg7XG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xuICAtLWZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xuICAtLWZvbnQtc2l6ZS1sZzogMThweDtcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XG4gIC0tZm9udC1zaXplLTJ4bDogMjRweDtcbiAgLS1mb250LXNpemUtM3hsOiAzMHB4O1xuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XG4gIC0tZm9udC1zaXplLTV4bDogNDhweDtcbiAgLS1mb250LXNpemUtNnhsOiA2MHB4O1xuXG4gIC0tbGluZS1oZWlnaHQteHNtOiAxOHB4O1xuICAtLWxpbmUtaGVpZ2h0LXNtOiAxOHB4O1xuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XG4gIC0tbGluZS1oZWlnaHQtbGc6IDI0cHg7XG4gIC0tbGluZS1oZWlnaHQteGw6IDI4cHg7XG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xuICAtLWxpbmUtaGVpZ2h0LTN4bDogMzZweDtcbiAgLS1saW5lLWhlaWdodC00eGw6IDQzcHg7XG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xuICAtLWxpbmUtaGVpZ2h0LTZ4bDogODJweDtcblxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiAgLS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcbiAgLS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcbiAgLS1mb250LXdlaWdodC1leHRyYWJvbGQ6IDgwMDtcblxuICBmb250LWZhbWlseTogXCJUd2Vtb2ppIENvdW50cnkgRmxhZ3NcIiwgXCJQcmV0ZW5kYXJkXCIsIFByZXRlbmRhcmQsIC1hcHBsZS1zeXN0ZW0sXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBzeXN0ZW0tdWksIFJvYm90bywgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBcIlNlZ29lIFVJXCIsXG4gICAgXCJBcHBsZSBTRCBHb3RoaWMgTmVvXCIsIFwiTm90byBTYW5zIEtSXCIsIFwiTWFsZ3VuIEdvdGhpY1wiLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsXG4gICAgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIiwgc2Fucy1zZXJpZjtcbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUlBO0VBQ0UscUJBQXFCO0VBQ3JCLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCOztFQUVyQix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7O0VBRXZCLDBCQUEwQjtFQUMxQix5QkFBeUI7RUFDekIsMkJBQTJCO0VBQzNCLHVCQUF1QjtFQUN2Qiw0QkFBNEI7O0VBRTVCOzs7dUVBR3FFO0FBQ3ZFXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIkBpbXBvcnQgdXJsKFxcXCJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvb3Jpb25jYWN0dXMvcHJldGVuZGFyZEB2MS4zLjgvZGlzdC93ZWIvc3RhdGljL3ByZXRlbmRhcmQuY3NzXFxcIik7XFxuQGltcG9ydCB1cmwoXFxcImh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG86MzAwLDQwMCw1MDAsNzAwJmRpc3BsYXk9c3dhcFxcXCIpO1xcbkBpbXBvcnQgdXJsKFxcXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2ljb24/ZmFtaWx5PU1hdGVyaWFsK0ljb25zXFxcIik7XFxuXFxuLm51cmktdGhlbWUge1xcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xcbiAgLS1mb250LXNpemUtc206IDE0cHg7XFxuICAtLWZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XFxuICAtLWZvbnQtc2l6ZS14bDogMjBweDtcXG4gIC0tZm9udC1zaXplLTJ4bDogMjRweDtcXG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcXG4gIC0tZm9udC1zaXplLTR4bDogMzZweDtcXG4gIC0tZm9udC1zaXplLTV4bDogNDhweDtcXG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcXG5cXG4gIC0tbGluZS1oZWlnaHQteHNtOiAxOHB4O1xcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtYmFzZTogMjJweDtcXG4gIC0tbGluZS1oZWlnaHQtbGc6IDI0cHg7XFxuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xcbiAgLS1saW5lLWhlaWdodC0yeGw6IDMycHg7XFxuICAtLWxpbmUtaGVpZ2h0LTN4bDogMzZweDtcXG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xcbiAgLS1saW5lLWhlaWdodC01eGw6IDY2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTZ4bDogODJweDtcXG5cXG4gIC0tZm9udC13ZWlnaHQtcmVndWxhcjogNDAwO1xcbiAgLS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcXG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcXG4gIC0tZm9udC13ZWlnaHQtYm9sZDogNzAwO1xcbiAgLS1mb250LXdlaWdodC1leHRyYWJvbGQ6IDgwMDtcXG5cXG4gIGZvbnQtZmFtaWx5OiBcXFwiVHdlbW9qaSBDb3VudHJ5IEZsYWdzXFxcIiwgXFxcIlByZXRlbmRhcmRcXFwiLCBQcmV0ZW5kYXJkLCAtYXBwbGUtc3lzdGVtLFxcbiAgICBCbGlua01hY1N5c3RlbUZvbnQsIHN5c3RlbS11aSwgUm9ib3RvLCBcXFwiSGVsdmV0aWNhIE5ldWVcXFwiLCBcXFwiU2Vnb2UgVUlcXFwiLFxcbiAgICBcXFwiQXBwbGUgU0QgR290aGljIE5lb1xcXCIsIFxcXCJOb3RvIFNhbnMgS1JcXFwiLCBcXFwiTWFsZ3VuIEdvdGhpY1xcXCIsIFxcXCJBcHBsZSBDb2xvciBFbW9qaVxcXCIsXFxuICAgIFxcXCJTZWdvZSBVSSBFbW9qaVxcXCIsIFxcXCJTZWdvZSBVSSBTeW1ib2xcXFwiLCBcXFwiTm90byBDb2xvciBFbW9qaVxcXCIsIHNhbnMtc2VyaWY7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzSW5ET00ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3R5bGVzSW5ET01baV0uaWRlbnRpZmllciA9PT0gaWRlbnRpZmllcikge1xuICAgICAgcmVzdWx0ID0gaTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXTtcbiAgICB2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcbiAgICB2YXIgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xuICAgIHZhciBpZGVudGlmaWVyID0gXCJcIi5jb25jYXQoaWQsIFwiIFwiKS5jb25jYXQoY291bnQpO1xuICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgIHZhciBpbmRleEJ5SWRlbnRpZmllciA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgIHZhciBvYmogPSB7XG4gICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgIHNvdXJjZU1hcDogaXRlbVszXSxcbiAgICAgIHN1cHBvcnRzOiBpdGVtWzRdLFxuICAgICAgbGF5ZXI6IGl0ZW1bNV1cbiAgICB9O1xuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG4gIHZhciB1cGRhdGVyID0gZnVuY3Rpb24gdXBkYXRlcihuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwICYmIG5ld09iai5zdXBwb3J0cyA9PT0gb2JqLnN1cHBvcnRzICYmIG5ld09iai5sYXllciA9PT0gb2JqLmxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFwaS51cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbW92ZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgIH1cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG4gICAgICAgIHN0eWxlc0luRE9NLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gIH07XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgbWVtbyA9IHt9O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGdldFRhcmdldCh0YXJnZXQpIHtcbiAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gIH1cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gIH1cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgb3B0aW9ucy5zZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gIG9wdGlvbnMuaW5zZXJ0KGVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG4gIHJldHVybiBlbGVtZW50O1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzKHN0eWxlRWxlbWVudCkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQob2JqLnN1cHBvcnRzLCBcIikge1wiKTtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJAbGF5ZXJcIi5jb25jYXQob2JqLmxheWVyLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQob2JqLmxheWVyKSA6IFwiXCIsIFwiIHtcIik7XG4gIH1cbiAgY3NzICs9IG9iai5jc3M7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuICBpZiAoc291cmNlTWFwICYmIHR5cGVvZiBidG9hICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgY3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSwgXCIgKi9cIik7XG4gIH1cblxuICAvLyBGb3Igb2xkIElFXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpIHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gIGlmIChzdHlsZUVsZW1lbnQucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoKSB7fSxcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge31cbiAgICB9O1xuICB9XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBkb21BUEk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQpIHtcbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzExOV9fOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMjI2X187IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubmMgPSB1bmRlZmluZWQ7IiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9hdmF0YXItc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IENoaWxkcmVuLCBjbG9uZUVsZW1lbnQsIGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCB9IGZyb20gXCJyZWFjdFwiO1xuZnVuY3Rpb24gY29tcG9zZVJlZnMoKSB7XG4gICAgdmFyIHJlZnMgPSBbXTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICByZWZzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgfVxuICAgIHJldHVybiBmdW5jdGlvbiAobm9kZSkge1xuICAgICAgICByZWZzLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcbn1cbnZhciBDb21wb3NlciA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKF9hLCByZWYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgY29tcG9zZXJQcm9wcyA9IF9fcmVzdChfYSwgW1wiY2hpbGRyZW5cIl0pO1xuICAgIHZhciBjaGlsZEFycmF5ID0gQ2hpbGRyZW4udG9BcnJheShjaGlsZHJlbik7XG4gICAgaWYgKGNoaWxkQXJyYXkubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb21wb3NlciBjYW4gb25seSBoYXZlIG9uZSBjaGlsZFwiKTtcbiAgICB9XG4gICAgdmFyIGlzVmFsaWRDaGlsZCA9IGlzVmFsaWRFbGVtZW50KGNoaWxkQXJyYXlbMF0pO1xuICAgIGlmICghaXNWYWxpZENoaWxkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcImNoaWxkIHNob3VsZCBiZSBSZWFjdCBub2RlIVwiKTtcbiAgICB9XG4gICAgdmFyIGNoaWxkID0gY2hpbGRBcnJheVswXTtcbiAgICB2YXIgY2hpbGRSZWYgPSBnZXRFbGVtZW50UmVmKGNoaWxkKTtcbiAgICB2YXIgbWVyZ2VkUHJvcHMgPSBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkLnByb3BzKTtcbiAgICByZXR1cm4gY2xvbmVFbGVtZW50KGNoaWxkLCBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgbWVyZ2VkUHJvcHMpLCB7IHJlZjogcmVmID8gY29tcG9zZVJlZnMocmVmLCBjaGlsZFJlZikgOiBjaGlsZFJlZiB9KSk7XG59KTtcbkNvbXBvc2VyLmRpc3BsYXlOYW1lID0gXCJDb21wb3NlclwiO1xuZnVuY3Rpb24gbWVyZ2VQcm9wcyhjb21wb3NlclByb3BzLCBjaGlsZFByb3BzKSB7XG4gICAgdmFyIG92ZXJyaWRlUHJvcHMgPSBfX2Fzc2lnbih7fSwgY2hpbGRQcm9wcyk7XG4gICAgdmFyIF9sb29wXzEgPSBmdW5jdGlvbiAocHJvcE5hbWUpIHtcbiAgICAgICAgdmFyIGNvbXBvc2VyUHJvcFZhbHVlID0gY29tcG9zZXJQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBjaGlsZFByb3BWYWx1ZSA9IGNoaWxkUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICB2YXIgaXNIYW5kbGVyID0gL15vbltBLVpdLy50ZXN0KHByb3BOYW1lKTtcbiAgICAgICAgaWYgKGlzSGFuZGxlcikge1xuICAgICAgICAgICAgaWYgKGNvbXBvc2VyUHJvcFZhbHVlICYmIGNoaWxkUHJvcFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmdzW19pXSA9IGFyZ3VtZW50c1tfaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wVmFsdWUuYXBwbHkodm9pZCAwLCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgY29tcG9zZXJQcm9wVmFsdWUuYXBwbHkodm9pZCAwLCBhcmdzKTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY29tcG9zZXJQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGNvbXBvc2VyUHJvcFZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHByb3BOYW1lID09PSBcInN0eWxlXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcFZhbHVlKSwgY2hpbGRQcm9wVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHByb3BOYW1lID09PSBcImNsYXNzTmFtZVwiKSB7XG4gICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IFtjb21wb3NlclByb3BWYWx1ZSwgY2hpbGRQcm9wVmFsdWVdXG4gICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgIC5qb2luKFwiIFwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZm9yICh2YXIgcHJvcE5hbWUgaW4gY29tcG9zZXJQcm9wcykge1xuICAgICAgICBfbG9vcF8xKHByb3BOYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIF9fYXNzaWduKF9fYXNzaWduKHt9LCBjb21wb3NlclByb3BzKSwgb3ZlcnJpZGVQcm9wcyk7XG59XG5mdW5jdGlvbiBnZXRFbGVtZW50UmVmKGVsZW1lbnQpIHtcbiAgICB2YXIgX2EsIF9iO1xuICAgIHZhciBnZXR0ZXIgPSAoX2EgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQucHJvcHMsIFwicmVmXCIpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZ2V0O1xuICAgIHZhciBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICAgIGlmIChtYXlXYXJuKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnJlZjtcbiAgICB9XG4gICAgZ2V0dGVyID0gKF9iID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LCBcInJlZlwiKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmdldDtcbiAgICBtYXlXYXJuID0gZ2V0dGVyICYmIFwiaXNSZWFjdFdhcm5pbmdcIiBpbiBnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nO1xuICAgIGlmIChtYXlXYXJuKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnByb3BzLnJlZjtcbiAgICB9XG4gICAgcmV0dXJuIChlbGVtZW50LnByb3BzLnJlZiB8fCBlbGVtZW50LnJlZik7XG59XG5leHBvcnQgZGVmYXVsdCBDb21wb3NlcjtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5leHBvcnQgdmFyIEJhc2VCYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBfYSA9IHByb3BzLmFzQ2hpbGQsIGFzQ2hpbGQgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYSwgYm9yZGVyQ29sb3IgPSBwcm9wcy5ib3JkZXJDb2xvciwgX2IgPSBwcm9wcy50ZXh0Q29sb3IsIHRleHRDb2xvciA9IF9iID09PSB2b2lkIDAgPyBcImJsYWNrXCIgOiBfYiwgcmFkaXVzID0gcHJvcHMucmFkaXVzLCBiYWNrZ3JvdW5kQ29sb3IgPSBwcm9wcy5iYWNrZ3JvdW5kQ29sb3IsIF9jID0gcHJvcHMuc2l6ZSwgc2l6ZSA9IF9jID09PSB2b2lkIDAgPyBcImxcIiA6IF9jLCBzdHlsZSA9IHByb3BzLnN0eWxlLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImRpdlwiO1xuICAgIHZhciBjb21wb3NlZENsYXNzTmFtZSA9IFwibnVyaS10aGVtZSBcIi5jb25jYXQoYXNDaGlsZCA/IFwiXCIgOiBcImJhc2UtYmFkZ2VcIiwgXCIgXCIpLmNvbmNhdChzaXplLCBcIiBib3JkZXItXCIpLmNvbmNhdChib3JkZXJDb2xvciwgXCIgdGV4dC1cIikuY29uY2F0KHRleHRDb2xvciwgXCIgYmFja2dyb3VuZC1cIikuY29uY2F0KGJhY2tncm91bmRDb2xvciwgXCIgXCIpLmNvbmNhdChjbGFzc05hbWUpO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IHN0eWxlOiBfX2Fzc2lnbih7IGJvcmRlclJhZGl1czogXCJcIi5jb25jYXQocmFkaXVzLCBcInB4XCIpIH0sIHN0eWxlKSwgY2xhc3NOYW1lOiBjb21wb3NlZENsYXNzTmFtZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vYXZhdGFyLXN0eWxlLmNzc1wiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4uL2JhZGdlL2Jhc2UtYmFkZ2VcIjtcbmltcG9ydCBkZWZhdWx0QXZhdGFyIGZyb20gXCIuLi8uLi9hc3NldHMvaWNvbnMvZGVmYXVsdEF2YXRhci5zdmdcIjtcbnZhciBBdmF0YXIgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgc2l6ZSA9IHByb3BzLnNpemUsIHNyYyA9IHByb3BzLnNyYywgYWx0ID0gcHJvcHMuYWx0LCBiYWRnZU9wdGlvbiA9IHByb3BzLmJhZGdlT3B0aW9uO1xuICAgIHZhciBfYSA9IHVzZVN0YXRlKGZhbHNlKSwgaXNJbWFnZURvd25sb2FkID0gX2FbMF0sIHNldElzSW1hZ2VEb3dubG9hZCA9IF9hWzFdO1xuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiYXZhdGFyIFwiLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBzcmMgIT09IG51bGwgJiYgc3JjICE9PSB2b2lkIDAgPyBzcmMgOiBkZWZhdWx0QXZhdGFyLCBhbHQ6IGFsdCAhPT0gbnVsbCAmJiBhbHQgIT09IHZvaWQgMCA/IGFsdCA6IFwiYXZhdGFyXCIsIGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUsIFwiIFwiKS5jb25jYXQoIWlzSW1hZ2VEb3dubG9hZCA/IFwiaGlkZGVuXCIgOiBcIlwiKSwgb25Mb2FkOiBmdW5jdGlvbiAoKSB7IHJldHVybiBzZXRJc0ltYWdlRG93bmxvYWQodHJ1ZSk7IH0gfSksICFpc0ltYWdlRG93bmxvYWQgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiYXZhdGFyIGF2YXRhci1za2VsZXRvbiBcIi5jb25jYXQoc2l6ZSksIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBza2VsZXRvbi1hbmltYXRpb25cIiB9KSB9KSksIGJhZGdlT3B0aW9uICYmIChfanN4KEJhc2VCYWRnZSwgeyBhc0NoaWxkOiB0cnVlLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGJhZGdlT3B0aW9uIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IEF2YXRhcjtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9idXR0b24tc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jb2xvci5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jb2xvci5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZm9udC5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250LmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIEJhc2VCdXR0b24gPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChfYSwgcmVmKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIF9iID0gX2EuYXNDaGlsZCwgYXNDaGlsZCA9IF9iID09PSB2b2lkIDAgPyBmYWxzZSA6IF9iLCBjbGFzc05hbWUgPSBfYS5jbGFzc05hbWUsIHByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiLCBcImFzQ2hpbGRcIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJidXR0b25cIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyByZWY6IHJlZiwgY2xhc3NOYW1lOiBhc0NoaWxkID8gY2xhc3NOYW1lIDogXCJiYXNlLWJ1dHRvbiBcIi5jb25jYXQoY2xhc3NOYW1lICE9PSBudWxsICYmIGNsYXNzTmFtZSAhPT0gdm9pZCAwID8gY2xhc3NOYW1lIDogXCJcIikgfSwgcHJvcHMsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59KTtcbmV4cG9ydCBkZWZhdWx0IEJhc2VCdXR0b247XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG52YXIgTG9hZGluZyA9IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyXCIsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1yaW5nXCIsIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgTG9hZGluZztcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IEJhc2VCdXR0b24gZnJvbSBcIi4vYmFzZS1idXR0b25cIjtcbmltcG9ydCBMb2FkaW5nIGZyb20gXCIuLi9sb2FkaW5nL2xvYWRpbmdcIjtcbnZhciBDVEFCdXR0b24gPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdGV4dCA9IHByb3BzLnRleHQsIF9hID0gcHJvcHMudmFyaWFudCwgdmFyaWFudCA9IF9hID09PSB2b2lkIDAgPyBcInByaW1hcnlcIiA6IF9hLCBfYiA9IHByb3BzLnNpemUsIHNpemUgPSBfYiA9PT0gdm9pZCAwID8gXCJtXCIgOiBfYiwgX2MgPSBwcm9wcy5kaXNhYmxlZCwgZGlzYWJsZWQgPSBfYyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYywgX2QgPSBwcm9wcy5sb2FkaW5nLCBsb2FkaW5nID0gX2QgPT09IHZvaWQgMCA/IGZhbHNlIDogX2QsIGxlZnRJY29uID0gcHJvcHMubGVmdEljb24sIHJpZ2h0SWNvbiA9IHByb3BzLnJpZ2h0SWNvbjtcbiAgICByZXR1cm4gKF9qc3goQmFzZUJ1dHRvbiwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGN0YS1idXR0b24gXCIuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogdmFyaWFudCwgXCIgXCIpLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChMb2FkaW5nLCB7fSkpIDogKF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgIGp1c3RpZnlDb250ZW50OiBcInNwYWNlLWJldHdlZW5cIixcbiAgICAgICAgICAgICAgICBnYXA6IFwiMTBweFwiLFxuICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtsZWZ0SWNvbiwgdGV4dCwgcmlnaHRJY29uXSB9KSkgfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBDVEFCdXR0b247XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuL2Jhc2UtYmFkZ2VcIjtcbnZhciBPcHRpb25CYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBvcHRpb24gPSBwcm9wcy5vcHRpb247XG4gICAgcmV0dXJuIF9qc3goQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgY2hpbGRyZW46IG9wdGlvbiB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgT3B0aW9uQmFkZ2U7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuL2Jhc2UtYmFkZ2VcIjtcbnZhciBJY29uVGV4dEJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGljb24gPSBwcm9wcy5pY29uLCB0ZXh0ID0gcHJvcHMudGV4dDtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VCYWRnZSwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dEJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2JhZGdlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2JhZGdlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi9iYWRnZS1zdHlsZS5jc3NcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuL2Jhc2UtYmFkZ2VcIjtcbnZhciBJY29uVGV4dE9wdGlvbkJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGljb24gPSBwcm9wcy5pY29uLCB0ZXh0ID0gcHJvcHMudGV4dCwgb3B0aW9uID0gcHJvcHMub3B0aW9uO1xuICAgIHJldHVybiAoX2pzeHMoQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgY2xhc3NOYW1lOiBcImljb24tdGV4dC1vcHRpb25cIiwgY2hpbGRyZW46IFtfanN4cyhcInNwYW5cIiwgeyBjaGlsZHJlbjogW2ljb24sIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHRleHQgfSldIH0pLCBvcHRpb25dIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgSWNvblRleHRPcHRpb25CYWRnZTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90YWJsZS1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90YWJsZS1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vdGFibGUtc3R5bGUuY3NzXCI7XG52YXIgVGFibGVSb290ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgcmV0dXJuIF9qc3goXCJ0YWJsZVwiLCB7IGNsYXNzTmFtZTogXCJiYXNlLXRhYmxlIHRhYmxlLXJvb3RcIiwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbnZhciBUYWJsZUhlYWRlciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBfYSA9IHByb3BzLmp1c3RpZnksIGp1c3RpZnkgPSBfYSA9PT0gdm9pZCAwID8gXCJjZW50ZXJcIiA6IF9hLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImp1c3RpZnlcIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHJldHVybiAoX2pzeChcInRoZWFkXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtaGVhZGVyIFwiLmNvbmNhdChqdXN0aWZ5LCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSksIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSk7XG59O1xudmFyIFRhYmxlUm93ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtcImJhc2UtdGFibGVcIiwgXCJ0YWJsZS1yb3dcIiwgY2xhc3NOYW1lXS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0clwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogY2xhc3NOYW1lcyB9LCByZXN0LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSkpO1xufTtcbnZhciBUYWJsZUJvZHkgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRib2R5XCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtYm9keVwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlQ2VsbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIGNsYXNzTmFtZXMgPSBbXCJiYXNlLXRhYmxlXCIsIFwidGFibGUtY2VsbFwiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRkXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xuVGFibGVSb290LkhlYWRlciA9IFRhYmxlSGVhZGVyO1xuVGFibGVSb290LkJvZHkgPSBUYWJsZUJvZHk7XG5UYWJsZVJvb3QuUm93ID0gVGFibGVSb3c7XG5UYWJsZVJvb3QuQ2VsbCA9IFRhYmxlQ2VsbDtcbmV4cG9ydCBkZWZhdWx0IFRhYmxlUm9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgVGFibGVSb290IGZyb20gXCIuL2Jhc2UtdGFibGVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuLi9idXR0b24vYmFzZS1idXR0b25cIjtcbnZhciBEYXRhVGFibGUgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgcm93cyA9IHByb3BzLnJvd3MsIGNvbHVtbnMgPSBwcm9wcy5jb2x1bW5zO1xuICAgIHZhciBfYSA9IHVzZVN0YXRlKHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuICh7IHJvdzogcm93LCBoaWRlOiBmYWxzZSB9KTsgfSkpLCBkaXNwbGF5Um93cyA9IF9hWzBdLCBzZXREaXNwbGF5Um93cyA9IF9hWzFdO1xuICAgIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldERpc3BsYXlSb3dzKHJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHtcbiAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICByZXR1cm4gKHtcbiAgICAgICAgICAgICAgICByb3c6IHJvdyxcbiAgICAgICAgICAgICAgICBoaWRlOiAoX2IgPSAoX2EgPSBkaXNwbGF5Um93cy5maW5kKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtLnJvdy5pZCA9PT0gcm93LmlkOyB9KSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmhpZGUpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pKTtcbiAgICB9LCBbcm93c10pO1xuICAgIHJldHVybiAoX2pzeHMoVGFibGVSb290LCB7IGNoaWxkcmVuOiBbX2pzeChUYWJsZVJvb3QuSGVhZGVyLCB7IGNsYXNzTmFtZTogXCJkYXRhLXRhYmxlXCIsIGNoaWxkcmVuOiBfanN4KFRhYmxlUm9vdC5Sb3csIHsgY2hpbGRyZW46IGRpc3BsYXlSb3dzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IGNsYXNzTmFtZTogaXRlbS5oaWRlID8gXCJoaWRlXCIgOiBcIlwiLCBjaGlsZHJlbjogX2pzeChCYXNlQnV0dG9uLCB7IGFzQ2hpbGQ6IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IGl0ZW0ucm93KS5vbkNsaWNrUm93KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgaXRlbS5yb3cuaWQpOyB9LCBjaGlsZHJlbjogaXRlbS5yb3cudmFsdWUgfSkgfSwgaXRlbS5yb3cuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkgfSksIF9qc3goVGFibGVSb290LkJvZHksIHsgY2hpbGRyZW46IGNvbHVtbnMubWFwKGZ1bmN0aW9uIChjb2x1bW4sIGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChUYWJsZVJvb3QuUm93LCB7IGNsYXNzTmFtZTogXCJkYXRhLXRhYmxlXCIsIGNoaWxkcmVuOiBkaXNwbGF5Um93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIChfanN4KFRhYmxlUm9vdC5DZWxsLCB7IGNsYXNzTmFtZTogaXRlbS5oaWRlID8gXCJoaWRlXCIgOiBcIlwiLCBjaGlsZHJlbjogX2pzeChCYXNlQnV0dG9uLCB7IGFzQ2hpbGQ6IHRydWUsIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgdmFyIF9hLCBfYjsgcmV0dXJuIChfYiA9IChfYSA9IGNvbHVtbltpdGVtLnJvdy5pZF0pLm9uQ2xpY2tDZWxsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7IH0sIGNoaWxkcmVuOiBjb2x1bW5baXRlbS5yb3cuaWRdLnZhbHVlIH0pIH0sIGl0ZW0ucm93LmlkKSk7IH0pIH0sIGluZGV4KSk7XG4gICAgICAgICAgICAgICAgfSkgfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGU7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VTdGF0ZSwgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRMYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHJldHVybiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGNoaWxkcmVuOiB0ZXh0IH0pO1xufTtcbnZhciBJbnB1dEZpZWxkID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcGxhY2Vob2xkZXIgPSBwcm9wcy5wbGFjZWhvbGRlciwgbmFtZSA9IHByb3BzLm5hbWUsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2U7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChUZXh0RmllbGRDb250ZXh0KSwgY29udmVydEVycm9yTWVzc2FnZSA9IF9hLmNvbnZlcnRFcnJvck1lc3NhZ2UsIGNvbnZlcnRFcnJvclN0YXRlID0gX2EuY29udmVydEVycm9yU3RhdGUsIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnM7XG4gICAgdmFyIHZhbGlkYXRlSW5wdXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICB2YXIgZmFpbGVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLmZpbmQoZnVuY3Rpb24gKHZhbGlkYXRpb24pIHsgcmV0dXJuICF2YWxpZGF0aW9uLnJ1bGUudGVzdCh2YWx1ZSk7IH0pO1xuICAgICAgICAgICAgaWYgKGZhaWxlZFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlKGZhaWxlZFZhbGlkYXRpb24ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZShcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiaW5wdXRcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlSW5wdXQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgICAgICB9IH0pKTtcbn07XG52YXIgSGVscGVyVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgX2EgPSBwcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hO1xuICAgIHZhciBfYiA9IHVzZUNvbnRleHQoVGV4dEZpZWxkQ29udGV4dCksIGVycm9yTWVzc2FnZSA9IF9iLmVycm9yTWVzc2FnZSwgaXNFcnJvciA9IF9iLmlzRXJyb3I7XG4gICAgdmFyIGVycm9yQ2xhc3NOYW1lID0gaXNFcnJvciA/IFwiZXJyb3JcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoZXJyb3JDbGFzc05hbWUpLCBjaGlsZHJlbjogZXJyb3JNZXNzYWdlICE9PSBudWxsICYmIGVycm9yTWVzc2FnZSAhPT0gdm9pZCAwID8gZXJyb3JNZXNzYWdlIDogdGV4dCB9KSk7XG59O1xudmFyIFRleHRGaWVsZENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICBjb252ZXJ0RXJyb3JTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LFxuICAgIHZhbGlkYXRpb25zOiBbXSxcbiAgICBlcnJvck1lc3NhZ2U6IFwiXCIsXG4gICAgY29udmVydEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKHZhbHVlKSB7IH0sXG59KTtcbnZhciBUZXh0RmllbGRSb290ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnMsIHdpZHRoID0gX2Eud2lkdGg7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUoZmFsc2UpLCBpc0Vycm9yID0gX2JbMF0sIHNldElzRXJyb3IgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VTdGF0ZShcIlwiKSwgZXJyb3JNZXNzYWdlID0gX2NbMF0sIHNldEVycm9yTWVzc2FnZSA9IF9jWzFdO1xuICAgIHZhciBjb252ZXJ0RXJyb3JTdGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzZXRJc0Vycm9yKHZhbHVlKTtcbiAgICB9O1xuICAgIHZhciBjb252ZXJ0RXJyb3JNZXNzYWdlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHNldEVycm9yTWVzc2FnZSh2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcInRleHQtZmllbGQtcm9vdFwiLCBzdHlsZTogeyBkaXNwbGF5OiBcImJsb2NrXCIsIHdpZHRoOiBcIlwiLmNvbmNhdCh3aWR0aCwgXCJweFwiKSB9LCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNFcnJvcjogaXNFcnJvcixcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZTogY29udmVydEVycm9yU3RhdGUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2U6IGNvbnZlcnRFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcblRleHRGaWVsZFJvb3QuVGV4dExhYmVsID0gVGV4dExhYmVsO1xuVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkID0gSW5wdXRGaWVsZDtcblRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCA9IEhlbHBlclRleHQ7XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUZXh0RmllbGRSb290IGZyb20gXCIuL2Jhc2UtdGV4dC1maWVsZFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dEZpZWxkID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIF9iID0gX2Eud2lkdGgsIHdpZHRoID0gX2IgPT09IHZvaWQgMCA/IDM0MyA6IF9iLCBfYyA9IF9hLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlciA9IF9jID09PSB2b2lkIDAgPyBcIlwiIDogX2MsIF9kID0gX2EubmFtZSwgbmFtZSA9IF9kID09PSB2b2lkIDAgPyBcIlwiIDogX2QsIGhlbHBlclRleHQgPSBfYS5oZWxwZXJUZXh0LCBsYWJlbFRleHQgPSBfYS5sYWJlbFRleHQsIG9uQ2hhbmdlID0gX2Eub25DaGFuZ2U7XG4gICAgcmV0dXJuIChfanN4cyhUZXh0RmllbGRSb290LCB7IHZhbGlkYXRpb25zOiBbXSwgd2lkdGg6IHdpZHRoLCBjaGlsZHJlbjogW2xhYmVsVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LlRleHRMYWJlbCwgeyB0ZXh0OiBsYWJlbFRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgbGFiZWxcIiB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0LXdyYXBwZXJcIiwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXRcIiwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogb25DaGFuZ2UgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFRleHRGaWVsZFJvb3QgZnJvbSBcIi4vYmFzZS10ZXh0LWZpZWxkXCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0RmllbGRXaXRoRXJyb3IgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYS53aWR0aCwgd2lkdGggPSBfYiA9PT0gdm9pZCAwID8gMzQzIDogX2IsIF9jID0gX2EucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyID0gX2MgPT09IHZvaWQgMCA/IFwiXCIgOiBfYywgX2QgPSBfYS5uYW1lLCBuYW1lID0gX2QgPT09IHZvaWQgMCA/IFwiXCIgOiBfZCwgaGVscGVyVGV4dCA9IF9hLmhlbHBlclRleHQsIGxhYmVsVGV4dCA9IF9hLmxhYmVsVGV4dCwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucztcbiAgICByZXR1cm4gKF9qc3hzKFRleHRGaWVsZFJvb3QsIHsgd2lkdGg6IHdpZHRoLCB2YWxpZGF0aW9uczogdmFsaWRhdGlvbnMsIGNoaWxkcmVuOiBbbGFiZWxUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuVGV4dExhYmVsLCB7IHRleHQ6IGxhYmVsVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBsYWJlbFwiIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXQtd3JhcHBlclwiLCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRSb290LklucHV0RmllbGQsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dFwiLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiwgaXNFcnJvcjogdHJ1ZSB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRXaXRoRXJyb3I7XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IHZhciB1c2VFeHRlcm5hbFN0YXRlID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHByb3AgPSBfYS5wcm9wLCBoYW5kbGVyID0gX2EuaGFuZGxlciwgZGVmYXVsdFByb3AgPSBfYS5kZWZhdWx0UHJvcDtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcCksIGlubmVyU3RhdGUgPSBfYlswXSwgc2V0SW5uZXJTdGF0ZSA9IF9iWzFdO1xuICAgIHZhciBpc0NvbnRyb2xsZWRCeUV4dGVybmFsID0gcHJvcCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSA9IGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwgPyBwcm9wIDogaW5uZXJTdGF0ZTtcbiAgICB2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAoaGFuZGxlZFZhbHVlKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xsZWRCeUV4dGVybmFsKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGVyID0gaGFuZGxlZFZhbHVlO1xuICAgICAgICAgICAgdmFyIHZhbHVlXzEgPSB0eXBlb2YgaGFuZGxlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IHNldHRlcihwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcClcbiAgICAgICAgICAgICAgICA6IGhhbmRsZWRWYWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIgPT09IG51bGwgfHwgaGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGFuZGxlcih2YWx1ZV8xKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldElubmVyU3RhdGUoaGFuZGxlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBSYWRpb0J1dHRvbiA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBpZCA9IHByb3BzLmlkO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoUmFkaW9Db250ZXh0KSwgc2VsZWN0ZWQgPSBfYS5zZWxlY3RlZCwgb25DaGFuZ2UgPSBfYS5vbkNoYW5nZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KGNsYXNzTmFtZSksIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9uQ2hhbmdlKGlkKTsgfSwgY2hpbGRyZW46IGlkID09PSBzZWxlY3RlZCA/IGNoaWxkcmVuIDogbnVsbCB9KSk7XG59O1xudmFyIFJhZGlvSW5kaWNhdG9yID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBpZCA9IHByb3BzLmlkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIHNlbGVjdGVkID0gdXNlQ29udGV4dChSYWRpb0NvbnRleHQpLnNlbGVjdGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IHR5cGU6IFwicmFkaW9cIiwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KHNlbGVjdGVkID09PSBpZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCIsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hlY2tlZDogc2VsZWN0ZWQgPT09IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBSYWRpb0xhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImxhYmVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb09wdGlvbkdyb3VwID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcInVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBzZWxlY3RlZDogbnVsbCxcbiAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGlkKSB7IH0sXG59KTtcbnZhciBSYWRpb1Jvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsIF9hID0gcHJvcHMuc2VsZWN0ZWQsIHNlbGVjdGVkID0gX2EgPT09IHZvaWQgMCA/IG51bGwgOiBfYSwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlO1xuICAgIHZhciBfYiA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBzZWxlY3RlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IHNlbGVjdGVkLFxuICAgIH0pLCBzZWxlY3RlZElkID0gX2JbMF0sIHNldFNlbGVjdGVkSWQgPSBfYlsxXTtcbiAgICB2YXIgb25DaGFuZ2UgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRJZChpZCk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHNlbGVjdGVkOiBzZWxlY3RlZElkLCBvbkNoYW5nZTogb25DaGFuZ2UsIG9wdGlvbnM6IG9wdGlvbnMgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG5SYWRpb1Jvb3QuSW5kaWNhdG9yID0gUmFkaW9JbmRpY2F0b3I7XG5SYWRpb1Jvb3QuTGFiZWwgPSBSYWRpb0xhYmVsO1xuUmFkaW9Sb290Lk9wdGlvbkdyb3VwID0gUmFkaW9PcHRpb25Hcm91cDtcblJhZGlvUm9vdC5CdXR0b24gPSBSYWRpb0J1dHRvbjtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvUm9vdDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJhZGlvUm9vdCBmcm9tIFwiLi9iYXNlLXJhZGlvXCI7XG5pbXBvcnQgXCIuL3JhZGlvLXN0eWxlLmNzc1wiO1xudmFyIFJhZGlvID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHNlbGVjdGVkID0gcHJvcHMuc2VsZWN0ZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgIHJldHVybiAoX2pzeChSYWRpb1Jvb3QsIHsgb3B0aW9uczogb3B0aW9ucywgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkNoYW5nZTogb25DaGFuZ2UsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5PcHRpb25Hcm91cCwgeyBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tZ3JvdXBcIiwgY2hpbGRyZW46IG9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHsgcmV0dXJuIChfanN4cyhcImxpXCIsIHsgc3R5bGU6IHsgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIGdhcDogXCI2cHhcIiB9LCBjaGlsZHJlbjogW19qc3goUmFkaW9Sb290LkJ1dHRvbiwgeyBpZDogb3B0aW9uLmlkLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5JbmRpY2F0b3IsIHsgaWQ6IG9wdGlvbi5pZCwgYXNDaGlsZDogdHJ1ZSwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWluZGljYXRvclwiLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7fSkgfSkgfSksIF9qc3goUmFkaW9Sb290LkxhYmVsLCB7IGlkOiBvcHRpb24uaWQsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1sYWJlbFwiLCBjaGlsZHJlbjogb3B0aW9uLmxhYmVsIH0pXSB9LCBvcHRpb24uaWQpKTsgfSkgfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IFwiLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xudmFyIENoZWNrQm94TGFiZWwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgdmFyIGlkID0gdXNlQ29udGV4dChDaGVja0JveENvbnRleHQpLmlkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJsYWJlbFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGJhc2UtY2hlY2stYm94IGxhYmVsXCIsIGh0bWxGb3I6IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBDaGVja0JveElucHV0ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImFzQ2hpbGRcIiwgXCJjaGlsZHJlblwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChDaGVja0JveENvbnRleHQpLCBjaGVja2VkID0gX2EuY2hlY2tlZCwgdG9nZ2xlQ2hlY2tlZCA9IF9hLnRvZ2dsZUNoZWNrZWQsIGlkID0gX2EuaWQsIGRpc2FibGVkID0gX2EuZGlzYWJsZWQ7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImlucHV0XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIF9fYXNzaWduKHsgdHlwZTogXCJjaGVja2JveFwiLCBjaGVja2VkOiBjaGVja2VkLCBvbkNoYW5nZTogdG9nZ2xlQ2hlY2tlZCwgb25DbGljazogdG9nZ2xlQ2hlY2tlZCwgaWQ6IGlkLCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjaGVjay1ib3gtaW5wdXQgXCIuY29uY2F0KGNsYXNzTmFtZSwgXCIgXCIpLmNvbmNhdChjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiLCBcIiBcIikuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogXCJcIikgfSwgcmVzdCwgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn07XG52YXIgQ2hlY2tCb3hDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgY2hlY2tlZDogZmFsc2UsXG4gICAgdG9nZ2xlQ2hlY2tlZDogZnVuY3Rpb24gKCkgeyB9LFxuICAgIGlkOiBcIlwiLFxuICAgIGRpc2FibGVkOiBmYWxzZSxcbn0pO1xudmFyIENoZWNrQm94Um9vdCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBleHRlcm5hbENoZWNrZWQgPSBwcm9wcy5jaGVja2VkLCBleHRlcm5hbE9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIGlkID0gcHJvcHMuaWQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQ7XG4gICAgdmFyIF9hID0gdXNlRXh0ZXJuYWxTdGF0ZSh7XG4gICAgICAgIHByb3A6IGV4dGVybmFsQ2hlY2tlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IGV4dGVybmFsQ2hlY2tlZCAhPT0gbnVsbCAmJiBleHRlcm5hbENoZWNrZWQgIT09IHZvaWQgMCA/IGV4dGVybmFsQ2hlY2tlZCA6IGZhbHNlLFxuICAgIH0pLCBjaGVja2VkID0gX2FbMF0sIHNldENoZWNrZWQgPSBfYVsxXTtcbiAgICB2YXIgdG9nZ2xlQ2hlY2tlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0Q2hlY2tlZChmdW5jdGlvbiAocHJldikgeyByZXR1cm4gIXByZXY7IH0pO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNoZWNrLWJveC1yb290XCIsIGNoaWxkcmVuOiBfanN4KENoZWNrQm94Q29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBjaGVja2VkOiBjaGVja2VkLCB0b2dnbGVDaGVja2VkOiB0b2dnbGVDaGVja2VkLCBpZDogaWQsIGRpc2FibGVkOiBkaXNhYmxlZCB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcbkNoZWNrQm94Um9vdC5MYWJlbCA9IENoZWNrQm94TGFiZWw7XG5DaGVja0JveFJvb3QuSW5wdXQgPSBDaGVja0JveElucHV0O1xuZXhwb3J0IGRlZmF1bHQgQ2hlY2tCb3hSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vY2hlY2stYm94LXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG5pbXBvcnQgY2hlY2sgZnJvbSBcIi4uLy4uL2Fzc2V0cy9pY29ucy9jaGVjay5zdmdcIjtcbmltcG9ydCBDaGVja0JveFJvb3QgZnJvbSBcIi4vYmFzZS1jaGVjay1ib3hcIjtcbnZhciBDaGVja0JveCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGVja2VkID0gcHJvcHMuY2hlY2tlZCwgb25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSwgbGFiZWwgPSBwcm9wcy5sYWJlbCwgX2EgPSBwcm9wcy5pY29uU2l6ZSwgaWNvblNpemUgPSBfYSA9PT0gdm9pZCAwID8gMjQgOiBfYSwgaWQgPSBwcm9wcy5pZDtcbiAgICByZXR1cm4gKF9qc3goQ2hlY2tCb3hSb290LCB7IGlkOiBpZCwgY2hlY2tlZDogY2hlY2tlZCwgb25DaGFuZ2U6IG9uQ2hhbmdlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2hlY2stYm94XCIsIGNoaWxkcmVuOiBbX2pzeChDaGVja0JveFJvb3QuSW5wdXQsIHsgYXNDaGlsZDogdHJ1ZSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjaGVjay1ib3gtaW5wdXRcIiwgc3R5bGU6IHsgd2lkdGg6IFwiXCIuY29uY2F0KGljb25TaXplLCBcInB4XCIpLCBoZWlnaHQ6IFwiXCIuY29uY2F0KGljb25TaXplLCBcInB4XCIpIH0sIGNoaWxkcmVuOiBfanN4KFwiaW1nXCIsIHsgc3JjOiBjaGVjaywgYWx0OiBcImNoZWNrXCIgfSkgfSkgfSksIF9qc3goQ2hlY2tCb3hSb290LkxhYmVsLCB7IGNoaWxkcmVuOiBsYWJlbCB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94O1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vdGV4dC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xudmFyIFRleHQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdGV4dCA9IHByb3BzLnRleHQsIHNpemUgPSBwcm9wcy5zaXplLCB3ZWlnaHQgPSBwcm9wcy53ZWlnaHQsIGNvbG9yID0gcHJvcHMuY29sb3IsIHRleHRBbGlnbiA9IHByb3BzLnRleHRBbGlnbiwgdGV4dERlY29yYXRpb24gPSBwcm9wcy50ZXh0RGVjb3JhdGlvbiwgd29yZEJyZWFrID0gcHJvcHMud29yZEJyZWFrLCB3aGl0ZVNwYWNlID0gcHJvcHMud2hpdGVTcGFjZSwgYXMgPSBwcm9wcy5hcywgc3R5bGUgPSBwcm9wcy5zdHlsZSwgbWF4V2lkdGggPSBwcm9wcy5tYXhXaWR0aCwgX2EgPSBwcm9wcy5lbGxpcHNpcywgZWxsaXBzaXMgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYTtcbiAgICB2YXIgQ29tcCA9IGFzID8gYXMgOiBcInBcIjtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgYmFzZS10ZXh0IFwiLmNvbmNhdCgvXlxcZCt4bCQvLnRlc3Qoc2l6ZSkgPyBcInQtXCIuY29uY2F0KHNpemUpIDogc2l6ZSwgXCIgXCIpLmNvbmNhdCh3ZWlnaHQsIFwiIHRleHRBbGlnbi1cIikuY29uY2F0KHRleHRBbGlnbiwgXCIgdGV4dERlY29yYXRpb24tXCIpLmNvbmNhdCh0ZXh0RGVjb3JhdGlvbiwgXCIgd29yZEJyZWFrLVwiKS5jb25jYXQod29yZEJyZWFrLCBcIiB3aGl0ZVNwYWNlLVwiKS5jb25jYXQod2hpdGVTcGFjZSwgXCIgXCIpLmNvbmNhdChjb2xvciA/IFwiY29sb3ItXCIuY29uY2F0KGNvbG9yKSA6IFwiXCIpLCBzdHlsZTogX19hc3NpZ24oeyBvdmVyZmxvdzogZWxsaXBzaXMgPyBcImhpZGRlblwiIDogXCJpbmhlcml0XCIsIHRleHRPdmVyZmxvdzogZWxsaXBzaXMgPyBcImVsbGlwc2lzXCIgOiBcInVuc2V0XCIsIHdoaXRlU3BhY2U6IFwibm93cmFwXCIsIG1heFdpZHRoOiBcIlwiLmNvbmNhdChtYXhXaWR0aCwgXCJweFwiKSB9LCBzdHlsZSksIGNoaWxkcmVuOiB0ZXh0IH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0O1xuIiwiZXhwb3J0IHZhciBjb2xvcnMgPSB7XG4gICAgYmxhY2s6IFwiIzAwMDAwMFwiLFxuICAgIHdoaXRlOiBcIiNmZmZmZmZcIixcbiAgICBncmF5RmE6IFwiI2ZhZmFmYVwiLFxuICAgIGdyYXlGNDogXCIjZjRmNGY1XCIsXG4gICAgZ3JheUU0OiBcIiNlNGU0ZTdcIixcbiAgICBncmF5RDQ6IFwiI2Q0ZDRkOFwiLFxuICAgIGdyYXlBMTogXCIjYTFhMWFhXCIsXG4gICAgZ3JheTcxOiBcIiM3MTcxN2FcIixcbiAgICBncmF5NTI6IFwiIzUyNTI1YlwiLFxuICAgIGdyYXkzZjogXCIjM2YzZjQ2XCIsXG4gICAgZ3JheTI3OiBcIiMyNzI3MmFcIixcbiAgICBncmF5MTg6IFwiIzE4MTgxYlwiLFxuICAgIHB1cnBsZTM5OiBcIiMzOTFkNWRcIixcbiAgICBwdXJwbGU0YzogXCIjNGMyNzdjXCIsXG4gICAgcHVycGxlRGQ6IFwiI2RkZDFmMFwiLFxuICAgIHB1cnBsZUU5OiBcIiNlOWUwZjVcIixcbiAgICBwdXJwbGVGNDogXCIjZjRlZmZhXCIsXG4gICAgcHVycGxlNDE6IFwiIzRjMWQ4OFwiLFxuICAgIHB1cnBsZTk1OiBcIiM5NTdlYjRcIixcbiAgICBhY2NlbnRSZWQ6IFwiI2RmNTM1Y1wiLFxuICAgIGFjY2VudE1hZ2VudGE6IFwiI2IwMmU0Y1wiLFxuICAgIGFjY2VudEdyZWVuOiBcIiMyODlhM2FcIixcbn07XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEF2YXRhciB9IGZyb20gXCIuL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDVEFCdXR0b24gfSBmcm9tIFwiLi9jb21wb25lbnRzL2J1dHRvbi9jdGEtYnV0dG9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wdGlvbkJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvblRleHRCYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25UZXh0T3B0aW9uQmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1vcHRpb24tYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGF0YVRhYmxlIH0gZnJvbSBcIi4vY29tcG9uZW50cy90YWJsZS9kYXRhLXRhYmxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRGaWVsZCB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRGaWVsZFdpdGhFcnJvciB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3JcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW8gfSBmcm9tIFwiLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dFwiO1xuZXhwb3J0IHsgY29sb3JzIH0gZnJvbSBcIi4vc3R5bGVzL3Rva2VuL2NvbG9yc1wiO1xuIl0sIm5hbWVzIjpbIl9fYXNzaWduIiwiT2JqZWN0IiwiYXNzaWduIiwidCIsInMiLCJpIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInAiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsIl9fcmVzdCIsImUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJDaGlsZHJlbiIsImNsb25lRWxlbWVudCIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsImNvbXBvc2VSZWZzIiwicmVmcyIsIl9pIiwibm9kZSIsImZvckVhY2giLCJyZWYiLCJjdXJyZW50IiwiQ29tcG9zZXIiLCJfYSIsImNoaWxkcmVuIiwiY29tcG9zZXJQcm9wcyIsImNoaWxkQXJyYXkiLCJ0b0FycmF5IiwiRXJyb3IiLCJpc1ZhbGlkQ2hpbGQiLCJjaGlsZCIsImNoaWxkUmVmIiwiZ2V0RWxlbWVudFJlZiIsIm1lcmdlZFByb3BzIiwibWVyZ2VQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJjaGlsZFByb3BzIiwib3ZlcnJpZGVQcm9wcyIsIl9sb29wXzEiLCJwcm9wTmFtZSIsImNvbXBvc2VyUHJvcFZhbHVlIiwiY2hpbGRQcm9wVmFsdWUiLCJpc0hhbmRsZXIiLCJ0ZXN0IiwiYXJncyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZWxlbWVudCIsIl9iIiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwibWF5V2FybiIsImlzUmVhY3RXYXJuaW5nIiwianN4IiwiX2pzeCIsIkJhc2VCYWRnZSIsImFzQ2hpbGQiLCJib3JkZXJDb2xvciIsInRleHRDb2xvciIsInJhZGl1cyIsImJhY2tncm91bmRDb2xvciIsIl9jIiwic2l6ZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwiQ29tcCIsImNvbXBvc2VkQ2xhc3NOYW1lIiwiY29uY2F0IiwiYm9yZGVyUmFkaXVzIiwianN4cyIsIl9qc3hzIiwidXNlU3RhdGUiLCJkZWZhdWx0QXZhdGFyIiwiQXZhdGFyIiwic3JjIiwiYWx0IiwiYmFkZ2VPcHRpb24iLCJpc0ltYWdlRG93bmxvYWQiLCJzZXRJc0ltYWdlRG93bmxvYWQiLCJvbkxvYWQiLCJwb3NpdGlvbiIsInJpZ2h0IiwiYm90dG9tIiwiQmFzZUJ1dHRvbiIsIkxvYWRpbmciLCJDVEFCdXR0b24iLCJ0ZXh0IiwidmFyaWFudCIsImRpc2FibGVkIiwiX2QiLCJsb2FkaW5nIiwibGVmdEljb24iLCJyaWdodEljb24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZ2FwIiwiT3B0aW9uQmFkZ2UiLCJvcHRpb24iLCJJY29uVGV4dEJhZGdlIiwiaWNvbiIsIkljb25UZXh0T3B0aW9uQmFkZ2UiLCJUYWJsZVJvb3QiLCJUYWJsZUhlYWRlciIsImp1c3RpZnkiLCJyZXN0IiwiVGFibGVSb3ciLCJjbGFzc05hbWVzIiwiVGFibGVCb2R5IiwiVGFibGVDZWxsIiwiSGVhZGVyIiwiQm9keSIsIlJvdyIsIkNlbGwiLCJ1c2VFZmZlY3QiLCJEYXRhVGFibGUiLCJyb3dzIiwiY29sdW1ucyIsIm1hcCIsInJvdyIsImhpZGUiLCJkaXNwbGF5Um93cyIsInNldERpc3BsYXlSb3dzIiwiZmluZCIsIml0ZW0iLCJpZCIsIm9uQ2xpY2siLCJvbkNsaWNrUm93IiwidmFsdWUiLCJjb2x1bW4iLCJpbmRleCIsIm9uQ2xpY2tDZWxsIiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJUZXh0TGFiZWwiLCJJbnB1dEZpZWxkIiwicGxhY2Vob2xkZXIiLCJuYW1lIiwib25DaGFuZ2UiLCJUZXh0RmllbGRDb250ZXh0IiwiY29udmVydEVycm9yTWVzc2FnZSIsImNvbnZlcnRFcnJvclN0YXRlIiwidmFsaWRhdGlvbnMiLCJ2YWxpZGF0ZUlucHV0IiwiZmFpbGVkVmFsaWRhdGlvbiIsInZhbGlkYXRpb24iLCJydWxlIiwibWVzc2FnZSIsInRhcmdldCIsIkhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJpc0Vycm9yIiwiZXJyb3JDbGFzc05hbWUiLCJUZXh0RmllbGRSb290Iiwid2lkdGgiLCJzZXRJc0Vycm9yIiwic2V0RXJyb3JNZXNzYWdlIiwiUHJvdmlkZXIiLCJUZXh0RmllbGQiLCJoZWxwZXJUZXh0IiwibGFiZWxUZXh0IiwiVGV4dEZpZWxkV2l0aEVycm9yIiwidXNlRXh0ZXJuYWxTdGF0ZSIsInByb3AiLCJoYW5kbGVyIiwiZGVmYXVsdFByb3AiLCJpbm5lclN0YXRlIiwic2V0SW5uZXJTdGF0ZSIsImlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwiLCJ1bmRlZmluZWQiLCJzZXRWYWx1ZSIsImhhbmRsZWRWYWx1ZSIsInNldHRlciIsInZhbHVlXzEiLCJSYWRpb0J1dHRvbiIsIlJhZGlvQ29udGV4dCIsInNlbGVjdGVkIiwiUmFkaW9JbmRpY2F0b3IiLCJ0eXBlIiwiY2hlY2tlZCIsIlJhZGlvTGFiZWwiLCJSYWRpb09wdGlvbkdyb3VwIiwib3B0aW9ucyIsIlJhZGlvUm9vdCIsImV4dGVybmFsT25DaGFuZ2UiLCJzZWxlY3RlZElkIiwic2V0U2VsZWN0ZWRJZCIsIkluZGljYXRvciIsIkxhYmVsIiwiT3B0aW9uR3JvdXAiLCJCdXR0b24iLCJSYWRpbyIsImxhYmVsIiwiQ2hlY2tCb3hMYWJlbCIsIkNoZWNrQm94Q29udGV4dCIsImh0bWxGb3IiLCJDaGVja0JveElucHV0IiwidG9nZ2xlQ2hlY2tlZCIsIkNoZWNrQm94Um9vdCIsImV4dGVybmFsQ2hlY2tlZCIsInNldENoZWNrZWQiLCJwcmV2IiwiSW5wdXQiLCJjaGVjayIsIkNoZWNrQm94IiwiaWNvblNpemUiLCJoZWlnaHQiLCJUZXh0Iiwid2VpZ2h0IiwiY29sb3IiLCJ0ZXh0QWxpZ24iLCJ0ZXh0RGVjb3JhdGlvbiIsIndvcmRCcmVhayIsIndoaXRlU3BhY2UiLCJhcyIsIm1heFdpZHRoIiwiZWxsaXBzaXMiLCJ3aW5kb3ciLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsImNvbG9ycyIsImJsYWNrIiwid2hpdGUiLCJncmF5RmEiLCJncmF5RjQiLCJncmF5RTQiLCJncmF5RDQiLCJncmF5QTEiLCJncmF5NzEiLCJncmF5NTIiLCJncmF5M2YiLCJncmF5MjciLCJncmF5MTgiLCJwdXJwbGUzOSIsInB1cnBsZTRjIiwicHVycGxlRGQiLCJwdXJwbGVFOSIsInB1cnBsZUY0IiwicHVycGxlNDEiLCJwdXJwbGU5NSIsImFjY2VudFJlZCIsImFjY2VudE1hZ2VudGEiLCJhY2NlbnRHcmVlbiIsImRlZmF1bHQiLCJDaGVja2JveCJdLCJzb3VyY2VSb290IjoiIn0=
2859
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTywwR0FBMEcsS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsT0FBTyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksT0FBTyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFB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cEJDLGFBQWEsRUFBRSxTQUFTO0VBQ3hCQyxXQUFXLEVBQUU7QUFDakIsQ0FBQzs7QUN2QjhEO0FBQ087QUFDRztBQUNLO0FBQ2E7QUFDdEI7QUFDSztBQUNvQjtBQUNsQztBQUNXO0FBQ0wiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay91bml2ZXJzYWxNb2R1bGVEZWZpbml0aW9uIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvci5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vZXh0ZXJuYWwgdW1kIHtcInJvb3RcIjpcIlJlYWN0XCIsXCJjb21tb25qczJcIjpcInJlYWN0XCIsXCJjb21tb25qc1wiOlwicmVhY3RcIixcImFtZFwiOlwicmVhY3RcIixcInVtZFwiOlwicmVhY3RcIn0iLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL2V4dGVybmFsIHVtZCB7XCJyb290XCI6XCJqc3gtcnVudGltZVwiLFwiY29tbW9uanMyXCI6XCJyZWFjdC9qc3gtcnVudGltZVwiLFwiY29tbW9uanNcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJhbWRcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJ1bWRcIjpcInJlYWN0L2pzeC1ydW50aW1lXCJ9Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci1zdHlsZS5jc3M/NzYwMSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NvcmUvY29tcG9zZXIvaW5kZXgudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFzZS1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzP2U5ZjciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzcz82NmNhIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcz83NmJiIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2Jhc2UtYnV0dG9uLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3M/YjM5OSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vY3RhLWJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcz80YTg3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1zdHlsZS5jc3M/YjcyZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL2Jhc2UtdGFibGUudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzPzdjYzciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL2Jhc2UtdGV4dC1maWVsZC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3IudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZS50cyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL2Jhc2UtcmFkaW8udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzP2Y1ZDkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcz80NmVlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2Jhc2UtY2hlY2stYm94LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3gudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LXN0eWxlLmNzcz9kODdiIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3JzLnRzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKSwgcmVxdWlyZShcInJlYWN0XCIpKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtcInJlYWN0L2pzeC1ydW50aW1lXCIsIFwicmVhY3RcIl0sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGZhY3RvcnkocmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpLCByZXF1aXJlKFwicmVhY3RcIikpIDogZmFjdG9yeShyb290W1wianN4LXJ1bnRpbWVcIl0sIHJvb3RbXCJSZWFjdFwiXSk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShzZWxmLCAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMjI2X18sIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzExOV9fKSA9PiB7XG5yZXR1cm4gIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICYgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgJjp3aGVyZSgueGwpIHtcbiAgICB3aWR0aDogMTI0cHg7XG4gICAgaGVpZ2h0OiAxMjRweDtcbiAgfVxuXG4gICY6d2hlcmUoLmwpIHtcbiAgICB3aWR0aDogNzRweDtcbiAgICBoZWlnaHQ6IDc0cHg7XG4gIH1cblxuICAmOndoZXJlKC5tKSB7XG4gICAgd2lkdGg6IDU4cHg7XG4gICAgaGVpZ2h0OiA1OHB4O1xuICB9XG5cbiAgJjp3aGVyZSgucykge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5hdmF0YXItc2tlbGV0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLnNrZWxldG9uLWFuaW1hdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA1MCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxuICAgICAgKTtcbiAgICAgIGFuaW1hdGlvbjogc2hpbW1lciAxLjVzIGluZmluaXRlO1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQjtJQUNFLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7RUFDbEI7O0VBRUEsa0JBQWtCOztFQUVsQjtJQUNFLFlBQVk7SUFDWixhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsWUFBWTtJQUNaLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFlBQVk7O0lBRVo7TUFDRSxXQUFXO01BQ1gsWUFBWTtNQUNaOzs7OztPQUtDO01BQ0QsZ0NBQWdDO0lBQ2xDO0VBQ0Y7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYXZhdGFyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICYgZGl2IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG5cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIHdpZHRoOiAxMjRweDtcXG4gICAgaGVpZ2h0OiAxMjRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgd2lkdGg6IDc0cHg7XFxuICAgIGhlaWdodDogNzRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgd2lkdGg6IDU4cHg7XFxuICAgIGhlaWdodDogNThweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG5cXG4gIC5hdmF0YXItc2tlbGV0b24ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcblxcbiAgICAuc2tlbGV0b24tYW5pbWF0aW9uIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgICAgOTBkZWcsXFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLFxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSxcXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxcbiAgICAgICk7XFxuICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDEuNXMgaW5maW5pdGU7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBzaGltbWVyIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYmFkZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5cbiAgYm9yZGVyLXJhZGl1czogNDBweDtcblxuICAmOndoZXJlKC5sKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgucikge1xuICAgIGhlaWdodDogMzZweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5zKSB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSguc20pIHtcbiAgICBoZWlnaHQ6IDI4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICZbY2xhc3MqPVwiYmFja2dyb3VuZC1cIl0ge1xuICAgICYuYmFja2dyb3VuZC1ibGFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtZ3JheUZhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC1wdXJwbGUzOSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwidGV4dC1cIl0ge1xuICAgICYudGV4dC1ibGFjayB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYudGV4dC13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYudGV4dC1ncmF5RmEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYudGV4dC1wdXJwbGUzOSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cImJvcmRlci1cIl0ge1xuICAgICYuYm9yZGVyLWJsYWNrIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmJvcmRlci13aGl0ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUZhIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYm9yZGVyLWdyYXlFNCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIH1cbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gICYuaWNvbi10ZXh0LW9wdGlvbiA+IHNwYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7O0VBRVIsbUJBQW1COztFQUVuQjtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0U7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0VBQ0Y7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4Qjs7SUFFOUIsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsUUFBUTtFQUNWO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYmFkZ2Uge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogNHB4O1xcblxcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5tKSB7XFxuICAgIGhlaWdodDogNDBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucikge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnNtKSB7XFxuICAgIGhlaWdodDogMjhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJiYWNrZ3JvdW5kLVxcXCJdIHtcXG4gICAgJi5iYWNrZ3JvdW5kLWJsYWNrIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtd2hpdGUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC1ncmF5RmEge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLXB1cnBsZTM5IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dC1cXFwiXSB7XFxuICAgICYudGV4dC1ibGFjayB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYudGV4dC13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYudGV4dC1ncmF5RmEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYudGV4dC1wdXJwbGUzOSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJib3JkZXItXFxcIl0ge1xcbiAgICAmLmJvcmRlci1ibGFjayB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItd2hpdGUge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlGYSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1ncmF5RTQge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItcHVycGxlMzkge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG5cXG4gICAgcGFkZGluZzogMCAyMHB4O1xcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdGEtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmdob3N0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC53aGl0ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gIH1cblxuICAmOndoZXJlKC54bCkge1xuICAgIGhlaWdodDogNjBweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxnKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuICAmOndoZXJlKC5sKSB7XG4gICAgaGVpZ2h0OiA1NHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuICAmOndoZXJlKC5yKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5tKSB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5zKSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnhzKSB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgJjp3aGVyZSgucHJpbWFyeSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTRjKTtcbiAgICB9XG4gICAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZTkpO1xuICAgIH1cbiAgICAmOndoZXJlKC5naG9zdCkge1xuICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgICAmOndoZXJlKC53aGl0ZSkge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0U7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsMENBQTBDO0lBQzVDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLWJ1dHRvbiB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZ2FwOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uY3RhLWJ1dHRvbiB7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuXFxuICAmOndoZXJlKC5wcmltYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcXG4gIH1cXG4gICY6d2hlcmUoLnNlY29uZGFyeSkge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLmdob3N0KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLndoaXRlKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIGhlaWdodDogNjBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5sKSB7XFxuICAgIGhlaWdodDogNTRweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgucikge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA1MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5zKSB7XFxuICAgIGhlaWdodDogNDBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC54cykge1xcbiAgICBoZWlnaHQ6IDMwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjpob3ZlciB7XFxuICAgICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xcbiAgICB9XFxuICAgICY6d2hlcmUoLnNlY29uZGFyeSkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1lOSk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gICAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtY2hlY2stYm94IHtcbiAgJi5sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuXG4uY2hlY2stYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2hlY2stYm94LWlucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuXG4gICY6d2hlcmUoLnVuY2hlY2tlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAmOndoZXJlKC5jaGVja2VkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsU0FBUztBQUNYOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0RBQWdEOztFQUVoRDtJQUNFLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLDhDQUE4QztFQUNoRDs7RUFFQTtJQUNFLFlBQVk7SUFDWiw4Q0FBOEM7RUFDaEQ7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1jaGVjay1ib3gge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXFxuLmNoZWNrLWJveCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGdhcDogMTBweDtcXG59XFxuXFxuLmNoZWNrLWJveC1pbnB1dCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuXFxuICAmOndoZXJlKC51bmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0IHtcbiAgJjp3aGVyZSgueHNtKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgfVxuICAmOndoZXJlKC5zbSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICB9XG4gICY6d2hlcmUoLmJhc2UpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gIH1cbiAgJjp3aGVyZSgubGcpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxnKTtcbiAgfVxuICAmOndoZXJlKC54bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xuICB9XG4gICY6d2hlcmUoLnQtMnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcbiAgfVxuICAmOndoZXJlKC50LTN4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTN4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC00eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS00eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNXhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcbiAgfVxuICAmOndoZXJlKC50LTZ4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTZ4bCk7XG4gIH1cblxuICAmOndoZXJlKC5yZWd1bGFyKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuICB9XG4gICY6d2hlcmUoLm1lZGl1bSkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICB9XG4gICY6d2hlcmUoLnNlbWlib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5ib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmV4dHJhYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0QWxpZ24tXCJdIHtcbiAgICAmLnRleHRBbGlnbi1sZWZ0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgICYudGV4dEFsaWduLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0RGVjb3JhdGlvbi1cIl0ge1xuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cIndvcmRCcmVhay1cIl0ge1xuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XG4gICAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xuICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtd29yZDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xuICAgICAgd29yZC1icmVhazogYnJlYWstc3BhY2VzO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1hbGwge1xuICAgICAgd29yZC1icmVhazogYWxsO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwid2hpdGVTcGFjZS1cIl0ge1xuICAgICYud2hpdGVTcGFjZS1ub3JtYWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLW5vd3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmVMaW5lIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZVdyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiY29sb3ItXCJdIHtcbiAgICAmLmNvbG9yLWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5jb2xvci13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlGNCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RTQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUQ0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlBMSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5NzEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTUyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkzZiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5Mjcge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTE4IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNGMpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZGQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZTkpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtNDEpO1xuICAgIH1cbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtOTUpO1xuICAgIH1cbiAgICAmLmNvbG9yLWFjY2VudFJlZCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XG4gICAgfVxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjApO1xuICAgIH1cbiAgICAmLmNvbG9yLWFjY2VudEdyZWVuIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtZ3JlZW4tMjgpO1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLGdDQUFnQztJQUNoQyxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7O0VBRUE7SUFDRSx1Q0FBdUM7RUFDekM7RUFDQTtJQUNFLHNDQUFzQztFQUN4QztFQUNBO0lBQ0Usd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLHlDQUF5QztFQUMzQzs7RUFFQTtJQUNFO01BQ0UsZ0JBQWdCO0lBQ2xCO0lBQ0E7TUFDRSxrQkFBa0I7SUFDcEI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsMEJBQTBCO0lBQzVCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLDZCQUE2QjtJQUMvQjtJQUNBO01BQ0UseUJBQXlCO0lBQzNCO0lBQ0E7TUFDRSxzQkFBc0I7SUFDeEI7RUFDRjs7RUFFQTtJQUNFO01BQ0Usa0JBQWtCO0lBQ3BCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHNCQUFzQjtJQUN4QjtJQUNBO01BQ0Usb0JBQW9CO0lBQ3RCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHdCQUF3QjtJQUMxQjtJQUNBO01BQ0UsZUFBZTtJQUNqQjtFQUNGOztFQUVBO0lBQ0U7TUFDRSxtQkFBbUI7SUFDckI7SUFDQTtNQUNFLG1CQUFtQjtJQUNyQjtJQUNBO01BQ0UsZ0JBQWdCO0lBQ2xCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtFQUNGOztFQUVBO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UscUNBQXFDO0lBQ3ZDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRleHQge1xcbiAgJjp3aGVyZSgueHNtKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xcbiAgfVxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgfVxcbiAgJjp3aGVyZSguYmFzZSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgfVxcbiAgJjp3aGVyZSgubGcpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xcbiAgfVxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC0yeGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTJ4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTN4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0zeGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtM3hsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNHhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTR4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC01eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTV4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTZ4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS02eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNnhsKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnJlZ3VsYXIpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xcbiAgfVxcbiAgJjp3aGVyZSgubWVkaXVtKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcbiAgfVxcbiAgJjp3aGVyZSguc2VtaWJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSguZXh0cmFib2xkKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcInRleHRBbGlnbi1cXFwiXSB7XFxuICAgICYudGV4dEFsaWduLWxlZnQge1xcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgIH1cXG4gICAgJi50ZXh0QWxpZ24tY2VudGVyIHtcXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0RGVjb3JhdGlvbi1cXFwiXSB7XFxuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogYmxpbms7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3b3JkQnJlYWstXFxcIl0ge1xcbiAgICAmLndvcmRCcmVhay1ub3JtYWwge1xcbiAgICAgIHdvcmQtYnJlYWs6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1icmVha0FsbCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrV29yZCB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwQWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLWFsbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1rZWVwV29yZCB7XFxuICAgICAgd29yZC1icmVhazoga2VlcC13b3JkO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrU3BhY2VzIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1zcGFjZXM7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBhbGw7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ3aGl0ZVNwYWNlLVxcXCJdIHtcXG4gICAgJi53aGl0ZVNwYWNlLW5vcm1hbCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2Utbm93cmFwIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZUxpbmUge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlV3JhcCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwiY29sb3ItXFxcIl0ge1xcbiAgICAmLmNvbG9yLWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5jb2xvci13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUZhIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlGNCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RTQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUQ0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlBMSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5NzEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNzEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTUyIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkzZiB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0zZik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5Mjcge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMjcpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTE4IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTRjIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTRjKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZURkIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWRkKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUU5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWU5KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZUY0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLWY0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTQxIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTQxKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXB1cnBsZTk1IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTk1KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWFjY2VudFJlZCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xcbiAgICB9XFxuICAgICYuY29sb3ItYWNjZW50TWFnZW50YSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1tYWdlbnRhLWIwKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWFjY2VudEdyZWVuIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LWdyZWVuLTI4KTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5jb21wb25lbnQtbG9hZGluZy1jb250YWluZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogM3B4IHNvbGlkO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGFuaW1hdGlvbjogbGRzLXJpbmcgMS4ycyBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjUsIDEpIGluZmluaXRlO1xuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjNzO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDMpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xuICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZO0VBQ1osbUJBQW1CO0VBQ25CLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtBQUNkOztBQUVBO0VBQ0Usc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7RUFDWixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLDhEQUE4RDtFQUM5RCw0RUFBNEU7QUFDOUU7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRTtJQUNFLHVCQUF1QjtFQUN6QjtFQUNBO0lBQ0UseUJBQXlCO0VBQzNCO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmNvbXBvbmVudC1sb2FkaW5nLWNvbnRhaW5lciB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1yaW5nIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcge1xcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcXG4gIGRpc3BsYXk6IGJsb2NrO1xcbiAgcG9zaXRpb246IGFic29sdXRlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxuICBib3JkZXI6IDNweCBzb2xpZDtcXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gIGFuaW1hdGlvbjogbGRzLXJpbmcgMS4ycyBjdWJpYy1iZXppZXIoMC41LCAwLCAwLjUsIDEpIGluZmluaXRlO1xcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgxKSB7XFxuICBhbmltYXRpb24tZGVsYXk6IC0wLjQ1cztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgyKSB7XFxuICBhbmltYXRpb24tZGVsYXk6IC0wLjNzO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDMpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTVzO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDQpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XFxufVxcblxcbkBrZXlmcmFtZXMgbGRzLXJpbmcge1xcbiAgMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5yYWRpbyB7XG4gICY6d2hlcmUoLnJhZGlvLWdyb3VwKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1idXR0b24pIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDE4cHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWluZGljYXRvcikge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8tbGFiZWwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLFNBQVM7RUFDWDtFQUNBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsV0FBVztJQUNYLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsOENBQThDO0VBQ2hEO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsV0FBVztJQUNYLGtCQUFrQjtJQUNsQiw4Q0FBOEM7RUFDaEQ7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixzQ0FBc0M7SUFDdEMsaUNBQWlDO0VBQ25DO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLnJhZGlvIHtcXG4gICY6d2hlcmUoLnJhZGlvLWdyb3VwKSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxuICAgIGdhcDogMTZweDtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWJ1dHRvbikge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgd2lkdGg6IDE4cHg7XFxuICAgIGhlaWdodDogMThweDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8taW5kaWNhdG9yKSB7XFxuICAgIHdpZHRoOiA4cHg7XFxuICAgIGhlaWdodDogOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1sYWJlbCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtdGFibGUge1xuICAuaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gICYudGFibGUtcm9vdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgfVxuXG4gIC50YWJsZS1oZWFkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgJjp3aGVyZSguY2VudGVyKSB7XG4gICAgICAudGFibGUtY2VsbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cbiAgICB9XG4gICAgJjp3aGVyZSguc3RhcnQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIH1cbiAgICB9XG4gICAgJjp3aGVyZSguZW5kKSB7XG4gICAgICAudGFibGUtY2VsbCB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50YWJsZS1ib2R5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC50YWJsZS1yb3cge1xuICB9XG5cbiAgLnRhYmxlLWNlbGwge1xuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgaGVpZ2h0OiA2MHB4O1xuICB9XG59XG5cbi5kYXRhLXRhYmxlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xuICB9XG5cbiAgJjp3aGVyZSgudGFibGUtcm93KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsV0FBVzs7SUFFWDtNQUNFO1FBQ0Usa0JBQWtCO01BQ3BCO0lBQ0Y7SUFDQTtNQUNFO1FBQ0UsZ0JBQWdCO01BQ2xCO0lBQ0Y7SUFDQTtNQUNFO1FBQ0UsaUJBQWlCO01BQ25CO0lBQ0Y7RUFDRjs7RUFFQTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtFQUNBOztFQUVBO0lBQ0UsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixZQUFZO0VBQ2Q7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjs7RUFFbEI7SUFDRSxnQ0FBZ0M7RUFDbEM7O0VBRUE7SUFDRSxnQ0FBZ0M7O0lBRWhDO01BQ0UseUJBQXlCO0lBQzNCO0VBQ0Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS10YWJsZSB7XFxuICAuaGlkZSB7XFxuICAgIGRpc3BsYXk6IG5vbmU7XFxuICB9XFxuXFxuICAmLnRhYmxlLXJvb3Qge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcXG4gIH1cXG5cXG4gIC50YWJsZS1oZWFkZXIge1xcbiAgICB3aWR0aDogMTAwJTtcXG5cXG4gICAgJjp3aGVyZSguY2VudGVyKSB7XFxuICAgICAgLnRhYmxlLWNlbGwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAmOndoZXJlKC5zdGFydCkge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XFxuICAgICAgfVxcbiAgICB9XFxuICAgICY6d2hlcmUoLmVuZCkge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgfVxcblxcbiAgLnRhYmxlLWJvZHkge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG5cXG4gIC50YWJsZS1yb3cge1xcbiAgfVxcblxcbiAgLnRhYmxlLWNlbGwge1xcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcXG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcbiAgfVxcbn1cXG5cXG4uZGF0YS10YWJsZSB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuXFxuICAmOndoZXJlKC50YWJsZS1oZWFkZXIpIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XFxuICB9XFxuXFxuICAmOndoZXJlKC50YWJsZS1yb3cpIHtcXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XFxuXFxuICAgICY6aG92ZXIge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0LWZpZWxkIHtcbiAgJjp3aGVyZSgudGV4dC1maWVsZC1yb290KSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbn1cblxuLnRleHQtZmllbGQge1xuICAmLmxhYmVsIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJi5pbnB1dC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMjJweDtcbiAgICBwYWRkaW5nOiAxNHB4O1xuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuXG4gICYuaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXG4gICAgOjpwbGFjZWhvbGRlciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcbiAgICB9XG4gIH1cblxuICAmLmhlbHBlci10ZXh0IHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblxuICAgICYuZXJyb3Ige1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLFdBQVc7RUFDYjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxnQ0FBZ0M7SUFDaEMsb0NBQW9DO0lBQ3BDLG9DQUFvQztFQUN0Qzs7RUFFQTtJQUNFLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixhQUFhO0lBQ2IsZ0RBQWdEO0lBQ2hELGtCQUFrQjtJQUNsQixlQUFlO0lBQ2Ysa0JBQWtCO0VBQ3BCOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixhQUFhO0lBQ2IsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxzQ0FBc0M7O0lBRXRDO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7O0VBRUE7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHNDQUFzQzs7SUFFdEM7TUFDRSxpQ0FBaUM7SUFDbkM7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRleHQtZmllbGQge1xcbiAgJjp3aGVyZSgudGV4dC1maWVsZC1yb290KSB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcbn1cXG5cXG4udGV4dC1maWVsZCB7XFxuICAmLmxhYmVsIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJi5pbnB1dC13cmFwcGVyIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBoZWlnaHQ6IDIycHg7XFxuICAgIHBhZGRpbmc6IDE0cHg7XFxuICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgICBtYXJnaW4tdG9wOiA4cHg7XFxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcXG4gIH1cXG5cXG4gICYuaW5wdXQge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgYm9yZGVyOiBub25lO1xcbiAgICBvdXRsaW5lOiBub25lO1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcblxcbiAgICA6OnBsYWNlaG9sZGVyIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi5oZWxwZXItdGV4dCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuXFxuICAgICYuZXJyb3Ige1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1jb2xvci1wcmltYXJ5LWJsYWNrOiAjMDAwMDAwO1xuICAtLWNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhOiAjZmFmYWZhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mNDogI2Y0ZjRmNTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZTQ6ICNlNGU0ZTc7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0OiAjZDRkNGQ4O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1hMTogI2ExYTFhYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNzE6ICM3MTcxN2E7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyOiAjNTI1MjViO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0zZjogIzNmM2Y0NjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMjc6ICMyNzI3MmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4OiAjMTgxODFiO1xuXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTM5OiAjMzkxZDVkO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00YzogIzRjMjc3YztcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZGQ6ICNkZGQxZjA7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWU5OiAjZTllMGY1O1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1mNDogI2Y0ZWZmYTtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNDE6ICM0YzFkODg7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTk1OiAjOTU3ZWI0O1xuXG4gIC0tY29sb3ItYWNjZW50LXJlZC1kZjogI2RmNTM1YztcbiAgLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMDogI2IwMmU0YztcbiAgLS1jb2xvci1hY2NlbnQtZ3JlZW4tMjg6ICMyODlhM2E7XG5cbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZTQ6ICNlNGU0ZTc7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcblxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLDhCQUE4QjtFQUM5Qiw4QkFBOEI7RUFDOUIsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDhCQUE4QjtFQUM5QixrQ0FBa0M7RUFDbEMsZ0NBQWdDOztFQUVoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQzs7RUFFaEMsNkJBQTZCO0FBQy9CXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5udXJpLXRoZW1lIHtcXG4gIC0tY29sb3ItcHJpbWFyeS1ibGFjazogIzAwMDAwMDtcXG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhOiAjZmFmYWZhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZjQ6ICNmNGY0ZjU7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0OiAjZDRkNGQ4O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktYTE6ICNhMWExYWE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyOiAjNTI1MjViO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktM2Y6ICMzZjNmNDY7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4OiAjMTgxODFiO1xcblxcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00YzogIzRjMjc3YztcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWRkOiAjZGRkMWYwO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1mNDogI2Y0ZWZmYTtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTQxOiAjNGMxZDg4O1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XFxuXFxuICAtLWNvbG9yLWFjY2VudC1yZWQtZGY6ICNkZjUzNWM7XFxuICAtLWNvbG9yLWFjY2VudC1tYWdlbnRhLWIwOiAjYjAyZTRjO1xcbiAgLS1jb2xvci1hY2NlbnQtZ3JlZW4tMjg6ICMyODlhM2E7XFxuXFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWY3OiAjZjdmN2Y4O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZmY6ICNmZmZmZmY7XFxuXFxuICAtLWNvbG9yLWV0Yy1ob3Zlci1lZTogI2VlZWVlZTtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9naC9vcmlvbmNhY3R1cy9wcmV0ZW5kYXJkQHYxLjMuOC9kaXN0L3dlYi9zdGF0aWMvcHJldGVuZGFyZC5jc3MpO1wiXSk7XG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIFwiQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bzozMDAsNDAwLDUwMCw3MDAmZGlzcGxheT1zd2FwKTtcIl0pO1xuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBcIkBpbXBvcnQgdXJsKGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnMpO1wiXSk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTRweDtcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMHB4O1xuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcbiAgLS1mb250LXNpemUtNHhsOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcblxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1iYXNlOiAyMnB4O1xuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xuICAtLWxpbmUtaGVpZ2h0LTJ4bDogMzJweDtcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xuICAtLWxpbmUtaGVpZ2h0LTV4bDogNjZweDtcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XG5cbiAgLS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG5cbiAgZm9udC1mYW1pbHk6IFwiVHdlbW9qaSBDb3VudHJ5IEZsYWdzXCIsIFwiUHJldGVuZGFyZFwiLCBQcmV0ZW5kYXJkLCAtYXBwbGUtc3lzdGVtLFxuICAgIEJsaW5rTWFjU3lzdGVtRm9udCwgc3lzdGVtLXVpLCBSb2JvdG8sIFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJTZWdvZSBVSVwiLFxuICAgIFwiQXBwbGUgU0QgR290aGljIE5lb1wiLCBcIk5vdG8gU2FucyBLUlwiLCBcIk1hbGd1biBHb3RoaWNcIiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLFxuICAgIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIsIHNhbnMtc2VyaWY7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFJQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjs7RUFFckIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCOztFQUV2QiwwQkFBMEI7RUFDMUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsNEJBQTRCOztFQUU1Qjs7O3VFQUdxRTtBQUN2RVwiLFwic291cmNlc0NvbnRlbnRcIjpbXCJAaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL29yaW9uY2FjdHVzL3ByZXRlbmRhcmRAdjEuMy44L2Rpc3Qvd2ViL3N0YXRpYy9wcmV0ZW5kYXJkLmNzc1xcXCIpO1xcbkBpbXBvcnQgdXJsKFxcXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvOjMwMCw0MDAsNTAwLDcwMCZkaXNwbGF5PXN3YXBcXFwiKTtcXG5AaW1wb3J0IHVybChcXFwiaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlhbCtJY29uc1xcXCIpO1xcblxcbi5udXJpLXRoZW1lIHtcXG4gIC0tZm9udC1zaXplLXhzbTogMTJweDtcXG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcXG4gIC0tZm9udC1zaXplLWxnOiAxOHB4O1xcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XFxuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XFxuICAtLWZvbnQtc2l6ZS0zeGw6IDMwcHg7XFxuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XFxuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XFxuICAtLWZvbnQtc2l6ZS02eGw6IDYwcHg7XFxuXFxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtc206IDE4cHg7XFxuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XFxuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xcbiAgLS1saW5lLWhlaWdodC14bDogMjhweDtcXG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTR4bDogNDNweDtcXG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XFxuXFxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcXG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XFxuICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XFxuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcXG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XFxuXFxuICBmb250LWZhbWlseTogXFxcIlR3ZW1vamkgQ291bnRyeSBGbGFnc1xcXCIsIFxcXCJQcmV0ZW5kYXJkXFxcIiwgUHJldGVuZGFyZCwgLWFwcGxlLXN5c3RlbSxcXG4gICAgQmxpbmtNYWNTeXN0ZW1Gb250LCBzeXN0ZW0tdWksIFJvYm90bywgXFxcIkhlbHZldGljYSBOZXVlXFxcIiwgXFxcIlNlZ29lIFVJXFxcIixcXG4gICAgXFxcIkFwcGxlIFNEIEdvdGhpYyBOZW9cXFwiLCBcXFwiTm90byBTYW5zIEtSXFxcIiwgXFxcIk1hbGd1biBHb3RoaWNcXFwiLCBcXFwiQXBwbGUgQ29sb3IgRW1vamlcXFwiLFxcbiAgICBcXFwiU2Vnb2UgVUkgRW1vamlcXFwiLCBcXFwiU2Vnb2UgVUkgU3ltYm9sXFxcIiwgXFxcIk5vdG8gQ29sb3IgRW1vamlcXFwiLCBzYW5zLXNlcmlmO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107XG5cbiAgLy8gcmV0dXJuIHRoZSBsaXN0IG9mIG1vZHVsZXMgYXMgY3NzIHN0cmluZ1xuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBjb250ZW50ICs9IGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcoaXRlbSk7XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjb250ZW50O1xuICAgIH0pLmpvaW4oXCJcIik7XG4gIH07XG5cbiAgLy8gaW1wb3J0IGEgbGlzdCBvZiBtb2R1bGVzIGludG8gdGhlIGxpc3RcbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cbiAgICB2YXIgYWxyZWFkeUltcG9ydGVkTW9kdWxlcyA9IHt9O1xuICAgIGlmIChkZWR1cGUpIHtcbiAgICAgIGZvciAodmFyIGsgPSAwOyBrIDwgdGhpcy5sZW5ndGg7IGsrKykge1xuICAgICAgICB2YXIgaWQgPSB0aGlzW2tdWzBdO1xuICAgICAgICBpZiAoaWQgIT0gbnVsbCkge1xuICAgICAgICAgIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaWRdID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKHZhciBfayA9IDA7IF9rIDwgbW9kdWxlcy5sZW5ndGg7IF9rKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2tdKTtcbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgbGF5ZXIgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtWzVdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs1XSA9IGxheWVyO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobWVkaWEpIHtcbiAgICAgICAgaWYgKCFpdGVtWzJdKSB7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGxpc3QucHVzaChpdGVtKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBsaXN0O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoaXRlbSkge1xuICB2YXIgY29udGVudCA9IGl0ZW1bMV07XG4gIHZhciBjc3NNYXBwaW5nID0gaXRlbVszXTtcbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cbiAgaWYgKHR5cGVvZiBidG9hID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICB2YXIgYmFzZTY0ID0gYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoY3NzTWFwcGluZykpKSk7XG4gICAgdmFyIGRhdGEgPSBcInNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LFwiLmNvbmNhdChiYXNlNjQpO1xuICAgIHZhciBzb3VyY2VNYXBwaW5nID0gXCIvKiMgXCIuY29uY2F0KGRhdGEsIFwiICovXCIpO1xuICAgIHJldHVybiBbY29udGVudF0uY29uY2F0KFtzb3VyY2VNYXBwaW5nXSkuam9pbihcIlxcblwiKTtcbiAgfVxuICByZXR1cm4gW2NvbnRlbnRdLmpvaW4oXCJcXG5cIik7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgc3R5bGVzSW5ET00gPSBbXTtcbmZ1bmN0aW9uIGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpIHtcbiAgdmFyIHJlc3VsdCA9IC0xO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbmZ1bmN0aW9uIG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKSB7XG4gIHZhciBpZENvdW50TWFwID0ge307XG4gIHZhciBpZGVudGlmaWVycyA9IFtdO1xuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcbiAgICBpZiAoaW5kZXhCeUlkZW50aWZpZXIgIT09IC0xKSB7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0ucmVmZXJlbmNlcysrO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnVwZGF0ZXIob2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIHVwZGF0ZXIgPSBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKTtcbiAgICAgIG9wdGlvbnMuYnlJbmRleCA9IGk7XG4gICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoaSwgMCwge1xuICAgICAgICBpZGVudGlmaWVyOiBpZGVudGlmaWVyLFxuICAgICAgICB1cGRhdGVyOiB1cGRhdGVyLFxuICAgICAgICByZWZlcmVuY2VzOiAxXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWRlbnRpZmllcnMucHVzaChpZGVudGlmaWVyKTtcbiAgfVxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5mdW5jdGlvbiBhZGRFbGVtZW50U3R5bGUob2JqLCBvcHRpb25zKSB7XG4gIHZhciBhcGkgPSBvcHRpb25zLmRvbUFQSShvcHRpb25zKTtcbiAgYXBpLnVwZGF0ZShvYmopO1xuICB2YXIgdXBkYXRlciA9IGZ1bmN0aW9uIHVwZGF0ZXIobmV3T2JqKSB7XG4gICAgaWYgKG5ld09iaikge1xuICAgICAgaWYgKG5ld09iai5jc3MgPT09IG9iai5jc3MgJiYgbmV3T2JqLm1lZGlhID09PSBvYmoubWVkaWEgJiYgbmV3T2JqLnNvdXJjZU1hcCA9PT0gb2JqLnNvdXJjZU1hcCAmJiBuZXdPYmouc3VwcG9ydHMgPT09IG9iai5zdXBwb3J0cyAmJiBuZXdPYmoubGF5ZXIgPT09IG9iai5sYXllcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG4gIHJldHVybiB1cGRhdGVyO1xufVxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAobGlzdCwgb3B0aW9ucykge1xuICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgbGlzdCA9IGxpc3QgfHwgW107XG4gIHZhciBsYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucyk7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGUobmV3TGlzdCkge1xuICAgIG5ld0xpc3QgPSBuZXdMaXN0IHx8IFtdO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG4gICAgdmFyIG5ld0xhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShuZXdMaXN0LCBvcHRpb25zKTtcbiAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgX2krKykge1xuICAgICAgdmFyIF9pZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW19pXTtcbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG4gICAgICBpZiAoc3R5bGVzSW5ET01bX2luZGV4XS5yZWZlcmVuY2VzID09PSAwKSB7XG4gICAgICAgIHN0eWxlc0luRE9NW19pbmRleF0udXBkYXRlcigpO1xuICAgICAgICBzdHlsZXNJbkRPTS5zcGxpY2UoX2luZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpO1xuXG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIHJldHVybiBoZWFkIG9mIGlmcmFtZSBpbnN0ZWFkIG9mIGlmcmFtZSBpdHNlbGZcbiAgICBpZiAod2luZG93LkhUTUxJRnJhbWVFbGVtZW50ICYmIHN0eWxlVGFyZ2V0IGluc3RhbmNlb2Ygd2luZG93LkhUTUxJRnJhbWVFbGVtZW50KSB7XG4gICAgICB0cnkge1xuICAgICAgICAvLyBUaGlzIHdpbGwgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFjY2VzcyB0byBpZnJhbWUgaXMgYmxvY2tlZFxuICAgICAgICAvLyBkdWUgdG8gY3Jvc3Mtb3JpZ2luIHJlc3RyaWN0aW9uc1xuICAgICAgICBzdHlsZVRhcmdldCA9IHN0eWxlVGFyZ2V0LmNvbnRlbnREb2N1bWVudC5oZWFkO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAgICAgICBzdHlsZVRhcmdldCA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG4gIHJldHVybiBtZW1vW3RhcmdldF07XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0QnlTZWxlY3RvcihpbnNlcnQsIHN0eWxlKSB7XG4gIHZhciB0YXJnZXQgPSBnZXRUYXJnZXQoaW5zZXJ0KTtcbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG4gIHRhcmdldC5hcHBlbmRDaGlsZChzdHlsZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydEJ5U2VsZWN0b3I7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpIHtcbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic3R5bGVcIik7XG4gIG9wdGlvbnMuc2V0QXR0cmlidXRlcyhlbGVtZW50LCBvcHRpb25zLmF0dHJpYnV0ZXMpO1xuICBvcHRpb25zLmluc2VydChlbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xuICByZXR1cm4gZWxlbWVudDtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuICBpZiAobm9uY2UpIHtcbiAgICBzdHlsZUVsZW1lbnQuc2V0QXR0cmlidXRlKFwibm9uY2VcIiwgbm9uY2UpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlczsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaikge1xuICB2YXIgY3NzID0gXCJcIjtcbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIkBtZWRpYSBcIi5jb25jYXQob2JqLm1lZGlhLCBcIiB7XCIpO1xuICB9XG4gIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2Ygb2JqLmxheWVyICE9PSBcInVuZGVmaW5lZFwiO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG4gIGNzcyArPSBvYmouY3NzO1xuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICB2YXIgc291cmNlTWFwID0gb2JqLnNvdXJjZU1hcDtcbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9XG5cbiAgLy8gRm9yIG9sZCBJRVxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG4gIG9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG59XG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgc3R5bGVFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50KTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBkb21BUEkob3B0aW9ucykge1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKCkge30sXG4gICAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHt9XG4gICAgfTtcbiAgfVxuICB2YXIgc3R5bGVFbGVtZW50ID0gb3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucyk7XG4gIHJldHVybiB7XG4gICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUob2JqKSB7XG4gICAgICBhcHBseShzdHlsZUVsZW1lbnQsIG9wdGlvbnMsIG9iaik7XG4gICAgfSxcbiAgICByZW1vdmU6IGZ1bmN0aW9uIHJlbW92ZSgpIHtcbiAgICAgIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpO1xuICAgIH1cbiAgfTtcbn1cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cbiAgICBzdHlsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY3NzKSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc3R5bGVUYWdUcmFuc2Zvcm07IiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18xMTlfXzsiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzIyNl9fOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0aWQ6IG1vZHVsZUlkLFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm5jID0gdW5kZWZpbmVkOyIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9hdmF0YXItc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYXZhdGFyLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBDaGlsZHJlbiwgY2xvbmVFbGVtZW50LCBmb3J3YXJkUmVmLCBpc1ZhbGlkRWxlbWVudCwgfSBmcm9tIFwicmVhY3RcIjtcbmZ1bmN0aW9uIGNvbXBvc2VSZWZzKCkge1xuICAgIHZhciByZWZzID0gW107XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgcmVmc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgIH1cbiAgICByZXR1cm4gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgcmVmcy5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZiA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZihub2RlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG59XG52YXIgQ29tcG9zZXIgPSBmb3J3YXJkUmVmKGZ1bmN0aW9uIChfYSwgcmVmKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIGNvbXBvc2VyUHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCJdKTtcbiAgICB2YXIgY2hpbGRBcnJheSA9IENoaWxkcmVuLnRvQXJyYXkoY2hpbGRyZW4pO1xuICAgIGlmIChjaGlsZEFycmF5Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ29tcG9zZXIgY2FuIG9ubHkgaGF2ZSBvbmUgY2hpbGRcIik7XG4gICAgfVxuICAgIHZhciBpc1ZhbGlkQ2hpbGQgPSBpc1ZhbGlkRWxlbWVudChjaGlsZEFycmF5WzBdKTtcbiAgICBpZiAoIWlzVmFsaWRDaGlsZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJjaGlsZCBzaG91bGQgYmUgUmVhY3Qgbm9kZSFcIik7XG4gICAgfVxuICAgIHZhciBjaGlsZCA9IGNoaWxkQXJyYXlbMF07XG4gICAgdmFyIGNoaWxkUmVmID0gZ2V0RWxlbWVudFJlZihjaGlsZCk7XG4gICAgdmFyIG1lcmdlZFByb3BzID0gbWVyZ2VQcm9wcyhjb21wb3NlclByb3BzLCBjaGlsZC5wcm9wcyk7XG4gICAgcmV0dXJuIGNsb25lRWxlbWVudChjaGlsZCwgX19hc3NpZ24oX19hc3NpZ24oe30sIG1lcmdlZFByb3BzKSwgeyByZWY6IHJlZiA/IGNvbXBvc2VSZWZzKHJlZiwgY2hpbGRSZWYpIDogY2hpbGRSZWYgfSkpO1xufSk7XG5Db21wb3Nlci5kaXNwbGF5TmFtZSA9IFwiQ29tcG9zZXJcIjtcbmZ1bmN0aW9uIG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGRQcm9wcykge1xuICAgIHZhciBvdmVycmlkZVByb3BzID0gX19hc3NpZ24oe30sIGNoaWxkUHJvcHMpO1xuICAgIHZhciBfbG9vcF8xID0gZnVuY3Rpb24gKHByb3BOYW1lKSB7XG4gICAgICAgIHZhciBjb21wb3NlclByb3BWYWx1ZSA9IGNvbXBvc2VyUHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICB2YXIgY2hpbGRQcm9wVmFsdWUgPSBjaGlsZFByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGlzSGFuZGxlciA9IC9eb25bQS1aXS8udGVzdChwcm9wTmFtZSk7XG4gICAgICAgIGlmIChpc0hhbmRsZXIpIHtcbiAgICAgICAgICAgIGlmIChjb21wb3NlclByb3BWYWx1ZSAmJiBjaGlsZFByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgYXJncyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgYXJndW1lbnRzLmxlbmd0aDsgX2krKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJnc1tfaV0gPSBhcmd1bWVudHNbX2ldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkUHJvcFZhbHVlLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvc2VyUHJvcFZhbHVlLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGNvbXBvc2VyUHJvcFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBjb21wb3NlclByb3BWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJzdHlsZVwiKSB7XG4gICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IF9fYXNzaWduKF9fYXNzaWduKHt9LCBjb21wb3NlclByb3BWYWx1ZSksIGNoaWxkUHJvcFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChwcm9wTmFtZSA9PT0gXCJjbGFzc05hbWVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBbY29tcG9zZXJQcm9wVmFsdWUsIGNoaWxkUHJvcFZhbHVlXVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgICAgICAuam9pbihcIiBcIik7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGZvciAodmFyIHByb3BOYW1lIGluIGNvbXBvc2VyUHJvcHMpIHtcbiAgICAgICAgX2xvb3BfMShwcm9wTmFtZSk7XG4gICAgfVxuICAgIHJldHVybiBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wcyksIG92ZXJyaWRlUHJvcHMpO1xufVxuZnVuY3Rpb24gZ2V0RWxlbWVudFJlZihlbGVtZW50KSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICB2YXIgZ2V0dGVyID0gKF9hID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlbGVtZW50LnByb3BzLCBcInJlZlwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldDtcbiAgICB2YXIgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgICBpZiAobWF5V2Fybikge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5yZWY7XG4gICAgfVxuICAgIGdldHRlciA9IChfYiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudCwgXCJyZWZcIikpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXQ7XG4gICAgbWF5V2FybiA9IGdldHRlciAmJiBcImlzUmVhY3RXYXJuaW5nXCIgaW4gZ2V0dGVyICYmIGdldHRlci5pc1JlYWN0V2FybmluZztcbiAgICBpZiAobWF5V2Fybikge1xuICAgICAgICByZXR1cm4gZWxlbWVudC5wcm9wcy5yZWY7XG4gICAgfVxuICAgIHJldHVybiAoZWxlbWVudC5wcm9wcy5yZWYgfHwgZWxlbWVudC5yZWYpO1xufVxuZXhwb3J0IGRlZmF1bHQgQ29tcG9zZXI7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuZXhwb3J0IHZhciBCYXNlQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgX2EgPSBwcm9wcy5hc0NoaWxkLCBhc0NoaWxkID0gX2EgPT09IHZvaWQgMCA/IGZhbHNlIDogX2EsIGJvcmRlckNvbG9yID0gcHJvcHMuYm9yZGVyQ29sb3IsIF9iID0gcHJvcHMudGV4dENvbG9yLCB0ZXh0Q29sb3IgPSBfYiA9PT0gdm9pZCAwID8gXCJibGFja1wiIDogX2IsIHJhZGl1cyA9IHByb3BzLnJhZGl1cywgYmFja2dyb3VuZENvbG9yID0gcHJvcHMuYmFja2dyb3VuZENvbG9yLCBfYyA9IHByb3BzLnNpemUsIHNpemUgPSBfYyA9PT0gdm9pZCAwID8gXCJsXCIgOiBfYywgc3R5bGUgPSBwcm9wcy5zdHlsZSwgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJkaXZcIjtcbiAgICB2YXIgY29tcG9zZWRDbGFzc05hbWUgPSBcIm51cmktdGhlbWUgXCIuY29uY2F0KGFzQ2hpbGQgPyBcIlwiIDogXCJiYXNlLWJhZGdlXCIsIFwiIFwiKS5jb25jYXQoc2l6ZSwgXCIgYm9yZGVyLVwiKS5jb25jYXQoYm9yZGVyQ29sb3IsIFwiIHRleHQtXCIpLmNvbmNhdCh0ZXh0Q29sb3IsIFwiIGJhY2tncm91bmQtXCIpLmNvbmNhdChiYWNrZ3JvdW5kQ29sb3IsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKTtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyBzdHlsZTogX19hc3NpZ24oeyBib3JkZXJSYWRpdXM6IFwiXCIuY29uY2F0KHJhZGl1cywgXCJweFwiKSB9LCBzdHlsZSksIGNsYXNzTmFtZTogY29tcG9zZWRDbGFzc05hbWUsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSk7XG59O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgXCIuL2F2YXRhci1zdHlsZS5jc3NcIjtcbmltcG9ydCB7IEJhc2VCYWRnZSB9IGZyb20gXCIuLi9iYWRnZS9iYXNlLWJhZGdlXCI7XG5pbXBvcnQgZGVmYXVsdEF2YXRhciBmcm9tIFwiLi4vLi4vYXNzZXRzL2ljb25zL2RlZmF1bHRBdmF0YXIuc3ZnXCI7XG52YXIgQXZhdGFyID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHNpemUgPSBwcm9wcy5zaXplLCBzcmMgPSBwcm9wcy5zcmMsIGFsdCA9IHByb3BzLmFsdCwgYmFkZ2VPcHRpb24gPSBwcm9wcy5iYWRnZU9wdGlvbjtcbiAgICB2YXIgX2EgPSB1c2VTdGF0ZShmYWxzZSksIGlzSW1hZ2VEb3dubG9hZCA9IF9hWzBdLCBzZXRJc0ltYWdlRG93bmxvYWQgPSBfYVsxXTtcbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBcIi5jb25jYXQoc2l6ZSksIGNoaWxkcmVuOiBbX2pzeChcImltZ1wiLCB7IHNyYzogc3JjICE9PSBudWxsICYmIHNyYyAhPT0gdm9pZCAwID8gc3JjIDogZGVmYXVsdEF2YXRhciwgYWx0OiBhbHQgIT09IG51bGwgJiYgYWx0ICE9PSB2b2lkIDAgPyBhbHQgOiBcImF2YXRhclwiLCBjbGFzc05hbWU6IFwiYXZhdGFyIFwiLmNvbmNhdChzaXplLCBcIiBcIikuY29uY2F0KCFpc0ltYWdlRG93bmxvYWQgPyBcImhpZGRlblwiIDogXCJcIiksIG9uTG9hZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNJbWFnZURvd25sb2FkKHRydWUpOyB9IH0pLCAhaXNJbWFnZURvd25sb2FkICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBhdmF0YXItc2tlbGV0b24gXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgc2tlbGV0b24tYW5pbWF0aW9uXCIgfSkgfSkpLCBiYWRnZU9wdGlvbiAmJiAoX2pzeChCYXNlQmFkZ2UsIHsgYXNDaGlsZDogdHJ1ZSwgc3R5bGU6IHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgICAgICBib3R0b206IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBiYWRnZU9wdGlvbiB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBBdmF0YXI7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY29sb3IuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY29sb3IuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vZm9udC5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGZvcndhcmRSZWYgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuaW1wb3J0IFwiLi9idXR0b24tc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBCYXNlQnV0dG9uID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBfYiA9IF9hLmFzQ2hpbGQsIGFzQ2hpbGQgPSBfYiA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYiwgY2xhc3NOYW1lID0gX2EuY2xhc3NOYW1lLCBwcm9wcyA9IF9fcmVzdChfYSwgW1wiY2hpbGRyZW5cIiwgXCJhc0NoaWxkXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiYnV0dG9uXCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIF9fYXNzaWduKHsgcmVmOiByZWYsIGNsYXNzTmFtZTogYXNDaGlsZCA/IGNsYXNzTmFtZSA6IFwiYmFzZS1idXR0b24gXCIuY29uY2F0KGNsYXNzTmFtZSAhPT0gbnVsbCAmJiBjbGFzc05hbWUgIT09IHZvaWQgMCA/IGNsYXNzTmFtZSA6IFwiXCIpIH0sIHByb3BzLCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkpO1xufSk7XG5leHBvcnQgZGVmYXVsdCBCYXNlQnV0dG9uO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xudmFyIExvYWRpbmcgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNvbXBvbmVudC1sb2FkaW5nLWNvbnRhaW5lclwiLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3ItcmluZ1wiLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IExvYWRpbmc7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuL2Jhc2UtYnV0dG9uXCI7XG5pbXBvcnQgTG9hZGluZyBmcm9tIFwiLi4vbG9hZGluZy9sb2FkaW5nXCI7XG52YXIgQ1RBQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLnZhcmlhbnQsIHZhcmlhbnQgPSBfYSA9PT0gdm9pZCAwID8gXCJwcmltYXJ5XCIgOiBfYSwgX2IgPSBwcm9wcy5zaXplLCBzaXplID0gX2IgPT09IHZvaWQgMCA/IFwibVwiIDogX2IsIF9jID0gcHJvcHMuZGlzYWJsZWQsIGRpc2FibGVkID0gX2MgPT09IHZvaWQgMCA/IGZhbHNlIDogX2MsIF9kID0gcHJvcHMubG9hZGluZywgbG9hZGluZyA9IF9kID09PSB2b2lkIDAgPyBmYWxzZSA6IF9kLCBsZWZ0SWNvbiA9IHByb3BzLmxlZnRJY29uLCByaWdodEljb24gPSBwcm9wcy5yaWdodEljb247XG4gICAgcmV0dXJuIChfanN4KEJhc2VCdXR0b24sIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjdGEtYnV0dG9uIFwiLmNvbmNhdChkaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IHZhcmlhbnQsIFwiIFwiKS5jb25jYXQoc2l6ZSksIGNoaWxkcmVuOiBsb2FkaW5nID8gKF9qc3goTG9hZGluZywge30pKSA6IChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJzcGFjZS1iZXR3ZWVuXCIsXG4gICAgICAgICAgICAgICAgZ2FwOiBcIjEwcHhcIixcbiAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbbGVmdEljb24sIHRleHQsIHJpZ2h0SWNvbl0gfSkpIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ1RBQnV0dG9uO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi9iYXNlLWJhZGdlXCI7XG52YXIgT3B0aW9uQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgb3B0aW9uID0gcHJvcHMub3B0aW9uO1xuICAgIHJldHVybiBfanN4KEJhc2VCYWRnZSwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNoaWxkcmVuOiBvcHRpb24gfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IE9wdGlvbkJhZGdlO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi9iYXNlLWJhZGdlXCI7XG52YXIgSWNvblRleHRCYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBpY29uID0gcHJvcHMuaWNvbiwgdGV4dCA9IHByb3BzLnRleHQ7XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjaGlsZHJlbjogW2ljb24sIF9qc3goXCJzcGFuXCIsIHsgY2hpbGRyZW46IHRleHQgfSldIH0pKSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgSWNvblRleHRCYWRnZTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9iYWRnZS1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9iYWRnZS1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vYmFkZ2Utc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi9iYXNlLWJhZGdlXCI7XG52YXIgSWNvblRleHRPcHRpb25CYWRnZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBpY29uID0gcHJvcHMuaWNvbiwgdGV4dCA9IHByb3BzLnRleHQsIG9wdGlvbiA9IHByb3BzLm9wdGlvbjtcbiAgICByZXR1cm4gKF9qc3hzKEJhc2VCYWRnZSwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNsYXNzTmFtZTogXCJpY29uLXRleHQtb3B0aW9uXCIsIGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2hpbGRyZW46IFtpY29uLCBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiB0ZXh0IH0pXSB9KSwgb3B0aW9uXSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IEljb25UZXh0T3B0aW9uQmFkZ2U7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGFibGUtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGFibGUtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL3RhYmxlLXN0eWxlLmNzc1wiO1xudmFyIFRhYmxlUm9vdCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHJldHVybiBfanN4KFwidGFibGVcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1yb290XCIsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KTtcbn07XG52YXIgVGFibGVIZWFkZXIgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgX2EgPSBwcm9wcy5qdXN0aWZ5LCBqdXN0aWZ5ID0gX2EgPT09IHZvaWQgMCA/IFwiY2VudGVyXCIgOiBfYSwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJqdXN0aWZ5XCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0aGVhZFwiLCB7IGNsYXNzTmFtZTogXCJiYXNlLXRhYmxlIHRhYmxlLWhlYWRlciBcIi5jb25jYXQoanVzdGlmeSwgXCIgXCIpLmNvbmNhdChjbGFzc05hbWUpLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpO1xufTtcbnZhciBUYWJsZVJvdyA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIGNsYXNzTmFtZXMgPSBbXCJiYXNlLXRhYmxlXCIsIFwidGFibGUtcm93XCIsIGNsYXNzTmFtZV0uam9pbihcIiBcIik7XG4gICAgcmV0dXJuIChfanN4KFwidHJcIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMgfSwgcmVzdCwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpKTtcbn07XG52YXIgVGFibGVCb2R5ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgcmV0dXJuIF9qc3goXCJ0Ym9keVwiLCB7IGNsYXNzTmFtZTogXCJiYXNlLXRhYmxlIHRhYmxlLWJvZHlcIiwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pO1xufTtcbnZhciBUYWJsZUNlbGwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLWNlbGxcIiwgY2xhc3NOYW1lXS5qb2luKFwiIFwiKTtcbiAgICByZXR1cm4gKF9qc3goXCJ0ZFwiLCBfX2Fzc2lnbih7IGNsYXNzTmFtZTogY2xhc3NOYW1lcyB9LCByZXN0LCB7IGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KSkpO1xufTtcblRhYmxlUm9vdC5IZWFkZXIgPSBUYWJsZUhlYWRlcjtcblRhYmxlUm9vdC5Cb2R5ID0gVGFibGVCb2R5O1xuVGFibGVSb290LlJvdyA9IFRhYmxlUm93O1xuVGFibGVSb290LkNlbGwgPSBUYWJsZUNlbGw7XG5leHBvcnQgZGVmYXVsdCBUYWJsZVJvb3Q7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFRhYmxlUm9vdCBmcm9tIFwiLi9iYXNlLXRhYmxlXCI7XG5pbXBvcnQgQmFzZUJ1dHRvbiBmcm9tIFwiLi4vYnV0dG9uL2Jhc2UtYnV0dG9uXCI7XG52YXIgRGF0YVRhYmxlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHJvd3MgPSBwcm9wcy5yb3dzLCBjb2x1bW5zID0gcHJvcHMuY29sdW1ucztcbiAgICB2YXIgX2EgPSB1c2VTdGF0ZShyb3dzLm1hcChmdW5jdGlvbiAocm93KSB7IHJldHVybiAoeyByb3c6IHJvdywgaGlkZTogZmFsc2UgfSk7IH0pKSwgZGlzcGxheVJvd3MgPSBfYVswXSwgc2V0RGlzcGxheVJvd3MgPSBfYVsxXTtcbiAgICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXREaXNwbGF5Um93cyhyb3dzLm1hcChmdW5jdGlvbiAocm93KSB7XG4gICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICAgICAgcm93OiByb3csXG4gICAgICAgICAgICAgICAgaGlkZTogKF9iID0gKF9hID0gZGlzcGxheVJvd3MuZmluZChmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaXRlbS5yb3cuaWQgPT09IHJvdy5pZDsgfSkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5oaWRlKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KSk7XG4gICAgfSwgW3Jvd3NdKTtcbiAgICByZXR1cm4gKF9qc3hzKFRhYmxlUm9vdCwgeyBjaGlsZHJlbjogW19qc3goVGFibGVSb290LkhlYWRlciwgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogX2pzeChUYWJsZVJvb3QuUm93LCB7IGNoaWxkcmVuOiBkaXNwbGF5Um93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjbGFzc05hbWU6IGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBpdGVtLnJvdykub25DbGlja1JvdykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGl0ZW0ucm93LmlkKTsgfSwgY2hpbGRyZW46IGl0ZW0ucm93LnZhbHVlIH0pIH0sIGl0ZW0ucm93LmlkKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pIH0pLCBfanN4KFRhYmxlUm9vdC5Cb2R5LCB7IGNoaWxkcmVuOiBjb2x1bW5zLm1hcChmdW5jdGlvbiAoY29sdW1uLCBpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LlJvdywgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjbGFzc05hbWU6IGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKS5vbkNsaWNrQ2VsbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LCBjaGlsZHJlbjogY29sdW1uW2l0ZW0ucm93LmlkXS52YWx1ZSB9KSB9LCBpdGVtLnJvdy5pZCkpOyB9KSB9LCBpbmRleCkpO1xuICAgICAgICAgICAgICAgIH0pIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgRGF0YVRhYmxlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCwgdXNlU3RhdGUsIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0TGFiZWwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdGV4dCA9IHByb3BzLnRleHQsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICByZXR1cm4gX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NOYW1lLCBjaGlsZHJlbjogdGV4dCB9KTtcbn07XG52YXIgSW5wdXRGaWVsZCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWUsIHBsYWNlaG9sZGVyID0gcHJvcHMucGxhY2Vob2xkZXIsIG5hbWUgPSBwcm9wcy5uYW1lLCBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoVGV4dEZpZWxkQ29udGV4dCksIGNvbnZlcnRFcnJvck1lc3NhZ2UgPSBfYS5jb252ZXJ0RXJyb3JNZXNzYWdlLCBjb252ZXJ0RXJyb3JTdGF0ZSA9IF9hLmNvbnZlcnRFcnJvclN0YXRlLCB2YWxpZGF0aW9ucyA9IF9hLnZhbGlkYXRpb25zO1xuICAgIHZhciB2YWxpZGF0ZUlucHV0ID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWxpZGF0aW9ucykge1xuICAgICAgICAgICAgdmFyIGZhaWxlZFZhbGlkYXRpb24gPSB2YWxpZGF0aW9ucy5maW5kKGZ1bmN0aW9uICh2YWxpZGF0aW9uKSB7IHJldHVybiAhdmFsaWRhdGlvbi5ydWxlLnRlc3QodmFsdWUpOyB9KTtcbiAgICAgICAgICAgIGlmIChmYWlsZWRWYWxpZGF0aW9uKSB7XG4gICAgICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZShmYWlsZWRWYWxpZGF0aW9uLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnZlcnRFcnJvclN0YXRlKGZhbHNlKTtcbiAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2UoXCJcIik7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChcImlucHV0XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgbmFtZTogbmFtZSwgb25DaGFuZ2U6IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICB2YWxpZGF0ZUlucHV0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShlKTtcbiAgICAgICAgfSB9KSk7XG59O1xudmFyIEhlbHBlclRleHQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgdGV4dCA9IHByb3BzLnRleHQsIF9hID0gcHJvcHMuY2xhc3NOYW1lLCBjbGFzc05hbWUgPSBfYSA9PT0gdm9pZCAwID8gZmFsc2UgOiBfYTtcbiAgICB2YXIgX2IgPSB1c2VDb250ZXh0KFRleHRGaWVsZENvbnRleHQpLCBlcnJvck1lc3NhZ2UgPSBfYi5lcnJvck1lc3NhZ2UsIGlzRXJyb3IgPSBfYi5pc0Vycm9yO1xuICAgIHZhciBlcnJvckNsYXNzTmFtZSA9IGlzRXJyb3IgPyBcImVycm9yXCIgOiBcIlwiO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY2xhc3NOYW1lLCBcIiBcIikuY29uY2F0KGVycm9yQ2xhc3NOYW1lKSwgY2hpbGRyZW46IGVycm9yTWVzc2FnZSAhPT0gbnVsbCAmJiBlcnJvck1lc3NhZ2UgIT09IHZvaWQgMCA/IGVycm9yTWVzc2FnZSA6IHRleHQgfSkpO1xufTtcbnZhciBUZXh0RmllbGRDb250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgaXNFcnJvcjogZmFsc2UsXG4gICAgY29udmVydEVycm9yU3RhdGU6IGZ1bmN0aW9uICgpIHsgfSxcbiAgICB2YWxpZGF0aW9uczogW10sXG4gICAgZXJyb3JNZXNzYWdlOiBcIlwiLFxuICAgIGNvbnZlcnRFcnJvck1lc3NhZ2U6IGZ1bmN0aW9uICh2YWx1ZSkgeyB9LFxufSk7XG52YXIgVGV4dEZpZWxkUm9vdCA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCB2YWxpZGF0aW9ucyA9IF9hLnZhbGlkYXRpb25zLCB3aWR0aCA9IF9hLndpZHRoO1xuICAgIHZhciBfYiA9IHVzZVN0YXRlKGZhbHNlKSwgaXNFcnJvciA9IF9iWzBdLCBzZXRJc0Vycm9yID0gX2JbMV07XG4gICAgdmFyIF9jID0gdXNlU3RhdGUoXCJcIiksIGVycm9yTWVzc2FnZSA9IF9jWzBdLCBzZXRFcnJvck1lc3NhZ2UgPSBfY1sxXTtcbiAgICB2YXIgY29udmVydEVycm9yU3RhdGUgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgc2V0SXNFcnJvcih2YWx1ZSk7XG4gICAgfTtcbiAgICB2YXIgY29udmVydEVycm9yTWVzc2FnZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzZXRFcnJvck1lc3NhZ2UodmFsdWUpO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogXCJ0ZXh0LWZpZWxkLXJvb3RcIiwgc3R5bGU6IHsgZGlzcGxheTogXCJibG9ja1wiLCB3aWR0aDogXCJcIi5jb25jYXQod2lkdGgsIFwicHhcIikgfSwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZToge1xuICAgICAgICAgICAgICAgIGlzRXJyb3I6IGlzRXJyb3IsXG4gICAgICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGU6IGNvbnZlcnRFcnJvclN0YXRlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zOiB2YWxpZGF0aW9ucyxcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2U6IGVycm9yTWVzc2FnZSxcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlOiBjb252ZXJ0RXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pIH0pKTtcbn07XG5UZXh0RmllbGRSb290LlRleHRMYWJlbCA9IFRleHRMYWJlbDtcblRleHRGaWVsZFJvb3QuSW5wdXRGaWVsZCA9IElucHV0RmllbGQ7XG5UZXh0RmllbGRSb290LkhlbHBlclRleHQgPSBIZWxwZXJUZXh0O1xuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkUm9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgVGV4dEZpZWxkUm9vdCBmcm9tIFwiLi9iYXNlLXRleHQtZmllbGRcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRGaWVsZCA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBfYiA9IF9hLndpZHRoLCB3aWR0aCA9IF9iID09PSB2b2lkIDAgPyAzNDMgOiBfYiwgX2MgPSBfYS5wbGFjZWhvbGRlciwgcGxhY2Vob2xkZXIgPSBfYyA9PT0gdm9pZCAwID8gXCJcIiA6IF9jLCBfZCA9IF9hLm5hbWUsIG5hbWUgPSBfZCA9PT0gdm9pZCAwID8gXCJcIiA6IF9kLCBoZWxwZXJUZXh0ID0gX2EuaGVscGVyVGV4dCwgbGFiZWxUZXh0ID0gX2EubGFiZWxUZXh0LCBvbkNoYW5nZSA9IF9hLm9uQ2hhbmdlO1xuICAgIHJldHVybiAoX2pzeHMoVGV4dEZpZWxkUm9vdCwgeyB2YWxpZGF0aW9uczogW10sIHdpZHRoOiB3aWR0aCwgY2hpbGRyZW46IFtsYWJlbFRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5UZXh0TGFiZWwsIHsgdGV4dDogbGFiZWxUZXh0LCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGxhYmVsXCIgfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dC13cmFwcGVyXCIsIGNoaWxkcmVuOiBfanN4KFRleHRGaWVsZFJvb3QuSW5wdXRGaWVsZCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0XCIsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgbmFtZTogbmFtZSwgb25DaGFuZ2U6IG9uQ2hhbmdlIH0pIH0pLCBoZWxwZXJUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCwgeyB0ZXh0OiBoZWxwZXJUZXh0LCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGhlbHBlci10ZXh0XCIgfSkpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUZXh0RmllbGRSb290IGZyb20gXCIuL2Jhc2UtdGV4dC1maWVsZFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dEZpZWxkV2l0aEVycm9yID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIF9iID0gX2Eud2lkdGgsIHdpZHRoID0gX2IgPT09IHZvaWQgMCA/IDM0MyA6IF9iLCBfYyA9IF9hLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlciA9IF9jID09PSB2b2lkIDAgPyBcIlwiIDogX2MsIF9kID0gX2EubmFtZSwgbmFtZSA9IF9kID09PSB2b2lkIDAgPyBcIlwiIDogX2QsIGhlbHBlclRleHQgPSBfYS5oZWxwZXJUZXh0LCBsYWJlbFRleHQgPSBfYS5sYWJlbFRleHQsIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnM7XG4gICAgcmV0dXJuIChfanN4cyhUZXh0RmllbGRSb290LCB7IHdpZHRoOiB3aWR0aCwgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLCBjaGlsZHJlbjogW2xhYmVsVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LlRleHRMYWJlbCwgeyB0ZXh0OiBsYWJlbFRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgbGFiZWxcIiB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0LXdyYXBwZXJcIiwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXRcIiwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lIH0pIH0pLCBoZWxwZXJUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCwgeyB0ZXh0OiBoZWxwZXJUZXh0LCBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGhlbHBlci10ZXh0XCIsIGlzRXJyb3I6IHRydWUgfSkpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVGV4dEZpZWxkV2l0aEVycm9yO1xuIiwiaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmV4cG9ydCB2YXIgdXNlRXh0ZXJuYWxTdGF0ZSA9IGZ1bmN0aW9uIChfYSkge1xuICAgIHZhciBwcm9wID0gX2EucHJvcCwgaGFuZGxlciA9IF9hLmhhbmRsZXIsIGRlZmF1bHRQcm9wID0gX2EuZGVmYXVsdFByb3A7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUocHJvcCAhPT0gbnVsbCAmJiBwcm9wICE9PSB2b2lkIDAgPyBwcm9wIDogZGVmYXVsdFByb3ApLCBpbm5lclN0YXRlID0gX2JbMF0sIHNldElubmVyU3RhdGUgPSBfYlsxXTtcbiAgICB2YXIgaXNDb250cm9sbGVkQnlFeHRlcm5hbCA9IHByb3AgIT09IHVuZGVmaW5lZDtcbiAgICB2YXIgdmFsdWUgPSBpc0NvbnRyb2xsZWRCeUV4dGVybmFsID8gcHJvcCA6IGlubmVyU3RhdGU7XG4gICAgdmFyIHNldFZhbHVlID0gZnVuY3Rpb24gKGhhbmRsZWRWYWx1ZSkge1xuICAgICAgICBpZiAoaXNDb250cm9sbGVkQnlFeHRlcm5hbCkge1xuICAgICAgICAgICAgdmFyIHNldHRlciA9IGhhbmRsZWRWYWx1ZTtcbiAgICAgICAgICAgIHZhciB2YWx1ZV8xID0gdHlwZW9mIGhhbmRsZWRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgICAgICAgICAgPyBzZXR0ZXIocHJvcCAhPT0gbnVsbCAmJiBwcm9wICE9PSB2b2lkIDAgPyBwcm9wIDogZGVmYXVsdFByb3ApXG4gICAgICAgICAgICAgICAgOiBoYW5kbGVkVmFsdWU7XG4gICAgICAgICAgICBoYW5kbGVyID09PSBudWxsIHx8IGhhbmRsZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGhhbmRsZXIodmFsdWVfMSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzZXRJbm5lclN0YXRlKGhhbmRsZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBbdmFsdWUsIHNldFZhbHVlXTtcbn07XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRXh0ZXJuYWxTdGF0ZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL2hvb2tzL3VzZUV4dGVybmFsU3RhdGVcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgUmFkaW9CdXR0b24gPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgaWQgPSBwcm9wcy5pZDtcbiAgICB2YXIgX2EgPSB1c2VDb250ZXh0KFJhZGlvQ29udGV4dCksIHNlbGVjdGVkID0gX2Euc2VsZWN0ZWQsIG9uQ2hhbmdlID0gX2Eub25DaGFuZ2U7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImRpdlwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIFwiLmNvbmNhdChjbGFzc05hbWUpLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHJldHVybiBvbkNoYW5nZShpZCk7IH0sIGNoaWxkcmVuOiBpZCA9PT0gc2VsZWN0ZWQgPyBjaGlsZHJlbiA6IG51bGwgfSkpO1xufTtcbnZhciBSYWRpb0luZGljYXRvciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgaWQgPSBwcm9wcy5pZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHZhciBzZWxlY3RlZCA9IHVzZUNvbnRleHQoUmFkaW9Db250ZXh0KS5zZWxlY3RlZDtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiaW5wdXRcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyB0eXBlOiBcInJhZGlvXCIsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIFwiLmNvbmNhdChzZWxlY3RlZCA9PT0gaWQgPyBcInNlbGVjdGVkXCIgOiBcIlwiLCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSksIGNoZWNrZWQ6IHNlbGVjdGVkID09PSBpZCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG52YXIgUmFkaW9MYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJsYWJlbFwiO1xuICAgIHJldHVybiBfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KGNsYXNzTmFtZSksIGNoaWxkcmVuOiBjaGlsZHJlbiB9KTtcbn07XG52YXIgUmFkaW9PcHRpb25Hcm91cCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJ1bFwiO1xuICAgIHJldHVybiBfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KTtcbn07XG52YXIgUmFkaW9Db250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgb3B0aW9uczogW10sXG4gICAgc2VsZWN0ZWQ6IG51bGwsXG4gICAgb25DaGFuZ2U6IGZ1bmN0aW9uIChpZCkgeyB9LFxufSk7XG52YXIgUmFkaW9Sb290ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zLCBfYSA9IHByb3BzLnNlbGVjdGVkLCBzZWxlY3RlZCA9IF9hID09PSB2b2lkIDAgPyBudWxsIDogX2EsIGV4dGVybmFsT25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZTtcbiAgICB2YXIgX2IgPSB1c2VFeHRlcm5hbFN0YXRlKHtcbiAgICAgICAgcHJvcDogc2VsZWN0ZWQsXG4gICAgICAgIGhhbmRsZXI6IGV4dGVybmFsT25DaGFuZ2UsXG4gICAgICAgIGRlZmF1bHRQcm9wOiBzZWxlY3RlZCxcbiAgICB9KSwgc2VsZWN0ZWRJZCA9IF9iWzBdLCBzZXRTZWxlY3RlZElkID0gX2JbMV07XG4gICAgdmFyIG9uQ2hhbmdlID0gZnVuY3Rpb24gKGlkKSB7XG4gICAgICAgIHNldFNlbGVjdGVkSWQoaWQpO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFJhZGlvQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogeyBzZWxlY3RlZDogc2VsZWN0ZWRJZCwgb25DaGFuZ2U6IG9uQ2hhbmdlLCBvcHRpb25zOiBvcHRpb25zIH0sIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSk7XG59O1xuUmFkaW9Sb290LkluZGljYXRvciA9IFJhZGlvSW5kaWNhdG9yO1xuUmFkaW9Sb290LkxhYmVsID0gUmFkaW9MYWJlbDtcblJhZGlvUm9vdC5PcHRpb25Hcm91cCA9IFJhZGlvT3B0aW9uR3JvdXA7XG5SYWRpb1Jvb3QuQnV0dG9uID0gUmFkaW9CdXR0b247XG5leHBvcnQgZGVmYXVsdCBSYWRpb1Jvb3Q7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcmFkaW8tc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vcmFkaW8tc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSYWRpb1Jvb3QgZnJvbSBcIi4vYmFzZS1yYWRpb1wiO1xuaW1wb3J0IFwiLi9yYWRpby1zdHlsZS5jc3NcIjtcbnZhciBSYWRpbyA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBzZWxlY3RlZCA9IHByb3BzLnNlbGVjdGVkLCBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCBvcHRpb25zID0gcHJvcHMub3B0aW9ucztcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Sb290LCB7IG9wdGlvbnM6IG9wdGlvbnMsIHNlbGVjdGVkOiBzZWxlY3RlZCwgb25DaGFuZ2U6IG9uQ2hhbmdlLCBjaGlsZHJlbjogX2pzeChSYWRpb1Jvb3QuT3B0aW9uR3JvdXAsIHsgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWdyb3VwXCIsIGNoaWxkcmVuOiBvcHRpb25zLm1hcChmdW5jdGlvbiAob3B0aW9uKSB7IHJldHVybiAoX2pzeHMoXCJsaVwiLCB7IHN0eWxlOiB7IGRpc3BsYXk6IFwiZmxleFwiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLCBnYXA6IFwiNnB4XCIgfSwgY2hpbGRyZW46IFtfanN4KFJhZGlvUm9vdC5CdXR0b24sIHsgaWQ6IG9wdGlvbi5pZCwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWJ1dHRvblwiLCBjaGlsZHJlbjogX2pzeChSYWRpb1Jvb3QuSW5kaWNhdG9yLCB7IGlkOiBvcHRpb24uaWQsIGFzQ2hpbGQ6IHRydWUsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1pbmRpY2F0b3JcIiwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwge30pIH0pIH0pLCBfanN4KFJhZGlvUm9vdC5MYWJlbCwgeyBpZDogb3B0aW9uLmlkLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tbGFiZWxcIiwgY2hpbGRyZW46IG9wdGlvbi5sYWJlbCB9KV0gfSwgb3B0aW9uLmlkKSk7IH0pIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBSYWRpbztcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vY2hlY2stYm94LXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ29udGV4dCwgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlRXh0ZXJuYWxTdGF0ZSB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL2hvb2tzL3VzZUV4dGVybmFsU3RhdGVcIjtcbmltcG9ydCBcIi4vY2hlY2stYm94LXN0eWxlLmNzc1wiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbnZhciBDaGVja0JveExhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBpZCA9IHVzZUNvbnRleHQoQ2hlY2tCb3hDb250ZXh0KS5pZDtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwibGFiZWxcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBiYXNlLWNoZWNrLWJveCBsYWJlbFwiLCBodG1sRm9yOiBpZCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG52YXIgQ2hlY2tCb3hJbnB1dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJhc0NoaWxkXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoQ2hlY2tCb3hDb250ZXh0KSwgY2hlY2tlZCA9IF9hLmNoZWNrZWQsIHRvZ2dsZUNoZWNrZWQgPSBfYS50b2dnbGVDaGVja2VkLCBpZCA9IF9hLmlkLCBkaXNhYmxlZCA9IF9hLmRpc2FibGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCBfX2Fzc2lnbih7IHR5cGU6IFwiY2hlY2tib3hcIiwgY2hlY2tlZDogY2hlY2tlZCwgb25DaGFuZ2U6IHRvZ2dsZUNoZWNrZWQsIG9uQ2xpY2s6IHRvZ2dsZUNoZWNrZWQsIGlkOiBpZCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgY2hlY2stYm94LWlucHV0IFwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIiwgXCIgXCIpLmNvbmNhdChkaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCIpIH0sIHJlc3QsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59O1xudmFyIENoZWNrQm94Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIHRvZ2dsZUNoZWNrZWQ6IGZ1bmN0aW9uICgpIHsgfSxcbiAgICBpZDogXCJcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG59KTtcbnZhciBDaGVja0JveFJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgZXh0ZXJuYWxDaGVja2VkID0gcHJvcHMuY2hlY2tlZCwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCBpZCA9IHByb3BzLmlkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkO1xuICAgIHZhciBfYSA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBleHRlcm5hbENoZWNrZWQsXG4gICAgICAgIGhhbmRsZXI6IGV4dGVybmFsT25DaGFuZ2UsXG4gICAgICAgIGRlZmF1bHRQcm9wOiBleHRlcm5hbENoZWNrZWQgIT09IG51bGwgJiYgZXh0ZXJuYWxDaGVja2VkICE9PSB2b2lkIDAgPyBleHRlcm5hbENoZWNrZWQgOiBmYWxzZSxcbiAgICB9KSwgY2hlY2tlZCA9IF9hWzBdLCBzZXRDaGVja2VkID0gX2FbMV07XG4gICAgdmFyIHRvZ2dsZUNoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldENoZWNrZWQoZnVuY3Rpb24gKHByZXYpIHsgcmV0dXJuICFwcmV2OyB9KTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaGVjay1ib3gtcm9vdFwiLCBjaGlsZHJlbjogX2pzeChDaGVja0JveENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgY2hlY2tlZDogY2hlY2tlZCwgdG9nZ2xlQ2hlY2tlZDogdG9nZ2xlQ2hlY2tlZCwgaWQ6IGlkLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pIH0pKTtcbn07XG5DaGVja0JveFJvb3QuTGFiZWwgPSBDaGVja0JveExhYmVsO1xuQ2hlY2tCb3hSb290LklucHV0ID0gQ2hlY2tCb3hJbnB1dDtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94Um9vdDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IGNoZWNrIGZyb20gXCIuLi8uLi9hc3NldHMvaWNvbnMvY2hlY2suc3ZnXCI7XG5pbXBvcnQgQ2hlY2tCb3hSb290IGZyb20gXCIuL2Jhc2UtY2hlY2stYm94XCI7XG52YXIgQ2hlY2tCb3ggPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIGxhYmVsID0gcHJvcHMubGFiZWwsIF9hID0gcHJvcHMuaWNvblNpemUsIGljb25TaXplID0gX2EgPT09IHZvaWQgMCA/IDI0IDogX2EsIGlkID0gcHJvcHMuaWQ7XG4gICAgcmV0dXJuIChfanN4KENoZWNrQm94Um9vdCwgeyBpZDogaWQsIGNoZWNrZWQ6IGNoZWNrZWQsIG9uQ2hhbmdlOiBvbkNoYW5nZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNoZWNrLWJveFwiLCBjaGlsZHJlbjogW19qc3goQ2hlY2tCb3hSb290LklucHV0LCB7IGFzQ2hpbGQ6IHRydWUsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgY2hlY2stYm94LWlucHV0XCIsIHN0eWxlOiB7IHdpZHRoOiBcIlwiLmNvbmNhdChpY29uU2l6ZSwgXCJweFwiKSwgaGVpZ2h0OiBcIlwiLmNvbmNhdChpY29uU2l6ZSwgXCJweFwiKSB9LCBjaGlsZHJlbjogX2pzeChcImltZ1wiLCB7IHNyYzogY2hlY2ssIGFsdDogXCJjaGVja1wiIH0pIH0pIH0pLCBfanN4KENoZWNrQm94Um9vdC5MYWJlbCwgeyBjaGlsZHJlbjogbGFiZWwgfSldIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBDaGVja0JveDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL3RleHQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbmltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbnZhciBUZXh0ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBzaXplID0gcHJvcHMuc2l6ZSwgd2VpZ2h0ID0gcHJvcHMud2VpZ2h0LCBjb2xvciA9IHByb3BzLmNvbG9yLCB0ZXh0QWxpZ24gPSBwcm9wcy50ZXh0QWxpZ24sIHRleHREZWNvcmF0aW9uID0gcHJvcHMudGV4dERlY29yYXRpb24sIHdvcmRCcmVhayA9IHByb3BzLndvcmRCcmVhaywgd2hpdGVTcGFjZSA9IHByb3BzLndoaXRlU3BhY2UsIGFzID0gcHJvcHMuYXMsIHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gICAgdmFyIENvbXAgPSBhcyA/IGFzIDogXCJwXCI7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGJhc2UtdGV4dCBcIi5jb25jYXQoL15cXGQreGwkLy50ZXN0KHNpemUpID8gXCJ0LVwiLmNvbmNhdChzaXplKSA6IHNpemUsIFwiIFwiKS5jb25jYXQod2VpZ2h0LCBcIiB0ZXh0QWxpZ24tXCIpLmNvbmNhdCh0ZXh0QWxpZ24sIFwiIHRleHREZWNvcmF0aW9uLVwiKS5jb25jYXQodGV4dERlY29yYXRpb24sIFwiIHdvcmRCcmVhay1cIikuY29uY2F0KHdvcmRCcmVhaywgXCIgd2hpdGVTcGFjZS1cIikuY29uY2F0KHdoaXRlU3BhY2UsIFwiIFwiKS5jb25jYXQoY29sb3IgPyBcImNvbG9yLVwiLmNvbmNhdChjb2xvcikgOiBcIlwiKSwgc3R5bGU6IF9fYXNzaWduKHt9LCBzdHlsZSksIGNoaWxkcmVuOiB0ZXh0IH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0O1xuIiwiZXhwb3J0IHZhciBjb2xvcnMgPSB7XG4gICAgYmxhY2s6IFwiIzAwMDAwMFwiLFxuICAgIHdoaXRlOiBcIiNmZmZmZmZcIixcbiAgICBncmF5RmE6IFwiI2ZhZmFmYVwiLFxuICAgIGdyYXlGNDogXCIjZjRmNGY1XCIsXG4gICAgZ3JheUU0OiBcIiNlNGU0ZTdcIixcbiAgICBncmF5RDQ6IFwiI2Q0ZDRkOFwiLFxuICAgIGdyYXlBMTogXCIjYTFhMWFhXCIsXG4gICAgZ3JheTcxOiBcIiM3MTcxN2FcIixcbiAgICBncmF5NTI6IFwiIzUyNTI1YlwiLFxuICAgIGdyYXkzZjogXCIjM2YzZjQ2XCIsXG4gICAgZ3JheTI3OiBcIiMyNzI3MmFcIixcbiAgICBncmF5MTg6IFwiIzE4MTgxYlwiLFxuICAgIHB1cnBsZTM5OiBcIiMzOTFkNWRcIixcbiAgICBwdXJwbGU0YzogXCIjNGMyNzdjXCIsXG4gICAgcHVycGxlRGQ6IFwiI2RkZDFmMFwiLFxuICAgIHB1cnBsZUU5OiBcIiNlOWUwZjVcIixcbiAgICBwdXJwbGVGNDogXCIjZjRlZmZhXCIsXG4gICAgcHVycGxlNDE6IFwiIzRjMWQ4OFwiLFxuICAgIHB1cnBsZTk1OiBcIiM5NTdlYjRcIixcbiAgICBhY2NlbnRSZWQ6IFwiI2RmNTM1Y1wiLFxuICAgIGFjY2VudE1hZ2VudGE6IFwiI2IwMmU0Y1wiLFxuICAgIGFjY2VudEdyZWVuOiBcIiMyODlhM2FcIixcbn07XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEF2YXRhciB9IGZyb20gXCIuL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDVEFCdXR0b24gfSBmcm9tIFwiLi9jb21wb25lbnRzL2J1dHRvbi9jdGEtYnV0dG9uXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE9wdGlvbkJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvblRleHRCYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25UZXh0T3B0aW9uQmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1vcHRpb24tYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgRGF0YVRhYmxlIH0gZnJvbSBcIi4vY29tcG9uZW50cy90YWJsZS9kYXRhLXRhYmxlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRGaWVsZCB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHRGaWVsZFdpdGhFcnJvciB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3JcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgUmFkaW8gfSBmcm9tIFwiLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRleHQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dFwiO1xuZXhwb3J0IHsgY29sb3JzIH0gZnJvbSBcIi4vc3R5bGVzL3Rva2VuL2NvbG9yc1wiO1xuIl0sIm5hbWVzIjpbIl9fYXNzaWduIiwiT2JqZWN0IiwiYXNzaWduIiwidCIsInMiLCJpIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInAiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsIl9fcmVzdCIsImUiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJDaGlsZHJlbiIsImNsb25lRWxlbWVudCIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsImNvbXBvc2VSZWZzIiwicmVmcyIsIl9pIiwibm9kZSIsImZvckVhY2giLCJyZWYiLCJjdXJyZW50IiwiQ29tcG9zZXIiLCJfYSIsImNoaWxkcmVuIiwiY29tcG9zZXJQcm9wcyIsImNoaWxkQXJyYXkiLCJ0b0FycmF5IiwiRXJyb3IiLCJpc1ZhbGlkQ2hpbGQiLCJjaGlsZCIsImNoaWxkUmVmIiwiZ2V0RWxlbWVudFJlZiIsIm1lcmdlZFByb3BzIiwibWVyZ2VQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJjaGlsZFByb3BzIiwib3ZlcnJpZGVQcm9wcyIsIl9sb29wXzEiLCJwcm9wTmFtZSIsImNvbXBvc2VyUHJvcFZhbHVlIiwiY2hpbGRQcm9wVmFsdWUiLCJpc0hhbmRsZXIiLCJ0ZXN0IiwiYXJncyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwiZWxlbWVudCIsIl9iIiwiZ2V0dGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZ2V0IiwibWF5V2FybiIsImlzUmVhY3RXYXJuaW5nIiwianN4IiwiX2pzeCIsIkJhc2VCYWRnZSIsImFzQ2hpbGQiLCJib3JkZXJDb2xvciIsInRleHRDb2xvciIsInJhZGl1cyIsImJhY2tncm91bmRDb2xvciIsIl9jIiwic2l6ZSIsInN0eWxlIiwiY2xhc3NOYW1lIiwiQ29tcCIsImNvbXBvc2VkQ2xhc3NOYW1lIiwiY29uY2F0IiwiYm9yZGVyUmFkaXVzIiwianN4cyIsIl9qc3hzIiwidXNlU3RhdGUiLCJkZWZhdWx0QXZhdGFyIiwiQXZhdGFyIiwic3JjIiwiYWx0IiwiYmFkZ2VPcHRpb24iLCJpc0ltYWdlRG93bmxvYWQiLCJzZXRJc0ltYWdlRG93bmxvYWQiLCJvbkxvYWQiLCJwb3NpdGlvbiIsInJpZ2h0IiwiYm90dG9tIiwiQmFzZUJ1dHRvbiIsIkxvYWRpbmciLCJDVEFCdXR0b24iLCJ0ZXh0IiwidmFyaWFudCIsImRpc2FibGVkIiwiX2QiLCJsb2FkaW5nIiwibGVmdEljb24iLCJyaWdodEljb24iLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZ2FwIiwiT3B0aW9uQmFkZ2UiLCJvcHRpb24iLCJJY29uVGV4dEJhZGdlIiwiaWNvbiIsIkljb25UZXh0T3B0aW9uQmFkZ2UiLCJUYWJsZVJvb3QiLCJUYWJsZUhlYWRlciIsImp1c3RpZnkiLCJyZXN0IiwiVGFibGVSb3ciLCJjbGFzc05hbWVzIiwiVGFibGVCb2R5IiwiVGFibGVDZWxsIiwiSGVhZGVyIiwiQm9keSIsIlJvdyIsIkNlbGwiLCJ1c2VFZmZlY3QiLCJEYXRhVGFibGUiLCJyb3dzIiwiY29sdW1ucyIsIm1hcCIsInJvdyIsImhpZGUiLCJkaXNwbGF5Um93cyIsInNldERpc3BsYXlSb3dzIiwiZmluZCIsIml0ZW0iLCJpZCIsIm9uQ2xpY2siLCJvbkNsaWNrUm93IiwidmFsdWUiLCJjb2x1bW4iLCJpbmRleCIsIm9uQ2xpY2tDZWxsIiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJUZXh0TGFiZWwiLCJJbnB1dEZpZWxkIiwicGxhY2Vob2xkZXIiLCJuYW1lIiwib25DaGFuZ2UiLCJUZXh0RmllbGRDb250ZXh0IiwiY29udmVydEVycm9yTWVzc2FnZSIsImNvbnZlcnRFcnJvclN0YXRlIiwidmFsaWRhdGlvbnMiLCJ2YWxpZGF0ZUlucHV0IiwiZmFpbGVkVmFsaWRhdGlvbiIsInZhbGlkYXRpb24iLCJydWxlIiwibWVzc2FnZSIsInRhcmdldCIsIkhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJpc0Vycm9yIiwiZXJyb3JDbGFzc05hbWUiLCJUZXh0RmllbGRSb290Iiwid2lkdGgiLCJzZXRJc0Vycm9yIiwic2V0RXJyb3JNZXNzYWdlIiwiUHJvdmlkZXIiLCJUZXh0RmllbGQiLCJoZWxwZXJUZXh0IiwibGFiZWxUZXh0IiwiVGV4dEZpZWxkV2l0aEVycm9yIiwidXNlRXh0ZXJuYWxTdGF0ZSIsInByb3AiLCJoYW5kbGVyIiwiZGVmYXVsdFByb3AiLCJpbm5lclN0YXRlIiwic2V0SW5uZXJTdGF0ZSIsImlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwiLCJ1bmRlZmluZWQiLCJzZXRWYWx1ZSIsImhhbmRsZWRWYWx1ZSIsInNldHRlciIsInZhbHVlXzEiLCJSYWRpb0J1dHRvbiIsIlJhZGlvQ29udGV4dCIsInNlbGVjdGVkIiwiUmFkaW9JbmRpY2F0b3IiLCJ0eXBlIiwiY2hlY2tlZCIsIlJhZGlvTGFiZWwiLCJSYWRpb09wdGlvbkdyb3VwIiwib3B0aW9ucyIsIlJhZGlvUm9vdCIsImV4dGVybmFsT25DaGFuZ2UiLCJzZWxlY3RlZElkIiwic2V0U2VsZWN0ZWRJZCIsIkluZGljYXRvciIsIkxhYmVsIiwiT3B0aW9uR3JvdXAiLCJCdXR0b24iLCJSYWRpbyIsImxhYmVsIiwiQ2hlY2tCb3hMYWJlbCIsIkNoZWNrQm94Q29udGV4dCIsImh0bWxGb3IiLCJDaGVja0JveElucHV0IiwidG9nZ2xlQ2hlY2tlZCIsIkNoZWNrQm94Um9vdCIsImV4dGVybmFsQ2hlY2tlZCIsInNldENoZWNrZWQiLCJwcmV2IiwiSW5wdXQiLCJjaGVjayIsIkNoZWNrQm94IiwiaWNvblNpemUiLCJoZWlnaHQiLCJUZXh0Iiwid2VpZ2h0IiwiY29sb3IiLCJ0ZXh0QWxpZ24iLCJ0ZXh0RGVjb3JhdGlvbiIsIndvcmRCcmVhayIsIndoaXRlU3BhY2UiLCJhcyIsIndpbmRvdyIsImNvbG9ycyIsImJsYWNrIiwid2hpdGUiLCJncmF5RmEiLCJncmF5RjQiLCJncmF5RTQiLCJncmF5RDQiLCJncmF5QTEiLCJncmF5NzEiLCJncmF5NTIiLCJncmF5M2YiLCJncmF5MjciLCJncmF5MTgiLCJwdXJwbGUzOSIsInB1cnBsZTRjIiwicHVycGxlRGQiLCJwdXJwbGVFOSIsInB1cnBsZUY0IiwicHVycGxlNDEiLCJwdXJwbGU5NSIsImFjY2VudFJlZCIsImFjY2VudE1hZ2VudGEiLCJhY2NlbnRHcmVlbiIsImRlZmF1bHQiLCJDaGVja2JveCJdLCJzb3VyY2VSb290IjoiIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurihaus/web-design-system",
3
- "version": "1.1.50",
3
+ "version": "1.1.52",
4
4
  "private": false,
5
5
  "description": "nurilounge-admin-design-system",
6
6
  "main": "dist/index.js",