@nurihaus/web-design-system 1.1.34 → 1.1.35

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.
package/dist/index.js CHANGED
@@ -1379,18 +1379,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__226__;
1379
1379
  /******/ };
1380
1380
  /******/ })();
1381
1381
  /******/
1382
- /******/ /* webpack/runtime/global */
1383
- /******/ (() => {
1384
- /******/ __webpack_require__.g = (function() {
1385
- /******/ if (typeof globalThis === 'object') return globalThis;
1386
- /******/ try {
1387
- /******/ return this || new Function('return this')();
1388
- /******/ } catch (e) {
1389
- /******/ if (typeof window === 'object') return window;
1390
- /******/ }
1391
- /******/ })();
1392
- /******/ })();
1393
- /******/
1394
1382
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
1395
1383
  /******/ (() => {
1396
1384
  /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
@@ -1407,29 +1395,6 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__226__;
1407
1395
  /******/ };
1408
1396
  /******/ })();
1409
1397
  /******/
1410
- /******/ /* webpack/runtime/publicPath */
1411
- /******/ (() => {
1412
- /******/ var scriptUrl;
1413
- /******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + "";
1414
- /******/ var document = __webpack_require__.g.document;
1415
- /******/ if (!scriptUrl && document) {
1416
- /******/ if (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')
1417
- /******/ scriptUrl = document.currentScript.src;
1418
- /******/ if (!scriptUrl) {
1419
- /******/ var scripts = document.getElementsByTagName("script");
1420
- /******/ if(scripts.length) {
1421
- /******/ var i = scripts.length - 1;
1422
- /******/ while (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;
1423
- /******/ }
1424
- /******/ }
1425
- /******/ }
1426
- /******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration
1427
- /******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic.
1428
- /******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser");
1429
- /******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/");
1430
- /******/ __webpack_require__.p = scriptUrl;
1431
- /******/ })();
1432
- /******/
1433
1398
  /******/ /* webpack/runtime/nonce */
1434
1399
  /******/ (() => {
1435
1400
  /******/ __webpack_require__.nc = undefined;
@@ -2579,7 +2544,7 @@ var check_box_style_update = injectStylesIntoStyleTag_default()(check_box_style/
2579
2544
  /* harmony default export */ const check_box_check_box_style = (check_box_style/* default */.A && check_box_style/* default */.A.locals ? check_box_style/* default */.A.locals : undefined);
2580
2545
 
2581
2546
  ;// ./assets/icons/check.svg
2582
- /* harmony default export */ const check = (__webpack_require__.p + "assets/check.45f65eb2bbf423d7a459a19429d23ae0.svg");
2547
+ const check_namespaceObject = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIuNjY2NSA4LjhMNS43MTQxMiAxMkwxMy4zMzMyIDQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==";
2583
2548
  ;// ./components/check-box/base-check-box.tsx
2584
2549
  var base_check_box_assign = undefined && undefined.__assign || function () {
2585
2550
  base_check_box_assign = Object.assign || function (t) {
@@ -2706,7 +2671,7 @@ var CheckBox = function CheckBox(props) {
2706
2671
  children: (0,jsx_runtime_.jsx)("div", {
2707
2672
  className: "nuri-theme check-box-input",
2708
2673
  children: (0,jsx_runtime_.jsx)("img", {
2709
- src: check,
2674
+ src: check_namespaceObject,
2710
2675
  alt: "check"
2711
2676
  })
2712
2677
  })
@@ -2786,4 +2751,4 @@ var Text = function Text(props) {
2786
2751
  /******/ })()
2787
2752
  ;
2788
2753
  });
2789
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sMEdBQTBHLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE9BQU8sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxxQ0FBcUMsbUJBQW1CLHNDQUFzQywwQ0FBMEMsS0FBSyxrQkFBa0IscUNBQXFDLHlDQUF5QyxLQUFLLG9CQUFvQix1Q0FBdUMsMkNBQTJDLEtBQUssa0JBQWtCLHFDQUFxQyx5Q0FBeUMsS0FBSyxrQkFBa0IscUNBQXFDLHlDQUF5QyxLQUFLLHFCQUFxQixzQ0FBc0MsMENBQTBDLEtBQUsscUJBQXFCLHNDQUFzQywwQ0FBMEMsS0FBSyxxQkFBcUIsc0NBQXNDLDBDQUEwQyxLQUFLLHFCQUFxQixzQ0FBc0MsMENBQTBDLEtBQUsscUJBQXFCLHNDQUFzQywwQ0FBMEMsS0FBSyx5QkFBeUIsOENBQThDLEtBQUssc0JBQXNCLDZDQUE2QyxLQUFLLHdCQUF3QiwrQ0FBK0MsS0FBSyxvQkFBb0IsMkNBQTJDLEtBQUsseUJBQXlCLGdEQUFnRCxLQUFLLGdDQUFnQyx3QkFBd0IseUJBQXlCLE9BQU8sMEJBQTBCLDJCQUEyQixPQUFPLEtBQUsscUNBQXFDLGtDQUFrQyxtQ0FBbUMsT0FBTyw2QkFBNkIsOEJBQThCLE9BQU8sb0NBQW9DLHNDQUFzQyxPQUFPLGlDQUFpQyxrQ0FBa0MsT0FBTyw4QkFBOEIsK0JBQStCLE9BQU8sS0FBSyxnQ0FBZ0MsMEJBQTBCLDJCQUEyQixPQUFPLDRCQUE0Qiw4QkFBOEIsT0FBTyw2QkFBNkIsK0JBQStCLE9BQU8sMkJBQTJCLDZCQUE2QixPQUFPLDRCQUE0Qiw4QkFBOEIsT0FBTywrQkFBK0IsaUNBQWlDLE9BQU8sdUJBQXVCLHdCQUF3QixPQUFPLEtBQUssaUNBQWlDLDJCQUEyQiw0QkFBNEIsT0FBTywyQkFBMkIsNEJBQTRCLE9BQU8sd0JBQXdCLHlCQUF5QixPQUFPLDRCQUE0Qiw4QkFBOEIsT0FBTyw0QkFBNEIsOEJBQThCLE9BQU8sS0FBSyw0QkFBNEIscUJBQXFCLDBDQUEwQyxPQUFPLHFCQUFxQiwwQ0FBMEMsT0FBTyxzQkFBc0IsNENBQTRDLE9BQU8sc0JBQXNCLDRDQUE0QyxPQUFPLHNCQUFzQiw0Q0FBNEMsT0FBTyxzQkFBc0IsNENBQTRDLE9BQU8sc0JBQXNCLDRDQUE0QyxPQUFPLHNCQUFzQiw0Q0FBNEMsT0FBTyxzQkFBc0IsNENBQTRDLE9BQU8sc0JBQXNCLDRDQUE0QyxPQUFPLHNCQUFzQiw0Q0FBNEMsT0FBTyxzQkFBc0IsNENBQTRDLE9BQU8sS0FBSyxHQUFHLHFCQUFxQjtBQUNuZ0s7QUFDQSxpRUFBZSx1QkFBdUIsRUFBQzs7Ozs7Ozs7Ozs7Ozs7O0FDN0t2QztBQUM2RztBQUNqQjtBQUM1Riw4QkFBOEIsbUZBQTJCLENBQUMsNEZBQXFDO0FBQy9GO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx1R0FBdUcsVUFBVSxVQUFVLFVBQVUsWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLFdBQVcsVUFBVSxNQUFNLEtBQUssWUFBWSxXQUFXLFlBQVksV0FBVyxVQUFVLFlBQVksYUFBYSxhQUFhLGFBQWEsT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLFlBQVksT0FBTyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLHVEQUF1RCxrQkFBa0IsZ0JBQWdCLGlCQUFpQix3QkFBd0IsNEJBQTRCLEdBQUcsNkJBQTZCLHVCQUF1QixnQkFBZ0IsaUJBQWlCLEdBQUcsb0NBQW9DLDJCQUEyQixtQkFBbUIsdUJBQXVCLGdCQUFnQixpQkFBaUIsc0JBQXNCLHVCQUF1QixtRUFBbUUsaUZBQWlGLEdBQUcsaURBQWlELDRCQUE0QixHQUFHLGlEQUFpRCwyQkFBMkIsR0FBRyxpREFBaUQsNEJBQTRCLEdBQUcsaURBQWlELHdCQUF3QixHQUFHLHlCQUF5QixRQUFRLDhCQUE4QixLQUFLLFVBQVUsZ0NBQWdDLEtBQUssR0FBRyxxQkFBcUI7QUFDLytDO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUM7Ozs7Ozs7Ozs7Ozs7OztBQ3pEdkM7QUFDNkc7QUFDakI7QUFDNUYsOEJBQThCLG1GQUEyQixDQUFDLDRGQUFxQztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sbUdBQW1HLEtBQUssVUFBVSxZQUFZLFdBQVcsS0FBSyxLQUFLLFVBQVUsWUFBWSxhQUFhLFdBQVcsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFVBQVUsVUFBVSxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxhQUFhLE1BQU0saUNBQWlDLDJCQUEyQixvQkFBb0IsNkJBQTZCLGdCQUFnQixLQUFLLDRCQUE0QixvQkFBb0IsMEJBQTBCLDhCQUE4QixrQkFBa0IsbUJBQW1CLHlCQUF5QixxREFBcUQsS0FBSywrQkFBK0IsaUJBQWlCLGtCQUFrQix5QkFBeUIscURBQXFELEtBQUssMkJBQTJCLHFDQUFxQyw2Q0FBNkMsd0NBQXdDLEtBQUssR0FBRyxxQkFBcUI7QUFDbmdDO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUM7Ozs7Ozs7Ozs7Ozs7OztBQ2xDdkM7QUFDNkc7QUFDakI7QUFDNUYsOEJBQThCLG1GQUEyQixDQUFDLDRGQUFxQztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sbUdBQW1HLEtBQUssVUFBVSxNQUFNLEtBQUssVUFBVSxZQUFZLE9BQU8sS0FBSyxXQUFXLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLE1BQU0sS0FBSyxVQUFVLE1BQU0sS0FBSyxNQUFNLEtBQUssWUFBWSxhQUFhLFdBQVcsS0FBSyxNQUFNLEtBQUssS0FBSyxZQUFZLE9BQU8sS0FBSyxhQUFhLE1BQU0sWUFBWSxNQUFNLEtBQUssc0NBQXNDLFdBQVcsb0JBQW9CLEtBQUssb0JBQW9CLGtCQUFrQixnQ0FBZ0MsS0FBSyxxQkFBcUIsa0JBQWtCLDBCQUEwQixxQkFBcUIsNkJBQTZCLFNBQVMsT0FBTyx1QkFBdUIscUJBQXFCLDJCQUEyQixTQUFTLE9BQU8scUJBQXFCLHFCQUFxQiw0QkFBNEIsU0FBUyxPQUFPLEtBQUssbUJBQW1CLGtCQUFrQixLQUFLLGtCQUFrQixLQUFLLG1CQUFtQix3QkFBd0IsNkJBQTZCLG1CQUFtQixLQUFLLEdBQUcsaUJBQWlCLDRCQUE0Qix1Q0FBdUMsS0FBSywyQkFBMkIsdUNBQXVDLGlCQUFpQixrQ0FBa0MsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQzF4QztBQUNBLGlFQUFlLHVCQUF1QixFQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUNoRXZDO0FBQzZHO0FBQ2pCO0FBQzVGLDhCQUE4QixtRkFBMkIsQ0FBQyw0RkFBcUM7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLDZHQUE2RyxLQUFLLFVBQVUsS0FBSyxNQUFNLEtBQUssS0FBSyxZQUFZLGFBQWEsYUFBYSxPQUFPLEtBQUssVUFBVSxZQUFZLGFBQWEsV0FBVyxVQUFVLFlBQVksYUFBYSxXQUFXLFlBQVksT0FBTyxLQUFLLFVBQVUsVUFBVSxVQUFVLFlBQVksYUFBYSxjQUFjLE1BQU0sWUFBWSxNQUFNLE1BQU0sS0FBSyxZQUFZLGFBQWEsY0FBYyxNQUFNLFlBQVksTUFBTSxLQUFLLDJDQUEyQywrQkFBK0Isa0JBQWtCLEtBQUssR0FBRyxpQkFBaUIsYUFBYSx1Q0FBdUMsMkNBQTJDLDJDQUEyQyxLQUFLLHVCQUF1QixvQkFBb0IscUNBQXFDLDBCQUEwQixtQkFBbUIsb0JBQW9CLHVEQUF1RCx5QkFBeUIsc0JBQXNCLHlCQUF5QixLQUFLLGVBQWUsa0JBQWtCLG1CQUFtQixvQkFBb0IscUNBQXFDLHlDQUF5Qyw2Q0FBNkMsdUJBQXVCLDRDQUE0QyxPQUFPLEtBQUsscUJBQXFCLHFDQUFxQyx5Q0FBeUMsNkNBQTZDLGlCQUFpQiwwQ0FBMEMsT0FBTyxLQUFLLEdBQUcscUJBQXFCO0FBQ3BnRDtBQUNBLGlFQUFlLHVCQUF1QixFQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUN2RHZDO0FBQzZHO0FBQ2pCO0FBQzVGLDhCQUE4QixtRkFBMkIsQ0FBQyw0RkFBcUM7QUFDL0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxPQUFPLHlGQUF5RixZQUFZLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxjQUFjLGFBQWEsdUNBQXVDLG1DQUFtQyxtQ0FBbUMscUNBQXFDLHFDQUFxQyxxQ0FBcUMscUNBQXFDLHFDQUFxQyxxQ0FBcUMscUNBQXFDLHFDQUFxQyxxQ0FBcUMscUNBQXFDLHVDQUF1QyxxQ0FBcUMscUNBQXFDLHFDQUFxQyxxQ0FBcUMscUNBQXFDLHFDQUFxQyxxQ0FBcUMsdUNBQXVDLHFDQUFxQyx1Q0FBdUMscUNBQXFDLHFDQUFxQyxvQ0FBb0MsR0FBRyxxQkFBcUI7QUFDdjdDO0FBQ0EsaUVBQWUsdUJBQXVCLEVBQUM7Ozs7Ozs7Ozs7Ozs7OztBQ3ZDdkM7QUFDNkc7QUFDakI7QUFDNUYsOEJBQThCLG1GQUEyQixDQUFDLDRGQUFxQztBQUMvRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTyx3RkFBd0YsWUFBWSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsY0FBYyxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSxjQUFjLGFBQWEsYUFBYSxhQUFhLGFBQWEsYUFBYSx1Q0FBdUMsMEJBQTBCLHlCQUF5QiwyQkFBMkIseUJBQXlCLHlCQUF5QiwwQkFBMEIsMEJBQTBCLDBCQUEwQiwwQkFBMEIsMEJBQTBCLDhCQUE4QiwyQkFBMkIsNkJBQTZCLDJCQUEyQiwyQkFBMkIsNEJBQTRCLDRCQUE0Qiw0QkFBNEIsNEJBQTRCLDRCQUE0QixpQ0FBaUMsOEJBQThCLGdDQUFnQyw0QkFBNEIsaUNBQWlDLEdBQUcscUJBQXFCO0FBQzFwQztBQUNBLGlFQUFlLHVCQUF1QixFQUFDOzs7Ozs7OztBQ3BDMUI7O0FBRWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQSxxRkFBcUY7QUFDckY7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGlCQUFpQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIscUJBQXFCO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLHNGQUFzRixxQkFBcUI7QUFDM0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLGlEQUFpRCxxQkFBcUI7QUFDdEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTtBQUNWLHNEQUFzRCxxQkFBcUI7QUFDM0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ3BGYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdURBQXVELGNBQWM7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2ZhOztBQUViO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQix3QkFBd0I7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsaUJBQWlCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEJBQTRCO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsNkJBQTZCO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDbkZhOztBQUViOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2pDYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDVGE7O0FBRWI7QUFDQTtBQUNBLGNBQWMsS0FBd0MsR0FBRyxzQkFBaUIsR0FBRyxDQUFJO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7Ozs7QUNUYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRDtBQUNsRDtBQUNBO0FBQ0EsMENBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBLGlGQUFpRjtBQUNqRjtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLHlEQUF5RDtBQUN6RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQzVEYTs7QUFFYjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7Ozs7OztBQ2JBOzs7Ozs7O0FDQUE7Ozs7OztVQ0FBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7O1VBRUE7VUFDQTs7VUFFQTtVQUNBO1VBQ0E7Ozs7O1dDdEJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxpQ0FBaUMsV0FBVztXQUM1QztXQUNBOzs7OztXQ1BBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7V0FDQTtXQUNBO1dBQ0E7V0FDQSxHQUFHO1dBQ0g7V0FDQTtXQUNBLENBQUM7Ozs7O1dDUEQ7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7OztXQ05BO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBOzs7OztXQ2xCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0NBLE1BQWtHO0FBQ2xHLE1BQXdGO0FBQ3hGLE1BQStGO0FBQy9GLE1BQWtIO0FBQ2xILE1BQTJHO0FBQzNHLE1BQTJHO0FBQzNHLE1BQTZHO0FBQzdHO0FBQ0E7O0FBRUE7O0FBRUEsNEJBQTRCLDZCQUFtQjtBQUMvQyx3QkFBd0IsMENBQWE7QUFDckMsaUJBQWlCLCtCQUFhO0FBQzlCLGlCQUFpQix1QkFBTTtBQUN2Qiw2QkFBNkIsOEJBQWtCOztBQUUvQyxhQUFhLGtDQUFHLENBQUMsMkJBQU87Ozs7QUFJdUQ7QUFDL0UsT0FBTywwREFBZSwyQkFBTyxJQUFJLDJCQUFPLFVBQVUsMkJBQU8sbUJBQW1CLEVBQUM7OztBQ3hCN0UsSUFBSUEsUUFBUSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLFFBQVEsSUFBSyxZQUFZO0VBQ2xEQSxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxJQUFJLFVBQVNDLENBQUMsRUFBRTtJQUNwQyxLQUFLLElBQUlDLENBQUMsRUFBRUMsQ0FBQyxHQUFHLENBQUMsRUFBRUMsQ0FBQyxHQUFHQyxTQUFTLENBQUNDLE1BQU0sRUFBRUgsQ0FBQyxHQUFHQyxDQUFDLEVBQUVELENBQUMsRUFBRSxFQUFFO01BQ2pERCxDQUFDLEdBQUdHLFNBQVMsQ0FBQ0YsQ0FBQyxDQUFDO01BQ2hCLEtBQUssSUFBSUksQ0FBQyxJQUFJTCxDQUFDLEVBQUUsSUFBSUgsTUFBTSxDQUFDUyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUixDQUFDLEVBQUVLLENBQUMsQ0FBQyxFQUMzRE4sQ0FBQyxDQUFDTSxDQUFDLENBQUMsR0FBR0wsQ0FBQyxDQUFDSyxDQUFDLENBQUM7SUFDbkI7SUFDQSxPQUFPTixDQUFDO0VBQ1osQ0FBQztFQUNELE9BQU9ILFFBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDRCxJQUFJTyxNQUFNLEdBQUksU0FBSSxJQUFJLFNBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVWLENBQUMsRUFBRVcsQ0FBQyxFQUFFO0VBQ2xELElBQUlaLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlNLENBQUMsSUFBSUwsQ0FBQyxFQUFFLElBQUlILE1BQU0sQ0FBQ1MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsQ0FBQyxFQUFFSyxDQUFDLENBQUMsSUFBSU0sQ0FBQyxDQUFDQyxPQUFPLENBQUNQLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VOLENBQUMsQ0FBQ00sQ0FBQyxDQUFDLEdBQUdMLENBQUMsQ0FBQ0ssQ0FBQyxDQUFDO0VBQ2YsSUFBSUwsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSCxNQUFNLENBQUNnQixxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSVosQ0FBQyxHQUFHLENBQUMsRUFBRUksQ0FBQyxHQUFHUixNQUFNLENBQUNnQixxQkFBcUIsQ0FBQ2IsQ0FBQyxDQUFDLEVBQUVDLENBQUMsR0FBR0ksQ0FBQyxDQUFDRCxNQUFNLEVBQUVILENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlVLENBQUMsQ0FBQ0MsT0FBTyxDQUFDUCxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJSixNQUFNLENBQUNTLFNBQVMsQ0FBQ1Esb0JBQW9CLENBQUNOLElBQUksQ0FBQ1IsQ0FBQyxFQUFFSyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEVBQzFFRixDQUFDLENBQUNNLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBR0QsQ0FBQyxDQUFDSyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT0YsQ0FBQztBQUNaLENBQUM7QUFDMkU7QUFDNUUsU0FBU29CLFdBQVdBLENBQUEsRUFBRztFQUNuQixJQUFJQyxJQUFJLEdBQUcsRUFBRTtFQUNiLEtBQUssSUFBSUMsRUFBRSxHQUFHLENBQUMsRUFBRUEsRUFBRSxHQUFHbEIsU0FBUyxDQUFDQyxNQUFNLEVBQUVpQixFQUFFLEVBQUUsRUFBRTtJQUMxQ0QsSUFBSSxDQUFDQyxFQUFFLENBQUMsR0FBR2xCLFNBQVMsQ0FBQ2tCLEVBQUUsQ0FBQztFQUM1QjtFQUNBLE9BQU8sVUFBVUMsSUFBSSxFQUFFO0lBQ25CRixJQUFJLENBQUNHLE9BQU8sQ0FBQyxVQUFVQyxHQUFHLEVBQUU7TUFDeEIsSUFBSUEsR0FBRyxFQUFFO1FBQ0wsSUFBSSxPQUFPQSxHQUFHLEtBQUssVUFBVSxFQUFFO1VBQzNCQSxHQUFHLENBQUNGLElBQUksQ0FBQztRQUNiLENBQUMsTUFDSTtVQUNERSxHQUFHLENBQUNDLE9BQU8sR0FBR0gsSUFBSTtRQUN0QjtNQUNKO0lBQ0osQ0FBQyxDQUFDO0VBQ04sQ0FBQztBQUNMO0FBQ0EsSUFBSUksUUFBUSxnQkFBR1Qsc0ZBQVUsQ0FBQyxVQUFVVSxFQUFFLEVBQUVILEdBQUcsRUFBRTtFQUN6QyxJQUFJSSxRQUFRLEdBQUdELEVBQUUsQ0FBQ0MsUUFBUTtJQUFFQyxhQUFhLEdBQUduQixNQUFNLENBQUNpQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztFQUNwRSxJQUFJRyxVQUFVLEdBQUdmLGdGQUFRLENBQUNnQixPQUFPLENBQUNILFFBQVEsQ0FBQztFQUMzQyxJQUFJRSxVQUFVLENBQUMxQixNQUFNLEdBQUcsQ0FBQyxFQUFFO0lBQ3ZCLE1BQU0sSUFBSTRCLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQztFQUN2RDtFQUNBLElBQUlDLFlBQVksZ0JBQUdmLDBGQUFjLENBQUNZLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNoRCxJQUFJLENBQUNHLFlBQVksRUFBRTtJQUNmLE1BQU0sSUFBSUQsS0FBSyxDQUFDLDZCQUE2QixDQUFDO0VBQ2xEO0VBQ0EsSUFBSUUsS0FBSyxHQUFHSixVQUFVLENBQUMsQ0FBQyxDQUFDO0VBQ3pCLElBQUlLLFFBQVEsR0FBR0MsYUFBYSxDQUFDRixLQUFLLENBQUM7RUFDbkMsSUFBSUcsV0FBVyxHQUFHQyxVQUFVLENBQUNULGFBQWEsRUFBRUssS0FBSyxDQUFDSyxLQUFLLENBQUM7RUFDeEQsb0JBQU92Qix3RkFBWSxDQUFDa0IsS0FBSyxFQUFFdEMsUUFBUSxDQUFDQSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUV5QyxXQUFXLENBQUMsRUFBRTtJQUFFYixHQUFHLEVBQUVBLEdBQUcsR0FBR0wsV0FBVyxDQUFDSyxHQUFHLEVBQUVXLFFBQVEsQ0FBQyxHQUFHQTtFQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3pILENBQUMsQ0FBQztBQUNGVCxRQUFRLENBQUNjLFdBQVcsR0FBRyxVQUFVO0FBQ2pDLFNBQVNGLFVBQVVBLENBQUNULGFBQWEsRUFBRVksVUFBVSxFQUFFO0VBQzNDLElBQUlDLGFBQWEsR0FBRzlDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTZDLFVBQVUsQ0FBQztFQUM1QyxJQUFJRSxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBYUMsUUFBUSxFQUFFO0lBQzlCLElBQUlDLGlCQUFpQixHQUFHaEIsYUFBYSxDQUFDZSxRQUFRLENBQUM7SUFDL0MsSUFBSUUsY0FBYyxHQUFHTCxVQUFVLENBQUNHLFFBQVEsQ0FBQztJQUN6QyxJQUFJRyxTQUFTLEdBQUcsVUFBVSxDQUFDQyxJQUFJLENBQUNKLFFBQVEsQ0FBQztJQUN6QyxJQUFJRyxTQUFTLEVBQUU7TUFDWCxJQUFJRixpQkFBaUIsSUFBSUMsY0FBYyxFQUFFO1FBQ3JDSixhQUFhLENBQUNFLFFBQVEsQ0FBQyxHQUFHLFlBQVk7VUFDbEMsSUFBSUssSUFBSSxHQUFHLEVBQUU7VUFDYixLQUFLLElBQUk1QixFQUFFLEdBQUcsQ0FBQyxFQUFFQSxFQUFFLEdBQUdsQixTQUFTLENBQUNDLE1BQU0sRUFBRWlCLEVBQUUsRUFBRSxFQUFFO1lBQzFDNEIsSUFBSSxDQUFDNUIsRUFBRSxDQUFDLEdBQUdsQixTQUFTLENBQUNrQixFQUFFLENBQUM7VUFDNUI7VUFDQXlCLGNBQWMsQ0FBQ3JDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRXdDLElBQUksQ0FBQztVQUNsQ0osaUJBQWlCLENBQUNwQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUV3QyxJQUFJLENBQUM7UUFDekMsQ0FBQztNQUNMLENBQUMsTUFDSSxJQUFJSixpQkFBaUIsRUFBRTtRQUN4QkgsYUFBYSxDQUFDRSxRQUFRLENBQUMsR0FBR0MsaUJBQWlCO01BQy9DO0lBQ0osQ0FBQyxNQUNJLElBQUlELFFBQVEsS0FBSyxPQUFPLEVBQUU7TUFDM0JGLGFBQWEsQ0FBQ0UsUUFBUSxDQUFDLEdBQUdoRCxRQUFRLENBQUNBLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRWlELGlCQUFpQixDQUFDLEVBQUVDLGNBQWMsQ0FBQztJQUN2RixDQUFDLE1BQ0ksSUFBSUYsUUFBUSxLQUFLLFdBQVcsRUFBRTtNQUMvQkYsYUFBYSxDQUFDRSxRQUFRLENBQUMsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRUMsY0FBYyxDQUFDLENBQ3hESSxNQUFNLENBQUNDLE9BQU8sQ0FBQyxDQUNmQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCO0VBQ0osQ0FBQztFQUNELEtBQUssSUFBSVIsUUFBUSxJQUFJZixhQUFhLEVBQUU7SUFDaENjLE9BQU8sQ0FBQ0MsUUFBUSxDQUFDO0VBQ3JCO0VBQ0EsT0FBT2hELFFBQVEsQ0FBQ0EsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFaUMsYUFBYSxDQUFDLEVBQUVhLGFBQWEsQ0FBQztBQUMvRDtBQUNBLFNBQVNOLGFBQWFBLENBQUNpQixPQUFPLEVBQUU7RUFDNUIsSUFBSTFCLEVBQUUsRUFBRTJCLEVBQUU7RUFDVixJQUFJQyxNQUFNLEdBQUcsQ0FBQzVCLEVBQUUsR0FBRzlCLE1BQU0sQ0FBQzJELHdCQUF3QixDQUFDSCxPQUFPLENBQUNkLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUlaLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBR0EsRUFBRSxDQUFDOEIsR0FBRztFQUNySCxJQUFJQyxPQUFPLEdBQUdILE1BQU0sSUFBSSxnQkFBZ0IsSUFBSUEsTUFBTSxJQUFJQSxNQUFNLENBQUNJLGNBQWM7RUFDM0UsSUFBSUQsT0FBTyxFQUFFO0lBQ1QsT0FBT0wsT0FBTyxDQUFDN0IsR0FBRztFQUN0QjtFQUNBK0IsTUFBTSxHQUFHLENBQUNELEVBQUUsR0FBR3pELE1BQU0sQ0FBQzJELHdCQUF3QixDQUFDSCxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJQyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUdBLEVBQUUsQ0FBQ0csR0FBRztFQUMzR0MsT0FBTyxHQUFHSCxNQUFNLElBQUksZ0JBQWdCLElBQUlBLE1BQU0sSUFBSUEsTUFBTSxDQUFDSSxjQUFjO0VBQ3ZFLElBQUlELE9BQU8sRUFBRTtJQUNULE9BQU9MLE9BQU8sQ0FBQ2QsS0FBSyxDQUFDZixHQUFHO0VBQzVCO0VBQ0EsT0FBUTZCLE9BQU8sQ0FBQ2QsS0FBSyxDQUFDZixHQUFHLElBQUk2QixPQUFPLENBQUM3QixHQUFHO0FBQzVDO0FBQ0EsK0NBQWVFLFFBQVE7O0FDMUd2QixJQUFJOUIsaUJBQVEsR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxRQUFRLElBQUssWUFBWTtFQUNsREEsaUJBQVEsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLElBQUksVUFBU0MsQ0FBQyxFQUFFO0lBQ3BDLEtBQUssSUFBSUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQyxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFSCxDQUFDLEdBQUdDLENBQUMsRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDakRELENBQUMsR0FBR0csU0FBUyxDQUFDRixDQUFDLENBQUM7TUFDaEIsS0FBSyxJQUFJSSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLEVBQzNETixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztJQUNuQjtJQUNBLE9BQU9OLENBQUM7RUFDWixDQUFDO0VBQ0QsT0FBT0gsaUJBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDK0M7QUFDUjtBQUNqQyxJQUFJMkQsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQWF2QixLQUFLLEVBQUU7RUFDcEMsSUFBSVosRUFBRSxHQUFHWSxLQUFLLENBQUN3QixPQUFPO0lBQUVBLE9BQU8sR0FBR3BDLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUdBLEVBQUU7SUFBRXFDLFdBQVcsR0FBR3pCLEtBQUssQ0FBQ3lCLFdBQVc7SUFBRVYsRUFBRSxHQUFHZixLQUFLLENBQUMwQixTQUFTO0lBQUVBLFNBQVMsR0FBR1gsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLE9BQU8sR0FBR0EsRUFBRTtJQUFFWSxNQUFNLEdBQUczQixLQUFLLENBQUMyQixNQUFNO0lBQUVDLGVBQWUsR0FBRzVCLEtBQUssQ0FBQzRCLGVBQWU7SUFBRUMsRUFBRSxHQUFHN0IsS0FBSyxDQUFDOEIsSUFBSTtJQUFFQSxJQUFJLEdBQUdELEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUdBLEVBQUU7SUFBRUUsS0FBSyxHQUFHL0IsS0FBSyxDQUFDK0IsS0FBSztJQUFFMUMsUUFBUSxHQUFHVyxLQUFLLENBQUNYLFFBQVE7SUFBRTJDLFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7RUFDNVYsSUFBSUMsSUFBSSxHQUFHVCxPQUFPLEdBQUdyQyxRQUFRLEdBQUcsS0FBSztFQUNyQyxJQUFJK0MsaUJBQWlCLEdBQUcsYUFBYSxDQUFDQyxNQUFNLENBQUNYLE9BQU8sR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDVyxNQUFNLENBQUNMLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQ0ssTUFBTSxDQUFDVixXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUNVLE1BQU0sQ0FBQ1QsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDUyxNQUFNLENBQUNQLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQ08sTUFBTSxDQUFDSCxTQUFTLENBQUM7RUFDdE4sT0FBUVYsb0JBQUksQ0FBQ1csSUFBSSxFQUFFO0lBQUVGLEtBQUssRUFBRTFFLGlCQUFRLENBQUM7TUFBRStFLFlBQVksRUFBRSxFQUFFLENBQUNELE1BQU0sQ0FBQ1IsTUFBTSxFQUFFLElBQUk7SUFBRSxDQUFDLEVBQUVJLEtBQUssQ0FBQztJQUFFQyxTQUFTLEVBQUVFLGlCQUFpQjtJQUFFN0MsUUFBUSxFQUFFQTtFQUFTLENBQUMsQ0FBQztBQUMvSSxDQUFDOztBQ2xCOEQ7QUFDOUI7QUFDTDtBQUNvQjtBQUNoRCxJQUFJbUQsTUFBTSxHQUFHLFNBQVRBLE1BQU1BLENBQWF4QyxLQUFLLEVBQUU7RUFDMUIsSUFBSThCLElBQUksR0FBRzlCLEtBQUssQ0FBQzhCLElBQUk7SUFBRVcsR0FBRyxHQUFHekMsS0FBSyxDQUFDeUMsR0FBRztJQUFFQyxHQUFHLEdBQUcxQyxLQUFLLENBQUMwQyxHQUFHO0lBQUVDLFdBQVcsR0FBRzNDLEtBQUssQ0FBQzJDLFdBQVc7RUFDeEYsSUFBSXZELEVBQUUsR0FBR21ELG9GQUFRLENBQUMsS0FBSyxDQUFDO0lBQUVLLGVBQWUsR0FBR3hELEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFBRXlELGtCQUFrQixHQUFHekQsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUM3RSxPQUFRa0QscUJBQUssQ0FBQyxLQUFLLEVBQUU7SUFBRU4sU0FBUyxFQUFFLFNBQVMsQ0FBQ0csTUFBTSxDQUFDTCxJQUFJLENBQUM7SUFBRXpDLFFBQVEsRUFBRSxDQUFDaUMsb0JBQUksQ0FBQyxLQUFLLEVBQUU7TUFBRW1CLEdBQUcsRUFBRUEsR0FBRztNQUFFQyxHQUFHLEVBQUVBLEdBQUcsS0FBSyxJQUFJLElBQUlBLEdBQUcsS0FBSyxLQUFLLENBQUMsR0FBR0EsR0FBRyxHQUFHLFFBQVE7TUFBRVYsU0FBUyxFQUFFLFNBQVMsQ0FBQ0csTUFBTSxDQUFDTCxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUNLLE1BQU0sQ0FBQyxDQUFDUyxlQUFlLEdBQUcsUUFBUSxHQUFHLEVBQUUsQ0FBQztNQUFFRSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBQSxFQUFjO1FBQUUsT0FBT0Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDO01BQUU7SUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDRCxlQUFlLElBQUt0QixvQkFBSSxDQUFDLEtBQUssRUFBRTtNQUFFVSxTQUFTLEVBQUUseUJBQXlCLENBQUNHLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDO01BQUV6QyxRQUFRLEVBQUVpQyxvQkFBSSxDQUFDLEtBQUssRUFBRTtRQUFFVSxTQUFTLEVBQUU7TUFBNEIsQ0FBQztJQUFFLENBQUMsQ0FBRSxFQUFFVixvQkFBSSxDQUFDQyxTQUFTLEVBQUU7TUFBRUMsT0FBTyxFQUFFLElBQUk7TUFBRU8sS0FBSyxFQUFFO1FBQ3RkZ0IsUUFBUSxFQUFFLFVBQVU7UUFDcEJDLEtBQUssRUFBRSxHQUFHO1FBQ1ZDLE1BQU0sRUFBRTtNQUNaLENBQUM7TUFBRTVELFFBQVEsRUFBRXNEO0lBQVksQ0FBQyxDQUFDO0VBQUUsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFDRCw2Q0FBZUgsTUFBTTs7Ozs7QUNackIsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBNkc7QUFDN0c7QUFDQTs7QUFFQSxJQUFJLG9CQUFPOztBQUVYLG9CQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0Msb0JBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLG9CQUFPLFVBQVUsK0JBQWE7QUFDOUIsb0JBQU8sVUFBVSx1QkFBTTtBQUN2QixvQkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLG1CQUFNLEdBQUcsa0NBQUcsQ0FBQywyQkFBTyxFQUFFLG9CQUFPOzs7O0FBSThDO0FBQy9FLE9BQU8sMERBQWUsMkJBQU8sSUFBSSwyQkFBTyxVQUFVLDJCQUFPLG1CQUFtQixFQUFDOzs7Ozs7QUN2QjdFLE1BQWtHO0FBQ2xHLE1BQXdGO0FBQ3hGLE1BQStGO0FBQy9GLE1BQWtIO0FBQ2xILE1BQTJHO0FBQzNHLE1BQTJHO0FBQzNHLE1BQXNHO0FBQ3RHO0FBQ0E7O0FBRUEsSUFBSSxhQUFPOztBQUVYLGFBQU8scUJBQXFCLDZCQUFtQjtBQUMvQyxhQUFPLGlCQUFpQiwwQ0FBYTtBQUNyQyxhQUFPLFVBQVUsK0JBQWE7QUFDOUIsYUFBTyxVQUFVLHVCQUFNO0FBQ3ZCLGFBQU8sc0JBQXNCLDhCQUFrQjs7QUFFL0MsSUFBSSxZQUFNLEdBQUcsa0NBQUcsQ0FBQyxvQkFBTyxFQUFFLGFBQU87Ozs7QUFJdUM7QUFDeEUsT0FBTyxrREFBZSxvQkFBTyxJQUFJLG9CQUFPLFVBQVUsb0JBQU8sbUJBQW1CLEVBQUM7Ozs7OztBQ3ZCN0UsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBcUc7QUFDckc7QUFDQTs7QUFFQSxJQUFJLFlBQU87O0FBRVgsWUFBTyxxQkFBcUIsNkJBQW1CO0FBQy9DLFlBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLFlBQU8sVUFBVSwrQkFBYTtBQUM5QixZQUFPLFVBQVUsdUJBQU07QUFDdkIsWUFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLFdBQU0sR0FBRyxrQ0FBRyxDQUFDLG1CQUFPLEVBQUUsWUFBTzs7OztBQUlzQztBQUN2RSxPQUFPLGlEQUFlLG1CQUFPLElBQUksbUJBQU8sVUFBVSxtQkFBTyxtQkFBbUIsRUFBQzs7O0FDeEI3RSxJQUFJbkYsa0JBQVEsR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxRQUFRLElBQUssWUFBWTtFQUNsREEsa0JBQVEsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLElBQUksVUFBU0MsQ0FBQyxFQUFFO0lBQ3BDLEtBQUssSUFBSUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQyxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFSCxDQUFDLEdBQUdDLENBQUMsRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDakRELENBQUMsR0FBR0csU0FBUyxDQUFDRixDQUFDLENBQUM7TUFDaEIsS0FBSyxJQUFJSSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLEVBQzNETixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztJQUNuQjtJQUNBLE9BQU9OLENBQUM7RUFDWixDQUFDO0VBQ0QsT0FBT0gsa0JBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDRCxJQUFJTyxnQkFBTSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVVixDQUFDLEVBQUVXLENBQUMsRUFBRTtFQUNsRCxJQUFJWixDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJTSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLElBQUlNLENBQUMsQ0FBQ0MsT0FBTyxDQUFDUCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FTixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztFQUNmLElBQUlMLENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0gsTUFBTSxDQUFDZ0IscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlaLENBQUMsR0FBRyxDQUFDLEVBQUVJLENBQUMsR0FBR1IsTUFBTSxDQUFDZ0IscUJBQXFCLENBQUNiLENBQUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUdJLENBQUMsQ0FBQ0QsTUFBTSxFQUFFSCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVSxDQUFDLENBQUNDLE9BQU8sQ0FBQ1AsQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSUosTUFBTSxDQUFDUyxTQUFTLENBQUNRLG9CQUFvQixDQUFDTixJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxFQUMxRUYsQ0FBQyxDQUFDTSxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUdELENBQUMsQ0FBQ0ssQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9GLENBQUM7QUFDWixDQUFDO0FBQytDO0FBQ2I7QUFDSztBQUNaO0FBQ1U7QUFDRDtBQUNyQyxJQUFJMEYsVUFBVSxnQkFBR3hFLHNGQUFVLENBQUMsVUFBVVUsRUFBRSxFQUFFSCxHQUFHLEVBQUU7RUFDM0MsSUFBSUksUUFBUSxHQUFHRCxFQUFFLENBQUNDLFFBQVE7SUFBRTBCLEVBQUUsR0FBRzNCLEVBQUUsQ0FBQ29DLE9BQU87SUFBRUEsT0FBTyxHQUFHVCxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHQSxFQUFFO0lBQUVpQixTQUFTLEdBQUc1QyxFQUFFLENBQUM0QyxTQUFTO0lBQUVoQyxLQUFLLEdBQUc3QixnQkFBTSxDQUFDaUIsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztFQUNySyxJQUFJNkMsSUFBSSxHQUFHVCxPQUFPLEdBQUdyQyxRQUFRLEdBQUcsUUFBUTtFQUN4QyxPQUFRbUMsb0JBQUksQ0FBQ1csSUFBSSxFQUFFNUUsa0JBQVEsQ0FBQztJQUFFNEIsR0FBRyxFQUFFQSxHQUFHO0lBQUUrQyxTQUFTLEVBQUVSLE9BQU8sR0FBR1EsU0FBUyxHQUFHLGNBQWMsQ0FBQ0csTUFBTSxDQUFDSCxTQUFTLEtBQUssSUFBSSxJQUFJQSxTQUFTLEtBQUssS0FBSyxDQUFDLEdBQUdBLFNBQVMsR0FBRyxFQUFFO0VBQUUsQ0FBQyxFQUFFaEMsS0FBSyxFQUFFO0lBQUVYLFFBQVEsRUFBRUE7RUFBUyxDQUFDLENBQUMsQ0FBQztBQUNsTSxDQUFDLENBQUM7QUFDRixrREFBZTZELFVBQVU7Ozs7O0FDaEN6QixNQUFrRztBQUNsRyxNQUF3RjtBQUN4RixNQUErRjtBQUMvRixNQUFrSDtBQUNsSCxNQUEyRztBQUMzRyxNQUEyRztBQUMzRyxNQUE4RztBQUM5RztBQUNBOztBQUVBLElBQUkscUJBQU87O0FBRVgscUJBQU8scUJBQXFCLDZCQUFtQjtBQUMvQyxxQkFBTyxpQkFBaUIsMENBQWE7QUFDckMscUJBQU8sVUFBVSwrQkFBYTtBQUM5QixxQkFBTyxVQUFVLHVCQUFNO0FBQ3ZCLHFCQUFPLHNCQUFzQiw4QkFBa0I7O0FBRS9DLElBQUksb0JBQU0sR0FBRyxrQ0FBRyxDQUFDLDRCQUFPLEVBQUUscUJBQU87Ozs7QUFJK0M7QUFDaEYsT0FBTyw0REFBZSw0QkFBTyxJQUFJLDRCQUFPLFVBQVUsNEJBQU8sbUJBQW1CLEVBQUM7OztBQ3hCZDtBQUNsQztBQUM3QixJQUFJQyxPQUFPLEdBQUcsU0FBVkEsT0FBT0EsQ0FBQSxFQUFlO0VBQ3RCLE9BQVE3QixvQkFBSSxDQUFDLEtBQUssRUFBRTtJQUFFVSxTQUFTLEVBQUUsNkJBQTZCO0lBQUUzQyxRQUFRLEVBQUVpRCxxQkFBSyxDQUFDLEtBQUssRUFBRTtNQUFFTixTQUFTLEVBQUUsd0JBQXdCO01BQUUzQyxRQUFRLEVBQUUsQ0FBQ2lDLG9CQUFJLENBQUMsS0FBSyxFQUFFO1FBQUVVLFNBQVMsRUFBRTtNQUFnQyxDQUFDLENBQUMsRUFBRVYsb0JBQUksQ0FBQyxLQUFLLEVBQUU7UUFBRVUsU0FBUyxFQUFFO01BQWdDLENBQUMsQ0FBQyxFQUFFVixvQkFBSSxDQUFDLEtBQUssRUFBRTtRQUFFVSxTQUFTLEVBQUU7TUFBZ0MsQ0FBQyxDQUFDLEVBQUVWLG9CQUFJLENBQUMsS0FBSyxFQUFFO1FBQUVVLFNBQVMsRUFBRTtNQUFnQyxDQUFDLENBQUM7SUFBRSxDQUFDO0VBQUUsQ0FBQyxDQUFDO0FBQ3RZLENBQUM7QUFDRCxzREFBZW1CLE9BQU87O0FDTHRCLElBQUk5RixpQkFBUSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLFFBQVEsSUFBSyxZQUFZO0VBQ2xEQSxpQkFBUSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sSUFBSSxVQUFTQyxDQUFDLEVBQUU7SUFDcEMsS0FBSyxJQUFJQyxDQUFDLEVBQUVDLENBQUMsR0FBRyxDQUFDLEVBQUVDLENBQUMsR0FBR0MsU0FBUyxDQUFDQyxNQUFNLEVBQUVILENBQUMsR0FBR0MsQ0FBQyxFQUFFRCxDQUFDLEVBQUUsRUFBRTtNQUNqREQsQ0FBQyxHQUFHRyxTQUFTLENBQUNGLENBQUMsQ0FBQztNQUNoQixLQUFLLElBQUlJLENBQUMsSUFBSUwsQ0FBQyxFQUFFLElBQUlILE1BQU0sQ0FBQ1MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsQ0FBQyxFQUFFSyxDQUFDLENBQUMsRUFDM0ROLENBQUMsQ0FBQ00sQ0FBQyxDQUFDLEdBQUdMLENBQUMsQ0FBQ0ssQ0FBQyxDQUFDO0lBQ25CO0lBQ0EsT0FBT04sQ0FBQztFQUNaLENBQUM7RUFDRCxPQUFPSCxpQkFBUSxDQUFDYSxLQUFLLENBQUMsSUFBSSxFQUFFTixTQUFTLENBQUM7QUFDMUMsQ0FBQztBQUNxRjtBQUMvQztBQUNFO0FBQ3pDLElBQUkwRixTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBYXRELEtBQUssRUFBRTtFQUM3QixJQUFJdUQsSUFBSSxHQUFHdkQsS0FBSyxDQUFDdUQsSUFBSTtJQUFFbkUsRUFBRSxHQUFHWSxLQUFLLENBQUN3RCxPQUFPO0lBQUVBLE9BQU8sR0FBR3BFLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxTQUFTLEdBQUdBLEVBQUU7SUFBRTJCLEVBQUUsR0FBR2YsS0FBSyxDQUFDOEIsSUFBSTtJQUFFQSxJQUFJLEdBQUdmLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxHQUFHLEdBQUdBLEVBQUU7SUFBRWMsRUFBRSxHQUFHN0IsS0FBSyxDQUFDeUQsUUFBUTtJQUFFQSxRQUFRLEdBQUc1QixFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHQSxFQUFFO0lBQUU2QixJQUFJLEdBQUcxRCxLQUFLLENBQUMwRCxJQUFJO0lBQUVDLEVBQUUsR0FBRzNELEtBQUssQ0FBQzRELE9BQU87SUFBRUEsT0FBTyxHQUFHRCxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHQSxFQUFFO0VBQzlRLE9BQVFyQyxvQkFBSSxDQUFDNEIsV0FBVSxFQUFFN0YsaUJBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTJDLEtBQUssRUFBRTtJQUFFZ0MsU0FBUyxFQUFFLHdCQUF3QixDQUFDRyxNQUFNLENBQUNzQixRQUFRLEdBQUcsVUFBVSxHQUFHRCxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUNyQixNQUFNLENBQUNMLElBQUksQ0FBQztJQUFFekMsUUFBUSxFQUFFdUUsT0FBTyxHQUFJdEMsb0JBQUksQ0FBQzZCLGVBQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFLYixxQkFBSyxDQUFDZSxxQkFBUyxFQUFFO01BQUVoRSxRQUFRLEVBQUUsQ0FBQ3FFLElBQUksRUFBRUgsSUFBSTtJQUFFLENBQUM7RUFBRyxDQUFDLENBQUMsQ0FBQztBQUM5TyxDQUFDO0FBQ0QsaURBQWVELFNBQVM7O0FDbEJ4QixJQUFJakcsbUJBQVEsR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxRQUFRLElBQUssWUFBWTtFQUNsREEsbUJBQVEsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLElBQUksVUFBU0MsQ0FBQyxFQUFFO0lBQ3BDLEtBQUssSUFBSUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQyxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFSCxDQUFDLEdBQUdDLENBQUMsRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDakRELENBQUMsR0FBR0csU0FBUyxDQUFDRixDQUFDLENBQUM7TUFDaEIsS0FBSyxJQUFJSSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLEVBQzNETixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztJQUNuQjtJQUNBLE9BQU9OLENBQUM7RUFDWixDQUFDO0VBQ0QsT0FBT0gsbUJBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDK0M7QUFDUDtBQUN6QyxJQUFJaUcsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQWE3RCxLQUFLLEVBQUU7RUFDL0IsSUFBSThELE1BQU0sR0FBRzlELEtBQUssQ0FBQzhELE1BQU07RUFDekIsT0FBT3hDLG9CQUFJLENBQUNDLFNBQVMsRUFBRWxFLG1CQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUyQyxLQUFLLEVBQUU7SUFBRVgsUUFBUSxFQUFFeUU7RUFBTyxDQUFDLENBQUMsQ0FBQztBQUNyRSxDQUFDO0FBQ0QsbURBQWVELFdBQVc7O0FDakIxQixJQUFJeEcsc0JBQVEsR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxRQUFRLElBQUssWUFBWTtFQUNsREEsc0JBQVEsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLElBQUksVUFBU0MsQ0FBQyxFQUFFO0lBQ3BDLEtBQUssSUFBSUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQyxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFSCxDQUFDLEdBQUdDLENBQUMsRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDakRELENBQUMsR0FBR0csU0FBUyxDQUFDRixDQUFDLENBQUM7TUFDaEIsS0FBSyxJQUFJSSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLEVBQzNETixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztJQUNuQjtJQUNBLE9BQU9OLENBQUM7RUFDWixDQUFDO0VBQ0QsT0FBT0gsc0JBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDOEQ7QUFDdEI7QUFDekMsSUFBSW1HLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBYS9ELEtBQUssRUFBRTtFQUNqQyxJQUFJMEQsSUFBSSxHQUFHMUQsS0FBSyxDQUFDMEQsSUFBSTtJQUFFSCxJQUFJLEdBQUd2RCxLQUFLLENBQUN1RCxJQUFJO0VBQ3hDLE9BQVFqQixxQkFBSyxDQUFDZixTQUFTLEVBQUVsRSxzQkFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFMkMsS0FBSyxFQUFFO0lBQUVYLFFBQVEsRUFBRSxDQUFDcUUsSUFBSSxFQUFFcEMsb0JBQUksQ0FBQyxNQUFNLEVBQUU7TUFBRWpDLFFBQVEsRUFBRWtFO0lBQUssQ0FBQyxDQUFDO0VBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekcsQ0FBQztBQUNELHNEQUFlUSxhQUFhOzs7OztBQ2hCNUIsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBNEc7QUFDNUc7QUFDQTs7QUFFQSxJQUFJLG1CQUFPOztBQUVYLG1CQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0MsbUJBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLG1CQUFPLFVBQVUsK0JBQWE7QUFDOUIsbUJBQU8sVUFBVSx1QkFBTTtBQUN2QixtQkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLGtCQUFNLEdBQUcsa0NBQUcsQ0FBQywwQkFBTyxFQUFFLG1CQUFPOzs7O0FBSTZDO0FBQzlFLE9BQU8sd0RBQWUsMEJBQU8sSUFBSSwwQkFBTyxVQUFVLDBCQUFPLG1CQUFtQixFQUFDOzs7QUN4QjdFLElBQUkxRyw2QkFBUSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLFFBQVEsSUFBSyxZQUFZO0VBQ2xEQSw2QkFBUSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sSUFBSSxVQUFTQyxDQUFDLEVBQUU7SUFDcEMsS0FBSyxJQUFJQyxDQUFDLEVBQUVDLENBQUMsR0FBRyxDQUFDLEVBQUVDLENBQUMsR0FBR0MsU0FBUyxDQUFDQyxNQUFNLEVBQUVILENBQUMsR0FBR0MsQ0FBQyxFQUFFRCxDQUFDLEVBQUUsRUFBRTtNQUNqREQsQ0FBQyxHQUFHRyxTQUFTLENBQUNGLENBQUMsQ0FBQztNQUNoQixLQUFLLElBQUlJLENBQUMsSUFBSUwsQ0FBQyxFQUFFLElBQUlILE1BQU0sQ0FBQ1MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsQ0FBQyxFQUFFSyxDQUFDLENBQUMsRUFDM0ROLENBQUMsQ0FBQ00sQ0FBQyxDQUFDLEdBQUdMLENBQUMsQ0FBQ0ssQ0FBQyxDQUFDO0lBQ25CO0lBQ0EsT0FBT04sQ0FBQztFQUNaLENBQUM7RUFDRCxPQUFPSCw2QkFBUSxDQUFDYSxLQUFLLENBQUMsSUFBSSxFQUFFTixTQUFTLENBQUM7QUFDMUMsQ0FBQztBQUM4RDtBQUNwQztBQUNjO0FBQ3pDLElBQUlvRyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFhaEUsS0FBSyxFQUFFO0VBQ3ZDLElBQUkwRCxJQUFJLEdBQUcxRCxLQUFLLENBQUMwRCxJQUFJO0lBQUVILElBQUksR0FBR3ZELEtBQUssQ0FBQ3VELElBQUk7SUFBRU8sTUFBTSxHQUFHOUQsS0FBSyxDQUFDOEQsTUFBTTtFQUMvRCxPQUFReEIscUJBQUssQ0FBQ2YsU0FBUyxFQUFFbEUsNkJBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRTJDLEtBQUssRUFBRTtJQUFFZ0MsU0FBUyxFQUFFLGtCQUFrQjtJQUFFM0MsUUFBUSxFQUFFLENBQUNpRCxxQkFBSyxDQUFDLE1BQU0sRUFBRTtNQUFFakQsUUFBUSxFQUFFLENBQUNxRSxJQUFJLEVBQUVwQyxvQkFBSSxDQUFDLE1BQU0sRUFBRTtRQUFFakMsUUFBUSxFQUFFa0U7TUFBSyxDQUFDLENBQUM7SUFBRSxDQUFDLENBQUMsRUFBRU8sTUFBTTtFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9LLENBQUM7QUFDRCw2REFBZUUsbUJBQW1COzs7OztBQ2pCbEMsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBNEc7QUFDNUc7QUFDQTs7QUFFQSxJQUFJLG1CQUFPOztBQUVYLG1CQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0MsbUJBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLG1CQUFPLFVBQVUsK0JBQWE7QUFDOUIsbUJBQU8sVUFBVSx1QkFBTTtBQUN2QixtQkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLGtCQUFNLEdBQUcsa0NBQUcsQ0FBQywwQkFBTyxFQUFFLG1CQUFPOzs7O0FBSTZDO0FBQzlFLE9BQU8sd0RBQWUsMEJBQU8sSUFBSSwwQkFBTyxVQUFVLDBCQUFPLG1CQUFtQixFQUFDOzs7QUN4QjdFLElBQUkzRyxpQkFBUSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLFFBQVEsSUFBSyxZQUFZO0VBQ2xEQSxpQkFBUSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sSUFBSSxVQUFTQyxDQUFDLEVBQUU7SUFDcEMsS0FBSyxJQUFJQyxDQUFDLEVBQUVDLENBQUMsR0FBRyxDQUFDLEVBQUVDLENBQUMsR0FBR0MsU0FBUyxDQUFDQyxNQUFNLEVBQUVILENBQUMsR0FBR0MsQ0FBQyxFQUFFRCxDQUFDLEVBQUUsRUFBRTtNQUNqREQsQ0FBQyxHQUFHRyxTQUFTLENBQUNGLENBQUMsQ0FBQztNQUNoQixLQUFLLElBQUlJLENBQUMsSUFBSUwsQ0FBQyxFQUFFLElBQUlILE1BQU0sQ0FBQ1MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1IsQ0FBQyxFQUFFSyxDQUFDLENBQUMsRUFDM0ROLENBQUMsQ0FBQ00sQ0FBQyxDQUFDLEdBQUdMLENBQUMsQ0FBQ0ssQ0FBQyxDQUFDO0lBQ25CO0lBQ0EsT0FBT04sQ0FBQztFQUNaLENBQUM7RUFDRCxPQUFPSCxpQkFBUSxDQUFDYSxLQUFLLENBQUMsSUFBSSxFQUFFTixTQUFTLENBQUM7QUFDMUMsQ0FBQztBQUNELElBQUlPLGVBQU0sR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxNQUFNLElBQUssVUFBVVYsQ0FBQyxFQUFFVyxDQUFDLEVBQUU7RUFDbEQsSUFBSVosQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSU0sQ0FBQyxJQUFJTCxDQUFDLEVBQUUsSUFBSUgsTUFBTSxDQUFDUyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUixDQUFDLEVBQUVLLENBQUMsQ0FBQyxJQUFJTSxDQUFDLENBQUNDLE9BQU8sQ0FBQ1AsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRU4sQ0FBQyxDQUFDTSxDQUFDLENBQUMsR0FBR0wsQ0FBQyxDQUFDSyxDQUFDLENBQUM7RUFDZixJQUFJTCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9ILE1BQU0sQ0FBQ2dCLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJWixDQUFDLEdBQUcsQ0FBQyxFQUFFSSxDQUFDLEdBQUdSLE1BQU0sQ0FBQ2dCLHFCQUFxQixDQUFDYixDQUFDLENBQUMsRUFBRUMsQ0FBQyxHQUFHSSxDQUFDLENBQUNELE1BQU0sRUFBRUgsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVUsQ0FBQyxDQUFDQyxPQUFPLENBQUNQLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlKLE1BQU0sQ0FBQ1MsU0FBUyxDQUFDUSxvQkFBb0IsQ0FBQ04sSUFBSSxDQUFDUixDQUFDLEVBQUVLLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsRUFDMUVGLENBQUMsQ0FBQ00sQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxHQUFHRCxDQUFDLENBQUNLLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUM7RUFDekI7RUFDSixPQUFPRixDQUFDO0FBQ1osQ0FBQztBQUMrQztBQUNyQjtBQUMzQixJQUFJeUcsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQWFqRSxLQUFLLEVBQUU7RUFDN0IsT0FBT3NCLG9CQUFJLENBQUMsT0FBTyxFQUFFO0lBQUVVLFNBQVMsRUFBRSx1QkFBdUI7SUFBRTNDLFFBQVEsRUFBRVcsS0FBSyxDQUFDWDtFQUFTLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBQ0QsSUFBSTZFLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFhbEUsS0FBSyxFQUFFO0VBQy9CLElBQUlaLEVBQUUsR0FBR1ksS0FBSyxDQUFDbUUsT0FBTztJQUFFQSxPQUFPLEdBQUcvRSxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsUUFBUSxHQUFHQSxFQUFFO0lBQUU0QyxTQUFTLEdBQUdoQyxLQUFLLENBQUNnQyxTQUFTO0lBQUVvQyxJQUFJLEdBQUdqRyxlQUFNLENBQUM2QixLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7RUFDNUksT0FBUXNCLG9CQUFJLENBQUMsT0FBTyxFQUFFO0lBQUVVLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQ0csTUFBTSxDQUFDZ0MsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDaEMsTUFBTSxDQUFDSCxTQUFTLENBQUM7SUFBRTNDLFFBQVEsRUFBRVcsS0FBSyxDQUFDWDtFQUFTLENBQUMsQ0FBQztBQUNySSxDQUFDO0FBQ0QsSUFBSWdGLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFhckUsS0FBSyxFQUFFO0VBQzVCLElBQUlnQyxTQUFTLEdBQUdoQyxLQUFLLENBQUNnQyxTQUFTO0lBQUVvQyxJQUFJLEdBQUdqRyxlQUFNLENBQUM2QixLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztFQUNwRSxJQUFJc0UsVUFBVSxHQUFHLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRXRDLFNBQVMsQ0FBQyxDQUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUNqRSxPQUFRUyxvQkFBSSxDQUFDLElBQUksRUFBRWpFLGlCQUFRLENBQUM7SUFBRTJFLFNBQVMsRUFBRXNDO0VBQVcsQ0FBQyxFQUFFRixJQUFJLEVBQUU7SUFBRS9FLFFBQVEsRUFBRVcsS0FBSyxDQUFDWDtFQUFTLENBQUMsQ0FBQyxDQUFDO0FBQy9GLENBQUM7QUFDRCxJQUFJa0YsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQWF2RSxLQUFLLEVBQUU7RUFDN0IsT0FBT3NCLG9CQUFJLENBQUMsT0FBTyxFQUFFO0lBQUVVLFNBQVMsRUFBRSx1QkFBdUI7SUFBRTNDLFFBQVEsRUFBRVcsS0FBSyxDQUFDWDtFQUFTLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBQ0QsSUFBSW1GLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFheEUsS0FBSyxFQUFFO0VBQzdCLElBQUlnQyxTQUFTLEdBQUdoQyxLQUFLLENBQUNnQyxTQUFTO0lBQUVvQyxJQUFJLEdBQUdqRyxlQUFNLENBQUM2QixLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztFQUNwRSxJQUFJc0UsVUFBVSxHQUFHLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRXRDLFNBQVMsQ0FBQyxDQUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQztFQUNsRSxPQUFRUyxvQkFBSSxDQUFDLElBQUksRUFBRWpFLGlCQUFRLENBQUM7SUFBRTJFLFNBQVMsRUFBRXNDO0VBQVcsQ0FBQyxFQUFFRixJQUFJLEVBQUU7SUFBRS9FLFFBQVEsRUFBRVcsS0FBSyxDQUFDWDtFQUFTLENBQUMsQ0FBQyxDQUFDO0FBQy9GLENBQUM7QUFDRDRFLFNBQVMsQ0FBQ1EsTUFBTSxHQUFHUCxXQUFXO0FBQzlCRCxTQUFTLENBQUNTLElBQUksR0FBR0gsU0FBUztBQUMxQk4sU0FBUyxDQUFDVSxHQUFHLEdBQUdOLFFBQVE7QUFDeEJKLFNBQVMsQ0FBQ1csSUFBSSxHQUFHSixTQUFTO0FBQzFCLGlEQUFlUCxTQUFTOztBQ2hEdUM7QUFDbkI7QUFDUDtBQUNVO0FBQy9DLElBQUlhLFNBQVMsR0FBRyxTQUFaQSxTQUFTQSxDQUFhOUUsS0FBSyxFQUFFO0VBQzdCLElBQUkrRSxJQUFJLEdBQUcvRSxLQUFLLENBQUMrRSxJQUFJO0lBQUVDLE9BQU8sR0FBR2hGLEtBQUssQ0FBQ2dGLE9BQU87RUFDOUMsSUFBSTVGLEVBQUUsR0FBR21ELG9GQUFRLENBQUN3QyxJQUFJLENBQUNFLEdBQUcsQ0FBQyxVQUFVQyxHQUFHLEVBQUU7TUFBRSxPQUFRO1FBQUVBLEdBQUcsRUFBRUEsR0FBRztRQUFFQyxJQUFJLEVBQUU7TUFBTSxDQUFDO0lBQUcsQ0FBQyxDQUFDLENBQUM7SUFBRUMsV0FBVyxHQUFHaEcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFaUcsY0FBYyxHQUFHakcsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUNoSXlGLHFGQUFTLENBQUMsWUFBWTtJQUNsQlEsY0FBYyxDQUFDTixJQUFJLENBQUNFLEdBQUcsQ0FBQyxVQUFVQyxHQUFHLEVBQUU7TUFDbkMsSUFBSTlGLEVBQUUsRUFBRTJCLEVBQUU7TUFDVixPQUFRO1FBQ0ptRSxHQUFHLEVBQUVBLEdBQUc7UUFDUkMsSUFBSSxFQUFFLENBQUNwRSxFQUFFLEdBQUcsQ0FBQzNCLEVBQUUsR0FBR2dHLFdBQVcsQ0FBQ0UsSUFBSSxDQUFDLFVBQVVDLElBQUksRUFBRTtVQUFFLE9BQU9BLElBQUksQ0FBQ0wsR0FBRyxDQUFDTSxFQUFFLEtBQUtOLEdBQUcsQ0FBQ00sRUFBRTtRQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksSUFBSXBHLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBR0EsRUFBRSxDQUFDK0YsSUFBSSxNQUFNLElBQUksSUFBSXBFLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBR0EsRUFBRSxHQUFHO01BQzNLLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztFQUNQLENBQUMsRUFBRSxDQUFDZ0UsSUFBSSxDQUFDLENBQUM7RUFDVixPQUFRekMscUJBQUssQ0FBQzJCLFVBQVMsRUFBRTtJQUFFNUUsUUFBUSxFQUFFLENBQUNpQyxvQkFBSSxDQUFDMkMsVUFBUyxDQUFDUSxNQUFNLEVBQUU7TUFBRXpDLFNBQVMsRUFBRSxZQUFZO01BQUUzQyxRQUFRLEVBQUVpQyxvQkFBSSxDQUFDMkMsVUFBUyxDQUFDVSxHQUFHLEVBQUU7UUFBRXRGLFFBQVEsRUFBRStGLFdBQVcsQ0FBQ0gsR0FBRyxDQUFDLFVBQVVNLElBQUksRUFBRTtVQUM5SSxPQUFRakUsb0JBQUksQ0FBQzJDLFVBQVMsQ0FBQ1csSUFBSSxFQUFFO1lBQUU1QyxTQUFTLEVBQUV1RCxJQUFJLENBQUNKLElBQUksR0FBRyxNQUFNLEdBQUcsRUFBRTtZQUFFOUYsUUFBUSxFQUFFaUMsb0JBQUksQ0FBQzRCLFdBQVUsRUFBRTtjQUFFMUIsT0FBTyxFQUFFLElBQUk7Y0FBRWlFLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFBLEVBQWM7Z0JBQUUsSUFBSXJHLEVBQUUsRUFBRTJCLEVBQUU7Z0JBQUUsT0FBTyxDQUFDQSxFQUFFLEdBQUcsQ0FBQzNCLEVBQUUsR0FBR21HLElBQUksQ0FBQ0wsR0FBRyxFQUFFUSxVQUFVLE1BQU0sSUFBSSxJQUFJM0UsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHQSxFQUFFLENBQUM5QyxJQUFJLENBQUNtQixFQUFFLEVBQUVtRyxJQUFJLENBQUNMLEdBQUcsQ0FBQ00sRUFBRSxDQUFDO2NBQUUsQ0FBQztjQUFFbkcsUUFBUSxFQUFFa0csSUFBSSxDQUFDTCxHQUFHLENBQUNTO1lBQU0sQ0FBQztVQUFFLENBQUMsRUFBRUosSUFBSSxDQUFDTCxHQUFHLENBQUNNLEVBQUUsQ0FBQztRQUM1UyxDQUFDO01BQUUsQ0FBQztJQUFFLENBQUMsQ0FBQyxFQUFFbEUsb0JBQUksQ0FBQzJDLFVBQVMsQ0FBQ1MsSUFBSSxFQUFFO01BQUVyRixRQUFRLEVBQUUyRixPQUFPLENBQUNDLEdBQUcsQ0FBQyxVQUFVVyxNQUFNLEVBQUU7UUFDekUsT0FBUXRFLG9CQUFJLENBQUMyQyxVQUFTLENBQUNVLEdBQUcsRUFBRTtVQUFFM0MsU0FBUyxFQUFFLFlBQVk7VUFBRTNDLFFBQVEsRUFBRStGLFdBQVcsQ0FBQ0gsR0FBRyxDQUFDLFVBQVVNLElBQUksRUFBRTtZQUFFLE9BQVFqRSxvQkFBSSxDQUFDMkMsVUFBUyxDQUFDVyxJQUFJLEVBQUU7Y0FBRTVDLFNBQVMsRUFBRXVELElBQUksQ0FBQ0osSUFBSSxHQUFHLE1BQU0sR0FBRyxFQUFFO2NBQUU5RixRQUFRLEVBQUVpQyxvQkFBSSxDQUFDNEIsV0FBVSxFQUFFO2dCQUFFMUIsT0FBTyxFQUFFLElBQUk7Z0JBQUVpRSxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFjO2tCQUFFLElBQUlyRyxFQUFFLEVBQUUyQixFQUFFO2tCQUFFLE9BQU8sQ0FBQ0EsRUFBRSxHQUFHLENBQUMzQixFQUFFLEdBQUd3RyxNQUFNLENBQUNMLElBQUksQ0FBQ0wsR0FBRyxDQUFDTSxFQUFFLENBQUMsRUFBRUssV0FBVyxNQUFNLElBQUksSUFBSTlFLEVBQUUsS0FBSyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBR0EsRUFBRSxDQUFDOUMsSUFBSSxDQUFDbUIsRUFBRSxDQUFDO2dCQUFFLENBQUM7Z0JBQUVDLFFBQVEsRUFBRXVHLE1BQU0sQ0FBQ0wsSUFBSSxDQUFDTCxHQUFHLENBQUNNLEVBQUUsQ0FBQyxDQUFDRztjQUFNLENBQUM7WUFBRSxDQUFDLEVBQUVKLElBQUksQ0FBQ0wsR0FBRyxDQUFDTSxFQUFFLENBQUM7VUFBRyxDQUFDO1FBQUUsQ0FBQyxDQUFDO01BQ2phLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRSxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUNELGlEQUFlVixTQUFTOzs7OztBQ3JCeEIsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBaUg7QUFDakg7QUFDQTs7QUFFQSxJQUFJLHdCQUFPOztBQUVYLHdCQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0Msd0JBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLHdCQUFPLFVBQVUsK0JBQWE7QUFDOUIsd0JBQU8sVUFBVSx1QkFBTTtBQUN2Qix3QkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLHVCQUFNLEdBQUcsa0NBQUcsQ0FBQywrQkFBTyxFQUFFLHdCQUFPOzs7O0FBSWtEO0FBQ25GLE9BQU8sa0VBQWUsK0JBQU8sSUFBSSwrQkFBTyxVQUFVLCtCQUFPLG1CQUFtQixFQUFDOzs7QUN4QjdCO0FBQ2E7QUFDN0I7QUFDSztBQUNyQyxJQUFJa0IsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQWFoRyxLQUFLLEVBQUU7RUFDN0IsSUFBSXVELElBQUksR0FBR3ZELEtBQUssQ0FBQ3VELElBQUk7SUFBRXZCLFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7RUFDbEQsT0FBT1Ysb0JBQUksQ0FBQyxLQUFLLEVBQUU7SUFBRVUsU0FBUyxFQUFFQSxTQUFTO0lBQUUzQyxRQUFRLEVBQUVrRTtFQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBQ0QsSUFBSTBDLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFhakcsS0FBSyxFQUFFO0VBQzlCLElBQUlnQyxTQUFTLEdBQUdoQyxLQUFLLENBQUNnQyxTQUFTO0lBQUVrRSxXQUFXLEdBQUdsRyxLQUFLLENBQUNrRyxXQUFXO0lBQUVDLElBQUksR0FBR25HLEtBQUssQ0FBQ21HLElBQUk7SUFBRUMsU0FBUSxHQUFHcEcsS0FBSyxDQUFDb0csUUFBUTtFQUM5RyxJQUFJaEgsRUFBRSxHQUFHMkcsc0ZBQVUsQ0FBQ00sZ0JBQWdCLENBQUM7SUFBRUMsbUJBQW1CLEdBQUdsSCxFQUFFLENBQUNrSCxtQkFBbUI7SUFBRUMsaUJBQWlCLEdBQUduSCxFQUFFLENBQUNtSCxpQkFBaUI7SUFBRUMsV0FBVyxHQUFHcEgsRUFBRSxDQUFDb0gsV0FBVztFQUMzSixJQUFJQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQWFkLEtBQUssRUFBRTtJQUNqQyxJQUFJYSxXQUFXLEVBQUU7TUFDYixJQUFJRSxnQkFBZ0IsR0FBR0YsV0FBVyxDQUFDbEIsSUFBSSxDQUFDLFVBQVVxQixVQUFVLEVBQUU7UUFBRSxPQUFPLENBQUNBLFVBQVUsQ0FBQ0MsSUFBSSxDQUFDbkcsSUFBSSxDQUFDa0YsS0FBSyxDQUFDO01BQUUsQ0FBQyxDQUFDO01BQ3ZHLElBQUllLGdCQUFnQixFQUFFO1FBQ2xCSCxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7UUFDdkJELG1CQUFtQixDQUFDSSxnQkFBZ0IsQ0FBQ0csT0FBTyxDQUFDO1FBQzdDLE9BQU8sS0FBSztNQUNoQjtNQUNBTixpQkFBaUIsQ0FBQyxLQUFLLENBQUM7TUFDeEJELG1CQUFtQixDQUFDLEVBQUUsQ0FBQztNQUN2QixPQUFPLElBQUk7SUFDZjtJQUNBLE9BQU8sSUFBSTtFQUNmLENBQUM7RUFDRCxPQUFRaEYsb0JBQUksQ0FBQyxPQUFPLEVBQUU7SUFBRVUsU0FBUyxFQUFFQSxTQUFTO0lBQUVrRSxXQUFXLEVBQUVBLFdBQVc7SUFBRUMsSUFBSSxFQUFFQSxJQUFJO0lBQUVDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFZaEksQ0FBQyxFQUFFO01BQ25HcUksYUFBYSxDQUFDckksQ0FBQyxDQUFDMEksTUFBTSxDQUFDbkIsS0FBSyxDQUFDO01BQzdCUyxTQUFRLEtBQUssSUFBSSxJQUFJQSxTQUFRLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUdBLFNBQVEsQ0FBQ2hJLENBQUMsQ0FBQztJQUNuRTtFQUFFLENBQUMsQ0FBQztBQUNaLENBQUM7QUFDRCxJQUFJMkksVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQWEvRyxLQUFLLEVBQUU7RUFDOUIsSUFBSXVELElBQUksR0FBR3ZELEtBQUssQ0FBQ3VELElBQUk7SUFBRW5FLEVBQUUsR0FBR1ksS0FBSyxDQUFDZ0MsU0FBUztJQUFFQSxTQUFTLEdBQUc1QyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHQSxFQUFFO0VBQ25GLElBQUkyQixFQUFFLEdBQUdnRixzRkFBVSxDQUFDTSxnQkFBZ0IsQ0FBQztJQUFFVyxZQUFZLEdBQUdqRyxFQUFFLENBQUNpRyxZQUFZO0lBQUVDLE9BQU8sR0FBR2xHLEVBQUUsQ0FBQ2tHLE9BQU87RUFDM0YsSUFBSUMsY0FBYyxHQUFHRCxPQUFPLEdBQUcsT0FBTyxHQUFHLEVBQUU7RUFDM0MsT0FBUTNGLG9CQUFJLENBQUMsS0FBSyxFQUFFO0lBQUVVLFNBQVMsRUFBRSxFQUFFLENBQUNHLE1BQU0sQ0FBQ0gsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDRyxNQUFNLENBQUMrRSxjQUFjLENBQUM7SUFBRTdILFFBQVEsRUFBRTJILFlBQVksS0FBSyxJQUFJLElBQUlBLFlBQVksS0FBSyxLQUFLLENBQUMsR0FBR0EsWUFBWSxHQUFHekQ7RUFBSyxDQUFDLENBQUM7QUFDMUssQ0FBQztBQUNELElBQUk4QyxnQkFBZ0IsZ0JBQUdQLHlGQUFhLENBQUM7RUFDakNtQixPQUFPLEVBQUUsS0FBSztFQUNkVixpQkFBaUIsRUFBRSxTQUFuQkEsaUJBQWlCQSxDQUFBLEVBQWMsQ0FBRSxDQUFDO0VBQ2xDQyxXQUFXLEVBQUUsRUFBRTtFQUNmUSxZQUFZLEVBQUUsRUFBRTtFQUNoQlYsbUJBQW1CLEVBQUUsU0FBckJBLG1CQUFtQkEsQ0FBWVgsS0FBSyxFQUFFLENBQUU7QUFDNUMsQ0FBQyxDQUFDO0FBQ0YsSUFBSXdCLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBYS9ILEVBQUUsRUFBRTtFQUM5QixJQUFJQyxRQUFRLEdBQUdELEVBQUUsQ0FBQ0MsUUFBUTtJQUFFbUgsV0FBVyxHQUFHcEgsRUFBRSxDQUFDb0gsV0FBVztJQUFFWSxLQUFLLEdBQUdoSSxFQUFFLENBQUNnSSxLQUFLO0VBQzFFLElBQUlyRyxFQUFFLEdBQUd3QixvRkFBUSxDQUFDLEtBQUssQ0FBQztJQUFFMEUsT0FBTyxHQUFHbEcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFc0csVUFBVSxHQUFHdEcsRUFBRSxDQUFDLENBQUMsQ0FBQztFQUM3RCxJQUFJYyxFQUFFLEdBQUdVLG9GQUFRLENBQUMsRUFBRSxDQUFDO0lBQUV5RSxZQUFZLEdBQUduRixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQUV5RixlQUFlLEdBQUd6RixFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ3BFLElBQUkwRSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFhWixLQUFLLEVBQUU7SUFDckMwQixVQUFVLENBQUMxQixLQUFLLENBQUM7RUFDckIsQ0FBQztFQUNELElBQUlXLG1CQUFtQixHQUFHLFNBQXRCQSxtQkFBbUJBLENBQWFYLEtBQUssRUFBRTtJQUN2QzJCLGVBQWUsQ0FBQzNCLEtBQUssQ0FBQztFQUMxQixDQUFDO0VBQ0QsT0FBUXJFLG9CQUFJLENBQUMsTUFBTSxFQUFFO0lBQUVVLFNBQVMsRUFBRSxpQkFBaUI7SUFBRUQsS0FBSyxFQUFFO01BQUV3RixPQUFPLEVBQUUsT0FBTztNQUFFSCxLQUFLLEVBQUUsRUFBRSxDQUFDakYsTUFBTSxDQUFDaUYsS0FBSyxFQUFFLElBQUk7SUFBRSxDQUFDO0lBQUUvSCxRQUFRLEVBQUVpQyxvQkFBSSxDQUFDK0UsZ0JBQWdCLENBQUNtQixRQUFRLEVBQUU7TUFBRTdCLEtBQUssRUFBRTtRQUN4SnNCLE9BQU8sRUFBRUEsT0FBTztRQUNoQlYsaUJBQWlCLEVBQUVBLGlCQUFpQjtRQUNwQ0MsV0FBVyxFQUFFQSxXQUFXO1FBQ3hCUSxZQUFZLEVBQUVBLFlBQVk7UUFDMUJWLG1CQUFtQixFQUFFQTtNQUN6QixDQUFDO01BQUVqSCxRQUFRLEVBQUVBO0lBQVMsQ0FBQztFQUFFLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBQ0Q4SCxhQUFhLENBQUNuQixTQUFTLEdBQUdBLFNBQVM7QUFDbkNtQixhQUFhLENBQUNsQixVQUFVLEdBQUdBLFVBQVU7QUFDckNrQixhQUFhLENBQUNKLFVBQVUsR0FBR0EsVUFBVTtBQUNyQyxzREFBZUksYUFBYTs7QUNoRW1DO0FBQ2pCO0FBQ2Q7QUFDSztBQUNyQyxJQUFJTSxTQUFTLEdBQUcsU0FBWkEsU0FBU0EsQ0FBYXJJLEVBQUUsRUFBRTtFQUMxQixJQUFJMkIsRUFBRSxHQUFHM0IsRUFBRSxDQUFDZ0ksS0FBSztJQUFFQSxLQUFLLEdBQUdyRyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHQSxFQUFFO0lBQUVjLEVBQUUsR0FBR3pDLEVBQUUsQ0FBQzhHLFdBQVc7SUFBRUEsV0FBVyxHQUFHckUsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBR0EsRUFBRTtJQUFFOEIsRUFBRSxHQUFHdkUsRUFBRSxDQUFDK0csSUFBSTtJQUFFQSxJQUFJLEdBQUd4QyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHQSxFQUFFO0lBQUUrRCxVQUFVLEdBQUd0SSxFQUFFLENBQUNzSSxVQUFVO0lBQUVDLFNBQVMsR0FBR3ZJLEVBQUUsQ0FBQ3VJLFNBQVM7SUFBRXZCLFFBQVEsR0FBR2hILEVBQUUsQ0FBQ2dILFFBQVE7RUFDM08sT0FBUTlELHFCQUFLLENBQUM2RSxlQUFhLEVBQUU7SUFBRVgsV0FBVyxFQUFFLEVBQUU7SUFBRVksS0FBSyxFQUFFQSxLQUFLO0lBQUUvSCxRQUFRLEVBQUUsQ0FBQ3NJLFNBQVMsSUFBS3JHLG9CQUFJLENBQUM2RixlQUFhLENBQUNuQixTQUFTLEVBQUU7TUFBRXpDLElBQUksRUFBRW9FLFNBQVM7TUFBRTNGLFNBQVMsRUFBRTtJQUE4QixDQUFDLENBQUUsRUFBRVYsb0JBQUksQ0FBQyxLQUFLLEVBQUU7TUFBRVUsU0FBUyxFQUFFLHFDQUFxQztNQUFFM0MsUUFBUSxFQUFFaUMsb0JBQUksQ0FBQzZGLGVBQWEsQ0FBQ2xCLFVBQVUsRUFBRTtRQUFFakUsU0FBUyxFQUFFLDZCQUE2QjtRQUFFa0UsV0FBVyxFQUFFQSxXQUFXO1FBQUVDLElBQUksRUFBRUEsSUFBSTtRQUFFQyxRQUFRLEVBQUVBO01BQVMsQ0FBQztJQUFFLENBQUMsQ0FBQyxFQUFFc0IsVUFBVSxJQUFLcEcsb0JBQUksQ0FBQzZGLGVBQWEsQ0FBQ0osVUFBVSxFQUFFO01BQUV4RCxJQUFJLEVBQUVtRSxVQUFVO01BQUUxRixTQUFTLEVBQUU7SUFBb0MsQ0FBQyxDQUFFO0VBQUUsQ0FBQyxDQUFDO0FBQ3ZnQixDQUFDO0FBQ0QsaURBQWV5RixTQUFTOztBQ1J1QztBQUNqQjtBQUNkO0FBQ0s7QUFDckMsSUFBSUcsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBYXhJLEVBQUUsRUFBRTtFQUNuQyxJQUFJMkIsRUFBRSxHQUFHM0IsRUFBRSxDQUFDZ0ksS0FBSztJQUFFQSxLQUFLLEdBQUdyRyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHQSxFQUFFO0lBQUVjLEVBQUUsR0FBR3pDLEVBQUUsQ0FBQzhHLFdBQVc7SUFBRUEsV0FBVyxHQUFHckUsRUFBRSxLQUFLLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBR0EsRUFBRTtJQUFFOEIsRUFBRSxHQUFHdkUsRUFBRSxDQUFDK0csSUFBSTtJQUFFQSxJQUFJLEdBQUd4QyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHQSxFQUFFO0lBQUUrRCxVQUFVLEdBQUd0SSxFQUFFLENBQUNzSSxVQUFVO0lBQUVDLFNBQVMsR0FBR3ZJLEVBQUUsQ0FBQ3VJLFNBQVM7SUFBRW5CLFdBQVcsR0FBR3BILEVBQUUsQ0FBQ29ILFdBQVc7RUFDalAsT0FBUWxFLHFCQUFLLENBQUM2RSxlQUFhLEVBQUU7SUFBRUMsS0FBSyxFQUFFQSxLQUFLO0lBQUVaLFdBQVcsRUFBRUEsV0FBVztJQUFFbkgsUUFBUSxFQUFFLENBQUNzSSxTQUFTLElBQUtyRyxvQkFBSSxDQUFDNkYsZUFBYSxDQUFDbkIsU0FBUyxFQUFFO01BQUV6QyxJQUFJLEVBQUVvRSxTQUFTO01BQUUzRixTQUFTLEVBQUU7SUFBOEIsQ0FBQyxDQUFFLEVBQUVWLG9CQUFJLENBQUMsS0FBSyxFQUFFO01BQUVVLFNBQVMsRUFBRSxxQ0FBcUM7TUFBRTNDLFFBQVEsRUFBRWlDLG9CQUFJLENBQUM2RixlQUFhLENBQUNsQixVQUFVLEVBQUU7UUFBRWpFLFNBQVMsRUFBRSw2QkFBNkI7UUFBRWtFLFdBQVcsRUFBRUEsV0FBVztRQUFFQyxJQUFJLEVBQUVBO01BQUssQ0FBQztJQUFFLENBQUMsQ0FBQyxFQUFFdUIsVUFBVSxJQUFLcEcsb0JBQUksQ0FBQzZGLGVBQWEsQ0FBQ0osVUFBVSxFQUFFO01BQUV4RCxJQUFJLEVBQUVtRSxVQUFVO01BQUUxRixTQUFTLEVBQUUsbUNBQW1DO01BQUVpRixPQUFPLEVBQUU7SUFBSyxDQUFDLENBQUU7RUFBRSxDQUFDLENBQUM7QUFDM2dCLENBQUM7QUFDRCw0REFBZVcsa0JBQWtCOztBQ1JBO0FBQzFCLElBQUlDLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQWF6SSxFQUFFLEVBQUU7RUFDeEMsSUFBSTBJLElBQUksR0FBRzFJLEVBQUUsQ0FBQzBJLElBQUk7SUFBRUMsT0FBTyxHQUFHM0ksRUFBRSxDQUFDMkksT0FBTztJQUFFQyxXQUFXLEdBQUc1SSxFQUFFLENBQUM0SSxXQUFXO0VBQ3RFLElBQUlqSCxFQUFFLEdBQUd3QixvRkFBUSxDQUFDdUYsSUFBSSxLQUFLLElBQUksSUFBSUEsSUFBSSxLQUFLLEtBQUssQ0FBQyxHQUFHQSxJQUFJLEdBQUdFLFdBQVcsQ0FBQztJQUFFQyxVQUFVLEdBQUdsSCxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQUVtSCxhQUFhLEdBQUduSCxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ25ILElBQUlvSCxzQkFBc0IsR0FBR0wsSUFBSSxLQUFLTSxTQUFTO0VBQy9DLElBQUl6QyxLQUFLLEdBQUd3QyxzQkFBc0IsR0FBR0wsSUFBSSxHQUFHRyxVQUFVO0VBQ3RELElBQUlJLFFBQVEsR0FBRyxTQUFYQSxRQUFRQSxDQUFhQyxZQUFZLEVBQUU7SUFDbkMsSUFBSUgsc0JBQXNCLEVBQUU7TUFDeEIsSUFBSUksTUFBTSxHQUFHRCxZQUFZO01BQ3pCLElBQUlFLE9BQU8sR0FBRyxPQUFPRixZQUFZLEtBQUssVUFBVSxHQUMxQ0MsTUFBTSxDQUFDVCxJQUFJLEtBQUssSUFBSSxJQUFJQSxJQUFJLEtBQUssS0FBSyxDQUFDLEdBQUdBLElBQUksR0FBR0UsV0FBVyxDQUFDLEdBQzdETSxZQUFZO01BQ2xCUCxPQUFPLEtBQUssSUFBSSxJQUFJQSxPQUFPLEtBQUssS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUdBLE9BQU8sQ0FBQ1MsT0FBTyxDQUFDO0lBQ3RFLENBQUMsTUFDSTtNQUNETixhQUFhLENBQUNJLFlBQVksQ0FBQztJQUMvQjtFQUNKLENBQUM7RUFDRCxPQUFPLENBQUMzQyxLQUFLLEVBQUUwQyxRQUFRLENBQUM7QUFDNUIsQ0FBQzs7QUNuQitDO0FBQ0U7QUFDc0I7QUFDaEM7QUFDRjtBQUNEO0FBQ3JDLElBQUlJLFdBQVcsR0FBRyxTQUFkQSxXQUFXQSxDQUFhekksS0FBSyxFQUFFO0VBQy9CLElBQUlYLFFBQVEsR0FBR1csS0FBSyxDQUFDWCxRQUFRO0lBQUVtQyxPQUFPLEdBQUd4QixLQUFLLENBQUN3QixPQUFPO0lBQUVRLFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7SUFBRXdELEVBQUUsR0FBR3hGLEtBQUssQ0FBQ3dGLEVBQUU7RUFDbEcsSUFBSXBHLEVBQUUsR0FBRzJHLHNGQUFVLENBQUMyQyxZQUFZLENBQUM7SUFBRUMsUUFBUSxHQUFHdkosRUFBRSxDQUFDdUosUUFBUTtJQUFFdkMsUUFBUSxHQUFHaEgsRUFBRSxDQUFDZ0gsUUFBUTtFQUNqRixJQUFJbkUsSUFBSSxHQUFHVCxPQUFPLEdBQUdyQyxRQUFRLEdBQUcsS0FBSztFQUNyQyxPQUFRbUMsb0JBQUksQ0FBQ1csSUFBSSxFQUFFO0lBQUVELFNBQVMsRUFBRSxhQUFhLENBQUNHLE1BQU0sQ0FBQ0gsU0FBUyxDQUFDO0lBQUV5RCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUFjO01BQUUsT0FBT1csUUFBUSxDQUFDWixFQUFFLENBQUM7SUFBRSxDQUFDO0lBQUVuRyxRQUFRLEVBQUVtRyxFQUFFLEtBQUttRCxRQUFRLEdBQUd0SixRQUFRLEdBQUc7RUFBSyxDQUFDLENBQUM7QUFDbEssQ0FBQztBQUNELElBQUl1SixjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQWE1SSxLQUFLLEVBQUU7RUFDbEMsSUFBSVgsUUFBUSxHQUFHVyxLQUFLLENBQUNYLFFBQVE7SUFBRW1DLE9BQU8sR0FBR3hCLEtBQUssQ0FBQ3dCLE9BQU87SUFBRWdFLEVBQUUsR0FBR3hGLEtBQUssQ0FBQ3dGLEVBQUU7SUFBRXhELFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7RUFDbEcsSUFBSTJHLFFBQVEsR0FBRzVDLHNGQUFVLENBQUMyQyxZQUFZLENBQUMsQ0FBQ0MsUUFBUTtFQUNoRCxJQUFJMUcsSUFBSSxHQUFHVCxPQUFPLEdBQUdyQyxRQUFRLEdBQUcsT0FBTztFQUN2QyxPQUFRbUMsb0JBQUksQ0FBQ1csSUFBSSxFQUFFO0lBQUU0RyxJQUFJLEVBQUUsT0FBTztJQUFFN0csU0FBUyxFQUFFLGFBQWEsQ0FBQ0csTUFBTSxDQUFDd0csUUFBUSxLQUFLbkQsRUFBRSxHQUFHLFVBQVUsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUNyRCxNQUFNLENBQUNILFNBQVMsQ0FBQztJQUFFOEcsT0FBTyxFQUFFSCxRQUFRLEtBQUtuRCxFQUFFO0lBQUVuRyxRQUFRLEVBQUVBO0VBQVMsQ0FBQyxDQUFDO0FBQ2xMLENBQUM7QUFDRCxJQUFJMEosVUFBVSxHQUFHLFNBQWJBLFVBQVVBLENBQWEvSSxLQUFLLEVBQUU7RUFDOUIsSUFBSVgsUUFBUSxHQUFHVyxLQUFLLENBQUNYLFFBQVE7SUFBRW1DLE9BQU8sR0FBR3hCLEtBQUssQ0FBQ3dCLE9BQU87SUFBRVEsU0FBUyxHQUFHaEMsS0FBSyxDQUFDZ0MsU0FBUztFQUNuRixJQUFJQyxJQUFJLEdBQUdULE9BQU8sR0FBR3JDLFFBQVEsR0FBRyxPQUFPO0VBQ3ZDLE9BQU9tQyxvQkFBSSxDQUFDVyxJQUFJLEVBQUU7SUFBRUQsU0FBUyxFQUFFLGFBQWEsQ0FBQ0csTUFBTSxDQUFDSCxTQUFTLENBQUM7SUFBRTNDLFFBQVEsRUFBRUE7RUFBUyxDQUFDLENBQUM7QUFDekYsQ0FBQztBQUNELElBQUkySixnQkFBZ0IsR0FBRyxTQUFuQkEsZ0JBQWdCQSxDQUFhaEosS0FBSyxFQUFFO0VBQ3BDLElBQUlYLFFBQVEsR0FBR1csS0FBSyxDQUFDWCxRQUFRO0lBQUVtQyxPQUFPLEdBQUd4QixLQUFLLENBQUN3QixPQUFPO0lBQUVRLFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7RUFDbkYsSUFBSUMsSUFBSSxHQUFHVCxPQUFPLEdBQUdyQyxRQUFRLEdBQUcsSUFBSTtFQUNwQyxPQUFPbUMsb0JBQUksQ0FBQ1csSUFBSSxFQUFFO0lBQUVELFNBQVMsRUFBRUEsU0FBUztJQUFFM0MsUUFBUSxFQUFFQTtFQUFTLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBQ0QsSUFBSXFKLFlBQVksZ0JBQUc1Qyx5RkFBYSxDQUFDO0VBQzdCbUQsT0FBTyxFQUFFLEVBQUU7RUFDWE4sUUFBUSxFQUFFLElBQUk7RUFDZHZDLFFBQVEsRUFBRSxTQUFWQSxRQUFRQSxDQUFZWixFQUFFLEVBQUUsQ0FBRTtBQUM5QixDQUFDLENBQUM7QUFDRixJQUFJMEQsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQWFsSixLQUFLLEVBQUU7RUFDN0IsSUFBSVgsUUFBUSxHQUFHVyxLQUFLLENBQUNYLFFBQVE7SUFBRTRKLE9BQU8sR0FBR2pKLEtBQUssQ0FBQ2lKLE9BQU87SUFBRTdKLEVBQUUsR0FBR1ksS0FBSyxDQUFDMkksUUFBUTtJQUFFQSxRQUFRLEdBQUd2SixFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsSUFBSSxHQUFHQSxFQUFFO0lBQUUrSixnQkFBZ0IsR0FBR25KLEtBQUssQ0FBQ29HLFFBQVE7RUFDcEosSUFBSXJGLEVBQUUsR0FBRzhHLGdCQUFnQixDQUFDO01BQ3RCQyxJQUFJLEVBQUVhLFFBQVE7TUFDZFosT0FBTyxFQUFFb0IsZ0JBQWdCO01BQ3pCbkIsV0FBVyxFQUFFVztJQUNqQixDQUFDLENBQUM7SUFBRVMsVUFBVSxHQUFHckksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUFFc0ksYUFBYSxHQUFHdEksRUFBRSxDQUFDLENBQUMsQ0FBQztFQUM3QyxJQUFJcUYsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQWFaLEVBQUUsRUFBRTtJQUN6QjZELGFBQWEsQ0FBQzdELEVBQUUsQ0FBQztFQUNyQixDQUFDO0VBQ0QsT0FBUWxFLG9CQUFJLENBQUNvSCxZQUFZLENBQUNsQixRQUFRLEVBQUU7SUFBRTdCLEtBQUssRUFBRTtNQUFFZ0QsUUFBUSxFQUFFUyxVQUFVO01BQUVoRCxRQUFRLEVBQUVBLFFBQVE7TUFBRTZDLE9BQU8sRUFBRUE7SUFBUSxDQUFDO0lBQUU1SixRQUFRLEVBQUVBO0VBQVMsQ0FBQyxDQUFDO0FBQ3RJLENBQUM7QUFDRDZKLFNBQVMsQ0FBQ0ksU0FBUyxHQUFHVixjQUFjO0FBQ3BDTSxTQUFTLENBQUNLLEtBQUssR0FBR1IsVUFBVTtBQUM1QkcsU0FBUyxDQUFDTSxXQUFXLEdBQUdSLGdCQUFnQjtBQUN4Q0UsU0FBUyxDQUFDTyxNQUFNLEdBQUdoQixXQUFXO0FBQzlCLGlEQUFlUyxTQUFTOzs7OztBQ2hEeEIsTUFBa0c7QUFDbEcsTUFBd0Y7QUFDeEYsTUFBK0Y7QUFDL0YsTUFBa0g7QUFDbEgsTUFBMkc7QUFDM0csTUFBMkc7QUFDM0csTUFBNEc7QUFDNUc7QUFDQTs7QUFFQSxJQUFJLG1CQUFPOztBQUVYLG1CQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0MsbUJBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLG1CQUFPLFVBQVUsK0JBQWE7QUFDOUIsbUJBQU8sVUFBVSx1QkFBTTtBQUN2QixtQkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLGtCQUFNLEdBQUcsa0NBQUcsQ0FBQywwQkFBTyxFQUFFLG1CQUFPOzs7O0FBSTZDO0FBQzlFLE9BQU8sd0RBQWUsMEJBQU8sSUFBSSwwQkFBTyxVQUFVLDBCQUFPLG1CQUFtQixFQUFDOzs7QUN4QmQ7QUFDMUI7QUFDVjtBQUMzQixJQUFJUSxLQUFLLEdBQUcsU0FBUkEsS0FBS0EsQ0FBYTFKLEtBQUssRUFBRTtFQUN6QixJQUFJMkksUUFBUSxHQUFHM0ksS0FBSyxDQUFDMkksUUFBUTtJQUFFdkMsUUFBUSxHQUFHcEcsS0FBSyxDQUFDb0csUUFBUTtJQUFFNkMsT0FBTyxHQUFHakosS0FBSyxDQUFDaUosT0FBTztFQUNqRixPQUFRM0gsb0JBQUksQ0FBQzRILFVBQVMsRUFBRTtJQUFFRCxPQUFPLEVBQUVBLE9BQU87SUFBRU4sUUFBUSxFQUFFQSxRQUFRO0lBQUV2QyxRQUFRLEVBQUVBLFFBQVE7SUFBRS9HLFFBQVEsRUFBRWlDLG9CQUFJLENBQUM0SCxVQUFTLENBQUNNLFdBQVcsRUFBRTtNQUFFeEgsU0FBUyxFQUFFLG1CQUFtQjtNQUFFM0MsUUFBUSxFQUFFNEosT0FBTyxDQUFDaEUsR0FBRyxDQUFDLFVBQVVuQixNQUFNLEVBQUU7UUFBRSxPQUFReEIscUJBQUssQ0FBQyxJQUFJLEVBQUU7VUFBRVAsS0FBSyxFQUFFO1lBQUV3RixPQUFPLEVBQUUsTUFBTTtZQUFFb0MsVUFBVSxFQUFFLFFBQVE7WUFBRUMsR0FBRyxFQUFFO1VBQU0sQ0FBQztVQUFFdkssUUFBUSxFQUFFLENBQUNpQyxvQkFBSSxDQUFDNEgsVUFBUyxDQUFDTyxNQUFNLEVBQUU7WUFBRWpFLEVBQUUsRUFBRTFCLE1BQU0sQ0FBQzBCLEVBQUU7WUFBRXhELFNBQVMsRUFBRSxvQkFBb0I7WUFBRTNDLFFBQVEsRUFBRWlDLG9CQUFJLENBQUM0SCxVQUFTLENBQUNJLFNBQVMsRUFBRTtjQUFFOUQsRUFBRSxFQUFFMUIsTUFBTSxDQUFDMEIsRUFBRTtjQUFFaEUsT0FBTyxFQUFFLElBQUk7Y0FBRVEsU0FBUyxFQUFFLHVCQUF1QjtjQUFFM0MsUUFBUSxFQUFFaUMsb0JBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQUUsQ0FBQztVQUFFLENBQUMsQ0FBQyxFQUFFQSxvQkFBSSxDQUFDNEgsVUFBUyxDQUFDSyxLQUFLLEVBQUU7WUFBRS9ELEVBQUUsRUFBRTFCLE1BQU0sQ0FBQzBCLEVBQUU7WUFBRXhELFNBQVMsRUFBRSxtQkFBbUI7WUFBRTNDLFFBQVEsRUFBRXlFLE1BQU0sQ0FBQytGO1VBQU0sQ0FBQyxDQUFDO1FBQUUsQ0FBQyxFQUFFL0YsTUFBTSxDQUFDMEIsRUFBRSxDQUFDO01BQUcsQ0FBQztJQUFFLENBQUM7RUFBRSxDQUFDLENBQUM7QUFDcm5CLENBQUM7QUFDRCxrREFBZWtFLEtBQUs7Ozs7O0FDTnBCLE1BQWtHO0FBQ2xHLE1BQXdGO0FBQ3hGLE1BQStGO0FBQy9GLE1BQWtIO0FBQ2xILE1BQTJHO0FBQzNHLE1BQTJHO0FBQzNHLE1BQWdIO0FBQ2hIO0FBQ0E7O0FBRUEsSUFBSSx1QkFBTzs7QUFFWCx1QkFBTyxxQkFBcUIsNkJBQW1CO0FBQy9DLHVCQUFPLGlCQUFpQiwwQ0FBYTtBQUNyQyx1QkFBTyxVQUFVLCtCQUFhO0FBQzlCLHVCQUFPLFVBQVUsdUJBQU07QUFDdkIsdUJBQU8sc0JBQXNCLDhCQUFrQjs7QUFFL0MsSUFBSSxzQkFBTSxHQUFHLGtDQUFHLENBQUMsOEJBQU8sRUFBRSx1QkFBTzs7OztBQUlpRDtBQUNsRixPQUFPLGdFQUFlLDhCQUFPLElBQUksOEJBQU8sVUFBVSw4QkFBTyxtQkFBbUIsRUFBQzs7O0FDeEI3RSw0Q0FBZSxxQkFBdUIsc0RBQXNEOztBQ0E1RixJQUFJck0scUJBQVEsR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxRQUFRLElBQUssWUFBWTtFQUNsREEscUJBQVEsR0FBR0MsTUFBTSxDQUFDQyxNQUFNLElBQUksVUFBU0MsQ0FBQyxFQUFFO0lBQ3BDLEtBQUssSUFBSUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQyxDQUFDLEdBQUdDLFNBQVMsQ0FBQ0MsTUFBTSxFQUFFSCxDQUFDLEdBQUdDLENBQUMsRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDakRELENBQUMsR0FBR0csU0FBUyxDQUFDRixDQUFDLENBQUM7TUFDaEIsS0FBSyxJQUFJSSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLEVBQzNETixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztJQUNuQjtJQUNBLE9BQU9OLENBQUM7RUFDWixDQUFDO0VBQ0QsT0FBT0gscUJBQVEsQ0FBQ2EsS0FBSyxDQUFDLElBQUksRUFBRU4sU0FBUyxDQUFDO0FBQzFDLENBQUM7QUFDRCxJQUFJTyxtQkFBTSxHQUFJLFNBQUksSUFBSSxTQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVVixDQUFDLEVBQUVXLENBQUMsRUFBRTtFQUNsRCxJQUFJWixDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJTSxDQUFDLElBQUlMLENBQUMsRUFBRSxJQUFJSCxNQUFNLENBQUNTLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDLElBQUlNLENBQUMsQ0FBQ0MsT0FBTyxDQUFDUCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FTixDQUFDLENBQUNNLENBQUMsQ0FBQyxHQUFHTCxDQUFDLENBQUNLLENBQUMsQ0FBQztFQUNmLElBQUlMLENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0gsTUFBTSxDQUFDZ0IscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlaLENBQUMsR0FBRyxDQUFDLEVBQUVJLENBQUMsR0FBR1IsTUFBTSxDQUFDZ0IscUJBQXFCLENBQUNiLENBQUMsQ0FBQyxFQUFFQyxDQUFDLEdBQUdJLENBQUMsQ0FBQ0QsTUFBTSxFQUFFSCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVSxDQUFDLENBQUNDLE9BQU8sQ0FBQ1AsQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSUosTUFBTSxDQUFDUyxTQUFTLENBQUNRLG9CQUFvQixDQUFDTixJQUFJLENBQUNSLENBQUMsRUFBRUssQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxFQUMxRUYsQ0FBQyxDQUFDTSxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUdELENBQUMsQ0FBQ0ssQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9GLENBQUM7QUFDWixDQUFDO0FBQytDO0FBQ0U7QUFDc0I7QUFDekM7QUFDUztBQUN4QyxJQUFJc00sYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFhOUosS0FBSyxFQUFFO0VBQ2pDLElBQUl3QixPQUFPLEdBQUd4QixLQUFLLENBQUN3QixPQUFPO0lBQUVuQyxRQUFRLEdBQUdXLEtBQUssQ0FBQ1gsUUFBUTtFQUN0RCxJQUFJbUcsRUFBRSxHQUFHTyxzRkFBVSxDQUFDZ0UsZUFBZSxDQUFDLENBQUN2RSxFQUFFO0VBQ3ZDLElBQUl2RCxJQUFJLEdBQUdULE9BQU8sR0FBR3JDLFFBQVEsR0FBRyxPQUFPO0VBQ3ZDLE9BQVFtQyxvQkFBSSxDQUFDVyxJQUFJLEVBQUU7SUFBRUQsU0FBUyxFQUFFLHNCQUFzQjtJQUFFZ0ksT0FBTyxFQUFFeEUsRUFBRTtJQUFFbkcsUUFBUSxFQUFFQTtFQUFTLENBQUMsQ0FBQztBQUM5RixDQUFDO0FBQ0QsSUFBSTRLLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBYWpLLEtBQUssRUFBRTtFQUNqQyxJQUFJd0IsT0FBTyxHQUFHeEIsS0FBSyxDQUFDd0IsT0FBTztJQUFFbkMsUUFBUSxHQUFHVyxLQUFLLENBQUNYLFFBQVE7SUFBRTJDLFNBQVMsR0FBR2hDLEtBQUssQ0FBQ2dDLFNBQVM7SUFBRW9DLElBQUksR0FBR2pHLG1CQUFNLENBQUM2QixLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0VBQy9JLElBQUlaLEVBQUUsR0FBRzJHLHNGQUFVLENBQUNnRSxlQUFlLENBQUM7SUFBRWpCLE9BQU8sR0FBRzFKLEVBQUUsQ0FBQzBKLE9BQU87SUFBRW9CLGFBQWEsR0FBRzlLLEVBQUUsQ0FBQzhLLGFBQWE7SUFBRTFFLEVBQUUsR0FBR3BHLEVBQUUsQ0FBQ29HLEVBQUU7SUFBRS9CLFFBQVEsR0FBR3JFLEVBQUUsQ0FBQ3FFLFFBQVE7RUFDaEksSUFBSXhCLElBQUksR0FBR1QsT0FBTyxHQUFHckMsUUFBUSxHQUFHLE9BQU87RUFDdkMsT0FBUW1DLG9CQUFJLENBQUNXLElBQUksRUFBRTVFLHFCQUFRLENBQUM7SUFBRXdMLElBQUksRUFBRSxVQUFVO0lBQUVDLE9BQU8sRUFBRUEsT0FBTztJQUFFMUMsUUFBUSxFQUFFOEQsYUFBYTtJQUFFekUsT0FBTyxFQUFFeUUsYUFBYTtJQUFFMUUsRUFBRSxFQUFFQSxFQUFFO0lBQUV4RCxTQUFTLEVBQUUsRUFBRSxDQUFDRyxNQUFNLENBQUNILFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQ0csTUFBTSxDQUFDMkcsT0FBTyxHQUFHLFNBQVMsR0FBRyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMzRyxNQUFNLENBQUNzQixRQUFRLEdBQUcsVUFBVSxHQUFHLEVBQUU7RUFBRSxDQUFDLEVBQUVXLElBQUksRUFBRTtJQUFFL0UsUUFBUSxFQUFFQTtFQUFTLENBQUMsQ0FBQyxDQUFDO0FBQ3ZSLENBQUM7QUFDRCxJQUFJMEssZUFBZSxnQkFBR2pFLHlGQUFhLENBQUM7RUFDaENnRCxPQUFPLEVBQUUsS0FBSztFQUNkb0IsYUFBYSxFQUFFLFNBQWZBLGFBQWFBLENBQUEsRUFBYyxDQUFFLENBQUM7RUFDOUIxRSxFQUFFLEVBQUUsRUFBRTtFQUNOL0IsUUFBUSxFQUFFO0FBQ2QsQ0FBQyxDQUFDO0FBQ0YsSUFBSTBHLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFhbkssS0FBSyxFQUFFO0VBQ2hDLElBQUlvSyxlQUFlLEdBQUdwSyxLQUFLLENBQUM4SSxPQUFPO0lBQUVLLGdCQUFnQixHQUFHbkosS0FBSyxDQUFDb0csUUFBUTtJQUFFWixFQUFFLEdBQUd4RixLQUFLLENBQUN3RixFQUFFO0lBQUVuRyxRQUFRLEdBQUdXLEtBQUssQ0FBQ1gsUUFBUTtJQUFFb0UsUUFBUSxHQUFHekQsS0FBSyxDQUFDeUQsUUFBUTtFQUMzSSxJQUFJckUsRUFBRSxHQUFHeUksZ0JBQWdCLENBQUM7TUFDdEJDLElBQUksRUFBRXNDLGVBQWU7TUFDckJyQyxPQUFPLEVBQUVvQixnQkFBZ0I7TUFDekJuQixXQUFXLEVBQUVvQyxlQUFlLEtBQUssSUFBSSxJQUFJQSxlQUFlLEtBQUssS0FBSyxDQUFDLEdBQUdBLGVBQWUsR0FBRztJQUM1RixDQUFDLENBQUM7SUFBRXRCLE9BQU8sR0FBRzFKLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFBRWlMLFVBQVUsR0FBR2pMLEVBQUUsQ0FBQyxDQUFDLENBQUM7RUFDdkMsSUFBSThLLGFBQWEsR0FBRyxTQUFoQkEsYUFBYUEsQ0FBQSxFQUFlO0lBQzVCRyxVQUFVLENBQUMsVUFBVUMsSUFBSSxFQUFFO01BQUUsT0FBTyxDQUFDQSxJQUFJO0lBQUUsQ0FBQyxDQUFDO0VBQ2pELENBQUM7RUFDRCxPQUFRaEosb0JBQUksQ0FBQyxLQUFLLEVBQUU7SUFBRVUsU0FBUyxFQUFFLGdCQUFnQjtJQUFFM0MsUUFBUSxFQUFFaUMsb0JBQUksQ0FBQ3lJLGVBQWUsQ0FBQ3ZDLFFBQVEsRUFBRTtNQUFFN0IsS0FBSyxFQUFFO1FBQUVtRCxPQUFPLEVBQUVBLE9BQU87UUFBRW9CLGFBQWEsRUFBRUEsYUFBYTtRQUFFMUUsRUFBRSxFQUFFQSxFQUFFO1FBQUUvQixRQUFRLEVBQUVBO01BQVMsQ0FBQztNQUFFcEUsUUFBUSxFQUFFQTtJQUFTLENBQUM7RUFBRSxDQUFDLENBQUM7QUFDak4sQ0FBQztBQUNEOEssWUFBWSxDQUFDWixLQUFLLEdBQUdPLGFBQWE7QUFDbENLLFlBQVksQ0FBQ0ksS0FBSyxHQUFHTixhQUFhO0FBQ2xDLHFEQUFlRSxZQUFZOztBQzNEM0IsSUFBSWhNLGNBQU0sR0FBSSxTQUFJLElBQUksU0FBSSxDQUFDQSxNQUFNLElBQUssVUFBVVYsQ0FBQyxFQUFFVyxDQUFDLEVBQUU7RUFDbEQsSUFBSVosQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSU0sQ0FBQyxJQUFJTCxDQUFDLEVBQUUsSUFBSUgsTUFBTSxDQUFDUyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUixDQUFDLEVBQUVLLENBQUMsQ0FBQyxJQUFJTSxDQUFDLENBQUNDLE9BQU8sQ0FBQ1AsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRU4sQ0FBQyxDQUFDTSxDQUFDLENBQUMsR0FBR0wsQ0FBQyxDQUFDSyxDQUFDLENBQUM7RUFDZixJQUFJTCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9ILE1BQU0sQ0FBQ2dCLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJWixDQUFDLEdBQUcsQ0FBQyxFQUFFSSxDQUFDLEdBQUdSLE1BQU0sQ0FBQ2dCLHFCQUFxQixDQUFDYixDQUFDLENBQUMsRUFBRUMsQ0FBQyxHQUFHSSxDQUFDLENBQUNELE1BQU0sRUFBRUgsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVUsQ0FBQyxDQUFDQyxPQUFPLENBQUNQLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlKLE1BQU0sQ0FBQ1MsU0FBUyxDQUFDUSxvQkFBb0IsQ0FBQ04sSUFBSSxDQUFDUixDQUFDLEVBQUVLLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUMsRUFDMUVGLENBQUMsQ0FBQ00sQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQyxHQUFHRCxDQUFDLENBQUNLLENBQUMsQ0FBQ0osQ0FBQyxDQUFDLENBQUM7RUFDekI7RUFDSixPQUFPRixDQUFDO0FBQ1osQ0FBQztBQUM4RDtBQUNoQztBQUNPO0FBQ0Q7QUFDWTtBQUNMO0FBQzVDLElBQUlpTixRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBYXpLLEtBQUssRUFBRTtFQUM1QixJQUFJOEksT0FBTyxHQUFHOUksS0FBSyxDQUFDOEksT0FBTztJQUFFMUMsUUFBUSxHQUFHcEcsS0FBSyxDQUFDb0csUUFBUTtJQUFFeUQsS0FBSyxHQUFHN0osS0FBSyxDQUFDNkosS0FBSztJQUFFekYsSUFBSSxHQUFHakcsY0FBTSxDQUFDNkIsS0FBSyxFQUFFLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztFQUNuSSxPQUFRc0Isb0JBQUksQ0FBQzZJLGNBQVksRUFBRTtJQUFFM0UsRUFBRSxFQUFFLFdBQVc7SUFBRW5HLFFBQVEsRUFBRWlELHFCQUFLLENBQUMsS0FBSyxFQUFFO01BQUVOLFNBQVMsRUFBRSxXQUFXO01BQUUzQyxRQUFRLEVBQUUsQ0FBQ2lDLG9CQUFJLENBQUM2SSxjQUFZLENBQUNJLEtBQUssRUFBRTtRQUFFL0ksT0FBTyxFQUFFLElBQUk7UUFBRW5DLFFBQVEsRUFBRWlDLG9CQUFJLENBQUMsS0FBSyxFQUFFO1VBQUVVLFNBQVMsRUFBRSw0QkFBNEI7VUFBRTNDLFFBQVEsRUFBRWlDLG9CQUFJLENBQUMsS0FBSyxFQUFFO1lBQUVtQixHQUFHLEVBQUUrSCxLQUFLO1lBQUU5SCxHQUFHLEVBQUU7VUFBUSxDQUFDO1FBQUUsQ0FBQztNQUFFLENBQUMsQ0FBQyxFQUFFcEIsb0JBQUksQ0FBQzZJLGNBQVksQ0FBQ1osS0FBSyxFQUFFO1FBQUVsSyxRQUFRLEVBQUV3SztNQUFNLENBQUMsQ0FBQztJQUFFLENBQUM7RUFBRSxDQUFDLENBQUM7QUFDeFUsQ0FBQztBQUNELGdEQUFlWSxRQUFROzs7OztBQ3BCdkIsTUFBcUc7QUFDckcsTUFBMkY7QUFDM0YsTUFBa0c7QUFDbEcsTUFBcUg7QUFDckgsTUFBOEc7QUFDOUcsTUFBOEc7QUFDOUcsTUFBOEc7QUFDOUc7QUFDQTs7QUFFQSxJQUFJLGtCQUFPOztBQUVYLGtCQUFPLHFCQUFxQiw2QkFBbUI7QUFDL0Msa0JBQU8saUJBQWlCLDBDQUFhO0FBQ3JDLGtCQUFPLFVBQVUsK0JBQWE7QUFDOUIsa0JBQU8sVUFBVSx1QkFBTTtBQUN2QixrQkFBTyxzQkFBc0IsOEJBQWtCOztBQUUvQyxJQUFJLGlCQUFNLEdBQUcsa0NBQUcsQ0FBQyx5QkFBTyxFQUFFLGtCQUFPOzs7O0FBSStDO0FBQ2hGLE9BQU8sc0RBQWUseUJBQU8sSUFBSSx5QkFBTyxVQUFVLHlCQUFPLG1CQUFtQixFQUFDOzs7QUN4QjdCO0FBQ3RCO0FBQ2M7QUFDQztBQUN6QyxJQUFJQyxJQUFJLEdBQUcsU0FBUEEsSUFBSUEsQ0FBYTFLLEtBQUssRUFBRTtFQUN4QixJQUFJdUQsSUFBSSxHQUFHdkQsS0FBSyxDQUFDdUQsSUFBSTtJQUFFekIsSUFBSSxHQUFHOUIsS0FBSyxDQUFDOEIsSUFBSTtJQUFFNkksTUFBTSxHQUFHM0ssS0FBSyxDQUFDMkssTUFBTTtJQUFFQyxLQUFLLEdBQUc1SyxLQUFLLENBQUM0SyxLQUFLO0lBQUVDLFNBQVMsR0FBRzdLLEtBQUssQ0FBQzZLLFNBQVM7SUFBRUMsY0FBYyxHQUFHOUssS0FBSyxDQUFDOEssY0FBYztJQUFFQyxTQUFTLEdBQUcvSyxLQUFLLENBQUMrSyxTQUFTO0lBQUVDLFVBQVUsR0FBR2hMLEtBQUssQ0FBQ2dMLFVBQVU7SUFBRUMsRUFBRSxHQUFHakwsS0FBSyxDQUFDaUwsRUFBRTtJQUFFbEosS0FBSyxHQUFHL0IsS0FBSyxDQUFDK0IsS0FBSztFQUN4UCxJQUFJRSxJQUFJLEdBQUdnSixFQUFFLEdBQUdBLEVBQUUsR0FBRyxHQUFHO0VBQ3hCLE9BQVEzSixvQkFBSSxDQUFDVyxJQUFJLEVBQUU7SUFBRUQsU0FBUyxFQUFFLHVCQUF1QixDQUFDRyxNQUFNLENBQUMsU0FBUyxDQUFDMUIsSUFBSSxDQUFDcUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDSyxNQUFNLENBQUNMLElBQUksQ0FBQyxHQUFHQSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUNLLE1BQU0sQ0FBQ3dJLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQ3hJLE1BQU0sQ0FBQzBJLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDMUksTUFBTSxDQUFDMkksY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDM0ksTUFBTSxDQUFDNEksU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDNUksTUFBTSxDQUFDNkksVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDN0ksTUFBTSxDQUFDeUksS0FBSyxHQUFHLFFBQVEsQ0FBQ3pJLE1BQU0sQ0FBQ3lJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUFFN0ksS0FBSyxFQUFFQSxLQUFLO0lBQUUxQyxRQUFRLEVBQUVrRTtFQUFLLENBQUMsQ0FBQztBQUN6VyxDQUFDO0FBQ0QsZ0RBQWVtSCxJQUFJOztBQ1Q0QztBQUNPO0FBQ0c7QUFDSztBQUNhO0FBQ3RCO0FBQ0s7QUFDb0I7QUFDbEM7QUFDVyIsInNvdXJjZXMiOlsid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vZm9udC5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS9leHRlcm5hbCB1bWQge1wicm9vdFwiOlwiUmVhY3RcIixcImNvbW1vbmpzMlwiOlwicmVhY3RcIixcImNvbW1vbmpzXCI6XCJyZWFjdFwiLFwiYW1kXCI6XCJyZWFjdFwiLFwidW1kXCI6XCJyZWFjdFwifSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vZXh0ZXJuYWwgdW1kIHtcInJvb3RcIjpcImpzeC1ydW50aW1lXCIsXCJjb21tb25qczJcIjpcInJlYWN0L2pzeC1ydW50aW1lXCIsXCJjb21tb25qc1wiOlwicmVhY3QvanN4LXJ1bnRpbWVcIixcImFtZFwiOlwicmVhY3QvanN4LXJ1bnRpbWVcIixcInVtZFwiOlwicmVhY3QvanN4LXJ1bnRpbWVcIn0iLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvZ2xvYmFsIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvcHVibGljUGF0aCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ydW50aW1lL25vbmNlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci1zdHlsZS5jc3M/NzYwMSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NvcmUvY29tcG9zZXIvaW5kZXgudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFzZS1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24tc3R5bGUuY3NzP2U5ZjciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzcz82NmNhIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcz83NmJiIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2Jhc2UtYnV0dG9uLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3M/YjM5OSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vY3RhLWJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9vcHRpb24tYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzcz80YTg3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS90YWJsZS1zdHlsZS5jc3M/YjcyZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL2Jhc2UtdGFibGUudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzPzdjYzciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL2Jhc2UtdGV4dC1maWVsZC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXdpdGgtZXJyb3IudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZS50cyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL2Jhc2UtcmFkaW8udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzP2Y1ZDkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcz80NmVlIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2Fzc2V0cy9pY29ucy9jaGVjay5zdmciLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvYmFzZS1jaGVjay1ib3gudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzP2Q4N2IiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KHJlcXVpcmUoXCJyZWFjdC9qc3gtcnVudGltZVwiKSwgcmVxdWlyZShcInJlYWN0XCIpKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFtcInJlYWN0L2pzeC1ydW50aW1lXCIsIFwicmVhY3RcIl0sIGZhY3RvcnkpO1xuXHRlbHNlIHtcblx0XHR2YXIgYSA9IHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGZhY3RvcnkocmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpLCByZXF1aXJlKFwicmVhY3RcIikpIDogZmFjdG9yeShyb290W1wianN4LXJ1bnRpbWVcIl0sIHJvb3RbXCJSZWFjdFwiXSk7XG5cdFx0Zm9yKHZhciBpIGluIGEpICh0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgPyBleHBvcnRzIDogcm9vdClbaV0gPSBhW2ldO1xuXHR9XG59KShzZWxmLCAoX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMjI2X18sIF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzExOV9fKSA9PiB7XG5yZXR1cm4gIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5hdmF0YXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICYgZGl2IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gIH1cblxuICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgJjp3aGVyZSgueGwpIHtcbiAgICB3aWR0aDogMTI0cHg7XG4gICAgaGVpZ2h0OiAxMjRweDtcbiAgfVxuXG4gICY6d2hlcmUoLmwpIHtcbiAgICB3aWR0aDogNzRweDtcbiAgICBoZWlnaHQ6IDc0cHg7XG4gIH1cblxuICAmOndoZXJlKC5tKSB7XG4gICAgd2lkdGg6IDU4cHg7XG4gICAgaGVpZ2h0OiA1OHB4O1xuICB9XG5cbiAgJjp3aGVyZSgucykge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgfVxuXG4gIC5hdmF0YXItc2tlbGV0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgLnNrZWxldG9uLWFuaW1hdGlvbiB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgOTBkZWcsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSA1MCUsXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxuICAgICAgKTtcbiAgICAgIGFuaW1hdGlvbjogc2hpbW1lciAxLjVzIGluZmluaXRlO1xuICAgIH1cbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQjtJQUNFLGtCQUFrQjtJQUNsQixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixnQkFBZ0I7RUFDbEI7O0VBRUEsa0JBQWtCOztFQUVsQjtJQUNFLFlBQVk7SUFDWixhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLE9BQU87SUFDUCxXQUFXO0lBQ1gsWUFBWTtJQUNaLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsV0FBVztJQUNYLFlBQVk7O0lBRVo7TUFDRSxXQUFXO01BQ1gsWUFBWTtNQUNaOzs7OztPQUtDO01BQ0QsZ0NBQWdDO0lBQ2xDO0VBQ0Y7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsNEJBQTRCO0VBQzlCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYXZhdGFyIHtcXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcXG4gICYgZGl2IHtcXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcXG4gIH1cXG5cXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcXG5cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIHdpZHRoOiAxMjRweDtcXG4gICAgaGVpZ2h0OiAxMjRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgd2lkdGg6IDc0cHg7XFxuICAgIGhlaWdodDogNzRweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgd2lkdGg6IDU4cHg7XFxuICAgIGhlaWdodDogNThweDtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgd2lkdGg6IDQwcHg7XFxuICAgIGhlaWdodDogNDBweDtcXG4gIH1cXG5cXG4gIC5hdmF0YXItc2tlbGV0b24ge1xcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICAgIHRvcDogMDtcXG4gICAgbGVmdDogMDtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGhlaWdodDogMTAwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UwZTBlMDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcblxcbiAgICAuc2tlbGV0b24tYW5pbWF0aW9uIHtcXG4gICAgICB3aWR0aDogMTAwJTtcXG4gICAgICBoZWlnaHQ6IDEwMCU7XFxuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxcbiAgICAgICAgOTBkZWcsXFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDAlLFxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSxcXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJVxcbiAgICAgICk7XFxuICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDEuNXMgaW5maW5pdGU7XFxuICAgIH1cXG4gIH1cXG59XFxuXFxuQGtleWZyYW1lcyBzaGltbWVyIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcXG4gIH1cXG4gIDEwMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYmFkZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG5cbiAgYm9yZGVyLXJhZGl1czogNDBweDtcblxuICAmOndoZXJlKC5sKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgucikge1xuICAgIGhlaWdodDogMzZweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5zKSB7XG4gICAgaGVpZ2h0OiAzMnB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSguc20pIHtcbiAgICBoZWlnaHQ6IDI4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICZbY2xhc3MqPVwiYmFja2dyb3VuZC1cIl0ge1xuICAgICYuYmFja2dyb3VuZC1ibGFjayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLXdoaXRlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtZ3JheUZhIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC1wdXJwbGUzOSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwidGV4dC1cIl0ge1xuICAgICYudGV4dC1ibGFjayB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYudGV4dC13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYudGV4dC1ncmF5RmEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYudGV4dC1wdXJwbGUzOSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cImJvcmRlci1cIl0ge1xuICAgICYuYm9yZGVyLWJsYWNrIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmJvcmRlci13aGl0ZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUZhIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XG4gICAgfVxuICAgICYuYm9yZGVyLWdyYXlFNCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIH1cbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgfVxuXG4gICYuaWNvbi10ZXh0LW9wdGlvbiA+IHNwYW4ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFFBQVE7O0VBRVIsbUJBQW1COztFQUVuQjtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0U7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0VBQ0Y7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLDhCQUE4Qjs7SUFFOUIsZUFBZTtFQUNqQjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsUUFBUTtFQUNWO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYmFkZ2Uge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGdhcDogNHB4O1xcblxcbiAgYm9yZGVyLXJhZGl1czogNDBweDtcXG5cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA0OHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5tKSB7XFxuICAgIGhlaWdodDogNDBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucikge1xcbiAgICBoZWlnaHQ6IDM2cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiAzMnB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnNtKSB7XFxuICAgIGhlaWdodDogMjhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJiYWNrZ3JvdW5kLVxcXCJdIHtcXG4gICAgJi5iYWNrZ3JvdW5kLWJsYWNrIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtd2hpdGUge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC1ncmF5RmEge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLXB1cnBsZTM5IHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dC1cXFwiXSB7XFxuICAgICYudGV4dC1ibGFjayB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYudGV4dC13aGl0ZSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYudGV4dC1ncmF5RmEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYudGV4dC1wdXJwbGUzOSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJib3JkZXItXFxcIl0ge1xcbiAgICAmLmJvcmRlci1ibGFjayB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItd2hpdGUge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlGYSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1ncmF5RTQge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItcHVycGxlMzkge1xcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuaWNvbi10ZXh0LW9wdGlvbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG5cXG4gICAgcGFkZGluZzogMCAyMHB4O1xcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGdhcDogNHB4O1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgYm9yZGVyOiBub25lO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdGEtYnV0dG9uIHtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuICAmOndoZXJlKC5zZWNvbmRhcnkpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmdob3N0KSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC53aGl0ZSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gIH1cblxuICAmOndoZXJlKC54bCkge1xuICAgIGhlaWdodDogNjBweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxnKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuICAmOndoZXJlKC5sKSB7XG4gICAgaGVpZ2h0OiA1NHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuICAmOndoZXJlKC5yKSB7XG4gICAgaGVpZ2h0OiA0OHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5tKSB7XG4gICAgaGVpZ2h0OiA1MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5zKSB7XG4gICAgaGVpZ2h0OiA0MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnhzKSB7XG4gICAgaGVpZ2h0OiAzMHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1Qsa0JBQWtCO0VBQ2xCLFlBQVk7RUFDWixlQUFlO0FBQ2pCOztBQUVBO0VBQ0Usa0JBQWtCOztFQUVsQjtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1Qyw4Q0FBOEM7SUFDOUMsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw0Q0FBNEM7SUFDNUMsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw4Q0FBOEM7SUFDOUMsaUNBQWlDO0VBQ25DOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG9DQUFvQztFQUN0QztFQUNBO0lBQ0UsWUFBWTs7SUFFWixnQ0FBZ0M7SUFDaEMsb0NBQW9DO0lBQ3BDLG9DQUFvQztFQUN0QztFQUNBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQztFQUNBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQztFQUNBO0lBQ0UsWUFBWTs7SUFFWiwrQkFBK0I7SUFDL0IsbUNBQW1DO0lBQ25DLHdDQUF3QztFQUMxQztFQUNBO0lBQ0UsWUFBWTs7SUFFWiwrQkFBK0I7SUFDL0IsbUNBQW1DO0lBQ25DLHdDQUF3QztFQUMxQztBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLWJ1dHRvbiB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICBhbGlnbi1pdGVtczogY2VudGVyO1xcbiAgZ2FwOiAxMHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xcbiAgYm9yZGVyOiBub25lO1xcbiAgY3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uY3RhLWJ1dHRvbiB7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuXFxuICAmOndoZXJlKC5wcmltYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcXG4gIH1cXG4gICY6d2hlcmUoLnNlY29uZGFyeSkge1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtZjQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLmdob3N0KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLndoaXRlKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIGhlaWdodDogNjBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtbGcpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5sKSB7XFxuICAgIGhlaWdodDogNTRweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgucikge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA1MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5zKSB7XFxuICAgIGhlaWdodDogNDBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC54cykge1xcbiAgICBoZWlnaHQ6IDMwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLWNoZWNrLWJveCB7XG4gICYubGFiZWwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gIH1cbn1cblxuLmNoZWNrLWJveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbn1cblxuLmNoZWNrLWJveC1pbnB1dCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB3aWR0aDogMjRweDtcbiAgaGVpZ2h0OiAyNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcblxuICAmOndoZXJlKC51bmNoZWNrZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICB9XG5cbiAgJjp3aGVyZSguY2hlY2tlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cblxuICAmOndoZXJlKC5kaXNhYmxlZCkge1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLDhCQUE4QjtJQUM5QixzQ0FBc0M7SUFDdEMsaUNBQWlDO0VBQ25DO0FBQ0Y7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGdEQUFnRDs7RUFFaEQ7SUFDRSxzQkFBc0I7RUFDeEI7O0VBRUE7SUFDRSw4Q0FBOEM7RUFDaEQ7O0VBRUE7SUFDRSxZQUFZO0lBQ1osOENBQThDO0VBQ2hEO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtY2hlY2stYm94IHtcXG4gICYubGFiZWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICB9XFxufVxcblxcbi5jaGVjay1ib3gge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxufVxcblxcbi5jaGVjay1ib3gtaW5wdXQge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIHdpZHRoOiAyNHB4O1xcbiAgaGVpZ2h0OiAyNHB4O1xcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcblxcbiAgJjp3aGVyZSgudW5jaGVja2VkKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XFxuICB9XFxuXFxuICAmOndoZXJlKC5jaGVja2VkKSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5kaXNhYmxlZCkge1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtdGV4dCB7XG4gICY6d2hlcmUoLnhzbSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XG4gIH1cbiAgJjp3aGVyZSguc20pIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgfVxuICAmOndoZXJlKC5iYXNlKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuICB9XG4gICY6d2hlcmUoLmxnKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gIH1cbiAgJjp3aGVyZSgueGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhsKTtcbiAgfVxuICAmOndoZXJlKC50LTJ4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTJ4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTJ4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC0zeGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0zeGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC0zeGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNHhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNHhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNHhsKTtcbiAgfVxuICAmOndoZXJlKC50LTV4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTV4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTV4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC02eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS02eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC02eGwpO1xuICB9XG5cbiAgJjp3aGVyZSgucmVndWxhcikge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcbiAgfVxuICAmOndoZXJlKC5tZWRpdW0pIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgfVxuICAmOndoZXJlKC5zZW1pYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSguYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuICAmOndoZXJlKC5leHRyYWJvbGQpIHtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZXh0cmFib2xkKTtcbiAgfVxuXG4gICZbY2xhc3MqPVwidGV4dEFsaWduLVwiXSB7XG4gICAgJi50ZXh0QWxpZ24tbGVmdCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbiAgICAmLnRleHRBbGlnbi1jZW50ZXIge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwidGV4dERlY29yYXRpb24tXCJdIHtcbiAgICAmLnRleHREZWNvcmF0aW9uLXVuZGVybGluZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICB9XG4gICAgJi50ZXh0RGVjb3JhdGlvbi1ub25lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gICAgJi50ZXh0RGVjb3JhdGlvbi1saW5lVGhyb3VnaCB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICB9XG4gICAgJi50ZXh0RGVjb3JhdGlvbi1vdmVybGluZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLWJsaW5rIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogYmxpbms7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ3b3JkQnJlYWstXCJdIHtcbiAgICAmLndvcmRCcmVhay1ub3JtYWwge1xuICAgICAgd29yZC1icmVhazogbm9ybWFsO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1icmVha0FsbCB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrV29yZCB7XG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1rZWVwQWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1rZWVwV29yZCB7XG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLXdvcmQ7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrU3BhY2VzIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXNwYWNlcztcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGFsbDtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cIndoaXRlU3BhY2UtXCJdIHtcbiAgICAmLndoaXRlU3BhY2Utbm9ybWFsIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1ub3dyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZSB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlTGluZSB7XG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmVXcmFwIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cImNvbG9yLVwiXSB7XG4gICAgJi5jb2xvci1ibGFjayB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYuY29sb3Itd2hpdGUge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlGYSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RjQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUU0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlENCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5QTEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTcxIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNzEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXk1MiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTUyKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5M2Yge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0zZik7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTI3IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMjcpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkxOCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTE4KTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSxnQ0FBZ0M7SUFDaEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsa0NBQWtDO0VBQ3BDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDO0VBQ0E7SUFDRSwrQkFBK0I7SUFDL0IsbUNBQW1DO0VBQ3JDOztFQUVBO0lBQ0UsdUNBQXVDO0VBQ3pDO0VBQ0E7SUFDRSxzQ0FBc0M7RUFDeEM7RUFDQTtJQUNFLHdDQUF3QztFQUMxQztFQUNBO0lBQ0Usb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSx5Q0FBeUM7RUFDM0M7O0VBRUE7SUFDRTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0Usa0JBQWtCO0lBQ3BCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLDBCQUEwQjtJQUM1QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSw2QkFBNkI7SUFDL0I7SUFDQTtNQUNFLHlCQUF5QjtJQUMzQjtJQUNBO01BQ0Usc0JBQXNCO0lBQ3hCO0VBQ0Y7O0VBRUE7SUFDRTtNQUNFLGtCQUFrQjtJQUNwQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxzQkFBc0I7SUFDeEI7SUFDQTtNQUNFLG9CQUFvQjtJQUN0QjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSx3QkFBd0I7SUFDMUI7SUFDQTtNQUNFLGVBQWU7SUFDakI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7TUFDRSxtQkFBbUI7SUFDckI7SUFDQTtNQUNFLGdCQUFnQjtJQUNsQjtJQUNBO01BQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsaUNBQWlDO0lBQ25DO0lBQ0E7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGV4dCB7XFxuICAmOndoZXJlKC54c20pIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICB9XFxuICAmOndoZXJlKC5zbSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICB9XFxuICAmOndoZXJlKC5iYXNlKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XFxuICB9XFxuICAmOndoZXJlKC5sZykge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICB9XFxuICAmOndoZXJlKC54bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTJ4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS0yeGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtM3hsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC0zeGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC00eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNHhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTR4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTV4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS01eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNnhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC02eGwpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucmVndWxhcikge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtcmVndWxhcik7XFxuICB9XFxuICAmOndoZXJlKC5tZWRpdW0pIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICB9XFxuICAmOndoZXJlKC5zZW1pYm9sZCkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSguYm9sZCkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5leHRyYWJvbGQpIHtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWV4dHJhYm9sZCk7XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dEFsaWduLVxcXCJdIHtcXG4gICAgJi50ZXh0QWxpZ24tbGVmdCB7XFxuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgfVxcbiAgICAmLnRleHRBbGlnbi1jZW50ZXIge1xcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcInRleHREZWNvcmF0aW9uLVxcXCJdIHtcXG4gICAgJi50ZXh0RGVjb3JhdGlvbi11bmRlcmxpbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tbm9uZSB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tbGluZVRocm91Z2gge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xcbiAgICB9XFxuICAgICYudGV4dERlY29yYXRpb24tb3ZlcmxpbmUge1xcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XFxuICAgIH1cXG4gICAgJi50ZXh0RGVjb3JhdGlvbi1ibGluayB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcIndvcmRCcmVhay1cXFwiXSB7XFxuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XFxuICAgICAgd29yZC1icmVhazogbm9ybWFsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcXG4gICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtYWxsO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcXG4gICAgICB3b3JkLWJyZWFrOiBrZWVwLXdvcmQ7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXNwYWNlcztcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1hbGwge1xcbiAgICAgIHdvcmQtYnJlYWs6IGFsbDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcIndoaXRlU3BhY2UtXFxcIl0ge1xcbiAgICAmLndoaXRlU3BhY2Utbm9ybWFsIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1ub3dyYXAge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZSB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZTtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlTGluZSB7XFxuICAgICAgd2hpdGUtc3BhY2U6IHByZS1saW5lO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmVXcmFwIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJjb2xvci1cXFwiXSB7XFxuICAgICYuY29sb3ItYmxhY2sge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RmEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUY0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlFNCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RDQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUExIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXk3MSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5NTIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTNmIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkyNyB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5MTgge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmNvbXBvbmVudC1sb2FkaW5nLWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3ItcmluZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYm9yZGVyOiAzcHggc29saWQ7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjQ1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgyKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XG4gIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbkBrZXlmcmFtZXMgbGRzLXJpbmcge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gIH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLFlBQVk7RUFDWixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsWUFBWTtFQUNaLGlCQUFpQjtFQUNqQixrQkFBa0I7RUFDbEIsOERBQThEO0VBQzlELDRFQUE0RTtBQUM5RTs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFO0lBQ0UsdUJBQXVCO0VBQ3pCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXJpbmcge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgd2lkdGg6IDIwcHg7XFxuICBoZWlnaHQ6IDIwcHg7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZyB7XFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xcbiAgZGlzcGxheTogYmxvY2s7XFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG4gIGJvcmRlcjogM3B4IHNvbGlkO1xcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgYW5pbWF0aW9uOiBsZHMtcmluZyAxLjJzIGN1YmljLWJlemllcigwLjUsIDAsIDAuNSwgMSkgaW5maW5pdGU7XFxuICBib3JkZXItY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDEpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDIpIHtcXG4gIGFuaW1hdGlvbi1kZWxheTogLTAuM3M7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMykge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoNCkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcXG59XFxuXFxuQGtleWZyYW1lcyBsZHMtcmluZyB7XFxuICAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLnJhZGlvIHtcbiAgJjp3aGVyZSgucmFkaW8tZ3JvdXApIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWJ1dHRvbikge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMThweDtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8taW5kaWNhdG9yKSB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1sYWJlbCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9yYWRpby9yYWRpby1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsU0FBUztFQUNYO0VBQ0E7SUFDRSxhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixXQUFXO0lBQ1gsWUFBWTtJQUNaLGtCQUFrQjtJQUNsQiw4Q0FBOEM7RUFDaEQ7RUFDQTtJQUNFLFVBQVU7SUFDVixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLDhDQUE4QztFQUNoRDtFQUNBO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIucmFkaW8ge1xcbiAgJjp3aGVyZSgucmFkaW8tZ3JvdXApIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG4gICAgZ2FwOiAxNnB4O1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8tYnV0dG9uKSB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICB3aWR0aDogMThweDtcXG4gICAgaGVpZ2h0OiAxOHB4O1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1pbmRpY2F0b3IpIHtcXG4gICAgd2lkdGg6IDhweDtcXG4gICAgaGVpZ2h0OiA4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWxhYmVsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10YWJsZSB7XG4gIC5oaWRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgJi50YWJsZS1yb290IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICB9XG5cbiAgLnRhYmxlLWhlYWRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5zdGFydCkge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgICAmOndoZXJlKC5lbmQpIHtcbiAgICAgIC50YWJsZS1jZWxsIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlLWJvZHkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnRhYmxlLXJvdyB7XG4gIH1cblxuICAudGFibGUtY2VsbCB7XG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gIH1cbn1cblxuLmRhdGEtdGFibGUge1xuICAmOndoZXJlKC50YWJsZS1oZWFkZXIpIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcbiAgfVxuXG4gICY6d2hlcmUoLnRhYmxlLXJvdykge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xuXG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3RhYmxlL3RhYmxlLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtFQUNmOztFQUVBO0lBQ0UsV0FBVztJQUNYLHlCQUF5QjtFQUMzQjs7RUFFQTtJQUNFLFdBQVc7O0lBRVg7TUFDRTtRQUNFLGtCQUFrQjtNQUNwQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGdCQUFnQjtNQUNsQjtJQUNGO0lBQ0E7TUFDRTtRQUNFLGlCQUFpQjtNQUNuQjtJQUNGO0VBQ0Y7O0VBRUE7SUFDRSxXQUFXO0VBQ2I7O0VBRUE7RUFDQTs7RUFFQTtJQUNFLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsWUFBWTtFQUNkO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGdDQUFnQztFQUNsQzs7RUFFQTtJQUNFLGdDQUFnQzs7SUFFaEM7TUFDRSx5QkFBeUI7SUFDM0I7RUFDRjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5iYXNlLXRhYmxlIHtcXG4gIC5oaWRlIHtcXG4gICAgZGlzcGxheTogbm9uZTtcXG4gIH1cXG5cXG4gICYudGFibGUtcm9vdCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xcbiAgfVxcblxcbiAgLnRhYmxlLWhlYWRlciB7XFxuICAgIHdpZHRoOiAxMDAlO1xcblxcbiAgICAmOndoZXJlKC5jZW50ZXIpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XFxuICAgICAgfVxcbiAgICB9XFxuICAgICY6d2hlcmUoLnN0YXJ0KSB7XFxuICAgICAgLnRhYmxlLWNlbGwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguZW5kKSB7XFxuICAgICAgLnRhYmxlLWNlbGwge1xcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XFxuICAgICAgfVxcbiAgICB9XFxuICB9XFxuXFxuICAudGFibGUtYm9keSB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgfVxcblxcbiAgLnRhYmxlLXJvdyB7XFxuICB9XFxuXFxuICAudGFibGUtY2VsbCB7XFxuICAgIHRleHQtYWxpZ246IHN0YXJ0O1xcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xcbiAgICBoZWlnaHQ6IDYwcHg7XFxuICB9XFxufVxcblxcbi5kYXRhLXRhYmxlIHtcXG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcXG4gIH1cXG5cXG4gICY6d2hlcmUoLnRhYmxlLXJvdykge1xcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2U0ZTRlNztcXG5cXG4gICAgJjpob3ZlciB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZjVmNTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRleHQtZmllbGQge1xuICAmOndoZXJlKC50ZXh0LWZpZWxkLXJvb3QpIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxufVxuXG4udGV4dC1maWVsZCB7XG4gICYubGFiZWwge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmLmlucHV0LXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAyMnB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB9XG5cbiAgJi5pbnB1dCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG5cbiAgICA6OnBsYWNlaG9sZGVyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xuICAgIH1cbiAgfVxuXG4gICYuaGVscGVyLXRleHQge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuXG4gICAgJi5lcnJvciB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsV0FBVztFQUNiO0FBQ0Y7O0FBRUE7RUFDRTtJQUNFLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDOztFQUVBO0lBQ0UsYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGFBQWE7SUFDYixnREFBZ0Q7SUFDaEQsa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixrQkFBa0I7RUFDcEI7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtJQUNaLGFBQWE7SUFDYiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHNDQUFzQzs7SUFFdEM7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjs7RUFFQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsc0NBQXNDOztJQUV0QztNQUNFLGlDQUFpQztJQUNuQztFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGV4dC1maWVsZCB7XFxuICAmOndoZXJlKC50ZXh0LWZpZWxkLXJvb3QpIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxufVxcblxcbi50ZXh0LWZpZWxkIHtcXG4gICYubGFiZWwge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuXFxuICAmLmlucHV0LXdyYXBwZXIge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGhlaWdodDogMjJweDtcXG4gICAgcGFkZGluZzogMTRweDtcXG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICAgIG1hcmdpbi10b3A6IDhweDtcXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xcbiAgfVxcblxcbiAgJi5pbnB1dCB7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBib3JkZXI6IG5vbmU7XFxuICAgIG91dGxpbmU6IG5vbmU7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuXFxuICAgIDo6cGxhY2Vob2xkZXIge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xcbiAgICB9XFxuICB9XFxuXFxuICAmLmhlbHBlci10ZXh0IHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG5cXG4gICAgJi5lcnJvciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWFjY2VudC1yZWQtZGYpO1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XG4gIC0tY29sb3ItcHJpbWFyeS13aGl0ZTogI2ZmZmZmZjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS03MTogIzcxNzE3YTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0yNzogIzI3MjcyYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XG5cbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtMzk6ICMzOTFkNWQ7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZTk6ICNlOWUwZjU7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtOTU6ICM5NTdlYjQ7XG5cbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xuICAtLWNvbG9yLWFjY2VudC1tYWdlbnRhLWIwOiAjYjAyZTRjO1xuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcblxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1lNDogI2U0ZTRlNztcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWZmOiAjZmZmZmZmO1xuXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsOEJBQThCO0VBQzlCLDhCQUE4QjtFQUM5QixnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQzs7RUFFaEMsOEJBQThCO0VBQzlCLGtDQUFrQztFQUNsQyxnQ0FBZ0M7O0VBRWhDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyw2QkFBNkI7QUFDL0JcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLm51cmktdGhlbWUge1xcbiAgLS1jb2xvci1wcmltYXJ5LWJsYWNrOiAjMDAwMDAwO1xcbiAgLS1jb2xvci1wcmltYXJ5LXdoaXRlOiAjZmZmZmZmO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZmE6ICNmYWZhZmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mNDogI2Y0ZjRmNTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZDQ6ICNkNGQ0ZDg7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1hMTogI2ExYTFhYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxOiAjNzE3MTdhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNTI6ICM1MjUyNWI7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0zZjogIzNmM2Y0NjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3OiAjMjcyNzJhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMTg6ICMxODE4MWI7XFxuXFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS0zOTogIzM5MWQ1ZDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTRjOiAjNGMyNzdjO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZGQ6ICNkZGQxZjA7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1lOTogI2U5ZTBmNTtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWY0OiAjZjRlZmZhO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNDE6ICM0YzFkODg7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS05NTogIzk1N2ViNDtcXG5cXG4gIC0tY29sb3ItYWNjZW50LXJlZC1kZjogI2RmNTM1YztcXG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XFxuICAtLWNvbG9yLWFjY2VudC1ncmVlbi0yODogIzI4OWEzYTtcXG5cXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWU0OiAjZTRlNGU3O1xcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZjc6ICNmN2Y3Zjg7XFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mZjogI2ZmZmZmZjtcXG5cXG4gIC0tY29sb3ItZXRjLWhvdmVyLWVlOiAjZWVlZWVlO1xcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5udXJpLXRoZW1lIHtcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xuICAtLWZvbnQtc2l6ZS1zbTogMTRweDtcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XG4gIC0tZm9udC1zaXplLXhsOiAyMHB4O1xuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcbiAgLS1mb250LXNpemUtNHhsOiAzNnB4O1xuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcblxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcbiAgLS1saW5lLWhlaWdodC1iYXNlOiAyMnB4O1xuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xuICAtLWxpbmUtaGVpZ2h0LTJ4bDogMzJweDtcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xuICAtLWxpbmUtaGVpZ2h0LTV4bDogNjZweDtcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XG5cbiAgLS1mb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiAgLS1mb250LXdlaWdodC1ib2xkOiA3MDA7XG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLHFCQUFxQjtFQUNyQixvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjs7RUFFckIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCOztFQUV2QiwwQkFBMEI7RUFDMUIseUJBQXlCO0VBQ3pCLDJCQUEyQjtFQUMzQix1QkFBdUI7RUFDdkIsNEJBQTRCO0FBQzlCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5udXJpLXRoZW1lIHtcXG4gIC0tZm9udC1zaXplLXhzbTogMTJweDtcXG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xcbiAgLS1mb250LXNpemUtYmFzZTogMTZweDtcXG4gIC0tZm9udC1zaXplLWxnOiAxOHB4O1xcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XFxuICAtLWZvbnQtc2l6ZS0yeGw6IDI0cHg7XFxuICAtLWZvbnQtc2l6ZS0zeGw6IDMwcHg7XFxuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XFxuICAtLWZvbnQtc2l6ZS01eGw6IDQ4cHg7XFxuICAtLWZvbnQtc2l6ZS02eGw6IDYwcHg7XFxuXFxuICAtLWxpbmUtaGVpZ2h0LXhzbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtc206IDE4cHg7XFxuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XFxuICAtLWxpbmUtaGVpZ2h0LWxnOiAyNHB4O1xcbiAgLS1saW5lLWhlaWdodC14bDogMjhweDtcXG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xcbiAgLS1saW5lLWhlaWdodC0zeGw6IDM2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTR4bDogNDNweDtcXG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xcbiAgLS1saW5lLWhlaWdodC02eGw6IDgycHg7XFxuXFxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcXG4gIC0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XFxuICAtLWZvbnQtd2VpZ2h0LXNlbWlib2xkOiA2MDA7XFxuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcXG4gIC0tZm9udC13ZWlnaHQtZXh0cmFib2xkOiA4MDA7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLypcbiAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZS5waHBcbiAgQXV0aG9yIFRvYmlhcyBLb3BwZXJzIEBzb2tyYVxuKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGNzc1dpdGhNYXBwaW5nVG9TdHJpbmcpIHtcbiAgdmFyIGxpc3QgPSBbXTtcblxuICAvLyByZXR1cm4gdGhlIGxpc3Qgb2YgbW9kdWxlcyBhcyBjc3Mgc3RyaW5nXG4gIGxpc3QudG9TdHJpbmcgPSBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHZhciBjb250ZW50ID0gXCJcIjtcbiAgICAgIHZhciBuZWVkTGF5ZXIgPSB0eXBlb2YgaXRlbVs1XSAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIik7XG4gICAgICB9XG4gICAgICBpZiAobmVlZExheWVyKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzJdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfSkuam9pbihcIlwiKTtcbiAgfTtcblxuICAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuICBsaXN0LmkgPSBmdW5jdGlvbiBpKG1vZHVsZXMsIG1lZGlhLCBkZWR1cGUsIHN1cHBvcnRzLCBsYXllcikge1xuICAgIGlmICh0eXBlb2YgbW9kdWxlcyA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgbW9kdWxlcyA9IFtbbnVsbCwgbW9kdWxlcywgdW5kZWZpbmVkXV07XG4gICAgfVxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG4gICAgaWYgKGRlZHVwZSkge1xuICAgICAgZm9yICh2YXIgayA9IDA7IGsgPCB0aGlzLmxlbmd0aDsgaysrKSB7XG4gICAgICAgIHZhciBpZCA9IHRoaXNba11bMF07XG4gICAgICAgIGlmIChpZCAhPSBudWxsKSB7XG4gICAgICAgICAgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpZF0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAodmFyIF9rID0gMDsgX2sgPCBtb2R1bGVzLmxlbmd0aDsgX2srKykge1xuICAgICAgdmFyIGl0ZW0gPSBbXS5jb25jYXQobW9kdWxlc1tfa10pO1xuICAgICAgaWYgKGRlZHVwZSAmJiBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2l0ZW1bMF1dKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChtZWRpYSkge1xuICAgICAgICBpZiAoIWl0ZW1bMl0pIHtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQG1lZGlhIFwiLmNvbmNhdChpdGVtWzJdLCBcIiB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVsyXSA9IG1lZGlhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc3VwcG9ydHMpIHtcbiAgICAgICAgaWYgKCFpdGVtWzRdKSB7XG4gICAgICAgICAgaXRlbVs0XSA9IFwiXCIuY29uY2F0KHN1cHBvcnRzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNF0gPSBzdXBwb3J0cztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGxpc3Q7XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChpdGVtKSB7XG4gIHZhciBjb250ZW50ID0gaXRlbVsxXTtcbiAgdmFyIGNzc01hcHBpbmcgPSBpdGVtWzNdO1xuICBpZiAoIWNzc01hcHBpbmcpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgcmV0dXJuIFtjb250ZW50XS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG4gIHJldHVybiBbY29udGVudF0uam9pbihcIlxcblwiKTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuZnVuY3Rpb24gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcikge1xuICB2YXIgcmVzdWx0ID0gLTE7XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgc3R5bGVzSW5ET00ubGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoc3R5bGVzSW5ET01baV0uaWRlbnRpZmllciA9PT0gaWRlbnRpZmllcikge1xuICAgICAgcmVzdWx0ID0gaTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuZnVuY3Rpb24gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpIHtcbiAgdmFyIGlkQ291bnRNYXAgPSB7fTtcbiAgdmFyIGlkZW50aWZpZXJzID0gW107XG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xuICAgIHZhciBpdGVtID0gbGlzdFtpXTtcbiAgICB2YXIgaWQgPSBvcHRpb25zLmJhc2UgPyBpdGVtWzBdICsgb3B0aW9ucy5iYXNlIDogaXRlbVswXTtcbiAgICB2YXIgY291bnQgPSBpZENvdW50TWFwW2lkXSB8fCAwO1xuICAgIHZhciBpZGVudGlmaWVyID0gXCJcIi5jb25jYXQoaWQsIFwiIFwiKS5jb25jYXQoY291bnQpO1xuICAgIGlkQ291bnRNYXBbaWRdID0gY291bnQgKyAxO1xuICAgIHZhciBpbmRleEJ5SWRlbnRpZmllciA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgIHZhciBvYmogPSB7XG4gICAgICBjc3M6IGl0ZW1bMV0sXG4gICAgICBtZWRpYTogaXRlbVsyXSxcbiAgICAgIHNvdXJjZU1hcDogaXRlbVszXSxcbiAgICAgIHN1cHBvcnRzOiBpdGVtWzRdLFxuICAgICAgbGF5ZXI6IGl0ZW1bNV1cbiAgICB9O1xuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZGVudGlmaWVycy5wdXNoKGlkZW50aWZpZXIpO1xuICB9XG4gIHJldHVybiBpZGVudGlmaWVycztcbn1cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG4gIHZhciB1cGRhdGVyID0gZnVuY3Rpb24gdXBkYXRlcihuZXdPYmopIHtcbiAgICBpZiAobmV3T2JqKSB7XG4gICAgICBpZiAobmV3T2JqLmNzcyA9PT0gb2JqLmNzcyAmJiBuZXdPYmoubWVkaWEgPT09IG9iai5tZWRpYSAmJiBuZXdPYmouc291cmNlTWFwID09PSBvYmouc291cmNlTWFwICYmIG5ld09iai5zdXBwb3J0cyA9PT0gb2JqLnN1cHBvcnRzICYmIG5ld09iai5sYXllciA9PT0gb2JqLmxheWVyKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGFwaS51cGRhdGUob2JqID0gbmV3T2JqKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXBpLnJlbW92ZSgpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChsaXN0LCBvcHRpb25zKSB7XG4gIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICBsaXN0ID0gbGlzdCB8fCBbXTtcbiAgdmFyIGxhc3RJZGVudGlmaWVycyA9IG1vZHVsZXNUb0RvbShsaXN0LCBvcHRpb25zKTtcbiAgcmV0dXJuIGZ1bmN0aW9uIHVwZGF0ZShuZXdMaXN0KSB7XG4gICAgbmV3TGlzdCA9IG5ld0xpc3QgfHwgW107XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhciBpZGVudGlmaWVyID0gbGFzdElkZW50aWZpZXJzW2ldO1xuICAgICAgdmFyIGluZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleF0ucmVmZXJlbmNlcy0tO1xuICAgIH1cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBsYXN0SWRlbnRpZmllcnMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICB2YXIgX2lkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbX2ldO1xuICAgICAgdmFyIF9pbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKF9pZGVudGlmaWVyKTtcbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG4gICAgICAgIHN0eWxlc0luRE9NLnNwbGljZShfaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICBsYXN0SWRlbnRpZmllcnMgPSBuZXdMYXN0SWRlbnRpZmllcnM7XG4gIH07XG59OyIsIlwidXNlIHN0cmljdFwiO1xuXG52YXIgbWVtbyA9IHt9O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGdldFRhcmdldCh0YXJnZXQpIHtcbiAgaWYgKHR5cGVvZiBtZW1vW3RhcmdldF0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICB2YXIgc3R5bGVUYXJnZXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKHRhcmdldCk7XG5cbiAgICAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuICAgIGlmICh3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQgJiYgc3R5bGVUYXJnZXQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTElGcmFtZUVsZW1lbnQpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIFRoaXMgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24gaWYgYWNjZXNzIHRvIGlmcmFtZSBpcyBibG9ja2VkXG4gICAgICAgIC8vIGR1ZSB0byBjcm9zcy1vcmlnaW4gcmVzdHJpY3Rpb25zXG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gc3R5bGVUYXJnZXQuY29udGVudERvY3VtZW50LmhlYWQ7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIC8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0XG4gICAgICAgIHN0eWxlVGFyZ2V0ID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgbWVtb1t0YXJnZXRdID0gc3R5bGVUYXJnZXQ7XG4gIH1cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRCeVNlbGVjdG9yKGluc2VydCwgc3R5bGUpIHtcbiAgdmFyIHRhcmdldCA9IGdldFRhcmdldChpbnNlcnQpO1xuICBpZiAoIXRhcmdldCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkNvdWxkbid0IGZpbmQgYSBzdHlsZSB0YXJnZXQuIFRoaXMgcHJvYmFibHkgbWVhbnMgdGhhdCB0aGUgdmFsdWUgZm9yIHRoZSAnaW5zZXJ0JyBwYXJhbWV0ZXIgaXMgaW52YWxpZC5cIik7XG4gIH1cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0QnlTZWxlY3RvcjsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBpbnNlcnRTdHlsZUVsZW1lbnQob3B0aW9ucykge1xuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzdHlsZVwiKTtcbiAgb3B0aW9ucy5zZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIG9wdGlvbnMuYXR0cmlidXRlcyk7XG4gIG9wdGlvbnMuaW5zZXJ0KGVsZW1lbnQsIG9wdGlvbnMub3B0aW9ucyk7XG4gIHJldHVybiBlbGVtZW50O1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzKHN0eWxlRWxlbWVudCkge1xuICB2YXIgbm9uY2UgPSB0eXBlb2YgX193ZWJwYWNrX25vbmNlX18gIT09IFwidW5kZWZpbmVkXCIgPyBfX3dlYnBhY2tfbm9uY2VfXyA6IG51bGw7XG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cbm1vZHVsZS5leHBvcnRzID0gc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKSB7XG4gIHZhciBjc3MgPSBcIlwiO1xuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQob2JqLnN1cHBvcnRzLCBcIikge1wiKTtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cbiAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBvYmoubGF5ZXIgIT09IFwidW5kZWZpbmVkXCI7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJAbGF5ZXJcIi5jb25jYXQob2JqLmxheWVyLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQob2JqLmxheWVyKSA6IFwiXCIsIFwiIHtcIik7XG4gIH1cbiAgY3NzICs9IG9iai5jc3M7XG4gIGlmIChuZWVkTGF5ZXIpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgaWYgKG9iai5tZWRpYSkge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIHZhciBzb3VyY2VNYXAgPSBvYmouc291cmNlTWFwO1xuICBpZiAoc291cmNlTWFwICYmIHR5cGVvZiBidG9hICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgY3NzICs9IFwiXFxuLyojIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxcIi5jb25jYXQoYnRvYSh1bmVzY2FwZShlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoc291cmNlTWFwKSkpKSwgXCIgKi9cIik7XG4gIH1cblxuICAvLyBGb3Igb2xkIElFXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAgKi9cbiAgb3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbn1cbmZ1bmN0aW9uIHJlbW92ZVN0eWxlRWxlbWVudChzdHlsZUVsZW1lbnQpIHtcbiAgLy8gaXN0YW5idWwgaWdub3JlIGlmXG4gIGlmIChzdHlsZUVsZW1lbnQucGFyZW50Tm9kZSA9PT0gbnVsbCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGRvbUFQSShvcHRpb25zKSB7XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoKSB7fSxcbiAgICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge31cbiAgICB9O1xuICB9XG4gIHZhciBzdHlsZUVsZW1lbnQgPSBvcHRpb25zLmluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKTtcbiAgcmV0dXJuIHtcbiAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShvYmopIHtcbiAgICAgIGFwcGx5KHN0eWxlRWxlbWVudCwgb3B0aW9ucywgb2JqKTtcbiAgICB9LFxuICAgIHJlbW92ZTogZnVuY3Rpb24gcmVtb3ZlKCkge1xuICAgICAgcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCk7XG4gICAgfVxuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBkb21BUEk7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gc3R5bGVUYWdUcmFuc2Zvcm0oY3NzLCBzdHlsZUVsZW1lbnQpIHtcbiAgaWYgKHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0KSB7XG4gICAgc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzcztcbiAgfSBlbHNlIHtcbiAgICB3aGlsZSAoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpIHtcbiAgICAgIHN0eWxlRWxlbWVudC5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gICAgfVxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzdHlsZVRhZ1RyYW5zZm9ybTsiLCJtb2R1bGUuZXhwb3J0cyA9IF9fV0VCUEFDS19FWFRFUk5BTF9NT0RVTEVfXzExOV9fOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMjI2X187IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5nID0gKGZ1bmN0aW9uKCkge1xuXHRpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICdvYmplY3QnKSByZXR1cm4gZ2xvYmFsVGhpcztcblx0dHJ5IHtcblx0XHRyZXR1cm4gdGhpcyB8fCBuZXcgRnVuY3Rpb24oJ3JldHVybiB0aGlzJykoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcblx0fVxufSkoKTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwidmFyIHNjcmlwdFVybDtcbmlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmcuaW1wb3J0U2NyaXB0cykgc2NyaXB0VXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5nLmxvY2F0aW9uICsgXCJcIjtcbnZhciBkb2N1bWVudCA9IF9fd2VicGFja19yZXF1aXJlX18uZy5kb2N1bWVudDtcbmlmICghc2NyaXB0VXJsICYmIGRvY3VtZW50KSB7XG5cdGlmIChkb2N1bWVudC5jdXJyZW50U2NyaXB0ICYmIGRvY3VtZW50LmN1cnJlbnRTY3JpcHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpID09PSAnU0NSSVBUJylcblx0XHRzY3JpcHRVcmwgPSBkb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYztcblx0aWYgKCFzY3JpcHRVcmwpIHtcblx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuXHRcdGlmKHNjcmlwdHMubGVuZ3RoKSB7XG5cdFx0XHR2YXIgaSA9IHNjcmlwdHMubGVuZ3RoIC0gMTtcblx0XHRcdHdoaWxlIChpID4gLTEgJiYgKCFzY3JpcHRVcmwgfHwgIS9eaHR0cChzPyk6Ly50ZXN0KHNjcmlwdFVybCkpKSBzY3JpcHRVcmwgPSBzY3JpcHRzW2ktLV0uc3JjO1xuXHRcdH1cblx0fVxufVxuLy8gV2hlbiBzdXBwb3J0aW5nIGJyb3dzZXJzIHdoZXJlIGFuIGF1dG9tYXRpYyBwdWJsaWNQYXRoIGlzIG5vdCBzdXBwb3J0ZWQgeW91IG11c3Qgc3BlY2lmeSBhbiBvdXRwdXQucHVibGljUGF0aCBtYW51YWxseSB2aWEgY29uZmlndXJhdGlvblxuLy8gb3IgcGFzcyBhbiBlbXB0eSBzdHJpbmcgKFwiXCIpIGFuZCBzZXQgdGhlIF9fd2VicGFja19wdWJsaWNfcGF0aF9fIHZhcmlhYmxlIGZyb20geW91ciBjb2RlIHRvIHVzZSB5b3VyIG93biBsb2dpYy5cbmlmICghc2NyaXB0VXJsKSB0aHJvdyBuZXcgRXJyb3IoXCJBdXRvbWF0aWMgcHVibGljUGF0aCBpcyBub3Qgc3VwcG9ydGVkIGluIHRoaXMgYnJvd3NlclwiKTtcbnNjcmlwdFVybCA9IHNjcmlwdFVybC5yZXBsYWNlKC8jLiokLywgXCJcIikucmVwbGFjZSgvXFw/LiokLywgXCJcIikucmVwbGFjZSgvXFwvW15cXC9dKyQvLCBcIi9cIik7XG5fX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBzY3JpcHRVcmw7IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYXZhdGFyLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgQ2hpbGRyZW4sIGNsb25lRWxlbWVudCwgZm9yd2FyZFJlZiwgaXNWYWxpZEVsZW1lbnQsIH0gZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBjb21wb3NlUmVmcygpIHtcbiAgICB2YXIgcmVmcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHJlZnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxudmFyIENvbXBvc2VyID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjb21wb3NlclByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvc2VyIGNhbiBvbmx5IGhhdmUgb25lIGNoaWxkXCIpO1xuICAgIH1cbiAgICB2YXIgaXNWYWxpZENoaWxkID0gaXNWYWxpZEVsZW1lbnQoY2hpbGRBcnJheVswXSk7XG4gICAgaWYgKCFpc1ZhbGlkQ2hpbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hpbGQgc2hvdWxkIGJlIFJlYWN0IG5vZGUhXCIpO1xuICAgIH1cbiAgICB2YXIgY2hpbGQgPSBjaGlsZEFycmF5WzBdO1xuICAgIHZhciBjaGlsZFJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGQpO1xuICAgIHZhciBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGQucHJvcHMpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBtZXJnZWRQcm9wcyksIHsgcmVmOiByZWYgPyBjb21wb3NlUmVmcyhyZWYsIGNoaWxkUmVmKSA6IGNoaWxkUmVmIH0pKTtcbn0pO1xuQ29tcG9zZXIuZGlzcGxheU5hbWUgPSBcIkNvbXBvc2VyXCI7XG5mdW5jdGlvbiBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgICB2YXIgb3ZlcnJpZGVQcm9wcyA9IF9fYXNzaWduKHt9LCBjaGlsZFByb3BzKTtcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICB2YXIgY29tcG9zZXJQcm9wVmFsdWUgPSBjb21wb3NlclByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9zZXJQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb3NlclByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb3NlclByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gY29tcG9zZXJQcm9wVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wVmFsdWUpLCBjaGlsZFByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW2NvbXBvc2VyUHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV1cbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb21wb3NlclByb3BzKSB7XG4gICAgICAgIF9sb29wXzEocHJvcE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcHMpLCBvdmVycmlkZVByb3BzKTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgdmFyIGdldHRlciA9IChfYSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQ7XG4gICAgdmFyIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICAgIH1cbiAgICBnZXR0ZXIgPSAoX2IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZ2V0O1xuICAgIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmKTtcbn1cbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmV4cG9ydCB2YXIgQmFzZUJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuYXNDaGlsZCwgYXNDaGlsZCA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hLCBib3JkZXJDb2xvciA9IHByb3BzLmJvcmRlckNvbG9yLCBfYiA9IHByb3BzLnRleHRDb2xvciwgdGV4dENvbG9yID0gX2IgPT09IHZvaWQgMCA/IFwiYmxhY2tcIiA6IF9iLCByYWRpdXMgPSBwcm9wcy5yYWRpdXMsIGJhY2tncm91bmRDb2xvciA9IHByb3BzLmJhY2tncm91bmRDb2xvciwgX2MgPSBwcm9wcy5zaXplLCBzaXplID0gX2MgPT09IHZvaWQgMCA/IFwibFwiIDogX2MsIHN0eWxlID0gcHJvcHMuc3R5bGUsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgdmFyIGNvbXBvc2VkQ2xhc3NOYW1lID0gXCJudXJpLXRoZW1lIFwiLmNvbmNhdChhc0NoaWxkID8gXCJcIiA6IFwiYmFzZS1iYWRnZVwiLCBcIiBcIikuY29uY2F0KHNpemUsIFwiIGJvcmRlci1cIikuY29uY2F0KGJvcmRlckNvbG9yLCBcIiB0ZXh0LVwiKS5jb25jYXQodGV4dENvbG9yLCBcIiBiYWNrZ3JvdW5kLVwiKS5jb25jYXQoYmFja2dyb3VuZENvbG9yLCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgc3R5bGU6IF9fYXNzaWduKHsgYm9yZGVyUmFkaXVzOiBcIlwiLmNvbmNhdChyYWRpdXMsIFwicHhcIikgfSwgc3R5bGUpLCBjbGFzc05hbWU6IGNvbXBvc2VkQ2xhc3NOYW1lLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hdmF0YXItc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi4vYmFkZ2UvYmFzZS1iYWRnZVwiO1xudmFyIEF2YXRhciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBzaXplID0gcHJvcHMuc2l6ZSwgc3JjID0gcHJvcHMuc3JjLCBhbHQgPSBwcm9wcy5hbHQsIGJhZGdlT3B0aW9uID0gcHJvcHMuYmFkZ2VPcHRpb247XG4gICAgdmFyIF9hID0gdXNlU3RhdGUoZmFsc2UpLCBpc0ltYWdlRG93bmxvYWQgPSBfYVswXSwgc2V0SXNJbWFnZURvd25sb2FkID0gX2FbMV07XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNyYywgYWx0OiBhbHQgIT09IG51bGwgJiYgYWx0ICE9PSB2b2lkIDAgPyBhbHQgOiBcImF2YXRhclwiLCBjbGFzc05hbWU6IFwiYXZhdGFyIFwiLmNvbmNhdChzaXplLCBcIiBcIikuY29uY2F0KCFpc0ltYWdlRG93bmxvYWQgPyBcImhpZGRlblwiIDogXCJcIiksIG9uTG9hZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNJbWFnZURvd25sb2FkKHRydWUpOyB9IH0pLCAhaXNJbWFnZURvd25sb2FkICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBhdmF0YXItc2tlbGV0b24gXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgc2tlbGV0b24tYW5pbWF0aW9uXCIgfSkgfSkpLCBfanN4KEJhc2VCYWRnZSwgeyBhc0NoaWxkOiB0cnVlLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGJhZGdlT3B0aW9uIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9idXR0b24tc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250LmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgQmFzZUJ1dHRvbiA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKF9hLCByZWYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgX2IgPSBfYS5hc0NoaWxkLCBhc0NoaWxkID0gX2IgPT09IHZvaWQgMCA/IGZhbHNlIDogX2IsIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwiYXNDaGlsZFwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImJ1dHRvblwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCBfX2Fzc2lnbih7IHJlZjogcmVmLCBjbGFzc05hbWU6IGFzQ2hpbGQgPyBjbGFzc05hbWUgOiBcImJhc2UtYnV0dG9uIFwiLmNvbmNhdChjbGFzc05hbWUgIT09IG51bGwgJiYgY2xhc3NOYW1lICE9PSB2b2lkIDAgPyBjbGFzc05hbWUgOiBcIlwiKSB9LCBwcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgQmFzZUJ1dHRvbjtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbnZhciBMb2FkaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjb21wb25lbnQtbG9hZGluZy1jb250YWluZXJcIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXJpbmdcIiwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSldIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuL2Jhc2UtYnV0dG9uXCI7XG5pbXBvcnQgTG9hZGluZyBmcm9tIFwiLi4vbG9hZGluZy9sb2FkaW5nXCI7XG52YXIgQ1RBQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLnZhcmlhbnQsIHZhcmlhbnQgPSBfYSA9PT0gdm9pZCAwID8gXCJwcmltYXJ5XCIgOiBfYSwgX2IgPSBwcm9wcy5zaXplLCBzaXplID0gX2IgPT09IHZvaWQgMCA/IFwibVwiIDogX2IsIF9jID0gcHJvcHMuZGlzYWJsZWQsIGRpc2FibGVkID0gX2MgPT09IHZvaWQgMCA/IGZhbHNlIDogX2MsIGljb24gPSBwcm9wcy5pY29uLCBfZCA9IHByb3BzLmxvYWRpbmcsIGxvYWRpbmcgPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZDtcbiAgICByZXR1cm4gKF9qc3goQmFzZUJ1dHRvbiwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGN0YS1idXR0b24gXCIuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogdmFyaWFudCwgXCIgXCIpLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChMb2FkaW5nLCB7fSkpIDogKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2ljb24sIHRleHRdIH0pKSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENUQUJ1dHRvbjtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIE9wdGlvbkJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIG9wdGlvbiA9IHByb3BzLm9wdGlvbjtcbiAgICByZXR1cm4gX2pzeChCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjaGlsZHJlbjogb3B0aW9uIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBPcHRpb25CYWRnZTtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0QmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0O1xuICAgIHJldHVybiAoX2pzeHMoQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgY2hpbGRyZW46IFtpY29uLCBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiB0ZXh0IH0pXSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IEljb25UZXh0QmFkZ2U7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2JhZGdlLXN0eWxlLmNzc1wiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0T3B0aW9uQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0LCBvcHRpb24gPSBwcm9wcy5vcHRpb247XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjbGFzc05hbWU6IFwiaWNvbi10ZXh0LW9wdGlvblwiLCBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSksIG9wdGlvbl0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dE9wdGlvbkJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90YWJsZS1zdHlsZS5jc3NcIjtcbnZhciBUYWJsZVJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRhYmxlXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtcm9vdFwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlSGVhZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuanVzdGlmeSwganVzdGlmeSA9IF9hID09PSB2b2lkIDAgPyBcImNlbnRlclwiIDogX2EsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wianVzdGlmeVwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgcmV0dXJuIChfanN4KFwidGhlYWRcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1oZWFkZXIgXCIuY29uY2F0KGp1c3RpZnksIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKTtcbn07XG52YXIgVGFibGVSb3cgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLXJvd1wiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRyXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xudmFyIFRhYmxlQm9keSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHJldHVybiBfanN4KFwidGJvZHlcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1ib2R5XCIsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KTtcbn07XG52YXIgVGFibGVDZWxsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtcImJhc2UtdGFibGVcIiwgXCJ0YWJsZS1jZWxsXCIsIGNsYXNzTmFtZV0uam9pbihcIiBcIik7XG4gICAgcmV0dXJuIChfanN4KFwidGRcIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMgfSwgcmVzdCwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpKTtcbn07XG5UYWJsZVJvb3QuSGVhZGVyID0gVGFibGVIZWFkZXI7XG5UYWJsZVJvb3QuQm9keSA9IFRhYmxlQm9keTtcblRhYmxlUm9vdC5Sb3cgPSBUYWJsZVJvdztcblRhYmxlUm9vdC5DZWxsID0gVGFibGVDZWxsO1xuZXhwb3J0IGRlZmF1bHQgVGFibGVSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBUYWJsZVJvb3QgZnJvbSBcIi4vYmFzZS10YWJsZVwiO1xuaW1wb3J0IEJhc2VCdXR0b24gZnJvbSBcIi4uL2J1dHRvbi9iYXNlLWJ1dHRvblwiO1xudmFyIERhdGFUYWJsZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciByb3dzID0gcHJvcHMucm93cywgY29sdW1ucyA9IHByb3BzLmNvbHVtbnM7XG4gICAgdmFyIF9hID0gdXNlU3RhdGUocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gKHsgcm93OiByb3csIGhpZGU6IGZhbHNlIH0pOyB9KSksIGRpc3BsYXlSb3dzID0gX2FbMF0sIHNldERpc3BsYXlSb3dzID0gX2FbMV07XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0RGlzcGxheVJvd3Mocm93cy5tYXAoZnVuY3Rpb24gKHJvdykge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgIGhpZGU6IChfYiA9IChfYSA9IGRpc3BsYXlSb3dzLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ucm93LmlkID09PSByb3cuaWQ7IH0pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaGlkZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH0sIFtyb3dzXSk7XG4gICAgcmV0dXJuIChfanN4cyhUYWJsZVJvb3QsIHsgY2hpbGRyZW46IFtfanN4KFRhYmxlUm9vdC5IZWFkZXIsIHsgY2xhc3NOYW1lOiBcImRhdGEtdGFibGVcIiwgY2hpbGRyZW46IF9qc3goVGFibGVSb290LlJvdywgeyBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LkNlbGwsIHsgY2xhc3NOYW1lOiBpdGVtLmhpZGUgPyBcImhpZGVcIiA6IFwiXCIsIGNoaWxkcmVuOiBfanN4KEJhc2VCdXR0b24sIHsgYXNDaGlsZDogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkgeyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gaXRlbS5yb3cpLm9uQ2xpY2tSb3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBpdGVtLnJvdy5pZCk7IH0sIGNoaWxkcmVuOiBpdGVtLnJvdy52YWx1ZSB9KSB9LCBpdGVtLnJvdy5pZCkpO1xuICAgICAgICAgICAgICAgICAgICB9KSB9KSB9KSwgX2pzeChUYWJsZVJvb3QuQm9keSwgeyBjaGlsZHJlbjogY29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LlJvdywgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjbGFzc05hbWU6IGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKS5vbkNsaWNrQ2VsbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LCBjaGlsZHJlbjogY29sdW1uW2l0ZW0ucm93LmlkXS52YWx1ZSB9KSB9LCBpdGVtLnJvdy5pZCkpOyB9KSB9KSk7XG4gICAgICAgICAgICAgICAgfSkgfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGU7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VTdGF0ZSwgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRMYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHJldHVybiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGNoaWxkcmVuOiB0ZXh0IH0pO1xufTtcbnZhciBJbnB1dEZpZWxkID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcGxhY2Vob2xkZXIgPSBwcm9wcy5wbGFjZWhvbGRlciwgbmFtZSA9IHByb3BzLm5hbWUsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2U7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChUZXh0RmllbGRDb250ZXh0KSwgY29udmVydEVycm9yTWVzc2FnZSA9IF9hLmNvbnZlcnRFcnJvck1lc3NhZ2UsIGNvbnZlcnRFcnJvclN0YXRlID0gX2EuY29udmVydEVycm9yU3RhdGUsIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnM7XG4gICAgdmFyIHZhbGlkYXRlSW5wdXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICB2YXIgZmFpbGVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLmZpbmQoZnVuY3Rpb24gKHZhbGlkYXRpb24pIHsgcmV0dXJuICF2YWxpZGF0aW9uLnJ1bGUudGVzdCh2YWx1ZSk7IH0pO1xuICAgICAgICAgICAgaWYgKGZhaWxlZFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlKGZhaWxlZFZhbGlkYXRpb24ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZShcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiaW5wdXRcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlSW5wdXQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgICAgICB9IH0pKTtcbn07XG52YXIgSGVscGVyVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgX2EgPSBwcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hO1xuICAgIHZhciBfYiA9IHVzZUNvbnRleHQoVGV4dEZpZWxkQ29udGV4dCksIGVycm9yTWVzc2FnZSA9IF9iLmVycm9yTWVzc2FnZSwgaXNFcnJvciA9IF9iLmlzRXJyb3I7XG4gICAgdmFyIGVycm9yQ2xhc3NOYW1lID0gaXNFcnJvciA/IFwiZXJyb3JcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoZXJyb3JDbGFzc05hbWUpLCBjaGlsZHJlbjogZXJyb3JNZXNzYWdlICE9PSBudWxsICYmIGVycm9yTWVzc2FnZSAhPT0gdm9pZCAwID8gZXJyb3JNZXNzYWdlIDogdGV4dCB9KSk7XG59O1xudmFyIFRleHRGaWVsZENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICBjb252ZXJ0RXJyb3JTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LFxuICAgIHZhbGlkYXRpb25zOiBbXSxcbiAgICBlcnJvck1lc3NhZ2U6IFwiXCIsXG4gICAgY29udmVydEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKHZhbHVlKSB7IH0sXG59KTtcbnZhciBUZXh0RmllbGRSb290ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnMsIHdpZHRoID0gX2Eud2lkdGg7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUoZmFsc2UpLCBpc0Vycm9yID0gX2JbMF0sIHNldElzRXJyb3IgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VTdGF0ZShcIlwiKSwgZXJyb3JNZXNzYWdlID0gX2NbMF0sIHNldEVycm9yTWVzc2FnZSA9IF9jWzFdO1xuICAgIHZhciBjb252ZXJ0RXJyb3JTdGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzZXRJc0Vycm9yKHZhbHVlKTtcbiAgICB9O1xuICAgIHZhciBjb252ZXJ0RXJyb3JNZXNzYWdlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHNldEVycm9yTWVzc2FnZSh2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcInRleHQtZmllbGQtcm9vdFwiLCBzdHlsZTogeyBkaXNwbGF5OiBcImJsb2NrXCIsIHdpZHRoOiBcIlwiLmNvbmNhdCh3aWR0aCwgXCJweFwiKSB9LCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNFcnJvcjogaXNFcnJvcixcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZTogY29udmVydEVycm9yU3RhdGUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2U6IGNvbnZlcnRFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcblRleHRGaWVsZFJvb3QuVGV4dExhYmVsID0gVGV4dExhYmVsO1xuVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkID0gSW5wdXRGaWVsZDtcblRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCA9IEhlbHBlclRleHQ7XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUZXh0RmllbGRSb290IGZyb20gXCIuL2Jhc2UtdGV4dC1maWVsZFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dEZpZWxkID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIF9iID0gX2Eud2lkdGgsIHdpZHRoID0gX2IgPT09IHZvaWQgMCA/IDM0MyA6IF9iLCBfYyA9IF9hLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlciA9IF9jID09PSB2b2lkIDAgPyBcIlwiIDogX2MsIF9kID0gX2EubmFtZSwgbmFtZSA9IF9kID09PSB2b2lkIDAgPyBcIlwiIDogX2QsIGhlbHBlclRleHQgPSBfYS5oZWxwZXJUZXh0LCBsYWJlbFRleHQgPSBfYS5sYWJlbFRleHQsIG9uQ2hhbmdlID0gX2Eub25DaGFuZ2U7XG4gICAgcmV0dXJuIChfanN4cyhUZXh0RmllbGRSb290LCB7IHZhbGlkYXRpb25zOiBbXSwgd2lkdGg6IHdpZHRoLCBjaGlsZHJlbjogW2xhYmVsVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LlRleHRMYWJlbCwgeyB0ZXh0OiBsYWJlbFRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgbGFiZWxcIiB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0LXdyYXBwZXJcIiwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXRcIiwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogb25DaGFuZ2UgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFRleHRGaWVsZFJvb3QgZnJvbSBcIi4vYmFzZS10ZXh0LWZpZWxkXCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0RmllbGRXaXRoRXJyb3IgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYS53aWR0aCwgd2lkdGggPSBfYiA9PT0gdm9pZCAwID8gMzQzIDogX2IsIF9jID0gX2EucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyID0gX2MgPT09IHZvaWQgMCA/IFwiXCIgOiBfYywgX2QgPSBfYS5uYW1lLCBuYW1lID0gX2QgPT09IHZvaWQgMCA/IFwiXCIgOiBfZCwgaGVscGVyVGV4dCA9IF9hLmhlbHBlclRleHQsIGxhYmVsVGV4dCA9IF9hLmxhYmVsVGV4dCwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucztcbiAgICByZXR1cm4gKF9qc3hzKFRleHRGaWVsZFJvb3QsIHsgd2lkdGg6IHdpZHRoLCB2YWxpZGF0aW9uczogdmFsaWRhdGlvbnMsIGNoaWxkcmVuOiBbbGFiZWxUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuVGV4dExhYmVsLCB7IHRleHQ6IGxhYmVsVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBsYWJlbFwiIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXQtd3JhcHBlclwiLCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRSb290LklucHV0RmllbGQsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dFwiLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiwgaXNFcnJvcjogdHJ1ZSB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRXaXRoRXJyb3I7XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IHZhciB1c2VFeHRlcm5hbFN0YXRlID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHByb3AgPSBfYS5wcm9wLCBoYW5kbGVyID0gX2EuaGFuZGxlciwgZGVmYXVsdFByb3AgPSBfYS5kZWZhdWx0UHJvcDtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcCksIGlubmVyU3RhdGUgPSBfYlswXSwgc2V0SW5uZXJTdGF0ZSA9IF9iWzFdO1xuICAgIHZhciBpc0NvbnRyb2xsZWRCeUV4dGVybmFsID0gcHJvcCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSA9IGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwgPyBwcm9wIDogaW5uZXJTdGF0ZTtcbiAgICB2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAoaGFuZGxlZFZhbHVlKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xsZWRCeUV4dGVybmFsKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGVyID0gaGFuZGxlZFZhbHVlO1xuICAgICAgICAgICAgdmFyIHZhbHVlXzEgPSB0eXBlb2YgaGFuZGxlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IHNldHRlcihwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcClcbiAgICAgICAgICAgICAgICA6IGhhbmRsZWRWYWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIgPT09IG51bGwgfHwgaGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGFuZGxlcih2YWx1ZV8xKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldElubmVyU3RhdGUoaGFuZGxlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBSYWRpb0J1dHRvbiA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBpZCA9IHByb3BzLmlkO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoUmFkaW9Db250ZXh0KSwgc2VsZWN0ZWQgPSBfYS5zZWxlY3RlZCwgb25DaGFuZ2UgPSBfYS5vbkNoYW5nZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KGNsYXNzTmFtZSksIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9uQ2hhbmdlKGlkKTsgfSwgY2hpbGRyZW46IGlkID09PSBzZWxlY3RlZCA/IGNoaWxkcmVuIDogbnVsbCB9KSk7XG59O1xudmFyIFJhZGlvSW5kaWNhdG9yID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBpZCA9IHByb3BzLmlkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIHNlbGVjdGVkID0gdXNlQ29udGV4dChSYWRpb0NvbnRleHQpLnNlbGVjdGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IHR5cGU6IFwicmFkaW9cIiwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KHNlbGVjdGVkID09PSBpZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCIsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hlY2tlZDogc2VsZWN0ZWQgPT09IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBSYWRpb0xhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImxhYmVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb09wdGlvbkdyb3VwID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcInVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBzZWxlY3RlZDogbnVsbCxcbiAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGlkKSB7IH0sXG59KTtcbnZhciBSYWRpb1Jvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsIF9hID0gcHJvcHMuc2VsZWN0ZWQsIHNlbGVjdGVkID0gX2EgPT09IHZvaWQgMCA/IG51bGwgOiBfYSwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlO1xuICAgIHZhciBfYiA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBzZWxlY3RlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IHNlbGVjdGVkLFxuICAgIH0pLCBzZWxlY3RlZElkID0gX2JbMF0sIHNldFNlbGVjdGVkSWQgPSBfYlsxXTtcbiAgICB2YXIgb25DaGFuZ2UgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRJZChpZCk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHNlbGVjdGVkOiBzZWxlY3RlZElkLCBvbkNoYW5nZTogb25DaGFuZ2UsIG9wdGlvbnM6IG9wdGlvbnMgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG5SYWRpb1Jvb3QuSW5kaWNhdG9yID0gUmFkaW9JbmRpY2F0b3I7XG5SYWRpb1Jvb3QuTGFiZWwgPSBSYWRpb0xhYmVsO1xuUmFkaW9Sb290Lk9wdGlvbkdyb3VwID0gUmFkaW9PcHRpb25Hcm91cDtcblJhZGlvUm9vdC5CdXR0b24gPSBSYWRpb0J1dHRvbjtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvUm9vdDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJhZGlvUm9vdCBmcm9tIFwiLi9iYXNlLXJhZGlvXCI7XG5pbXBvcnQgXCIuL3JhZGlvLXN0eWxlLmNzc1wiO1xudmFyIFJhZGlvID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHNlbGVjdGVkID0gcHJvcHMuc2VsZWN0ZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgIHJldHVybiAoX2pzeChSYWRpb1Jvb3QsIHsgb3B0aW9uczogb3B0aW9ucywgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkNoYW5nZTogb25DaGFuZ2UsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5PcHRpb25Hcm91cCwgeyBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tZ3JvdXBcIiwgY2hpbGRyZW46IG9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHsgcmV0dXJuIChfanN4cyhcImxpXCIsIHsgc3R5bGU6IHsgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIGdhcDogXCI2cHhcIiB9LCBjaGlsZHJlbjogW19qc3goUmFkaW9Sb290LkJ1dHRvbiwgeyBpZDogb3B0aW9uLmlkLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5JbmRpY2F0b3IsIHsgaWQ6IG9wdGlvbi5pZCwgYXNDaGlsZDogdHJ1ZSwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWluZGljYXRvclwiLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7fSkgfSkgfSksIF9qc3goUmFkaW9Sb290LkxhYmVsLCB7IGlkOiBvcHRpb24uaWQsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1sYWJlbFwiLCBjaGlsZHJlbjogb3B0aW9uLmxhYmVsIH0pXSB9LCBvcHRpb24uaWQpKTsgfSkgfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiZXhwb3J0IGRlZmF1bHQgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gKyBcImFzc2V0cy9jaGVjay40NWY2NWViMmJiZjQyM2Q3YTQ1OWExOTQyOWQyM2FlMC5zdmdcIjsiLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUV4dGVybmFsU3RhdGUgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9ob29rcy91c2VFeHRlcm5hbFN0YXRlXCI7XG5pbXBvcnQgXCIuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbmltcG9ydCBDb21wb3NlciBmcm9tIFwiLi4vY29yZS9jb21wb3NlclwiO1xudmFyIENoZWNrQm94TGFiZWwgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW47XG4gICAgdmFyIGlkID0gdXNlQ29udGV4dChDaGVja0JveENvbnRleHQpLmlkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJsYWJlbFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJiYXNlLWNoZWNrLWJveCBsYWJlbFwiLCBodG1sRm9yOiBpZCwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG52YXIgQ2hlY2tCb3hJbnB1dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJhc0NoaWxkXCIsIFwiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoQ2hlY2tCb3hDb250ZXh0KSwgY2hlY2tlZCA9IF9hLmNoZWNrZWQsIHRvZ2dsZUNoZWNrZWQgPSBfYS50b2dnbGVDaGVja2VkLCBpZCA9IF9hLmlkLCBkaXNhYmxlZCA9IF9hLmRpc2FibGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCBfX2Fzc2lnbih7IHR5cGU6IFwiY2hlY2tib3hcIiwgY2hlY2tlZDogY2hlY2tlZCwgb25DaGFuZ2U6IHRvZ2dsZUNoZWNrZWQsIG9uQ2xpY2s6IHRvZ2dsZUNoZWNrZWQsIGlkOiBpZCwgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIiwgXCIgXCIpLmNvbmNhdChkaXNhYmxlZCA/IFwiZGlzYWJsZWRcIiA6IFwiXCIpIH0sIHJlc3QsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59O1xudmFyIENoZWNrQm94Q29udGV4dCA9IGNyZWF0ZUNvbnRleHQoe1xuICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIHRvZ2dsZUNoZWNrZWQ6IGZ1bmN0aW9uICgpIHsgfSxcbiAgICBpZDogXCJcIixcbiAgICBkaXNhYmxlZDogZmFsc2UsXG59KTtcbnZhciBDaGVja0JveFJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgZXh0ZXJuYWxDaGVja2VkID0gcHJvcHMuY2hlY2tlZCwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCBpZCA9IHByb3BzLmlkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBkaXNhYmxlZCA9IHByb3BzLmRpc2FibGVkO1xuICAgIHZhciBfYSA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBleHRlcm5hbENoZWNrZWQsXG4gICAgICAgIGhhbmRsZXI6IGV4dGVybmFsT25DaGFuZ2UsXG4gICAgICAgIGRlZmF1bHRQcm9wOiBleHRlcm5hbENoZWNrZWQgIT09IG51bGwgJiYgZXh0ZXJuYWxDaGVja2VkICE9PSB2b2lkIDAgPyBleHRlcm5hbENoZWNrZWQgOiBmYWxzZSxcbiAgICB9KSwgY2hlY2tlZCA9IF9hWzBdLCBzZXRDaGVja2VkID0gX2FbMV07XG4gICAgdmFyIHRvZ2dsZUNoZWNrZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNldENoZWNrZWQoZnVuY3Rpb24gKHByZXYpIHsgcmV0dXJuICFwcmV2OyB9KTtcbiAgICB9O1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjaGVjay1ib3gtcm9vdFwiLCBjaGlsZHJlbjogX2pzeChDaGVja0JveENvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHsgY2hlY2tlZDogY2hlY2tlZCwgdG9nZ2xlQ2hlY2tlZDogdG9nZ2xlQ2hlY2tlZCwgaWQ6IGlkLCBkaXNhYmxlZDogZGlzYWJsZWQgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pIH0pKTtcbn07XG5DaGVja0JveFJvb3QuTGFiZWwgPSBDaGVja0JveExhYmVsO1xuQ2hlY2tCb3hSb290LklucHV0ID0gQ2hlY2tCb3hJbnB1dDtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94Um9vdDtcbiIsInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xuaW1wb3J0IGNoZWNrIGZyb20gXCIuLi8uLi9hc3NldHMvaWNvbnMvY2hlY2suc3ZnXCI7XG5pbXBvcnQgQ2hlY2tCb3hSb290IGZyb20gXCIuL2Jhc2UtY2hlY2stYm94XCI7XG52YXIgQ2hlY2tCb3ggPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hlY2tlZCA9IHByb3BzLmNoZWNrZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIGxhYmVsID0gcHJvcHMubGFiZWwsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoZWNrZWRcIiwgXCJvbkNoYW5nZVwiLCBcImxhYmVsXCJdKTtcbiAgICByZXR1cm4gKF9qc3goQ2hlY2tCb3hSb290LCB7IGlkOiBcImNoZWNrLWJveFwiLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2hlY2stYm94XCIsIGNoaWxkcmVuOiBbX2pzeChDaGVja0JveFJvb3QuSW5wdXQsIHsgYXNDaGlsZDogdHJ1ZSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBjaGVjay1ib3gtaW5wdXRcIiwgY2hpbGRyZW46IF9qc3goXCJpbWdcIiwgeyBzcmM6IGNoZWNrLCBhbHQ6IFwiY2hlY2tcIiB9KSB9KSB9KSwgX2pzeChDaGVja0JveFJvb3QuTGFiZWwsIHsgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQ2hlY2tCb3g7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL3RleHQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbmltcG9ydCBcIi4uLy4uLy4uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIjtcbnZhciBUZXh0ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBzaXplID0gcHJvcHMuc2l6ZSwgd2VpZ2h0ID0gcHJvcHMud2VpZ2h0LCBjb2xvciA9IHByb3BzLmNvbG9yLCB0ZXh0QWxpZ24gPSBwcm9wcy50ZXh0QWxpZ24sIHRleHREZWNvcmF0aW9uID0gcHJvcHMudGV4dERlY29yYXRpb24sIHdvcmRCcmVhayA9IHByb3BzLndvcmRCcmVhaywgd2hpdGVTcGFjZSA9IHByb3BzLndoaXRlU3BhY2UsIGFzID0gcHJvcHMuYXMsIHN0eWxlID0gcHJvcHMuc3R5bGU7XG4gICAgdmFyIENvbXAgPSBhcyA/IGFzIDogXCJwXCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgYmFzZS10ZXh0IFwiLmNvbmNhdCgvXlxcZCt4bCQvLnRlc3Qoc2l6ZSkgPyBcInQtXCIuY29uY2F0KHNpemUpIDogc2l6ZSwgXCIgXCIpLmNvbmNhdCh3ZWlnaHQsIFwiIHRleHRBbGlnbi1cIikuY29uY2F0KHRleHRBbGlnbiwgXCIgdGV4dERlY29yYXRpb24tXCIpLmNvbmNhdCh0ZXh0RGVjb3JhdGlvbiwgXCIgd29yZEJyZWFrLVwiKS5jb25jYXQod29yZEJyZWFrLCBcIiB3aGl0ZVNwYWNlLVwiKS5jb25jYXQod2hpdGVTcGFjZSwgXCIgXCIpLmNvbmNhdChjb2xvciA/IFwiY29sb3ItXCIuY29uY2F0KGNvbG9yKSA6IFwiXCIpLCBzdHlsZTogc3R5bGUsIGNoaWxkcmVuOiB0ZXh0IH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBBdmF0YXIgfSBmcm9tIFwiLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXJcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ1RBQnV0dG9uIH0gZnJvbSBcIi4vY29tcG9uZW50cy9idXR0b24vY3RhLWJ1dHRvblwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBPcHRpb25CYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2Uvb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEljb25UZXh0QmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uVGV4dE9wdGlvbkJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtb3B0aW9uLWJhZGdlXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIERhdGFUYWJsZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvdGFibGUvZGF0YS10YWJsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0RmllbGQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0RmllbGRXaXRoRXJyb3IgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC13aXRoLWVycm9yXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFJhZGlvIH0gZnJvbSBcIi4vY29tcG9uZW50cy9yYWRpby9yYWRpb1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0IH0gZnJvbSBcIi4vY29tcG9uZW50cy9lbGVtZW50cy90ZXh0L3RleHRcIjtcbiJdLCJuYW1lcyI6WyJfX2Fzc2lnbiIsIk9iamVjdCIsImFzc2lnbiIsInQiLCJzIiwiaSIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJwIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJfX3Jlc3QiLCJlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiQ2hpbGRyZW4iLCJjbG9uZUVsZW1lbnQiLCJmb3J3YXJkUmVmIiwiaXNWYWxpZEVsZW1lbnQiLCJjb21wb3NlUmVmcyIsInJlZnMiLCJfaSIsIm5vZGUiLCJmb3JFYWNoIiwicmVmIiwiY3VycmVudCIsIkNvbXBvc2VyIiwiX2EiLCJjaGlsZHJlbiIsImNvbXBvc2VyUHJvcHMiLCJjaGlsZEFycmF5IiwidG9BcnJheSIsIkVycm9yIiwiaXNWYWxpZENoaWxkIiwiY2hpbGQiLCJjaGlsZFJlZiIsImdldEVsZW1lbnRSZWYiLCJtZXJnZWRQcm9wcyIsIm1lcmdlUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwiY2hpbGRQcm9wcyIsIm92ZXJyaWRlUHJvcHMiLCJfbG9vcF8xIiwicHJvcE5hbWUiLCJjb21wb3NlclByb3BWYWx1ZSIsImNoaWxkUHJvcFZhbHVlIiwiaXNIYW5kbGVyIiwidGVzdCIsImFyZ3MiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsImVsZW1lbnQiLCJfYiIsImdldHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImdldCIsIm1heVdhcm4iLCJpc1JlYWN0V2FybmluZyIsImpzeCIsIl9qc3giLCJCYXNlQmFkZ2UiLCJhc0NoaWxkIiwiYm9yZGVyQ29sb3IiLCJ0ZXh0Q29sb3IiLCJyYWRpdXMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJfYyIsInNpemUiLCJzdHlsZSIsImNsYXNzTmFtZSIsIkNvbXAiLCJjb21wb3NlZENsYXNzTmFtZSIsImNvbmNhdCIsImJvcmRlclJhZGl1cyIsImpzeHMiLCJfanN4cyIsInVzZVN0YXRlIiwiQXZhdGFyIiwic3JjIiwiYWx0IiwiYmFkZ2VPcHRpb24iLCJpc0ltYWdlRG93bmxvYWQiLCJzZXRJc0ltYWdlRG93bmxvYWQiLCJvbkxvYWQiLCJwb3NpdGlvbiIsInJpZ2h0IiwiYm90dG9tIiwiQmFzZUJ1dHRvbiIsIkxvYWRpbmciLCJGcmFnbWVudCIsIl9GcmFnbWVudCIsIkNUQUJ1dHRvbiIsInRleHQiLCJ2YXJpYW50IiwiZGlzYWJsZWQiLCJpY29uIiwiX2QiLCJsb2FkaW5nIiwiT3B0aW9uQmFkZ2UiLCJvcHRpb24iLCJJY29uVGV4dEJhZGdlIiwiSWNvblRleHRPcHRpb25CYWRnZSIsIlRhYmxlUm9vdCIsIlRhYmxlSGVhZGVyIiwianVzdGlmeSIsInJlc3QiLCJUYWJsZVJvdyIsImNsYXNzTmFtZXMiLCJUYWJsZUJvZHkiLCJUYWJsZUNlbGwiLCJIZWFkZXIiLCJCb2R5IiwiUm93IiwiQ2VsbCIsInVzZUVmZmVjdCIsIkRhdGFUYWJsZSIsInJvd3MiLCJjb2x1bW5zIiwibWFwIiwicm93IiwiaGlkZSIsImRpc3BsYXlSb3dzIiwic2V0RGlzcGxheVJvd3MiLCJmaW5kIiwiaXRlbSIsImlkIiwib25DbGljayIsIm9uQ2xpY2tSb3ciLCJ2YWx1ZSIsImNvbHVtbiIsIm9uQ2xpY2tDZWxsIiwiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJUZXh0TGFiZWwiLCJJbnB1dEZpZWxkIiwicGxhY2Vob2xkZXIiLCJuYW1lIiwib25DaGFuZ2UiLCJUZXh0RmllbGRDb250ZXh0IiwiY29udmVydEVycm9yTWVzc2FnZSIsImNvbnZlcnRFcnJvclN0YXRlIiwidmFsaWRhdGlvbnMiLCJ2YWxpZGF0ZUlucHV0IiwiZmFpbGVkVmFsaWRhdGlvbiIsInZhbGlkYXRpb24iLCJydWxlIiwibWVzc2FnZSIsInRhcmdldCIsIkhlbHBlclRleHQiLCJlcnJvck1lc3NhZ2UiLCJpc0Vycm9yIiwiZXJyb3JDbGFzc05hbWUiLCJUZXh0RmllbGRSb290Iiwid2lkdGgiLCJzZXRJc0Vycm9yIiwic2V0RXJyb3JNZXNzYWdlIiwiZGlzcGxheSIsIlByb3ZpZGVyIiwiVGV4dEZpZWxkIiwiaGVscGVyVGV4dCIsImxhYmVsVGV4dCIsIlRleHRGaWVsZFdpdGhFcnJvciIsInVzZUV4dGVybmFsU3RhdGUiLCJwcm9wIiwiaGFuZGxlciIsImRlZmF1bHRQcm9wIiwiaW5uZXJTdGF0ZSIsInNldElubmVyU3RhdGUiLCJpc0NvbnRyb2xsZWRCeUV4dGVybmFsIiwidW5kZWZpbmVkIiwic2V0VmFsdWUiLCJoYW5kbGVkVmFsdWUiLCJzZXR0ZXIiLCJ2YWx1ZV8xIiwiUmFkaW9CdXR0b24iLCJSYWRpb0NvbnRleHQiLCJzZWxlY3RlZCIsIlJhZGlvSW5kaWNhdG9yIiwidHlwZSIsImNoZWNrZWQiLCJSYWRpb0xhYmVsIiwiUmFkaW9PcHRpb25Hcm91cCIsIm9wdGlvbnMiLCJSYWRpb1Jvb3QiLCJleHRlcm5hbE9uQ2hhbmdlIiwic2VsZWN0ZWRJZCIsInNldFNlbGVjdGVkSWQiLCJJbmRpY2F0b3IiLCJMYWJlbCIsIk9wdGlvbkdyb3VwIiwiQnV0dG9uIiwiUmFkaW8iLCJhbGlnbkl0ZW1zIiwiZ2FwIiwibGFiZWwiLCJDaGVja0JveExhYmVsIiwiQ2hlY2tCb3hDb250ZXh0IiwiaHRtbEZvciIsIkNoZWNrQm94SW5wdXQiLCJ0b2dnbGVDaGVja2VkIiwiQ2hlY2tCb3hSb290IiwiZXh0ZXJuYWxDaGVja2VkIiwic2V0Q2hlY2tlZCIsInByZXYiLCJJbnB1dCIsImNoZWNrIiwiQ2hlY2tCb3giLCJUZXh0Iiwid2VpZ2h0IiwiY29sb3IiLCJ0ZXh0QWxpZ24iLCJ0ZXh0RGVjb3JhdGlvbiIsIndvcmRCcmVhayIsIndoaXRlU3BhY2UiLCJhcyIsImRlZmF1bHQiLCJDaGVja2JveCJdLCJzb3VyY2VSb290IjoiIn0=
2754
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sMEdBQTBHLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE1BQU0sS0FBSyxZQUFZLGFBQWEsTUFBTSxLQUFLLFlBQVksYUFBYSxNQUFNLEtBQUssWUFBWSxhQUFhLE9BQU8sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE9BQU8sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sTUFBTSxLQUFLLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssWUFBWSxNQUFNLEtBQUssVUFBVSxNQUFNLE1BQU0sS0FBSyxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxLQUFLLFlBQVksTUFBTSxNQUFNLEtBQUssS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0sS0FBSyxZQUFZLE1BQU0s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QUM2SSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM3SSxNQUFNLENBQUN5SSxLQUFLLEdBQUcsUUFBUSxDQUFDekksTUFBTSxDQUFDeUksS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQUU3SSxLQUFLLEVBQUVBLEtBQUs7SUFBRTFDLFFBQVEsRUFBRWtFO0VBQUssQ0FBQyxDQUFDO0FBQ3pXLENBQUM7QUFDRCxnREFBZW1ILElBQUk7O0FDVDRDO0FBQ087QUFDRztBQUNLO0FBQ2E7QUFDdEI7QUFDSztBQUNvQjtBQUNsQztBQUNXIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svdW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbiIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3MiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8tc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9mb250LmNzcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzIiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qcyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL2V4dGVybmFsIHVtZCB7XCJyb290XCI6XCJSZWFjdFwiLFwiY29tbW9uanMyXCI6XCJyZWFjdFwiLFwiY29tbW9uanNcIjpcInJlYWN0XCIsXCJhbWRcIjpcInJlYWN0XCIsXCJ1bWRcIjpcInJlYWN0XCJ9Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS9leHRlcm5hbCB1bWQge1wicm9vdFwiOlwianN4LXJ1bnRpbWVcIixcImNvbW1vbmpzMlwiOlwicmVhY3QvanN4LXJ1bnRpbWVcIixcImNvbW1vbmpzXCI6XCJyZWFjdC9qc3gtcnVudGltZVwiLFwiYW1kXCI6XCJyZWFjdC9qc3gtcnVudGltZVwiLFwidW1kXCI6XCJyZWFjdC9qc3gtcnVudGltZVwifSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtL3dlYnBhY2svcnVudGltZS9ub25jZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzPzc2MDEiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jb3JlL2NvbXBvc2VyL2luZGV4LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2Jhc2UtYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYXZhdGFyL2F2YXRhci50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzcz9lOWY3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL3N0eWxlcy90b2tlbi9jb2xvci5jc3M/NjZjYSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9zdHlsZXMvdG9rZW4vZm9udC5jc3M/NzZiYiIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2J1dHRvbi9iYXNlLWJ1dHRvbi50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmctc3R5bGUuY3NzP2IzOTkiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYnV0dG9uL2N0YS1idXR0b24udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvYmFkZ2Uvb3B0aW9uLWJhZGdlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1iYWRnZS50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9iYWRnZS9iYWRnZS1zdHlsZS5jc3M/NGE4NyIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2JhZGdlL2ljb24tdGV4dC1vcHRpb24tYmFkZ2UudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzP2I3MmUiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy90YWJsZS9iYXNlLXRhYmxlLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RhYmxlL2RhdGEtdGFibGUudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLXN0eWxlLmNzcz83Y2M3Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC9iYXNlLXRleHQtZmllbGQudHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3RleHQtZmllbGQvdGV4dC1maWVsZC13aXRoLWVycm9yLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9oZWxwZXJzL2hvb2tzL3VzZUV4dGVybmFsU3RhdGUudHMiLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9yYWRpby9iYXNlLXJhZGlvLnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzcz9mNWQ5Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvcmFkaW8vcmFkaW8udHN4Iiwid2VicGFjazovL0BudXJpaGF1cy93ZWItZGVzaWduLXN5c3RlbS8uL2NvbXBvbmVudHMvY2hlY2stYm94L2NoZWNrLWJveC1zdHlsZS5jc3M/NDZlZSIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2NoZWNrLWJveC9iYXNlLWNoZWNrLWJveC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LnRzeCIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3M/ZDg3YiIsIndlYnBhY2s6Ly9AbnVyaWhhdXMvd2ViLWRlc2lnbi1zeXN0ZW0vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC50c3giLCJ3ZWJwYWNrOi8vQG51cmloYXVzL3dlYi1kZXNpZ24tc3lzdGVtLy4vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZShcInJlYWN0L2pzeC1ydW50aW1lXCIpLCByZXF1aXJlKFwicmVhY3RcIikpO1xuXHRlbHNlIGlmKHR5cGVvZiBkZWZpbmUgPT09ICdmdW5jdGlvbicgJiYgZGVmaW5lLmFtZClcblx0XHRkZWZpbmUoW1wicmVhY3QvanN4LXJ1bnRpbWVcIiwgXCJyZWFjdFwiXSwgZmFjdG9yeSk7XG5cdGVsc2Uge1xuXHRcdHZhciBhID0gdHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnID8gZmFjdG9yeShyZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIiksIHJlcXVpcmUoXCJyZWFjdFwiKSkgOiBmYWN0b3J5KHJvb3RbXCJqc3gtcnVudGltZVwiXSwgcm9vdFtcIlJlYWN0XCJdKTtcblx0XHRmb3IodmFyIGkgaW4gYSkgKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyA/IGV4cG9ydHMgOiByb290KVtpXSA9IGFbaV07XG5cdH1cbn0pKHNlbGYsIChfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18yMjZfXywgX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMTE5X18pID0+IHtcbnJldHVybiAiLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmF2YXRhciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgJiBkaXYge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgfVxuXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcblxuICAmOndoZXJlKC54bCkge1xuICAgIHdpZHRoOiAxMjRweDtcbiAgICBoZWlnaHQ6IDEyNHB4O1xuICB9XG5cbiAgJjp3aGVyZSgubCkge1xuICAgIHdpZHRoOiA3NHB4O1xuICAgIGhlaWdodDogNzRweDtcbiAgfVxuXG4gICY6d2hlcmUoLm0pIHtcbiAgICB3aWR0aDogNThweDtcbiAgICBoZWlnaHQ6IDU4cHg7XG4gIH1cblxuICAmOndoZXJlKC5zKSB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICB9XG5cbiAgLmF2YXRhci1za2VsZXRvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAuc2tlbGV0b24tYW5pbWF0aW9uIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICA5MGRlZyxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpIDUwJSxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXG4gICAgICApO1xuICAgICAgYW5pbWF0aW9uOiBzaGltbWVyIDEuNXMgaW5maW5pdGU7XG4gICAgfVxuICB9XG59XG5cbkBrZXlmcmFtZXMgc2hpbW1lciB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2F2YXRhci9hdmF0YXItc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0Usa0JBQWtCO0VBQ2xCO0lBQ0Usa0JBQWtCO0lBQ2xCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLGdCQUFnQjtFQUNsQjs7RUFFQSxrQkFBa0I7O0VBRWxCO0lBQ0UsWUFBWTtJQUNaLGFBQWE7RUFDZjs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0VBQ2Q7O0VBRUE7SUFDRSxXQUFXO0lBQ1gsWUFBWTtFQUNkOztFQUVBO0lBQ0UsV0FBVztJQUNYLFlBQVk7RUFDZDs7RUFFQTtJQUNFLGtCQUFrQjtJQUNsQixNQUFNO0lBQ04sT0FBTztJQUNQLFdBQVc7SUFDWCxZQUFZO0lBQ1oseUJBQXlCO0lBQ3pCLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWTs7SUFFWjtNQUNFLFdBQVc7TUFDWCxZQUFZO01BQ1o7Ozs7O09BS0M7TUFDRCxnQ0FBZ0M7SUFDbEM7RUFDRjtBQUNGOztBQUVBO0VBQ0U7SUFDRSw0QkFBNEI7RUFDOUI7RUFDQTtJQUNFLDJCQUEyQjtFQUM3QjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5hdmF0YXIge1xcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xcbiAgJiBkaXYge1xcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xcbiAgfVxcblxcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgd2lkdGg6IDEyNHB4O1xcbiAgICBoZWlnaHQ6IDEyNHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICB3aWR0aDogNzRweDtcXG4gICAgaGVpZ2h0OiA3NHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgubSkge1xcbiAgICB3aWR0aDogNThweDtcXG4gICAgaGVpZ2h0OiA1OHB4O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICB3aWR0aDogNDBweDtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcbiAgfVxcblxcbiAgLmF2YXRhci1za2VsZXRvbiB7XFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gICAgdG9wOiAwO1xcbiAgICBsZWZ0OiAwO1xcbiAgICB3aWR0aDogMTAwJTtcXG4gICAgaGVpZ2h0OiAxMDAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTBlMGUwO1xcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICAgIHdpZHRoOiAxMDAlO1xcbiAgICBoZWlnaHQ6IDEwMCU7XFxuXFxuICAgIC5za2VsZXRvbi1hbmltYXRpb24ge1xcbiAgICAgIHdpZHRoOiAxMDAlO1xcbiAgICAgIGhlaWdodDogMTAwJTtcXG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXFxuICAgICAgICA5MGRlZyxcXG4gICAgICAgIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsXFxuICAgICAgICByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkgNTAlLFxcbiAgICAgICAgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlXFxuICAgICAgKTtcXG4gICAgICBhbmltYXRpb246IHNoaW1tZXIgMS41cyBpbmZpbml0ZTtcXG4gICAgfVxcbiAgfVxcbn1cXG5cXG5Aa2V5ZnJhbWVzIHNoaW1tZXIge1xcbiAgMCUge1xcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwMCUpO1xcbiAgfVxcbiAgMTAwJSB7XFxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS1iYWRnZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBnYXA6IDRweDtcblxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xuXG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG5cbiAgJjp3aGVyZSgubSkge1xuICAgIGhlaWdodDogNDBweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5yKSB7XG4gICAgaGVpZ2h0OiAzNnB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuXG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDMycHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XG4gIH1cblxuICAmOndoZXJlKC5zbSkge1xuICAgIGhlaWdodDogMjhweDtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhzbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJiYWNrZ3JvdW5kLVwiXSB7XG4gICAgJi5iYWNrZ3JvdW5kLWJsYWNrIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xuICAgIH1cbiAgICAmLmJhY2tncm91bmQtd2hpdGUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuYmFja2dyb3VuZC1ncmF5RmEge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi5iYWNrZ3JvdW5kLXB1cnBsZTM5IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0LVwiXSB7XG4gICAgJi50ZXh0LWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi50ZXh0LXdoaXRlIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICB9XG4gICAgJi50ZXh0LWdyYXlGYSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiYm9yZGVyLVwiXSB7XG4gICAgJi5ib3JkZXItYmxhY2sge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XG4gICAgfVxuICAgICYuYm9yZGVyLXdoaXRlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICAgIH1cbiAgICAmLmJvcmRlci1ncmF5RmEge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcbiAgICB9XG4gICAgJi5ib3JkZXItZ3JheUU0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuYm9yZGVyLXB1cnBsZTM5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgfVxuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgcGFkZGluZzogMCAyMHB4O1xuICB9XG5cbiAgJi5pY29uLXRleHQtb3B0aW9uID4gc3BhbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvYmFkZ2UvYmFkZ2Utc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsUUFBUTs7RUFFUixtQkFBbUI7O0VBRW5CO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLHdDQUF3QztFQUMxQzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyx3Q0FBd0M7RUFDMUM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDOztFQUVBO0lBQ0UsWUFBWTs7SUFFWiw4QkFBOEI7SUFDOUIsa0NBQWtDO0lBQ2xDLG9DQUFvQztFQUN0Qzs7RUFFQTtJQUNFLFlBQVk7O0lBRVosK0JBQStCO0lBQy9CLG1DQUFtQztJQUNuQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRTtNQUNFLDRDQUE0QztJQUM5QztJQUNBO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtFQUNGOztFQUVBO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7RUFDRjs7RUFFQTtJQUNFO01BQ0UsNENBQTRDO0lBQzlDO0lBQ0E7TUFDRSw0Q0FBNEM7SUFDOUM7SUFDQTtNQUNFLDhDQUE4QztJQUNoRDtJQUNBO01BQ0UsOENBQThDO0lBQ2hEO0lBQ0E7TUFDRSw4Q0FBOEM7SUFDaEQ7RUFDRjs7RUFFQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsOEJBQThCOztJQUU5QixlQUFlO0VBQ2pCOztFQUVBO0lBQ0UsYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixRQUFRO0VBQ1Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1iYWRnZSB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgZ2FwOiA0cHg7XFxuXFxuICBib3JkZXItcmFkaXVzOiA0MHB4O1xcblxcbiAgJjp3aGVyZSgubCkge1xcbiAgICBoZWlnaHQ6IDQ4cHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLm0pIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogMzZweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgucykge1xcbiAgICBoZWlnaHQ6IDMycHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSguc20pIHtcXG4gICAgaGVpZ2h0OiAyOHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJhY2tncm91bmQtXFxcIl0ge1xcbiAgICAmLmJhY2tncm91bmQtYmxhY2sge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYuYmFja2dyb3VuZC13aGl0ZSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5iYWNrZ3JvdW5kLWdyYXlGYSB7XFxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWZhKTtcXG4gICAgfVxcbiAgICAmLmJhY2tncm91bmQtcHVycGxlMzkge1xcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0LVxcXCJdIHtcXG4gICAgJi50ZXh0LWJsYWNrIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ibGFjayk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXdoaXRlIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LWdyYXlGYSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi50ZXh0LXB1cnBsZTM5IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImJvcmRlci1cXFwiXSB7XFxuICAgICYuYm9yZGVyLWJsYWNrIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci13aGl0ZSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIH1cXG4gICAgJi5ib3JkZXItZ3JheUZhIHtcXG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xcbiAgICB9XFxuICAgICYuYm9yZGVyLWdyYXlFNCB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgfVxcbiAgICAmLmJvcmRlci1wdXJwbGUzOSB7XFxuICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgfVxcbiAgfVxcblxcbiAgJi5pY29uLXRleHQtb3B0aW9uIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xcblxcbiAgICBwYWRkaW5nOiAwIDIwcHg7XFxuICB9XFxuXFxuICAmLmljb24tdGV4dC1vcHRpb24gPiBzcGFuIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgZ2FwOiA0cHg7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtYnV0dG9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBib3JkZXI6IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN0YS1idXR0b24ge1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG5cbiAgJjp3aGVyZSgucHJpbWFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xuICB9XG4gICY6d2hlcmUoLnNlY29uZGFyeSkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZ2hvc3QpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLndoaXRlKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XG4gIH1cbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZTQpO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcbiAgfVxuXG4gICY6d2hlcmUoLnhsKSB7XG4gICAgaGVpZ2h0OiA2MHB4O1xuXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtbGcpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmwpIHtcbiAgICBoZWlnaHQ6IDU0cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnIpIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLm0pIHtcbiAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLnMpIHtcbiAgICBoZWlnaHQ6IDQwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbiAgJjp3aGVyZSgueHMpIHtcbiAgICBoZWlnaHQ6IDMwcHg7XG5cbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC14c20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLFNBQVM7RUFDVCxrQkFBa0I7RUFDbEIsWUFBWTtFQUNaLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxrQkFBa0I7O0VBRWxCO0lBQ0UsOENBQThDO0lBQzlDLGlDQUFpQztFQUNuQztFQUNBO0lBQ0UsOENBQThDO0lBQzlDLG1DQUFtQztFQUNyQztFQUNBO0lBQ0UsNENBQTRDO0lBQzVDLDhDQUE4QztJQUM5QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDRDQUE0QztJQUM1QyxtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDhDQUE4QztJQUM5QyxpQ0FBaUM7RUFDbkM7O0VBRUE7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLGdDQUFnQztJQUNoQyxvQ0FBb0M7SUFDcEMsb0NBQW9DO0VBQ3RDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxZQUFZOztJQUVaLCtCQUErQjtJQUMvQixtQ0FBbUM7SUFDbkMsd0NBQXdDO0VBQzFDO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtYnV0dG9uIHtcXG4gIGRpc3BsYXk6IGZsZXg7XFxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XFxuICBnYXA6IDEwcHg7XFxuICBib3JkZXItcmFkaXVzOiA2cHg7XFxuICBib3JkZXI6IG5vbmU7XFxuICBjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5jdGEtYnV0dG9uIHtcXG4gIGJvcmRlci1yYWRpdXM6IDZweDtcXG5cXG4gICY6d2hlcmUoLnByaW1hcnkpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcbiAgJjp3aGVyZSguc2Vjb25kYXJ5KSB7XFxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS1mNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZ2hvc3QpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgud2hpdGUpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSguZGlzYWJsZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktd2hpdGUpO1xcbiAgfVxcblxcbiAgJjp3aGVyZSgueGwpIHtcXG4gICAgaGVpZ2h0OiA2MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1sZyk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmwpIHtcXG4gICAgaGVpZ2h0OiA1NHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5yKSB7XFxuICAgIGhlaWdodDogNDhweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtc2VtaWJvbGQpO1xcbiAgfVxcbiAgJjp3aGVyZSgubSkge1xcbiAgICBoZWlnaHQ6IDUwcHg7XFxuXFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnMpIHtcXG4gICAgaGVpZ2h0OiA0MHB4O1xcblxcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhzKSB7XFxuICAgIGhlaWdodDogMzBweDtcXG5cXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhzbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtY2hlY2stYm94IHtcbiAgJi5sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuXG4uY2hlY2stYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAxMHB4O1xufVxuXG4uY2hlY2stYm94LWlucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHdpZHRoOiAyNHB4O1xuICBoZWlnaHQ6IDI0cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuXG4gICY6d2hlcmUoLnVuY2hlY2tlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIH1cblxuICAmOndoZXJlKC5jaGVja2VkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcbiAgfVxuXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy9jaGVjay1ib3gvY2hlY2stYm94LXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsOEJBQThCO0lBQzlCLHNDQUFzQztJQUN0QyxpQ0FBaUM7RUFDbkM7QUFDRjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsU0FBUztBQUNYOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsZ0RBQWdEOztFQUVoRDtJQUNFLHNCQUFzQjtFQUN4Qjs7RUFFQTtJQUNFLDhDQUE4QztFQUNoRDs7RUFFQTtJQUNFLFlBQVk7SUFDWiw4Q0FBOEM7RUFDaEQ7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS1jaGVjay1ib3gge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XFxuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcXG4gIH1cXG59XFxuXFxuLmNoZWNrLWJveCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGdhcDogMTBweDtcXG59XFxuXFxuLmNoZWNrLWJveC1pbnB1dCB7XFxuICBkaXNwbGF5OiBmbGV4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbiAgd2lkdGg6IDI0cHg7XFxuICBoZWlnaHQ6IDI0cHg7XFxuICBib3JkZXItcmFkaXVzOiA0cHg7XFxuICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXBvaW50LXB1cnBsZS0zOSk7XFxuXFxuICAmOndoZXJlKC51bmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmNoZWNrZWQpIHtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcG9pbnQtcHVycGxlLTM5KTtcXG4gIH1cXG5cXG4gICY6d2hlcmUoLmRpc2FibGVkKSB7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWQ0KTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuYmFzZS10ZXh0IHtcbiAgJjp3aGVyZSgueHNtKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUteHNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcbiAgfVxuICAmOndoZXJlKC5zbSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xuICB9XG4gICY6d2hlcmUoLmJhc2UpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1iYXNlKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XG4gIH1cbiAgJjp3aGVyZSgubGcpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1sZyk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxnKTtcbiAgfVxuICAmOndoZXJlKC54bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteGwpO1xuICB9XG4gICY6d2hlcmUoLnQtMnhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtMnhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtMnhsKTtcbiAgfVxuICAmOndoZXJlKC50LTN4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTN4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTN4bCk7XG4gIH1cbiAgJjp3aGVyZSgudC00eGwpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS00eGwpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC00eGwpO1xuICB9XG4gICY6d2hlcmUoLnQtNXhsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNXhsKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNXhsKTtcbiAgfVxuICAmOndoZXJlKC50LTZ4bCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTZ4bCk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTZ4bCk7XG4gIH1cblxuICAmOndoZXJlKC5yZWd1bGFyKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXJlZ3VsYXIpO1xuICB9XG4gICY6d2hlcmUoLm1lZGl1bSkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICB9XG4gICY6d2hlcmUoLnNlbWlib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LXNlbWlib2xkKTtcbiAgfVxuICAmOndoZXJlKC5ib2xkKSB7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LWJvbGQpO1xuICB9XG4gICY6d2hlcmUoLmV4dHJhYm9sZCkge1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1leHRyYWJvbGQpO1xuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0QWxpZ24tXCJdIHtcbiAgICAmLnRleHRBbGlnbi1sZWZ0IHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxuICAgICYudGV4dEFsaWduLWNlbnRlciB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICB9XG5cbiAgJltjbGFzcyo9XCJ0ZXh0RGVjb3JhdGlvbi1cIl0ge1xuICAgICYudGV4dERlY29yYXRpb24tdW5kZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW5vbmUge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLWxpbmVUaHJvdWdoIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgIH1cbiAgICAmLnRleHREZWNvcmF0aW9uLW92ZXJsaW5lIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7XG4gICAgfVxuICAgICYudGV4dERlY29yYXRpb24tYmxpbmsge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBibGluaztcbiAgICB9XG4gIH1cblxuICAmW2NsYXNzKj1cIndvcmRCcmVhay1cIl0ge1xuICAgICYud29yZEJyZWFrLW5vcm1hbCB7XG4gICAgICB3b3JkLWJyZWFrOiBub3JtYWw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWJyZWFrQWxsIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBBbGwge1xuICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XG4gICAgfVxuICAgICYud29yZEJyZWFrLWtlZXBXb3JkIHtcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtd29yZDtcbiAgICB9XG4gICAgJi53b3JkQnJlYWstYnJlYWtTcGFjZXMge1xuICAgICAgd29yZC1icmVhazogYnJlYWstc3BhY2VzO1xuICAgIH1cbiAgICAmLndvcmRCcmVhay1hbGwge1xuICAgICAgd29yZC1icmVhazogYWxsO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwid2hpdGVTcGFjZS1cIl0ge1xuICAgICYud2hpdGVTcGFjZS1ub3JtYWwge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLW5vd3JhcCB7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cbiAgICAmLndoaXRlU3BhY2UtcHJlIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgfVxuICAgICYud2hpdGVTcGFjZS1wcmVMaW5lIHtcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtbGluZTtcbiAgICB9XG4gICAgJi53aGl0ZVNwYWNlLXByZVdyYXAge1xuICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIH1cbiAgfVxuXG4gICZbY2xhc3MqPVwiY29sb3ItXCJdIHtcbiAgICAmLmNvbG9yLWJsYWNrIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgICB9XG4gICAgJi5jb2xvci13aGl0ZSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUZhIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZmEpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlGNCB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0KTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5RTQge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1lNCk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheUQ0IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZDQpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXlBMSB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWExKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5NzEge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS03MSk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTUyIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktNTIpO1xuICAgIH1cbiAgICAmLmNvbG9yLWdyYXkzZiB7XG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmKTtcbiAgICB9XG4gICAgJi5jb2xvci1ncmF5Mjcge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0yNyk7XG4gICAgfVxuICAgICYuY29sb3ItZ3JheTE4IHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktMTgpO1xuICAgIH1cbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL2VsZW1lbnRzL3RleHQvdGV4dC1zdHlsZS5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLGdDQUFnQztJQUNoQyxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLDhCQUE4QjtJQUM5QixrQ0FBa0M7RUFDcEM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7RUFDQTtJQUNFLCtCQUErQjtJQUMvQixtQ0FBbUM7RUFDckM7O0VBRUE7SUFDRSx1Q0FBdUM7RUFDekM7RUFDQTtJQUNFLHNDQUFzQztFQUN4QztFQUNBO0lBQ0Usd0NBQXdDO0VBQzFDO0VBQ0E7SUFDRSxvQ0FBb0M7RUFDdEM7RUFDQTtJQUNFLHlDQUF5QztFQUMzQzs7RUFFQTtJQUNFO01BQ0UsZ0JBQWdCO0lBQ2xCO0lBQ0E7TUFDRSxrQkFBa0I7SUFDcEI7RUFDRjs7RUFFQTtJQUNFO01BQ0UsMEJBQTBCO0lBQzVCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLDZCQUE2QjtJQUMvQjtJQUNBO01BQ0UseUJBQXlCO0lBQzNCO0lBQ0E7TUFDRSxzQkFBc0I7SUFDeEI7RUFDRjs7RUFFQTtJQUNFO01BQ0Usa0JBQWtCO0lBQ3BCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHNCQUFzQjtJQUN4QjtJQUNBO01BQ0Usb0JBQW9CO0lBQ3RCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHdCQUF3QjtJQUMxQjtJQUNBO01BQ0UsZUFBZTtJQUNqQjtFQUNGOztFQUVBO0lBQ0U7TUFDRSxtQkFBbUI7SUFDckI7SUFDQTtNQUNFLG1CQUFtQjtJQUNyQjtJQUNBO01BQ0UsZ0JBQWdCO0lBQ2xCO0lBQ0E7TUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtNQUNFLHFCQUFxQjtJQUN2QjtFQUNGOztFQUVBO0lBQ0U7TUFDRSxpQ0FBaUM7SUFDbkM7SUFDQTtNQUNFLGlDQUFpQztJQUNuQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0lBQ0E7TUFDRSxtQ0FBbUM7SUFDckM7SUFDQTtNQUNFLG1DQUFtQztJQUNyQztJQUNBO01BQ0UsbUNBQW1DO0lBQ3JDO0VBQ0Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS10ZXh0IHtcXG4gICY6d2hlcmUoLnhzbSkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS14c20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQteHNtKTtcXG4gIH1cXG4gICY6d2hlcmUoLnNtKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXNtKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcXG4gIH1cXG4gICY6d2hlcmUoLmJhc2UpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1iYXNlKTtcXG4gIH1cXG4gICY6d2hlcmUoLmxnKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWxnKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWxnKTtcXG4gIH1cXG4gICY6d2hlcmUoLnhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLXhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtMnhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTJ4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC0yeGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC0zeGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtM3hsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTN4bCk7XFxuICB9XFxuICAmOndoZXJlKC50LTR4bCkge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS00eGwpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtNHhsKTtcXG4gIH1cXG4gICY6d2hlcmUoLnQtNXhsKSB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLTV4bCk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC01eGwpO1xcbiAgfVxcbiAgJjp3aGVyZSgudC02eGwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtNnhsKTtcXG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LTZ4bCk7XFxuICB9XFxuXFxuICAmOndoZXJlKC5yZWd1bGFyKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1yZWd1bGFyKTtcXG4gIH1cXG4gICY6d2hlcmUoLm1lZGl1bSkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG4gIH1cXG4gICY6d2hlcmUoLnNlbWlib2xkKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1zZW1pYm9sZCk7XFxuICB9XFxuICAmOndoZXJlKC5ib2xkKSB7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG4gICY6d2hlcmUoLmV4dHJhYm9sZCkge1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtZXh0cmFib2xkKTtcXG4gIH1cXG5cXG4gICZbY2xhc3MqPVxcXCJ0ZXh0QWxpZ24tXFxcIl0ge1xcbiAgICAmLnRleHRBbGlnbi1sZWZ0IHtcXG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICB9XFxuICAgICYudGV4dEFsaWduLWNlbnRlciB7XFxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwidGV4dERlY29yYXRpb24tXFxcIl0ge1xcbiAgICAmLnRleHREZWNvcmF0aW9uLXVuZGVybGluZSB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XFxuICAgIH1cXG4gICAgJi50ZXh0RGVjb3JhdGlvbi1ub25lIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XFxuICAgIH1cXG4gICAgJi50ZXh0RGVjb3JhdGlvbi1saW5lVGhyb3VnaCB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XFxuICAgIH1cXG4gICAgJi50ZXh0RGVjb3JhdGlvbi1vdmVybGluZSB7XFxuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZTtcXG4gICAgfVxcbiAgICAmLnRleHREZWNvcmF0aW9uLWJsaW5rIHtcXG4gICAgICB0ZXh0LWRlY29yYXRpb246IGJsaW5rO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwid29yZEJyZWFrLVxcXCJdIHtcXG4gICAgJi53b3JkQnJlYWstbm9ybWFsIHtcXG4gICAgICB3b3JkLWJyZWFrOiBub3JtYWw7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWstYnJlYWtBbGwge1xcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1icmVha1dvcmQge1xcbiAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWsta2VlcEFsbCB7XFxuICAgICAgd29yZC1icmVhazoga2VlcC1hbGw7XFxuICAgIH1cXG4gICAgJi53b3JkQnJlYWsta2VlcFdvcmQge1xcbiAgICAgIHdvcmQtYnJlYWs6IGtlZXAtd29yZDtcXG4gICAgfVxcbiAgICAmLndvcmRCcmVhay1icmVha1NwYWNlcyB7XFxuICAgICAgd29yZC1icmVhazogYnJlYWstc3BhY2VzO1xcbiAgICB9XFxuICAgICYud29yZEJyZWFrLWFsbCB7XFxuICAgICAgd29yZC1icmVhazogYWxsO1xcbiAgICB9XFxuICB9XFxuXFxuICAmW2NsYXNzKj1cXFwid2hpdGVTcGFjZS1cXFwiXSB7XFxuICAgICYud2hpdGVTcGFjZS1ub3JtYWwge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLW5vd3JhcCB7XFxuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcXG4gICAgfVxcbiAgICAmLndoaXRlU3BhY2UtcHJlIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogcHJlO1xcbiAgICB9XFxuICAgICYud2hpdGVTcGFjZS1wcmVMaW5lIHtcXG4gICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XFxuICAgIH1cXG4gICAgJi53aGl0ZVNwYWNlLXByZVdyYXAge1xcbiAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcXG4gICAgfVxcbiAgfVxcblxcbiAgJltjbGFzcyo9XFxcImNvbG9yLVxcXCJdIHtcXG4gICAgJi5jb2xvci1ibGFjayB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgICB9XFxuICAgICYuY29sb3Itd2hpdGUge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlGYSB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1mYSk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5RjQge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktZjQpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheUU0IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXlENCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5QTEge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktYTEpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTcxIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxKTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXk1MiB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS01Mik7XFxuICAgIH1cXG4gICAgJi5jb2xvci1ncmF5M2Yge1xcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWdyYXktM2YpO1xcbiAgICB9XFxuICAgICYuY29sb3ItZ3JheTI3IHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3KTtcXG4gICAgfVxcbiAgICAmLmNvbG9yLWdyYXkxOCB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS0xOCk7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAuY29tcG9uZW50LWxvYWRpbmctY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5sb2FkaW5nLWluZGljYXRvci1yaW5nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmcge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMjBweDtcbiAgaGVpZ2h0OiAyMHB4O1xuICBib3JkZXI6IDNweCBzb2xpZDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC41LCAxKSBpbmZpbml0ZTtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LXdoaXRlKSB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgxKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuNDVzO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDIpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcbn1cblxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgzKSB7XG4gIGFuaW1hdGlvbi1kZWxheTogLTAuMTVzO1xufVxuXG4ubG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmc6bnRoLWNoaWxkKDQpIHtcbiAgYW5pbWF0aW9uLWRlbGF5OiAwcztcbn1cblxuQGtleWZyYW1lcyBsZHMtcmluZyB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsWUFBWTtFQUNaLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsV0FBVztFQUNYLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLFdBQVc7RUFDWCxZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGtCQUFrQjtFQUNsQiw4REFBOEQ7RUFDOUQsNEVBQTRFO0FBQzlFOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0U7SUFDRSx1QkFBdUI7RUFDekI7RUFDQTtJQUNFLHlCQUF5QjtFQUMzQjtBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5jb21wb25lbnQtbG9hZGluZy1jb250YWluZXIge1xcbiAgZGlzcGxheTogZmxleDtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xcbn1cXG5cXG4ubG9hZGluZy1pbmRpY2F0b3ItcmluZyB7XFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XFxuICB3aWR0aDogMjBweDtcXG4gIGhlaWdodDogMjBweDtcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nIHtcXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XFxuICBkaXNwbGF5OiBibG9jaztcXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcXG4gIHdpZHRoOiAyMHB4O1xcbiAgaGVpZ2h0OiAyMHB4O1xcbiAgYm9yZGVyOiAzcHggc29saWQ7XFxuICBib3JkZXItcmFkaXVzOiA1MCU7XFxuICBhbmltYXRpb246IGxkcy1yaW5nIDEuMnMgY3ViaWMtYmV6aWVyKDAuNSwgMCwgMC41LCAxKSBpbmZpbml0ZTtcXG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS13aGl0ZSkgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMSkge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC40NXM7XFxufVxcblxcbi5sb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZzpudGgtY2hpbGQoMikge1xcbiAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zcztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCgzKSB7XFxuICBhbmltYXRpb24tZGVsYXk6IC0wLjE1cztcXG59XFxuXFxuLmxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nOm50aC1jaGlsZCg0KSB7XFxuICBhbmltYXRpb24tZGVsYXk6IDBzO1xcbn1cXG5cXG5Aa2V5ZnJhbWVzIGxkcy1yaW5nIHtcXG4gIDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuICB9XFxuICAxMDAlIHtcXG4gICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAucmFkaW8ge1xuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG4gIH1cbiAgJjp3aGVyZSgucmFkaW8tYnV0dG9uKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAxOHB4O1xuICAgIGhlaWdodDogMThweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcbiAgfVxuICAmOndoZXJlKC5yYWRpby1pbmRpY2F0b3IpIHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xuICB9XG4gICY6d2hlcmUoLnJhZGlvLWxhYmVsKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci1wcmltYXJ5LWJsYWNrKTtcbiAgfVxufVxuYCwgXCJcIix7XCJ2ZXJzaW9uXCI6MyxcInNvdXJjZXNcIjpbXCJ3ZWJwYWNrOi8vLi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLXN0eWxlLmNzc1wiXSxcIm5hbWVzXCI6W10sXCJtYXBwaW5nc1wiOlwiQUFBQTtFQUNFO0lBQ0UsYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixTQUFTO0VBQ1g7RUFDQTtJQUNFLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsdUJBQXVCO0lBQ3ZCLFdBQVc7SUFDWCxZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLDhDQUE4QztFQUNoRDtFQUNBO0lBQ0UsVUFBVTtJQUNWLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsOENBQThDO0VBQ2hEO0VBQ0E7SUFDRSw4QkFBOEI7SUFDOUIsc0NBQXNDO0lBQ3RDLGlDQUFpQztFQUNuQztBQUNGXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi5yYWRpbyB7XFxuICAmOndoZXJlKC5yYWRpby1ncm91cCkge1xcbiAgICBkaXNwbGF5OiBmbGV4O1xcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbiAgICBnYXA6IDE2cHg7XFxuICB9XFxuICAmOndoZXJlKC5yYWRpby1idXR0b24pIHtcXG4gICAgZGlzcGxheTogZmxleDtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XFxuICAgIHdpZHRoOiAxOHB4O1xcbiAgICBoZWlnaHQ6IDE4cHg7XFxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0KTtcXG4gIH1cXG4gICY6d2hlcmUoLnJhZGlvLWluZGljYXRvcikge1xcbiAgICB3aWR0aDogOHB4O1xcbiAgICBoZWlnaHQ6IDhweDtcXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1wb2ludC1wdXJwbGUtMzkpO1xcbiAgfVxcbiAgJjp3aGVyZSgucmFkaW8tbGFiZWwpIHtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktYmxhY2spO1xcbiAgfVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgYC5iYXNlLXRhYmxlIHtcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmLnRhYmxlLXJvb3Qge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIH1cblxuICAudGFibGUtaGVhZGVyIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICY6d2hlcmUoLmNlbnRlcikge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG4gICAgfVxuICAgICY6d2hlcmUoLnN0YXJ0KSB7XG4gICAgICAudGFibGUtY2VsbCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICAgICY6d2hlcmUoLmVuZCkge1xuICAgICAgLnRhYmxlLWNlbGwge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAudGFibGUtYm9keSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICAudGFibGUtcm93IHtcbiAgfVxuXG4gIC50YWJsZS1jZWxsIHtcbiAgICB0ZXh0LWFsaWduOiBzdGFydDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogNjBweDtcbiAgfVxufVxuXG4uZGF0YS10YWJsZSB7XG4gICY6d2hlcmUoLnRhYmxlLWhlYWRlcikge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xuICB9XG5cbiAgJjp3aGVyZSgudGFibGUtcm93KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNGU0ZTc7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgfVxuICB9XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbXBvbmVudHMvdGFibGUvdGFibGUtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxhQUFhO0VBQ2Y7O0VBRUE7SUFDRSxXQUFXO0lBQ1gseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsV0FBVzs7SUFFWDtNQUNFO1FBQ0Usa0JBQWtCO01BQ3BCO0lBQ0Y7SUFDQTtNQUNFO1FBQ0UsZ0JBQWdCO01BQ2xCO0lBQ0Y7SUFDQTtNQUNFO1FBQ0UsaUJBQWlCO01BQ25CO0lBQ0Y7RUFDRjs7RUFFQTtJQUNFLFdBQVc7RUFDYjs7RUFFQTtFQUNBOztFQUVBO0lBQ0UsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0QixZQUFZO0VBQ2Q7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZ0NBQWdDO0VBQ2xDOztFQUVBO0lBQ0UsZ0NBQWdDOztJQUVoQztNQUNFLHlCQUF5QjtJQUMzQjtFQUNGO0FBQ0ZcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLmJhc2UtdGFibGUge1xcbiAgLmhpZGUge1xcbiAgICBkaXNwbGF5OiBub25lO1xcbiAgfVxcblxcbiAgJi50YWJsZS1yb290IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XFxuICB9XFxuXFxuICAudGFibGUtaGVhZGVyIHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuXFxuICAgICY6d2hlcmUoLmNlbnRlcikge1xcbiAgICAgIC50YWJsZS1jZWxsIHtcXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcXG4gICAgICB9XFxuICAgIH1cXG4gICAgJjp3aGVyZSguc3RhcnQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xcbiAgICAgIH1cXG4gICAgfVxcbiAgICAmOndoZXJlKC5lbmQpIHtcXG4gICAgICAudGFibGUtY2VsbCB7XFxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcXG4gICAgICB9XFxuICAgIH1cXG4gIH1cXG5cXG4gIC50YWJsZS1ib2R5IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICB9XFxuXFxuICAudGFibGUtcm93IHtcXG4gIH1cXG5cXG4gIC50YWJsZS1jZWxsIHtcXG4gICAgdGV4dC1hbGlnbjogc3RhcnQ7XFxuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XFxuICAgIGhlaWdodDogNjBweDtcXG4gIH1cXG59XFxuXFxuLmRhdGEtdGFibGUge1xcbiAgJjp3aGVyZSgudGFibGUtaGVhZGVyKSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xcbiAgfVxcblxcbiAgJjp3aGVyZSgudGFibGUtcm93KSB7XFxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTRlNGU3O1xcblxcbiAgICAmOmhvdmVyIHtcXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xcbiAgICB9XFxuICB9XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLmJhc2UtdGV4dC1maWVsZCB7XG4gICY6d2hlcmUoLnRleHQtZmllbGQtcm9vdCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG59XG5cbi50ZXh0LWZpZWxkIHtcbiAgJi5sYWJlbCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtYmFzZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcbiAgfVxuXG4gICYuaW5wdXQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBoZWlnaHQ6IDIycHg7XG4gICAgcGFkZGluZzogMTRweDtcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gIH1cblxuICAmLmlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWxpbmUtaGVpZ2h0LXNtKTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcblxuICAgIDo6cGxhY2Vob2xkZXIge1xuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XG4gICAgfVxuICB9XG5cbiAgJi5oZWxwZXItdGV4dCB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWZvbnQtd2VpZ2h0LW1lZGl1bSk7XG5cbiAgICAmLmVycm9yIHtcbiAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1hY2NlbnQtcmVkLWRmKTtcbiAgICB9XG4gIH1cbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtc3R5bGUuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0U7SUFDRSxXQUFXO0VBQ2I7QUFDRjs7QUFFQTtFQUNFO0lBQ0UsZ0NBQWdDO0lBQ2hDLG9DQUFvQztJQUNwQyxvQ0FBb0M7RUFDdEM7O0VBRUE7SUFDRSxhQUFhO0lBQ2IsOEJBQThCO0lBQzlCLG1CQUFtQjtJQUNuQixZQUFZO0lBQ1osYUFBYTtJQUNiLGdEQUFnRDtJQUNoRCxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLGtCQUFrQjtFQUNwQjs7RUFFQTtJQUNFLFdBQVc7SUFDWCxZQUFZO0lBQ1osYUFBYTtJQUNiLDhCQUE4QjtJQUM5QixrQ0FBa0M7SUFDbEMsc0NBQXNDOztJQUV0QztNQUNFLG1DQUFtQztJQUNyQztFQUNGOztFQUVBO0lBQ0UsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxzQ0FBc0M7O0lBRXRDO01BQ0UsaUNBQWlDO0lBQ25DO0VBQ0Y7QUFDRlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIuYmFzZS10ZXh0LWZpZWxkIHtcXG4gICY6d2hlcmUoLnRleHQtZmllbGQtcm9vdCkge1xcbiAgICB3aWR0aDogMTAwJTtcXG4gIH1cXG59XFxuXFxuLnRleHQtZmllbGQge1xcbiAgJi5sYWJlbCB7XFxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZm9udC1zaXplLWJhc2UpO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1ib2xkKTtcXG4gIH1cXG5cXG4gICYuaW5wdXQtd3JhcHBlciB7XFxuICAgIGRpc3BsYXk6IGZsZXg7XFxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcXG4gICAgaGVpZ2h0OiAyMnB4O1xcbiAgICBwYWRkaW5nOiAxNHB4O1xcbiAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1kNCk7XFxuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcXG4gICAgbWFyZ2luLXRvcDogOHB4O1xcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XFxuICB9XFxuXFxuICAmLmlucHV0IHtcXG4gICAgd2lkdGg6IDEwMCU7XFxuICAgIGJvcmRlcjogbm9uZTtcXG4gICAgb3V0bGluZTogbm9uZTtcXG4gICAgZm9udC1zaXplOiB2YXIoLS1mb250LXNpemUtc20pO1xcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tbGluZS1oZWlnaHQtc20pO1xcbiAgICBmb250LXdlaWdodDogdmFyKC0tZm9udC13ZWlnaHQtbWVkaXVtKTtcXG5cXG4gICAgOjpwbGFjZWhvbGRlciB7XFxuICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnktZ3JheS1hMSk7XFxuICAgIH1cXG4gIH1cXG5cXG4gICYuaGVscGVyLXRleHQge1xcbiAgICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1zbSk7XFxuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1saW5lLWhlaWdodC1zbSk7XFxuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1mb250LXdlaWdodC1tZWRpdW0pO1xcblxcbiAgICAmLmVycm9yIHtcXG4gICAgICBjb2xvcjogdmFyKC0tY29sb3ItYWNjZW50LXJlZC1kZik7XFxuICAgIH1cXG4gIH1cXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIi8vIEltcG9ydHNcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fIGZyb20gXCIuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvc291cmNlTWFwcy5qc1wiO1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL2FwaS5qc1wiO1xudmFyIF9fX0NTU19MT0FERVJfRVhQT1JUX19fID0gX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fKF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18pO1xuLy8gTW9kdWxlXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5wdXNoKFttb2R1bGUuaWQsIGAubnVyaS10aGVtZSB7XG4gIC0tY29sb3ItcHJpbWFyeS1ibGFjazogIzAwMDAwMDtcbiAgLS1jb2xvci1wcmltYXJ5LXdoaXRlOiAjZmZmZmZmO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mYTogI2ZhZmFmYTtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZjQ6ICNmNGY0ZjU7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWU0OiAjZTRlNGU3O1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS1kNDogI2Q0ZDRkODtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktYTE6ICNhMWExYWE7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTcxOiAjNzE3MTdhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS01MjogIzUyNTI1YjtcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktM2Y6ICMzZjNmNDY7XG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTI3OiAjMjcyNzJhO1xuICAtLWNvbG9yLXByaW1hcnktZ3JheS0xODogIzE4MTgxYjtcblxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS0zOTogIzM5MWQ1ZDtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNGM6ICM0YzI3N2M7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWRkOiAjZGRkMWYwO1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1lOTogI2U5ZTBmNTtcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZjQ6ICNmNGVmZmE7XG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTQxOiAjNGMxZDg4O1xuICAtLWNvbG9yLXBvaW50LXB1cnBsZS05NTogIzk1N2ViNDtcblxuICAtLWNvbG9yLWFjY2VudC1yZWQtZGY6ICNkZjUzNWM7XG4gIC0tY29sb3ItYWNjZW50LW1hZ2VudGEtYjA6ICNiMDJlNGM7XG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xuXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWU0OiAjZTRlNGU3O1xuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mNzogI2Y3ZjdmODtcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZmY6ICNmZmZmZmY7XG5cbiAgLS1jb2xvci1ldGMtaG92ZXItZWU6ICNlZWVlZWU7XG59XG5gLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL3N0eWxlcy90b2tlbi9jb2xvci5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUE7RUFDRSw4QkFBOEI7RUFDOUIsOEJBQThCO0VBQzlCLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQzs7RUFFaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7RUFDaEMsZ0NBQWdDOztFQUVoQyw4QkFBOEI7RUFDOUIsa0NBQWtDO0VBQ2xDLGdDQUFnQzs7RUFFaEMsZ0NBQWdDO0VBQ2hDLGdDQUFnQztFQUNoQyxnQ0FBZ0M7O0VBRWhDLDZCQUE2QjtBQUMvQlwiLFwic291cmNlc0NvbnRlbnRcIjpbXCIubnVyaS10aGVtZSB7XFxuICAtLWNvbG9yLXByaW1hcnktYmxhY2s6ICMwMDAwMDA7XFxuICAtLWNvbG9yLXByaW1hcnktd2hpdGU6ICNmZmZmZmY7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1mYTogI2ZhZmFmYTtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWY0OiAjZjRmNGY1O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktZTQ6ICNlNGU0ZTc7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS1kNDogI2Q0ZDRkODtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LWExOiAjYTFhMWFhO1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktNzE6ICM3MTcxN2E7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS01MjogIzUyNTI1YjtcXG4gIC0tY29sb3ItcHJpbWFyeS1ncmF5LTNmOiAjM2YzZjQ2O1xcbiAgLS1jb2xvci1wcmltYXJ5LWdyYXktMjc6ICMyNzI3MmE7XFxuICAtLWNvbG9yLXByaW1hcnktZ3JheS0xODogIzE4MTgxYjtcXG5cXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTM5OiAjMzkxZDVkO1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtNGM6ICM0YzI3N2M7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS1kZDogI2RkZDFmMDtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLWU5OiAjZTllMGY1O1xcbiAgLS1jb2xvci1wb2ludC1wdXJwbGUtZjQ6ICNmNGVmZmE7XFxuICAtLWNvbG9yLXBvaW50LXB1cnBsZS00MTogIzRjMWQ4ODtcXG4gIC0tY29sb3ItcG9pbnQtcHVycGxlLTk1OiAjOTU3ZWI0O1xcblxcbiAgLS1jb2xvci1hY2NlbnQtcmVkLWRmOiAjZGY1MzVjO1xcbiAgLS1jb2xvci1hY2NlbnQtbWFnZW50YS1iMDogI2IwMmU0YztcXG4gIC0tY29sb3ItYWNjZW50LWdyZWVuLTI4OiAjMjg5YTNhO1xcblxcbiAgLS1jb2xvci1ldGMtc2tlbGV0b24tZTQ6ICNlNGU0ZTc7XFxuICAtLWNvbG9yLWV0Yy1za2VsZXRvbi1mNzogI2Y3ZjdmODtcXG4gIC0tY29sb3ItZXRjLXNrZWxldG9uLWZmOiAjZmZmZmZmO1xcblxcbiAgLS1jb2xvci1ldGMtaG92ZXItZWU6ICNlZWVlZWU7XFxufVxcblwiXSxcInNvdXJjZVJvb3RcIjpcIlwifV0pO1xuLy8gRXhwb3J0c1xuZXhwb3J0IGRlZmF1bHQgX19fQ1NTX0xPQURFUl9FWFBPUlRfX187XG4iLCIvLyBJbXBvcnRzXG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyBmcm9tIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9ydW50aW1lL3NvdXJjZU1hcHMuanNcIjtcbmltcG9ydCBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18gZnJvbSBcIi4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanNcIjtcbnZhciBfX19DU1NfTE9BREVSX0VYUE9SVF9fXyA9IF9fX0NTU19MT0FERVJfQVBJX0lNUE9SVF9fXyhfX19DU1NfTE9BREVSX0FQSV9TT1VSQ0VNQVBfSU1QT1JUX19fKTtcbi8vIE1vZHVsZVxuX19fQ1NTX0xPQURFUl9FWFBPUlRfX18ucHVzaChbbW9kdWxlLmlkLCBgLm51cmktdGhlbWUge1xuICAtLWZvbnQtc2l6ZS14c206IDEycHg7XG4gIC0tZm9udC1zaXplLXNtOiAxNHB4O1xuICAtLWZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xuICAtLWZvbnQtc2l6ZS1sZzogMThweDtcbiAgLS1mb250LXNpemUteGw6IDIwcHg7XG4gIC0tZm9udC1zaXplLTJ4bDogMjRweDtcbiAgLS1mb250LXNpemUtM3hsOiAzMHB4O1xuICAtLWZvbnQtc2l6ZS00eGw6IDM2cHg7XG4gIC0tZm9udC1zaXplLTV4bDogNDhweDtcbiAgLS1mb250LXNpemUtNnhsOiA2MHB4O1xuXG4gIC0tbGluZS1oZWlnaHQteHNtOiAxOHB4O1xuICAtLWxpbmUtaGVpZ2h0LXNtOiAxOHB4O1xuICAtLWxpbmUtaGVpZ2h0LWJhc2U6IDIycHg7XG4gIC0tbGluZS1oZWlnaHQtbGc6IDI0cHg7XG4gIC0tbGluZS1oZWlnaHQteGw6IDI4cHg7XG4gIC0tbGluZS1oZWlnaHQtMnhsOiAzMnB4O1xuICAtLWxpbmUtaGVpZ2h0LTN4bDogMzZweDtcbiAgLS1saW5lLWhlaWdodC00eGw6IDQzcHg7XG4gIC0tbGluZS1oZWlnaHQtNXhsOiA2NnB4O1xuICAtLWxpbmUtaGVpZ2h0LTZ4bDogODJweDtcblxuICAtLWZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiAgLS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcbiAgLS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuICAtLWZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcbiAgLS1mb250LXdlaWdodC1leHRyYWJvbGQ6IDgwMDtcbn1cbmAsIFwiXCIse1widmVyc2lvblwiOjMsXCJzb3VyY2VzXCI6W1wid2VicGFjazovLy4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0VBQ0UscUJBQXFCO0VBQ3JCLG9CQUFvQjtFQUNwQixzQkFBc0I7RUFDdEIsb0JBQW9CO0VBQ3BCLG9CQUFvQjtFQUNwQixxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIscUJBQXFCOztFQUVyQix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2Qix1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtFQUN2Qix1QkFBdUI7O0VBRXZCLDBCQUEwQjtFQUMxQix5QkFBeUI7RUFDekIsMkJBQTJCO0VBQzNCLHVCQUF1QjtFQUN2Qiw0QkFBNEI7QUFDOUJcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLm51cmktdGhlbWUge1xcbiAgLS1mb250LXNpemUteHNtOiAxMnB4O1xcbiAgLS1mb250LXNpemUtc206IDE0cHg7XFxuICAtLWZvbnQtc2l6ZS1iYXNlOiAxNnB4O1xcbiAgLS1mb250LXNpemUtbGc6IDE4cHg7XFxuICAtLWZvbnQtc2l6ZS14bDogMjBweDtcXG4gIC0tZm9udC1zaXplLTJ4bDogMjRweDtcXG4gIC0tZm9udC1zaXplLTN4bDogMzBweDtcXG4gIC0tZm9udC1zaXplLTR4bDogMzZweDtcXG4gIC0tZm9udC1zaXplLTV4bDogNDhweDtcXG4gIC0tZm9udC1zaXplLTZ4bDogNjBweDtcXG5cXG4gIC0tbGluZS1oZWlnaHQteHNtOiAxOHB4O1xcbiAgLS1saW5lLWhlaWdodC1zbTogMThweDtcXG4gIC0tbGluZS1oZWlnaHQtYmFzZTogMjJweDtcXG4gIC0tbGluZS1oZWlnaHQtbGc6IDI0cHg7XFxuICAtLWxpbmUtaGVpZ2h0LXhsOiAyOHB4O1xcbiAgLS1saW5lLWhlaWdodC0yeGw6IDMycHg7XFxuICAtLWxpbmUtaGVpZ2h0LTN4bDogMzZweDtcXG4gIC0tbGluZS1oZWlnaHQtNHhsOiA0M3B4O1xcbiAgLS1saW5lLWhlaWdodC01eGw6IDY2cHg7XFxuICAtLWxpbmUtaGVpZ2h0LTZ4bDogODJweDtcXG5cXG4gIC0tZm9udC13ZWlnaHQtcmVndWxhcjogNDAwO1xcbiAgLS1mb250LXdlaWdodC1tZWRpdW06IDUwMDtcXG4gIC0tZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcXG4gIC0tZm9udC13ZWlnaHQtYm9sZDogNzAwO1xcbiAgLS1mb250LXdlaWdodC1leHRyYWJvbGQ6IDgwMDtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5leHBvcnQgZGVmYXVsdCBfX19DU1NfTE9BREVSX0VYUE9SVF9fXztcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKlxuICBNSVQgTGljZW5zZSBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocFxuICBBdXRob3IgVG9iaWFzIEtvcHBlcnMgQHNva3JhXG4qL1xubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoY3NzV2l0aE1hcHBpbmdUb1N0cmluZykge1xuICB2YXIgbGlzdCA9IFtdO1xuXG4gIC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcbiAgbGlzdC50b1N0cmluZyA9IGZ1bmN0aW9uIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLm1hcChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgdmFyIGNvbnRlbnQgPSBcIlwiO1xuICAgICAgdmFyIG5lZWRMYXllciA9IHR5cGVvZiBpdGVtWzVdICE9PSBcInVuZGVmaW5lZFwiO1xuICAgICAgaWYgKGl0ZW1bNF0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKTtcbiAgICAgIH1cbiAgICAgIGlmIChuZWVkTGF5ZXIpIHtcbiAgICAgICAgY29udGVudCArPSBcIkBsYXllclwiLmNvbmNhdChpdGVtWzVdLmxlbmd0aCA+IDAgPyBcIiBcIi5jb25jYXQoaXRlbVs1XSkgOiBcIlwiLCBcIiB7XCIpO1xuICAgICAgfVxuICAgICAgY29udGVudCArPSBjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKGl0ZW0pO1xuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIn1cIjtcbiAgICAgIH1cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJ9XCI7XG4gICAgICB9XG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9O1xuXG4gIC8vIGltcG9ydCBhIGxpc3Qgb2YgbW9kdWxlcyBpbnRvIHRoZSBsaXN0XG4gIGxpc3QuaSA9IGZ1bmN0aW9uIGkobW9kdWxlcywgbWVkaWEsIGRlZHVwZSwgc3VwcG9ydHMsIGxheWVyKSB7XG4gICAgaWYgKHR5cGVvZiBtb2R1bGVzID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBtb2R1bGVzID0gW1tudWxsLCBtb2R1bGVzLCB1bmRlZmluZWRdXTtcbiAgICB9XG4gICAgdmFyIGFscmVhZHlJbXBvcnRlZE1vZHVsZXMgPSB7fTtcbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBrID0gMDsgayA8IHRoaXMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgdmFyIGlkID0gdGhpc1trXVswXTtcbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZm9yICh2YXIgX2sgPSAwOyBfayA8IG1vZHVsZXMubGVuZ3RoOyBfaysrKSB7XG4gICAgICB2YXIgaXRlbSA9IFtdLmNvbmNhdChtb2R1bGVzW19rXSk7XG4gICAgICBpZiAoZGVkdXBlICYmIGFscmVhZHlJbXBvcnRlZE1vZHVsZXNbaXRlbVswXV0pIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGxheWVyICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbVs1XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbGF5ZXJcIi5jb25jYXQoaXRlbVs1XS5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KGl0ZW1bNV0pIDogXCJcIiwgXCIge1wiKS5jb25jYXQoaXRlbVsxXSwgXCJ9XCIpO1xuICAgICAgICAgIGl0ZW1bNV0gPSBsYXllcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKG1lZGlhKSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdXBwb3J0cykge1xuICAgICAgICBpZiAoIWl0ZW1bNF0pIHtcbiAgICAgICAgICBpdGVtWzRdID0gXCJcIi5jb25jYXQoc3VwcG9ydHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1bMV0gPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KGl0ZW1bNF0sIFwiKSB7XCIpLmNvbmNhdChpdGVtWzFdLCBcIn1cIik7XG4gICAgICAgICAgaXRlbVs0XSA9IHN1cHBvcnRzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG4gIGlmICghY3NzTWFwcGluZykge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG4gIGlmICh0eXBlb2YgYnRvYSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgdmFyIGJhc2U2NCA9IGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KGNzc01hcHBpbmcpKSkpO1xuICAgIHZhciBkYXRhID0gXCJzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxcIi5jb25jYXQoYmFzZTY0KTtcbiAgICB2YXIgc291cmNlTWFwcGluZyA9IFwiLyojIFwiLmNvbmNhdChkYXRhLCBcIiAqL1wiKTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChbc291cmNlTWFwcGluZ10pLmpvaW4oXCJcXG5cIik7XG4gIH1cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIHN0eWxlc0luRE9NID0gW107XG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdHlsZXNJbkRPTS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChzdHlsZXNJbkRPTVtpXS5pZGVudGlmaWVyID09PSBpZGVudGlmaWVyKSB7XG4gICAgICByZXN1bHQgPSBpO1xuICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGl0ZW0gPSBsaXN0W2ldO1xuICAgIHZhciBpZCA9IG9wdGlvbnMuYmFzZSA/IGl0ZW1bMF0gKyBvcHRpb25zLmJhc2UgOiBpdGVtWzBdO1xuICAgIHZhciBjb3VudCA9IGlkQ291bnRNYXBbaWRdIHx8IDA7XG4gICAgdmFyIGlkZW50aWZpZXIgPSBcIlwiLmNvbmNhdChpZCwgXCIgXCIpLmNvbmNhdChjb3VudCk7XG4gICAgaWRDb3VudE1hcFtpZF0gPSBjb3VudCArIDE7XG4gICAgdmFyIGluZGV4QnlJZGVudGlmaWVyID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoaWRlbnRpZmllcik7XG4gICAgdmFyIG9iaiA9IHtcbiAgICAgIGNzczogaXRlbVsxXSxcbiAgICAgIG1lZGlhOiBpdGVtWzJdLFxuICAgICAgc291cmNlTWFwOiBpdGVtWzNdLFxuICAgICAgc3VwcG9ydHM6IGl0ZW1bNF0sXG4gICAgICBsYXllcjogaXRlbVs1XVxuICAgIH07XG4gICAgaWYgKGluZGV4QnlJZGVudGlmaWVyICE9PSAtMSkge1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhCeUlkZW50aWZpZXJdLnJlZmVyZW5jZXMrKztcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS51cGRhdGVyKG9iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciB1cGRhdGVyID0gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucyk7XG4gICAgICBvcHRpb25zLmJ5SW5kZXggPSBpO1xuICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKGksIDAsIHtcbiAgICAgICAgaWRlbnRpZmllcjogaWRlbnRpZmllcixcbiAgICAgICAgdXBkYXRlcjogdXBkYXRlcixcbiAgICAgICAgcmVmZXJlbmNlczogMVxuICAgICAgfSk7XG4gICAgfVxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cbiAgcmV0dXJuIGlkZW50aWZpZXJzO1xufVxuZnVuY3Rpb24gYWRkRWxlbWVudFN0eWxlKG9iaiwgb3B0aW9ucykge1xuICB2YXIgYXBpID0gb3B0aW9ucy5kb21BUEkob3B0aW9ucyk7XG4gIGFwaS51cGRhdGUob2JqKTtcbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXBpLnVwZGF0ZShvYmogPSBuZXdPYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICBhcGkucmVtb3ZlKCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gdXBkYXRlcjtcbn1cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIGlkZW50aWZpZXIgPSBsYXN0SWRlbnRpZmllcnNbaV07XG4gICAgICB2YXIgaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4XS5yZWZlcmVuY2VzLS07XG4gICAgfVxuICAgIHZhciBuZXdMYXN0SWRlbnRpZmllcnMgPSBtb2R1bGVzVG9Eb20obmV3TGlzdCwgb3B0aW9ucyk7XG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG4gICAgICB2YXIgX2luZGV4ID0gZ2V0SW5kZXhCeUlkZW50aWZpZXIoX2lkZW50aWZpZXIpO1xuICAgICAgaWYgKHN0eWxlc0luRE9NW19pbmRleF0ucmVmZXJlbmNlcyA9PT0gMCkge1xuICAgICAgICBzdHlsZXNJbkRPTVtfaW5kZXhdLnVwZGF0ZXIoKTtcbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxhc3RJZGVudGlmaWVycyA9IG5ld0xhc3RJZGVudGlmaWVycztcbiAgfTtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBtZW1vID0ge307XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0KHRhcmdldCkge1xuICBpZiAodHlwZW9mIG1lbW9bdGFyZ2V0XSA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHZhciBzdHlsZVRhcmdldCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodGFyZ2V0KTtcblxuICAgIC8vIFNwZWNpYWwgY2FzZSB0byByZXR1cm4gaGVhZCBvZiBpZnJhbWUgaW5zdGVhZCBvZiBpZnJhbWUgaXRzZWxmXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBtZW1vW3RhcmdldF0gPSBzdHlsZVRhcmdldDtcbiAgfVxuICByZXR1cm4gbWVtb1t0YXJnZXRdO1xufVxuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG4gIGlmICghdGFyZ2V0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiQ291bGRuJ3QgZmluZCBhIHN0eWxlIHRhcmdldC4gVGhpcyBwcm9iYWJseSBtZWFucyB0aGF0IHRoZSB2YWx1ZSBmb3IgdGhlICdpbnNlcnQnIHBhcmFtZXRlciBpcyBpbnZhbGlkLlwiKTtcbiAgfVxuICB0YXJnZXQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5tb2R1bGUuZXhwb3J0cyA9IGluc2VydFN0eWxlRWxlbWVudDsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMoc3R5bGVFbGVtZW50KSB7XG4gIHZhciBub25jZSA9IHR5cGVvZiBfX3dlYnBhY2tfbm9uY2VfXyAhPT0gXCJ1bmRlZmluZWRcIiA/IF9fd2VicGFja19ub25jZV9fIDogbnVsbDtcbiAgaWYgKG5vbmNlKSB7XG4gICAgc3R5bGVFbGVtZW50LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIG5vbmNlKTtcbiAgfVxufVxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChvYmouc3VwcG9ydHMsIFwiKSB7XCIpO1xuICB9XG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJAbWVkaWEgXCIuY29uY2F0KG9iai5tZWRpYSwgXCIge1wiKTtcbiAgfVxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIkBsYXllclwiLmNvbmNhdChvYmoubGF5ZXIubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChvYmoubGF5ZXIpIDogXCJcIiwgXCIge1wiKTtcbiAgfVxuICBjc3MgKz0gb2JqLmNzcztcbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG4gIGlmIChvYmouc3VwcG9ydHMpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG4gIGlmIChzb3VyY2VNYXAgJiYgdHlwZW9mIGJ0b2EgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBjc3MgKz0gXCJcXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LFwiLmNvbmNhdChidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShzb3VyY2VNYXApKSkpLCBcIiAqL1wiKTtcbiAgfVxuXG4gIC8vIEZvciBvbGQgSUVcbiAgLyogaXN0YW5idWwgaWdub3JlIGlmICAqL1xuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuZnVuY3Rpb24gcmVtb3ZlU3R5bGVFbGVtZW50KHN0eWxlRWxlbWVudCkge1xuICAvLyBpc3RhbmJ1bCBpZ25vcmUgaWZcbiAgaWYgKHN0eWxlRWxlbWVudC5wYXJlbnROb2RlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0eWxlRWxlbWVudC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudCk7XG59XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiB7XG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZSgpIHt9LFxuICAgICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7fVxuICAgIH07XG4gIH1cbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IGRvbUFQSTsiLCJcInVzZSBzdHJpY3RcIjtcblxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5mdW5jdGlvbiBzdHlsZVRhZ1RyYW5zZm9ybShjc3MsIHN0eWxlRWxlbWVudCkge1xuICBpZiAoc3R5bGVFbGVtZW50LnN0eWxlU2hlZXQpIHtcbiAgICBzdHlsZUVsZW1lbnQuc3R5bGVTaGVldC5jc3NUZXh0ID0gY3NzO1xuICB9IGVsc2Uge1xuICAgIHdoaWxlIChzdHlsZUVsZW1lbnQuZmlyc3RDaGlsZCkge1xuICAgICAgc3R5bGVFbGVtZW50LnJlbW92ZUNoaWxkKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKTtcbiAgICB9XG4gICAgc3R5bGVFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzcykpO1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIm1vZHVsZS5leHBvcnRzID0gX19XRUJQQUNLX0VYVEVSTkFMX01PRFVMRV9fMTE5X187IiwibW9kdWxlLmV4cG9ydHMgPSBfX1dFQlBBQ0tfRVhURVJOQUxfTU9EVUxFX18yMjZfXzsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdGlkOiBtb2R1bGVJZCxcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5uYyA9IHVuZGVmaW5lZDsiLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYXZhdGFyLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2F2YXRhci1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJ2YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsgQ2hpbGRyZW4sIGNsb25lRWxlbWVudCwgZm9yd2FyZFJlZiwgaXNWYWxpZEVsZW1lbnQsIH0gZnJvbSBcInJlYWN0XCI7XG5mdW5jdGlvbiBjb21wb3NlUmVmcygpIHtcbiAgICB2YXIgcmVmcyA9IFtdO1xuICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCBhcmd1bWVudHMubGVuZ3RoOyBfaSsrKSB7XG4gICAgICAgIHJlZnNbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICB9XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChub2RlKSB7XG4gICAgICAgIHJlZnMuZm9yRWFjaChmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWYgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICByZWYobm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufVxudmFyIENvbXBvc2VyID0gZm9yd2FyZFJlZihmdW5jdGlvbiAoX2EsIHJlZikge1xuICAgIHZhciBjaGlsZHJlbiA9IF9hLmNoaWxkcmVuLCBjb21wb3NlclByb3BzID0gX19yZXN0KF9hLCBbXCJjaGlsZHJlblwiXSk7XG4gICAgdmFyIGNoaWxkQXJyYXkgPSBDaGlsZHJlbi50b0FycmF5KGNoaWxkcmVuKTtcbiAgICBpZiAoY2hpbGRBcnJheS5sZW5ndGggPiAxKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNvbXBvc2VyIGNhbiBvbmx5IGhhdmUgb25lIGNoaWxkXCIpO1xuICAgIH1cbiAgICB2YXIgaXNWYWxpZENoaWxkID0gaXNWYWxpZEVsZW1lbnQoY2hpbGRBcnJheVswXSk7XG4gICAgaWYgKCFpc1ZhbGlkQ2hpbGQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiY2hpbGQgc2hvdWxkIGJlIFJlYWN0IG5vZGUhXCIpO1xuICAgIH1cbiAgICB2YXIgY2hpbGQgPSBjaGlsZEFycmF5WzBdO1xuICAgIHZhciBjaGlsZFJlZiA9IGdldEVsZW1lbnRSZWYoY2hpbGQpO1xuICAgIHZhciBtZXJnZWRQcm9wcyA9IG1lcmdlUHJvcHMoY29tcG9zZXJQcm9wcywgY2hpbGQucHJvcHMpO1xuICAgIHJldHVybiBjbG9uZUVsZW1lbnQoY2hpbGQsIF9fYXNzaWduKF9fYXNzaWduKHt9LCBtZXJnZWRQcm9wcyksIHsgcmVmOiByZWYgPyBjb21wb3NlUmVmcyhyZWYsIGNoaWxkUmVmKSA6IGNoaWxkUmVmIH0pKTtcbn0pO1xuQ29tcG9zZXIuZGlzcGxheU5hbWUgPSBcIkNvbXBvc2VyXCI7XG5mdW5jdGlvbiBtZXJnZVByb3BzKGNvbXBvc2VyUHJvcHMsIGNoaWxkUHJvcHMpIHtcbiAgICB2YXIgb3ZlcnJpZGVQcm9wcyA9IF9fYXNzaWduKHt9LCBjaGlsZFByb3BzKTtcbiAgICB2YXIgX2xvb3BfMSA9IGZ1bmN0aW9uIChwcm9wTmFtZSkge1xuICAgICAgICB2YXIgY29tcG9zZXJQcm9wVmFsdWUgPSBjb21wb3NlclByb3BzW3Byb3BOYW1lXTtcbiAgICAgICAgdmFyIGNoaWxkUHJvcFZhbHVlID0gY2hpbGRQcm9wc1twcm9wTmFtZV07XG4gICAgICAgIHZhciBpc0hhbmRsZXIgPSAvXm9uW0EtWl0vLnRlc3QocHJvcE5hbWUpO1xuICAgICAgICBpZiAoaXNIYW5kbGVyKSB7XG4gICAgICAgICAgICBpZiAoY29tcG9zZXJQcm9wVmFsdWUgJiYgY2hpbGRQcm9wVmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvdmVycmlkZVByb3BzW3Byb3BOYW1lXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFyZ3MgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGFyZ3VtZW50cy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbX2ldID0gYXJndW1lbnRzW19pXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICBjb21wb3NlclByb3BWYWx1ZS5hcHBseSh2b2lkIDAsIGFyZ3MpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChjb21wb3NlclByb3BWYWx1ZSkge1xuICAgICAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gY29tcG9zZXJQcm9wVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwic3R5bGVcIikge1xuICAgICAgICAgICAgb3ZlcnJpZGVQcm9wc1twcm9wTmFtZV0gPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgY29tcG9zZXJQcm9wVmFsdWUpLCBjaGlsZFByb3BWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAocHJvcE5hbWUgPT09IFwiY2xhc3NOYW1lXCIpIHtcbiAgICAgICAgICAgIG92ZXJyaWRlUHJvcHNbcHJvcE5hbWVdID0gW2NvbXBvc2VyUHJvcFZhbHVlLCBjaGlsZFByb3BWYWx1ZV1cbiAgICAgICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgLmpvaW4oXCIgXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmb3IgKHZhciBwcm9wTmFtZSBpbiBjb21wb3NlclByb3BzKSB7XG4gICAgICAgIF9sb29wXzEocHJvcE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gX19hc3NpZ24oX19hc3NpZ24oe30sIGNvbXBvc2VyUHJvcHMpLCBvdmVycmlkZVByb3BzKTtcbn1cbmZ1bmN0aW9uIGdldEVsZW1lbnRSZWYoZWxlbWVudCkge1xuICAgIHZhciBfYSwgX2I7XG4gICAgdmFyIGdldHRlciA9IChfYSA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZWxlbWVudC5wcm9wcywgXCJyZWZcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXQ7XG4gICAgdmFyIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucmVmO1xuICAgIH1cbiAgICBnZXR0ZXIgPSAoX2IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGVsZW1lbnQsIFwicmVmXCIpKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuZ2V0O1xuICAgIG1heVdhcm4gPSBnZXR0ZXIgJiYgXCJpc1JlYWN0V2FybmluZ1wiIGluIGdldHRlciAmJiBnZXR0ZXIuaXNSZWFjdFdhcm5pbmc7XG4gICAgaWYgKG1heVdhcm4pIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQucHJvcHMucmVmO1xuICAgIH1cbiAgICByZXR1cm4gKGVsZW1lbnQucHJvcHMucmVmIHx8IGVsZW1lbnQucmVmKTtcbn1cbmV4cG9ydCBkZWZhdWx0IENvbXBvc2VyO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmV4cG9ydCB2YXIgQmFzZUJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuYXNDaGlsZCwgYXNDaGlsZCA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hLCBib3JkZXJDb2xvciA9IHByb3BzLmJvcmRlckNvbG9yLCBfYiA9IHByb3BzLnRleHRDb2xvciwgdGV4dENvbG9yID0gX2IgPT09IHZvaWQgMCA/IFwiYmxhY2tcIiA6IF9iLCByYWRpdXMgPSBwcm9wcy5yYWRpdXMsIGJhY2tncm91bmRDb2xvciA9IHByb3BzLmJhY2tncm91bmRDb2xvciwgX2MgPSBwcm9wcy5zaXplLCBzaXplID0gX2MgPT09IHZvaWQgMCA/IFwibFwiIDogX2MsIHN0eWxlID0gcHJvcHMuc3R5bGUsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgdmFyIGNvbXBvc2VkQ2xhc3NOYW1lID0gXCJudXJpLXRoZW1lIFwiLmNvbmNhdChhc0NoaWxkID8gXCJcIiA6IFwiYmFzZS1iYWRnZVwiLCBcIiBcIikuY29uY2F0KHNpemUsIFwiIGJvcmRlci1cIikuY29uY2F0KGJvcmRlckNvbG9yLCBcIiB0ZXh0LVwiKS5jb25jYXQodGV4dENvbG9yLCBcIiBiYWNrZ3JvdW5kLVwiKS5jb25jYXQoYmFja2dyb3VuZENvbG9yLCBcIiBcIikuY29uY2F0KGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgc3R5bGU6IF9fYXNzaWduKHsgYm9yZGVyUmFkaXVzOiBcIlwiLmNvbmNhdChyYWRpdXMsIFwicHhcIikgfSwgc3R5bGUpLCBjbGFzc05hbWU6IGNvbXBvc2VkQ2xhc3NOYW1lLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFwiLi9hdmF0YXItc3R5bGUuY3NzXCI7XG5pbXBvcnQgeyBCYXNlQmFkZ2UgfSBmcm9tIFwiLi4vYmFkZ2UvYmFzZS1iYWRnZVwiO1xudmFyIEF2YXRhciA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBzaXplID0gcHJvcHMuc2l6ZSwgc3JjID0gcHJvcHMuc3JjLCBhbHQgPSBwcm9wcy5hbHQsIGJhZGdlT3B0aW9uID0gcHJvcHMuYmFkZ2VPcHRpb247XG4gICAgdmFyIF9hID0gdXNlU3RhdGUoZmFsc2UpLCBpc0ltYWdlRG93bmxvYWQgPSBfYVswXSwgc2V0SXNJbWFnZURvd25sb2FkID0gX2FbMV07XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IHNyYywgYWx0OiBhbHQgIT09IG51bGwgJiYgYWx0ICE9PSB2b2lkIDAgPyBhbHQgOiBcImF2YXRhclwiLCBjbGFzc05hbWU6IFwiYXZhdGFyIFwiLmNvbmNhdChzaXplLCBcIiBcIikuY29uY2F0KCFpc0ltYWdlRG93bmxvYWQgPyBcImhpZGRlblwiIDogXCJcIiksIG9uTG9hZDogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2V0SXNJbWFnZURvd25sb2FkKHRydWUpOyB9IH0pLCAhaXNJbWFnZURvd25sb2FkICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImF2YXRhciBhdmF0YXItc2tlbGV0b24gXCIuY29uY2F0KHNpemUpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJhdmF0YXIgc2tlbGV0b24tYW5pbWF0aW9uXCIgfSkgfSkpLCBfanN4KEJhc2VCYWRnZSwgeyBhc0NoaWxkOiB0cnVlLCBzdHlsZToge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICByaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IGJhZGdlT3B0aW9uIH0pXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgQXZhdGFyO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2J1dHRvbi1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9idXR0b24tc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NvbG9yLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9mb250LmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2ZvbnQuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbmltcG9ydCBcIi4vYnV0dG9uLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2NvbG9yLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgQmFzZUJ1dHRvbiA9IGZvcndhcmRSZWYoZnVuY3Rpb24gKF9hLCByZWYpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBfYS5jaGlsZHJlbiwgX2IgPSBfYS5hc0NoaWxkLCBhc0NoaWxkID0gX2IgPT09IHZvaWQgMCA/IGZhbHNlIDogX2IsIGNsYXNzTmFtZSA9IF9hLmNsYXNzTmFtZSwgcHJvcHMgPSBfX3Jlc3QoX2EsIFtcImNoaWxkcmVuXCIsIFwiYXNDaGlsZFwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImJ1dHRvblwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCBfX2Fzc2lnbih7IHJlZjogcmVmLCBjbGFzc05hbWU6IGFzQ2hpbGQgPyBjbGFzc05hbWUgOiBcImJhc2UtYnV0dG9uIFwiLmNvbmNhdChjbGFzc05hbWUgIT09IG51bGwgJiYgY2xhc3NOYW1lICE9PSB2b2lkIDAgPyBjbGFzc05hbWUgOiBcIlwiKSB9LCBwcm9wcywgeyBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuZXhwb3J0IGRlZmF1bHQgQmFzZUJ1dHRvbjtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9sb2FkaW5nLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2xvYWRpbmctc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBcIi4vbG9hZGluZy1zdHlsZS5jc3NcIjtcbnZhciBMb2FkaW5nID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJjb21wb25lbnQtbG9hZGluZy1jb250YWluZXJcIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXJpbmdcIiwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibG9hZGluZy1pbmRpY2F0b3Itc2luZ2xlLXJpbmdcIiB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJsb2FkaW5nLWluZGljYXRvci1zaW5nbGUtcmluZ1wiIH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImxvYWRpbmctaW5kaWNhdG9yLXNpbmdsZS1yaW5nXCIgfSldIH0pIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBMb2FkaW5nO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBCYXNlQnV0dG9uIGZyb20gXCIuL2Jhc2UtYnV0dG9uXCI7XG5pbXBvcnQgTG9hZGluZyBmcm9tIFwiLi4vbG9hZGluZy9sb2FkaW5nXCI7XG52YXIgQ1RBQnV0dG9uID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHRleHQgPSBwcm9wcy50ZXh0LCBfYSA9IHByb3BzLnZhcmlhbnQsIHZhcmlhbnQgPSBfYSA9PT0gdm9pZCAwID8gXCJwcmltYXJ5XCIgOiBfYSwgX2IgPSBwcm9wcy5zaXplLCBzaXplID0gX2IgPT09IHZvaWQgMCA/IFwibVwiIDogX2IsIF9jID0gcHJvcHMuZGlzYWJsZWQsIGRpc2FibGVkID0gX2MgPT09IHZvaWQgMCA/IGZhbHNlIDogX2MsIGljb24gPSBwcm9wcy5pY29uLCBfZCA9IHByb3BzLmxvYWRpbmcsIGxvYWRpbmcgPSBfZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfZDtcbiAgICByZXR1cm4gKF9qc3goQmFzZUJ1dHRvbiwgX19hc3NpZ24oe30sIHByb3BzLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGN0YS1idXR0b24gXCIuY29uY2F0KGRpc2FibGVkID8gXCJkaXNhYmxlZFwiIDogdmFyaWFudCwgXCIgXCIpLmNvbmNhdChzaXplKSwgY2hpbGRyZW46IGxvYWRpbmcgPyAoX2pzeChMb2FkaW5nLCB7fSkpIDogKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2ljb24sIHRleHRdIH0pKSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENUQUJ1dHRvbjtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIE9wdGlvbkJhZGdlID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIG9wdGlvbiA9IHByb3BzLm9wdGlvbjtcbiAgICByZXR1cm4gX2pzeChCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjaGlsZHJlbjogb3B0aW9uIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBPcHRpb25CYWRnZTtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0QmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0O1xuICAgIHJldHVybiAoX2pzeHMoQmFzZUJhZGdlLCBfX2Fzc2lnbih7fSwgcHJvcHMsIHsgY2hpbGRyZW46IFtpY29uLCBfanN4KFwic3BhblwiLCB7IGNoaWxkcmVuOiB0ZXh0IH0pXSB9KSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IEljb25UZXh0QmFkZ2U7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vYmFkZ2Utc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgXCIuL2JhZGdlLXN0eWxlLmNzc1wiO1xuaW1wb3J0IHsgQmFzZUJhZGdlIH0gZnJvbSBcIi4vYmFzZS1iYWRnZVwiO1xudmFyIEljb25UZXh0T3B0aW9uQmFkZ2UgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgaWNvbiA9IHByb3BzLmljb24sIHRleHQgPSBwcm9wcy50ZXh0LCBvcHRpb24gPSBwcm9wcy5vcHRpb247XG4gICAgcmV0dXJuIChfanN4cyhCYXNlQmFkZ2UsIF9fYXNzaWduKHt9LCBwcm9wcywgeyBjbGFzc05hbWU6IFwiaWNvbi10ZXh0LW9wdGlvblwiLCBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNoaWxkcmVuOiBbaWNvbiwgX2pzeChcInNwYW5cIiwgeyBjaGlsZHJlbjogdGV4dCB9KV0gfSksIG9wdGlvbl0gfSkpKTtcbn07XG5leHBvcnQgZGVmYXVsdCBJY29uVGV4dE9wdGlvbkJhZGdlO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xub3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RhYmxlLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsInZhciBfX2Fzc2lnbiA9ICh0aGlzICYmIHRoaXMuX19hc3NpZ24pIHx8IGZ1bmN0aW9uICgpIHtcbiAgICBfX2Fzc2lnbiA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24odCkge1xuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcbiAgICAgICAgICAgIHMgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkpXG4gICAgICAgICAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHQ7XG4gICAgfTtcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn07XG52YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90YWJsZS1zdHlsZS5jc3NcIjtcbnZhciBUYWJsZVJvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICByZXR1cm4gX2pzeChcInRhYmxlXCIsIHsgY2xhc3NOYW1lOiBcImJhc2UtdGFibGUgdGFibGUtcm9vdFwiLCBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSk7XG59O1xudmFyIFRhYmxlSGVhZGVyID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIF9hID0gcHJvcHMuanVzdGlmeSwganVzdGlmeSA9IF9hID09PSB2b2lkIDAgPyBcImNlbnRlclwiIDogX2EsIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wianVzdGlmeVwiLCBcImNsYXNzTmFtZVwiXSk7XG4gICAgcmV0dXJuIChfanN4KFwidGhlYWRcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1oZWFkZXIgXCIuY29uY2F0KGp1c3RpZnksIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKTtcbn07XG52YXIgVGFibGVSb3cgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIl0pO1xuICAgIHZhciBjbGFzc05hbWVzID0gW1wiYmFzZS10YWJsZVwiLCBcInRhYmxlLXJvd1wiLCBjbGFzc05hbWVdLmpvaW4oXCIgXCIpO1xuICAgIHJldHVybiAoX2pzeChcInRyXCIsIF9fYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc05hbWVzIH0sIHJlc3QsIHsgY2hpbGRyZW46IHByb3BzLmNoaWxkcmVuIH0pKSk7XG59O1xudmFyIFRhYmxlQm9keSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHJldHVybiBfanN4KFwidGJvZHlcIiwgeyBjbGFzc05hbWU6IFwiYmFzZS10YWJsZSB0YWJsZS1ib2R5XCIsIGNoaWxkcmVuOiBwcm9wcy5jaGlsZHJlbiB9KTtcbn07XG52YXIgVGFibGVDZWxsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgY2xhc3NOYW1lcyA9IFtcImJhc2UtdGFibGVcIiwgXCJ0YWJsZS1jZWxsXCIsIGNsYXNzTmFtZV0uam9pbihcIiBcIik7XG4gICAgcmV0dXJuIChfanN4KFwidGRcIiwgX19hc3NpZ24oeyBjbGFzc05hbWU6IGNsYXNzTmFtZXMgfSwgcmVzdCwgeyBjaGlsZHJlbjogcHJvcHMuY2hpbGRyZW4gfSkpKTtcbn07XG5UYWJsZVJvb3QuSGVhZGVyID0gVGFibGVIZWFkZXI7XG5UYWJsZVJvb3QuQm9keSA9IFRhYmxlQm9keTtcblRhYmxlUm9vdC5Sb3cgPSBUYWJsZVJvdztcblRhYmxlUm9vdC5DZWxsID0gVGFibGVDZWxsO1xuZXhwb3J0IGRlZmF1bHQgVGFibGVSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBUYWJsZVJvb3QgZnJvbSBcIi4vYmFzZS10YWJsZVwiO1xuaW1wb3J0IEJhc2VCdXR0b24gZnJvbSBcIi4uL2J1dHRvbi9iYXNlLWJ1dHRvblwiO1xudmFyIERhdGFUYWJsZSA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciByb3dzID0gcHJvcHMucm93cywgY29sdW1ucyA9IHByb3BzLmNvbHVtbnM7XG4gICAgdmFyIF9hID0gdXNlU3RhdGUocm93cy5tYXAoZnVuY3Rpb24gKHJvdykgeyByZXR1cm4gKHsgcm93OiByb3csIGhpZGU6IGZhbHNlIH0pOyB9KSksIGRpc3BsYXlSb3dzID0gX2FbMF0sIHNldERpc3BsYXlSb3dzID0gX2FbMV07XG4gICAgdXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgc2V0RGlzcGxheVJvd3Mocm93cy5tYXAoZnVuY3Rpb24gKHJvdykge1xuICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgIHJvdzogcm93LFxuICAgICAgICAgICAgICAgIGhpZGU6IChfYiA9IChfYSA9IGRpc3BsYXlSb3dzLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW0ucm93LmlkID09PSByb3cuaWQ7IH0pKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuaGlkZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSkpO1xuICAgIH0sIFtyb3dzXSk7XG4gICAgcmV0dXJuIChfanN4cyhUYWJsZVJvb3QsIHsgY2hpbGRyZW46IFtfanN4KFRhYmxlUm9vdC5IZWFkZXIsIHsgY2xhc3NOYW1lOiBcImRhdGEtdGFibGVcIiwgY2hpbGRyZW46IF9qc3goVGFibGVSb290LlJvdywgeyBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LkNlbGwsIHsgY2xhc3NOYW1lOiBpdGVtLmhpZGUgPyBcImhpZGVcIiA6IFwiXCIsIGNoaWxkcmVuOiBfanN4KEJhc2VCdXR0b24sIHsgYXNDaGlsZDogdHJ1ZSwgb25DbGljazogZnVuY3Rpb24gKCkgeyB2YXIgX2EsIF9iOyByZXR1cm4gKF9iID0gKF9hID0gaXRlbS5yb3cpLm9uQ2xpY2tSb3cpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBpdGVtLnJvdy5pZCk7IH0sIGNoaWxkcmVuOiBpdGVtLnJvdy52YWx1ZSB9KSB9LCBpdGVtLnJvdy5pZCkpO1xuICAgICAgICAgICAgICAgICAgICB9KSB9KSB9KSwgX2pzeChUYWJsZVJvb3QuQm9keSwgeyBjaGlsZHJlbjogY29sdW1ucy5tYXAoZnVuY3Rpb24gKGNvbHVtbikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goVGFibGVSb290LlJvdywgeyBjbGFzc05hbWU6IFwiZGF0YS10YWJsZVwiLCBjaGlsZHJlbjogZGlzcGxheVJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiAoX2pzeChUYWJsZVJvb3QuQ2VsbCwgeyBjbGFzc05hbWU6IGl0ZW0uaGlkZSA/IFwiaGlkZVwiIDogXCJcIiwgY2hpbGRyZW46IF9qc3goQmFzZUJ1dHRvbiwgeyBhc0NoaWxkOiB0cnVlLCBvbkNsaWNrOiBmdW5jdGlvbiAoKSB7IHZhciBfYSwgX2I7IHJldHVybiAoX2IgPSAoX2EgPSBjb2x1bW5baXRlbS5yb3cuaWRdKS5vbkNsaWNrQ2VsbCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpOyB9LCBjaGlsZHJlbjogY29sdW1uW2l0ZW0ucm93LmlkXS52YWx1ZSB9KSB9LCBpdGVtLnJvdy5pZCkpOyB9KSB9KSk7XG4gICAgICAgICAgICAgICAgfSkgfSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBEYXRhVGFibGU7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuICAgICAgIGV4cG9ydCBkZWZhdWx0IGNvbnRlbnQgJiYgY29udGVudC5sb2NhbHMgPyBjb250ZW50LmxvY2FscyA6IHVuZGVmaW5lZDtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0LCB1c2VTdGF0ZSwgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBcIi4vdGV4dC1maWVsZC1zdHlsZS5jc3NcIjtcbmltcG9ydCBcIi4uLy4uL3N0eWxlcy90b2tlbi9mb250LmNzc1wiO1xudmFyIFRleHRMYWJlbCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lO1xuICAgIHJldHVybiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc05hbWUsIGNoaWxkcmVuOiB0ZXh0IH0pO1xufTtcbnZhciBJbnB1dEZpZWxkID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcGxhY2Vob2xkZXIgPSBwcm9wcy5wbGFjZWhvbGRlciwgbmFtZSA9IHByb3BzLm5hbWUsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2U7XG4gICAgdmFyIF9hID0gdXNlQ29udGV4dChUZXh0RmllbGRDb250ZXh0KSwgY29udmVydEVycm9yTWVzc2FnZSA9IF9hLmNvbnZlcnRFcnJvck1lc3NhZ2UsIGNvbnZlcnRFcnJvclN0YXRlID0gX2EuY29udmVydEVycm9yU3RhdGUsIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnM7XG4gICAgdmFyIHZhbGlkYXRlSW5wdXQgPSBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbGlkYXRpb25zKSB7XG4gICAgICAgICAgICB2YXIgZmFpbGVkVmFsaWRhdGlvbiA9IHZhbGlkYXRpb25zLmZpbmQoZnVuY3Rpb24gKHZhbGlkYXRpb24pIHsgcmV0dXJuICF2YWxpZGF0aW9uLnJ1bGUudGVzdCh2YWx1ZSk7IH0pO1xuICAgICAgICAgICAgaWYgKGZhaWxlZFZhbGlkYXRpb24pIHtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZSh0cnVlKTtcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JNZXNzYWdlKGZhaWxlZFZhbGlkYXRpb24ubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29udmVydEVycm9yU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgY29udmVydEVycm9yTWVzc2FnZShcIlwiKTtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG4gICAgcmV0dXJuIChfanN4KFwiaW5wdXRcIiwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlSW5wdXQoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgICAgICB9IH0pKTtcbn07XG52YXIgSGVscGVyVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgX2EgPSBwcm9wcy5jbGFzc05hbWUsIGNsYXNzTmFtZSA9IF9hID09PSB2b2lkIDAgPyBmYWxzZSA6IF9hO1xuICAgIHZhciBfYiA9IHVzZUNvbnRleHQoVGV4dEZpZWxkQ29udGV4dCksIGVycm9yTWVzc2FnZSA9IF9iLmVycm9yTWVzc2FnZSwgaXNFcnJvciA9IF9iLmlzRXJyb3I7XG4gICAgdmFyIGVycm9yQ2xhc3NOYW1lID0gaXNFcnJvciA/IFwiZXJyb3JcIiA6IFwiXCI7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChjbGFzc05hbWUsIFwiIFwiKS5jb25jYXQoZXJyb3JDbGFzc05hbWUpLCBjaGlsZHJlbjogZXJyb3JNZXNzYWdlICE9PSBudWxsICYmIGVycm9yTWVzc2FnZSAhPT0gdm9pZCAwID8gZXJyb3JNZXNzYWdlIDogdGV4dCB9KSk7XG59O1xudmFyIFRleHRGaWVsZENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICBjb252ZXJ0RXJyb3JTdGF0ZTogZnVuY3Rpb24gKCkgeyB9LFxuICAgIHZhbGlkYXRpb25zOiBbXSxcbiAgICBlcnJvck1lc3NhZ2U6IFwiXCIsXG4gICAgY29udmVydEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKHZhbHVlKSB7IH0sXG59KTtcbnZhciBUZXh0RmllbGRSb290ID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gX2EuY2hpbGRyZW4sIHZhbGlkYXRpb25zID0gX2EudmFsaWRhdGlvbnMsIHdpZHRoID0gX2Eud2lkdGg7XG4gICAgdmFyIF9iID0gdXNlU3RhdGUoZmFsc2UpLCBpc0Vycm9yID0gX2JbMF0sIHNldElzRXJyb3IgPSBfYlsxXTtcbiAgICB2YXIgX2MgPSB1c2VTdGF0ZShcIlwiKSwgZXJyb3JNZXNzYWdlID0gX2NbMF0sIHNldEVycm9yTWVzc2FnZSA9IF9jWzFdO1xuICAgIHZhciBjb252ZXJ0RXJyb3JTdGF0ZSA9IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgICAgICBzZXRJc0Vycm9yKHZhbHVlKTtcbiAgICB9O1xuICAgIHZhciBjb252ZXJ0RXJyb3JNZXNzYWdlID0gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgIHNldEVycm9yTWVzc2FnZSh2YWx1ZSk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBcInRleHQtZmllbGQtcm9vdFwiLCBzdHlsZTogeyBkaXNwbGF5OiBcImJsb2NrXCIsIHdpZHRoOiBcIlwiLmNvbmNhdCh3aWR0aCwgXCJweFwiKSB9LCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgaXNFcnJvcjogaXNFcnJvcixcbiAgICAgICAgICAgICAgICBjb252ZXJ0RXJyb3JTdGF0ZTogY29udmVydEVycm9yU3RhdGUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGlvbnM6IHZhbGlkYXRpb25zLFxuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZTogZXJyb3JNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGNvbnZlcnRFcnJvck1lc3NhZ2U6IGNvbnZlcnRFcnJvck1lc3NhZ2UsXG4gICAgICAgICAgICB9LCBjaGlsZHJlbjogY2hpbGRyZW4gfSkgfSkpO1xufTtcblRleHRGaWVsZFJvb3QuVGV4dExhYmVsID0gVGV4dExhYmVsO1xuVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkID0gSW5wdXRGaWVsZDtcblRleHRGaWVsZFJvb3QuSGVscGVyVGV4dCA9IEhlbHBlclRleHQ7XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRSb290O1xuIiwiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBUZXh0RmllbGRSb290IGZyb20gXCIuL2Jhc2UtdGV4dC1maWVsZFwiO1xuaW1wb3J0IFwiLi90ZXh0LWZpZWxkLXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG52YXIgVGV4dEZpZWxkID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIF9iID0gX2Eud2lkdGgsIHdpZHRoID0gX2IgPT09IHZvaWQgMCA/IDM0MyA6IF9iLCBfYyA9IF9hLnBsYWNlaG9sZGVyLCBwbGFjZWhvbGRlciA9IF9jID09PSB2b2lkIDAgPyBcIlwiIDogX2MsIF9kID0gX2EubmFtZSwgbmFtZSA9IF9kID09PSB2b2lkIDAgPyBcIlwiIDogX2QsIGhlbHBlclRleHQgPSBfYS5oZWxwZXJUZXh0LCBsYWJlbFRleHQgPSBfYS5sYWJlbFRleHQsIG9uQ2hhbmdlID0gX2Eub25DaGFuZ2U7XG4gICAgcmV0dXJuIChfanN4cyhUZXh0RmllbGRSb290LCB7IHZhbGlkYXRpb25zOiBbXSwgd2lkdGg6IHdpZHRoLCBjaGlsZHJlbjogW2xhYmVsVGV4dCAmJiAoX2pzeChUZXh0RmllbGRSb290LlRleHRMYWJlbCwgeyB0ZXh0OiBsYWJlbFRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgbGFiZWxcIiB9KSksIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSB0ZXh0LWZpZWxkIGlucHV0LXdyYXBwZXJcIiwgY2hpbGRyZW46IF9qc3goVGV4dEZpZWxkUm9vdC5JbnB1dEZpZWxkLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXRcIiwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBuYW1lOiBuYW1lLCBvbkNoYW5nZTogb25DaGFuZ2UgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFRleHRGaWVsZFJvb3QgZnJvbSBcIi4vYmFzZS10ZXh0LWZpZWxkXCI7XG5pbXBvcnQgXCIuL3RleHQtZmllbGQtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBUZXh0RmllbGRXaXRoRXJyb3IgPSBmdW5jdGlvbiAoX2EpIHtcbiAgICB2YXIgX2IgPSBfYS53aWR0aCwgd2lkdGggPSBfYiA9PT0gdm9pZCAwID8gMzQzIDogX2IsIF9jID0gX2EucGxhY2Vob2xkZXIsIHBsYWNlaG9sZGVyID0gX2MgPT09IHZvaWQgMCA/IFwiXCIgOiBfYywgX2QgPSBfYS5uYW1lLCBuYW1lID0gX2QgPT09IHZvaWQgMCA/IFwiXCIgOiBfZCwgaGVscGVyVGV4dCA9IF9hLmhlbHBlclRleHQsIGxhYmVsVGV4dCA9IF9hLmxhYmVsVGV4dCwgdmFsaWRhdGlvbnMgPSBfYS52YWxpZGF0aW9ucztcbiAgICByZXR1cm4gKF9qc3hzKFRleHRGaWVsZFJvb3QsIHsgd2lkdGg6IHdpZHRoLCB2YWxpZGF0aW9uczogdmFsaWRhdGlvbnMsIGNoaWxkcmVuOiBbbGFiZWxUZXh0ICYmIChfanN4KFRleHRGaWVsZFJvb3QuVGV4dExhYmVsLCB7IHRleHQ6IGxhYmVsVGV4dCwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBsYWJlbFwiIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaW5wdXQtd3JhcHBlclwiLCBjaGlsZHJlbjogX2pzeChUZXh0RmllbGRSb290LklucHV0RmllbGQsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgdGV4dC1maWVsZCBpbnB1dFwiLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIG5hbWU6IG5hbWUgfSkgfSksIGhlbHBlclRleHQgJiYgKF9qc3goVGV4dEZpZWxkUm9vdC5IZWxwZXJUZXh0LCB7IHRleHQ6IGhlbHBlclRleHQsIGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIHRleHQtZmllbGQgaGVscGVyLXRleHRcIiwgaXNFcnJvcjogdHJ1ZSB9KSldIH0pKTtcbn07XG5leHBvcnQgZGVmYXVsdCBUZXh0RmllbGRXaXRoRXJyb3I7XG4iLCJpbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuZXhwb3J0IHZhciB1c2VFeHRlcm5hbFN0YXRlID0gZnVuY3Rpb24gKF9hKSB7XG4gICAgdmFyIHByb3AgPSBfYS5wcm9wLCBoYW5kbGVyID0gX2EuaGFuZGxlciwgZGVmYXVsdFByb3AgPSBfYS5kZWZhdWx0UHJvcDtcbiAgICB2YXIgX2IgPSB1c2VTdGF0ZShwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcCksIGlubmVyU3RhdGUgPSBfYlswXSwgc2V0SW5uZXJTdGF0ZSA9IF9iWzFdO1xuICAgIHZhciBpc0NvbnRyb2xsZWRCeUV4dGVybmFsID0gcHJvcCAhPT0gdW5kZWZpbmVkO1xuICAgIHZhciB2YWx1ZSA9IGlzQ29udHJvbGxlZEJ5RXh0ZXJuYWwgPyBwcm9wIDogaW5uZXJTdGF0ZTtcbiAgICB2YXIgc2V0VmFsdWUgPSBmdW5jdGlvbiAoaGFuZGxlZFZhbHVlKSB7XG4gICAgICAgIGlmIChpc0NvbnRyb2xsZWRCeUV4dGVybmFsKSB7XG4gICAgICAgICAgICB2YXIgc2V0dGVyID0gaGFuZGxlZFZhbHVlO1xuICAgICAgICAgICAgdmFyIHZhbHVlXzEgPSB0eXBlb2YgaGFuZGxlZFZhbHVlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IHNldHRlcihwcm9wICE9PSBudWxsICYmIHByb3AgIT09IHZvaWQgMCA/IHByb3AgOiBkZWZhdWx0UHJvcClcbiAgICAgICAgICAgICAgICA6IGhhbmRsZWRWYWx1ZTtcbiAgICAgICAgICAgIGhhbmRsZXIgPT09IG51bGwgfHwgaGFuZGxlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGFuZGxlcih2YWx1ZV8xKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHNldElubmVyU3RhdGUoaGFuZGxlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIFt2YWx1ZSwgc2V0VmFsdWVdO1xufTtcbiIsImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IENvbXBvc2VyIGZyb20gXCIuLi9jb3JlL2NvbXBvc2VyXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbnZhciBSYWRpb0J1dHRvbiA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuLCBhc0NoaWxkID0gcHJvcHMuYXNDaGlsZCwgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLCBpZCA9IHByb3BzLmlkO1xuICAgIHZhciBfYSA9IHVzZUNvbnRleHQoUmFkaW9Db250ZXh0KSwgc2VsZWN0ZWQgPSBfYS5zZWxlY3RlZCwgb25DaGFuZ2UgPSBfYS5vbkNoYW5nZTtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiZGl2XCI7XG4gICAgcmV0dXJuIChfanN4KENvbXAsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KGNsYXNzTmFtZSksIG9uQ2xpY2s6IGZ1bmN0aW9uICgpIHsgcmV0dXJuIG9uQ2hhbmdlKGlkKTsgfSwgY2hpbGRyZW46IGlkID09PSBzZWxlY3RlZCA/IGNoaWxkcmVuIDogbnVsbCB9KSk7XG59O1xudmFyIFJhZGlvSW5kaWNhdG9yID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBpZCA9IHByb3BzLmlkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIHNlbGVjdGVkID0gdXNlQ29udGV4dChSYWRpb0NvbnRleHQpLnNlbGVjdGVkO1xuICAgIHZhciBDb21wID0gYXNDaGlsZCA/IENvbXBvc2VyIDogXCJpbnB1dFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IHR5cGU6IFwicmFkaW9cIiwgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgXCIuY29uY2F0KHNlbGVjdGVkID09PSBpZCA/IFwic2VsZWN0ZWRcIiA6IFwiXCIsIFwiIFwiKS5jb25jYXQoY2xhc3NOYW1lKSwgY2hlY2tlZDogc2VsZWN0ZWQgPT09IGlkLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpO1xufTtcbnZhciBSYWRpb0xhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcImxhYmVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwibnVyaS10aGVtZSBcIi5jb25jYXQoY2xhc3NOYW1lKSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb09wdGlvbkdyb3VwID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjbGFzc05hbWUgPSBwcm9wcy5jbGFzc05hbWU7XG4gICAgdmFyIENvbXAgPSBhc0NoaWxkID8gQ29tcG9zZXIgOiBcInVsXCI7XG4gICAgcmV0dXJuIF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IGNsYXNzTmFtZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pO1xufTtcbnZhciBSYWRpb0NvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBzZWxlY3RlZDogbnVsbCxcbiAgICBvbkNoYW5nZTogZnVuY3Rpb24gKGlkKSB7IH0sXG59KTtcbnZhciBSYWRpb1Jvb3QgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgb3B0aW9ucyA9IHByb3BzLm9wdGlvbnMsIF9hID0gcHJvcHMuc2VsZWN0ZWQsIHNlbGVjdGVkID0gX2EgPT09IHZvaWQgMCA/IG51bGwgOiBfYSwgZXh0ZXJuYWxPbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlO1xuICAgIHZhciBfYiA9IHVzZUV4dGVybmFsU3RhdGUoe1xuICAgICAgICBwcm9wOiBzZWxlY3RlZCxcbiAgICAgICAgaGFuZGxlcjogZXh0ZXJuYWxPbkNoYW5nZSxcbiAgICAgICAgZGVmYXVsdFByb3A6IHNlbGVjdGVkLFxuICAgIH0pLCBzZWxlY3RlZElkID0gX2JbMF0sIHNldFNlbGVjdGVkSWQgPSBfYlsxXTtcbiAgICB2YXIgb25DaGFuZ2UgPSBmdW5jdGlvbiAoaWQpIHtcbiAgICAgICAgc2V0U2VsZWN0ZWRJZChpZCk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goUmFkaW9Db250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IHNlbGVjdGVkOiBzZWxlY3RlZElkLCBvbkNoYW5nZTogb25DaGFuZ2UsIG9wdGlvbnM6IG9wdGlvbnMgfSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKTtcbn07XG5SYWRpb1Jvb3QuSW5kaWNhdG9yID0gUmFkaW9JbmRpY2F0b3I7XG5SYWRpb1Jvb3QuTGFiZWwgPSBSYWRpb0xhYmVsO1xuUmFkaW9Sb290Lk9wdGlvbkdyb3VwID0gUmFkaW9PcHRpb25Hcm91cDtcblJhZGlvUm9vdC5CdXR0b24gPSBSYWRpb0J1dHRvbjtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvUm9vdDtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9yYWRpby1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJhZGlvUm9vdCBmcm9tIFwiLi9iYXNlLXJhZGlvXCI7XG5pbXBvcnQgXCIuL3JhZGlvLXN0eWxlLmNzc1wiO1xudmFyIFJhZGlvID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIHNlbGVjdGVkID0gcHJvcHMuc2VsZWN0ZWQsIG9uQ2hhbmdlID0gcHJvcHMub25DaGFuZ2UsIG9wdGlvbnMgPSBwcm9wcy5vcHRpb25zO1xuICAgIHJldHVybiAoX2pzeChSYWRpb1Jvb3QsIHsgb3B0aW9uczogb3B0aW9ucywgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBvbkNoYW5nZTogb25DaGFuZ2UsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5PcHRpb25Hcm91cCwgeyBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tZ3JvdXBcIiwgY2hpbGRyZW46IG9wdGlvbnMubWFwKGZ1bmN0aW9uIChvcHRpb24pIHsgcmV0dXJuIChfanN4cyhcImxpXCIsIHsgc3R5bGU6IHsgZGlzcGxheTogXCJmbGV4XCIsIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsIGdhcDogXCI2cHhcIiB9LCBjaGlsZHJlbjogW19qc3goUmFkaW9Sb290LkJ1dHRvbiwgeyBpZDogb3B0aW9uLmlkLCBjbGFzc05hbWU6IFwicmFkaW8gcmFkaW8tYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KFJhZGlvUm9vdC5JbmRpY2F0b3IsIHsgaWQ6IG9wdGlvbi5pZCwgYXNDaGlsZDogdHJ1ZSwgY2xhc3NOYW1lOiBcInJhZGlvIHJhZGlvLWluZGljYXRvclwiLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7fSkgfSkgfSksIF9qc3goUmFkaW9Sb290LkxhYmVsLCB7IGlkOiBvcHRpb24uaWQsIGNsYXNzTmFtZTogXCJyYWRpbyByYWRpby1sYWJlbFwiLCBjaGlsZHJlbjogb3B0aW9uLmxhYmVsIH0pXSB9LCBvcHRpb24uaWQpKTsgfSkgfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IFJhZGlvO1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL2NoZWNrLWJveC1zdHlsZS5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcbm9wdGlvbnMuaW5zZXJ0ID0gaW5zZXJ0Rm4uYmluZChudWxsLCBcImhlYWRcIik7XG5vcHRpb25zLmRvbUFQSSA9IGRvbUFQSTtcbm9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50ID0gaW5zZXJ0U3R5bGVFbGVtZW50O1xuXG52YXIgdXBkYXRlID0gQVBJKGNvbnRlbnQsIG9wdGlvbnMpO1xuXG5cblxuZXhwb3J0ICogZnJvbSBcIiEhLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanMhLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwidmFyIF9fYXNzaWduID0gKHRoaXMgJiYgdGhpcy5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBjcmVhdGVDb250ZXh0LCB1c2VDb250ZXh0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VFeHRlcm5hbFN0YXRlIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvaG9va3MvdXNlRXh0ZXJuYWxTdGF0ZVwiO1xuaW1wb3J0IFwiLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG5pbXBvcnQgQ29tcG9zZXIgZnJvbSBcIi4uL2NvcmUvY29tcG9zZXJcIjtcbnZhciBDaGVja0JveExhYmVsID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGFzQ2hpbGQgPSBwcm9wcy5hc0NoaWxkLCBjaGlsZHJlbiA9IHByb3BzLmNoaWxkcmVuO1xuICAgIHZhciBpZCA9IHVzZUNvbnRleHQoQ2hlY2tCb3hDb250ZXh0KS5pZDtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwibGFiZWxcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgeyBjbGFzc05hbWU6IFwiYmFzZS1jaGVjay1ib3ggbGFiZWxcIiwgaHRtbEZvcjogaWQsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSk7XG59O1xudmFyIENoZWNrQm94SW5wdXQgPSBmdW5jdGlvbiAocHJvcHMpIHtcbiAgICB2YXIgYXNDaGlsZCA9IHByb3BzLmFzQ2hpbGQsIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sIGNsYXNzTmFtZSA9IHByb3BzLmNsYXNzTmFtZSwgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiYXNDaGlsZFwiLCBcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCJdKTtcbiAgICB2YXIgX2EgPSB1c2VDb250ZXh0KENoZWNrQm94Q29udGV4dCksIGNoZWNrZWQgPSBfYS5jaGVja2VkLCB0b2dnbGVDaGVja2VkID0gX2EudG9nZ2xlQ2hlY2tlZCwgaWQgPSBfYS5pZCwgZGlzYWJsZWQgPSBfYS5kaXNhYmxlZDtcbiAgICB2YXIgQ29tcCA9IGFzQ2hpbGQgPyBDb21wb3NlciA6IFwiaW5wdXRcIjtcbiAgICByZXR1cm4gKF9qc3goQ29tcCwgX19hc3NpZ24oeyB0eXBlOiBcImNoZWNrYm94XCIsIGNoZWNrZWQ6IGNoZWNrZWQsIG9uQ2hhbmdlOiB0b2dnbGVDaGVja2VkLCBvbkNsaWNrOiB0b2dnbGVDaGVja2VkLCBpZDogaWQsIGNsYXNzTmFtZTogXCJcIi5jb25jYXQoY2xhc3NOYW1lLCBcIiBcIikuY29uY2F0KGNoZWNrZWQgPyBcImNoZWNrZWRcIiA6IFwidW5jaGVja2VkXCIsIFwiIFwiKS5jb25jYXQoZGlzYWJsZWQgPyBcImRpc2FibGVkXCIgOiBcIlwiKSB9LCByZXN0LCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkpO1xufTtcbnZhciBDaGVja0JveENvbnRleHQgPSBjcmVhdGVDb250ZXh0KHtcbiAgICBjaGVja2VkOiBmYWxzZSxcbiAgICB0b2dnbGVDaGVja2VkOiBmdW5jdGlvbiAoKSB7IH0sXG4gICAgaWQ6IFwiXCIsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxufSk7XG52YXIgQ2hlY2tCb3hSb290ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGV4dGVybmFsQ2hlY2tlZCA9IHByb3BzLmNoZWNrZWQsIGV4dGVybmFsT25DaGFuZ2UgPSBwcm9wcy5vbkNoYW5nZSwgaWQgPSBwcm9wcy5pZCwgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbiwgZGlzYWJsZWQgPSBwcm9wcy5kaXNhYmxlZDtcbiAgICB2YXIgX2EgPSB1c2VFeHRlcm5hbFN0YXRlKHtcbiAgICAgICAgcHJvcDogZXh0ZXJuYWxDaGVja2VkLFxuICAgICAgICBoYW5kbGVyOiBleHRlcm5hbE9uQ2hhbmdlLFxuICAgICAgICBkZWZhdWx0UHJvcDogZXh0ZXJuYWxDaGVja2VkICE9PSBudWxsICYmIGV4dGVybmFsQ2hlY2tlZCAhPT0gdm9pZCAwID8gZXh0ZXJuYWxDaGVja2VkIDogZmFsc2UsXG4gICAgfSksIGNoZWNrZWQgPSBfYVswXSwgc2V0Q2hlY2tlZCA9IF9hWzFdO1xuICAgIHZhciB0b2dnbGVDaGVja2VkID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBzZXRDaGVja2VkKGZ1bmN0aW9uIChwcmV2KSB7IHJldHVybiAhcHJldjsgfSk7XG4gICAgfTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IFwiY2hlY2stYm94LXJvb3RcIiwgY2hpbGRyZW46IF9qc3goQ2hlY2tCb3hDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiB7IGNoZWNrZWQ6IGNoZWNrZWQsIHRvZ2dsZUNoZWNrZWQ6IHRvZ2dsZUNoZWNrZWQsIGlkOiBpZCwgZGlzYWJsZWQ6IGRpc2FibGVkIH0sIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSB9KSk7XG59O1xuQ2hlY2tCb3hSb290LkxhYmVsID0gQ2hlY2tCb3hMYWJlbDtcbkNoZWNrQm94Um9vdC5JbnB1dCA9IENoZWNrQm94SW5wdXQ7XG5leHBvcnQgZGVmYXVsdCBDaGVja0JveFJvb3Q7XG4iLCJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi9jaGVjay1ib3gtc3R5bGUuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi9zdHlsZXMvdG9rZW4vZm9udC5jc3NcIjtcbmltcG9ydCBjaGVjayBmcm9tIFwiLi4vLi4vYXNzZXRzL2ljb25zL2NoZWNrLnN2Z1wiO1xuaW1wb3J0IENoZWNrQm94Um9vdCBmcm9tIFwiLi9iYXNlLWNoZWNrLWJveFwiO1xudmFyIENoZWNrQm94ID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgdmFyIGNoZWNrZWQgPSBwcm9wcy5jaGVja2VkLCBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLCBsYWJlbCA9IHByb3BzLmxhYmVsLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGVja2VkXCIsIFwib25DaGFuZ2VcIiwgXCJsYWJlbFwiXSk7XG4gICAgcmV0dXJuIChfanN4KENoZWNrQm94Um9vdCwgeyBpZDogXCJjaGVjay1ib3hcIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcImNoZWNrLWJveFwiLCBjaGlsZHJlbjogW19qc3goQ2hlY2tCb3hSb290LklucHV0LCB7IGFzQ2hpbGQ6IHRydWUsIGNoaWxkcmVuOiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBcIm51cmktdGhlbWUgY2hlY2stYm94LWlucHV0XCIsIGNoaWxkcmVuOiBfanN4KFwiaW1nXCIsIHsgc3JjOiBjaGVjaywgYWx0OiBcImNoZWNrXCIgfSkgfSkgfSksIF9qc3goQ2hlY2tCb3hSb290LkxhYmVsLCB7IGNoaWxkcmVuOiBsYWJlbCB9KV0gfSkgfSkpO1xufTtcbmV4cG9ydCBkZWZhdWx0IENoZWNrQm94O1xuIiwiXG4gICAgICBpbXBvcnQgQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5qZWN0U3R5bGVzSW50b1N0eWxlVGFnLmpzXCI7XG4gICAgICBpbXBvcnQgZG9tQVBJIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVEb21BUEkuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRGbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydEJ5U2VsZWN0b3IuanNcIjtcbiAgICAgIGltcG9ydCBzZXRBdHRyaWJ1dGVzIGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc2V0QXR0cmlidXRlc1dpdGhvdXRBdHRyaWJ1dGVzLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0U3R5bGVFbGVtZW50IGZyb20gXCIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzXCI7XG4gICAgICBpbXBvcnQgc3R5bGVUYWdUcmFuc2Zvcm1GbiBmcm9tIFwiIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlVGFnVHJhbnNmb3JtLmpzXCI7XG4gICAgICBpbXBvcnQgY29udGVudCwgKiBhcyBuYW1lZEV4cG9ydCBmcm9tIFwiISEuLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcyEuL3RleHQtc3R5bGUuY3NzXCI7XG4gICAgICBcbiAgICAgIFxuXG52YXIgb3B0aW9ucyA9IHt9O1xuXG5vcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtID0gc3R5bGVUYWdUcmFuc2Zvcm1Gbjtcbm9wdGlvbnMuc2V0QXR0cmlidXRlcyA9IHNldEF0dHJpYnV0ZXM7XG5vcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzIS4vdGV4dC1zdHlsZS5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFwiLi90ZXh0LXN0eWxlLmNzc1wiO1xuaW1wb3J0IFwiLi4vLi4vLi4vc3R5bGVzL3Rva2VuL2ZvbnQuY3NzXCI7XG5pbXBvcnQgXCIuLi8uLi8uLi9zdHlsZXMvdG9rZW4vY29sb3IuY3NzXCI7XG52YXIgVGV4dCA9IGZ1bmN0aW9uIChwcm9wcykge1xuICAgIHZhciB0ZXh0ID0gcHJvcHMudGV4dCwgc2l6ZSA9IHByb3BzLnNpemUsIHdlaWdodCA9IHByb3BzLndlaWdodCwgY29sb3IgPSBwcm9wcy5jb2xvciwgdGV4dEFsaWduID0gcHJvcHMudGV4dEFsaWduLCB0ZXh0RGVjb3JhdGlvbiA9IHByb3BzLnRleHREZWNvcmF0aW9uLCB3b3JkQnJlYWsgPSBwcm9wcy53b3JkQnJlYWssIHdoaXRlU3BhY2UgPSBwcm9wcy53aGl0ZVNwYWNlLCBhcyA9IHByb3BzLmFzLCBzdHlsZSA9IHByb3BzLnN0eWxlO1xuICAgIHZhciBDb21wID0gYXMgPyBhcyA6IFwicFwiO1xuICAgIHJldHVybiAoX2pzeChDb21wLCB7IGNsYXNzTmFtZTogXCJudXJpLXRoZW1lIGJhc2UtdGV4dCBcIi5jb25jYXQoL15cXGQreGwkLy50ZXN0KHNpemUpID8gXCJ0LVwiLmNvbmNhdChzaXplKSA6IHNpemUsIFwiIFwiKS5jb25jYXQod2VpZ2h0LCBcIiB0ZXh0QWxpZ24tXCIpLmNvbmNhdCh0ZXh0QWxpZ24sIFwiIHRleHREZWNvcmF0aW9uLVwiKS5jb25jYXQodGV4dERlY29yYXRpb24sIFwiIHdvcmRCcmVhay1cIikuY29uY2F0KHdvcmRCcmVhaywgXCIgd2hpdGVTcGFjZS1cIikuY29uY2F0KHdoaXRlU3BhY2UsIFwiIFwiKS5jb25jYXQoY29sb3IgPyBcImNvbG9yLVwiLmNvbmNhdChjb2xvcikgOiBcIlwiKSwgc3R5bGU6IHN0eWxlLCBjaGlsZHJlbjogdGV4dCB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgVGV4dDtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQXZhdGFyIH0gZnJvbSBcIi4vY29tcG9uZW50cy9hdmF0YXIvYXZhdGFyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIENUQUJ1dHRvbiB9IGZyb20gXCIuL2NvbXBvbmVudHMvYnV0dG9uL2N0YS1idXR0b25cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgT3B0aW9uQmFkZ2UgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JhZGdlL29wdGlvbi1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uVGV4dEJhZGdlIH0gZnJvbSBcIi4vY29tcG9uZW50cy9iYWRnZS9pY29uLXRleHQtYmFkZ2VcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvblRleHRPcHRpb25CYWRnZSB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmFkZ2UvaWNvbi10ZXh0LW9wdGlvbi1iYWRnZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBEYXRhVGFibGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL3RhYmxlL2RhdGEtdGFibGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEZpZWxkIH0gZnJvbSBcIi4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGRcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dEZpZWxkV2l0aEVycm9yIH0gZnJvbSBcIi4vY29tcG9uZW50cy90ZXh0LWZpZWxkL3RleHQtZmllbGQtd2l0aC1lcnJvclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBSYWRpbyB9IGZyb20gXCIuL2NvbXBvbmVudHMvcmFkaW8vcmFkaW9cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgQ2hlY2tib3ggfSBmcm9tIFwiLi9jb21wb25lbnRzL2NoZWNrLWJveC9jaGVjay1ib3hcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgVGV4dCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZWxlbWVudHMvdGV4dC90ZXh0XCI7XG4iXSwibmFtZXMiOlsiX19hc3NpZ24iLCJPYmplY3QiLCJhc3NpZ24iLCJ0IiwicyIsImkiLCJuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwicCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiX19yZXN0IiwiZSIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIkNoaWxkcmVuIiwiY2xvbmVFbGVtZW50IiwiZm9yd2FyZFJlZiIsImlzVmFsaWRFbGVtZW50IiwiY29tcG9zZVJlZnMiLCJyZWZzIiwiX2kiLCJub2RlIiwiZm9yRWFjaCIsInJlZiIsImN1cnJlbnQiLCJDb21wb3NlciIsIl9hIiwiY2hpbGRyZW4iLCJjb21wb3NlclByb3BzIiwiY2hpbGRBcnJheSIsInRvQXJyYXkiLCJFcnJvciIsImlzVmFsaWRDaGlsZCIsImNoaWxkIiwiY2hpbGRSZWYiLCJnZXRFbGVtZW50UmVmIiwibWVyZ2VkUHJvcHMiLCJtZXJnZVByb3BzIiwicHJvcHMiLCJkaXNwbGF5TmFtZSIsImNoaWxkUHJvcHMiLCJvdmVycmlkZVByb3BzIiwiX2xvb3BfMSIsInByb3BOYW1lIiwiY29tcG9zZXJQcm9wVmFsdWUiLCJjaGlsZFByb3BWYWx1ZSIsImlzSGFuZGxlciIsInRlc3QiLCJhcmdzIiwiZmlsdGVyIiwiQm9vbGVhbiIsImpvaW4iLCJlbGVtZW50IiwiX2IiLCJnZXR0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJnZXQiLCJtYXlXYXJuIiwiaXNSZWFjdFdhcm5pbmciLCJqc3giLCJfanN4IiwiQmFzZUJhZGdlIiwiYXNDaGlsZCIsImJvcmRlckNvbG9yIiwidGV4dENvbG9yIiwicmFkaXVzIiwiYmFja2dyb3VuZENvbG9yIiwiX2MiLCJzaXplIiwic3R5bGUiLCJjbGFzc05hbWUiLCJDb21wIiwiY29tcG9zZWRDbGFzc05hbWUiLCJjb25jYXQiLCJib3JkZXJSYWRpdXMiLCJqc3hzIiwiX2pzeHMiLCJ1c2VTdGF0ZSIsIkF2YXRhciIsInNyYyIsImFsdCIsImJhZGdlT3B0aW9uIiwiaXNJbWFnZURvd25sb2FkIiwic2V0SXNJbWFnZURvd25sb2FkIiwib25Mb2FkIiwicG9zaXRpb24iLCJyaWdodCIsImJvdHRvbSIsIkJhc2VCdXR0b24iLCJMb2FkaW5nIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJDVEFCdXR0b24iLCJ0ZXh0IiwidmFyaWFudCIsImRpc2FibGVkIiwiaWNvbiIsIl9kIiwibG9hZGluZyIsIk9wdGlvbkJhZGdlIiwib3B0aW9uIiwiSWNvblRleHRCYWRnZSIsIkljb25UZXh0T3B0aW9uQmFkZ2UiLCJUYWJsZVJvb3QiLCJUYWJsZUhlYWRlciIsImp1c3RpZnkiLCJyZXN0IiwiVGFibGVSb3ciLCJjbGFzc05hbWVzIiwiVGFibGVCb2R5IiwiVGFibGVDZWxsIiwiSGVhZGVyIiwiQm9keSIsIlJvdyIsIkNlbGwiLCJ1c2VFZmZlY3QiLCJEYXRhVGFibGUiLCJyb3dzIiwiY29sdW1ucyIsIm1hcCIsInJvdyIsImhpZGUiLCJkaXNwbGF5Um93cyIsInNldERpc3BsYXlSb3dzIiwiZmluZCIsIml0ZW0iLCJpZCIsIm9uQ2xpY2siLCJvbkNsaWNrUm93IiwidmFsdWUiLCJjb2x1bW4iLCJvbkNsaWNrQ2VsbCIsImNyZWF0ZUNvbnRleHQiLCJ1c2VDb250ZXh0IiwiVGV4dExhYmVsIiwiSW5wdXRGaWVsZCIsInBsYWNlaG9sZGVyIiwibmFtZSIsIm9uQ2hhbmdlIiwiVGV4dEZpZWxkQ29udGV4dCIsImNvbnZlcnRFcnJvck1lc3NhZ2UiLCJjb252ZXJ0RXJyb3JTdGF0ZSIsInZhbGlkYXRpb25zIiwidmFsaWRhdGVJbnB1dCIsImZhaWxlZFZhbGlkYXRpb24iLCJ2YWxpZGF0aW9uIiwicnVsZSIsIm1lc3NhZ2UiLCJ0YXJnZXQiLCJIZWxwZXJUZXh0IiwiZXJyb3JNZXNzYWdlIiwiaXNFcnJvciIsImVycm9yQ2xhc3NOYW1lIiwiVGV4dEZpZWxkUm9vdCIsIndpZHRoIiwic2V0SXNFcnJvciIsInNldEVycm9yTWVzc2FnZSIsImRpc3BsYXkiLCJQcm92aWRlciIsIlRleHRGaWVsZCIsImhlbHBlclRleHQiLCJsYWJlbFRleHQiLCJUZXh0RmllbGRXaXRoRXJyb3IiLCJ1c2VFeHRlcm5hbFN0YXRlIiwicHJvcCIsImhhbmRsZXIiLCJkZWZhdWx0UHJvcCIsImlubmVyU3RhdGUiLCJzZXRJbm5lclN0YXRlIiwiaXNDb250cm9sbGVkQnlFeHRlcm5hbCIsInVuZGVmaW5lZCIsInNldFZhbHVlIiwiaGFuZGxlZFZhbHVlIiwic2V0dGVyIiwidmFsdWVfMSIsIlJhZGlvQnV0dG9uIiwiUmFkaW9Db250ZXh0Iiwic2VsZWN0ZWQiLCJSYWRpb0luZGljYXRvciIsInR5cGUiLCJjaGVja2VkIiwiUmFkaW9MYWJlbCIsIlJhZGlvT3B0aW9uR3JvdXAiLCJvcHRpb25zIiwiUmFkaW9Sb290IiwiZXh0ZXJuYWxPbkNoYW5nZSIsInNlbGVjdGVkSWQiLCJzZXRTZWxlY3RlZElkIiwiSW5kaWNhdG9yIiwiTGFiZWwiLCJPcHRpb25Hcm91cCIsIkJ1dHRvbiIsIlJhZGlvIiwiYWxpZ25JdGVtcyIsImdhcCIsImxhYmVsIiwiQ2hlY2tCb3hMYWJlbCIsIkNoZWNrQm94Q29udGV4dCIsImh0bWxGb3IiLCJDaGVja0JveElucHV0IiwidG9nZ2xlQ2hlY2tlZCIsIkNoZWNrQm94Um9vdCIsImV4dGVybmFsQ2hlY2tlZCIsInNldENoZWNrZWQiLCJwcmV2IiwiSW5wdXQiLCJjaGVjayIsIkNoZWNrQm94IiwiVGV4dCIsIndlaWdodCIsImNvbG9yIiwidGV4dEFsaWduIiwidGV4dERlY29yYXRpb24iLCJ3b3JkQnJlYWsiLCJ3aGl0ZVNwYWNlIiwiYXMiLCJkZWZhdWx0IiwiQ2hlY2tib3giXSwic291cmNlUm9vdCI6IiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nurihaus/web-design-system",
3
- "version": "1.1.34",
3
+ "version": "1.1.35",
4
4
  "private": false,
5
5
  "description": "nurilounge-admin-design-system",
6
6
  "main": "dist/index.js",
@@ -1,3 +0,0 @@
1
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M2.6665 8.8L5.71412 12L13.3332 4" stroke="white" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3
- </svg>