Files
2025-03-07 19:22:02 +01:00

134 lines
13 KiB
JavaScript

"use strict";
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
useDisposable: () => useDisposable,
useIsStrictMode: () => useIsStrictMode
});
module.exports = __toCommonJS(src_exports);
// src/useIsStrictMode.ts
var React = __toESM(require("react"), 1);
var getCurrentOwner = () => {
try {
return React["".concat(
"__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE"
)].A.getOwner();
} catch {
}
try {
return React["".concat("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED")].ReactCurrentOwner.current;
} catch {
if (process.env.NODE_ENV !== "production") {
console.error(
"use-disposable: failed to get current fiber, please report this bug to maintainers"
);
}
}
};
var REACT_STRICT_MODE_TYPE = /* @__PURE__ */ Symbol.for("react.strict_mode");
var useIsStrictMode = () => {
if (process.env.NODE_ENV === "production") {
return false;
}
const isStrictMode = React.useRef(void 0);
const reactMajorVersion = React.useMemo(() => {
return Number(React.version.split(".")[0]);
}, [React.version]);
if (isNaN(reactMajorVersion) || reactMajorVersion < 18) {
return false;
}
if (isStrictMode.current === void 0) {
let currentOwner = getCurrentOwner();
while (currentOwner && currentOwner.return) {
currentOwner = currentOwner.return;
if (currentOwner.type === REACT_STRICT_MODE_TYPE || currentOwner.elementType === REACT_STRICT_MODE_TYPE) {
isStrictMode.current = true;
}
}
}
return !!isStrictMode.current;
};
// src/useDisposable.ts
var React4 = __toESM(require("react"), 1);
// src/useStrictEffect.ts
var React2 = __toESM(require("react"), 1);
var effectSet = /* @__PURE__ */ new WeakSet();
function useStrictEffect(effect, deps) {
const currentOwner = getCurrentOwner();
React2.useEffect(() => {
if (!effectSet.has(currentOwner)) {
effectSet.add(currentOwner);
effect();
return;
}
const dispose = effect();
return dispose;
}, deps);
}
// src/useStrictMemo.ts
var React3 = __toESM(require("react"), 1);
var memoSet = /* @__PURE__ */ new WeakSet();
function useStrictMemo(factory, deps) {
return React3.useMemo(() => {
const currentOwner = getCurrentOwner();
if (!memoSet.has(currentOwner)) {
memoSet.add(currentOwner);
return null;
}
return factory();
}, deps);
}
// src/useDisposable.ts
function useDisposable(factory, deps) {
var _a;
const isStrictMode = useIsStrictMode() && process.env.NODE_ENV !== "production";
const useMemo4 = isStrictMode ? useStrictMemo : React4.useMemo;
const useEffect3 = isStrictMode ? useStrictEffect : React4.useEffect;
const [disposable, dispose] = (_a = useMemo4(() => factory(), deps)) != null ? _a : [
null,
() => null
];
useEffect3(() => {
return dispose;
}, deps);
return disposable;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
useDisposable,
useIsStrictMode
});
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2luZGV4LnRzIiwgIi4uL3NyYy91c2VJc1N0cmljdE1vZGUudHMiLCAiLi4vc3JjL3VzZURpc3Bvc2FibGUudHMiLCAiLi4vc3JjL3VzZVN0cmljdEVmZmVjdC50cyIsICIuLi9zcmMvdXNlU3RyaWN0TWVtby50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiZXhwb3J0IHsgdXNlSXNTdHJpY3RNb2RlIH0gZnJvbSBcIi4vdXNlSXNTdHJpY3RNb2RlXCI7XG5leHBvcnQgeyB1c2VEaXNwb3NhYmxlIH0gZnJvbSBcIi4vdXNlRGlzcG9zYWJsZVwiO1xuZXhwb3J0IHR5cGUgeyBEaXNwb3NhYmxlRmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG4iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5cbi8qKlxuICogQHJldHVybnMgQ3VycmVudCByZWFjdCBmaWJlciBiZWluZyByZW5kZXJlZFxuICovXG5leHBvcnQgY29uc3QgZ2V0Q3VycmVudE93bmVyID0gKCkgPT4ge1xuICAvLyBOb3RlOiBTdHJpbmcgY29uY2F0ZW5hdGlvbiBpcyB1c2VkIHRvIHByZXZlbnQgYnVuZGxlcnMgdG8gY29tcGxhaW4gd2l0aCBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBSZWFjdFxuICB0cnkge1xuICAgIC8vIFJlYWN0IDE5XG4gICAgLy8gdXNpbmcgcmVhY3QgaW50ZXJuYWxzXG4gICAgcmV0dXJuIChSZWFjdCBhcyBhbnkpW1xuICAgICAgXCJcIi5jb25jYXQoXG4gICAgICAgIFwiX19DTElFTlRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFXCIsXG4gICAgICApXG4gICAgXS5BLmdldE93bmVyKCk7XG4gIH0gY2F0Y2gge31cblxuICB0cnkge1xuICAgIC8vIFJlYWN0IDwxOFxuICAgIC8vIHVzaW5nIHJlYWN0IGludGVybmFsc1xuICAgIHJldHVybiAoUmVhY3QgYXMgYW55KVtcbiAgICAgIFwiXCIuY29uY2F0KFwiX19TRUNSRVRfSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfWU9VX1dJTExfQkVfRklSRURcIilcbiAgICBdLlJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQ7XG4gIH0gY2F0Y2gge1xuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gXCJwcm9kdWN0aW9uXCIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgIFwidXNlLWRpc3Bvc2FibGU6IGZhaWxlZCB0byBnZXQgY3VycmVudCBmaWJlciwgcGxlYXNlIHJlcG9ydCB0aGlzIGJ1ZyB0byBtYWludGFpbmVyc1wiLFxuICAgICAgKTtcbiAgICB9XG4gIH1cbn07XG5cbmNvbnN0IFJFQUNUX1NUUklDVF9NT0RFX1RZUEUgPSAvKiNfX1BVUkVfXyovIFN5bWJvbC5mb3IoXCJyZWFjdC5zdHJpY3RfbW9kZVwiKTtcblxuLyoqXG4gKiBUcmF2ZXJzZXMgdXAgdGhlIFJlYWN0IGZpYmVyIHRyZWUgdG8gZmluZCB0aGUgU3RyaWN0TW9kZSBjb21wb25lbnQuXG4gKiBOb3RlOiBUaGlzIG9ubHkgZGV0ZWN0cyBzdHJpY3QgbW9kZSBmcm9tIFJlYWN0ID49IDE4XG4gKiBodHRwczovL2dpdGh1Yi5jb20vcmVhY3R3Zy9yZWFjdC0xOC9kaXNjdXNzaW9ucy8xOVxuICogQHJldHVybnMgSWYgc3RyaWN0IG1vZGUgaXMgYmVpbmcgdXNlZCBpbiB0aGUgUmVhY3QgdHJlZVxuICovXG5leHBvcnQgY29uc3QgdXNlSXNTdHJpY3RNb2RlID0gKCk6IGJvb2xlYW4gPT4ge1xuICAvLyBUaGlzIGNoZWNrIHZpb2xhdGVzIFJ1bGVzIG9mIEhvb2tzLCBidXQgXCJwcm9jZXNzLmVudi5OT0RFX0VOVlwiIGRvZXMgbm90IGNoYW5nZSBpbiBidW5kbGVcbiAgLy8gb3IgZHVyaW5nIGFwcGxpY2F0aW9uIGxpZmVjeWNsZVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwicHJvZHVjdGlvblwiKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgaXNTdHJpY3RNb2RlID0gUmVhY3QudXNlUmVmPGJvb2xlYW4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNvbnN0IHJlYWN0TWFqb3JWZXJzaW9uID0gUmVhY3QudXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIE51bWJlcihSZWFjdC52ZXJzaW9uLnNwbGl0KFwiLlwiKVswXSk7XG4gIH0sIFtSZWFjdC52ZXJzaW9uXSk7XG5cbiAgaWYgKGlzTmFOKHJlYWN0TWFqb3JWZXJzaW9uKSB8fCByZWFjdE1ham9yVmVyc2lvbiA8IDE4KSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaWYgKGlzU3RyaWN0TW9kZS5jdXJyZW50ID09PSB1bmRlZmluZWQpIHtcbiAgICBsZXQgY3VycmVudE93bmVyID0gZ2V0Q3VycmVudE93bmVyKCk7XG4gICAgd2hpbGUgKGN1cnJlbnRPd25lciAmJiBjdXJyZW50T3duZXIucmV0dXJuKSB7XG4gICAgICBjdXJyZW50T3duZXIgPSBjdXJyZW50T3duZXIucmV0dXJuO1xuICAgICAgaWYgKFxuICAgICAgICBjdXJyZW50T3duZXIudHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fFxuICAgICAgICBjdXJyZW50T3duZXIuZWxlbWVudFR5cGUgPT09IFJFQUNUX1NUUklDVF9NT0RFX1RZUEVcbiAgICAgICkge1xuICAgICAgICBpc1N0cmljdE1vZGUuY3VycmVudCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICEhaXNTdHJpY3RNb2RlLmN1cnJlbnQ7XG59O1xuIiwgImltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBEaXNwb3NhYmxlRmFjdG9yeSB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQgeyB1c2VJc1N0cmljdE1vZGUgfSBmcm9tIFwiLi91c2VJc1N0cmljdE1vZGVcIjtcbmltcG9ydCB7IHVzZVN0cmljdEVmZmVjdCB9IGZyb20gXCIuL3VzZVN0cmljdEVmZmVjdFwiO1xuaW1wb3J0IHsgdXNlU3RyaWN0TWVtbyB9IGZyb20gXCIuL3VzZVN0cmljdE1lbW9cIjtcblxuLyoqXG4gKiBDcmVhdGVzIGEgZGlzcG9zYWJsZSBpbnN0YW5jZSBkdXJpbmcgKipyZW5kZXIgdGltZSoqIHRoYXQgd2lsbFxuICogYmUgY3JlYXRlZCBvbmNlIChiYXNlZCBvbiBkZXBlbmRlbmN5IGFycmF5KSBldmVuIGR1cmluZyBzdHJpY3QgbW9kZS5cbiAqIFRoZSBkaXNwb3NhYmxlIHdpbGwgYmUgZGlzcG9zZWQgYmFzZWQgb24gdGhlIGRlcGVuZGVuY3kgYXJyYXkgc2ltaWxhciB0b1xuICogdXNlRWZmZWN0LlxuICpcbiAqIFx1MjZBMFx1RkUwRiBUaGlzIGNhbiBvbmx5IGJlIGNhbGxlZCAqKm9uY2UqKiBwZXIgY29tcG9uZW50XG4gKiBAcGFyYW0gZmFjdG9yeSAtIGZhY3RvcnkgZm9yIGRpc3Bvc2FibGUgYW5kIGl0cyBkaXNwb3NlIGZ1bmN0aW9uXG4gKiBAcGFyYW0gZGVwcyAtIFNpbWlsYXIgdG8gYSBSZWFjdCBkZXBlbmRlbmN5IGFycmF5XG4gKiBAcmV0dXJucyAtIFRoZSBkaXNwb3NhYmxlIGluc3RhbmNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VEaXNwb3NhYmxlPFRJbnN0YW5jZT4oXG4gIGZhY3Rvcnk6IERpc3Bvc2FibGVGYWN0b3J5PFRJbnN0YW5jZT4sXG4gIGRlcHM6IGFueVtdLFxuKSB7XG4gIC8vIEluIHByb2R1Y3Rpb24sIHN0cmljdCBtb2RlIGRvZXMgbm90IHJlcXVpcmUgc3BlY2lhbCBoYW5kbGluZ1xuICBjb25zdCBpc1N0cmljdE1vZGUgPVxuICAgIHVzZUlzU3RyaWN0TW9kZSgpICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIjtcblxuICBjb25zdCB1c2VNZW1vID0gaXNTdHJpY3RNb2RlID8gdXNlU3RyaWN0TWVtbyA6IFJlYWN0LnVzZU1lbW87XG4gIGNvbnN0IHVzZUVmZmVjdCA9IGlzU3RyaWN0TW9kZSA/IHVzZVN0cmljdEVmZmVjdCA6IFJlYWN0LnVzZUVmZmVjdDtcblxuICBjb25zdCBbZGlzcG9zYWJsZSwgZGlzcG9zZV0gPSB1c2VNZW1vKCgpID0+IGZhY3RvcnkoKSwgZGVwcykgPz8gW1xuICAgIG51bGwsXG4gICAgKCkgPT4gbnVsbCxcbiAgXTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gZGlzcG9zZTtcbiAgfSwgZGVwcyk7XG5cbiAgcmV0dXJuIGRpc3Bvc2FibGU7XG59XG4iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRDdXJyZW50T3duZXIgfSBmcm9tIFwiLi91c2VJc1N0cmljdE1vZGVcIjtcblxuLy8gd2Uga25vdyBzdHJpY3QgbW9kZSB3aWxsIHJlbmRlciB1c2VNZW1vIGZhY29yeSB0d2ljZVxuLy8ga2VlcCBhIHdlYWsgc2V0IHRvIGRldGVjdCB3aGVuIHRoZSBzZWNvbmQgcmVuZGVyIGhhcHBlbnNcbmNvbnN0IGVmZmVjdFNldCA9IG5ldyBXZWFrU2V0KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiB1c2VTdHJpY3RFZmZlY3QoXG4gIGVmZmVjdDogKCkgPT4gKCkgPT4gdm9pZCxcbiAgZGVwczogUmVhY3QuRGVwZW5kZW5jeUxpc3QgfCB1bmRlZmluZWQsXG4pIHtcbiAgY29uc3QgY3VycmVudE93bmVyID0gZ2V0Q3VycmVudE93bmVyKCk7XG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFlZmZlY3RTZXQuaGFzKGN1cnJlbnRPd25lcikpIHtcbiAgICAgIGVmZmVjdFNldC5hZGQoY3VycmVudE93bmVyKTtcbiAgICAgIGVmZmVjdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRpc3Bvc2UgPSBlZmZlY3QoKTtcbiAgICByZXR1cm4gZGlzcG9zZTtcbiAgfSwgZGVwcyk7XG59XG4iLCAiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBnZXRDdXJyZW50T3duZXIgfSBmcm9tIFwiLi91c2VJc1N0cmljdE1vZGVcIjtcblxuLy8gd2Uga25vdyBzdHJpY3QgbW9kZSB3aWxsIHJlbmRlciB1c2VNZW1vIGZhY29yeSB0d2ljZVxuLy8ga2VlcCBhIHdlYWsgc2V0IHRvIGRldGVjdCB3aGVuIHRoZSBzZWNvbmQgcmVuZGVyIGhhcHBlbnNcbmNvbnN0IG1lbW9TZXQgPSBuZXcgV2Vha1NldCgpO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU3RyaWN0TWVtbzxUTWVtb2l6ZWQ+KFxuICBmYWN0b3J5OiAoKSA9PiBhbnksXG4gIGRlcHM6IFJlYWN0LkRlcGVuZGVuY3lMaXN0IHwgdW5kZWZpbmVkLFxuKTogVE1lbW9pemVkIHwgbnVsbCB7XG4gIHJldHVybiBSZWFjdC51c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBjdXJyZW50T3duZXIgPSBnZXRDdXJyZW50T3duZXIoKTtcbiAgICBpZiAoIW1lbW9TZXQuaGFzKGN1cnJlbnRPd25lcikpIHtcbiAgICAgIG1lbW9TZXQuYWRkKGN1cnJlbnRPd25lcik7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFjdG9yeSgpO1xuICB9LCBkZXBzKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQUEsWUFBdUI7QUFLaEIsSUFBTSxrQkFBa0IsTUFBTTtBQUVuQyxNQUFJO0FBR0YsV0FBUSxNQUNOLEdBQUc7QUFBQSxNQUNEO0FBQUEsSUFDRixDQUNGLEVBQUUsRUFBRSxTQUFTO0FBQUEsRUFDZixRQUFRO0FBQUEsRUFBQztBQUVULE1BQUk7QUFHRixXQUFRLE1BQ04sR0FBRyxPQUFPLG9EQUFvRCxDQUNoRSxFQUFFLGtCQUFrQjtBQUFBLEVBQ3RCLFFBQVE7QUFDTixRQUFJLFFBQVEsSUFBSSxhQUFhLGNBQWM7QUFDekMsY0FBUTtBQUFBLFFBQ047QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRjtBQUVBLElBQU0seUJBQXVDLHVCQUFPLElBQUksbUJBQW1CO0FBUXBFLElBQU0sa0JBQWtCLE1BQWU7QUFHNUMsTUFBSSxRQUFRLElBQUksYUFBYSxjQUFjO0FBQ3pDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxlQUFxQixhQUE0QixNQUFTO0FBQ2hFLFFBQU0sb0JBQTBCLGNBQVEsTUFBTTtBQUM1QyxXQUFPLE9BQWEsY0FBUSxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFBQSxFQUMzQyxHQUFHLENBQU8sYUFBTyxDQUFDO0FBRWxCLE1BQUksTUFBTSxpQkFBaUIsS0FBSyxvQkFBb0IsSUFBSTtBQUN0RCxXQUFPO0FBQUEsRUFDVDtBQUVBLE1BQUksYUFBYSxZQUFZLFFBQVc7QUFDdEMsUUFBSSxlQUFlLGdCQUFnQjtBQUNuQyxXQUFPLGdCQUFnQixhQUFhLFFBQVE7QUFDMUMscUJBQWUsYUFBYTtBQUM1QixVQUNFLGFBQWEsU0FBUywwQkFDdEIsYUFBYSxnQkFBZ0Isd0JBQzdCO0FBQ0EscUJBQWEsVUFBVTtBQUFBLE1BQ3pCO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFFQSxTQUFPLENBQUMsQ0FBQyxhQUFhO0FBQ3hCOzs7QUN0RUEsSUFBQUEsU0FBdUI7OztBQ0F2QixJQUFBQyxTQUF1QjtBQUt2QixJQUFNLFlBQVksb0JBQUksUUFBUTtBQUV2QixTQUFTLGdCQUNkLFFBQ0EsTUFDQTtBQUNBLFFBQU0sZUFBZSxnQkFBZ0I7QUFDckMsRUFBTSxpQkFBVSxNQUFNO0FBQ3BCLFFBQUksQ0FBQyxVQUFVLElBQUksWUFBWSxHQUFHO0FBQ2hDLGdCQUFVLElBQUksWUFBWTtBQUMxQixhQUFPO0FBQ1A7QUFBQSxJQUNGO0FBRUEsVUFBTSxVQUFVLE9BQU87QUFDdkIsV0FBTztBQUFBLEVBQ1QsR0FBRyxJQUFJO0FBQ1Q7OztBQ3RCQSxJQUFBQyxTQUF1QjtBQUt2QixJQUFNLFVBQVUsb0JBQUksUUFBUTtBQUVyQixTQUFTLGNBQ2QsU0FDQSxNQUNrQjtBQUNsQixTQUFhLGVBQVEsTUFBTTtBQUN6QixVQUFNLGVBQWUsZ0JBQWdCO0FBQ3JDLFFBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxHQUFHO0FBQzlCLGNBQVEsSUFBSSxZQUFZO0FBQ3hCLGFBQU87QUFBQSxJQUNUO0FBRUEsV0FBTyxRQUFRO0FBQUEsRUFDakIsR0FBRyxJQUFJO0FBQ1Q7OztBRkhPLFNBQVMsY0FDZCxTQUNBLE1BQ0E7QUFwQkY7QUFzQkUsUUFBTSxlQUNKLGdCQUFnQixLQUFLLFFBQVEsSUFBSSxhQUFhO0FBRWhELFFBQU1DLFdBQVUsZUFBZSxnQkFBc0I7QUFDckQsUUFBTUMsYUFBWSxlQUFlLGtCQUF3QjtBQUV6RCxRQUFNLENBQUMsWUFBWSxPQUFPLEtBQUksS0FBQUQsU0FBUSxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQTdCLFlBQWtDO0FBQUEsSUFDOUQ7QUFBQSxJQUNBLE1BQU07QUFBQSxFQUNSO0FBQ0EsRUFBQUMsV0FBVSxNQUFNO0FBQ2QsV0FBTztBQUFBLEVBQ1QsR0FBRyxJQUFJO0FBRVAsU0FBTztBQUNUOyIsCiAgIm5hbWVzIjogWyJSZWFjdCIsICJSZWFjdCIsICJSZWFjdCIsICJ1c2VNZW1vIiwgInVzZUVmZmVjdCJdCn0K