UNPKG

netlify-cms-widget-file

Version:

Widget for uploading files in Netlify CMS.

68 lines (49 loc) 166 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = withFileControl; var _styledBase = _interopRequireDefault(require("@emotion/styled-base")); var _once2 = _interopRequireDefault(require("lodash/once")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactImmutableProptypes = _interopRequireDefault(require("react-immutable-proptypes")); var _core = require("@emotion/core"); var _immutable = require("immutable"); var _v = _interopRequireDefault(require("uuid/v4")); var _commonTags = require("common-tags"); var _netlifyCmsUiDefault = require("netlify-cms-ui-default"); var _netlifyCmsLibUtil = require("netlify-cms-lib-util"); var _reactSortableHoc = require("react-sortable-hoc"); var _arrayMove = require("array-move"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; } const MAX_DISPLAY_LENGTH = 50; const ImageWrapper = (0, _styledBase.default)("div", { target: "e1awjdnj0", label: "ImageWrapper" })("flex-basis:155px;width:155px;height:100px;margin-right:20px;margin-bottom:20px;border:", _netlifyCmsUiDefault.borders.textField, ";border-radius:", _netlifyCmsUiDefault.lengths.borderRadius, ";overflow:hidden;", _netlifyCmsUiDefault.effects.checkerboard, ";", _netlifyCmsUiDefault.shadows.inset, ";cursor:", props => props.sortable ? 'pointer' : 'auto', ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0IrQiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgb25jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgdXVpZCBmcm9tICd1dWlkL3Y0JztcbmltcG9ydCB7IG9uZUxpbmUgfSBmcm9tICdjb21tb24tdGFncyc7XG5pbXBvcnQge1xuICBsZW5ndGhzLFxuICBjb21wb25lbnRzLFxuICBidXR0b25zLFxuICBib3JkZXJzLFxuICBlZmZlY3RzLFxuICBzaGFkb3dzLFxuICBJY29uQnV0dG9uLFxufSBmcm9tICduZXRsaWZ5LWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnbmV0bGlmeS1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgU29ydGFibGVDb250YWluZXIsIFNvcnRhYmxlRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNvcnRhYmxlLWhvYyc7XG5pbXBvcnQgeyBhcnJheU1vdmVJbW11dGFibGUgYXMgYXJyYXlNb3ZlIH0gZnJvbSAnYXJyYXktbW92ZSc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZShwcm9wcykge1xuICByZXR1cm4gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiB7Li4ucHJvcHN9IC8+O1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlQnV0dG9ucyh7IG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwibWVkaWFcIiBvbkNsaWNrPXtvblJlcGxhY2V9PjwvSWNvbkJ1dHRvbj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJjbG9zZVwiIG9uQ2xpY2s9e29uUmVtb3ZlfT48L0ljb25CdXR0b24+XG4gICAgPC9Tb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICk7XG59XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2UgPSBTb3J0YWJsZUVsZW1lbnQoKHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2Ugc3JjPXtnZXRBc3NldChpdGVtVmFsdWUsIGZpZWxkKSB8fCAnJ30gLz5cbiAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zXG4gICAgICAgIGl0ZW09e2l0ZW1WYWx1ZX1cbiAgICAgICAgb25SZW1vdmU9e29uUmVtb3ZlfVxuICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZX1cbiAgICAgID48L1NvcnRhYmxlSW1hZ2VCdXR0b25zPlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmNvbnN0IFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIgPSBTb3J0YWJsZUNvbnRhaW5lcihcbiAgKHsgaXRlbXMsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmVPbmUsIG9uUmVwbGFjZU9uZSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtpdGVtcy5tYXAoKGl0ZW1WYWx1ZSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAga2V5PXtgaXRlbS0ke2l0ZW1WYWx1ZX1gfVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgaXRlbVZhbHVlPXtpdGVtVmFsdWV9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2VPbmUoaW5kZXgpfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSxcbik7XG5cbmNvbnN0IEZpbGVMaW5rID0gc3R5bGVkLmFgXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuYDtcblxuY29uc3QgRmlsZUxpbmtzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVMaW5rTGlzdCA9IHN0eWxlZC51bGBcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2V9O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvblJlbW92ZSA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2VEYW5nZXJ9O1xuYDtcblxuZnVuY3Rpb24gaXNNdWx0aXBsZSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgTGlzdC5pc0xpc3QodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBzaXplT2ZWYWx1ZSh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5zaXplO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIExpc3QuaXNMaXN0KHZhbHVlKSA/IHZhbHVlLnRvQXJyYXkoKSA6IHZhbHVlO1xufVxuXG5jb25zdCB3YXJuRGVwcmVjYXRlZE9wdGlvbnMgPSBvbmNlKGZpZWxkID0+XG4gIGNvbnNvbGUud2FybihvbmVMaW5lYFxuICBOZXRsaWZ5IENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IHV1aWQoKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHNpemVPZlZhbHVlKHZhbHVlKSA+IDAgPyBbLi4udmFsdWVdIDogbnVsbCk7XG4gICAgfTtcblxuICAgIG9uUmVwbGFjZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIHJlcGxhY2VJbmRleDogaW5kZXgsXG4gICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBnZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoZmllbGQuaGFzSW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSkpIHtcbiAgICAgICAgd2FybkRlcHJlY2F0ZWRPcHRpb25zKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmdldEluKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10sIE1hcCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkLmdldCgnbWVkaWFfbGlicmFyeScsIE1hcCgpKTtcbiAgICB9O1xuXG4gICAgYWxsb3dzTXVsdGlwbGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJywgZmFsc2UpICYmXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLmdldCgnbXVsdGlwbGUnLCBmYWxzZSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIG9uU29ydEVuZCA9ICh7IG9sZEluZGV4LCBuZXdJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBhcnJheU1vdmUodmFsdWUsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGdldFZhbGlkYXRlVmFsdWUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc011bHRpcGxlKHZhbHVlKSA/IHZhbHVlLm1hcCh2ID0+IGJhc2VuYW1lKHYpKSA6IGJhc2VuYW1lKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGluayA9IHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBNQVhfRElTUExBWV9MRU5HVEg7XG4gICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA8PSBzaXplKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHQgPSBgJHt2YWx1ZS5zbGljZSgwLCBzaXplIC8gMil9XFx1MjAyNiR7dmFsdWUuc2xpY2UoLShzaXplIC8gMikgKyAxKX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZpbGVMaW5rIGhyZWY9e3ZhbHVlfSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZpbGVMaW5rPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmtzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZpbGVMaW5rcz5cbiAgICAgICAgICAgIDxGaWxlTGlua0xpc3Q+XG4gICAgICAgICAgICAgIHt2YWx1ZS5tYXAodmFsID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXt2YWx9Pnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbCl9PC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZpbGVMaW5rTGlzdD5cbiAgICAgICAgICA8L0ZpbGVMaW5rcz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiA8RmlsZUxpbmtzPnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbHVlKX08L0ZpbGVMaW5rcz47XG4gICAgfTtcblxuICAgIHJlbmRlckltYWdlcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QXNzZXQsIHZhbHVlLCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXJcbiAgICAgICAgICAgIGl0ZW1zPXt2YWx1ZX1cbiAgICAgICAgICAgIG9uU29ydEVuZD17dGhpcy5vblNvcnRFbmR9XG4gICAgICAgICAgICBvblJlbW92ZU9uZT17dGhpcy5vblJlbW92ZU9uZX1cbiAgICAgICAgICAgIG9uUmVwbGFjZU9uZT17dGhpcy5vblJlcGxhY2VPbmV9XG4gICAgICAgICAgICBkaXN0YW5jZT17NH1cbiAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgIGF4aXM9XCJ4eVwiXG4gICAgICAgICAgICBsb2NrVG9Db250YWluZXJFZGdlcz17dHJ1ZX1cbiAgICAgICAgICA+PC9Tb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyPlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzcmMgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2Ugc3JjPXtzcmMgfHwgJyd9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */")); const SortableImageButtonsWrapper = (0, _styledBase.default)("div", { target: "e1awjdnj1", label: "SortableImageButtonsWrapper" })(process.env.NODE_ENV === "production" ? { name: "1qg97th", styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px;" } : { name: "1qg97th", styles: "display:flex;justify-content:center;column-gap:10px;margin-right:20px;margin-top:-10px;margin-bottom:10px;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0M4QyIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgb25jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgdXVpZCBmcm9tICd1dWlkL3Y0JztcbmltcG9ydCB7IG9uZUxpbmUgfSBmcm9tICdjb21tb24tdGFncyc7XG5pbXBvcnQge1xuICBsZW5ndGhzLFxuICBjb21wb25lbnRzLFxuICBidXR0b25zLFxuICBib3JkZXJzLFxuICBlZmZlY3RzLFxuICBzaGFkb3dzLFxuICBJY29uQnV0dG9uLFxufSBmcm9tICduZXRsaWZ5LWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnbmV0bGlmeS1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgU29ydGFibGVDb250YWluZXIsIFNvcnRhYmxlRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNvcnRhYmxlLWhvYyc7XG5pbXBvcnQgeyBhcnJheU1vdmVJbW11dGFibGUgYXMgYXJyYXlNb3ZlIH0gZnJvbSAnYXJyYXktbW92ZSc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZShwcm9wcykge1xuICByZXR1cm4gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiB7Li4ucHJvcHN9IC8+O1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlQnV0dG9ucyh7IG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwibWVkaWFcIiBvbkNsaWNrPXtvblJlcGxhY2V9PjwvSWNvbkJ1dHRvbj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJjbG9zZVwiIG9uQ2xpY2s9e29uUmVtb3ZlfT48L0ljb25CdXR0b24+XG4gICAgPC9Tb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICk7XG59XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2UgPSBTb3J0YWJsZUVsZW1lbnQoKHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2Ugc3JjPXtnZXRBc3NldChpdGVtVmFsdWUsIGZpZWxkKSB8fCAnJ30gLz5cbiAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zXG4gICAgICAgIGl0ZW09e2l0ZW1WYWx1ZX1cbiAgICAgICAgb25SZW1vdmU9e29uUmVtb3ZlfVxuICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZX1cbiAgICAgID48L1NvcnRhYmxlSW1hZ2VCdXR0b25zPlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmNvbnN0IFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIgPSBTb3J0YWJsZUNvbnRhaW5lcihcbiAgKHsgaXRlbXMsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmVPbmUsIG9uUmVwbGFjZU9uZSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtpdGVtcy5tYXAoKGl0ZW1WYWx1ZSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAga2V5PXtgaXRlbS0ke2l0ZW1WYWx1ZX1gfVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgaXRlbVZhbHVlPXtpdGVtVmFsdWV9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2VPbmUoaW5kZXgpfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSxcbik7XG5cbmNvbnN0IEZpbGVMaW5rID0gc3R5bGVkLmFgXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuYDtcblxuY29uc3QgRmlsZUxpbmtzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVMaW5rTGlzdCA9IHN0eWxlZC51bGBcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2V9O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvblJlbW92ZSA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2VEYW5nZXJ9O1xuYDtcblxuZnVuY3Rpb24gaXNNdWx0aXBsZSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgTGlzdC5pc0xpc3QodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBzaXplT2ZWYWx1ZSh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5zaXplO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIExpc3QuaXNMaXN0KHZhbHVlKSA/IHZhbHVlLnRvQXJyYXkoKSA6IHZhbHVlO1xufVxuXG5jb25zdCB3YXJuRGVwcmVjYXRlZE9wdGlvbnMgPSBvbmNlKGZpZWxkID0+XG4gIGNvbnNvbGUud2FybihvbmVMaW5lYFxuICBOZXRsaWZ5IENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IHV1aWQoKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHNpemVPZlZhbHVlKHZhbHVlKSA+IDAgPyBbLi4udmFsdWVdIDogbnVsbCk7XG4gICAgfTtcblxuICAgIG9uUmVwbGFjZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIHJlcGxhY2VJbmRleDogaW5kZXgsXG4gICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBnZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoZmllbGQuaGFzSW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSkpIHtcbiAgICAgICAgd2FybkRlcHJlY2F0ZWRPcHRpb25zKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmdldEluKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10sIE1hcCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkLmdldCgnbWVkaWFfbGlicmFyeScsIE1hcCgpKTtcbiAgICB9O1xuXG4gICAgYWxsb3dzTXVsdGlwbGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJywgZmFsc2UpICYmXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLmdldCgnbXVsdGlwbGUnLCBmYWxzZSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIG9uU29ydEVuZCA9ICh7IG9sZEluZGV4LCBuZXdJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBhcnJheU1vdmUodmFsdWUsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGdldFZhbGlkYXRlVmFsdWUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc011bHRpcGxlKHZhbHVlKSA/IHZhbHVlLm1hcCh2ID0+IGJhc2VuYW1lKHYpKSA6IGJhc2VuYW1lKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGluayA9IHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBNQVhfRElTUExBWV9MRU5HVEg7XG4gICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA8PSBzaXplKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHQgPSBgJHt2YWx1ZS5zbGljZSgwLCBzaXplIC8gMil9XFx1MjAyNiR7dmFsdWUuc2xpY2UoLShzaXplIC8gMikgKyAxKX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZpbGVMaW5rIGhyZWY9e3ZhbHVlfSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZpbGVMaW5rPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmtzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZpbGVMaW5rcz5cbiAgICAgICAgICAgIDxGaWxlTGlua0xpc3Q+XG4gICAgICAgICAgICAgIHt2YWx1ZS5tYXAodmFsID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXt2YWx9Pnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbCl9PC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZpbGVMaW5rTGlzdD5cbiAgICAgICAgICA8L0ZpbGVMaW5rcz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiA8RmlsZUxpbmtzPnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbHVlKX08L0ZpbGVMaW5rcz47XG4gICAgfTtcblxuICAgIHJlbmRlckltYWdlcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QXNzZXQsIHZhbHVlLCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXJcbiAgICAgICAgICAgIGl0ZW1zPXt2YWx1ZX1cbiAgICAgICAgICAgIG9uU29ydEVuZD17dGhpcy5vblNvcnRFbmR9XG4gICAgICAgICAgICBvblJlbW92ZU9uZT17dGhpcy5vblJlbW92ZU9uZX1cbiAgICAgICAgICAgIG9uUmVwbGFjZU9uZT17dGhpcy5vblJlcGxhY2VPbmV9XG4gICAgICAgICAgICBkaXN0YW5jZT17NH1cbiAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgIGF4aXM9XCJ4eVwiXG4gICAgICAgICAgICBsb2NrVG9Db250YWluZXJFZGdlcz17dHJ1ZX1cbiAgICAgICAgICA+PC9Tb3J0YWJsZU11bHRpSW1hZ2VXcmFwcGVyPlxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzcmMgPSBnZXRBc3NldCh2YWx1ZSwgZmllbGQpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEltYWdlV3JhcHBlcj5cbiAgICAgICAgICA8SW1hZ2Ugc3JjPXtzcmMgfHwgJyd9IC8+XG4gICAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgYWxsb3dzTXVsdGlwbGUgPSB0aGlzLmFsbG93c011bHRpcGxlKCk7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIHtmb3JJbWFnZSA/IHRoaXMucmVuZGVySW1hZ2VzKCkgOiBudWxsfVxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7Zm9ySW1hZ2UgPyBudWxsIDogdGhpcy5yZW5kZXJGaWxlTGlua3MoKX1cbiAgICAgICAgICAgIDxGaWxlV2lkZ2V0QnV0dG9uIG9uQ2xpY2s9e3RoaXMuaGFuZGxlQ2hhbmdlfT5cbiAgICAgICAgICAgICAge3QoXG4gICAgICAgICAgICAgICAgYGVkaXRvci5lZGl0b3JXaWRnZXRzLiR7c3ViamVjdH0uJHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdhZGRNb3JlJyA6ICdjaG9vc2VEaWZmZXJlbnQnXG4gICAgICAgICAgICAgICAgfWAsXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAgICB7ZmllbGQuZ2V0KCdjaG9vc2VfdXJsJywgdHJ1ZSkgJiYgIXRoaXMuYWxsb3dzTXVsdGlwbGUoKSA/IChcbiAgICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlcGxhY2VVcmxgKX1cbiAgICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvblJlbW92ZSBvbkNsaWNrPXt0aGlzLmhhbmRsZVJlbW92ZX0+XG4gICAgICAgICAgICAgIHt0KGBlZGl0b3IuZWRpdG9yV2lkZ2V0cy4ke3N1YmplY3R9LnJlbW92ZSR7YWxsb3dzTXVsdGlwbGUgPyAnQWxsJyA6ICcnfWApfVxuICAgICAgICAgICAgPC9GaWxlV2lkZ2V0QnV0dG9uUmVtb3ZlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfTtcblxuICAgIHJlbmRlck5vU2VsZWN0aW9uID0gc3ViamVjdCA9PiB7XG4gICAgICBjb25zdCB7IHQsIGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICA8RmlsZVdpZGdldEJ1dHRvbiBvbkNsaWNrPXt0aGlzLmhhbmRsZUNoYW5nZX0+XG4gICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2Uke3RoaXMuYWxsb3dzTXVsdGlwbGUoKSA/ICdNdWx0aXBsZScgOiAnJ31gKX1cbiAgICAgICAgICA8L0ZpbGVXaWRnZXRCdXR0b24+XG4gICAgICAgICAge2ZpZWxkLmdldCgnY2hvb3NlX3VybCcsIHRydWUpID8gKFxuICAgICAgICAgICAgPEZpbGVXaWRnZXRCdXR0b24gb25DbGljaz17dGhpcy5oYW5kbGVVcmwoc3ViamVjdCl9PlxuICAgICAgICAgICAgICB7dChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5jaG9vc2VVcmxgKX1cbiAgICAgICAgICAgIDwvRmlsZVdpZGdldEJ1dHRvbj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC8+XG4gICAgICApO1xuICAgIH07XG5cbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7IHZhbHVlLCBjbGFzc05hbWVXcmFwcGVyIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3Qgc3ViamVjdCA9IGZvckltYWdlID8gJ2ltYWdlJyA6ICdmaWxlJztcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZVdyYXBwZXJ9PlxuICAgICAgICAgIDxzcGFuPnt2YWx1ZSA/IHRoaXMucmVuZGVyU2VsZWN0aW9uKHN1YmplY3QpIDogdGhpcy5yZW5kZXJOb1NlbGVjdGlvbihzdWJqZWN0KX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0= */", toString: _EMOTION_STRINGIFIED_CSS_ERROR__ }); const StyledImage = (0, _styledBase.default)("img", { target: "e1awjdnj2", label: "StyledImage" })(process.env.NODE_ENV === "production" ? { name: "r91awh", styles: "width:100%;height:100%;object-fit:contain;" } : { name: "r91awh", styles: "width:100%;height:100%;object-fit:contain;", map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93aXRoRmlsZUNvbnRyb2wuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0M4QiIsImZpbGUiOiIuLi8uLi9zcmMvd2l0aEZpbGVDb250cm9sLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgSW1tdXRhYmxlUHJvcFR5cGVzIGZyb20gJ3JlYWN0LWltbXV0YWJsZS1wcm9wdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vY29yZSc7XG5pbXBvcnQgeyBNYXAsIExpc3QgfSBmcm9tICdpbW11dGFibGUnO1xuaW1wb3J0IHsgb25jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgdXVpZCBmcm9tICd1dWlkL3Y0JztcbmltcG9ydCB7IG9uZUxpbmUgfSBmcm9tICdjb21tb24tdGFncyc7XG5pbXBvcnQge1xuICBsZW5ndGhzLFxuICBjb21wb25lbnRzLFxuICBidXR0b25zLFxuICBib3JkZXJzLFxuICBlZmZlY3RzLFxuICBzaGFkb3dzLFxuICBJY29uQnV0dG9uLFxufSBmcm9tICduZXRsaWZ5LWNtcy11aS1kZWZhdWx0JztcbmltcG9ydCB7IGJhc2VuYW1lIH0gZnJvbSAnbmV0bGlmeS1jbXMtbGliLXV0aWwnO1xuaW1wb3J0IHsgU29ydGFibGVDb250YWluZXIsIFNvcnRhYmxlRWxlbWVudCB9IGZyb20gJ3JlYWN0LXNvcnRhYmxlLWhvYyc7XG5pbXBvcnQgeyBhcnJheU1vdmVJbW11dGFibGUgYXMgYXJyYXlNb3ZlIH0gZnJvbSAnYXJyYXktbW92ZSc7XG5cbmNvbnN0IE1BWF9ESVNQTEFZX0xFTkdUSCA9IDUwO1xuXG5jb25zdCBJbWFnZVdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBmbGV4LWJhc2lzOiAxNTVweDtcbiAgd2lkdGg6IDE1NXB4O1xuICBoZWlnaHQ6IDEwMHB4O1xuICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGJvcmRlcjogJHtib3JkZXJzLnRleHRGaWVsZH07XG4gIGJvcmRlci1yYWRpdXM6ICR7bGVuZ3Rocy5ib3JkZXJSYWRpdXN9O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICAke2VmZmVjdHMuY2hlY2tlcmJvYXJkfTtcbiAgJHtzaGFkb3dzLmluc2V0fTtcbiAgY3Vyc29yOiAke3Byb3BzID0+IChwcm9wcy5zb3J0YWJsZSA/ICdwb2ludGVyJyA6ICdhdXRvJyl9O1xuYDtcblxuY29uc3QgU29ydGFibGVJbWFnZUJ1dHRvbnNXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGNvbHVtbi1nYXA6IDEwcHg7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogLTEwcHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbWFnZSA9IHN0eWxlZC5pbWdgXG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XG5gO1xuXG5mdW5jdGlvbiBJbWFnZShwcm9wcykge1xuICByZXR1cm4gPFN0eWxlZEltYWdlIHJvbGU9XCJwcmVzZW50YXRpb25cIiB7Li4ucHJvcHN9IC8+O1xufVxuXG5mdW5jdGlvbiBTb3J0YWJsZUltYWdlQnV0dG9ucyh7IG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkge1xuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICAgICA8SWNvbkJ1dHRvbiBzaXplPVwic21hbGxcIiB0eXBlPVwibWVkaWFcIiBvbkNsaWNrPXtvblJlcGxhY2V9PjwvSWNvbkJ1dHRvbj5cbiAgICAgIDxJY29uQnV0dG9uIHNpemU9XCJzbWFsbFwiIHR5cGU9XCJjbG9zZVwiIG9uQ2xpY2s9e29uUmVtb3ZlfT48L0ljb25CdXR0b24+XG4gICAgPC9Tb3J0YWJsZUltYWdlQnV0dG9uc1dyYXBwZXI+XG4gICk7XG59XG5cbmNvbnN0IFNvcnRhYmxlSW1hZ2UgPSBTb3J0YWJsZUVsZW1lbnQoKHsgaXRlbVZhbHVlLCBnZXRBc3NldCwgZmllbGQsIG9uUmVtb3ZlLCBvblJlcGxhY2UgfSkgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8SW1hZ2VXcmFwcGVyIHNvcnRhYmxlPlxuICAgICAgICA8SW1hZ2Ugc3JjPXtnZXRBc3NldChpdGVtVmFsdWUsIGZpZWxkKSB8fCAnJ30gLz5cbiAgICAgIDwvSW1hZ2VXcmFwcGVyPlxuICAgICAgPFNvcnRhYmxlSW1hZ2VCdXR0b25zXG4gICAgICAgIGl0ZW09e2l0ZW1WYWx1ZX1cbiAgICAgICAgb25SZW1vdmU9e29uUmVtb3ZlfVxuICAgICAgICBvblJlcGxhY2U9e29uUmVwbGFjZX1cbiAgICAgID48L1NvcnRhYmxlSW1hZ2VCdXR0b25zPlxuICAgIDwvZGl2PlxuICApO1xufSk7XG5cbmNvbnN0IFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXIgPSBTb3J0YWJsZUNvbnRhaW5lcihcbiAgKHsgaXRlbXMsIGdldEFzc2V0LCBmaWVsZCwgb25SZW1vdmVPbmUsIG9uUmVwbGFjZU9uZSB9KSA9PiB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY3NzPXtjc3NgXG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGB9XG4gICAgICA+XG4gICAgICAgIHtpdGVtcy5tYXAoKGl0ZW1WYWx1ZSwgaW5kZXgpID0+IChcbiAgICAgICAgICA8U29ydGFibGVJbWFnZVxuICAgICAgICAgICAga2V5PXtgaXRlbS0ke2l0ZW1WYWx1ZX1gfVxuICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgaXRlbVZhbHVlPXtpdGVtVmFsdWV9XG4gICAgICAgICAgICBnZXRBc3NldD17Z2V0QXNzZXR9XG4gICAgICAgICAgICBmaWVsZD17ZmllbGR9XG4gICAgICAgICAgICBvblJlbW92ZT17b25SZW1vdmVPbmUoaW5kZXgpfVxuICAgICAgICAgICAgb25SZXBsYWNlPXtvblJlcGxhY2VPbmUoaW5kZXgpfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfSxcbik7XG5cbmNvbnN0IEZpbGVMaW5rID0gc3R5bGVkLmFgXG4gIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiBpbmhlcml0O1xuXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlLFxuICAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgfVxuYDtcblxuY29uc3QgRmlsZUxpbmtzID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLWJvdHRvbTogMTJweDtcbmA7XG5cbmNvbnN0IEZpbGVMaW5rTGlzdCA9IHN0eWxlZC51bGBcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvbiA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2V9O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgRmlsZVdpZGdldEJ1dHRvblJlbW92ZSA9IHN0eWxlZC5idXR0b25gXG4gICR7YnV0dG9ucy5idXR0b259O1xuICAke2NvbXBvbmVudHMuYmFkZ2VEYW5nZXJ9O1xuYDtcblxuZnVuY3Rpb24gaXNNdWx0aXBsZSh2YWx1ZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgfHwgTGlzdC5pc0xpc3QodmFsdWUpO1xufVxuXG5mdW5jdGlvbiBzaXplT2ZWYWx1ZSh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoO1xuICB9XG5cbiAgaWYgKExpc3QuaXNMaXN0KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5zaXplO1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlID8gMSA6IDA7XG59XG5cbmZ1bmN0aW9uIHZhbHVlTGlzdFRvQXJyYXkodmFsdWUpIHtcbiAgcmV0dXJuIExpc3QuaXNMaXN0KHZhbHVlKSA/IHZhbHVlLnRvQXJyYXkoKSA6IHZhbHVlO1xufVxuXG5jb25zdCB3YXJuRGVwcmVjYXRlZE9wdGlvbnMgPSBvbmNlKGZpZWxkID0+XG4gIGNvbnNvbGUud2FybihvbmVMaW5lYFxuICBOZXRsaWZ5IENNUyBjb25maWc6ICR7ZmllbGQuZ2V0KCduYW1lJyl9IGZpZWxkOiBwcm9wZXJ0eSBcIm9wdGlvbnNcIiBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB0aGVcbiAgJHtmaWVsZC5nZXQoJ3dpZGdldCcpfSB3aWRnZXQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciByZWxlYXNlLiBSYXRoZXIgdGhhblxuICBcXGBmaWVsZC5vcHRpb25zLm1lZGlhX2xpYnJhcnlcXGAsIGFwcGx5IG1lZGlhIGxpYnJhcnkgb3B0aW9ucyBmb3IgdGhpcyB3aWRnZXQgdW5kZXJcbiAgXFxgZmllbGQubWVkaWFfbGlicmFyeVxcYC5cbmApLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gd2l0aEZpbGVDb250cm9sKHsgZm9ySW1hZ2UgfSA9IHt9KSB7XG4gIHJldHVybiBjbGFzcyBGaWxlQ29udHJvbCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gICAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICAgIGZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LmlzUmVxdWlyZWQsXG4gICAgICBnZXRBc3NldDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG1lZGlhUGF0aHM6IEltbXV0YWJsZVByb3BUeXBlcy5tYXAuaXNSZXF1aXJlZCxcbiAgICAgIG9uQWRkQXNzZXQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uT3Blbk1lZGlhTGlicmFyeTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIG9uQ2xlYXJNZWRpYUNvbnRyb2w6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICBvblJlbW92ZU1lZGlhQ29udHJvbDogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIGNsYXNzTmFtZVdyYXBwZXI6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgICAgUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgICAgUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICAgIEltbXV0YWJsZVByb3BUeXBlcy5saXN0T2YoUHJvcFR5cGVzLnN0cmluZyksXG4gICAgICBdKSxcbiAgICAgIHQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB2YWx1ZTogJycsXG4gICAgfTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgICBzdXBlcihwcm9wcyk7XG4gICAgICB0aGlzLmNvbnRyb2xJRCA9IHV1aWQoKTtcbiAgICB9XG5cbiAgICBzaG91bGRDb21wb25lbnRVcGRhdGUobmV4dFByb3BzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEFsd2F5cyB1cGRhdGUgaWYgdGhlIHZhbHVlIG9yIGdldEFzc2V0IGNoYW5nZXMuXG4gICAgICAgKi9cbiAgICAgIGlmICh0aGlzLnByb3BzLnZhbHVlICE9PSBuZXh0UHJvcHMudmFsdWUgfHwgdGhpcy5wcm9wcy5nZXRBc3NldCAhPT0gbmV4dFByb3BzLmdldEFzc2V0KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbWVkaWEgcGF0aCBmb3IgdGhpcyBjb250cm9sIGluIHRoZSBzdGF0ZSBvYmplY3QsIGFuZCB0aGF0XG4gICAgICAgKiBwYXRoIGlzIGRpZmZlcmVudCB0aGFuIHRoZSB2YWx1ZSBpbiBgbmV4dFByb3BzYCwgdXBkYXRlLlxuICAgICAgICovXG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBuZXh0UHJvcHMubWVkaWFQYXRocy5nZXQodGhpcy5jb250cm9sSUQpO1xuICAgICAgaWYgKG1lZGlhUGF0aCAmJiBuZXh0UHJvcHMudmFsdWUgIT09IG1lZGlhUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICAgIGNvbnN0IHsgbWVkaWFQYXRocywgdmFsdWUsIG9uUmVtb3ZlSW5zZXJ0ZWRNZWRpYSwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYVBhdGggPSBtZWRpYVBhdGhzLmdldCh0aGlzLmNvbnRyb2xJRCk7XG4gICAgICBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCAhPT0gdmFsdWUpIHtcbiAgICAgICAgb25DaGFuZ2UobWVkaWFQYXRoKTtcbiAgICAgIH0gZWxzZSBpZiAobWVkaWFQYXRoICYmIG1lZGlhUGF0aCA9PT0gdmFsdWUpIHtcbiAgICAgICAgb25SZW1vdmVJbnNlcnRlZE1lZGlhKHRoaXMuY29udHJvbElEKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIHRoaXMucHJvcHMub25SZW1vdmVNZWRpYUNvbnRyb2wodGhpcy5jb250cm9sSUQpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSA9IGUgPT4ge1xuICAgICAgY29uc3QgeyBmaWVsZCwgb25PcGVuTWVkaWFMaWJyYXJ5LCB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGNvbnN0IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucyA9IHRoaXMuZ2V0TWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zKCk7XG5cbiAgICAgIHJldHVybiBvbk9wZW5NZWRpYUxpYnJhcnkoe1xuICAgICAgICBjb250cm9sSUQ6IHRoaXMuY29udHJvbElELFxuICAgICAgICBmb3JJbWFnZSxcbiAgICAgICAgcHJpdmF0ZVVwbG9hZDogZmllbGQuZ2V0KCdwcml2YXRlJyksXG4gICAgICAgIHZhbHVlOiB2YWx1ZUxpc3RUb0FycmF5KHZhbHVlKSxcbiAgICAgICAgYWxsb3dNdWx0aXBsZTogISFtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMuZ2V0KCdhbGxvd19tdWx0aXBsZScsIHRydWUpLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBoYW5kbGVVcmwgPSBzdWJqZWN0ID0+IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICBjb25zdCB1cmwgPSB3aW5kb3cucHJvbXB0KHRoaXMucHJvcHMudChgZWRpdG9yLmVkaXRvcldpZGdldHMuJHtzdWJqZWN0fS5wcm9tcHRVcmxgKSk7XG5cbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHVybCk7XG4gICAgfTtcblxuICAgIGhhbmRsZVJlbW92ZSA9IGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNsZWFyTWVkaWFDb250cm9sKHRoaXMuY29udHJvbElEKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKCcnKTtcbiAgICB9O1xuXG4gICAgb25SZW1vdmVPbmUgPSBpbmRleCA9PiAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQ2hhbmdlKHNpemVPZlZhbHVlKHZhbHVlKSA+IDAgPyBbLi4udmFsdWVdIDogbnVsbCk7XG4gICAgfTtcblxuICAgIG9uUmVwbGFjZU9uZSA9IGluZGV4ID0+ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZmllbGQsIG9uT3Blbk1lZGlhTGlicmFyeSwgdmFsdWUgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuXG4gICAgICByZXR1cm4gb25PcGVuTWVkaWFMaWJyYXJ5KHtcbiAgICAgICAgY29udHJvbElEOiB0aGlzLmNvbnRyb2xJRCxcbiAgICAgICAgZm9ySW1hZ2UsXG4gICAgICAgIHByaXZhdGVVcGxvYWQ6IGZpZWxkLmdldCgncHJpdmF0ZScpLFxuICAgICAgICB2YWx1ZTogdmFsdWVMaXN0VG9BcnJheSh2YWx1ZSksXG4gICAgICAgIHJlcGxhY2VJbmRleDogaW5kZXgsXG4gICAgICAgIGFsbG93TXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICBjb25maWc6IG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLFxuICAgICAgICBmaWVsZCxcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBnZXRNZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IGZpZWxkIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBpZiAoZmllbGQuaGFzSW4oWydvcHRpb25zJywgJ21lZGlhX2xpYnJhcnknXSkpIHtcbiAgICAgICAgd2FybkRlcHJlY2F0ZWRPcHRpb25zKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmdldEluKFsnb3B0aW9ucycsICdtZWRpYV9saWJyYXJ5J10sIE1hcCgpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGZpZWxkLmdldCgnbWVkaWFfbGlicmFyeScsIE1hcCgpKTtcbiAgICB9O1xuXG4gICAgYWxsb3dzTXVsdGlwbGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBtZWRpYUxpYnJhcnlGaWVsZE9wdGlvbnMgPSB0aGlzLmdldE1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucygpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgbWVkaWFMaWJyYXJ5RmllbGRPcHRpb25zLmdldCgnY29uZmlnJywgZmFsc2UpICYmXG4gICAgICAgIG1lZGlhTGlicmFyeUZpZWxkT3B0aW9ucy5nZXQoJ2NvbmZpZycpLmdldCgnbXVsdGlwbGUnLCBmYWxzZSlcbiAgICAgICk7XG4gICAgfTtcblxuICAgIG9uU29ydEVuZCA9ICh7IG9sZEluZGV4LCBuZXdJbmRleCB9KSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBhcnJheU1vdmUodmFsdWUsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkNoYW5nZShuZXdWYWx1ZSk7XG4gICAgfTtcblxuICAgIGdldFZhbGlkYXRlVmFsdWUgPSAoKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc011bHRpcGxlKHZhbHVlKSA/IHZhbHVlLm1hcCh2ID0+IGJhc2VuYW1lKHYpKSA6IGJhc2VuYW1lKHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH07XG5cbiAgICByZW5kZXJGaWxlTGluayA9IHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBNQVhfRElTUExBWV9MRU5HVEg7XG4gICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA8PSBzaXplKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHRleHQgPSBgJHt2YWx1ZS5zbGljZSgwLCBzaXplIC8gMil9XFx1MjAyNiR7dmFsdWUuc2xpY2UoLShzaXplIC8gMikgKyAxKX1gO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPEZpbGVMaW5rIGhyZWY9e3ZhbHVlfSByZWw9XCJub29wZW5lclwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICA8L0ZpbGVMaW5rPlxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgcmVuZGVyRmlsZUxpbmtzID0gKCkgPT4ge1xuICAgICAgY29uc3QgeyB2YWx1ZSB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPEZpbGVMaW5rcz5cbiAgICAgICAgICAgIDxGaWxlTGlua0xpc3Q+XG4gICAgICAgICAgICAgIHt2YWx1ZS5tYXAodmFsID0+IChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXt2YWx9Pnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbCl9PC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L0ZpbGVMaW5rTGlzdD5cbiAgICAgICAgICA8L0ZpbGVMaW5rcz5cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiA8RmlsZUxpbmtzPnt0aGlzLnJlbmRlckZpbGVMaW5rKHZhbHVlKX08L0ZpbGVMaW5rcz47XG4gICAgfTtcblxuICAgIHJlbmRlckltYWdlcyA9ICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZ2V0QXNzZXQsIHZhbHVlLCBmaWVsZCB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKGlzTXVsdGlwbGUodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPFNvcnRhYmxlTXVsdGlJbWFnZVdyYXBwZXJcbiAgICAgICAgICAgIGl0ZW1zPXt2YWx1ZX1cbiAgICAgICAgICAgIG9uU29ydEVuZD17dGhpcy5vblNvcnRFbmR9XG4gICAgICAgICAgICBvblJlbW92ZU9uZT17dGhpcy5vblJlbW92ZU9uZX1cbiAgICAgICAgICAgIG9uUmVwbGFjZU9uZT17dGhpcy5vblJlcGxhY2VPbmV9XG4gICAgICAgICAgICBkaXN0YW5jZT17NH1cbiAgICAgICAgICAgIGdldEFzc2V0PXtnZXRBc3NldH1cbiAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cbiAgICAgICAgICAgIGF4aXM9XCJ4eVwiXG4gICAgICAgICAgICBsb2NrVG9Db250YWluZXJFZ