@openmrs/esm-app-shell 4.4.2-pre.742 → 4.4.2-pre.759
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/.turbo/turbo-build.log +103 -103
- package/dist/{8b8edb1f6ada2d43.js → 8a3c820bd8a5c087.js} +1 -1
- package/dist/{8b8edb1f6ada2d43.js.map → 8a3c820bd8a5c087.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/{openmrs.8d388c8338652aa7.js → openmrs.d58a9da6f7fab247.js} +2 -2
- package/dist/{openmrs.8d388c8338652aa7.js.map → openmrs.d58a9da6f7fab247.js.map} +1 -1
- package/dist/service-worker.js +1 -1
- package/dist/service-worker.js.map +1 -1
- package/lib/esm-devtools-app/988.js +1 -1
- package/lib/esm-devtools-app/main.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js +1 -1
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.js.buildmanifest.json +3 -3
- package/lib/esm-devtools-app/openmrs-esm-devtools-app.old +1 -1
- package/lib/esm-implementer-tools-app/807.js +1 -1
- package/lib/esm-implementer-tools-app/main.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js +1 -1
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.js.buildmanifest.json +3 -3
- package/lib/esm-implementer-tools-app/openmrs-esm-implementer-tools-app.old +1 -1
- package/lib/esm-login-app/337.js +1 -1
- package/lib/esm-login-app/642.js +1 -1
- package/lib/esm-login-app/main.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js +1 -1
- package/lib/esm-login-app/openmrs-esm-login-app.js.buildmanifest.json +4 -4
- package/lib/esm-login-app/openmrs-esm-login-app.old +1 -1
- package/lib/esm-offline-tools-app/264.js +1 -1
- package/lib/esm-offline-tools-app/main.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js +1 -1
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.js.buildmanifest.json +3 -3
- package/lib/esm-offline-tools-app/openmrs-esm-offline-tools-app.old +1 -1
- package/lib/esm-primary-navigation-app/363.js +1 -1
- package/lib/esm-primary-navigation-app/main.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js +1 -1
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.js.buildmanifest.json +3 -3
- package/lib/esm-primary-navigation-app/openmrs-esm-primary-navigation-app.old +1 -1
- package/lib/openmrs.js +5 -5
- package/lib/service-worker.js +1 -1
- package/package.json +4 -4
- /package/dist/{openmrs.8d388c8338652aa7.js.LICENSE.txt → openmrs.d58a9da6f7fab247.js.LICENSE.txt} +0 -0
package/lib/openmrs.js
CHANGED
|
@@ -2601,7 +2601,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
2601
2601
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
2602
2602
|
|
|
2603
2603
|
"use strict";
|
|
2604
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n (// TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n (_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFR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QzZMLHlCQUF5QixlQUFlekssaUVBQWFBO0FBRTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNhcmJvbi9yZWFjdC9lcy9jb21wb25lbnRzL1RpbGUvVGlsZS5qcz8wY2E2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDE2LCAyMDIyXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlLTIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCB7IGluaGVyaXRzIGFzIF9pbmhlcml0cywgY3JlYXRlU3VwZXIgYXMgX2NyZWF0ZVN1cGVyLCBjbGFzc0NhbGxDaGVjayBhcyBfY2xhc3NDYWxsQ2hlY2ssIGNyZWF0ZUNsYXNzIGFzIF9jcmVhdGVDbGFzcywgb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0eSBhcyBfZGVmaW5lUHJvcGVydHksIGV4dGVuZHMgYXMgX2V4dGVuZHMsIGFzc2VydFRoaXNJbml0aWFsaXplZCBhcyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkLCBzbGljZWRUb0FycmF5IGFzIF9zbGljZWRUb0FycmF5IH0gZnJvbSAnLi4vLi4vX3ZpcnR1YWwvX3JvbGx1cFBsdWdpbkJhYmVsSGVscGVycy5qcyc7XG5pbXBvcnQgUmVhY3RfX2RlZmF1bHQsIHsgQ29tcG9uZW50LCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IExpbmsgZnJvbSAnLi4vTGluay9MaW5rLmpzJztcbmltcG9ydCB7IENoZWNrYm94Q2hlY2tlZEZpbGxlZCwgQ2hlY2tib3gsIENoZXZyb25Eb3duIH0gZnJvbSAnQGNhcmJvbi9pY29ucy1yZWFjdCc7XG5pbXBvcnQgZGVwcmVjYXRlIGZyb20gJy4uLy4uL3Byb3AtdHlwZXMvZGVwcmVjYXRlLmpzJztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXZlbnRzLmpzJztcbmltcG9ydCB7IFByZWZpeENvbnRleHQsIHVzZVByZWZpeCB9IGZyb20gJy4uLy4uL2ludGVybmFsL3VzZVByZWZpeC5qcyc7XG5pbXBvcnQgeyBtYXRjaGVzIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQvbWF0Y2guanMnO1xuaW1wb3J0IHsgRW50ZXIsIFNwYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQva2V5cy5qcyc7XG5cbnZhciBfQ2hlY2tib3hDaGVja2VkRmlsbGUsIF9DaGVja2JveCwgX0NoZXZyb25Eb3duO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wiY2hpbGRyZW5cIiwgXCJocmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJoYW5kbGVLZXlEb3duXCIsIFwib25DbGlja1wiLCBcIm9uS2V5RG93blwiLCBcImNsaWNrZWRcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiY2hpbGRyZW5cIiwgXCJpZFwiLCBcInRhYkluZGV4XCIsIFwidmFsdWVcIiwgXCJuYW1lXCIsIFwidGl0bGVcIiwgXCJpY29uRGVzY3JpcHRpb25cIiwgXCJjbGFzc05hbWVcIiwgXCJoYW5kbGVDbGlja1wiLCBcImhhbmRsZUtleURvd25cIiwgXCJvbkNsaWNrXCIsIFwib25DaGFuZ2VcIiwgXCJvbktleURvd25cIiwgXCJsaWdodFwiLCBcImRpc2FibGVkXCIsIFwic2VsZWN0ZWRcIl0sXG4gICAgX2V4Y2x1ZGVkNCA9IFtcInRhYkluZGV4XCIsIFwiY2xhc3NOYW1lXCIsIFwiZXhwYW5kZWRcIiwgXCJ0aWxlTWF4SGVpZ2h0XCIsIFwidGlsZVBhZGRpbmdcIiwgXCJoYW5kbGVDbGlja1wiLCBcIm9uS2V5VXBcIiwgXCJ0aWxlQ29sbGFwc2VkSWNvblRleHRcIiwgXCJ0aWxlRXhwYW5kZWRJY29uVGV4dFwiLCBcInRpbGVDb2xsYXBzZWRMYWJlbFwiLCBcInRpbGVFeHBhbmRlZExhYmVsXCIsIFwib25CZWZvcmVDbGlja1wiLCBcImxpZ2h0XCJdO1xudmFyIFRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRpbGUsIF9Db21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVGlsZSk7XG5cbiAgZnVuY3Rpb24gVGlsZSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZSk7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZSwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgbGlnaHQgPSBfdGhpcyRwcm9wcy5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzLCBfZXhjbHVkZWQpO1xuXG4gICAgICB2YXIgdGlsZUNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6IHRpbGVDbGFzc2VzXG4gICAgICB9LCByZXN0KSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbnZhciBDbGlja2FibGVUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoQ2xpY2thYmxlVGlsZSwgX0NvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKENsaWNrYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIENsaWNrYWJsZVRpbGUoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENsaWNrYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX3N1cGVyMi5jYWxsLmFwcGx5KF9zdXBlcjIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInN0YXRlXCIsIHt9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJoYW5kbGVDbGlja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsaWNrZWQ6ICFfdGhpcy5zdGF0ZS5jbGlja2VkXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVDbGksIF90aGlzJHByb3BzMiwgX3RoaXMkcHJvcHMkb25DbGljaywgX3RoaXMkcHJvcHMzO1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVDbGljayBwcm9wIHdoZW4gaGFuZGxlQ2xpY2sgaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUNsaSA9IChfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcykuaGFuZGxlQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUNsaSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlQ2xpLmNhbGwoX3RoaXMkcHJvcHMyLCBldnQpKSB8fCAoKF90aGlzJHByb3BzJG9uQ2xpY2sgPSAoX3RoaXMkcHJvcHMzID0gX3RoaXMucHJvcHMpLm9uQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpcyRwcm9wczMsIGV2dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlS2V5RG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBpZiAobWF0Y2hlcyhldnQsIFtFbnRlciwgU3BhY2VdKSkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgY2xpY2tlZDogIV90aGlzLnN0YXRlLmNsaWNrZWRcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXksIF90aGlzJHByb3BzNDtcblxuICAgICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVLZXlEb3duIHByb3Agd2hlbiBoYW5kbGVLZXlEb3duIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleSA9IChfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcykuaGFuZGxlS2V5RG93bikgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkaGFuZGxlS2V5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVLZXkuY2FsbChfdGhpcyRwcm9wczQsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyLCBfdGhpcyRwcm9wczU7XG5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUtleURvd24gcHJvcCB3aGVuIGhhbmRsZUtleURvd24gaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleTIgPSAoX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMpLmhhbmRsZUtleURvd24pID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUtleTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUtleTIuY2FsbChfdGhpcyRwcm9wczUsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENsaWNrYWJsZVRpbGUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2N4MjtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcblxuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczYuY2hpbGRyZW4sXG4gICAgICAgICAgaHJlZiA9IF90aGlzJHByb3BzNi5ocmVmLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNi5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmhhbmRsZUNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5oYW5kbGVLZXlEb3duO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbkNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbktleURvd247XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmNsaWNrZWQ7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM2LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM2LCBfZXhjbHVkZWQyKTtcblxuICAgICAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1jbGlja2FibGVcIiksIChfY3gyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3gyLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1jbGlja2VkXCIpLCB0aGlzLnN0YXRlLmNsaWNrZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MiwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2N4MiksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTGluaywgX2V4dGVuZHMoe1xuICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgb25LZXlEb3duOiB0aGlzLmhhbmRsZUtleURvd25cbiAgICAgIH0pLCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHN0YXRlKSB7XG4gICAgICB2YXIgY2xpY2tlZCA9IF9yZWYuY2xpY2tlZDtcbiAgICAgIHZhciBwcmV2Q2xpY2tlZCA9IHN0YXRlLnByZXZDbGlja2VkO1xuICAgICAgcmV0dXJuIHByZXZDbGlja2VkID09PSBjbGlja2VkID8gbnVsbCA6IHtcbiAgICAgICAgY2xpY2tlZDogY2xpY2tlZCxcbiAgICAgICAgcHJldkNsaWNrZWQ6IGNsaWNrZWRcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENsaWNrYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIENsaWNrYWJsZVRpbGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBvbkNsaWNrLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBoYW5kbGVLZXlEb3duOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgaGFuZGxlS2V5RG93biBwcm9wIGZvciBDbGlja2FibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25LZXlEb3duLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIGhyZWYgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogVGhlIHJlbCBwcm9wZXJ0eSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICByZWw6IFByb3BUeXBlcy5zdHJpbmdcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgY2xpY2tlZDogZmFsc2UsXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fSxcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxuZnVuY3Rpb24gU2VsZWN0YWJsZVRpbGUocHJvcHMpIHtcbiAgdmFyIF9jeDM7XG5cbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICBpZCA9IHByb3BzLmlkLFxuICAgICAgdGFiSW5kZXggPSBwcm9wcy50YWJJbmRleCxcbiAgICAgIHZhbHVlID0gcHJvcHMudmFsdWUsXG4gICAgICBuYW1lID0gcHJvcHMubmFtZSxcbiAgICAgIHRpdGxlID0gcHJvcHMudGl0bGU7XG4gICAgICBwcm9wcy5pY29uRGVzY3JpcHRpb247XG4gICAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgaGFuZGxlQ2xpY2sgPSBwcm9wcy5oYW5kbGVDbGljayxcbiAgICAgIGhhbmRsZUtleURvd24gPSBwcm9wcy5oYW5kbGVLZXlEb3duLFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLFxuICAgICAgb25LZXlEb3duID0gcHJvcHMub25LZXlEb3duLFxuICAgICAgbGlnaHQgPSBwcm9wcy5saWdodCxcbiAgICAgIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQsXG4gICAgICBzZWxlY3RlZCA9IHByb3BzLnNlbGVjdGVkLFxuICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkMyk7XG5cbiAgdmFyIHByZWZpeCA9IHVzZVByZWZpeCgpOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25DbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIHZhciBjbGlja0hhbmRsZXIgPSBoYW5kbGVDbGljayB8fCBvbkNsaWNrOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25LZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICB2YXIga2V5RG93bkhhbmRsZXIgPSBoYW5kbGVLZXlEb3duIHx8IG9uS2V5RG93bjtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoc2VsZWN0ZWQpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICBpc1NlbGVjdGVkID0gX3VzZVN0YXRlMlswXSxcbiAgICAgIHNldElzU2VsZWN0ZWQgPSBfdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBpbnB1dCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1zZWxlY3RhYmxlXCIpLCAoX2N4MyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtc2VsZWN0ZWRcIiksIGlzU2VsZWN0ZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWRpc2FibGVkXCIpLCBkaXNhYmxlZCksIF9jeDMpLCBjbGFzc05hbWUpO1xuICB2YXIgaW5wdXRDbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1pbnB1dFwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWlucHV0LS1jaGVja2VkXCIpLCBpc1NlbGVjdGVkKSk7IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVDbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uQ2xpY2soZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnBlcnNpc3QoKTtcbiAgICBzZXRJc1NlbGVjdGVkKCFpc1NlbGVjdGVkKTtcbiAgICBjbGlja0hhbmRsZXIoZXZ0KTtcbiAgICBvbkNoYW5nZShldnQpO1xuICB9IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVLZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uS2V5RG93bihldnQpIHtcbiAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0SXNTZWxlY3RlZCghaXNTZWxlY3RlZCk7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH1cblxuICAgIGtleURvd25IYW5kbGVyKGV2dCk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBzZXRJc1NlbGVjdGVkKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICBvbkNoYW5nZShldmVudCk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHNldElzU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICB9LCBbc2VsZWN0ZWRdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0X19kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICByZWY6IGlucHV0LFxuICAgIHRhYkluZGV4OiAtMSxcbiAgICBpZDogaWQsXG4gICAgY2xhc3NOYW1lOiBpbnB1dENsYXNzZXMsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIG9uQ2hhbmdlOiAhZGlzYWJsZWQgPyBoYW5kbGVDaGFuZ2UgOiBudWxsLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgbmFtZTogbmFtZSxcbiAgICB0aXRsZTogdGl0bGUsXG4gICAgY2hlY2tlZDogaXNTZWxlY3RlZFxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCBfZXh0ZW5kcyh7XG4gICAgaHRtbEZvcjogaWQsXG4gICAgY2xhc3NOYW1lOiBjbGFzc2VzIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleFxuICAgICxcbiAgICB0YWJJbmRleDogIWRpc2FibGVkID8gdGFiSW5kZXggOiBudWxsXG4gIH0sIHJlc3QsIHtcbiAgICBvbkNsaWNrOiAhZGlzYWJsZWQgPyBoYW5kbGVPbkNsaWNrIDogbnVsbCxcbiAgICBvbktleURvd246ICFkaXNhYmxlZCA/IGhhbmRsZU9uS2V5RG93biA6IG51bGxcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmsgXCIpLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmstLXBlcnNpc3RlbnRcIilcbiAgfSwgaXNTZWxlY3RlZCA/IF9DaGVja2JveENoZWNrZWRGaWxsZSB8fCAoX0NoZWNrYm94Q2hlY2tlZEZpbGxlID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3hDaGVja2VkRmlsbGVkLCBudWxsKSkgOiBfQ2hlY2tib3ggfHwgKF9DaGVja2JveCA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBudWxsKSkpLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gIH0sIGNoaWxkcmVuKSkpO1xufVxuU2VsZWN0YWJsZVRpbGUuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogJ3ZhbHVlJyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHNlbGVjdGVkOiBmYWxzZSxcbiAgdGFiSW5kZXg6IDAsXG4gIGxpZ2h0OiBmYWxzZSxcbiAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHt9LFxuICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fVxufTtcblNlbGVjdGFibGVUaWxlLnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWxlY3RhYmxlVGlsZSBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIGhhbmRsZUNsaWNrOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgYGhhbmRsZUNsaWNrYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uQ2xpY2tgLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGBoYW5kbGVLZXlEb3duYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uS2V5RG93bmAuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGNoZWNrbWFyayBpY29uLlxuICAgKi9cbiAgaWNvbkRlc2NyaXB0aW9uOiBkZXByZWNhdGUoUHJvcFR5cGVzLnN0cmluZywgJ1RoZSBgaWNvbkRlc2NyaXB0aW9uYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGlzIG5vIGxvbmdlciBuZWVkZWQgYW5kIGhhcyAnICsgJ2JlZW4gZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFRoZSBgbmFtZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBlbXB0eSBoYW5kbGVyIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHNlbGVjdCB0aGlzIHRpbGUuXG4gICAqL1xuICBzZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHRhYiBpbmRleCBvZiB0aGUgd3JhcHBlciBlbGVtZW50XG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGB0aXRsZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSkuaXNSZXF1aXJlZFxufTtcbnZhciBFeHBhbmRhYmxlVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDMpIHtcbiAgX2luaGVyaXRzKEV4cGFuZGFibGVUaWxlLCBfQ29tcG9uZW50Myk7XG5cbiAgdmFyIF9zdXBlcjMgPSBfY3JlYXRlU3VwZXIoRXhwYW5kYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIEV4cGFuZGFibGVUaWxlKCkge1xuICAgIHZhciBfdGhpczI7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRXhwYW5kYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgX3RoaXMyID0gX3N1cGVyMy5jYWxsLmFwcGx5KF9zdXBlcjMsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzdGF0ZVwiLCB7fSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcInJlc2l6ZU9ic2VydmVyXCIsIG51bGwpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZnVuY3Rpb24gKGVudHJpZXMpIHtcbiAgICAgICAgdmFyIF9lbnRyaWVzID0gX3NsaWNlZFRvQXJyYXkoZW50cmllcywgMSksXG4gICAgICAgICAgICBhYm92ZVRoZUZvbGQgPSBfZW50cmllc1swXTtcblxuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IGFib3ZlVGhlRm9sZC5jb250ZW50UmVjdC5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzMi50aWxlKSB7XG4gICAgICAgIHZhciBnZXRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKF90aGlzMi50aWxlLCBudWxsKTtcblxuICAgICAgICBpZiAoX3RoaXMyLmFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlci5vYnNlcnZlKF90aGlzMi5hYm92ZVRoZUZvbGQpO1xuXG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IF90aGlzMi5hYm92ZVRoZUZvbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LFxuICAgICAgICAgICAgdGlsZVBhZGRpbmc6IHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyksIDEwKSArIHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJyksIDEwKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImNvbXBvbmVudERpZFVwZGF0ZVwiLCBmdW5jdGlvbiAocHJldlByb3BzKSB7XG4gICAgICBpZiAocHJldlByb3BzLmV4cGFuZGVkICE9PSBfdGhpczIucHJvcHMuZXhwYW5kZWQpIHtcbiAgICAgICAgX3RoaXMyLnNldE1heEhlaWdodCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzZXRNYXhIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzMi5zdGF0ZS5leHBhbmRlZCA/IF90aGlzMi50aWxlQ29udGVudCA6IF90aGlzMi5hYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBfdGhpczIuc3RhdGUuZXhwYW5kZWQgPyBfdGhpczIudGlsZUNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IDogX3RoaXMyLmFib3ZlVGhlRm9sZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImhhbmRsZUNsaWNrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGlmICghX3RoaXMyLnByb3BzLm9uQmVmb3JlQ2xpY2soZXZ0KSB8fCBldnQudGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICBleHBhbmRlZDogIV90aGlzMi5zdGF0ZS5leHBhbmRlZFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMyJHByb3BzJGhhbmRsZUNsLCBfdGhpczIkcHJvcHMsIF90aGlzMiRwcm9wcyRvbkNsaWNrLCBfdGhpczIkcHJvcHMyO1xuXG4gICAgICAgIF90aGlzMi5zZXRNYXhIZWlnaHQoKTsgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUNsaWNrIHByb3Agd2hlbiBoYW5kbGVDbGljayBpcyBkZXByZWNhdGVkXG5cblxuICAgICAgICAoKF90aGlzMiRwcm9wcyRoYW5kbGVDbCA9IChfdGhpczIkcHJvcHMgPSBfdGhpczIucHJvcHMpLmhhbmRsZUNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkaGFuZGxlQ2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzMiRwcm9wcyRoYW5kbGVDbC5jYWxsKF90aGlzMiRwcm9wcywgZXZ0KSkgfHwgKChfdGhpczIkcHJvcHMkb25DbGljayA9IChfdGhpczIkcHJvcHMyID0gX3RoaXMyLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMyJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpczIkcHJvcHMyLCBldnQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJoYW5kbGVLZXlVcFwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBpZiAoZXZ0LnRhcmdldCAhPT0gX3RoaXMyLnRpbGUpIHtcbiAgICAgICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJnZXRDaGlsZHJlblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gUmVhY3RfX2RlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShfdGhpczIucHJvcHMuY2hpbGRyZW4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhFeHBhbmRhYmxlVGlsZSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY3g1LFxuICAgICAgICAgIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRhYkluZGV4ID0gX3RoaXMkcHJvcHM3LnRhYkluZGV4LFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNy5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LmV4cGFuZGVkO1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlTWF4SGVpZ2h0O1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlUGFkZGluZztcbiAgICAgICAgICBfdGhpcyRwcm9wczcuaGFuZGxlQ2xpY2s7XG4gICAgICAgICAgdmFyIG9uS2V5VXAgPSBfdGhpcyRwcm9wczcub25LZXlVcCxcbiAgICAgICAgICB0aWxlQ29sbGFwc2VkSWNvblRleHQgPSBfdGhpcyRwcm9wczcudGlsZUNvbGxhcHNlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVFeHBhbmRlZEljb25UZXh0ID0gX3RoaXMkcHJvcHM3LnRpbGVFeHBhbmRlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVDb2xsYXBzZWRMYWJlbCA9IF90aGlzJHByb3BzNy50aWxlQ29sbGFwc2VkTGFiZWwsXG4gICAgICAgICAgdGlsZUV4cGFuZGVkTGFiZWwgPSBfdGhpcyRwcm9wczcudGlsZUV4cGFuZGVkTGFiZWw7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3Lm9uQmVmb3JlQ2xpY2s7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM3LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM3LCBfZXhjbHVkZWQ0KTtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcbiAgICAgIHZhciBpc0V4cGFuZGVkID0gdGhpcy5zdGF0ZS5leHBhbmRlZDtcbiAgICAgIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tZXhwYW5kYWJsZVwiKSwgKF9jeDUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLWV4cGFuZGVkXCIpLCBpc0V4cGFuZGVkKSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9jeDUpLCBjbGFzc05hbWUpO1xuICAgICAgdmFyIHRpbGVTdHlsZSA9IHtcbiAgICAgICAgbWF4SGVpZ2h0OiBpc0V4cGFuZGVkID8gbnVsbCA6IHRoaXMuc3RhdGUudGlsZU1heEhlaWdodCArIHRoaXMuc3RhdGUudGlsZVBhZGRpbmdcbiAgICAgIH07XG4gICAgICB2YXIgY2hpbGRyZW5Bc0FycmF5ID0gdGhpcy5nZXRDaGlsZHJlbigpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgLyojX19QVVJFX18qL1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyxqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnNcbiAgICAgICAgUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZih0aWxlKSB7XG4gICAgICAgICAgICBfdGhpczMudGlsZSA9IHRpbGU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHlsZTogdGlsZVN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogaXNFeHBhbmRlZCxcbiAgICAgICAgICB0aXRsZTogaXNFeHBhbmRlZCA/IHRpbGVFeHBhbmRlZEljb25UZXh0IDogdGlsZUNvbGxhcHNlZEljb25UZXh0XG4gICAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgICBvbktleVVwOiBjb21wb3NlRXZlbnRIYW5kbGVycyhbb25LZXlVcCwgdGhpcy5oYW5kbGVLZXlVcF0pLFxuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYodGlsZUNvbnRlbnQpIHtcbiAgICAgICAgICAgIF90aGlzMy50aWxlQ29udGVudCA9IHRpbGVDb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKGFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgICAgX3RoaXMzLmFib3ZlVGhlRm9sZCA9IGFib3ZlVGhlRm9sZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gICAgICAgIH0sIGNoaWxkcmVuQXNBcnJheVswXSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVfX2NoZXZyb25cIilcbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGlzRXhwYW5kZWQgPyB0aWxlRXhwYW5kZWRMYWJlbCA6IHRpbGVDb2xsYXBzZWRMYWJlbCksIF9DaGV2cm9uRG93biB8fCAoX0NoZXZyb25Eb3duID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvbkRvd24sIG51bGwpKSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICAgICAgICB9LCBjaGlsZHJlbkFzQXJyYXlbMV0pKSlcbiAgICAgICk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBfcmVmMiwgc3RhdGUpIHtcbiAgICAgIHZhciBleHBhbmRlZCA9IF9yZWYyLmV4cGFuZGVkLFxuICAgICAgICAgIHRpbGVNYXhIZWlnaHQgPSBfcmVmMi50aWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIHRpbGVQYWRkaW5nID0gX3JlZjIudGlsZVBhZGRpbmc7XG4gICAgICB2YXIgcHJldkV4cGFuZGVkID0gc3RhdGUucHJldkV4cGFuZGVkLFxuICAgICAgICAgIHByZXZUaWxlTWF4SGVpZ2h0ID0gc3RhdGUucHJldlRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgcHJldlRpbGVQYWRkaW5nID0gc3RhdGUucHJldlRpbGVQYWRkaW5nLFxuICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZCA9IHN0YXRlLmV4cGFuZGVkLFxuICAgICAgICAgIGN1cnJlbnRUaWxlTWF4SGVpZ2h0ID0gc3RhdGUudGlsZU1heEhlaWdodCxcbiAgICAgICAgICBjdXJyZW50VGlsZVBhZGRpbmcgPSBzdGF0ZS50aWxlUGFkZGluZztcbiAgICAgIHZhciBleHBhbmRlZENoYW5nZWQgPSBwcmV2RXhwYW5kZWQgIT09IGV4cGFuZGVkO1xuICAgICAgdmFyIHRpbGVNYXhIZWlnaHRDaGFuZ2VkID0gcHJldlRpbGVNYXhIZWlnaHQgIT09IHRpbGVNYXhIZWlnaHQ7XG4gICAgICB2YXIgdGlsZVBhZGRpbmdDaGFuZ2VkID0gcHJldlRpbGVQYWRkaW5nICE9PSB0aWxlUGFkZGluZztcbiAgICAgIHJldHVybiAhZXhwYW5kZWRDaGFuZ2VkICYmICF0aWxlTWF4SGVpZ2h0Q2hhbmdlZCAmJiAhdGlsZVBhZGRpbmdDaGFuZ2VkID8gbnVsbCA6IHtcbiAgICAgICAgZXhwYW5kZWQ6ICFleHBhbmRlZENoYW5nZWQgPyBjdXJyZW50RXhwYW5kZWQgOiBleHBhbmRlZCxcbiAgICAgICAgdGlsZU1heEhlaWdodDogIXRpbGVNYXhIZWlnaHRDaGFuZ2VkID8gY3VycmVudFRpbGVNYXhIZWlnaHQgOiB0aWxlTWF4SGVpZ2h0LFxuICAgICAgICB0aWxlUGFkZGluZzogIXRpbGVQYWRkaW5nQ2hhbmdlZCA/IGN1cnJlbnRUaWxlUGFkZGluZyA6IHRpbGVQYWRkaW5nLFxuICAgICAgICBwcmV2RXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgICAgICBwcmV2VGlsZU1heEhlaWdodDogdGlsZU1heEhlaWdodCxcbiAgICAgICAgcHJldlRpbGVQYWRkaW5nOiB0aWxlUGFkZGluZ1xuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRXhwYW5kYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhlIHRpbGUgaXMgZXhwYW5kZWQuXG4gICAqL1xuICBleHBhbmRlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIEV4cGFuZGFibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25DbGljay4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIEFuIElEIHRoYXQgY2FuIGJlIHByb3ZpZGVkIHRvIGFyaWEtbGFiZWxsZWRieVxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIG9wdGlvbmFsIGhhbmRsZXIgdG8gZGVjaWRlIHdoZXRoZXIgdG8gaWdub3JlIGEgY2xpY2suIHJldHVybnMgZmFsc2UgaWYgY2xpY2sgc2hvdWxkIGJlIGlnbm9yZWRcbiAgICovXG4gIG9uQmVmb3JlQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgRXhwYW5kYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBvcHRpb25hbCBoYW5kbGVyIHRvIHRyaWdnZXIgYSBmdW5jdGlvbiB3aGVuIGEga2V5IGlzIHByZXNzZWRcbiAgICovXG4gIG9uS2V5VXA6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBUaGUgYHRhYmluZGV4YCBhdHRyaWJ1dGUuXG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImNvbGxhcHNlZFwiIGljb24gdGhhdCBjYW4gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRJY29uVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogV2hlbiBcImNvbGxhcHNlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbW9yZVwiKS5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImV4cGFuZGVkXCIgaWNvbiB0aGF0IGNhbiBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgKi9cbiAgdGlsZUV4cGFuZGVkSWNvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFdoZW4gXCJleHBhbmRlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbGVzc1wiKS5cbiAgICovXG4gIHRpbGVFeHBhbmRlZExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nXG59KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgdGFiSW5kZXg6IDAsXG4gIGV4cGFuZGVkOiBmYWxzZSxcbiAgdGlsZU1heEhlaWdodDogMCxcbiAgdGlsZVBhZGRpbmc6IDAsXG4gIG9uQmVmb3JlQ2xpY2s6IGZ1bmN0aW9uIG9uQmVmb3JlQ2xpY2soKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgdGlsZUNvbGxhcHNlZEljb25UZXh0OiAnSW50ZXJhY3QgdG8gZXhwYW5kIFRpbGUnLFxuICB0aWxlRXhwYW5kZWRJY29uVGV4dDogJ0ludGVyYWN0IHRvIGNvbGxhcHNlIFRpbGUnLFxuICBsaWdodDogZmFsc2Vcbn0pO1xuXG52YXIgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQ0KSB7XG4gIF9pbmhlcml0cyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgX0NvbXBvbmVudDQpO1xuXG4gIHZhciBfc3VwZXI0ID0gX2NyZWF0ZVN1cGVyKFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KTtcblxuICBmdW5jdGlvbiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50X19hYm92ZS10aGUtZm9sZFwiKVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbnZhciBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDUpIHtcbiAgX2luaGVyaXRzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBfQ29tcG9uZW50NSk7XG5cbiAgdmFyIF9zdXBlcjUgPSBfY3JlYXRlU3VwZXIoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQpO1xuXG4gIGZ1bmN0aW9uIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCk7XG5cbiAgICByZXR1cm4gX3N1cGVyNS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRfX2JlbG93LXRoZS1mb2xkXCIpXG4gICAgICB9LCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50O1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuZXhwb3J0IHsgQ2xpY2thYmxlVGlsZSwgRXhwYW5kYWJsZVRpbGUsIFNlbGVjdGFibGVUaWxlLCBUaWxlLCBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQgfTtcbiJdLCJuYW1lcyI6WyJpbmhlcml0cyIsIl9pbmhlcml0cyIsImNyZWF0ZVN1cGVyIiwiX2NyZWF0ZVN1cGVyIiwiY2xhc3NDYWxsQ2hlY2siLCJfY2xhc3NDYWxsQ2hlY2siLCJjcmVhdGVDbGFzcyIsIl9jcmVhdGVDbGFzcyIsIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfZGVmaW5lUHJvcGVydHkiLCJleHRlbmRzIiwiX2V4dGVuZHMiLCJhc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwic2xpY2VkVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiUmVhY3RfX2RlZmF1bHQiLCJDb21wb25lbnQiLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlByb3BUeXBlcyIsImN4IiwiTGluayIsIkNoZWNrYm94Q2hlY2tlZEZpbGxlZCIsIkNoZWNrYm94IiwiQ2hldnJvbkRvd24iLCJkZXByZWNhdGUiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIlByZWZpeENvbnRleHQiLCJ1c2VQcmVmaXgiLCJtYXRjaGVzIiwiRW50ZXIiLCJTcGFjZSIsIl9DaGVja2JveENoZWNrZWRGaWxsZSIsIl9DaGVja2JveCIsIl9DaGV2cm9uRG93biIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX2V4Y2x1ZGVkNCIsIlRpbGUiLCJfQ29tcG9uZW50IiwiX3N1cGVyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsInByZWZpeCIsImNvbnRleHQiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJsaWdodCIsInJlc3QiLCJ0aWxlQ2xhc3NlcyIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJub2RlIiwic3RyaW5nIiwiYm9vbCIsIkNsaWNrYWJsZVRpbGUiLCJfQ29tcG9uZW50MiIsIl9zdXBlcjIiLCJfdGhpcyIsIl9sZW4iLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsImV2dCIsInBlcnNpc3QiLCJzZXRTdGF0ZSIsImNsaWNrZWQiLCJzdGF0ZSIsIl90aGlzJHByb3BzJGhhbmRsZUNsaSIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzJG9uQ2xpY2siLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVDbGljayIsIm9uQ2xpY2siLCJfdGhpcyRwcm9wcyRoYW5kbGVLZXkiLCJfdGhpcyRwcm9wczQiLCJoYW5kbGVLZXlEb3duIiwib25LZXlEb3duIiwiX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiIsIl90aGlzJHByb3BzNSIsIl9jeDIiLCJfdGhpcyRwcm9wczYiLCJocmVmIiwiY2xhc3NlcyIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsIl9yZWYiLCJwcmV2Q2xpY2tlZCIsImZ1bmMiLCJyZWwiLCJTZWxlY3RhYmxlVGlsZSIsImhhbmRsZU9uQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNldElzU2VsZWN0ZWQiLCJpc1NlbGVjdGVkIiwiY2xpY2tIYW5kbGVyIiwib25DaGFuZ2UiLCJoYW5kbGVPbktleURvd24iLCJrZXlEb3duSGFuZGxlciIsImhhbmRsZUNoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwiY2hlY2tlZCIsIl9jeDMiLCJpZCIsInRhYkluZGV4IiwibmFtZSIsInRpdGxlIiwiaWNvbkRlc2NyaXB0aW9uIiwiZGlzYWJsZWQiLCJzZWxlY3RlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpbnB1dCIsImlucHV0Q2xhc3NlcyIsIkZyYWdtZW50IiwicmVmIiwidHlwZSIsImh0bWxGb3IiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJudW1iZXIiLCJvbmVPZlR5cGUiLCJpc1JlcXVpcmVkIiwiRXhwYW5kYWJsZVRpbGUiLCJfQ29tcG9uZW50MyIsIl9zdXBlcjMiLCJfdGhpczIiLCJfbGVuMiIsIl9rZXkyIiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImVudHJpZXMiLCJfZW50cmllcyIsImFib3ZlVGhlRm9sZCIsInRpbGVNYXhIZWlnaHQiLCJjb250ZW50UmVjdCIsImhlaWdodCIsInRpbGUiLCJnZXRTdHlsZSIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJvYnNlcnZlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidGlsZVBhZGRpbmciLCJwYXJzZUludCIsImdldFByb3BlcnR5VmFsdWUiLCJwcmV2UHJvcHMiLCJleHBhbmRlZCIsInNldE1heEhlaWdodCIsInRpbGVDb250ZW50Iiwib25CZWZvcmVDbGljayIsInRhZ05hbWUiLCJfdGhpczIkcHJvcHMkaGFuZGxlQ2wiLCJfdGhpczIkcHJvcHMiLCJfdGhpczIkcHJvcHMkb25DbGljayIsIl90aGlzMiRwcm9wczIiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc2Nvbm5lY3QiLCJfY3g1IiwiX3RoaXMzIiwiX3RoaXMkcHJvcHM3Iiwib25LZXlVcCIsInRpbGVDb2xsYXBzZWRJY29uVGV4dCIsInRpbGVFeHBhbmRlZEljb25UZXh0IiwidGlsZUNvbGxhcHNlZExhYmVsIiwidGlsZUV4cGFuZGVkTGFiZWwiLCJpc0V4cGFuZGVkIiwidGlsZVN0eWxlIiwibWF4SGVpZ2h0IiwiY2hpbGRyZW5Bc0FycmF5IiwiZ2V0Q2hpbGRyZW4iLCJzdHlsZSIsImhhbmRsZUtleVVwIiwiX3JlZjIiLCJwcmV2RXhwYW5kZWQiLCJwcmV2VGlsZU1heEhlaWdodCIsInByZXZUaWxlUGFkZGluZyIsImN1cnJlbnRFeHBhbmRlZCIsImN1cnJlbnRUaWxlTWF4SGVpZ2h0IiwiY3VycmVudFRpbGVQYWRkaW5nIiwiZXhwYW5kZWRDaGFuZ2VkIiwidGlsZU1heEhlaWdodENoYW5nZWQiLCJ0aWxlUGFkZGluZ0NoYW5nZWQiLCJUaWxlQWJvdmVUaGVGb2xkQ29udGVudCIsIl9Db21wb25lbnQ0IiwiX3N1cGVyNCIsIlRpbGVCZWxvd1RoZUZvbGRDb250ZW50IiwiX0NvbXBvbmVudDUiLCJfc3VwZXI1Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
|
|
2604
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ClickableTile\": () => (/* binding */ ClickableTile),\n/* harmony export */ \"ExpandableTile\": () => (/* binding */ ExpandableTile),\n/* harmony export */ \"SelectableTile\": () => (/* binding */ SelectableTile),\n/* harmony export */ \"Tile\": () => (/* binding */ Tile),\n/* harmony export */ \"TileAboveTheFoldContent\": () => (/* binding */ TileAboveTheFoldContent),\n/* harmony export */ \"TileBelowTheFoldContent\": () => (/* binding */ TileBelowTheFoldContent)\n/* harmony export */ });\n/* harmony import */ var _virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../_virtual/_rollupPluginBabelHelpers.js */ \"../../../node_modules/@carbon/react/es/_virtual/_rollupPluginBabelHelpers.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"webpack/sharing/consume/default/react/react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"../../../node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! classnames */ \"../../../node_modules/classnames/index.js\");\n/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Link_Link_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Link/Link.js */ \"../../../node_modules/@carbon/react/es/components/Link/Link.js\");\n/* harmony import */ var _carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @carbon/icons-react */ \"../../../node_modules/@carbon/icons-react/es/generated/bucket-2.js\");\n/* harmony import */ var _prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../prop-types/deprecate.js */ \"../../../node_modules/@carbon/react/es/prop-types/deprecate.js\");\n/* harmony import */ var _tools_events_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../tools/events.js */ \"../../../node_modules/@carbon/react/es/tools/events.js\");\n/* harmony import */ var _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../internal/usePrefix.js */ \"../../../node_modules/@carbon/react/es/internal/usePrefix.js\");\n/* harmony import */ var _internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../internal/keyboard/match.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/match.js\");\n/* harmony import */ var _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../internal/keyboard/keys.js */ \"../../../node_modules/@carbon/react/es/internal/keyboard/keys.js\");\n/**\n * Copyright IBM Corp. 2016, 2022\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */ \n\n\n\n\n\n\n\n\n\n\nvar _CheckboxCheckedFille, _Checkbox, _ChevronDown;\nvar _excluded = [\n \"children\",\n \"className\",\n \"light\"\n], _excluded2 = [\n \"children\",\n \"href\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onKeyDown\",\n \"clicked\",\n \"light\"\n], _excluded3 = [\n \"children\",\n \"id\",\n \"tabIndex\",\n \"value\",\n \"name\",\n \"title\",\n \"iconDescription\",\n \"className\",\n \"handleClick\",\n \"handleKeyDown\",\n \"onClick\",\n \"onChange\",\n \"onKeyDown\",\n \"light\",\n \"disabled\",\n \"selected\"\n], _excluded4 = [\n \"tabIndex\",\n \"className\",\n \"expanded\",\n \"tileMaxHeight\",\n \"tilePadding\",\n \"handleClick\",\n \"onKeyUp\",\n \"tileCollapsedIconText\",\n \"tileExpandedIconText\",\n \"tileCollapsedLabel\",\n \"tileExpandedLabel\",\n \"onBeforeClick\",\n \"light\"\n];\nvar Tile = /*#__PURE__*/ function(_Component) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(Tile, _Component);\n var _super = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(Tile);\n function Tile() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, Tile);\n return _super.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(Tile, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var _this$props = this.props, children = _this$props.children, className = _this$props.className, light = _this$props.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props, _excluded);\n var tileClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile--light\"), light), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n className: tileClasses\n }, rest), children);\n }\n }\n ]);\n return Tile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(Tile, \"defaultProps\", {\n light: false\n});\nvar ClickableTile = /*#__PURE__*/ function(_Component2) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ClickableTile, _Component2);\n var _super2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ClickableTile);\n function ClickableTile() {\n var _this;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ClickableTile);\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n _this = _super2.call.apply(_super2, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleClick\", function(evt) {\n evt.persist();\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleCli, _this$props2, _this$props$onClick, _this$props3;\n // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this$props$handleCli = (_this$props2 = _this.props).handleClick) === null || _this$props$handleCli === void 0 ? void 0 : _this$props$handleCli.call(_this$props2, evt)) || ((_this$props$onClick = (_this$props3 = _this.props).onClick) === null || _this$props$onClick === void 0 ? void 0 : _this$props$onClick.call(_this$props3, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this), \"handleKeyDown\", function(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n _this.setState({\n clicked: !_this.state.clicked\n }, function() {\n var _this$props$handleKey, _this$props4;\n // TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n ((_this$props$handleKey = (_this$props4 = _this.props).handleKeyDown) === null || _this$props$handleKey === void 0 ? void 0 : _this$props$handleKey.call(_this$props4, evt)) || _this.props.onKeyDown(evt);\n });\n } else {\n var _this$props$handleKey2, _this$props5;\n (// TODO: Remove handleKeyDown prop when handleKeyDown is deprecated\n (_this$props$handleKey2 = (_this$props5 = _this.props).handleKeyDown) === null || _this$props$handleKey2 === void 0 ? void 0 : _this$props$handleKey2.call(_this$props5, evt)) || _this.props.onKeyDown(evt);\n }\n });\n return _this;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ClickableTile, [\n {\n key: \"render\",\n value: function render() {\n var _cx2;\n var prefix = this.context;\n var _this$props6 = this.props, children = _this$props6.children, href = _this$props6.href, className = _this$props6.className;\n _this$props6.handleClick;\n _this$props6.handleKeyDown;\n _this$props6.onClick;\n _this$props6.onKeyDown;\n _this$props6.clicked;\n var light = _this$props6.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props6, _excluded2);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--clickable\"), (_cx2 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--is-clicked\"), this.state.clicked), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx2, \"\".concat(prefix, \"--tile--light\"), light), _cx2), className);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_Link_Link_js__WEBPACK_IMPORTED_MODULE_7__[\"default\"], (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n href: href,\n className: classes\n }, rest, {\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown\n }), children);\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref, state) {\n var clicked = _ref.clicked;\n var prevClicked = state.prevClicked;\n return prevClicked === clicked ? null : {\n clicked: clicked,\n prevClicked: clicked\n };\n }\n }\n ]);\n return ClickableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ClickableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleKeyDown prop for ClickableTile has been deprecated in favor of onKeyDown. It will be removed in the next major release.\"),\n /**\n * The href for the link.\n */ href: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the ClickableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ClickableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The rel property for the link.\n */ rel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ClickableTile, \"defaultProps\", {\n clicked: false,\n onClick: function onClick() {},\n onKeyDown: function onKeyDown() {},\n light: false\n});\nfunction SelectableTile(props) {\n var handleOnClick = function handleOnClick(evt) {\n evt.preventDefault();\n evt.persist();\n setIsSelected(!isSelected);\n clickHandler(evt);\n onChange(evt);\n } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated\n ;\n var handleOnKeyDown = function handleOnKeyDown(evt) {\n evt.persist();\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n setIsSelected(!isSelected);\n onChange(evt);\n }\n keyDownHandler(evt);\n };\n var handleChange = function handleChange(event) {\n setIsSelected(event.target.checked);\n onChange(event);\n };\n var _cx3;\n var children = props.children, id = props.id, tabIndex = props.tabIndex, value = props.value, name = props.name, title = props.title;\n props.iconDescription;\n var className = props.className, handleClick = props.handleClick, handleKeyDown = props.handleKeyDown, onClick = props.onClick, onChange = props.onChange, onKeyDown = props.onKeyDown, light = props.light, disabled = props.disabled, selected = props.selected, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(props, _excluded3);\n var prefix = (0,_internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.usePrefix)(); // TODO: replace with onClick when handleClick prop is deprecated\n var clickHandler = handleClick || onClick; // TODO: replace with onKeyDown when handleKeyDown prop is deprecated\n var keyDownHandler = handleKeyDown || onKeyDown;\n var _useState = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(selected), _useState2 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(_useState, 2), isSelected = _useState2[0], setIsSelected = _useState2[1];\n var input = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--selectable\"), (_cx3 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--is-selected\"), isSelected), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--light\"), light), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx3, \"\".concat(prefix, \"--tile--disabled\"), disabled), _cx3), className);\n var inputClasses = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile-input\"), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)({}, \"\".concat(prefix, \"--tile-input--checked\"), isSelected)); // TODO: rename to handleClick when handleClick prop is deprecated\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function() {\n setIsSelected(selected);\n }, [\n selected\n ]);\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"input\", {\n ref: input,\n tabIndex: -1,\n id: id,\n className: inputClasses,\n value: value,\n onChange: !disabled ? handleChange : null,\n type: \"checkbox\",\n disabled: disabled,\n name: name,\n title: title,\n checked: isSelected\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"label\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n htmlFor: id,\n className: classes // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex\n ,\n tabIndex: !disabled ? tabIndex : null\n }, rest, {\n onClick: !disabled ? handleOnClick : null,\n onKeyDown: !disabled ? handleOnKeyDown : null\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile__checkmark \").concat(prefix, \"--tile__checkmark--persistent\")\n }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.Checkbox, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, children)));\n}\nSelectableTile.defaultProps = {\n value: \"value\",\n title: \"title\",\n selected: false,\n tabIndex: 0,\n light: false,\n onClick: function onClick() {},\n onChange: function onChange() {},\n onKeyDown: function onKeyDown() {}\n};\nSelectableTile.propTypes = {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * Specify whether the SelectableTile should be disabled\n */ disabled: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleClick` prop for `SelectableTile` has been deprecated in favor of `onClick`. It will be removed in the next major release.\"),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ handleKeyDown: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The `handleKeyDown` prop for `SelectableTile` has been deprecated in favor of `onKeyDown`. It will be removed in the next major release.\"),\n /**\n * The description of the checkmark icon.\n */ iconDescription: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().string), \"The `iconDescription` prop for `SelectableTile` is no longer needed and has \" + \"been deprecated. It will be removed in the next major release.\"),\n /**\n * The ID of the `<input>`.\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * The `name` of the `<input>`.\n */ name: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The empty handler of the `<input>`.\n */ onChange: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the SelectableTile is interacted with via a keyboard\n */ onKeyDown: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * `true` to select this tile.\n */ selected: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Specify the tab index of the wrapper element\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The `title` of the `<input>`.\n */ title: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The value of the `<input>`.\n */ value: prop_types__WEBPACK_IMPORTED_MODULE_3___default().oneOfType([\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number)\n ]).isRequired\n};\nvar ExpandableTile = /*#__PURE__*/ function(_Component3) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(ExpandableTile, _Component3);\n var _super3 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(ExpandableTile);\n function ExpandableTile() {\n var _this2;\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, ExpandableTile);\n for(var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++){\n args[_key2] = arguments[_key2];\n }\n _this2 = _super3.call.apply(_super3, [\n this\n ].concat(args));\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"state\", {});\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"resizeObserver\", null);\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidMount\", function() {\n _this2.resizeObserver = new ResizeObserver(function(entries) {\n var _entries = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.slicedToArray)(entries, 1), aboveTheFold = _entries[0];\n _this2.setState({\n tileMaxHeight: aboveTheFold.contentRect.height\n });\n });\n if (_this2.tile) {\n var getStyle = window.getComputedStyle(_this2.tile, null);\n if (_this2.aboveTheFold) {\n _this2.resizeObserver.observe(_this2.aboveTheFold);\n _this2.setState({\n tileMaxHeight: _this2.aboveTheFold.getBoundingClientRect().height,\n tilePadding: parseInt(getStyle.getPropertyValue(\"padding-top\"), 10) + parseInt(getStyle.getPropertyValue(\"padding-bottom\"), 10)\n });\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"componentDidUpdate\", function(prevProps) {\n if (prevProps.expanded !== _this2.props.expanded) {\n _this2.setMaxHeight();\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"setMaxHeight\", function() {\n if (_this2.state.expanded ? _this2.tileContent : _this2.aboveTheFold) {\n _this2.setState({\n tileMaxHeight: _this2.state.expanded ? _this2.tileContent.getBoundingClientRect().height : _this2.aboveTheFold.getBoundingClientRect().height\n });\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleClick\", function(evt) {\n if (!_this2.props.onBeforeClick(evt) || evt.target.tagName === \"INPUT\") {\n return;\n }\n evt.persist();\n _this2.setState({\n expanded: !_this2.state.expanded\n }, function() {\n var _this2$props$handleCl, _this2$props, _this2$props$onClick, _this2$props2;\n _this2.setMaxHeight(); // TODO: Remove handleClick prop when handleClick is deprecated\n ((_this2$props$handleCl = (_this2$props = _this2.props).handleClick) === null || _this2$props$handleCl === void 0 ? void 0 : _this2$props$handleCl.call(_this2$props, evt)) || ((_this2$props$onClick = (_this2$props2 = _this2.props).onClick) === null || _this2$props$onClick === void 0 ? void 0 : _this2$props$onClick.call(_this2$props2, evt));\n });\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"handleKeyUp\", function(evt) {\n if (evt.target !== _this2.tile) {\n if ((0,_internal_keyboard_match_js__WEBPACK_IMPORTED_MODULE_5__.matches)(evt, [\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Enter,\n _internal_keyboard_keys_js__WEBPACK_IMPORTED_MODULE_6__.Space\n ])) {\n evt.preventDefault();\n }\n }\n });\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)((0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.assertThisInitialized)(_this2), \"getChildren\", function() {\n return react__WEBPACK_IMPORTED_MODULE_0___default().Children.toArray(_this2.props.children);\n });\n return _this2;\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(ExpandableTile, [\n {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n }\n },\n {\n key: \"render\",\n value: function render() {\n var _cx5, _this3 = this;\n var _this$props7 = this.props, tabIndex = _this$props7.tabIndex, className = _this$props7.className;\n _this$props7.expanded;\n _this$props7.tileMaxHeight;\n _this$props7.tilePadding;\n _this$props7.handleClick;\n var onKeyUp = _this$props7.onKeyUp, tileCollapsedIconText = _this$props7.tileCollapsedIconText, tileExpandedIconText = _this$props7.tileExpandedIconText, tileCollapsedLabel = _this$props7.tileCollapsedLabel, tileExpandedLabel = _this$props7.tileExpandedLabel;\n _this$props7.onBeforeClick;\n var light = _this$props7.light, rest = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.objectWithoutProperties)(_this$props7, _excluded4);\n var prefix = this.context;\n var isExpanded = this.state.expanded;\n var classes = classnames__WEBPACK_IMPORTED_MODULE_1___default()(\"\".concat(prefix, \"--tile\"), \"\".concat(prefix, \"--tile--expandable\"), (_cx5 = {}, (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--is-expanded\"), isExpanded), (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(_cx5, \"\".concat(prefix, \"--tile--light\"), light), _cx5), className);\n var tileStyle = {\n maxHeight: isExpanded ? null : this.state.tileMaxHeight + this.state.tilePadding\n };\n var childrenAsArray = this.getChildren();\n return(/*#__PURE__*/ // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"button\", (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__[\"extends\"])({\n type: \"button\",\n ref: function ref(tile) {\n _this3.tile = tile;\n },\n style: tileStyle,\n className: classes,\n \"aria-expanded\": isExpanded,\n title: isExpanded ? tileExpandedIconText : tileCollapsedIconText\n }, rest, {\n onKeyUp: (0,_tools_events_js__WEBPACK_IMPORTED_MODULE_10__.composeEventHandlers)([\n onKeyUp,\n this.handleKeyUp\n ]),\n onClick: this.handleClick,\n tabIndex: tabIndex\n }), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(tileContent) {\n _this3.tileContent = tileContent;\n }\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n ref: function ref(aboveTheFold) {\n _this3.aboveTheFold = aboveTheFold;\n },\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[0]), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile__chevron\")\n }, /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown || (_ChevronDown = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_carbon_icons_react__WEBPACK_IMPORTED_MODULE_9__.ChevronDown, null))), /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"div\", {\n className: \"\".concat(prefix, \"--tile-content\")\n }, childrenAsArray[1]))));\n }\n }\n ], [\n {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref2, state) {\n var expanded = _ref2.expanded, tileMaxHeight = _ref2.tileMaxHeight, tilePadding = _ref2.tilePadding;\n var prevExpanded = state.prevExpanded, prevTileMaxHeight = state.prevTileMaxHeight, prevTilePadding = state.prevTilePadding, currentExpanded = state.expanded, currentTileMaxHeight = state.tileMaxHeight, currentTilePadding = state.tilePadding;\n var expandedChanged = prevExpanded !== expanded;\n var tileMaxHeightChanged = prevTileMaxHeight !== tileMaxHeight;\n var tilePaddingChanged = prevTilePadding !== tilePadding;\n return !expandedChanged && !tileMaxHeightChanged && !tilePaddingChanged ? null : {\n expanded: !expandedChanged ? currentExpanded : expanded,\n tileMaxHeight: !tileMaxHeightChanged ? currentTileMaxHeight : tileMaxHeight,\n tilePadding: !tilePaddingChanged ? currentTilePadding : tilePadding,\n prevExpanded: expanded,\n prevTileMaxHeight: tileMaxHeight,\n prevTilePadding: tilePadding\n };\n }\n }\n ]);\n return ExpandableTile;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node),\n /**\n * The CSS class names.\n */ className: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` if the tile is expanded.\n */ expanded: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * Deprecated in v11. Use 'onClick' instead.\n */ handleClick: (0,_prop_types_deprecate_js__WEBPACK_IMPORTED_MODULE_8__[\"default\"])((prop_types__WEBPACK_IMPORTED_MODULE_3___default().func), \"The handleClick prop for ExpandableTile has been deprecated in favor of onClick. It will be removed in the next major release.\"),\n /**\n * An ID that can be provided to aria-labelledby\n */ id: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * `true` to use the light version. For use on $ui-01 backgrounds only.\n * Don't use this to make tile background color same as container background color.\n */ light: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().bool),\n /**\n * optional handler to decide whether to ignore a click. returns false if click should be ignored\n */ onBeforeClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * Specify the function to run when the ExpandableTile is clicked\n */ onClick: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * optional handler to trigger a function when a key is pressed\n */ onKeyUp: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().func),\n /**\n * The `tabindex` attribute.\n */ tabIndex: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().number),\n /**\n * The description of the \"collapsed\" icon that can be read by screen readers.\n */ tileCollapsedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"collapsed\", a label to appear next to the chevron (e.g., \"View more\").\n */ tileCollapsedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * The description of the \"expanded\" icon that can be read by screen readers.\n */ tileExpandedIconText: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string),\n /**\n * When \"expanded\", a label to appear next to the chevron (e.g., \"View less\").\n */ tileExpandedLabel: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().string)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(ExpandableTile, \"defaultProps\", {\n tabIndex: 0,\n expanded: false,\n tileMaxHeight: 0,\n tilePadding: 0,\n onBeforeClick: function onBeforeClick() {\n return true;\n },\n onClick: function onClick() {},\n tileCollapsedIconText: \"Interact to expand Tile\",\n tileExpandedIconText: \"Interact to collapse Tile\",\n light: false\n});\nvar TileAboveTheFoldContent = /*#__PURE__*/ function(_Component4) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileAboveTheFoldContent, _Component4);\n var _super4 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileAboveTheFoldContent);\n function TileAboveTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileAboveTheFoldContent);\n return _super4.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileAboveTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var prefix = this.context;\n var children = this.props.children;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__above-the-fold\")\n }, children);\n }\n }\n ]);\n return TileAboveTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileAboveTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\nvar TileBelowTheFoldContent = /*#__PURE__*/ function(_Component5) {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.inherits)(TileBelowTheFoldContent, _Component5);\n var _super5 = (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createSuper)(TileBelowTheFoldContent);\n function TileBelowTheFoldContent() {\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.classCallCheck)(this, TileBelowTheFoldContent);\n return _super5.apply(this, arguments);\n }\n (0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.createClass)(TileBelowTheFoldContent, [\n {\n key: \"render\",\n value: function render() {\n var children = this.props.children;\n var prefix = this.context;\n return /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_0___default().createElement(\"span\", {\n className: \"\".concat(prefix, \"--tile-content__below-the-fold\")\n }, children);\n }\n }\n ]);\n return TileBelowTheFoldContent;\n}(react__WEBPACK_IMPORTED_MODULE_0__.Component);\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"propTypes\", {\n /**\n * The child nodes.\n */ children: (prop_types__WEBPACK_IMPORTED_MODULE_3___default().node)\n});\n(0,_virtual_rollupPluginBabelHelpers_js__WEBPACK_IMPORTED_MODULE_2__.defineProperty)(TileBelowTheFoldContent, \"contextType\", _internal_usePrefix_js__WEBPACK_IMPORTED_MODULE_4__.PrefixContext);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BjYXJib24vcmVhY3QvZXMvY29tcG9uZW50cy9UaWxlL1RpbGUuanMuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7Ozs7Q0FLQyxHQUUrVztBQUNqUztBQUM1QztBQUNQO0FBQ087QUFDZ0Q7QUFDN0I7QUFDTztBQUNVO0FBQ1o7QUFDSTtBQUUvRCxJQUFJb0MsdUJBQXVCQyxXQUFXQztBQUV0QyxJQUFJQyxZQUFZO0lBQUM7SUFBWTtJQUFhO0NBQVEsRUFDOUNDLGFBQWE7SUFBQztJQUFZO0lBQVE7SUFBYTtJQUFlO0lBQWlCO0lBQVc7SUFBYTtJQUFXO0NBQVEsRUFDMUhDLGFBQWE7SUFBQztJQUFZO0lBQU07SUFBWTtJQUFTO0lBQVE7SUFBUztJQUFtQjtJQUFhO0lBQWU7SUFBaUI7SUFBVztJQUFZO0lBQWE7SUFBUztJQUFZO0NBQVcsRUFDMU1DLGFBQWE7SUFBQztJQUFZO0lBQWE7SUFBWTtJQUFpQjtJQUFlO0lBQWU7SUFBVztJQUF5QjtJQUF3QjtJQUFzQjtJQUFxQjtJQUFpQjtDQUFRO0FBQ3RPLElBQUlDLE9BQU8sV0FBVyxHQUFFLFNBQVVDLFVBQVUsRUFBRTtJQUM1QzNDLDhFQUFTQSxDQUFDMEMsTUFBTUM7SUFFaEIsSUFBSUMsU0FBUzFDLGlGQUFZQSxDQUFDd0M7SUFFMUIsU0FBU0EsT0FBTztRQUNkdEMsb0ZBQWVBLENBQUMsSUFBSSxFQUFFc0M7UUFFdEIsT0FBT0UsT0FBT0MsS0FBSyxDQUFDLElBQUksRUFBRUM7SUFDNUI7SUFFQXhDLGlGQUFZQSxDQUFDb0MsTUFBTTtRQUFDO1lBQ2xCSyxLQUFLO1lBQ0xDLE9BQU8sU0FBU0MsU0FBUztnQkFDdkIsSUFBSUMsU0FBUyxJQUFJLENBQUNDLE9BQU87Z0JBRXpCLElBQUlDLGNBQWMsSUFBSSxDQUFDQyxLQUFLLEVBQ3hCQyxXQUFXRixZQUFZRSxRQUFRLEVBQy9CQyxZQUFZSCxZQUFZRyxTQUFTLEVBQ2pDQyxRQUFR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QzZMLHlCQUF5QixlQUFlekssaUVBQWFBO0FBRTRDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQGNhcmJvbi9yZWFjdC9lcy9jb21wb25lbnRzL1RpbGUvVGlsZS5qcz8wY2E2Il0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IElCTSBDb3JwLiAyMDE2LCAyMDIyXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlLTIuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5cbmltcG9ydCB7IGluaGVyaXRzIGFzIF9pbmhlcml0cywgY3JlYXRlU3VwZXIgYXMgX2NyZWF0ZVN1cGVyLCBjbGFzc0NhbGxDaGVjayBhcyBfY2xhc3NDYWxsQ2hlY2ssIGNyZWF0ZUNsYXNzIGFzIF9jcmVhdGVDbGFzcywgb2JqZWN0V2l0aG91dFByb3BlcnRpZXMgYXMgX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLCBkZWZpbmVQcm9wZXJ0eSBhcyBfZGVmaW5lUHJvcGVydHksIGV4dGVuZHMgYXMgX2V4dGVuZHMsIGFzc2VydFRoaXNJbml0aWFsaXplZCBhcyBfYXNzZXJ0VGhpc0luaXRpYWxpemVkLCBzbGljZWRUb0FycmF5IGFzIF9zbGljZWRUb0FycmF5IH0gZnJvbSAnLi4vLi4vX3ZpcnR1YWwvX3JvbGx1cFBsdWdpbkJhYmVsSGVscGVycy5qcyc7XG5pbXBvcnQgUmVhY3RfX2RlZmF1bHQsIHsgQ29tcG9uZW50LCB1c2VTdGF0ZSwgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGN4IGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IExpbmsgZnJvbSAnLi4vTGluay9MaW5rLmpzJztcbmltcG9ydCB7IENoZWNrYm94Q2hlY2tlZEZpbGxlZCwgQ2hlY2tib3gsIENoZXZyb25Eb3duIH0gZnJvbSAnQGNhcmJvbi9pY29ucy1yZWFjdCc7XG5pbXBvcnQgZGVwcmVjYXRlIGZyb20gJy4uLy4uL3Byb3AtdHlwZXMvZGVwcmVjYXRlLmpzJztcbmltcG9ydCB7IGNvbXBvc2VFdmVudEhhbmRsZXJzIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXZlbnRzLmpzJztcbmltcG9ydCB7IFByZWZpeENvbnRleHQsIHVzZVByZWZpeCB9IGZyb20gJy4uLy4uL2ludGVybmFsL3VzZVByZWZpeC5qcyc7XG5pbXBvcnQgeyBtYXRjaGVzIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQvbWF0Y2guanMnO1xuaW1wb3J0IHsgRW50ZXIsIFNwYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwva2V5Ym9hcmQva2V5cy5qcyc7XG5cbnZhciBfQ2hlY2tib3hDaGVja2VkRmlsbGUsIF9DaGVja2JveCwgX0NoZXZyb25Eb3duO1xuXG52YXIgX2V4Y2x1ZGVkID0gW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQyID0gW1wiY2hpbGRyZW5cIiwgXCJocmVmXCIsIFwiY2xhc3NOYW1lXCIsIFwiaGFuZGxlQ2xpY2tcIiwgXCJoYW5kbGVLZXlEb3duXCIsIFwib25DbGlja1wiLCBcIm9uS2V5RG93blwiLCBcImNsaWNrZWRcIiwgXCJsaWdodFwiXSxcbiAgICBfZXhjbHVkZWQzID0gW1wiY2hpbGRyZW5cIiwgXCJpZFwiLCBcInRhYkluZGV4XCIsIFwidmFsdWVcIiwgXCJuYW1lXCIsIFwidGl0bGVcIiwgXCJpY29uRGVzY3JpcHRpb25cIiwgXCJjbGFzc05hbWVcIiwgXCJoYW5kbGVDbGlja1wiLCBcImhhbmRsZUtleURvd25cIiwgXCJvbkNsaWNrXCIsIFwib25DaGFuZ2VcIiwgXCJvbktleURvd25cIiwgXCJsaWdodFwiLCBcImRpc2FibGVkXCIsIFwic2VsZWN0ZWRcIl0sXG4gICAgX2V4Y2x1ZGVkNCA9IFtcInRhYkluZGV4XCIsIFwiY2xhc3NOYW1lXCIsIFwiZXhwYW5kZWRcIiwgXCJ0aWxlTWF4SGVpZ2h0XCIsIFwidGlsZVBhZGRpbmdcIiwgXCJoYW5kbGVDbGlja1wiLCBcIm9uS2V5VXBcIiwgXCJ0aWxlQ29sbGFwc2VkSWNvblRleHRcIiwgXCJ0aWxlRXhwYW5kZWRJY29uVGV4dFwiLCBcInRpbGVDb2xsYXBzZWRMYWJlbFwiLCBcInRpbGVFeHBhbmRlZExhYmVsXCIsIFwib25CZWZvcmVDbGlja1wiLCBcImxpZ2h0XCJdO1xudmFyIFRpbGUgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQpIHtcbiAgX2luaGVyaXRzKFRpbGUsIF9Db21wb25lbnQpO1xuXG4gIHZhciBfc3VwZXIgPSBfY3JlYXRlU3VwZXIoVGlsZSk7XG5cbiAgZnVuY3Rpb24gVGlsZSgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZSk7XG5cbiAgICByZXR1cm4gX3N1cGVyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG4gIH1cblxuICBfY3JlYXRlQ2xhc3MoVGlsZSwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wcyA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wcy5jaGlsZHJlbixcbiAgICAgICAgICBjbGFzc05hbWUgPSBfdGhpcyRwcm9wcy5jbGFzc05hbWUsXG4gICAgICAgICAgbGlnaHQgPSBfdGhpcyRwcm9wcy5saWdodCxcbiAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzJHByb3BzLCBfZXhjbHVkZWQpO1xuXG4gICAgICB2YXIgdGlsZUNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBfZGVmaW5lUHJvcGVydHkoe30sIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwgX2V4dGVuZHMoe1xuICAgICAgICBjbGFzc05hbWU6IHRpbGVDbGFzc2VzXG4gICAgICB9LCByZXN0KSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlO1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgdG8gdXNlIHRoZSBsaWdodCB2ZXJzaW9uLiBGb3IgdXNlIG9uICR1aS0wMSBiYWNrZ3JvdW5kcyBvbmx5LlxuICAgKiBEb24ndCB1c2UgdGhpcyB0byBtYWtlIHRpbGUgYmFja2dyb3VuZCBjb2xvciBzYW1lIGFzIGNvbnRhaW5lciBiYWNrZ3JvdW5kIGNvbG9yLlxuICAgKi9cbiAgbGlnaHQ6IFByb3BUeXBlcy5ib29sXG59KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGUsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlLCBcImRlZmF1bHRQcm9wc1wiLCB7XG4gIGxpZ2h0OiBmYWxzZVxufSk7XG5cbnZhciBDbGlja2FibGVUaWxlID0gLyojX19QVVJFX18qL2Z1bmN0aW9uIChfQ29tcG9uZW50Mikge1xuICBfaW5oZXJpdHMoQ2xpY2thYmxlVGlsZSwgX0NvbXBvbmVudDIpO1xuXG4gIHZhciBfc3VwZXIyID0gX2NyZWF0ZVN1cGVyKENsaWNrYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIENsaWNrYWJsZVRpbGUoKSB7XG4gICAgdmFyIF90aGlzO1xuXG4gICAgX2NsYXNzQ2FsbENoZWNrKHRoaXMsIENsaWNrYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbiksIF9rZXkgPSAwOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIF90aGlzID0gX3N1cGVyMi5jYWxsLmFwcGx5KF9zdXBlcjIsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMpLCBcInN0YXRlXCIsIHt9KTtcblxuICAgIF9kZWZpbmVQcm9wZXJ0eShfYXNzZXJ0VGhpc0luaXRpYWxpemVkKF90aGlzKSwgXCJoYW5kbGVDbGlja1wiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNsaWNrZWQ6ICFfdGhpcy5zdGF0ZS5jbGlja2VkXG4gICAgICB9LCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVDbGksIF90aGlzJHByb3BzMiwgX3RoaXMkcHJvcHMkb25DbGljaywgX3RoaXMkcHJvcHMzO1xuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVDbGljayBwcm9wIHdoZW4gaGFuZGxlQ2xpY2sgaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUNsaSA9IChfdGhpcyRwcm9wczIgPSBfdGhpcy5wcm9wcykuaGFuZGxlQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUNsaSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkcHJvcHMkaGFuZGxlQ2xpLmNhbGwoX3RoaXMkcHJvcHMyLCBldnQpKSB8fCAoKF90aGlzJHByb3BzJG9uQ2xpY2sgPSAoX3RoaXMkcHJvcHMzID0gX3RoaXMucHJvcHMpLm9uQ2xpY2spID09PSBudWxsIHx8IF90aGlzJHByb3BzJG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpcyRwcm9wczMsIGV2dCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpcyksIFwiaGFuZGxlS2V5RG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBpZiAobWF0Y2hlcyhldnQsIFtFbnRlciwgU3BhY2VdKSkge1xuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgICAgY2xpY2tlZDogIV90aGlzLnN0YXRlLmNsaWNrZWRcbiAgICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXksIF90aGlzJHByb3BzNDtcblxuICAgICAgICAgIC8vIFRPRE86IFJlbW92ZSBoYW5kbGVLZXlEb3duIHByb3Agd2hlbiBoYW5kbGVLZXlEb3duIGlzIGRlcHJlY2F0ZWRcbiAgICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleSA9IChfdGhpcyRwcm9wczQgPSBfdGhpcy5wcm9wcykuaGFuZGxlS2V5RG93bikgPT09IG51bGwgfHwgX3RoaXMkcHJvcHMkaGFuZGxlS2V5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyRwcm9wcyRoYW5kbGVLZXkuY2FsbChfdGhpcyRwcm9wczQsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhciBfdGhpcyRwcm9wcyRoYW5kbGVLZXkyLCBfdGhpcyRwcm9wczU7XG5cbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUtleURvd24gcHJvcCB3aGVuIGhhbmRsZUtleURvd24gaXMgZGVwcmVjYXRlZFxuICAgICAgICAoKF90aGlzJHByb3BzJGhhbmRsZUtleTIgPSAoX3RoaXMkcHJvcHM1ID0gX3RoaXMucHJvcHMpLmhhbmRsZUtleURvd24pID09PSBudWxsIHx8IF90aGlzJHByb3BzJGhhbmRsZUtleTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJHByb3BzJGhhbmRsZUtleTIuY2FsbChfdGhpcyRwcm9wczUsIGV2dCkpIHx8IF90aGlzLnByb3BzLm9uS2V5RG93bihldnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKENsaWNrYWJsZVRpbGUsIFt7XG4gICAga2V5OiBcInJlbmRlclwiLFxuICAgIHZhbHVlOiBmdW5jdGlvbiByZW5kZXIoKSB7XG4gICAgICB2YXIgX2N4MjtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcblxuICAgICAgdmFyIF90aGlzJHByb3BzNiA9IHRoaXMucHJvcHMsXG4gICAgICAgICAgY2hpbGRyZW4gPSBfdGhpcyRwcm9wczYuY2hpbGRyZW4sXG4gICAgICAgICAgaHJlZiA9IF90aGlzJHByb3BzNi5ocmVmLFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNi5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmhhbmRsZUNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5oYW5kbGVLZXlEb3duO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbkNsaWNrO1xuICAgICAgICAgIF90aGlzJHByb3BzNi5vbktleURvd247XG4gICAgICAgICAgX3RoaXMkcHJvcHM2LmNsaWNrZWQ7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM2LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM2LCBfZXhjbHVkZWQyKTtcblxuICAgICAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1jbGlja2FibGVcIiksIChfY3gyID0ge30sIF9kZWZpbmVQcm9wZXJ0eShfY3gyLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1pcy1jbGlja2VkXCIpLCB0aGlzLnN0YXRlLmNsaWNrZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MiwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2N4MiksIGNsYXNzTmFtZSk7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoTGluaywgX2V4dGVuZHMoe1xuICAgICAgICBocmVmOiBocmVmLFxuICAgICAgICBjbGFzc05hbWU6IGNsYXNzZXNcbiAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgb25DbGljazogdGhpcy5oYW5kbGVDbGljayxcbiAgICAgICAgb25LZXlEb3duOiB0aGlzLmhhbmRsZUtleURvd25cbiAgICAgIH0pLCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9wcm9wLXR5cGVzXG4gICAgZnVuY3Rpb24gZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKF9yZWYsIHN0YXRlKSB7XG4gICAgICB2YXIgY2xpY2tlZCA9IF9yZWYuY2xpY2tlZDtcbiAgICAgIHZhciBwcmV2Q2xpY2tlZCA9IHN0YXRlLnByZXZDbGlja2VkO1xuICAgICAgcmV0dXJuIHByZXZDbGlja2VkID09PSBjbGlja2VkID8gbnVsbCA6IHtcbiAgICAgICAgY2xpY2tlZDogY2xpY2tlZCxcbiAgICAgICAgcHJldkNsaWNrZWQ6IGNsaWNrZWRcbiAgICAgIH07XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIENsaWNrYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShDbGlja2FibGVUaWxlLCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG5cbiAgLyoqXG4gICAqIFRoZSBDU1MgY2xhc3MgbmFtZXMuXG4gICAqL1xuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIENsaWNrYWJsZVRpbGUgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBvbkNsaWNrLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgaW50ZXJhY3RlZCB3aXRoIHZpYSBhIGtleWJvYXJkXG4gICAqL1xuICBoYW5kbGVLZXlEb3duOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgaGFuZGxlS2V5RG93biBwcm9wIGZvciBDbGlja2FibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25LZXlEb3duLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogVGhlIGhyZWYgZm9yIHRoZSBsaW5rLlxuICAgKi9cbiAgaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHVzZSB0aGUgbGlnaHQgdmVyc2lvbi4gRm9yIHVzZSBvbiAkdWktMDEgYmFja2dyb3VuZHMgb25seS5cbiAgICogRG9uJ3QgdXNlIHRoaXMgdG8gbWFrZSB0aWxlIGJhY2tncm91bmQgY29sb3Igc2FtZSBhcyBjb250YWluZXIgYmFja2dyb3VuZCBjb2xvci5cbiAgICovXG4gIGxpZ2h0OiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIENsaWNrYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgKi9cbiAgb25DbGljazogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBDbGlja2FibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogVGhlIHJlbCBwcm9wZXJ0eSBmb3IgdGhlIGxpbmsuXG4gICAqL1xuICByZWw6IFByb3BUeXBlcy5zdHJpbmdcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoQ2xpY2thYmxlVGlsZSwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuX2RlZmluZVByb3BlcnR5KENsaWNrYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgY2xpY2tlZDogZmFsc2UsXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fSxcbiAgbGlnaHQ6IGZhbHNlXG59KTtcblxuZnVuY3Rpb24gU2VsZWN0YWJsZVRpbGUocHJvcHMpIHtcbiAgdmFyIF9jeDM7XG5cbiAgdmFyIGNoaWxkcmVuID0gcHJvcHMuY2hpbGRyZW4sXG4gICAgICBpZCA9IHByb3BzLmlkLFxuICAgICAgdGFiSW5kZXggPSBwcm9wcy50YWJJbmRleCxcbiAgICAgIHZhbHVlID0gcHJvcHMudmFsdWUsXG4gICAgICBuYW1lID0gcHJvcHMubmFtZSxcbiAgICAgIHRpdGxlID0gcHJvcHMudGl0bGU7XG4gICAgICBwcm9wcy5pY29uRGVzY3JpcHRpb247XG4gICAgICB2YXIgY2xhc3NOYW1lID0gcHJvcHMuY2xhc3NOYW1lLFxuICAgICAgaGFuZGxlQ2xpY2sgPSBwcm9wcy5oYW5kbGVDbGljayxcbiAgICAgIGhhbmRsZUtleURvd24gPSBwcm9wcy5oYW5kbGVLZXlEb3duLFxuICAgICAgb25DbGljayA9IHByb3BzLm9uQ2xpY2ssXG4gICAgICBvbkNoYW5nZSA9IHByb3BzLm9uQ2hhbmdlLFxuICAgICAgb25LZXlEb3duID0gcHJvcHMub25LZXlEb3duLFxuICAgICAgbGlnaHQgPSBwcm9wcy5saWdodCxcbiAgICAgIGRpc2FibGVkID0gcHJvcHMuZGlzYWJsZWQsXG4gICAgICBzZWxlY3RlZCA9IHByb3BzLnNlbGVjdGVkLFxuICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhwcm9wcywgX2V4Y2x1ZGVkMyk7XG5cbiAgdmFyIHByZWZpeCA9IHVzZVByZWZpeCgpOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25DbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIHZhciBjbGlja0hhbmRsZXIgPSBoYW5kbGVDbGljayB8fCBvbkNsaWNrOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggb25LZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuICB2YXIga2V5RG93bkhhbmRsZXIgPSBoYW5kbGVLZXlEb3duIHx8IG9uS2V5RG93bjtcblxuICB2YXIgX3VzZVN0YXRlID0gdXNlU3RhdGUoc2VsZWN0ZWQpLFxuICAgICAgX3VzZVN0YXRlMiA9IF9zbGljZWRUb0FycmF5KF91c2VTdGF0ZSwgMiksXG4gICAgICBpc1NlbGVjdGVkID0gX3VzZVN0YXRlMlswXSxcbiAgICAgIHNldElzU2VsZWN0ZWQgPSBfdXNlU3RhdGUyWzFdO1xuXG4gIHZhciBpbnB1dCA9IHVzZVJlZihudWxsKTtcbiAgdmFyIGNsYXNzZXMgPSBjeChcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlXCIpLCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLS1zZWxlY3RhYmxlXCIpLCAoX2N4MyA9IHt9LCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0taXMtc2VsZWN0ZWRcIiksIGlzU2VsZWN0ZWQpLCBfZGVmaW5lUHJvcGVydHkoX2N4MywgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tbGlnaHRcIiksIGxpZ2h0KSwgX2RlZmluZVByb3BlcnR5KF9jeDMsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWRpc2FibGVkXCIpLCBkaXNhYmxlZCksIF9jeDMpLCBjbGFzc05hbWUpO1xuICB2YXIgaW5wdXRDbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1pbnB1dFwiKSwgX2RlZmluZVByb3BlcnR5KHt9LCBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWlucHV0LS1jaGVja2VkXCIpLCBpc1NlbGVjdGVkKSk7IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVDbGljayB3aGVuIGhhbmRsZUNsaWNrIHByb3AgaXMgZGVwcmVjYXRlZFxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uQ2xpY2soZXZ0KSB7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZ0LnBlcnNpc3QoKTtcbiAgICBzZXRJc1NlbGVjdGVkKCFpc1NlbGVjdGVkKTtcbiAgICBjbGlja0hhbmRsZXIoZXZ0KTtcbiAgICBvbkNoYW5nZShldnQpO1xuICB9IC8vIFRPRE86IHJlbmFtZSB0byBoYW5kbGVLZXlEb3duIHdoZW4gaGFuZGxlS2V5RG93biBwcm9wIGlzIGRlcHJlY2F0ZWRcblxuXG4gIGZ1bmN0aW9uIGhhbmRsZU9uS2V5RG93bihldnQpIHtcbiAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgc2V0SXNTZWxlY3RlZCghaXNTZWxlY3RlZCk7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH1cblxuICAgIGtleURvd25IYW5kbGVyKGV2dCk7XG4gIH1cblxuICBmdW5jdGlvbiBoYW5kbGVDaGFuZ2UoZXZlbnQpIHtcbiAgICBzZXRJc1NlbGVjdGVkKGV2ZW50LnRhcmdldC5jaGVja2VkKTtcbiAgICBvbkNoYW5nZShldmVudCk7XG4gIH1cblxuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHNldElzU2VsZWN0ZWQoc2VsZWN0ZWQpO1xuICB9LCBbc2VsZWN0ZWRdKTtcbiAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFJlYWN0X19kZWZhdWx0LkZyYWdtZW50LCBudWxsLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImlucHV0XCIsIHtcbiAgICByZWY6IGlucHV0LFxuICAgIHRhYkluZGV4OiAtMSxcbiAgICBpZDogaWQsXG4gICAgY2xhc3NOYW1lOiBpbnB1dENsYXNzZXMsXG4gICAgdmFsdWU6IHZhbHVlLFxuICAgIG9uQ2hhbmdlOiAhZGlzYWJsZWQgPyBoYW5kbGVDaGFuZ2UgOiBudWxsLFxuICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQsXG4gICAgbmFtZTogbmFtZSxcbiAgICB0aXRsZTogdGl0bGUsXG4gICAgY2hlY2tlZDogaXNTZWxlY3RlZFxuICB9KSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJsYWJlbFwiLCBfZXh0ZW5kcyh7XG4gICAgaHRtbEZvcjogaWQsXG4gICAgY2xhc3NOYW1lOiBjbGFzc2VzIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc3gtYTExeS9uby1ub25pbnRlcmFjdGl2ZS10YWJpbmRleFxuICAgICxcbiAgICB0YWJJbmRleDogIWRpc2FibGVkID8gdGFiSW5kZXggOiBudWxsXG4gIH0sIHJlc3QsIHtcbiAgICBvbkNsaWNrOiAhZGlzYWJsZWQgPyBoYW5kbGVPbkNsaWNrIDogbnVsbCxcbiAgICBvbktleURvd246ICFkaXNhYmxlZCA/IGhhbmRsZU9uS2V5RG93biA6IG51bGxcbiAgfSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmsgXCIpLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlX19jaGVja21hcmstLXBlcnNpc3RlbnRcIilcbiAgfSwgaXNTZWxlY3RlZCA/IF9DaGVja2JveENoZWNrZWRGaWxsZSB8fCAoX0NoZWNrYm94Q2hlY2tlZEZpbGxlID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hlY2tib3hDaGVja2VkRmlsbGVkLCBudWxsKSkgOiBfQ2hlY2tib3ggfHwgKF9DaGVja2JveCA9IC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KENoZWNrYm94LCBudWxsKSkpLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcInNwYW5cIiwge1xuICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gIH0sIGNoaWxkcmVuKSkpO1xufVxuU2VsZWN0YWJsZVRpbGUuZGVmYXVsdFByb3BzID0ge1xuICB2YWx1ZTogJ3ZhbHVlJyxcbiAgdGl0bGU6ICd0aXRsZScsXG4gIHNlbGVjdGVkOiBmYWxzZSxcbiAgdGFiSW5kZXg6IDAsXG4gIGxpZ2h0OiBmYWxzZSxcbiAgb25DbGljazogZnVuY3Rpb24gb25DbGljaygpIHt9LFxuICBvbkNoYW5nZTogZnVuY3Rpb24gb25DaGFuZ2UoKSB7fSxcbiAgb25LZXlEb3duOiBmdW5jdGlvbiBvbktleURvd24oKSB7fVxufTtcblNlbGVjdGFibGVUaWxlLnByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcblxuICAvKipcbiAgICogVGhlIENTUyBjbGFzcyBuYW1lcy5cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWxlY3RhYmxlVGlsZSBzaG91bGQgYmUgZGlzYWJsZWRcbiAgICovXG4gIGRpc2FibGVkOiBQcm9wVHlwZXMuYm9vbCxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGNsaWNrZWRcbiAgICovXG4gIGhhbmRsZUNsaWNrOiBkZXByZWNhdGUoUHJvcFR5cGVzLmZ1bmMsICdUaGUgYGhhbmRsZUNsaWNrYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uQ2xpY2tgLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgcmVsZWFzZS4nKSxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgaGFuZGxlS2V5RG93bjogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGBoYW5kbGVLZXlEb3duYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYG9uS2V5RG93bmAuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLicpLFxuXG4gIC8qKlxuICAgKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGNoZWNrbWFyayBpY29uLlxuICAgKi9cbiAgaWNvbkRlc2NyaXB0aW9uOiBkZXByZWNhdGUoUHJvcFR5cGVzLnN0cmluZywgJ1RoZSBgaWNvbkRlc2NyaXB0aW9uYCBwcm9wIGZvciBgU2VsZWN0YWJsZVRpbGVgIGlzIG5vIGxvbmdlciBuZWVkZWQgYW5kIGhhcyAnICsgJ2JlZW4gZGVwcmVjYXRlZC4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIFRoZSBJRCBvZiB0aGUgYDxpbnB1dD5gLlxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFRoZSBgbmFtZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIG5hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBlbXB0eSBoYW5kbGVyIG9mIHRoZSBgPGlucHV0PmAuXG4gICAqL1xuICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGZ1bmN0aW9uIHRvIHJ1biB3aGVuIHRoZSBTZWxlY3RhYmxlVGlsZSBpcyBjbGlja2VkXG4gICAqL1xuICBvbkNsaWNrOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogU3BlY2lmeSB0aGUgZnVuY3Rpb24gdG8gcnVuIHdoZW4gdGhlIFNlbGVjdGFibGVUaWxlIGlzIGludGVyYWN0ZWQgd2l0aCB2aWEgYSBrZXlib2FyZFxuICAgKi9cbiAgb25LZXlEb3duOiBQcm9wVHlwZXMuZnVuYyxcblxuICAvKipcbiAgICogYHRydWVgIHRvIHNlbGVjdCB0aGlzIHRpbGUuXG4gICAqL1xuICBzZWxlY3RlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIHRhYiBpbmRleCBvZiB0aGUgd3JhcHBlciBlbGVtZW50XG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGB0aXRsZWAgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHRpdGxlOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIGA8aW5wdXQ+YC5cbiAgICovXG4gIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMubnVtYmVyXSkuaXNSZXF1aXJlZFxufTtcbnZhciBFeHBhbmRhYmxlVGlsZSA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDMpIHtcbiAgX2luaGVyaXRzKEV4cGFuZGFibGVUaWxlLCBfQ29tcG9uZW50Myk7XG5cbiAgdmFyIF9zdXBlcjMgPSBfY3JlYXRlU3VwZXIoRXhwYW5kYWJsZVRpbGUpO1xuXG4gIGZ1bmN0aW9uIEV4cGFuZGFibGVUaWxlKCkge1xuICAgIHZhciBfdGhpczI7XG5cbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgRXhwYW5kYWJsZVRpbGUpO1xuXG4gICAgZm9yICh2YXIgX2xlbjIgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4yKSwgX2tleTIgPSAwOyBfa2V5MiA8IF9sZW4yOyBfa2V5MisrKSB7XG4gICAgICBhcmdzW19rZXkyXSA9IGFyZ3VtZW50c1tfa2V5Ml07XG4gICAgfVxuXG4gICAgX3RoaXMyID0gX3N1cGVyMy5jYWxsLmFwcGx5KF9zdXBlcjMsIFt0aGlzXS5jb25jYXQoYXJncykpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzdGF0ZVwiLCB7fSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcInJlc2l6ZU9ic2VydmVyXCIsIG51bGwpO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJjb21wb25lbnREaWRNb3VudFwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfdGhpczIucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZnVuY3Rpb24gKGVudHJpZXMpIHtcbiAgICAgICAgdmFyIF9lbnRyaWVzID0gX3NsaWNlZFRvQXJyYXkoZW50cmllcywgMSksXG4gICAgICAgICAgICBhYm92ZVRoZUZvbGQgPSBfZW50cmllc1swXTtcblxuICAgICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IGFib3ZlVGhlRm9sZC5jb250ZW50UmVjdC5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKF90aGlzMi50aWxlKSB7XG4gICAgICAgIHZhciBnZXRTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKF90aGlzMi50aWxlLCBudWxsKTtcblxuICAgICAgICBpZiAoX3RoaXMyLmFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgIF90aGlzMi5yZXNpemVPYnNlcnZlci5vYnNlcnZlKF90aGlzMi5hYm92ZVRoZUZvbGQpO1xuXG4gICAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICAgIHRpbGVNYXhIZWlnaHQ6IF90aGlzMi5hYm92ZVRoZUZvbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LFxuICAgICAgICAgICAgdGlsZVBhZGRpbmc6IHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctdG9wJyksIDEwKSArIHBhcnNlSW50KGdldFN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctYm90dG9tJyksIDEwKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImNvbXBvbmVudERpZFVwZGF0ZVwiLCBmdW5jdGlvbiAocHJldlByb3BzKSB7XG4gICAgICBpZiAocHJldlByb3BzLmV4cGFuZGVkICE9PSBfdGhpczIucHJvcHMuZXhwYW5kZWQpIHtcbiAgICAgICAgX3RoaXMyLnNldE1heEhlaWdodCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJzZXRNYXhIZWlnaHRcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKF90aGlzMi5zdGF0ZS5leHBhbmRlZCA/IF90aGlzMi50aWxlQ29udGVudCA6IF90aGlzMi5hYm92ZVRoZUZvbGQpIHtcbiAgICAgICAgX3RoaXMyLnNldFN0YXRlKHtcbiAgICAgICAgICB0aWxlTWF4SGVpZ2h0OiBfdGhpczIuc3RhdGUuZXhwYW5kZWQgPyBfdGhpczIudGlsZUNvbnRlbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IDogX3RoaXMyLmFib3ZlVGhlRm9sZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHRcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBfZGVmaW5lUHJvcGVydHkoX2Fzc2VydFRoaXNJbml0aWFsaXplZChfdGhpczIpLCBcImhhbmRsZUNsaWNrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgIGlmICghX3RoaXMyLnByb3BzLm9uQmVmb3JlQ2xpY2soZXZ0KSB8fCBldnQudGFyZ2V0LnRhZ05hbWUgPT09ICdJTlBVVCcpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldnQucGVyc2lzdCgpO1xuXG4gICAgICBfdGhpczIuc2V0U3RhdGUoe1xuICAgICAgICBleHBhbmRlZDogIV90aGlzMi5zdGF0ZS5leHBhbmRlZFxuICAgICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgX3RoaXMyJHByb3BzJGhhbmRsZUNsLCBfdGhpczIkcHJvcHMsIF90aGlzMiRwcm9wcyRvbkNsaWNrLCBfdGhpczIkcHJvcHMyO1xuXG4gICAgICAgIF90aGlzMi5zZXRNYXhIZWlnaHQoKTsgLy8gVE9ETzogUmVtb3ZlIGhhbmRsZUNsaWNrIHByb3Agd2hlbiBoYW5kbGVDbGljayBpcyBkZXByZWNhdGVkXG5cblxuICAgICAgICAoKF90aGlzMiRwcm9wcyRoYW5kbGVDbCA9IChfdGhpczIkcHJvcHMgPSBfdGhpczIucHJvcHMpLmhhbmRsZUNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkaGFuZGxlQ2wgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzMiRwcm9wcyRoYW5kbGVDbC5jYWxsKF90aGlzMiRwcm9wcywgZXZ0KSkgfHwgKChfdGhpczIkcHJvcHMkb25DbGljayA9IChfdGhpczIkcHJvcHMyID0gX3RoaXMyLnByb3BzKS5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfdGhpczIkcHJvcHMkb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMyJHByb3BzJG9uQ2xpY2suY2FsbChfdGhpczIkcHJvcHMyLCBldnQpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJoYW5kbGVLZXlVcFwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICBpZiAoZXZ0LnRhcmdldCAhPT0gX3RoaXMyLnRpbGUpIHtcbiAgICAgICAgaWYgKG1hdGNoZXMoZXZ0LCBbRW50ZXIsIFNwYWNlXSkpIHtcbiAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgX2RlZmluZVByb3BlcnR5KF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQoX3RoaXMyKSwgXCJnZXRDaGlsZHJlblwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gUmVhY3RfX2RlZmF1bHQuQ2hpbGRyZW4udG9BcnJheShfdGhpczIucHJvcHMuY2hpbGRyZW4pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhFeHBhbmRhYmxlVGlsZSwgW3tcbiAgICBrZXk6IFwiY29tcG9uZW50V2lsbFVubW91bnRcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBfY3g1LFxuICAgICAgICAgIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIHZhciBfdGhpcyRwcm9wczcgPSB0aGlzLnByb3BzLFxuICAgICAgICAgIHRhYkluZGV4ID0gX3RoaXMkcHJvcHM3LnRhYkluZGV4LFxuICAgICAgICAgIGNsYXNzTmFtZSA9IF90aGlzJHByb3BzNy5jbGFzc05hbWU7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3LmV4cGFuZGVkO1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlTWF4SGVpZ2h0O1xuICAgICAgICAgIF90aGlzJHByb3BzNy50aWxlUGFkZGluZztcbiAgICAgICAgICBfdGhpcyRwcm9wczcuaGFuZGxlQ2xpY2s7XG4gICAgICAgICAgdmFyIG9uS2V5VXAgPSBfdGhpcyRwcm9wczcub25LZXlVcCxcbiAgICAgICAgICB0aWxlQ29sbGFwc2VkSWNvblRleHQgPSBfdGhpcyRwcm9wczcudGlsZUNvbGxhcHNlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVFeHBhbmRlZEljb25UZXh0ID0gX3RoaXMkcHJvcHM3LnRpbGVFeHBhbmRlZEljb25UZXh0LFxuICAgICAgICAgIHRpbGVDb2xsYXBzZWRMYWJlbCA9IF90aGlzJHByb3BzNy50aWxlQ29sbGFwc2VkTGFiZWwsXG4gICAgICAgICAgdGlsZUV4cGFuZGVkTGFiZWwgPSBfdGhpcyRwcm9wczcudGlsZUV4cGFuZGVkTGFiZWw7XG4gICAgICAgICAgX3RoaXMkcHJvcHM3Lm9uQmVmb3JlQ2xpY2s7XG4gICAgICAgICAgdmFyIGxpZ2h0ID0gX3RoaXMkcHJvcHM3LmxpZ2h0LFxuICAgICAgICAgIHJlc3QgPSBfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMoX3RoaXMkcHJvcHM3LCBfZXhjbHVkZWQ0KTtcblxuICAgICAgdmFyIHByZWZpeCA9IHRoaXMuY29udGV4dDtcbiAgICAgIHZhciBpc0V4cGFuZGVkID0gdGhpcy5zdGF0ZS5leHBhbmRlZDtcbiAgICAgIHZhciBjbGFzc2VzID0gY3goXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZVwiKSwgXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS0tZXhwYW5kYWJsZVwiKSwgKF9jeDUgPSB7fSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWlzLWV4cGFuZGVkXCIpLCBpc0V4cGFuZGVkKSwgX2RlZmluZVByb3BlcnR5KF9jeDUsIFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtLWxpZ2h0XCIpLCBsaWdodCksIF9jeDUpLCBjbGFzc05hbWUpO1xuICAgICAgdmFyIHRpbGVTdHlsZSA9IHtcbiAgICAgICAgbWF4SGVpZ2h0OiBpc0V4cGFuZGVkID8gbnVsbCA6IHRoaXMuc3RhdGUudGlsZU1heEhlaWdodCArIHRoaXMuc3RhdGUudGlsZVBhZGRpbmdcbiAgICAgIH07XG4gICAgICB2YXIgY2hpbGRyZW5Bc0FycmF5ID0gdGhpcy5nZXRDaGlsZHJlbigpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgLyojX19QVVJFX18qL1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyxqc3gtYTExeS9uby1zdGF0aWMtZWxlbWVudC1pbnRlcmFjdGlvbnNcbiAgICAgICAgUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiLCBfZXh0ZW5kcyh7XG4gICAgICAgICAgdHlwZTogXCJidXR0b25cIixcbiAgICAgICAgICByZWY6IGZ1bmN0aW9uIHJlZih0aWxlKSB7XG4gICAgICAgICAgICBfdGhpczMudGlsZSA9IHRpbGU7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzdHlsZTogdGlsZVN0eWxlLFxuICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3NlcyxcbiAgICAgICAgICBcImFyaWEtZXhwYW5kZWRcIjogaXNFeHBhbmRlZCxcbiAgICAgICAgICB0aXRsZTogaXNFeHBhbmRlZCA/IHRpbGVFeHBhbmRlZEljb25UZXh0IDogdGlsZUNvbGxhcHNlZEljb25UZXh0XG4gICAgICAgIH0sIHJlc3QsIHtcbiAgICAgICAgICBvbktleVVwOiBjb21wb3NlRXZlbnRIYW5kbGVycyhbb25LZXlVcCwgdGhpcy5oYW5kbGVLZXlVcF0pLFxuICAgICAgICAgIG9uQ2xpY2s6IHRoaXMuaGFuZGxlQ2xpY2ssXG4gICAgICAgICAgdGFiSW5kZXg6IHRhYkluZGV4XG4gICAgICAgIH0pLCAvKiNfX1BVUkVfXyovUmVhY3RfX2RlZmF1bHQuY3JlYXRlRWxlbWVudChcImRpdlwiLCB7XG4gICAgICAgICAgcmVmOiBmdW5jdGlvbiByZWYodGlsZUNvbnRlbnQpIHtcbiAgICAgICAgICAgIF90aGlzMy50aWxlQ29udGVudCA9IHRpbGVDb250ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiwge1xuICAgICAgICAgIHJlZjogZnVuY3Rpb24gcmVmKGFib3ZlVGhlRm9sZCkge1xuICAgICAgICAgICAgX3RoaXMzLmFib3ZlVGhlRm9sZCA9IGFib3ZlVGhlRm9sZDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50XCIpXG4gICAgICAgIH0sIGNoaWxkcmVuQXNBcnJheVswXSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGVfX2NoZXZyb25cIilcbiAgICAgICAgfSwgLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIG51bGwsIGlzRXhwYW5kZWQgPyB0aWxlRXhwYW5kZWRMYWJlbCA6IHRpbGVDb2xsYXBzZWRMYWJlbCksIF9DaGV2cm9uRG93biB8fCAoX0NoZXZyb25Eb3duID0gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoQ2hldnJvbkRvd24sIG51bGwpKSksIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwiZGl2XCIsIHtcbiAgICAgICAgICBjbGFzc05hbWU6IFwiXCIuY29uY2F0KHByZWZpeCwgXCItLXRpbGUtY29udGVudFwiKVxuICAgICAgICB9LCBjaGlsZHJlbkFzQXJyYXlbMV0pKSlcbiAgICAgICk7XG4gICAgfVxuICB9XSwgW3tcbiAgICBrZXk6IFwiZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyggLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L3Byb3AtdHlwZXNcbiAgICBfcmVmMiwgc3RhdGUpIHtcbiAgICAgIHZhciBleHBhbmRlZCA9IF9yZWYyLmV4cGFuZGVkLFxuICAgICAgICAgIHRpbGVNYXhIZWlnaHQgPSBfcmVmMi50aWxlTWF4SGVpZ2h0LFxuICAgICAgICAgIHRpbGVQYWRkaW5nID0gX3JlZjIudGlsZVBhZGRpbmc7XG4gICAgICB2YXIgcHJldkV4cGFuZGVkID0gc3RhdGUucHJldkV4cGFuZGVkLFxuICAgICAgICAgIHByZXZUaWxlTWF4SGVpZ2h0ID0gc3RhdGUucHJldlRpbGVNYXhIZWlnaHQsXG4gICAgICAgICAgcHJldlRpbGVQYWRkaW5nID0gc3RhdGUucHJldlRpbGVQYWRkaW5nLFxuICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZCA9IHN0YXRlLmV4cGFuZGVkLFxuICAgICAgICAgIGN1cnJlbnRUaWxlTWF4SGVpZ2h0ID0gc3RhdGUudGlsZU1heEhlaWdodCxcbiAgICAgICAgICBjdXJyZW50VGlsZVBhZGRpbmcgPSBzdGF0ZS50aWxlUGFkZGluZztcbiAgICAgIHZhciBleHBhbmRlZENoYW5nZWQgPSBwcmV2RXhwYW5kZWQgIT09IGV4cGFuZGVkO1xuICAgICAgdmFyIHRpbGVNYXhIZWlnaHRDaGFuZ2VkID0gcHJldlRpbGVNYXhIZWlnaHQgIT09IHRpbGVNYXhIZWlnaHQ7XG4gICAgICB2YXIgdGlsZVBhZGRpbmdDaGFuZ2VkID0gcHJldlRpbGVQYWRkaW5nICE9PSB0aWxlUGFkZGluZztcbiAgICAgIHJldHVybiAhZXhwYW5kZWRDaGFuZ2VkICYmICF0aWxlTWF4SGVpZ2h0Q2hhbmdlZCAmJiAhdGlsZVBhZGRpbmdDaGFuZ2VkID8gbnVsbCA6IHtcbiAgICAgICAgZXhwYW5kZWQ6ICFleHBhbmRlZENoYW5nZWQgPyBjdXJyZW50RXhwYW5kZWQgOiBleHBhbmRlZCxcbiAgICAgICAgdGlsZU1heEhlaWdodDogIXRpbGVNYXhIZWlnaHRDaGFuZ2VkID8gY3VycmVudFRpbGVNYXhIZWlnaHQgOiB0aWxlTWF4SGVpZ2h0LFxuICAgICAgICB0aWxlUGFkZGluZzogIXRpbGVQYWRkaW5nQ2hhbmdlZCA/IGN1cnJlbnRUaWxlUGFkZGluZyA6IHRpbGVQYWRkaW5nLFxuICAgICAgICBwcmV2RXhwYW5kZWQ6IGV4cGFuZGVkLFxuICAgICAgICBwcmV2VGlsZU1heEhlaWdodDogdGlsZU1heEhlaWdodCxcbiAgICAgICAgcHJldlRpbGVQYWRkaW5nOiB0aWxlUGFkZGluZ1xuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcblxuICByZXR1cm4gRXhwYW5kYWJsZVRpbGU7XG59KENvbXBvbmVudCk7XG5cbl9kZWZpbmVQcm9wZXJ0eShFeHBhbmRhYmxlVGlsZSwgXCJwcm9wVHlwZXNcIiwge1xuICAvKipcbiAgICogVGhlIGNoaWxkIG5vZGVzLlxuICAgKi9cbiAgY2hpbGRyZW46IFByb3BUeXBlcy5ub2RlLFxuXG4gIC8qKlxuICAgKiBUaGUgQ1NTIGNsYXNzIG5hbWVzLlxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhlIHRpbGUgaXMgZXhwYW5kZWQuXG4gICAqL1xuICBleHBhbmRlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIERlcHJlY2F0ZWQgaW4gdjExLiBVc2UgJ29uQ2xpY2snIGluc3RlYWQuXG4gICAqL1xuICBoYW5kbGVDbGljazogZGVwcmVjYXRlKFByb3BUeXBlcy5mdW5jLCAnVGhlIGhhbmRsZUNsaWNrIHByb3AgZm9yIEV4cGFuZGFibGVUaWxlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygb25DbGljay4gSXQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJyksXG5cbiAgLyoqXG4gICAqIEFuIElEIHRoYXQgY2FuIGJlIHByb3ZpZGVkIHRvIGFyaWEtbGFiZWxsZWRieVxuICAgKi9cbiAgaWQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIGB0cnVlYCB0byB1c2UgdGhlIGxpZ2h0IHZlcnNpb24uIEZvciB1c2Ugb24gJHVpLTAxIGJhY2tncm91bmRzIG9ubHkuXG4gICAqIERvbid0IHVzZSB0aGlzIHRvIG1ha2UgdGlsZSBiYWNrZ3JvdW5kIGNvbG9yIHNhbWUgYXMgY29udGFpbmVyIGJhY2tncm91bmQgY29sb3IuXG4gICAqL1xuICBsaWdodDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIG9wdGlvbmFsIGhhbmRsZXIgdG8gZGVjaWRlIHdoZXRoZXIgdG8gaWdub3JlIGEgY2xpY2suIHJldHVybnMgZmFsc2UgaWYgY2xpY2sgc2hvdWxkIGJlIGlnbm9yZWRcbiAgICovXG4gIG9uQmVmb3JlQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHRoZSBmdW5jdGlvbiB0byBydW4gd2hlbiB0aGUgRXhwYW5kYWJsZVRpbGUgaXMgY2xpY2tlZFxuICAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBvcHRpb25hbCBoYW5kbGVyIHRvIHRyaWdnZXIgYSBmdW5jdGlvbiB3aGVuIGEga2V5IGlzIHByZXNzZWRcbiAgICovXG4gIG9uS2V5VXA6IFByb3BUeXBlcy5mdW5jLFxuXG4gIC8qKlxuICAgKiBUaGUgYHRhYmluZGV4YCBhdHRyaWJ1dGUuXG4gICAqL1xuICB0YWJJbmRleDogUHJvcFR5cGVzLm51bWJlcixcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImNvbGxhcHNlZFwiIGljb24gdGhhdCBjYW4gYmUgcmVhZCBieSBzY3JlZW4gcmVhZGVycy5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRJY29uVGV4dDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogV2hlbiBcImNvbGxhcHNlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbW9yZVwiKS5cbiAgICovXG4gIHRpbGVDb2xsYXBzZWRMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogVGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBcImV4cGFuZGVkXCIgaWNvbiB0aGF0IGNhbiBiZSByZWFkIGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgKi9cbiAgdGlsZUV4cGFuZGVkSWNvblRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG5cbiAgLyoqXG4gICAqIFdoZW4gXCJleHBhbmRlZFwiLCBhIGxhYmVsIHRvIGFwcGVhciBuZXh0IHRvIHRoZSBjaGV2cm9uIChlLmcuLCBcIlZpZXcgbGVzc1wiKS5cbiAgICovXG4gIHRpbGVFeHBhbmRlZExhYmVsOiBQcm9wVHlwZXMuc3RyaW5nXG59KTtcblxuX2RlZmluZVByb3BlcnR5KEV4cGFuZGFibGVUaWxlLCBcImNvbnRleHRUeXBlXCIsIFByZWZpeENvbnRleHQpO1xuXG5fZGVmaW5lUHJvcGVydHkoRXhwYW5kYWJsZVRpbGUsIFwiZGVmYXVsdFByb3BzXCIsIHtcbiAgdGFiSW5kZXg6IDAsXG4gIGV4cGFuZGVkOiBmYWxzZSxcbiAgdGlsZU1heEhlaWdodDogMCxcbiAgdGlsZVBhZGRpbmc6IDAsXG4gIG9uQmVmb3JlQ2xpY2s6IGZ1bmN0aW9uIG9uQmVmb3JlQ2xpY2soKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIG9uQ2xpY2s6IGZ1bmN0aW9uIG9uQ2xpY2soKSB7fSxcbiAgdGlsZUNvbGxhcHNlZEljb25UZXh0OiAnSW50ZXJhY3QgdG8gZXhwYW5kIFRpbGUnLFxuICB0aWxlRXhwYW5kZWRJY29uVGV4dDogJ0ludGVyYWN0IHRvIGNvbGxhcHNlIFRpbGUnLFxuICBsaWdodDogZmFsc2Vcbn0pO1xuXG52YXIgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQgPSAvKiNfX1BVUkVfXyovZnVuY3Rpb24gKF9Db21wb25lbnQ0KSB7XG4gIF9pbmhlcml0cyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgX0NvbXBvbmVudDQpO1xuXG4gIHZhciBfc3VwZXI0ID0gX2NyZWF0ZVN1cGVyKFRpbGVBYm92ZVRoZUZvbGRDb250ZW50KTtcblxuICBmdW5jdGlvbiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCgpIHtcbiAgICBfY2xhc3NDYWxsQ2hlY2sodGhpcywgVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQpO1xuXG4gICAgcmV0dXJuIF9zdXBlcjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbiAgfVxuXG4gIF9jcmVhdGVDbGFzcyhUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgW3tcbiAgICBrZXk6IFwicmVuZGVyXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHJlbmRlcigpIHtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLnByb3BzLmNoaWxkcmVuO1xuICAgICAgcmV0dXJuIC8qI19fUFVSRV9fKi9SZWFjdF9fZGVmYXVsdC5jcmVhdGVFbGVtZW50KFwic3BhblwiLCB7XG4gICAgICAgIGNsYXNzTmFtZTogXCJcIi5jb25jYXQocHJlZml4LCBcIi0tdGlsZS1jb250ZW50X19hYm92ZS10aGUtZm9sZFwiKVxuICAgICAgfSwgY2hpbGRyZW4pO1xuICAgIH1cbiAgfV0pO1xuXG4gIHJldHVybiBUaWxlQWJvdmVUaGVGb2xkQ29udGVudDtcbn0oQ29tcG9uZW50KTtcblxuX2RlZmluZVByb3BlcnR5KFRpbGVBYm92ZVRoZUZvbGRDb250ZW50LCBcInByb3BUeXBlc1wiLCB7XG4gIC8qKlxuICAgKiBUaGUgY2hpbGQgbm9kZXMuXG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGVcbn0pO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUFib3ZlVGhlRm9sZENvbnRlbnQsIFwiY29udGV4dFR5cGVcIiwgUHJlZml4Q29udGV4dCk7XG5cbnZhciBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCA9IC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoX0NvbXBvbmVudDUpIHtcbiAgX2luaGVyaXRzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBfQ29tcG9uZW50NSk7XG5cbiAgdmFyIF9zdXBlcjUgPSBfY3JlYXRlU3VwZXIoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQpO1xuXG4gIGZ1bmN0aW9uIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50KCkge1xuICAgIF9jbGFzc0NhbGxDaGVjayh0aGlzLCBUaWxlQmVsb3dUaGVGb2xkQ29udGVudCk7XG5cbiAgICByZXR1cm4gX3N1cGVyNS5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICB9XG5cbiAgX2NyZWF0ZUNsYXNzKFRpbGVCZWxvd1RoZUZvbGRDb250ZW50LCBbe1xuICAgIGtleTogXCJyZW5kZXJcIixcbiAgICB2YWx1ZTogZnVuY3Rpb24gcmVuZGVyKCkge1xuICAgICAgdmFyIGNoaWxkcmVuID0gdGhpcy5wcm9wcy5jaGlsZHJlbjtcbiAgICAgIHZhciBwcmVmaXggPSB0aGlzLmNvbnRleHQ7XG4gICAgICByZXR1cm4gLyojX19QVVJFX18qL1JlYWN0X19kZWZhdWx0LmNyZWF0ZUVsZW1lbnQoXCJzcGFuXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcIlwiLmNvbmNhdChwcmVmaXgsIFwiLS10aWxlLWNvbnRlbnRfX2JlbG93LXRoZS1mb2xkXCIpXG4gICAgICB9LCBjaGlsZHJlbik7XG4gICAgfVxuICB9XSk7XG5cbiAgcmV0dXJuIFRpbGVCZWxvd1RoZUZvbGRDb250ZW50O1xufShDb21wb25lbnQpO1xuXG5fZGVmaW5lUHJvcGVydHkoVGlsZUJlbG93VGhlRm9sZENvbnRlbnQsIFwicHJvcFR5cGVzXCIsIHtcbiAgLyoqXG4gICAqIFRoZSBjaGlsZCBub2Rlcy5cbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZVxufSk7XG5cbl9kZWZpbmVQcm9wZXJ0eShUaWxlQmVsb3dUaGVGb2xkQ29udGVudCwgXCJjb250ZXh0VHlwZVwiLCBQcmVmaXhDb250ZXh0KTtcblxuZXhwb3J0IHsgQ2xpY2thYmxlVGlsZSwgRXhwYW5kYWJsZVRpbGUsIFNlbGVjdGFibGVUaWxlLCBUaWxlLCBUaWxlQWJvdmVUaGVGb2xkQ29udGVudCwgVGlsZUJlbG93VGhlRm9sZENvbnRlbnQgfTtcbiJdLCJuYW1lcyI6WyJpbmhlcml0cyIsIl9pbmhlcml0cyIsImNyZWF0ZVN1cGVyIiwiX2NyZWF0ZVN1cGVyIiwiY2xhc3NDYWxsQ2hlY2siLCJfY2xhc3NDYWxsQ2hlY2siLCJjcmVhdGVDbGFzcyIsIl9jcmVhdGVDbGFzcyIsIm9iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfZGVmaW5lUHJvcGVydHkiLCJleHRlbmRzIiwiX2V4dGVuZHMiLCJhc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwic2xpY2VkVG9BcnJheSIsIl9zbGljZWRUb0FycmF5IiwiUmVhY3RfX2RlZmF1bHQiLCJDb21wb25lbnQiLCJ1c2VTdGF0ZSIsInVzZVJlZiIsInVzZUVmZmVjdCIsIlByb3BUeXBlcyIsImN4IiwiTGluayIsIkNoZWNrYm94Q2hlY2tlZEZpbGxlZCIsIkNoZWNrYm94IiwiQ2hldnJvbkRvd24iLCJkZXByZWNhdGUiLCJjb21wb3NlRXZlbnRIYW5kbGVycyIsIlByZWZpeENvbnRleHQiLCJ1c2VQcmVmaXgiLCJtYXRjaGVzIiwiRW50ZXIiLCJTcGFjZSIsIl9DaGVja2JveENoZWNrZWRGaWxsZSIsIl9DaGVja2JveCIsIl9DaGV2cm9uRG93biIsIl9leGNsdWRlZCIsIl9leGNsdWRlZDIiLCJfZXhjbHVkZWQzIiwiX2V4Y2x1ZGVkNCIsIlRpbGUiLCJfQ29tcG9uZW50IiwiX3N1cGVyIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJrZXkiLCJ2YWx1ZSIsInJlbmRlciIsInByZWZpeCIsImNvbnRleHQiLCJfdGhpcyRwcm9wcyIsInByb3BzIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJsaWdodCIsInJlc3QiLCJ0aWxlQ2xhc3NlcyIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJub2RlIiwic3RyaW5nIiwiYm9vbCIsIkNsaWNrYWJsZVRpbGUiLCJfQ29tcG9uZW50MiIsIl9zdXBlcjIiLCJfdGhpcyIsIl9sZW4iLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY2FsbCIsImV2dCIsInBlcnNpc3QiLCJzZXRTdGF0ZSIsImNsaWNrZWQiLCJzdGF0ZSIsIl90aGlzJHByb3BzJGhhbmRsZUNsaSIsIl90aGlzJHByb3BzMiIsIl90aGlzJHByb3BzJG9uQ2xpY2siLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVDbGljayIsIm9uQ2xpY2siLCJfdGhpcyRwcm9wcyRoYW5kbGVLZXkiLCJfdGhpcyRwcm9wczQiLCJoYW5kbGVLZXlEb3duIiwib25LZXlEb3duIiwiX3RoaXMkcHJvcHMkaGFuZGxlS2V5MiIsIl90aGlzJHByb3BzNSIsIl9jeDIiLCJfdGhpcyRwcm9wczYiLCJocmVmIiwiY2xhc3NlcyIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsIl9yZWYiLCJwcmV2Q2xpY2tlZCIsImZ1bmMiLCJyZWwiLCJTZWxlY3RhYmxlVGlsZSIsImhhbmRsZU9uQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNldElzU2VsZWN0ZWQiLCJpc1NlbGVjdGVkIiwiY2xpY2tIYW5kbGVyIiwib25DaGFuZ2UiLCJoYW5kbGVPbktleURvd24iLCJrZXlEb3duSGFuZGxlciIsImhhbmRsZUNoYW5nZSIsImV2ZW50IiwidGFyZ2V0IiwiY2hlY2tlZCIsIl9jeDMiLCJpZCIsInRhYkluZGV4IiwibmFtZSIsInRpdGxlIiwiaWNvbkRlc2NyaXB0aW9uIiwiZGlzYWJsZWQiLCJzZWxlY3RlZCIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJpbnB1dCIsImlucHV0Q2xhc3NlcyIsIkZyYWdtZW50IiwicmVmIiwidHlwZSIsImh0bWxGb3IiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJudW1iZXIiLCJvbmVPZlR5cGUiLCJpc1JlcXVpcmVkIiwiRXhwYW5kYWJsZVRpbGUiLCJfQ29tcG9uZW50MyIsIl9zdXBlcjMiLCJfdGhpczIiLCJfbGVuMiIsIl9rZXkyIiwicmVzaXplT2JzZXJ2ZXIiLCJSZXNpemVPYnNlcnZlciIsImVudHJpZXMiLCJfZW50cmllcyIsImFib3ZlVGhlRm9sZCIsInRpbGVNYXhIZWlnaHQiLCJjb250ZW50UmVjdCIsImhlaWdodCIsInRpbGUiLCJnZXRTdHlsZSIsIndpbmRvdyIsImdldENvbXB1dGVkU3R5bGUiLCJvYnNlcnZlIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwidGlsZVBhZGRpbmciLCJwYXJzZUludCIsImdldFByb3BlcnR5VmFsdWUiLCJwcmV2UHJvcHMiLCJleHBhbmRlZCIsInNldE1heEhlaWdodCIsInRpbGVDb250ZW50Iiwib25CZWZvcmVDbGljayIsInRhZ05hbWUiLCJfdGhpczIkcHJvcHMkaGFuZGxlQ2wiLCJfdGhpczIkcHJvcHMiLCJfdGhpczIkcHJvcHMkb25DbGljayIsIl90aGlzMiRwcm9wczIiLCJDaGlsZHJlbiIsInRvQXJyYXkiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRpc2Nvbm5lY3QiLCJfY3g1IiwiX3RoaXMzIiwiX3RoaXMkcHJvcHM3Iiwib25LZXlVcCIsInRpbGVDb2xsYXBzZWRJY29uVGV4dCIsInRpbGVFeHBhbmRlZEljb25UZXh0IiwidGlsZUNvbGxhcHNlZExhYmVsIiwidGlsZUV4cGFuZGVkTGFiZWwiLCJpc0V4cGFuZGVkIiwidGlsZVN0eWxlIiwibWF4SGVpZ2h0IiwiY2hpbGRyZW5Bc0FycmF5IiwiZ2V0Q2hpbGRyZW4iLCJzdHlsZSIsImhhbmRsZUtleVVwIiwiX3JlZjIiLCJwcmV2RXhwYW5kZWQiLCJwcmV2VGlsZU1heEhlaWdodCIsInByZXZUaWxlUGFkZGluZyIsImN1cnJlbnRFeHBhbmRlZCIsImN1cnJlbnRUaWxlTWF4SGVpZ2h0IiwiY3VycmVudFRpbGVQYWRkaW5nIiwiZXhwYW5kZWRDaGFuZ2VkIiwidGlsZU1heEhlaWdodENoYW5nZWQiLCJ0aWxlUGFkZGluZ0NoYW5nZWQiLCJUaWxlQWJvdmVUaGVGb2xkQ29udGVudCIsIl9Db21wb25lbnQ0IiwiX3N1cGVyNCIsIlRpbGVCZWxvd1RoZUZvbGRDb250ZW50IiwiX0NvbXBvbmVudDUiLCJfc3VwZXI1Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../../../node_modules/@carbon/react/es/components/Tile/Tile.js\n");
|
|
2605
2605
|
|
|
2606
2606
|
/***/ }),
|
|
2607
2607
|
|
|
@@ -6895,7 +6895,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
6895
6895
|
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
6896
6896
|
|
|
6897
6897
|
"use strict";
|
|
6898
|
-
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setupPaths\": () => (/* binding */ setupPaths),\n/* harmony export */ \"setupUtils\": () => (/* binding */ setupUtils)\n/* harmony export */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.4.2-pre.
|
|
6898
|
+
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"setupPaths\": () => (/* binding */ setupPaths),\n/* harmony export */ \"setupUtils\": () => (/* binding */ setupUtils)\n/* harmony export */ });\nfunction setupPaths(config) {\n window.openmrsBase = config.apiUrl;\n window.spaBase = config.spaPath;\n window.spaEnv = config.env || \"production\";\n window.spaVersion = \"4.4.2-pre.759-20230605\";\n window.getOpenmrsSpaBase = function() {\n return \"\".concat(window.spaBase, \"/\");\n };\n}\nfunction setupUtils() {\n window.copyText = function(source) {\n var sel = window.getSelection();\n if (sel) {\n var r = document.createRange();\n r.selectNode(source);\n sel.removeAllRanges();\n sel.addRange(r);\n document.execCommand(\"copy\");\n sel.removeAllRanges();\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi4vLi4vZnJhbWV3b3JrL2VzbS1nbG9iYWxzL3NyYy9nbG9iYWxzLnRzLmpzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sU0FBU0EsV0FBV0MsTUFBaUIsRUFBRTtJQUM1Q0MsT0FBT0MsV0FBVyxHQUFHRixPQUFPRyxNQUFNO0lBQ2xDRixPQUFPRyxPQUFPLEdBQUdKLE9BQU9LLE9BQU87SUFDL0JKLE9BQU9LLE1BQU0sR0FBR04sT0FBT08sR0FBRyxJQUFJO0lBQzlCTixPQUFPTyxVQUFVLEdBQUdDLHdCQUF5QjtJQUM3Q1IsT0FBT1UsaUJBQWlCLEdBQUc7ZUFBTSxHQUFrQixPQUFmVixPQUFPRyxPQUFPLEVBQUM7O0FBQ3JELENBQUM7QUFFTSxTQUFTUSxhQUFhO0lBQzNCWCxPQUFPWSxRQUFRLEdBQUcsU0FBQ0MsUUFBd0I7UUFDekMsSUFBTUMsTUFBTWQsT0FBT2UsWUFBWTtRQUUvQixJQUFJRCxLQUFLO1lBQ1AsSUFBTUUsSUFBSUMsU0FBU0MsV0FBVztZQUM5QkYsRUFBRUcsVUFBVSxDQUFDTjtZQUNiQyxJQUFJTSxlQUFlO1lBQ25CTixJQUFJTyxRQUFRLENBQUNMO1lBQ2JDLFNBQVNLLFdBQVcsQ0FBQztZQUNyQlIsSUFBSU0sZUFBZTtRQUNyQixDQUFDO0lBQ0g7QUFDRixDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQG9wZW5tcnMvZXNtLWFwcC1zaGVsbC8uLi8uLi9mcmFtZXdvcmsvZXNtLWdsb2JhbHMvc3JjL2dsb2JhbHMudHM/NDFiMiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNwYUNvbmZpZyB9IGZyb20gXCIuL3R5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXR1cFBhdGhzKGNvbmZpZzogU3BhQ29uZmlnKSB7XG4gIHdpbmRvdy5vcGVubXJzQmFzZSA9IGNvbmZpZy5hcGlVcmw7XG4gIHdpbmRvdy5zcGFCYXNlID0gY29uZmlnLnNwYVBhdGg7XG4gIHdpbmRvdy5zcGFFbnYgPSBjb25maWcuZW52IHx8IFwicHJvZHVjdGlvblwiO1xuICB3aW5kb3cuc3BhVmVyc2lvbiA9IHByb2Nlc3MuZW52LkJVSUxEX1ZFUlNJT047XG4gIHdpbmRvdy5nZXRPcGVubXJzU3BhQmFzZSA9ICgpID0+IGAke3dpbmRvdy5zcGFCYXNlfS9gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBVdGlscygpIHtcbiAgd2luZG93LmNvcHlUZXh0ID0gKHNvdXJjZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWwgPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XG5cbiAgICBpZiAoc2VsKSB7XG4gICAgICBjb25zdCByID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgICAgIHIuc2VsZWN0Tm9kZShzb3VyY2UpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgICAgc2VsLmFkZFJhbmdlKHIpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoXCJjb3B5XCIpO1xuICAgICAgc2VsLnJlbW92ZUFsbFJhbmdlcygpO1xuICAgIH1cbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJzZXR1cFBhdGhzIiwiY29uZmlnIiwid2luZG93Iiwib3Blbm1yc0Jhc2UiLCJhcGlVcmwiLCJzcGFCYXNlIiwic3BhUGF0aCIsInNwYUVudiIsImVudiIsInNwYVZlcnNpb24iLCJwcm9jZXNzIiwiQlVJTERfVkVSU0lPTiIsImdldE9wZW5tcnNTcGFCYXNlIiwic2V0dXBVdGlscyIsImNvcHlUZXh0Iiwic291cmNlIiwic2VsIiwiZ2V0U2VsZWN0aW9uIiwiciIsImRvY3VtZW50IiwiY3JlYXRlUmFuZ2UiLCJzZWxlY3ROb2RlIiwicmVtb3ZlQWxsUmFuZ2VzIiwiYWRkUmFuZ2UiLCJleGVjQ29tbWFuZCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../../framework/esm-globals/src/globals.ts\n");
|
|
6899
6899
|
|
|
6900
6900
|
/***/ }),
|
|
6901
6901
|
|
|
@@ -11941,8 +11941,8 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
11941
11941
|
/******/ var promises = [];
|
|
11942
11942
|
/******/ switch(name) {
|
|
11943
11943
|
/******/ case "default": {
|
|
11944
|
-
/******/ register("@openmrs/esm-framework/src/internal", "4.4.2-pre.
|
|
11945
|
-
/******/ register("@openmrs/esm-framework", "4.4.2-pre.
|
|
11944
|
+
/******/ register("@openmrs/esm-framework/src/internal", "4.4.2-pre.759", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/internal.ts */ "../../framework/esm-framework/src/internal.ts"))), 1);
|
|
11945
|
+
/******/ register("@openmrs/esm-framework", "4.4.2-pre.759", () => (() => (__webpack_require__(/*! ../../framework/esm-framework/src/index.ts */ "../../framework/esm-framework/src/index.ts"))), 1);
|
|
11946
11946
|
/******/ register("dayjs", "1.11.5", () => (() => (__webpack_require__(/*! ../../../node_modules/dayjs/dayjs.min.js */ "../../../node_modules/dayjs/dayjs.min.js"))), 1);
|
|
11947
11947
|
/******/ register("i18next", "19.9.2", () => (() => (__webpack_require__(/*! ../../../node_modules/i18next/dist/esm/i18next.js */ "../../../node_modules/i18next/dist/esm/i18next.js"))), 1);
|
|
11948
11948
|
/******/ register("react-dom", "18.2.0", () => (() => (__webpack_require__(/*! ../../../node_modules/react-dom/index.js */ "../../../node_modules/react-dom/index.js"))), 1);
|
|
@@ -12104,7 +12104,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac
|
|
|
12104
12104
|
/******/ "webpack/sharing/consume/default/i18next/i18next": () => (loadSingletonVersionCheckFallback("default", "i18next", [1,19,6,0], () => (() => (__webpack_require__(/*! i18next */ "../../../node_modules/i18next/dist/esm/i18next.js"))))),
|
|
12105
12105
|
/******/ "webpack/sharing/consume/default/react-i18next/react-i18next": () => (loadSingletonVersionCheckFallback("default", "react-i18next", [1,11,7,0], () => (() => (__webpack_require__(/*! react-i18next */ "../../../node_modules/react-i18next/dist/es/index.js"))))),
|
|
12106
12106
|
/******/ "webpack/sharing/consume/default/dayjs/dayjs": () => (loadSingletonVersionCheckFallback("default", "dayjs", [1,1,10,4], () => (() => (__webpack_require__(/*! dayjs */ "../../../node_modules/dayjs/dayjs.min.js"))))),
|
|
12107
|
-
/******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,4,2,,"pre",
|
|
12107
|
+
/******/ "webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework": () => (loadSingletonVersionCheckFallback("default", "@openmrs/esm-framework", [7,4,4,2,,"pre",759], () => (() => (__webpack_require__(/*! @openmrs/esm-framework */ "../../framework/esm-framework/src/index.ts")))))
|
|
12108
12108
|
/******/ };
|
|
12109
12109
|
/******/ var initialConsumes = ["webpack/sharing/consume/default/@openmrs/esm-framework/src/internal/@openmrs/esm-framework/src/internal","webpack/sharing/consume/default/rxjs/rxjs","webpack/sharing/consume/default/react/react","webpack/sharing/consume/default/react-dom/react-dom","webpack/sharing/consume/default/i18next/i18next","webpack/sharing/consume/default/react-i18next/react-i18next","webpack/sharing/consume/default/dayjs/dayjs","webpack/sharing/consume/default/@openmrs/esm-framework/@openmrs/esm-framework"];
|
|
12110
12110
|
/******/ initialConsumes.forEach((id) => {
|