UNPKG

matrix-react-sdk

Version:
111 lines (108 loc) 14.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); /* Copyright 2024 New Vector Ltd. Copyright 2019, 2020 The Matrix.org Foundation C.I.C. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ class ResizeItem { constructor(handle, resizer, sizer, container) { (0, _defineProperty2.default)(this, "domNode", void 0); (0, _defineProperty2.default)(this, "id", void 0); (0, _defineProperty2.default)(this, "reverse", void 0); this.resizer = resizer; this.sizer = sizer; this.container = container; this.reverse = resizer.isReverseResizeHandle(handle); if (container) { this.domNode = container; } else { this.domNode = this.reverse ? handle.nextElementSibling : handle.previousElementSibling; } this.id = handle.getAttribute("data-id"); } copyWith(handle, resizer, sizer, container) { const Ctor = this.constructor; return new Ctor(handle, resizer, sizer, container); } advance(forwards) { // opposite direction from fromResizeHandle to get back to handle let handle = this.reverse ? this.domNode.previousElementSibling : this.domNode.nextElementSibling; const moveNext = forwards !== this.reverse; // xor // iterate at least once to avoid infinite loop do { if (moveNext) { handle = handle?.nextElementSibling; } else { handle = handle?.previousElementSibling; } } while (handle && !this.resizer.isResizeHandle(handle)); if (handle) { const nextHandle = this.copyWith(handle, this.resizer, this.sizer); nextHandle.reverse = this.reverse; return nextHandle; } } next() { return this.advance(true); } previous() { return this.advance(false); } size() { return this.sizer.getItemSize(this.domNode); } offset() { return this.sizer.getItemOffset(this.domNode); } start() { this.sizer.start(this.domNode); } finish() { this.sizer.finish(this.domNode); } getSize() { return this.sizer.getDesiredItemSize(this.domNode); } setRawSize(size) { this.sizer.setItemSize(this.domNode, size); } setSize(size) { this.setRawSize(`${Math.round(size)}px`); this.resizer.config?.onResized?.(size, this.id, this.domNode); } clearSize() { this.sizer.clearItemSize(this.domNode); this.resizer.config?.onResized?.(null, this.id, this.domNode); } first() { if (!this.domNode.parentElement?.children) { return; } const firstHandle = Array.from(this.domNode.parentElement.children).find(el => { return this.resizer.isResizeHandle(el); }); if (firstHandle) { return this.copyWith(firstHandle, this.resizer, this.sizer); } } last() { if (!this.domNode.parentElement?.children) { return; } const lastHandle = Array.from(this.domNode.parentElement.children).reverse().find(el => { return this.resizer.isResizeHandle(el); }); if (lastHandle) { return this.copyWith(lastHandle, this.resizer, this.sizer); } } } exports.default = ResizeItem; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZXNpemVJdGVtIiwiY29uc3RydWN0b3IiLCJoYW5kbGUiLCJyZXNpemVyIiwic2l6ZXIiLCJjb250YWluZXIiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsInJldmVyc2UiLCJpc1JldmVyc2VSZXNpemVIYW5kbGUiLCJkb21Ob2RlIiwibmV4dEVsZW1lbnRTaWJsaW5nIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImlkIiwiZ2V0QXR0cmlidXRlIiwiY29weVdpdGgiLCJDdG9yIiwiYWR2YW5jZSIsImZvcndhcmRzIiwibW92ZU5leHQiLCJpc1Jlc2l6ZUhhbmRsZSIsIm5leHRIYW5kbGUiLCJuZXh0IiwicHJldmlvdXMiLCJzaXplIiwiZ2V0SXRlbVNpemUiLCJvZmZzZXQiLCJnZXRJdGVtT2Zmc2V0Iiwic3RhcnQiLCJmaW5pc2giLCJnZXRTaXplIiwiZ2V0RGVzaXJlZEl0ZW1TaXplIiwic2V0UmF3U2l6ZSIsInNldEl0ZW1TaXplIiwic2V0U2l6ZSIsIk1hdGgiLCJyb3VuZCIsImNvbmZpZyIsIm9uUmVzaXplZCIsImNsZWFyU2l6ZSIsImNsZWFySXRlbVNpemUiLCJmaXJzdCIsInBhcmVudEVsZW1lbnQiLCJjaGlsZHJlbiIsImZpcnN0SGFuZGxlIiwiQXJyYXkiLCJmcm9tIiwiZmluZCIsImVsIiwibGFzdCIsImxhc3RIYW5kbGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc2l6ZXIvaXRlbS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAxOSwgMjAyMCBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVzaXplciwgeyBJQ29uZmlnIH0gZnJvbSBcIi4vcmVzaXplclwiO1xuaW1wb3J0IFNpemVyIGZyb20gXCIuL3NpemVyXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc2l6ZUl0ZW08QyBleHRlbmRzIElDb25maWc+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZG9tTm9kZTogSFRNTEVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIHByb3RlY3RlZCByZXZlcnNlOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBoYW5kbGU6IEhUTUxFbGVtZW50LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcmVzaXplcjogUmVzaXplcjxDLCBhbnk+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2l6ZXI6IFNpemVyLFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29udGFpbmVyPzogSFRNTEVsZW1lbnQsXG4gICAgKSB7XG4gICAgICAgIHRoaXMucmV2ZXJzZSA9IHJlc2l6ZXIuaXNSZXZlcnNlUmVzaXplSGFuZGxlKGhhbmRsZSk7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZG9tTm9kZSA9IGNvbnRhaW5lcjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZG9tTm9kZSA9IDxIVE1MRWxlbWVudD4odGhpcy5yZXZlcnNlID8gaGFuZGxlLm5leHRFbGVtZW50U2libGluZyA6IGhhbmRsZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlkID0gaGFuZGxlLmdldEF0dHJpYnV0ZShcImRhdGEtaWRcIik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb3B5V2l0aChcbiAgICAgICAgaGFuZGxlOiBIVE1MRWxlbWVudCxcbiAgICAgICAgcmVzaXplcjogUmVzaXplcjxDLCBhbnk+LFxuICAgICAgICBzaXplcjogU2l6ZXIsXG4gICAgICAgIGNvbnRhaW5lcj86IEhUTUxFbGVtZW50LFxuICAgICk6IFJlc2l6ZUl0ZW08Qz4ge1xuICAgICAgICBjb25zdCBDdG9yID0gdGhpcy5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgUmVzaXplSXRlbTtcbiAgICAgICAgcmV0dXJuIG5ldyBDdG9yKGhhbmRsZSwgcmVzaXplciwgc2l6ZXIsIGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZHZhbmNlKGZvcndhcmRzOiBib29sZWFuKTogUmVzaXplSXRlbTxDPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIC8vIG9wcG9zaXRlIGRpcmVjdGlvbiBmcm9tIGZyb21SZXNpemVIYW5kbGUgdG8gZ2V0IGJhY2sgdG8gaGFuZGxlXG4gICAgICAgIGxldCBoYW5kbGU6IEVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkID0gdGhpcy5yZXZlcnNlXG4gICAgICAgICAgICA/IHRoaXMuZG9tTm9kZS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nXG4gICAgICAgICAgICA6IHRoaXMuZG9tTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgIGNvbnN0IG1vdmVOZXh0ID0gZm9yd2FyZHMgIT09IHRoaXMucmV2ZXJzZTsgLy8geG9yXG4gICAgICAgIC8vIGl0ZXJhdGUgYXQgbGVhc3Qgb25jZSB0byBhdm9pZCBpbmZpbml0ZSBsb29wXG4gICAgICAgIGRvIHtcbiAgICAgICAgICAgIGlmIChtb3ZlTmV4dCkge1xuICAgICAgICAgICAgICAgIGhhbmRsZSA9IGhhbmRsZT8ubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYW5kbGUgPSBoYW5kbGU/LnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gd2hpbGUgKGhhbmRsZSAmJiAhdGhpcy5yZXNpemVyLmlzUmVzaXplSGFuZGxlKDxIVE1MRWxlbWVudD5oYW5kbGUpKTtcblxuICAgICAgICBpZiAoaGFuZGxlKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0SGFuZGxlID0gdGhpcy5jb3B5V2l0aCg8SFRNTEVsZW1lbnQ+aGFuZGxlLCB0aGlzLnJlc2l6ZXIsIHRoaXMuc2l6ZXIpO1xuICAgICAgICAgICAgbmV4dEhhbmRsZS5yZXZlcnNlID0gdGhpcy5yZXZlcnNlO1xuICAgICAgICAgICAgcmV0dXJuIG5leHRIYW5kbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmV4dCgpOiBSZXNpemVJdGVtPEM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWR2YW5jZSh0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJldmlvdXMoKTogUmVzaXplSXRlbTxDPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkdmFuY2UoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaXplKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNpemVyLmdldEl0ZW1TaXplKHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9mZnNldCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplci5nZXRJdGVtT2Zmc2V0KHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXJ0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNpemVyLnN0YXJ0KHRoaXMuZG9tTm9kZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGZpbmlzaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaXplci5maW5pc2godGhpcy5kb21Ob2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U2l6ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplci5nZXREZXNpcmVkSXRlbVNpemUodGhpcy5kb21Ob2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UmF3U2l6ZShzaXplOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaXplci5zZXRJdGVtU2l6ZSh0aGlzLmRvbU5vZGUsIHNpemUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRTaXplKHNpemU6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnNldFJhd1NpemUoYCR7TWF0aC5yb3VuZChzaXplKX1weGApO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuY29uZmlnPy5vblJlc2l6ZWQ/LihzaXplLCB0aGlzLmlkLCB0aGlzLmRvbU5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclNpemUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2l6ZXIuY2xlYXJJdGVtU2l6ZSh0aGlzLmRvbU5vZGUpO1xuICAgICAgICB0aGlzLnJlc2l6ZXIuY29uZmlnPy5vblJlc2l6ZWQ/LihudWxsLCB0aGlzLmlkLCB0aGlzLmRvbU5vZGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaXJzdCgpOiBSZXNpemVJdGVtPEM+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRvbU5vZGUucGFyZW50RWxlbWVudD8uY2hpbGRyZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBmaXJzdEhhbmRsZSA9IEFycmF5LmZyb20odGhpcy5kb21Ob2RlLnBhcmVudEVsZW1lbnQuY2hpbGRyZW4pLmZpbmQoKGVsKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNpemVyLmlzUmVzaXplSGFuZGxlKDxIVE1MRWxlbWVudD5lbCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZmlyc3RIYW5kbGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvcHlXaXRoKDxIVE1MRWxlbWVudD5maXJzdEhhbmRsZSwgdGhpcy5yZXNpemVyLCB0aGlzLnNpemVyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBsYXN0KCk6IFJlc2l6ZUl0ZW08Qz4gfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIXRoaXMuZG9tTm9kZS5wYXJlbnRFbGVtZW50Py5jaGlsZHJlbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3RIYW5kbGUgPSBBcnJheS5mcm9tKHRoaXMuZG9tTm9kZS5wYXJlbnRFbGVtZW50LmNoaWxkcmVuKVxuICAgICAgICAgICAgLnJldmVyc2UoKVxuICAgICAgICAgICAgLmZpbmQoKGVsKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzaXplci5pc1Jlc2l6ZUhhbmRsZSg8SFRNTEVsZW1lbnQ+ZWwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIGlmIChsYXN0SGFuZGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jb3B5V2l0aCg8SFRNTEVsZW1lbnQ+bGFzdEhhbmRsZSwgdGhpcy5yZXNpemVyLCB0aGlzLnNpemVyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFLZSxNQUFNQSxVQUFVLENBQW9CO0VBS3hDQyxXQUFXQSxDQUNkQyxNQUFtQixFQUNIQyxPQUF3QixFQUN4QkMsS0FBWSxFQUNaQyxTQUF1QixFQUN6QztJQUFBLElBQUFDLGdCQUFBLENBQUFDLE9BQUE7SUFBQSxJQUFBRCxnQkFBQSxDQUFBQyxPQUFBO0lBQUEsSUFBQUQsZ0JBQUEsQ0FBQUMsT0FBQTtJQUFBLEtBSGtCSixPQUF3QixHQUF4QkEsT0FBd0I7SUFBQSxLQUN4QkMsS0FBWSxHQUFaQSxLQUFZO0lBQUEsS0FDWkMsU0FBdUIsR0FBdkJBLFNBQXVCO0lBRXZDLElBQUksQ0FBQ0csT0FBTyxHQUFHTCxPQUFPLENBQUNNLHFCQUFxQixDQUFDUCxNQUFNLENBQUM7SUFDcEQsSUFBSUcsU0FBUyxFQUFFO01BQ1gsSUFBSSxDQUFDSyxPQUFPLEdBQUdMLFNBQVM7SUFDNUIsQ0FBQyxNQUFNO01BQ0gsSUFBSSxDQUFDSyxPQUFPLEdBQWlCLElBQUksQ0FBQ0YsT0FBTyxHQUFHTixNQUFNLENBQUNTLGtCQUFrQixHQUFHVCxNQUFNLENBQUNVLHNCQUF1QjtJQUMxRztJQUNBLElBQUksQ0FBQ0MsRUFBRSxHQUFHWCxNQUFNLENBQUNZLFlBQVksQ0FBQyxTQUFTLENBQUM7RUFDNUM7RUFFUUMsUUFBUUEsQ0FDWmIsTUFBbUIsRUFDbkJDLE9BQXdCLEVBQ3hCQyxLQUFZLEVBQ1pDLFNBQXVCLEVBQ1Y7SUFDYixNQUFNVyxJQUFJLEdBQUcsSUFBSSxDQUFDZixXQUFnQztJQUNsRCxPQUFPLElBQUllLElBQUksQ0FBQ2QsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxDQUFDO0VBQ3REO0VBRVFZLE9BQU9BLENBQUNDLFFBQWlCLEVBQTZCO0lBQzFEO0lBQ0EsSUFBSWhCLE1BQWtDLEdBQUcsSUFBSSxDQUFDTSxPQUFPLEdBQy9DLElBQUksQ0FBQ0UsT0FBTyxDQUFDRSxzQkFBc0IsR0FDbkMsSUFBSSxDQUFDRixPQUFPLENBQUNDLGtCQUFrQjtJQUNyQyxNQUFNUSxRQUFRLEdBQUdELFFBQVEsS0FBSyxJQUFJLENBQUNWLE9BQU8sQ0FBQyxDQUFDO0lBQzVDO0lBQ0EsR0FBRztNQUNDLElBQUlXLFFBQVEsRUFBRTtRQUNWakIsTUFBTSxHQUFHQSxNQUFNLEVBQUVTLGtCQUFrQjtNQUN2QyxDQUFDLE1BQU07UUFDSFQsTUFBTSxHQUFHQSxNQUFNLEVBQUVVLHNCQUFzQjtNQUMzQztJQUNKLENBQUMsUUFBUVYsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDQyxPQUFPLENBQUNpQixjQUFjLENBQWNsQixNQUFNLENBQUM7SUFFcEUsSUFBSUEsTUFBTSxFQUFFO01BQ1IsTUFBTW1CLFVBQVUsR0FBRyxJQUFJLENBQUNOLFFBQVEsQ0FBY2IsTUFBTSxFQUFFLElBQUksQ0FBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0MsS0FBSyxDQUFDO01BQy9FaUIsVUFBVSxDQUFDYixPQUFPLEdBQUcsSUFBSSxDQUFDQSxPQUFPO01BQ2pDLE9BQU9hLFVBQVU7SUFDckI7RUFDSjtFQUVPQyxJQUFJQSxDQUFBLEVBQThCO0lBQ3JDLE9BQU8sSUFBSSxDQUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDO0VBQzdCO0VBRU9NLFFBQVFBLENBQUEsRUFBOEI7SUFDekMsT0FBTyxJQUFJLENBQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDOUI7RUFFT08sSUFBSUEsQ0FBQSxFQUFXO0lBQ2xCLE9BQU8sSUFBSSxDQUFDcEIsS0FBSyxDQUFDcUIsV0FBVyxDQUFDLElBQUksQ0FBQ2YsT0FBTyxDQUFDO0VBQy9DO0VBRU9nQixNQUFNQSxDQUFBLEVBQVc7SUFDcEIsT0FBTyxJQUFJLENBQUN0QixLQUFLLENBQUN1QixhQUFhLENBQUMsSUFBSSxDQUFDakIsT0FBTyxDQUFDO0VBQ2pEO0VBRU9rQixLQUFLQSxDQUFBLEVBQVM7SUFDakIsSUFBSSxDQUFDeEIsS0FBSyxDQUFDd0IsS0FBSyxDQUFDLElBQUksQ0FBQ2xCLE9BQU8sQ0FBQztFQUNsQztFQUVPbUIsTUFBTUEsQ0FBQSxFQUFTO0lBQ2xCLElBQUksQ0FBQ3pCLEtBQUssQ0FBQ3lCLE1BQU0sQ0FBQyxJQUFJLENBQUNuQixPQUFPLENBQUM7RUFDbkM7RUFFT29CLE9BQU9BLENBQUEsRUFBVztJQUNyQixPQUFPLElBQUksQ0FBQzFCLEtBQUssQ0FBQzJCLGtCQUFrQixDQUFDLElBQUksQ0FBQ3JCLE9BQU8sQ0FBQztFQUN0RDtFQUVPc0IsVUFBVUEsQ0FBQ1IsSUFBWSxFQUFRO0lBQ2xDLElBQUksQ0FBQ3BCLEtBQUssQ0FBQzZCLFdBQVcsQ0FBQyxJQUFJLENBQUN2QixPQUFPLEVBQUVjLElBQUksQ0FBQztFQUM5QztFQUVPVSxPQUFPQSxDQUFDVixJQUFZLEVBQVE7SUFDL0IsSUFBSSxDQUFDUSxVQUFVLENBQUMsR0FBR0csSUFBSSxDQUFDQyxLQUFLLENBQUNaLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDeEMsSUFBSSxDQUFDckIsT0FBTyxDQUFDa0MsTUFBTSxFQUFFQyxTQUFTLEdBQUdkLElBQUksRUFBRSxJQUFJLENBQUNYLEVBQUUsRUFBRSxJQUFJLENBQUNILE9BQU8sQ0FBQztFQUNqRTtFQUVPNkIsU0FBU0EsQ0FBQSxFQUFTO0lBQ3JCLElBQUksQ0FBQ25DLEtBQUssQ0FBQ29DLGFBQWEsQ0FBQyxJQUFJLENBQUM5QixPQUFPLENBQUM7SUFDdEMsSUFBSSxDQUFDUCxPQUFPLENBQUNrQyxNQUFNLEVBQUVDLFNBQVMsR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDekIsRUFBRSxFQUFFLElBQUksQ0FBQ0gsT0FBTyxDQUFDO0VBQ2pFO0VBRU8rQixLQUFLQSxDQUFBLEVBQThCO0lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMvQixPQUFPLENBQUNnQyxhQUFhLEVBQUVDLFFBQVEsRUFBRTtNQUN2QztJQUNKO0lBQ0EsTUFBTUMsV0FBVyxHQUFHQyxLQUFLLENBQUNDLElBQUksQ0FBQyxJQUFJLENBQUNwQyxPQUFPLENBQUNnQyxhQUFhLENBQUNDLFFBQVEsQ0FBQyxDQUFDSSxJQUFJLENBQUVDLEVBQUUsSUFBSztNQUM3RSxPQUFPLElBQUksQ0FBQzdDLE9BQU8sQ0FBQ2lCLGNBQWMsQ0FBYzRCLEVBQUUsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFDRixJQUFJSixXQUFXLEVBQUU7TUFDYixPQUFPLElBQUksQ0FBQzdCLFFBQVEsQ0FBYzZCLFdBQVcsRUFBRSxJQUFJLENBQUN6QyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDNUU7RUFDSjtFQUVPNkMsSUFBSUEsQ0FBQSxFQUE4QjtJQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDdkMsT0FBTyxDQUFDZ0MsYUFBYSxFQUFFQyxRQUFRLEVBQUU7TUFDdkM7SUFDSjtJQUNBLE1BQU1PLFVBQVUsR0FBR0wsS0FBSyxDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDcEMsT0FBTyxDQUFDZ0MsYUFBYSxDQUFDQyxRQUFRLENBQUMsQ0FDN0RuQyxPQUFPLENBQUMsQ0FBQyxDQUNUdUMsSUFBSSxDQUFFQyxFQUFFLElBQUs7TUFDVixPQUFPLElBQUksQ0FBQzdDLE9BQU8sQ0FBQ2lCLGNBQWMsQ0FBYzRCLEVBQUUsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFDTixJQUFJRSxVQUFVLEVBQUU7TUFDWixPQUFPLElBQUksQ0FBQ25DLFFBQVEsQ0FBY21DLFVBQVUsRUFBRSxJQUFJLENBQUMvQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDM0U7RUFDSjtBQUNKO0FBQUMrQyxPQUFBLENBQUE1QyxPQUFBLEdBQUFQLFVBQUEiLCJpZ25vcmVMaXN0IjpbXX0=