@preply/ds-docs 0.17.0 → 0.19.0
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/README.md +3 -1
- package/config/main.js +2 -2
- package/{utils → config/utils}/globs.js +0 -0
- package/{utils → config/utils}/statics.js +0 -0
- package/dist/0.c2c52a48.iframe.bundle.js +1 -0
- package/dist/{15.08d41143.iframe.bundle.js → 17.36e3b147.iframe.bundle.js} +1 -1
- package/dist/{16.6d35c467.iframe.bundle.js → 18.c82cd4f6.iframe.bundle.js} +1 -1
- package/dist/{17.e5e0cff4.iframe.bundle.js → 19.a7c546de.iframe.bundle.js} +1 -1
- package/dist/{4.b747d0126f12a3174989.manager.bundle.js → 4.f22207b64e4d1767a207.manager.bundle.js} +2 -2
- package/dist/{4.b747d0126f12a3174989.manager.bundle.js.LICENSE.txt → 4.f22207b64e4d1767a207.manager.bundle.js.LICENSE.txt} +0 -0
- package/dist/global/docs/static/data/features.json +1 -0
- package/dist/global/docs/static/data/projects.json +1 -0
- package/dist/global/docs/static/data/used-by.json +1 -0
- package/dist/iframe.html +1 -1
- package/dist/index.html +1 -1
- package/dist/main~3c949452.603af522.iframe.bundle.js +1 -0
- package/dist/main~493df0b3.9a80c8ad.iframe.bundle.js +1 -0
- package/dist/main~6dcfc2f7.ac42cfb7.iframe.bundle.js +1 -0
- package/dist/main~adec5aba.03d9d978.iframe.bundle.js +1 -0
- package/dist/main~dc51bad7.41dee229.iframe.bundle.js +1 -0
- package/dist/{runtime~main.b74eee19.iframe.bundle.js → runtime~main.4e3eae6c.iframe.bundle.js} +1 -1
- package/dist/{runtime~main.8e5bef40c9e66074a4b5.manager.bundle.js → runtime~main.b6fd37872fbce985f385.manager.bundle.js} +1 -1
- package/dist/vendors~main~253ae210.94345bce.iframe.bundle.js +1 -0
- package/dist/vendors~main~4134d62c.fa875551.iframe.bundle.js +1 -0
- package/dist/{vendors~main~678f84af.0ec649e4.iframe.bundle.js → vendors~main~678f84af.8ccf9640.iframe.bundle.js} +1 -1
- package/dist/{vendors~main~a353122d.a896d87b.iframe.bundle.js → vendors~main~a353122d.6c9e7044.iframe.bundle.js} +1 -1
- package/dist/{vendors~main~ab68c3a7.9826dc9a.iframe.bundle.js → vendors~main~ab68c3a7.76cee064.iframe.bundle.js} +1 -1
- package/dist/{vendors~main~bdc480fb.645475cd.iframe.bundle.js → vendors~main~bdc480fb.408ce141.iframe.bundle.js} +1 -1
- package/dist/{vendors~main~d88e64ba.8bc6102b.iframe.bundle.js → vendors~main~d88e64ba.9e502858.iframe.bundle.js} +1 -1
- package/package.json +11 -8
- package/scripts/copy-statics.js +1 -1
- package/dist/0.bef0adc4.iframe.bundle.js +0 -1
- package/dist/main~493df0b3.a330297e.iframe.bundle.js +0 -1
- package/dist/main~6dcfc2f7.ea82fa4d.iframe.bundle.js +0 -1
- package/dist/main~dc51bad7.819adf82.iframe.bundle.js +0 -1
- package/dist/vendors~main~253ae210.1378a211.iframe.bundle.js +0 -1
- package/dist/vendors~main~4134d62c.c3c3dc77.iframe.bundle.js +0 -1
- package/scripts/copy-metadata-and-assets.js +0 -87
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{"../../node_modules/@babel/runtime/helpers/defineProperty.js":function(module,exports){eval('function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports["default"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzPzc1NDciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KG9iaiwga2V5LCB2YWx1ZSkge1xuICBpZiAoa2V5IGluIG9iaikge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwge1xuICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvYmo7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5O1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/@babel/runtime/helpers/defineProperty.js\n')},"../../node_modules/@babel/runtime/helpers/extends.js":function(module,exports){eval('function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n module.exports["default"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports["default"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHMuanM/MTQxNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0EsbUJBQW1CLHNCQUFzQjtBQUN6Qzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2V4dGVuZHMoKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHNvdXJjZSA9IGFyZ3VtZW50c1tpXTtcblxuICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9O1xuXG4gIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTtcbiAgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/@babel/runtime/helpers/extends.js\n')},"../../node_modules/@babel/runtime/helpers/objectSpread.js":function(module,exports,__webpack_require__){eval('var defineProperty = __webpack_require__("../../node_modules/@babel/runtime/helpers/defineProperty.js");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === \'function\') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;\nmodule.exports["default"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZC5qcz8xOWMzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFCQUFxQixtQkFBTyxDQUFDLDZEQUFxQjs7QUFFbEQ7QUFDQSxpQkFBaUIsc0JBQXNCO0FBQ3ZDO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQOztBQUVBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7O0FBRUE7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFNwcmVhZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBkZWZpbmVQcm9wZXJ0eSA9IHJlcXVpcmUoXCIuL2RlZmluZVByb3BlcnR5LmpzXCIpO1xuXG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV0gIT0gbnVsbCA/IE9iamVjdChhcmd1bWVudHNbaV0pIDoge307XG4gICAgdmFyIG93bktleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpO1xuXG4gICAgaWYgKHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBvd25LZXlzLnB1c2guYXBwbHkob3duS2V5cywgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpLmZpbHRlcihmdW5jdGlvbiAoc3ltKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNvdXJjZSwgc3ltKS5lbnVtZXJhYmxlO1xuICAgICAgfSkpO1xuICAgIH1cblxuICAgIG93bktleXMuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICBkZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgc291cmNlW2tleV0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfb2JqZWN0U3ByZWFkO1xubW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlOyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/@babel/runtime/helpers/objectSpread.js\n')},"../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js":function(module,exports,__webpack_require__){eval('var objectWithoutPropertiesLoose = __webpack_require__("../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports["default"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzP2EyMzciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbUNBQW1DLG1CQUFPLENBQUMsMkVBQW1DOztBQUU5RTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBLGVBQWUsNkJBQTZCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0V2l0aG91dFByb3BlcnRpZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSA9IHJlcXVpcmUoXCIuL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanNcIik7XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhzb3VyY2UsIGV4Y2x1ZGVkKSB7XG4gIGlmIChzb3VyY2UgPT0gbnVsbCkgcmV0dXJuIHt9O1xuICB2YXIgdGFyZ2V0ID0gb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTtcbiAgdmFyIGtleSwgaTtcblxuICBpZiAoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scykge1xuICAgIHZhciBzb3VyY2VTeW1ib2xLZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzb3VyY2UpO1xuXG4gICAgZm9yIChpID0gMDsgaSA8IHNvdXJjZVN5bWJvbEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07XG4gICAgICBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlO1xuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoc291cmNlLCBrZXkpKSBjb250aW51ZTtcbiAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRhcmdldDtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXM7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js\n')},"../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js":function(module,exports){eval('function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports["default"] = module.exports, module.exports.__esModule = true;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UuanM/M2FhZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGFBQWEsdUJBQXVCO0FBQ3BDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2Uoc291cmNlLCBleGNsdWRlZCkge1xuICBpZiAoc291cmNlID09IG51bGwpIHJldHVybiB7fTtcbiAgdmFyIHRhcmdldCA9IHt9O1xuICB2YXIgc291cmNlS2V5cyA9IE9iamVjdC5rZXlzKHNvdXJjZSk7XG4gIHZhciBrZXksIGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IHNvdXJjZUtleXMubGVuZ3RoOyBpKyspIHtcbiAgICBrZXkgPSBzb3VyY2VLZXlzW2ldO1xuICAgIGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7XG4gICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2U7XG5tb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWU7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js\n')},"../../node_modules/character-entities-legacy/index.json":function(module){eval('module.exports = JSON.parse("{\\"AElig\\":\\"Æ\\",\\"AMP\\":\\"&\\",\\"Aacute\\":\\"Á\\",\\"Acirc\\":\\"Â\\",\\"Agrave\\":\\"À\\",\\"Aring\\":\\"Å\\",\\"Atilde\\":\\"Ã\\",\\"Auml\\":\\"Ä\\",\\"COPY\\":\\"©\\",\\"Ccedil\\":\\"Ç\\",\\"ETH\\":\\"Ð\\",\\"Eacute\\":\\"É\\",\\"Ecirc\\":\\"Ê\\",\\"Egrave\\":\\"È\\",\\"Euml\\":\\"Ë\\",\\"GT\\":\\">\\",\\"Iacute\\":\\"Í\\",\\"Icirc\\":\\"Î\\",\\"Igrave\\":\\"Ì\\",\\"Iuml\\":\\"Ï\\",\\"LT\\":\\"<\\",\\"Ntilde\\":\\"Ñ\\",\\"Oacute\\":\\"Ó\\",\\"Ocirc\\":\\"Ô\\",\\"Ograve\\":\\"Ò\\",\\"Oslash\\":\\"Ø\\",\\"Otilde\\":\\"Õ\\",\\"Ouml\\":\\"Ö\\",\\"QUOT\\":\\"\\\\\\"\\",\\"REG\\":\\"®\\",\\"THORN\\":\\"Þ\\",\\"Uacute\\":\\"Ú\\",\\"Ucirc\\":\\"Û\\",\\"Ugrave\\":\\"Ù\\",\\"Uuml\\":\\"Ü\\",\\"Yacute\\":\\"Ý\\",\\"aacute\\":\\"á\\",\\"acirc\\":\\"â\\",\\"acute\\":\\"´\\",\\"aelig\\":\\"æ\\",\\"agrave\\":\\"à\\",\\"amp\\":\\"&\\",\\"aring\\":\\"å\\",\\"atilde\\":\\"ã\\",\\"auml\\":\\"ä\\",\\"brvbar\\":\\"¦\\",\\"ccedil\\":\\"ç\\",\\"cedil\\":\\"¸\\",\\"cent\\":\\"¢\\",\\"copy\\":\\"©\\",\\"curren\\":\\"¤\\",\\"deg\\":\\"°\\",\\"divide\\":\\"÷\\",\\"eacute\\":\\"é\\",\\"ecirc\\":\\"ê\\",\\"egrave\\":\\"è\\",\\"eth\\":\\"ð\\",\\"euml\\":\\"ë\\",\\"frac12\\":\\"½\\",\\"frac14\\":\\"¼\\",\\"frac34\\":\\"¾\\",\\"gt\\":\\">\\",\\"iacute\\":\\"í\\",\\"icirc\\":\\"î\\",\\"iexcl\\":\\"¡\\",\\"igrave\\":\\"ì\\",\\"iquest\\":\\"¿\\",\\"iuml\\":\\"ï\\",\\"laquo\\":\\"«\\",\\"lt\\":\\"<\\",\\"macr\\":\\"¯\\",\\"micro\\":\\"µ\\",\\"middot\\":\\"·\\",\\"nbsp\\":\\" \\",\\"not\\":\\"¬\\",\\"ntilde\\":\\"ñ\\",\\"oacute\\":\\"ó\\",\\"ocirc\\":\\"ô\\",\\"ograve\\":\\"ò\\",\\"ordf\\":\\"ª\\",\\"ordm\\":\\"º\\",\\"oslash\\":\\"ø\\",\\"otilde\\":\\"õ\\",\\"ouml\\":\\"ö\\",\\"para\\":\\"¶\\",\\"plusmn\\":\\"±\\",\\"pound\\":\\"£\\",\\"quot\\":\\"\\\\\\"\\",\\"raquo\\":\\"»\\",\\"reg\\":\\"®\\",\\"sect\\":\\"§\\",\\"shy\\":\\"\\",\\"sup1\\":\\"¹\\",\\"sup2\\":\\"²\\",\\"sup3\\":\\"³\\",\\"szlig\\":\\"ß\\",\\"thorn\\":\\"þ\\",\\"times\\":\\"×\\",\\"uacute\\":\\"ú\\",\\"ucirc\\":\\"û\\",\\"ugrave\\":\\"ù\\",\\"uml\\":\\"¨\\",\\"uuml\\":\\"ü\\",\\"yacute\\":\\"ý\\",\\"yen\\":\\"¥\\",\\"yuml\\":\\"ÿ\\"}");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeS9pbmRleC5qc29uLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/character-entities-legacy/index.json\n')},"../../node_modules/character-reference-invalid/index.json":function(module){eval('module.exports = JSON.parse("{\\"0\\":\\"�\\",\\"128\\":\\"€\\",\\"130\\":\\"‚\\",\\"131\\":\\"ƒ\\",\\"132\\":\\"„\\",\\"133\\":\\"…\\",\\"134\\":\\"†\\",\\"135\\":\\"‡\\",\\"136\\":\\"ˆ\\",\\"137\\":\\"‰\\",\\"138\\":\\"Š\\",\\"139\\":\\"‹\\",\\"140\\":\\"Œ\\",\\"142\\":\\"Ž\\",\\"145\\":\\"‘\\",\\"146\\":\\"’\\",\\"147\\":\\"“\\",\\"148\\":\\"”\\",\\"149\\":\\"•\\",\\"150\\":\\"–\\",\\"151\\":\\"—\\",\\"152\\":\\"˜\\",\\"153\\":\\"™\\",\\"154\\":\\"š\\",\\"155\\":\\"›\\",\\"156\\":\\"œ\\",\\"158\\":\\"ž\\",\\"159\\":\\"Ÿ\\"}");//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvY2hhcmFjdGVyLXJlZmVyZW5jZS1pbnZhbGlkL2luZGV4Lmpzb24uanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/character-reference-invalid/index.json\n')},"../../node_modules/comma-separated-tokens/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar comma = ','\nvar space = ' '\nvar empty = ''\n\n// Parse comma-separated tokens to an array.\nfunction parse(value) {\n var values = []\n var input = String(value || empty)\n var index = input.indexOf(comma)\n var lastIndex = 0\n var end = false\n var val\n\n while (!end) {\n if (index === -1) {\n index = input.length\n end = true\n }\n\n val = input.slice(lastIndex, index).trim()\n\n if (val || !end) {\n values.push(val)\n }\n\n lastIndex = index + 1\n index = input.indexOf(comma, lastIndex)\n }\n\n return values\n}\n\n// Compile an array to comma-separated tokens.\n// `options.padLeft` (default: `true`) pads a space left of each token, and\n// `options.padRight` (default: `false`) pads a space to the right of each token.\nfunction stringify(values, options) {\n var settings = options || {}\n var left = settings.padLeft === false ? empty : space\n var right = settings.padRight ? space : empty\n\n // Ensure the last empty entry is seen.\n if (values[values.length - 1] === empty) {\n values = values.concat(empty)\n }\n\n return values.join(right + comma + left).trim()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzPzRlODAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9jb21tYS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydHMucGFyc2UgPSBwYXJzZVxuZXhwb3J0cy5zdHJpbmdpZnkgPSBzdHJpbmdpZnlcblxudmFyIGNvbW1hID0gJywnXG52YXIgc3BhY2UgPSAnICdcbnZhciBlbXB0eSA9ICcnXG5cbi8vIFBhcnNlIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMgdG8gYW4gYXJyYXkuXG5mdW5jdGlvbiBwYXJzZSh2YWx1ZSkge1xuICB2YXIgdmFsdWVzID0gW11cbiAgdmFyIGlucHV0ID0gU3RyaW5nKHZhbHVlIHx8IGVtcHR5KVxuICB2YXIgaW5kZXggPSBpbnB1dC5pbmRleE9mKGNvbW1hKVxuICB2YXIgbGFzdEluZGV4ID0gMFxuICB2YXIgZW5kID0gZmFsc2VcbiAgdmFyIHZhbFxuXG4gIHdoaWxlICghZW5kKSB7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgaW5kZXggPSBpbnB1dC5sZW5ndGhcbiAgICAgIGVuZCA9IHRydWVcbiAgICB9XG5cbiAgICB2YWwgPSBpbnB1dC5zbGljZShsYXN0SW5kZXgsIGluZGV4KS50cmltKClcblxuICAgIGlmICh2YWwgfHwgIWVuZCkge1xuICAgICAgdmFsdWVzLnB1c2godmFsKVxuICAgIH1cblxuICAgIGxhc3RJbmRleCA9IGluZGV4ICsgMVxuICAgIGluZGV4ID0gaW5wdXQuaW5kZXhPZihjb21tYSwgbGFzdEluZGV4KVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlc1xufVxuXG4vLyBDb21waWxlIGFuIGFycmF5IHRvIGNvbW1hLXNlcGFyYXRlZCB0b2tlbnMuXG4vLyBgb3B0aW9ucy5wYWRMZWZ0YCAoZGVmYXVsdDogYHRydWVgKSBwYWRzIGEgc3BhY2UgbGVmdCBvZiBlYWNoIHRva2VuLCBhbmRcbi8vIGBvcHRpb25zLnBhZFJpZ2h0YCAoZGVmYXVsdDogYGZhbHNlYCkgcGFkcyBhIHNwYWNlIHRvIHRoZSByaWdodCBvZiBlYWNoIHRva2VuLlxuZnVuY3Rpb24gc3RyaW5naWZ5KHZhbHVlcywgb3B0aW9ucykge1xuICB2YXIgc2V0dGluZ3MgPSBvcHRpb25zIHx8IHt9XG4gIHZhciBsZWZ0ID0gc2V0dGluZ3MucGFkTGVmdCA9PT0gZmFsc2UgPyBlbXB0eSA6IHNwYWNlXG4gIHZhciByaWdodCA9IHNldHRpbmdzLnBhZFJpZ2h0ID8gc3BhY2UgOiBlbXB0eVxuXG4gIC8vIEVuc3VyZSB0aGUgbGFzdCBlbXB0eSBlbnRyeSBpcyBzZWVuLlxuICBpZiAodmFsdWVzW3ZhbHVlcy5sZW5ndGggLSAxXSA9PT0gZW1wdHkpIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KGVtcHR5KVxuICB9XG5cbiAgcmV0dXJuIHZhbHVlcy5qb2luKHJpZ2h0ICsgY29tbWEgKyBsZWZ0KS50cmltKClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/comma-separated-tokens/index.js\n")},"../../node_modules/hast-util-parse-selector/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = parse\n\nvar search = /[#.]/g\n\n// Create a hast element from a simple CSS selector.\nfunction parse(selector, defaultTagName) {\n var value = selector || ''\n var name = defaultTagName || 'div'\n var props = {}\n var start = 0\n var subvalue\n var previous\n var match\n\n while (start < value.length) {\n search.lastIndex = start\n match = search.exec(value)\n subvalue = value.slice(start, match ? match.index : value.length)\n\n if (subvalue) {\n if (!previous) {\n name = subvalue\n } else if (previous === '#') {\n props.id = subvalue\n } else if (props.className) {\n props.className.push(subvalue)\n } else {\n props.className = [subvalue]\n }\n\n start += subvalue.length\n }\n\n if (match) {\n previous = match[0]\n start++\n }\n }\n\n return {type: 'element', tagName: name, properties: props, children: []}\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9oYXN0LXV0aWwtcGFyc2Utc2VsZWN0b3IvaW5kZXguanM/YTdmMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0EsT0FBTztBQUNQO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLFVBQVU7QUFDViIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdC11dGlsLXBhcnNlLXNlbGVjdG9yL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gcGFyc2VcblxudmFyIHNlYXJjaCA9IC9bIy5dL2dcblxuLy8gQ3JlYXRlIGEgaGFzdCBlbGVtZW50IGZyb20gYSBzaW1wbGUgQ1NTIHNlbGVjdG9yLlxuZnVuY3Rpb24gcGFyc2Uoc2VsZWN0b3IsIGRlZmF1bHRUYWdOYW1lKSB7XG4gIHZhciB2YWx1ZSA9IHNlbGVjdG9yIHx8ICcnXG4gIHZhciBuYW1lID0gZGVmYXVsdFRhZ05hbWUgfHwgJ2RpdidcbiAgdmFyIHByb3BzID0ge31cbiAgdmFyIHN0YXJ0ID0gMFxuICB2YXIgc3VidmFsdWVcbiAgdmFyIHByZXZpb3VzXG4gIHZhciBtYXRjaFxuXG4gIHdoaWxlIChzdGFydCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIHNlYXJjaC5sYXN0SW5kZXggPSBzdGFydFxuICAgIG1hdGNoID0gc2VhcmNoLmV4ZWModmFsdWUpXG4gICAgc3VidmFsdWUgPSB2YWx1ZS5zbGljZShzdGFydCwgbWF0Y2ggPyBtYXRjaC5pbmRleCA6IHZhbHVlLmxlbmd0aClcblxuICAgIGlmIChzdWJ2YWx1ZSkge1xuICAgICAgaWYgKCFwcmV2aW91cykge1xuICAgICAgICBuYW1lID0gc3VidmFsdWVcbiAgICAgIH0gZWxzZSBpZiAocHJldmlvdXMgPT09ICcjJykge1xuICAgICAgICBwcm9wcy5pZCA9IHN1YnZhbHVlXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLmNsYXNzTmFtZSkge1xuICAgICAgICBwcm9wcy5jbGFzc05hbWUucHVzaChzdWJ2YWx1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb3BzLmNsYXNzTmFtZSA9IFtzdWJ2YWx1ZV1cbiAgICAgIH1cblxuICAgICAgc3RhcnQgKz0gc3VidmFsdWUubGVuZ3RoXG4gICAgfVxuXG4gICAgaWYgKG1hdGNoKSB7XG4gICAgICBwcmV2aW91cyA9IG1hdGNoWzBdXG4gICAgICBzdGFydCsrXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHt0eXBlOiAnZWxlbWVudCcsIHRhZ05hbWU6IG5hbWUsIHByb3BlcnRpZXM6IHByb3BzLCBjaGlsZHJlbjogW119XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/hast-util-parse-selector/index.js\n")},"../../node_modules/hastscript/factory.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar find = __webpack_require__(\"../../node_modules/property-information/find.js\")\nvar normalize = __webpack_require__(\"../../node_modules/property-information/normalize.js\")\nvar parseSelector = __webpack_require__(\"../../node_modules/hast-util-parse-selector/index.js\")\nvar spaces = __webpack_require__(\"../../node_modules/space-separated-tokens/index.js\").parse\nvar commas = __webpack_require__(\"../../node_modules/comma-separated-tokens/index.js\").parse\n\nmodule.exports = factory\n\nvar own = {}.hasOwnProperty\n\nfunction factory(schema, defaultTagName, caseSensitive) {\n var adjust = caseSensitive ? createAdjustMap(caseSensitive) : null\n\n return h\n\n // Hyperscript compatible DSL for creating virtual hast trees.\n function h(selector, properties) {\n var node = parseSelector(selector, defaultTagName)\n var children = Array.prototype.slice.call(arguments, 2)\n var name = node.tagName.toLowerCase()\n var property\n\n node.tagName = adjust && own.call(adjust, name) ? adjust[name] : name\n\n if (properties && isChildren(properties, node)) {\n children.unshift(properties)\n properties = null\n }\n\n if (properties) {\n for (property in properties) {\n addProperty(node.properties, property, properties[property])\n }\n }\n\n addChild(node.children, children)\n\n if (node.tagName === 'template') {\n node.content = {type: 'root', children: node.children}\n node.children = []\n }\n\n return node\n }\n\n function addProperty(properties, key, value) {\n var info\n var property\n var result\n\n // Ignore nullish and NaN values.\n if (value === null || value === undefined || value !== value) {\n return\n }\n\n info = find(schema, key)\n property = info.property\n result = value\n\n // Handle list values.\n if (typeof result === 'string') {\n if (info.spaceSeparated) {\n result = spaces(result)\n } else if (info.commaSeparated) {\n result = commas(result)\n } else if (info.commaOrSpaceSeparated) {\n result = spaces(commas(result).join(' '))\n }\n }\n\n // Accept `object` on style.\n if (property === 'style' && typeof value !== 'string') {\n result = style(result)\n }\n\n // Class-names (which can be added both on the `selector` and here).\n if (property === 'className' && properties.className) {\n result = properties.className.concat(result)\n }\n\n properties[property] = parsePrimitives(info, property, result)\n }\n}\n\nfunction isChildren(value, node) {\n return (\n typeof value === 'string' ||\n 'length' in value ||\n isNode(node.tagName, value)\n )\n}\n\nfunction isNode(tagName, value) {\n var type = value.type\n\n if (tagName === 'input' || !type || typeof type !== 'string') {\n return false\n }\n\n if (typeof value.children === 'object' && 'length' in value.children) {\n return true\n }\n\n type = type.toLowerCase()\n\n if (tagName === 'button') {\n return (\n type !== 'menu' &&\n type !== 'submit' &&\n type !== 'reset' &&\n type !== 'button'\n )\n }\n\n return 'value' in value\n}\n\nfunction addChild(nodes, value) {\n var index\n var length\n\n if (typeof value === 'string' || typeof value === 'number') {\n nodes.push({type: 'text', value: String(value)})\n return\n }\n\n if (typeof value === 'object' && 'length' in value) {\n index = -1\n length = value.length\n\n while (++index < length) {\n addChild(nodes, value[index])\n }\n\n return\n }\n\n if (typeof value !== 'object' || !('type' in value)) {\n throw new Error('Expected node, nodes, or string, got `' + value + '`')\n }\n\n nodes.push(value)\n}\n\n// Parse a (list of) primitives.\nfunction parsePrimitives(info, name, value) {\n var index\n var length\n var result\n\n if (typeof value !== 'object' || !('length' in value)) {\n return parsePrimitive(info, name, value)\n }\n\n length = value.length\n index = -1\n result = []\n\n while (++index < length) {\n result[index] = parsePrimitive(info, name, value[index])\n }\n\n return result\n}\n\n// Parse a single primitives.\nfunction parsePrimitive(info, name, value) {\n var result = value\n\n if (info.number || info.positiveNumber) {\n if (!isNaN(result) && result !== '') {\n result = Number(result)\n }\n } else if (info.boolean || info.overloadedBoolean) {\n // Accept `boolean` and `string`.\n if (\n typeof result === 'string' &&\n (result === '' || normalize(value) === normalize(name))\n ) {\n result = true\n }\n }\n\n return result\n}\n\nfunction style(value) {\n var result = []\n var key\n\n for (key in value) {\n result.push([key, value[key]].join(': '))\n }\n\n return result.join('; ')\n}\n\nfunction createAdjustMap(values) {\n var length = values.length\n var index = -1\n var result = {}\n var value\n\n while (++index < length) {\n value = values[index]\n result[value.toLowerCase()] = value\n }\n\n return result\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2ZhY3RvcnkuanM/MjBlYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixXQUFXLG1CQUFPLENBQUMsaURBQTJCO0FBQzlDLGdCQUFnQixtQkFBTyxDQUFDLHNEQUFnQztBQUN4RCxvQkFBb0IsbUJBQU8sQ0FBQyxzREFBMEI7QUFDdEQsYUFBYSxtQkFBTyxDQUFDLG9EQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsb0RBQXdCOztBQUU3Qzs7QUFFQSxZQUFZOztBQUVaO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLG1DQUFtQztBQUNuRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLHVCQUF1QjtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3RzY3JpcHQvZmFjdG9yeS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgZmluZCA9IHJlcXVpcmUoJ3Byb3BlcnR5LWluZm9ybWF0aW9uL2ZpbmQnKVxudmFyIG5vcm1hbGl6ZSA9IHJlcXVpcmUoJ3Byb3BlcnR5LWluZm9ybWF0aW9uL25vcm1hbGl6ZScpXG52YXIgcGFyc2VTZWxlY3RvciA9IHJlcXVpcmUoJ2hhc3QtdXRpbC1wYXJzZS1zZWxlY3RvcicpXG52YXIgc3BhY2VzID0gcmVxdWlyZSgnc3BhY2Utc2VwYXJhdGVkLXRva2VucycpLnBhcnNlXG52YXIgY29tbWFzID0gcmVxdWlyZSgnY29tbWEtc2VwYXJhdGVkLXRva2VucycpLnBhcnNlXG5cbm1vZHVsZS5leHBvcnRzID0gZmFjdG9yeVxuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuZnVuY3Rpb24gZmFjdG9yeShzY2hlbWEsIGRlZmF1bHRUYWdOYW1lLCBjYXNlU2Vuc2l0aXZlKSB7XG4gIHZhciBhZGp1c3QgPSBjYXNlU2Vuc2l0aXZlID8gY3JlYXRlQWRqdXN0TWFwKGNhc2VTZW5zaXRpdmUpIDogbnVsbFxuXG4gIHJldHVybiBoXG5cbiAgLy8gSHlwZXJzY3JpcHQgY29tcGF0aWJsZSBEU0wgZm9yIGNyZWF0aW5nIHZpcnR1YWwgaGFzdCB0cmVlcy5cbiAgZnVuY3Rpb24gaChzZWxlY3RvciwgcHJvcGVydGllcykge1xuICAgIHZhciBub2RlID0gcGFyc2VTZWxlY3RvcihzZWxlY3RvciwgZGVmYXVsdFRhZ05hbWUpXG4gICAgdmFyIGNoaWxkcmVuID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAyKVxuICAgIHZhciBuYW1lID0gbm9kZS50YWdOYW1lLnRvTG93ZXJDYXNlKClcbiAgICB2YXIgcHJvcGVydHlcblxuICAgIG5vZGUudGFnTmFtZSA9IGFkanVzdCAmJiBvd24uY2FsbChhZGp1c3QsIG5hbWUpID8gYWRqdXN0W25hbWVdIDogbmFtZVxuXG4gICAgaWYgKHByb3BlcnRpZXMgJiYgaXNDaGlsZHJlbihwcm9wZXJ0aWVzLCBub2RlKSkge1xuICAgICAgY2hpbGRyZW4udW5zaGlmdChwcm9wZXJ0aWVzKVxuICAgICAgcHJvcGVydGllcyA9IG51bGxcbiAgICB9XG5cbiAgICBpZiAocHJvcGVydGllcykge1xuICAgICAgZm9yIChwcm9wZXJ0eSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgIGFkZFByb3BlcnR5KG5vZGUucHJvcGVydGllcywgcHJvcGVydHksIHByb3BlcnRpZXNbcHJvcGVydHldKVxuICAgICAgfVxuICAgIH1cblxuICAgIGFkZENoaWxkKG5vZGUuY2hpbGRyZW4sIGNoaWxkcmVuKVxuXG4gICAgaWYgKG5vZGUudGFnTmFtZSA9PT0gJ3RlbXBsYXRlJykge1xuICAgICAgbm9kZS5jb250ZW50ID0ge3R5cGU6ICdyb290JywgY2hpbGRyZW46IG5vZGUuY2hpbGRyZW59XG4gICAgICBub2RlLmNoaWxkcmVuID0gW11cbiAgICB9XG5cbiAgICByZXR1cm4gbm9kZVxuICB9XG5cbiAgZnVuY3Rpb24gYWRkUHJvcGVydHkocHJvcGVydGllcywga2V5LCB2YWx1ZSkge1xuICAgIHZhciBpbmZvXG4gICAgdmFyIHByb3BlcnR5XG4gICAgdmFyIHJlc3VsdFxuXG4gICAgLy8gSWdub3JlIG51bGxpc2ggYW5kIE5hTiB2YWx1ZXMuXG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgIT09IHZhbHVlKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpbmZvID0gZmluZChzY2hlbWEsIGtleSlcbiAgICBwcm9wZXJ0eSA9IGluZm8ucHJvcGVydHlcbiAgICByZXN1bHQgPSB2YWx1ZVxuXG4gICAgLy8gSGFuZGxlIGxpc3QgdmFsdWVzLlxuICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGluZm8uc3BhY2VTZXBhcmF0ZWQpIHtcbiAgICAgICAgcmVzdWx0ID0gc3BhY2VzKHJlc3VsdClcbiAgICAgIH0gZWxzZSBpZiAoaW5mby5jb21tYVNlcGFyYXRlZCkge1xuICAgICAgICByZXN1bHQgPSBjb21tYXMocmVzdWx0KVxuICAgICAgfSBlbHNlIGlmIChpbmZvLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCkge1xuICAgICAgICByZXN1bHQgPSBzcGFjZXMoY29tbWFzKHJlc3VsdCkuam9pbignICcpKVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEFjY2VwdCBgb2JqZWN0YCBvbiBzdHlsZS5cbiAgICBpZiAocHJvcGVydHkgPT09ICdzdHlsZScgJiYgdHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmVzdWx0ID0gc3R5bGUocmVzdWx0KVxuICAgIH1cblxuICAgIC8vIENsYXNzLW5hbWVzICh3aGljaCBjYW4gYmUgYWRkZWQgYm90aCBvbiB0aGUgYHNlbGVjdG9yYCBhbmQgaGVyZSkuXG4gICAgaWYgKHByb3BlcnR5ID09PSAnY2xhc3NOYW1lJyAmJiBwcm9wZXJ0aWVzLmNsYXNzTmFtZSkge1xuICAgICAgcmVzdWx0ID0gcHJvcGVydGllcy5jbGFzc05hbWUuY29uY2F0KHJlc3VsdClcbiAgICB9XG5cbiAgICBwcm9wZXJ0aWVzW3Byb3BlcnR5XSA9IHBhcnNlUHJpbWl0aXZlcyhpbmZvLCBwcm9wZXJ0eSwgcmVzdWx0KVxuICB9XG59XG5cbmZ1bmN0aW9uIGlzQ2hpbGRyZW4odmFsdWUsIG5vZGUpIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnIHx8XG4gICAgJ2xlbmd0aCcgaW4gdmFsdWUgfHxcbiAgICBpc05vZGUobm9kZS50YWdOYW1lLCB2YWx1ZSlcbiAgKVxufVxuXG5mdW5jdGlvbiBpc05vZGUodGFnTmFtZSwgdmFsdWUpIHtcbiAgdmFyIHR5cGUgPSB2YWx1ZS50eXBlXG5cbiAgaWYgKHRhZ05hbWUgPT09ICdpbnB1dCcgfHwgIXR5cGUgfHwgdHlwZW9mIHR5cGUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlLmNoaWxkcmVuID09PSAnb2JqZWN0JyAmJiAnbGVuZ3RoJyBpbiB2YWx1ZS5jaGlsZHJlbikge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICB0eXBlID0gdHlwZS50b0xvd2VyQ2FzZSgpXG5cbiAgaWYgKHRhZ05hbWUgPT09ICdidXR0b24nKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHR5cGUgIT09ICdtZW51JyAmJlxuICAgICAgdHlwZSAhPT0gJ3N1Ym1pdCcgJiZcbiAgICAgIHR5cGUgIT09ICdyZXNldCcgJiZcbiAgICAgIHR5cGUgIT09ICdidXR0b24nXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuICd2YWx1ZScgaW4gdmFsdWVcbn1cblxuZnVuY3Rpb24gYWRkQ2hpbGQobm9kZXMsIHZhbHVlKSB7XG4gIHZhciBpbmRleFxuICB2YXIgbGVuZ3RoXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIG5vZGVzLnB1c2goe3R5cGU6ICd0ZXh0JywgdmFsdWU6IFN0cmluZyh2YWx1ZSl9KVxuICAgIHJldHVyblxuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgJ2xlbmd0aCcgaW4gdmFsdWUpIHtcbiAgICBpbmRleCA9IC0xXG4gICAgbGVuZ3RoID0gdmFsdWUubGVuZ3RoXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgYWRkQ2hpbGQobm9kZXMsIHZhbHVlW2luZGV4XSlcbiAgICB9XG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8ICEoJ3R5cGUnIGluIHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgbm9kZSwgbm9kZXMsIG9yIHN0cmluZywgZ290IGAnICsgdmFsdWUgKyAnYCcpXG4gIH1cblxuICBub2Rlcy5wdXNoKHZhbHVlKVxufVxuXG4vLyBQYXJzZSBhIChsaXN0IG9mKSBwcmltaXRpdmVzLlxuZnVuY3Rpb24gcGFyc2VQcmltaXRpdmVzKGluZm8sIG5hbWUsIHZhbHVlKSB7XG4gIHZhciBpbmRleFxuICB2YXIgbGVuZ3RoXG4gIHZhciByZXN1bHRcblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JyB8fCAhKCdsZW5ndGgnIGluIHZhbHVlKSkge1xuICAgIHJldHVybiBwYXJzZVByaW1pdGl2ZShpbmZvLCBuYW1lLCB2YWx1ZSlcbiAgfVxuXG4gIGxlbmd0aCA9IHZhbHVlLmxlbmd0aFxuICBpbmRleCA9IC0xXG4gIHJlc3VsdCA9IFtdXG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICByZXN1bHRbaW5kZXhdID0gcGFyc2VQcmltaXRpdmUoaW5mbywgbmFtZSwgdmFsdWVbaW5kZXhdKVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG4vLyBQYXJzZSBhIHNpbmdsZSBwcmltaXRpdmVzLlxuZnVuY3Rpb24gcGFyc2VQcmltaXRpdmUoaW5mbywgbmFtZSwgdmFsdWUpIHtcbiAgdmFyIHJlc3VsdCA9IHZhbHVlXG5cbiAgaWYgKGluZm8ubnVtYmVyIHx8IGluZm8ucG9zaXRpdmVOdW1iZXIpIHtcbiAgICBpZiAoIWlzTmFOKHJlc3VsdCkgJiYgcmVzdWx0ICE9PSAnJykge1xuICAgICAgcmVzdWx0ID0gTnVtYmVyKHJlc3VsdClcbiAgICB9XG4gIH0gZWxzZSBpZiAoaW5mby5ib29sZWFuIHx8IGluZm8ub3ZlcmxvYWRlZEJvb2xlYW4pIHtcbiAgICAvLyBBY2NlcHQgYGJvb2xlYW5gIGFuZCBgc3RyaW5nYC5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJyAmJlxuICAgICAgKHJlc3VsdCA9PT0gJycgfHwgbm9ybWFsaXplKHZhbHVlKSA9PT0gbm9ybWFsaXplKG5hbWUpKVxuICAgICkge1xuICAgICAgcmVzdWx0ID0gdHJ1ZVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gc3R5bGUodmFsdWUpIHtcbiAgdmFyIHJlc3VsdCA9IFtdXG4gIHZhciBrZXlcblxuICBmb3IgKGtleSBpbiB2YWx1ZSkge1xuICAgIHJlc3VsdC5wdXNoKFtrZXksIHZhbHVlW2tleV1dLmpvaW4oJzogJykpXG4gIH1cblxuICByZXR1cm4gcmVzdWx0LmpvaW4oJzsgJylcbn1cblxuZnVuY3Rpb24gY3JlYXRlQWRqdXN0TWFwKHZhbHVlcykge1xuICB2YXIgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aFxuICB2YXIgaW5kZXggPSAtMVxuICB2YXIgcmVzdWx0ID0ge31cbiAgdmFyIHZhbHVlXG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF1cbiAgICByZXN1bHRbdmFsdWUudG9Mb3dlckNhc2UoKV0gPSB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/hastscript/factory.js\n")},"../../node_modules/hastscript/html.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar schema = __webpack_require__(\"../../node_modules/property-information/html.js\")\nvar factory = __webpack_require__(\"../../node_modules/hastscript/factory.js\")\n\nvar html = factory(schema, 'div')\nhtml.displayName = 'html'\n\nmodule.exports = html\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2h0bWwuanM/ZjA4MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixhQUFhLG1CQUFPLENBQUMsaURBQTJCO0FBQ2hELGNBQWMsbUJBQU8sQ0FBQywwQ0FBVzs7QUFFakM7QUFDQTs7QUFFQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvaGFzdHNjcmlwdC9odG1sLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbnZhciBzY2hlbWEgPSByZXF1aXJlKCdwcm9wZXJ0eS1pbmZvcm1hdGlvbi9odG1sJylcbnZhciBmYWN0b3J5ID0gcmVxdWlyZSgnLi9mYWN0b3J5JylcblxudmFyIGh0bWwgPSBmYWN0b3J5KHNjaGVtYSwgJ2RpdicpXG5odG1sLmRpc3BsYXlOYW1lID0gJ2h0bWwnXG5cbm1vZHVsZS5leHBvcnRzID0gaHRtbFxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/hastscript/html.js\n")},"../../node_modules/hastscript/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nmodule.exports = __webpack_require__("../../node_modules/hastscript/html.js")\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9oYXN0c2NyaXB0L2luZGV4LmpzPzEzZGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosaUJBQWlCLG1CQUFPLENBQUMsdUNBQVEiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL2hhc3RzY3JpcHQvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2h0bWwnKVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/hastscript/index.js\n')},"../../node_modules/is-alphabetical/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = alphabetical\n\n// Check if the given character code, or the character code at the first\n// character, is alphabetical.\nfunction alphabetical(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 && code <= 122) /* a-z */ ||\n (code >= 65 && code <= 90) /* A-Z */\n )\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9pcy1hbHBoYWJldGljYWwvaW5kZXguanM/MzdlZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9pcy1hbHBoYWJldGljYWwvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBhbHBoYWJldGljYWxcblxuLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBjb2RlLCBvciB0aGUgY2hhcmFjdGVyIGNvZGUgYXQgdGhlIGZpcnN0XG4vLyBjaGFyYWN0ZXIsIGlzIGFscGhhYmV0aWNhbC5cbmZ1bmN0aW9uIGFscGhhYmV0aWNhbChjaGFyYWN0ZXIpIHtcbiAgdmFyIGNvZGUgPSB0eXBlb2YgY2hhcmFjdGVyID09PSAnc3RyaW5nJyA/IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApIDogY2hhcmFjdGVyXG5cbiAgcmV0dXJuIChcbiAgICAoY29kZSA+PSA5NyAmJiBjb2RlIDw9IDEyMikgLyogYS16ICovIHx8XG4gICAgKGNvZGUgPj0gNjUgJiYgY29kZSA8PSA5MCkgLyogQS1aICovXG4gIClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/is-alphabetical/index.js\n")},"../../node_modules/is-alphanumerical/index.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar alphabetical = __webpack_require__("../../node_modules/is-alphabetical/index.js")\nvar decimal = __webpack_require__("../../node_modules/is-decimal/index.js")\n\nmodule.exports = alphanumerical\n\n// Check if the given character code, or the character code at the first\n// character, is alphanumerical.\nfunction alphanumerical(character) {\n return alphabetical(character) || decimal(character)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9pcy1hbHBoYW51bWVyaWNhbC9pbmRleC5qcz80NTJkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLG1CQUFtQixtQkFBTyxDQUFDLDZDQUFpQjtBQUM1QyxjQUFjLG1CQUFPLENBQUMsd0NBQVk7O0FBRWxDOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL2lzLWFscGhhbnVtZXJpY2FsL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbnZhciBhbHBoYWJldGljYWwgPSByZXF1aXJlKCdpcy1hbHBoYWJldGljYWwnKVxudmFyIGRlY2ltYWwgPSByZXF1aXJlKCdpcy1kZWNpbWFsJylcblxubW9kdWxlLmV4cG9ydHMgPSBhbHBoYW51bWVyaWNhbFxuXG4vLyBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXIgY29kZSBhdCB0aGUgZmlyc3Rcbi8vIGNoYXJhY3RlciwgaXMgYWxwaGFudW1lcmljYWwuXG5mdW5jdGlvbiBhbHBoYW51bWVyaWNhbChjaGFyYWN0ZXIpIHtcbiAgcmV0dXJuIGFscGhhYmV0aWNhbChjaGFyYWN0ZXIpIHx8IGRlY2ltYWwoY2hhcmFjdGVyKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/is-alphanumerical/index.js\n')},"../../node_modules/is-decimal/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = decimal\n\n// Check if the given character code, or the character code at the first\n// character, is decimal.\nfunction decimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return code >= 48 && code <= 57 /* 0-9 */\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9pcy1kZWNpbWFsL2luZGV4LmpzPzVkNWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvaXMtZGVjaW1hbC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlY2ltYWxcblxuLy8gQ2hlY2sgaWYgdGhlIGdpdmVuIGNoYXJhY3RlciBjb2RlLCBvciB0aGUgY2hhcmFjdGVyIGNvZGUgYXQgdGhlIGZpcnN0XG4vLyBjaGFyYWN0ZXIsIGlzIGRlY2ltYWwuXG5mdW5jdGlvbiBkZWNpbWFsKGNoYXJhY3Rlcikge1xuICB2YXIgY29kZSA9IHR5cGVvZiBjaGFyYWN0ZXIgPT09ICdzdHJpbmcnID8gY2hhcmFjdGVyLmNoYXJDb2RlQXQoMCkgOiBjaGFyYWN0ZXJcblxuICByZXR1cm4gY29kZSA+PSA0OCAmJiBjb2RlIDw9IDU3IC8qIDAtOSAqL1xufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/is-decimal/index.js\n")},"../../node_modules/is-hexadecimal/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = hexadecimal\n\n// Check if the given character code, or the character code at the first\n// character, is hexadecimal.\nfunction hexadecimal(character) {\n var code = typeof character === 'string' ? character.charCodeAt(0) : character\n\n return (\n (code >= 97 /* a */ && code <= 102) /* z */ ||\n (code >= 65 /* A */ && code <= 70) /* Z */ ||\n (code >= 48 /* A */ && code <= 57) /* Z */\n )\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9pcy1oZXhhZGVjaW1hbC9pbmRleC5qcz84NTRmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvaXMtaGV4YWRlY2ltYWwvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBoZXhhZGVjaW1hbFxuXG4vLyBDaGVjayBpZiB0aGUgZ2l2ZW4gY2hhcmFjdGVyIGNvZGUsIG9yIHRoZSBjaGFyYWN0ZXIgY29kZSBhdCB0aGUgZmlyc3Rcbi8vIGNoYXJhY3RlciwgaXMgaGV4YWRlY2ltYWwuXG5mdW5jdGlvbiBoZXhhZGVjaW1hbChjaGFyYWN0ZXIpIHtcbiAgdmFyIGNvZGUgPSB0eXBlb2YgY2hhcmFjdGVyID09PSAnc3RyaW5nJyA/IGNoYXJhY3Rlci5jaGFyQ29kZUF0KDApIDogY2hhcmFjdGVyXG5cbiAgcmV0dXJuIChcbiAgICAoY29kZSA+PSA5NyAvKiBhICovICYmIGNvZGUgPD0gMTAyKSAvKiB6ICovIHx8XG4gICAgKGNvZGUgPj0gNjUgLyogQSAqLyAmJiBjb2RlIDw9IDcwKSAvKiBaICovIHx8XG4gICAgKGNvZGUgPj0gNDggLyogQSAqLyAmJiBjb2RlIDw9IDU3KSAvKiBaICovXG4gIClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/is-hexadecimal/index.js\n")},"../../node_modules/parse-entities/decode-entity.browser.js":function(module,exports,__webpack_require__){"use strict";eval("\n\n/* eslint-env browser */\n\nvar el\n\nvar semicolon = 59 // ';'\n\nmodule.exports = decodeEntity\n\nfunction decodeEntity(characters) {\n var entity = '&' + characters + ';'\n var char\n\n el = el || document.createElement('i')\n el.innerHTML = entity\n char = el.textContent\n\n // Some entities do not require the closing semicolon (`¬` - for instance),\n // which leads to situations where parsing the assumed entity of ¬it; will\n // result in the string `¬it;`. When we encounter a trailing semicolon after\n // parsing and the entity to decode was not a semicolon (`;`), we can\n // assume that the matching was incomplete\n if (char.charCodeAt(char.length - 1) === semicolon && characters !== 'semi') {\n return false\n }\n\n // If the decoded string is equal to the input, the entity was not valid\n return char === entity ? false : char\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wYXJzZS1lbnRpdGllcy9kZWNvZGUtZW50aXR5LmJyb3dzZXIuanM/MWYzNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTs7QUFFQSx5QkFBeUI7O0FBRXpCOztBQUVBO0FBQ0Esb0NBQW9DO0FBQ3BDOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDBFQUEwRTtBQUMxRSwrQkFBK0I7QUFDL0Isa0VBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcGFyc2UtZW50aXRpZXMvZGVjb2RlLWVudGl0eS5icm93c2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbi8qIGVzbGludC1lbnYgYnJvd3NlciAqL1xuXG52YXIgZWxcblxudmFyIHNlbWljb2xvbiA9IDU5IC8vICAnOydcblxubW9kdWxlLmV4cG9ydHMgPSBkZWNvZGVFbnRpdHlcblxuZnVuY3Rpb24gZGVjb2RlRW50aXR5KGNoYXJhY3RlcnMpIHtcbiAgdmFyIGVudGl0eSA9ICcmJyArIGNoYXJhY3RlcnMgKyAnOydcbiAgdmFyIGNoYXJcblxuICBlbCA9IGVsIHx8IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2knKVxuICBlbC5pbm5lckhUTUwgPSBlbnRpdHlcbiAgY2hhciA9IGVsLnRleHRDb250ZW50XG5cbiAgLy8gU29tZSBlbnRpdGllcyBkbyBub3QgcmVxdWlyZSB0aGUgY2xvc2luZyBzZW1pY29sb24gKGAmbm90YCAtIGZvciBpbnN0YW5jZSksXG4gIC8vIHdoaWNoIGxlYWRzIHRvIHNpdHVhdGlvbnMgd2hlcmUgcGFyc2luZyB0aGUgYXNzdW1lZCBlbnRpdHkgb2YgJm5vdGl0OyB3aWxsXG4gIC8vIHJlc3VsdCBpbiB0aGUgc3RyaW5nIGDCrGl0O2AuICBXaGVuIHdlIGVuY291bnRlciBhIHRyYWlsaW5nIHNlbWljb2xvbiBhZnRlclxuICAvLyBwYXJzaW5nIGFuZCB0aGUgZW50aXR5IHRvIGRlY29kZSB3YXMgbm90IGEgc2VtaWNvbG9uIChgJnNlbWk7YCksIHdlIGNhblxuICAvLyBhc3N1bWUgdGhhdCB0aGUgbWF0Y2hpbmcgd2FzIGluY29tcGxldGVcbiAgaWYgKGNoYXIuY2hhckNvZGVBdChjaGFyLmxlbmd0aCAtIDEpID09PSBzZW1pY29sb24gJiYgY2hhcmFjdGVycyAhPT0gJ3NlbWknKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBJZiB0aGUgZGVjb2RlZCBzdHJpbmcgaXMgZXF1YWwgdG8gdGhlIGlucHV0LCB0aGUgZW50aXR5IHdhcyBub3QgdmFsaWRcbiAgcmV0dXJuIGNoYXIgPT09IGVudGl0eSA/IGZhbHNlIDogY2hhclxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/parse-entities/decode-entity.browser.js\n")},"../../node_modules/parse-entities/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar legacy = __webpack_require__(\"../../node_modules/character-entities-legacy/index.json\")\nvar invalid = __webpack_require__(\"../../node_modules/character-reference-invalid/index.json\")\nvar decimal = __webpack_require__(\"../../node_modules/is-decimal/index.js\")\nvar hexadecimal = __webpack_require__(\"../../node_modules/is-hexadecimal/index.js\")\nvar alphanumerical = __webpack_require__(\"../../node_modules/is-alphanumerical/index.js\")\nvar decodeEntity = __webpack_require__(\"../../node_modules/parse-entities/decode-entity.browser.js\")\n\nmodule.exports = parseEntities\n\nvar own = {}.hasOwnProperty\nvar fromCharCode = String.fromCharCode\nvar noop = Function.prototype\n\n// Default settings.\nvar defaults = {\n warning: null,\n reference: null,\n text: null,\n warningContext: null,\n referenceContext: null,\n textContext: null,\n position: {},\n additional: null,\n attribute: false,\n nonTerminated: true\n}\n\n// Characters.\nvar tab = 9 // '\\t'\nvar lineFeed = 10 // '\\n'\nvar formFeed = 12 // '\\f'\nvar space = 32 // ' '\nvar ampersand = 38 // '&'\nvar semicolon = 59 // ';'\nvar lessThan = 60 // '<'\nvar equalsTo = 61 // '='\nvar numberSign = 35 // '#'\nvar uppercaseX = 88 // 'X'\nvar lowercaseX = 120 // 'x'\nvar replacementCharacter = 65533 // '�'\n\n// Reference types.\nvar name = 'named'\nvar hexa = 'hexadecimal'\nvar deci = 'decimal'\n\n// Map of bases.\nvar bases = {}\n\nbases[hexa] = 16\nbases[deci] = 10\n\n// Map of types to tests.\n// Each type of character reference accepts different characters.\n// This test is used to detect whether a reference has ended (as the semicolon\n// is not strictly needed).\nvar tests = {}\n\ntests[name] = alphanumerical\ntests[deci] = decimal\ntests[hexa] = hexadecimal\n\n// Warning types.\nvar namedNotTerminated = 1\nvar numericNotTerminated = 2\nvar namedEmpty = 3\nvar numericEmpty = 4\nvar namedUnknown = 5\nvar numericDisallowed = 6\nvar numericProhibited = 7\n\n// Warning messages.\nvar messages = {}\n\nmessages[namedNotTerminated] =\n 'Named character references must be terminated by a semicolon'\nmessages[numericNotTerminated] =\n 'Numeric character references must be terminated by a semicolon'\nmessages[namedEmpty] = 'Named character references cannot be empty'\nmessages[numericEmpty] = 'Numeric character references cannot be empty'\nmessages[namedUnknown] = 'Named character references must be known'\nmessages[numericDisallowed] =\n 'Numeric character references cannot be disallowed'\nmessages[numericProhibited] =\n 'Numeric character references cannot be outside the permissible Unicode range'\n\n// Wrap to ensure clean parameters are given to `parse`.\nfunction parseEntities(value, options) {\n var settings = {}\n var option\n var key\n\n if (!options) {\n options = {}\n }\n\n for (key in defaults) {\n option = options[key]\n settings[key] =\n option === null || option === undefined ? defaults[key] : option\n }\n\n if (settings.position.indent || settings.position.start) {\n settings.indent = settings.position.indent || []\n settings.position = settings.position.start\n }\n\n return parse(value, settings)\n}\n\n// Parse entities.\n// eslint-disable-next-line complexity\nfunction parse(value, settings) {\n var additional = settings.additional\n var nonTerminated = settings.nonTerminated\n var handleText = settings.text\n var handleReference = settings.reference\n var handleWarning = settings.warning\n var textContext = settings.textContext\n var referenceContext = settings.referenceContext\n var warningContext = settings.warningContext\n var pos = settings.position\n var indent = settings.indent || []\n var length = value.length\n var index = 0\n var lines = -1\n var column = pos.column || 1\n var line = pos.line || 1\n var queue = ''\n var result = []\n var entityCharacters\n var namedEntity\n var terminated\n var characters\n var character\n var reference\n var following\n var warning\n var reason\n var output\n var entity\n var begin\n var start\n var type\n var test\n var prev\n var next\n var diff\n var end\n\n if (typeof additional === 'string') {\n additional = additional.charCodeAt(0)\n }\n\n // Cache the current point.\n prev = now()\n\n // Wrap `handleWarning`.\n warning = handleWarning ? parseError : noop\n\n // Ensure the algorithm walks over the first character and the end\n // (inclusive).\n index--\n length++\n\n while (++index < length) {\n // If the previous character was a newline.\n if (character === lineFeed) {\n column = indent[lines] || 1\n }\n\n character = value.charCodeAt(index)\n\n if (character === ampersand) {\n following = value.charCodeAt(index + 1)\n\n // The behaviour depends on the identity of the next character.\n if (\n following === tab ||\n following === lineFeed ||\n following === formFeed ||\n following === space ||\n following === ampersand ||\n following === lessThan ||\n following !== following ||\n (additional && following === additional)\n ) {\n // Not a character reference.\n // No characters are consumed, and nothing is returned.\n // This is not an error, either.\n queue += fromCharCode(character)\n column++\n\n continue\n }\n\n start = index + 1\n begin = start\n end = start\n\n if (following === numberSign) {\n // Numerical entity.\n end = ++begin\n\n // The behaviour further depends on the next character.\n following = value.charCodeAt(end)\n\n if (following === uppercaseX || following === lowercaseX) {\n // ASCII hex digits.\n type = hexa\n end = ++begin\n } else {\n // ASCII digits.\n type = deci\n }\n } else {\n // Named entity.\n type = name\n }\n\n entityCharacters = ''\n entity = ''\n characters = ''\n test = tests[type]\n end--\n\n while (++end < length) {\n following = value.charCodeAt(end)\n\n if (!test(following)) {\n break\n }\n\n characters += fromCharCode(following)\n\n // Check if we can match a legacy named reference.\n // If so, we cache that as the last viable named reference.\n // This ensures we do not need to walk backwards later.\n if (type === name && own.call(legacy, characters)) {\n entityCharacters = characters\n entity = legacy[characters]\n }\n }\n\n terminated = value.charCodeAt(end) === semicolon\n\n if (terminated) {\n end++\n\n namedEntity = type === name ? decodeEntity(characters) : false\n\n if (namedEntity) {\n entityCharacters = characters\n entity = namedEntity\n }\n }\n\n diff = 1 + end - start\n\n if (!terminated && !nonTerminated) {\n // Empty.\n } else if (!characters) {\n // An empty (possible) entity is valid, unless it’s numeric (thus an\n // ampersand followed by an octothorp).\n if (type !== name) {\n warning(numericEmpty, diff)\n }\n } else if (type === name) {\n // An ampersand followed by anything unknown, and not terminated, is\n // invalid.\n if (terminated && !entity) {\n warning(namedUnknown, 1)\n } else {\n // If theres something after an entity name which is not known, cap\n // the reference.\n if (entityCharacters !== characters) {\n end = begin + entityCharacters.length\n diff = 1 + end - begin\n terminated = false\n }\n\n // If the reference is not terminated, warn.\n if (!terminated) {\n reason = entityCharacters ? namedNotTerminated : namedEmpty\n\n if (settings.attribute) {\n following = value.charCodeAt(end)\n\n if (following === equalsTo) {\n warning(reason, diff)\n entity = null\n } else if (alphanumerical(following)) {\n entity = null\n } else {\n warning(reason, diff)\n }\n } else {\n warning(reason, diff)\n }\n }\n }\n\n reference = entity\n } else {\n if (!terminated) {\n // All non-terminated numeric entities are not rendered, and trigger a\n // warning.\n warning(numericNotTerminated, diff)\n }\n\n // When terminated and number, parse as either hexadecimal or decimal.\n reference = parseInt(characters, bases[type])\n\n // Trigger a warning when the parsed number is prohibited, and replace\n // with replacement character.\n if (prohibited(reference)) {\n warning(numericProhibited, diff)\n reference = fromCharCode(replacementCharacter)\n } else if (reference in invalid) {\n // Trigger a warning when the parsed number is disallowed, and replace\n // by an alternative.\n warning(numericDisallowed, diff)\n reference = invalid[reference]\n } else {\n // Parse the number.\n output = ''\n\n // Trigger a warning when the parsed number should not be used.\n if (disallowed(reference)) {\n warning(numericDisallowed, diff)\n }\n\n // Stringify the number.\n if (reference > 0xffff) {\n reference -= 0x10000\n output += fromCharCode((reference >>> (10 & 0x3ff)) | 0xd800)\n reference = 0xdc00 | (reference & 0x3ff)\n }\n\n reference = output + fromCharCode(reference)\n }\n }\n\n // Found it!\n // First eat the queued characters as normal text, then eat an entity.\n if (reference) {\n flush()\n\n prev = now()\n index = end - 1\n column += end - start + 1\n result.push(reference)\n next = now()\n next.offset++\n\n if (handleReference) {\n handleReference.call(\n referenceContext,\n reference,\n {start: prev, end: next},\n value.slice(start - 1, end)\n )\n }\n\n prev = next\n } else {\n // If we could not find a reference, queue the checked characters (as\n // normal characters), and move the pointer to their end.\n // This is possible because we can be certain neither newlines nor\n // ampersands are included.\n characters = value.slice(start - 1, end)\n queue += characters\n column += characters.length\n index = end - 1\n }\n } else {\n // Handle anything other than an ampersand, including newlines and EOF.\n if (\n character === 10 // Line feed\n ) {\n line++\n lines++\n column = 0\n }\n\n if (character === character) {\n queue += fromCharCode(character)\n column++\n } else {\n flush()\n }\n }\n }\n\n // Return the reduced nodes.\n return result.join('')\n\n // Get current position.\n function now() {\n return {\n line: line,\n column: column,\n offset: index + (pos.offset || 0)\n }\n }\n\n // “Throw” a parse-error: a warning.\n function parseError(code, offset) {\n var position = now()\n\n position.column += offset\n position.offset += offset\n\n handleWarning.call(warningContext, messages[code], position, code)\n }\n\n // Flush `queue` (normal text).\n // Macro invoked before each entity and at the end of `value`.\n // Does nothing when `queue` is empty.\n function flush() {\n if (queue) {\n result.push(queue)\n\n if (handleText) {\n handleText.call(textContext, queue, {start: prev, end: now()})\n }\n\n queue = ''\n }\n }\n}\n\n// Check if `character` is outside the permissible unicode range.\nfunction prohibited(code) {\n return (code >= 0xd800 && code <= 0xdfff) || code > 0x10ffff\n}\n\n// Check if `character` is disallowed.\nfunction disallowed(code) {\n return (\n (code >= 0x0001 && code <= 0x0008) ||\n code === 0x000b ||\n (code >= 0x000d && code <= 0x001f) ||\n (code >= 0x007f && code <= 0x009f) ||\n (code >= 0xfdd0 && code <= 0xfdef) ||\n (code & 0xffff) === 0xffff ||\n (code & 0xffff) === 0xfffe\n )\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wYXJzZS1lbnRpdGllcy9pbmRleC5qcz80OTE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLGFBQWEsbUJBQU8sQ0FBQyx5REFBMkI7QUFDaEQsY0FBYyxtQkFBTyxDQUFDLDJEQUE2QjtBQUNuRCxjQUFjLG1CQUFPLENBQUMsd0NBQVk7QUFDbEMsa0JBQWtCLG1CQUFPLENBQUMsNENBQWdCO0FBQzFDLHFCQUFxQixtQkFBTyxDQUFDLCtDQUFtQjtBQUNoRCxtQkFBbUIsbUJBQU8sQ0FBQyw0REFBaUI7O0FBRTVDOztBQUVBLFlBQVk7QUFDWjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLHVCQUF1QjtBQUNwQztBQUNBO0FBQ0E7O0FBRUE7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLDZDQUE2Qyx3QkFBd0I7QUFDckU7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wYXJzZS1lbnRpdGllcy9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgbGVnYWN5ID0gcmVxdWlyZSgnY2hhcmFjdGVyLWVudGl0aWVzLWxlZ2FjeScpXG52YXIgaW52YWxpZCA9IHJlcXVpcmUoJ2NoYXJhY3Rlci1yZWZlcmVuY2UtaW52YWxpZCcpXG52YXIgZGVjaW1hbCA9IHJlcXVpcmUoJ2lzLWRlY2ltYWwnKVxudmFyIGhleGFkZWNpbWFsID0gcmVxdWlyZSgnaXMtaGV4YWRlY2ltYWwnKVxudmFyIGFscGhhbnVtZXJpY2FsID0gcmVxdWlyZSgnaXMtYWxwaGFudW1lcmljYWwnKVxudmFyIGRlY29kZUVudGl0eSA9IHJlcXVpcmUoJy4vZGVjb2RlLWVudGl0eScpXG5cbm1vZHVsZS5leHBvcnRzID0gcGFyc2VFbnRpdGllc1xuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHlcbnZhciBmcm9tQ2hhckNvZGUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlXG52YXIgbm9vcCA9IEZ1bmN0aW9uLnByb3RvdHlwZVxuXG4vLyBEZWZhdWx0IHNldHRpbmdzLlxudmFyIGRlZmF1bHRzID0ge1xuICB3YXJuaW5nOiBudWxsLFxuICByZWZlcmVuY2U6IG51bGwsXG4gIHRleHQ6IG51bGwsXG4gIHdhcm5pbmdDb250ZXh0OiBudWxsLFxuICByZWZlcmVuY2VDb250ZXh0OiBudWxsLFxuICB0ZXh0Q29udGV4dDogbnVsbCxcbiAgcG9zaXRpb246IHt9LFxuICBhZGRpdGlvbmFsOiBudWxsLFxuICBhdHRyaWJ1dGU6IGZhbHNlLFxuICBub25UZXJtaW5hdGVkOiB0cnVlXG59XG5cbi8vIENoYXJhY3RlcnMuXG52YXIgdGFiID0gOSAvLyAnXFx0J1xudmFyIGxpbmVGZWVkID0gMTAgLy8gJ1xcbidcbnZhciBmb3JtRmVlZCA9IDEyIC8vICdcXGYnXG52YXIgc3BhY2UgPSAzMiAvLyAnICdcbnZhciBhbXBlcnNhbmQgPSAzOCAvLyAnJidcbnZhciBzZW1pY29sb24gPSA1OSAvLyAnOydcbnZhciBsZXNzVGhhbiA9IDYwIC8vICc8J1xudmFyIGVxdWFsc1RvID0gNjEgLy8gJz0nXG52YXIgbnVtYmVyU2lnbiA9IDM1IC8vICcjJ1xudmFyIHVwcGVyY2FzZVggPSA4OCAvLyAnWCdcbnZhciBsb3dlcmNhc2VYID0gMTIwIC8vICd4J1xudmFyIHJlcGxhY2VtZW50Q2hhcmFjdGVyID0gNjU1MzMgLy8gJ++/vSdcblxuLy8gUmVmZXJlbmNlIHR5cGVzLlxudmFyIG5hbWUgPSAnbmFtZWQnXG52YXIgaGV4YSA9ICdoZXhhZGVjaW1hbCdcbnZhciBkZWNpID0gJ2RlY2ltYWwnXG5cbi8vIE1hcCBvZiBiYXNlcy5cbnZhciBiYXNlcyA9IHt9XG5cbmJhc2VzW2hleGFdID0gMTZcbmJhc2VzW2RlY2ldID0gMTBcblxuLy8gTWFwIG9mIHR5cGVzIHRvIHRlc3RzLlxuLy8gRWFjaCB0eXBlIG9mIGNoYXJhY3RlciByZWZlcmVuY2UgYWNjZXB0cyBkaWZmZXJlbnQgY2hhcmFjdGVycy5cbi8vIFRoaXMgdGVzdCBpcyB1c2VkIHRvIGRldGVjdCB3aGV0aGVyIGEgcmVmZXJlbmNlIGhhcyBlbmRlZCAoYXMgdGhlIHNlbWljb2xvblxuLy8gaXMgbm90IHN0cmljdGx5IG5lZWRlZCkuXG52YXIgdGVzdHMgPSB7fVxuXG50ZXN0c1tuYW1lXSA9IGFscGhhbnVtZXJpY2FsXG50ZXN0c1tkZWNpXSA9IGRlY2ltYWxcbnRlc3RzW2hleGFdID0gaGV4YWRlY2ltYWxcblxuLy8gV2FybmluZyB0eXBlcy5cbnZhciBuYW1lZE5vdFRlcm1pbmF0ZWQgPSAxXG52YXIgbnVtZXJpY05vdFRlcm1pbmF0ZWQgPSAyXG52YXIgbmFtZWRFbXB0eSA9IDNcbnZhciBudW1lcmljRW1wdHkgPSA0XG52YXIgbmFtZWRVbmtub3duID0gNVxudmFyIG51bWVyaWNEaXNhbGxvd2VkID0gNlxudmFyIG51bWVyaWNQcm9oaWJpdGVkID0gN1xuXG4vLyBXYXJuaW5nIG1lc3NhZ2VzLlxudmFyIG1lc3NhZ2VzID0ge31cblxubWVzc2FnZXNbbmFtZWROb3RUZXJtaW5hdGVkXSA9XG4gICdOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24nXG5tZXNzYWdlc1tudW1lcmljTm90VGVybWluYXRlZF0gPVxuICAnTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIHRlcm1pbmF0ZWQgYnkgYSBzZW1pY29sb24nXG5tZXNzYWdlc1tuYW1lZEVtcHR5XSA9ICdOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgZW1wdHknXG5tZXNzYWdlc1tudW1lcmljRW1wdHldID0gJ051bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGVtcHR5J1xubWVzc2FnZXNbbmFtZWRVbmtub3duXSA9ICdOYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBtdXN0IGJlIGtub3duJ1xubWVzc2FnZXNbbnVtZXJpY0Rpc2FsbG93ZWRdID1cbiAgJ051bWVyaWMgY2hhcmFjdGVyIHJlZmVyZW5jZXMgY2Fubm90IGJlIGRpc2FsbG93ZWQnXG5tZXNzYWdlc1tudW1lcmljUHJvaGliaXRlZF0gPVxuICAnTnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBjYW5ub3QgYmUgb3V0c2lkZSB0aGUgcGVybWlzc2libGUgVW5pY29kZSByYW5nZSdcblxuLy8gV3JhcCB0byBlbnN1cmUgY2xlYW4gcGFyYW1ldGVycyBhcmUgZ2l2ZW4gdG8gYHBhcnNlYC5cbmZ1bmN0aW9uIHBhcnNlRW50aXRpZXModmFsdWUsIG9wdGlvbnMpIHtcbiAgdmFyIHNldHRpbmdzID0ge31cbiAgdmFyIG9wdGlvblxuICB2YXIga2V5XG5cbiAgaWYgKCFvcHRpb25zKSB7XG4gICAgb3B0aW9ucyA9IHt9XG4gIH1cblxuICBmb3IgKGtleSBpbiBkZWZhdWx0cykge1xuICAgIG9wdGlvbiA9IG9wdGlvbnNba2V5XVxuICAgIHNldHRpbmdzW2tleV0gPVxuICAgICAgb3B0aW9uID09PSBudWxsIHx8IG9wdGlvbiA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdHNba2V5XSA6IG9wdGlvblxuICB9XG5cbiAgaWYgKHNldHRpbmdzLnBvc2l0aW9uLmluZGVudCB8fCBzZXR0aW5ncy5wb3NpdGlvbi5zdGFydCkge1xuICAgIHNldHRpbmdzLmluZGVudCA9IHNldHRpbmdzLnBvc2l0aW9uLmluZGVudCB8fCBbXVxuICAgIHNldHRpbmdzLnBvc2l0aW9uID0gc2V0dGluZ3MucG9zaXRpb24uc3RhcnRcbiAgfVxuXG4gIHJldHVybiBwYXJzZSh2YWx1ZSwgc2V0dGluZ3MpXG59XG5cbi8vIFBhcnNlIGVudGl0aWVzLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbmZ1bmN0aW9uIHBhcnNlKHZhbHVlLCBzZXR0aW5ncykge1xuICB2YXIgYWRkaXRpb25hbCA9IHNldHRpbmdzLmFkZGl0aW9uYWxcbiAgdmFyIG5vblRlcm1pbmF0ZWQgPSBzZXR0aW5ncy5ub25UZXJtaW5hdGVkXG4gIHZhciBoYW5kbGVUZXh0ID0gc2V0dGluZ3MudGV4dFxuICB2YXIgaGFuZGxlUmVmZXJlbmNlID0gc2V0dGluZ3MucmVmZXJlbmNlXG4gIHZhciBoYW5kbGVXYXJuaW5nID0gc2V0dGluZ3Mud2FybmluZ1xuICB2YXIgdGV4dENvbnRleHQgPSBzZXR0aW5ncy50ZXh0Q29udGV4dFxuICB2YXIgcmVmZXJlbmNlQ29udGV4dCA9IHNldHRpbmdzLnJlZmVyZW5jZUNvbnRleHRcbiAgdmFyIHdhcm5pbmdDb250ZXh0ID0gc2V0dGluZ3Mud2FybmluZ0NvbnRleHRcbiAgdmFyIHBvcyA9IHNldHRpbmdzLnBvc2l0aW9uXG4gIHZhciBpbmRlbnQgPSBzZXR0aW5ncy5pbmRlbnQgfHwgW11cbiAgdmFyIGxlbmd0aCA9IHZhbHVlLmxlbmd0aFxuICB2YXIgaW5kZXggPSAwXG4gIHZhciBsaW5lcyA9IC0xXG4gIHZhciBjb2x1bW4gPSBwb3MuY29sdW1uIHx8IDFcbiAgdmFyIGxpbmUgPSBwb3MubGluZSB8fCAxXG4gIHZhciBxdWV1ZSA9ICcnXG4gIHZhciByZXN1bHQgPSBbXVxuICB2YXIgZW50aXR5Q2hhcmFjdGVyc1xuICB2YXIgbmFtZWRFbnRpdHlcbiAgdmFyIHRlcm1pbmF0ZWRcbiAgdmFyIGNoYXJhY3RlcnNcbiAgdmFyIGNoYXJhY3RlclxuICB2YXIgcmVmZXJlbmNlXG4gIHZhciBmb2xsb3dpbmdcbiAgdmFyIHdhcm5pbmdcbiAgdmFyIHJlYXNvblxuICB2YXIgb3V0cHV0XG4gIHZhciBlbnRpdHlcbiAgdmFyIGJlZ2luXG4gIHZhciBzdGFydFxuICB2YXIgdHlwZVxuICB2YXIgdGVzdFxuICB2YXIgcHJldlxuICB2YXIgbmV4dFxuICB2YXIgZGlmZlxuICB2YXIgZW5kXG5cbiAgaWYgKHR5cGVvZiBhZGRpdGlvbmFsID09PSAnc3RyaW5nJykge1xuICAgIGFkZGl0aW9uYWwgPSBhZGRpdGlvbmFsLmNoYXJDb2RlQXQoMClcbiAgfVxuXG4gIC8vIENhY2hlIHRoZSBjdXJyZW50IHBvaW50LlxuICBwcmV2ID0gbm93KClcblxuICAvLyBXcmFwIGBoYW5kbGVXYXJuaW5nYC5cbiAgd2FybmluZyA9IGhhbmRsZVdhcm5pbmcgPyBwYXJzZUVycm9yIDogbm9vcFxuXG4gIC8vIEVuc3VyZSB0aGUgYWxnb3JpdGhtIHdhbGtzIG92ZXIgdGhlIGZpcnN0IGNoYXJhY3RlciBhbmQgdGhlIGVuZFxuICAvLyAoaW5jbHVzaXZlKS5cbiAgaW5kZXgtLVxuICBsZW5ndGgrK1xuXG4gIHdoaWxlICgrK2luZGV4IDwgbGVuZ3RoKSB7XG4gICAgLy8gSWYgdGhlIHByZXZpb3VzIGNoYXJhY3RlciB3YXMgYSBuZXdsaW5lLlxuICAgIGlmIChjaGFyYWN0ZXIgPT09IGxpbmVGZWVkKSB7XG4gICAgICBjb2x1bW4gPSBpbmRlbnRbbGluZXNdIHx8IDFcbiAgICB9XG5cbiAgICBjaGFyYWN0ZXIgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4KVxuXG4gICAgaWYgKGNoYXJhY3RlciA9PT0gYW1wZXJzYW5kKSB7XG4gICAgICBmb2xsb3dpbmcgPSB2YWx1ZS5jaGFyQ29kZUF0KGluZGV4ICsgMSlcblxuICAgICAgLy8gVGhlIGJlaGF2aW91ciBkZXBlbmRzIG9uIHRoZSBpZGVudGl0eSBvZiB0aGUgbmV4dCBjaGFyYWN0ZXIuXG4gICAgICBpZiAoXG4gICAgICAgIGZvbGxvd2luZyA9PT0gdGFiIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gbGluZUZlZWQgfHxcbiAgICAgICAgZm9sbG93aW5nID09PSBmb3JtRmVlZCB8fFxuICAgICAgICBmb2xsb3dpbmcgPT09IHNwYWNlIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gYW1wZXJzYW5kIHx8XG4gICAgICAgIGZvbGxvd2luZyA9PT0gbGVzc1RoYW4gfHxcbiAgICAgICAgZm9sbG93aW5nICE9PSBmb2xsb3dpbmcgfHxcbiAgICAgICAgKGFkZGl0aW9uYWwgJiYgZm9sbG93aW5nID09PSBhZGRpdGlvbmFsKVxuICAgICAgKSB7XG4gICAgICAgIC8vIE5vdCBhIGNoYXJhY3RlciByZWZlcmVuY2UuXG4gICAgICAgIC8vIE5vIGNoYXJhY3RlcnMgYXJlIGNvbnN1bWVkLCBhbmQgbm90aGluZyBpcyByZXR1cm5lZC5cbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYW4gZXJyb3IsIGVpdGhlci5cbiAgICAgICAgcXVldWUgKz0gZnJvbUNoYXJDb2RlKGNoYXJhY3RlcilcbiAgICAgICAgY29sdW1uKytcblxuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICBzdGFydCA9IGluZGV4ICsgMVxuICAgICAgYmVnaW4gPSBzdGFydFxuICAgICAgZW5kID0gc3RhcnRcblxuICAgICAgaWYgKGZvbGxvd2luZyA9PT0gbnVtYmVyU2lnbikge1xuICAgICAgICAvLyBOdW1lcmljYWwgZW50aXR5LlxuICAgICAgICBlbmQgPSArK2JlZ2luXG5cbiAgICAgICAgLy8gVGhlIGJlaGF2aW91ciBmdXJ0aGVyIGRlcGVuZHMgb24gdGhlIG5leHQgY2hhcmFjdGVyLlxuICAgICAgICBmb2xsb3dpbmcgPSB2YWx1ZS5jaGFyQ29kZUF0KGVuZClcblxuICAgICAgICBpZiAoZm9sbG93aW5nID09PSB1cHBlcmNhc2VYIHx8IGZvbGxvd2luZyA9PT0gbG93ZXJjYXNlWCkge1xuICAgICAgICAgIC8vIEFTQ0lJIGhleCBkaWdpdHMuXG4gICAgICAgICAgdHlwZSA9IGhleGFcbiAgICAgICAgICBlbmQgPSArK2JlZ2luXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQVNDSUkgZGlnaXRzLlxuICAgICAgICAgIHR5cGUgPSBkZWNpXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5hbWVkIGVudGl0eS5cbiAgICAgICAgdHlwZSA9IG5hbWVcbiAgICAgIH1cblxuICAgICAgZW50aXR5Q2hhcmFjdGVycyA9ICcnXG4gICAgICBlbnRpdHkgPSAnJ1xuICAgICAgY2hhcmFjdGVycyA9ICcnXG4gICAgICB0ZXN0ID0gdGVzdHNbdHlwZV1cbiAgICAgIGVuZC0tXG5cbiAgICAgIHdoaWxlICgrK2VuZCA8IGxlbmd0aCkge1xuICAgICAgICBmb2xsb3dpbmcgPSB2YWx1ZS5jaGFyQ29kZUF0KGVuZClcblxuICAgICAgICBpZiAoIXRlc3QoZm9sbG93aW5nKSkge1xuICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cblxuICAgICAgICBjaGFyYWN0ZXJzICs9IGZyb21DaGFyQ29kZShmb2xsb3dpbmcpXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgd2UgY2FuIG1hdGNoIGEgbGVnYWN5IG5hbWVkIHJlZmVyZW5jZS5cbiAgICAgICAgLy8gSWYgc28sIHdlIGNhY2hlIHRoYXQgYXMgdGhlIGxhc3QgdmlhYmxlIG5hbWVkIHJlZmVyZW5jZS5cbiAgICAgICAgLy8gVGhpcyBlbnN1cmVzIHdlIGRvIG5vdCBuZWVkIHRvIHdhbGsgYmFja3dhcmRzIGxhdGVyLlxuICAgICAgICBpZiAodHlwZSA9PT0gbmFtZSAmJiBvd24uY2FsbChsZWdhY3ksIGNoYXJhY3RlcnMpKSB7XG4gICAgICAgICAgZW50aXR5Q2hhcmFjdGVycyA9IGNoYXJhY3RlcnNcbiAgICAgICAgICBlbnRpdHkgPSBsZWdhY3lbY2hhcmFjdGVyc11cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXJtaW5hdGVkID0gdmFsdWUuY2hhckNvZGVBdChlbmQpID09PSBzZW1pY29sb25cblxuICAgICAgaWYgKHRlcm1pbmF0ZWQpIHtcbiAgICAgICAgZW5kKytcblxuICAgICAgICBuYW1lZEVudGl0eSA9IHR5cGUgPT09IG5hbWUgPyBkZWNvZGVFbnRpdHkoY2hhcmFjdGVycykgOiBmYWxzZVxuXG4gICAgICAgIGlmIChuYW1lZEVudGl0eSkge1xuICAgICAgICAgIGVudGl0eUNoYXJhY3RlcnMgPSBjaGFyYWN0ZXJzXG4gICAgICAgICAgZW50aXR5ID0gbmFtZWRFbnRpdHlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBkaWZmID0gMSArIGVuZCAtIHN0YXJ0XG5cbiAgICAgIGlmICghdGVybWluYXRlZCAmJiAhbm9uVGVybWluYXRlZCkge1xuICAgICAgICAvLyBFbXB0eS5cbiAgICAgIH0gZWxzZSBpZiAoIWNoYXJhY3RlcnMpIHtcbiAgICAgICAgLy8gQW4gZW1wdHkgKHBvc3NpYmxlKSBlbnRpdHkgaXMgdmFsaWQsIHVubGVzcyBpdOKAmXMgbnVtZXJpYyAodGh1cyBhblxuICAgICAgICAvLyBhbXBlcnNhbmQgZm9sbG93ZWQgYnkgYW4gb2N0b3Rob3JwKS5cbiAgICAgICAgaWYgKHR5cGUgIT09IG5hbWUpIHtcbiAgICAgICAgICB3YXJuaW5nKG51bWVyaWNFbXB0eSwgZGlmZilcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBuYW1lKSB7XG4gICAgICAgIC8vIEFuIGFtcGVyc2FuZCBmb2xsb3dlZCBieSBhbnl0aGluZyB1bmtub3duLCBhbmQgbm90IHRlcm1pbmF0ZWQsIGlzXG4gICAgICAgIC8vIGludmFsaWQuXG4gICAgICAgIGlmICh0ZXJtaW5hdGVkICYmICFlbnRpdHkpIHtcbiAgICAgICAgICB3YXJuaW5nKG5hbWVkVW5rbm93biwgMSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiB0aGVyZXMgc29tZXRoaW5nIGFmdGVyIGFuIGVudGl0eSBuYW1lIHdoaWNoIGlzIG5vdCBrbm93biwgY2FwXG4gICAgICAgICAgLy8gdGhlIHJlZmVyZW5jZS5cbiAgICAgICAgICBpZiAoZW50aXR5Q2hhcmFjdGVycyAhPT0gY2hhcmFjdGVycykge1xuICAgICAgICAgICAgZW5kID0gYmVnaW4gKyBlbnRpdHlDaGFyYWN0ZXJzLmxlbmd0aFxuICAgICAgICAgICAgZGlmZiA9IDEgKyBlbmQgLSBiZWdpblxuICAgICAgICAgICAgdGVybWluYXRlZCA9IGZhbHNlXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gSWYgdGhlIHJlZmVyZW5jZSBpcyBub3QgdGVybWluYXRlZCwgd2Fybi5cbiAgICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAgIHJlYXNvbiA9IGVudGl0eUNoYXJhY3RlcnMgPyBuYW1lZE5vdFRlcm1pbmF0ZWQgOiBuYW1lZEVtcHR5XG5cbiAgICAgICAgICAgIGlmIChzZXR0aW5ncy5hdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgICAgZm9sbG93aW5nID0gdmFsdWUuY2hhckNvZGVBdChlbmQpXG5cbiAgICAgICAgICAgICAgaWYgKGZvbGxvd2luZyA9PT0gZXF1YWxzVG8pIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKHJlYXNvbiwgZGlmZilcbiAgICAgICAgICAgICAgICBlbnRpdHkgPSBudWxsXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWxwaGFudW1lcmljYWwoZm9sbG93aW5nKSkge1xuICAgICAgICAgICAgICAgIGVudGl0eSA9IG51bGxcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB3YXJuaW5nKHJlYXNvbiwgZGlmZilcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgd2FybmluZyhyZWFzb24sIGRpZmYpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmVmZXJlbmNlID0gZW50aXR5XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIXRlcm1pbmF0ZWQpIHtcbiAgICAgICAgICAvLyBBbGwgbm9uLXRlcm1pbmF0ZWQgbnVtZXJpYyBlbnRpdGllcyBhcmUgbm90IHJlbmRlcmVkLCBhbmQgdHJpZ2dlciBhXG4gICAgICAgICAgLy8gd2FybmluZy5cbiAgICAgICAgICB3YXJuaW5nKG51bWVyaWNOb3RUZXJtaW5hdGVkLCBkaWZmKVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2hlbiB0ZXJtaW5hdGVkIGFuZCBudW1iZXIsIHBhcnNlIGFzIGVpdGhlciBoZXhhZGVjaW1hbCBvciBkZWNpbWFsLlxuICAgICAgICByZWZlcmVuY2UgPSBwYXJzZUludChjaGFyYWN0ZXJzLCBiYXNlc1t0eXBlXSlcblxuICAgICAgICAvLyBUcmlnZ2VyIGEgd2FybmluZyB3aGVuIHRoZSBwYXJzZWQgbnVtYmVyIGlzIHByb2hpYml0ZWQsIGFuZCByZXBsYWNlXG4gICAgICAgIC8vIHdpdGggcmVwbGFjZW1lbnQgY2hhcmFjdGVyLlxuICAgICAgICBpZiAocHJvaGliaXRlZChyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgd2FybmluZyhudW1lcmljUHJvaGliaXRlZCwgZGlmZilcbiAgICAgICAgICByZWZlcmVuY2UgPSBmcm9tQ2hhckNvZGUocmVwbGFjZW1lbnRDaGFyYWN0ZXIpXG4gICAgICAgIH0gZWxzZSBpZiAocmVmZXJlbmNlIGluIGludmFsaWQpIHtcbiAgICAgICAgICAvLyBUcmlnZ2VyIGEgd2FybmluZyB3aGVuIHRoZSBwYXJzZWQgbnVtYmVyIGlzIGRpc2FsbG93ZWQsIGFuZCByZXBsYWNlXG4gICAgICAgICAgLy8gYnkgYW4gYWx0ZXJuYXRpdmUuXG4gICAgICAgICAgd2FybmluZyhudW1lcmljRGlzYWxsb3dlZCwgZGlmZilcbiAgICAgICAgICByZWZlcmVuY2UgPSBpbnZhbGlkW3JlZmVyZW5jZV1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBQYXJzZSB0aGUgbnVtYmVyLlxuICAgICAgICAgIG91dHB1dCA9ICcnXG5cbiAgICAgICAgICAvLyBUcmlnZ2VyIGEgd2FybmluZyB3aGVuIHRoZSBwYXJzZWQgbnVtYmVyIHNob3VsZCBub3QgYmUgdXNlZC5cbiAgICAgICAgICBpZiAoZGlzYWxsb3dlZChyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICB3YXJuaW5nKG51bWVyaWNEaXNhbGxvd2VkLCBkaWZmKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFN0cmluZ2lmeSB0aGUgbnVtYmVyLlxuICAgICAgICAgIGlmIChyZWZlcmVuY2UgPiAweGZmZmYpIHtcbiAgICAgICAgICAgIHJlZmVyZW5jZSAtPSAweDEwMDAwXG4gICAgICAgICAgICBvdXRwdXQgKz0gZnJvbUNoYXJDb2RlKChyZWZlcmVuY2UgPj4+ICgxMCAmIDB4M2ZmKSkgfCAweGQ4MDApXG4gICAgICAgICAgICByZWZlcmVuY2UgPSAweGRjMDAgfCAocmVmZXJlbmNlICYgMHgzZmYpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVmZXJlbmNlID0gb3V0cHV0ICsgZnJvbUNoYXJDb2RlKHJlZmVyZW5jZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBGb3VuZCBpdCFcbiAgICAgIC8vIEZpcnN0IGVhdCB0aGUgcXVldWVkIGNoYXJhY3RlcnMgYXMgbm9ybWFsIHRleHQsIHRoZW4gZWF0IGFuIGVudGl0eS5cbiAgICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgICAgZmx1c2goKVxuXG4gICAgICAgIHByZXYgPSBub3coKVxuICAgICAgICBpbmRleCA9IGVuZCAtIDFcbiAgICAgICAgY29sdW1uICs9IGVuZCAtIHN0YXJ0ICsgMVxuICAgICAgICByZXN1bHQucHVzaChyZWZlcmVuY2UpXG4gICAgICAgIG5leHQgPSBub3coKVxuICAgICAgICBuZXh0Lm9mZnNldCsrXG5cbiAgICAgICAgaWYgKGhhbmRsZVJlZmVyZW5jZSkge1xuICAgICAgICAgIGhhbmRsZVJlZmVyZW5jZS5jYWxsKFxuICAgICAgICAgICAgcmVmZXJlbmNlQ29udGV4dCxcbiAgICAgICAgICAgIHJlZmVyZW5jZSxcbiAgICAgICAgICAgIHtzdGFydDogcHJldiwgZW5kOiBuZXh0fSxcbiAgICAgICAgICAgIHZhbHVlLnNsaWNlKHN0YXJ0IC0gMSwgZW5kKVxuICAgICAgICAgIClcbiAgICAgICAgfVxuXG4gICAgICAgIHByZXYgPSBuZXh0XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBjb3VsZCBub3QgZmluZCBhIHJlZmVyZW5jZSwgcXVldWUgdGhlIGNoZWNrZWQgY2hhcmFjdGVycyAoYXNcbiAgICAgICAgLy8gbm9ybWFsIGNoYXJhY3RlcnMpLCBhbmQgbW92ZSB0aGUgcG9pbnRlciB0byB0aGVpciBlbmQuXG4gICAgICAgIC8vIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSB3ZSBjYW4gYmUgY2VydGFpbiBuZWl0aGVyIG5ld2xpbmVzIG5vclxuICAgICAgICAvLyBhbXBlcnNhbmRzIGFyZSBpbmNsdWRlZC5cbiAgICAgICAgY2hhcmFjdGVycyA9IHZhbHVlLnNsaWNlKHN0YXJ0IC0gMSwgZW5kKVxuICAgICAgICBxdWV1ZSArPSBjaGFyYWN0ZXJzXG4gICAgICAgIGNvbHVtbiArPSBjaGFyYWN0ZXJzLmxlbmd0aFxuICAgICAgICBpbmRleCA9IGVuZCAtIDFcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSGFuZGxlIGFueXRoaW5nIG90aGVyIHRoYW4gYW4gYW1wZXJzYW5kLCBpbmNsdWRpbmcgbmV3bGluZXMgYW5kIEVPRi5cbiAgICAgIGlmIChcbiAgICAgICAgY2hhcmFjdGVyID09PSAxMCAvLyBMaW5lIGZlZWRcbiAgICAgICkge1xuICAgICAgICBsaW5lKytcbiAgICAgICAgbGluZXMrK1xuICAgICAgICBjb2x1bW4gPSAwXG4gICAgICB9XG5cbiAgICAgIGlmIChjaGFyYWN0ZXIgPT09IGNoYXJhY3Rlcikge1xuICAgICAgICBxdWV1ZSArPSBmcm9tQ2hhckNvZGUoY2hhcmFjdGVyKVxuICAgICAgICBjb2x1bW4rK1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmx1c2goKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgcmVkdWNlZCBub2Rlcy5cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKVxuXG4gIC8vIEdldCBjdXJyZW50IHBvc2l0aW9uLlxuICBmdW5jdGlvbiBub3coKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxpbmU6IGxpbmUsXG4gICAgICBjb2x1bW46IGNvbHVtbixcbiAgICAgIG9mZnNldDogaW5kZXggKyAocG9zLm9mZnNldCB8fCAwKVxuICAgIH1cbiAgfVxuXG4gIC8vIOKAnFRocm934oCdIGEgcGFyc2UtZXJyb3I6IGEgd2FybmluZy5cbiAgZnVuY3Rpb24gcGFyc2VFcnJvcihjb2RlLCBvZmZzZXQpIHtcbiAgICB2YXIgcG9zaXRpb24gPSBub3coKVxuXG4gICAgcG9zaXRpb24uY29sdW1uICs9IG9mZnNldFxuICAgIHBvc2l0aW9uLm9mZnNldCArPSBvZmZzZXRcblxuICAgIGhhbmRsZVdhcm5pbmcuY2FsbCh3YXJuaW5nQ29udGV4dCwgbWVzc2FnZXNbY29kZV0sIHBvc2l0aW9uLCBjb2RlKVxuICB9XG5cbiAgLy8gRmx1c2ggYHF1ZXVlYCAobm9ybWFsIHRleHQpLlxuICAvLyBNYWNybyBpbnZva2VkIGJlZm9yZSBlYWNoIGVudGl0eSBhbmQgYXQgdGhlIGVuZCBvZiBgdmFsdWVgLlxuICAvLyBEb2VzIG5vdGhpbmcgd2hlbiBgcXVldWVgIGlzIGVtcHR5LlxuICBmdW5jdGlvbiBmbHVzaCgpIHtcbiAgICBpZiAocXVldWUpIHtcbiAgICAgIHJlc3VsdC5wdXNoKHF1ZXVlKVxuXG4gICAgICBpZiAoaGFuZGxlVGV4dCkge1xuICAgICAgICBoYW5kbGVUZXh0LmNhbGwodGV4dENvbnRleHQsIHF1ZXVlLCB7c3RhcnQ6IHByZXYsIGVuZDogbm93KCl9KVxuICAgICAgfVxuXG4gICAgICBxdWV1ZSA9ICcnXG4gICAgfVxuICB9XG59XG5cbi8vIENoZWNrIGlmIGBjaGFyYWN0ZXJgIGlzIG91dHNpZGUgdGhlIHBlcm1pc3NpYmxlIHVuaWNvZGUgcmFuZ2UuXG5mdW5jdGlvbiBwcm9oaWJpdGVkKGNvZGUpIHtcbiAgcmV0dXJuIChjb2RlID49IDB4ZDgwMCAmJiBjb2RlIDw9IDB4ZGZmZikgfHwgY29kZSA+IDB4MTBmZmZmXG59XG5cbi8vIENoZWNrIGlmIGBjaGFyYWN0ZXJgIGlzIGRpc2FsbG93ZWQuXG5mdW5jdGlvbiBkaXNhbGxvd2VkKGNvZGUpIHtcbiAgcmV0dXJuIChcbiAgICAoY29kZSA+PSAweDAwMDEgJiYgY29kZSA8PSAweDAwMDgpIHx8XG4gICAgY29kZSA9PT0gMHgwMDBiIHx8XG4gICAgKGNvZGUgPj0gMHgwMDBkICYmIGNvZGUgPD0gMHgwMDFmKSB8fFxuICAgIChjb2RlID49IDB4MDA3ZiAmJiBjb2RlIDw9IDB4MDA5ZikgfHxcbiAgICAoY29kZSA+PSAweGZkZDAgJiYgY29kZSA8PSAweGZkZWYpIHx8XG4gICAgKGNvZGUgJiAweGZmZmYpID09PSAweGZmZmYgfHxcbiAgICAoY29kZSAmIDB4ZmZmZikgPT09IDB4ZmZmZVxuICApXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/parse-entities/index.js\n")},"../../node_modules/prismjs/components/prism-core.js":function(module,exports,__webpack_require__){eval("/* WEBPACK VAR INJECTION */(function(global) {/// <reference lib=\"WebWorker\"/>\n\nvar _self = (typeof window !== 'undefined')\n\t? window // if in browser\n\t: (\n\t\t(typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope)\n\t\t\t? self // if in worker\n\t\t\t: {} // if in node js\n\t);\n\n/**\n * Prism: Lightweight, robust, elegant syntax highlighting\n *\n * @license MIT <https://opensource.org/licenses/MIT>\n * @author Lea Verou <https://lea.verou.me>\n * @namespace\n * @public\n */\nvar Prism = (function (_self) {\n\n\t// Private helper vars\n\tvar lang = /\\blang(?:uage)?-([\\w-]+)\\b/i;\n\tvar uniqueId = 0;\n\n\t// The grammar object for plaintext\n\tvar plainTextGrammar = {};\n\n\n\tvar _ = {\n\t\t/**\n\t\t * By default, Prism will attempt to highlight all code elements (by calling {@link Prism.highlightAll}) on the\n\t\t * current page after the page finished loading. This might be a problem if e.g. you wanted to asynchronously load\n\t\t * additional languages or plugins yourself.\n\t\t *\n\t\t * By setting this value to `true`, Prism will not automatically highlight all code elements on the page.\n\t\t *\n\t\t * You obviously have to change this value before the automatic highlighting started. To do this, you can add an\n\t\t * empty Prism object into the global scope before loading the Prism script like this:\n\t\t *\n\t\t * ```js\n\t\t * window.Prism = window.Prism || {};\n\t\t * Prism.manual = true;\n\t\t * // add a new <script> to load Prism's script\n\t\t * ```\n\t\t *\n\t\t * @default false\n\t\t * @type {boolean}\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tmanual: _self.Prism && _self.Prism.manual,\n\t\tdisableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler,\n\n\t\t/**\n\t\t * A namespace for utility methods.\n\t\t *\n\t\t * All function in this namespace that are not explicitly marked as _public_ are for __internal use only__ and may\n\t\t * change or disappear at any time.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t */\n\t\tutil: {\n\t\t\tencode: function encode(tokens) {\n\t\t\t\tif (tokens instanceof Token) {\n\t\t\t\t\treturn new Token(tokens.type, encode(tokens.content), tokens.alias);\n\t\t\t\t} else if (Array.isArray(tokens)) {\n\t\t\t\t\treturn tokens.map(encode);\n\t\t\t\t} else {\n\t\t\t\t\treturn tokens.replace(/&/g, '&').replace(/</g, '<').replace(/\\u00a0/g, ' ');\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the name of the type of the given value.\n\t\t\t *\n\t\t\t * @param {any} o\n\t\t\t * @returns {string}\n\t\t\t * @example\n\t\t\t * type(null) === 'Null'\n\t\t\t * type(undefined) === 'Undefined'\n\t\t\t * type(123) === 'Number'\n\t\t\t * type('foo') === 'String'\n\t\t\t * type(true) === 'Boolean'\n\t\t\t * type([1, 2]) === 'Array'\n\t\t\t * type({}) === 'Object'\n\t\t\t * type(String) === 'Function'\n\t\t\t * type(/abc+/) === 'RegExp'\n\t\t\t */\n\t\t\ttype: function (o) {\n\t\t\t\treturn Object.prototype.toString.call(o).slice(8, -1);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns a unique number for the given object. Later calls will still return the same number.\n\t\t\t *\n\t\t\t * @param {Object} obj\n\t\t\t * @returns {number}\n\t\t\t */\n\t\t\tobjId: function (obj) {\n\t\t\t\tif (!obj['__id']) {\n\t\t\t\t\tObject.defineProperty(obj, '__id', { value: ++uniqueId });\n\t\t\t\t}\n\t\t\t\treturn obj['__id'];\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Creates a deep clone of the given object.\n\t\t\t *\n\t\t\t * The main intended use of this function is to clone language definitions.\n\t\t\t *\n\t\t\t * @param {T} o\n\t\t\t * @param {Record<number, any>} [visited]\n\t\t\t * @returns {T}\n\t\t\t * @template T\n\t\t\t */\n\t\t\tclone: function deepClone(o, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar clone; var id;\n\t\t\t\tswitch (_.util.type(o)) {\n\t\t\t\t\tcase 'Object':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = /** @type {Record<string, any>} */ ({});\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\tfor (var key in o) {\n\t\t\t\t\t\t\tif (o.hasOwnProperty(key)) {\n\t\t\t\t\t\t\t\tclone[key] = deepClone(o[key], visited);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tcase 'Array':\n\t\t\t\t\t\tid = _.util.objId(o);\n\t\t\t\t\t\tif (visited[id]) {\n\t\t\t\t\t\t\treturn visited[id];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t\tvisited[id] = clone;\n\n\t\t\t\t\t\t(/** @type {Array} */(/** @type {any} */(o))).forEach(function (v, i) {\n\t\t\t\t\t\t\tclone[i] = deepClone(v, visited);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn /** @type {any} */ (clone);\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn o;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the Prism language of the given element set by a `language-xxxx` or `lang-xxxx` class.\n\t\t\t *\n\t\t\t * If no language is set for the element or the element is `null` or `undefined`, `none` will be returned.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @returns {string}\n\t\t\t */\n\t\t\tgetLanguage: function (element) {\n\t\t\t\twhile (element && !lang.test(element.className)) {\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\tif (element) {\n\t\t\t\t\treturn (element.className.match(lang) || [, 'none'])[1].toLowerCase();\n\t\t\t\t}\n\t\t\t\treturn 'none';\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns the script element that is currently executing.\n\t\t\t *\n\t\t\t * This does __not__ work for line script element.\n\t\t\t *\n\t\t\t * @returns {HTMLScriptElement | null}\n\t\t\t */\n\t\t\tcurrentScript: function () {\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tif ('currentScript' in document && 1 < 2 /* hack to trip TS' flow analysis */) {\n\t\t\t\t\treturn /** @type {any} */ (document.currentScript);\n\t\t\t\t}\n\n\t\t\t\t// IE11 workaround\n\t\t\t\t// we'll get the src of the current script by parsing IE11's error stack trace\n\t\t\t\t// this will not work for inline scripts\n\n\t\t\t\ttry {\n\t\t\t\t\tthrow new Error();\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Get file src url from stack. Specifically works with the format of stack traces in IE.\n\t\t\t\t\t// A stack will look like this:\n\t\t\t\t\t//\n\t\t\t\t\t// Error\n\t\t\t\t\t// at _.util.currentScript (http://localhost/components/prism-core.js:119:5)\n\t\t\t\t\t// at Global code (http://localhost/components/prism-core.js:606:1)\n\n\t\t\t\t\tvar src = (/at [^(\\r\\n]*\\((.*):[^:]+:[^:]+\\)$/i.exec(err.stack) || [])[1];\n\t\t\t\t\tif (src) {\n\t\t\t\t\t\tvar scripts = document.getElementsByTagName('script');\n\t\t\t\t\t\tfor (var i in scripts) {\n\t\t\t\t\t\t\tif (scripts[i].src == src) {\n\t\t\t\t\t\t\t\treturn scripts[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Returns whether a given class is active for `element`.\n\t\t\t *\n\t\t\t * The class can be activated if `element` or one of its ancestors has the given class and it can be deactivated\n\t\t\t * if `element` or one of its ancestors has the negated version of the given class. The _negated version_ of the\n\t\t\t * given class is just the given class with a `no-` prefix.\n\t\t\t *\n\t\t\t * Whether the class is active is determined by the closest ancestor of `element` (where `element` itself is\n\t\t\t * closest ancestor) that has the given class or the negated version of it. If neither `element` nor any of its\n\t\t\t * ancestors have the given class or the negated version of it, then the default activation will be returned.\n\t\t\t *\n\t\t\t * In the paradoxical situation where the closest ancestor contains __both__ the given class and the negated\n\t\t\t * version of it, the class is considered active.\n\t\t\t *\n\t\t\t * @param {Element} element\n\t\t\t * @param {string} className\n\t\t\t * @param {boolean} [defaultActivation=false]\n\t\t\t * @returns {boolean}\n\t\t\t */\n\t\t\tisActive: function (element, className, defaultActivation) {\n\t\t\t\tvar no = 'no-' + className;\n\n\t\t\t\twhile (element) {\n\t\t\t\t\tvar classList = element.classList;\n\t\t\t\t\tif (classList.contains(className)) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\tif (classList.contains(no)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\telement = element.parentElement;\n\t\t\t\t}\n\t\t\t\treturn !!defaultActivation;\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * This namespace contains all currently loaded languages and the some helper functions to create and modify languages.\n\t\t *\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\tlanguages: {\n\t\t\t/**\n\t\t\t * The grammar for plain, unformatted text.\n\t\t\t */\n\t\t\tplain: plainTextGrammar,\n\t\t\tplaintext: plainTextGrammar,\n\t\t\ttext: plainTextGrammar,\n\t\t\ttxt: plainTextGrammar,\n\n\t\t\t/**\n\t\t\t * Creates a deep copy of the language with the given id and appends the given tokens.\n\t\t\t *\n\t\t\t * If a token in `redef` also appears in the copied language, then the existing token in the copied language\n\t\t\t * will be overwritten at its original position.\n\t\t\t *\n\t\t\t * ## Best practices\n\t\t\t *\n\t\t\t * Since the position of overwriting tokens (token in `redef` that overwrite tokens in the copied language)\n\t\t\t * doesn't matter, they can technically be in any order. However, this can be confusing to others that trying to\n\t\t\t * understand the language definition because, normally, the order of tokens matters in Prism grammars.\n\t\t\t *\n\t\t\t * Therefore, it is encouraged to order overwriting tokens according to the positions of the overwritten tokens.\n\t\t\t * Furthermore, all non-overwriting tokens should be placed after the overwriting ones.\n\t\t\t *\n\t\t\t * @param {string} id The id of the language to extend. This has to be a key in `Prism.languages`.\n\t\t\t * @param {Grammar} redef The new tokens to append.\n\t\t\t * @returns {Grammar} The new language created.\n\t\t\t * @public\n\t\t\t * @example\n\t\t\t * Prism.languages['css-with-colors'] = Prism.languages.extend('css', {\n\t\t\t * // Prism.languages.css already has a 'comment' token, so this token will overwrite CSS' 'comment' token\n\t\t\t * // at its original position\n\t\t\t * 'comment': { ... },\n\t\t\t * // CSS doesn't have a 'color' token, so this token will be appended\n\t\t\t * 'color': /\\b(?:red|green|blue)\\b/\n\t\t\t * });\n\t\t\t */\n\t\t\textend: function (id, redef) {\n\t\t\t\tvar lang = _.util.clone(_.languages[id]);\n\n\t\t\t\tfor (var key in redef) {\n\t\t\t\t\tlang[key] = redef[key];\n\t\t\t\t}\n\n\t\t\t\treturn lang;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Inserts tokens _before_ another token in a language definition or any other grammar.\n\t\t\t *\n\t\t\t * ## Usage\n\t\t\t *\n\t\t\t * This helper method makes it easy to modify existing languages. For example, the CSS language definition\n\t\t\t * not only defines CSS highlighting for CSS documents, but also needs to define highlighting for CSS embedded\n\t\t\t * in HTML through `<style>` elements. To do this, it needs to modify `Prism.languages.markup` and add the\n\t\t\t * appropriate tokens. However, `Prism.languages.markup` is a regular JavaScript object literal, so if you do\n\t\t\t * this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.markup.style = {\n\t\t\t * // token\n\t\t\t * };\n\t\t\t * ```\n\t\t\t *\n\t\t\t * then the `style` token will be added (and processed) at the end. `insertBefore` allows you to insert tokens\n\t\t\t * before existing tokens. For the CSS example above, you would use it like this:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'cdata', {\n\t\t\t * 'style': {\n\t\t\t * // token\n\t\t\t * }\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Special cases\n\t\t\t *\n\t\t\t * If the grammars of `inside` and `insert` have tokens with the same name, the tokens in `inside`'s grammar\n\t\t\t * will be ignored.\n\t\t\t *\n\t\t\t * This behavior can be used to insert tokens after `before`:\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * Prism.languages.insertBefore('markup', 'comment', {\n\t\t\t * 'comment': Prism.languages.markup.comment,\n\t\t\t * // tokens after 'comment'\n\t\t\t * });\n\t\t\t * ```\n\t\t\t *\n\t\t\t * ## Limitations\n\t\t\t *\n\t\t\t * The main problem `insertBefore` has to solve is iteration order. Since ES2015, the iteration order for object\n\t\t\t * properties is guaranteed to be the insertion order (except for integer keys) but some browsers behave\n\t\t\t * differently when keys are deleted and re-inserted. So `insertBefore` can't be implemented by temporarily\n\t\t\t * deleting properties which is necessary to insert at arbitrary positions.\n\t\t\t *\n\t\t\t * To solve this problem, `insertBefore` doesn't actually insert the given tokens into the target object.\n\t\t\t * Instead, it will create a new object and replace all references to the target object with the new one. This\n\t\t\t * can be done without temporarily deleting properties, so the iteration order is well-defined.\n\t\t\t *\n\t\t\t * However, only references that can be reached from `Prism.languages` or `insert` will be replaced. I.e. if\n\t\t\t * you hold the target object in a variable, then the value of the variable will not change.\n\t\t\t *\n\t\t\t * ```js\n\t\t\t * var oldMarkup = Prism.languages.markup;\n\t\t\t * var newMarkup = Prism.languages.insertBefore('markup', 'comment', { ... });\n\t\t\t *\n\t\t\t * assert(oldMarkup !== Prism.languages.markup);\n\t\t\t * assert(newMarkup === Prism.languages.markup);\n\t\t\t * ```\n\t\t\t *\n\t\t\t * @param {string} inside The property of `root` (e.g. a language id in `Prism.languages`) that contains the\n\t\t\t * object to be modified.\n\t\t\t * @param {string} before The key to insert before.\n\t\t\t * @param {Grammar} insert An object containing the key-value pairs to be inserted.\n\t\t\t * @param {Object<string, any>} [root] The object containing `inside`, i.e. the object that contains the\n\t\t\t * object to be modified.\n\t\t\t *\n\t\t\t * Defaults to `Prism.languages`.\n\t\t\t * @returns {Grammar} The new grammar object.\n\t\t\t * @public\n\t\t\t */\n\t\t\tinsertBefore: function (inside, before, insert, root) {\n\t\t\t\troot = root || /** @type {any} */ (_.languages);\n\t\t\t\tvar grammar = root[inside];\n\t\t\t\t/** @type {Grammar} */\n\t\t\t\tvar ret = {};\n\n\t\t\t\tfor (var token in grammar) {\n\t\t\t\t\tif (grammar.hasOwnProperty(token)) {\n\n\t\t\t\t\t\tif (token == before) {\n\t\t\t\t\t\t\tfor (var newToken in insert) {\n\t\t\t\t\t\t\t\tif (insert.hasOwnProperty(newToken)) {\n\t\t\t\t\t\t\t\t\tret[newToken] = insert[newToken];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Do not insert token which also occur in insert. See #1525\n\t\t\t\t\t\tif (!insert.hasOwnProperty(token)) {\n\t\t\t\t\t\t\tret[token] = grammar[token];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tvar old = root[inside];\n\t\t\t\troot[inside] = ret;\n\n\t\t\t\t// Update references in other language definitions\n\t\t\t\t_.languages.DFS(_.languages, function (key, value) {\n\t\t\t\t\tif (value === old && key != inside) {\n\t\t\t\t\t\tthis[key] = ret;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn ret;\n\t\t\t},\n\n\t\t\t// Traverse a language definition with Depth First Search\n\t\t\tDFS: function DFS(o, callback, type, visited) {\n\t\t\t\tvisited = visited || {};\n\n\t\t\t\tvar objId = _.util.objId;\n\n\t\t\t\tfor (var i in o) {\n\t\t\t\t\tif (o.hasOwnProperty(i)) {\n\t\t\t\t\t\tcallback.call(o, i, o[i], type || i);\n\n\t\t\t\t\t\tvar property = o[i];\n\t\t\t\t\t\tvar propertyType = _.util.type(property);\n\n\t\t\t\t\t\tif (propertyType === 'Object' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, null, visited);\n\t\t\t\t\t\t} else if (propertyType === 'Array' && !visited[objId(property)]) {\n\t\t\t\t\t\t\tvisited[objId(property)] = true;\n\t\t\t\t\t\t\tDFS(property, callback, i, visited);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tplugins: {},\n\n\t\t/**\n\t\t * This is the most high-level function in Prism’s API.\n\t\t * It fetches all the elements that have a `.language-xxxx` class and then calls {@link Prism.highlightElement} on\n\t\t * each one of them.\n\t\t *\n\t\t * This is equivalent to `Prism.highlightAllUnder(document, async, callback)`.\n\t\t *\n\t\t * @param {boolean} [async=false] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @param {HighlightCallback} [callback] Same as in {@link Prism.highlightAllUnder}.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAll: function (async, callback) {\n\t\t\t_.highlightAllUnder(document, async, callback);\n\t\t},\n\n\t\t/**\n\t\t * Fetches all the descendants of `container` that have a `.language-xxxx` class and then calls\n\t\t * {@link Prism.highlightElement} on each one of them.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-highlightall`\n\t\t * 2. `before-all-elements-highlight`\n\t\t * 3. All hooks of {@link Prism.highlightElement} for each element.\n\t\t *\n\t\t * @param {ParentNode} container The root element, whose descendants that have a `.language-xxxx` class will be highlighted.\n\t\t * @param {boolean} [async=false] Whether each element is to be highlighted asynchronously using Web Workers.\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked on each element after its highlighting is done.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightAllUnder: function (container, async, callback) {\n\t\t\tvar env = {\n\t\t\t\tcallback: callback,\n\t\t\t\tcontainer: container,\n\t\t\t\tselector: 'code[class*=\"language-\"], [class*=\"language-\"] code, code[class*=\"lang-\"], [class*=\"lang-\"] code'\n\t\t\t};\n\n\t\t\t_.hooks.run('before-highlightall', env);\n\n\t\t\tenv.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));\n\n\t\t\t_.hooks.run('before-all-elements-highlight', env);\n\n\t\t\tfor (var i = 0, element; (element = env.elements[i++]);) {\n\t\t\t\t_.highlightElement(element, async === true, env.callback);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Highlights the code inside a single element.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-sanity-check`\n\t\t * 2. `before-highlight`\n\t\t * 3. All hooks of {@link Prism.highlight}. These hooks will be run by an asynchronous worker if `async` is `true`.\n\t\t * 4. `before-insert`\n\t\t * 5. `after-highlight`\n\t\t * 6. `complete`\n\t\t *\n\t\t * Some the above hooks will be skipped if the element doesn't contain any text or there is no grammar loaded for\n\t\t * the element's language.\n\t\t *\n\t\t * @param {Element} element The element containing the code.\n\t\t * It must have a class of `language-xxxx` to be processed, where `xxxx` is a valid language identifier.\n\t\t * @param {boolean} [async=false] Whether the element is to be highlighted asynchronously using Web Workers\n\t\t * to improve performance and avoid blocking the UI when highlighting very large chunks of code. This option is\n\t\t * [disabled by default](https://prismjs.com/faq.html#why-is-asynchronous-highlighting-disabled-by-default).\n\t\t *\n\t\t * Note: All language definitions required to highlight the code must be included in the main `prism.js` file for\n\t\t * asynchronous highlighting to work. You can build your own bundle on the\n\t\t * [Download page](https://prismjs.com/download.html).\n\t\t * @param {HighlightCallback} [callback] An optional callback to be invoked after the highlighting is done.\n\t\t * Mostly useful when `async` is `true`, since in that case, the highlighting is done asynchronously.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thighlightElement: function (element, async, callback) {\n\t\t\t// Find language\n\t\t\tvar language = _.util.getLanguage(element);\n\t\t\tvar grammar = _.languages[language];\n\n\t\t\t// Set language on the element, if not present\n\t\t\telement.className = element.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\n\t\t\t// Set language on the parent, for styling\n\t\t\tvar parent = element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre') {\n\t\t\t\tparent.className = parent.className.replace(lang, '').replace(/\\s+/g, ' ') + ' language-' + language;\n\t\t\t}\n\n\t\t\tvar code = element.textContent;\n\n\t\t\tvar env = {\n\t\t\t\telement: element,\n\t\t\t\tlanguage: language,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tcode: code\n\t\t\t};\n\n\t\t\tfunction insertHighlightedCode(highlightedCode) {\n\t\t\t\tenv.highlightedCode = highlightedCode;\n\n\t\t\t\t_.hooks.run('before-insert', env);\n\n\t\t\t\tenv.element.innerHTML = env.highlightedCode;\n\n\t\t\t\t_.hooks.run('after-highlight', env);\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t}\n\n\t\t\t_.hooks.run('before-sanity-check', env);\n\n\t\t\t// plugins may change/add the parent/element\n\t\t\tparent = env.element.parentElement;\n\t\t\tif (parent && parent.nodeName.toLowerCase() === 'pre' && !parent.hasAttribute('tabindex')) {\n\t\t\t\tparent.setAttribute('tabindex', '0');\n\t\t\t}\n\n\t\t\tif (!env.code) {\n\t\t\t\t_.hooks.run('complete', env);\n\t\t\t\tcallback && callback.call(env.element);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_.hooks.run('before-highlight', env);\n\n\t\t\tif (!env.grammar) {\n\t\t\t\tinsertHighlightedCode(_.util.encode(env.code));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (async && _self.Worker) {\n\t\t\t\tvar worker = new Worker(_.filename);\n\n\t\t\t\tworker.onmessage = function (evt) {\n\t\t\t\t\tinsertHighlightedCode(evt.data);\n\t\t\t\t};\n\n\t\t\t\tworker.postMessage(JSON.stringify({\n\t\t\t\t\tlanguage: env.language,\n\t\t\t\t\tcode: env.code,\n\t\t\t\t\timmediateClose: true\n\t\t\t\t}));\n\t\t\t} else {\n\t\t\t\tinsertHighlightedCode(_.highlight(env.code, env.grammar, env.language));\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Low-level function, only use if you know what you’re doing. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns a string with the HTML produced.\n\t\t *\n\t\t * The following hooks will be run:\n\t\t * 1. `before-tokenize`\n\t\t * 2. `after-tokenize`\n\t\t * 3. `wrap`: On each {@link Token}.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @param {string} language The name of the language definition passed to `grammar`.\n\t\t * @returns {string} The highlighted HTML.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * Prism.highlight('var foo = true;', Prism.languages.javascript, 'javascript');\n\t\t */\n\t\thighlight: function (text, grammar, language) {\n\t\t\tvar env = {\n\t\t\t\tcode: text,\n\t\t\t\tgrammar: grammar,\n\t\t\t\tlanguage: language\n\t\t\t};\n\t\t\t_.hooks.run('before-tokenize', env);\n\t\t\tenv.tokens = _.tokenize(env.code, env.grammar);\n\t\t\t_.hooks.run('after-tokenize', env);\n\t\t\treturn Token.stringify(_.util.encode(env.tokens), env.language);\n\t\t},\n\n\t\t/**\n\t\t * This is the heart of Prism, and the most low-level function you can use. It accepts a string of text as input\n\t\t * and the language definitions to use, and returns an array with the tokenized code.\n\t\t *\n\t\t * When the language definition includes nested tokens, the function is called recursively on each of these tokens.\n\t\t *\n\t\t * This method could be useful in other contexts as well, as a very crude parser.\n\t\t *\n\t\t * @param {string} text A string with the code to be highlighted.\n\t\t * @param {Grammar} grammar An object containing the tokens to use.\n\t\t *\n\t\t * Usually a language definition like `Prism.languages.markup`.\n\t\t * @returns {TokenStream} An array of strings and tokens, a token stream.\n\t\t * @memberof Prism\n\t\t * @public\n\t\t * @example\n\t\t * let code = `var foo = 0;`;\n\t\t * let tokens = Prism.tokenize(code, Prism.languages.javascript);\n\t\t * tokens.forEach(token => {\n\t\t * if (token instanceof Prism.Token && token.type === 'number') {\n\t\t * console.log(`Found numeric literal: ${token.content}`);\n\t\t * }\n\t\t * });\n\t\t */\n\t\ttokenize: function (text, grammar) {\n\t\t\tvar rest = grammar.rest;\n\t\t\tif (rest) {\n\t\t\t\tfor (var token in rest) {\n\t\t\t\t\tgrammar[token] = rest[token];\n\t\t\t\t}\n\n\t\t\t\tdelete grammar.rest;\n\t\t\t}\n\n\t\t\tvar tokenList = new LinkedList();\n\t\t\taddAfter(tokenList, tokenList.head, text);\n\n\t\t\tmatchGrammar(text, tokenList, grammar, tokenList.head, 0);\n\n\t\t\treturn toArray(tokenList);\n\t\t},\n\n\t\t/**\n\t\t * @namespace\n\t\t * @memberof Prism\n\t\t * @public\n\t\t */\n\t\thooks: {\n\t\t\tall: {},\n\n\t\t\t/**\n\t\t\t * Adds the given callback to the list of callbacks for the given hook.\n\t\t\t *\n\t\t\t * The callback will be invoked when the hook it is registered for is run.\n\t\t\t * Hooks are usually directly run by a highlight function but you can also run hooks yourself.\n\t\t\t *\n\t\t\t * One callback function can be registered to multiple hooks and the same hook multiple times.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {HookCallback} callback The callback function which is given environment variables.\n\t\t\t * @public\n\t\t\t */\n\t\t\tadd: function (name, callback) {\n\t\t\t\tvar hooks = _.hooks.all;\n\n\t\t\t\thooks[name] = hooks[name] || [];\n\n\t\t\t\thooks[name].push(callback);\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Runs a hook invoking all registered callbacks with the given environment variables.\n\t\t\t *\n\t\t\t * Callbacks will be invoked synchronously and in the order in which they were registered.\n\t\t\t *\n\t\t\t * @param {string} name The name of the hook.\n\t\t\t * @param {Object<string, any>} env The environment variables of the hook passed to all callbacks registered.\n\t\t\t * @public\n\t\t\t */\n\t\t\trun: function (name, env) {\n\t\t\t\tvar callbacks = _.hooks.all[name];\n\n\t\t\t\tif (!callbacks || !callbacks.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (var i = 0, callback; (callback = callbacks[i++]);) {\n\t\t\t\t\tcallback(env);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tToken: Token\n\t};\n\t_self.Prism = _;\n\n\n\t// Typescript note:\n\t// The following can be used to import the Token type in JSDoc:\n\t//\n\t// @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n\n\t/**\n\t * Creates a new token.\n\t *\n\t * @param {string} type See {@link Token#type type}\n\t * @param {string | TokenStream} content See {@link Token#content content}\n\t * @param {string|string[]} [alias] The alias(es) of the token.\n\t * @param {string} [matchedStr=\"\"] A copy of the full string this token was created from.\n\t * @class\n\t * @global\n\t * @public\n\t */\n\tfunction Token(type, content, alias, matchedStr) {\n\t\t/**\n\t\t * The type of the token.\n\t\t *\n\t\t * This is usually the key of a pattern in a {@link Grammar}.\n\t\t *\n\t\t * @type {string}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.type = type;\n\t\t/**\n\t\t * The strings or tokens contained by this token.\n\t\t *\n\t\t * This will be a token stream if the pattern matched also defined an `inside` grammar.\n\t\t *\n\t\t * @type {string | TokenStream}\n\t\t * @public\n\t\t */\n\t\tthis.content = content;\n\t\t/**\n\t\t * The alias(es) of the token.\n\t\t *\n\t\t * @type {string|string[]}\n\t\t * @see GrammarToken\n\t\t * @public\n\t\t */\n\t\tthis.alias = alias;\n\t\t// Copy of the full string this token was created from\n\t\tthis.length = (matchedStr || '').length | 0;\n\t}\n\n\t/**\n\t * A token stream is an array of strings and {@link Token Token} objects.\n\t *\n\t * Token streams have to fulfill a few properties that are assumed by most functions (mostly internal ones) that process\n\t * them.\n\t *\n\t * 1. No adjacent strings.\n\t * 2. No empty strings.\n\t *\n\t * The only exception here is the token stream that only contains the empty string and nothing else.\n\t *\n\t * @typedef {Array<string | Token>} TokenStream\n\t * @global\n\t * @public\n\t */\n\n\t/**\n\t * Converts the given token or token stream to an HTML representation.\n\t *\n\t * The following hooks will be run:\n\t * 1. `wrap`: On each {@link Token}.\n\t *\n\t * @param {string | Token | TokenStream} o The token or token stream to be converted.\n\t * @param {string} language The name of current language.\n\t * @returns {string} The HTML representation of the token or token stream.\n\t * @memberof Token\n\t * @static\n\t */\n\tToken.stringify = function stringify(o, language) {\n\t\tif (typeof o == 'string') {\n\t\t\treturn o;\n\t\t}\n\t\tif (Array.isArray(o)) {\n\t\t\tvar s = '';\n\t\t\to.forEach(function (e) {\n\t\t\t\ts += stringify(e, language);\n\t\t\t});\n\t\t\treturn s;\n\t\t}\n\n\t\tvar env = {\n\t\t\ttype: o.type,\n\t\t\tcontent: stringify(o.content, language),\n\t\t\ttag: 'span',\n\t\t\tclasses: ['token', o.type],\n\t\t\tattributes: {},\n\t\t\tlanguage: language\n\t\t};\n\n\t\tvar aliases = o.alias;\n\t\tif (aliases) {\n\t\t\tif (Array.isArray(aliases)) {\n\t\t\t\tArray.prototype.push.apply(env.classes, aliases);\n\t\t\t} else {\n\t\t\t\tenv.classes.push(aliases);\n\t\t\t}\n\t\t}\n\n\t\t_.hooks.run('wrap', env);\n\n\t\tvar attributes = '';\n\t\tfor (var name in env.attributes) {\n\t\t\tattributes += ' ' + name + '=\"' + (env.attributes[name] || '').replace(/\"/g, '"') + '\"';\n\t\t}\n\n\t\treturn '<' + env.tag + ' class=\"' + env.classes.join(' ') + '\"' + attributes + '>' + env.content + '</' + env.tag + '>';\n\t};\n\n\t/**\n\t * @param {RegExp} pattern\n\t * @param {number} pos\n\t * @param {string} text\n\t * @param {boolean} lookbehind\n\t * @returns {RegExpExecArray | null}\n\t */\n\tfunction matchPattern(pattern, pos, text, lookbehind) {\n\t\tpattern.lastIndex = pos;\n\t\tvar match = pattern.exec(text);\n\t\tif (match && lookbehind && match[1]) {\n\t\t\t// change the match to remove the text matched by the Prism lookbehind group\n\t\t\tvar lookbehindLength = match[1].length;\n\t\t\tmatch.index += lookbehindLength;\n\t\t\tmatch[0] = match[0].slice(lookbehindLength);\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @param {string} text\n\t * @param {LinkedList<string | Token>} tokenList\n\t * @param {any} grammar\n\t * @param {LinkedListNode<string | Token>} startNode\n\t * @param {number} startPos\n\t * @param {RematchOptions} [rematch]\n\t * @returns {void}\n\t * @private\n\t *\n\t * @typedef RematchOptions\n\t * @property {string} cause\n\t * @property {number} reach\n\t */\n\tfunction matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {\n\t\tfor (var token in grammar) {\n\t\t\tif (!grammar.hasOwnProperty(token) || !grammar[token]) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tvar patterns = grammar[token];\n\t\t\tpatterns = Array.isArray(patterns) ? patterns : [patterns];\n\n\t\t\tfor (var j = 0; j < patterns.length; ++j) {\n\t\t\t\tif (rematch && rematch.cause == token + ',' + j) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar patternObj = patterns[j];\n\t\t\t\tvar inside = patternObj.inside;\n\t\t\t\tvar lookbehind = !!patternObj.lookbehind;\n\t\t\t\tvar greedy = !!patternObj.greedy;\n\t\t\t\tvar alias = patternObj.alias;\n\n\t\t\t\tif (greedy && !patternObj.pattern.global) {\n\t\t\t\t\t// Without the global flag, lastIndex won't work\n\t\t\t\t\tvar flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];\n\t\t\t\t\tpatternObj.pattern = RegExp(patternObj.pattern.source, flags + 'g');\n\t\t\t\t}\n\n\t\t\t\t/** @type {RegExp} */\n\t\t\t\tvar pattern = patternObj.pattern || patternObj;\n\n\t\t\t\tfor ( // iterate the token list and keep track of the current token/string position\n\t\t\t\t\tvar currentNode = startNode.next, pos = startPos;\n\t\t\t\t\tcurrentNode !== tokenList.tail;\n\t\t\t\t\tpos += currentNode.value.length, currentNode = currentNode.next\n\t\t\t\t) {\n\n\t\t\t\t\tif (rematch && pos >= rematch.reach) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar str = currentNode.value;\n\n\t\t\t\t\tif (tokenList.length > text.length) {\n\t\t\t\t\t\t// Something went terribly wrong, ABORT, ABORT!\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (str instanceof Token) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeCount = 1; // this is the to parameter of removeBetween\n\t\t\t\t\tvar match;\n\n\t\t\t\t\tif (greedy) {\n\t\t\t\t\t\tmatch = matchPattern(pattern, pos, text, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvar from = match.index;\n\t\t\t\t\t\tvar to = match.index + match[0].length;\n\t\t\t\t\t\tvar p = pos;\n\n\t\t\t\t\t\t// find the node that contains the match\n\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\twhile (from >= p) {\n\t\t\t\t\t\t\tcurrentNode = currentNode.next;\n\t\t\t\t\t\t\tp += currentNode.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// adjust pos (and p)\n\t\t\t\t\t\tp -= currentNode.value.length;\n\t\t\t\t\t\tpos = p;\n\n\t\t\t\t\t\t// the current node is a Token, then the match starts inside another Token, which is invalid\n\t\t\t\t\t\tif (currentNode.value instanceof Token) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// find the last node which is affected by this match\n\t\t\t\t\t\tfor (\n\t\t\t\t\t\t\tvar k = currentNode;\n\t\t\t\t\t\t\tk !== tokenList.tail && (p < to || typeof k.value === 'string');\n\t\t\t\t\t\t\tk = k.next\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveCount++;\n\t\t\t\t\t\t\tp += k.value.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tremoveCount--;\n\n\t\t\t\t\t\t// replace with the new match\n\t\t\t\t\t\tstr = text.slice(pos, p);\n\t\t\t\t\t\tmatch.index -= pos;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatch = matchPattern(pattern, 0, str, lookbehind);\n\t\t\t\t\t\tif (!match) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// eslint-disable-next-line no-redeclare\n\t\t\t\t\tvar from = match.index;\n\t\t\t\t\tvar matchStr = match[0];\n\t\t\t\t\tvar before = str.slice(0, from);\n\t\t\t\t\tvar after = str.slice(from + matchStr.length);\n\n\t\t\t\t\tvar reach = pos + str.length;\n\t\t\t\t\tif (rematch && reach > rematch.reach) {\n\t\t\t\t\t\trematch.reach = reach;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar removeFrom = currentNode.prev;\n\n\t\t\t\t\tif (before) {\n\t\t\t\t\t\tremoveFrom = addAfter(tokenList, removeFrom, before);\n\t\t\t\t\t\tpos += before.length;\n\t\t\t\t\t}\n\n\t\t\t\t\tremoveRange(tokenList, removeFrom, removeCount);\n\n\t\t\t\t\tvar wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);\n\t\t\t\t\tcurrentNode = addAfter(tokenList, removeFrom, wrapped);\n\n\t\t\t\t\tif (after) {\n\t\t\t\t\t\taddAfter(tokenList, currentNode, after);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (removeCount > 1) {\n\t\t\t\t\t\t// at least one Token object was removed, so we have to do some rematching\n\t\t\t\t\t\t// this can only happen if the current pattern is greedy\n\n\t\t\t\t\t\t/** @type {RematchOptions} */\n\t\t\t\t\t\tvar nestedRematch = {\n\t\t\t\t\t\t\tcause: token + ',' + j,\n\t\t\t\t\t\t\treach: reach\n\t\t\t\t\t\t};\n\t\t\t\t\t\tmatchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);\n\n\t\t\t\t\t\t// the reach might have been extended because of the rematching\n\t\t\t\t\t\tif (rematch && nestedRematch.reach > rematch.reach) {\n\t\t\t\t\t\t\trematch.reach = nestedRematch.reach;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * @typedef LinkedListNode\n\t * @property {T} value\n\t * @property {LinkedListNode<T> | null} prev The previous node.\n\t * @property {LinkedListNode<T> | null} next The next node.\n\t * @template T\n\t * @private\n\t */\n\n\t/**\n\t * @template T\n\t * @private\n\t */\n\tfunction LinkedList() {\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar head = { value: null, prev: null, next: null };\n\t\t/** @type {LinkedListNode<T>} */\n\t\tvar tail = { value: null, prev: head, next: null };\n\t\thead.next = tail;\n\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.head = head;\n\t\t/** @type {LinkedListNode<T>} */\n\t\tthis.tail = tail;\n\t\tthis.length = 0;\n\t}\n\n\t/**\n\t * Adds a new node with the given value to the list.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {T} value\n\t * @returns {LinkedListNode<T>} The added node.\n\t * @template T\n\t */\n\tfunction addAfter(list, node, value) {\n\t\t// assumes that node != list.tail && values.length >= 0\n\t\tvar next = node.next;\n\n\t\tvar newNode = { value: value, prev: node, next: next };\n\t\tnode.next = newNode;\n\t\tnext.prev = newNode;\n\t\tlist.length++;\n\n\t\treturn newNode;\n\t}\n\t/**\n\t * Removes `count` nodes after the given node. The given node will not be removed.\n\t *\n\t * @param {LinkedList<T>} list\n\t * @param {LinkedListNode<T>} node\n\t * @param {number} count\n\t * @template T\n\t */\n\tfunction removeRange(list, node, count) {\n\t\tvar next = node.next;\n\t\tfor (var i = 0; i < count && next !== list.tail; i++) {\n\t\t\tnext = next.next;\n\t\t}\n\t\tnode.next = next;\n\t\tnext.prev = node;\n\t\tlist.length -= i;\n\t}\n\t/**\n\t * @param {LinkedList<T>} list\n\t * @returns {T[]}\n\t * @template T\n\t */\n\tfunction toArray(list) {\n\t\tvar array = [];\n\t\tvar node = list.head.next;\n\t\twhile (node !== list.tail) {\n\t\t\tarray.push(node.value);\n\t\t\tnode = node.next;\n\t\t}\n\t\treturn array;\n\t}\n\n\n\tif (!_self.document) {\n\t\tif (!_self.addEventListener) {\n\t\t\t// in Node.js\n\t\t\treturn _;\n\t\t}\n\n\t\tif (!_.disableWorkerMessageHandler) {\n\t\t\t// In worker\n\t\t\t_self.addEventListener('message', function (evt) {\n\t\t\t\tvar message = JSON.parse(evt.data);\n\t\t\t\tvar lang = message.language;\n\t\t\t\tvar code = message.code;\n\t\t\t\tvar immediateClose = message.immediateClose;\n\n\t\t\t\t_self.postMessage(_.highlight(code, _.languages[lang], lang));\n\t\t\t\tif (immediateClose) {\n\t\t\t\t\t_self.close();\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\treturn _;\n\t}\n\n\t// Get current script and highlight\n\tvar script = _.util.currentScript();\n\n\tif (script) {\n\t\t_.filename = script.src;\n\n\t\tif (script.hasAttribute('data-manual')) {\n\t\t\t_.manual = true;\n\t\t}\n\t}\n\n\tfunction highlightAutomaticallyCallback() {\n\t\tif (!_.manual) {\n\t\t\t_.highlightAll();\n\t\t}\n\t}\n\n\tif (!_.manual) {\n\t\t// If the document state is \"loading\", then we'll use DOMContentLoaded.\n\t\t// If the document state is \"interactive\" and the prism.js script is deferred, then we'll also use the\n\t\t// DOMContentLoaded event because there might be some plugins or languages which have also been deferred and they\n\t\t// might take longer one animation frame to execute which can create a race condition where only some plugins have\n\t\t// been loaded when Prism.highlightAll() is executed, depending on how fast resources are loaded.\n\t\t// See https://github.com/PrismJS/prism/issues/2102\n\t\tvar readyState = document.readyState;\n\t\tif (readyState === 'loading' || readyState === 'interactive' && script && script.defer) {\n\t\t\tdocument.addEventListener('DOMContentLoaded', highlightAutomaticallyCallback);\n\t\t} else {\n\t\t\tif (window.requestAnimationFrame) {\n\t\t\t\twindow.requestAnimationFrame(highlightAutomaticallyCallback);\n\t\t\t} else {\n\t\t\t\twindow.setTimeout(highlightAutomaticallyCallback, 16);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn _;\n\n}(_self));\n\nif ( true && module.exports) {\n\tmodule.exports = Prism;\n}\n\n// hack for components to work correctly in node.js\nif (typeof global !== 'undefined') {\n\tglobal.Prism = Prism;\n}\n\n// some additional documentation/types\n\n/**\n * The expansion of a simple `RegExp` literal to support additional properties.\n *\n * @typedef GrammarToken\n * @property {RegExp} pattern The regular expression of the token.\n * @property {boolean} [lookbehind=false] If `true`, then the first capturing group of `pattern` will (effectively)\n * behave as a lookbehind group meaning that the captured text will not be part of the matched text of the new token.\n * @property {boolean} [greedy=false] Whether the token is greedy.\n * @property {string|string[]} [alias] An optional alias or list of aliases.\n * @property {Grammar} [inside] The nested grammar of this token.\n *\n * The `inside` grammar will be used to tokenize the text value of each token of this kind.\n *\n * This can be used to make nested and even recursive language definitions.\n *\n * Note: This can cause infinite recursion. Be careful when you embed different languages or even the same language into\n * each another.\n * @global\n * @public\n */\n\n/**\n * @typedef Grammar\n * @type {Object<string, RegExp | GrammarToken | Array<RegExp | GrammarToken>>}\n * @property {Grammar} [rest] An optional grammar object that will be appended to this grammar.\n * @global\n * @public\n */\n\n/**\n * A function which will invoked after an element was successfully highlighted.\n *\n * @callback HighlightCallback\n * @param {Element} element The element successfully highlighted.\n * @returns {void}\n * @global\n * @public\n */\n\n/**\n * @callback HookCallback\n * @param {Object<string, any>} env The environment variables of the hook.\n * @returns {void}\n * @global\n * @public\n */\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"../../node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tY29yZS5qcz8yNGM2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0EsZ0ZBQWdGLHlCQUF5QjtBQUN6RztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTCx1Q0FBdUMsc0JBQXNCO0FBQzdEO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQSxjQUFjLElBQUk7QUFDbEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBLGNBQWMsT0FBTztBQUNyQixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0EseUNBQXlDLG9CQUFvQjtBQUM3RDtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxFQUFFO0FBQ2hCLGNBQWMsb0JBQW9CO0FBQ2xDLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLG9CQUFvQixPQUFPO0FBQ3BEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0JBQXdCLElBQUk7O0FBRTVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixNQUFNLGVBQWUsSUFBSTtBQUMzQztBQUNBLE9BQU87O0FBRVAsd0JBQXdCLElBQUk7O0FBRTVCO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsUUFBUTtBQUN0QixnQkFBZ0I7QUFDaEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixJQUFJO0FBQzNCOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTs7QUFFSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsT0FBTztBQUNyQixjQUFjLFFBQVE7QUFDdEIsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLE9BQU87QUFDckIsY0FBYyxRQUFRO0FBQ3RCLGdCQUFnQixRQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsTUFBTTtBQUM1QjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlFQUF5RSxNQUFNO0FBQy9FO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLE9BQU87QUFDckI7QUFDQSxjQUFjLE9BQU87QUFDckIsY0FBYyxRQUFRO0FBQ3RCLGNBQWMsb0JBQW9CO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixRQUFRO0FBQ3hCO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixJQUFJO0FBQ2xDO0FBQ0EsZUFBZSxRQUFRO0FBQ3ZCOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7O0FBRUw7QUFDQSxJQUFJOztBQUVKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSCxhQUFhOztBQUViO0FBQ0E7QUFDQSxvRkFBb0YsNkJBQTZCO0FBQ2pIO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRLDJCQUEyQiw4QkFBOEI7QUFDOUUsYUFBYSxrQkFBa0Isd0JBQXdCLDhCQUE4QjtBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0EsTUFBTSw2QkFBNkI7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsNkJBQTZCO0FBQ25EO0FBQ0EsYUFBYSxXQUFXO0FBQ3hCLGFBQWEsUUFBUTtBQUNyQixhQUFhLGtCQUFrQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7O0FBRUE7O0FBRUEsMkJBQTJCLCtCQUErQjtBQUMxRDtBQUNBO0FBQ0EsR0FBRzs7QUFFSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0Isc0JBQXNCO0FBQzVDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsa0JBQWtCO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxJQUFJO0FBQ0o7QUFDQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsWUFBWTtBQUNyQztBQUNBLGFBQWEsT0FBTztBQUNwQixhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBLGFBQWEsT0FBTztBQUNwQixlQUFlLE9BQU87QUFDdEI7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLE9BQU87QUFDcEIsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQSxlQUFlLFlBQVk7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBLG1EQUFtRCxjQUFjO0FBQ2pFO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLEdBQUc7O0FBRUg7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsVUFBVTs7QUFFVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxPQUFPO0FBQ3JCLGNBQWMsYUFBYTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBLElBQUk7O0FBRUo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsT0FBTztBQUNyQixjQUFjLG9CQUFvQjtBQUNsQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsNkJBQTZCLDZCQUE2QjtBQUMxRDtBQUNBO0FBQ0E7QUFDQSxHQUFHOztBQUVIO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLDhDQUE4Qzs7QUFFOUQ7QUFDQTtBQUNBO0FBQ0EsWUFBWSxPQUFPLFdBQVc7QUFDOUIsWUFBWSxxQkFBcUIsY0FBYztBQUMvQyxZQUFZLGdCQUFnQjtBQUM1QixZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdEQUFnRCxjQUFjO0FBQzlEO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSwrQ0FBK0Msa0JBQWtCO0FBQ2pFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsc0JBQXNCO0FBQ3BDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3QixZQUFZO0FBQ3BDO0FBQ0EsWUFBWSw2QkFBNkI7QUFDekMsWUFBWSxPQUFPO0FBQ25CLGNBQWMsT0FBTztBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0EsdUZBQXVGO0FBQ3ZGOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxZQUFZLE9BQU87QUFDbkIsWUFBWSxPQUFPO0FBQ25CLFlBQVksT0FBTztBQUNuQixZQUFZLFFBQVE7QUFDcEIsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLFlBQVksT0FBTztBQUNuQixZQUFZLDJCQUEyQjtBQUN2QyxZQUFZLElBQUk7QUFDaEIsWUFBWSwrQkFBK0I7QUFDM0MsWUFBWSxPQUFPO0FBQ25CLFlBQVksZUFBZTtBQUMzQixjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0EsZUFBZSxPQUFPO0FBQ3RCLGVBQWUsT0FBTztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxrQkFBa0IscUJBQXFCO0FBQ3ZDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsZUFBZSxPQUFPO0FBQ3RCOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUI7QUFDekI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBLGlCQUFpQixlQUFlO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxlQUFlLEVBQUU7QUFDakIsZUFBZSx5QkFBeUI7QUFDeEMsZUFBZSx5QkFBeUI7QUFDeEM7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLGtCQUFrQjtBQUMvQixjQUFjO0FBQ2QsYUFBYSxrQkFBa0I7QUFDL0IsY0FBYztBQUNkOztBQUVBLGFBQWEsa0JBQWtCO0FBQy9CO0FBQ0EsYUFBYSxrQkFBa0I7QUFDL0I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksY0FBYztBQUMxQixZQUFZLGtCQUFrQjtBQUM5QixZQUFZLEVBQUU7QUFDZCxjQUFjLGtCQUFrQjtBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksY0FBYztBQUMxQixZQUFZLGtCQUFrQjtBQUM5QixZQUFZLE9BQU87QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsaUNBQWlDO0FBQ2xEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxjQUFjO0FBQzFCLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxDQUFDOztBQUVELElBQUksS0FBNkI7QUFDakM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsT0FBTztBQUNyQixjQUFjLFFBQVE7QUFDdEI7QUFDQSxjQUFjLFFBQVE7QUFDdEIsY0FBYyxnQkFBZ0I7QUFDOUIsY0FBYyxRQUFRO0FBQ3RCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxVQUFVO0FBQ1YsY0FBYyxRQUFRO0FBQ3RCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQixhQUFhO0FBQ2I7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxXQUFXLG9CQUFvQjtBQUMvQixhQUFhO0FBQ2I7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcmlzbWpzL2NvbXBvbmVudHMvcHJpc20tY29yZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vLyA8cmVmZXJlbmNlIGxpYj1cIldlYldvcmtlclwiLz5cblxudmFyIF9zZWxmID0gKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKVxuXHQ/IHdpbmRvdyAgIC8vIGlmIGluIGJyb3dzZXJcblx0OiAoXG5cdFx0KHR5cGVvZiBXb3JrZXJHbG9iYWxTY29wZSAhPT0gJ3VuZGVmaW5lZCcgJiYgc2VsZiBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlKVxuXHRcdFx0PyBzZWxmIC8vIGlmIGluIHdvcmtlclxuXHRcdFx0OiB7fSAgIC8vIGlmIGluIG5vZGUganNcblx0KTtcblxuLyoqXG4gKiBQcmlzbTogTGlnaHR3ZWlnaHQsIHJvYnVzdCwgZWxlZ2FudCBzeW50YXggaGlnaGxpZ2h0aW5nXG4gKlxuICogQGxpY2Vuc2UgTUlUIDxodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVD5cbiAqIEBhdXRob3IgTGVhIFZlcm91IDxodHRwczovL2xlYS52ZXJvdS5tZT5cbiAqIEBuYW1lc3BhY2VcbiAqIEBwdWJsaWNcbiAqL1xudmFyIFByaXNtID0gKGZ1bmN0aW9uIChfc2VsZikge1xuXG5cdC8vIFByaXZhdGUgaGVscGVyIHZhcnNcblx0dmFyIGxhbmcgPSAvXFxibGFuZyg/OnVhZ2UpPy0oW1xcdy1dKylcXGIvaTtcblx0dmFyIHVuaXF1ZUlkID0gMDtcblxuXHQvLyBUaGUgZ3JhbW1hciBvYmplY3QgZm9yIHBsYWludGV4dFxuXHR2YXIgcGxhaW5UZXh0R3JhbW1hciA9IHt9O1xuXG5cblx0dmFyIF8gPSB7XG5cdFx0LyoqXG5cdFx0ICogQnkgZGVmYXVsdCwgUHJpc20gd2lsbCBhdHRlbXB0IHRvIGhpZ2hsaWdodCBhbGwgY29kZSBlbGVtZW50cyAoYnkgY2FsbGluZyB7QGxpbmsgUHJpc20uaGlnaGxpZ2h0QWxsfSkgb24gdGhlXG5cdFx0ICogY3VycmVudCBwYWdlIGFmdGVyIHRoZSBwYWdlIGZpbmlzaGVkIGxvYWRpbmcuIFRoaXMgbWlnaHQgYmUgYSBwcm9ibGVtIGlmIGUuZy4geW91IHdhbnRlZCB0byBhc3luY2hyb25vdXNseSBsb2FkXG5cdFx0ICogYWRkaXRpb25hbCBsYW5ndWFnZXMgb3IgcGx1Z2lucyB5b3Vyc2VsZi5cblx0XHQgKlxuXHRcdCAqIEJ5IHNldHRpbmcgdGhpcyB2YWx1ZSB0byBgdHJ1ZWAsIFByaXNtIHdpbGwgbm90IGF1dG9tYXRpY2FsbHkgaGlnaGxpZ2h0IGFsbCBjb2RlIGVsZW1lbnRzIG9uIHRoZSBwYWdlLlxuXHRcdCAqXG5cdFx0ICogWW91IG9idmlvdXNseSBoYXZlIHRvIGNoYW5nZSB0aGlzIHZhbHVlIGJlZm9yZSB0aGUgYXV0b21hdGljIGhpZ2hsaWdodGluZyBzdGFydGVkLiBUbyBkbyB0aGlzLCB5b3UgY2FuIGFkZCBhblxuXHRcdCAqIGVtcHR5IFByaXNtIG9iamVjdCBpbnRvIHRoZSBnbG9iYWwgc2NvcGUgYmVmb3JlIGxvYWRpbmcgdGhlIFByaXNtIHNjcmlwdCBsaWtlIHRoaXM6XG5cdFx0ICpcblx0XHQgKiBgYGBqc1xuXHRcdCAqIHdpbmRvdy5QcmlzbSA9IHdpbmRvdy5QcmlzbSB8fCB7fTtcblx0XHQgKiBQcmlzbS5tYW51YWwgPSB0cnVlO1xuXHRcdCAqIC8vIGFkZCBhIG5ldyA8c2NyaXB0PiB0byBsb2FkIFByaXNtJ3Mgc2NyaXB0XG5cdFx0ICogYGBgXG5cdFx0ICpcblx0XHQgKiBAZGVmYXVsdCBmYWxzZVxuXHRcdCAqIEB0eXBlIHtib29sZWFufVxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHRtYW51YWw6IF9zZWxmLlByaXNtICYmIF9zZWxmLlByaXNtLm1hbnVhbCxcblx0XHRkaXNhYmxlV29ya2VyTWVzc2FnZUhhbmRsZXI6IF9zZWxmLlByaXNtICYmIF9zZWxmLlByaXNtLmRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcixcblxuXHRcdC8qKlxuXHRcdCAqIEEgbmFtZXNwYWNlIGZvciB1dGlsaXR5IG1ldGhvZHMuXG5cdFx0ICpcblx0XHQgKiBBbGwgZnVuY3Rpb24gaW4gdGhpcyBuYW1lc3BhY2UgdGhhdCBhcmUgbm90IGV4cGxpY2l0bHkgbWFya2VkIGFzIF9wdWJsaWNfIGFyZSBmb3IgX19pbnRlcm5hbCB1c2Ugb25seV9fIGFuZCBtYXlcblx0XHQgKiBjaGFuZ2Ugb3IgZGlzYXBwZWFyIGF0IGFueSB0aW1lLlxuXHRcdCAqXG5cdFx0ICogQG5hbWVzcGFjZVxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqL1xuXHRcdHV0aWw6IHtcblx0XHRcdGVuY29kZTogZnVuY3Rpb24gZW5jb2RlKHRva2Vucykge1xuXHRcdFx0XHRpZiAodG9rZW5zIGluc3RhbmNlb2YgVG9rZW4pIHtcblx0XHRcdFx0XHRyZXR1cm4gbmV3IFRva2VuKHRva2Vucy50eXBlLCBlbmNvZGUodG9rZW5zLmNvbnRlbnQpLCB0b2tlbnMuYWxpYXMpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodG9rZW5zKSkge1xuXHRcdFx0XHRcdHJldHVybiB0b2tlbnMubWFwKGVuY29kZSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRva2Vucy5yZXBsYWNlKC8mL2csICcmYW1wOycpLnJlcGxhY2UoLzwvZywgJyZsdDsnKS5yZXBsYWNlKC9cXHUwMGEwL2csICcgJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUmV0dXJucyB0aGUgbmFtZSBvZiB0aGUgdHlwZSBvZiB0aGUgZ2l2ZW4gdmFsdWUuXG5cdFx0XHQgKlxuXHRcdFx0ICogQHBhcmFtIHthbnl9IG9cblx0XHRcdCAqIEByZXR1cm5zIHtzdHJpbmd9XG5cdFx0XHQgKiBAZXhhbXBsZVxuXHRcdFx0ICogdHlwZShudWxsKSAgICAgID09PSAnTnVsbCdcblx0XHRcdCAqIHR5cGUodW5kZWZpbmVkKSA9PT0gJ1VuZGVmaW5lZCdcblx0XHRcdCAqIHR5cGUoMTIzKSAgICAgICA9PT0gJ051bWJlcidcblx0XHRcdCAqIHR5cGUoJ2ZvbycpICAgICA9PT0gJ1N0cmluZydcblx0XHRcdCAqIHR5cGUodHJ1ZSkgICAgICA9PT0gJ0Jvb2xlYW4nXG5cdFx0XHQgKiB0eXBlKFsxLCAyXSkgICAgPT09ICdBcnJheSdcblx0XHRcdCAqIHR5cGUoe30pICAgICAgICA9PT0gJ09iamVjdCdcblx0XHRcdCAqIHR5cGUoU3RyaW5nKSAgICA9PT0gJ0Z1bmN0aW9uJ1xuXHRcdFx0ICogdHlwZSgvYWJjKy8pICAgID09PSAnUmVnRXhwJ1xuXHRcdFx0ICovXG5cdFx0XHR0eXBlOiBmdW5jdGlvbiAobykge1xuXHRcdFx0XHRyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG8pLnNsaWNlKDgsIC0xKTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogUmV0dXJucyBhIHVuaXF1ZSBudW1iZXIgZm9yIHRoZSBnaXZlbiBvYmplY3QuIExhdGVyIGNhbGxzIHdpbGwgc3RpbGwgcmV0dXJuIHRoZSBzYW1lIG51bWJlci5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdH0gb2JqXG5cdFx0XHQgKiBAcmV0dXJucyB7bnVtYmVyfVxuXHRcdFx0ICovXG5cdFx0XHRvYmpJZDogZnVuY3Rpb24gKG9iaikge1xuXHRcdFx0XHRpZiAoIW9ialsnX19pZCddKSB7XG5cdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ19faWQnLCB7IHZhbHVlOiArK3VuaXF1ZUlkIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBvYmpbJ19faWQnXTtcblx0XHRcdH0sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQ3JlYXRlcyBhIGRlZXAgY2xvbmUgb2YgdGhlIGdpdmVuIG9iamVjdC5cblx0XHRcdCAqXG5cdFx0XHQgKiBUaGUgbWFpbiBpbnRlbmRlZCB1c2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0byBjbG9uZSBsYW5ndWFnZSBkZWZpbml0aW9ucy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge1R9IG9cblx0XHRcdCAqIEBwYXJhbSB7UmVjb3JkPG51bWJlciwgYW55Pn0gW3Zpc2l0ZWRdXG5cdFx0XHQgKiBAcmV0dXJucyB7VH1cblx0XHRcdCAqIEB0ZW1wbGF0ZSBUXG5cdFx0XHQgKi9cblx0XHRcdGNsb25lOiBmdW5jdGlvbiBkZWVwQ2xvbmUobywgdmlzaXRlZCkge1xuXHRcdFx0XHR2aXNpdGVkID0gdmlzaXRlZCB8fCB7fTtcblxuXHRcdFx0XHR2YXIgY2xvbmU7IHZhciBpZDtcblx0XHRcdFx0c3dpdGNoIChfLnV0aWwudHlwZShvKSkge1xuXHRcdFx0XHRcdGNhc2UgJ09iamVjdCc6XG5cdFx0XHRcdFx0XHRpZCA9IF8udXRpbC5vYmpJZChvKTtcblx0XHRcdFx0XHRcdGlmICh2aXNpdGVkW2lkXSkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmlzaXRlZFtpZF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRjbG9uZSA9IC8qKiBAdHlwZSB7UmVjb3JkPHN0cmluZywgYW55Pn0gKi8gKHt9KTtcblx0XHRcdFx0XHRcdHZpc2l0ZWRbaWRdID0gY2xvbmU7XG5cblx0XHRcdFx0XHRcdGZvciAodmFyIGtleSBpbiBvKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChvLmhhc093blByb3BlcnR5KGtleSkpIHtcblx0XHRcdFx0XHRcdFx0XHRjbG9uZVtrZXldID0gZGVlcENsb25lKG9ba2V5XSwgdmlzaXRlZCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0cmV0dXJuIC8qKiBAdHlwZSB7YW55fSAqLyAoY2xvbmUpO1xuXG5cdFx0XHRcdFx0Y2FzZSAnQXJyYXknOlxuXHRcdFx0XHRcdFx0aWQgPSBfLnV0aWwub2JqSWQobyk7XG5cdFx0XHRcdFx0XHRpZiAodmlzaXRlZFtpZF0pIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHZpc2l0ZWRbaWRdO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Y2xvbmUgPSBbXTtcblx0XHRcdFx0XHRcdHZpc2l0ZWRbaWRdID0gY2xvbmU7XG5cblx0XHRcdFx0XHRcdCgvKiogQHR5cGUge0FycmF5fSAqLygvKiogQHR5cGUge2FueX0gKi8obykpKS5mb3JFYWNoKGZ1bmN0aW9uICh2LCBpKSB7XG5cdFx0XHRcdFx0XHRcdGNsb25lW2ldID0gZGVlcENsb25lKHYsIHZpc2l0ZWQpO1xuXHRcdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHRcdHJldHVybiAvKiogQHR5cGUge2FueX0gKi8gKGNsb25lKTtcblxuXHRcdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0XHRyZXR1cm4gbztcblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXR1cm5zIHRoZSBQcmlzbSBsYW5ndWFnZSBvZiB0aGUgZ2l2ZW4gZWxlbWVudCBzZXQgYnkgYSBgbGFuZ3VhZ2UteHh4eGAgb3IgYGxhbmcteHh4eGAgY2xhc3MuXG5cdFx0XHQgKlxuXHRcdFx0ICogSWYgbm8gbGFuZ3VhZ2UgaXMgc2V0IGZvciB0aGUgZWxlbWVudCBvciB0aGUgZWxlbWVudCBpcyBgbnVsbGAgb3IgYHVuZGVmaW5lZGAsIGBub25lYCB3aWxsIGJlIHJldHVybmVkLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSB7RWxlbWVudH0gZWxlbWVudFxuXHRcdFx0ICogQHJldHVybnMge3N0cmluZ31cblx0XHRcdCAqL1xuXHRcdFx0Z2V0TGFuZ3VhZ2U6IGZ1bmN0aW9uIChlbGVtZW50KSB7XG5cdFx0XHRcdHdoaWxlIChlbGVtZW50ICYmICFsYW5nLnRlc3QoZWxlbWVudC5jbGFzc05hbWUpKSB7XG5cdFx0XHRcdFx0ZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudDtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoZWxlbWVudCkge1xuXHRcdFx0XHRcdHJldHVybiAoZWxlbWVudC5jbGFzc05hbWUubWF0Y2gobGFuZykgfHwgWywgJ25vbmUnXSlbMV0udG9Mb3dlckNhc2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gJ25vbmUnO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSZXR1cm5zIHRoZSBzY3JpcHQgZWxlbWVudCB0aGF0IGlzIGN1cnJlbnRseSBleGVjdXRpbmcuXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhpcyBkb2VzIF9fbm90X18gd29yayBmb3IgbGluZSBzY3JpcHQgZWxlbWVudC5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcmV0dXJucyB7SFRNTFNjcmlwdEVsZW1lbnQgfCBudWxsfVxuXHRcdFx0ICovXG5cdFx0XHRjdXJyZW50U2NyaXB0OiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKCdjdXJyZW50U2NyaXB0JyBpbiBkb2N1bWVudCAmJiAxIDwgMiAvKiBoYWNrIHRvIHRyaXAgVFMnIGZsb3cgYW5hbHlzaXMgKi8pIHtcblx0XHRcdFx0XHRyZXR1cm4gLyoqIEB0eXBlIHthbnl9ICovIChkb2N1bWVudC5jdXJyZW50U2NyaXB0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIElFMTEgd29ya2Fyb3VuZFxuXHRcdFx0XHQvLyB3ZSdsbCBnZXQgdGhlIHNyYyBvZiB0aGUgY3VycmVudCBzY3JpcHQgYnkgcGFyc2luZyBJRTExJ3MgZXJyb3Igc3RhY2sgdHJhY2Vcblx0XHRcdFx0Ly8gdGhpcyB3aWxsIG5vdCB3b3JrIGZvciBpbmxpbmUgc2NyaXB0c1xuXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCk7XG5cdFx0XHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0XHRcdC8vIEdldCBmaWxlIHNyYyB1cmwgZnJvbSBzdGFjay4gU3BlY2lmaWNhbGx5IHdvcmtzIHdpdGggdGhlIGZvcm1hdCBvZiBzdGFjayB0cmFjZXMgaW4gSUUuXG5cdFx0XHRcdFx0Ly8gQSBzdGFjayB3aWxsIGxvb2sgbGlrZSB0aGlzOlxuXHRcdFx0XHRcdC8vXG5cdFx0XHRcdFx0Ly8gRXJyb3Jcblx0XHRcdFx0XHQvLyAgICBhdCBfLnV0aWwuY3VycmVudFNjcmlwdCAoaHR0cDovL2xvY2FsaG9zdC9jb21wb25lbnRzL3ByaXNtLWNvcmUuanM6MTE5OjUpXG5cdFx0XHRcdFx0Ly8gICAgYXQgR2xvYmFsIGNvZGUgKGh0dHA6Ly9sb2NhbGhvc3QvY29tcG9uZW50cy9wcmlzbS1jb3JlLmpzOjYwNjoxKVxuXG5cdFx0XHRcdFx0dmFyIHNyYyA9ICgvYXQgW14oXFxyXFxuXSpcXCgoLiopOlteOl0rOlteOl0rXFwpJC9pLmV4ZWMoZXJyLnN0YWNrKSB8fCBbXSlbMV07XG5cdFx0XHRcdFx0aWYgKHNyYykge1xuXHRcdFx0XHRcdFx0dmFyIHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7XG5cdFx0XHRcdFx0XHRmb3IgKHZhciBpIGluIHNjcmlwdHMpIHtcblx0XHRcdFx0XHRcdFx0aWYgKHNjcmlwdHNbaV0uc3JjID09IHNyYykge1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBzY3JpcHRzW2ldO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIFJldHVybnMgd2hldGhlciBhIGdpdmVuIGNsYXNzIGlzIGFjdGl2ZSBmb3IgYGVsZW1lbnRgLlxuXHRcdFx0ICpcblx0XHRcdCAqIFRoZSBjbGFzcyBjYW4gYmUgYWN0aXZhdGVkIGlmIGBlbGVtZW50YCBvciBvbmUgb2YgaXRzIGFuY2VzdG9ycyBoYXMgdGhlIGdpdmVuIGNsYXNzIGFuZCBpdCBjYW4gYmUgZGVhY3RpdmF0ZWRcblx0XHRcdCAqIGlmIGBlbGVtZW50YCBvciBvbmUgb2YgaXRzIGFuY2VzdG9ycyBoYXMgdGhlIG5lZ2F0ZWQgdmVyc2lvbiBvZiB0aGUgZ2l2ZW4gY2xhc3MuIFRoZSBfbmVnYXRlZCB2ZXJzaW9uXyBvZiB0aGVcblx0XHRcdCAqIGdpdmVuIGNsYXNzIGlzIGp1c3QgdGhlIGdpdmVuIGNsYXNzIHdpdGggYSBgbm8tYCBwcmVmaXguXG5cdFx0XHQgKlxuXHRcdFx0ICogV2hldGhlciB0aGUgY2xhc3MgaXMgYWN0aXZlIGlzIGRldGVybWluZWQgYnkgdGhlIGNsb3Nlc3QgYW5jZXN0b3Igb2YgYGVsZW1lbnRgICh3aGVyZSBgZWxlbWVudGAgaXRzZWxmIGlzXG5cdFx0XHQgKiBjbG9zZXN0IGFuY2VzdG9yKSB0aGF0IGhhcyB0aGUgZ2l2ZW4gY2xhc3Mgb3IgdGhlIG5lZ2F0ZWQgdmVyc2lvbiBvZiBpdC4gSWYgbmVpdGhlciBgZWxlbWVudGAgbm9yIGFueSBvZiBpdHNcblx0XHRcdCAqIGFuY2VzdG9ycyBoYXZlIHRoZSBnaXZlbiBjbGFzcyBvciB0aGUgbmVnYXRlZCB2ZXJzaW9uIG9mIGl0LCB0aGVuIHRoZSBkZWZhdWx0IGFjdGl2YXRpb24gd2lsbCBiZSByZXR1cm5lZC5cblx0XHRcdCAqXG5cdFx0XHQgKiBJbiB0aGUgcGFyYWRveGljYWwgc2l0dWF0aW9uIHdoZXJlIHRoZSBjbG9zZXN0IGFuY2VzdG9yIGNvbnRhaW5zIF9fYm90aF9fIHRoZSBnaXZlbiBjbGFzcyBhbmQgdGhlIG5lZ2F0ZWRcblx0XHRcdCAqIHZlcnNpb24gb2YgaXQsIHRoZSBjbGFzcyBpcyBjb25zaWRlcmVkIGFjdGl2ZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnRcblx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWVcblx0XHRcdCAqIEBwYXJhbSB7Ym9vbGVhbn0gW2RlZmF1bHRBY3RpdmF0aW9uPWZhbHNlXVxuXHRcdFx0ICogQHJldHVybnMge2Jvb2xlYW59XG5cdFx0XHQgKi9cblx0XHRcdGlzQWN0aXZlOiBmdW5jdGlvbiAoZWxlbWVudCwgY2xhc3NOYW1lLCBkZWZhdWx0QWN0aXZhdGlvbikge1xuXHRcdFx0XHR2YXIgbm8gPSAnbm8tJyArIGNsYXNzTmFtZTtcblxuXHRcdFx0XHR3aGlsZSAoZWxlbWVudCkge1xuXHRcdFx0XHRcdHZhciBjbGFzc0xpc3QgPSBlbGVtZW50LmNsYXNzTGlzdDtcblx0XHRcdFx0XHRpZiAoY2xhc3NMaXN0LmNvbnRhaW5zKGNsYXNzTmFtZSkpIHtcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoY2xhc3NMaXN0LmNvbnRhaW5zKG5vKSkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbGVtZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiAhIWRlZmF1bHRBY3RpdmF0aW9uO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBUaGlzIG5hbWVzcGFjZSBjb250YWlucyBhbGwgY3VycmVudGx5IGxvYWRlZCBsYW5ndWFnZXMgYW5kIHRoZSBzb21lIGhlbHBlciBmdW5jdGlvbnMgdG8gY3JlYXRlIGFuZCBtb2RpZnkgbGFuZ3VhZ2VzLlxuXHRcdCAqXG5cdFx0ICogQG5hbWVzcGFjZVxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHRsYW5ndWFnZXM6IHtcblx0XHRcdC8qKlxuXHRcdFx0ICogVGhlIGdyYW1tYXIgZm9yIHBsYWluLCB1bmZvcm1hdHRlZCB0ZXh0LlxuXHRcdFx0ICovXG5cdFx0XHRwbGFpbjogcGxhaW5UZXh0R3JhbW1hcixcblx0XHRcdHBsYWludGV4dDogcGxhaW5UZXh0R3JhbW1hcixcblx0XHRcdHRleHQ6IHBsYWluVGV4dEdyYW1tYXIsXG5cdFx0XHR0eHQ6IHBsYWluVGV4dEdyYW1tYXIsXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQ3JlYXRlcyBhIGRlZXAgY29weSBvZiB0aGUgbGFuZ3VhZ2Ugd2l0aCB0aGUgZ2l2ZW4gaWQgYW5kIGFwcGVuZHMgdGhlIGdpdmVuIHRva2Vucy5cblx0XHRcdCAqXG5cdFx0XHQgKiBJZiBhIHRva2VuIGluIGByZWRlZmAgYWxzbyBhcHBlYXJzIGluIHRoZSBjb3BpZWQgbGFuZ3VhZ2UsIHRoZW4gdGhlIGV4aXN0aW5nIHRva2VuIGluIHRoZSBjb3BpZWQgbGFuZ3VhZ2Vcblx0XHRcdCAqIHdpbGwgYmUgb3ZlcndyaXR0ZW4gYXQgaXRzIG9yaWdpbmFsIHBvc2l0aW9uLlxuXHRcdFx0ICpcblx0XHRcdCAqICMjIEJlc3QgcHJhY3RpY2VzXG5cdFx0XHQgKlxuXHRcdFx0ICogU2luY2UgdGhlIHBvc2l0aW9uIG9mIG92ZXJ3cml0aW5nIHRva2VucyAodG9rZW4gaW4gYHJlZGVmYCB0aGF0IG92ZXJ3cml0ZSB0b2tlbnMgaW4gdGhlIGNvcGllZCBsYW5ndWFnZSlcblx0XHRcdCAqIGRvZXNuJ3QgbWF0dGVyLCB0aGV5IGNhbiB0ZWNobmljYWxseSBiZSBpbiBhbnkgb3JkZXIuIEhvd2V2ZXIsIHRoaXMgY2FuIGJlIGNvbmZ1c2luZyB0byBvdGhlcnMgdGhhdCB0cnlpbmcgdG9cblx0XHRcdCAqIHVuZGVyc3RhbmQgdGhlIGxhbmd1YWdlIGRlZmluaXRpb24gYmVjYXVzZSwgbm9ybWFsbHksIHRoZSBvcmRlciBvZiB0b2tlbnMgbWF0dGVycyBpbiBQcmlzbSBncmFtbWFycy5cblx0XHRcdCAqXG5cdFx0XHQgKiBUaGVyZWZvcmUsIGl0IGlzIGVuY291cmFnZWQgdG8gb3JkZXIgb3ZlcndyaXRpbmcgdG9rZW5zIGFjY29yZGluZyB0byB0aGUgcG9zaXRpb25zIG9mIHRoZSBvdmVyd3JpdHRlbiB0b2tlbnMuXG5cdFx0XHQgKiBGdXJ0aGVybW9yZSwgYWxsIG5vbi1vdmVyd3JpdGluZyB0b2tlbnMgc2hvdWxkIGJlIHBsYWNlZCBhZnRlciB0aGUgb3ZlcndyaXRpbmcgb25lcy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge3N0cmluZ30gaWQgVGhlIGlkIG9mIHRoZSBsYW5ndWFnZSB0byBleHRlbmQuIFRoaXMgaGFzIHRvIGJlIGEga2V5IGluIGBQcmlzbS5sYW5ndWFnZXNgLlxuXHRcdFx0ICogQHBhcmFtIHtHcmFtbWFyfSByZWRlZiBUaGUgbmV3IHRva2VucyB0byBhcHBlbmQuXG5cdFx0XHQgKiBAcmV0dXJucyB7R3JhbW1hcn0gVGhlIG5ldyBsYW5ndWFnZSBjcmVhdGVkLlxuXHRcdFx0ICogQHB1YmxpY1xuXHRcdFx0ICogQGV4YW1wbGVcblx0XHRcdCAqIFByaXNtLmxhbmd1YWdlc1snY3NzLXdpdGgtY29sb3JzJ10gPSBQcmlzbS5sYW5ndWFnZXMuZXh0ZW5kKCdjc3MnLCB7XG5cdFx0XHQgKiAgICAgLy8gUHJpc20ubGFuZ3VhZ2VzLmNzcyBhbHJlYWR5IGhhcyBhICdjb21tZW50JyB0b2tlbiwgc28gdGhpcyB0b2tlbiB3aWxsIG92ZXJ3cml0ZSBDU1MnICdjb21tZW50JyB0b2tlblxuXHRcdFx0ICogICAgIC8vIGF0IGl0cyBvcmlnaW5hbCBwb3NpdGlvblxuXHRcdFx0ICogICAgICdjb21tZW50JzogeyAuLi4gfSxcblx0XHRcdCAqICAgICAvLyBDU1MgZG9lc24ndCBoYXZlIGEgJ2NvbG9yJyB0b2tlbiwgc28gdGhpcyB0b2tlbiB3aWxsIGJlIGFwcGVuZGVkXG5cdFx0XHQgKiAgICAgJ2NvbG9yJzogL1xcYig/OnJlZHxncmVlbnxibHVlKVxcYi9cblx0XHRcdCAqIH0pO1xuXHRcdFx0ICovXG5cdFx0XHRleHRlbmQ6IGZ1bmN0aW9uIChpZCwgcmVkZWYpIHtcblx0XHRcdFx0dmFyIGxhbmcgPSBfLnV0aWwuY2xvbmUoXy5sYW5ndWFnZXNbaWRdKTtcblxuXHRcdFx0XHRmb3IgKHZhciBrZXkgaW4gcmVkZWYpIHtcblx0XHRcdFx0XHRsYW5nW2tleV0gPSByZWRlZltrZXldO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGxhbmc7XG5cdFx0XHR9LFxuXG5cdFx0XHQvKipcblx0XHRcdCAqIEluc2VydHMgdG9rZW5zIF9iZWZvcmVfIGFub3RoZXIgdG9rZW4gaW4gYSBsYW5ndWFnZSBkZWZpbml0aW9uIG9yIGFueSBvdGhlciBncmFtbWFyLlxuXHRcdFx0ICpcblx0XHRcdCAqICMjIFVzYWdlXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhpcyBoZWxwZXIgbWV0aG9kIG1ha2VzIGl0IGVhc3kgdG8gbW9kaWZ5IGV4aXN0aW5nIGxhbmd1YWdlcy4gRm9yIGV4YW1wbGUsIHRoZSBDU1MgbGFuZ3VhZ2UgZGVmaW5pdGlvblxuXHRcdFx0ICogbm90IG9ubHkgZGVmaW5lcyBDU1MgaGlnaGxpZ2h0aW5nIGZvciBDU1MgZG9jdW1lbnRzLCBidXQgYWxzbyBuZWVkcyB0byBkZWZpbmUgaGlnaGxpZ2h0aW5nIGZvciBDU1MgZW1iZWRkZWRcblx0XHRcdCAqIGluIEhUTUwgdGhyb3VnaCBgPHN0eWxlPmAgZWxlbWVudHMuIFRvIGRvIHRoaXMsIGl0IG5lZWRzIHRvIG1vZGlmeSBgUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cGAgYW5kIGFkZCB0aGVcblx0XHRcdCAqIGFwcHJvcHJpYXRlIHRva2Vucy4gSG93ZXZlciwgYFByaXNtLmxhbmd1YWdlcy5tYXJrdXBgIGlzIGEgcmVndWxhciBKYXZhU2NyaXB0IG9iamVjdCBsaXRlcmFsLCBzbyBpZiB5b3UgZG9cblx0XHRcdCAqIHRoaXM6XG5cdFx0XHQgKlxuXHRcdFx0ICogYGBganNcblx0XHRcdCAqIFByaXNtLmxhbmd1YWdlcy5tYXJrdXAuc3R5bGUgPSB7XG5cdFx0XHQgKiAgICAgLy8gdG9rZW5cblx0XHRcdCAqIH07XG5cdFx0XHQgKiBgYGBcblx0XHRcdCAqXG5cdFx0XHQgKiB0aGVuIHRoZSBgc3R5bGVgIHRva2VuIHdpbGwgYmUgYWRkZWQgKGFuZCBwcm9jZXNzZWQpIGF0IHRoZSBlbmQuIGBpbnNlcnRCZWZvcmVgIGFsbG93cyB5b3UgdG8gaW5zZXJ0IHRva2Vuc1xuXHRcdFx0ICogYmVmb3JlIGV4aXN0aW5nIHRva2Vucy4gRm9yIHRoZSBDU1MgZXhhbXBsZSBhYm92ZSwgeW91IHdvdWxkIHVzZSBpdCBsaWtlIHRoaXM6XG5cdFx0XHQgKlxuXHRcdFx0ICogYGBganNcblx0XHRcdCAqIFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoJ21hcmt1cCcsICdjZGF0YScsIHtcblx0XHRcdCAqICAgICAnc3R5bGUnOiB7XG5cdFx0XHQgKiAgICAgICAgIC8vIHRva2VuXG5cdFx0XHQgKiAgICAgfVxuXHRcdFx0ICogfSk7XG5cdFx0XHQgKiBgYGBcblx0XHRcdCAqXG5cdFx0XHQgKiAjIyBTcGVjaWFsIGNhc2VzXG5cdFx0XHQgKlxuXHRcdFx0ICogSWYgdGhlIGdyYW1tYXJzIG9mIGBpbnNpZGVgIGFuZCBgaW5zZXJ0YCBoYXZlIHRva2VucyB3aXRoIHRoZSBzYW1lIG5hbWUsIHRoZSB0b2tlbnMgaW4gYGluc2lkZWAncyBncmFtbWFyXG5cdFx0XHQgKiB3aWxsIGJlIGlnbm9yZWQuXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhpcyBiZWhhdmlvciBjYW4gYmUgdXNlZCB0byBpbnNlcnQgdG9rZW5zIGFmdGVyIGBiZWZvcmVgOlxuXHRcdFx0ICpcblx0XHRcdCAqIGBgYGpzXG5cdFx0XHQgKiBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdtYXJrdXAnLCAnY29tbWVudCcsIHtcblx0XHRcdCAqICAgICAnY29tbWVudCc6IFByaXNtLmxhbmd1YWdlcy5tYXJrdXAuY29tbWVudCxcblx0XHRcdCAqICAgICAvLyB0b2tlbnMgYWZ0ZXIgJ2NvbW1lbnQnXG5cdFx0XHQgKiB9KTtcblx0XHRcdCAqIGBgYFxuXHRcdFx0ICpcblx0XHRcdCAqICMjIExpbWl0YXRpb25zXG5cdFx0XHQgKlxuXHRcdFx0ICogVGhlIG1haW4gcHJvYmxlbSBgaW5zZXJ0QmVmb3JlYCBoYXMgdG8gc29sdmUgaXMgaXRlcmF0aW9uIG9yZGVyLiBTaW5jZSBFUzIwMTUsIHRoZSBpdGVyYXRpb24gb3JkZXIgZm9yIG9iamVjdFxuXHRcdFx0ICogcHJvcGVydGllcyBpcyBndWFyYW50ZWVkIHRvIGJlIHRoZSBpbnNlcnRpb24gb3JkZXIgKGV4Y2VwdCBmb3IgaW50ZWdlciBrZXlzKSBidXQgc29tZSBicm93c2VycyBiZWhhdmVcblx0XHRcdCAqIGRpZmZlcmVudGx5IHdoZW4ga2V5cyBhcmUgZGVsZXRlZCBhbmQgcmUtaW5zZXJ0ZWQuIFNvIGBpbnNlcnRCZWZvcmVgIGNhbid0IGJlIGltcGxlbWVudGVkIGJ5IHRlbXBvcmFyaWx5XG5cdFx0XHQgKiBkZWxldGluZyBwcm9wZXJ0aWVzIHdoaWNoIGlzIG5lY2Vzc2FyeSB0byBpbnNlcnQgYXQgYXJiaXRyYXJ5IHBvc2l0aW9ucy5cblx0XHRcdCAqXG5cdFx0XHQgKiBUbyBzb2x2ZSB0aGlzIHByb2JsZW0sIGBpbnNlcnRCZWZvcmVgIGRvZXNuJ3QgYWN0dWFsbHkgaW5zZXJ0IHRoZSBnaXZlbiB0b2tlbnMgaW50byB0aGUgdGFyZ2V0IG9iamVjdC5cblx0XHRcdCAqIEluc3RlYWQsIGl0IHdpbGwgY3JlYXRlIGEgbmV3IG9iamVjdCBhbmQgcmVwbGFjZSBhbGwgcmVmZXJlbmNlcyB0byB0aGUgdGFyZ2V0IG9iamVjdCB3aXRoIHRoZSBuZXcgb25lLiBUaGlzXG5cdFx0XHQgKiBjYW4gYmUgZG9uZSB3aXRob3V0IHRlbXBvcmFyaWx5IGRlbGV0aW5nIHByb3BlcnRpZXMsIHNvIHRoZSBpdGVyYXRpb24gb3JkZXIgaXMgd2VsbC1kZWZpbmVkLlxuXHRcdFx0ICpcblx0XHRcdCAqIEhvd2V2ZXIsIG9ubHkgcmVmZXJlbmNlcyB0aGF0IGNhbiBiZSByZWFjaGVkIGZyb20gYFByaXNtLmxhbmd1YWdlc2Agb3IgYGluc2VydGAgd2lsbCBiZSByZXBsYWNlZC4gSS5lLiBpZlxuXHRcdFx0ICogeW91IGhvbGQgdGhlIHRhcmdldCBvYmplY3QgaW4gYSB2YXJpYWJsZSwgdGhlbiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIHdpbGwgbm90IGNoYW5nZS5cblx0XHRcdCAqXG5cdFx0XHQgKiBgYGBqc1xuXHRcdFx0ICogdmFyIG9sZE1hcmt1cCA9IFByaXNtLmxhbmd1YWdlcy5tYXJrdXA7XG5cdFx0XHQgKiB2YXIgbmV3TWFya3VwID0gUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgnbWFya3VwJywgJ2NvbW1lbnQnLCB7IC4uLiB9KTtcblx0XHRcdCAqXG5cdFx0XHQgKiBhc3NlcnQob2xkTWFya3VwICE9PSBQcmlzbS5sYW5ndWFnZXMubWFya3VwKTtcblx0XHRcdCAqIGFzc2VydChuZXdNYXJrdXAgPT09IFByaXNtLmxhbmd1YWdlcy5tYXJrdXApO1xuXHRcdFx0ICogYGBgXG5cdFx0XHQgKlxuXHRcdFx0ICogQHBhcmFtIHtzdHJpbmd9IGluc2lkZSBUaGUgcHJvcGVydHkgb2YgYHJvb3RgIChlLmcuIGEgbGFuZ3VhZ2UgaWQgaW4gYFByaXNtLmxhbmd1YWdlc2ApIHRoYXQgY29udGFpbnMgdGhlXG5cdFx0XHQgKiBvYmplY3QgdG8gYmUgbW9kaWZpZWQuXG5cdFx0XHQgKiBAcGFyYW0ge3N0cmluZ30gYmVmb3JlIFRoZSBrZXkgdG8gaW5zZXJ0IGJlZm9yZS5cblx0XHRcdCAqIEBwYXJhbSB7R3JhbW1hcn0gaW5zZXJ0IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBrZXktdmFsdWUgcGFpcnMgdG8gYmUgaW5zZXJ0ZWQuXG5cdFx0XHQgKiBAcGFyYW0ge09iamVjdDxzdHJpbmcsIGFueT59IFtyb290XSBUaGUgb2JqZWN0IGNvbnRhaW5pbmcgYGluc2lkZWAsIGkuZS4gdGhlIG9iamVjdCB0aGF0IGNvbnRhaW5zIHRoZVxuXHRcdFx0ICogb2JqZWN0IHRvIGJlIG1vZGlmaWVkLlxuXHRcdFx0ICpcblx0XHRcdCAqIERlZmF1bHRzIHRvIGBQcmlzbS5sYW5ndWFnZXNgLlxuXHRcdFx0ICogQHJldHVybnMge0dyYW1tYXJ9IFRoZSBuZXcgZ3JhbW1hciBvYmplY3QuXG5cdFx0XHQgKiBAcHVibGljXG5cdFx0XHQgKi9cblx0XHRcdGluc2VydEJlZm9yZTogZnVuY3Rpb24gKGluc2lkZSwgYmVmb3JlLCBpbnNlcnQsIHJvb3QpIHtcblx0XHRcdFx0cm9vdCA9IHJvb3QgfHwgLyoqIEB0eXBlIHthbnl9ICovIChfLmxhbmd1YWdlcyk7XG5cdFx0XHRcdHZhciBncmFtbWFyID0gcm9vdFtpbnNpZGVdO1xuXHRcdFx0XHQvKiogQHR5cGUge0dyYW1tYXJ9ICovXG5cdFx0XHRcdHZhciByZXQgPSB7fTtcblxuXHRcdFx0XHRmb3IgKHZhciB0b2tlbiBpbiBncmFtbWFyKSB7XG5cdFx0XHRcdFx0aWYgKGdyYW1tYXIuaGFzT3duUHJvcGVydHkodG9rZW4pKSB7XG5cblx0XHRcdFx0XHRcdGlmICh0b2tlbiA9PSBiZWZvcmUpIHtcblx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgbmV3VG9rZW4gaW4gaW5zZXJ0KSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKGluc2VydC5oYXNPd25Qcm9wZXJ0eShuZXdUb2tlbikpIHtcblx0XHRcdFx0XHRcdFx0XHRcdHJldFtuZXdUb2tlbl0gPSBpbnNlcnRbbmV3VG9rZW5dO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHQvLyBEbyBub3QgaW5zZXJ0IHRva2VuIHdoaWNoIGFsc28gb2NjdXIgaW4gaW5zZXJ0LiBTZWUgIzE1MjVcblx0XHRcdFx0XHRcdGlmICghaW5zZXJ0Lmhhc093blByb3BlcnR5KHRva2VuKSkge1xuXHRcdFx0XHRcdFx0XHRyZXRbdG9rZW5dID0gZ3JhbW1hclt0b2tlbl07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0dmFyIG9sZCA9IHJvb3RbaW5zaWRlXTtcblx0XHRcdFx0cm9vdFtpbnNpZGVdID0gcmV0O1xuXG5cdFx0XHRcdC8vIFVwZGF0ZSByZWZlcmVuY2VzIGluIG90aGVyIGxhbmd1YWdlIGRlZmluaXRpb25zXG5cdFx0XHRcdF8ubGFuZ3VhZ2VzLkRGUyhfLmxhbmd1YWdlcywgZnVuY3Rpb24gKGtleSwgdmFsdWUpIHtcblx0XHRcdFx0XHRpZiAodmFsdWUgPT09IG9sZCAmJiBrZXkgIT0gaW5zaWRlKSB7XG5cdFx0XHRcdFx0XHR0aGlzW2tleV0gPSByZXQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblxuXHRcdFx0XHRyZXR1cm4gcmV0O1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gVHJhdmVyc2UgYSBsYW5ndWFnZSBkZWZpbml0aW9uIHdpdGggRGVwdGggRmlyc3QgU2VhcmNoXG5cdFx0XHRERlM6IGZ1bmN0aW9uIERGUyhvLCBjYWxsYmFjaywgdHlwZSwgdmlzaXRlZCkge1xuXHRcdFx0XHR2aXNpdGVkID0gdmlzaXRlZCB8fCB7fTtcblxuXHRcdFx0XHR2YXIgb2JqSWQgPSBfLnV0aWwub2JqSWQ7XG5cblx0XHRcdFx0Zm9yICh2YXIgaSBpbiBvKSB7XG5cdFx0XHRcdFx0aWYgKG8uaGFzT3duUHJvcGVydHkoaSkpIHtcblx0XHRcdFx0XHRcdGNhbGxiYWNrLmNhbGwobywgaSwgb1tpXSwgdHlwZSB8fCBpKTtcblxuXHRcdFx0XHRcdFx0dmFyIHByb3BlcnR5ID0gb1tpXTtcblx0XHRcdFx0XHRcdHZhciBwcm9wZXJ0eVR5cGUgPSBfLnV0aWwudHlwZShwcm9wZXJ0eSk7XG5cblx0XHRcdFx0XHRcdGlmIChwcm9wZXJ0eVR5cGUgPT09ICdPYmplY3QnICYmICF2aXNpdGVkW29iaklkKHByb3BlcnR5KV0pIHtcblx0XHRcdFx0XHRcdFx0dmlzaXRlZFtvYmpJZChwcm9wZXJ0eSldID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0REZTKHByb3BlcnR5LCBjYWxsYmFjaywgbnVsbCwgdmlzaXRlZCk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKHByb3BlcnR5VHlwZSA9PT0gJ0FycmF5JyAmJiAhdmlzaXRlZFtvYmpJZChwcm9wZXJ0eSldKSB7XG5cdFx0XHRcdFx0XHRcdHZpc2l0ZWRbb2JqSWQocHJvcGVydHkpXSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdERGUyhwcm9wZXJ0eSwgY2FsbGJhY2ssIGksIHZpc2l0ZWQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRwbHVnaW5zOiB7fSxcblxuXHRcdC8qKlxuXHRcdCAqIFRoaXMgaXMgdGhlIG1vc3QgaGlnaC1sZXZlbCBmdW5jdGlvbiBpbiBQcmlzbeKAmXMgQVBJLlxuXHRcdCAqIEl0IGZldGNoZXMgYWxsIHRoZSBlbGVtZW50cyB0aGF0IGhhdmUgYSBgLmxhbmd1YWdlLXh4eHhgIGNsYXNzIGFuZCB0aGVuIGNhbGxzIHtAbGluayBQcmlzbS5oaWdobGlnaHRFbGVtZW50fSBvblxuXHRcdCAqIGVhY2ggb25lIG9mIHRoZW0uXG5cdFx0ICpcblx0XHQgKiBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYFByaXNtLmhpZ2hsaWdodEFsbFVuZGVyKGRvY3VtZW50LCBhc3luYywgY2FsbGJhY2spYC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FzeW5jPWZhbHNlXSBTYW1lIGFzIGluIHtAbGluayBQcmlzbS5oaWdobGlnaHRBbGxVbmRlcn0uXG5cdFx0ICogQHBhcmFtIHtIaWdobGlnaHRDYWxsYmFja30gW2NhbGxiYWNrXSBTYW1lIGFzIGluIHtAbGluayBQcmlzbS5oaWdobGlnaHRBbGxVbmRlcn0uXG5cdFx0ICogQG1lbWJlcm9mIFByaXNtXG5cdFx0ICogQHB1YmxpY1xuXHRcdCAqL1xuXHRcdGhpZ2hsaWdodEFsbDogZnVuY3Rpb24gKGFzeW5jLCBjYWxsYmFjaykge1xuXHRcdFx0Xy5oaWdobGlnaHRBbGxVbmRlcihkb2N1bWVudCwgYXN5bmMsIGNhbGxiYWNrKTtcblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogRmV0Y2hlcyBhbGwgdGhlIGRlc2NlbmRhbnRzIG9mIGBjb250YWluZXJgIHRoYXQgaGF2ZSBhIGAubGFuZ3VhZ2UteHh4eGAgY2xhc3MgYW5kIHRoZW4gY2FsbHNcblx0XHQgKiB7QGxpbmsgUHJpc20uaGlnaGxpZ2h0RWxlbWVudH0gb24gZWFjaCBvbmUgb2YgdGhlbS5cblx0XHQgKlxuXHRcdCAqIFRoZSBmb2xsb3dpbmcgaG9va3Mgd2lsbCBiZSBydW46XG5cdFx0ICogMS4gYGJlZm9yZS1oaWdobGlnaHRhbGxgXG5cdFx0ICogMi4gYGJlZm9yZS1hbGwtZWxlbWVudHMtaGlnaGxpZ2h0YFxuXHRcdCAqIDMuIEFsbCBob29rcyBvZiB7QGxpbmsgUHJpc20uaGlnaGxpZ2h0RWxlbWVudH0gZm9yIGVhY2ggZWxlbWVudC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7UGFyZW50Tm9kZX0gY29udGFpbmVyIFRoZSByb290IGVsZW1lbnQsIHdob3NlIGRlc2NlbmRhbnRzIHRoYXQgaGF2ZSBhIGAubGFuZ3VhZ2UteHh4eGAgY2xhc3Mgd2lsbCBiZSBoaWdobGlnaHRlZC5cblx0XHQgKiBAcGFyYW0ge2Jvb2xlYW59IFthc3luYz1mYWxzZV0gV2hldGhlciBlYWNoIGVsZW1lbnQgaXMgdG8gYmUgaGlnaGxpZ2h0ZWQgYXN5bmNocm9ub3VzbHkgdXNpbmcgV2ViIFdvcmtlcnMuXG5cdFx0ICogQHBhcmFtIHtIaWdobGlnaHRDYWxsYmFja30gW2NhbGxiYWNrXSBBbiBvcHRpb25hbCBjYWxsYmFjayB0byBiZSBpbnZva2VkIG9uIGVhY2ggZWxlbWVudCBhZnRlciBpdHMgaGlnaGxpZ2h0aW5nIGlzIGRvbmUuXG5cdFx0ICogQG1lbWJlcm9mIFByaXNtXG5cdFx0ICogQHB1YmxpY1xuXHRcdCAqL1xuXHRcdGhpZ2hsaWdodEFsbFVuZGVyOiBmdW5jdGlvbiAoY29udGFpbmVyLCBhc3luYywgY2FsbGJhY2spIHtcblx0XHRcdHZhciBlbnYgPSB7XG5cdFx0XHRcdGNhbGxiYWNrOiBjYWxsYmFjayxcblx0XHRcdFx0Y29udGFpbmVyOiBjb250YWluZXIsXG5cdFx0XHRcdHNlbGVjdG9yOiAnY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0sIFtjbGFzcyo9XCJsYW5ndWFnZS1cIl0gY29kZSwgY29kZVtjbGFzcyo9XCJsYW5nLVwiXSwgW2NsYXNzKj1cImxhbmctXCJdIGNvZGUnXG5cdFx0XHR9O1xuXG5cdFx0XHRfLmhvb2tzLnJ1bignYmVmb3JlLWhpZ2hsaWdodGFsbCcsIGVudik7XG5cblx0XHRcdGVudi5lbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseShlbnYuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoZW52LnNlbGVjdG9yKSk7XG5cblx0XHRcdF8uaG9va3MucnVuKCdiZWZvcmUtYWxsLWVsZW1lbnRzLWhpZ2hsaWdodCcsIGVudik7XG5cblx0XHRcdGZvciAodmFyIGkgPSAwLCBlbGVtZW50OyAoZWxlbWVudCA9IGVudi5lbGVtZW50c1tpKytdKTspIHtcblx0XHRcdFx0Xy5oaWdobGlnaHRFbGVtZW50KGVsZW1lbnQsIGFzeW5jID09PSB0cnVlLCBlbnYuY2FsbGJhY2spO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHQvKipcblx0XHQgKiBIaWdobGlnaHRzIHRoZSBjb2RlIGluc2lkZSBhIHNpbmdsZSBlbGVtZW50LlxuXHRcdCAqXG5cdFx0ICogVGhlIGZvbGxvd2luZyBob29rcyB3aWxsIGJlIHJ1bjpcblx0XHQgKiAxLiBgYmVmb3JlLXNhbml0eS1jaGVja2Bcblx0XHQgKiAyLiBgYmVmb3JlLWhpZ2hsaWdodGBcblx0XHQgKiAzLiBBbGwgaG9va3Mgb2Yge0BsaW5rIFByaXNtLmhpZ2hsaWdodH0uIFRoZXNlIGhvb2tzIHdpbGwgYmUgcnVuIGJ5IGFuIGFzeW5jaHJvbm91cyB3b3JrZXIgaWYgYGFzeW5jYCBpcyBgdHJ1ZWAuXG5cdFx0ICogNC4gYGJlZm9yZS1pbnNlcnRgXG5cdFx0ICogNS4gYGFmdGVyLWhpZ2hsaWdodGBcblx0XHQgKiA2LiBgY29tcGxldGVgXG5cdFx0ICpcblx0XHQgKiBTb21lIHRoZSBhYm92ZSBob29rcyB3aWxsIGJlIHNraXBwZWQgaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBjb250YWluIGFueSB0ZXh0IG9yIHRoZXJlIGlzIG5vIGdyYW1tYXIgbG9hZGVkIGZvclxuXHRcdCAqIHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnQgVGhlIGVsZW1lbnQgY29udGFpbmluZyB0aGUgY29kZS5cblx0XHQgKiBJdCBtdXN0IGhhdmUgYSBjbGFzcyBvZiBgbGFuZ3VhZ2UteHh4eGAgdG8gYmUgcHJvY2Vzc2VkLCB3aGVyZSBgeHh4eGAgaXMgYSB2YWxpZCBsYW5ndWFnZSBpZGVudGlmaWVyLlxuXHRcdCAqIEBwYXJhbSB7Ym9vbGVhbn0gW2FzeW5jPWZhbHNlXSBXaGV0aGVyIHRoZSBlbGVtZW50IGlzIHRvIGJlIGhpZ2hsaWdodGVkIGFzeW5jaHJvbm91c2x5IHVzaW5nIFdlYiBXb3JrZXJzXG5cdFx0ICogdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSBhbmQgYXZvaWQgYmxvY2tpbmcgdGhlIFVJIHdoZW4gaGlnaGxpZ2h0aW5nIHZlcnkgbGFyZ2UgY2h1bmtzIG9mIGNvZGUuIFRoaXMgb3B0aW9uIGlzXG5cdFx0ICogW2Rpc2FibGVkIGJ5IGRlZmF1bHRdKGh0dHBzOi8vcHJpc21qcy5jb20vZmFxLmh0bWwjd2h5LWlzLWFzeW5jaHJvbm91cy1oaWdobGlnaHRpbmctZGlzYWJsZWQtYnktZGVmYXVsdCkuXG5cdFx0ICpcblx0XHQgKiBOb3RlOiBBbGwgbGFuZ3VhZ2UgZGVmaW5pdGlvbnMgcmVxdWlyZWQgdG8gaGlnaGxpZ2h0IHRoZSBjb2RlIG11c3QgYmUgaW5jbHVkZWQgaW4gdGhlIG1haW4gYHByaXNtLmpzYCBmaWxlIGZvclxuXHRcdCAqIGFzeW5jaHJvbm91cyBoaWdobGlnaHRpbmcgdG8gd29yay4gWW91IGNhbiBidWlsZCB5b3VyIG93biBidW5kbGUgb24gdGhlXG5cdFx0ICogW0Rvd25sb2FkIHBhZ2VdKGh0dHBzOi8vcHJpc21qcy5jb20vZG93bmxvYWQuaHRtbCkuXG5cdFx0ICogQHBhcmFtIHtIaWdobGlnaHRDYWxsYmFja30gW2NhbGxiYWNrXSBBbiBvcHRpb25hbCBjYWxsYmFjayB0byBiZSBpbnZva2VkIGFmdGVyIHRoZSBoaWdobGlnaHRpbmcgaXMgZG9uZS5cblx0XHQgKiBNb3N0bHkgdXNlZnVsIHdoZW4gYGFzeW5jYCBpcyBgdHJ1ZWAsIHNpbmNlIGluIHRoYXQgY2FzZSwgdGhlIGhpZ2hsaWdodGluZyBpcyBkb25lIGFzeW5jaHJvbm91c2x5LlxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHRoaWdobGlnaHRFbGVtZW50OiBmdW5jdGlvbiAoZWxlbWVudCwgYXN5bmMsIGNhbGxiYWNrKSB7XG5cdFx0XHQvLyBGaW5kIGxhbmd1YWdlXG5cdFx0XHR2YXIgbGFuZ3VhZ2UgPSBfLnV0aWwuZ2V0TGFuZ3VhZ2UoZWxlbWVudCk7XG5cdFx0XHR2YXIgZ3JhbW1hciA9IF8ubGFuZ3VhZ2VzW2xhbmd1YWdlXTtcblxuXHRcdFx0Ly8gU2V0IGxhbmd1YWdlIG9uIHRoZSBlbGVtZW50LCBpZiBub3QgcHJlc2VudFxuXHRcdFx0ZWxlbWVudC5jbGFzc05hbWUgPSBlbGVtZW50LmNsYXNzTmFtZS5yZXBsYWNlKGxhbmcsICcnKS5yZXBsYWNlKC9cXHMrL2csICcgJykgKyAnIGxhbmd1YWdlLScgKyBsYW5ndWFnZTtcblxuXHRcdFx0Ly8gU2V0IGxhbmd1YWdlIG9uIHRoZSBwYXJlbnQsIGZvciBzdHlsaW5nXG5cdFx0XHR2YXIgcGFyZW50ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXHRcdFx0aWYgKHBhcmVudCAmJiBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3ByZScpIHtcblx0XHRcdFx0cGFyZW50LmNsYXNzTmFtZSA9IHBhcmVudC5jbGFzc05hbWUucmVwbGFjZShsYW5nLCAnJykucmVwbGFjZSgvXFxzKy9nLCAnICcpICsgJyBsYW5ndWFnZS0nICsgbGFuZ3VhZ2U7XG5cdFx0XHR9XG5cblx0XHRcdHZhciBjb2RlID0gZWxlbWVudC50ZXh0Q29udGVudDtcblxuXHRcdFx0dmFyIGVudiA9IHtcblx0XHRcdFx0ZWxlbWVudDogZWxlbWVudCxcblx0XHRcdFx0bGFuZ3VhZ2U6IGxhbmd1YWdlLFxuXHRcdFx0XHRncmFtbWFyOiBncmFtbWFyLFxuXHRcdFx0XHRjb2RlOiBjb2RlXG5cdFx0XHR9O1xuXG5cdFx0XHRmdW5jdGlvbiBpbnNlcnRIaWdobGlnaHRlZENvZGUoaGlnaGxpZ2h0ZWRDb2RlKSB7XG5cdFx0XHRcdGVudi5oaWdobGlnaHRlZENvZGUgPSBoaWdobGlnaHRlZENvZGU7XG5cblx0XHRcdFx0Xy5ob29rcy5ydW4oJ2JlZm9yZS1pbnNlcnQnLCBlbnYpO1xuXG5cdFx0XHRcdGVudi5lbGVtZW50LmlubmVySFRNTCA9IGVudi5oaWdobGlnaHRlZENvZGU7XG5cblx0XHRcdFx0Xy5ob29rcy5ydW4oJ2FmdGVyLWhpZ2hsaWdodCcsIGVudik7XG5cdFx0XHRcdF8uaG9va3MucnVuKCdjb21wbGV0ZScsIGVudik7XG5cdFx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrLmNhbGwoZW52LmVsZW1lbnQpO1xuXHRcdFx0fVxuXG5cdFx0XHRfLmhvb2tzLnJ1bignYmVmb3JlLXNhbml0eS1jaGVjaycsIGVudik7XG5cblx0XHRcdC8vIHBsdWdpbnMgbWF5IGNoYW5nZS9hZGQgdGhlIHBhcmVudC9lbGVtZW50XG5cdFx0XHRwYXJlbnQgPSBlbnYuZWxlbWVudC5wYXJlbnRFbGVtZW50O1xuXHRcdFx0aWYgKHBhcmVudCAmJiBwYXJlbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3ByZScgJiYgIXBhcmVudC5oYXNBdHRyaWJ1dGUoJ3RhYmluZGV4JykpIHtcblx0XHRcdFx0cGFyZW50LnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWVudi5jb2RlKSB7XG5cdFx0XHRcdF8uaG9va3MucnVuKCdjb21wbGV0ZScsIGVudik7XG5cdFx0XHRcdGNhbGxiYWNrICYmIGNhbGxiYWNrLmNhbGwoZW52LmVsZW1lbnQpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdF8uaG9va3MucnVuKCdiZWZvcmUtaGlnaGxpZ2h0JywgZW52KTtcblxuXHRcdFx0aWYgKCFlbnYuZ3JhbW1hcikge1xuXHRcdFx0XHRpbnNlcnRIaWdobGlnaHRlZENvZGUoXy51dGlsLmVuY29kZShlbnYuY29kZSkpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGlmIChhc3luYyAmJiBfc2VsZi5Xb3JrZXIpIHtcblx0XHRcdFx0dmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoXy5maWxlbmFtZSk7XG5cblx0XHRcdFx0d29ya2VyLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHtcblx0XHRcdFx0XHRpbnNlcnRIaWdobGlnaHRlZENvZGUoZXZ0LmRhdGEpO1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdHdvcmtlci5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeSh7XG5cdFx0XHRcdFx0bGFuZ3VhZ2U6IGVudi5sYW5ndWFnZSxcblx0XHRcdFx0XHRjb2RlOiBlbnYuY29kZSxcblx0XHRcdFx0XHRpbW1lZGlhdGVDbG9zZTogdHJ1ZVxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRpbnNlcnRIaWdobGlnaHRlZENvZGUoXy5oaWdobGlnaHQoZW52LmNvZGUsIGVudi5ncmFtbWFyLCBlbnYubGFuZ3VhZ2UpKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0LyoqXG5cdFx0ICogTG93LWxldmVsIGZ1bmN0aW9uLCBvbmx5IHVzZSBpZiB5b3Uga25vdyB3aGF0IHlvdeKAmXJlIGRvaW5nLiBJdCBhY2NlcHRzIGEgc3RyaW5nIG9mIHRleHQgYXMgaW5wdXRcblx0XHQgKiBhbmQgdGhlIGxhbmd1YWdlIGRlZmluaXRpb25zIHRvIHVzZSwgYW5kIHJldHVybnMgYSBzdHJpbmcgd2l0aCB0aGUgSFRNTCBwcm9kdWNlZC5cblx0XHQgKlxuXHRcdCAqIFRoZSBmb2xsb3dpbmcgaG9va3Mgd2lsbCBiZSBydW46XG5cdFx0ICogMS4gYGJlZm9yZS10b2tlbml6ZWBcblx0XHQgKiAyLiBgYWZ0ZXItdG9rZW5pemVgXG5cdFx0ICogMy4gYHdyYXBgOiBPbiBlYWNoIHtAbGluayBUb2tlbn0uXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3N0cmluZ30gdGV4dCBBIHN0cmluZyB3aXRoIHRoZSBjb2RlIHRvIGJlIGhpZ2hsaWdodGVkLlxuXHRcdCAqIEBwYXJhbSB7R3JhbW1hcn0gZ3JhbW1hciBBbiBvYmplY3QgY29udGFpbmluZyB0aGUgdG9rZW5zIHRvIHVzZS5cblx0XHQgKlxuXHRcdCAqIFVzdWFsbHkgYSBsYW5ndWFnZSBkZWZpbml0aW9uIGxpa2UgYFByaXNtLmxhbmd1YWdlcy5tYXJrdXBgLlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBsYW5ndWFnZSBUaGUgbmFtZSBvZiB0aGUgbGFuZ3VhZ2UgZGVmaW5pdGlvbiBwYXNzZWQgdG8gYGdyYW1tYXJgLlxuXHRcdCAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBoaWdobGlnaHRlZCBIVE1MLlxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKiBAZXhhbXBsZVxuXHRcdCAqIFByaXNtLmhpZ2hsaWdodCgndmFyIGZvbyA9IHRydWU7JywgUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHQsICdqYXZhc2NyaXB0Jyk7XG5cdFx0ICovXG5cdFx0aGlnaGxpZ2h0OiBmdW5jdGlvbiAodGV4dCwgZ3JhbW1hciwgbGFuZ3VhZ2UpIHtcblx0XHRcdHZhciBlbnYgPSB7XG5cdFx0XHRcdGNvZGU6IHRleHQsXG5cdFx0XHRcdGdyYW1tYXI6IGdyYW1tYXIsXG5cdFx0XHRcdGxhbmd1YWdlOiBsYW5ndWFnZVxuXHRcdFx0fTtcblx0XHRcdF8uaG9va3MucnVuKCdiZWZvcmUtdG9rZW5pemUnLCBlbnYpO1xuXHRcdFx0ZW52LnRva2VucyA9IF8udG9rZW5pemUoZW52LmNvZGUsIGVudi5ncmFtbWFyKTtcblx0XHRcdF8uaG9va3MucnVuKCdhZnRlci10b2tlbml6ZScsIGVudik7XG5cdFx0XHRyZXR1cm4gVG9rZW4uc3RyaW5naWZ5KF8udXRpbC5lbmNvZGUoZW52LnRva2VucyksIGVudi5sYW5ndWFnZSk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIFRoaXMgaXMgdGhlIGhlYXJ0IG9mIFByaXNtLCBhbmQgdGhlIG1vc3QgbG93LWxldmVsIGZ1bmN0aW9uIHlvdSBjYW4gdXNlLiBJdCBhY2NlcHRzIGEgc3RyaW5nIG9mIHRleHQgYXMgaW5wdXRcblx0XHQgKiBhbmQgdGhlIGxhbmd1YWdlIGRlZmluaXRpb25zIHRvIHVzZSwgYW5kIHJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgdG9rZW5pemVkIGNvZGUuXG5cdFx0ICpcblx0XHQgKiBXaGVuIHRoZSBsYW5ndWFnZSBkZWZpbml0aW9uIGluY2x1ZGVzIG5lc3RlZCB0b2tlbnMsIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgcmVjdXJzaXZlbHkgb24gZWFjaCBvZiB0aGVzZSB0b2tlbnMuXG5cdFx0ICpcblx0XHQgKiBUaGlzIG1ldGhvZCBjb3VsZCBiZSB1c2VmdWwgaW4gb3RoZXIgY29udGV4dHMgYXMgd2VsbCwgYXMgYSB2ZXJ5IGNydWRlIHBhcnNlci5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IEEgc3RyaW5nIHdpdGggdGhlIGNvZGUgdG8gYmUgaGlnaGxpZ2h0ZWQuXG5cdFx0ICogQHBhcmFtIHtHcmFtbWFyfSBncmFtbWFyIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSB0b2tlbnMgdG8gdXNlLlxuXHRcdCAqXG5cdFx0ICogVXN1YWxseSBhIGxhbmd1YWdlIGRlZmluaXRpb24gbGlrZSBgUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cGAuXG5cdFx0ICogQHJldHVybnMge1Rva2VuU3RyZWFtfSBBbiBhcnJheSBvZiBzdHJpbmdzIGFuZCB0b2tlbnMsIGEgdG9rZW4gc3RyZWFtLlxuXHRcdCAqIEBtZW1iZXJvZiBQcmlzbVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKiBAZXhhbXBsZVxuXHRcdCAqIGxldCBjb2RlID0gYHZhciBmb28gPSAwO2A7XG5cdFx0ICogbGV0IHRva2VucyA9IFByaXNtLnRva2VuaXplKGNvZGUsIFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0KTtcblx0XHQgKiB0b2tlbnMuZm9yRWFjaCh0b2tlbiA9PiB7XG5cdFx0ICogICAgIGlmICh0b2tlbiBpbnN0YW5jZW9mIFByaXNtLlRva2VuICYmIHRva2VuLnR5cGUgPT09ICdudW1iZXInKSB7XG5cdFx0ICogICAgICAgICBjb25zb2xlLmxvZyhgRm91bmQgbnVtZXJpYyBsaXRlcmFsOiAke3Rva2VuLmNvbnRlbnR9YCk7XG5cdFx0ICogICAgIH1cblx0XHQgKiB9KTtcblx0XHQgKi9cblx0XHR0b2tlbml6ZTogZnVuY3Rpb24gKHRleHQsIGdyYW1tYXIpIHtcblx0XHRcdHZhciByZXN0ID0gZ3JhbW1hci5yZXN0O1xuXHRcdFx0aWYgKHJlc3QpIHtcblx0XHRcdFx0Zm9yICh2YXIgdG9rZW4gaW4gcmVzdCkge1xuXHRcdFx0XHRcdGdyYW1tYXJbdG9rZW5dID0gcmVzdFt0b2tlbl07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWxldGUgZ3JhbW1hci5yZXN0O1xuXHRcdFx0fVxuXG5cdFx0XHR2YXIgdG9rZW5MaXN0ID0gbmV3IExpbmtlZExpc3QoKTtcblx0XHRcdGFkZEFmdGVyKHRva2VuTGlzdCwgdG9rZW5MaXN0LmhlYWQsIHRleHQpO1xuXG5cdFx0XHRtYXRjaEdyYW1tYXIodGV4dCwgdG9rZW5MaXN0LCBncmFtbWFyLCB0b2tlbkxpc3QuaGVhZCwgMCk7XG5cblx0XHRcdHJldHVybiB0b0FycmF5KHRva2VuTGlzdCk7XG5cdFx0fSxcblxuXHRcdC8qKlxuXHRcdCAqIEBuYW1lc3BhY2Vcblx0XHQgKiBAbWVtYmVyb2YgUHJpc21cblx0XHQgKiBAcHVibGljXG5cdFx0ICovXG5cdFx0aG9va3M6IHtcblx0XHRcdGFsbDoge30sXG5cblx0XHRcdC8qKlxuXHRcdFx0ICogQWRkcyB0aGUgZ2l2ZW4gY2FsbGJhY2sgdG8gdGhlIGxpc3Qgb2YgY2FsbGJhY2tzIGZvciB0aGUgZ2l2ZW4gaG9vay5cblx0XHRcdCAqXG5cdFx0XHQgKiBUaGUgY2FsbGJhY2sgd2lsbCBiZSBpbnZva2VkIHdoZW4gdGhlIGhvb2sgaXQgaXMgcmVnaXN0ZXJlZCBmb3IgaXMgcnVuLlxuXHRcdFx0ICogSG9va3MgYXJlIHVzdWFsbHkgZGlyZWN0bHkgcnVuIGJ5IGEgaGlnaGxpZ2h0IGZ1bmN0aW9uIGJ1dCB5b3UgY2FuIGFsc28gcnVuIGhvb2tzIHlvdXJzZWxmLlxuXHRcdFx0ICpcblx0XHRcdCAqIE9uZSBjYWxsYmFjayBmdW5jdGlvbiBjYW4gYmUgcmVnaXN0ZXJlZCB0byBtdWx0aXBsZSBob29rcyBhbmQgdGhlIHNhbWUgaG9vayBtdWx0aXBsZSB0aW1lcy5cblx0XHRcdCAqXG5cdFx0XHQgKiBAcGFyYW0ge3N0cmluZ30gbmFtZSBUaGUgbmFtZSBvZiB0aGUgaG9vay5cblx0XHRcdCAqIEBwYXJhbSB7SG9va0NhbGxiYWNrfSBjYWxsYmFjayBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hpY2ggaXMgZ2l2ZW4gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuXHRcdFx0ICogQHB1YmxpY1xuXHRcdFx0ICovXG5cdFx0XHRhZGQ6IGZ1bmN0aW9uIChuYW1lLCBjYWxsYmFjaykge1xuXHRcdFx0XHR2YXIgaG9va3MgPSBfLmhvb2tzLmFsbDtcblxuXHRcdFx0XHRob29rc1tuYW1lXSA9IGhvb2tzW25hbWVdIHx8IFtdO1xuXG5cdFx0XHRcdGhvb2tzW25hbWVdLnB1c2goY2FsbGJhY2spO1xuXHRcdFx0fSxcblxuXHRcdFx0LyoqXG5cdFx0XHQgKiBSdW5zIGEgaG9vayBpbnZva2luZyBhbGwgcmVnaXN0ZXJlZCBjYWxsYmFja3Mgd2l0aCB0aGUgZ2l2ZW4gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuXHRcdFx0ICpcblx0XHRcdCAqIENhbGxiYWNrcyB3aWxsIGJlIGludm9rZWQgc3luY2hyb25vdXNseSBhbmQgaW4gdGhlIG9yZGVyIGluIHdoaWNoIHRoZXkgd2VyZSByZWdpc3RlcmVkLlxuXHRcdFx0ICpcblx0XHRcdCAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBob29rLlxuXHRcdFx0ICogQHBhcmFtIHtPYmplY3Q8c3RyaW5nLCBhbnk+fSBlbnYgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBvZiB0aGUgaG9vayBwYXNzZWQgdG8gYWxsIGNhbGxiYWNrcyByZWdpc3RlcmVkLlxuXHRcdFx0ICogQHB1YmxpY1xuXHRcdFx0ICovXG5cdFx0XHRydW46IGZ1bmN0aW9uIChuYW1lLCBlbnYpIHtcblx0XHRcdFx0dmFyIGNhbGxiYWNrcyA9IF8uaG9va3MuYWxsW25hbWVdO1xuXG5cdFx0XHRcdGlmICghY2FsbGJhY2tzIHx8ICFjYWxsYmFja3MubGVuZ3RoKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yICh2YXIgaSA9IDAsIGNhbGxiYWNrOyAoY2FsbGJhY2sgPSBjYWxsYmFja3NbaSsrXSk7KSB7XG5cdFx0XHRcdFx0Y2FsbGJhY2soZW52KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRUb2tlbjogVG9rZW5cblx0fTtcblx0X3NlbGYuUHJpc20gPSBfO1xuXG5cblx0Ly8gVHlwZXNjcmlwdCBub3RlOlxuXHQvLyBUaGUgZm9sbG93aW5nIGNhbiBiZSB1c2VkIHRvIGltcG9ydCB0aGUgVG9rZW4gdHlwZSBpbiBKU0RvYzpcblx0Ly9cblx0Ly8gICBAdHlwZWRlZiB7SW5zdGFuY2VUeXBlPGltcG9ydChcIi4vcHJpc20tY29yZVwiKVtcIlRva2VuXCJdPn0gVG9rZW5cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyB0b2tlbi5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmd9IHR5cGUgU2VlIHtAbGluayBUb2tlbiN0eXBlIHR5cGV9XG5cdCAqIEBwYXJhbSB7c3RyaW5nIHwgVG9rZW5TdHJlYW19IGNvbnRlbnQgU2VlIHtAbGluayBUb2tlbiNjb250ZW50IGNvbnRlbnR9XG5cdCAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfSBbYWxpYXNdIFRoZSBhbGlhcyhlcykgb2YgdGhlIHRva2VuLlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gW21hdGNoZWRTdHI9XCJcIl0gQSBjb3B5IG9mIHRoZSBmdWxsIHN0cmluZyB0aGlzIHRva2VuIHdhcyBjcmVhdGVkIGZyb20uXG5cdCAqIEBjbGFzc1xuXHQgKiBAZ2xvYmFsXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGZ1bmN0aW9uIFRva2VuKHR5cGUsIGNvbnRlbnQsIGFsaWFzLCBtYXRjaGVkU3RyKSB7XG5cdFx0LyoqXG5cdFx0ICogVGhlIHR5cGUgb2YgdGhlIHRva2VuLlxuXHRcdCAqXG5cdFx0ICogVGhpcyBpcyB1c3VhbGx5IHRoZSBrZXkgb2YgYSBwYXR0ZXJuIGluIGEge0BsaW5rIEdyYW1tYXJ9LlxuXHRcdCAqXG5cdFx0ICogQHR5cGUge3N0cmluZ31cblx0XHQgKiBAc2VlIEdyYW1tYXJUb2tlblxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHR0aGlzLnR5cGUgPSB0eXBlO1xuXHRcdC8qKlxuXHRcdCAqIFRoZSBzdHJpbmdzIG9yIHRva2VucyBjb250YWluZWQgYnkgdGhpcyB0b2tlbi5cblx0XHQgKlxuXHRcdCAqIFRoaXMgd2lsbCBiZSBhIHRva2VuIHN0cmVhbSBpZiB0aGUgcGF0dGVybiBtYXRjaGVkIGFsc28gZGVmaW5lZCBhbiBgaW5zaWRlYCBncmFtbWFyLlxuXHRcdCAqXG5cdFx0ICogQHR5cGUge3N0cmluZyB8IFRva2VuU3RyZWFtfVxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHR0aGlzLmNvbnRlbnQgPSBjb250ZW50O1xuXHRcdC8qKlxuXHRcdCAqIFRoZSBhbGlhcyhlcykgb2YgdGhlIHRva2VuLlxuXHRcdCAqXG5cdFx0ICogQHR5cGUge3N0cmluZ3xzdHJpbmdbXX1cblx0XHQgKiBAc2VlIEdyYW1tYXJUb2tlblxuXHRcdCAqIEBwdWJsaWNcblx0XHQgKi9cblx0XHR0aGlzLmFsaWFzID0gYWxpYXM7XG5cdFx0Ly8gQ29weSBvZiB0aGUgZnVsbCBzdHJpbmcgdGhpcyB0b2tlbiB3YXMgY3JlYXRlZCBmcm9tXG5cdFx0dGhpcy5sZW5ndGggPSAobWF0Y2hlZFN0ciB8fCAnJykubGVuZ3RoIHwgMDtcblx0fVxuXG5cdC8qKlxuXHQgKiBBIHRva2VuIHN0cmVhbSBpcyBhbiBhcnJheSBvZiBzdHJpbmdzIGFuZCB7QGxpbmsgVG9rZW4gVG9rZW59IG9iamVjdHMuXG5cdCAqXG5cdCAqIFRva2VuIHN0cmVhbXMgaGF2ZSB0byBmdWxmaWxsIGEgZmV3IHByb3BlcnRpZXMgdGhhdCBhcmUgYXNzdW1lZCBieSBtb3N0IGZ1bmN0aW9ucyAobW9zdGx5IGludGVybmFsIG9uZXMpIHRoYXQgcHJvY2Vzc1xuXHQgKiB0aGVtLlxuXHQgKlxuXHQgKiAxLiBObyBhZGphY2VudCBzdHJpbmdzLlxuXHQgKiAyLiBObyBlbXB0eSBzdHJpbmdzLlxuXHQgKlxuXHQgKiAgICBUaGUgb25seSBleGNlcHRpb24gaGVyZSBpcyB0aGUgdG9rZW4gc3RyZWFtIHRoYXQgb25seSBjb250YWlucyB0aGUgZW1wdHkgc3RyaW5nIGFuZCBub3RoaW5nIGVsc2UuXG5cdCAqXG5cdCAqIEB0eXBlZGVmIHtBcnJheTxzdHJpbmcgfCBUb2tlbj59IFRva2VuU3RyZWFtXG5cdCAqIEBnbG9iYWxcblx0ICogQHB1YmxpY1xuXHQgKi9cblxuXHQvKipcblx0ICogQ29udmVydHMgdGhlIGdpdmVuIHRva2VuIG9yIHRva2VuIHN0cmVhbSB0byBhbiBIVE1MIHJlcHJlc2VudGF0aW9uLlxuXHQgKlxuXHQgKiBUaGUgZm9sbG93aW5nIGhvb2tzIHdpbGwgYmUgcnVuOlxuXHQgKiAxLiBgd3JhcGA6IE9uIGVhY2gge0BsaW5rIFRva2VufS5cblx0ICpcblx0ICogQHBhcmFtIHtzdHJpbmcgfCBUb2tlbiB8IFRva2VuU3RyZWFtfSBvIFRoZSB0b2tlbiBvciB0b2tlbiBzdHJlYW0gdG8gYmUgY29udmVydGVkLlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgVGhlIG5hbWUgb2YgY3VycmVudCBsYW5ndWFnZS5cblx0ICogQHJldHVybnMge3N0cmluZ30gVGhlIEhUTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRva2VuIG9yIHRva2VuIHN0cmVhbS5cblx0ICogQG1lbWJlcm9mIFRva2VuXG5cdCAqIEBzdGF0aWNcblx0ICovXG5cdFRva2VuLnN0cmluZ2lmeSA9IGZ1bmN0aW9uIHN0cmluZ2lmeShvLCBsYW5ndWFnZSkge1xuXHRcdGlmICh0eXBlb2YgbyA9PSAnc3RyaW5nJykge1xuXHRcdFx0cmV0dXJuIG87XG5cdFx0fVxuXHRcdGlmIChBcnJheS5pc0FycmF5KG8pKSB7XG5cdFx0XHR2YXIgcyA9ICcnO1xuXHRcdFx0by5mb3JFYWNoKGZ1bmN0aW9uIChlKSB7XG5cdFx0XHRcdHMgKz0gc3RyaW5naWZ5KGUsIGxhbmd1YWdlKTtcblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHM7XG5cdFx0fVxuXG5cdFx0dmFyIGVudiA9IHtcblx0XHRcdHR5cGU6IG8udHlwZSxcblx0XHRcdGNvbnRlbnQ6IHN0cmluZ2lmeShvLmNvbnRlbnQsIGxhbmd1YWdlKSxcblx0XHRcdHRhZzogJ3NwYW4nLFxuXHRcdFx0Y2xhc3NlczogWyd0b2tlbicsIG8udHlwZV0sXG5cdFx0XHRhdHRyaWJ1dGVzOiB7fSxcblx0XHRcdGxhbmd1YWdlOiBsYW5ndWFnZVxuXHRcdH07XG5cblx0XHR2YXIgYWxpYXNlcyA9IG8uYWxpYXM7XG5cdFx0aWYgKGFsaWFzZXMpIHtcblx0XHRcdGlmIChBcnJheS5pc0FycmF5KGFsaWFzZXMpKSB7XG5cdFx0XHRcdEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGVudi5jbGFzc2VzLCBhbGlhc2VzKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGVudi5jbGFzc2VzLnB1c2goYWxpYXNlcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Xy5ob29rcy5ydW4oJ3dyYXAnLCBlbnYpO1xuXG5cdFx0dmFyIGF0dHJpYnV0ZXMgPSAnJztcblx0XHRmb3IgKHZhciBuYW1lIGluIGVudi5hdHRyaWJ1dGVzKSB7XG5cdFx0XHRhdHRyaWJ1dGVzICs9ICcgJyArIG5hbWUgKyAnPVwiJyArIChlbnYuYXR0cmlidXRlc1tuYW1lXSB8fCAnJykucmVwbGFjZSgvXCIvZywgJyZxdW90OycpICsgJ1wiJztcblx0XHR9XG5cblx0XHRyZXR1cm4gJzwnICsgZW52LnRhZyArICcgY2xhc3M9XCInICsgZW52LmNsYXNzZXMuam9pbignICcpICsgJ1wiJyArIGF0dHJpYnV0ZXMgKyAnPicgKyBlbnYuY29udGVudCArICc8LycgKyBlbnYudGFnICsgJz4nO1xuXHR9O1xuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge1JlZ0V4cH0gcGF0dGVyblxuXHQgKiBAcGFyYW0ge251bWJlcn0gcG9zXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0XG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9va2JlaGluZFxuXHQgKiBAcmV0dXJucyB7UmVnRXhwRXhlY0FycmF5IHwgbnVsbH1cblx0ICovXG5cdGZ1bmN0aW9uIG1hdGNoUGF0dGVybihwYXR0ZXJuLCBwb3MsIHRleHQsIGxvb2tiZWhpbmQpIHtcblx0XHRwYXR0ZXJuLmxhc3RJbmRleCA9IHBvcztcblx0XHR2YXIgbWF0Y2ggPSBwYXR0ZXJuLmV4ZWModGV4dCk7XG5cdFx0aWYgKG1hdGNoICYmIGxvb2tiZWhpbmQgJiYgbWF0Y2hbMV0pIHtcblx0XHRcdC8vIGNoYW5nZSB0aGUgbWF0Y2ggdG8gcmVtb3ZlIHRoZSB0ZXh0IG1hdGNoZWQgYnkgdGhlIFByaXNtIGxvb2tiZWhpbmQgZ3JvdXBcblx0XHRcdHZhciBsb29rYmVoaW5kTGVuZ3RoID0gbWF0Y2hbMV0ubGVuZ3RoO1xuXHRcdFx0bWF0Y2guaW5kZXggKz0gbG9va2JlaGluZExlbmd0aDtcblx0XHRcdG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UobG9va2JlaGluZExlbmd0aCk7XG5cdFx0fVxuXHRcdHJldHVybiBtYXRjaDtcblx0fVxuXG5cdC8qKlxuXHQgKiBAcGFyYW0ge3N0cmluZ30gdGV4dFxuXHQgKiBAcGFyYW0ge0xpbmtlZExpc3Q8c3RyaW5nIHwgVG9rZW4+fSB0b2tlbkxpc3Rcblx0ICogQHBhcmFtIHthbnl9IGdyYW1tYXJcblx0ICogQHBhcmFtIHtMaW5rZWRMaXN0Tm9kZTxzdHJpbmcgfCBUb2tlbj59IHN0YXJ0Tm9kZVxuXHQgKiBAcGFyYW0ge251bWJlcn0gc3RhcnRQb3Ncblx0ICogQHBhcmFtIHtSZW1hdGNoT3B0aW9uc30gW3JlbWF0Y2hdXG5cdCAqIEByZXR1cm5zIHt2b2lkfVxuXHQgKiBAcHJpdmF0ZVxuXHQgKlxuXHQgKiBAdHlwZWRlZiBSZW1hdGNoT3B0aW9uc1xuXHQgKiBAcHJvcGVydHkge3N0cmluZ30gY2F1c2Vcblx0ICogQHByb3BlcnR5IHtudW1iZXJ9IHJlYWNoXG5cdCAqL1xuXHRmdW5jdGlvbiBtYXRjaEdyYW1tYXIodGV4dCwgdG9rZW5MaXN0LCBncmFtbWFyLCBzdGFydE5vZGUsIHN0YXJ0UG9zLCByZW1hdGNoKSB7XG5cdFx0Zm9yICh2YXIgdG9rZW4gaW4gZ3JhbW1hcikge1xuXHRcdFx0aWYgKCFncmFtbWFyLmhhc093blByb3BlcnR5KHRva2VuKSB8fCAhZ3JhbW1hclt0b2tlbl0pIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHZhciBwYXR0ZXJucyA9IGdyYW1tYXJbdG9rZW5dO1xuXHRcdFx0cGF0dGVybnMgPSBBcnJheS5pc0FycmF5KHBhdHRlcm5zKSA/IHBhdHRlcm5zIDogW3BhdHRlcm5zXTtcblxuXHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBwYXR0ZXJucy5sZW5ndGg7ICsraikge1xuXHRcdFx0XHRpZiAocmVtYXRjaCAmJiByZW1hdGNoLmNhdXNlID09IHRva2VuICsgJywnICsgaikge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHZhciBwYXR0ZXJuT2JqID0gcGF0dGVybnNbal07XG5cdFx0XHRcdHZhciBpbnNpZGUgPSBwYXR0ZXJuT2JqLmluc2lkZTtcblx0XHRcdFx0dmFyIGxvb2tiZWhpbmQgPSAhIXBhdHRlcm5PYmoubG9va2JlaGluZDtcblx0XHRcdFx0dmFyIGdyZWVkeSA9ICEhcGF0dGVybk9iai5ncmVlZHk7XG5cdFx0XHRcdHZhciBhbGlhcyA9IHBhdHRlcm5PYmouYWxpYXM7XG5cblx0XHRcdFx0aWYgKGdyZWVkeSAmJiAhcGF0dGVybk9iai5wYXR0ZXJuLmdsb2JhbCkge1xuXHRcdFx0XHRcdC8vIFdpdGhvdXQgdGhlIGdsb2JhbCBmbGFnLCBsYXN0SW5kZXggd29uJ3Qgd29ya1xuXHRcdFx0XHRcdHZhciBmbGFncyA9IHBhdHRlcm5PYmoucGF0dGVybi50b1N0cmluZygpLm1hdGNoKC9baW1zdXldKiQvKVswXTtcblx0XHRcdFx0XHRwYXR0ZXJuT2JqLnBhdHRlcm4gPSBSZWdFeHAocGF0dGVybk9iai5wYXR0ZXJuLnNvdXJjZSwgZmxhZ3MgKyAnZycpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0LyoqIEB0eXBlIHtSZWdFeHB9ICovXG5cdFx0XHRcdHZhciBwYXR0ZXJuID0gcGF0dGVybk9iai5wYXR0ZXJuIHx8IHBhdHRlcm5PYmo7XG5cblx0XHRcdFx0Zm9yICggLy8gaXRlcmF0ZSB0aGUgdG9rZW4gbGlzdCBhbmQga2VlcCB0cmFjayBvZiB0aGUgY3VycmVudCB0b2tlbi9zdHJpbmcgcG9zaXRpb25cblx0XHRcdFx0XHR2YXIgY3VycmVudE5vZGUgPSBzdGFydE5vZGUubmV4dCwgcG9zID0gc3RhcnRQb3M7XG5cdFx0XHRcdFx0Y3VycmVudE5vZGUgIT09IHRva2VuTGlzdC50YWlsO1xuXHRcdFx0XHRcdHBvcyArPSBjdXJyZW50Tm9kZS52YWx1ZS5sZW5ndGgsIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUubmV4dFxuXHRcdFx0XHQpIHtcblxuXHRcdFx0XHRcdGlmIChyZW1hdGNoICYmIHBvcyA+PSByZW1hdGNoLnJlYWNoKSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHR2YXIgc3RyID0gY3VycmVudE5vZGUudmFsdWU7XG5cblx0XHRcdFx0XHRpZiAodG9rZW5MaXN0Lmxlbmd0aCA+IHRleHQubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHQvLyBTb21ldGhpbmcgd2VudCB0ZXJyaWJseSB3cm9uZywgQUJPUlQsIEFCT1JUIVxuXHRcdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGlmIChzdHIgaW5zdGFuY2VvZiBUb2tlbikge1xuXHRcdFx0XHRcdFx0Y29udGludWU7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dmFyIHJlbW92ZUNvdW50ID0gMTsgLy8gdGhpcyBpcyB0aGUgdG8gcGFyYW1ldGVyIG9mIHJlbW92ZUJldHdlZW5cblx0XHRcdFx0XHR2YXIgbWF0Y2g7XG5cblx0XHRcdFx0XHRpZiAoZ3JlZWR5KSB7XG5cdFx0XHRcdFx0XHRtYXRjaCA9IG1hdGNoUGF0dGVybihwYXR0ZXJuLCBwb3MsIHRleHQsIGxvb2tiZWhpbmQpO1xuXHRcdFx0XHRcdFx0aWYgKCFtYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0dmFyIGZyb20gPSBtYXRjaC5pbmRleDtcblx0XHRcdFx0XHRcdHZhciB0byA9IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoO1xuXHRcdFx0XHRcdFx0dmFyIHAgPSBwb3M7XG5cblx0XHRcdFx0XHRcdC8vIGZpbmQgdGhlIG5vZGUgdGhhdCBjb250YWlucyB0aGUgbWF0Y2hcblx0XHRcdFx0XHRcdHAgKz0gY3VycmVudE5vZGUudmFsdWUubGVuZ3RoO1xuXHRcdFx0XHRcdFx0d2hpbGUgKGZyb20gPj0gcCkge1xuXHRcdFx0XHRcdFx0XHRjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLm5leHQ7XG5cdFx0XHRcdFx0XHRcdHAgKz0gY3VycmVudE5vZGUudmFsdWUubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gYWRqdXN0IHBvcyAoYW5kIHApXG5cdFx0XHRcdFx0XHRwIC09IGN1cnJlbnROb2RlLnZhbHVlLmxlbmd0aDtcblx0XHRcdFx0XHRcdHBvcyA9IHA7XG5cblx0XHRcdFx0XHRcdC8vIHRoZSBjdXJyZW50IG5vZGUgaXMgYSBUb2tlbiwgdGhlbiB0aGUgbWF0Y2ggc3RhcnRzIGluc2lkZSBhbm90aGVyIFRva2VuLCB3aGljaCBpcyBpbnZhbGlkXG5cdFx0XHRcdFx0XHRpZiAoY3VycmVudE5vZGUudmFsdWUgaW5zdGFuY2VvZiBUb2tlbikge1xuXHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gZmluZCB0aGUgbGFzdCBub2RlIHdoaWNoIGlzIGFmZmVjdGVkIGJ5IHRoaXMgbWF0Y2hcblx0XHRcdFx0XHRcdGZvciAoXG5cdFx0XHRcdFx0XHRcdHZhciBrID0gY3VycmVudE5vZGU7XG5cdFx0XHRcdFx0XHRcdGsgIT09IHRva2VuTGlzdC50YWlsICYmIChwIDwgdG8gfHwgdHlwZW9mIGsudmFsdWUgPT09ICdzdHJpbmcnKTtcblx0XHRcdFx0XHRcdFx0ayA9IGsubmV4dFxuXHRcdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRcdHJlbW92ZUNvdW50Kys7XG5cdFx0XHRcdFx0XHRcdHAgKz0gay52YWx1ZS5sZW5ndGg7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZW1vdmVDb3VudC0tO1xuXG5cdFx0XHRcdFx0XHQvLyByZXBsYWNlIHdpdGggdGhlIG5ldyBtYXRjaFxuXHRcdFx0XHRcdFx0c3RyID0gdGV4dC5zbGljZShwb3MsIHApO1xuXHRcdFx0XHRcdFx0bWF0Y2guaW5kZXggLT0gcG9zO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRtYXRjaCA9IG1hdGNoUGF0dGVybihwYXR0ZXJuLCAwLCBzdHIsIGxvb2tiZWhpbmQpO1xuXHRcdFx0XHRcdFx0aWYgKCFtYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVkZWNsYXJlXG5cdFx0XHRcdFx0dmFyIGZyb20gPSBtYXRjaC5pbmRleDtcblx0XHRcdFx0XHR2YXIgbWF0Y2hTdHIgPSBtYXRjaFswXTtcblx0XHRcdFx0XHR2YXIgYmVmb3JlID0gc3RyLnNsaWNlKDAsIGZyb20pO1xuXHRcdFx0XHRcdHZhciBhZnRlciA9IHN0ci5zbGljZShmcm9tICsgbWF0Y2hTdHIubGVuZ3RoKTtcblxuXHRcdFx0XHRcdHZhciByZWFjaCA9IHBvcyArIHN0ci5sZW5ndGg7XG5cdFx0XHRcdFx0aWYgKHJlbWF0Y2ggJiYgcmVhY2ggPiByZW1hdGNoLnJlYWNoKSB7XG5cdFx0XHRcdFx0XHRyZW1hdGNoLnJlYWNoID0gcmVhY2g7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0dmFyIHJlbW92ZUZyb20gPSBjdXJyZW50Tm9kZS5wcmV2O1xuXG5cdFx0XHRcdFx0aWYgKGJlZm9yZSkge1xuXHRcdFx0XHRcdFx0cmVtb3ZlRnJvbSA9IGFkZEFmdGVyKHRva2VuTGlzdCwgcmVtb3ZlRnJvbSwgYmVmb3JlKTtcblx0XHRcdFx0XHRcdHBvcyArPSBiZWZvcmUubGVuZ3RoO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJlbW92ZVJhbmdlKHRva2VuTGlzdCwgcmVtb3ZlRnJvbSwgcmVtb3ZlQ291bnQpO1xuXG5cdFx0XHRcdFx0dmFyIHdyYXBwZWQgPSBuZXcgVG9rZW4odG9rZW4sIGluc2lkZSA/IF8udG9rZW5pemUobWF0Y2hTdHIsIGluc2lkZSkgOiBtYXRjaFN0ciwgYWxpYXMsIG1hdGNoU3RyKTtcblx0XHRcdFx0XHRjdXJyZW50Tm9kZSA9IGFkZEFmdGVyKHRva2VuTGlzdCwgcmVtb3ZlRnJvbSwgd3JhcHBlZCk7XG5cblx0XHRcdFx0XHRpZiAoYWZ0ZXIpIHtcblx0XHRcdFx0XHRcdGFkZEFmdGVyKHRva2VuTGlzdCwgY3VycmVudE5vZGUsIGFmdGVyKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRpZiAocmVtb3ZlQ291bnQgPiAxKSB7XG5cdFx0XHRcdFx0XHQvLyBhdCBsZWFzdCBvbmUgVG9rZW4gb2JqZWN0IHdhcyByZW1vdmVkLCBzbyB3ZSBoYXZlIHRvIGRvIHNvbWUgcmVtYXRjaGluZ1xuXHRcdFx0XHRcdFx0Ly8gdGhpcyBjYW4gb25seSBoYXBwZW4gaWYgdGhlIGN1cnJlbnQgcGF0dGVybiBpcyBncmVlZHlcblxuXHRcdFx0XHRcdFx0LyoqIEB0eXBlIHtSZW1hdGNoT3B0aW9uc30gKi9cblx0XHRcdFx0XHRcdHZhciBuZXN0ZWRSZW1hdGNoID0ge1xuXHRcdFx0XHRcdFx0XHRjYXVzZTogdG9rZW4gKyAnLCcgKyBqLFxuXHRcdFx0XHRcdFx0XHRyZWFjaDogcmVhY2hcblx0XHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0XHRtYXRjaEdyYW1tYXIodGV4dCwgdG9rZW5MaXN0LCBncmFtbWFyLCBjdXJyZW50Tm9kZS5wcmV2LCBwb3MsIG5lc3RlZFJlbWF0Y2gpO1xuXG5cdFx0XHRcdFx0XHQvLyB0aGUgcmVhY2ggbWlnaHQgaGF2ZSBiZWVuIGV4dGVuZGVkIGJlY2F1c2Ugb2YgdGhlIHJlbWF0Y2hpbmdcblx0XHRcdFx0XHRcdGlmIChyZW1hdGNoICYmIG5lc3RlZFJlbWF0Y2gucmVhY2ggPiByZW1hdGNoLnJlYWNoKSB7XG5cdFx0XHRcdFx0XHRcdHJlbWF0Y2gucmVhY2ggPSBuZXN0ZWRSZW1hdGNoLnJlYWNoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBAdHlwZWRlZiBMaW5rZWRMaXN0Tm9kZVxuXHQgKiBAcHJvcGVydHkge1R9IHZhbHVlXG5cdCAqIEBwcm9wZXJ0eSB7TGlua2VkTGlzdE5vZGU8VD4gfCBudWxsfSBwcmV2IFRoZSBwcmV2aW91cyBub2RlLlxuXHQgKiBAcHJvcGVydHkge0xpbmtlZExpc3ROb2RlPFQ+IHwgbnVsbH0gbmV4dCBUaGUgbmV4dCBub2RlLlxuXHQgKiBAdGVtcGxhdGUgVFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblxuXHQvKipcblx0ICogQHRlbXBsYXRlIFRcblx0ICogQHByaXZhdGVcblx0ICovXG5cdGZ1bmN0aW9uIExpbmtlZExpc3QoKSB7XG5cdFx0LyoqIEB0eXBlIHtMaW5rZWRMaXN0Tm9kZTxUPn0gKi9cblx0XHR2YXIgaGVhZCA9IHsgdmFsdWU6IG51bGwsIHByZXY6IG51bGwsIG5leHQ6IG51bGwgfTtcblx0XHQvKiogQHR5cGUge0xpbmtlZExpc3ROb2RlPFQ+fSAqL1xuXHRcdHZhciB0YWlsID0geyB2YWx1ZTogbnVsbCwgcHJldjogaGVhZCwgbmV4dDogbnVsbCB9O1xuXHRcdGhlYWQubmV4dCA9IHRhaWw7XG5cblx0XHQvKiogQHR5cGUge0xpbmtlZExpc3ROb2RlPFQ+fSAqL1xuXHRcdHRoaXMuaGVhZCA9IGhlYWQ7XG5cdFx0LyoqIEB0eXBlIHtMaW5rZWRMaXN0Tm9kZTxUPn0gKi9cblx0XHR0aGlzLnRhaWwgPSB0YWlsO1xuXHRcdHRoaXMubGVuZ3RoID0gMDtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGRzIGEgbmV3IG5vZGUgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUgdG8gdGhlIGxpc3QuXG5cdCAqXG5cdCAqIEBwYXJhbSB7TGlua2VkTGlzdDxUPn0gbGlzdFxuXHQgKiBAcGFyYW0ge0xpbmtlZExpc3ROb2RlPFQ+fSBub2RlXG5cdCAqIEBwYXJhbSB7VH0gdmFsdWVcblx0ICogQHJldHVybnMge0xpbmtlZExpc3ROb2RlPFQ+fSBUaGUgYWRkZWQgbm9kZS5cblx0ICogQHRlbXBsYXRlIFRcblx0ICovXG5cdGZ1bmN0aW9uIGFkZEFmdGVyKGxpc3QsIG5vZGUsIHZhbHVlKSB7XG5cdFx0Ly8gYXNzdW1lcyB0aGF0IG5vZGUgIT0gbGlzdC50YWlsICYmIHZhbHVlcy5sZW5ndGggPj0gMFxuXHRcdHZhciBuZXh0ID0gbm9kZS5uZXh0O1xuXG5cdFx0dmFyIG5ld05vZGUgPSB7IHZhbHVlOiB2YWx1ZSwgcHJldjogbm9kZSwgbmV4dDogbmV4dCB9O1xuXHRcdG5vZGUubmV4dCA9IG5ld05vZGU7XG5cdFx0bmV4dC5wcmV2ID0gbmV3Tm9kZTtcblx0XHRsaXN0Lmxlbmd0aCsrO1xuXG5cdFx0cmV0dXJuIG5ld05vZGU7XG5cdH1cblx0LyoqXG5cdCAqIFJlbW92ZXMgYGNvdW50YCBub2RlcyBhZnRlciB0aGUgZ2l2ZW4gbm9kZS4gVGhlIGdpdmVuIG5vZGUgd2lsbCBub3QgYmUgcmVtb3ZlZC5cblx0ICpcblx0ICogQHBhcmFtIHtMaW5rZWRMaXN0PFQ+fSBsaXN0XG5cdCAqIEBwYXJhbSB7TGlua2VkTGlzdE5vZGU8VD59IG5vZGVcblx0ICogQHBhcmFtIHtudW1iZXJ9IGNvdW50XG5cdCAqIEB0ZW1wbGF0ZSBUXG5cdCAqL1xuXHRmdW5jdGlvbiByZW1vdmVSYW5nZShsaXN0LCBub2RlLCBjb3VudCkge1xuXHRcdHZhciBuZXh0ID0gbm9kZS5uZXh0O1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY291bnQgJiYgbmV4dCAhPT0gbGlzdC50YWlsOyBpKyspIHtcblx0XHRcdG5leHQgPSBuZXh0Lm5leHQ7XG5cdFx0fVxuXHRcdG5vZGUubmV4dCA9IG5leHQ7XG5cdFx0bmV4dC5wcmV2ID0gbm9kZTtcblx0XHRsaXN0Lmxlbmd0aCAtPSBpO1xuXHR9XG5cdC8qKlxuXHQgKiBAcGFyYW0ge0xpbmtlZExpc3Q8VD59IGxpc3Rcblx0ICogQHJldHVybnMge1RbXX1cblx0ICogQHRlbXBsYXRlIFRcblx0ICovXG5cdGZ1bmN0aW9uIHRvQXJyYXkobGlzdCkge1xuXHRcdHZhciBhcnJheSA9IFtdO1xuXHRcdHZhciBub2RlID0gbGlzdC5oZWFkLm5leHQ7XG5cdFx0d2hpbGUgKG5vZGUgIT09IGxpc3QudGFpbCkge1xuXHRcdFx0YXJyYXkucHVzaChub2RlLnZhbHVlKTtcblx0XHRcdG5vZGUgPSBub2RlLm5leHQ7XG5cdFx0fVxuXHRcdHJldHVybiBhcnJheTtcblx0fVxuXG5cblx0aWYgKCFfc2VsZi5kb2N1bWVudCkge1xuXHRcdGlmICghX3NlbGYuYWRkRXZlbnRMaXN0ZW5lcikge1xuXHRcdFx0Ly8gaW4gTm9kZS5qc1xuXHRcdFx0cmV0dXJuIF87XG5cdFx0fVxuXG5cdFx0aWYgKCFfLmRpc2FibGVXb3JrZXJNZXNzYWdlSGFuZGxlcikge1xuXHRcdFx0Ly8gSW4gd29ya2VyXG5cdFx0XHRfc2VsZi5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgZnVuY3Rpb24gKGV2dCkge1xuXHRcdFx0XHR2YXIgbWVzc2FnZSA9IEpTT04ucGFyc2UoZXZ0LmRhdGEpO1xuXHRcdFx0XHR2YXIgbGFuZyA9IG1lc3NhZ2UubGFuZ3VhZ2U7XG5cdFx0XHRcdHZhciBjb2RlID0gbWVzc2FnZS5jb2RlO1xuXHRcdFx0XHR2YXIgaW1tZWRpYXRlQ2xvc2UgPSBtZXNzYWdlLmltbWVkaWF0ZUNsb3NlO1xuXG5cdFx0XHRcdF9zZWxmLnBvc3RNZXNzYWdlKF8uaGlnaGxpZ2h0KGNvZGUsIF8ubGFuZ3VhZ2VzW2xhbmddLCBsYW5nKSk7XG5cdFx0XHRcdGlmIChpbW1lZGlhdGVDbG9zZSkge1xuXHRcdFx0XHRcdF9zZWxmLmNsb3NlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sIGZhbHNlKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gXztcblx0fVxuXG5cdC8vIEdldCBjdXJyZW50IHNjcmlwdCBhbmQgaGlnaGxpZ2h0XG5cdHZhciBzY3JpcHQgPSBfLnV0aWwuY3VycmVudFNjcmlwdCgpO1xuXG5cdGlmIChzY3JpcHQpIHtcblx0XHRfLmZpbGVuYW1lID0gc2NyaXB0LnNyYztcblxuXHRcdGlmIChzY3JpcHQuaGFzQXR0cmlidXRlKCdkYXRhLW1hbnVhbCcpKSB7XG5cdFx0XHRfLm1hbnVhbCA9IHRydWU7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gaGlnaGxpZ2h0QXV0b21hdGljYWxseUNhbGxiYWNrKCkge1xuXHRcdGlmICghXy5tYW51YWwpIHtcblx0XHRcdF8uaGlnaGxpZ2h0QWxsKCk7XG5cdFx0fVxuXHR9XG5cblx0aWYgKCFfLm1hbnVhbCkge1xuXHRcdC8vIElmIHRoZSBkb2N1bWVudCBzdGF0ZSBpcyBcImxvYWRpbmdcIiwgdGhlbiB3ZSdsbCB1c2UgRE9NQ29udGVudExvYWRlZC5cblx0XHQvLyBJZiB0aGUgZG9jdW1lbnQgc3RhdGUgaXMgXCJpbnRlcmFjdGl2ZVwiIGFuZCB0aGUgcHJpc20uanMgc2NyaXB0IGlzIGRlZmVycmVkLCB0aGVuIHdlJ2xsIGFsc28gdXNlIHRoZVxuXHRcdC8vIERPTUNvbnRlbnRMb2FkZWQgZXZlbnQgYmVjYXVzZSB0aGVyZSBtaWdodCBiZSBzb21lIHBsdWdpbnMgb3IgbGFuZ3VhZ2VzIHdoaWNoIGhhdmUgYWxzbyBiZWVuIGRlZmVycmVkIGFuZCB0aGV5XG5cdFx0Ly8gbWlnaHQgdGFrZSBsb25nZXIgb25lIGFuaW1hdGlvbiBmcmFtZSB0byBleGVjdXRlIHdoaWNoIGNhbiBjcmVhdGUgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSBvbmx5IHNvbWUgcGx1Z2lucyBoYXZlXG5cdFx0Ly8gYmVlbiBsb2FkZWQgd2hlbiBQcmlzbS5oaWdobGlnaHRBbGwoKSBpcyBleGVjdXRlZCwgZGVwZW5kaW5nIG9uIGhvdyBmYXN0IHJlc291cmNlcyBhcmUgbG9hZGVkLlxuXHRcdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vUHJpc21KUy9wcmlzbS9pc3N1ZXMvMjEwMlxuXHRcdHZhciByZWFkeVN0YXRlID0gZG9jdW1lbnQucmVhZHlTdGF0ZTtcblx0XHRpZiAocmVhZHlTdGF0ZSA9PT0gJ2xvYWRpbmcnIHx8IHJlYWR5U3RhdGUgPT09ICdpbnRlcmFjdGl2ZScgJiYgc2NyaXB0ICYmIHNjcmlwdC5kZWZlcikge1xuXHRcdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGhpZ2hsaWdodEF1dG9tYXRpY2FsbHlDYWxsYmFjayk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICh3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKSB7XG5cdFx0XHRcdHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoaGlnaGxpZ2h0QXV0b21hdGljYWxseUNhbGxiYWNrKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHdpbmRvdy5zZXRUaW1lb3V0KGhpZ2hsaWdodEF1dG9tYXRpY2FsbHlDYWxsYmFjaywgMTYpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBfO1xuXG59KF9zZWxmKSk7XG5cbmlmICh0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyAmJiBtb2R1bGUuZXhwb3J0cykge1xuXHRtb2R1bGUuZXhwb3J0cyA9IFByaXNtO1xufVxuXG4vLyBoYWNrIGZvciBjb21wb25lbnRzIHRvIHdvcmsgY29ycmVjdGx5IGluIG5vZGUuanNcbmlmICh0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJykge1xuXHRnbG9iYWwuUHJpc20gPSBQcmlzbTtcbn1cblxuLy8gc29tZSBhZGRpdGlvbmFsIGRvY3VtZW50YXRpb24vdHlwZXNcblxuLyoqXG4gKiBUaGUgZXhwYW5zaW9uIG9mIGEgc2ltcGxlIGBSZWdFeHBgIGxpdGVyYWwgdG8gc3VwcG9ydCBhZGRpdGlvbmFsIHByb3BlcnRpZXMuXG4gKlxuICogQHR5cGVkZWYgR3JhbW1hclRva2VuXG4gKiBAcHJvcGVydHkge1JlZ0V4cH0gcGF0dGVybiBUaGUgcmVndWxhciBleHByZXNzaW9uIG9mIHRoZSB0b2tlbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2xvb2tiZWhpbmQ9ZmFsc2VdIElmIGB0cnVlYCwgdGhlbiB0aGUgZmlyc3QgY2FwdHVyaW5nIGdyb3VwIG9mIGBwYXR0ZXJuYCB3aWxsIChlZmZlY3RpdmVseSlcbiAqIGJlaGF2ZSBhcyBhIGxvb2tiZWhpbmQgZ3JvdXAgbWVhbmluZyB0aGF0IHRoZSBjYXB0dXJlZCB0ZXh0IHdpbGwgbm90IGJlIHBhcnQgb2YgdGhlIG1hdGNoZWQgdGV4dCBvZiB0aGUgbmV3IHRva2VuLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbZ3JlZWR5PWZhbHNlXSBXaGV0aGVyIHRoZSB0b2tlbiBpcyBncmVlZHkuXG4gKiBAcHJvcGVydHkge3N0cmluZ3xzdHJpbmdbXX0gW2FsaWFzXSBBbiBvcHRpb25hbCBhbGlhcyBvciBsaXN0IG9mIGFsaWFzZXMuXG4gKiBAcHJvcGVydHkge0dyYW1tYXJ9IFtpbnNpZGVdIFRoZSBuZXN0ZWQgZ3JhbW1hciBvZiB0aGlzIHRva2VuLlxuICpcbiAqIFRoZSBgaW5zaWRlYCBncmFtbWFyIHdpbGwgYmUgdXNlZCB0byB0b2tlbml6ZSB0aGUgdGV4dCB2YWx1ZSBvZiBlYWNoIHRva2VuIG9mIHRoaXMga2luZC5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIG1ha2UgbmVzdGVkIGFuZCBldmVuIHJlY3Vyc2l2ZSBsYW5ndWFnZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBOb3RlOiBUaGlzIGNhbiBjYXVzZSBpbmZpbml0ZSByZWN1cnNpb24uIEJlIGNhcmVmdWwgd2hlbiB5b3UgZW1iZWQgZGlmZmVyZW50IGxhbmd1YWdlcyBvciBldmVuIHRoZSBzYW1lIGxhbmd1YWdlIGludG9cbiAqIGVhY2ggYW5vdGhlci5cbiAqIEBnbG9iYWxcbiAqIEBwdWJsaWNcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIEdyYW1tYXJcbiAqIEB0eXBlIHtPYmplY3Q8c3RyaW5nLCBSZWdFeHAgfCBHcmFtbWFyVG9rZW4gfCBBcnJheTxSZWdFeHAgfCBHcmFtbWFyVG9rZW4+Pn1cbiAqIEBwcm9wZXJ0eSB7R3JhbW1hcn0gW3Jlc3RdIEFuIG9wdGlvbmFsIGdyYW1tYXIgb2JqZWN0IHRoYXQgd2lsbCBiZSBhcHBlbmRlZCB0byB0aGlzIGdyYW1tYXIuXG4gKiBAZ2xvYmFsXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHdoaWNoIHdpbGwgaW52b2tlZCBhZnRlciBhbiBlbGVtZW50IHdhcyBzdWNjZXNzZnVsbHkgaGlnaGxpZ2h0ZWQuXG4gKlxuICogQGNhbGxiYWNrIEhpZ2hsaWdodENhbGxiYWNrXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGVsZW1lbnQgVGhlIGVsZW1lbnQgc3VjY2Vzc2Z1bGx5IGhpZ2hsaWdodGVkLlxuICogQHJldHVybnMge3ZvaWR9XG4gKiBAZ2xvYmFsXG4gKiBAcHVibGljXG4gKi9cblxuLyoqXG4gKiBAY2FsbGJhY2sgSG9va0NhbGxiYWNrXG4gKiBAcGFyYW0ge09iamVjdDxzdHJpbmcsIGFueT59IGVudiBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIG9mIHRoZSBob29rLlxuICogQHJldHVybnMge3ZvaWR9XG4gKiBAZ2xvYmFsXG4gKiBAcHVibGljXG4gKi9cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/prismjs/components/prism-core.js\n")},"../../node_modules/property-information/find.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar normalize = __webpack_require__(\"../../node_modules/property-information/normalize.js\")\nvar DefinedInfo = __webpack_require__(\"../../node_modules/property-information/lib/util/defined-info.js\")\nvar Info = __webpack_require__(\"../../node_modules/property-information/lib/util/info.js\")\n\nvar data = 'data'\n\nmodule.exports = find\n\nvar valid = /^data[-\\w.:]+$/i\nvar dash = /-[a-z]/g\nvar cap = /[A-Z]/g\n\nfunction find(schema, value) {\n var normal = normalize(value)\n var prop = value\n var Type = Info\n\n if (normal in schema.normal) {\n return schema.property[schema.normal[normal]]\n }\n\n if (normal.length > 4 && normal.slice(0, 4) === data && valid.test(value)) {\n // Attribute or property.\n if (value.charAt(4) === '-') {\n prop = datasetToProperty(value)\n } else {\n value = datasetToAttribute(value)\n }\n\n Type = DefinedInfo\n }\n\n return new Type(prop, value)\n}\n\nfunction datasetToProperty(attribute) {\n var value = attribute.slice(5).replace(dash, camelcase)\n return data + value.charAt(0).toUpperCase() + value.slice(1)\n}\n\nfunction datasetToAttribute(property) {\n var value = property.slice(4)\n\n if (dash.test(value)) {\n return property\n }\n\n value = value.replace(cap, kebab)\n\n if (value.charAt(0) !== '-') {\n value = '-' + value\n }\n\n return data + value\n}\n\nfunction kebab($0) {\n return '-' + $0.toLowerCase()\n}\n\nfunction camelcase($0) {\n return $0.charAt(1).toUpperCase()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9maW5kLmpzPzFkZGEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosZ0JBQWdCLG1CQUFPLENBQUMsc0RBQWE7QUFDckMsa0JBQWtCLG1CQUFPLENBQUMsa0VBQXlCO0FBQ25ELFdBQVcsbUJBQU8sQ0FBQywwREFBaUI7O0FBRXBDOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vZmluZC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgbm9ybWFsaXplID0gcmVxdWlyZSgnLi9ub3JtYWxpemUnKVxudmFyIERlZmluZWRJbmZvID0gcmVxdWlyZSgnLi9saWIvdXRpbC9kZWZpbmVkLWluZm8nKVxudmFyIEluZm8gPSByZXF1aXJlKCcuL2xpYi91dGlsL2luZm8nKVxuXG52YXIgZGF0YSA9ICdkYXRhJ1xuXG5tb2R1bGUuZXhwb3J0cyA9IGZpbmRcblxudmFyIHZhbGlkID0gL15kYXRhWy1cXHcuOl0rJC9pXG52YXIgZGFzaCA9IC8tW2Etel0vZ1xudmFyIGNhcCA9IC9bQS1aXS9nXG5cbmZ1bmN0aW9uIGZpbmQoc2NoZW1hLCB2YWx1ZSkge1xuICB2YXIgbm9ybWFsID0gbm9ybWFsaXplKHZhbHVlKVxuICB2YXIgcHJvcCA9IHZhbHVlXG4gIHZhciBUeXBlID0gSW5mb1xuXG4gIGlmIChub3JtYWwgaW4gc2NoZW1hLm5vcm1hbCkge1xuICAgIHJldHVybiBzY2hlbWEucHJvcGVydHlbc2NoZW1hLm5vcm1hbFtub3JtYWxdXVxuICB9XG5cbiAgaWYgKG5vcm1hbC5sZW5ndGggPiA0ICYmIG5vcm1hbC5zbGljZSgwLCA0KSA9PT0gZGF0YSAmJiB2YWxpZC50ZXN0KHZhbHVlKSkge1xuICAgIC8vIEF0dHJpYnV0ZSBvciBwcm9wZXJ0eS5cbiAgICBpZiAodmFsdWUuY2hhckF0KDQpID09PSAnLScpIHtcbiAgICAgIHByb3AgPSBkYXRhc2V0VG9Qcm9wZXJ0eSh2YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBkYXRhc2V0VG9BdHRyaWJ1dGUodmFsdWUpXG4gICAgfVxuXG4gICAgVHlwZSA9IERlZmluZWRJbmZvXG4gIH1cblxuICByZXR1cm4gbmV3IFR5cGUocHJvcCwgdmFsdWUpXG59XG5cbmZ1bmN0aW9uIGRhdGFzZXRUb1Byb3BlcnR5KGF0dHJpYnV0ZSkge1xuICB2YXIgdmFsdWUgPSBhdHRyaWJ1dGUuc2xpY2UoNSkucmVwbGFjZShkYXNoLCBjYW1lbGNhc2UpXG4gIHJldHVybiBkYXRhICsgdmFsdWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB2YWx1ZS5zbGljZSgxKVxufVxuXG5mdW5jdGlvbiBkYXRhc2V0VG9BdHRyaWJ1dGUocHJvcGVydHkpIHtcbiAgdmFyIHZhbHVlID0gcHJvcGVydHkuc2xpY2UoNClcblxuICBpZiAoZGFzaC50ZXN0KHZhbHVlKSkge1xuICAgIHJldHVybiBwcm9wZXJ0eVxuICB9XG5cbiAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKGNhcCwga2ViYWIpXG5cbiAgaWYgKHZhbHVlLmNoYXJBdCgwKSAhPT0gJy0nKSB7XG4gICAgdmFsdWUgPSAnLScgKyB2YWx1ZVxuICB9XG5cbiAgcmV0dXJuIGRhdGEgKyB2YWx1ZVxufVxuXG5mdW5jdGlvbiBrZWJhYigkMCkge1xuICByZXR1cm4gJy0nICsgJDAudG9Mb3dlckNhc2UoKVxufVxuXG5mdW5jdGlvbiBjYW1lbGNhc2UoJDApIHtcbiAgcmV0dXJuICQwLmNoYXJBdCgxKS50b1VwcGVyQ2FzZSgpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/find.js\n")},"../../node_modules/property-information/html.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar merge = __webpack_require__("../../node_modules/property-information/lib/util/merge.js")\nvar xlink = __webpack_require__("../../node_modules/property-information/lib/xlink.js")\nvar xml = __webpack_require__("../../node_modules/property-information/lib/xml.js")\nvar xmlns = __webpack_require__("../../node_modules/property-information/lib/xmlns.js")\nvar aria = __webpack_require__("../../node_modules/property-information/lib/aria.js")\nvar html = __webpack_require__("../../node_modules/property-information/lib/html.js")\n\nmodule.exports = merge([xml, xlink, xmlns, aria, html])\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9odG1sLmpzPzc1MGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosWUFBWSxtQkFBTyxDQUFDLDJEQUFrQjtBQUN0QyxZQUFZLG1CQUFPLENBQUMsc0RBQWE7QUFDakMsVUFBVSxtQkFBTyxDQUFDLG9EQUFXO0FBQzdCLFlBQVksbUJBQU8sQ0FBQyxzREFBYTtBQUNqQyxXQUFXLG1CQUFPLENBQUMscURBQVk7QUFDL0IsV0FBVyxtQkFBTyxDQUFDLHFEQUFZOztBQUUvQiIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vaHRtbC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgbWVyZ2UgPSByZXF1aXJlKCcuL2xpYi91dGlsL21lcmdlJylcbnZhciB4bGluayA9IHJlcXVpcmUoJy4vbGliL3hsaW5rJylcbnZhciB4bWwgPSByZXF1aXJlKCcuL2xpYi94bWwnKVxudmFyIHhtbG5zID0gcmVxdWlyZSgnLi9saWIveG1sbnMnKVxudmFyIGFyaWEgPSByZXF1aXJlKCcuL2xpYi9hcmlhJylcbnZhciBodG1sID0gcmVxdWlyZSgnLi9saWIvaHRtbCcpXG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2UoW3htbCwgeGxpbmssIHhtbG5zLCBhcmlhLCBodG1sXSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/property-information/html.js\n')},"../../node_modules/property-information/lib/aria.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar types = __webpack_require__(\"../../node_modules/property-information/lib/util/types.js\")\nvar create = __webpack_require__(\"../../node_modules/property-information/lib/util/create.js\")\n\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\n\nmodule.exports = create({\n transform: ariaTransform,\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: booleanish,\n ariaAutoComplete: null,\n ariaBusy: booleanish,\n ariaChecked: booleanish,\n ariaColCount: number,\n ariaColIndex: number,\n ariaColSpan: number,\n ariaControls: spaceSeparated,\n ariaCurrent: null,\n ariaDescribedBy: spaceSeparated,\n ariaDetails: null,\n ariaDisabled: booleanish,\n ariaDropEffect: spaceSeparated,\n ariaErrorMessage: null,\n ariaExpanded: booleanish,\n ariaFlowTo: spaceSeparated,\n ariaGrabbed: booleanish,\n ariaHasPopup: null,\n ariaHidden: booleanish,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: spaceSeparated,\n ariaLevel: number,\n ariaLive: null,\n ariaModal: booleanish,\n ariaMultiLine: booleanish,\n ariaMultiSelectable: booleanish,\n ariaOrientation: null,\n ariaOwns: spaceSeparated,\n ariaPlaceholder: null,\n ariaPosInSet: number,\n ariaPressed: booleanish,\n ariaReadOnly: booleanish,\n ariaRelevant: null,\n ariaRequired: booleanish,\n ariaRoleDescription: spaceSeparated,\n ariaRowCount: number,\n ariaRowIndex: number,\n ariaRowSpan: number,\n ariaSelected: booleanish,\n ariaSetSize: number,\n ariaSort: null,\n ariaValueMax: number,\n ariaValueMin: number,\n ariaValueNow: number,\n ariaValueText: null,\n role: null\n }\n})\n\nfunction ariaTransform(_, prop) {\n return prop === 'role' ? prop : 'aria-' + prop.slice(4).toLowerCase()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvYXJpYS5qcz9kZjIzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFlBQVksbUJBQU8sQ0FBQywyREFBYztBQUNsQyxhQUFhLG1CQUFPLENBQUMsNERBQWU7O0FBRXBDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi9hcmlhLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbnZhciB0eXBlcyA9IHJlcXVpcmUoJy4vdXRpbC90eXBlcycpXG52YXIgY3JlYXRlID0gcmVxdWlyZSgnLi91dGlsL2NyZWF0ZScpXG5cbnZhciBib29sZWFuaXNoID0gdHlwZXMuYm9vbGVhbmlzaFxudmFyIG51bWJlciA9IHR5cGVzLm51bWJlclxudmFyIHNwYWNlU2VwYXJhdGVkID0gdHlwZXMuc3BhY2VTZXBhcmF0ZWRcblxubW9kdWxlLmV4cG9ydHMgPSBjcmVhdGUoe1xuICB0cmFuc2Zvcm06IGFyaWFUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICBhcmlhQWN0aXZlRGVzY2VuZGFudDogbnVsbCxcbiAgICBhcmlhQXRvbWljOiBib29sZWFuaXNoLFxuICAgIGFyaWFBdXRvQ29tcGxldGU6IG51bGwsXG4gICAgYXJpYUJ1c3k6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNoZWNrZWQ6IGJvb2xlYW5pc2gsXG4gICAgYXJpYUNvbENvdW50OiBudW1iZXIsXG4gICAgYXJpYUNvbEluZGV4OiBudW1iZXIsXG4gICAgYXJpYUNvbFNwYW46IG51bWJlcixcbiAgICBhcmlhQ29udHJvbHM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFDdXJyZW50OiBudWxsLFxuICAgIGFyaWFEZXNjcmliZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYURldGFpbHM6IG51bGwsXG4gICAgYXJpYURpc2FibGVkOiBib29sZWFuaXNoLFxuICAgIGFyaWFEcm9wRWZmZWN0OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhRXJyb3JNZXNzYWdlOiBudWxsLFxuICAgIGFyaWFFeHBhbmRlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhRmxvd1RvOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhR3JhYmJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhSGFzUG9wdXA6IG51bGwsXG4gICAgYXJpYUhpZGRlbjogYm9vbGVhbmlzaCxcbiAgICBhcmlhSW52YWxpZDogbnVsbCxcbiAgICBhcmlhS2V5U2hvcnRjdXRzOiBudWxsLFxuICAgIGFyaWFMYWJlbDogbnVsbCxcbiAgICBhcmlhTGFiZWxsZWRCeTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXJpYUxldmVsOiBudW1iZXIsXG4gICAgYXJpYUxpdmU6IG51bGwsXG4gICAgYXJpYU1vZGFsOiBib29sZWFuaXNoLFxuICAgIGFyaWFNdWx0aUxpbmU6IGJvb2xlYW5pc2gsXG4gICAgYXJpYU11bHRpU2VsZWN0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBhcmlhT3JpZW50YXRpb246IG51bGwsXG4gICAgYXJpYU93bnM6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGFyaWFQbGFjZWhvbGRlcjogbnVsbCxcbiAgICBhcmlhUG9zSW5TZXQ6IG51bWJlcixcbiAgICBhcmlhUHJlc3NlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUmVhZE9ubHk6IGJvb2xlYW5pc2gsXG4gICAgYXJpYVJlbGV2YW50OiBudWxsLFxuICAgIGFyaWFSZXF1aXJlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhUm9sZURlc2NyaXB0aW9uOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhcmlhUm93Q291bnQ6IG51bWJlcixcbiAgICBhcmlhUm93SW5kZXg6IG51bWJlcixcbiAgICBhcmlhUm93U3BhbjogbnVtYmVyLFxuICAgIGFyaWFTZWxlY3RlZDogYm9vbGVhbmlzaCxcbiAgICBhcmlhU2V0U2l6ZTogbnVtYmVyLFxuICAgIGFyaWFTb3J0OiBudWxsLFxuICAgIGFyaWFWYWx1ZU1heDogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU1pbjogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZU5vdzogbnVtYmVyLFxuICAgIGFyaWFWYWx1ZVRleHQ6IG51bGwsXG4gICAgcm9sZTogbnVsbFxuICB9XG59KVxuXG5mdW5jdGlvbiBhcmlhVHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgcmV0dXJuIHByb3AgPT09ICdyb2xlJyA/IHByb3AgOiAnYXJpYS0nICsgcHJvcC5zbGljZSg0KS50b0xvd2VyQ2FzZSgpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/aria.js\n")},"../../node_modules/property-information/lib/html.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar types = __webpack_require__(\"../../node_modules/property-information/lib/util/types.js\")\nvar create = __webpack_require__(\"../../node_modules/property-information/lib/util/create.js\")\nvar caseInsensitiveTransform = __webpack_require__(\"../../node_modules/property-information/lib/util/case-insensitive-transform.js\")\n\nvar boolean = types.boolean\nvar overloadedBoolean = types.overloadedBoolean\nvar booleanish = types.booleanish\nvar number = types.number\nvar spaceSeparated = types.spaceSeparated\nvar commaSeparated = types.commaSeparated\n\nmodule.exports = create({\n space: 'html',\n attributes: {\n acceptcharset: 'accept-charset',\n classname: 'class',\n htmlfor: 'for',\n httpequiv: 'http-equiv'\n },\n transform: caseInsensitiveTransform,\n mustUseProperty: ['checked', 'multiple', 'muted', 'selected'],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: commaSeparated,\n acceptCharset: spaceSeparated,\n accessKey: spaceSeparated,\n action: null,\n allow: null,\n allowFullScreen: boolean,\n allowPaymentRequest: boolean,\n allowUserMedia: boolean,\n alt: null,\n as: null,\n async: boolean,\n autoCapitalize: null,\n autoComplete: spaceSeparated,\n autoFocus: boolean,\n autoPlay: boolean,\n capture: boolean,\n charSet: null,\n checked: boolean,\n cite: null,\n className: spaceSeparated,\n cols: number,\n colSpan: null,\n content: null,\n contentEditable: booleanish,\n controls: boolean,\n controlsList: spaceSeparated,\n coords: number | commaSeparated,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: boolean,\n defer: boolean,\n dir: null,\n dirName: null,\n disabled: boolean,\n download: overloadedBoolean,\n draggable: booleanish,\n encType: null,\n enterKeyHint: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: boolean,\n formTarget: null,\n headers: spaceSeparated,\n height: number,\n hidden: boolean,\n high: number,\n href: null,\n hrefLang: null,\n htmlFor: spaceSeparated,\n httpEquiv: spaceSeparated,\n id: null,\n imageSizes: null,\n imageSrcSet: commaSeparated,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: boolean,\n itemId: null,\n itemProp: spaceSeparated,\n itemRef: spaceSeparated,\n itemScope: boolean,\n itemType: spaceSeparated,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: boolean,\n low: number,\n manifest: null,\n max: null,\n maxLength: number,\n media: null,\n method: null,\n min: null,\n minLength: number,\n multiple: boolean,\n muted: boolean,\n name: null,\n nonce: null,\n noModule: boolean,\n noValidate: boolean,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforePrint: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextMenu: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: boolean,\n optimum: number,\n pattern: null,\n ping: spaceSeparated,\n placeholder: null,\n playsInline: boolean,\n poster: null,\n preload: null,\n readOnly: boolean,\n referrerPolicy: null,\n rel: spaceSeparated,\n required: boolean,\n reversed: boolean,\n rows: number,\n rowSpan: number,\n sandbox: spaceSeparated,\n scope: null,\n scoped: boolean,\n seamless: boolean,\n selected: boolean,\n shape: null,\n size: number,\n sizes: null,\n slot: null,\n span: number,\n spellCheck: booleanish,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: commaSeparated,\n start: number,\n step: null,\n style: null,\n tabIndex: number,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: boolean,\n useMap: null,\n value: booleanish,\n width: number,\n wrap: null,\n\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null, // Several. Use CSS `text-align` instead,\n aLink: null, // `<body>`. Use CSS `a:active {color}` instead\n archive: spaceSeparated, // `<object>`. List of URIs to archives\n axis: null, // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null, // `<body>`. Use CSS `background-image` instead\n bgColor: null, // `<body>` and table elements. Use CSS `background-color` instead\n border: number, // `<table>`. Use CSS `border-width` instead,\n borderColor: null, // `<table>`. Use CSS `border-color` instead,\n bottomMargin: number, // `<body>`\n cellPadding: null, // `<table>`\n cellSpacing: null, // `<table>`\n char: null, // Several table elements. When `align=char`, sets the character to align on\n charOff: null, // Several table elements. When `char`, offsets the alignment\n classId: null, // `<object>`\n clear: null, // `<br>`. Use CSS `clear` instead\n code: null, // `<object>`\n codeBase: null, // `<object>`\n codeType: null, // `<object>`\n color: null, // `<font>` and `<hr>`. Use CSS instead\n compact: boolean, // Lists. Use CSS to reduce space between items instead\n declare: boolean, // `<object>`\n event: null, // `<script>`\n face: null, // `<font>`. Use CSS instead\n frame: null, // `<table>`\n frameBorder: null, // `<iframe>`. Use CSS `border` instead\n hSpace: number, // `<img>` and `<object>`\n leftMargin: number, // `<body>`\n link: null, // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null, // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null, // `<img>`. Use a `<picture>`\n marginHeight: number, // `<body>`\n marginWidth: number, // `<body>`\n noResize: boolean, // `<frame>`\n noHref: boolean, // `<area>`. Use no href instead of an explicit `nohref`\n noShade: boolean, // `<hr>`. Use background-color and height instead of borders\n noWrap: boolean, // `<td>` and `<th>`\n object: null, // `<applet>`\n profile: null, // `<head>`\n prompt: null, // `<isindex>`\n rev: null, // `<link>`\n rightMargin: number, // `<body>`\n rules: null, // `<table>`\n scheme: null, // `<meta>`\n scrolling: booleanish, // `<frame>`. Use overflow in the child context\n standby: null, // `<object>`\n summary: null, // `<table>`\n text: null, // `<body>`. Use CSS `color` instead\n topMargin: number, // `<body>`\n valueType: null, // `<param>`\n version: null, // `<html>`. Use a doctype.\n vAlign: null, // Several. Use CSS `vertical-align` instead\n vLink: null, // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: number, // `<img>` and `<object>`\n\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: boolean,\n disableRemotePlayback: boolean,\n prefix: null,\n property: null,\n results: number,\n security: null,\n unselectable: null\n }\n})\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcz81NjE4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFlBQVksbUJBQU8sQ0FBQywyREFBYztBQUNsQyxhQUFhLG1CQUFPLENBQUMsNERBQWU7QUFDcEMsK0JBQStCLG1CQUFPLENBQUMsZ0ZBQW1DOztBQUUxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQsTUFBTTtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxTQUFTO0FBQ3ZEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrREFBa0QsTUFBTTtBQUN4RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvaHRtbC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgdHlwZXMgPSByZXF1aXJlKCcuL3V0aWwvdHlwZXMnKVxudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vdXRpbC9jcmVhdGUnKVxudmFyIGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSA9IHJlcXVpcmUoJy4vdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybScpXG5cbnZhciBib29sZWFuID0gdHlwZXMuYm9vbGVhblxudmFyIG92ZXJsb2FkZWRCb29sZWFuID0gdHlwZXMub3ZlcmxvYWRlZEJvb2xlYW5cbnZhciBib29sZWFuaXNoID0gdHlwZXMuYm9vbGVhbmlzaFxudmFyIG51bWJlciA9IHR5cGVzLm51bWJlclxudmFyIHNwYWNlU2VwYXJhdGVkID0gdHlwZXMuc3BhY2VTZXBhcmF0ZWRcbnZhciBjb21tYVNlcGFyYXRlZCA9IHR5cGVzLmNvbW1hU2VwYXJhdGVkXG5cbm1vZHVsZS5leHBvcnRzID0gY3JlYXRlKHtcbiAgc3BhY2U6ICdodG1sJyxcbiAgYXR0cmlidXRlczoge1xuICAgIGFjY2VwdGNoYXJzZXQ6ICdhY2NlcHQtY2hhcnNldCcsXG4gICAgY2xhc3NuYW1lOiAnY2xhc3MnLFxuICAgIGh0bWxmb3I6ICdmb3InLFxuICAgIGh0dHBlcXVpdjogJ2h0dHAtZXF1aXYnXG4gIH0sXG4gIHRyYW5zZm9ybTogY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtLFxuICBtdXN0VXNlUHJvcGVydHk6IFsnY2hlY2tlZCcsICdtdWx0aXBsZScsICdtdXRlZCcsICdzZWxlY3RlZCddLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLy8gU3RhbmRhcmQgUHJvcGVydGllcy5cbiAgICBhYmJyOiBudWxsLFxuICAgIGFjY2VwdDogY29tbWFTZXBhcmF0ZWQsXG4gICAgYWNjZXB0Q2hhcnNldDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYWNjZXNzS2V5OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBhY3Rpb246IG51bGwsXG4gICAgYWxsb3c6IG51bGwsXG4gICAgYWxsb3dGdWxsU2NyZWVuOiBib29sZWFuLFxuICAgIGFsbG93UGF5bWVudFJlcXVlc3Q6IGJvb2xlYW4sXG4gICAgYWxsb3dVc2VyTWVkaWE6IGJvb2xlYW4sXG4gICAgYWx0OiBudWxsLFxuICAgIGFzOiBudWxsLFxuICAgIGFzeW5jOiBib29sZWFuLFxuICAgIGF1dG9DYXBpdGFsaXplOiBudWxsLFxuICAgIGF1dG9Db21wbGV0ZTogc3BhY2VTZXBhcmF0ZWQsXG4gICAgYXV0b0ZvY3VzOiBib29sZWFuLFxuICAgIGF1dG9QbGF5OiBib29sZWFuLFxuICAgIGNhcHR1cmU6IGJvb2xlYW4sXG4gICAgY2hhclNldDogbnVsbCxcbiAgICBjaGVja2VkOiBib29sZWFuLFxuICAgIGNpdGU6IG51bGwsXG4gICAgY2xhc3NOYW1lOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBjb2xzOiBudW1iZXIsXG4gICAgY29sU3BhbjogbnVsbCxcbiAgICBjb250ZW50OiBudWxsLFxuICAgIGNvbnRlbnRFZGl0YWJsZTogYm9vbGVhbmlzaCxcbiAgICBjb250cm9sczogYm9vbGVhbixcbiAgICBjb250cm9sc0xpc3Q6IHNwYWNlU2VwYXJhdGVkLFxuICAgIGNvb3JkczogbnVtYmVyIHwgY29tbWFTZXBhcmF0ZWQsXG4gICAgY3Jvc3NPcmlnaW46IG51bGwsXG4gICAgZGF0YTogbnVsbCxcbiAgICBkYXRlVGltZTogbnVsbCxcbiAgICBkZWNvZGluZzogbnVsbCxcbiAgICBkZWZhdWx0OiBib29sZWFuLFxuICAgIGRlZmVyOiBib29sZWFuLFxuICAgIGRpcjogbnVsbCxcbiAgICBkaXJOYW1lOiBudWxsLFxuICAgIGRpc2FibGVkOiBib29sZWFuLFxuICAgIGRvd25sb2FkOiBvdmVybG9hZGVkQm9vbGVhbixcbiAgICBkcmFnZ2FibGU6IGJvb2xlYW5pc2gsXG4gICAgZW5jVHlwZTogbnVsbCxcbiAgICBlbnRlcktleUhpbnQ6IG51bGwsXG4gICAgZm9ybTogbnVsbCxcbiAgICBmb3JtQWN0aW9uOiBudWxsLFxuICAgIGZvcm1FbmNUeXBlOiBudWxsLFxuICAgIGZvcm1NZXRob2Q6IG51bGwsXG4gICAgZm9ybU5vVmFsaWRhdGU6IGJvb2xlYW4sXG4gICAgZm9ybVRhcmdldDogbnVsbCxcbiAgICBoZWFkZXJzOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBoZWlnaHQ6IG51bWJlcixcbiAgICBoaWRkZW46IGJvb2xlYW4sXG4gICAgaGlnaDogbnVtYmVyLFxuICAgIGhyZWY6IG51bGwsXG4gICAgaHJlZkxhbmc6IG51bGwsXG4gICAgaHRtbEZvcjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaHR0cEVxdWl2OiBzcGFjZVNlcGFyYXRlZCxcbiAgICBpZDogbnVsbCxcbiAgICBpbWFnZVNpemVzOiBudWxsLFxuICAgIGltYWdlU3JjU2V0OiBjb21tYVNlcGFyYXRlZCxcbiAgICBpbnB1dE1vZGU6IG51bGwsXG4gICAgaW50ZWdyaXR5OiBudWxsLFxuICAgIGlzOiBudWxsLFxuICAgIGlzTWFwOiBib29sZWFuLFxuICAgIGl0ZW1JZDogbnVsbCxcbiAgICBpdGVtUHJvcDogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVJlZjogc3BhY2VTZXBhcmF0ZWQsXG4gICAgaXRlbVNjb3BlOiBib29sZWFuLFxuICAgIGl0ZW1UeXBlOiBzcGFjZVNlcGFyYXRlZCxcbiAgICBraW5kOiBudWxsLFxuICAgIGxhYmVsOiBudWxsLFxuICAgIGxhbmc6IG51bGwsXG4gICAgbGFuZ3VhZ2U6IG51bGwsXG4gICAgbGlzdDogbnVsbCxcbiAgICBsb2FkaW5nOiBudWxsLFxuICAgIGxvb3A6IGJvb2xlYW4sXG4gICAgbG93OiBudW1iZXIsXG4gICAgbWFuaWZlc3Q6IG51bGwsXG4gICAgbWF4OiBudWxsLFxuICAgIG1heExlbmd0aDogbnVtYmVyLFxuICAgIG1lZGlhOiBudWxsLFxuICAgIG1ldGhvZDogbnVsbCxcbiAgICBtaW46IG51bGwsXG4gICAgbWluTGVuZ3RoOiBudW1iZXIsXG4gICAgbXVsdGlwbGU6IGJvb2xlYW4sXG4gICAgbXV0ZWQ6IGJvb2xlYW4sXG4gICAgbmFtZTogbnVsbCxcbiAgICBub25jZTogbnVsbCxcbiAgICBub01vZHVsZTogYm9vbGVhbixcbiAgICBub1ZhbGlkYXRlOiBib29sZWFuLFxuICAgIG9uQWJvcnQ6IG51bGwsXG4gICAgb25BZnRlclByaW50OiBudWxsLFxuICAgIG9uQXV4Q2xpY2s6IG51bGwsXG4gICAgb25CZWZvcmVQcmludDogbnVsbCxcbiAgICBvbkJlZm9yZVVubG9hZDogbnVsbCxcbiAgICBvbkJsdXI6IG51bGwsXG4gICAgb25DYW5jZWw6IG51bGwsXG4gICAgb25DYW5QbGF5OiBudWxsLFxuICAgIG9uQ2FuUGxheVRocm91Z2g6IG51bGwsXG4gICAgb25DaGFuZ2U6IG51bGwsXG4gICAgb25DbGljazogbnVsbCxcbiAgICBvbkNsb3NlOiBudWxsLFxuICAgIG9uQ29udGV4dE1lbnU6IG51bGwsXG4gICAgb25Db3B5OiBudWxsLFxuICAgIG9uQ3VlQ2hhbmdlOiBudWxsLFxuICAgIG9uQ3V0OiBudWxsLFxuICAgIG9uRGJsQ2xpY2s6IG51bGwsXG4gICAgb25EcmFnOiBudWxsLFxuICAgIG9uRHJhZ0VuZDogbnVsbCxcbiAgICBvbkRyYWdFbnRlcjogbnVsbCxcbiAgICBvbkRyYWdFeGl0OiBudWxsLFxuICAgIG9uRHJhZ0xlYXZlOiBudWxsLFxuICAgIG9uRHJhZ092ZXI6IG51bGwsXG4gICAgb25EcmFnU3RhcnQ6IG51bGwsXG4gICAgb25Ecm9wOiBudWxsLFxuICAgIG9uRHVyYXRpb25DaGFuZ2U6IG51bGwsXG4gICAgb25FbXB0aWVkOiBudWxsLFxuICAgIG9uRW5kZWQ6IG51bGwsXG4gICAgb25FcnJvcjogbnVsbCxcbiAgICBvbkZvY3VzOiBudWxsLFxuICAgIG9uRm9ybURhdGE6IG51bGwsXG4gICAgb25IYXNoQ2hhbmdlOiBudWxsLFxuICAgIG9uSW5wdXQ6IG51bGwsXG4gICAgb25JbnZhbGlkOiBudWxsLFxuICAgIG9uS2V5RG93bjogbnVsbCxcbiAgICBvbktleVByZXNzOiBudWxsLFxuICAgIG9uS2V5VXA6IG51bGwsXG4gICAgb25MYW5ndWFnZUNoYW5nZTogbnVsbCxcbiAgICBvbkxvYWQ6IG51bGwsXG4gICAgb25Mb2FkZWREYXRhOiBudWxsLFxuICAgIG9uTG9hZGVkTWV0YWRhdGE6IG51bGwsXG4gICAgb25Mb2FkRW5kOiBudWxsLFxuICAgIG9uTG9hZFN0YXJ0OiBudWxsLFxuICAgIG9uTWVzc2FnZTogbnVsbCxcbiAgICBvbk1lc3NhZ2VFcnJvcjogbnVsbCxcbiAgICBvbk1vdXNlRG93bjogbnVsbCxcbiAgICBvbk1vdXNlRW50ZXI6IG51bGwsXG4gICAgb25Nb3VzZUxlYXZlOiBudWxsLFxuICAgIG9uTW91c2VNb3ZlOiBudWxsLFxuICAgIG9uTW91c2VPdXQ6IG51bGwsXG4gICAgb25Nb3VzZU92ZXI6IG51bGwsXG4gICAgb25Nb3VzZVVwOiBudWxsLFxuICAgIG9uT2ZmbGluZTogbnVsbCxcbiAgICBvbk9ubGluZTogbnVsbCxcbiAgICBvblBhZ2VIaWRlOiBudWxsLFxuICAgIG9uUGFnZVNob3c6IG51bGwsXG4gICAgb25QYXN0ZTogbnVsbCxcbiAgICBvblBhdXNlOiBudWxsLFxuICAgIG9uUGxheTogbnVsbCxcbiAgICBvblBsYXlpbmc6IG51bGwsXG4gICAgb25Qb3BTdGF0ZTogbnVsbCxcbiAgICBvblByb2dyZXNzOiBudWxsLFxuICAgIG9uUmF0ZUNoYW5nZTogbnVsbCxcbiAgICBvblJlamVjdGlvbkhhbmRsZWQ6IG51bGwsXG4gICAgb25SZXNldDogbnVsbCxcbiAgICBvblJlc2l6ZTogbnVsbCxcbiAgICBvblNjcm9sbDogbnVsbCxcbiAgICBvblNlY3VyaXR5UG9saWN5VmlvbGF0aW9uOiBudWxsLFxuICAgIG9uU2Vla2VkOiBudWxsLFxuICAgIG9uU2Vla2luZzogbnVsbCxcbiAgICBvblNlbGVjdDogbnVsbCxcbiAgICBvblNsb3RDaGFuZ2U6IG51bGwsXG4gICAgb25TdGFsbGVkOiBudWxsLFxuICAgIG9uU3RvcmFnZTogbnVsbCxcbiAgICBvblN1Ym1pdDogbnVsbCxcbiAgICBvblN1c3BlbmQ6IG51bGwsXG4gICAgb25UaW1lVXBkYXRlOiBudWxsLFxuICAgIG9uVG9nZ2xlOiBudWxsLFxuICAgIG9uVW5oYW5kbGVkUmVqZWN0aW9uOiBudWxsLFxuICAgIG9uVW5sb2FkOiBudWxsLFxuICAgIG9uVm9sdW1lQ2hhbmdlOiBudWxsLFxuICAgIG9uV2FpdGluZzogbnVsbCxcbiAgICBvbldoZWVsOiBudWxsLFxuICAgIG9wZW46IGJvb2xlYW4sXG4gICAgb3B0aW11bTogbnVtYmVyLFxuICAgIHBhdHRlcm46IG51bGwsXG4gICAgcGluZzogc3BhY2VTZXBhcmF0ZWQsXG4gICAgcGxhY2Vob2xkZXI6IG51bGwsXG4gICAgcGxheXNJbmxpbmU6IGJvb2xlYW4sXG4gICAgcG9zdGVyOiBudWxsLFxuICAgIHByZWxvYWQ6IG51bGwsXG4gICAgcmVhZE9ubHk6IGJvb2xlYW4sXG4gICAgcmVmZXJyZXJQb2xpY3k6IG51bGwsXG4gICAgcmVsOiBzcGFjZVNlcGFyYXRlZCxcbiAgICByZXF1aXJlZDogYm9vbGVhbixcbiAgICByZXZlcnNlZDogYm9vbGVhbixcbiAgICByb3dzOiBudW1iZXIsXG4gICAgcm93U3BhbjogbnVtYmVyLFxuICAgIHNhbmRib3g6IHNwYWNlU2VwYXJhdGVkLFxuICAgIHNjb3BlOiBudWxsLFxuICAgIHNjb3BlZDogYm9vbGVhbixcbiAgICBzZWFtbGVzczogYm9vbGVhbixcbiAgICBzZWxlY3RlZDogYm9vbGVhbixcbiAgICBzaGFwZTogbnVsbCxcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc2l6ZXM6IG51bGwsXG4gICAgc2xvdDogbnVsbCxcbiAgICBzcGFuOiBudW1iZXIsXG4gICAgc3BlbGxDaGVjazogYm9vbGVhbmlzaCxcbiAgICBzcmM6IG51bGwsXG4gICAgc3JjRG9jOiBudWxsLFxuICAgIHNyY0xhbmc6IG51bGwsXG4gICAgc3JjU2V0OiBjb21tYVNlcGFyYXRlZCxcbiAgICBzdGFydDogbnVtYmVyLFxuICAgIHN0ZXA6IG51bGwsXG4gICAgc3R5bGU6IG51bGwsXG4gICAgdGFiSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgdGl0bGU6IG51bGwsXG4gICAgdHJhbnNsYXRlOiBudWxsLFxuICAgIHR5cGU6IG51bGwsXG4gICAgdHlwZU11c3RNYXRjaDogYm9vbGVhbixcbiAgICB1c2VNYXA6IG51bGwsXG4gICAgdmFsdWU6IGJvb2xlYW5pc2gsXG4gICAgd2lkdGg6IG51bWJlcixcbiAgICB3cmFwOiBudWxsLFxuXG4gICAgLy8gTGVnYWN5LlxuICAgIC8vIFNlZTogaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jb3RoZXItZWxlbWVudHMsLWF0dHJpYnV0ZXMtYW5kLWFwaXNcbiAgICBhbGlnbjogbnVsbCwgLy8gU2V2ZXJhbC4gVXNlIENTUyBgdGV4dC1hbGlnbmAgaW5zdGVhZCxcbiAgICBhTGluazogbnVsbCwgLy8gYDxib2R5PmAuIFVzZSBDU1MgYGE6YWN0aXZlIHtjb2xvcn1gIGluc3RlYWRcbiAgICBhcmNoaXZlOiBzcGFjZVNlcGFyYXRlZCwgLy8gYDxvYmplY3Q+YC4gTGlzdCBvZiBVUklzIHRvIGFyY2hpdmVzXG4gICAgYXhpczogbnVsbCwgLy8gYDx0ZD5gIGFuZCBgPHRoPmAuIFVzZSBgc2NvcGVgIG9uIGA8dGg+YFxuICAgIGJhY2tncm91bmQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWltYWdlYCBpbnN0ZWFkXG4gICAgYmdDb2xvcjogbnVsbCwgLy8gYDxib2R5PmAgYW5kIHRhYmxlIGVsZW1lbnRzLiBVc2UgQ1NTIGBiYWNrZ3JvdW5kLWNvbG9yYCBpbnN0ZWFkXG4gICAgYm9yZGVyOiBudW1iZXIsIC8vIGA8dGFibGU+YC4gVXNlIENTUyBgYm9yZGVyLXdpZHRoYCBpbnN0ZWFkLFxuICAgIGJvcmRlckNvbG9yOiBudWxsLCAvLyBgPHRhYmxlPmAuIFVzZSBDU1MgYGJvcmRlci1jb2xvcmAgaW5zdGVhZCxcbiAgICBib3R0b21NYXJnaW46IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBjZWxsUGFkZGluZzogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgY2VsbFNwYWNpbmc6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIGNoYXI6IG51bGwsIC8vIFNldmVyYWwgdGFibGUgZWxlbWVudHMuIFdoZW4gYGFsaWduPWNoYXJgLCBzZXRzIHRoZSBjaGFyYWN0ZXIgdG8gYWxpZ24gb25cbiAgICBjaGFyT2ZmOiBudWxsLCAvLyBTZXZlcmFsIHRhYmxlIGVsZW1lbnRzLiBXaGVuIGBjaGFyYCwgb2Zmc2V0cyB0aGUgYWxpZ25tZW50XG4gICAgY2xhc3NJZDogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNsZWFyOiBudWxsLCAvLyBgPGJyPmAuIFVzZSBDU1MgYGNsZWFyYCBpbnN0ZWFkXG4gICAgY29kZTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIGNvZGVCYXNlOiBudWxsLCAvLyBgPG9iamVjdD5gXG4gICAgY29kZVR5cGU6IG51bGwsIC8vIGA8b2JqZWN0PmBcbiAgICBjb2xvcjogbnVsbCwgLy8gYDxmb250PmAgYW5kIGA8aHI+YC4gVXNlIENTUyBpbnN0ZWFkXG4gICAgY29tcGFjdDogYm9vbGVhbiwgLy8gTGlzdHMuIFVzZSBDU1MgdG8gcmVkdWNlIHNwYWNlIGJldHdlZW4gaXRlbXMgaW5zdGVhZFxuICAgIGRlY2xhcmU6IGJvb2xlYW4sIC8vIGA8b2JqZWN0PmBcbiAgICBldmVudDogbnVsbCwgLy8gYDxzY3JpcHQ+YFxuICAgIGZhY2U6IG51bGwsIC8vIGA8Zm9udD5gLiBVc2UgQ1NTIGluc3RlYWRcbiAgICBmcmFtZTogbnVsbCwgLy8gYDx0YWJsZT5gXG4gICAgZnJhbWVCb3JkZXI6IG51bGwsIC8vIGA8aWZyYW1lPmAuIFVzZSBDU1MgYGJvcmRlcmAgaW5zdGVhZFxuICAgIGhTcGFjZTogbnVtYmVyLCAvLyBgPGltZz5gIGFuZCBgPG9iamVjdD5gXG4gICAgbGVmdE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIGxpbms6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBhOmxpbmsge2NvbG9yOiAqfWAgaW5zdGVhZFxuICAgIGxvbmdEZXNjOiBudWxsLCAvLyBgPGZyYW1lPmAsIGA8aWZyYW1lPmAsIGFuZCBgPGltZz5gLiBVc2UgYW4gYDxhPmBcbiAgICBsb3dTcmM6IG51bGwsIC8vIGA8aW1nPmAuIFVzZSBhIGA8cGljdHVyZT5gXG4gICAgbWFyZ2luSGVpZ2h0OiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgbWFyZ2luV2lkdGg6IG51bWJlciwgLy8gYDxib2R5PmBcbiAgICBub1Jlc2l6ZTogYm9vbGVhbiwgLy8gYDxmcmFtZT5gXG4gICAgbm9IcmVmOiBib29sZWFuLCAvLyBgPGFyZWE+YC4gVXNlIG5vIGhyZWYgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBgbm9ocmVmYFxuICAgIG5vU2hhZGU6IGJvb2xlYW4sIC8vIGA8aHI+YC4gVXNlIGJhY2tncm91bmQtY29sb3IgYW5kIGhlaWdodCBpbnN0ZWFkIG9mIGJvcmRlcnNcbiAgICBub1dyYXA6IGJvb2xlYW4sIC8vIGA8dGQ+YCBhbmQgYDx0aD5gXG4gICAgb2JqZWN0OiBudWxsLCAvLyBgPGFwcGxldD5gXG4gICAgcHJvZmlsZTogbnVsbCwgLy8gYDxoZWFkPmBcbiAgICBwcm9tcHQ6IG51bGwsIC8vIGA8aXNpbmRleD5gXG4gICAgcmV2OiBudWxsLCAvLyBgPGxpbms+YFxuICAgIHJpZ2h0TWFyZ2luOiBudW1iZXIsIC8vIGA8Ym9keT5gXG4gICAgcnVsZXM6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHNjaGVtZTogbnVsbCwgLy8gYDxtZXRhPmBcbiAgICBzY3JvbGxpbmc6IGJvb2xlYW5pc2gsIC8vIGA8ZnJhbWU+YC4gVXNlIG92ZXJmbG93IGluIHRoZSBjaGlsZCBjb250ZXh0XG4gICAgc3RhbmRieTogbnVsbCwgLy8gYDxvYmplY3Q+YFxuICAgIHN1bW1hcnk6IG51bGwsIC8vIGA8dGFibGU+YFxuICAgIHRleHQ6IG51bGwsIC8vIGA8Ym9keT5gLiBVc2UgQ1NTIGBjb2xvcmAgaW5zdGVhZFxuICAgIHRvcE1hcmdpbjogbnVtYmVyLCAvLyBgPGJvZHk+YFxuICAgIHZhbHVlVHlwZTogbnVsbCwgLy8gYDxwYXJhbT5gXG4gICAgdmVyc2lvbjogbnVsbCwgLy8gYDxodG1sPmAuIFVzZSBhIGRvY3R5cGUuXG4gICAgdkFsaWduOiBudWxsLCAvLyBTZXZlcmFsLiBVc2UgQ1NTIGB2ZXJ0aWNhbC1hbGlnbmAgaW5zdGVhZFxuICAgIHZMaW5rOiBudWxsLCAvLyBgPGJvZHk+YC4gVXNlIENTUyBgYTp2aXNpdGVkIHtjb2xvcn1gIGluc3RlYWRcbiAgICB2U3BhY2U6IG51bWJlciwgLy8gYDxpbWc+YCBhbmQgYDxvYmplY3Q+YFxuXG4gICAgLy8gTm9uLXN0YW5kYXJkIFByb3BlcnRpZXMuXG4gICAgYWxsb3dUcmFuc3BhcmVuY3k6IG51bGwsXG4gICAgYXV0b0NvcnJlY3Q6IG51bGwsXG4gICAgYXV0b1NhdmU6IG51bGwsXG4gICAgZGlzYWJsZVBpY3R1cmVJblBpY3R1cmU6IGJvb2xlYW4sXG4gICAgZGlzYWJsZVJlbW90ZVBsYXliYWNrOiBib29sZWFuLFxuICAgIHByZWZpeDogbnVsbCxcbiAgICBwcm9wZXJ0eTogbnVsbCxcbiAgICByZXN1bHRzOiBudW1iZXIsXG4gICAgc2VjdXJpdHk6IG51bGwsXG4gICAgdW5zZWxlY3RhYmxlOiBudWxsXG4gIH1cbn0pXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/html.js\n")},"../../node_modules/property-information/lib/util/case-insensitive-transform.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar caseSensitiveTransform = __webpack_require__("../../node_modules/property-information/lib/util/case-sensitive-transform.js")\n\nmodule.exports = caseInsensitiveTransform\n\nfunction caseInsensitiveTransform(attributes, property) {\n return caseSensitiveTransform(attributes, property.toLowerCase())\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcz9iM2Y1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLDZCQUE2QixtQkFBTyxDQUFDLDhFQUE0Qjs7QUFFakU7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLWluc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybSA9IHJlcXVpcmUoJy4vY2FzZS1zZW5zaXRpdmUtdHJhbnNmb3JtJylcblxubW9kdWxlLmV4cG9ydHMgPSBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm1cblxuZnVuY3Rpb24gY2FzZUluc2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5KSB7XG4gIHJldHVybiBjYXNlU2Vuc2l0aXZlVHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3BlcnR5LnRvTG93ZXJDYXNlKCkpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/case-insensitive-transform.js\n')},"../../node_modules/property-information/lib/util/case-sensitive-transform.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = caseSensitiveTransform\n\nfunction caseSensitiveTransform(attributes, attribute) {\n return attribute in attributes ? attributes[attribute] : attribute\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jYXNlLXNlbnNpdGl2ZS10cmFuc2Zvcm0uanM/ZTliMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2Nhc2Utc2Vuc2l0aXZlLXRyYW5zZm9ybS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNhc2VTZW5zaXRpdmVUcmFuc2Zvcm1cblxuZnVuY3Rpb24gY2FzZVNlbnNpdGl2ZVRyYW5zZm9ybShhdHRyaWJ1dGVzLCBhdHRyaWJ1dGUpIHtcbiAgcmV0dXJuIGF0dHJpYnV0ZSBpbiBhdHRyaWJ1dGVzID8gYXR0cmlidXRlc1thdHRyaWJ1dGVdIDogYXR0cmlidXRlXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/case-sensitive-transform.js\n")},"../../node_modules/property-information/lib/util/create.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar normalize = __webpack_require__("../../node_modules/property-information/normalize.js")\nvar Schema = __webpack_require__("../../node_modules/property-information/lib/util/schema.js")\nvar DefinedInfo = __webpack_require__("../../node_modules/property-information/lib/util/defined-info.js")\n\nmodule.exports = create\n\nfunction create(definition) {\n var space = definition.space\n var mustUseProperty = definition.mustUseProperty || []\n var attributes = definition.attributes || {}\n var props = definition.properties\n var transform = definition.transform\n var property = {}\n var normal = {}\n var prop\n var info\n\n for (prop in props) {\n info = new DefinedInfo(\n prop,\n transform(attributes, prop),\n props[prop],\n space\n )\n\n if (mustUseProperty.indexOf(prop) !== -1) {\n info.mustUseProperty = true\n }\n\n property[prop] = info\n\n normal[normalize(prop)] = prop\n normal[normalize(info.attribute)] = prop\n }\n\n return new Schema(property, normal, space)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jcmVhdGUuanM/ZDNlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixnQkFBZ0IsbUJBQU8sQ0FBQyxzREFBaUI7QUFDekMsYUFBYSxtQkFBTyxDQUFDLDREQUFVO0FBQy9CLGtCQUFrQixtQkFBTyxDQUFDLGtFQUFnQjs7QUFFMUM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9jcmVhdGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxudmFyIG5vcm1hbGl6ZSA9IHJlcXVpcmUoJy4uLy4uL25vcm1hbGl6ZScpXG52YXIgU2NoZW1hID0gcmVxdWlyZSgnLi9zY2hlbWEnKVxudmFyIERlZmluZWRJbmZvID0gcmVxdWlyZSgnLi9kZWZpbmVkLWluZm8nKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZVxuXG5mdW5jdGlvbiBjcmVhdGUoZGVmaW5pdGlvbikge1xuICB2YXIgc3BhY2UgPSBkZWZpbml0aW9uLnNwYWNlXG4gIHZhciBtdXN0VXNlUHJvcGVydHkgPSBkZWZpbml0aW9uLm11c3RVc2VQcm9wZXJ0eSB8fCBbXVxuICB2YXIgYXR0cmlidXRlcyA9IGRlZmluaXRpb24uYXR0cmlidXRlcyB8fCB7fVxuICB2YXIgcHJvcHMgPSBkZWZpbml0aW9uLnByb3BlcnRpZXNcbiAgdmFyIHRyYW5zZm9ybSA9IGRlZmluaXRpb24udHJhbnNmb3JtXG4gIHZhciBwcm9wZXJ0eSA9IHt9XG4gIHZhciBub3JtYWwgPSB7fVxuICB2YXIgcHJvcFxuICB2YXIgaW5mb1xuXG4gIGZvciAocHJvcCBpbiBwcm9wcykge1xuICAgIGluZm8gPSBuZXcgRGVmaW5lZEluZm8oXG4gICAgICBwcm9wLFxuICAgICAgdHJhbnNmb3JtKGF0dHJpYnV0ZXMsIHByb3ApLFxuICAgICAgcHJvcHNbcHJvcF0sXG4gICAgICBzcGFjZVxuICAgIClcblxuICAgIGlmIChtdXN0VXNlUHJvcGVydHkuaW5kZXhPZihwcm9wKSAhPT0gLTEpIHtcbiAgICAgIGluZm8ubXVzdFVzZVByb3BlcnR5ID0gdHJ1ZVxuICAgIH1cblxuICAgIHByb3BlcnR5W3Byb3BdID0gaW5mb1xuXG4gICAgbm9ybWFsW25vcm1hbGl6ZShwcm9wKV0gPSBwcm9wXG4gICAgbm9ybWFsW25vcm1hbGl6ZShpbmZvLmF0dHJpYnV0ZSldID0gcHJvcFxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEocHJvcGVydHksIG5vcm1hbCwgc3BhY2UpXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/create.js\n')},"../../node_modules/property-information/lib/util/defined-info.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar Info = __webpack_require__(\"../../node_modules/property-information/lib/util/info.js\")\nvar types = __webpack_require__(\"../../node_modules/property-information/lib/util/types.js\")\n\nmodule.exports = DefinedInfo\n\nDefinedInfo.prototype = new Info()\nDefinedInfo.prototype.defined = true\n\nvar checks = [\n 'boolean',\n 'booleanish',\n 'overloadedBoolean',\n 'number',\n 'commaSeparated',\n 'spaceSeparated',\n 'commaOrSpaceSeparated'\n]\nvar checksLength = checks.length\n\nfunction DefinedInfo(property, attribute, mask, space) {\n var index = -1\n var check\n\n mark(this, 'space', space)\n\n Info.call(this, property, attribute)\n\n while (++index < checksLength) {\n check = checks[index]\n mark(this, check, (mask & types[check]) === types[check])\n }\n}\n\nfunction mark(values, key, value) {\n if (value) {\n values[key] = value\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9kZWZpbmVkLWluZm8uanM/NDA2MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixXQUFXLG1CQUFPLENBQUMsMERBQVE7QUFDM0IsWUFBWSxtQkFBTyxDQUFDLDJEQUFTOztBQUU3Qjs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL2RlZmluZWQtaW5mby5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG52YXIgSW5mbyA9IHJlcXVpcmUoJy4vaW5mbycpXG52YXIgdHlwZXMgPSByZXF1aXJlKCcuL3R5cGVzJylcblxubW9kdWxlLmV4cG9ydHMgPSBEZWZpbmVkSW5mb1xuXG5EZWZpbmVkSW5mby5wcm90b3R5cGUgPSBuZXcgSW5mbygpXG5EZWZpbmVkSW5mby5wcm90b3R5cGUuZGVmaW5lZCA9IHRydWVcblxudmFyIGNoZWNrcyA9IFtcbiAgJ2Jvb2xlYW4nLFxuICAnYm9vbGVhbmlzaCcsXG4gICdvdmVybG9hZGVkQm9vbGVhbicsXG4gICdudW1iZXInLFxuICAnY29tbWFTZXBhcmF0ZWQnLFxuICAnc3BhY2VTZXBhcmF0ZWQnLFxuICAnY29tbWFPclNwYWNlU2VwYXJhdGVkJ1xuXVxudmFyIGNoZWNrc0xlbmd0aCA9IGNoZWNrcy5sZW5ndGhcblxuZnVuY3Rpb24gRGVmaW5lZEluZm8ocHJvcGVydHksIGF0dHJpYnV0ZSwgbWFzaywgc3BhY2UpIHtcbiAgdmFyIGluZGV4ID0gLTFcbiAgdmFyIGNoZWNrXG5cbiAgbWFyayh0aGlzLCAnc3BhY2UnLCBzcGFjZSlcblxuICBJbmZvLmNhbGwodGhpcywgcHJvcGVydHksIGF0dHJpYnV0ZSlcblxuICB3aGlsZSAoKytpbmRleCA8IGNoZWNrc0xlbmd0aCkge1xuICAgIGNoZWNrID0gY2hlY2tzW2luZGV4XVxuICAgIG1hcmsodGhpcywgY2hlY2ssIChtYXNrICYgdHlwZXNbY2hlY2tdKSA9PT0gdHlwZXNbY2hlY2tdKVxuICB9XG59XG5cbmZ1bmN0aW9uIG1hcmsodmFsdWVzLCBrZXksIHZhbHVlKSB7XG4gIGlmICh2YWx1ZSkge1xuICAgIHZhbHVlc1trZXldID0gdmFsdWVcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/defined-info.js\n")},"../../node_modules/property-information/lib/util/info.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = Info\n\nvar proto = Info.prototype\n\nproto.space = null\nproto.attribute = null\nproto.property = null\nproto.boolean = false\nproto.booleanish = false\nproto.overloadedBoolean = false\nproto.number = false\nproto.commaSeparated = false\nproto.spaceSeparated = false\nproto.commaOrSpaceSeparated = false\nproto.mustUseProperty = false\nproto.defined = false\n\nfunction Info(property, attribute) {\n this.property = property\n this.attribute = attribute\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9pbmZvLmpzPzhjZDYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9pbmZvLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gSW5mb1xuXG52YXIgcHJvdG8gPSBJbmZvLnByb3RvdHlwZVxuXG5wcm90by5zcGFjZSA9IG51bGxcbnByb3RvLmF0dHJpYnV0ZSA9IG51bGxcbnByb3RvLnByb3BlcnR5ID0gbnVsbFxucHJvdG8uYm9vbGVhbiA9IGZhbHNlXG5wcm90by5ib29sZWFuaXNoID0gZmFsc2VcbnByb3RvLm92ZXJsb2FkZWRCb29sZWFuID0gZmFsc2VcbnByb3RvLm51bWJlciA9IGZhbHNlXG5wcm90by5jb21tYVNlcGFyYXRlZCA9IGZhbHNlXG5wcm90by5zcGFjZVNlcGFyYXRlZCA9IGZhbHNlXG5wcm90by5jb21tYU9yU3BhY2VTZXBhcmF0ZWQgPSBmYWxzZVxucHJvdG8ubXVzdFVzZVByb3BlcnR5ID0gZmFsc2VcbnByb3RvLmRlZmluZWQgPSBmYWxzZVxuXG5mdW5jdGlvbiBJbmZvKHByb3BlcnR5LCBhdHRyaWJ1dGUpIHtcbiAgdGhpcy5wcm9wZXJ0eSA9IHByb3BlcnR5XG4gIHRoaXMuYXR0cmlidXRlID0gYXR0cmlidXRlXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/info.js\n")},"../../node_modules/property-information/lib/util/merge.js":function(module,exports,__webpack_require__){"use strict";eval('\n\nvar xtend = __webpack_require__("../../node_modules/xtend/immutable.js")\nvar Schema = __webpack_require__("../../node_modules/property-information/lib/util/schema.js")\n\nmodule.exports = merge\n\nfunction merge(definitions) {\n var length = definitions.length\n var property = []\n var normal = []\n var index = -1\n var info\n var space\n\n while (++index < length) {\n info = definitions[index]\n property.push(info.property)\n normal.push(info.normal)\n space = info.space\n }\n\n return new Schema(\n xtend.apply(null, property),\n xtend.apply(null, normal),\n space\n )\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9tZXJnZS5qcz9mOTk3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFlBQVksbUJBQU8sQ0FBQyx1Q0FBTztBQUMzQixhQUFhLG1CQUFPLENBQUMsNERBQVU7O0FBRS9COztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi91dGlsL21lcmdlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbnZhciB4dGVuZCA9IHJlcXVpcmUoJ3h0ZW5kJylcbnZhciBTY2hlbWEgPSByZXF1aXJlKCcuL3NjaGVtYScpXG5cbm1vZHVsZS5leHBvcnRzID0gbWVyZ2VcblxuZnVuY3Rpb24gbWVyZ2UoZGVmaW5pdGlvbnMpIHtcbiAgdmFyIGxlbmd0aCA9IGRlZmluaXRpb25zLmxlbmd0aFxuICB2YXIgcHJvcGVydHkgPSBbXVxuICB2YXIgbm9ybWFsID0gW11cbiAgdmFyIGluZGV4ID0gLTFcbiAgdmFyIGluZm9cbiAgdmFyIHNwYWNlXG5cbiAgd2hpbGUgKCsraW5kZXggPCBsZW5ndGgpIHtcbiAgICBpbmZvID0gZGVmaW5pdGlvbnNbaW5kZXhdXG4gICAgcHJvcGVydHkucHVzaChpbmZvLnByb3BlcnR5KVxuICAgIG5vcm1hbC5wdXNoKGluZm8ubm9ybWFsKVxuICAgIHNwYWNlID0gaW5mby5zcGFjZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBTY2hlbWEoXG4gICAgeHRlbmQuYXBwbHkobnVsbCwgcHJvcGVydHkpLFxuICAgIHh0ZW5kLmFwcGx5KG51bGwsIG5vcm1hbCksXG4gICAgc3BhY2VcbiAgKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/merge.js\n')},"../../node_modules/property-information/lib/util/schema.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = Schema\n\nvar proto = Schema.prototype\n\nproto.space = null\nproto.normal = {}\nproto.property = {}\n\nfunction Schema(property, normal, space) {\n this.property = property\n this.normal = normal\n\n if (space) {\n this.space = space\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9zY2hlbWEuanM/ZTdjYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC9zY2hlbWEuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBTY2hlbWFcblxudmFyIHByb3RvID0gU2NoZW1hLnByb3RvdHlwZVxuXG5wcm90by5zcGFjZSA9IG51bGxcbnByb3RvLm5vcm1hbCA9IHt9XG5wcm90by5wcm9wZXJ0eSA9IHt9XG5cbmZ1bmN0aW9uIFNjaGVtYShwcm9wZXJ0eSwgbm9ybWFsLCBzcGFjZSkge1xuICB0aGlzLnByb3BlcnR5ID0gcHJvcGVydHlcbiAgdGhpcy5ub3JtYWwgPSBub3JtYWxcblxuICBpZiAoc3BhY2UpIHtcbiAgICB0aGlzLnNwYWNlID0gc3BhY2VcbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/schema.js\n")},"../../node_modules/property-information/lib/util/types.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar powers = 0\n\nexports.boolean = increment()\nexports.booleanish = increment()\nexports.overloadedBoolean = increment()\nexports.number = increment()\nexports.spaceSeparated = increment()\nexports.commaSeparated = increment()\nexports.commaOrSpaceSeparated = increment()\n\nfunction increment() {\n return Math.pow(2, ++powers)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIvdXRpbC90eXBlcy5qcz9iOTQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3V0aWwvdHlwZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxudmFyIHBvd2VycyA9IDBcblxuZXhwb3J0cy5ib29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydHMuYm9vbGVhbmlzaCA9IGluY3JlbWVudCgpXG5leHBvcnRzLm92ZXJsb2FkZWRCb29sZWFuID0gaW5jcmVtZW50KClcbmV4cG9ydHMubnVtYmVyID0gaW5jcmVtZW50KClcbmV4cG9ydHMuc3BhY2VTZXBhcmF0ZWQgPSBpbmNyZW1lbnQoKVxuZXhwb3J0cy5jb21tYVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5leHBvcnRzLmNvbW1hT3JTcGFjZVNlcGFyYXRlZCA9IGluY3JlbWVudCgpXG5cbmZ1bmN0aW9uIGluY3JlbWVudCgpIHtcbiAgcmV0dXJuIE1hdGgucG93KDIsICsrcG93ZXJzKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/util/types.js\n")},"../../node_modules/property-information/lib/xlink.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar create = __webpack_require__(\"../../node_modules/property-information/lib/util/create.js\")\n\nmodule.exports = create({\n space: 'xlink',\n transform: xlinkTransform,\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n})\n\nfunction xlinkTransform(_, prop) {\n return 'xlink:' + prop.slice(5).toLowerCase()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveGxpbmsuanM/OTc3YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixhQUFhLG1CQUFPLENBQUMsNERBQWU7O0FBRXBDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7O0FBRUQ7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveGxpbmsuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vdXRpbC9jcmVhdGUnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneGxpbmsnLFxuICB0cmFuc2Zvcm06IHhsaW5rVHJhbnNmb3JtLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgeExpbmtBY3R1YXRlOiBudWxsLFxuICAgIHhMaW5rQXJjUm9sZTogbnVsbCxcbiAgICB4TGlua0hyZWY6IG51bGwsXG4gICAgeExpbmtSb2xlOiBudWxsLFxuICAgIHhMaW5rU2hvdzogbnVsbCxcbiAgICB4TGlua1RpdGxlOiBudWxsLFxuICAgIHhMaW5rVHlwZTogbnVsbFxuICB9XG59KVxuXG5mdW5jdGlvbiB4bGlua1RyYW5zZm9ybShfLCBwcm9wKSB7XG4gIHJldHVybiAneGxpbms6JyArIHByb3Auc2xpY2UoNSkudG9Mb3dlckNhc2UoKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/xlink.js\n")},"../../node_modules/property-information/lib/xml.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar create = __webpack_require__(\"../../node_modules/property-information/lib/util/create.js\")\n\nmodule.exports = create({\n space: 'xml',\n transform: xmlTransform,\n properties: {\n xmlLang: null,\n xmlBase: null,\n xmlSpace: null\n }\n})\n\nfunction xmlTransform(_, prop) {\n return 'xml:' + prop.slice(3).toLowerCase()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sLmpzP2E2OTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosYUFBYSxtQkFBTyxDQUFDLDREQUFlOztBQUVwQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL2xpYi94bWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxudmFyIGNyZWF0ZSA9IHJlcXVpcmUoJy4vdXRpbC9jcmVhdGUnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sJyxcbiAgdHJhbnNmb3JtOiB4bWxUcmFuc2Zvcm0sXG4gIHByb3BlcnRpZXM6IHtcbiAgICB4bWxMYW5nOiBudWxsLFxuICAgIHhtbEJhc2U6IG51bGwsXG4gICAgeG1sU3BhY2U6IG51bGxcbiAgfVxufSlcblxuZnVuY3Rpb24geG1sVHJhbnNmb3JtKF8sIHByb3ApIHtcbiAgcmV0dXJuICd4bWw6JyArIHByb3Auc2xpY2UoMykudG9Mb3dlckNhc2UoKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/xml.js\n")},"../../node_modules/property-information/lib/xmlns.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nvar create = __webpack_require__(\"../../node_modules/property-information/lib/util/create.js\")\nvar caseInsensitiveTransform = __webpack_require__(\"../../node_modules/property-information/lib/util/case-insensitive-transform.js\")\n\nmodule.exports = create({\n space: 'xmlns',\n attributes: {\n xmlnsxlink: 'xmlns:xlink'\n },\n transform: caseInsensitiveTransform,\n properties: {\n xmlns: null,\n xmlnsXLink: null\n }\n})\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9saWIveG1sbnMuanM/N2MwZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixhQUFhLG1CQUFPLENBQUMsNERBQWU7QUFDcEMsK0JBQStCLG1CQUFPLENBQUMsZ0ZBQW1DOztBQUUxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcHJvcGVydHktaW5mb3JtYXRpb24vbGliL3htbG5zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbnZhciBjcmVhdGUgPSByZXF1aXJlKCcuL3V0aWwvY3JlYXRlJylcbnZhciBjYXNlSW5zZW5zaXRpdmVUcmFuc2Zvcm0gPSByZXF1aXJlKCcuL3V0aWwvY2FzZS1pbnNlbnNpdGl2ZS10cmFuc2Zvcm0nKVxuXG5tb2R1bGUuZXhwb3J0cyA9IGNyZWF0ZSh7XG4gIHNwYWNlOiAneG1sbnMnLFxuICBhdHRyaWJ1dGVzOiB7XG4gICAgeG1sbnN4bGluazogJ3htbG5zOnhsaW5rJ1xuICB9LFxuICB0cmFuc2Zvcm06IGNhc2VJbnNlbnNpdGl2ZVRyYW5zZm9ybSxcbiAgcHJvcGVydGllczoge1xuICAgIHhtbG5zOiBudWxsLFxuICAgIHhtbG5zWExpbms6IG51bGxcbiAgfVxufSlcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/property-information/lib/xmlns.js\n")},"../../node_modules/property-information/normalize.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = normalize\n\nfunction normalize(value) {\n return value.toLowerCase()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9wcm9wZXJ0eS1pbmZvcm1hdGlvbi9ub3JtYWxpemUuanM/OTBiYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3Byb3BlcnR5LWluZm9ybWF0aW9uL25vcm1hbGl6ZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IG5vcm1hbGl6ZVxuXG5mdW5jdGlvbiBub3JtYWxpemUodmFsdWUpIHtcbiAgcmV0dXJuIHZhbHVlLnRvTG93ZXJDYXNlKClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/property-information/normalize.js\n")},"../../node_modules/refractor/core.js":function(module,exports,__webpack_require__){"use strict";eval("/* WEBPACK VAR INJECTION */(function(global) {\n\n/* global window, self */\n\n// istanbul ignore next - Don't allow Prism to run on page load in browser or\n// to start messaging from workers.\nvar ctx =\n typeof globalThis === 'object'\n ? globalThis\n : typeof self === 'object'\n ? self\n : typeof window === 'object'\n ? window\n : typeof global === 'object'\n ? global\n : {}\n\nvar restore = capture()\n\nctx.Prism = {manual: true, disableWorkerMessageHandler: true}\n\n// Load all stuff in `prism.js` itself, except for `prism-file-highlight.js`.\n// The wrapped non-leaky grammars are loaded instead of Prism’s originals.\nvar h = __webpack_require__(\"../../node_modules/hastscript/index.js\")\nvar decode = __webpack_require__(\"../../node_modules/parse-entities/index.js\")\nvar Prism = __webpack_require__(\"../../node_modules/prismjs/components/prism-core.js\")\nvar markup = __webpack_require__(\"../../node_modules/refractor/lang/markup.js\")\nvar css = __webpack_require__(\"../../node_modules/refractor/lang/css.js\")\nvar clike = __webpack_require__(\"../../node_modules/refractor/lang/clike.js\")\nvar js = __webpack_require__(\"../../node_modules/refractor/lang/javascript.js\")\n\nrestore()\n\nvar own = {}.hasOwnProperty\n\n// Inherit.\nfunction Refractor() {}\n\nRefractor.prototype = Prism\n\n// Construct.\nvar refract = new Refractor()\n\n// Expose.\nmodule.exports = refract\n\n// Create.\nrefract.highlight = highlight\nrefract.register = register\nrefract.alias = alias\nrefract.registered = registered\nrefract.listLanguages = listLanguages\n\n// Register bundled grammars.\nregister(markup)\nregister(css)\nregister(clike)\nregister(js)\n\nrefract.util.encode = encode\nrefract.Token.stringify = stringify\n\nfunction register(grammar) {\n if (typeof grammar !== 'function' || !grammar.displayName) {\n throw new Error('Expected `function` for `grammar`, got `' + grammar + '`')\n }\n\n // Do not duplicate registrations.\n if (refract.languages[grammar.displayName] === undefined) {\n grammar(refract)\n }\n}\n\nfunction alias(name, alias) {\n var languages = refract.languages\n var map = name\n var key\n var list\n var length\n var index\n\n if (alias) {\n map = {}\n map[name] = alias\n }\n\n for (key in map) {\n list = map[key]\n list = typeof list === 'string' ? [list] : list\n length = list.length\n index = -1\n\n while (++index < length) {\n languages[list[index]] = languages[key]\n }\n }\n}\n\nfunction highlight(value, name) {\n var sup = Prism.highlight\n var grammar\n\n if (typeof value !== 'string') {\n throw new Error('Expected `string` for `value`, got `' + value + '`')\n }\n\n // `name` is a grammar object.\n if (refract.util.type(name) === 'Object') {\n grammar = name\n name = null\n } else {\n if (typeof name !== 'string') {\n throw new Error('Expected `string` for `name`, got `' + name + '`')\n }\n\n if (own.call(refract.languages, name)) {\n grammar = refract.languages[name]\n } else {\n throw new Error('Unknown language: `' + name + '` is not registered')\n }\n }\n\n return sup.call(this, value, grammar, name)\n}\n\nfunction registered(language) {\n if (typeof language !== 'string') {\n throw new Error('Expected `string` for `language`, got `' + language + '`')\n }\n\n return own.call(refract.languages, language)\n}\n\nfunction listLanguages() {\n var languages = refract.languages\n var list = []\n var language\n\n for (language in languages) {\n if (\n own.call(languages, language) &&\n typeof languages[language] === 'object'\n ) {\n list.push(language)\n }\n }\n\n return list\n}\n\nfunction stringify(value, language, parent) {\n var env\n\n if (typeof value === 'string') {\n return {type: 'text', value: value}\n }\n\n if (refract.util.type(value) === 'Array') {\n return stringifyAll(value, language)\n }\n\n env = {\n type: value.type,\n content: refract.Token.stringify(value.content, language, parent),\n tag: 'span',\n classes: ['token', value.type],\n attributes: {},\n language: language,\n parent: parent\n }\n\n if (value.alias) {\n env.classes = env.classes.concat(value.alias)\n }\n\n refract.hooks.run('wrap', env)\n\n return h(\n env.tag + '.' + env.classes.join('.'),\n attributes(env.attributes),\n env.content\n )\n}\n\nfunction stringifyAll(values, language) {\n var result = []\n var length = values.length\n var index = -1\n var value\n\n while (++index < length) {\n value = values[index]\n\n if (value !== '' && value !== null && value !== undefined) {\n result.push(value)\n }\n }\n\n index = -1\n length = result.length\n\n while (++index < length) {\n value = result[index]\n result[index] = refract.Token.stringify(value, language, result)\n }\n\n return result\n}\n\nfunction encode(tokens) {\n return tokens\n}\n\nfunction attributes(attrs) {\n var key\n\n for (key in attrs) {\n attrs[key] = decode(attrs[key])\n }\n\n return attrs\n}\n\nfunction capture() {\n var defined = 'Prism' in ctx\n /* istanbul ignore next */\n var current = defined ? ctx.Prism : undefined\n\n return restore\n\n function restore() {\n /* istanbul ignore else - Clean leaks after Prism. */\n if (defined) {\n ctx.Prism = current\n } else {\n delete ctx.Prism\n }\n\n defined = undefined\n current = undefined\n }\n}\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"../../node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvY29yZS5qcz8wYWViIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDhDQUFZOztBQUVaOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQSxhQUFhOztBQUViO0FBQ0E7QUFDQSxRQUFRLG1CQUFPLENBQUMsd0NBQVk7QUFDNUIsYUFBYSxtQkFBTyxDQUFDLDRDQUFnQjtBQUNyQyxZQUFZLG1CQUFPLENBQUMscURBQStCO0FBQ25ELGFBQWEsbUJBQU8sQ0FBQyw2Q0FBZTtBQUNwQyxVQUFVLG1CQUFPLENBQUMsMENBQVk7QUFDOUIsWUFBWSxtQkFBTyxDQUFDLDRDQUFjO0FBQ2xDLFNBQVMsbUJBQU8sQ0FBQyxpREFBbUI7O0FBRXBDOztBQUVBLFlBQVk7O0FBRVo7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxZQUFZO0FBQ1o7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvY29yZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG4vKiBnbG9iYWwgd2luZG93LCBzZWxmICovXG5cbi8vIGlzdGFuYnVsIGlnbm9yZSBuZXh0IC0gRG9uJ3QgYWxsb3cgUHJpc20gdG8gcnVuIG9uIHBhZ2UgbG9hZCBpbiBicm93c2VyIG9yXG4vLyB0byBzdGFydCBtZXNzYWdpbmcgZnJvbSB3b3JrZXJzLlxudmFyIGN0eCA9XG4gIHR5cGVvZiBnbG9iYWxUaGlzID09PSAnb2JqZWN0J1xuICAgID8gZ2xvYmFsVGhpc1xuICAgIDogdHlwZW9mIHNlbGYgPT09ICdvYmplY3QnXG4gICAgPyBzZWxmXG4gICAgOiB0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0J1xuICAgID8gd2luZG93XG4gICAgOiB0eXBlb2YgZ2xvYmFsID09PSAnb2JqZWN0J1xuICAgID8gZ2xvYmFsXG4gICAgOiB7fVxuXG52YXIgcmVzdG9yZSA9IGNhcHR1cmUoKVxuXG5jdHguUHJpc20gPSB7bWFudWFsOiB0cnVlLCBkaXNhYmxlV29ya2VyTWVzc2FnZUhhbmRsZXI6IHRydWV9XG5cbi8vIExvYWQgYWxsIHN0dWZmIGluIGBwcmlzbS5qc2AgaXRzZWxmLCBleGNlcHQgZm9yIGBwcmlzbS1maWxlLWhpZ2hsaWdodC5qc2AuXG4vLyBUaGUgd3JhcHBlZCBub24tbGVha3kgZ3JhbW1hcnMgYXJlIGxvYWRlZCBpbnN0ZWFkIG9mIFByaXNt4oCZcyBvcmlnaW5hbHMuXG52YXIgaCA9IHJlcXVpcmUoJ2hhc3RzY3JpcHQnKVxudmFyIGRlY29kZSA9IHJlcXVpcmUoJ3BhcnNlLWVudGl0aWVzJylcbnZhciBQcmlzbSA9IHJlcXVpcmUoJ3ByaXNtanMvY29tcG9uZW50cy9wcmlzbS1jb3JlJylcbnZhciBtYXJrdXAgPSByZXF1aXJlKCcuL2xhbmcvbWFya3VwJylcbnZhciBjc3MgPSByZXF1aXJlKCcuL2xhbmcvY3NzJylcbnZhciBjbGlrZSA9IHJlcXVpcmUoJy4vbGFuZy9jbGlrZScpXG52YXIganMgPSByZXF1aXJlKCcuL2xhbmcvamF2YXNjcmlwdCcpXG5cbnJlc3RvcmUoKVxuXG52YXIgb3duID0ge30uaGFzT3duUHJvcGVydHlcblxuLy8gSW5oZXJpdC5cbmZ1bmN0aW9uIFJlZnJhY3RvcigpIHt9XG5cblJlZnJhY3Rvci5wcm90b3R5cGUgPSBQcmlzbVxuXG4vLyBDb25zdHJ1Y3QuXG52YXIgcmVmcmFjdCA9IG5ldyBSZWZyYWN0b3IoKVxuXG4vLyBFeHBvc2UuXG5tb2R1bGUuZXhwb3J0cyA9IHJlZnJhY3RcblxuLy8gQ3JlYXRlLlxucmVmcmFjdC5oaWdobGlnaHQgPSBoaWdobGlnaHRcbnJlZnJhY3QucmVnaXN0ZXIgPSByZWdpc3RlclxucmVmcmFjdC5hbGlhcyA9IGFsaWFzXG5yZWZyYWN0LnJlZ2lzdGVyZWQgPSByZWdpc3RlcmVkXG5yZWZyYWN0Lmxpc3RMYW5ndWFnZXMgPSBsaXN0TGFuZ3VhZ2VzXG5cbi8vIFJlZ2lzdGVyIGJ1bmRsZWQgZ3JhbW1hcnMuXG5yZWdpc3RlcihtYXJrdXApXG5yZWdpc3Rlcihjc3MpXG5yZWdpc3RlcihjbGlrZSlcbnJlZ2lzdGVyKGpzKVxuXG5yZWZyYWN0LnV0aWwuZW5jb2RlID0gZW5jb2RlXG5yZWZyYWN0LlRva2VuLnN0cmluZ2lmeSA9IHN0cmluZ2lmeVxuXG5mdW5jdGlvbiByZWdpc3RlcihncmFtbWFyKSB7XG4gIGlmICh0eXBlb2YgZ3JhbW1hciAhPT0gJ2Z1bmN0aW9uJyB8fCAhZ3JhbW1hci5kaXNwbGF5TmFtZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYGZ1bmN0aW9uYCBmb3IgYGdyYW1tYXJgLCBnb3QgYCcgKyBncmFtbWFyICsgJ2AnKVxuICB9XG5cbiAgLy8gRG8gbm90IGR1cGxpY2F0ZSByZWdpc3RyYXRpb25zLlxuICBpZiAocmVmcmFjdC5sYW5ndWFnZXNbZ3JhbW1hci5kaXNwbGF5TmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgIGdyYW1tYXIocmVmcmFjdClcbiAgfVxufVxuXG5mdW5jdGlvbiBhbGlhcyhuYW1lLCBhbGlhcykge1xuICB2YXIgbGFuZ3VhZ2VzID0gcmVmcmFjdC5sYW5ndWFnZXNcbiAgdmFyIG1hcCA9IG5hbWVcbiAgdmFyIGtleVxuICB2YXIgbGlzdFxuICB2YXIgbGVuZ3RoXG4gIHZhciBpbmRleFxuXG4gIGlmIChhbGlhcykge1xuICAgIG1hcCA9IHt9XG4gICAgbWFwW25hbWVdID0gYWxpYXNcbiAgfVxuXG4gIGZvciAoa2V5IGluIG1hcCkge1xuICAgIGxpc3QgPSBtYXBba2V5XVxuICAgIGxpc3QgPSB0eXBlb2YgbGlzdCA9PT0gJ3N0cmluZycgPyBbbGlzdF0gOiBsaXN0XG4gICAgbGVuZ3RoID0gbGlzdC5sZW5ndGhcbiAgICBpbmRleCA9IC0xXG5cbiAgICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgICAgbGFuZ3VhZ2VzW2xpc3RbaW5kZXhdXSA9IGxhbmd1YWdlc1trZXldXG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGhpZ2hsaWdodCh2YWx1ZSwgbmFtZSkge1xuICB2YXIgc3VwID0gUHJpc20uaGlnaGxpZ2h0XG4gIHZhciBncmFtbWFyXG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGBzdHJpbmdgIGZvciBgdmFsdWVgLCBnb3QgYCcgKyB2YWx1ZSArICdgJylcbiAgfVxuXG4gIC8vIGBuYW1lYCBpcyBhIGdyYW1tYXIgb2JqZWN0LlxuICBpZiAocmVmcmFjdC51dGlsLnR5cGUobmFtZSkgPT09ICdPYmplY3QnKSB7XG4gICAgZ3JhbW1hciA9IG5hbWVcbiAgICBuYW1lID0gbnVsbFxuICB9IGVsc2Uge1xuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYHN0cmluZ2AgZm9yIGBuYW1lYCwgZ290IGAnICsgbmFtZSArICdgJylcbiAgICB9XG5cbiAgICBpZiAob3duLmNhbGwocmVmcmFjdC5sYW5ndWFnZXMsIG5hbWUpKSB7XG4gICAgICBncmFtbWFyID0gcmVmcmFjdC5sYW5ndWFnZXNbbmFtZV1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIGxhbmd1YWdlOiBgJyArIG5hbWUgKyAnYCBpcyBub3QgcmVnaXN0ZXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN1cC5jYWxsKHRoaXMsIHZhbHVlLCBncmFtbWFyLCBuYW1lKVxufVxuXG5mdW5jdGlvbiByZWdpc3RlcmVkKGxhbmd1YWdlKSB7XG4gIGlmICh0eXBlb2YgbGFuZ3VhZ2UgIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBgc3RyaW5nYCBmb3IgYGxhbmd1YWdlYCwgZ290IGAnICsgbGFuZ3VhZ2UgKyAnYCcpXG4gIH1cblxuICByZXR1cm4gb3duLmNhbGwocmVmcmFjdC5sYW5ndWFnZXMsIGxhbmd1YWdlKVxufVxuXG5mdW5jdGlvbiBsaXN0TGFuZ3VhZ2VzKCkge1xuICB2YXIgbGFuZ3VhZ2VzID0gcmVmcmFjdC5sYW5ndWFnZXNcbiAgdmFyIGxpc3QgPSBbXVxuICB2YXIgbGFuZ3VhZ2VcblxuICBmb3IgKGxhbmd1YWdlIGluIGxhbmd1YWdlcykge1xuICAgIGlmIChcbiAgICAgIG93bi5jYWxsKGxhbmd1YWdlcywgbGFuZ3VhZ2UpICYmXG4gICAgICB0eXBlb2YgbGFuZ3VhZ2VzW2xhbmd1YWdlXSA9PT0gJ29iamVjdCdcbiAgICApIHtcbiAgICAgIGxpc3QucHVzaChsYW5ndWFnZSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbGlzdFxufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnkodmFsdWUsIGxhbmd1YWdlLCBwYXJlbnQpIHtcbiAgdmFyIGVudlxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHt0eXBlOiAndGV4dCcsIHZhbHVlOiB2YWx1ZX1cbiAgfVxuXG4gIGlmIChyZWZyYWN0LnV0aWwudHlwZSh2YWx1ZSkgPT09ICdBcnJheScpIHtcbiAgICByZXR1cm4gc3RyaW5naWZ5QWxsKHZhbHVlLCBsYW5ndWFnZSlcbiAgfVxuXG4gIGVudiA9IHtcbiAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgIGNvbnRlbnQ6IHJlZnJhY3QuVG9rZW4uc3RyaW5naWZ5KHZhbHVlLmNvbnRlbnQsIGxhbmd1YWdlLCBwYXJlbnQpLFxuICAgIHRhZzogJ3NwYW4nLFxuICAgIGNsYXNzZXM6IFsndG9rZW4nLCB2YWx1ZS50eXBlXSxcbiAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICBsYW5ndWFnZTogbGFuZ3VhZ2UsXG4gICAgcGFyZW50OiBwYXJlbnRcbiAgfVxuXG4gIGlmICh2YWx1ZS5hbGlhcykge1xuICAgIGVudi5jbGFzc2VzID0gZW52LmNsYXNzZXMuY29uY2F0KHZhbHVlLmFsaWFzKVxuICB9XG5cbiAgcmVmcmFjdC5ob29rcy5ydW4oJ3dyYXAnLCBlbnYpXG5cbiAgcmV0dXJuIGgoXG4gICAgZW52LnRhZyArICcuJyArIGVudi5jbGFzc2VzLmpvaW4oJy4nKSxcbiAgICBhdHRyaWJ1dGVzKGVudi5hdHRyaWJ1dGVzKSxcbiAgICBlbnYuY29udGVudFxuICApXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUFsbCh2YWx1ZXMsIGxhbmd1YWdlKSB7XG4gIHZhciByZXN1bHQgPSBbXVxuICB2YXIgbGVuZ3RoID0gdmFsdWVzLmxlbmd0aFxuICB2YXIgaW5kZXggPSAtMVxuICB2YXIgdmFsdWVcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhbHVlID0gdmFsdWVzW2luZGV4XVxuXG4gICAgaWYgKHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQucHVzaCh2YWx1ZSlcbiAgICB9XG4gIH1cblxuICBpbmRleCA9IC0xXG4gIGxlbmd0aCA9IHJlc3VsdC5sZW5ndGhcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIHZhbHVlID0gcmVzdWx0W2luZGV4XVxuICAgIHJlc3VsdFtpbmRleF0gPSByZWZyYWN0LlRva2VuLnN0cmluZ2lmeSh2YWx1ZSwgbGFuZ3VhZ2UsIHJlc3VsdClcbiAgfVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZnVuY3Rpb24gZW5jb2RlKHRva2Vucykge1xuICByZXR1cm4gdG9rZW5zXG59XG5cbmZ1bmN0aW9uIGF0dHJpYnV0ZXMoYXR0cnMpIHtcbiAgdmFyIGtleVxuXG4gIGZvciAoa2V5IGluIGF0dHJzKSB7XG4gICAgYXR0cnNba2V5XSA9IGRlY29kZShhdHRyc1trZXldKVxuICB9XG5cbiAgcmV0dXJuIGF0dHJzXG59XG5cbmZ1bmN0aW9uIGNhcHR1cmUoKSB7XG4gIHZhciBkZWZpbmVkID0gJ1ByaXNtJyBpbiBjdHhcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdmFyIGN1cnJlbnQgPSBkZWZpbmVkID8gY3R4LlByaXNtIDogdW5kZWZpbmVkXG5cbiAgcmV0dXJuIHJlc3RvcmVcblxuICBmdW5jdGlvbiByZXN0b3JlKCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlIC0gQ2xlYW4gbGVha3MgYWZ0ZXIgUHJpc20uICovXG4gICAgaWYgKGRlZmluZWQpIHtcbiAgICAgIGN0eC5QcmlzbSA9IGN1cnJlbnRcbiAgICB9IGVsc2Uge1xuICAgICAgZGVsZXRlIGN0eC5QcmlzbVxuICAgIH1cblxuICAgIGRlZmluZWQgPSB1bmRlZmluZWRcbiAgICBjdXJyZW50ID0gdW5kZWZpbmVkXG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/core.js\n")},"../../node_modules/refractor/lang/bash.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = bash\nbash.displayName = 'bash'\nbash.aliases = ['shell']\nfunction bash(Prism) {\n ;(function (Prism) {\n // $ set | grep '^[A-Z][^[:space:]]*=' | cut -d= -f1 | tr '\\n' '|'\n // + LC_ALL, RANDOM, REPLY, SECONDS.\n // + make sure PS1..4 are here as they are not always set,\n // - some useless things.\n var envVars =\n '\\\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\\\b'\n var commandAfterHeredoc = {\n pattern: /(^([\"']?)\\w+\\2)[ \\t]+\\S.*/,\n lookbehind: true,\n alias: 'punctuation',\n // this looks reasonably well in all themes\n inside: null // see below\n }\n var insideString = {\n bash: commandAfterHeredoc,\n environment: {\n pattern: RegExp('\\\\$' + envVars),\n alias: 'constant'\n },\n variable: [\n // [0]: Arithmetic Environment\n {\n pattern: /\\$?\\(\\([\\s\\S]+?\\)\\)/,\n greedy: true,\n inside: {\n // If there is a $ sign at the beginning highlight $(( and )) as variable\n variable: [\n {\n pattern: /(^\\$\\(\\([\\s\\S]+)\\)\\)/,\n lookbehind: true\n },\n /^\\$\\(\\(/\n ],\n number:\n /\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,\n // Operators according to https://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic\n operator:\n /--|\\+\\+|\\*\\*=?|<<=?|>>=?|&&|\\|\\||[=!+\\-*/%<>^&|]=?|[?~:]/,\n // If there is no $ sign at the beginning highlight (( and )) as punctuation\n punctuation: /\\(\\(?|\\)\\)?|,|;/\n }\n }, // [1]: Command Substitution\n {\n pattern: /\\$\\((?:\\([^)]+\\)|[^()])+\\)|`[^`]+`/,\n greedy: true,\n inside: {\n variable: /^\\$\\(|^`|\\)$|`$/\n }\n }, // [2]: Brace expansion\n {\n pattern: /\\$\\{[^}]+\\}/,\n greedy: true,\n inside: {\n operator: /:[-=?+]?|[!\\/]|##?|%%?|\\^\\^?|,,?/,\n punctuation: /[\\[\\]]/,\n environment: {\n pattern: RegExp('(\\\\{)' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n }\n },\n /\\$(?:\\w+|[#?*!@$])/\n ],\n // Escape sequences from echo and printf's manuals, and escaped quotes.\n entity:\n /\\\\(?:[abceEfnrtv\\\\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/\n }\n Prism.languages.bash = {\n shebang: {\n pattern: /^#!\\s*\\/.*/,\n alias: 'important'\n },\n comment: {\n pattern: /(^|[^\"{\\\\$])#.*/,\n lookbehind: true\n },\n 'function-name': [\n // a) function foo {\n // b) foo() {\n // c) function foo() {\n // but not “foo {”\n {\n // a) and c)\n pattern: /(\\bfunction\\s+)[\\w-]+(?=(?:\\s*\\(?:\\s*\\))?\\s*\\{)/,\n lookbehind: true,\n alias: 'function'\n },\n {\n // b)\n pattern: /\\b[\\w-]+(?=\\s*\\(\\s*\\)\\s*\\{)/,\n alias: 'function'\n }\n ],\n // Highlight variable names as variables in for and select beginnings.\n 'for-or-select': {\n pattern: /(\\b(?:for|select)\\s+)\\w+(?=\\s+in\\s)/,\n alias: 'variable',\n lookbehind: true\n },\n // Highlight variable names as variables in the left-hand part\n // of assignments (“=” and “+=”).\n 'assign-left': {\n pattern: /(^|[\\s;|&]|[<>]\\()\\w+(?=\\+?=)/,\n inside: {\n environment: {\n pattern: RegExp('(^|[\\\\s;|&]|[<>]\\\\()' + envVars),\n lookbehind: true,\n alias: 'constant'\n }\n },\n alias: 'variable',\n lookbehind: true\n },\n string: [\n // Support for Here-documents https://en.wikipedia.org/wiki/Here_document\n {\n pattern: /((?:^|[^<])<<-?\\s*)(\\w+)\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\2/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n }, // Here-document with quotes around the tag\n // → No expansion (so no “inside”).\n {\n pattern: /((?:^|[^<])<<-?\\s*)([\"'])(\\w+)\\2\\s[\\s\\S]*?(?:\\r?\\n|\\r)\\3/,\n lookbehind: true,\n greedy: true,\n inside: {\n bash: commandAfterHeredoc\n }\n }, // “Normal” string\n {\n // https://www.gnu.org/software/bash/manual/html_node/Double-Quotes.html\n pattern:\n /(^|[^\\\\](?:\\\\\\\\)*)\"(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|\\$(?!\\()|`[^`]+`|[^\"\\\\`$])*\"/,\n lookbehind: true,\n greedy: true,\n inside: insideString\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html\n pattern: /(^|[^$\\\\])'[^']*'/,\n lookbehind: true,\n greedy: true\n },\n {\n // https://www.gnu.org/software/bash/manual/html_node/ANSI_002dC-Quoting.html\n pattern: /\\$'(?:[^'\\\\]|\\\\[\\s\\S])*'/,\n greedy: true,\n inside: {\n entity: insideString.entity\n }\n }\n ],\n environment: {\n pattern: RegExp('\\\\$?' + envVars),\n alias: 'constant'\n },\n variable: insideString.variable,\n function: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n keyword: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n // https://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n builtin: {\n pattern:\n /(^|[\\s;|&]|[<>]\\()(?:\\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\\s;|&])/,\n lookbehind: true,\n // Alias added to make those easier to distinguish from strings.\n alias: 'class-name'\n },\n boolean: {\n pattern: /(^|[\\s;|&]|[<>]\\()(?:true|false)(?=$|[)\\s;|&])/,\n lookbehind: true\n },\n 'file-descriptor': {\n pattern: /\\B&\\d\\b/,\n alias: 'important'\n },\n operator: {\n // Lots of redirections here, but not just that.\n pattern:\n /\\d?<>|>\\||\\+=|=[=~]?|!=?|<<[<-]?|[&\\d]?>>|\\d[<>]&?|[<>][&=]?|&[>&]?|\\|[&|]?/,\n inside: {\n 'file-descriptor': {\n pattern: /^\\d/,\n alias: 'important'\n }\n }\n },\n punctuation: /\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];\\\\]/,\n number: {\n pattern: /(^|\\s)(?:[1-9]\\d*|0)(?:[.,]\\d+)?\\b/,\n lookbehind: true\n }\n }\n commandAfterHeredoc.inside = Prism.languages.bash\n /* Patterns in command substitution. */\n var toBeCopied = [\n 'comment',\n 'function-name',\n 'for-or-select',\n 'assign-left',\n 'string',\n 'environment',\n 'function',\n 'keyword',\n 'builtin',\n 'boolean',\n 'file-descriptor',\n 'operator',\n 'punctuation',\n 'number'\n ]\n var inside = insideString.variable[1].inside\n for (var i = 0; i < toBeCopied.length; i++) {\n inside[toBeCopied[i]] = Prism.languages.bash[toBeCopied[i]]\n }\n Prism.languages.shell = Prism.languages.bash\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9iYXNoLmpzPzlkYWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5QztBQUN6QztBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSx3QkFBd0IsR0FBRyxJQUFJO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQ0FBc0MsSUFBSSxjQUFjLElBQUksY0FBYyxFQUFFLGNBQWMsRUFBRTtBQUM1RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSxrRUFBa0U7QUFDbEU7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckM7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxrQkFBa0Iscy9DQUFzL0M7QUFDeGdEO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxrQkFBa0Isa0dBQWtHO0FBQ3BIO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQiwrUkFBK1I7QUFDalQ7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUJBQXlCLG1DQUFtQztBQUM1RDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsMkNBQTJDLElBQUk7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLHVCQUF1QjtBQUMxQztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3JlZnJhY3Rvci9sYW5nL2Jhc2guanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBiYXNoXG5iYXNoLmRpc3BsYXlOYW1lID0gJ2Jhc2gnXG5iYXNoLmFsaWFzZXMgPSBbJ3NoZWxsJ11cbmZ1bmN0aW9uIGJhc2goUHJpc20pIHtcbiAgOyhmdW5jdGlvbiAoUHJpc20pIHtcbiAgICAvLyAkIHNldCB8IGdyZXAgJ15bQS1aXVteWzpzcGFjZTpdXSo9JyB8IGN1dCAtZD0gLWYxIHwgdHIgJ1xcbicgJ3wnXG4gICAgLy8gKyBMQ19BTEwsIFJBTkRPTSwgUkVQTFksIFNFQ09ORFMuXG4gICAgLy8gKyBtYWtlIHN1cmUgUFMxLi40IGFyZSBoZXJlIGFzIHRoZXkgYXJlIG5vdCBhbHdheXMgc2V0LFxuICAgIC8vIC0gc29tZSB1c2VsZXNzIHRoaW5ncy5cbiAgICB2YXIgZW52VmFycyA9XG4gICAgICAnXFxcXGIoPzpCQVNIfEJBU0hPUFRTfEJBU0hfQUxJQVNFU3xCQVNIX0FSR0N8QkFTSF9BUkdWfEJBU0hfQ01EU3xCQVNIX0NPTVBMRVRJT05fQ09NUEFUX0RJUnxCQVNIX0xJTkVOT3xCQVNIX1JFTUFUQ0h8QkFTSF9TT1VSQ0V8QkFTSF9WRVJTSU5GT3xCQVNIX1ZFUlNJT058Q09MT1JURVJNfENPTFVNTlN8Q09NUF9XT1JEQlJFQUtTfERCVVNfU0VTU0lPTl9CVVNfQUREUkVTU3xERUZBVUxUU19QQVRIfERFU0tUT1BfU0VTU0lPTnxESVJTVEFDS3xESVNQTEFZfEVVSUR8R0RNU0VTU0lPTnxHRE1fTEFOR3xHTk9NRV9LRVlSSU5HX0NPTlRST0x8R05PTUVfS0VZUklOR19QSUR8R1BHX0FHRU5UX0lORk98R1JPVVBTfEhJU1RDT05UUk9MfEhJU1RGSUxFfEhJU1RGSUxFU0laRXxISVNUU0laRXxIT01FfEhPU1ROQU1FfEhPU1RUWVBFfElGU3xJTlNUQU5DRXxKT0J8TEFOR3xMQU5HVUFHRXxMQ19BRERSRVNTfExDX0FMTHxMQ19JREVOVElGSUNBVElPTnxMQ19NRUFTVVJFTUVOVHxMQ19NT05FVEFSWXxMQ19OQU1FfExDX05VTUVSSUN8TENfUEFQRVJ8TENfVEVMRVBIT05FfExDX1RJTUV8TEVTU0NMT1NFfExFU1NPUEVOfExJTkVTfExPR05BTUV8TFNfQ09MT1JTfE1BQ0hUWVBFfE1BSUxDSEVDS3xNQU5EQVRPUllfUEFUSHxOT19BVF9CUklER0V8T0xEUFdEfE9QVEVSUnxPUFRJTkR8T1JCSVRfU09DS0VURElSfE9TVFlQRXxQQVBFUlNJWkV8UEFUSHxQSVBFU1RBVFVTfFBQSUR8UFMxfFBTMnxQUzN8UFM0fFBXRHxSQU5ET018UkVQTFl8U0VDT05EU3xTRUxJTlVYX0lOSVR8U0VTU0lPTnxTRVNTSU9OVFlQRXxTRVNTSU9OX01BTkFHRVJ8U0hFTEx8U0hFTExPUFRTfFNITFZMfFNTSF9BVVRIX1NPQ0t8VEVSTXxVSUR8VVBTVEFSVF9FVkVOVFN8VVBTVEFSVF9JTlNUQU5DRXxVUFNUQVJUX0pPQnxVUFNUQVJUX1NFU1NJT058VVNFUnxXSU5ET1dJRHxYQVVUSE9SSVRZfFhER19DT05GSUdfRElSU3xYREdfQ1VSUkVOVF9ERVNLVE9QfFhER19EQVRBX0RJUlN8WERHX0dSRUVURVJfREFUQV9ESVJ8WERHX01FTlVfUFJFRklYfFhER19SVU5USU1FX0RJUnxYREdfU0VBVHxYREdfU0VBVF9QQVRIfFhER19TRVNTSU9OX0RFU0tUT1B8WERHX1NFU1NJT05fSUR8WERHX1NFU1NJT05fUEFUSHxYREdfU0VTU0lPTl9UWVBFfFhER19WVE5SfFhNT0RJRklFUlMpXFxcXGInXG4gICAgdmFyIGNvbW1hbmRBZnRlckhlcmVkb2MgPSB7XG4gICAgICBwYXR0ZXJuOiAvKF4oW1wiJ10/KVxcdytcXDIpWyBcXHRdK1xcUy4qLyxcbiAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICBhbGlhczogJ3B1bmN0dWF0aW9uJyxcbiAgICAgIC8vIHRoaXMgbG9va3MgcmVhc29uYWJseSB3ZWxsIGluIGFsbCB0aGVtZXNcbiAgICAgIGluc2lkZTogbnVsbCAvLyBzZWUgYmVsb3dcbiAgICB9XG4gICAgdmFyIGluc2lkZVN0cmluZyA9IHtcbiAgICAgIGJhc2g6IGNvbW1hbmRBZnRlckhlcmVkb2MsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoJ1xcXFwkJyArIGVudlZhcnMpLFxuICAgICAgICBhbGlhczogJ2NvbnN0YW50J1xuICAgICAgfSxcbiAgICAgIHZhcmlhYmxlOiBbXG4gICAgICAgIC8vIFswXTogQXJpdGhtZXRpYyBFbnZpcm9ubWVudFxuICAgICAgICB7XG4gICAgICAgICAgcGF0dGVybjogL1xcJD9cXChcXChbXFxzXFxTXSs/XFwpXFwpLyxcbiAgICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhICQgc2lnbiBhdCB0aGUgYmVnaW5uaW5nIGhpZ2hsaWdodCAkKCggYW5kICkpIGFzIHZhcmlhYmxlXG4gICAgICAgICAgICB2YXJpYWJsZTogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogLyheXFwkXFwoXFwoW1xcc1xcU10rKVxcKVxcKS8sXG4gICAgICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvXlxcJFxcKFxcKC9cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBudW1iZXI6XG4gICAgICAgICAgICAgIC9cXGIweFtcXGRBLUZhLWZdK1xcYnwoPzpcXGJcXGQrKD86XFwuXFxkKik/fFxcQlxcLlxcZCspKD86W0VlXS0/XFxkKyk/LyxcbiAgICAgICAgICAgIC8vIE9wZXJhdG9ycyBhY2NvcmRpbmcgdG8gaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9iYXNocmVmLmh0bWwjU2hlbGwtQXJpdGhtZXRpY1xuICAgICAgICAgICAgb3BlcmF0b3I6XG4gICAgICAgICAgICAgIC8tLXxcXCtcXCt8XFwqXFwqPT98PDw9P3w+Pj0/fCYmfFxcfFxcfHxbPSErXFwtKi8lPD5eJnxdPT98Wz9+Ol0vLFxuICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgbm8gJCBzaWduIGF0IHRoZSBiZWdpbm5pbmcgaGlnaGxpZ2h0ICgoIGFuZCApKSBhcyBwdW5jdHVhdGlvblxuICAgICAgICAgICAgcHVuY3R1YXRpb246IC9cXChcXCg/fFxcKVxcKT98LHw7L1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgLy8gWzFdOiBDb21tYW5kIFN1YnN0aXR1dGlvblxuICAgICAgICB7XG4gICAgICAgICAgcGF0dGVybjogL1xcJFxcKCg/OlxcKFteKV0rXFwpfFteKCldKStcXCl8YFteYF0rYC8sXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgdmFyaWFibGU6IC9eXFwkXFwofF5gfFxcKSR8YCQvXG4gICAgICAgICAgfVxuICAgICAgICB9LCAvLyBbMl06IEJyYWNlIGV4cGFuc2lvblxuICAgICAgICB7XG4gICAgICAgICAgcGF0dGVybjogL1xcJFxce1tefV0rXFx9LyxcbiAgICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgICBvcGVyYXRvcjogLzpbLT0/K10/fFshXFwvXXwjIz98JSU/fFxcXlxcXj98LCw/LyxcbiAgICAgICAgICAgIHB1bmN0dWF0aW9uOiAvW1xcW1xcXV0vLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICAgICAgcGF0dGVybjogUmVnRXhwKCcoXFxcXHspJyArIGVudlZhcnMpLFxuICAgICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgICAgICBhbGlhczogJ2NvbnN0YW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgL1xcJCg/Olxcdyt8WyM/KiFAJF0pL1xuICAgICAgXSxcbiAgICAgIC8vIEVzY2FwZSBzZXF1ZW5jZXMgZnJvbSBlY2hvIGFuZCBwcmludGYncyBtYW51YWxzLCBhbmQgZXNjYXBlZCBxdW90ZXMuXG4gICAgICBlbnRpdHk6XG4gICAgICAgIC9cXFxcKD86W2FiY2VFZm5ydHZcXFxcXCJdfE8/WzAtN117MSwzfXx4WzAtOWEtZkEtRl17MSwyfXx1WzAtOWEtZkEtRl17NH18VVswLTlhLWZBLUZdezh9KS9cbiAgICB9XG4gICAgUHJpc20ubGFuZ3VhZ2VzLmJhc2ggPSB7XG4gICAgICBzaGViYW5nOiB7XG4gICAgICAgIHBhdHRlcm46IC9eIyFcXHMqXFwvLiovLFxuICAgICAgICBhbGlhczogJ2ltcG9ydGFudCdcbiAgICAgIH0sXG4gICAgICBjb21tZW50OiB7XG4gICAgICAgIHBhdHRlcm46IC8oXnxbXlwie1xcXFwkXSkjLiovLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAgJ2Z1bmN0aW9uLW5hbWUnOiBbXG4gICAgICAgIC8vIGEpIGZ1bmN0aW9uIGZvbyB7XG4gICAgICAgIC8vIGIpIGZvbygpIHtcbiAgICAgICAgLy8gYykgZnVuY3Rpb24gZm9vKCkge1xuICAgICAgICAvLyBidXQgbm90IOKAnGZvbyB74oCdXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBhKSBhbmQgYylcbiAgICAgICAgICBwYXR0ZXJuOiAvKFxcYmZ1bmN0aW9uXFxzKylbXFx3LV0rKD89KD86XFxzKlxcKD86XFxzKlxcKSk/XFxzKlxceykvLFxuICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgYWxpYXM6ICdmdW5jdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIGIpXG4gICAgICAgICAgcGF0dGVybjogL1xcYltcXHctXSsoPz1cXHMqXFwoXFxzKlxcKVxccypcXHspLyxcbiAgICAgICAgICBhbGlhczogJ2Z1bmN0aW9uJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgLy8gSGlnaGxpZ2h0IHZhcmlhYmxlIG5hbWVzIGFzIHZhcmlhYmxlcyBpbiBmb3IgYW5kIHNlbGVjdCBiZWdpbm5pbmdzLlxuICAgICAgJ2Zvci1vci1zZWxlY3QnOiB7XG4gICAgICAgIHBhdHRlcm46IC8oXFxiKD86Zm9yfHNlbGVjdClcXHMrKVxcdysoPz1cXHMraW5cXHMpLyxcbiAgICAgICAgYWxpYXM6ICd2YXJpYWJsZScsXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAvLyBIaWdobGlnaHQgdmFyaWFibGUgbmFtZXMgYXMgdmFyaWFibGVzIGluIHRoZSBsZWZ0LWhhbmQgcGFydFxuICAgICAgLy8gb2YgYXNzaWdubWVudHMgKOKAnD3igJ0gYW5kIOKAnCs94oCdKS5cbiAgICAgICdhc3NpZ24tbGVmdCc6IHtcbiAgICAgICAgcGF0dGVybjogLyhefFtcXHM7fCZdfFs8Pl1cXCgpXFx3Kyg/PVxcKz89KS8sXG4gICAgICAgIGluc2lkZToge1xuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoJyhefFtcXFxcczt8Jl18Wzw+XVxcXFwoKScgKyBlbnZWYXJzKSxcbiAgICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgICBhbGlhczogJ2NvbnN0YW50J1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYWxpYXM6ICd2YXJpYWJsZScsXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICBzdHJpbmc6IFtcbiAgICAgICAgLy8gU3VwcG9ydCBmb3IgSGVyZS1kb2N1bWVudHMgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSGVyZV9kb2N1bWVudFxuICAgICAgICB7XG4gICAgICAgICAgcGF0dGVybjogLygoPzpefFtePF0pPDwtP1xccyopKFxcdyspXFxzW1xcc1xcU10qPyg/Olxccj9cXG58XFxyKVxcMi8sXG4gICAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgICAgaW5zaWRlOiBpbnNpZGVTdHJpbmdcbiAgICAgICAgfSwgLy8gSGVyZS1kb2N1bWVudCB3aXRoIHF1b3RlcyBhcm91bmQgdGhlIHRhZ1xuICAgICAgICAvLyDihpIgTm8gZXhwYW5zaW9uIChzbyBubyDigJxpbnNpZGXigJ0pLlxuICAgICAgICB7XG4gICAgICAgICAgcGF0dGVybjogLygoPzpefFtePF0pPDwtP1xccyopKFtcIiddKShcXHcrKVxcMlxcc1tcXHNcXFNdKj8oPzpcXHI/XFxufFxccilcXDMvLFxuICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgYmFzaDogY29tbWFuZEFmdGVySGVyZWRvY1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgLy8g4oCcTm9ybWFs4oCdIHN0cmluZ1xuICAgICAgICB7XG4gICAgICAgICAgLy8gaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvRG91YmxlLVF1b3Rlcy5odG1sXG4gICAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAgIC8oXnxbXlxcXFxdKD86XFxcXFxcXFwpKilcIig/OlxcXFxbXFxzXFxTXXxcXCRcXChbXildK1xcKXxcXCQoPyFcXCgpfGBbXmBdK2B8W15cIlxcXFxgJF0pKlwiLyxcbiAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgICAgICBpbnNpZGU6IGluc2lkZVN0cmluZ1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgLy8gaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2luZ2xlLVF1b3Rlcy5odG1sXG4gICAgICAgICAgcGF0dGVybjogLyhefFteJFxcXFxdKSdbXiddKicvLFxuICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2Jhc2gvbWFudWFsL2h0bWxfbm9kZS9BTlNJXzAwMmRDLVF1b3RpbmcuaHRtbFxuICAgICAgICAgIHBhdHRlcm46IC9cXCQnKD86W14nXFxcXF18XFxcXFtcXHNcXFNdKSonLyxcbiAgICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgICBlbnRpdHk6IGluc2lkZVN0cmluZy5lbnRpdHlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoJ1xcXFwkPycgKyBlbnZWYXJzKSxcbiAgICAgICAgYWxpYXM6ICdjb25zdGFudCdcbiAgICAgIH0sXG4gICAgICB2YXJpYWJsZTogaW5zaWRlU3RyaW5nLnZhcmlhYmxlLFxuICAgICAgZnVuY3Rpb246IHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKF58W1xcczt8Jl18Wzw+XVxcKCkoPzphZGR8YXByb3Bvc3xhcHR8YXB0aXR1ZGV8YXB0LWNhY2hlfGFwdC1nZXR8YXNwZWxsfGF1dG9teXNxbGJhY2t1cHxhd2t8YmFzZW5hbWV8YmFzaHxiY3xiY29uc29sZXxiZ3xiemlwMnxjYWx8Y2F0fGNmZGlza3xjaGdycHxjaGtjb25maWd8Y2htb2R8Y2hvd258Y2hyb290fGNrc3VtfGNsZWFyfGNtcHxjb2x1bW58Y29tbXxjb21wb3NlcnxjcHxjcm9ufGNyb250YWJ8Y3NwbGl0fGN1cmx8Y3V0fGRhdGV8ZGN8ZGR8ZGRyZXNjdWV8ZGVib290c3RyYXB8ZGZ8ZGlmZnxkaWZmM3xkaWd8ZGlyfGRpcmNvbG9yc3xkaXJuYW1lfGRpcnN8ZG1lc2d8ZHV8ZWdyZXB8ZWplY3R8ZW52fGV0aHRvb2x8ZXhwYW5kfGV4cGVjdHxleHByfGZkZm9ybWF0fGZkaXNrfGZnfGZncmVwfGZpbGV8ZmluZHxmbXR8Zm9sZHxmb3JtYXR8ZnJlZXxmc2NrfGZ0cHxmdXNlcnxnYXdrfGdpdHxncGFydGVkfGdyZXB8Z3JvdXBhZGR8Z3JvdXBkZWx8Z3JvdXBtb2R8Z3JvdXBzfGdydWItbWtjb25maWd8Z3ppcHxoYWx0fGhlYWR8aGd8aGlzdG9yeXxob3N0fGhvc3RuYW1lfGh0b3B8aWNvbnZ8aWR8aWZjb25maWd8aWZkb3dufGlmdXB8aW1wb3J0fGluc3RhbGx8aXB8am9ic3xqb2lufGtpbGx8a2lsbGFsbHxsZXNzfGxpbmt8bG58bG9jYXRlfGxvZ25hbWV8bG9ncm90YXRlfGxvb2t8bHBjfGxwcnxscHJpbnR8bHByaW50ZHxscHJpbnRxfGxwcm18bHN8bHNvZnxseW54fG1ha2V8bWFufG1jfG1kYWRtfG1rY29uZmlnfG1rZGlyfG1rZTJmc3xta2ZpZm98bWtmc3xta2lzb2ZzfG1rbm9kfG1rc3dhcHxtbXZ8bW9yZXxtb3N0fG1vdW50fG10b29sc3xtdHJ8bXV0dHxtdnxuYW5vfG5jfG5ldHN0YXR8bmljZXxubHxub2h1cHxub3RpZnktc2VuZHxucG18bnNsb29rdXB8b3B8b3BlbnxwYXJ0ZWR8cGFzc3dkfHBhc3RlfHBhdGhjaGt8cGluZ3xwa2lsbHxwbnBtfHBvcGR8cHJ8cHJpbnRjYXB8cHJpbnRlbnZ8cHN8cHVzaGR8cHZ8cXVvdGF8cXVvdGFjaGVja3xxdW90YWN0bHxyYW18cmFyfHJjcHxyZWJvb3R8cmVtc3luY3xyZW5hbWV8cmVuaWNlfHJldnxybXxybWRpcnxycG18cnN5bmN8c2NwfHNjcmVlbnxzZGlmZnxzZWR8c2VuZG1haWx8c2VxfHNlcnZpY2V8c2Z0cHxzaHxzaGVsbGNoZWNrfHNodWZ8c2h1dGRvd258c2xlZXB8c2xvY2F0ZXxzb3J0fHNwbGl0fHNzaHxzdGF0fHN0cmFjZXxzdXxzdWRvfHN1bXxzdXNwZW5kfHN3YXBvbnxzeW5jfHRhY3x0YWlsfHRhcnx0ZWV8dGltZXx0aW1lb3V0fHRvcHx0b3VjaHx0cnx0cmFjZXJvdXRlfHRzb3J0fHR0eXx1bW91bnR8dW5hbWV8dW5leHBhbmR8dW5pcXx1bml0c3x1bnJhcnx1bnNoYXJ8dW56aXB8dXBkYXRlLWdydWJ8dXB0aW1lfHVzZXJhZGR8dXNlcmRlbHx1c2VybW9kfHVzZXJzfHV1ZGVjb2RlfHV1ZW5jb2RlfHZ8dmRpcnx2aXx2aW18dmlyc2h8dm1zdGF0fHdhaXR8d2F0Y2h8d2N8d2dldHx3aGVyZWlzfHdoaWNofHdob3x3aG9hbWl8d3JpdGV8eGFyZ3N8eGRnLW9wZW58eWFybnx5ZXN8emVuaXR5fHppcHx6c2h8enlwcGVyKSg/PSR8WylcXHM7fCZdKS8sXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICBrZXl3b3JkOiB7XG4gICAgICAgIHBhdHRlcm46XG4gICAgICAgICAgLyhefFtcXHM7fCZdfFs8Pl1cXCgpKD86aWZ8dGhlbnxlbHNlfGVsaWZ8Zml8Zm9yfHdoaWxlfGlufGNhc2V8ZXNhY3xmdW5jdGlvbnxzZWxlY3R8ZG98ZG9uZXx1bnRpbCkoPz0kfFspXFxzO3wmXSkvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAgLy8gaHR0cHM6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9iYXNoL21hbnVhbC9odG1sX25vZGUvU2hlbGwtQnVpbHRpbi1Db21tYW5kcy5odG1sXG4gICAgICBidWlsdGluOiB7XG4gICAgICAgIHBhdHRlcm46XG4gICAgICAgICAgLyhefFtcXHM7fCZdfFs8Pl1cXCgpKD86XFwufDp8YnJlYWt8Y2R8Y29udGludWV8ZXZhbHxleGVjfGV4aXR8ZXhwb3J0fGdldG9wdHN8aGFzaHxwd2R8cmVhZG9ubHl8cmV0dXJufHNoaWZ0fHRlc3R8dGltZXN8dHJhcHx1bWFza3x1bnNldHxhbGlhc3xiaW5kfGJ1aWx0aW58Y2FsbGVyfGNvbW1hbmR8ZGVjbGFyZXxlY2hvfGVuYWJsZXxoZWxwfGxldHxsb2NhbHxsb2dvdXR8bWFwZmlsZXxwcmludGZ8cmVhZHxyZWFkYXJyYXl8c291cmNlfHR5cGV8dHlwZXNldHx1bGltaXR8dW5hbGlhc3xzZXR8c2hvcHQpKD89JHxbKVxcczt8Jl0pLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgLy8gQWxpYXMgYWRkZWQgdG8gbWFrZSB0aG9zZSBlYXNpZXIgdG8gZGlzdGluZ3Vpc2ggZnJvbSBzdHJpbmdzLlxuICAgICAgICBhbGlhczogJ2NsYXNzLW5hbWUnXG4gICAgICB9LFxuICAgICAgYm9vbGVhbjoge1xuICAgICAgICBwYXR0ZXJuOiAvKF58W1xcczt8Jl18Wzw+XVxcKCkoPzp0cnVlfGZhbHNlKSg/PSR8WylcXHM7fCZdKS8sXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAnZmlsZS1kZXNjcmlwdG9yJzoge1xuICAgICAgICBwYXR0ZXJuOiAvXFxCJlxcZFxcYi8sXG4gICAgICAgIGFsaWFzOiAnaW1wb3J0YW50J1xuICAgICAgfSxcbiAgICAgIG9wZXJhdG9yOiB7XG4gICAgICAgIC8vIExvdHMgb2YgcmVkaXJlY3Rpb25zIGhlcmUsIGJ1dCBub3QganVzdCB0aGF0LlxuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC9cXGQ/PD58PlxcfHxcXCs9fD1bPX5dP3whPT98PDxbPC1dP3xbJlxcZF0/Pj58XFxkWzw+XSY/fFs8Pl1bJj1dP3wmWz4mXT98XFx8WyZ8XT8vLFxuICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAnZmlsZS1kZXNjcmlwdG9yJzoge1xuICAgICAgICAgICAgcGF0dGVybjogL15cXGQvLFxuICAgICAgICAgICAgYWxpYXM6ICdpbXBvcnRhbnQnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgcHVuY3R1YXRpb246IC9cXCQ/XFwoXFwoP3xcXClcXCk/fFxcLlxcLnxbe31bXFxdO1xcXFxdLyxcbiAgICAgIG51bWJlcjoge1xuICAgICAgICBwYXR0ZXJuOiAvKF58XFxzKSg/OlsxLTldXFxkKnwwKSg/OlsuLF1cXGQrKT9cXGIvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9XG4gICAgfVxuICAgIGNvbW1hbmRBZnRlckhlcmVkb2MuaW5zaWRlID0gUHJpc20ubGFuZ3VhZ2VzLmJhc2hcbiAgICAvKiBQYXR0ZXJucyBpbiBjb21tYW5kIHN1YnN0aXR1dGlvbi4gKi9cbiAgICB2YXIgdG9CZUNvcGllZCA9IFtcbiAgICAgICdjb21tZW50JyxcbiAgICAgICdmdW5jdGlvbi1uYW1lJyxcbiAgICAgICdmb3Itb3Itc2VsZWN0JyxcbiAgICAgICdhc3NpZ24tbGVmdCcsXG4gICAgICAnc3RyaW5nJyxcbiAgICAgICdlbnZpcm9ubWVudCcsXG4gICAgICAnZnVuY3Rpb24nLFxuICAgICAgJ2tleXdvcmQnLFxuICAgICAgJ2J1aWx0aW4nLFxuICAgICAgJ2Jvb2xlYW4nLFxuICAgICAgJ2ZpbGUtZGVzY3JpcHRvcicsXG4gICAgICAnb3BlcmF0b3InLFxuICAgICAgJ3B1bmN0dWF0aW9uJyxcbiAgICAgICdudW1iZXInXG4gICAgXVxuICAgIHZhciBpbnNpZGUgPSBpbnNpZGVTdHJpbmcudmFyaWFibGVbMV0uaW5zaWRlXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b0JlQ29waWVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICBpbnNpZGVbdG9CZUNvcGllZFtpXV0gPSBQcmlzbS5sYW5ndWFnZXMuYmFzaFt0b0JlQ29waWVkW2ldXVxuICAgIH1cbiAgICBQcmlzbS5sYW5ndWFnZXMuc2hlbGwgPSBQcmlzbS5sYW5ndWFnZXMuYmFzaFxuICB9KShQcmlzbSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/bash.js\n")},"../../node_modules/refractor/lang/clike.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = clike\nclike.displayName = 'clike'\nclike.aliases = []\nfunction clike(Prism) {\n Prism.languages.clike = {\n comment: [\n {\n pattern: /(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n lookbehind: true,\n greedy: true\n },\n {\n pattern: /(^|[^\\\\:])\\/\\/.*/,\n lookbehind: true,\n greedy: true\n }\n ],\n string: {\n pattern: /([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,\n greedy: true\n },\n 'class-name': {\n pattern:\n /(\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+|\\bcatch\\s+\\()[\\w.\\\\]+/i,\n lookbehind: true,\n inside: {\n punctuation: /[.\\\\]/\n }\n },\n keyword:\n /\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\n boolean: /\\b(?:true|false)\\b/,\n function: /\\b\\w+(?=\\()/,\n number: /\\b0x[\\da-f]+\\b|(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,\n operator: /[<>]=?|[!=]=?=?|--?|\\+\\+?|&&?|\\|\\|?|[?*/~^%]/,\n punctuation: /[{}[\\];(),.:]/\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9jbGlrZS5qcz8zOTk4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsSUFBSTtBQUN6QjtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9jbGlrZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IGNsaWtlXG5jbGlrZS5kaXNwbGF5TmFtZSA9ICdjbGlrZSdcbmNsaWtlLmFsaWFzZXMgPSBbXVxuZnVuY3Rpb24gY2xpa2UoUHJpc20pIHtcbiAgUHJpc20ubGFuZ3VhZ2VzLmNsaWtlID0ge1xuICAgIGNvbW1lbnQ6IFtcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjogLyhefFteXFxcXF0pXFwvXFwqW1xcc1xcU10qPyg/OlxcKlxcL3wkKS8sXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGdyZWVkeTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjogLyhefFteXFxcXDpdKVxcL1xcLy4qLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgICB9XG4gICAgXSxcbiAgICBzdHJpbmc6IHtcbiAgICAgIHBhdHRlcm46IC8oW1wiJ10pKD86XFxcXCg/OlxcclxcbnxbXFxzXFxTXSl8KD8hXFwxKVteXFxcXFxcclxcbl0pKlxcMS8sXG4gICAgICBncmVlZHk6IHRydWVcbiAgICB9LFxuICAgICdjbGFzcy1uYW1lJzoge1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgLyhcXGIoPzpjbGFzc3xpbnRlcmZhY2V8ZXh0ZW5kc3xpbXBsZW1lbnRzfHRyYWl0fGluc3RhbmNlb2Z8bmV3KVxccyt8XFxiY2F0Y2hcXHMrXFwoKVtcXHcuXFxcXF0rL2ksXG4gICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgaW5zaWRlOiB7XG4gICAgICAgIHB1bmN0dWF0aW9uOiAvWy5cXFxcXS9cbiAgICAgIH1cbiAgICB9LFxuICAgIGtleXdvcmQ6XG4gICAgICAvXFxiKD86aWZ8ZWxzZXx3aGlsZXxkb3xmb3J8cmV0dXJufGlufGluc3RhbmNlb2Z8ZnVuY3Rpb258bmV3fHRyeXx0aHJvd3xjYXRjaHxmaW5hbGx5fG51bGx8YnJlYWt8Y29udGludWUpXFxiLyxcbiAgICBib29sZWFuOiAvXFxiKD86dHJ1ZXxmYWxzZSlcXGIvLFxuICAgIGZ1bmN0aW9uOiAvXFxiXFx3Kyg/PVxcKCkvLFxuICAgIG51bWJlcjogL1xcYjB4W1xcZGEtZl0rXFxifCg/OlxcYlxcZCsoPzpcXC5cXGQqKT98XFxCXFwuXFxkKykoPzplWystXT9cXGQrKT8vaSxcbiAgICBvcGVyYXRvcjogL1s8Pl09P3xbIT1dPT89P3wtLT98XFwrXFwrP3wmJj98XFx8XFx8P3xbPyovfl4lXS8sXG4gICAgcHVuY3R1YXRpb246IC9be31bXFxdOygpLC46XS9cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/clike.js\n")},"../../node_modules/refractor/lang/css.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = css\ncss.displayName = 'css'\ncss.aliases = []\nfunction css(Prism) {\n ;(function (Prism) {\n var string =\n /(?:\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"|'(?:\\\\(?:\\r\\n|[\\s\\S])|[^'\\\\\\r\\n])*')/\n Prism.languages.css = {\n comment: /\\/\\*[\\s\\S]*?\\*\\//,\n atrule: {\n pattern: /@[\\w-](?:[^;{\\s]|\\s+(?![\\s{]))*(?:;|(?=\\s*\\{))/,\n inside: {\n rule: /^@[\\w-]+/,\n 'selector-function-argument': {\n pattern:\n /(\\bselector\\s*\\(\\s*(?![\\s)]))(?:[^()\\s]|\\s+(?![\\s)])|\\((?:[^()]|\\([^()]*\\))*\\))+(?=\\s*\\))/,\n lookbehind: true,\n alias: 'selector'\n },\n keyword: {\n pattern: /(^|[^\\w-])(?:and|not|only|or)(?![\\w-])/,\n lookbehind: true\n } // See rest below\n }\n },\n url: {\n // https://drafts.csswg.org/css-values-3/#urls\n pattern: RegExp(\n '\\\\burl\\\\((?:' +\n string.source +\n '|' +\n /(?:[^\\\\\\r\\n()\"']|\\\\[\\s\\S])*/.source +\n ')\\\\)',\n 'i'\n ),\n greedy: true,\n inside: {\n function: /^url/i,\n punctuation: /^\\(|\\)$/,\n string: {\n pattern: RegExp('^' + string.source + '$'),\n alias: 'url'\n }\n }\n },\n selector: {\n pattern: RegExp(\n '(^|[{}\\\\s])[^{}\\\\s](?:[^{};\"\\'\\\\s]|\\\\s+(?![\\\\s{])|' +\n string.source +\n ')*(?=\\\\s*\\\\{)'\n ),\n lookbehind: true\n },\n string: {\n pattern: string,\n greedy: true\n },\n property: {\n pattern:\n /(^|[^-\\w\\xA0-\\uFFFF])(?!\\s)[-_a-z\\xA0-\\uFFFF](?:(?!\\s)[-\\w\\xA0-\\uFFFF])*(?=\\s*:)/i,\n lookbehind: true\n },\n important: /!important\\b/i,\n function: {\n pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\\()/i,\n lookbehind: true\n },\n punctuation: /[(){};:,]/\n }\n Prism.languages.css['atrule'].inside.rest = Prism.languages.css\n var markup = Prism.languages.markup\n if (markup) {\n markup.tag.addInlined('style', 'css')\n markup.tag.addAttribute('style', 'css')\n }\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9jc3MuanM/MDE4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0JBQStCLGNBQWMsUUFBUSxTQUFTO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsaUJBQWlCLFNBQVMsWUFBWSxvQkFBb0I7QUFDMUQ7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9jc3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBjc3NcbmNzcy5kaXNwbGF5TmFtZSA9ICdjc3MnXG5jc3MuYWxpYXNlcyA9IFtdXG5mdW5jdGlvbiBjc3MoUHJpc20pIHtcbiAgOyhmdW5jdGlvbiAoUHJpc20pIHtcbiAgICB2YXIgc3RyaW5nID1cbiAgICAgIC8oPzpcIig/OlxcXFwoPzpcXHJcXG58W1xcc1xcU10pfFteXCJcXFxcXFxyXFxuXSkqXCJ8Jyg/OlxcXFwoPzpcXHJcXG58W1xcc1xcU10pfFteJ1xcXFxcXHJcXG5dKSonKS9cbiAgICBQcmlzbS5sYW5ndWFnZXMuY3NzID0ge1xuICAgICAgY29tbWVudDogL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vLFxuICAgICAgYXRydWxlOiB7XG4gICAgICAgIHBhdHRlcm46IC9AW1xcdy1dKD86W147e1xcc118XFxzKyg/IVtcXHN7XSkpKig/Ojt8KD89XFxzKlxceykpLyxcbiAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgcnVsZTogL15AW1xcdy1dKy8sXG4gICAgICAgICAgJ3NlbGVjdG9yLWZ1bmN0aW9uLWFyZ3VtZW50Jzoge1xuICAgICAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAgICAgLyhcXGJzZWxlY3RvclxccypcXChcXHMqKD8hW1xccyldKSkoPzpbXigpXFxzXXxcXHMrKD8hW1xccyldKXxcXCgoPzpbXigpXXxcXChbXigpXSpcXCkpKlxcKSkrKD89XFxzKlxcKSkvLFxuICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgICAgIGFsaWFzOiAnc2VsZWN0b3InXG4gICAgICAgICAgfSxcbiAgICAgICAgICBrZXl3b3JkOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAvKF58W15cXHctXSkoPzphbmR8bm90fG9ubHl8b3IpKD8hW1xcdy1dKS8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICAgICAgfSAvLyBTZWUgcmVzdCBiZWxvd1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXJsOiB7XG4gICAgICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdmFsdWVzLTMvI3VybHNcbiAgICAgICAgcGF0dGVybjogUmVnRXhwKFxuICAgICAgICAgICdcXFxcYnVybFxcXFwoKD86JyArXG4gICAgICAgICAgICBzdHJpbmcuc291cmNlICtcbiAgICAgICAgICAgICd8JyArXG4gICAgICAgICAgICAvKD86W15cXFxcXFxyXFxuKClcIiddfFxcXFxbXFxzXFxTXSkqLy5zb3VyY2UgK1xuICAgICAgICAgICAgJylcXFxcKScsXG4gICAgICAgICAgJ2knXG4gICAgICAgICksXG4gICAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgZnVuY3Rpb246IC9edXJsL2ksXG4gICAgICAgICAgcHVuY3R1YXRpb246IC9eXFwofFxcKSQvLFxuICAgICAgICAgIHN0cmluZzoge1xuICAgICAgICAgICAgcGF0dGVybjogUmVnRXhwKCdeJyArIHN0cmluZy5zb3VyY2UgKyAnJCcpLFxuICAgICAgICAgICAgYWxpYXM6ICd1cmwnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2VsZWN0b3I6IHtcbiAgICAgICAgcGF0dGVybjogUmVnRXhwKFxuICAgICAgICAgICcoXnxbe31cXFxcc10pW157fVxcXFxzXSg/Oltee307XCJcXCdcXFxcc118XFxcXHMrKD8hW1xcXFxze10pfCcgK1xuICAgICAgICAgICAgc3RyaW5nLnNvdXJjZSArXG4gICAgICAgICAgICAnKSooPz1cXFxccypcXFxceyknXG4gICAgICAgICksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICBzdHJpbmc6IHtcbiAgICAgICAgcGF0dGVybjogc3RyaW5nLFxuICAgICAgICBncmVlZHk6IHRydWVcbiAgICAgIH0sXG4gICAgICBwcm9wZXJ0eToge1xuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8oXnxbXi1cXHdcXHhBMC1cXHVGRkZGXSkoPyFcXHMpWy1fYS16XFx4QTAtXFx1RkZGRl0oPzooPyFcXHMpWy1cXHdcXHhBMC1cXHVGRkZGXSkqKD89XFxzKjopL2ksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICBpbXBvcnRhbnQ6IC8haW1wb3J0YW50XFxiL2ksXG4gICAgICBmdW5jdGlvbjoge1xuICAgICAgICBwYXR0ZXJuOiAvKF58W14tYS16MC05XSlbLWEtejAtOV0rKD89XFwoKS9pLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAgcHVuY3R1YXRpb246IC9bKCl7fTs6LF0vXG4gICAgfVxuICAgIFByaXNtLmxhbmd1YWdlcy5jc3NbJ2F0cnVsZSddLmluc2lkZS5yZXN0ID0gUHJpc20ubGFuZ3VhZ2VzLmNzc1xuICAgIHZhciBtYXJrdXAgPSBQcmlzbS5sYW5ndWFnZXMubWFya3VwXG4gICAgaWYgKG1hcmt1cCkge1xuICAgICAgbWFya3VwLnRhZy5hZGRJbmxpbmVkKCdzdHlsZScsICdjc3MnKVxuICAgICAgbWFya3VwLnRhZy5hZGRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NzcycpXG4gICAgfVxuICB9KShQcmlzbSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/css.js\n")},"../../node_modules/refractor/lang/graphql.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = graphql\ngraphql.displayName = 'graphql'\ngraphql.aliases = []\nfunction graphql(Prism) {\n Prism.languages.graphql = {\n comment: /#.*/,\n description: {\n pattern:\n /(?:\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")(?=\\s*[a-z_])/i,\n greedy: true,\n alias: 'string',\n inside: {\n 'language-markdown': {\n pattern: /(^\"(?:\"\")?)(?!\\1)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: Prism.languages.markdown\n }\n }\n },\n string: {\n pattern: /\"\"\"(?:[^\"]|(?!\"\"\")\")*\"\"\"|\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,\n greedy: true\n },\n number: /(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n boolean: /\\b(?:true|false)\\b/,\n variable: /\\$[a-z_]\\w*/i,\n directive: {\n pattern: /@[a-z_]\\w*/i,\n alias: 'function'\n },\n 'attr-name': {\n pattern: /[a-z_]\\w*(?=\\s*(?:\\((?:[^()\"]|\"(?:\\\\.|[^\\\\\"\\r\\n])*\")*\\))?:)/i,\n greedy: true\n },\n 'atom-input': {\n pattern: /[A-Z]\\w*Input(?=!?.*$)/m,\n alias: 'class-name'\n },\n scalar: /\\b(?:Boolean|Float|ID|Int|String)\\b/,\n constant: /\\b[A-Z][A-Z_\\d]*\\b/,\n 'class-name': {\n pattern:\n /(\\b(?:enum|implements|interface|on|scalar|type|union)\\s+|&\\s*|:\\s*|\\[)[A-Z_]\\w*/,\n lookbehind: true\n },\n fragment: {\n pattern: /(\\bfragment\\s+|\\.{3}\\s*(?!on\\b))[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-mutation': {\n pattern: /(\\bmutation\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n 'definition-query': {\n pattern: /(\\bquery\\s+)[a-zA-Z_]\\w*/,\n lookbehind: true,\n alias: 'function'\n },\n keyword:\n /\\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\\b/,\n operator: /[!=|&]|\\.{3}/,\n 'property-query': /\\w+(?=\\s*\\()/,\n object: /\\w+(?=\\s*\\{)/,\n punctuation: /[!(){}\\[\\]:=,]/,\n property: /\\w+/\n }\n Prism.hooks.add('after-tokenize', function afterTokenizeGraphql(env) {\n if (env.language !== 'graphql') {\n return\n }\n /**\n * get the graphql token stream that we want to customize\n *\n * @typedef {InstanceType<import(\"./prism-core\")[\"Token\"]>} Token\n * @type {Token[]}\n */\n var validTokens = env.tokens.filter(function (token) {\n return (\n typeof token !== 'string' &&\n token.type !== 'comment' &&\n token.type !== 'scalar'\n )\n })\n var currentIndex = 0\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {number} offset\n * @returns {Token | undefined}\n */\n function getToken(offset) {\n return validTokens[currentIndex + offset]\n }\n /**\n * Returns whether the token relative to the current index has the given type.\n *\n * @param {readonly string[]} types\n * @param {number} [offset=0]\n * @returns {boolean}\n */\n function isTokenType(types, offset) {\n offset = offset || 0\n for (var i = 0; i < types.length; i++) {\n var token = getToken(i + offset)\n if (!token || token.type !== types[i]) {\n return false\n }\n }\n return true\n }\n /**\n * Returns the index of the closing bracket to an opening bracket.\n *\n * It is assumed that `token[currentIndex - 1]` is an opening bracket.\n *\n * If no closing bracket could be found, `-1` will be returned.\n *\n * @param {RegExp} open\n * @param {RegExp} close\n * @returns {number}\n */\n function findClosingBracket(open, close) {\n var stackHeight = 1\n for (var i = currentIndex; i < validTokens.length; i++) {\n var token = validTokens[i]\n var content = token.content\n if (token.type === 'punctuation' && typeof content === 'string') {\n if (open.test(content)) {\n stackHeight++\n } else if (close.test(content)) {\n stackHeight--\n if (stackHeight === 0) {\n return i\n }\n }\n }\n }\n return -1\n }\n /**\n * Adds an alias to the given token.\n *\n * @param {Token} token\n * @param {string} alias\n * @returns {void}\n */\n function addAlias(token, alias) {\n var aliases = token.alias\n if (!aliases) {\n token.alias = aliases = []\n } else if (!Array.isArray(aliases)) {\n token.alias = aliases = [aliases]\n }\n aliases.push(alias)\n }\n for (; currentIndex < validTokens.length; ) {\n var startToken = validTokens[currentIndex++] // add special aliases for mutation tokens\n if (startToken.type === 'keyword' && startToken.content === 'mutation') {\n // any array of the names of all input variables (if any)\n var inputVariables = []\n if (\n isTokenType(['definition-mutation', 'punctuation']) &&\n getToken(1).content === '('\n ) {\n // definition\n currentIndex += 2 // skip 'definition-mutation' and 'punctuation'\n var definitionEnd = findClosingBracket(/^\\($/, /^\\)$/)\n if (definitionEnd === -1) {\n continue\n } // find all input variables\n for (; currentIndex < definitionEnd; currentIndex++) {\n var t = getToken(0)\n if (t.type === 'variable') {\n addAlias(t, 'variable-input')\n inputVariables.push(t.content)\n }\n }\n currentIndex = definitionEnd + 1\n }\n if (\n isTokenType(['punctuation', 'property-query']) &&\n getToken(0).content === '{'\n ) {\n currentIndex++ // skip opening bracket\n addAlias(getToken(0), 'property-mutation')\n if (inputVariables.length > 0) {\n var mutationEnd = findClosingBracket(/^\\{$/, /^\\}$/)\n if (mutationEnd === -1) {\n continue\n } // give references to input variables a special alias\n for (var i = currentIndex; i < mutationEnd; i++) {\n var varToken = validTokens[i]\n if (\n varToken.type === 'variable' &&\n inputVariables.indexOf(varToken.content) >= 0\n ) {\n addAlias(varToken, 'variable-input')\n }\n }\n }\n }\n }\n }\n })\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9ncmFwaHFsLmpzP2U4NjYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxrQ0FBa0MsRUFBRTtBQUNwQztBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSx5QkFBeUIsRUFBRTtBQUMzQjtBQUNBLHdCQUF3QjtBQUN4Qix3QkFBd0I7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDhDQUE4QztBQUMvRCxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE9BQU87QUFDdEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxrQkFBa0I7QUFDakMsZUFBZSxPQUFPO0FBQ3RCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsa0JBQWtCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE9BQU87QUFDdEIsZUFBZSxPQUFPO0FBQ3RCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0Msd0JBQXdCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxNQUFNO0FBQ3JCLGVBQWUsT0FBTztBQUN0QixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVUsbUNBQW1DO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLGdCQUFnQiw4QkFBOEI7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQsUUFBUTtBQUM3RDtBQUNBO0FBQ0EsYUFBYTtBQUNiLHNDQUFzQyxpQkFBaUI7QUFDdkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9ncmFwaHFsLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gZ3JhcGhxbFxuZ3JhcGhxbC5kaXNwbGF5TmFtZSA9ICdncmFwaHFsJ1xuZ3JhcGhxbC5hbGlhc2VzID0gW11cbmZ1bmN0aW9uIGdyYXBocWwoUHJpc20pIHtcbiAgUHJpc20ubGFuZ3VhZ2VzLmdyYXBocWwgPSB7XG4gICAgY29tbWVudDogLyMuKi8sXG4gICAgZGVzY3JpcHRpb246IHtcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIC8oPzpcIlwiXCIoPzpbXlwiXXwoPyFcIlwiXCIpXCIpKlwiXCJcInxcIig/OlxcXFwufFteXFxcXFwiXFxyXFxuXSkqXCIpKD89XFxzKlthLXpfXSkvaSxcbiAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgIGFsaWFzOiAnc3RyaW5nJyxcbiAgICAgIGluc2lkZToge1xuICAgICAgICAnbGFuZ3VhZ2UtbWFya2Rvd24nOiB7XG4gICAgICAgICAgcGF0dGVybjogLyheXCIoPzpcIlwiKT8pKD8hXFwxKVtcXHNcXFNdKyg/PVxcMSQpLyxcbiAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLm1hcmtkb3duXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHN0cmluZzoge1xuICAgICAgcGF0dGVybjogL1wiXCJcIig/OlteXCJdfCg/IVwiXCJcIilcIikqXCJcIlwifFwiKD86XFxcXC58W15cXFxcXCJcXHJcXG5dKSpcIi8sXG4gICAgICBncmVlZHk6IHRydWVcbiAgICB9LFxuICAgIG51bWJlcjogLyg/OlxcQi18XFxiKVxcZCsoPzpcXC5cXGQrKT8oPzplWystXT9cXGQrKT9cXGIvaSxcbiAgICBib29sZWFuOiAvXFxiKD86dHJ1ZXxmYWxzZSlcXGIvLFxuICAgIHZhcmlhYmxlOiAvXFwkW2Etel9dXFx3Ki9pLFxuICAgIGRpcmVjdGl2ZToge1xuICAgICAgcGF0dGVybjogL0BbYS16X11cXHcqL2ksXG4gICAgICBhbGlhczogJ2Z1bmN0aW9uJ1xuICAgIH0sXG4gICAgJ2F0dHItbmFtZSc6IHtcbiAgICAgIHBhdHRlcm46IC9bYS16X11cXHcqKD89XFxzKig/OlxcKCg/OlteKClcIl18XCIoPzpcXFxcLnxbXlxcXFxcIlxcclxcbl0pKlwiKSpcXCkpPzopL2ksXG4gICAgICBncmVlZHk6IHRydWVcbiAgICB9LFxuICAgICdhdG9tLWlucHV0Jzoge1xuICAgICAgcGF0dGVybjogL1tBLVpdXFx3KklucHV0KD89IT8uKiQpL20sXG4gICAgICBhbGlhczogJ2NsYXNzLW5hbWUnXG4gICAgfSxcbiAgICBzY2FsYXI6IC9cXGIoPzpCb29sZWFufEZsb2F0fElEfEludHxTdHJpbmcpXFxiLyxcbiAgICBjb25zdGFudDogL1xcYltBLVpdW0EtWl9cXGRdKlxcYi8sXG4gICAgJ2NsYXNzLW5hbWUnOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvKFxcYig/OmVudW18aW1wbGVtZW50c3xpbnRlcmZhY2V8b258c2NhbGFyfHR5cGV8dW5pb24pXFxzK3wmXFxzKnw6XFxzKnxcXFspW0EtWl9dXFx3Ki8sXG4gICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgfSxcbiAgICBmcmFnbWVudDoge1xuICAgICAgcGF0dGVybjogLyhcXGJmcmFnbWVudFxccyt8XFwuezN9XFxzKig/IW9uXFxiKSlbYS16QS1aX11cXHcqLyxcbiAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICBhbGlhczogJ2Z1bmN0aW9uJ1xuICAgIH0sXG4gICAgJ2RlZmluaXRpb24tbXV0YXRpb24nOiB7XG4gICAgICBwYXR0ZXJuOiAvKFxcYm11dGF0aW9uXFxzKylbYS16QS1aX11cXHcqLyxcbiAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICBhbGlhczogJ2Z1bmN0aW9uJ1xuICAgIH0sXG4gICAgJ2RlZmluaXRpb24tcXVlcnknOiB7XG4gICAgICBwYXR0ZXJuOiAvKFxcYnF1ZXJ5XFxzKylbYS16QS1aX11cXHcqLyxcbiAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICBhbGlhczogJ2Z1bmN0aW9uJ1xuICAgIH0sXG4gICAga2V5d29yZDpcbiAgICAgIC9cXGIoPzpkaXJlY3RpdmV8ZW51bXxleHRlbmR8ZnJhZ21lbnR8aW1wbGVtZW50c3xpbnB1dHxpbnRlcmZhY2V8bXV0YXRpb258b258cXVlcnl8cmVwZWF0YWJsZXxzY2FsYXJ8c2NoZW1hfHN1YnNjcmlwdGlvbnx0eXBlfHVuaW9uKVxcYi8sXG4gICAgb3BlcmF0b3I6IC9bIT18Jl18XFwuezN9LyxcbiAgICAncHJvcGVydHktcXVlcnknOiAvXFx3Kyg/PVxccypcXCgpLyxcbiAgICBvYmplY3Q6IC9cXHcrKD89XFxzKlxceykvLFxuICAgIHB1bmN0dWF0aW9uOiAvWyEoKXt9XFxbXFxdOj0sXS8sXG4gICAgcHJvcGVydHk6IC9cXHcrL1xuICB9XG4gIFByaXNtLmhvb2tzLmFkZCgnYWZ0ZXItdG9rZW5pemUnLCBmdW5jdGlvbiBhZnRlclRva2VuaXplR3JhcGhxbChlbnYpIHtcbiAgICBpZiAoZW52Lmxhbmd1YWdlICE9PSAnZ3JhcGhxbCcpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICAvKipcbiAgICAgKiBnZXQgdGhlIGdyYXBocWwgdG9rZW4gc3RyZWFtIHRoYXQgd2Ugd2FudCB0byBjdXN0b21pemVcbiAgICAgKlxuICAgICAqIEB0eXBlZGVmIHtJbnN0YW5jZVR5cGU8aW1wb3J0KFwiLi9wcmlzbS1jb3JlXCIpW1wiVG9rZW5cIl0+fSBUb2tlblxuICAgICAqIEB0eXBlIHtUb2tlbltdfVxuICAgICAqL1xuICAgIHZhciB2YWxpZFRva2VucyA9IGVudi50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdHlwZW9mIHRva2VuICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICB0b2tlbi50eXBlICE9PSAnY29tbWVudCcgJiZcbiAgICAgICAgdG9rZW4udHlwZSAhPT0gJ3NjYWxhcidcbiAgICAgIClcbiAgICB9KVxuICAgIHZhciBjdXJyZW50SW5kZXggPSAwXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSB0b2tlbiByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpbmRleCBoYXMgdGhlIGdpdmVuIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge251bWJlcn0gb2Zmc2V0XG4gICAgICogQHJldHVybnMge1Rva2VuIHwgdW5kZWZpbmVkfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGdldFRva2VuKG9mZnNldCkge1xuICAgICAgcmV0dXJuIHZhbGlkVG9rZW5zW2N1cnJlbnRJbmRleCArIG9mZnNldF1cbiAgICB9XG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIHRoZSB0b2tlbiByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBpbmRleCBoYXMgdGhlIGdpdmVuIHR5cGUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3JlYWRvbmx5IHN0cmluZ1tdfSB0eXBlc1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSBbb2Zmc2V0PTBdXG4gICAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAgICovXG4gICAgZnVuY3Rpb24gaXNUb2tlblR5cGUodHlwZXMsIG9mZnNldCkge1xuICAgICAgb2Zmc2V0ID0gb2Zmc2V0IHx8IDBcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdHlwZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHRva2VuID0gZ2V0VG9rZW4oaSArIG9mZnNldClcbiAgICAgICAgaWYgKCF0b2tlbiB8fCB0b2tlbi50eXBlICE9PSB0eXBlc1tpXSkge1xuICAgICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBpbmRleCBvZiB0aGUgY2xvc2luZyBicmFja2V0IHRvIGFuIG9wZW5pbmcgYnJhY2tldC5cbiAgICAgKlxuICAgICAqIEl0IGlzIGFzc3VtZWQgdGhhdCBgdG9rZW5bY3VycmVudEluZGV4IC0gMV1gIGlzIGFuIG9wZW5pbmcgYnJhY2tldC5cbiAgICAgKlxuICAgICAqIElmIG5vIGNsb3NpbmcgYnJhY2tldCBjb3VsZCBiZSBmb3VuZCwgYC0xYCB3aWxsIGJlIHJldHVybmVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtSZWdFeHB9IG9wZW5cbiAgICAgKiBAcGFyYW0ge1JlZ0V4cH0gY2xvc2VcbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIGZpbmRDbG9zaW5nQnJhY2tldChvcGVuLCBjbG9zZSkge1xuICAgICAgdmFyIHN0YWNrSGVpZ2h0ID0gMVxuICAgICAgZm9yICh2YXIgaSA9IGN1cnJlbnRJbmRleDsgaSA8IHZhbGlkVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IHZhbGlkVG9rZW5zW2ldXG4gICAgICAgIHZhciBjb250ZW50ID0gdG9rZW4uY29udGVudFxuICAgICAgICBpZiAodG9rZW4udHlwZSA9PT0gJ3B1bmN0dWF0aW9uJyAmJiB0eXBlb2YgY29udGVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAob3Blbi50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICBzdGFja0hlaWdodCsrXG4gICAgICAgICAgfSBlbHNlIGlmIChjbG9zZS50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICAgICAgICBzdGFja0hlaWdodC0tXG4gICAgICAgICAgICBpZiAoc3RhY2tIZWlnaHQgPT09IDApIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAtMVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBBZGRzIGFuIGFsaWFzIHRvIHRoZSBnaXZlbiB0b2tlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7VG9rZW59IHRva2VuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGFsaWFzXG4gICAgICogQHJldHVybnMge3ZvaWR9XG4gICAgICovXG4gICAgZnVuY3Rpb24gYWRkQWxpYXModG9rZW4sIGFsaWFzKSB7XG4gICAgICB2YXIgYWxpYXNlcyA9IHRva2VuLmFsaWFzXG4gICAgICBpZiAoIWFsaWFzZXMpIHtcbiAgICAgICAgdG9rZW4uYWxpYXMgPSBhbGlhc2VzID0gW11cbiAgICAgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkoYWxpYXNlcykpIHtcbiAgICAgICAgdG9rZW4uYWxpYXMgPSBhbGlhc2VzID0gW2FsaWFzZXNdXG4gICAgICB9XG4gICAgICBhbGlhc2VzLnB1c2goYWxpYXMpXG4gICAgfVxuICAgIGZvciAoOyBjdXJyZW50SW5kZXggPCB2YWxpZFRva2Vucy5sZW5ndGg7ICkge1xuICAgICAgdmFyIHN0YXJ0VG9rZW4gPSB2YWxpZFRva2Vuc1tjdXJyZW50SW5kZXgrK10gLy8gYWRkIHNwZWNpYWwgYWxpYXNlcyBmb3IgbXV0YXRpb24gdG9rZW5zXG4gICAgICBpZiAoc3RhcnRUb2tlbi50eXBlID09PSAna2V5d29yZCcgJiYgc3RhcnRUb2tlbi5jb250ZW50ID09PSAnbXV0YXRpb24nKSB7XG4gICAgICAgIC8vIGFueSBhcnJheSBvZiB0aGUgbmFtZXMgb2YgYWxsIGlucHV0IHZhcmlhYmxlcyAoaWYgYW55KVxuICAgICAgICB2YXIgaW5wdXRWYXJpYWJsZXMgPSBbXVxuICAgICAgICBpZiAoXG4gICAgICAgICAgaXNUb2tlblR5cGUoWydkZWZpbml0aW9uLW11dGF0aW9uJywgJ3B1bmN0dWF0aW9uJ10pICYmXG4gICAgICAgICAgZ2V0VG9rZW4oMSkuY29udGVudCA9PT0gJygnXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIGRlZmluaXRpb25cbiAgICAgICAgICBjdXJyZW50SW5kZXggKz0gMiAvLyBza2lwICdkZWZpbml0aW9uLW11dGF0aW9uJyBhbmQgJ3B1bmN0dWF0aW9uJ1xuICAgICAgICAgIHZhciBkZWZpbml0aW9uRW5kID0gZmluZENsb3NpbmdCcmFja2V0KC9eXFwoJC8sIC9eXFwpJC8pXG4gICAgICAgICAgaWYgKGRlZmluaXRpb25FbmQgPT09IC0xKSB7XG4gICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgIH0gLy8gZmluZCBhbGwgaW5wdXQgdmFyaWFibGVzXG4gICAgICAgICAgZm9yICg7IGN1cnJlbnRJbmRleCA8IGRlZmluaXRpb25FbmQ7IGN1cnJlbnRJbmRleCsrKSB7XG4gICAgICAgICAgICB2YXIgdCA9IGdldFRva2VuKDApXG4gICAgICAgICAgICBpZiAodC50eXBlID09PSAndmFyaWFibGUnKSB7XG4gICAgICAgICAgICAgIGFkZEFsaWFzKHQsICd2YXJpYWJsZS1pbnB1dCcpXG4gICAgICAgICAgICAgIGlucHV0VmFyaWFibGVzLnB1c2godC5jb250ZW50KVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBjdXJyZW50SW5kZXggPSBkZWZpbml0aW9uRW5kICsgMVxuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBpc1Rva2VuVHlwZShbJ3B1bmN0dWF0aW9uJywgJ3Byb3BlcnR5LXF1ZXJ5J10pICYmXG4gICAgICAgICAgZ2V0VG9rZW4oMCkuY29udGVudCA9PT0gJ3snXG4gICAgICAgICkge1xuICAgICAgICAgIGN1cnJlbnRJbmRleCsrIC8vIHNraXAgb3BlbmluZyBicmFja2V0XG4gICAgICAgICAgYWRkQWxpYXMoZ2V0VG9rZW4oMCksICdwcm9wZXJ0eS1tdXRhdGlvbicpXG4gICAgICAgICAgaWYgKGlucHV0VmFyaWFibGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHZhciBtdXRhdGlvbkVuZCA9IGZpbmRDbG9zaW5nQnJhY2tldCgvXlxceyQvLCAvXlxcfSQvKVxuICAgICAgICAgICAgaWYgKG11dGF0aW9uRW5kID09PSAtMSkge1xuICAgICAgICAgICAgICBjb250aW51ZVxuICAgICAgICAgICAgfSAvLyBnaXZlIHJlZmVyZW5jZXMgdG8gaW5wdXQgdmFyaWFibGVzIGEgc3BlY2lhbCBhbGlhc1xuICAgICAgICAgICAgZm9yICh2YXIgaSA9IGN1cnJlbnRJbmRleDsgaSA8IG11dGF0aW9uRW5kOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFyIHZhclRva2VuID0gdmFsaWRUb2tlbnNbaV1cbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIHZhclRva2VuLnR5cGUgPT09ICd2YXJpYWJsZScgJiZcbiAgICAgICAgICAgICAgICBpbnB1dFZhcmlhYmxlcy5pbmRleE9mKHZhclRva2VuLmNvbnRlbnQpID49IDBcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgYWRkQWxpYXModmFyVG9rZW4sICd2YXJpYWJsZS1pbnB1dCcpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/graphql.js\n")},"../../node_modules/refractor/lang/javascript.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = javascript\njavascript.displayName = 'javascript'\njavascript.aliases = ['js']\nfunction javascript(Prism) {\n Prism.languages.javascript = Prism.languages.extend('clike', {\n 'class-name': [\n Prism.languages.clike['class-name'],\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$A-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\.(?:prototype|constructor))/,\n lookbehind: true\n }\n ],\n keyword: [\n {\n pattern: /((?:^|\\})\\s*)catch\\b/,\n lookbehind: true\n },\n {\n pattern:\n /(^|[^.]|\\.\\.\\.\\s*)\\b(?:as|assert(?=\\s*\\{)|async(?=\\s*(?:function\\b|\\(|[$\\w\\xA0-\\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\\s*(?:\\{|$))|for|from(?=\\s*(?:['\"]|$))|function|(?:get|set)(?=\\s*(?:[#\\[$\\w\\xA0-\\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\\b/,\n lookbehind: true\n }\n ],\n // Allow for all non-ASCII characters (See http://stackoverflow.com/a/2008444)\n function:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*(?:\\.\\s*(?:apply|bind|call)\\s*)?\\()/,\n number:\n /\\b(?:(?:0[xX](?:[\\dA-Fa-f](?:_[\\dA-Fa-f])?)+|0[bB](?:[01](?:_[01])?)+|0[oO](?:[0-7](?:_[0-7])?)+)n?|(?:\\d(?:_\\d)?)+n|NaN|Infinity)\\b|(?:\\b(?:\\d(?:_\\d)?)+\\.?(?:\\d(?:_\\d)?)*|\\B\\.(?:\\d(?:_\\d)?)+)(?:[Ee][+-]?(?:\\d(?:_\\d)?)+)?/,\n operator:\n /--|\\+\\+|\\*\\*=?|=>|&&=?|\\|\\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\\.{3}|\\?\\?=?|\\?\\.?|[~:]/\n })\n Prism.languages.javascript['class-name'][0].pattern =\n /(\\b(?:class|interface|extends|implements|instanceof|new)\\s+)[\\w.\\\\]+/\n Prism.languages.insertBefore('javascript', 'keyword', {\n regex: {\n // eslint-disable-next-line regexp/no-dupe-characters-character-class\n pattern:\n /((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))/,\n lookbehind: true,\n greedy: true,\n inside: {\n 'regex-source': {\n pattern: /^(\\/)[\\s\\S]+(?=\\/[a-z]*$)/,\n lookbehind: true,\n alias: 'language-regex',\n inside: Prism.languages.regex\n },\n 'regex-delimiter': /^\\/|\\/$/,\n 'regex-flags': /^[a-z]+$/\n }\n },\n // This must be declared before keyword because we use \"function\" inside the look-forward\n 'function-variable': {\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*[=:]\\s*(?:async\\s*)?(?:\\bfunction\\b|(?:\\((?:[^()]|\\([^()]*\\))*\\)|(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)\\s*=>))/,\n alias: 'function'\n },\n parameter: [\n {\n pattern:\n /(function(?:\\s+(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*)?\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\))/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(^|[^$\\w\\xA0-\\uFFFF])(?!\\s)[_$a-z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?=\\s*=>)/i,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /(\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*=>)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n {\n pattern:\n /((?:\\b|\\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\\w\\xA0-\\uFFFF]))(?:(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*)\\(\\s*|\\]\\s*\\(\\s*)(?!\\s)(?:[^()\\s]|\\s+(?![\\s)])|\\([^()]*\\))+(?=\\s*\\)\\s*\\{)/,\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n ],\n constant: /\\b[A-Z](?:[A-Z_]|\\dx?)*\\b/\n })\n Prism.languages.insertBefore('javascript', 'string', {\n hashbang: {\n pattern: /^#!.*/,\n greedy: true,\n alias: 'comment'\n },\n 'template-string': {\n pattern:\n /`(?:\\\\[\\s\\S]|\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}|(?!\\$\\{)[^\\\\`])*`/,\n greedy: true,\n inside: {\n 'template-punctuation': {\n pattern: /^`|`$/,\n alias: 'string'\n },\n interpolation: {\n pattern:\n /((?:^|[^\\\\])(?:\\\\{2})*)\\$\\{(?:[^{}]|\\{(?:[^{}]|\\{[^}]*\\})*\\})+\\}/,\n lookbehind: true,\n inside: {\n 'interpolation-punctuation': {\n pattern: /^\\$\\{|\\}$/,\n alias: 'punctuation'\n },\n rest: Prism.languages.javascript\n }\n },\n string: /[\\s\\S]+/\n }\n }\n })\n if (Prism.languages.markup) {\n Prism.languages.markup.tag.addInlined('script', 'javascript') // add attribute support for all DOM events.\n // https://developer.mozilla.org/en-US/docs/Web/Events#Standard_events\n Prism.languages.markup.tag.addAttribute(\n /on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/\n .source,\n 'javascript'\n )\n }\n Prism.languages.js = Prism.languages.javascript\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qYXZhc2NyaXB0LmpzP2IzNDEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxtREFBbUQsK0pBQStKO0FBQ2xOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDRFQUE0RSxFQUFFO0FBQzlFLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0SEFBNEgsSUFBSSxrREFBa0QsRUFBRTtBQUNwTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLHFmQUFxZjtBQUNyZjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLDBCQUEwQixPQUFPLElBQUksT0FBTyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksUUFBUTtBQUN2RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSwrQkFBK0IsRUFBRSxPQUFPLE9BQU8sSUFBSSxPQUFPLElBQUksR0FBRyxJQUFJLElBQUksSUFBSTtBQUM3RTtBQUNBO0FBQ0E7QUFDQSw2QkFBNkIsR0FBRztBQUNoQztBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qYXZhc2NyaXB0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gamF2YXNjcmlwdFxuamF2YXNjcmlwdC5kaXNwbGF5TmFtZSA9ICdqYXZhc2NyaXB0J1xuamF2YXNjcmlwdC5hbGlhc2VzID0gWydqcyddXG5mdW5jdGlvbiBqYXZhc2NyaXB0KFByaXNtKSB7XG4gIFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0ID0gUHJpc20ubGFuZ3VhZ2VzLmV4dGVuZCgnY2xpa2UnLCB7XG4gICAgJ2NsYXNzLW5hbWUnOiBbXG4gICAgICBQcmlzbS5sYW5ndWFnZXMuY2xpa2VbJ2NsYXNzLW5hbWUnXSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKF58W14kXFx3XFx4QTAtXFx1RkZGRl0pKD8hXFxzKVtfJEEtWlxceEEwLVxcdUZGRkZdKD86KD8hXFxzKVskXFx3XFx4QTAtXFx1RkZGRl0pKig/PVxcLig/OnByb3RvdHlwZXxjb25zdHJ1Y3RvcikpLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgfVxuICAgIF0sXG4gICAga2V5d29yZDogW1xuICAgICAge1xuICAgICAgICBwYXR0ZXJuOiAvKCg/Ol58XFx9KVxccyopY2F0Y2hcXGIvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8oXnxbXi5dfFxcLlxcLlxcLlxccyopXFxiKD86YXN8YXNzZXJ0KD89XFxzKlxceyl8YXN5bmMoPz1cXHMqKD86ZnVuY3Rpb25cXGJ8XFwofFskXFx3XFx4QTAtXFx1RkZGRl18JCkpfGF3YWl0fGJyZWFrfGNhc2V8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZpbmFsbHkoPz1cXHMqKD86XFx7fCQpKXxmb3J8ZnJvbSg/PVxccyooPzpbJ1wiXXwkKSl8ZnVuY3Rpb258KD86Z2V0fHNldCkoPz1cXHMqKD86WyNcXFskXFx3XFx4QTAtXFx1RkZGRl18JCkpfGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxuZXd8bnVsbHxvZnxwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZXR1cm58c3RhdGljfHN1cGVyfHN3aXRjaHx0aGlzfHRocm93fHRyeXx0eXBlb2Z8dW5kZWZpbmVkfHZhcnx2b2lkfHdoaWxlfHdpdGh8eWllbGQpXFxiLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgfVxuICAgIF0sXG4gICAgLy8gQWxsb3cgZm9yIGFsbCBub24tQVNDSUkgY2hhcmFjdGVycyAoU2VlIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9hLzIwMDg0NDQpXG4gICAgZnVuY3Rpb246XG4gICAgICAvIz8oPyFcXHMpW18kYS16QS1aXFx4QTAtXFx1RkZGRl0oPzooPyFcXHMpWyRcXHdcXHhBMC1cXHVGRkZGXSkqKD89XFxzKig/OlxcLlxccyooPzphcHBseXxiaW5kfGNhbGwpXFxzKik/XFwoKS8sXG4gICAgbnVtYmVyOlxuICAgICAgL1xcYig/Oig/OjBbeFhdKD86W1xcZEEtRmEtZl0oPzpfW1xcZEEtRmEtZl0pPykrfDBbYkJdKD86WzAxXSg/Ol9bMDFdKT8pK3wwW29PXSg/OlswLTddKD86X1swLTddKT8pKyluP3woPzpcXGQoPzpfXFxkKT8pK258TmFOfEluZmluaXR5KVxcYnwoPzpcXGIoPzpcXGQoPzpfXFxkKT8pK1xcLj8oPzpcXGQoPzpfXFxkKT8pKnxcXEJcXC4oPzpcXGQoPzpfXFxkKT8pKykoPzpbRWVdWystXT8oPzpcXGQoPzpfXFxkKT8pKyk/LyxcbiAgICBvcGVyYXRvcjpcbiAgICAgIC8tLXxcXCtcXCt8XFwqXFwqPT98PT58JiY9P3xcXHxcXHw9P3xbIT1dPT18PDw9P3w+Pj4/PT98Wy0rKi8lJnxeIT08Pl09P3xcXC57M318XFw/XFw/PT98XFw/XFwuP3xbfjpdL1xuICB9KVxuICBQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdFsnY2xhc3MtbmFtZSddWzBdLnBhdHRlcm4gPVxuICAgIC8oXFxiKD86Y2xhc3N8aW50ZXJmYWNlfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfG5ldylcXHMrKVtcXHcuXFxcXF0rL1xuICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ2tleXdvcmQnLCB7XG4gICAgcmVnZXg6IHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvbm8tZHVwZS1jaGFyYWN0ZXJzLWNoYXJhY3Rlci1jbGFzc1xuICAgICAgcGF0dGVybjpcbiAgICAgICAgLygoPzpefFteJFxcd1xceEEwLVxcdUZGRkYuXCInXFxdKVxcc118XFxiKD86cmV0dXJufHlpZWxkKSlcXHMqKVxcLyg/OlxcWyg/OlteXFxdXFxcXFxcclxcbl18XFxcXC4pKlxcXXxcXFxcLnxbXi9cXFxcXFxbXFxyXFxuXSkrXFwvW2RnaW15dXNdezAsN30oPz0oPzpcXHN8XFwvXFwqKD86W14qXXxcXCooPyFcXC8pKSpcXCpcXC8pKig/OiR8W1xcclxcbiwuOzp9KVxcXV18XFwvXFwvKSkvLFxuICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgIGluc2lkZToge1xuICAgICAgICAncmVnZXgtc291cmNlJzoge1xuICAgICAgICAgIHBhdHRlcm46IC9eKFxcLylbXFxzXFxTXSsoPz1cXC9bYS16XSokKS8sXG4gICAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgICBhbGlhczogJ2xhbmd1YWdlLXJlZ2V4JyxcbiAgICAgICAgICBpbnNpZGU6IFByaXNtLmxhbmd1YWdlcy5yZWdleFxuICAgICAgICB9LFxuICAgICAgICAncmVnZXgtZGVsaW1pdGVyJzogL15cXC98XFwvJC8sXG4gICAgICAgICdyZWdleC1mbGFncyc6IC9eW2Etel0rJC9cbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIFRoaXMgbXVzdCBiZSBkZWNsYXJlZCBiZWZvcmUga2V5d29yZCBiZWNhdXNlIHdlIHVzZSBcImZ1bmN0aW9uXCIgaW5zaWRlIHRoZSBsb29rLWZvcndhcmRcbiAgICAnZnVuY3Rpb24tdmFyaWFibGUnOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvIz8oPyFcXHMpW18kYS16QS1aXFx4QTAtXFx1RkZGRl0oPzooPyFcXHMpWyRcXHdcXHhBMC1cXHVGRkZGXSkqKD89XFxzKls9Ol1cXHMqKD86YXN5bmNcXHMqKT8oPzpcXGJmdW5jdGlvblxcYnwoPzpcXCgoPzpbXigpXXxcXChbXigpXSpcXCkpKlxcKXwoPyFcXHMpW18kYS16QS1aXFx4QTAtXFx1RkZGRl0oPzooPyFcXHMpWyRcXHdcXHhBMC1cXHVGRkZGXSkqKVxccyo9PikpLyxcbiAgICAgIGFsaWFzOiAnZnVuY3Rpb24nXG4gICAgfSxcbiAgICBwYXJhbWV0ZXI6IFtcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKGZ1bmN0aW9uKD86XFxzKyg/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSopP1xccypcXChcXHMqKSg/IVxccykoPzpbXigpXFxzXXxcXHMrKD8hW1xccyldKXxcXChbXigpXSpcXCkpKyg/PVxccypcXCkpLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiBQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKF58W14kXFx3XFx4QTAtXFx1RkZGRl0pKD8hXFxzKVtfJGEtelxceEEwLVxcdUZGRkZdKD86KD8hXFxzKVskXFx3XFx4QTAtXFx1RkZGRl0pKig/PVxccyo9PikvaSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiBQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKFxcKFxccyopKD8hXFxzKSg/OlteKClcXHNdfFxccysoPyFbXFxzKV0pfFxcKFteKCldKlxcKSkrKD89XFxzKlxcKVxccyo9PikvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBpbnNpZGU6IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8oKD86XFxifFxcc3xeKSg/ISg/OmFzfGFzeW5jfGF3YWl0fGJyZWFrfGNhc2V8Y2F0Y2h8Y2xhc3N8Y29uc3R8Y29udGludWV8ZGVidWdnZXJ8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxuZXd8bnVsbHxvZnxwYWNrYWdlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZXR1cm58c2V0fHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx3aXRofHlpZWxkKSg/IVskXFx3XFx4QTAtXFx1RkZGRl0pKSg/Oig/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSpcXHMqKVxcKFxccyp8XFxdXFxzKlxcKFxccyopKD8hXFxzKSg/OlteKClcXHNdfFxccysoPyFbXFxzKV0pfFxcKFteKCldKlxcKSkrKD89XFxzKlxcKVxccypcXHspLyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiBQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdFxuICAgICAgfVxuICAgIF0sXG4gICAgY29uc3RhbnQ6IC9cXGJbQS1aXSg/OltBLVpfXXxcXGR4PykqXFxiL1xuICB9KVxuICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ3N0cmluZycsIHtcbiAgICBoYXNoYmFuZzoge1xuICAgICAgcGF0dGVybjogL14jIS4qLyxcbiAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgIGFsaWFzOiAnY29tbWVudCdcbiAgICB9LFxuICAgICd0ZW1wbGF0ZS1zdHJpbmcnOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvYCg/OlxcXFxbXFxzXFxTXXxcXCRcXHsoPzpbXnt9XXxcXHsoPzpbXnt9XXxcXHtbXn1dKlxcfSkqXFx9KStcXH18KD8hXFwkXFx7KVteXFxcXGBdKSpgLyxcbiAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgIGluc2lkZToge1xuICAgICAgICAndGVtcGxhdGUtcHVuY3R1YXRpb24nOiB7XG4gICAgICAgICAgcGF0dGVybjogL15gfGAkLyxcbiAgICAgICAgICBhbGlhczogJ3N0cmluZydcbiAgICAgICAgfSxcbiAgICAgICAgaW50ZXJwb2xhdGlvbjoge1xuICAgICAgICAgIHBhdHRlcm46XG4gICAgICAgICAgICAvKCg/Ol58W15cXFxcXSkoPzpcXFxcezJ9KSopXFwkXFx7KD86W157fV18XFx7KD86W157fV18XFx7W159XSpcXH0pKlxcfSkrXFx9LyxcbiAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgJ2ludGVycG9sYXRpb24tcHVuY3R1YXRpb24nOiB7XG4gICAgICAgICAgICAgIHBhdHRlcm46IC9eXFwkXFx7fFxcfSQvLFxuICAgICAgICAgICAgICBhbGlhczogJ3B1bmN0dWF0aW9uJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc3Q6IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBzdHJpbmc6IC9bXFxzXFxTXSsvXG4gICAgICB9XG4gICAgfVxuICB9KVxuICBpZiAoUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cCkge1xuICAgIFByaXNtLmxhbmd1YWdlcy5tYXJrdXAudGFnLmFkZElubGluZWQoJ3NjcmlwdCcsICdqYXZhc2NyaXB0JykgLy8gYWRkIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBhbGwgRE9NIGV2ZW50cy5cbiAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9FdmVudHMjU3RhbmRhcmRfZXZlbnRzXG4gICAgUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cC50YWcuYWRkQXR0cmlidXRlKFxuICAgICAgL29uKD86YWJvcnR8Ymx1cnxjaGFuZ2V8Y2xpY2t8Y29tcG9zaXRpb24oPzplbmR8c3RhcnR8dXBkYXRlKXxkYmxjbGlja3xlcnJvcnxmb2N1cyg/OmlufG91dCk/fGtleSg/OmRvd258dXApfGxvYWR8bW91c2UoPzpkb3dufGVudGVyfGxlYXZlfG1vdmV8b3V0fG92ZXJ8dXApfHJlc2V0fHJlc2l6ZXxzY3JvbGx8c2VsZWN0fHNsb3RjaGFuZ2V8c3VibWl0fHVubG9hZHx3aGVlbCkvXG4gICAgICAgIC5zb3VyY2UsXG4gICAgICAnamF2YXNjcmlwdCdcbiAgICApXG4gIH1cbiAgUHJpc20ubGFuZ3VhZ2VzLmpzID0gUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHRcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/javascript.js\n")},"../../node_modules/refractor/lang/js-extras.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = jsExtras\njsExtras.displayName = 'jsExtras'\njsExtras.aliases = []\nfunction jsExtras(Prism) {\n ;(function (Prism) {\n Prism.languages.insertBefore('javascript', 'function-variable', {\n 'method-variable': {\n pattern: RegExp(\n '(\\\\.\\\\s*)' +\n Prism.languages.javascript['function-variable'].pattern.source\n ),\n lookbehind: true,\n alias: ['function-variable', 'method', 'function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'function', {\n method: {\n pattern: RegExp(\n '(\\\\.\\\\s*)' + Prism.languages.javascript['function'].source\n ),\n lookbehind: true,\n alias: ['function', 'property-access']\n }\n })\n Prism.languages.insertBefore('javascript', 'constant', {\n 'known-class-name': [\n {\n // standard built-ins\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\n pattern:\n /\\b(?:(?:(?:Uint|Int)(?:8|16|32)|Uint8Clamped|Float(?:32|64))?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|(?:Weak)?(?:Set|Map)|WebAssembly)\\b/,\n alias: 'class-name'\n },\n {\n // errors\n pattern: /\\b(?:[A-Z]\\w*)Error\\b/,\n alias: 'class-name'\n }\n ]\n })\n /**\n * Replaces the `<ID>` placeholder in the given pattern with a pattern for general JS identifiers.\n *\n * @param {string} source\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function withId(source, flags) {\n return RegExp(\n source.replace(/<ID>/g, function () {\n return /(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/.source\n }),\n flags\n )\n }\n Prism.languages.insertBefore('javascript', 'keyword', {\n imports: {\n // https://tc39.es/ecma262/#sec-imports\n pattern: withId(\n /(\\bimport\\b\\s*)(?:<ID>(?:\\s*,\\s*(?:\\*\\s*as\\s+<ID>|\\{[^{}]*\\}))?|\\*\\s*as\\s+<ID>|\\{[^{}]*\\})(?=\\s*\\bfrom\\b)/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n },\n exports: {\n // https://tc39.es/ecma262/#sec-exports\n pattern: withId(\n /(\\bexport\\b\\s*)(?:\\*(?:\\s*as\\s+<ID>)?(?=\\s*\\bfrom\\b)|\\{[^{}]*\\})/\n .source\n ),\n lookbehind: true,\n inside: Prism.languages.javascript\n }\n })\n Prism.languages.javascript['keyword'].unshift(\n {\n pattern: /\\b(?:as|default|export|from|import)\\b/,\n alias: 'module'\n },\n {\n pattern:\n /\\b(?:await|break|catch|continue|do|else|for|finally|if|return|switch|throw|try|while|yield)\\b/,\n alias: 'control-flow'\n },\n {\n pattern: /\\bnull\\b/,\n alias: ['null', 'nil']\n },\n {\n pattern: /\\bundefined\\b/,\n alias: 'nil'\n }\n )\n Prism.languages.insertBefore('javascript', 'operator', {\n spread: {\n pattern: /\\.{3}/,\n alias: 'operator'\n },\n arrow: {\n pattern: /=>/,\n alias: 'operator'\n }\n })\n Prism.languages.insertBefore('javascript', 'punctuation', {\n 'property-access': {\n pattern: withId(/(\\.\\s*)#?<ID>/.source),\n lookbehind: true\n },\n 'maybe-class-name': {\n pattern: /(^|[^$\\w\\xA0-\\uFFFF])[A-Z][$\\w\\xA0-\\uFFFF]+/,\n lookbehind: true\n },\n dom: {\n // this contains only a few commonly used DOM variables\n pattern:\n /\\b(?:document|location|navigator|performance|(?:local|session)Storage|window)\\b/,\n alias: 'variable'\n },\n console: {\n pattern: /\\bconsole(?=\\s*\\.)/,\n alias: 'class-name'\n }\n }) // add 'maybe-class-name' to tokens which might be a class name\n var maybeClassNameTokens = [\n 'function',\n 'function-variable',\n 'method',\n 'method-variable',\n 'property-access'\n ]\n for (var i = 0; i < maybeClassNameTokens.length; i++) {\n var token = maybeClassNameTokens[i]\n var value = Prism.languages.javascript[token] // convert regex to object\n if (Prism.util.type(value) === 'RegExp') {\n value = Prism.languages.javascript[token] = {\n pattern: value\n }\n } // keep in mind that we don't support arrays\n var inside = value.inside || {}\n value.inside = inside\n inside['maybe-class-name'] = /^[A-Z][\\s\\S]*/\n }\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qcy1leHRyYXMuanM/ZGMwOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxlQUFlLE9BQU87QUFDdEIsZUFBZSxPQUFPO0FBQ3RCLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStELElBQUksSUFBSSxxQkFBcUIsSUFBSSxJQUFJO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLGtFQUFrRSxJQUFJLElBQUk7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsRUFBRTtBQUN2QjtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixpQ0FBaUM7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qcy1leHRyYXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBqc0V4dHJhc1xuanNFeHRyYXMuZGlzcGxheU5hbWUgPSAnanNFeHRyYXMnXG5qc0V4dHJhcy5hbGlhc2VzID0gW11cbmZ1bmN0aW9uIGpzRXh0cmFzKFByaXNtKSB7XG4gIDsoZnVuY3Rpb24gKFByaXNtKSB7XG4gICAgUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgnamF2YXNjcmlwdCcsICdmdW5jdGlvbi12YXJpYWJsZScsIHtcbiAgICAgICdtZXRob2QtdmFyaWFibGUnOiB7XG4gICAgICAgIHBhdHRlcm46IFJlZ0V4cChcbiAgICAgICAgICAnKFxcXFwuXFxcXHMqKScgK1xuICAgICAgICAgICAgUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHRbJ2Z1bmN0aW9uLXZhcmlhYmxlJ10ucGF0dGVybi5zb3VyY2VcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6IFsnZnVuY3Rpb24tdmFyaWFibGUnLCAnbWV0aG9kJywgJ2Z1bmN0aW9uJywgJ3Byb3BlcnR5LWFjY2VzcyddXG4gICAgICB9XG4gICAgfSlcbiAgICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ2Z1bmN0aW9uJywge1xuICAgICAgbWV0aG9kOiB7XG4gICAgICAgIHBhdHRlcm46IFJlZ0V4cChcbiAgICAgICAgICAnKFxcXFwuXFxcXHMqKScgKyBQcmlzbS5sYW5ndWFnZXMuamF2YXNjcmlwdFsnZnVuY3Rpb24nXS5zb3VyY2VcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6IFsnZnVuY3Rpb24nLCAncHJvcGVydHktYWNjZXNzJ11cbiAgICAgIH1cbiAgICB9KVxuICAgIFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoJ2phdmFzY3JpcHQnLCAnY29uc3RhbnQnLCB7XG4gICAgICAna25vd24tY2xhc3MtbmFtZSc6IFtcbiAgICAgICAge1xuICAgICAgICAgIC8vIHN0YW5kYXJkIGJ1aWx0LWluc1xuICAgICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzXG4gICAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAgIC9cXGIoPzooPzooPzpVaW50fEludCkoPzo4fDE2fDMyKXxVaW50OENsYW1wZWR8RmxvYXQoPzozMnw2NCkpP0FycmF5fEFycmF5QnVmZmVyfEJpZ0ludHxCb29sZWFufERhdGFWaWV3fERhdGV8RXJyb3J8RnVuY3Rpb258SW50bHxKU09OfE1hdGh8TnVtYmVyfE9iamVjdHxQcm9taXNlfFByb3h5fFJlZmxlY3R8UmVnRXhwfFN0cmluZ3xTeW1ib2x8KD86V2Vhayk/KD86U2V0fE1hcCl8V2ViQXNzZW1ibHkpXFxiLyxcbiAgICAgICAgICBhbGlhczogJ2NsYXNzLW5hbWUnXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBlcnJvcnNcbiAgICAgICAgICBwYXR0ZXJuOiAvXFxiKD86W0EtWl1cXHcqKUVycm9yXFxiLyxcbiAgICAgICAgICBhbGlhczogJ2NsYXNzLW5hbWUnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9KVxuICAgIC8qKlxuICAgICAqIFJlcGxhY2VzIHRoZSBgPElEPmAgcGxhY2Vob2xkZXIgaW4gdGhlIGdpdmVuIHBhdHRlcm4gd2l0aCBhIHBhdHRlcm4gZm9yIGdlbmVyYWwgSlMgaWRlbnRpZmllcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtmbGFnc11cbiAgICAgKiBAcmV0dXJucyB7UmVnRXhwfVxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHdpdGhJZChzb3VyY2UsIGZsYWdzKSB7XG4gICAgICByZXR1cm4gUmVnRXhwKFxuICAgICAgICBzb3VyY2UucmVwbGFjZSgvPElEPi9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIC8oPyFcXHMpW18kYS16QS1aXFx4QTAtXFx1RkZGRl0oPzooPyFcXHMpWyRcXHdcXHhBMC1cXHVGRkZGXSkqLy5zb3VyY2VcbiAgICAgICAgfSksXG4gICAgICAgIGZsYWdzXG4gICAgICApXG4gICAgfVxuICAgIFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoJ2phdmFzY3JpcHQnLCAna2V5d29yZCcsIHtcbiAgICAgIGltcG9ydHM6IHtcbiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1pbXBvcnRzXG4gICAgICAgIHBhdHRlcm46IHdpdGhJZChcbiAgICAgICAgICAvKFxcYmltcG9ydFxcYlxccyopKD86PElEPig/OlxccyosXFxzKig/OlxcKlxccyphc1xccys8SUQ+fFxce1tee31dKlxcfSkpP3xcXCpcXHMqYXNcXHMrPElEPnxcXHtbXnt9XSpcXH0pKD89XFxzKlxcYmZyb21cXGIpL1xuICAgICAgICAgICAgLnNvdXJjZVxuICAgICAgICApLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBpbnNpZGU6IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0XG4gICAgICB9LFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAvLyBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLWV4cG9ydHNcbiAgICAgICAgcGF0dGVybjogd2l0aElkKFxuICAgICAgICAgIC8oXFxiZXhwb3J0XFxiXFxzKikoPzpcXCooPzpcXHMqYXNcXHMrPElEPik/KD89XFxzKlxcYmZyb21cXGIpfFxce1tee31dKlxcfSkvXG4gICAgICAgICAgICAuc291cmNlXG4gICAgICAgICksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHRcbiAgICAgIH1cbiAgICB9KVxuICAgIFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0WydrZXl3b3JkJ10udW5zaGlmdChcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjogL1xcYig/OmFzfGRlZmF1bHR8ZXhwb3J0fGZyb218aW1wb3J0KVxcYi8sXG4gICAgICAgIGFsaWFzOiAnbW9kdWxlJ1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvXFxiKD86YXdhaXR8YnJlYWt8Y2F0Y2h8Y29udGludWV8ZG98ZWxzZXxmb3J8ZmluYWxseXxpZnxyZXR1cm58c3dpdGNofHRocm93fHRyeXx3aGlsZXx5aWVsZClcXGIvLFxuICAgICAgICBhbGlhczogJ2NvbnRyb2wtZmxvdydcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBhdHRlcm46IC9cXGJudWxsXFxiLyxcbiAgICAgICAgYWxpYXM6IFsnbnVsbCcsICduaWwnXVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcGF0dGVybjogL1xcYnVuZGVmaW5lZFxcYi8sXG4gICAgICAgIGFsaWFzOiAnbmlsJ1xuICAgICAgfVxuICAgIClcbiAgICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ29wZXJhdG9yJywge1xuICAgICAgc3ByZWFkOiB7XG4gICAgICAgIHBhdHRlcm46IC9cXC57M30vLFxuICAgICAgICBhbGlhczogJ29wZXJhdG9yJ1xuICAgICAgfSxcbiAgICAgIGFycm93OiB7XG4gICAgICAgIHBhdHRlcm46IC89Pi8sXG4gICAgICAgIGFsaWFzOiAnb3BlcmF0b3InXG4gICAgICB9XG4gICAgfSlcbiAgICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKCdqYXZhc2NyaXB0JywgJ3B1bmN0dWF0aW9uJywge1xuICAgICAgJ3Byb3BlcnR5LWFjY2Vzcyc6IHtcbiAgICAgICAgcGF0dGVybjogd2l0aElkKC8oXFwuXFxzKikjPzxJRD4vLnNvdXJjZSksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWVcbiAgICAgIH0sXG4gICAgICAnbWF5YmUtY2xhc3MtbmFtZSc6IHtcbiAgICAgICAgcGF0dGVybjogLyhefFteJFxcd1xceEEwLVxcdUZGRkZdKVtBLVpdWyRcXHdcXHhBMC1cXHVGRkZGXSsvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICB9LFxuICAgICAgZG9tOiB7XG4gICAgICAgIC8vIHRoaXMgY29udGFpbnMgb25seSBhIGZldyBjb21tb25seSB1c2VkIERPTSB2YXJpYWJsZXNcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvXFxiKD86ZG9jdW1lbnR8bG9jYXRpb258bmF2aWdhdG9yfHBlcmZvcm1hbmNlfCg/OmxvY2FsfHNlc3Npb24pU3RvcmFnZXx3aW5kb3cpXFxiLyxcbiAgICAgICAgYWxpYXM6ICd2YXJpYWJsZSdcbiAgICAgIH0sXG4gICAgICBjb25zb2xlOiB7XG4gICAgICAgIHBhdHRlcm46IC9cXGJjb25zb2xlKD89XFxzKlxcLikvLFxuICAgICAgICBhbGlhczogJ2NsYXNzLW5hbWUnXG4gICAgICB9XG4gICAgfSkgLy8gYWRkICdtYXliZS1jbGFzcy1uYW1lJyB0byB0b2tlbnMgd2hpY2ggbWlnaHQgYmUgYSBjbGFzcyBuYW1lXG4gICAgdmFyIG1heWJlQ2xhc3NOYW1lVG9rZW5zID0gW1xuICAgICAgJ2Z1bmN0aW9uJyxcbiAgICAgICdmdW5jdGlvbi12YXJpYWJsZScsXG4gICAgICAnbWV0aG9kJyxcbiAgICAgICdtZXRob2QtdmFyaWFibGUnLFxuICAgICAgJ3Byb3BlcnR5LWFjY2VzcydcbiAgICBdXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtYXliZUNsYXNzTmFtZVRva2Vucy5sZW5ndGg7IGkrKykge1xuICAgICAgdmFyIHRva2VuID0gbWF5YmVDbGFzc05hbWVUb2tlbnNbaV1cbiAgICAgIHZhciB2YWx1ZSA9IFByaXNtLmxhbmd1YWdlcy5qYXZhc2NyaXB0W3Rva2VuXSAvLyBjb252ZXJ0IHJlZ2V4IHRvIG9iamVjdFxuICAgICAgaWYgKFByaXNtLnV0aWwudHlwZSh2YWx1ZSkgPT09ICdSZWdFeHAnKSB7XG4gICAgICAgIHZhbHVlID0gUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHRbdG9rZW5dID0ge1xuICAgICAgICAgIHBhdHRlcm46IHZhbHVlXG4gICAgICAgIH1cbiAgICAgIH0gLy8ga2VlcCBpbiBtaW5kIHRoYXQgd2UgZG9uJ3Qgc3VwcG9ydCBhcnJheXNcbiAgICAgIHZhciBpbnNpZGUgPSB2YWx1ZS5pbnNpZGUgfHwge31cbiAgICAgIHZhbHVlLmluc2lkZSA9IGluc2lkZVxuICAgICAgaW5zaWRlWydtYXliZS1jbGFzcy1uYW1lJ10gPSAvXltBLVpdW1xcc1xcU10qL1xuICAgIH1cbiAgfSkoUHJpc20pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/js-extras.js\n")},"../../node_modules/refractor/lang/json.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = json\njson.displayName = 'json'\njson.aliases = ['webmanifest']\nfunction json(Prism) {\n // https://www.json.org/json-en.html\n Prism.languages.json = {\n property: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n string: {\n pattern: /(^|[^\\\\])\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,\n lookbehind: true,\n greedy: true\n },\n comment: {\n pattern: /\\/\\/.*|\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,\n greedy: true\n },\n number: /-?\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\n punctuation: /[{}[\\],]/,\n operator: /:/,\n boolean: /\\b(?:true|false)\\b/,\n null: {\n pattern: /\\bnull\\b/,\n alias: 'keyword'\n }\n }\n Prism.languages.webmanifest = Prism.languages.json\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qc29uLmpzPzlhZTYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuLi8uLi9ub2RlX21vZHVsZXMvcmVmcmFjdG9yL2xhbmcvanNvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IGpzb25cbmpzb24uZGlzcGxheU5hbWUgPSAnanNvbidcbmpzb24uYWxpYXNlcyA9IFsnd2VibWFuaWZlc3QnXVxuZnVuY3Rpb24ganNvbihQcmlzbSkge1xuICAvLyBodHRwczovL3d3dy5qc29uLm9yZy9qc29uLWVuLmh0bWxcbiAgUHJpc20ubGFuZ3VhZ2VzLmpzb24gPSB7XG4gICAgcHJvcGVydHk6IHtcbiAgICAgIHBhdHRlcm46IC8oXnxbXlxcXFxdKVwiKD86XFxcXC58W15cXFxcXCJcXHJcXG5dKSpcIig/PVxccyo6KS8sXG4gICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgfSxcbiAgICBzdHJpbmc6IHtcbiAgICAgIHBhdHRlcm46IC8oXnxbXlxcXFxdKVwiKD86XFxcXC58W15cXFxcXCJcXHJcXG5dKSpcIig/IVxccyo6KS8sXG4gICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgfSxcbiAgICBjb21tZW50OiB7XG4gICAgICBwYXR0ZXJuOiAvXFwvXFwvLip8XFwvXFwqW1xcc1xcU10qPyg/OlxcKlxcL3wkKS8sXG4gICAgICBncmVlZHk6IHRydWVcbiAgICB9LFxuICAgIG51bWJlcjogLy0/XFxiXFxkKyg/OlxcLlxcZCspPyg/OmVbKy1dP1xcZCspP1xcYi9pLFxuICAgIHB1bmN0dWF0aW9uOiAvW3t9W1xcXSxdLyxcbiAgICBvcGVyYXRvcjogLzovLFxuICAgIGJvb2xlYW46IC9cXGIoPzp0cnVlfGZhbHNlKVxcYi8sXG4gICAgbnVsbDoge1xuICAgICAgcGF0dGVybjogL1xcYm51bGxcXGIvLFxuICAgICAgYWxpYXM6ICdrZXl3b3JkJ1xuICAgIH1cbiAgfVxuICBQcmlzbS5sYW5ndWFnZXMud2VibWFuaWZlc3QgPSBQcmlzbS5sYW5ndWFnZXMuanNvblxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/json.js\n")},"../../node_modules/refractor/lang/jsx.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = jsx\njsx.displayName = 'jsx'\njsx.aliases = []\nfunction jsx(Prism) {\n ;(function (Prism) {\n var javascript = Prism.util.clone(Prism.languages.javascript)\n var space = /(?:\\s|\\/\\/.*(?!.)|\\/\\*(?:[^*]|\\*(?!\\/))\\*\\/)/.source\n var braces = /(?:\\{(?:\\{(?:\\{[^{}]*\\}|[^{}])*\\}|[^{}])*\\})/.source\n var spread = /(?:\\{<S>*\\.{3}(?:[^{}]|<BRACES>)*\\})/.source\n /**\n * @param {string} source\n * @param {string} [flags]\n */\n function re(source, flags) {\n source = source\n .replace(/<S>/g, function () {\n return space\n })\n .replace(/<BRACES>/g, function () {\n return braces\n })\n .replace(/<SPREAD>/g, function () {\n return spread\n })\n return RegExp(source, flags)\n }\n spread = re(spread).source\n Prism.languages.jsx = Prism.languages.extend('markup', javascript)\n Prism.languages.jsx.tag.pattern = re(\n /<\\/?(?:[\\w.:-]+(?:<S>+(?:[\\w.:$-]+(?:=(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s{'\"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\\/?)?>/\n .source\n )\n Prism.languages.jsx.tag.inside['tag'].pattern = /^<\\/?[^\\s>\\/]*/i\n Prism.languages.jsx.tag.inside['attr-value'].pattern =\n /=(?!\\{)(?:\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"|'(?:\\\\[\\s\\S]|[^\\\\'])*'|[^\\s'\">]+)/i\n Prism.languages.jsx.tag.inside['tag'].inside['class-name'] =\n /^[A-Z]\\w*(?:\\.[A-Z]\\w*)*$/\n Prism.languages.jsx.tag.inside['comment'] = javascript['comment']\n Prism.languages.insertBefore(\n 'inside',\n 'attr-name',\n {\n spread: {\n pattern: re(/<SPREAD>/.source),\n inside: Prism.languages.jsx\n }\n },\n Prism.languages.jsx.tag\n )\n Prism.languages.insertBefore(\n 'inside',\n 'special-attr',\n {\n script: {\n // Allow for two levels of nesting\n pattern: re(/=<BRACES>/.source),\n inside: {\n 'script-punctuation': {\n pattern: /^=(?=\\{)/,\n alias: 'punctuation'\n },\n rest: Prism.languages.jsx\n },\n alias: 'language-javascript'\n }\n },\n Prism.languages.jsx.tag\n ) // The following will handle plain text inside tags\n var stringifyToken = function (token) {\n if (!token) {\n return ''\n }\n if (typeof token === 'string') {\n return token\n }\n if (typeof token.content === 'string') {\n return token.content\n }\n return token.content.map(stringifyToken).join('')\n }\n var walkTokens = function (tokens) {\n var openedTags = []\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n var notTagNorBrace = false\n if (typeof token !== 'string') {\n if (\n token.type === 'tag' &&\n token.content[0] &&\n token.content[0].type === 'tag'\n ) {\n // We found a tag, now find its kind\n if (token.content[0].content[0].content === '</') {\n // Closing tag\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].tagName ===\n stringifyToken(token.content[0].content[1])\n ) {\n // Pop matching opening tag\n openedTags.pop()\n }\n } else {\n if (token.content[token.content.length - 1].content === '/>') {\n // Autoclosed tag, ignore\n } else {\n // Opening tag\n openedTags.push({\n tagName: stringifyToken(token.content[0].content[1]),\n openedBraces: 0\n })\n }\n }\n } else if (\n openedTags.length > 0 &&\n token.type === 'punctuation' &&\n token.content === '{'\n ) {\n // Here we might have entered a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces++\n } else if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces > 0 &&\n token.type === 'punctuation' &&\n token.content === '}'\n ) {\n // Here we might have left a JSX context inside a tag\n openedTags[openedTags.length - 1].openedBraces--\n } else {\n notTagNorBrace = true\n }\n }\n if (notTagNorBrace || typeof token === 'string') {\n if (\n openedTags.length > 0 &&\n openedTags[openedTags.length - 1].openedBraces === 0\n ) {\n // Here we are inside a tag, and not inside a JSX context.\n // That's plain text: drop any tokens matched.\n var plainText = stringifyToken(token) // And merge text with adjacent text\n if (\n i < tokens.length - 1 &&\n (typeof tokens[i + 1] === 'string' ||\n tokens[i + 1].type === 'plain-text')\n ) {\n plainText += stringifyToken(tokens[i + 1])\n tokens.splice(i + 1, 1)\n }\n if (\n i > 0 &&\n (typeof tokens[i - 1] === 'string' ||\n tokens[i - 1].type === 'plain-text')\n ) {\n plainText = stringifyToken(tokens[i - 1]) + plainText\n tokens.splice(i - 1, 1)\n i--\n }\n tokens[i] = new Prism.Token(\n 'plain-text',\n plainText,\n null,\n plainText\n )\n }\n }\n if (token.content && typeof token.content !== 'string') {\n walkTokens(token.content)\n }\n }\n }\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'jsx' && env.language !== 'tsx') {\n return\n }\n walkTokens(env.tokens)\n })\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qc3guanM/MTcwYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsdUJBQXVCLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEtBQUssS0FBSztBQUM3RCx1QkFBdUIsT0FBTyxFQUFFLE9BQU8sY0FBYztBQUNyRDtBQUNBLGVBQWUsT0FBTztBQUN0QixlQUFlLE9BQU87QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1HQUFtRztBQUNuRztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwrQkFBK0I7QUFDL0I7QUFDQSxhQUFhO0FBQ2I7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixtQkFBbUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxnQ0FBZ0M7QUFDaEM7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQztBQUNoQztBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9qc3guanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBqc3hcbmpzeC5kaXNwbGF5TmFtZSA9ICdqc3gnXG5qc3guYWxpYXNlcyA9IFtdXG5mdW5jdGlvbiBqc3goUHJpc20pIHtcbiAgOyhmdW5jdGlvbiAoUHJpc20pIHtcbiAgICB2YXIgamF2YXNjcmlwdCA9IFByaXNtLnV0aWwuY2xvbmUoUHJpc20ubGFuZ3VhZ2VzLmphdmFzY3JpcHQpXG4gICAgdmFyIHNwYWNlID0gLyg/Olxcc3xcXC9cXC8uKig/IS4pfFxcL1xcKig/OlteKl18XFwqKD8hXFwvKSlcXCpcXC8pLy5zb3VyY2VcbiAgICB2YXIgYnJhY2VzID0gLyg/Olxceyg/Olxceyg/Olxce1tee31dKlxcfXxbXnt9XSkqXFx9fFtee31dKSpcXH0pLy5zb3VyY2VcbiAgICB2YXIgc3ByZWFkID0gLyg/OlxcezxTPipcXC57M30oPzpbXnt9XXw8QlJBQ0VTPikqXFx9KS8uc291cmNlXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZmxhZ3NdXG4gICAgICovXG4gICAgZnVuY3Rpb24gcmUoc291cmNlLCBmbGFncykge1xuICAgICAgc291cmNlID0gc291cmNlXG4gICAgICAgIC5yZXBsYWNlKC88Uz4vZywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBzcGFjZVxuICAgICAgICB9KVxuICAgICAgICAucmVwbGFjZSgvPEJSQUNFUz4vZywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHJldHVybiBicmFjZXNcbiAgICAgICAgfSlcbiAgICAgICAgLnJlcGxhY2UoLzxTUFJFQUQ+L2csIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gc3ByZWFkXG4gICAgICAgIH0pXG4gICAgICByZXR1cm4gUmVnRXhwKHNvdXJjZSwgZmxhZ3MpXG4gICAgfVxuICAgIHNwcmVhZCA9IHJlKHNwcmVhZCkuc291cmNlXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmpzeCA9IFByaXNtLmxhbmd1YWdlcy5leHRlbmQoJ21hcmt1cCcsIGphdmFzY3JpcHQpXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmpzeC50YWcucGF0dGVybiA9IHJlKFxuICAgICAgLzxcXC8/KD86W1xcdy46LV0rKD86PFM+Kyg/OltcXHcuOiQtXSsoPzo9KD86XCIoPzpcXFxcW1xcc1xcU118W15cXFxcXCJdKSpcInwnKD86XFxcXFtcXHNcXFNdfFteXFxcXCddKSonfFteXFxzeydcIi8+PV0rfDxCUkFDRVM+KSk/fDxTUFJFQUQ+KSkqPFM+KlxcLz8pPz4vXG4gICAgICAgIC5zb3VyY2VcbiAgICApXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmpzeC50YWcuaW5zaWRlWyd0YWcnXS5wYXR0ZXJuID0gL148XFwvP1teXFxzPlxcL10qL2lcbiAgICBQcmlzbS5sYW5ndWFnZXMuanN4LnRhZy5pbnNpZGVbJ2F0dHItdmFsdWUnXS5wYXR0ZXJuID1cbiAgICAgIC89KD8hXFx7KSg/OlwiKD86XFxcXFtcXHNcXFNdfFteXFxcXFwiXSkqXCJ8Jyg/OlxcXFxbXFxzXFxTXXxbXlxcXFwnXSkqJ3xbXlxccydcIj5dKykvaVxuICAgIFByaXNtLmxhbmd1YWdlcy5qc3gudGFnLmluc2lkZVsndGFnJ10uaW5zaWRlWydjbGFzcy1uYW1lJ10gPVxuICAgICAgL15bQS1aXVxcdyooPzpcXC5bQS1aXVxcdyopKiQvXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmpzeC50YWcuaW5zaWRlWydjb21tZW50J10gPSBqYXZhc2NyaXB0Wydjb21tZW50J11cbiAgICBQcmlzbS5sYW5ndWFnZXMuaW5zZXJ0QmVmb3JlKFxuICAgICAgJ2luc2lkZScsXG4gICAgICAnYXR0ci1uYW1lJyxcbiAgICAgIHtcbiAgICAgICAgc3ByZWFkOiB7XG4gICAgICAgICAgcGF0dGVybjogcmUoLzxTUFJFQUQ+Ly5zb3VyY2UpLFxuICAgICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLmpzeFxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgUHJpc20ubGFuZ3VhZ2VzLmpzeC50YWdcbiAgICApXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZShcbiAgICAgICdpbnNpZGUnLFxuICAgICAgJ3NwZWNpYWwtYXR0cicsXG4gICAgICB7XG4gICAgICAgIHNjcmlwdDoge1xuICAgICAgICAgIC8vIEFsbG93IGZvciB0d28gbGV2ZWxzIG9mIG5lc3RpbmdcbiAgICAgICAgICBwYXR0ZXJuOiByZSgvPTxCUkFDRVM+Ly5zb3VyY2UpLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgJ3NjcmlwdC1wdW5jdHVhdGlvbic6IHtcbiAgICAgICAgICAgICAgcGF0dGVybjogL149KD89XFx7KS8sXG4gICAgICAgICAgICAgIGFsaWFzOiAncHVuY3R1YXRpb24nXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzdDogUHJpc20ubGFuZ3VhZ2VzLmpzeFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYWxpYXM6ICdsYW5ndWFnZS1qYXZhc2NyaXB0J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgUHJpc20ubGFuZ3VhZ2VzLmpzeC50YWdcbiAgICApIC8vIFRoZSBmb2xsb3dpbmcgd2lsbCBoYW5kbGUgcGxhaW4gdGV4dCBpbnNpZGUgdGFnc1xuICAgIHZhciBzdHJpbmdpZnlUb2tlbiA9IGZ1bmN0aW9uICh0b2tlbikge1xuICAgICAgaWYgKCF0b2tlbikge1xuICAgICAgICByZXR1cm4gJydcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdG9rZW4gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0b2tlblxuICAgICAgfVxuICAgICAgaWYgKHR5cGVvZiB0b2tlbi5jb250ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gdG9rZW4uY29udGVudFxuICAgICAgfVxuICAgICAgcmV0dXJuIHRva2VuLmNvbnRlbnQubWFwKHN0cmluZ2lmeVRva2VuKS5qb2luKCcnKVxuICAgIH1cbiAgICB2YXIgd2Fsa1Rva2VucyA9IGZ1bmN0aW9uICh0b2tlbnMpIHtcbiAgICAgIHZhciBvcGVuZWRUYWdzID0gW11cbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciB0b2tlbiA9IHRva2Vuc1tpXVxuICAgICAgICB2YXIgbm90VGFnTm9yQnJhY2UgPSBmYWxzZVxuICAgICAgICBpZiAodHlwZW9mIHRva2VuICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRva2VuLnR5cGUgPT09ICd0YWcnICYmXG4gICAgICAgICAgICB0b2tlbi5jb250ZW50WzBdICYmXG4gICAgICAgICAgICB0b2tlbi5jb250ZW50WzBdLnR5cGUgPT09ICd0YWcnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBXZSBmb3VuZCBhIHRhZywgbm93IGZpbmQgaXRzIGtpbmRcbiAgICAgICAgICAgIGlmICh0b2tlbi5jb250ZW50WzBdLmNvbnRlbnRbMF0uY29udGVudCA9PT0gJzwvJykge1xuICAgICAgICAgICAgICAvLyBDbG9zaW5nIHRhZ1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgb3BlbmVkVGFncy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgb3BlbmVkVGFnc1tvcGVuZWRUYWdzLmxlbmd0aCAtIDFdLnRhZ05hbWUgPT09XG4gICAgICAgICAgICAgICAgICBzdHJpbmdpZnlUb2tlbih0b2tlbi5jb250ZW50WzBdLmNvbnRlbnRbMV0pXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIC8vIFBvcCBtYXRjaGluZyBvcGVuaW5nIHRhZ1xuICAgICAgICAgICAgICAgIG9wZW5lZFRhZ3MucG9wKClcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaWYgKHRva2VuLmNvbnRlbnRbdG9rZW4uY29udGVudC5sZW5ndGggLSAxXS5jb250ZW50ID09PSAnLz4nKSB7XG4gICAgICAgICAgICAgICAgLy8gQXV0b2Nsb3NlZCB0YWcsIGlnbm9yZVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIE9wZW5pbmcgdGFnXG4gICAgICAgICAgICAgICAgb3BlbmVkVGFncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIHRhZ05hbWU6IHN0cmluZ2lmeVRva2VuKHRva2VuLmNvbnRlbnRbMF0uY29udGVudFsxXSksXG4gICAgICAgICAgICAgICAgICBvcGVuZWRCcmFjZXM6IDBcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG9wZW5lZFRhZ3MubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgdG9rZW4udHlwZSA9PT0gJ3B1bmN0dWF0aW9uJyAmJlxuICAgICAgICAgICAgdG9rZW4uY29udGVudCA9PT0gJ3snXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIZXJlIHdlIG1pZ2h0IGhhdmUgZW50ZXJlZCBhIEpTWCBjb250ZXh0IGluc2lkZSBhIHRhZ1xuICAgICAgICAgICAgb3BlbmVkVGFnc1tvcGVuZWRUYWdzLmxlbmd0aCAtIDFdLm9wZW5lZEJyYWNlcysrXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIG9wZW5lZFRhZ3MubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICAgb3BlbmVkVGFnc1tvcGVuZWRUYWdzLmxlbmd0aCAtIDFdLm9wZW5lZEJyYWNlcyA+IDAgJiZcbiAgICAgICAgICAgIHRva2VuLnR5cGUgPT09ICdwdW5jdHVhdGlvbicgJiZcbiAgICAgICAgICAgIHRva2VuLmNvbnRlbnQgPT09ICd9J1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gSGVyZSB3ZSBtaWdodCBoYXZlIGxlZnQgYSBKU1ggY29udGV4dCBpbnNpZGUgYSB0YWdcbiAgICAgICAgICAgIG9wZW5lZFRhZ3Nbb3BlbmVkVGFncy5sZW5ndGggLSAxXS5vcGVuZWRCcmFjZXMtLVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBub3RUYWdOb3JCcmFjZSA9IHRydWVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5vdFRhZ05vckJyYWNlIHx8IHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBvcGVuZWRUYWdzLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgIG9wZW5lZFRhZ3Nbb3BlbmVkVGFncy5sZW5ndGggLSAxXS5vcGVuZWRCcmFjZXMgPT09IDBcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIEhlcmUgd2UgYXJlIGluc2lkZSBhIHRhZywgYW5kIG5vdCBpbnNpZGUgYSBKU1ggY29udGV4dC5cbiAgICAgICAgICAgIC8vIFRoYXQncyBwbGFpbiB0ZXh0OiBkcm9wIGFueSB0b2tlbnMgbWF0Y2hlZC5cbiAgICAgICAgICAgIHZhciBwbGFpblRleHQgPSBzdHJpbmdpZnlUb2tlbih0b2tlbikgLy8gQW5kIG1lcmdlIHRleHQgd2l0aCBhZGphY2VudCB0ZXh0XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGkgPCB0b2tlbnMubGVuZ3RoIC0gMSAmJlxuICAgICAgICAgICAgICAodHlwZW9mIHRva2Vuc1tpICsgMV0gPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgICAgICAgdG9rZW5zW2kgKyAxXS50eXBlID09PSAncGxhaW4tdGV4dCcpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgcGxhaW5UZXh0ICs9IHN0cmluZ2lmeVRva2VuKHRva2Vuc1tpICsgMV0pXG4gICAgICAgICAgICAgIHRva2Vucy5zcGxpY2UoaSArIDEsIDEpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgIGkgPiAwICYmXG4gICAgICAgICAgICAgICh0eXBlb2YgdG9rZW5zW2kgLSAxXSA9PT0gJ3N0cmluZycgfHxcbiAgICAgICAgICAgICAgICB0b2tlbnNbaSAtIDFdLnR5cGUgPT09ICdwbGFpbi10ZXh0JylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICBwbGFpblRleHQgPSBzdHJpbmdpZnlUb2tlbih0b2tlbnNbaSAtIDFdKSArIHBsYWluVGV4dFxuICAgICAgICAgICAgICB0b2tlbnMuc3BsaWNlKGkgLSAxLCAxKVxuICAgICAgICAgICAgICBpLS1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRva2Vuc1tpXSA9IG5ldyBQcmlzbS5Ub2tlbihcbiAgICAgICAgICAgICAgJ3BsYWluLXRleHQnLFxuICAgICAgICAgICAgICBwbGFpblRleHQsXG4gICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgIHBsYWluVGV4dFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4uY29udGVudCAmJiB0eXBlb2YgdG9rZW4uY29udGVudCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB3YWxrVG9rZW5zKHRva2VuLmNvbnRlbnQpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgUHJpc20uaG9va3MuYWRkKCdhZnRlci10b2tlbml6ZScsIGZ1bmN0aW9uIChlbnYpIHtcbiAgICAgIGlmIChlbnYubGFuZ3VhZ2UgIT09ICdqc3gnICYmIGVudi5sYW5ndWFnZSAhPT0gJ3RzeCcpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICB3YWxrVG9rZW5zKGVudi50b2tlbnMpXG4gICAgfSlcbiAgfSkoUHJpc20pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/jsx.js\n")},"../../node_modules/refractor/lang/markdown.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = markdown\nmarkdown.displayName = 'markdown'\nmarkdown.aliases = ['md']\nfunction markdown(Prism) {\n ;(function (Prism) {\n // Allow only one line break\n var inner = /(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))/.source\n /**\n * This function is intended for the creation of the bold or italic pattern.\n *\n * This also adds a lookbehind group to the given pattern to ensure that the pattern is not backslash-escaped.\n *\n * _Note:_ Keep in mind that this adds a capturing group.\n *\n * @param {string} pattern\n * @returns {RegExp}\n */\n function createInline(pattern) {\n pattern = pattern.replace(/<inner>/g, function () {\n return inner\n })\n return RegExp(/((?:^|[^\\\\])(?:\\\\{2})*)/.source + '(?:' + pattern + ')')\n }\n var tableCell = /(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+/\n .source\n var tableRow =\n /\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))/.source.replace(\n /__/g,\n function () {\n return tableCell\n }\n )\n var tableLine =\n /\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)/\n .source\n Prism.languages.markdown = Prism.languages.extend('markup', {})\n Prism.languages.insertBefore('markdown', 'prolog', {\n 'front-matter-block': {\n pattern: /(^(?:\\s*[\\r\\n])?)---(?!.)[\\s\\S]*?[\\r\\n]---(?!.)/,\n lookbehind: true,\n greedy: true,\n inside: {\n punctuation: /^---|---$/,\n 'font-matter': {\n pattern: /\\S+(?:\\s+\\S+)*/,\n alias: ['yaml', 'language-yaml'],\n inside: Prism.languages.yaml\n }\n }\n },\n blockquote: {\n // > ...\n pattern: /^>(?:[\\t ]*>)*/m,\n alias: 'punctuation'\n },\n table: {\n pattern: RegExp(\n '^' + tableRow + tableLine + '(?:' + tableRow + ')*',\n 'm'\n ),\n inside: {\n 'table-data-rows': {\n pattern: RegExp(\n '^(' + tableRow + tableLine + ')(?:' + tableRow + ')*$'\n ),\n lookbehind: true,\n inside: {\n 'table-data': {\n pattern: RegExp(tableCell),\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n },\n 'table-line': {\n pattern: RegExp('^(' + tableRow + ')' + tableLine + '$'),\n lookbehind: true,\n inside: {\n punctuation: /\\||:?-{3,}:?/\n }\n },\n 'table-header-row': {\n pattern: RegExp('^' + tableRow + '$'),\n inside: {\n 'table-header': {\n pattern: RegExp(tableCell),\n alias: 'important',\n inside: Prism.languages.markdown\n },\n punctuation: /\\|/\n }\n }\n }\n },\n code: [\n {\n // Prefixed by 4 spaces or 1 tab and preceded by an empty line\n pattern:\n /((?:^|\\n)[ \\t]*\\n|(?:^|\\r\\n?)[ \\t]*\\r\\n?)(?: {4}|\\t).+(?:(?:\\n|\\r\\n?)(?: {4}|\\t).+)*/,\n lookbehind: true,\n alias: 'keyword'\n },\n {\n // ```optional language\n // code block\n // ```\n pattern: /^```[\\s\\S]*?^```$/m,\n greedy: true,\n inside: {\n 'code-block': {\n pattern: /^(```.*(?:\\n|\\r\\n?))[\\s\\S]+?(?=(?:\\n|\\r\\n?)^```$)/m,\n lookbehind: true\n },\n 'code-language': {\n pattern: /^(```).+/,\n lookbehind: true\n },\n punctuation: /```/\n }\n }\n ],\n title: [\n {\n // title 1\n // =======\n // title 2\n // -------\n pattern: /\\S.*(?:\\n|\\r\\n?)(?:==+|--+)(?=[ \\t]*$)/m,\n alias: 'important',\n inside: {\n punctuation: /==+$|--+$/\n }\n },\n {\n // # title 1\n // ###### title 6\n pattern: /(^\\s*)#.+/m,\n lookbehind: true,\n alias: 'important',\n inside: {\n punctuation: /^#+|#+$/\n }\n }\n ],\n hr: {\n // ***\n // ---\n // * * *\n // -----------\n pattern: /(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n list: {\n // * item\n // + item\n // - item\n // 1. item\n pattern: /(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,\n lookbehind: true,\n alias: 'punctuation'\n },\n 'url-reference': {\n // [id]: http://example.com \"Optional title\"\n // [id]: http://example.com 'Optional title'\n // [id]: http://example.com (Optional title)\n // [id]: <http://example.com> \"Optional title\"\n pattern:\n /!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,\n inside: {\n variable: {\n pattern: /^(!?\\[)[^\\]]+/,\n lookbehind: true\n },\n string:\n /(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,\n punctuation: /^[\\[\\]!:]|[<>]/\n },\n alias: 'url'\n },\n bold: {\n // **strong**\n // __strong__\n // allow one nested instance of italic text using the same delimiter\n pattern: createInline(\n /\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^..)[\\s\\S]+(?=..$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /\\*\\*|__/\n }\n },\n italic: {\n // *em*\n // _em_\n // allow one nested instance of bold text using the same delimiter\n pattern: createInline(\n /\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^.)[\\s\\S]+(?=.$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /[*_]/\n }\n },\n strike: {\n // ~~strike through~~\n // ~strike~\n // eslint-disable-next-line regexp/strict\n pattern: createInline(/(~~?)(?:(?!~)<inner>)+\\2/.source),\n lookbehind: true,\n greedy: true,\n inside: {\n content: {\n pattern: /(^~~?)[\\s\\S]+(?=\\1$)/,\n lookbehind: true,\n inside: {} // see below\n },\n punctuation: /~~?/\n }\n },\n 'code-snippet': {\n // `code`\n // ``code``\n pattern:\n /(^|[^\\\\`])(?:``[^`\\r\\n]+(?:`[^`\\r\\n]+)*``(?!`)|`[^`\\r\\n]+`(?!`))/,\n lookbehind: true,\n greedy: true,\n alias: ['code', 'keyword']\n },\n url: {\n // [example](http://example.com \"Optional title\")\n // [example][id]\n // [example] [id]\n pattern: createInline(\n /!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])/\n .source\n ),\n lookbehind: true,\n greedy: true,\n inside: {\n operator: /^!/,\n content: {\n pattern: /(^\\[)[^\\]]+(?=\\])/,\n lookbehind: true,\n inside: {} // see below\n },\n variable: {\n pattern: /(^\\][ \\t]?\\[)[^\\]]+(?=\\]$)/,\n lookbehind: true\n },\n url: {\n pattern: /(^\\]\\()[^\\s)]+/,\n lookbehind: true\n },\n string: {\n pattern: /(^[ \\t]+)\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/,\n lookbehind: true\n }\n }\n }\n })\n ;['url', 'bold', 'italic', 'strike'].forEach(function (token) {\n ;['url', 'bold', 'italic', 'strike', 'code-snippet'].forEach(function (\n inside\n ) {\n if (token !== inside) {\n Prism.languages.markdown[token].inside.content.inside[inside] =\n Prism.languages.markdown[inside]\n }\n })\n })\n Prism.hooks.add('after-tokenize', function (env) {\n if (env.language !== 'markdown' && env.language !== 'md') {\n return\n }\n function walkTokens(tokens) {\n if (!tokens || typeof tokens === 'string') {\n return\n }\n for (var i = 0, l = tokens.length; i < l; i++) {\n var token = tokens[i]\n if (token.type !== 'code') {\n walkTokens(token.content)\n continue\n }\n /*\n * Add the correct `language-xxxx` class to this code block. Keep in mind that the `code-language` token\n * is optional. But the grammar is defined so that there is only one case we have to handle:\n *\n * token.content = [\n * <span class=\"punctuation\">```</span>,\n * <span class=\"code-language\">xxxx</span>,\n * '\\n', // exactly one new lines (\\r or \\n or \\r\\n)\n * <span class=\"code-block\">...</span>,\n * '\\n', // exactly one new lines again\n * <span class=\"punctuation\">```</span>\n * ];\n */\n var codeLang = token.content[1]\n var codeBlock = token.content[3]\n if (\n codeLang &&\n codeBlock &&\n codeLang.type === 'code-language' &&\n codeBlock.type === 'code-block' &&\n typeof codeLang.content === 'string'\n ) {\n // this might be a language that Prism does not support\n // do some replacements to support C++, C#, and F#\n var lang = codeLang.content\n .replace(/\\b#/g, 'sharp')\n .replace(/\\b\\+\\+/g, 'pp') // only use the first word\n lang = (/[a-z][\\w-]*/i.exec(lang) || [''])[0].toLowerCase()\n var alias = 'language-' + lang // add alias\n if (!codeBlock.alias) {\n codeBlock.alias = [alias]\n } else if (typeof codeBlock.alias === 'string') {\n codeBlock.alias = [codeBlock.alias, alias]\n } else {\n codeBlock.alias.push(alias)\n }\n }\n }\n }\n walkTokens(env.tokens)\n })\n Prism.hooks.add('wrap', function (env) {\n if (env.type !== 'code-block') {\n return\n }\n var codeLang = ''\n for (var i = 0, l = env.classes.length; i < l; i++) {\n var cls = env.classes[i]\n var match = /language-(.+)/.exec(cls)\n if (match) {\n codeLang = match[1]\n break\n }\n }\n var grammar = Prism.languages[codeLang]\n if (!grammar) {\n if (codeLang && codeLang !== 'none' && Prism.plugins.autoloader) {\n var id =\n 'md-' +\n new Date().valueOf() +\n '-' +\n Math.floor(Math.random() * 1e16)\n env.attributes['id'] = id\n Prism.plugins.autoloader.loadLanguages(codeLang, function () {\n var ele = document.getElementById(id)\n if (ele) {\n ele.innerHTML = Prism.highlight(\n ele.textContent,\n Prism.languages[codeLang],\n codeLang\n )\n }\n })\n }\n } else {\n env.content = Prism.highlight(\n textContent(env.content.value),\n grammar,\n codeLang\n )\n }\n })\n var tagPattern = RegExp(Prism.languages.markup.tag.pattern.source, 'gi')\n /**\n * A list of known entity names.\n *\n * This will always be incomplete to save space. The current list is the one used by lowdash's unescape function.\n *\n * @see {@link https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/unescape.js#L2}\n */\n var KNOWN_ENTITY_NAMES = {\n amp: '&',\n lt: '<',\n gt: '>',\n quot: '\"'\n } // IE 11 doesn't support `String.fromCodePoint`\n var fromCodePoint = String.fromCodePoint || String.fromCharCode\n /**\n * Returns the text content of a given HTML source code string.\n *\n * @param {string} html\n * @returns {string}\n */\n function textContent(html) {\n // remove all tags\n var text = html.replace(tagPattern, '') // decode known entities\n text = text.replace(/&(\\w{1,8}|#x?[\\da-f]{1,8});/gi, function (m, code) {\n code = code.toLowerCase()\n if (code[0] === '#') {\n var value\n if (code[1] === 'x') {\n value = parseInt(code.slice(2), 16)\n } else {\n value = Number(code.slice(1))\n }\n return fromCodePoint(value)\n } else {\n var known = KNOWN_ENTITY_NAMES[code]\n if (known) {\n return known\n } // unable to decode\n return m\n }\n })\n return text\n }\n Prism.languages.md = Prism.languages.markdown\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9tYXJrZG93bi5qcz82M2QwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFZOztBQUVaO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsT0FBTztBQUN0QixpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsdUNBQXVDLEVBQUU7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixHQUFHLHVCQUF1QixHQUFHO0FBQ2pEO0FBQ0Esa0VBQWtFO0FBQ2xFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWU7QUFDZjtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLEdBQUc7QUFDdEM7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyREFBMkQsRUFBRSwwQkFBMEIsRUFBRTtBQUN6RjtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQ0FBMkMsR0FBRztBQUM5QztBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQjtBQUN0QixXQUFXO0FBQ1g7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLFdBQVc7QUFDWDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsV0FBVztBQUNYO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEIsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEtBQUs7QUFDTCxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLE9BQU87QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLE9BQU87QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLE9BQU87QUFDdEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLElBQUksWUFBWSxJQUFJLEVBQUU7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9tYXJrZG93bi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcmtkb3duXG5tYXJrZG93bi5kaXNwbGF5TmFtZSA9ICdtYXJrZG93bidcbm1hcmtkb3duLmFsaWFzZXMgPSBbJ21kJ11cbmZ1bmN0aW9uIG1hcmtkb3duKFByaXNtKSB7XG4gIDsoZnVuY3Rpb24gKFByaXNtKSB7XG4gICAgLy8gQWxsb3cgb25seSBvbmUgbGluZSBicmVha1xuICAgIHZhciBpbm5lciA9IC8oPzpcXFxcLnxbXlxcXFxcXG5cXHJdfCg/OlxcbnxcXHJcXG4/KSg/IVtcXHJcXG5dKSkvLnNvdXJjZVxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIHRoZSBjcmVhdGlvbiBvZiB0aGUgYm9sZCBvciBpdGFsaWMgcGF0dGVybi5cbiAgICAgKlxuICAgICAqIFRoaXMgYWxzbyBhZGRzIGEgbG9va2JlaGluZCBncm91cCB0byB0aGUgZ2l2ZW4gcGF0dGVybiB0byBlbnN1cmUgdGhhdCB0aGUgcGF0dGVybiBpcyBub3QgYmFja3NsYXNoLWVzY2FwZWQuXG4gICAgICpcbiAgICAgKiBfTm90ZTpfIEtlZXAgaW4gbWluZCB0aGF0IHRoaXMgYWRkcyBhIGNhcHR1cmluZyBncm91cC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYXR0ZXJuXG4gICAgICogQHJldHVybnMge1JlZ0V4cH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVJbmxpbmUocGF0dGVybikge1xuICAgICAgcGF0dGVybiA9IHBhdHRlcm4ucmVwbGFjZSgvPGlubmVyPi9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiBpbm5lclxuICAgICAgfSlcbiAgICAgIHJldHVybiBSZWdFeHAoLygoPzpefFteXFxcXF0pKD86XFxcXHsyfSkqKS8uc291cmNlICsgJyg/OicgKyBwYXR0ZXJuICsgJyknKVxuICAgIH1cbiAgICB2YXIgdGFibGVDZWxsID0gLyg/OlxcXFwufGBgKD86W15gXFxyXFxuXXxgKD8hYCkpK2BgfGBbXmBcXHJcXG5dK2B8W15cXFxcfFxcclxcbmBdKSsvXG4gICAgICAuc291cmNlXG4gICAgdmFyIHRhYmxlUm93ID1cbiAgICAgIC9cXHw/X18oPzpcXHxfXykrXFx8Pyg/Oig/OlxcbnxcXHJcXG4/KXwoPyFbXFxzXFxTXSkpLy5zb3VyY2UucmVwbGFjZShcbiAgICAgICAgL19fL2csXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gdGFibGVDZWxsXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB2YXIgdGFibGVMaW5lID1cbiAgICAgIC9cXHw/WyBcXHRdKjo/LXszLH06P1sgXFx0XSooPzpcXHxbIFxcdF0qOj8tezMsfTo/WyBcXHRdKikrXFx8Pyg/OlxcbnxcXHJcXG4/KS9cbiAgICAgICAgLnNvdXJjZVxuICAgIFByaXNtLmxhbmd1YWdlcy5tYXJrZG93biA9IFByaXNtLmxhbmd1YWdlcy5leHRlbmQoJ21hcmt1cCcsIHt9KVxuICAgIFByaXNtLmxhbmd1YWdlcy5pbnNlcnRCZWZvcmUoJ21hcmtkb3duJywgJ3Byb2xvZycsIHtcbiAgICAgICdmcm9udC1tYXR0ZXItYmxvY2snOiB7XG4gICAgICAgIHBhdHRlcm46IC8oXig/OlxccypbXFxyXFxuXSk/KS0tLSg/IS4pW1xcc1xcU10qP1tcXHJcXG5dLS0tKD8hLikvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgIGluc2lkZToge1xuICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXi0tLXwtLS0kLyxcbiAgICAgICAgICAnZm9udC1tYXR0ZXInOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAvXFxTKyg/OlxccytcXFMrKSovLFxuICAgICAgICAgICAgYWxpYXM6IFsneWFtbCcsICdsYW5ndWFnZS15YW1sJ10sXG4gICAgICAgICAgICBpbnNpZGU6IFByaXNtLmxhbmd1YWdlcy55YW1sXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYmxvY2txdW90ZToge1xuICAgICAgICAvLyA+IC4uLlxuICAgICAgICBwYXR0ZXJuOiAvXj4oPzpbXFx0IF0qPikqL20sXG4gICAgICAgIGFsaWFzOiAncHVuY3R1YXRpb24nXG4gICAgICB9LFxuICAgICAgdGFibGU6IHtcbiAgICAgICAgcGF0dGVybjogUmVnRXhwKFxuICAgICAgICAgICdeJyArIHRhYmxlUm93ICsgdGFibGVMaW5lICsgJyg/OicgKyB0YWJsZVJvdyArICcpKicsXG4gICAgICAgICAgJ20nXG4gICAgICAgICksXG4gICAgICAgIGluc2lkZToge1xuICAgICAgICAgICd0YWJsZS1kYXRhLXJvd3MnOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoXG4gICAgICAgICAgICAgICdeKCcgKyB0YWJsZVJvdyArIHRhYmxlTGluZSArICcpKD86JyArIHRhYmxlUm93ICsgJykqJCdcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgICAgICd0YWJsZS1kYXRhJzoge1xuICAgICAgICAgICAgICAgIHBhdHRlcm46IFJlZ0V4cCh0YWJsZUNlbGwpLFxuICAgICAgICAgICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLm1hcmtkb3duXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXFx8L1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ3RhYmxlLWxpbmUnOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoJ14oJyArIHRhYmxlUm93ICsgJyknICsgdGFibGVMaW5lICsgJyQnKSxcbiAgICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAgICAgcHVuY3R1YXRpb246IC9cXHx8Oj8tezMsfTo/L1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgJ3RhYmxlLWhlYWRlci1yb3cnOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoJ14nICsgdGFibGVSb3cgKyAnJCcpLFxuICAgICAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgICAgICd0YWJsZS1oZWFkZXInOiB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogUmVnRXhwKHRhYmxlQ2VsbCksXG4gICAgICAgICAgICAgICAgYWxpYXM6ICdpbXBvcnRhbnQnLFxuICAgICAgICAgICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzLm1hcmtkb3duXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXFx8L1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGNvZGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIC8vIFByZWZpeGVkIGJ5IDQgc3BhY2VzIG9yIDEgdGFiIGFuZCBwcmVjZWRlZCBieSBhbiBlbXB0eSBsaW5lXG4gICAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAgIC8oKD86XnxcXG4pWyBcXHRdKlxcbnwoPzpefFxcclxcbj8pWyBcXHRdKlxcclxcbj8pKD86IHs0fXxcXHQpLisoPzooPzpcXG58XFxyXFxuPykoPzogezR9fFxcdCkuKykqLyxcbiAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgIGFsaWFzOiAna2V5d29yZCdcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIGBgYG9wdGlvbmFsIGxhbmd1YWdlXG4gICAgICAgICAgLy8gY29kZSBibG9ja1xuICAgICAgICAgIC8vIGBgYFxuICAgICAgICAgIHBhdHRlcm46IC9eYGBgW1xcc1xcU10qP15gYGAkL20sXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgJ2NvZGUtYmxvY2snOiB7XG4gICAgICAgICAgICAgIHBhdHRlcm46IC9eKGBgYC4qKD86XFxufFxcclxcbj8pKVtcXHNcXFNdKz8oPz0oPzpcXG58XFxyXFxuPyleYGBgJCkvbSxcbiAgICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICdjb2RlLWxhbmd1YWdlJzoge1xuICAgICAgICAgICAgICBwYXR0ZXJuOiAvXihgYGApLisvLFxuICAgICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHVuY3R1YXRpb246IC9gYGAvXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdGl0bGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIC8vIHRpdGxlIDFcbiAgICAgICAgICAvLyA9PT09PT09XG4gICAgICAgICAgLy8gdGl0bGUgMlxuICAgICAgICAgIC8vIC0tLS0tLS1cbiAgICAgICAgICBwYXR0ZXJuOiAvXFxTLiooPzpcXG58XFxyXFxuPykoPzo9PSt8LS0rKSg/PVsgXFx0XSokKS9tLFxuICAgICAgICAgIGFsaWFzOiAnaW1wb3J0YW50JyxcbiAgICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAgIHB1bmN0dWF0aW9uOiAvPT0rJHwtLSskL1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vICMgdGl0bGUgMVxuICAgICAgICAgIC8vICMjIyMjIyB0aXRsZSA2XG4gICAgICAgICAgcGF0dGVybjogLyheXFxzKikjLisvbSxcbiAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgIGFsaWFzOiAnaW1wb3J0YW50JyxcbiAgICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXiMrfCMrJC9cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBocjoge1xuICAgICAgICAvLyAqKipcbiAgICAgICAgLy8gLS0tXG4gICAgICAgIC8vICogKiAqXG4gICAgICAgIC8vIC0tLS0tLS0tLS0tXG4gICAgICAgIHBhdHRlcm46IC8oXlxccyopKFsqLV0pKD86W1xcdCBdKlxcMil7Mix9KD89XFxzKiQpL20sXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGFsaWFzOiAncHVuY3R1YXRpb24nXG4gICAgICB9LFxuICAgICAgbGlzdDoge1xuICAgICAgICAvLyAqIGl0ZW1cbiAgICAgICAgLy8gKyBpdGVtXG4gICAgICAgIC8vIC0gaXRlbVxuICAgICAgICAvLyAxLiBpdGVtXG4gICAgICAgIHBhdHRlcm46IC8oXlxccyopKD86WyorLV18XFxkK1xcLikoPz1bXFx0IF0uKS9tLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBhbGlhczogJ3B1bmN0dWF0aW9uJ1xuICAgICAgfSxcbiAgICAgICd1cmwtcmVmZXJlbmNlJzoge1xuICAgICAgICAvLyBbaWRdOiBodHRwOi8vZXhhbXBsZS5jb20gXCJPcHRpb25hbCB0aXRsZVwiXG4gICAgICAgIC8vIFtpZF06IGh0dHA6Ly9leGFtcGxlLmNvbSAnT3B0aW9uYWwgdGl0bGUnXG4gICAgICAgIC8vIFtpZF06IGh0dHA6Ly9leGFtcGxlLmNvbSAoT3B0aW9uYWwgdGl0bGUpXG4gICAgICAgIC8vIFtpZF06IDxodHRwOi8vZXhhbXBsZS5jb20+IFwiT3B0aW9uYWwgdGl0bGVcIlxuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8hP1xcW1teXFxdXStcXF06W1xcdCBdKyg/OlxcUyt8PCg/OlxcXFwufFtePlxcXFxdKSs+KSg/OltcXHQgXSsoPzpcIig/OlxcXFwufFteXCJcXFxcXSkqXCJ8Jyg/OlxcXFwufFteJ1xcXFxdKSonfFxcKCg/OlxcXFwufFteKVxcXFxdKSpcXCkpKT8vLFxuICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICB2YXJpYWJsZToge1xuICAgICAgICAgICAgcGF0dGVybjogL14oIT9cXFspW15cXF1dKy8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHJpbmc6XG4gICAgICAgICAgICAvKD86XCIoPzpcXFxcLnxbXlwiXFxcXF0pKlwifCcoPzpcXFxcLnxbXidcXFxcXSkqJ3xcXCgoPzpcXFxcLnxbXilcXFxcXSkqXFwpKSQvLFxuICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXltcXFtcXF0hOl18Wzw+XS9cbiAgICAgICAgfSxcbiAgICAgICAgYWxpYXM6ICd1cmwnXG4gICAgICB9LFxuICAgICAgYm9sZDoge1xuICAgICAgICAvLyAqKnN0cm9uZyoqXG4gICAgICAgIC8vIF9fc3Ryb25nX19cbiAgICAgICAgLy8gYWxsb3cgb25lIG5lc3RlZCBpbnN0YW5jZSBvZiBpdGFsaWMgdGV4dCB1c2luZyB0aGUgc2FtZSBkZWxpbWl0ZXJcbiAgICAgICAgcGF0dGVybjogY3JlYXRlSW5saW5lKFxuICAgICAgICAgIC9cXGJfXyg/Oig/IV8pPGlubmVyPnxfKD86KD8hXyk8aW5uZXI+KStfKStfX1xcYnxcXCpcXCooPzooPyFcXCopPGlubmVyPnxcXCooPzooPyFcXCopPGlubmVyPikrXFwqKStcXCpcXCovXG4gICAgICAgICAgICAuc291cmNlXG4gICAgICAgICksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgcGF0dGVybjogLyheLi4pW1xcc1xcU10rKD89Li4kKS8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgICAgaW5zaWRlOiB7fSAvLyBzZWUgYmVsb3dcbiAgICAgICAgICB9LFxuICAgICAgICAgIHB1bmN0dWF0aW9uOiAvXFwqXFwqfF9fL1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgaXRhbGljOiB7XG4gICAgICAgIC8vICplbSpcbiAgICAgICAgLy8gX2VtX1xuICAgICAgICAvLyBhbGxvdyBvbmUgbmVzdGVkIGluc3RhbmNlIG9mIGJvbGQgdGV4dCB1c2luZyB0aGUgc2FtZSBkZWxpbWl0ZXJcbiAgICAgICAgcGF0dGVybjogY3JlYXRlSW5saW5lKFxuICAgICAgICAgIC9cXGJfKD86KD8hXyk8aW5uZXI+fF9fKD86KD8hXyk8aW5uZXI+KStfXykrX1xcYnxcXCooPzooPyFcXCopPGlubmVyPnxcXCpcXCooPzooPyFcXCopPGlubmVyPikrXFwqXFwqKStcXCovXG4gICAgICAgICAgICAuc291cmNlXG4gICAgICAgICksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgcGF0dGVybjogLyheLilbXFxzXFxTXSsoPz0uJCkvLFxuICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgICAgIGluc2lkZToge30gLy8gc2VlIGJlbG93XG4gICAgICAgICAgfSxcbiAgICAgICAgICBwdW5jdHVhdGlvbjogL1sqX10vXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzdHJpa2U6IHtcbiAgICAgICAgLy8gfn5zdHJpa2UgdGhyb3VnaH5+XG4gICAgICAgIC8vIH5zdHJpa2V+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWdleHAvc3RyaWN0XG4gICAgICAgIHBhdHRlcm46IGNyZWF0ZUlubGluZSgvKH5+PykoPzooPyF+KTxpbm5lcj4pK1xcMi8uc291cmNlKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAvKF5+fj8pW1xcc1xcU10rKD89XFwxJCkvLFxuICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgICAgIGluc2lkZToge30gLy8gc2VlIGJlbG93XG4gICAgICAgICAgfSxcbiAgICAgICAgICBwdW5jdHVhdGlvbjogL35+Py9cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICdjb2RlLXNuaXBwZXQnOiB7XG4gICAgICAgIC8vIGBjb2RlYFxuICAgICAgICAvLyBgYGNvZGVgYFxuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8oXnxbXlxcXFxgXSkoPzpgYFteYFxcclxcbl0rKD86YFteYFxcclxcbl0rKSpgYCg/IWApfGBbXmBcXHJcXG5dK2AoPyFgKSkvLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgIGFsaWFzOiBbJ2NvZGUnLCAna2V5d29yZCddXG4gICAgICB9LFxuICAgICAgdXJsOiB7XG4gICAgICAgIC8vIFtleGFtcGxlXShodHRwOi8vZXhhbXBsZS5jb20gXCJPcHRpb25hbCB0aXRsZVwiKVxuICAgICAgICAvLyBbZXhhbXBsZV1baWRdXG4gICAgICAgIC8vIFtleGFtcGxlXSBbaWRdXG4gICAgICAgIHBhdHRlcm46IGNyZWF0ZUlubGluZShcbiAgICAgICAgICAvIT9cXFsoPzooPyFcXF0pPGlubmVyPikrXFxdKD86XFwoW15cXHMpXSsoPzpbXFx0IF0rXCIoPzpcXFxcLnxbXlwiXFxcXF0pKlwiKT9cXCl8WyBcXHRdP1xcWyg/Oig/IVxcXSk8aW5uZXI+KStcXF0pL1xuICAgICAgICAgICAgLnNvdXJjZVxuICAgICAgICApLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBncmVlZHk6IHRydWUsXG4gICAgICAgIGluc2lkZToge1xuICAgICAgICAgIG9wZXJhdG9yOiAvXiEvLFxuICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC8oXlxcWylbXlxcXV0rKD89XFxdKS8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICAgICAgaW5zaWRlOiB7fSAvLyBzZWUgYmVsb3dcbiAgICAgICAgICB9LFxuICAgICAgICAgIHZhcmlhYmxlOiB7XG4gICAgICAgICAgICBwYXR0ZXJuOiAvKF5cXF1bIFxcdF0/XFxbKVteXFxdXSsoPz1cXF0kKS8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1cmw6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC8oXlxcXVxcKClbXlxccyldKy8sXG4gICAgICAgICAgICBsb29rYmVoaW5kOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHJpbmc6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC8oXlsgXFx0XSspXCIoPzpcXFxcLnxbXlwiXFxcXF0pKlwiKD89XFwpJCkvLFxuICAgICAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgO1sndXJsJywgJ2JvbGQnLCAnaXRhbGljJywgJ3N0cmlrZSddLmZvckVhY2goZnVuY3Rpb24gKHRva2VuKSB7XG4gICAgICA7Wyd1cmwnLCAnYm9sZCcsICdpdGFsaWMnLCAnc3RyaWtlJywgJ2NvZGUtc25pcHBldCddLmZvckVhY2goZnVuY3Rpb24gKFxuICAgICAgICBpbnNpZGVcbiAgICAgICkge1xuICAgICAgICBpZiAodG9rZW4gIT09IGluc2lkZSkge1xuICAgICAgICAgIFByaXNtLmxhbmd1YWdlcy5tYXJrZG93blt0b2tlbl0uaW5zaWRlLmNvbnRlbnQuaW5zaWRlW2luc2lkZV0gPVxuICAgICAgICAgICAgUHJpc20ubGFuZ3VhZ2VzLm1hcmtkb3duW2luc2lkZV1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KVxuICAgIFByaXNtLmhvb2tzLmFkZCgnYWZ0ZXItdG9rZW5pemUnLCBmdW5jdGlvbiAoZW52KSB7XG4gICAgICBpZiAoZW52Lmxhbmd1YWdlICE9PSAnbWFya2Rvd24nICYmIGVudi5sYW5ndWFnZSAhPT0gJ21kJykge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGZ1bmN0aW9uIHdhbGtUb2tlbnModG9rZW5zKSB7XG4gICAgICAgIGlmICghdG9rZW5zIHx8IHR5cGVvZiB0b2tlbnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGwgPSB0b2tlbnMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgdmFyIHRva2VuID0gdG9rZW5zW2ldXG4gICAgICAgICAgaWYgKHRva2VuLnR5cGUgIT09ICdjb2RlJykge1xuICAgICAgICAgICAgd2Fsa1Rva2Vucyh0b2tlbi5jb250ZW50KVxuICAgICAgICAgICAgY29udGludWVcbiAgICAgICAgICB9XG4gICAgICAgICAgLypcbiAgICAgICAgICAgKiBBZGQgdGhlIGNvcnJlY3QgYGxhbmd1YWdlLXh4eHhgIGNsYXNzIHRvIHRoaXMgY29kZSBibG9jay4gS2VlcCBpbiBtaW5kIHRoYXQgdGhlIGBjb2RlLWxhbmd1YWdlYCB0b2tlblxuICAgICAgICAgICAqIGlzIG9wdGlvbmFsLiBCdXQgdGhlIGdyYW1tYXIgaXMgZGVmaW5lZCBzbyB0aGF0IHRoZXJlIGlzIG9ubHkgb25lIGNhc2Ugd2UgaGF2ZSB0byBoYW5kbGU6XG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiB0b2tlbi5jb250ZW50ID0gW1xuICAgICAgICAgICAqICAgICA8c3BhbiBjbGFzcz1cInB1bmN0dWF0aW9uXCI+YGBgPC9zcGFuPixcbiAgICAgICAgICAgKiAgICAgPHNwYW4gY2xhc3M9XCJjb2RlLWxhbmd1YWdlXCI+eHh4eDwvc3Bhbj4sXG4gICAgICAgICAgICogICAgICdcXG4nLCAvLyBleGFjdGx5IG9uZSBuZXcgbGluZXMgKFxcciBvciBcXG4gb3IgXFxyXFxuKVxuICAgICAgICAgICAqICAgICA8c3BhbiBjbGFzcz1cImNvZGUtYmxvY2tcIj4uLi48L3NwYW4+LFxuICAgICAgICAgICAqICAgICAnXFxuJywgLy8gZXhhY3RseSBvbmUgbmV3IGxpbmVzIGFnYWluXG4gICAgICAgICAgICogICAgIDxzcGFuIGNsYXNzPVwicHVuY3R1YXRpb25cIj5gYGA8L3NwYW4+XG4gICAgICAgICAgICogXTtcbiAgICAgICAgICAgKi9cbiAgICAgICAgICB2YXIgY29kZUxhbmcgPSB0b2tlbi5jb250ZW50WzFdXG4gICAgICAgICAgdmFyIGNvZGVCbG9jayA9IHRva2VuLmNvbnRlbnRbM11cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBjb2RlTGFuZyAmJlxuICAgICAgICAgICAgY29kZUJsb2NrICYmXG4gICAgICAgICAgICBjb2RlTGFuZy50eXBlID09PSAnY29kZS1sYW5ndWFnZScgJiZcbiAgICAgICAgICAgIGNvZGVCbG9jay50eXBlID09PSAnY29kZS1ibG9jaycgJiZcbiAgICAgICAgICAgIHR5cGVvZiBjb2RlTGFuZy5jb250ZW50ID09PSAnc3RyaW5nJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgLy8gdGhpcyBtaWdodCBiZSBhIGxhbmd1YWdlIHRoYXQgUHJpc20gZG9lcyBub3Qgc3VwcG9ydFxuICAgICAgICAgICAgLy8gZG8gc29tZSByZXBsYWNlbWVudHMgdG8gc3VwcG9ydCBDKyssIEMjLCBhbmQgRiNcbiAgICAgICAgICAgIHZhciBsYW5nID0gY29kZUxhbmcuY29udGVudFxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiIy9nLCAnc2hhcnAnKVxuICAgICAgICAgICAgICAucmVwbGFjZSgvXFxiXFwrXFwrL2csICdwcCcpIC8vIG9ubHkgdXNlIHRoZSBmaXJzdCB3b3JkXG4gICAgICAgICAgICBsYW5nID0gKC9bYS16XVtcXHctXSovaS5leGVjKGxhbmcpIHx8IFsnJ10pWzBdLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIHZhciBhbGlhcyA9ICdsYW5ndWFnZS0nICsgbGFuZyAvLyBhZGQgYWxpYXNcbiAgICAgICAgICAgIGlmICghY29kZUJsb2NrLmFsaWFzKSB7XG4gICAgICAgICAgICAgIGNvZGVCbG9jay5hbGlhcyA9IFthbGlhc11cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGNvZGVCbG9jay5hbGlhcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29kZUJsb2NrLmFsaWFzID0gW2NvZGVCbG9jay5hbGlhcywgYWxpYXNdXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBjb2RlQmxvY2suYWxpYXMucHVzaChhbGlhcylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdhbGtUb2tlbnMoZW52LnRva2VucylcbiAgICB9KVxuICAgIFByaXNtLmhvb2tzLmFkZCgnd3JhcCcsIGZ1bmN0aW9uIChlbnYpIHtcbiAgICAgIGlmIChlbnYudHlwZSAhPT0gJ2NvZGUtYmxvY2snKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgdmFyIGNvZGVMYW5nID0gJydcbiAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gZW52LmNsYXNzZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgIHZhciBjbHMgPSBlbnYuY2xhc3Nlc1tpXVxuICAgICAgICB2YXIgbWF0Y2ggPSAvbGFuZ3VhZ2UtKC4rKS8uZXhlYyhjbHMpXG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIGNvZGVMYW5nID0gbWF0Y2hbMV1cbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB2YXIgZ3JhbW1hciA9IFByaXNtLmxhbmd1YWdlc1tjb2RlTGFuZ11cbiAgICAgIGlmICghZ3JhbW1hcikge1xuICAgICAgICBpZiAoY29kZUxhbmcgJiYgY29kZUxhbmcgIT09ICdub25lJyAmJiBQcmlzbS5wbHVnaW5zLmF1dG9sb2FkZXIpIHtcbiAgICAgICAgICB2YXIgaWQgPVxuICAgICAgICAgICAgJ21kLScgK1xuICAgICAgICAgICAgbmV3IERhdGUoKS52YWx1ZU9mKCkgK1xuICAgICAgICAgICAgJy0nICtcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDFlMTYpXG4gICAgICAgICAgZW52LmF0dHJpYnV0ZXNbJ2lkJ10gPSBpZFxuICAgICAgICAgIFByaXNtLnBsdWdpbnMuYXV0b2xvYWRlci5sb2FkTGFuZ3VhZ2VzKGNvZGVMYW5nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgZWxlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpXG4gICAgICAgICAgICBpZiAoZWxlKSB7XG4gICAgICAgICAgICAgIGVsZS5pbm5lckhUTUwgPSBQcmlzbS5oaWdobGlnaHQoXG4gICAgICAgICAgICAgICAgZWxlLnRleHRDb250ZW50LFxuICAgICAgICAgICAgICAgIFByaXNtLmxhbmd1YWdlc1tjb2RlTGFuZ10sXG4gICAgICAgICAgICAgICAgY29kZUxhbmdcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVudi5jb250ZW50ID0gUHJpc20uaGlnaGxpZ2h0KFxuICAgICAgICAgIHRleHRDb250ZW50KGVudi5jb250ZW50LnZhbHVlKSxcbiAgICAgICAgICBncmFtbWFyLFxuICAgICAgICAgIGNvZGVMYW5nXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICAgIHZhciB0YWdQYXR0ZXJuID0gUmVnRXhwKFByaXNtLmxhbmd1YWdlcy5tYXJrdXAudGFnLnBhdHRlcm4uc291cmNlLCAnZ2knKVxuICAgIC8qKlxuICAgICAqIEEgbGlzdCBvZiBrbm93biBlbnRpdHkgbmFtZXMuXG4gICAgICpcbiAgICAgKiBUaGlzIHdpbGwgYWx3YXlzIGJlIGluY29tcGxldGUgdG8gc2F2ZSBzcGFjZS4gVGhlIGN1cnJlbnQgbGlzdCBpcyB0aGUgb25lIHVzZWQgYnkgbG93ZGFzaCdzIHVuZXNjYXBlIGZ1bmN0aW9uLlxuICAgICAqXG4gICAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi8yZGEwMjRjM2I0Zjk5NDdhNDg1MTc2MzlkZTc1NjA0NTdjZDRlYzZjL3VuZXNjYXBlLmpzI0wyfVxuICAgICAqL1xuICAgIHZhciBLTk9XTl9FTlRJVFlfTkFNRVMgPSB7XG4gICAgICBhbXA6ICcmJyxcbiAgICAgIGx0OiAnPCcsXG4gICAgICBndDogJz4nLFxuICAgICAgcXVvdDogJ1wiJ1xuICAgIH0gLy8gSUUgMTEgZG9lc24ndCBzdXBwb3J0IGBTdHJpbmcuZnJvbUNvZGVQb2ludGBcbiAgICB2YXIgZnJvbUNvZGVQb2ludCA9IFN0cmluZy5mcm9tQ29kZVBvaW50IHx8IFN0cmluZy5mcm9tQ2hhckNvZGVcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgYSBnaXZlbiBIVE1MIHNvdXJjZSBjb2RlIHN0cmluZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBodG1sXG4gICAgICogQHJldHVybnMge3N0cmluZ31cbiAgICAgKi9cbiAgICBmdW5jdGlvbiB0ZXh0Q29udGVudChodG1sKSB7XG4gICAgICAvLyByZW1vdmUgYWxsIHRhZ3NcbiAgICAgIHZhciB0ZXh0ID0gaHRtbC5yZXBsYWNlKHRhZ1BhdHRlcm4sICcnKSAvLyBkZWNvZGUga25vd24gZW50aXRpZXNcbiAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoLyYoXFx3ezEsOH18I3g/W1xcZGEtZl17MSw4fSk7L2dpLCBmdW5jdGlvbiAobSwgY29kZSkge1xuICAgICAgICBjb2RlID0gY29kZS50b0xvd2VyQ2FzZSgpXG4gICAgICAgIGlmIChjb2RlWzBdID09PSAnIycpIHtcbiAgICAgICAgICB2YXIgdmFsdWVcbiAgICAgICAgICBpZiAoY29kZVsxXSA9PT0gJ3gnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHBhcnNlSW50KGNvZGUuc2xpY2UoMiksIDE2KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IE51bWJlcihjb2RlLnNsaWNlKDEpKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gZnJvbUNvZGVQb2ludCh2YWx1ZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB2YXIga25vd24gPSBLTk9XTl9FTlRJVFlfTkFNRVNbY29kZV1cbiAgICAgICAgICBpZiAoa25vd24pIHtcbiAgICAgICAgICAgIHJldHVybiBrbm93blxuICAgICAgICAgIH0gLy8gdW5hYmxlIHRvIGRlY29kZVxuICAgICAgICAgIHJldHVybiBtXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICByZXR1cm4gdGV4dFxuICAgIH1cbiAgICBQcmlzbS5sYW5ndWFnZXMubWQgPSBQcmlzbS5sYW5ndWFnZXMubWFya2Rvd25cbiAgfSkoUHJpc20pXG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/markdown.js\n")},"../../node_modules/refractor/lang/markup.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = markup\nmarkup.displayName = 'markup'\nmarkup.aliases = ['html', 'mathml', 'svg', 'xml', 'ssml', 'atom', 'rss']\nfunction markup(Prism) {\n Prism.languages.markup = {\n comment: {\n pattern: /\x3c!--(?:(?!\x3c!--)[\\s\\S])*?--\x3e/,\n greedy: true\n },\n prolog: {\n pattern: /<\\?[\\s\\S]+?\\?>/,\n greedy: true\n },\n doctype: {\n // https://www.w3.org/TR/xml/#NT-doctypedecl\n pattern:\n /<!DOCTYPE(?:[^>\"'[\\]]|\"[^\"]*\"|'[^']*')+(?:\\[(?:[^<\"'\\]]|\"[^\"]*\"|'[^']*'|<(?!!--)|\x3c!--(?:[^-]|-(?!->))*--\x3e)*\\]\\s*)?>/i,\n greedy: true,\n inside: {\n 'internal-subset': {\n pattern: /(^[^\\[]*\\[)[\\s\\S]+(?=\\]>$)/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n string: {\n pattern: /\"[^\"]*\"|'[^']*'/,\n greedy: true\n },\n punctuation: /^<!|>$|[[\\]]/,\n 'doctype-tag': /^DOCTYPE/i,\n name: /[^\\s<>'\"]+/\n }\n },\n cdata: {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n greedy: true\n },\n tag: {\n pattern:\n /<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s(?:\\s*[^\\s>\\/=]+(?:\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))|(?=[\\s/>])))+)?\\s*\\/?>/,\n greedy: true,\n inside: {\n tag: {\n pattern: /^<\\/?[^\\s>\\/]+/,\n inside: {\n punctuation: /^<\\/?/,\n namespace: /^[^\\s>\\/:]+:/\n }\n },\n 'special-attr': [],\n 'attr-value': {\n pattern: /=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+)/,\n inside: {\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n },\n punctuation: /\\/?>/,\n 'attr-name': {\n pattern: /[^\\s>\\/]+/,\n inside: {\n namespace: /^[^\\s>\\/:]+:/\n }\n }\n }\n },\n entity: [\n {\n pattern: /&[\\da-z]{1,8};/i,\n alias: 'named-entity'\n },\n /&#x?[\\da-f]{1,8};/i\n ]\n }\n Prism.languages.markup['tag'].inside['attr-value'].inside['entity'] =\n Prism.languages.markup['entity']\n Prism.languages.markup['doctype'].inside['internal-subset'].inside =\n Prism.languages.markup // Plugin to make entity title show the real entity, idea by Roman Komarov\n Prism.hooks.add('wrap', function (env) {\n if (env.type === 'entity') {\n env.attributes['title'] = env.content.value.replace(/&/, '&')\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addInlined', {\n /**\n * Adds an inlined language to markup.\n *\n * An example of an inlined language is CSS with `<style>` tags.\n *\n * @param {string} tagName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addInlined('style', 'css');\n */\n value: function addInlined(tagName, lang) {\n var includedCdataInside = {}\n includedCdataInside['language-' + lang] = {\n pattern: /(^<!\\[CDATA\\[)[\\s\\S]+?(?=\\]\\]>$)/i,\n lookbehind: true,\n inside: Prism.languages[lang]\n }\n includedCdataInside['cdata'] = /^<!\\[CDATA\\[|\\]\\]>$/i\n var inside = {\n 'included-cdata': {\n pattern: /<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/i,\n inside: includedCdataInside\n }\n }\n inside['language-' + lang] = {\n pattern: /[\\s\\S]+/,\n inside: Prism.languages[lang]\n }\n var def = {}\n def[tagName] = {\n pattern: RegExp(\n /(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)/.source.replace(\n /__/g,\n function () {\n return tagName\n }\n ),\n 'i'\n ),\n lookbehind: true,\n greedy: true,\n inside: inside\n }\n Prism.languages.insertBefore('markup', 'cdata', def)\n }\n })\n Object.defineProperty(Prism.languages.markup.tag, 'addAttribute', {\n /**\n * Adds an pattern to highlight languages embedded in HTML attributes.\n *\n * An example of an inlined language is CSS with `style` attributes.\n *\n * @param {string} attrName The name of the tag that contains the inlined language. This name will be treated as\n * case insensitive.\n * @param {string} lang The language key.\n * @example\n * addAttribute('style', 'css');\n */\n value: function (attrName, lang) {\n Prism.languages.markup.tag.inside['special-attr'].push({\n pattern: RegExp(\n /(^|[\"'\\s])/.source +\n '(?:' +\n attrName +\n ')' +\n /\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))/.source,\n 'i'\n ),\n lookbehind: true,\n inside: {\n 'attr-name': /^[^\\s=]+/,\n 'attr-value': {\n pattern: /=[\\s\\S]+/,\n inside: {\n value: {\n pattern: /(^=\\s*([\"']|(?![\"'])))\\S[\\s\\S]*(?=\\2$)/,\n lookbehind: true,\n alias: [lang, 'language-' + lang],\n inside: Prism.languages[lang]\n },\n punctuation: [\n {\n pattern: /^=/,\n alias: 'attr-equals'\n },\n /\"|'/\n ]\n }\n }\n }\n })\n }\n })\n Prism.languages.html = Prism.languages.markup\n Prism.languages.mathml = Prism.languages.markup\n Prism.languages.svg = Prism.languages.markup\n Prism.languages.xml = Prism.languages.extend('markup', {})\n Prism.languages.ssml = Prism.languages.xml\n Prism.languages.atom = Prism.languages.xml\n Prism.languages.rss = Prism.languages.xml\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy9tYXJrdXAuanM/NTU1NSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSwyQkFBMkIsS0FBSztBQUNoQztBQUNBLE9BQU87QUFDUCxtQkFBbUIsS0FBSztBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0VBQWdFO0FBQ2hFO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsT0FBTztBQUN0QjtBQUNBLGVBQWUsT0FBTztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsT0FBTztBQUN0QjtBQUNBLGVBQWUsT0FBTztBQUN0QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlO0FBQ2Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSwyREFBMkQ7QUFDM0Q7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3JlZnJhY3Rvci9sYW5nL21hcmt1cC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IG1hcmt1cFxubWFya3VwLmRpc3BsYXlOYW1lID0gJ21hcmt1cCdcbm1hcmt1cC5hbGlhc2VzID0gWydodG1sJywgJ21hdGhtbCcsICdzdmcnLCAneG1sJywgJ3NzbWwnLCAnYXRvbScsICdyc3MnXVxuZnVuY3Rpb24gbWFya3VwKFByaXNtKSB7XG4gIFByaXNtLmxhbmd1YWdlcy5tYXJrdXAgPSB7XG4gICAgY29tbWVudDoge1xuICAgICAgcGF0dGVybjogLzwhLS0oPzooPyE8IS0tKVtcXHNcXFNdKSo/LS0+LyxcbiAgICAgIGdyZWVkeTogdHJ1ZVxuICAgIH0sXG4gICAgcHJvbG9nOiB7XG4gICAgICBwYXR0ZXJuOiAvPFxcP1tcXHNcXFNdKz9cXD8+LyxcbiAgICAgIGdyZWVkeTogdHJ1ZVxuICAgIH0sXG4gICAgZG9jdHlwZToge1xuICAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL3htbC8jTlQtZG9jdHlwZWRlY2xcbiAgICAgIHBhdHRlcm46XG4gICAgICAgIC88IURPQ1RZUEUoPzpbXj5cIidbXFxdXXxcIlteXCJdKlwifCdbXiddKicpKyg/OlxcWyg/OltePFwiJ1xcXV18XCJbXlwiXSpcInwnW14nXSonfDwoPyEhLS0pfDwhLS0oPzpbXi1dfC0oPyEtPikpKi0tPikqXFxdXFxzKik/Pi9pLFxuICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgaW5zaWRlOiB7XG4gICAgICAgICdpbnRlcm5hbC1zdWJzZXQnOiB7XG4gICAgICAgICAgcGF0dGVybjogLyheW15cXFtdKlxcWylbXFxzXFxTXSsoPz1cXF0+JCkvLFxuICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICAgIGluc2lkZTogbnVsbCAvLyBzZWUgYmVsb3dcbiAgICAgICAgfSxcbiAgICAgICAgc3RyaW5nOiB7XG4gICAgICAgICAgcGF0dGVybjogL1wiW15cIl0qXCJ8J1teJ10qJy8sXG4gICAgICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHB1bmN0dWF0aW9uOiAvXjwhfD4kfFtbXFxdXS8sXG4gICAgICAgICdkb2N0eXBlLXRhZyc6IC9eRE9DVFlQRS9pLFxuICAgICAgICBuYW1lOiAvW15cXHM8PidcIl0rL1xuICAgICAgfVxuICAgIH0sXG4gICAgY2RhdGE6IHtcbiAgICAgIHBhdHRlcm46IC88IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4vaSxcbiAgICAgIGdyZWVkeTogdHJ1ZVxuICAgIH0sXG4gICAgdGFnOiB7XG4gICAgICBwYXR0ZXJuOlxuICAgICAgICAvPFxcLz8oPyFcXGQpW15cXHM+XFwvPSQ8JV0rKD86XFxzKD86XFxzKlteXFxzPlxcLz1dKyg/Olxccyo9XFxzKig/OlwiW15cIl0qXCJ8J1teJ10qJ3xbXlxccydcIj49XSsoPz1bXFxzPl0pKXwoPz1bXFxzLz5dKSkpKyk/XFxzKlxcLz8+LyxcbiAgICAgIGdyZWVkeTogdHJ1ZSxcbiAgICAgIGluc2lkZToge1xuICAgICAgICB0YWc6IHtcbiAgICAgICAgICBwYXR0ZXJuOiAvXjxcXC8/W15cXHM+XFwvXSsvLFxuICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgcHVuY3R1YXRpb246IC9ePFxcLz8vLFxuICAgICAgICAgICAgbmFtZXNwYWNlOiAvXlteXFxzPlxcLzpdKzovXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAnc3BlY2lhbC1hdHRyJzogW10sXG4gICAgICAgICdhdHRyLXZhbHVlJzoge1xuICAgICAgICAgIHBhdHRlcm46IC89XFxzKig/OlwiW15cIl0qXCJ8J1teJ10qJ3xbXlxccydcIj49XSspLyxcbiAgICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAgIHB1bmN0dWF0aW9uOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwYXR0ZXJuOiAvXj0vLFxuICAgICAgICAgICAgICAgIGFsaWFzOiAnYXR0ci1lcXVhbHMnXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC9cInwnL1xuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgcHVuY3R1YXRpb246IC9cXC8/Pi8sXG4gICAgICAgICdhdHRyLW5hbWUnOiB7XG4gICAgICAgICAgcGF0dGVybjogL1teXFxzPlxcL10rLyxcbiAgICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICAgIG5hbWVzcGFjZTogL15bXlxccz5cXC86XSs6L1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgZW50aXR5OiBbXG4gICAgICB7XG4gICAgICAgIHBhdHRlcm46IC8mW1xcZGEtel17MSw4fTsvaSxcbiAgICAgICAgYWxpYXM6ICduYW1lZC1lbnRpdHknXG4gICAgICB9LFxuICAgICAgLyYjeD9bXFxkYS1mXXsxLDh9Oy9pXG4gICAgXVxuICB9XG4gIFByaXNtLmxhbmd1YWdlcy5tYXJrdXBbJ3RhZyddLmluc2lkZVsnYXR0ci12YWx1ZSddLmluc2lkZVsnZW50aXR5J10gPVxuICAgIFByaXNtLmxhbmd1YWdlcy5tYXJrdXBbJ2VudGl0eSddXG4gIFByaXNtLmxhbmd1YWdlcy5tYXJrdXBbJ2RvY3R5cGUnXS5pbnNpZGVbJ2ludGVybmFsLXN1YnNldCddLmluc2lkZSA9XG4gICAgUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cCAvLyBQbHVnaW4gdG8gbWFrZSBlbnRpdHkgdGl0bGUgc2hvdyB0aGUgcmVhbCBlbnRpdHksIGlkZWEgYnkgUm9tYW4gS29tYXJvdlxuICBQcmlzbS5ob29rcy5hZGQoJ3dyYXAnLCBmdW5jdGlvbiAoZW52KSB7XG4gICAgaWYgKGVudi50eXBlID09PSAnZW50aXR5Jykge1xuICAgICAgZW52LmF0dHJpYnV0ZXNbJ3RpdGxlJ10gPSBlbnYuY29udGVudC52YWx1ZS5yZXBsYWNlKC8mYW1wOy8sICcmJylcbiAgICB9XG4gIH0pXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShQcmlzbS5sYW5ndWFnZXMubWFya3VwLnRhZywgJ2FkZElubGluZWQnLCB7XG4gICAgLyoqXG4gICAgICogQWRkcyBhbiBpbmxpbmVkIGxhbmd1YWdlIHRvIG1hcmt1cC5cbiAgICAgKlxuICAgICAqIEFuIGV4YW1wbGUgb2YgYW4gaW5saW5lZCBsYW5ndWFnZSBpcyBDU1Mgd2l0aCBgPHN0eWxlPmAgdGFncy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0YWdOYW1lIFRoZSBuYW1lIG9mIHRoZSB0YWcgdGhhdCBjb250YWlucyB0aGUgaW5saW5lZCBsYW5ndWFnZS4gVGhpcyBuYW1lIHdpbGwgYmUgdHJlYXRlZCBhc1xuICAgICAqIGNhc2UgaW5zZW5zaXRpdmUuXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGxhbmcgVGhlIGxhbmd1YWdlIGtleS5cbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGFkZElubGluZWQoJ3N0eWxlJywgJ2NzcycpO1xuICAgICAqL1xuICAgIHZhbHVlOiBmdW5jdGlvbiBhZGRJbmxpbmVkKHRhZ05hbWUsIGxhbmcpIHtcbiAgICAgIHZhciBpbmNsdWRlZENkYXRhSW5zaWRlID0ge31cbiAgICAgIGluY2x1ZGVkQ2RhdGFJbnNpZGVbJ2xhbmd1YWdlLScgKyBsYW5nXSA9IHtcbiAgICAgICAgcGF0dGVybjogLyhePCFcXFtDREFUQVxcWylbXFxzXFxTXSs/KD89XFxdXFxdPiQpL2ksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzW2xhbmddXG4gICAgICB9XG4gICAgICBpbmNsdWRlZENkYXRhSW5zaWRlWydjZGF0YSddID0gL148IVxcW0NEQVRBXFxbfFxcXVxcXT4kL2lcbiAgICAgIHZhciBpbnNpZGUgPSB7XG4gICAgICAgICdpbmNsdWRlZC1jZGF0YSc6IHtcbiAgICAgICAgICBwYXR0ZXJuOiAvPCFcXFtDREFUQVxcW1tcXHNcXFNdKj9cXF1cXF0+L2ksXG4gICAgICAgICAgaW5zaWRlOiBpbmNsdWRlZENkYXRhSW5zaWRlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGluc2lkZVsnbGFuZ3VhZ2UtJyArIGxhbmddID0ge1xuICAgICAgICBwYXR0ZXJuOiAvW1xcc1xcU10rLyxcbiAgICAgICAgaW5zaWRlOiBQcmlzbS5sYW5ndWFnZXNbbGFuZ11cbiAgICAgIH1cbiAgICAgIHZhciBkZWYgPSB7fVxuICAgICAgZGVmW3RhZ05hbWVdID0ge1xuICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoXG4gICAgICAgICAgLyg8X19bXj5dKj4pKD86PCFcXFtDREFUQVxcWyg/OlteXFxdXXxcXF0oPyFcXF0+KSkqXFxdXFxdPnwoPyE8IVxcW0NEQVRBXFxbKVtcXHNcXFNdKSo/KD89PFxcL19fPikvLnNvdXJjZS5yZXBsYWNlKFxuICAgICAgICAgICAgL19fL2csXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0YWdOYW1lXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKSxcbiAgICAgICAgICAnaSdcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICBpbnNpZGU6IGluc2lkZVxuICAgICAgfVxuICAgICAgUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgnbWFya3VwJywgJ2NkYXRhJywgZGVmKVxuICAgIH1cbiAgfSlcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFByaXNtLmxhbmd1YWdlcy5tYXJrdXAudGFnLCAnYWRkQXR0cmlidXRlJywge1xuICAgIC8qKlxuICAgICAqIEFkZHMgYW4gcGF0dGVybiB0byBoaWdobGlnaHQgbGFuZ3VhZ2VzIGVtYmVkZGVkIGluIEhUTUwgYXR0cmlidXRlcy5cbiAgICAgKlxuICAgICAqIEFuIGV4YW1wbGUgb2YgYW4gaW5saW5lZCBsYW5ndWFnZSBpcyBDU1Mgd2l0aCBgc3R5bGVgIGF0dHJpYnV0ZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gYXR0ck5hbWUgVGhlIG5hbWUgb2YgdGhlIHRhZyB0aGF0IGNvbnRhaW5zIHRoZSBpbmxpbmVkIGxhbmd1YWdlLiBUaGlzIG5hbWUgd2lsbCBiZSB0cmVhdGVkIGFzXG4gICAgICogY2FzZSBpbnNlbnNpdGl2ZS5cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGFuZyBUaGUgbGFuZ3VhZ2Uga2V5LlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYWRkQXR0cmlidXRlKCdzdHlsZScsICdjc3MnKTtcbiAgICAgKi9cbiAgICB2YWx1ZTogZnVuY3Rpb24gKGF0dHJOYW1lLCBsYW5nKSB7XG4gICAgICBQcmlzbS5sYW5ndWFnZXMubWFya3VwLnRhZy5pbnNpZGVbJ3NwZWNpYWwtYXR0ciddLnB1c2goe1xuICAgICAgICBwYXR0ZXJuOiBSZWdFeHAoXG4gICAgICAgICAgLyhefFtcIidcXHNdKS8uc291cmNlICtcbiAgICAgICAgICAgICcoPzonICtcbiAgICAgICAgICAgIGF0dHJOYW1lICtcbiAgICAgICAgICAgICcpJyArXG4gICAgICAgICAgICAvXFxzKj1cXHMqKD86XCJbXlwiXSpcInwnW14nXSonfFteXFxzJ1wiPj1dKyg/PVtcXHM+XSkpLy5zb3VyY2UsXG4gICAgICAgICAgJ2knXG4gICAgICAgICksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGluc2lkZToge1xuICAgICAgICAgICdhdHRyLW5hbWUnOiAvXlteXFxzPV0rLyxcbiAgICAgICAgICAnYXR0ci12YWx1ZSc6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC89W1xcc1xcU10rLyxcbiAgICAgICAgICAgIGluc2lkZToge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHBhdHRlcm46IC8oXj1cXHMqKFtcIiddfCg/IVtcIiddKSkpXFxTW1xcc1xcU10qKD89XFwyJCkvLFxuICAgICAgICAgICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgICAgICAgICAgYWxpYXM6IFtsYW5nLCAnbGFuZ3VhZ2UtJyArIGxhbmddLFxuICAgICAgICAgICAgICAgIGluc2lkZTogUHJpc20ubGFuZ3VhZ2VzW2xhbmddXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHB1bmN0dWF0aW9uOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcGF0dGVybjogL149LyxcbiAgICAgICAgICAgICAgICAgIGFsaWFzOiAnYXR0ci1lcXVhbHMnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAvXCJ8Jy9cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH0pXG4gIFByaXNtLmxhbmd1YWdlcy5odG1sID0gUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cFxuICBQcmlzbS5sYW5ndWFnZXMubWF0aG1sID0gUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cFxuICBQcmlzbS5sYW5ndWFnZXMuc3ZnID0gUHJpc20ubGFuZ3VhZ2VzLm1hcmt1cFxuICBQcmlzbS5sYW5ndWFnZXMueG1sID0gUHJpc20ubGFuZ3VhZ2VzLmV4dGVuZCgnbWFya3VwJywge30pXG4gIFByaXNtLmxhbmd1YWdlcy5zc21sID0gUHJpc20ubGFuZ3VhZ2VzLnhtbFxuICBQcmlzbS5sYW5ndWFnZXMuYXRvbSA9IFByaXNtLmxhbmd1YWdlcy54bWxcbiAgUHJpc20ubGFuZ3VhZ2VzLnJzcyA9IFByaXNtLmxhbmd1YWdlcy54bWxcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/markup.js\n")},"../../node_modules/refractor/lang/tsx.js":function(module,exports,__webpack_require__){"use strict";eval("\nvar refractorJsx = __webpack_require__(\"../../node_modules/refractor/lang/jsx.js\")\nvar refractorTypescript = __webpack_require__(\"../../node_modules/refractor/lang/typescript.js\")\nmodule.exports = tsx\ntsx.displayName = 'tsx'\ntsx.aliases = []\nfunction tsx(Prism) {\n Prism.register(refractorJsx)\n Prism.register(refractorTypescript)\n ;(function (Prism) {\n var typescript = Prism.util.clone(Prism.languages.typescript)\n Prism.languages.tsx = Prism.languages.extend('jsx', typescript) // This will prevent collisions between TSX tags and TS generic types.\n // Idea by https://github.com/karlhorky\n // Discussion: https://github.com/PrismJS/prism/issues/2594#issuecomment-710666928\n var tag = Prism.languages.tsx.tag\n tag.pattern = RegExp(\n /(^|[^\\w$]|(?=<\\/))/.source + '(?:' + tag.pattern.source + ')',\n tag.pattern.flags\n )\n tag.lookbehind = true\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy90c3guanM/OGJlNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBWTtBQUNaLG1CQUFtQixtQkFBTyxDQUFDLDBDQUFVO0FBQ3JDLDBCQUEwQixtQkFBTyxDQUFDLGlEQUFpQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3JlZnJhY3Rvci9sYW5nL3RzeC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xudmFyIHJlZnJhY3RvckpzeCA9IHJlcXVpcmUoJy4vanN4LmpzJylcbnZhciByZWZyYWN0b3JUeXBlc2NyaXB0ID0gcmVxdWlyZSgnLi90eXBlc2NyaXB0LmpzJylcbm1vZHVsZS5leHBvcnRzID0gdHN4XG50c3guZGlzcGxheU5hbWUgPSAndHN4J1xudHN4LmFsaWFzZXMgPSBbXVxuZnVuY3Rpb24gdHN4KFByaXNtKSB7XG4gIFByaXNtLnJlZ2lzdGVyKHJlZnJhY3RvckpzeClcbiAgUHJpc20ucmVnaXN0ZXIocmVmcmFjdG9yVHlwZXNjcmlwdClcbiAgOyhmdW5jdGlvbiAoUHJpc20pIHtcbiAgICB2YXIgdHlwZXNjcmlwdCA9IFByaXNtLnV0aWwuY2xvbmUoUHJpc20ubGFuZ3VhZ2VzLnR5cGVzY3JpcHQpXG4gICAgUHJpc20ubGFuZ3VhZ2VzLnRzeCA9IFByaXNtLmxhbmd1YWdlcy5leHRlbmQoJ2pzeCcsIHR5cGVzY3JpcHQpIC8vIFRoaXMgd2lsbCBwcmV2ZW50IGNvbGxpc2lvbnMgYmV0d2VlbiBUU1ggdGFncyBhbmQgVFMgZ2VuZXJpYyB0eXBlcy5cbiAgICAvLyBJZGVhIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9rYXJsaG9ya3lcbiAgICAvLyBEaXNjdXNzaW9uOiBodHRwczovL2dpdGh1Yi5jb20vUHJpc21KUy9wcmlzbS9pc3N1ZXMvMjU5NCNpc3N1ZWNvbW1lbnQtNzEwNjY2OTI4XG4gICAgdmFyIHRhZyA9IFByaXNtLmxhbmd1YWdlcy50c3gudGFnXG4gICAgdGFnLnBhdHRlcm4gPSBSZWdFeHAoXG4gICAgICAvKF58W15cXHckXXwoPz08XFwvKSkvLnNvdXJjZSArICcoPzonICsgdGFnLnBhdHRlcm4uc291cmNlICsgJyknLFxuICAgICAgdGFnLnBhdHRlcm4uZmxhZ3NcbiAgICApXG4gICAgdGFnLmxvb2tiZWhpbmQgPSB0cnVlXG4gIH0pKFByaXNtKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/tsx.js\n")},"../../node_modules/refractor/lang/typescript.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = typescript\ntypescript.displayName = 'typescript'\ntypescript.aliases = ['ts']\nfunction typescript(Prism) {\n ;(function (Prism) {\n Prism.languages.typescript = Prism.languages.extend('javascript', {\n 'class-name': {\n pattern:\n /(\\b(?:class|extends|implements|instanceof|interface|new|type)\\s+)(?!keyof\\b)(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*(?:\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,\n lookbehind: true,\n greedy: true,\n inside: null // see below\n },\n builtin:\n /\\b(?:string|Function|any|number|boolean|Array|symbol|console|Promise|unknown|never)\\b/\n }) // The keywords TypeScript adds to JavaScript\n Prism.languages.typescript.keyword.push(\n /\\b(?:abstract|as|declare|implements|is|keyof|readonly|require)\\b/, // keywords that have to be followed by an identifier\n /\\b(?:asserts|infer|interface|module|namespace|type)\\b(?=\\s*(?:[{_$a-zA-Z\\xA0-\\uFFFF]|$))/, // This is for `import type *, {}`\n /\\btype\\b(?=\\s*(?:[\\{*]|$))/\n ) // doesn't work with TS because TS is too complex\n delete Prism.languages.typescript['parameter'] // a version of typescript specifically for highlighting types\n var typeInside = Prism.languages.extend('typescript', {})\n delete typeInside['class-name']\n Prism.languages.typescript['class-name'].inside = typeInside\n Prism.languages.insertBefore('typescript', 'function', {\n decorator: {\n pattern: /@[$\\w\\xA0-\\uFFFF]+/,\n inside: {\n at: {\n pattern: /^@/,\n alias: 'operator'\n },\n function: /^[\\s\\S]+/\n }\n },\n 'generic-function': {\n // e.g. foo<T extends \"bar\" | \"baz\">( ...\n pattern:\n /#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*\\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\\s*\\()/,\n greedy: true,\n inside: {\n function: /^#?(?!\\s)[_$a-zA-Z\\xA0-\\uFFFF](?:(?!\\s)[$\\w\\xA0-\\uFFFF])*/,\n generic: {\n pattern: /<[\\s\\S]+/,\n // everything after the first <\n alias: 'class-name',\n inside: typeInside\n }\n }\n }\n })\n Prism.languages.ts = Prism.languages.typescript\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy90eXBlc2NyaXB0LmpzP2FkYzUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsdUVBQXVFLDREQUE0RDtBQUNuSSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBLDREQUE0RDtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxHQUFHO0FBQ0giLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3JlZnJhY3Rvci9sYW5nL3R5cGVzY3JpcHQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB0eXBlc2NyaXB0XG50eXBlc2NyaXB0LmRpc3BsYXlOYW1lID0gJ3R5cGVzY3JpcHQnXG50eXBlc2NyaXB0LmFsaWFzZXMgPSBbJ3RzJ11cbmZ1bmN0aW9uIHR5cGVzY3JpcHQoUHJpc20pIHtcbiAgOyhmdW5jdGlvbiAoUHJpc20pIHtcbiAgICBQcmlzbS5sYW5ndWFnZXMudHlwZXNjcmlwdCA9IFByaXNtLmxhbmd1YWdlcy5leHRlbmQoJ2phdmFzY3JpcHQnLCB7XG4gICAgICAnY2xhc3MtbmFtZSc6IHtcbiAgICAgICAgcGF0dGVybjpcbiAgICAgICAgICAvKFxcYig/OmNsYXNzfGV4dGVuZHN8aW1wbGVtZW50c3xpbnN0YW5jZW9mfGludGVyZmFjZXxuZXd8dHlwZSlcXHMrKSg/IWtleW9mXFxiKSg/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSooPzpcXHMqPCg/OltePD5dfDwoPzpbXjw+XXw8W148Pl0qPikqPikqPik/LyxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICBpbnNpZGU6IG51bGwgLy8gc2VlIGJlbG93XG4gICAgICB9LFxuICAgICAgYnVpbHRpbjpcbiAgICAgICAgL1xcYig/OnN0cmluZ3xGdW5jdGlvbnxhbnl8bnVtYmVyfGJvb2xlYW58QXJyYXl8c3ltYm9sfGNvbnNvbGV8UHJvbWlzZXx1bmtub3dufG5ldmVyKVxcYi9cbiAgICB9KSAvLyBUaGUga2V5d29yZHMgVHlwZVNjcmlwdCBhZGRzIHRvIEphdmFTY3JpcHRcbiAgICBQcmlzbS5sYW5ndWFnZXMudHlwZXNjcmlwdC5rZXl3b3JkLnB1c2goXG4gICAgICAvXFxiKD86YWJzdHJhY3R8YXN8ZGVjbGFyZXxpbXBsZW1lbnRzfGlzfGtleW9mfHJlYWRvbmx5fHJlcXVpcmUpXFxiLywgLy8ga2V5d29yZHMgdGhhdCBoYXZlIHRvIGJlIGZvbGxvd2VkIGJ5IGFuIGlkZW50aWZpZXJcbiAgICAgIC9cXGIoPzphc3NlcnRzfGluZmVyfGludGVyZmFjZXxtb2R1bGV8bmFtZXNwYWNlfHR5cGUpXFxiKD89XFxzKig/Olt7XyRhLXpBLVpcXHhBMC1cXHVGRkZGXXwkKSkvLCAvLyBUaGlzIGlzIGZvciBgaW1wb3J0IHR5cGUgKiwge31gXG4gICAgICAvXFxidHlwZVxcYig/PVxccyooPzpbXFx7Kl18JCkpL1xuICAgICkgLy8gZG9lc24ndCB3b3JrIHdpdGggVFMgYmVjYXVzZSBUUyBpcyB0b28gY29tcGxleFxuICAgIGRlbGV0ZSBQcmlzbS5sYW5ndWFnZXMudHlwZXNjcmlwdFsncGFyYW1ldGVyJ10gLy8gYSB2ZXJzaW9uIG9mIHR5cGVzY3JpcHQgc3BlY2lmaWNhbGx5IGZvciBoaWdobGlnaHRpbmcgdHlwZXNcbiAgICB2YXIgdHlwZUluc2lkZSA9IFByaXNtLmxhbmd1YWdlcy5leHRlbmQoJ3R5cGVzY3JpcHQnLCB7fSlcbiAgICBkZWxldGUgdHlwZUluc2lkZVsnY2xhc3MtbmFtZSddXG4gICAgUHJpc20ubGFuZ3VhZ2VzLnR5cGVzY3JpcHRbJ2NsYXNzLW5hbWUnXS5pbnNpZGUgPSB0eXBlSW5zaWRlXG4gICAgUHJpc20ubGFuZ3VhZ2VzLmluc2VydEJlZm9yZSgndHlwZXNjcmlwdCcsICdmdW5jdGlvbicsIHtcbiAgICAgIGRlY29yYXRvcjoge1xuICAgICAgICBwYXR0ZXJuOiAvQFskXFx3XFx4QTAtXFx1RkZGRl0rLyxcbiAgICAgICAgaW5zaWRlOiB7XG4gICAgICAgICAgYXQ6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC9eQC8sXG4gICAgICAgICAgICBhbGlhczogJ29wZXJhdG9yJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZnVuY3Rpb246IC9eW1xcc1xcU10rL1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgJ2dlbmVyaWMtZnVuY3Rpb24nOiB7XG4gICAgICAgIC8vIGUuZy4gZm9vPFQgZXh0ZW5kcyBcImJhclwiIHwgXCJiYXpcIj4oIC4uLlxuICAgICAgICBwYXR0ZXJuOlxuICAgICAgICAgIC8jPyg/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSpcXHMqPCg/OltePD5dfDwoPzpbXjw+XXw8W148Pl0qPikqPikqPig/PVxccypcXCgpLyxcbiAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICBpbnNpZGU6IHtcbiAgICAgICAgICBmdW5jdGlvbjogL14jPyg/IVxccylbXyRhLXpBLVpcXHhBMC1cXHVGRkZGXSg/Oig/IVxccylbJFxcd1xceEEwLVxcdUZGRkZdKSovLFxuICAgICAgICAgIGdlbmVyaWM6IHtcbiAgICAgICAgICAgIHBhdHRlcm46IC88W1xcc1xcU10rLyxcbiAgICAgICAgICAgIC8vIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhlIGZpcnN0IDxcbiAgICAgICAgICAgIGFsaWFzOiAnY2xhc3MtbmFtZScsXG4gICAgICAgICAgICBpbnNpZGU6IHR5cGVJbnNpZGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICAgIFByaXNtLmxhbmd1YWdlcy50cyA9IFByaXNtLmxhbmd1YWdlcy50eXBlc2NyaXB0XG4gIH0pKFByaXNtKVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/typescript.js\n")},"../../node_modules/refractor/lang/yaml.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nmodule.exports = yaml\nyaml.displayName = 'yaml'\nyaml.aliases = ['yml']\nfunction yaml(Prism) {\n ;(function (Prism) {\n // https://yaml.org/spec/1.2/spec.html#c-ns-anchor-property\n // https://yaml.org/spec/1.2/spec.html#c-ns-alias-node\n var anchorOrAlias = /[*&][^\\s[\\]{},]+/ // https://yaml.org/spec/1.2/spec.html#c-ns-tag-property\n var tag =\n /!(?:<[\\w\\-%#;/?:@&=+$,.!~*'()[\\]]+>|(?:[a-zA-Z\\d-]*!)?[\\w\\-%#;/?:@&=+$.~*'()]+)?/ // https://yaml.org/spec/1.2/spec.html#c-ns-properties(n,c)\n var properties =\n '(?:' +\n tag.source +\n '(?:[ \\t]+' +\n anchorOrAlias.source +\n ')?|' +\n anchorOrAlias.source +\n '(?:[ \\t]+' +\n tag.source +\n ')?)' // https://yaml.org/spec/1.2/spec.html#ns-plain(n,c)\n // This is a simplified version that doesn't support \"#\" and multiline keys\n // All these long scarry character classes are simplified versions of YAML's characters\n var plainKey =\n /(?:[^\\s\\x00-\\x08\\x0e-\\x1f!\"#%&'*,\\-:>?@[\\]`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(\n /<PLAIN>/g,\n function () {\n return /[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]/\n .source\n }\n )\n var string = /\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\\\\\r\\n]|\\\\.)*'/.source\n /**\n *\n * @param {string} value\n * @param {string} [flags]\n * @returns {RegExp}\n */\n function createValuePattern(value, flags) {\n flags = (flags || '').replace(/m/g, '') + 'm' // add m flag\n var pattern =\n /([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<value>>/g, function () {\n return value\n })\n return RegExp(pattern, flags)\n }\n Prism.languages.yaml = {\n scalar: {\n pattern: RegExp(\n /([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)/.source.replace(\n /<<prop>>/g,\n function () {\n return properties\n }\n )\n ),\n lookbehind: true,\n alias: 'string'\n },\n comment: /#.*/,\n key: {\n pattern: RegExp(\n /((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)/.source\n .replace(/<<prop>>/g, function () {\n return properties\n })\n .replace(/<<key>>/g, function () {\n return '(?:' + plainKey + '|' + string + ')'\n })\n ),\n lookbehind: true,\n greedy: true,\n alias: 'atrule'\n },\n directive: {\n pattern: /(^[ \\t]*)%.+/m,\n lookbehind: true,\n alias: 'important'\n },\n datetime: {\n pattern: createValuePattern(\n /\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?/\n .source\n ),\n lookbehind: true,\n alias: 'number'\n },\n boolean: {\n pattern: createValuePattern(/true|false/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n null: {\n pattern: createValuePattern(/null|~/.source, 'i'),\n lookbehind: true,\n alias: 'important'\n },\n string: {\n pattern: createValuePattern(string),\n lookbehind: true,\n greedy: true\n },\n number: {\n pattern: createValuePattern(\n /[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)/\n .source,\n 'i'\n ),\n lookbehind: true\n },\n tag: tag,\n important: anchorOrAlias,\n punctuation: /---|[:[\\]{}\\-,|>?]|\\.\\.\\./\n }\n Prism.languages.yml = Prism.languages.yaml\n })(Prism)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy95YW1sLmpzPzg4YzMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLHNDQUFzQztBQUN0QztBQUNBLG9CQUFvQixpREFBaUQ7QUFDckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtREFBbUQsRUFBRTtBQUNyRDtBQUNBO0FBQ0EsOENBQThDO0FBQzlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsT0FBTztBQUN0QixlQUFlLE9BQU87QUFDdEIsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCLDREQUE0RDtBQUM3RTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSx3QkFBd0I7QUFDeEI7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxjQUFjLEVBQUUsb0NBQW9DLEVBQUUsSUFBSSxFQUFFLHdDQUF3QyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUU7QUFDbEo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0EsR0FBRztBQUNIIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9yZWZyYWN0b3IvbGFuZy95YW1sLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0geWFtbFxueWFtbC5kaXNwbGF5TmFtZSA9ICd5YW1sJ1xueWFtbC5hbGlhc2VzID0gWyd5bWwnXVxuZnVuY3Rpb24geWFtbChQcmlzbSkge1xuICA7KGZ1bmN0aW9uIChQcmlzbSkge1xuICAgIC8vIGh0dHBzOi8veWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI2MtbnMtYW5jaG9yLXByb3BlcnR5XG4gICAgLy8gaHR0cHM6Ly95YW1sLm9yZy9zcGVjLzEuMi9zcGVjLmh0bWwjYy1ucy1hbGlhcy1ub2RlXG4gICAgdmFyIGFuY2hvck9yQWxpYXMgPSAvWyomXVteXFxzW1xcXXt9LF0rLyAvLyBodHRwczovL3lhbWwub3JnL3NwZWMvMS4yL3NwZWMuaHRtbCNjLW5zLXRhZy1wcm9wZXJ0eVxuICAgIHZhciB0YWcgPVxuICAgICAgLyEoPzo8W1xcd1xcLSUjOy8/OkAmPSskLC4hfionKClbXFxdXSs+fCg/OlthLXpBLVpcXGQtXSohKT9bXFx3XFwtJSM7Lz86QCY9KyQufionKCldKyk/LyAvLyBodHRwczovL3lhbWwub3JnL3NwZWMvMS4yL3NwZWMuaHRtbCNjLW5zLXByb3BlcnRpZXMobixjKVxuICAgIHZhciBwcm9wZXJ0aWVzID1cbiAgICAgICcoPzonICtcbiAgICAgIHRhZy5zb3VyY2UgK1xuICAgICAgJyg/OlsgXFx0XSsnICtcbiAgICAgIGFuY2hvck9yQWxpYXMuc291cmNlICtcbiAgICAgICcpP3wnICtcbiAgICAgIGFuY2hvck9yQWxpYXMuc291cmNlICtcbiAgICAgICcoPzpbIFxcdF0rJyArXG4gICAgICB0YWcuc291cmNlICtcbiAgICAgICcpPyknIC8vIGh0dHBzOi8veWFtbC5vcmcvc3BlYy8xLjIvc3BlYy5odG1sI25zLXBsYWluKG4sYylcbiAgICAvLyBUaGlzIGlzIGEgc2ltcGxpZmllZCB2ZXJzaW9uIHRoYXQgZG9lc24ndCBzdXBwb3J0IFwiI1wiIGFuZCBtdWx0aWxpbmUga2V5c1xuICAgIC8vIEFsbCB0aGVzZSBsb25nIHNjYXJyeSBjaGFyYWN0ZXIgY2xhc3NlcyBhcmUgc2ltcGxpZmllZCB2ZXJzaW9ucyBvZiBZQU1MJ3MgY2hhcmFjdGVyc1xuICAgIHZhciBwbGFpbktleSA9XG4gICAgICAvKD86W15cXHNcXHgwMC1cXHgwOFxceDBlLVxceDFmIVwiIyUmJyosXFwtOj4/QFtcXF1ge3x9XFx4N2YtXFx4ODRcXHg4Ni1cXHg5ZlxcdWQ4MDAtXFx1ZGZmZlxcdWZmZmVcXHVmZmZmXXxbPzotXTxQTEFJTj4pKD86WyBcXHRdKig/Oig/IVsjOl0pPFBMQUlOPnw6PFBMQUlOPikpKi8uc291cmNlLnJlcGxhY2UoXG4gICAgICAgIC88UExBSU4+L2csXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICByZXR1cm4gL1teXFxzXFx4MDAtXFx4MDhcXHgwZS1cXHgxZixbXFxde31cXHg3Zi1cXHg4NFxceDg2LVxceDlmXFx1ZDgwMC1cXHVkZmZmXFx1ZmZmZVxcdWZmZmZdL1xuICAgICAgICAgICAgLnNvdXJjZVxuICAgICAgICB9XG4gICAgICApXG4gICAgdmFyIHN0cmluZyA9IC9cIig/OlteXCJcXFxcXFxyXFxuXXxcXFxcLikqXCJ8Jyg/OlteJ1xcXFxcXHJcXG5dfFxcXFwuKSonLy5zb3VyY2VcbiAgICAvKipcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbZmxhZ3NdXG4gICAgICogQHJldHVybnMge1JlZ0V4cH1cbiAgICAgKi9cbiAgICBmdW5jdGlvbiBjcmVhdGVWYWx1ZVBhdHRlcm4odmFsdWUsIGZsYWdzKSB7XG4gICAgICBmbGFncyA9IChmbGFncyB8fCAnJykucmVwbGFjZSgvbS9nLCAnJykgKyAnbScgLy8gYWRkIG0gZmxhZ1xuICAgICAgdmFyIHBhdHRlcm4gPVxuICAgICAgICAvKFs6XFwtLFt7XVxccyooPzpcXHM8PHByb3A+PlsgXFx0XSspPykoPzo8PHZhbHVlPj4pKD89WyBcXHRdKig/OiR8LHxcXF18XFx9fCg/OltcXHJcXG5dXFxzKik/IykpLy5zb3VyY2VcbiAgICAgICAgICAucmVwbGFjZSgvPDxwcm9wPj4vZywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5yZXBsYWNlKC88PHZhbHVlPj4vZywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgfSlcbiAgICAgIHJldHVybiBSZWdFeHAocGF0dGVybiwgZmxhZ3MpXG4gICAgfVxuICAgIFByaXNtLmxhbmd1YWdlcy55YW1sID0ge1xuICAgICAgc2NhbGFyOiB7XG4gICAgICAgIHBhdHRlcm46IFJlZ0V4cChcbiAgICAgICAgICAvKFtcXC06XVxccyooPzpcXHM8PHByb3A+PlsgXFx0XSspP1t8Pl0pWyBcXHRdKig/OigoPzpcXHI/XFxufFxccilbIFxcdF0rKVxcU1teXFxyXFxuXSooPzpcXDJbXlxcclxcbl0rKSopLy5zb3VyY2UucmVwbGFjZShcbiAgICAgICAgICAgIC88PHByb3A+Pi9nLFxuICAgICAgICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydGllc1xuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6ICdzdHJpbmcnXG4gICAgICB9LFxuICAgICAgY29tbWVudDogLyMuKi8sXG4gICAgICBrZXk6IHtcbiAgICAgICAgcGF0dGVybjogUmVnRXhwKFxuICAgICAgICAgIC8oKD86XnxbOlxcLSxbe1xcclxcbj9dKVsgXFx0XSooPzo8PHByb3A+PlsgXFx0XSspPyk8PGtleT4+KD89XFxzKjpcXHMpLy5zb3VyY2VcbiAgICAgICAgICAgIC5yZXBsYWNlKC88PHByb3A+Pi9nLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnJlcGxhY2UoLzw8a2V5Pj4vZywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICByZXR1cm4gJyg/OicgKyBwbGFpbktleSArICd8JyArIHN0cmluZyArICcpJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlLFxuICAgICAgICBhbGlhczogJ2F0cnVsZSdcbiAgICAgIH0sXG4gICAgICBkaXJlY3RpdmU6IHtcbiAgICAgICAgcGF0dGVybjogLyheWyBcXHRdKiklLisvbSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgYWxpYXM6ICdpbXBvcnRhbnQnXG4gICAgICB9LFxuICAgICAgZGF0ZXRpbWU6IHtcbiAgICAgICAgcGF0dGVybjogY3JlYXRlVmFsdWVQYXR0ZXJuKFxuICAgICAgICAgIC9cXGR7NH0tXFxkXFxkPy1cXGRcXGQ/KD86W3RUXXxbIFxcdF0rKVxcZFxcZD86XFxkezJ9OlxcZHsyfSg/OlxcLlxcZCopPyg/OlsgXFx0XSooPzpafFstK11cXGRcXGQ/KD86OlxcZHsyfSk/KSk/fFxcZHs0fS1cXGR7Mn0tXFxkezJ9fFxcZFxcZD86XFxkezJ9KD86OlxcZHsyfSg/OlxcLlxcZCopPyk/L1xuICAgICAgICAgICAgLnNvdXJjZVxuICAgICAgICApLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBhbGlhczogJ251bWJlcidcbiAgICAgIH0sXG4gICAgICBib29sZWFuOiB7XG4gICAgICAgIHBhdHRlcm46IGNyZWF0ZVZhbHVlUGF0dGVybigvdHJ1ZXxmYWxzZS8uc291cmNlLCAnaScpLFxuICAgICAgICBsb29rYmVoaW5kOiB0cnVlLFxuICAgICAgICBhbGlhczogJ2ltcG9ydGFudCdcbiAgICAgIH0sXG4gICAgICBudWxsOiB7XG4gICAgICAgIHBhdHRlcm46IGNyZWF0ZVZhbHVlUGF0dGVybigvbnVsbHx+Ly5zb3VyY2UsICdpJyksXG4gICAgICAgIGxvb2tiZWhpbmQ6IHRydWUsXG4gICAgICAgIGFsaWFzOiAnaW1wb3J0YW50J1xuICAgICAgfSxcbiAgICAgIHN0cmluZzoge1xuICAgICAgICBwYXR0ZXJuOiBjcmVhdGVWYWx1ZVBhdHRlcm4oc3RyaW5nKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZSxcbiAgICAgICAgZ3JlZWR5OiB0cnVlXG4gICAgICB9LFxuICAgICAgbnVtYmVyOiB7XG4gICAgICAgIHBhdHRlcm46IGNyZWF0ZVZhbHVlUGF0dGVybihcbiAgICAgICAgICAvWystXT8oPzoweFtcXGRhLWZdK3wwb1swLTddK3woPzpcXGQrKD86XFwuXFxkKik/fFxcLlxcZCspKD86ZVsrLV0/XFxkKyk/fFxcLmluZnxcXC5uYW4pL1xuICAgICAgICAgICAgLnNvdXJjZSxcbiAgICAgICAgICAnaSdcbiAgICAgICAgKSxcbiAgICAgICAgbG9va2JlaGluZDogdHJ1ZVxuICAgICAgfSxcbiAgICAgIHRhZzogdGFnLFxuICAgICAgaW1wb3J0YW50OiBhbmNob3JPckFsaWFzLFxuICAgICAgcHVuY3R1YXRpb246IC8tLS18WzpbXFxde31cXC0sfD4/XXxcXC5cXC5cXC4vXG4gICAgfVxuICAgIFByaXNtLmxhbmd1YWdlcy55bWwgPSBQcmlzbS5sYW5ndWFnZXMueWFtbFxuICB9KShQcmlzbSlcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/refractor/lang/yaml.js\n")},"../../node_modules/space-separated-tokens/index.js":function(module,exports,__webpack_require__){"use strict";eval("\n\nexports.parse = parse\nexports.stringify = stringify\n\nvar empty = ''\nvar space = ' '\nvar whiteSpace = /[ \\t\\n\\r\\f]+/g\n\nfunction parse(value) {\n var input = String(value || empty).trim()\n return input === empty ? [] : input.split(whiteSpace)\n}\n\nfunction stringify(values) {\n return values.join(space).trim()\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzPzZiYTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uL25vZGVfbW9kdWxlcy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmV4cG9ydHMucGFyc2UgPSBwYXJzZVxuZXhwb3J0cy5zdHJpbmdpZnkgPSBzdHJpbmdpZnlcblxudmFyIGVtcHR5ID0gJydcbnZhciBzcGFjZSA9ICcgJ1xudmFyIHdoaXRlU3BhY2UgPSAvWyBcXHRcXG5cXHJcXGZdKy9nXG5cbmZ1bmN0aW9uIHBhcnNlKHZhbHVlKSB7XG4gIHZhciBpbnB1dCA9IFN0cmluZyh2YWx1ZSB8fCBlbXB0eSkudHJpbSgpXG4gIHJldHVybiBpbnB1dCA9PT0gZW1wdHkgPyBbXSA6IGlucHV0LnNwbGl0KHdoaXRlU3BhY2UpXG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeSh2YWx1ZXMpIHtcbiAgcmV0dXJuIHZhbHVlcy5qb2luKHNwYWNlKS50cmltKClcbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../node_modules/space-separated-tokens/index.js\n")},"../../node_modules/xtend/immutable.js":function(module,exports){eval("module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vL2hvbWUvamVua2lucy93b3Jrc3BhY2UvZGVzaWduLXN5c3RlbV9tYWluL25vZGVfbW9kdWxlcy94dGVuZC9pbW11dGFibGUuanM/ZmVjOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBLG1CQUFtQixzQkFBc0I7QUFDekM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EiLCJmaWxlIjoiLi4vLi4vbm9kZV9tb2R1bGVzL3h0ZW5kL2ltbXV0YWJsZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gZXh0ZW5kXG5cbnZhciBoYXNPd25Qcm9wZXJ0eSA9IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7XG5cbmZ1bmN0aW9uIGV4dGVuZCgpIHtcbiAgICB2YXIgdGFyZ2V0ID0ge31cblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV1cblxuICAgICAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGFyZ2V0XG59XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../../node_modules/xtend/immutable.js\n")},"./node_modules/@storybook/components/dist/esm/syntaxhighlighter/syntaxhighlighter.js":function(module,__webpack_exports__,__webpack_require__){"use strict";eval('// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, "createCopyToClipboardFunction", function() { return /* binding */ createCopyToClipboardFunction; });\n__webpack_require__.d(__webpack_exports__, "SyntaxHighlighter", function() { return /* binding */ syntaxhighlighter_SyntaxHighlighter; });\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/regenerator-runtime/runtime.js\nvar runtime = __webpack_require__("../../node_modules/regenerator-runtime/runtime.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.entries.js\nvar es_object_entries = __webpack_require__("../../node_modules/core-js/modules/es.object.entries.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.assign.js\nvar es_object_assign = __webpack_require__("../../node_modules/core-js/modules/es.object.assign.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.trim.js\nvar es_string_trim = __webpack_require__("../../node_modules/core-js/modules/es.string.trim.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.to-string.js\nvar es_object_to_string = __webpack_require__("../../node_modules/core-js/modules/es.object.to-string.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.regexp.to-string.js\nvar es_regexp_to_string = __webpack_require__("../../node_modules/core-js/modules/es.regexp.to-string.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.js\nvar es_symbol = __webpack_require__("../../node_modules/core-js/modules/es.symbol.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.description.js\nvar es_symbol_description = __webpack_require__("../../node_modules/core-js/modules/es.symbol.description.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.symbol.iterator.js\nvar es_symbol_iterator = __webpack_require__("../../node_modules/core-js/modules/es.symbol.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.string.iterator.js\nvar es_string_iterator = __webpack_require__("../../node_modules/core-js/modules/es.string.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.iterator.js\nvar es_array_iterator = __webpack_require__("../../node_modules/core-js/modules/es.array.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/web.dom-collections.iterator.js\nvar web_dom_collections_iterator = __webpack_require__("../../node_modules/core-js/modules/web.dom-collections.iterator.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.slice.js\nvar es_array_slice = __webpack_require__("../../node_modules/core-js/modules/es.array.slice.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.function.name.js\nvar es_function_name = __webpack_require__("../../node_modules/core-js/modules/es.function.name.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.array.from.js\nvar es_array_from = __webpack_require__("../../node_modules/core-js/modules/es.array.from.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.promise.js\nvar es_promise = __webpack_require__("../../node_modules/core-js/modules/es.promise.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/core-js/modules/es.object.keys.js\nvar es_object_keys = __webpack_require__("../../node_modules/core-js/modules/es.object.keys.js");\n\n// EXTERNAL MODULE: ./node_modules/react/index.js\nvar react = __webpack_require__("./node_modules/react/index.js");\nvar react_default = /*#__PURE__*/__webpack_require__.n(react);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/@storybook/client-logger/dist/esm/index.js\nvar esm = __webpack_require__("../../node_modules/@storybook/client-logger/dist/esm/index.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/theming/dist/esm/index.js\nvar dist_esm = __webpack_require__("./node_modules/@storybook/theming/dist/esm/index.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/global/window.js\nvar global_window = __webpack_require__("../../node_modules/global/window.js");\nvar window_default = /*#__PURE__*/__webpack_require__.n(global_window);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/memoizerific/memoizerific.js\nvar memoizerific = __webpack_require__("../../node_modules/memoizerific/memoizerific.js");\nvar memoizerific_default = /*#__PURE__*/__webpack_require__.n(memoizerific);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/jsx.js\nvar jsx = __webpack_require__("../../node_modules/refractor/lang/jsx.js");\nvar jsx_default = /*#__PURE__*/__webpack_require__.n(jsx);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/jsx.js\n\n;\n/* harmony default export */ var prism_jsx = (jsx_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/bash.js\nvar bash = __webpack_require__("../../node_modules/refractor/lang/bash.js");\nvar bash_default = /*#__PURE__*/__webpack_require__.n(bash);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/bash.js\n\n;\n/* harmony default export */ var prism_bash = (bash_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/css.js\nvar css = __webpack_require__("../../node_modules/refractor/lang/css.js");\nvar css_default = /*#__PURE__*/__webpack_require__.n(css);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/css.js\n\n;\n/* harmony default export */ var prism_css = (css_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/js-extras.js\nvar js_extras = __webpack_require__("../../node_modules/refractor/lang/js-extras.js");\nvar js_extras_default = /*#__PURE__*/__webpack_require__.n(js_extras);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/js-extras.js\n\n;\n/* harmony default export */ var prism_js_extras = (js_extras_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/json.js\nvar json = __webpack_require__("../../node_modules/refractor/lang/json.js");\nvar json_default = /*#__PURE__*/__webpack_require__.n(json);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/json.js\n\n;\n/* harmony default export */ var prism_json = (json_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/graphql.js\nvar graphql = __webpack_require__("../../node_modules/refractor/lang/graphql.js");\nvar graphql_default = /*#__PURE__*/__webpack_require__.n(graphql);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/graphql.js\n\n;\n/* harmony default export */ var prism_graphql = (graphql_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/markup.js\nvar markup = __webpack_require__("../../node_modules/refractor/lang/markup.js");\nvar markup_default = /*#__PURE__*/__webpack_require__.n(markup);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/markup.js\n\n;\n/* harmony default export */ var prism_markup = (markup_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/markdown.js\nvar markdown = __webpack_require__("../../node_modules/refractor/lang/markdown.js");\nvar markdown_default = /*#__PURE__*/__webpack_require__.n(markdown);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/markdown.js\n\n;\n/* harmony default export */ var prism_markdown = (markdown_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/yaml.js\nvar yaml = __webpack_require__("../../node_modules/refractor/lang/yaml.js");\nvar yaml_default = /*#__PURE__*/__webpack_require__.n(yaml);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/yaml.js\n\n;\n/* harmony default export */ var prism_yaml = (yaml_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/tsx.js\nvar tsx = __webpack_require__("../../node_modules/refractor/lang/tsx.js");\nvar tsx_default = /*#__PURE__*/__webpack_require__.n(tsx);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/tsx.js\n\n;\n/* harmony default export */ var prism_tsx = (tsx_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/lang/typescript.js\nvar typescript = __webpack_require__("../../node_modules/refractor/lang/typescript.js");\nvar typescript_default = /*#__PURE__*/__webpack_require__.n(typescript);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/languages/prism/typescript.js\n\n;\n/* harmony default export */ var prism_typescript = (typescript_default.a);\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/@babel/runtime/helpers/objectWithoutProperties.js\nvar objectWithoutProperties = __webpack_require__("../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js");\nvar objectWithoutProperties_default = /*#__PURE__*/__webpack_require__.n(objectWithoutProperties);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/@babel/runtime/helpers/objectSpread.js\nvar objectSpread = __webpack_require__("../../node_modules/@babel/runtime/helpers/objectSpread.js");\nvar objectSpread_default = /*#__PURE__*/__webpack_require__.n(objectSpread);\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/@babel/runtime/helpers/extends.js\nvar helpers_extends = __webpack_require__("../../node_modules/@babel/runtime/helpers/extends.js");\nvar extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/create-element.js\n\n\n\nfunction createStyleObject(classNames) {\n var elementStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var stylesheet = arguments.length > 2 ? arguments[2] : undefined;\n return classNames.reduce(function (styleObject, className) {\n return objectSpread_default()({}, styleObject, stylesheet[className]);\n }, elementStyle);\n}\nfunction createClassNameString(classNames) {\n return classNames.join(\' \');\n}\nfunction createChildren(stylesheet, useInlineStyles) {\n var childrenCount = 0;\n return function (children) {\n childrenCount += 1;\n return children.map(function (child, i) {\n return createElement({\n node: child,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: "code-segment-".concat(childrenCount, "-").concat(i)\n });\n });\n };\n}\nfunction createElement(_ref) {\n var node = _ref.node,\n stylesheet = _ref.stylesheet,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style,\n useInlineStyles = _ref.useInlineStyles,\n key = _ref.key;\n var properties = node.properties,\n type = node.type,\n TagName = node.tagName,\n value = node.value;\n\n if (type === \'text\') {\n return value;\n } else if (TagName) {\n var childrenCreator = createChildren(stylesheet, useInlineStyles);\n var nonStylesheetClassNames = useInlineStyles && properties.className && properties.className.filter(function (className) {\n return !stylesheet[className];\n });\n var className = nonStylesheetClassNames && nonStylesheetClassNames.length ? nonStylesheetClassNames : undefined;\n var props = useInlineStyles ? objectSpread_default()({}, properties, {\n className: className && createClassNameString(className)\n }, {\n style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)\n }) : objectSpread_default()({}, properties, {\n className: createClassNameString(properties.className)\n });\n var children = childrenCreator(node.children);\n return react_default.a.createElement(TagName, extends_default()({\n key: key\n }, props), children);\n }\n}\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js\n/* harmony default export */ var checkForListedLanguage = (function (astGenerator, language) {\n var langs = astGenerator.listLanguages();\n return langs.indexOf(language) !== -1;\n});\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/highlight.js\n\n\n\n\n\nvar newLineRegex = /\\n/g;\n\nfunction getNewLines(str) {\n return str.match(newLineRegex);\n}\n\nfunction getAllLineNumbers(_ref) {\n var lines = _ref.lines,\n startingLineNumber = _ref.startingLineNumber,\n style = _ref.style;\n return lines.map(function (_, i) {\n var number = i + startingLineNumber;\n return react_default.a.createElement("span", {\n key: "line-".concat(i),\n className: "react-syntax-highlighter-line-number",\n style: typeof style === \'function\' ? style(number) : style\n }, "".concat(number, "\\n"));\n });\n}\n\nfunction AllLineNumbers(_ref2) {\n var codeString = _ref2.codeString,\n codeStyle = _ref2.codeStyle,\n _ref2$containerStyle = _ref2.containerStyle,\n containerStyle = _ref2$containerStyle === void 0 ? {\n float: \'left\',\n paddingRight: \'10px\'\n } : _ref2$containerStyle,\n _ref2$numberStyle = _ref2.numberStyle,\n numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,\n startingLineNumber = _ref2.startingLineNumber;\n return react_default.a.createElement("code", {\n style: Object.assign({}, codeStyle, containerStyle)\n }, getAllLineNumbers({\n lines: codeString.replace(/\\n$/, \'\').split(\'\\n\'),\n style: numberStyle,\n startingLineNumber: startingLineNumber\n }));\n}\n\nfunction getEmWidthOfNumber(num) {\n var len = num.toString().length;\n return "".concat(len, "em");\n}\n\nfunction getInlineLineNumber(lineNumber, inlineLineNumberStyle) {\n return {\n type: \'element\',\n tagName: \'span\',\n properties: {\n key: "line-number--".concat(lineNumber),\n className: [\'comment\', \'linenumber\', \'react-syntax-highlighter-line-number\'],\n style: inlineLineNumberStyle\n },\n children: [{\n type: \'text\',\n value: lineNumber\n }]\n };\n}\n\nfunction assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber) {\n // minimally necessary styling for line numbers\n var defaultLineNumberStyle = {\n display: \'inline-block\',\n minWidth: getEmWidthOfNumber(largestLineNumber),\n paddingRight: \'1em\',\n textAlign: \'right\',\n userSelect: \'none\'\n }; // prep custom styling\n\n var customLineNumberStyle = typeof lineNumberStyle === \'function\' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine\n\n var assembledStyle = objectSpread_default()({}, defaultLineNumberStyle, customLineNumberStyle);\n\n return assembledStyle;\n}\n\nfunction createLineElement(_ref3) {\n var children = _ref3.children,\n lineNumber = _ref3.lineNumber,\n lineNumberStyle = _ref3.lineNumberStyle,\n largestLineNumber = _ref3.largestLineNumber,\n showInlineLineNumbers = _ref3.showInlineLineNumbers,\n _ref3$lineProps = _ref3.lineProps,\n lineProps = _ref3$lineProps === void 0 ? {} : _ref3$lineProps,\n _ref3$className = _ref3.className,\n className = _ref3$className === void 0 ? [] : _ref3$className;\n var properties = typeof lineProps === \'function\' ? lineProps(lineNumber) : lineProps;\n properties[\'className\'] = className;\n\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return {\n type: \'element\',\n tagName: \'span\',\n properties: properties,\n children: children\n };\n}\n\nfunction flattenCodeTree(tree) {\n var className = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var newTree = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n\n for (var i = 0; i < tree.length; i++) {\n var node = tree[i];\n\n if (node.type === \'text\') {\n newTree.push(createLineElement({\n children: [node],\n className: className\n }));\n } else if (node.children) {\n var classNames = className.concat(node.properties.className);\n newTree = newTree.concat(flattenCodeTree(node.children, classNames));\n }\n }\n\n return newTree;\n}\n\nfunction processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle) {\n var _ref4;\n\n var tree = flattenCodeTree(codeTree.value);\n var newTree = [];\n var lastLineBreakIndex = -1;\n var index = 0;\n\n function createWrappedLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return createLineElement({\n children: children,\n lineNumber: lineNumber,\n lineNumberStyle: lineNumberStyle,\n largestLineNumber: largestLineNumber,\n showInlineLineNumbers: showInlineLineNumbers,\n lineProps: lineProps,\n className: className\n });\n }\n\n function createUnwrappedLine(children, lineNumber) {\n if (lineNumber && showInlineLineNumbers) {\n var inlineLineNumberStyle = assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber);\n children.unshift(getInlineLineNumber(lineNumber, inlineLineNumberStyle));\n }\n\n return children;\n }\n\n function createLine(children, lineNumber) {\n var className = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n return wrapLines || className.length > 0 ? createWrappedLine(children, lineNumber, className) : createUnwrappedLine(children, lineNumber);\n }\n\n var _loop = function _loop() {\n var node = tree[index];\n var value = node.children[0].value;\n var newLines = getNewLines(value);\n\n if (newLines) {\n var splitValue = value.split(\'\\n\');\n splitValue.forEach(function (text, i) {\n var lineNumber = showLineNumbers && newTree.length + startingLineNumber;\n var newChild = {\n type: \'text\',\n value: "".concat(text, "\\n")\n }; // if it\'s the first line\n\n if (i === 0) {\n var _children = tree.slice(lastLineBreakIndex + 1, index).concat(createLineElement({\n children: [newChild],\n className: node.properties.className\n }));\n\n var _line = createLine(_children, lineNumber);\n\n newTree.push(_line); // if it\'s the last line\n } else if (i === splitValue.length - 1) {\n var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];\n\n if (stringChild) {\n var lastLineInPreviousSpan = {\n type: \'text\',\n value: "".concat(text)\n };\n var newElem = createLineElement({\n children: [lastLineInPreviousSpan],\n className: node.properties.className\n });\n tree.splice(index + 1, 0, newElem);\n } else {\n var _children2 = [newChild];\n\n var _line2 = createLine(_children2, lineNumber, node.properties.className);\n\n newTree.push(_line2);\n } // if it\'s neither the first nor the last line\n\n } else {\n var _children3 = [newChild];\n\n var _line3 = createLine(_children3, lineNumber, node.properties.className);\n\n newTree.push(_line3);\n }\n });\n lastLineBreakIndex = index;\n }\n\n index++;\n };\n\n while (index < tree.length) {\n _loop();\n }\n\n if (lastLineBreakIndex !== tree.length - 1) {\n var children = tree.slice(lastLineBreakIndex + 1, tree.length);\n\n if (children && children.length) {\n var lineNumber = newTree.length + startingLineNumber;\n var line = createLine(children, lineNumber);\n newTree.push(line);\n }\n }\n\n return wrapLines ? newTree : (_ref4 = []).concat.apply(_ref4, newTree);\n}\n\nfunction defaultRenderer(_ref5) {\n var rows = _ref5.rows,\n stylesheet = _ref5.stylesheet,\n useInlineStyles = _ref5.useInlineStyles;\n return rows.map(function (node, i) {\n return createElement({\n node: node,\n stylesheet: stylesheet,\n useInlineStyles: useInlineStyles,\n key: "code-segement".concat(i)\n });\n });\n} // only highlight.js has the highlightAuto method\n\n\nfunction isHighlightJs(astGenerator) {\n return astGenerator && typeof astGenerator.highlightAuto !== \'undefined\';\n}\n\nfunction getCodeTree(_ref6) {\n var astGenerator = _ref6.astGenerator,\n language = _ref6.language,\n code = _ref6.code,\n defaultCodeValue = _ref6.defaultCodeValue;\n\n // figure out whether we\'re using lowlight/highlight or refractor/prism\n // then attempt highlighting accordingly\n // lowlight/highlight?\n if (isHighlightJs(astGenerator)) {\n var hasLanguage = checkForListedLanguage(astGenerator, language);\n\n if (language === \'text\') {\n return {\n value: defaultCodeValue,\n language: \'text\'\n };\n } else if (hasLanguage) {\n return astGenerator.highlight(language, code);\n } else {\n return astGenerator.highlightAuto(code);\n }\n } // must be refractor/prism, then\n\n\n try {\n return language && language !== \'text\' ? {\n value: astGenerator.highlight(code, language)\n } : {\n value: defaultCodeValue\n };\n } catch (e) {\n return {\n value: defaultCodeValue\n };\n }\n}\n\n/* harmony default export */ var highlight = (function (defaultAstGenerator, defaultStyle) {\n return function SyntaxHighlighter(_ref7) {\n var language = _ref7.language,\n children = _ref7.children,\n _ref7$style = _ref7.style,\n style = _ref7$style === void 0 ? defaultStyle : _ref7$style,\n _ref7$customStyle = _ref7.customStyle,\n customStyle = _ref7$customStyle === void 0 ? {} : _ref7$customStyle,\n _ref7$codeTagProps = _ref7.codeTagProps,\n codeTagProps = _ref7$codeTagProps === void 0 ? {\n className: language ? "language-".concat(language) : undefined,\n style: style[\'code[class*="language-"]\']\n } : _ref7$codeTagProps,\n _ref7$useInlineStyles = _ref7.useInlineStyles,\n useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,\n _ref7$showLineNumbers = _ref7.showLineNumbers,\n showLineNumbers = _ref7$showLineNumbers === void 0 ? false : _ref7$showLineNumbers,\n _ref7$showInlineLineN = _ref7.showInlineLineNumbers,\n showInlineLineNumbers = _ref7$showInlineLineN === void 0 ? false : _ref7$showInlineLineN,\n _ref7$startingLineNum = _ref7.startingLineNumber,\n startingLineNumber = _ref7$startingLineNum === void 0 ? 1 : _ref7$startingLineNum,\n lineNumberContainerStyle = _ref7.lineNumberContainerStyle,\n _ref7$lineNumberStyle = _ref7.lineNumberStyle,\n lineNumberStyle = _ref7$lineNumberStyle === void 0 ? {} : _ref7$lineNumberStyle,\n wrapLines = _ref7.wrapLines,\n _ref7$lineProps = _ref7.lineProps,\n lineProps = _ref7$lineProps === void 0 ? {} : _ref7$lineProps,\n renderer = _ref7.renderer,\n _ref7$PreTag = _ref7.PreTag,\n PreTag = _ref7$PreTag === void 0 ? \'pre\' : _ref7$PreTag,\n _ref7$CodeTag = _ref7.CodeTag,\n CodeTag = _ref7$CodeTag === void 0 ? \'code\' : _ref7$CodeTag,\n _ref7$code = _ref7.code,\n code = _ref7$code === void 0 ? Array.isArray(children) ? children[0] : children : _ref7$code,\n astGenerator = _ref7.astGenerator,\n rest = objectWithoutProperties_default()(_ref7, ["language", "children", "style", "customStyle", "codeTagProps", "useInlineStyles", "showLineNumbers", "showInlineLineNumbers", "startingLineNumber", "lineNumberContainerStyle", "lineNumberStyle", "wrapLines", "lineProps", "renderer", "PreTag", "CodeTag", "code", "astGenerator"]);\n\n astGenerator = astGenerator || defaultAstGenerator;\n var allLineNumbers = showLineNumbers ? react_default.a.createElement(AllLineNumbers, {\n containerStyle: lineNumberContainerStyle,\n codeStyle: codeTagProps.style || {},\n numberStyle: lineNumberStyle,\n startingLineNumber: startingLineNumber,\n codeString: code\n }) : null;\n var defaultPreStyle = style.hljs || style[\'pre[class*="language-"]\'] || {\n backgroundColor: \'#fff\'\n };\n var generatorClassName = isHighlightJs(astGenerator) ? \'hljs\' : \'prismjs\';\n var preProps = useInlineStyles ? Object.assign({}, rest, {\n style: Object.assign({}, defaultPreStyle, customStyle)\n }) : Object.assign({}, rest, {\n className: rest.className ? "".concat(generatorClassName, " ").concat(rest.className) : generatorClassName,\n style: Object.assign({}, customStyle)\n });\n\n if (!astGenerator) {\n return react_default.a.createElement(PreTag, preProps, allLineNumbers, react_default.a.createElement(CodeTag, codeTagProps, code));\n }\n /*\n * some custom renderers rely on individual row elements so we need to turn wrapLines on\n * if renderer is provided and wrapLines is undefined\n */\n\n\n wrapLines = renderer && wrapLines === undefined ? true : wrapLines;\n renderer = renderer || defaultRenderer;\n var defaultCodeValue = [{\n type: \'text\',\n value: code\n }];\n var codeTree = getCodeTree({\n astGenerator: astGenerator,\n language: language,\n code: code,\n defaultCodeValue: defaultCodeValue\n });\n\n if (codeTree.language === null) {\n codeTree.value = defaultCodeValue;\n } // determine largest line number so that we can force minWidth on all linenumber elements\n\n\n var largestLineNumber = codeTree.value.length + startingLineNumber;\n var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle);\n return react_default.a.createElement(PreTag, preProps, react_default.a.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({\n rows: rows,\n stylesheet: style,\n useInlineStyles: useInlineStyles\n })));\n };\n});\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/refractor/core.js\nvar core = __webpack_require__("../../node_modules/refractor/core.js");\nvar core_default = /*#__PURE__*/__webpack_require__.n(core);\n\n// CONCATENATED MODULE: ./node_modules/react-syntax-highlighter/dist/esm/prism-light.js\n\n\nvar prism_light_SyntaxHighlighter = highlight(core_default.a, {});\n\nprism_light_SyntaxHighlighter.registerLanguage = function (_, language) {\n return core_default.a.register(language);\n};\n\n/* harmony default export */ var prism_light = (prism_light_SyntaxHighlighter);\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/ActionBar/ActionBar.js\nvar ActionBar = __webpack_require__("./node_modules/@storybook/components/dist/esm/ActionBar/ActionBar.js");\n\n// EXTERNAL MODULE: ./node_modules/@storybook/components/dist/esm/ScrollArea/ScrollArea.js\nvar ScrollArea = __webpack_require__("./node_modules/@storybook/components/dist/esm/ScrollArea/ScrollArea.js");\n\n// EXTERNAL MODULE: /home/jenkins/workspace/design-system_main/node_modules/ts-dedent/esm/index.js\nvar ts_dedent_esm = __webpack_require__("../../node_modules/ts-dedent/esm/index.js");\n\n// CONCATENATED MODULE: ./node_modules/@storybook/components/dist/esm/syntaxhighlighter/formatter.js\n\n\nvar formatter = memoizerific_default()(2)(function (code) {\n return Object(ts_dedent_esm["a" /* default */])(code);\n});\n// CONCATENATED MODULE: ./node_modules/@storybook/components/dist/esm/syntaxhighlighter/syntaxhighlighter.js\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n // @ts-ignore\n\n\n\n\n\nvar syntaxhighlighter_navigator = window_default.a.navigator,\n syntaxhighlighter_document = window_default.a.document,\n globalWindow = window_default.a.window;\nprism_light.registerLanguage(\'jsextra\', prism_js_extras);\nprism_light.registerLanguage(\'jsx\', prism_jsx);\nprism_light.registerLanguage(\'json\', prism_json);\nprism_light.registerLanguage(\'yml\', prism_yaml);\nprism_light.registerLanguage(\'md\', prism_markdown);\nprism_light.registerLanguage(\'bash\', prism_bash);\nprism_light.registerLanguage(\'css\', prism_css);\nprism_light.registerLanguage(\'html\', prism_markup);\nprism_light.registerLanguage(\'tsx\', prism_tsx);\nprism_light.registerLanguage(\'typescript\', prism_typescript);\nprism_light.registerLanguage(\'graphql\', prism_graphql);\nvar themedSyntax = memoizerific_default()(2)(function (theme) {\n return Object.entries(theme.code || {}).reduce(function (acc, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n return Object.assign({}, acc, _defineProperty({}, "* .".concat(key), val));\n }, {});\n});\nvar copyToClipboard = createCopyToClipboardFunction();\nfunction createCopyToClipboardFunction() {\n if (syntaxhighlighter_navigator !== null && syntaxhighlighter_navigator !== void 0 && syntaxhighlighter_navigator.clipboard) {\n return function (text) {\n return syntaxhighlighter_navigator.clipboard.writeText(text);\n };\n }\n\n return /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(text) {\n var tmp, focus;\n return regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n tmp = syntaxhighlighter_document.createElement(\'TEXTAREA\');\n focus = syntaxhighlighter_document.activeElement;\n tmp.value = text;\n syntaxhighlighter_document.body.appendChild(tmp);\n tmp.select();\n syntaxhighlighter_document.execCommand(\'copy\');\n syntaxhighlighter_document.body.removeChild(tmp);\n focus.focus();\n\n case 8:\n case "end":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function (_x) {\n return _ref3.apply(this, arguments);\n };\n }();\n}\nvar Wrapper = dist_esm["styled"].div(function (_ref4) {\n var theme = _ref4.theme;\n return {\n position: \'relative\',\n overflow: \'hidden\',\n color: theme.color.defaultText\n };\n}, function (_ref5) {\n var theme = _ref5.theme,\n bordered = _ref5.bordered;\n return bordered ? {\n border: "1px solid ".concat(theme.appBorderColor),\n borderRadius: theme.borderRadius,\n background: theme.background.content\n } : {};\n});\nvar Scroller = Object(dist_esm["styled"])(function (_ref6) {\n var children = _ref6.children,\n className = _ref6.className;\n return /*#__PURE__*/react_default.a.createElement(ScrollArea["a" /* ScrollArea */], {\n horizontal: true,\n vertical: true,\n className: className\n }, children);\n})({\n position: \'relative\'\n}, function (_ref7) {\n var theme = _ref7.theme;\n return {\n \'& code\': {\n paddingRight: theme.layoutMargin\n }\n };\n}, function (_ref8) {\n var theme = _ref8.theme;\n return themedSyntax(theme);\n});\nvar Pre = dist_esm["styled"].pre(function (_ref9) {\n var theme = _ref9.theme,\n padded = _ref9.padded;\n return {\n display: \'flex\',\n justifyContent: \'flex-start\',\n margin: 0,\n padding: padded ? theme.layoutMargin : 0\n };\n});\nvar Code = dist_esm["styled"].code({\n flex: 1,\n paddingRight: 0,\n opacity: 1\n});\nvar syntaxhighlighter_SyntaxHighlighter = function SyntaxHighlighter(_ref10) {\n var children = _ref10.children,\n _ref10$language = _ref10.language,\n language = _ref10$language === void 0 ? \'jsx\' : _ref10$language,\n _ref10$copyable = _ref10.copyable,\n copyable = _ref10$copyable === void 0 ? false : _ref10$copyable,\n _ref10$bordered = _ref10.bordered,\n bordered = _ref10$bordered === void 0 ? false : _ref10$bordered,\n _ref10$padded = _ref10.padded,\n padded = _ref10$padded === void 0 ? false : _ref10$padded,\n _ref10$format = _ref10.format,\n format = _ref10$format === void 0 ? true : _ref10$format,\n _ref10$className = _ref10.className,\n className = _ref10$className === void 0 ? null : _ref10$className,\n _ref10$showLineNumber = _ref10.showLineNumbers,\n showLineNumbers = _ref10$showLineNumber === void 0 ? false : _ref10$showLineNumber,\n rest = _objectWithoutProperties(_ref10, ["children", "language", "copyable", "bordered", "padded", "format", "className", "showLineNumbers"]);\n\n if (typeof children !== \'string\' || !children.trim()) {\n return null;\n }\n\n var highlightableCode = format ? formatter(children) : children.trim();\n\n var _useState = Object(react["useState"])(false),\n _useState2 = _slicedToArray(_useState, 2),\n copied = _useState2[0],\n setCopied = _useState2[1];\n\n var onClick = function onClick(e) {\n e.preventDefault();\n var selectedText = globalWindow.getSelection().toString();\n var textToCopy = e.type !== \'click\' && selectedText ? selectedText : highlightableCode;\n copyToClipboard(textToCopy).then(function () {\n setCopied(true);\n globalWindow.setTimeout(function () {\n return setCopied(false);\n }, 1500);\n }).catch(esm["a" /* logger */].error);\n };\n\n return /*#__PURE__*/react_default.a.createElement(Wrapper, {\n bordered: bordered,\n padded: padded,\n className: className,\n onCopyCapture: onClick\n }, /*#__PURE__*/react_default.a.createElement(Scroller, null, /*#__PURE__*/react_default.a.createElement(prism_light, _extends({\n padded: padded || bordered,\n language: language,\n showLineNumbers: showLineNumbers,\n showInlineLineNumbers: showLineNumbers,\n useInlineStyles: false,\n PreTag: Pre,\n CodeTag: Code,\n lineNumberContainerStyle: {}\n }, rest), highlightableCode)), copyable ? /*#__PURE__*/react_default.a.createElement(ActionBar["a" /* ActionBar */], {\n actionItems: [{\n title: copied ? \'Copied\' : \'Copy\',\n onClick: onClick\n }]\n }) : null);\n};\nsyntaxhighlighter_SyntaxHighlighter.displayName = "SyntaxHighlighter";\n/* harmony default export */ var syntaxhighlighter = __webpack_exports__["default"] = (syntaxhighlighter_SyntaxHighlighter);//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9qc3guanM/ZDUwZCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9iYXNoLmpzP2RkMzQiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vY3NzLmpzPzFiYjgiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vanMtZXh0cmFzLmpzP2ZmNWEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vanNvbi5qcz82NTc2Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL2dyYXBocWwuanM/M2VhNyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9tYXJrdXAuanM/NTc1NiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9tYXJrZG93bi5qcz9iYTY2Iiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL3lhbWwuanM/YzkyOCIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS90c3guanM/NDlhNyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvcmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS90eXBlc2NyaXB0LmpzP2M0ZjEiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9jcmVhdGUtZWxlbWVudC5qcz82OTRjIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vY2hlY2tGb3JMaXN0ZWRMYW5ndWFnZS5qcz8xY2JhIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vaGlnaGxpZ2h0LmpzPzU5ZGIiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9wcmlzbS1saWdodC5qcz9mNzIwIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9Ac3Rvcnlib29rL2NvbXBvbmVudHMvZGlzdC9lc20vc3ludGF4aGlnaGxpZ2h0ZXIvZm9ybWF0dGVyLmpzPzUyZmYiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL0BzdG9yeWJvb2svY29tcG9uZW50cy9kaXN0L2VzbS9zeW50YXhoaWdobGlnaHRlci9zeW50YXhoaWdobGlnaHRlci5qcz8yZWE2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUF3QztBQUN4QztBQUNlLDJEQUFHLEU7Ozs7OztBQ0Z3QjtBQUMxQztBQUNlLDZEQUFJLEU7Ozs7OztBQ0ZxQjtBQUN4QztBQUNlLDJEQUFHLEU7Ozs7OztBQ0ZpQztBQUNuRDtBQUNlLHVFQUFRLEU7Ozs7OztBQ0ZtQjtBQUMxQztBQUNlLDZEQUFJLEU7Ozs7OztBQ0Y2QjtBQUNoRDtBQUNlLG1FQUFPLEU7Ozs7OztBQ0Z3QjtBQUM5QztBQUNlLGlFQUFNLEU7Ozs7OztBQ0Y2QjtBQUNsRDtBQUNlLHFFQUFRLEU7Ozs7OztBQ0ZtQjtBQUMxQztBQUNlLDZEQUFJLEU7Ozs7OztBQ0ZxQjtBQUN4QztBQUNlLDJEQUFHLEU7Ozs7OztBQ0ZvQztBQUN0RDtBQUNlLHlFQUFVLEU7Ozs7Ozs7Ozs7Ozs7O0FDRjZCO0FBQ1U7QUFDdEM7QUFDbkI7QUFDUDtBQUNBO0FBQ0E7QUFDQSxXQUFXLHNCQUFhLEdBQUc7QUFDM0IsR0FBRztBQUNIO0FBQ087QUFDUDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDZTtBQUNmO0FBQ0E7QUFDQTtBQUNBLHdDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxrQ0FBa0Msc0JBQWEsR0FBRztBQUNsRDtBQUNBLEtBQUs7QUFDTCxxRUFBcUU7QUFDckUsS0FBSyxJQUFJLHNCQUFhLEdBQUc7QUFDekI7QUFDQSxLQUFLO0FBQ0w7QUFDQSxXQUFXLGVBQUssd0JBQXdCLGlCQUFRO0FBQ2hEO0FBQ0EsS0FBSztBQUNMO0FBQ0EsQzs7QUMzRGdCO0FBQ2hCO0FBQ0E7QUFDQSxDQUFDLEU7O0FDSHFGO0FBQ3RCO0FBQ3RDO0FBQ21CO0FBQ2lCO0FBQzlEOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGVBQUs7QUFDaEI7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLHFEQUFxRDtBQUNyRDtBQUNBLFNBQVMsZUFBSztBQUNkLDJCQUEyQjtBQUMzQixHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUosb0hBQW9IOztBQUVwSCx1QkFBdUIsc0JBQWEsR0FBRzs7QUFFdkM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlEQUFpRDtBQUNqRDtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUEsaUJBQWlCLGlCQUFpQjtBQUNsQzs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7O0FBRVY7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXOztBQUVYOztBQUVBLDhCQUE4QjtBQUM5QixTQUFTO0FBQ1Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFdBQVc7QUFDWDs7QUFFQTs7QUFFQTtBQUNBLFdBQVc7O0FBRVgsU0FBUztBQUNUOztBQUVBOztBQUVBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGFBQWE7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNILENBQUM7OztBQUdEO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLHNCQUFzQjs7QUFFNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsR0FBRzs7O0FBR0g7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVEQUF1RDtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtEQUErRDtBQUMvRDtBQUNBO0FBQ0EsbURBQW1EO0FBQ25EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLGlDQUF3Qjs7QUFFdkM7QUFDQSwyQ0FBMkMsZUFBSztBQUNoRDtBQUNBLHlDQUF5QztBQUN6QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxREFBcUQ7QUFDckQsNkJBQTZCO0FBQzdCLEtBQUssb0JBQW9CO0FBQ3pCO0FBQ0EsNkJBQTZCO0FBQzdCLEtBQUs7O0FBRUw7QUFDQSxhQUFhLGVBQUssaURBQWlELGVBQUs7QUFDeEU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSzs7QUFFTDtBQUNBO0FBQ0EsS0FBSzs7O0FBR0w7QUFDQTtBQUNBLFdBQVcsZUFBSyxpQ0FBaUMsZUFBSztBQUN0RDtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxDOzs7Ozs7QUNwWW9DO0FBQ0c7QUFDdkMsSUFBSSw2QkFBaUIsR0FBRyxTQUFTLENBQUMsY0FBUyxJQUFJOztBQUUvQyw2QkFBaUI7QUFDakIsU0FBUyxjQUFTO0FBQ2xCOztBQUVlLDZFQUFpQixFOzs7Ozs7Ozs7OztBQ1JHO0FBQ0o7QUFDeEIsZ0JBQWdCLHNCQUFPO0FBQzlCLFNBQVMsd0NBQU07QUFDZixDQUFDLEU7O0FDSkQscUJBQXFCLGdEQUFnRCxnQkFBZ0Isc0JBQXNCLE9BQU8sMkJBQTJCLDBCQUEwQix5REFBeUQsMkJBQTJCLEVBQUUsRUFBRSxFQUFFLGVBQWUsR0FBRyx3Q0FBd0M7O0FBRTNULHFEQUFxRCwrQkFBK0IsOERBQThELFlBQVksb0NBQW9DLDZEQUE2RCxZQUFZLDZCQUE2QixPQUFPLDJCQUEyQiwwQ0FBMEMsd0VBQXdFLDJCQUEyQixFQUFFLEVBQUUsZUFBZTs7QUFFMWUsMERBQTBELCtCQUErQixpQkFBaUIsc0NBQXNDLFlBQVksWUFBWSx1QkFBdUIsT0FBTyxxQkFBcUIsMENBQTBDLDJCQUEyQixFQUFFLGVBQWU7O0FBRXpROztBQUV4Qyw0RUFBNEUsTUFBTSwwQkFBMEIsd0JBQXdCLEVBQUUsZ0JBQWdCLGVBQWUsUUFBUSxFQUFFLGlCQUFpQixnQkFBZ0IsRUFBRSxPQUFPLDRDQUE0QyxFQUFFOztBQUV2USxnQ0FBZ0MscUJBQXFCLG1DQUFtQyxnREFBZ0QsZ0NBQWdDLHdCQUF3Qix3RUFBd0UsRUFBRSx1QkFBdUIsdUVBQXVFLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxHQUFHOztBQUVuWSwyQ0FBMkMsa0JBQWtCLGtDQUFrQyxxRUFBcUUsRUFBRSxFQUFFLE9BQU8sa0JBQWtCLEVBQUUsWUFBWTs7QUFFL00saUNBQWlDLDJIQUEySDs7QUFFNUosNkJBQTZCLGtLQUFrSzs7QUFFL0wsaURBQWlELGdCQUFnQixnRUFBZ0Usd0RBQXdELDZEQUE2RCxzREFBc0Qsa0hBQWtIOztBQUU5WixzQ0FBc0MsdURBQXVELHVDQUF1QyxTQUFTLE9BQU8sa0JBQWtCLEVBQUUsYUFBYTs7QUFFckwsd0NBQXdDLGdGQUFnRixlQUFlLGVBQWUsZ0JBQWdCLG9CQUFvQixNQUFNLDBDQUEwQywrQkFBK0IsYUFBYSxxQkFBcUIsbUNBQW1DLEVBQUUsRUFBRSxjQUFjLFdBQVcsVUFBVSxFQUFFLFVBQVUsTUFBTSxpREFBaUQsRUFBRSxVQUFVLGtCQUFrQixFQUFFLEVBQUUsYUFBYTs7QUFFdmUsK0JBQStCLG9DQUFvQzs7QUFFckI7QUFDRDtBQUNGO0FBQ0s7QUFDQTtBQUNWO0FBQ1k7QUFDSDtBQUNBO0FBQ0Q7QUFDVztBQUNkO0FBQ0U7QUFDSDtBQUNIO0FBQ0k7QUFDSDtBQUNVO0FBQ047QUFDaEI7QUFDTzs7QUFFcUM7O0FBRUU7O0FBRUY7O0FBRVc7O0FBRVQ7O0FBRU07O0FBRUo7O0FBRUE7O0FBRUg7O0FBRUQ7O0FBRWM7O0FBRUg7QUFDaEM7QUFDRztBQUNkO0FBQ3hDLElBQUksMkJBQVMsR0FBRyxnQkFBTTtBQUN0QixJQUFJLDBCQUFRLEdBQUcsZ0JBQU07QUFDckIsbUJBQW1CLGdCQUFNO0FBQ3pCLFdBQXNCLDZCQUE2QixlQUFRO0FBQzNELFdBQXNCLHlCQUF5QixTQUFHO0FBQ2xELFdBQXNCLDBCQUEwQixVQUFJO0FBQ3BELFdBQXNCLHlCQUF5QixVQUFHO0FBQ2xELFdBQXNCLHdCQUF3QixjQUFFO0FBQ2hELFdBQXNCLDBCQUEwQixVQUFJO0FBQ3BELFdBQXNCLHlCQUF5QixTQUFHO0FBQ2xELFdBQXNCLDBCQUEwQixZQUFJO0FBQ3BELFdBQXNCLHlCQUF5QixTQUFHO0FBQ2xELFdBQXNCLGdDQUFnQyxnQkFBVTtBQUNoRSxXQUFzQiw2QkFBNkIsYUFBTztBQUMxRCxtQkFBbUIsc0JBQU87QUFDMUIsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTs7QUFFQSwyQkFBMkIseUJBQXlCO0FBQ3BELEdBQUcsSUFBSTtBQUNQLENBQUM7QUFDRDtBQUNPO0FBQ1AsTUFBTSwyQkFBUyxhQUFhLDJCQUFTLGVBQWUsMkJBQVM7QUFDN0Q7QUFDQSxhQUFhLDJCQUFTO0FBQ3RCO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsMEJBQVE7QUFDNUIsc0JBQXNCLDBCQUFRO0FBQzlCO0FBQ0EsY0FBYywwQkFBUTtBQUN0QjtBQUNBLGNBQWMsMEJBQVE7QUFDdEIsY0FBYywwQkFBUTtBQUN0Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7O0FBRUw7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsY0FBYyxrQkFBTTtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRCxlQUFlLDBCQUFNO0FBQ3JCO0FBQ0E7QUFDQSxzQkFBc0IsZUFBSyxlQUFlLGdDQUFVO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Q7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsVUFBVSxrQkFBTTtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELFdBQVcsa0JBQU07QUFDakI7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNNLElBQUksbUNBQWlCO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSxtQ0FBbUMsU0FBUzs7QUFFNUMsa0JBQWtCLHlCQUFRO0FBQzFCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUssUUFBUSxxQkFBTTtBQUNuQjs7QUFFQSxzQkFBc0IsZUFBSztBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsZUFBZSxlQUFLLDRDQUE0QyxlQUFLLGVBQWUsV0FBc0I7QUFDN0c7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsc0RBQXNELGVBQUssZUFBZSw4QkFBUztBQUN0RjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0EsbUNBQWlCO0FBQ0YsMEhBQWlCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BzdG9yeWJvb2svY29tcG9uZW50cy9kaXN0L2VzbS9zeW50YXhoaWdobGlnaHRlci9zeW50YXhoaWdobGlnaHRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqc3ggZnJvbSBcInJlZnJhY3Rvci9sYW5nL2pzeC5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQganN4OyIsImltcG9ydCBiYXNoIGZyb20gXCJyZWZyYWN0b3IvbGFuZy9iYXNoLmpzXCI7XG47XG5leHBvcnQgZGVmYXVsdCBiYXNoOyIsImltcG9ydCBjc3MgZnJvbSBcInJlZnJhY3Rvci9sYW5nL2Nzcy5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQgY3NzOyIsImltcG9ydCBqc0V4dHJhcyBmcm9tIFwicmVmcmFjdG9yL2xhbmcvanMtZXh0cmFzLmpzXCI7XG47XG5leHBvcnQgZGVmYXVsdCBqc0V4dHJhczsiLCJpbXBvcnQganNvbiBmcm9tIFwicmVmcmFjdG9yL2xhbmcvanNvbi5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQganNvbjsiLCJpbXBvcnQgZ3JhcGhxbCBmcm9tIFwicmVmcmFjdG9yL2xhbmcvZ3JhcGhxbC5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQgZ3JhcGhxbDsiLCJpbXBvcnQgbWFya3VwIGZyb20gXCJyZWZyYWN0b3IvbGFuZy9tYXJrdXAuanNcIjtcbjtcbmV4cG9ydCBkZWZhdWx0IG1hcmt1cDsiLCJpbXBvcnQgbWFya2Rvd24gZnJvbSBcInJlZnJhY3Rvci9sYW5nL21hcmtkb3duLmpzXCI7XG47XG5leHBvcnQgZGVmYXVsdCBtYXJrZG93bjsiLCJpbXBvcnQgeWFtbCBmcm9tIFwicmVmcmFjdG9yL2xhbmcveWFtbC5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQgeWFtbDsiLCJpbXBvcnQgdHN4IGZyb20gXCJyZWZyYWN0b3IvbGFuZy90c3guanNcIjtcbjtcbmV4cG9ydCBkZWZhdWx0IHRzeDsiLCJpbXBvcnQgdHlwZXNjcmlwdCBmcm9tIFwicmVmcmFjdG9yL2xhbmcvdHlwZXNjcmlwdC5qc1wiO1xuO1xuZXhwb3J0IGRlZmF1bHQgdHlwZXNjcmlwdDsiLCJpbXBvcnQgX2V4dGVuZHMgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kc1wiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0eWxlT2JqZWN0KGNsYXNzTmFtZXMpIHtcbiAgdmFyIGVsZW1lbnRTdHlsZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDoge307XG4gIHZhciBzdHlsZXNoZWV0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgPyBhcmd1bWVudHNbMl0gOiB1bmRlZmluZWQ7XG4gIHJldHVybiBjbGFzc05hbWVzLnJlZHVjZShmdW5jdGlvbiAoc3R5bGVPYmplY3QsIGNsYXNzTmFtZSkge1xuICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKHt9LCBzdHlsZU9iamVjdCwgc3R5bGVzaGVldFtjbGFzc05hbWVdKTtcbiAgfSwgZWxlbWVudFN0eWxlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbGFzc05hbWVTdHJpbmcoY2xhc3NOYW1lcykge1xuICByZXR1cm4gY2xhc3NOYW1lcy5qb2luKCcgJyk7XG59XG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2hpbGRyZW4oc3R5bGVzaGVldCwgdXNlSW5saW5lU3R5bGVzKSB7XG4gIHZhciBjaGlsZHJlbkNvdW50ID0gMDtcbiAgcmV0dXJuIGZ1bmN0aW9uIChjaGlsZHJlbikge1xuICAgIGNoaWxkcmVuQ291bnQgKz0gMTtcbiAgICByZXR1cm4gY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChjaGlsZCwgaSkge1xuICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoe1xuICAgICAgICBub2RlOiBjaGlsZCxcbiAgICAgICAgc3R5bGVzaGVldDogc3R5bGVzaGVldCxcbiAgICAgICAgdXNlSW5saW5lU3R5bGVzOiB1c2VJbmxpbmVTdHlsZXMsXG4gICAgICAgIGtleTogXCJjb2RlLXNlZ21lbnQtXCIuY29uY2F0KGNoaWxkcmVuQ291bnQsIFwiLVwiKS5jb25jYXQoaSlcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlRWxlbWVudChfcmVmKSB7XG4gIHZhciBub2RlID0gX3JlZi5ub2RlLFxuICAgICAgc3R5bGVzaGVldCA9IF9yZWYuc3R5bGVzaGVldCxcbiAgICAgIF9yZWYkc3R5bGUgPSBfcmVmLnN0eWxlLFxuICAgICAgc3R5bGUgPSBfcmVmJHN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9yZWYkc3R5bGUsXG4gICAgICB1c2VJbmxpbmVTdHlsZXMgPSBfcmVmLnVzZUlubGluZVN0eWxlcyxcbiAgICAgIGtleSA9IF9yZWYua2V5O1xuICB2YXIgcHJvcGVydGllcyA9IG5vZGUucHJvcGVydGllcyxcbiAgICAgIHR5cGUgPSBub2RlLnR5cGUsXG4gICAgICBUYWdOYW1lID0gbm9kZS50YWdOYW1lLFxuICAgICAgdmFsdWUgPSBub2RlLnZhbHVlO1xuXG4gIGlmICh0eXBlID09PSAndGV4dCcpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH0gZWxzZSBpZiAoVGFnTmFtZSkge1xuICAgIHZhciBjaGlsZHJlbkNyZWF0b3IgPSBjcmVhdGVDaGlsZHJlbihzdHlsZXNoZWV0LCB1c2VJbmxpbmVTdHlsZXMpO1xuICAgIHZhciBub25TdHlsZXNoZWV0Q2xhc3NOYW1lcyA9IHVzZUlubGluZVN0eWxlcyAmJiBwcm9wZXJ0aWVzLmNsYXNzTmFtZSAmJiBwcm9wZXJ0aWVzLmNsYXNzTmFtZS5maWx0ZXIoZnVuY3Rpb24gKGNsYXNzTmFtZSkge1xuICAgICAgcmV0dXJuICFzdHlsZXNoZWV0W2NsYXNzTmFtZV07XG4gICAgfSk7XG4gICAgdmFyIGNsYXNzTmFtZSA9IG5vblN0eWxlc2hlZXRDbGFzc05hbWVzICYmIG5vblN0eWxlc2hlZXRDbGFzc05hbWVzLmxlbmd0aCA/IG5vblN0eWxlc2hlZXRDbGFzc05hbWVzIDogdW5kZWZpbmVkO1xuICAgIHZhciBwcm9wcyA9IHVzZUlubGluZVN0eWxlcyA/IF9vYmplY3RTcHJlYWQoe30sIHByb3BlcnRpZXMsIHtcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lICYmIGNyZWF0ZUNsYXNzTmFtZVN0cmluZyhjbGFzc05hbWUpXG4gICAgfSwge1xuICAgICAgc3R5bGU6IGNyZWF0ZVN0eWxlT2JqZWN0KHByb3BlcnRpZXMuY2xhc3NOYW1lLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0aWVzLnN0eWxlLCBzdHlsZSksIHN0eWxlc2hlZXQpXG4gICAgfSkgOiBfb2JqZWN0U3ByZWFkKHt9LCBwcm9wZXJ0aWVzLCB7XG4gICAgICBjbGFzc05hbWU6IGNyZWF0ZUNsYXNzTmFtZVN0cmluZyhwcm9wZXJ0aWVzLmNsYXNzTmFtZSlcbiAgICB9KTtcbiAgICB2YXIgY2hpbGRyZW4gPSBjaGlsZHJlbkNyZWF0b3Iobm9kZS5jaGlsZHJlbik7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoVGFnTmFtZSwgX2V4dGVuZHMoe1xuICAgICAga2V5OiBrZXlcbiAgICB9LCBwcm9wcyksIGNoaWxkcmVuKTtcbiAgfVxufSIsImV4cG9ydCBkZWZhdWx0IChmdW5jdGlvbiAoYXN0R2VuZXJhdG9yLCBsYW5ndWFnZSkge1xuICB2YXIgbGFuZ3MgPSBhc3RHZW5lcmF0b3IubGlzdExhbmd1YWdlcygpO1xuICByZXR1cm4gbGFuZ3MuaW5kZXhPZihsYW5ndWFnZSkgIT09IC0xO1xufSk7IiwiaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiO1xuaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvb2JqZWN0U3ByZWFkXCI7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNyZWF0ZUVsZW1lbnQgZnJvbSAnLi9jcmVhdGUtZWxlbWVudCc7XG5pbXBvcnQgY2hlY2tGb3JMaXN0ZWRMYW5ndWFnZSBmcm9tICcuL2NoZWNrRm9yTGlzdGVkTGFuZ3VhZ2UnO1xudmFyIG5ld0xpbmVSZWdleCA9IC9cXG4vZztcblxuZnVuY3Rpb24gZ2V0TmV3TGluZXMoc3RyKSB7XG4gIHJldHVybiBzdHIubWF0Y2gobmV3TGluZVJlZ2V4KTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsTGluZU51bWJlcnMoX3JlZikge1xuICB2YXIgbGluZXMgPSBfcmVmLmxpbmVzLFxuICAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gX3JlZi5zdGFydGluZ0xpbmVOdW1iZXIsXG4gICAgICBzdHlsZSA9IF9yZWYuc3R5bGU7XG4gIHJldHVybiBsaW5lcy5tYXAoZnVuY3Rpb24gKF8sIGkpIHtcbiAgICB2YXIgbnVtYmVyID0gaSArIHN0YXJ0aW5nTGluZU51bWJlcjtcbiAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgICAga2V5OiBcImxpbmUtXCIuY29uY2F0KGkpLFxuICAgICAgY2xhc3NOYW1lOiBcInJlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlclwiLFxuICAgICAgc3R5bGU6IHR5cGVvZiBzdHlsZSA9PT0gJ2Z1bmN0aW9uJyA/IHN0eWxlKG51bWJlcikgOiBzdHlsZVxuICAgIH0sIFwiXCIuY29uY2F0KG51bWJlciwgXCJcXG5cIikpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gQWxsTGluZU51bWJlcnMoX3JlZjIpIHtcbiAgdmFyIGNvZGVTdHJpbmcgPSBfcmVmMi5jb2RlU3RyaW5nLFxuICAgICAgY29kZVN0eWxlID0gX3JlZjIuY29kZVN0eWxlLFxuICAgICAgX3JlZjIkY29udGFpbmVyU3R5bGUgPSBfcmVmMi5jb250YWluZXJTdHlsZSxcbiAgICAgIGNvbnRhaW5lclN0eWxlID0gX3JlZjIkY29udGFpbmVyU3R5bGUgPT09IHZvaWQgMCA/IHtcbiAgICBmbG9hdDogJ2xlZnQnLFxuICAgIHBhZGRpbmdSaWdodDogJzEwcHgnXG4gIH0gOiBfcmVmMiRjb250YWluZXJTdHlsZSxcbiAgICAgIF9yZWYyJG51bWJlclN0eWxlID0gX3JlZjIubnVtYmVyU3R5bGUsXG4gICAgICBudW1iZXJTdHlsZSA9IF9yZWYyJG51bWJlclN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9yZWYyJG51bWJlclN0eWxlLFxuICAgICAgc3RhcnRpbmdMaW5lTnVtYmVyID0gX3JlZjIuc3RhcnRpbmdMaW5lTnVtYmVyO1xuICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChcImNvZGVcIiwge1xuICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKHt9LCBjb2RlU3R5bGUsIGNvbnRhaW5lclN0eWxlKVxuICB9LCBnZXRBbGxMaW5lTnVtYmVycyh7XG4gICAgbGluZXM6IGNvZGVTdHJpbmcucmVwbGFjZSgvXFxuJC8sICcnKS5zcGxpdCgnXFxuJyksXG4gICAgc3R5bGU6IG51bWJlclN0eWxlLFxuICAgIHN0YXJ0aW5nTGluZU51bWJlcjogc3RhcnRpbmdMaW5lTnVtYmVyXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0RW1XaWR0aE9mTnVtYmVyKG51bSkge1xuICB2YXIgbGVuID0gbnVtLnRvU3RyaW5nKCkubGVuZ3RoO1xuICByZXR1cm4gXCJcIi5jb25jYXQobGVuLCBcImVtXCIpO1xufVxuXG5mdW5jdGlvbiBnZXRJbmxpbmVMaW5lTnVtYmVyKGxpbmVOdW1iZXIsIGlubGluZUxpbmVOdW1iZXJTdHlsZSkge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICdlbGVtZW50JyxcbiAgICB0YWdOYW1lOiAnc3BhbicsXG4gICAgcHJvcGVydGllczoge1xuICAgICAga2V5OiBcImxpbmUtbnVtYmVyLS1cIi5jb25jYXQobGluZU51bWJlciksXG4gICAgICBjbGFzc05hbWU6IFsnY29tbWVudCcsICdsaW5lbnVtYmVyJywgJ3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci1saW5lLW51bWJlciddLFxuICAgICAgc3R5bGU6IGlubGluZUxpbmVOdW1iZXJTdHlsZVxuICAgIH0sXG4gICAgY2hpbGRyZW46IFt7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB2YWx1ZTogbGluZU51bWJlclxuICAgIH1dXG4gIH07XG59XG5cbmZ1bmN0aW9uIGFzc2VtYmxlTGluZU51bWJlclN0eWxlcyhsaW5lTnVtYmVyU3R5bGUsIGxpbmVOdW1iZXIsIGxhcmdlc3RMaW5lTnVtYmVyKSB7XG4gIC8vIG1pbmltYWxseSBuZWNlc3Nhcnkgc3R5bGluZyBmb3IgbGluZSBudW1iZXJzXG4gIHZhciBkZWZhdWx0TGluZU51bWJlclN0eWxlID0ge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1pbldpZHRoOiBnZXRFbVdpZHRoT2ZOdW1iZXIobGFyZ2VzdExpbmVOdW1iZXIpLFxuICAgIHBhZGRpbmdSaWdodDogJzFlbScsXG4gICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgIHVzZXJTZWxlY3Q6ICdub25lJ1xuICB9OyAvLyBwcmVwIGN1c3RvbSBzdHlsaW5nXG5cbiAgdmFyIGN1c3RvbUxpbmVOdW1iZXJTdHlsZSA9IHR5cGVvZiBsaW5lTnVtYmVyU3R5bGUgPT09ICdmdW5jdGlvbicgPyBsaW5lTnVtYmVyU3R5bGUobGluZU51bWJlcikgOiBsaW5lTnVtYmVyU3R5bGU7IC8vIGNvbWJpbmVcblxuICB2YXIgYXNzZW1ibGVkU3R5bGUgPSBfb2JqZWN0U3ByZWFkKHt9LCBkZWZhdWx0TGluZU51bWJlclN0eWxlLCBjdXN0b21MaW5lTnVtYmVyU3R5bGUpO1xuXG4gIHJldHVybiBhc3NlbWJsZWRTdHlsZTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlTGluZUVsZW1lbnQoX3JlZjMpIHtcbiAgdmFyIGNoaWxkcmVuID0gX3JlZjMuY2hpbGRyZW4sXG4gICAgICBsaW5lTnVtYmVyID0gX3JlZjMubGluZU51bWJlcixcbiAgICAgIGxpbmVOdW1iZXJTdHlsZSA9IF9yZWYzLmxpbmVOdW1iZXJTdHlsZSxcbiAgICAgIGxhcmdlc3RMaW5lTnVtYmVyID0gX3JlZjMubGFyZ2VzdExpbmVOdW1iZXIsXG4gICAgICBzaG93SW5saW5lTGluZU51bWJlcnMgPSBfcmVmMy5zaG93SW5saW5lTGluZU51bWJlcnMsXG4gICAgICBfcmVmMyRsaW5lUHJvcHMgPSBfcmVmMy5saW5lUHJvcHMsXG4gICAgICBsaW5lUHJvcHMgPSBfcmVmMyRsaW5lUHJvcHMgPT09IHZvaWQgMCA/IHt9IDogX3JlZjMkbGluZVByb3BzLFxuICAgICAgX3JlZjMkY2xhc3NOYW1lID0gX3JlZjMuY2xhc3NOYW1lLFxuICAgICAgY2xhc3NOYW1lID0gX3JlZjMkY2xhc3NOYW1lID09PSB2b2lkIDAgPyBbXSA6IF9yZWYzJGNsYXNzTmFtZTtcbiAgdmFyIHByb3BlcnRpZXMgPSB0eXBlb2YgbGluZVByb3BzID09PSAnZnVuY3Rpb24nID8gbGluZVByb3BzKGxpbmVOdW1iZXIpIDogbGluZVByb3BzO1xuICBwcm9wZXJ0aWVzWydjbGFzc05hbWUnXSA9IGNsYXNzTmFtZTtcblxuICBpZiAobGluZU51bWJlciAmJiBzaG93SW5saW5lTGluZU51bWJlcnMpIHtcbiAgICB2YXIgaW5saW5lTGluZU51bWJlclN0eWxlID0gYXNzZW1ibGVMaW5lTnVtYmVyU3R5bGVzKGxpbmVOdW1iZXJTdHlsZSwgbGluZU51bWJlciwgbGFyZ2VzdExpbmVOdW1iZXIpO1xuICAgIGNoaWxkcmVuLnVuc2hpZnQoZ2V0SW5saW5lTGluZU51bWJlcihsaW5lTnVtYmVyLCBpbmxpbmVMaW5lTnVtYmVyU3R5bGUpKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgdHlwZTogJ2VsZW1lbnQnLFxuICAgIHRhZ05hbWU6ICdzcGFuJyxcbiAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLFxuICAgIGNoaWxkcmVuOiBjaGlsZHJlblxuICB9O1xufVxuXG5mdW5jdGlvbiBmbGF0dGVuQ29kZVRyZWUodHJlZSkge1xuICB2YXIgY2xhc3NOYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBbXTtcbiAgdmFyIG5ld1RyZWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IFtdO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgdHJlZS5sZW5ndGg7IGkrKykge1xuICAgIHZhciBub2RlID0gdHJlZVtpXTtcblxuICAgIGlmIChub2RlLnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgbmV3VHJlZS5wdXNoKGNyZWF0ZUxpbmVFbGVtZW50KHtcbiAgICAgICAgY2hpbGRyZW46IFtub2RlXSxcbiAgICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVcbiAgICAgIH0pKTtcbiAgICB9IGVsc2UgaWYgKG5vZGUuY2hpbGRyZW4pIHtcbiAgICAgIHZhciBjbGFzc05hbWVzID0gY2xhc3NOYW1lLmNvbmNhdChub2RlLnByb3BlcnRpZXMuY2xhc3NOYW1lKTtcbiAgICAgIG5ld1RyZWUgPSBuZXdUcmVlLmNvbmNhdChmbGF0dGVuQ29kZVRyZWUobm9kZS5jaGlsZHJlbiwgY2xhc3NOYW1lcykpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdUcmVlO1xufVxuXG5mdW5jdGlvbiBwcm9jZXNzTGluZXMoY29kZVRyZWUsIHdyYXBMaW5lcywgbGluZVByb3BzLCBzaG93TGluZU51bWJlcnMsIHNob3dJbmxpbmVMaW5lTnVtYmVycywgc3RhcnRpbmdMaW5lTnVtYmVyLCBsYXJnZXN0TGluZU51bWJlciwgbGluZU51bWJlclN0eWxlKSB7XG4gIHZhciBfcmVmNDtcblxuICB2YXIgdHJlZSA9IGZsYXR0ZW5Db2RlVHJlZShjb2RlVHJlZS52YWx1ZSk7XG4gIHZhciBuZXdUcmVlID0gW107XG4gIHZhciBsYXN0TGluZUJyZWFrSW5kZXggPSAtMTtcbiAgdmFyIGluZGV4ID0gMDtcblxuICBmdW5jdGlvbiBjcmVhdGVXcmFwcGVkTGluZShjaGlsZHJlbiwgbGluZU51bWJlcikge1xuICAgIHZhciBjbGFzc05hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IFtdO1xuICAgIHJldHVybiBjcmVhdGVMaW5lRWxlbWVudCh7XG4gICAgICBjaGlsZHJlbjogY2hpbGRyZW4sXG4gICAgICBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLFxuICAgICAgbGluZU51bWJlclN0eWxlOiBsaW5lTnVtYmVyU3R5bGUsXG4gICAgICBsYXJnZXN0TGluZU51bWJlcjogbGFyZ2VzdExpbmVOdW1iZXIsXG4gICAgICBzaG93SW5saW5lTGluZU51bWJlcnM6IHNob3dJbmxpbmVMaW5lTnVtYmVycyxcbiAgICAgIGxpbmVQcm9wczogbGluZVByb3BzLFxuICAgICAgY2xhc3NOYW1lOiBjbGFzc05hbWVcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZVVud3JhcHBlZExpbmUoY2hpbGRyZW4sIGxpbmVOdW1iZXIpIHtcbiAgICBpZiAobGluZU51bWJlciAmJiBzaG93SW5saW5lTGluZU51bWJlcnMpIHtcbiAgICAgIHZhciBpbmxpbmVMaW5lTnVtYmVyU3R5bGUgPSBhc3NlbWJsZUxpbmVOdW1iZXJTdHlsZXMobGluZU51bWJlclN0eWxlLCBsaW5lTnVtYmVyLCBsYXJnZXN0TGluZU51bWJlcik7XG4gICAgICBjaGlsZHJlbi51bnNoaWZ0KGdldElubGluZUxpbmVOdW1iZXIobGluZU51bWJlciwgaW5saW5lTGluZU51bWJlclN0eWxlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNoaWxkcmVuO1xuICB9XG5cbiAgZnVuY3Rpb24gY3JlYXRlTGluZShjaGlsZHJlbiwgbGluZU51bWJlcikge1xuICAgIHZhciBjbGFzc05hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IFtdO1xuICAgIHJldHVybiB3cmFwTGluZXMgfHwgY2xhc3NOYW1lLmxlbmd0aCA+IDAgPyBjcmVhdGVXcmFwcGVkTGluZShjaGlsZHJlbiwgbGluZU51bWJlciwgY2xhc3NOYW1lKSA6IGNyZWF0ZVVud3JhcHBlZExpbmUoY2hpbGRyZW4sIGxpbmVOdW1iZXIpO1xuICB9XG5cbiAgdmFyIF9sb29wID0gZnVuY3Rpb24gX2xvb3AoKSB7XG4gICAgdmFyIG5vZGUgPSB0cmVlW2luZGV4XTtcbiAgICB2YXIgdmFsdWUgPSBub2RlLmNoaWxkcmVuWzBdLnZhbHVlO1xuICAgIHZhciBuZXdMaW5lcyA9IGdldE5ld0xpbmVzKHZhbHVlKTtcblxuICAgIGlmIChuZXdMaW5lcykge1xuICAgICAgdmFyIHNwbGl0VmFsdWUgPSB2YWx1ZS5zcGxpdCgnXFxuJyk7XG4gICAgICBzcGxpdFZhbHVlLmZvckVhY2goZnVuY3Rpb24gKHRleHQsIGkpIHtcbiAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBzaG93TGluZU51bWJlcnMgJiYgbmV3VHJlZS5sZW5ndGggKyBzdGFydGluZ0xpbmVOdW1iZXI7XG4gICAgICAgIHZhciBuZXdDaGlsZCA9IHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdmFsdWU6IFwiXCIuY29uY2F0KHRleHQsIFwiXFxuXCIpXG4gICAgICAgIH07IC8vIGlmIGl0J3MgdGhlIGZpcnN0IGxpbmVcblxuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIHZhciBfY2hpbGRyZW4gPSB0cmVlLnNsaWNlKGxhc3RMaW5lQnJlYWtJbmRleCArIDEsIGluZGV4KS5jb25jYXQoY3JlYXRlTGluZUVsZW1lbnQoe1xuICAgICAgICAgICAgY2hpbGRyZW46IFtuZXdDaGlsZF0sXG4gICAgICAgICAgICBjbGFzc05hbWU6IG5vZGUucHJvcGVydGllcy5jbGFzc05hbWVcbiAgICAgICAgICB9KSk7XG5cbiAgICAgICAgICB2YXIgX2xpbmUgPSBjcmVhdGVMaW5lKF9jaGlsZHJlbiwgbGluZU51bWJlcik7XG5cbiAgICAgICAgICBuZXdUcmVlLnB1c2goX2xpbmUpOyAvLyBpZiBpdCdzIHRoZSBsYXN0IGxpbmVcbiAgICAgICAgfSBlbHNlIGlmIChpID09PSBzcGxpdFZhbHVlLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICB2YXIgc3RyaW5nQ2hpbGQgPSB0cmVlW2luZGV4ICsgMV0gJiYgdHJlZVtpbmRleCArIDFdLmNoaWxkcmVuICYmIHRyZWVbaW5kZXggKyAxXS5jaGlsZHJlblswXTtcblxuICAgICAgICAgIGlmIChzdHJpbmdDaGlsZCkge1xuICAgICAgICAgICAgdmFyIGxhc3RMaW5lSW5QcmV2aW91c1NwYW4gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdmFsdWU6IFwiXCIuY29uY2F0KHRleHQpXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIG5ld0VsZW0gPSBjcmVhdGVMaW5lRWxlbWVudCh7XG4gICAgICAgICAgICAgIGNoaWxkcmVuOiBbbGFzdExpbmVJblByZXZpb3VzU3Bhbl0sXG4gICAgICAgICAgICAgIGNsYXNzTmFtZTogbm9kZS5wcm9wZXJ0aWVzLmNsYXNzTmFtZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0cmVlLnNwbGljZShpbmRleCArIDEsIDAsIG5ld0VsZW0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgX2NoaWxkcmVuMiA9IFtuZXdDaGlsZF07XG5cbiAgICAgICAgICAgIHZhciBfbGluZTIgPSBjcmVhdGVMaW5lKF9jaGlsZHJlbjIsIGxpbmVOdW1iZXIsIG5vZGUucHJvcGVydGllcy5jbGFzc05hbWUpO1xuXG4gICAgICAgICAgICBuZXdUcmVlLnB1c2goX2xpbmUyKTtcbiAgICAgICAgICB9IC8vIGlmIGl0J3MgbmVpdGhlciB0aGUgZmlyc3Qgbm9yIHRoZSBsYXN0IGxpbmVcblxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhciBfY2hpbGRyZW4zID0gW25ld0NoaWxkXTtcblxuICAgICAgICAgIHZhciBfbGluZTMgPSBjcmVhdGVMaW5lKF9jaGlsZHJlbjMsIGxpbmVOdW1iZXIsIG5vZGUucHJvcGVydGllcy5jbGFzc05hbWUpO1xuXG4gICAgICAgICAgbmV3VHJlZS5wdXNoKF9saW5lMyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbGFzdExpbmVCcmVha0luZGV4ID0gaW5kZXg7XG4gICAgfVxuXG4gICAgaW5kZXgrKztcbiAgfTtcblxuICB3aGlsZSAoaW5kZXggPCB0cmVlLmxlbmd0aCkge1xuICAgIF9sb29wKCk7XG4gIH1cblxuICBpZiAobGFzdExpbmVCcmVha0luZGV4ICE9PSB0cmVlLmxlbmd0aCAtIDEpIHtcbiAgICB2YXIgY2hpbGRyZW4gPSB0cmVlLnNsaWNlKGxhc3RMaW5lQnJlYWtJbmRleCArIDEsIHRyZWUubGVuZ3RoKTtcblxuICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHZhciBsaW5lTnVtYmVyID0gbmV3VHJlZS5sZW5ndGggKyBzdGFydGluZ0xpbmVOdW1iZXI7XG4gICAgICB2YXIgbGluZSA9IGNyZWF0ZUxpbmUoY2hpbGRyZW4sIGxpbmVOdW1iZXIpO1xuICAgICAgbmV3VHJlZS5wdXNoKGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB3cmFwTGluZXMgPyBuZXdUcmVlIDogKF9yZWY0ID0gW10pLmNvbmNhdC5hcHBseShfcmVmNCwgbmV3VHJlZSk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRSZW5kZXJlcihfcmVmNSkge1xuICB2YXIgcm93cyA9IF9yZWY1LnJvd3MsXG4gICAgICBzdHlsZXNoZWV0ID0gX3JlZjUuc3R5bGVzaGVldCxcbiAgICAgIHVzZUlubGluZVN0eWxlcyA9IF9yZWY1LnVzZUlubGluZVN0eWxlcztcbiAgcmV0dXJuIHJvd3MubWFwKGZ1bmN0aW9uIChub2RlLCBpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoe1xuICAgICAgbm9kZTogbm9kZSxcbiAgICAgIHN0eWxlc2hlZXQ6IHN0eWxlc2hlZXQsXG4gICAgICB1c2VJbmxpbmVTdHlsZXM6IHVzZUlubGluZVN0eWxlcyxcbiAgICAgIGtleTogXCJjb2RlLXNlZ2VtZW50XCIuY29uY2F0KGkpXG4gICAgfSk7XG4gIH0pO1xufSAvLyBvbmx5IGhpZ2hsaWdodC5qcyBoYXMgdGhlIGhpZ2hsaWdodEF1dG8gbWV0aG9kXG5cblxuZnVuY3Rpb24gaXNIaWdobGlnaHRKcyhhc3RHZW5lcmF0b3IpIHtcbiAgcmV0dXJuIGFzdEdlbmVyYXRvciAmJiB0eXBlb2YgYXN0R2VuZXJhdG9yLmhpZ2hsaWdodEF1dG8gIT09ICd1bmRlZmluZWQnO1xufVxuXG5mdW5jdGlvbiBnZXRDb2RlVHJlZShfcmVmNikge1xuICB2YXIgYXN0R2VuZXJhdG9yID0gX3JlZjYuYXN0R2VuZXJhdG9yLFxuICAgICAgbGFuZ3VhZ2UgPSBfcmVmNi5sYW5ndWFnZSxcbiAgICAgIGNvZGUgPSBfcmVmNi5jb2RlLFxuICAgICAgZGVmYXVsdENvZGVWYWx1ZSA9IF9yZWY2LmRlZmF1bHRDb2RlVmFsdWU7XG5cbiAgLy8gZmlndXJlIG91dCB3aGV0aGVyIHdlJ3JlIHVzaW5nIGxvd2xpZ2h0L2hpZ2hsaWdodCBvciByZWZyYWN0b3IvcHJpc21cbiAgLy8gdGhlbiBhdHRlbXB0IGhpZ2hsaWdodGluZyBhY2NvcmRpbmdseVxuICAvLyBsb3dsaWdodC9oaWdobGlnaHQ/XG4gIGlmIChpc0hpZ2hsaWdodEpzKGFzdEdlbmVyYXRvcikpIHtcbiAgICB2YXIgaGFzTGFuZ3VhZ2UgPSBjaGVja0Zvckxpc3RlZExhbmd1YWdlKGFzdEdlbmVyYXRvciwgbGFuZ3VhZ2UpO1xuXG4gICAgaWYgKGxhbmd1YWdlID09PSAndGV4dCcpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHZhbHVlOiBkZWZhdWx0Q29kZVZhbHVlLFxuICAgICAgICBsYW5ndWFnZTogJ3RleHQnXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAoaGFzTGFuZ3VhZ2UpIHtcbiAgICAgIHJldHVybiBhc3RHZW5lcmF0b3IuaGlnaGxpZ2h0KGxhbmd1YWdlLCBjb2RlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGFzdEdlbmVyYXRvci5oaWdobGlnaHRBdXRvKGNvZGUpO1xuICAgIH1cbiAgfSAvLyBtdXN0IGJlIHJlZnJhY3Rvci9wcmlzbSwgdGhlblxuXG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gbGFuZ3VhZ2UgJiYgbGFuZ3VhZ2UgIT09ICd0ZXh0JyA/IHtcbiAgICAgIHZhbHVlOiBhc3RHZW5lcmF0b3IuaGlnaGxpZ2h0KGNvZGUsIGxhbmd1YWdlKVxuICAgIH0gOiB7XG4gICAgICB2YWx1ZTogZGVmYXVsdENvZGVWYWx1ZVxuICAgIH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IGRlZmF1bHRDb2RlVmFsdWVcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIChkZWZhdWx0QXN0R2VuZXJhdG9yLCBkZWZhdWx0U3R5bGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIFN5bnRheEhpZ2hsaWdodGVyKF9yZWY3KSB7XG4gICAgdmFyIGxhbmd1YWdlID0gX3JlZjcubGFuZ3VhZ2UsXG4gICAgICAgIGNoaWxkcmVuID0gX3JlZjcuY2hpbGRyZW4sXG4gICAgICAgIF9yZWY3JHN0eWxlID0gX3JlZjcuc3R5bGUsXG4gICAgICAgIHN0eWxlID0gX3JlZjckc3R5bGUgPT09IHZvaWQgMCA/IGRlZmF1bHRTdHlsZSA6IF9yZWY3JHN0eWxlLFxuICAgICAgICBfcmVmNyRjdXN0b21TdHlsZSA9IF9yZWY3LmN1c3RvbVN0eWxlLFxuICAgICAgICBjdXN0b21TdHlsZSA9IF9yZWY3JGN1c3RvbVN0eWxlID09PSB2b2lkIDAgPyB7fSA6IF9yZWY3JGN1c3RvbVN0eWxlLFxuICAgICAgICBfcmVmNyRjb2RlVGFnUHJvcHMgPSBfcmVmNy5jb2RlVGFnUHJvcHMsXG4gICAgICAgIGNvZGVUYWdQcm9wcyA9IF9yZWY3JGNvZGVUYWdQcm9wcyA9PT0gdm9pZCAwID8ge1xuICAgICAgY2xhc3NOYW1lOiBsYW5ndWFnZSA/IFwibGFuZ3VhZ2UtXCIuY29uY2F0KGxhbmd1YWdlKSA6IHVuZGVmaW5lZCxcbiAgICAgIHN0eWxlOiBzdHlsZVsnY29kZVtjbGFzcyo9XCJsYW5ndWFnZS1cIl0nXVxuICAgIH0gOiBfcmVmNyRjb2RlVGFnUHJvcHMsXG4gICAgICAgIF9yZWY3JHVzZUlubGluZVN0eWxlcyA9IF9yZWY3LnVzZUlubGluZVN0eWxlcyxcbiAgICAgICAgdXNlSW5saW5lU3R5bGVzID0gX3JlZjckdXNlSW5saW5lU3R5bGVzID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjckdXNlSW5saW5lU3R5bGVzLFxuICAgICAgICBfcmVmNyRzaG93TGluZU51bWJlcnMgPSBfcmVmNy5zaG93TGluZU51bWJlcnMsXG4gICAgICAgIHNob3dMaW5lTnVtYmVycyA9IF9yZWY3JHNob3dMaW5lTnVtYmVycyA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmNyRzaG93TGluZU51bWJlcnMsXG4gICAgICAgIF9yZWY3JHNob3dJbmxpbmVMaW5lTiA9IF9yZWY3LnNob3dJbmxpbmVMaW5lTnVtYmVycyxcbiAgICAgICAgc2hvd0lubGluZUxpbmVOdW1iZXJzID0gX3JlZjckc2hvd0lubGluZUxpbmVOID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWY3JHNob3dJbmxpbmVMaW5lTixcbiAgICAgICAgX3JlZjckc3RhcnRpbmdMaW5lTnVtID0gX3JlZjcuc3RhcnRpbmdMaW5lTnVtYmVyLFxuICAgICAgICBzdGFydGluZ0xpbmVOdW1iZXIgPSBfcmVmNyRzdGFydGluZ0xpbmVOdW0gPT09IHZvaWQgMCA/IDEgOiBfcmVmNyRzdGFydGluZ0xpbmVOdW0sXG4gICAgICAgIGxpbmVOdW1iZXJDb250YWluZXJTdHlsZSA9IF9yZWY3LmxpbmVOdW1iZXJDb250YWluZXJTdHlsZSxcbiAgICAgICAgX3JlZjckbGluZU51bWJlclN0eWxlID0gX3JlZjcubGluZU51bWJlclN0eWxlLFxuICAgICAgICBsaW5lTnVtYmVyU3R5bGUgPSBfcmVmNyRsaW5lTnVtYmVyU3R5bGUgPT09IHZvaWQgMCA/IHt9IDogX3JlZjckbGluZU51bWJlclN0eWxlLFxuICAgICAgICB3cmFwTGluZXMgPSBfcmVmNy53cmFwTGluZXMsXG4gICAgICAgIF9yZWY3JGxpbmVQcm9wcyA9IF9yZWY3LmxpbmVQcm9wcyxcbiAgICAgICAgbGluZVByb3BzID0gX3JlZjckbGluZVByb3BzID09PSB2b2lkIDAgPyB7fSA6IF9yZWY3JGxpbmVQcm9wcyxcbiAgICAgICAgcmVuZGVyZXIgPSBfcmVmNy5yZW5kZXJlcixcbiAgICAgICAgX3JlZjckUHJlVGFnID0gX3JlZjcuUHJlVGFnLFxuICAgICAgICBQcmVUYWcgPSBfcmVmNyRQcmVUYWcgPT09IHZvaWQgMCA/ICdwcmUnIDogX3JlZjckUHJlVGFnLFxuICAgICAgICBfcmVmNyRDb2RlVGFnID0gX3JlZjcuQ29kZVRhZyxcbiAgICAgICAgQ29kZVRhZyA9IF9yZWY3JENvZGVUYWcgPT09IHZvaWQgMCA/ICdjb2RlJyA6IF9yZWY3JENvZGVUYWcsXG4gICAgICAgIF9yZWY3JGNvZGUgPSBfcmVmNy5jb2RlLFxuICAgICAgICBjb2RlID0gX3JlZjckY29kZSA9PT0gdm9pZCAwID8gQXJyYXkuaXNBcnJheShjaGlsZHJlbikgPyBjaGlsZHJlblswXSA6IGNoaWxkcmVuIDogX3JlZjckY29kZSxcbiAgICAgICAgYXN0R2VuZXJhdG9yID0gX3JlZjcuYXN0R2VuZXJhdG9yLFxuICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF9yZWY3LCBbXCJsYW5ndWFnZVwiLCBcImNoaWxkcmVuXCIsIFwic3R5bGVcIiwgXCJjdXN0b21TdHlsZVwiLCBcImNvZGVUYWdQcm9wc1wiLCBcInVzZUlubGluZVN0eWxlc1wiLCBcInNob3dMaW5lTnVtYmVyc1wiLCBcInNob3dJbmxpbmVMaW5lTnVtYmVyc1wiLCBcInN0YXJ0aW5nTGluZU51bWJlclwiLCBcImxpbmVOdW1iZXJDb250YWluZXJTdHlsZVwiLCBcImxpbmVOdW1iZXJTdHlsZVwiLCBcIndyYXBMaW5lc1wiLCBcImxpbmVQcm9wc1wiLCBcInJlbmRlcmVyXCIsIFwiUHJlVGFnXCIsIFwiQ29kZVRhZ1wiLCBcImNvZGVcIiwgXCJhc3RHZW5lcmF0b3JcIl0pO1xuXG4gICAgYXN0R2VuZXJhdG9yID0gYXN0R2VuZXJhdG9yIHx8IGRlZmF1bHRBc3RHZW5lcmF0b3I7XG4gICAgdmFyIGFsbExpbmVOdW1iZXJzID0gc2hvd0xpbmVOdW1iZXJzID8gUmVhY3QuY3JlYXRlRWxlbWVudChBbGxMaW5lTnVtYmVycywge1xuICAgICAgY29udGFpbmVyU3R5bGU6IGxpbmVOdW1iZXJDb250YWluZXJTdHlsZSxcbiAgICAgIGNvZGVTdHlsZTogY29kZVRhZ1Byb3BzLnN0eWxlIHx8IHt9LFxuICAgICAgbnVtYmVyU3R5bGU6IGxpbmVOdW1iZXJTdHlsZSxcbiAgICAgIHN0YXJ0aW5nTGluZU51bWJlcjogc3RhcnRpbmdMaW5lTnVtYmVyLFxuICAgICAgY29kZVN0cmluZzogY29kZVxuICAgIH0pIDogbnVsbDtcbiAgICB2YXIgZGVmYXVsdFByZVN0eWxlID0gc3R5bGUuaGxqcyB8fCBzdHlsZVsncHJlW2NsYXNzKj1cImxhbmd1YWdlLVwiXSddIHx8IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnXG4gICAgfTtcbiAgICB2YXIgZ2VuZXJhdG9yQ2xhc3NOYW1lID0gaXNIaWdobGlnaHRKcyhhc3RHZW5lcmF0b3IpID8gJ2hsanMnIDogJ3ByaXNtanMnO1xuICAgIHZhciBwcmVQcm9wcyA9IHVzZUlubGluZVN0eWxlcyA/IE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHtcbiAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0UHJlU3R5bGUsIGN1c3RvbVN0eWxlKVxuICAgIH0pIDogT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwge1xuICAgICAgY2xhc3NOYW1lOiByZXN0LmNsYXNzTmFtZSA/IFwiXCIuY29uY2F0KGdlbmVyYXRvckNsYXNzTmFtZSwgXCIgXCIpLmNvbmNhdChyZXN0LmNsYXNzTmFtZSkgOiBnZW5lcmF0b3JDbGFzc05hbWUsXG4gICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tU3R5bGUpXG4gICAgfSk7XG5cbiAgICBpZiAoIWFzdEdlbmVyYXRvcikge1xuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUHJlVGFnLCBwcmVQcm9wcywgYWxsTGluZU51bWJlcnMsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoQ29kZVRhZywgY29kZVRhZ1Byb3BzLCBjb2RlKSk7XG4gICAgfVxuICAgIC8qXG4gICAgICogc29tZSBjdXN0b20gcmVuZGVyZXJzIHJlbHkgb24gaW5kaXZpZHVhbCByb3cgZWxlbWVudHMgc28gd2UgbmVlZCB0byB0dXJuIHdyYXBMaW5lcyBvblxuICAgICAqIGlmIHJlbmRlcmVyIGlzIHByb3ZpZGVkIGFuZCB3cmFwTGluZXMgaXMgdW5kZWZpbmVkXG4gICAgICovXG5cblxuICAgIHdyYXBMaW5lcyA9IHJlbmRlcmVyICYmIHdyYXBMaW5lcyA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IHdyYXBMaW5lcztcbiAgICByZW5kZXJlciA9IHJlbmRlcmVyIHx8IGRlZmF1bHRSZW5kZXJlcjtcbiAgICB2YXIgZGVmYXVsdENvZGVWYWx1ZSA9IFt7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICB2YWx1ZTogY29kZVxuICAgIH1dO1xuICAgIHZhciBjb2RlVHJlZSA9IGdldENvZGVUcmVlKHtcbiAgICAgIGFzdEdlbmVyYXRvcjogYXN0R2VuZXJhdG9yLFxuICAgICAgbGFuZ3VhZ2U6IGxhbmd1YWdlLFxuICAgICAgY29kZTogY29kZSxcbiAgICAgIGRlZmF1bHRDb2RlVmFsdWU6IGRlZmF1bHRDb2RlVmFsdWVcbiAgICB9KTtcblxuICAgIGlmIChjb2RlVHJlZS5sYW5ndWFnZSA9PT0gbnVsbCkge1xuICAgICAgY29kZVRyZWUudmFsdWUgPSBkZWZhdWx0Q29kZVZhbHVlO1xuICAgIH0gLy8gZGV0ZXJtaW5lIGxhcmdlc3QgbGluZSBudW1iZXIgc28gdGhhdCB3ZSBjYW4gZm9yY2UgbWluV2lkdGggb24gYWxsIGxpbmVudW1iZXIgZWxlbWVudHNcblxuXG4gICAgdmFyIGxhcmdlc3RMaW5lTnVtYmVyID0gY29kZVRyZWUudmFsdWUubGVuZ3RoICsgc3RhcnRpbmdMaW5lTnVtYmVyO1xuICAgIHZhciByb3dzID0gcHJvY2Vzc0xpbmVzKGNvZGVUcmVlLCB3cmFwTGluZXMsIGxpbmVQcm9wcywgc2hvd0xpbmVOdW1iZXJzLCBzaG93SW5saW5lTGluZU51bWJlcnMsIHN0YXJ0aW5nTGluZU51bWJlciwgbGFyZ2VzdExpbmVOdW1iZXIsIGxpbmVOdW1iZXJTdHlsZSk7XG4gICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUHJlVGFnLCBwcmVQcm9wcywgUmVhY3QuY3JlYXRlRWxlbWVudChDb2RlVGFnLCBjb2RlVGFnUHJvcHMsICFzaG93SW5saW5lTGluZU51bWJlcnMgJiYgYWxsTGluZU51bWJlcnMsIHJlbmRlcmVyKHtcbiAgICAgIHJvd3M6IHJvd3MsXG4gICAgICBzdHlsZXNoZWV0OiBzdHlsZSxcbiAgICAgIHVzZUlubGluZVN0eWxlczogdXNlSW5saW5lU3R5bGVzXG4gICAgfSkpKTtcbiAgfTtcbn0iLCJpbXBvcnQgaGlnaGxpZ2h0IGZyb20gJy4vaGlnaGxpZ2h0JztcbmltcG9ydCByZWZyYWN0b3IgZnJvbSAncmVmcmFjdG9yL2NvcmUnO1xudmFyIFN5bnRheEhpZ2hsaWdodGVyID0gaGlnaGxpZ2h0KHJlZnJhY3Rvciwge30pO1xuXG5TeW50YXhIaWdobGlnaHRlci5yZWdpc3Rlckxhbmd1YWdlID0gZnVuY3Rpb24gKF8sIGxhbmd1YWdlKSB7XG4gIHJldHVybiByZWZyYWN0b3IucmVnaXN0ZXIobGFuZ3VhZ2UpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgU3ludGF4SGlnaGxpZ2h0ZXI7IiwiaW1wb3J0IG1lbW9pemUgZnJvbSAnbWVtb2l6ZXJpZmljJztcbmltcG9ydCBkZWRlbnQgZnJvbSAndHMtZGVkZW50JztcbmV4cG9ydCB2YXIgZm9ybWF0dGVyID0gbWVtb2l6ZSgyKShmdW5jdGlvbiAoY29kZSkge1xuICByZXR1cm4gZGVkZW50KGNvZGUpO1xufSk7IiwiZnVuY3Rpb24gX2V4dGVuZHMoKSB7IF9leHRlbmRzID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7IGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7IHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07IGZvciAodmFyIGtleSBpbiBzb3VyY2UpIHsgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHsgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTsgfSB9IH0gcmV0dXJuIHRhcmdldDsgfTsgcmV0dXJuIF9leHRlbmRzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7IH1cblxuZnVuY3Rpb24gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZShzb3VyY2UsIGV4Y2x1ZGVkKTsgdmFyIGtleSwgaTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIHNvdXJjZVN5bWJvbEtleXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHNvdXJjZSk7IGZvciAoaSA9IDA7IGkgPCBzb3VyY2VTeW1ib2xLZXlzLmxlbmd0aDsgaSsrKSB7IGtleSA9IHNvdXJjZVN5bWJvbEtleXNbaV07IGlmIChleGNsdWRlZC5pbmRleE9mKGtleSkgPj0gMCkgY29udGludWU7IGlmICghT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHNvdXJjZSwga2V5KSkgY29udGludWU7IHRhcmdldFtrZXldID0gc291cmNlW2tleV07IH0gfSByZXR1cm4gdGFyZ2V0OyB9XG5cbmZ1bmN0aW9uIF9vYmplY3RXaXRob3V0UHJvcGVydGllc0xvb3NlKHNvdXJjZSwgZXhjbHVkZWQpIHsgaWYgKHNvdXJjZSA9PSBudWxsKSByZXR1cm4ge307IHZhciB0YXJnZXQgPSB7fTsgdmFyIHNvdXJjZUtleXMgPSBPYmplY3Qua2V5cyhzb3VyY2UpOyB2YXIga2V5LCBpOyBmb3IgKGkgPSAwOyBpIDwgc291cmNlS2V5cy5sZW5ndGg7IGkrKykgeyBrZXkgPSBzb3VyY2VLZXlzW2ldOyBpZiAoZXhjbHVkZWQuaW5kZXhPZihrZXkpID49IDApIGNvbnRpbnVlOyB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldOyB9IHJldHVybiB0YXJnZXQ7IH1cblxuaW1wb3J0IFwicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzXCI7XG5cbmZ1bmN0aW9uIGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywga2V5LCBhcmcpIHsgdHJ5IHsgdmFyIGluZm8gPSBnZW5ba2V5XShhcmcpOyB2YXIgdmFsdWUgPSBpbmZvLnZhbHVlOyB9IGNhdGNoIChlcnJvcikgeyByZWplY3QoZXJyb3IpOyByZXR1cm47IH0gaWYgKGluZm8uZG9uZSkgeyByZXNvbHZlKHZhbHVlKTsgfSBlbHNlIHsgUHJvbWlzZS5yZXNvbHZlKHZhbHVlKS50aGVuKF9uZXh0LCBfdGhyb3cpOyB9IH1cblxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3IoZm4pIHsgcmV0dXJuIGZ1bmN0aW9uICgpIHsgdmFyIHNlbGYgPSB0aGlzLCBhcmdzID0gYXJndW1lbnRzOyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkgeyB2YXIgZ2VuID0gZm4uYXBwbHkoc2VsZiwgYXJncyk7IGZ1bmN0aW9uIF9uZXh0KHZhbHVlKSB7IGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJuZXh0XCIsIHZhbHVlKTsgfSBmdW5jdGlvbiBfdGhyb3coZXJyKSB7IGFzeW5jR2VuZXJhdG9yU3RlcChnZW4sIHJlc29sdmUsIHJlamVjdCwgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBlcnIpOyB9IF9uZXh0KHVuZGVmaW5lZCk7IH0pOyB9OyB9XG5cbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0eShvYmosIGtleSwgdmFsdWUpIHsgaWYgKGtleSBpbiBvYmopIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7IHZhbHVlOiB2YWx1ZSwgZW51bWVyYWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCB3cml0YWJsZTogdHJ1ZSB9KTsgfSBlbHNlIHsgb2JqW2tleV0gPSB2YWx1ZTsgfSByZXR1cm4gb2JqOyB9XG5cbmZ1bmN0aW9uIF9zbGljZWRUb0FycmF5KGFyciwgaSkgeyByZXR1cm4gX2FycmF5V2l0aEhvbGVzKGFycikgfHwgX2l0ZXJhYmxlVG9BcnJheUxpbWl0KGFyciwgaSkgfHwgX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KGFyciwgaSkgfHwgX25vbkl0ZXJhYmxlUmVzdCgpOyB9XG5cbmZ1bmN0aW9uIF9ub25JdGVyYWJsZVJlc3QoKSB7IHRocm93IG5ldyBUeXBlRXJyb3IoXCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxcbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC5cIik7IH1cblxuZnVuY3Rpb24gX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5KG8sIG1pbkxlbikgeyBpZiAoIW8pIHJldHVybjsgaWYgKHR5cGVvZiBvID09PSBcInN0cmluZ1wiKSByZXR1cm4gX2FycmF5TGlrZVRvQXJyYXkobywgbWluTGVuKTsgdmFyIG4gPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobykuc2xpY2UoOCwgLTEpOyBpZiAobiA9PT0gXCJPYmplY3RcIiAmJiBvLmNvbnN0cnVjdG9yKSBuID0gby5jb25zdHJ1Y3Rvci5uYW1lOyBpZiAobiA9PT0gXCJNYXBcIiB8fCBuID09PSBcIlNldFwiKSByZXR1cm4gQXJyYXkuZnJvbShvKTsgaWYgKG4gPT09IFwiQXJndW1lbnRzXCIgfHwgL14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QobikpIHJldHVybiBfYXJyYXlMaWtlVG9BcnJheShvLCBtaW5MZW4pOyB9XG5cbmZ1bmN0aW9uIF9hcnJheUxpa2VUb0FycmF5KGFyciwgbGVuKSB7IGlmIChsZW4gPT0gbnVsbCB8fCBsZW4gPiBhcnIubGVuZ3RoKSBsZW4gPSBhcnIubGVuZ3RoOyBmb3IgKHZhciBpID0gMCwgYXJyMiA9IG5ldyBBcnJheShsZW4pOyBpIDwgbGVuOyBpKyspIHsgYXJyMltpXSA9IGFycltpXTsgfSByZXR1cm4gYXJyMjsgfVxuXG5mdW5jdGlvbiBfaXRlcmFibGVUb0FycmF5TGltaXQoYXJyLCBpKSB7IGlmICh0eXBlb2YgU3ltYm9sID09PSBcInVuZGVmaW5lZFwiIHx8ICEoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChhcnIpKSkgcmV0dXJuOyB2YXIgX2FyciA9IFtdOyB2YXIgX24gPSB0cnVlOyB2YXIgX2QgPSBmYWxzZTsgdmFyIF9lID0gdW5kZWZpbmVkOyB0cnkgeyBmb3IgKHZhciBfaSA9IGFycltTeW1ib2wuaXRlcmF0b3JdKCksIF9zOyAhKF9uID0gKF9zID0gX2kubmV4dCgpKS5kb25lKTsgX24gPSB0cnVlKSB7IF9hcnIucHVzaChfcy52YWx1ZSk7IGlmIChpICYmIF9hcnIubGVuZ3RoID09PSBpKSBicmVhazsgfSB9IGNhdGNoIChlcnIpIHsgX2QgPSB0cnVlOyBfZSA9IGVycjsgfSBmaW5hbGx5IHsgdHJ5IHsgaWYgKCFfbiAmJiBfaVtcInJldHVyblwiXSAhPSBudWxsKSBfaVtcInJldHVyblwiXSgpOyB9IGZpbmFsbHkgeyBpZiAoX2QpIHRocm93IF9lOyB9IH0gcmV0dXJuIF9hcnI7IH1cblxuZnVuY3Rpb24gX2FycmF5V2l0aEhvbGVzKGFycikgeyBpZiAoQXJyYXkuaXNBcnJheShhcnIpKSByZXR1cm4gYXJyOyB9XG5cbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZW50cmllcy5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5hc3NpZ24uanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLml0ZXJhdG9yLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaXRlcmF0b3IuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzXCI7XG5pbXBvcnQgXCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZnJvbS5qc1wiO1xuaW1wb3J0IFwiY29yZS1qcy9tb2R1bGVzL2VzLnByb21pc2UuanNcIjtcbmltcG9ydCBcImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qc1wiO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnQHN0b3J5Ym9vay9jbGllbnQtbG9nZ2VyJztcbmltcG9ydCB7IHN0eWxlZCB9IGZyb20gJ0BzdG9yeWJvb2svdGhlbWluZyc7XG5pbXBvcnQgZ2xvYmFsIGZyb20gJ2dsb2JhbCc7XG5pbXBvcnQgbWVtb2l6ZSBmcm9tICdtZW1vaXplcmlmaWMnOyAvLyBAdHMtaWdub3JlXG5cbmltcG9ydCBqc3ggZnJvbSAncmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9qc3gnOyAvLyBAdHMtaWdub3JlXG5cbmltcG9ydCBiYXNoIGZyb20gJ3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vYmFzaCc7IC8vIEB0cy1pZ25vcmVcblxuaW1wb3J0IGNzcyBmcm9tICdyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL2Nzcyc7IC8vIEB0cy1pZ25vcmVcblxuaW1wb3J0IGpzRXh0cmFzIGZyb20gJ3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vanMtZXh0cmFzJzsgLy8gQHRzLWlnbm9yZVxuXG5pbXBvcnQganNvbiBmcm9tICdyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL2pzb24nOyAvLyBAdHMtaWdub3JlXG5cbmltcG9ydCBncmFwaHFsIGZyb20gJ3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20vZ3JhcGhxbCc7IC8vIEB0cy1pZ25vcmVcblxuaW1wb3J0IGh0bWwgZnJvbSAncmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS9tYXJrdXAnOyAvLyBAdHMtaWdub3JlXG5cbmltcG9ydCBtZCBmcm9tICdyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL21hcmtkb3duJzsgLy8gQHRzLWlnbm9yZVxuXG5pbXBvcnQgeW1sIGZyb20gJ3JlYWN0LXN5bnRheC1oaWdobGlnaHRlci9kaXN0L2VzbS9sYW5ndWFnZXMvcHJpc20veWFtbCc7IC8vIEB0cy1pZ25vcmVcblxuaW1wb3J0IHRzeCBmcm9tICdyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vbGFuZ3VhZ2VzL3ByaXNtL3RzeCc7IC8vIEB0cy1pZ25vcmVcblxuaW1wb3J0IHR5cGVzY3JpcHQgZnJvbSAncmVhY3Qtc3ludGF4LWhpZ2hsaWdodGVyL2Rpc3QvZXNtL2xhbmd1YWdlcy9wcmlzbS90eXBlc2NyaXB0JzsgLy8gQHRzLWlnbm9yZVxuXG5pbXBvcnQgUmVhY3RTeW50YXhIaWdobGlnaHRlciBmcm9tICdyZWFjdC1zeW50YXgtaGlnaGxpZ2h0ZXIvZGlzdC9lc20vcHJpc20tbGlnaHQnO1xuaW1wb3J0IHsgQWN0aW9uQmFyIH0gZnJvbSAnLi4vQWN0aW9uQmFyL0FjdGlvbkJhcic7XG5pbXBvcnQgeyBTY3JvbGxBcmVhIH0gZnJvbSAnLi4vU2Nyb2xsQXJlYS9TY3JvbGxBcmVhJztcbmltcG9ydCB7IGZvcm1hdHRlciB9IGZyb20gJy4vZm9ybWF0dGVyJztcbnZhciBuYXZpZ2F0b3IgPSBnbG9iYWwubmF2aWdhdG9yLFxuICAgIGRvY3VtZW50ID0gZ2xvYmFsLmRvY3VtZW50LFxuICAgIGdsb2JhbFdpbmRvdyA9IGdsb2JhbC53aW5kb3c7XG5SZWFjdFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzZXh0cmEnLCBqc0V4dHJhcyk7XG5SZWFjdFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzeCcsIGpzeCk7XG5SZWFjdFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2pzb24nLCBqc29uKTtcblJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZSgneW1sJywgeW1sKTtcblJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZSgnbWQnLCBtZCk7XG5SZWFjdFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2Jhc2gnLCBiYXNoKTtcblJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZSgnY3NzJywgY3NzKTtcblJlYWN0U3ludGF4SGlnaGxpZ2h0ZXIucmVnaXN0ZXJMYW5ndWFnZSgnaHRtbCcsIGh0bWwpO1xuUmVhY3RTeW50YXhIaWdobGlnaHRlci5yZWdpc3Rlckxhbmd1YWdlKCd0c3gnLCB0c3gpO1xuUmVhY3RTeW50YXhIaWdobGlnaHRlci5yZWdpc3Rlckxhbmd1YWdlKCd0eXBlc2NyaXB0JywgdHlwZXNjcmlwdCk7XG5SZWFjdFN5bnRheEhpZ2hsaWdodGVyLnJlZ2lzdGVyTGFuZ3VhZ2UoJ2dyYXBocWwnLCBncmFwaHFsKTtcbnZhciB0aGVtZWRTeW50YXggPSBtZW1vaXplKDIpKGZ1bmN0aW9uICh0aGVtZSkge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXModGhlbWUuY29kZSB8fCB7fSkucmVkdWNlKGZ1bmN0aW9uIChhY2MsIF9yZWYpIHtcbiAgICB2YXIgX3JlZjIgPSBfc2xpY2VkVG9BcnJheShfcmVmLCAyKSxcbiAgICAgICAga2V5ID0gX3JlZjJbMF0sXG4gICAgICAgIHZhbCA9IF9yZWYyWzFdO1xuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGFjYywgX2RlZmluZVByb3BlcnR5KHt9LCBcIiogLlwiLmNvbmNhdChrZXkpLCB2YWwpKTtcbiAgfSwge30pO1xufSk7XG52YXIgY29weVRvQ2xpcGJvYXJkID0gY3JlYXRlQ29weVRvQ2xpcGJvYXJkRnVuY3Rpb24oKTtcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb3B5VG9DbGlwYm9hcmRGdW5jdGlvbigpIHtcbiAgaWYgKG5hdmlnYXRvciAhPT0gbnVsbCAmJiBuYXZpZ2F0b3IgIT09IHZvaWQgMCAmJiBuYXZpZ2F0b3IuY2xpcGJvYXJkKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0ZXh0KSB7XG4gICAgICByZXR1cm4gbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodGV4dCk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkge1xuICAgIHZhciBfcmVmMyA9IF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSh0ZXh0KSB7XG4gICAgICB2YXIgdG1wLCBmb2N1cztcbiAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkge1xuICAgICAgICB3aGlsZSAoMSkge1xuICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgdG1wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnVEVYVEFSRUEnKTtcbiAgICAgICAgICAgICAgZm9jdXMgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICAgICAgICB0bXAudmFsdWUgPSB0ZXh0O1xuICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRtcCk7XG4gICAgICAgICAgICAgIHRtcC5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0bXApO1xuICAgICAgICAgICAgICBmb2N1cy5mb2N1cygpO1xuXG4gICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCBfY2FsbGVlKTtcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gKF94KSB7XG4gICAgICByZXR1cm4gX3JlZjMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgICB9O1xuICB9KCk7XG59XG52YXIgV3JhcHBlciA9IHN0eWxlZC5kaXYoZnVuY3Rpb24gKF9yZWY0KSB7XG4gIHZhciB0aGVtZSA9IF9yZWY0LnRoZW1lO1xuICByZXR1cm4ge1xuICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICBjb2xvcjogdGhlbWUuY29sb3IuZGVmYXVsdFRleHRcbiAgfTtcbn0sIGZ1bmN0aW9uIChfcmVmNSkge1xuICB2YXIgdGhlbWUgPSBfcmVmNS50aGVtZSxcbiAgICAgIGJvcmRlcmVkID0gX3JlZjUuYm9yZGVyZWQ7XG4gIHJldHVybiBib3JkZXJlZCA/IHtcbiAgICBib3JkZXI6IFwiMXB4IHNvbGlkIFwiLmNvbmNhdCh0aGVtZS5hcHBCb3JkZXJDb2xvciksXG4gICAgYm9yZGVyUmFkaXVzOiB0aGVtZS5ib3JkZXJSYWRpdXMsXG4gICAgYmFja2dyb3VuZDogdGhlbWUuYmFja2dyb3VuZC5jb250ZW50XG4gIH0gOiB7fTtcbn0pO1xudmFyIFNjcm9sbGVyID0gc3R5bGVkKGZ1bmN0aW9uIChfcmVmNikge1xuICB2YXIgY2hpbGRyZW4gPSBfcmVmNi5jaGlsZHJlbixcbiAgICAgIGNsYXNzTmFtZSA9IF9yZWY2LmNsYXNzTmFtZTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFNjcm9sbEFyZWEsIHtcbiAgICBob3Jpem9udGFsOiB0cnVlLFxuICAgIHZlcnRpY2FsOiB0cnVlLFxuICAgIGNsYXNzTmFtZTogY2xhc3NOYW1lXG4gIH0sIGNoaWxkcmVuKTtcbn0pKHtcbiAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbn0sIGZ1bmN0aW9uIChfcmVmNykge1xuICB2YXIgdGhlbWUgPSBfcmVmNy50aGVtZTtcbiAgcmV0dXJuIHtcbiAgICAnJiBjb2RlJzoge1xuICAgICAgcGFkZGluZ1JpZ2h0OiB0aGVtZS5sYXlvdXRNYXJnaW5cbiAgICB9XG4gIH07XG59LCBmdW5jdGlvbiAoX3JlZjgpIHtcbiAgdmFyIHRoZW1lID0gX3JlZjgudGhlbWU7XG4gIHJldHVybiB0aGVtZWRTeW50YXgodGhlbWUpO1xufSk7XG52YXIgUHJlID0gc3R5bGVkLnByZShmdW5jdGlvbiAoX3JlZjkpIHtcbiAgdmFyIHRoZW1lID0gX3JlZjkudGhlbWUsXG4gICAgICBwYWRkZWQgPSBfcmVmOS5wYWRkZWQ7XG4gIHJldHVybiB7XG4gICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgIGp1c3RpZnlDb250ZW50OiAnZmxleC1zdGFydCcsXG4gICAgbWFyZ2luOiAwLFxuICAgIHBhZGRpbmc6IHBhZGRlZCA/IHRoZW1lLmxheW91dE1hcmdpbiA6IDBcbiAgfTtcbn0pO1xudmFyIENvZGUgPSBzdHlsZWQuY29kZSh7XG4gIGZsZXg6IDEsXG4gIHBhZGRpbmdSaWdodDogMCxcbiAgb3BhY2l0eTogMVxufSk7XG5leHBvcnQgdmFyIFN5bnRheEhpZ2hsaWdodGVyID0gZnVuY3Rpb24gU3ludGF4SGlnaGxpZ2h0ZXIoX3JlZjEwKSB7XG4gIHZhciBjaGlsZHJlbiA9IF9yZWYxMC5jaGlsZHJlbixcbiAgICAgIF9yZWYxMCRsYW5ndWFnZSA9IF9yZWYxMC5sYW5ndWFnZSxcbiAgICAgIGxhbmd1YWdlID0gX3JlZjEwJGxhbmd1YWdlID09PSB2b2lkIDAgPyAnanN4JyA6IF9yZWYxMCRsYW5ndWFnZSxcbiAgICAgIF9yZWYxMCRjb3B5YWJsZSA9IF9yZWYxMC5jb3B5YWJsZSxcbiAgICAgIGNvcHlhYmxlID0gX3JlZjEwJGNvcHlhYmxlID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYxMCRjb3B5YWJsZSxcbiAgICAgIF9yZWYxMCRib3JkZXJlZCA9IF9yZWYxMC5ib3JkZXJlZCxcbiAgICAgIGJvcmRlcmVkID0gX3JlZjEwJGJvcmRlcmVkID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYxMCRib3JkZXJlZCxcbiAgICAgIF9yZWYxMCRwYWRkZWQgPSBfcmVmMTAucGFkZGVkLFxuICAgICAgcGFkZGVkID0gX3JlZjEwJHBhZGRlZCA9PT0gdm9pZCAwID8gZmFsc2UgOiBfcmVmMTAkcGFkZGVkLFxuICAgICAgX3JlZjEwJGZvcm1hdCA9IF9yZWYxMC5mb3JtYXQsXG4gICAgICBmb3JtYXQgPSBfcmVmMTAkZm9ybWF0ID09PSB2b2lkIDAgPyB0cnVlIDogX3JlZjEwJGZvcm1hdCxcbiAgICAgIF9yZWYxMCRjbGFzc05hbWUgPSBfcmVmMTAuY2xhc3NOYW1lLFxuICAgICAgY2xhc3NOYW1lID0gX3JlZjEwJGNsYXNzTmFtZSA9PT0gdm9pZCAwID8gbnVsbCA6IF9yZWYxMCRjbGFzc05hbWUsXG4gICAgICBfcmVmMTAkc2hvd0xpbmVOdW1iZXIgPSBfcmVmMTAuc2hvd0xpbmVOdW1iZXJzLFxuICAgICAgc2hvd0xpbmVOdW1iZXJzID0gX3JlZjEwJHNob3dMaW5lTnVtYmVyID09PSB2b2lkIDAgPyBmYWxzZSA6IF9yZWYxMCRzaG93TGluZU51bWJlcixcbiAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3JlZjEwLCBbXCJjaGlsZHJlblwiLCBcImxhbmd1YWdlXCIsIFwiY29weWFibGVcIiwgXCJib3JkZXJlZFwiLCBcInBhZGRlZFwiLCBcImZvcm1hdFwiLCBcImNsYXNzTmFtZVwiLCBcInNob3dMaW5lTnVtYmVyc1wiXSk7XG5cbiAgaWYgKHR5cGVvZiBjaGlsZHJlbiAhPT0gJ3N0cmluZycgfHwgIWNoaWxkcmVuLnRyaW0oKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgdmFyIGhpZ2hsaWdodGFibGVDb2RlID0gZm9ybWF0ID8gZm9ybWF0dGVyKGNoaWxkcmVuKSA6IGNoaWxkcmVuLnRyaW0oKTtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoZmFsc2UpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICBjb3BpZWQgPSBfdXNlU3RhdGUyWzBdLFxuICAgICAgc2V0Q29waWVkID0gX3VzZVN0YXRlMlsxXTtcblxuICB2YXIgb25DbGljayA9IGZ1bmN0aW9uIG9uQ2xpY2soZSkge1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB2YXIgc2VsZWN0ZWRUZXh0ID0gZ2xvYmFsV2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7XG4gICAgdmFyIHRleHRUb0NvcHkgPSBlLnR5cGUgIT09ICdjbGljaycgJiYgc2VsZWN0ZWRUZXh0ID8gc2VsZWN0ZWRUZXh0IDogaGlnaGxpZ2h0YWJsZUNvZGU7XG4gICAgY29weVRvQ2xpcGJvYXJkKHRleHRUb0NvcHkpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgc2V0Q29waWVkKHRydWUpO1xuICAgICAgZ2xvYmFsV2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gc2V0Q29waWVkKGZhbHNlKTtcbiAgICAgIH0sIDE1MDApO1xuICAgIH0pLmNhdGNoKGxvZ2dlci5lcnJvcik7XG4gIH07XG5cbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdC5jcmVhdGVFbGVtZW50KFdyYXBwZXIsIHtcbiAgICBib3JkZXJlZDogYm9yZGVyZWQsXG4gICAgcGFkZGVkOiBwYWRkZWQsXG4gICAgY2xhc3NOYW1lOiBjbGFzc05hbWUsXG4gICAgb25Db3B5Q2FwdHVyZTogb25DbGlja1xuICB9LCAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChTY3JvbGxlciwgbnVsbCwgLyojX19QVVJFX18qL1JlYWN0LmNyZWF0ZUVsZW1lbnQoUmVhY3RTeW50YXhIaWdobGlnaHRlciwgX2V4dGVuZHMoe1xuICAgIHBhZGRlZDogcGFkZGVkIHx8IGJvcmRlcmVkLFxuICAgIGxhbmd1YWdlOiBsYW5ndWFnZSxcbiAgICBzaG93TGluZU51bWJlcnM6IHNob3dMaW5lTnVtYmVycyxcbiAgICBzaG93SW5saW5lTGluZU51bWJlcnM6IHNob3dMaW5lTnVtYmVycyxcbiAgICB1c2VJbmxpbmVTdHlsZXM6IGZhbHNlLFxuICAgIFByZVRhZzogUHJlLFxuICAgIENvZGVUYWc6IENvZGUsXG4gICAgbGluZU51bWJlckNvbnRhaW5lclN0eWxlOiB7fVxuICB9LCByZXN0KSwgaGlnaGxpZ2h0YWJsZUNvZGUpKSwgY29weWFibGUgPyAvKiNfX1BVUkVfXyovUmVhY3QuY3JlYXRlRWxlbWVudChBY3Rpb25CYXIsIHtcbiAgICBhY3Rpb25JdGVtczogW3tcbiAgICAgIHRpdGxlOiBjb3BpZWQgPyAnQ29waWVkJyA6ICdDb3B5JyxcbiAgICAgIG9uQ2xpY2s6IG9uQ2xpY2tcbiAgICB9XVxuICB9KSA6IG51bGwpO1xufTtcblN5bnRheEhpZ2hsaWdodGVyLmRpc3BsYXlOYW1lID0gXCJTeW50YXhIaWdobGlnaHRlclwiO1xuZXhwb3J0IGRlZmF1bHQgU3ludGF4SGlnaGxpZ2h0ZXI7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@storybook/components/dist/esm/syntaxhighlighter/syntaxhighlighter.js\n')}}]);
|