adui
Version:
<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>
113 lines (99 loc) • 16.8 kB
JavaScript
var _excluded = ["alignEdge", "arrowed", "autoAdjustPlacement", "children", "getPopupContainer", "placement", "popup", "popupClassName", "popupStyle"];
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React, { forwardRef, useContext, useMemo } from "react";
import PropTypes from "prop-types";
import classNames from "classnames";
import { ConfigContext } from "../config-provider";
import Tooltip from "../tooltip";
import getPlacements from "./placements";
import "./style";
var prefix = "adui-popover";
var Popover = forwardRef(function (_ref, ref) {
var _classNames;
var alignEdge = _ref.alignEdge,
arrowed = _ref.arrowed,
_ref$autoAdjustPlacem = _ref.autoAdjustPlacement,
autoAdjustPlacement = _ref$autoAdjustPlacem === void 0 ? true : _ref$autoAdjustPlacem,
children = _ref.children,
getPopupContainer = _ref.getPopupContainer,
placement = _ref.placement,
popup = _ref.popup,
popupClassName = _ref.popupClassName,
popupStyle = _ref.popupStyle,
otherProps = _objectWithoutProperties(_ref, _excluded);
var _useContext = useContext(ConfigContext),
getPopupContainerContext = _useContext.getPopupContainer;
var popupTransitionName = useMemo(function () {
if (arrowed) {
return "zoom-big";
}
if (placement && placement.indexOf("top") === 0) {
return "slide-down";
}
if (placement && placement.indexOf("right") === 0) {
return "slide-left";
}
if (placement && placement.indexOf("left") === 0) {
return "slide-right";
}
return "slide-up";
}, [arrowed, placement]);
return React.createElement(Tooltip, _extends({
autoAdjustPlacement: autoAdjustPlacement,
getPopupContainer: getPopupContainer || getPopupContainerContext,
placement: placement,
popup: popup,
popupClassName: classNames("".concat(prefix, "-popover"), popupClassName, (_classNames = {}, _defineProperty(_classNames, "".concat(prefix, "-popover_noArrow"), !arrowed), _defineProperty(_classNames, "".concat(prefix, "-removeContentPadding"), !arrowed || typeof popup !== "string"), _classNames)),
popupStyle: arrowed ? popupStyle : _objectSpread({
padding: 0
}, popupStyle),
popupTransitionName: popupTransitionName,
builtinPlacements: getPlacements({
alignEdge: alignEdge,
autoAdjustPlacement: autoAdjustPlacement
}),
ref: ref
}, otherProps), children);
});
Popover.displayName = "Popover";
Popover.propTypes = {
alignEdge: PropTypes.bool,
arrowed: PropTypes.bool,
children: PropTypes.node,
defaultVisible: PropTypes.oneOf([null, true, false]),
getPopupContainer: PropTypes.func,
forceRender: PropTypes.bool,
mouseEnterDelay: PropTypes.number,
mouseLeaveDelay: PropTypes.number,
onVisibleChange: PropTypes.func,
placement: PropTypes.oneOf(["top", "left", "right", "bottom", "topLeft", "topRight", "bottomLeft", "bottomRight", "leftTop", "leftBottom", "rightTop", "rightBottom"]),
popup: PropTypes.node,
popupClassName: PropTypes.string,
popupStyle: PropTypes.object,
trigger: PropTypes.oneOf(["hover", "focus", "click"]),
visible: PropTypes.oneOf([null, true, false])
};
Popover.defaultProps = {
alignEdge: true,
arrowed: true,
children: "",
defaultVisible: null,
getPopupContainer: null,
forceRender: false,
mouseEnterDelay: 0,
mouseLeaveDelay: 0.1,
onVisibleChange: function onVisibleChange() {},
placement: "bottomLeft",
popup: "文字提示",
popupClassName: "",
popupStyle: {},
trigger: "hover",
visible: null
};
export default Popover;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImZvcndhcmRSZWYiLCJ1c2VDb250ZXh0IiwidXNlTWVtbyIsIlByb3BUeXBlcyIsImNsYXNzTmFtZXMiLCJDb25maWdDb250ZXh0IiwiVG9vbHRpcCIsImdldFBsYWNlbWVudHMiLCJwcmVmaXgiLCJQb3BvdmVyIiwicmVmIiwiYWxpZ25FZGdlIiwiYXJyb3dlZCIsImF1dG9BZGp1c3RQbGFjZW1lbnQiLCJjaGlsZHJlbiIsImdldFBvcHVwQ29udGFpbmVyIiwicGxhY2VtZW50IiwicG9wdXAiLCJwb3B1cENsYXNzTmFtZSIsInBvcHVwU3R5bGUiLCJvdGhlclByb3BzIiwiZ2V0UG9wdXBDb250YWluZXJDb250ZXh0IiwicG9wdXBUcmFuc2l0aW9uTmFtZSIsImluZGV4T2YiLCJwYWRkaW5nIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJib29sIiwibm9kZSIsImRlZmF1bHRWaXNpYmxlIiwib25lT2YiLCJmdW5jIiwiZm9yY2VSZW5kZXIiLCJtb3VzZUVudGVyRGVsYXkiLCJudW1iZXIiLCJtb3VzZUxlYXZlRGVsYXkiLCJvblZpc2libGVDaGFuZ2UiLCJzdHJpbmciLCJvYmplY3QiLCJ0cmlnZ2VyIiwidmlzaWJsZSIsImRlZmF1bHRQcm9wcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvcG9wb3Zlci9Qb3BvdmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgdXNlQ29udGV4dCwgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gXCJjbGFzc25hbWVzXCJcbmltcG9ydCB7IENvbmZpZ0NvbnRleHQgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCBUb29sdGlwLCB7IElUb29sdGlwUHJvcHMgfSBmcm9tIFwiLi4vdG9vbHRpcFwiXG5pbXBvcnQgZ2V0UGxhY2VtZW50cyBmcm9tIFwiLi9wbGFjZW1lbnRzXCJcbmltcG9ydCBcIi4vc3R5bGVcIlxuXG5jb25zdCBwcmVmaXggPSBcImFkdWktcG9wb3ZlclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBvcG92ZXJQcm9wcyBleHRlbmRzIElUb29sdGlwUHJvcHMge1xuICBba2V5OiBzdHJpbmddOiBhbnlcbiAgLyoqXG4gICAqIOaYr+WQpui+uee8mOWvuem9kFxuICAgKi9cbiAgYWxpZ25FZGdlPzogYm9vbGVhblxuICAvKipcbiAgICog5piv5ZCm5bim5pyJ566t5aS0XG4gICAqL1xuICBhcnJvd2VkPzogYm9vbGVhblxufVxuXG4vKipcbiAqIOawlOazoeaPkOekuueUqOS6juinpuWPkeOAgeaTjeS9nOafkOmhueS/oeaBr+S4tOaXtuaAp+W8ueWHuueahOWGheWuue+8jOmrmOS6juW9k+WJjemhtemdouWxgue6p++8jOS4uuWGheWuueeahOi9u+mHj+W7tuS8uOOAglxuICogUG9wb3ZlciDmmK/ln7rkuo4gVG9vbHRpcCDov5vooYzlsIHoo4XnmoTjgIJcbiAqIOWPr+iDveaYr+aWh+Wtl+ino+mHiu+8jOS5n+WPr+iDveWGhea2teaTjeS9nO+8jOWPr+iuvue9ruW4pueureWktOOAgeaIluS4jeW4pueureWktOOAglxuICogUG9wb3ZlciDpu5jorqTovrnnvJjlr7npvZDjgIJcbiAqL1xuY29uc3QgUG9wb3ZlcjogUmVhY3QuRm9yd2FyZFJlZkV4b3RpY0NvbXBvbmVudDxcbiAgSVBvcG92ZXJQcm9wcyAmIFJlYWN0LlJlZkF0dHJpYnV0ZXM8YW55PlxuPiA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBhbGlnbkVkZ2UsXG4gICAgICBhcnJvd2VkLFxuICAgICAgYXV0b0FkanVzdFBsYWNlbWVudCA9IHRydWUsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGdldFBvcHVwQ29udGFpbmVyLFxuICAgICAgcGxhY2VtZW50LFxuICAgICAgcG9wdXAsXG4gICAgICBwb3B1cENsYXNzTmFtZSxcbiAgICAgIHBvcHVwU3R5bGUsXG4gICAgICAuLi5vdGhlclByb3BzXG4gICAgfTogSVBvcG92ZXJQcm9wcyxcbiAgICByZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgeyBnZXRQb3B1cENvbnRhaW5lcjogZ2V0UG9wdXBDb250YWluZXJDb250ZXh0IH0gPVxuICAgICAgdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuXG4gICAgY29uc3QgcG9wdXBUcmFuc2l0aW9uTmFtZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKGFycm93ZWQpIHtcbiAgICAgICAgcmV0dXJuIFwiem9vbS1iaWdcIlxuICAgICAgfVxuICAgICAgaWYgKHBsYWNlbWVudCAmJiBwbGFjZW1lbnQuaW5kZXhPZihcInRvcFwiKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJzbGlkZS1kb3duXCJcbiAgICAgIH1cbiAgICAgIGlmIChwbGFjZW1lbnQgJiYgcGxhY2VtZW50LmluZGV4T2YoXCJyaWdodFwiKSA9PT0gMCkge1xuICAgICAgICByZXR1cm4gXCJzbGlkZS1sZWZ0XCJcbiAgICAgIH1cbiAgICAgIGlmIChwbGFjZW1lbnQgJiYgcGxhY2VtZW50LmluZGV4T2YoXCJsZWZ0XCIpID09PSAwKSB7XG4gICAgICAgIHJldHVybiBcInNsaWRlLXJpZ2h0XCJcbiAgICAgIH1cbiAgICAgIHJldHVybiBcInNsaWRlLXVwXCJcbiAgICB9LCBbYXJyb3dlZCwgcGxhY2VtZW50XSlcblxuICAgIHJldHVybiAoXG4gICAgICA8VG9vbHRpcFxuICAgICAgICBhdXRvQWRqdXN0UGxhY2VtZW50PXthdXRvQWRqdXN0UGxhY2VtZW50fVxuICAgICAgICBnZXRQb3B1cENvbnRhaW5lcj17Z2V0UG9wdXBDb250YWluZXIgfHwgZ2V0UG9wdXBDb250YWluZXJDb250ZXh0fVxuICAgICAgICBwbGFjZW1lbnQ9e3BsYWNlbWVudH1cbiAgICAgICAgcG9wdXA9e3BvcHVwfVxuICAgICAgICBwb3B1cENsYXNzTmFtZT17Y2xhc3NOYW1lcyhgJHtwcmVmaXh9LXBvcG92ZXJgLCBwb3B1cENsYXNzTmFtZSwge1xuICAgICAgICAgIFtgJHtwcmVmaXh9LXBvcG92ZXJfbm9BcnJvd2BdOiAhYXJyb3dlZCxcbiAgICAgICAgICBbYCR7cHJlZml4fS1yZW1vdmVDb250ZW50UGFkZGluZ2BdOlxuICAgICAgICAgICAgIWFycm93ZWQgfHwgdHlwZW9mIHBvcHVwICE9PSBcInN0cmluZ1wiLFxuICAgICAgICB9KX1cbiAgICAgICAgcG9wdXBTdHlsZT17YXJyb3dlZCA/IHBvcHVwU3R5bGUgOiB7IHBhZGRpbmc6IDAsIC4uLnBvcHVwU3R5bGUgfX1cbiAgICAgICAgcG9wdXBUcmFuc2l0aW9uTmFtZT17cG9wdXBUcmFuc2l0aW9uTmFtZX1cbiAgICAgICAgYnVpbHRpblBsYWNlbWVudHM9e2dldFBsYWNlbWVudHMoeyBhbGlnbkVkZ2UsIGF1dG9BZGp1c3RQbGFjZW1lbnQgfSl9XG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9Ub29sdGlwPlxuICAgIClcbiAgfVxuKVxuXG5Qb3BvdmVyLmRpc3BsYXlOYW1lID0gXCJQb3BvdmVyXCJcblxuUG9wb3Zlci5wcm9wVHlwZXMgPSB7XG4gIC8qKlxuICAgKiDmmK/lkKbovrnnvJjlr7npvZBcbiAgICovXG4gIGFsaWduRWRnZTogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDmmK/lkKbluKbmnInnrq3lpLRcbiAgICovXG4gIGFycm93ZWQ6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog5a2Q6IqC54K5XG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIC8qKlxuICAgKiDmsJTms6Hmj5DnpLrmmK/lkKbpu5jorqTmmL7npLpcbiAgICovXG4gIGRlZmF1bHRWaXNpYmxlOiBQcm9wVHlwZXMub25lT2YoW251bGwsIHRydWUsIGZhbHNlXSksXG4gIC8qKlxuICAgKiDmjIflrprmsJTms6Hmj5DnpLrnmoTniLbnuqfvvIzpu5jorqTkuLogZG9jdW1lbnRcbiAgICovXG4gIGdldFBvcHVwQ29udGFpbmVyOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIGZvcmNlUmVuZGVyIGJlZm9yZSBmaXJzdCB2aXNpYmxlXG4gICAqL1xuICBmb3JjZVJlbmRlcjogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiBtb3VzZUVudGVyIOaYvuekuueahOW7tuaXtu+8jOWNleS9je+8mnPvvIzlj6rlnKggdHJpZ2dlcj1cImhvdmVyXCIg5pe25pyJ5pWIXG4gICAqL1xuICBtb3VzZUVudGVyRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKlxuICAgKiBtb3VzZUxlYXZlIOa2iOWkseeahOW7tuaXtu+8jOWNleS9je+8mnPvvIzlj6rlnKggdHJpZ2dlcj1cImhvdmVyXCIg5pe25pyJ5pWIXG4gICAqL1xuICBtb3VzZUxlYXZlRGVsYXk6IFByb3BUeXBlcy5udW1iZXIsXG4gIC8qKlxuICAgKiDmmL7npLrlj5HnlJ/lj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25WaXNpYmxlQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgLyoqXG4gICAqIOW8ueWHuuWxguS9jee9rlxuICAgKi9cbiAgcGxhY2VtZW50OiBQcm9wVHlwZXMub25lT2YoW1xuICAgIFwidG9wXCIsXG4gICAgXCJsZWZ0XCIsXG4gICAgXCJyaWdodFwiLFxuICAgIFwiYm90dG9tXCIsXG4gICAgXCJ0b3BMZWZ0XCIsXG4gICAgXCJ0b3BSaWdodFwiLFxuICAgIFwiYm90dG9tTGVmdFwiLFxuICAgIFwiYm90dG9tUmlnaHRcIixcbiAgICBcImxlZnRUb3BcIixcbiAgICBcImxlZnRCb3R0b21cIixcbiAgICBcInJpZ2h0VG9wXCIsXG4gICAgXCJyaWdodEJvdHRvbVwiLFxuICBdKSxcbiAgLyoqXG4gICAqIOW8ueWHuuWGheWuuVxuICAgKi9cbiAgcG9wdXA6IFByb3BUeXBlcy5ub2RlLFxuICAvKipcbiAgICog5by55Ye65qGG55qE6ZmE5Yqg57G75ZCNXG4gICAqL1xuICBwb3B1cENsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOawlOazoeaPkOekuueahOmZhOWKoOagt+W8j1xuICAgKi9cbiAgcG9wdXBTdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqXG4gICAqIOinpuWPkeaWueW8j1xuICAgKi9cbiAgdHJpZ2dlcjogUHJvcFR5cGVzLm9uZU9mKFtcImhvdmVyXCIsIFwiZm9jdXNcIiwgXCJjbGlja1wiXSksXG4gIC8qKlxuICAgKiDmiYvliqjmjqfliLbmsJTms6Hmj5DnpLrmmK/lkKbmmL7npLpcbiAgICovXG4gIHZpc2libGU6IFByb3BUeXBlcy5vbmVPZihbbnVsbCwgdHJ1ZSwgZmFsc2VdKSxcbn1cblxuUG9wb3Zlci5kZWZhdWx0UHJvcHMgPSB7XG4gIGFsaWduRWRnZTogdHJ1ZSxcbiAgYXJyb3dlZDogdHJ1ZSxcbiAgY2hpbGRyZW46IFwiXCIsXG4gIGRlZmF1bHRWaXNpYmxlOiBudWxsLFxuICBnZXRQb3B1cENvbnRhaW5lcjogbnVsbCxcbiAgZm9yY2VSZW5kZXI6IGZhbHNlLFxuICBtb3VzZUVudGVyRGVsYXk6IDAsXG4gIG1vdXNlTGVhdmVEZWxheTogMC4xLFxuICBvblZpc2libGVDaGFuZ2U6ICgpID0+IHt9LFxuICBwbGFjZW1lbnQ6IFwiYm90dG9tTGVmdFwiLFxuICBwb3B1cDogXCLmloflrZfmj5DnpLpcIixcbiAgcG9wdXBDbGFzc05hbWU6IFwiXCIsXG4gIHBvcHVwU3R5bGU6IHt9LFxuICB0cmlnZ2VyOiBcImhvdmVyXCIsXG4gIHZpc2libGU6IG51bGwsXG59XG5cbmV4cG9ydCBkZWZhdWx0IFBvcG92ZXJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQWdCQyxVQUFoQixFQUE0QkMsVUFBNUIsRUFBd0NDLE9BQXhDLFFBQXVELE9BQXZEO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixZQUF0QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsWUFBdkI7QUFDQSxTQUFTQyxhQUFULFFBQThCLG9CQUE5QjtBQUNBLE9BQU9DLE9BQVAsTUFBdUMsWUFBdkM7QUFDQSxPQUFPQyxhQUFQLE1BQTBCLGNBQTFCO0FBQ0EsT0FBTyxTQUFQO0FBRUEsSUFBTUMsTUFBTSxHQUFHLGNBQWY7QUFvQkEsSUFBTUMsT0FFTCxHQUFHVCxVQUFVLENBQ1osZ0JBYUVVLEdBYkYsRUFjSztFQUFBOztFQUFBLElBWkRDLFNBWUMsUUFaREEsU0FZQztFQUFBLElBWERDLE9BV0MsUUFYREEsT0FXQztFQUFBLGlDQVZEQyxtQkFVQztFQUFBLElBVkRBLG1CQVVDLHNDQVZxQixJQVVyQjtFQUFBLElBVERDLFFBU0MsUUFUREEsUUFTQztFQUFBLElBUkRDLGlCQVFDLFFBUkRBLGlCQVFDO0VBQUEsSUFQREMsU0FPQyxRQVBEQSxTQU9DO0VBQUEsSUFOREMsS0FNQyxRQU5EQSxLQU1DO0VBQUEsSUFMREMsY0FLQyxRQUxEQSxjQUtDO0VBQUEsSUFKREMsVUFJQyxRQUpEQSxVQUlDO0VBQUEsSUFIRUMsVUFHRjs7RUFDSCxrQkFDRW5CLFVBQVUsQ0FBQ0ksYUFBRCxDQURaO0VBQUEsSUFBMkJnQix3QkFBM0IsZUFBUU4saUJBQVI7O0VBR0EsSUFBTU8sbUJBQW1CLEdBQUdwQixPQUFPLENBQUMsWUFBTTtJQUN4QyxJQUFJVSxPQUFKLEVBQWE7TUFDWCxPQUFPLFVBQVA7SUFDRDs7SUFDRCxJQUFJSSxTQUFTLElBQUlBLFNBQVMsQ0FBQ08sT0FBVixDQUFrQixLQUFsQixNQUE2QixDQUE5QyxFQUFpRDtNQUMvQyxPQUFPLFlBQVA7SUFDRDs7SUFDRCxJQUFJUCxTQUFTLElBQUlBLFNBQVMsQ0FBQ08sT0FBVixDQUFrQixPQUFsQixNQUErQixDQUFoRCxFQUFtRDtNQUNqRCxPQUFPLFlBQVA7SUFDRDs7SUFDRCxJQUFJUCxTQUFTLElBQUlBLFNBQVMsQ0FBQ08sT0FBVixDQUFrQixNQUFsQixNQUE4QixDQUEvQyxFQUFrRDtNQUNoRCxPQUFPLGFBQVA7SUFDRDs7SUFDRCxPQUFPLFVBQVA7RUFDRCxDQWRrQyxFQWNoQyxDQUFDWCxPQUFELEVBQVVJLFNBQVYsQ0FkZ0MsQ0FBbkM7RUFnQkEsT0FDRSxvQkFBQyxPQUFEO0lBQ0UsbUJBQW1CLEVBQUVILG1CQUR2QjtJQUVFLGlCQUFpQixFQUFFRSxpQkFBaUIsSUFBSU0sd0JBRjFDO0lBR0UsU0FBUyxFQUFFTCxTQUhiO0lBSUUsS0FBSyxFQUFFQyxLQUpUO0lBS0UsY0FBYyxFQUFFYixVQUFVLFdBQUlJLE1BQUosZUFBc0JVLGNBQXRCLDREQUNwQlYsTUFEb0IsdUJBQ08sQ0FBQ0ksT0FEUiwwQ0FFcEJKLE1BRm9CLDRCQUd0QixDQUFDSSxPQUFELElBQVksT0FBT0ssS0FBUCxLQUFpQixRQUhQLGdCQUw1QjtJQVVFLFVBQVUsRUFBRUwsT0FBTyxHQUFHTyxVQUFIO01BQWtCSyxPQUFPLEVBQUU7SUFBM0IsR0FBaUNMLFVBQWpDLENBVnJCO0lBV0UsbUJBQW1CLEVBQUVHLG1CQVh2QjtJQVlFLGlCQUFpQixFQUFFZixhQUFhLENBQUM7TUFBRUksU0FBUyxFQUFUQSxTQUFGO01BQWFFLG1CQUFtQixFQUFuQkE7SUFBYixDQUFELENBWmxDO0lBYUUsR0FBRyxFQUFFSDtFQWJQLEdBY01VLFVBZE4sR0FnQkdOLFFBaEJILENBREY7QUFvQkQsQ0F2RFcsQ0FGZDtBQTREQUwsT0FBTyxDQUFDZ0IsV0FBUixHQUFzQixTQUF0QjtBQUVBaEIsT0FBTyxDQUFDaUIsU0FBUixHQUFvQjtFQUlsQmYsU0FBUyxFQUFFUixTQUFTLENBQUN3QixJQUpIO0VBUWxCZixPQUFPLEVBQUVULFNBQVMsQ0FBQ3dCLElBUkQ7RUFZbEJiLFFBQVEsRUFBRVgsU0FBUyxDQUFDeUIsSUFaRjtFQWdCbEJDLGNBQWMsRUFBRTFCLFNBQVMsQ0FBQzJCLEtBQVYsQ0FBZ0IsQ0FBQyxJQUFELEVBQU8sSUFBUCxFQUFhLEtBQWIsQ0FBaEIsQ0FoQkU7RUFvQmxCZixpQkFBaUIsRUFBRVosU0FBUyxDQUFDNEIsSUFwQlg7RUF3QmxCQyxXQUFXLEVBQUU3QixTQUFTLENBQUN3QixJQXhCTDtFQTRCbEJNLGVBQWUsRUFBRTlCLFNBQVMsQ0FBQytCLE1BNUJUO0VBZ0NsQkMsZUFBZSxFQUFFaEMsU0FBUyxDQUFDK0IsTUFoQ1Q7RUFvQ2xCRSxlQUFlLEVBQUVqQyxTQUFTLENBQUM0QixJQXBDVDtFQXdDbEJmLFNBQVMsRUFBRWIsU0FBUyxDQUFDMkIsS0FBVixDQUFnQixDQUN6QixLQUR5QixFQUV6QixNQUZ5QixFQUd6QixPQUh5QixFQUl6QixRQUp5QixFQUt6QixTQUx5QixFQU16QixVQU55QixFQU96QixZQVB5QixFQVF6QixhQVJ5QixFQVN6QixTQVR5QixFQVV6QixZQVZ5QixFQVd6QixVQVh5QixFQVl6QixhQVp5QixDQUFoQixDQXhDTztFQXlEbEJiLEtBQUssRUFBRWQsU0FBUyxDQUFDeUIsSUF6REM7RUE2RGxCVixjQUFjLEVBQUVmLFNBQVMsQ0FBQ2tDLE1BN0RSO0VBaUVsQmxCLFVBQVUsRUFBRWhCLFNBQVMsQ0FBQ21DLE1BakVKO0VBcUVsQkMsT0FBTyxFQUFFcEMsU0FBUyxDQUFDMkIsS0FBVixDQUFnQixDQUFDLE9BQUQsRUFBVSxPQUFWLEVBQW1CLE9BQW5CLENBQWhCLENBckVTO0VBeUVsQlUsT0FBTyxFQUFFckMsU0FBUyxDQUFDMkIsS0FBVixDQUFnQixDQUFDLElBQUQsRUFBTyxJQUFQLEVBQWEsS0FBYixDQUFoQjtBQXpFUyxDQUFwQjtBQTRFQXJCLE9BQU8sQ0FBQ2dDLFlBQVIsR0FBdUI7RUFDckI5QixTQUFTLEVBQUUsSUFEVTtFQUVyQkMsT0FBTyxFQUFFLElBRlk7RUFHckJFLFFBQVEsRUFBRSxFQUhXO0VBSXJCZSxjQUFjLEVBQUUsSUFKSztFQUtyQmQsaUJBQWlCLEVBQUUsSUFMRTtFQU1yQmlCLFdBQVcsRUFBRSxLQU5RO0VBT3JCQyxlQUFlLEVBQUUsQ0FQSTtFQVFyQkUsZUFBZSxFQUFFLEdBUkk7RUFTckJDLGVBQWUsRUFBRSwyQkFBTSxDQUFFLENBVEo7RUFVckJwQixTQUFTLEVBQUUsWUFWVTtFQVdyQkMsS0FBSyxFQUFFLE1BWGM7RUFZckJDLGNBQWMsRUFBRSxFQVpLO0VBYXJCQyxVQUFVLEVBQUUsRUFiUztFQWNyQm9CLE9BQU8sRUFBRSxPQWRZO0VBZXJCQyxPQUFPLEVBQUU7QUFmWSxDQUF2QjtBQWtCQSxlQUFlL0IsT0FBZiJ9