/);
+ // if (matches) result = result.replace('', ``);
+ let result = '```'+ token.params + '\n';
+ result = result + token.content;
+ result = result+'```\n';
+
+ current.c.push({
+ t: token.type,
+ d: depth + 1,
+ v: result,
+ c: []
+ });
+ } else ;
+ }
+
+ return root;
+ }
+
+ transform(content) {
+ var _root$c;
+
+ const features = {};
+ this.hooks.parser.call(this.md, features);
+ const tokens = this.md.parse(content || '', {});
+ let root = this.buildTree(tokens);
+ cleanNode(root);
+ if (((_root$c = root.c) == null ? void 0 : _root$c.length) === 1) root = root.c[0];
+ return {
+ root,
+ features
+ };
+ }
+ /**
+ * Get all assets from enabled plugins or filter them by plugin names as keys.
+ */
+
+
+ getAssets(keys) {
+ var _keys;
+
+ const styles = [];
+ const scripts = [];
+ (_keys = keys) != null ? _keys : keys = Object.keys(this.assetsMap);
+
+ for (const assets of keys.map(key => this.assetsMap[key])) {
+ if (assets) {
+ if (assets.styles) styles.push(...assets.styles);
+ if (assets.scripts) scripts.push(...assets.scripts);
+ }
+ }
+
+ return {
+ styles,
+ scripts
+ };
+ }
+ /**
+ * Get used assets by features object returned by `transform`.
+ */
+
+
+ getUsedAssets(features) {
+ return this.getAssets(Object.keys(features).filter(key => features[key]));
+ }
+
+}
+
+exports.Transformer = Transformer;
+exports.builtInPlugins = plugins;
+exports.fillTemplate = fillTemplate;
+
+})));
+});
+
+var domtoimage = createCommonjsModule(function (module) {
+(function (global) {
+
+ var util = newUtil();
+ var inliner = newInliner();
+ var fontFaces = newFontFaces();
+ var images = newImages();
+
+ // Default impl options
+ var defaultOptions = {
+ // Default is to fail on error, no placeholder
+ imagePlaceholder: undefined,
+ // Default cache bust is false, it will use the cache
+ cacheBust: false
+ };
+
+ var domtoimage = {
+ toSvg: toSvg,
+ toPng: toPng,
+ toJpeg: toJpeg,
+ toBlob: toBlob,
+ toPixelData: toPixelData,
+ impl: {
+ fontFaces: fontFaces,
+ images: images,
+ util: util,
+ inliner: inliner,
+ options: {}
+ }
+ };
+
+ module.exports = domtoimage;
+
+
+ /**
+ * @param {Node} node - The DOM Node object to render
+ * @param {Object} options - Rendering options
+ * @param {Function} options.filter - Should return true if passed node should be included in the output
+ * (excluding node means excluding it's children as well). Not called on the root node.
+ * @param {String} options.bgcolor - color for the background, any valid CSS color value.
+ * @param {Number} options.width - width to be applied to node before rendering.
+ * @param {Number} options.height - height to be applied to node before rendering.
+ * @param {Object} options.style - an object whose properties to be copied to node's style before rendering.
+ * @param {Number} options.quality - a Number between 0 and 1 indicating image quality (applicable to JPEG only),
+ defaults to 1.0.
+ * @param {String} options.imagePlaceholder - dataURL to use as a placeholder for failed images, default behaviour is to fail fast on images we can't fetch
+ * @param {Boolean} options.cacheBust - set to true to cache bust by appending the time to the request url
+ * @return {Promise} - A promise that is fulfilled with a SVG image data URL
+ * */
+ function toSvg(node, options) {
+ options = options || {};
+ copyOptions(options);
+ return Promise.resolve(node)
+ .then(function (node) {
+ return cloneNode(node, options.filter, true);
+ })
+ .then(embedFonts)
+ .then(inlineImages)
+ .then(applyOptions)
+ .then(function (clone) {
+ return makeSvgDataUri(clone,
+ options.width || util.width(node),
+ options.height || util.height(node)
+ );
+ });
+
+ function applyOptions(clone) {
+ if (options.bgcolor) clone.style.backgroundColor = options.bgcolor;
+
+ if (options.width) clone.style.width = options.width + 'px';
+ if (options.height) clone.style.height = options.height + 'px';
+
+ if (options.style)
+ Object.keys(options.style).forEach(function (property) {
+ clone.style[property] = options.style[property];
+ });
+
+ return clone;
+ }
+ }
+
+ /**
+ * @param {Node} node - The DOM Node object to render
+ * @param {Object} options - Rendering options, @see {@link toSvg}
+ * @return {Promise} - A promise that is fulfilled with a Uint8Array containing RGBA pixel data.
+ * */
+ function toPixelData(node, options) {
+ return draw(node, options || {})
+ .then(function (canvas) {
+ return canvas.getContext('2d').getImageData(
+ 0,
+ 0,
+ util.width(node),
+ util.height(node)
+ ).data;
+ });
+ }
+
+ /**
+ * @param {Node} node - The DOM Node object to render
+ * @param {Object} options - Rendering options, @see {@link toSvg}
+ * @return {Promise} - A promise that is fulfilled with a PNG image data URL
+ * */
+ function toPng(node, options) {
+ return draw(node, options || {})
+ .then(function (canvas) {
+ return canvas.toDataURL();
+ });
+ }
+
+ /**
+ * @param {Node} node - The DOM Node object to render
+ * @param {Object} options - Rendering options, @see {@link toSvg}
+ * @return {Promise} - A promise that is fulfilled with a JPEG image data URL
+ * */
+ function toJpeg(node, options) {
+ options = options || {};
+ return draw(node, options)
+ .then(function (canvas) {
+ return canvas.toDataURL('image/jpeg', options.quality || 1.0);
+ });
+ }
+
+ /**
+ * @param {Node} node - The DOM Node object to render
+ * @param {Object} options - Rendering options, @see {@link toSvg}
+ * @return {Promise} - A promise that is fulfilled with a PNG image blob
+ * */
+ function toBlob(node, options) {
+ return draw(node, options || {})
+ .then(util.canvasToBlob);
+ }
+
+ function copyOptions(options) {
+ // Copy options to impl options for use in impl
+ if(typeof(options.imagePlaceholder) === 'undefined') {
+ domtoimage.impl.options.imagePlaceholder = defaultOptions.imagePlaceholder;
+ } else {
+ domtoimage.impl.options.imagePlaceholder = options.imagePlaceholder;
+ }
+
+ if(typeof(options.cacheBust) === 'undefined') {
+ domtoimage.impl.options.cacheBust = defaultOptions.cacheBust;
+ } else {
+ domtoimage.impl.options.cacheBust = options.cacheBust;
+ }
+ }
+
+ function draw(domNode, options) {
+ return toSvg(domNode, options)
+ .then(util.makeImage)
+ .then(util.delay(100))
+ .then(function (image) {
+ var canvas = newCanvas(domNode);
+ canvas.getContext('2d').drawImage(image, 0, 0);
+ return canvas;
+ });
+
+ function newCanvas(domNode) {
+ var canvas = document.createElement('canvas');
+ canvas.width = options.width || util.width(domNode);
+ canvas.height = options.height || util.height(domNode);
+
+ if (options.bgcolor) {
+ var ctx = canvas.getContext('2d');
+ ctx.fillStyle = options.bgcolor;
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
+ }
+
+ return canvas;
+ }
+ }
+
+ function cloneNode(node, filter, root) {
+ if (!root && filter && !filter(node)) return Promise.resolve();
+
+ return Promise.resolve(node)
+ .then(makeNodeCopy)
+ .then(function (clone) {
+ return cloneChildren(node, clone, filter);
+ })
+ .then(function (clone) {
+ return processClone(node, clone);
+ });
+
+ function makeNodeCopy(node) {
+ if (node instanceof HTMLCanvasElement) return util.makeImage(node.toDataURL());
+ return node.cloneNode(false);
+ }
+
+ function cloneChildren(original, clone, filter) {
+ var children = original.childNodes;
+ if (children.length === 0) return Promise.resolve(clone);
+
+ return cloneChildrenInOrder(clone, util.asArray(children), filter)
+ .then(function () {
+ return clone;
+ });
+
+ function cloneChildrenInOrder(parent, children, filter) {
+ var done = Promise.resolve();
+ children.forEach(function (child) {
+ done = done
+ .then(function () {
+ return cloneNode(child, filter);
+ })
+ .then(function (childClone) {
+ if (childClone) parent.appendChild(childClone);
+ });
+ });
+ return done;
+ }
+ }
+
+ function processClone(original, clone) {
+ if (!(clone instanceof Element)) return clone;
+ if(!clone.style) return clone;
+
+ return Promise.resolve()
+ .then(cloneStyle)
+ .then(clonePseudoElements)
+ .then(copyUserInput)
+ .then(fixSvg)
+ .then(function () {
+ return clone;
+ });
+
+ function cloneStyle() {
+
+ copyStyle(window.getComputedStyle(original), clone.style);
+
+ function copyStyle(source, target) {
+ if (source.cssText) target.cssText = source.cssText;
+ else copyProperties(source, target);
+
+ function copyProperties(source, target) {
+ if(target.setProperty){
+ util.asArray(source).forEach(function (name) {
+ if(!source) return;
+ target.setProperty(
+ name,
+ source.getPropertyValue(name),
+ source.getPropertyPriority(name)
+ );
+ });
+ }
+ }
+ }
+ }
+
+ function clonePseudoElements() {
+ [':before', ':after'].forEach(function (element) {
+ clonePseudoElement(element);
+ });
+
+ function clonePseudoElement(element) {
+ var style = window.getComputedStyle(original, element);
+ var content = style.getPropertyValue('content');
+
+ if (content === '' || content === 'none') return;
+
+ var className = util.uid();
+ clone.className = clone.className + ' ' + className;
+ var styleElement = document.createElement('style');
+ styleElement.appendChild(formatPseudoElementStyle(className, element, style));
+ clone.appendChild(styleElement);
+
+ function formatPseudoElementStyle(className, element, style) {
+ var selector = '.' + className + ':' + element;
+ var cssText = style.cssText ? formatCssText(style) : formatCssProperties(style);
+ return document.createTextNode(selector + '{' + cssText + '}');
+
+ function formatCssText(style) {
+ var content = style.getPropertyValue('content');
+ return style.cssText + ' content: ' + content + ';';
+ }
+
+ function formatCssProperties(style) {
+
+ return util.asArray(style)
+ .map(formatProperty)
+ .join('; ') + ';';
+
+ function formatProperty(name) {
+ return name + ': ' +
+ style.getPropertyValue(name) +
+ (style.getPropertyPriority(name) ? ' !important' : '');
+ }
+ }
+ }
+ }
+ }
+
+ function copyUserInput() {
+ if (original instanceof HTMLTextAreaElement) clone.innerHTML = original.value;
+ if (original instanceof HTMLInputElement) clone.setAttribute("value", original.value);
+ }
+
+ function fixSvg() {
+ if (!(clone instanceof SVGElement)) return;
+ clone.setAttribute('xmlns', 'http://www.w3.org/2000/svg');
+
+ if (!(clone instanceof SVGRectElement)) return;
+ ['width', 'height'].forEach(function (attribute) {
+ var value = clone.getAttribute(attribute);
+ if (!value) return;
+ if(clone.style&&clone.style.setProperty){
+ clone.style.setProperty(attribute, value);
+ }
+ });
+ }
+ }
+ }
+
+ function embedFonts(node) {
+ return fontFaces.resolveAll()
+ .then(function (cssText) {
+ var styleNode = document.createElement('style');
+ node.appendChild(styleNode);
+ styleNode.appendChild(document.createTextNode(cssText));
+ return node;
+ });
+ }
+
+ function inlineImages(node) {
+ return images.inlineAll(node)
+ .then(function () {
+ return node;
+ });
+ }
+
+ function makeSvgDataUri(node, width, height) {
+ return Promise.resolve(node)
+ .then(function (node) {
+ node.setAttribute('xmlns', 'http://www.w3.org/1999/xhtml');
+ return new XMLSerializer().serializeToString(node);
+ })
+ .then(util.escapeXhtml)
+ .then(function (xhtml) {
+ return '' + xhtml + '';
+ })
+ .then(function (foreignObject) {
+ return '';
+ })
+ .then(function (svg) {
+ return 'data:image/svg+xml;charset=utf-8,' + svg;
+ });
+ }
+
+ function newUtil() {
+ return {
+ escape: escape,
+ parseExtension: parseExtension,
+ mimeType: mimeType,
+ dataAsUrl: dataAsUrl,
+ isDataUrl: isDataUrl,
+ canvasToBlob: canvasToBlob,
+ resolveUrl: resolveUrl,
+ getAndEncode: getAndEncode,
+ uid: uid(),
+ delay: delay,
+ asArray: asArray,
+ escapeXhtml: escapeXhtml,
+ makeImage: makeImage,
+ width: width,
+ height: height
+ };
+
+ function mimes() {
+ /*
+ * Only WOFF and EOT mime types for fonts are 'real'
+ * see http://www.iana.org/assignments/media-types/media-types.xhtml
+ */
+ var WOFF = 'application/font-woff';
+ var JPEG = 'image/jpeg';
+
+ return {
+ 'woff': WOFF,
+ 'woff2': WOFF,
+ 'ttf': 'application/font-truetype',
+ 'eot': 'application/vnd.ms-fontobject',
+ 'png': 'image/png',
+ 'jpg': JPEG,
+ 'jpeg': JPEG,
+ 'gif': 'image/gif',
+ 'tiff': 'image/tiff',
+ 'svg': 'image/svg+xml'
+ };
+ }
+
+ function parseExtension(url) {
+ var match = /\.([^\.\/]*?)$/g.exec(url);
+ if (match) return match[1];
+ else return '';
+ }
+
+ function mimeType(url) {
+ var extension = parseExtension(url).toLowerCase();
+ return mimes()[extension] || '';
+ }
+
+ function isDataUrl(url) {
+ return url.search(/^(data:)/) !== -1;
+ }
+
+ function toBlob(canvas) {
+ return new Promise(function (resolve) {
+ var binaryString = window.atob(canvas.toDataURL().split(',')[1]);
+ var length = binaryString.length;
+ var binaryArray = new Uint8Array(length);
+
+ for (var i = 0; i < length; i++)
+ binaryArray[i] = binaryString.charCodeAt(i);
+
+ resolve(new Blob([binaryArray], {
+ type: 'image/png'
+ }));
+ });
+ }
+
+ function canvasToBlob(canvas) {
+ if (canvas.toBlob)
+ return new Promise(function (resolve) {
+ canvas.toBlob(resolve);
+ });
+
+ return toBlob(canvas);
+ }
+
+ function resolveUrl(url, baseUrl) {
+ var doc = document.implementation.createHTMLDocument();
+ var base = doc.createElement('base');
+ doc.head.appendChild(base);
+ var a = doc.createElement('a');
+ doc.body.appendChild(a);
+ base.href = baseUrl;
+ a.href = url;
+ return a.href;
+ }
+
+ function uid() {
+ var index = 0;
+
+ return function () {
+ return 'u' + fourRandomChars() + index++;
+
+ function fourRandomChars() {
+ /* see http://stackoverflow.com/a/6248722/2519373 */
+ return ('0000' + (Math.random() * Math.pow(36, 4) << 0).toString(36)).slice(-4);
+ }
+ };
+ }
+
+ function makeImage(uri) {
+ return new Promise(function (resolve, reject) {
+ var image = new Image();
+ image.onload = function () {
+ resolve(image);
+ };
+ image.onerror = reject;
+ image.src = uri;
+ });
+ }
+
+ function getAndEncode(url) {
+ var TIMEOUT = 30000;
+ if(domtoimage.impl.options.cacheBust) {
+ // Cache bypass so we dont have CORS issues with cached images
+ // Source: https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest#Bypassing_the_cache
+ url += ((/\?/).test(url) ? "&" : "?") + (new Date()).getTime();
+ }
+
+ return new Promise(function (resolve) {
+ var request = new XMLHttpRequest();
+
+ request.onreadystatechange = done;
+ request.ontimeout = timeout;
+ request.responseType = 'blob';
+ request.timeout = TIMEOUT;
+ request.open('GET', url, true);
+ request.send();
+
+ var placeholder;
+ if(domtoimage.impl.options.imagePlaceholder) {
+ var split = domtoimage.impl.options.imagePlaceholder.split(/,/);
+ if(split && split[1]) {
+ placeholder = split[1];
+ }
+ }
+
+ function done() {
+ if (request.readyState !== 4) return;
+
+ if (request.status !== 200) {
+ if(placeholder) {
+ resolve(placeholder);
+ } else {
+ fail('cannot fetch resource: ' + url + ', status: ' + request.status);
+ }
+
+ return;
+ }
+
+ var encoder = new FileReader();
+ encoder.onloadend = function () {
+ var content = encoder.result.split(/,/)[1];
+ resolve(content);
+ };
+ encoder.readAsDataURL(request.response);
+ }
+
+ function timeout() {
+ if(placeholder) {
+ resolve(placeholder);
+ } else {
+ fail('timeout of ' + TIMEOUT + 'ms occured while fetching resource: ' + url);
+ }
+ }
+
+ function fail(message) {
+ console.error(message);
+ resolve('');
+ }
+ });
+ }
+
+ function dataAsUrl(content, type) {
+ return 'data:' + type + ';base64,' + content;
+ }
+
+ function escape(string) {
+ return string.replace(/([.*+?^${}()|\[\]\/\\])/g, '\\$1');
+ }
+
+ function delay(ms) {
+ return function (arg) {
+ return new Promise(function (resolve) {
+ setTimeout(function () {
+ resolve(arg);
+ }, ms);
+ });
+ };
+ }
+
+ function asArray(arrayLike) {
+ var array = [];
+ var length = arrayLike.length;
+ for (var i = 0; i < length; i++) array.push(arrayLike[i]);
+ return array;
+ }
+
+ function escapeXhtml(string) {
+ return string.replace(/#/g, '%23').replace(/\n/g, '%0A');
+ }
+
+ function width(node) {
+ var leftBorder = px(node, 'border-left-width');
+ var rightBorder = px(node, 'border-right-width');
+ return node.scrollWidth + leftBorder + rightBorder;
+ }
+
+ function height(node) {
+ var topBorder = px(node, 'border-top-width');
+ var bottomBorder = px(node, 'border-bottom-width');
+ return node.scrollHeight + topBorder + bottomBorder;
+ }
+
+ function px(node, styleProperty) {
+ var value = window.getComputedStyle(node).getPropertyValue(styleProperty);
+ return parseFloat(value.replace('px', ''));
+ }
+ }
+
+ function newInliner() {
+ var URL_REGEX = /url\(['"]?([^'"]+?)['"]?\)/g;
+
+ return {
+ inlineAll: inlineAll,
+ shouldProcess: shouldProcess,
+ impl: {
+ readUrls: readUrls,
+ inline: inline
+ }
+ };
+
+ function shouldProcess(string) {
+ return string.search(URL_REGEX) !== -1;
+ }
+
+ function readUrls(string) {
+ var result = [];
+ var match;
+ while ((match = URL_REGEX.exec(string)) !== null) {
+ result.push(match[1]);
+ }
+ return result.filter(function (url) {
+ return !util.isDataUrl(url);
+ });
+ }
+
+ function inline(string, url, baseUrl, get) {
+ return Promise.resolve(url)
+ .then(function (url) {
+ return baseUrl ? util.resolveUrl(url, baseUrl) : url;
+ })
+ .then(get || util.getAndEncode)
+ .then(function (data) {
+ return util.dataAsUrl(data, util.mimeType(url));
+ })
+ .then(function (dataUrl) {
+ return string.replace(urlAsRegex(url), '$1' + dataUrl + '$3');
+ });
+
+ function urlAsRegex(url) {
+ return new RegExp('(url\\([\'"]?)(' + util.escape(url) + ')([\'"]?\\))', 'g');
+ }
+ }
+
+ function inlineAll(string, baseUrl, get) {
+ if (nothingToInline()) return Promise.resolve(string);
+
+ return Promise.resolve(string)
+ .then(readUrls)
+ .then(function (urls) {
+ var done = Promise.resolve(string);
+ urls.forEach(function (url) {
+ done = done.then(function (string) {
+ return inline(string, url, baseUrl, get);
+ });
+ });
+ return done;
+ });
+
+ function nothingToInline() {
+ return !shouldProcess(string);
+ }
+ }
+ }
+
+ function newFontFaces() {
+ return {
+ resolveAll: resolveAll,
+ impl: {
+ readAll: readAll
+ }
+ };
+
+ function resolveAll() {
+ return readAll()
+ .then(function (webFonts) {
+ return Promise.all(
+ webFonts.map(function (webFont) {
+ return webFont.resolve();
+ })
+ );
+ })
+ .then(function (cssStrings) {
+ return cssStrings.join('\n');
+ });
+ }
+
+ function readAll() {
+ return Promise.resolve(util.asArray(document.styleSheets))
+ .then(getCssRules)
+ .then(selectWebFontRules)
+ .then(function (rules) {
+ return rules.map(newWebFont);
+ });
+
+ function selectWebFontRules(cssRules) {
+ return cssRules
+ .filter(function (rule) {
+ return rule.type === CSSRule.FONT_FACE_RULE;
+ })
+ .filter(function (rule) {
+ return inliner.shouldProcess(rule.style.getPropertyValue('src'));
+ });
+ }
+
+ function getCssRules(styleSheets) {
+ var cssRules = [];
+ styleSheets.forEach(function (sheet) {
+ try {
+ util.asArray(sheet.cssRules || []).forEach(cssRules.push.bind(cssRules));
+ } catch (e) {
+ console.log('Error while reading CSS rules from ' + sheet.href, e.toString());
+ }
+ });
+ return cssRules;
+ }
+
+ function newWebFont(webFontRule) {
+ return {
+ resolve: function resolve() {
+ var baseUrl = (webFontRule.parentStyleSheet || {}).href;
+ return inliner.inlineAll(webFontRule.cssText, baseUrl);
+ },
+ src: function () {
+ return webFontRule.style.getPropertyValue('src');
+ }
+ };
+ }
+ }
+ }
+
+ function newImages() {
+ return {
+ inlineAll: inlineAll,
+ impl: {
+ newImage: newImage
+ }
+ };
+
+ function newImage(element) {
+ return {
+ inline: inline
+ };
+
+ function inline(get) {
+ if (util.isDataUrl(element.src)) return Promise.resolve();
+
+ return Promise.resolve(element.src)
+ .then(get || util.getAndEncode)
+ .then(function (data) {
+ return util.dataAsUrl(data, util.mimeType(element.src));
+ })
+ .then(function (dataUrl) {
+ return new Promise(function (resolve, reject) {
+ element.onload = resolve;
+ element.onerror = reject;
+ element.src = dataUrl;
+ });
+ });
+ }
+ }
+
+ function inlineAll(node) {
+ if (!(node instanceof Element)) return Promise.resolve(node);
+
+ return inlineBackground(node)
+ .then(function () {
+ if (node instanceof HTMLImageElement)
+ return newImage(node).inline();
+ else
+ return Promise.all(
+ util.asArray(node.childNodes).map(function (child) {
+ return inlineAll(child);
+ })
+ );
+ });
+
+ function inlineBackground(node) {
+ if(!node.style){
+ return Promise.resolve(node);
+ }
+ var background = node.style.getPropertyValue('background');
+
+ if (!background) return Promise.resolve(node);
+
+ return inliner.inlineAll(background)
+ .then(function (inlined) {
+ if(node.style&&node.style.setProperty){
+ node.style.setProperty(
+ 'background',
+ inlined,
+ node.style.getPropertyPriority('background')
+ );
+ }
+ })
+ .then(function () {
+ return node;
+ });
+ }
+ }
+ }
+})();
+});
+
+function uuid() {
+ function S4() {
+ return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
+ }
+ return (S4() + S4() + '-' + S4() + '-' + S4());
+}
+const transformer = new browser.Transformer();
+const mindmapViewType = "mindmapView";
+const mindmapIcon = "blocks";
+class MindMapView extends obsidian.TextFileView {
+ constructor(leaf, plugin) {
+ super(leaf);
+ this.id = this.leaf.id;
+ this.colors = [];
+ this.timeOut = null;
+ this.firstInit = true;
+ this.yamlString = '';
+ this.plugin = plugin;
+ this.setColors();
+ this.fileCache = {
+ 'frontmatter': {
+ 'mindmap-plugin': 'basic'
+ }
+ };
+ }
+ getViewType() {
+ return mindmapViewType;
+ }
+ getIcon() {
+ return mindmapIcon;
+ }
+ getDisplayText() {
+ var _a;
+ return ((_a = this.file) === null || _a === void 0 ? void 0 : _a.basename) || "mindmap";
+ }
+ setColors() {
+ var colors = [];
+ try {
+ if (this.plugin.settings.strokeArray) {
+ colors = this.plugin.settings.strokeArray.split(',');
+ }
+ }
+ catch (err) {
+ console.log(err, 'stroke array is error');
+ }
+ this.colors = this.colors.concat(colors);
+ for (var i = 0; i < 50; i++) {
+ this.colors.push(randomColor());
+ }
+ }
+ exportToSvg() {
+ if (!this.mindmap) {
+ return;
+ }
+ // this.mindmap.contentEL.style.visibility='hidden';
+ var nodes = [];
+ this.mindmap.traverseDF((n) => {
+ if (n.isShow()) {
+ nodes.push(n);
+ }
+ });
+ var oldScrollLeft = this.mindmap.containerEL.scrollLeft;
+ var oldScrollTop = this.mindmap.containerEL.scrollTop;
+ var box = this.mindmap.getBoundingRect(nodes);
+ var rootBox = this.mindmap.root.getPosition();
+ var disX = 0, disY = 0;
+ if (box.x > 60) {
+ disX = box.x - 60;
+ }
+ if (box.y > 60) {
+ disY = box.y - 60;
+ }
+ this.mindmap.root.setPosition(rootBox.x - disX, rootBox.y - disY);
+ this.mindmap.refresh();
+ var w = box.width + 120;
+ var h = box.height + 120;
+ this.mindmap.contentEL.style.width = w + 'px';
+ this.mindmap.contentEL.style.height = h + 'px';
+ setTimeout(() => {
+ domtoimage.toPng(this.mindmap.contentEL).then(dataUrl => {
+ var img = new Image();
+ img.src = dataUrl;
+ var str = img.outerHTML;
+ var p = this.mindmap.path.substr(0, this.mindmap.path.length - 2);
+ try {
+ new obsidian.Notice(p + 'html');
+ this.app.vault.adapter.write(p + 'html', str);
+ this.restoreMindmap(rootBox, oldScrollLeft, oldScrollTop);
+ }
+ catch (err) {
+ this.restoreMindmap(rootBox, oldScrollLeft, oldScrollTop);
+ new obsidian.Notice(err);
+ }
+ }).catch(err => {
+ this.restoreMindmap(rootBox, oldScrollLeft, oldScrollTop);
+ new obsidian.Notice(err);
+ });
+ }, 200);
+ }
+ restoreMindmap(rootBox, left, top) {
+ if (this.mindmap) {
+ var size = this.plugin.settings.canvasSize;
+ this.mindmap.contentEL.style.width = size + 'px';
+ this.mindmap.contentEL.style.height = size + 'px';
+ this.mindmap.containerEL.scrollTop = top;
+ this.mindmap.containerEL.scrollLeft = left;
+ this.mindmap.root.setPosition(rootBox.x, rootBox.y);
+ this.mindmap.refresh();
+ // this.mindmap.contentEL.style.visibility='visible';
+ }
+ }
+ mindMapChange() {
+ if (this.mindmap) {
+ var md = this.mindmap.getMarkdown();
+ // var matchArray: string[] = []
+ // var collapsedIds: string[] = []
+ // const idRegexMultiline = /.+ \^([a-z0-9\-]+)$/gim
+ // while ((matchArray = idRegexMultiline.exec(md)) != null) {
+ // collapsedIds = [...collapsedIds, ...matchArray.slice(1, 2)];
+ // }
+ // this.fileCache.frontmatter.collapsedIds='';
+ // if (collapsedIds.length > 0) {
+ // this.fileCache.frontmatter.collapsedIds = collapsedIds;
+ // }
+ //var frontMatter = this.getFrontMatter();
+ this.data = this.yamlString + md;
+ // console.log(this.mindmap.path);
+ // this.app.vault.adapter.write(this.mindmap.path, this.data);
+ try {
+ this.requestSave();
+ //new Notice(`${t("Save success")}`);
+ }
+ catch (err) {
+ console.log(err);
+ new obsidian.Notice(`${t("Save fail")}`);
+ }
+ }
+ }
+ getFrontMatter() {
+ var frontMatter = '---\n\n';
+ // var v: any = '';
+ if (this.fileCache.frontmatter) {
+ // for (var k in this.fileCache.frontmatter) {
+ // if (k != 'position') {
+ // if (Object.prototype.toString.call(this.fileCache.frontmatter[k]) == '[object Array]' || Object.prototype.toString.call(this.fileCache.frontmatter[k]) == '[object Object]') {
+ // v = JSON.stringify(this.fileCache.frontmatter[k]);
+ // } else if (Object.prototype.toString.call(this.fileCache.frontmatter[k]) == '[object Number]' || Object.prototype.toString.call(this.fileCache.frontmatter[k]) == "[object String]") {
+ // v = this.fileCache.frontmatter[k];
+ // }
+ // if (v) {
+ // frontMatter += `${k}: ${v}\n`;
+ // }
+ // }
+ // }
+ var position = this.fileCache.frontmatter.position;
+ var end = position['end'].offset;
+ frontMatter = this.data.substr(0, end);
+ }
+ frontMatter += '\n\n';
+ //frontMatter += `\n---\n\n`;
+ return frontMatter;
+ }
+ onClose() {
+ return __awaiter(this, void 0, void 0, function* () {
+ // Remove draggables from render, as the DOM has already detached
+ //this.plugin.removeView(this);
+ if (this.mindmap) {
+ this.mindmap.clear();
+ this.contentEl.innerHTML = '';
+ this.mindmap = null;
+ }
+ });
+ }
+ clear() {
+ }
+ getViewData() {
+ return this.data;
+ }
+ setViewData(data) {
+ if (this.mindmap) {
+ this.mindmap.clear();
+ this.contentEl.innerHTML = '';
+ }
+ this.data = data;
+ var mdText = this.getMdText(this.data);
+ var mindData = this.mdToData(mdText);
+ mindData.isRoot = true;
+ // const frontmatterContentRegExResult = /^---$(.+?)^---$.+?/mis.exec(data)
+ // if (frontmatterContentRegExResult != null && frontmatterContentRegExResult[1]) {
+ // frontmatterContentRegExResult[1].split('\n').forEach((frontmatterLine) => {
+ // const keyValue = frontmatterLine.split(': ')
+ // if (keyValue.length === 2) {
+ // const value = /^[{\[].+[}\]]$/.test(keyValue[1]) ? JSON.parse(keyValue[1]) : keyValue[1]
+ // this.fileCache.frontmatter[keyValue[0]] = value
+ // }
+ // });
+ // }
+ this.mindmap = new MindMap(mindData, this.contentEl, this.plugin.settings);
+ this.mindmap.colors = this.colors;
+ if (this.firstInit) {
+ setTimeout(() => {
+ var leaf = this.leaf;
+ if (leaf) {
+ var view = leaf.view;
+ this.mindmap.path = view === null || view === void 0 ? void 0 : view.file.path;
+ if (view.file) {
+ this.fileCache = this.app.metadataCache.getFileCache(view.file);
+ this.yamlString = this.getFrontMatter();
+ }
+ }
+ this.mindmap.init();
+ this.mindmap.refresh();
+ this.mindmap.view = this;
+ this.firstInit = false;
+ }, 100);
+ }
+ else {
+ var view = this.leaf.view;
+ this.fileCache = this.app.metadataCache.getFileCache(view.file);
+ this.yamlString = this.getFrontMatter();
+ this.mindmap.path = view === null || view === void 0 ? void 0 : view.file.path;
+ this.mindmap.init();
+ this.mindmap.refresh();
+ this.mindmap.view = this;
+ }
+ }
+ onunload() {
+ this.app.workspace.offref("quick-preview");
+ this.app.workspace.offref("resize");
+ if (this.mindmap) {
+ this.mindmap.clear();
+ this.contentEl.innerHTML = '';
+ this.mindmap = null;
+ }
+ this.plugin.setMarkdownView(this.leaf);
+ }
+ onload() {
+ super.onload();
+ this.registerEvent(this.app.workspace.on("quick-preview", () => this.onQuickPreview, this));
+ this.registerEvent(this.app.workspace.on('resize', () => this.updateMindMap(), this));
+ }
+ onQuickPreview(file, data) {
+ if (file === this.file && data !== this.data) {
+ this.setViewData(data);
+ this.fileCache = this.app.metadataCache.getFileCache(file);
+ }
+ }
+ updateMindMap() {
+ if (this.mindmap) {
+ if (obsidian.Platform.isDesktopApp) {
+ this.mindmap.center();
+ }
+ }
+ }
+ onFileMetadataChange(file) {
+ return __awaiter(this, void 0, void 0, function* () {
+ var path = file.path;
+ let md = yield this.app.vault.adapter.read(path);
+ this.onQuickPreview(file, md);
+ });
+ }
+ getMdText(str) {
+ var md = str.trim().replace(FRONT_MATTER_REGEX, '');
+ return md.trim();
+ }
+ mdToData(str) {
+ var _a;
+ function transformData(mapData) {
+ var flag = true;
+ if (mapData.t == 'blockquote') {
+ mapData = mapData.c[0];
+ flag = false;
+ mapData.v = '> ' + mapData.v;
+ }
+ const regexResult = /^.+ \^([a-z0-9\-]+)$/gim.exec(mapData.v);
+ const id = regexResult != null ? regexResult[1] : null;
+ // console.log(id);
+ var map = {
+ id: id || uuid(),
+ text: id ? mapData.v.replace(` ^${id}`, '') : mapData.v,
+ children: [],
+ expanded: id ? false : true
+ };
+ if (flag && mapData.c && mapData.c.length) {
+ mapData.c.forEach((data) => {
+ map.children.push(transformData(data));
+ });
+ }
+ return map;
+ }
+ if (str) {
+ const { root } = transformer.transform(str);
+ const data = transformData(root);
+ return data;
+ }
+ else {
+ return {
+ id: uuid(),
+ text: ((_a = this.app.workspace.getActiveFile()) === null || _a === void 0 ? void 0 : _a.basename) || `${t('Untitled mindmap')}`
+ };
+ }
+ }
+ onMoreOptionsMenu(menu) {
+ // Add a menu item to force the board to markdown view
+ menu
+ .addItem((item) => {
+ item
+ .setTitle(`${t("Open as markdown")}`)
+ .setIcon("document")
+ .onClick(() => {
+ this.plugin.mindmapFileModes[this.id || this.file.path] = "markdown";
+ this.plugin.setMarkdownView(this.leaf);
+ });
+ });
+ // .addItem((item)=>{
+ // item
+ // .setTitle(`${t("Export to opml")}`)
+ // .setIcon('image-file')
+ // .onClick(()=>{
+ // const targetFolder = this.plugin.app.fileManager.getNewFileParent(
+ // this.plugin.app.workspace.getActiveFile()?.path || ""
+ // );
+ // if(targetFolder){
+ // console.log(targetFolder,this.plugin.app.fileManager);
+ // }
+ // })
+ // })
+ super.onMoreOptionsMenu(menu);
+ }
+}
+
+class MindMapSettingsTab extends obsidian.PluginSettingTab {
+ constructor(app, plugin) {
+ super(app, plugin);
+ this.plugin = plugin;
+ }
+ display() {
+ const { containerEl } = this;
+ containerEl.empty();
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Canvas size')}`)
+ .setDesc(`${t('Canvas size desc')}`)
+ .addDropdown(dropDown => dropDown
+ .addOption('4000', '4000')
+ .addOption('6000', '6000')
+ .addOption('8000', '8000')
+ .addOption('10000', '10000')
+ .addOption('12000', '12000')
+ .addOption('16000', '16000')
+ .addOption('20000', '20000')
+ .addOption('30000', '30000')
+ .addOption('36000', '36000')
+ .setValue(this.plugin.settings.canvasSize.toString() || '8000')
+ .onChange((value) => {
+ var _v = Number.parseInt(value);
+ this.plugin.settings.canvasSize = _v;
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.canvasSize = _v;
+ v.mindmap.setAppSetting();
+ var box = v.mindmap.root.getBox();
+ v.mindmap.root.setPosition(_v / 2 - box.width / 2, _v / 2 - box.height / 2);
+ v.mindmap.refresh();
+ v.mindmap.center();
+ });
+ }));
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Canvas background')}`)
+ .setDesc(`${t('Canvas background desc')}`)
+ .addText(text => text
+ .setValue(this.plugin.settings.background || 'transparent')
+ .setPlaceholder('Example: black|white|#ccc')
+ .onChange((value) => {
+ this.plugin.settings.background = value;
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.background = this.plugin.settings.background;
+ v.mindmap.setAppSetting();
+ });
+ }));
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Max level of node to markdown head')}`)
+ .setDesc(`${t('Max level of node to markdown head desc')}`)
+ .addDropdown(dropDown => dropDown
+ .addOption('0', '0')
+ .addOption('1', '1')
+ .addOption('2', '2')
+ .addOption('3', '3')
+ .addOption('4', '4')
+ .addOption('5', '5')
+ .addOption('6', '6')
+ .setValue(this.plugin.settings.headLevel.toString() || '2')
+ .onChange((value) => {
+ this.plugin.settings.headLevel = Number.parseInt(value);
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.headLevel = this.plugin.settings.headLevel;
+ });
+ }));
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Font size')}`)
+ .setDesc(`${t('Font size desc')}`)
+ .addText(text => {
+ var _a;
+ return text
+ .setValue(((_a = this.plugin.settings.fontSize) === null || _a === void 0 ? void 0 : _a.toString()) || '16')
+ .setPlaceholder('Example: 16')
+ .onChange((value) => {
+ this.plugin.settings.fontSize = Number.parseInt(value);
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.fontSize = this.plugin.settings.fontSize;
+ v.mindmap.setAppSetting();
+ v.mindmap.traverseBF((n) => {
+ n.boundingRect = null;
+ n.refreshBox();
+ });
+ v.mindmap.refresh();
+ });
+ });
+ });
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Mind map layout direct')}`)
+ .setDesc(`${t('Mind map layout direct desc')}`)
+ .addDropdown(dropDown => dropDown
+ .addOption('mind map', t('Centered'))
+ .addOption('right', t('Right'))
+ .addOption('left', t('Left'))
+ .addOption('clockwise', t('Clockwise'))
+ .setValue(this.plugin.settings.layoutDirect.toString() || 'mind map')
+ .onChange((value) => {
+ this.plugin.settings.layoutDirect = value;
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.layoutDirect = this.plugin.settings.layoutDirect;
+ v.mindmap.refresh();
+ });
+ }));
+ new obsidian.Setting(containerEl)
+ .setName(`${t('Stroke Array')}`)
+ .setDesc(`${t('Stroke Array Desc')}`)
+ .addText(text => {
+ var _a;
+ return text
+ .setValue(((_a = this.plugin.settings.strokeArray) === null || _a === void 0 ? void 0 : _a.toString()) || '')
+ .setPlaceholder('Example: red,orange,blue ...')
+ .onChange((value) => {
+ this.plugin.settings.strokeArray = value;
+ this.plugin.saveData(this.plugin.settings);
+ const mindmapLeaves = this.app.workspace.getLeavesOfType(mindmapViewType);
+ mindmapLeaves.forEach((leaf) => {
+ var v = leaf.view;
+ v.mindmap.setting.strokeArray = this.plugin.settings.strokeArray.split(',');
+ if (v.mindmap.mmLayout) {
+ v.mindmap.mmLayout.colors = v.mindmap.setting.strokeArray;
+ }
+ v.mindmap.traverseBF((n) => {
+ n.boundingRect = null;
+ n.refreshBox();
+ });
+ v.mindmap.refresh();
+ });
+ });
+ });
+ }
+}
+
+class MindMapPlugin extends obsidian.Plugin {
+ constructor() {
+ super(...arguments);
+ this.mindmapFileModes = {};
+ this._loaded = false;
+ this.timeOut = null;
+ }
+ onload() {
+ return __awaiter(this, void 0, void 0, function* () {
+ yield this.loadSettings();
+ this.addCommand({
+ id: 'Create New MindMap',
+ name: `${t('Create new mindmap')}`,
+ checkCallback: (checking) => {
+ var _a;
+ let leaf = this.app.workspace.activeLeaf;
+ if (leaf) {
+ if (!checking) {
+ const targetFolder = this.app.fileManager.getNewFileParent(((_a = this.app.workspace.getActiveFile()) === null || _a === void 0 ? void 0 : _a.path) || "");
+ if (targetFolder) {
+ this.newMindMap(targetFolder);
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+ });
+ this.addCommand({
+ id: 'Toggle to markdown or mindmap',
+ name: `${t('Toggle markdown/mindmap')}`,
+ mobileOnly: false,
+ callback: () => {
+ const mindmapView = this.app.workspace.getActiveViewOfType(MindMapView);
+ const markdownView = this.app.workspace.getActiveViewOfType(obsidian.MarkdownView);
+ if (mindmapView != null) {
+ this.mindmapFileModes[mindmapView.leaf.id || mindmapView.file.path] = 'markdown';
+ this.setMarkdownView(mindmapView.leaf);
+ }
+ else if (markdownView != null) {
+ this.mindmapFileModes[markdownView.leaf.id || markdownView.file.path] = mindmapViewType;
+ this.setMarkdownView(markdownView.leaf);
+ }
+ }
+ });
+ this.addCommand({
+ id: 'Copy Node',
+ name: `${t('Copy node')}`,
+ callback: () => {
+ const mindmapView = this.app.workspace.getActiveViewOfType(MindMapView);
+ if (mindmapView) {
+ var mindmap = mindmapView.mindmap;
+ navigator.clipboard.writeText('');
+ var node = mindmap.selectNode;
+ if (node) {
+ var text = mindmap.copyNode(node);
+ navigator.clipboard.writeText(text);
+ }
+ }
+ }
+ });
+ this.addCommand({
+ id: 'Paste Node',
+ name: `${t('Paste node')}`,
+ callback: () => {
+ const mindmapView = this.app.workspace.getActiveViewOfType(MindMapView);
+ if (mindmapView) {
+ var mindmap = mindmapView.mindmap;
+ navigator.clipboard.readText().then(text => {
+ mindmap.pasteNode(text);
+ });
+ }
+ }
+ });
+ this.addCommand({
+ id: 'Export to html',
+ name: `${t('Export to html')}`,
+ callback: () => {
+ const mindmapView = this.app.workspace.getActiveViewOfType(MindMapView);
+ if (mindmapView) {
+ mindmapView.exportToSvg();
+ }
+ }
+ });
+ this.registerView(mindmapViewType, (leaf) => new MindMapView(leaf, this));
+ this.registerEvents();
+ this.registerMonkeyAround();
+ this.addSettingTab(new MindMapSettingsTab(this.app, this));
+ });
+ }
+ onunload() {
+ this.app.workspace.detachLeavesOfType(mindmapViewType);
+ //this.app.workspace.unregisterHoverLinkSource(frontMatterKey);
+ }
+ newMindMap(folder) {
+ var _a;
+ return __awaiter(this, void 0, void 0, function* () {
+ const targetFolder = folder
+ ? folder
+ : this.app.fileManager.getNewFileParent(((_a = this.app.workspace.getActiveFile()) === null || _a === void 0 ? void 0 : _a.path) || "");
+ try {
+ // @ts-ignore
+ const mindmap = yield this.app.fileManager.createNewMarkdownFile(targetFolder, `${t('Untitled mindmap')}`);
+ yield this.app.vault.modify(mindmap, basicFrontmatter);
+ // await this.app.workspace.activeLeaf.setViewState({
+ // type: mindmapViewType,
+ // state: { file: mindmap.path },
+ // });
+ setTimeout(() => __awaiter(this, void 0, void 0, function* () {
+ yield this.app.workspace.getLeaf().setViewState({
+ type: mindmapViewType,
+ state: { file: mindmap.path },
+ });
+ }), 100);
+ }
+ catch (e) {
+ console.error("Error creating mindmap board:", e);
+ }
+ });
+ }
+ loadSettings() {
+ return __awaiter(this, void 0, void 0, function* () {
+ this.settings = Object.assign({
+ canvasSize: 8000,
+ headLevel: 2,
+ fontSize: 16,
+ background: 'transparent',
+ layout: 'mindmap',
+ layoutDirect: 'mindmap'
+ }, yield this.loadData());
+ });
+ }
+ saveSettings() {
+ return __awaiter(this, void 0, void 0, function* () {
+ yield this.saveData(this.settings);
+ });
+ }
+ setMarkdownView(leaf) {
+ return __awaiter(this, void 0, void 0, function* () {
+ yield leaf.setViewState({
+ type: "markdown",
+ state: leaf.view.getState(),
+ popstate: true,
+ }, { focus: true });
+ });
+ }
+ setMindMapView(leaf) {
+ return __awaiter(this, void 0, void 0, function* () {
+ yield leaf.setViewState({
+ type: mindmapViewType,
+ state: leaf.view.getState(),
+ popstate: true,
+ });
+ });
+ }
+ registerEvents() {
+ this.registerEvent(this.app.workspace.on("file-menu", (menu, file, source, leaf) => {
+ // Add a menu item to the folder context menu to create a board
+ if (file instanceof obsidian.TFolder) {
+ menu.addItem((item) => {
+ item
+ .setTitle(`${t('New mindmap board')}`)
+ .setIcon('document')
+ .onClick(() => this.newMindMap(file));
+ });
+ return;
+ }
+ //add markdown view menu open as mind map view
+ if (leaf && this.mindmapFileModes[leaf.id || file.path] == 'markdown') {
+ const cache = this.app.metadataCache.getFileCache(file);
+ if ((cache === null || cache === void 0 ? void 0 : cache.frontmatter) && cache.frontmatter[frontMatterKey]) {
+ menu.addItem((item) => {
+ item
+ .setTitle(`${t('Open as mindmap board')}`)
+ .setIcon("document")
+ .onClick(() => {
+ this.mindmapFileModes[leaf.id || file.path] = mindmapViewType;
+ this.setMindMapView(leaf);
+ });
+ }).addSeparator();
+ }
+ }
+ }));
+ this.registerEvent(this.app.metadataCache.on("changed", (file) => {
+ this.app.workspace.getLeavesOfType(mindmapViewType).forEach((leaf) => {
+ const view = leaf.view;
+ view.onFileMetadataChange(file);
+ });
+ }));
+ // @ts-ignore
+ // this.app.workspace.registerHoverLinkSource(frontMatterKey, {
+ // display: mindmapViewType,
+ // defaultMod: true,
+ // });
+ }
+ registerMonkeyAround() {
+ const self = this;
+ this.register(around(obsidian.WorkspaceLeaf.prototype, {
+ // Kanbans can be viewed as markdown or kanban, and we keep track of the mode
+ // while the file is open. When the file closes, we no longer need to keep track of it.
+ detach(next) {
+ return function () {
+ var _a;
+ const state = (_a = this.view) === null || _a === void 0 ? void 0 : _a.getState();
+ if ((state === null || state === void 0 ? void 0 : state.file) && self.mindmapFileModes[this.id || state.file]) {
+ delete self.mindmapFileModes[this.id || state.file];
+ }
+ return next.apply(this);
+ };
+ },
+ setViewState(next) {
+ return function (state, ...rest) {
+ var _a;
+ // new Notice( state.type);
+ if (self._loaded &&
+ state.type === "markdown" &&
+ ((_a = state.state) === null || _a === void 0 ? void 0 : _a.file) &&
+ // And the current mode of the file is not set to markdown
+ self.mindmapFileModes[this.id || state.state.file] !== "markdown") {
+ // Then check for the kanban frontMatterKey
+ const cache = self.app.metadataCache.getCache(state.state.file);
+ // new Notice(cache.frontmatter[frontMatterKey]);
+ if ((cache === null || cache === void 0 ? void 0 : cache.frontmatter) && cache.frontmatter[frontMatterKey]) {
+ // If we have it, force the view type to kanban
+ const newState = Object.assign(Object.assign({}, state), { type: mindmapViewType });
+ self.mindmapFileModes[state.state.file] = mindmapViewType;
+ return next.apply(this, [newState, ...rest]);
+ }
+ }
+ return next.apply(this, [state, ...rest]);
+ };
+ },
+ }));
+ // this.register(
+ // around(MarkdownView.prototype, {
+ // onMoreOptionsMenu(next) {
+ // return function (menu: Menu) {
+ // const file = this.file;
+ // const cache = file
+ // ? self.app.metadataCache.getFileCache(file)
+ // : null;
+ // if (
+ // !file ||
+ // !cache?.frontmatter ||
+ // !cache.frontmatter[frontMatterKey]
+ // ) {
+ // return next.call(this, menu);
+ // }
+ // menu
+ // .addItem((item) => {
+ // item
+ // .setTitle(`${t('Open as mindmap board')}`)
+ // .setIcon("document")
+ // .onClick(() => {
+ // self.mindmapFileModes[this.leaf.id || file.path] =
+ // mindmapViewType;
+ // self.setMindMapView(this.leaf);
+ // });
+ // })
+ // .addSeparator();
+ // next.call(this, menu);
+ // };
+ // },
+ // })
+ // );
+ }
+}
+
+module.exports = MindMapPlugin;
diff --git a/.obsidian/plugins/obsidian-enhancing-mindmap/manifest.json b/.obsidian/plugins/obsidian-enhancing-mindmap/manifest.json
new file mode 100644
index 00000000..b7e528e7
--- /dev/null
+++ b/.obsidian/plugins/obsidian-enhancing-mindmap/manifest.json
@@ -0,0 +1,10 @@
+{
+ "id": "obsidian-enhancing-mindmap",
+ "name": "Enhancing Mindmap",
+ "version": "0.2.4",
+ "minAppVersion": "0.9.12",
+ "description": "This is a enhancing mindmap plugin for Obsidian. You can edit mindmap on markdown.",
+ "author": "Mark",
+ "authorUrl": "https://github.com/MarkMindCkm/obsidian-enhancing-mindmap",
+ "isDesktopOnly": false
+}
diff --git a/.obsidian/plugins/obsidian-enhancing-mindmap/styles.css b/.obsidian/plugins/obsidian-enhancing-mindmap/styles.css
new file mode 100644
index 00000000..ad9973a0
--- /dev/null
+++ b/.obsidian/plugins/obsidian-enhancing-mindmap/styles.css
@@ -0,0 +1,175 @@
+.mm-mindmap {
+ color: #666;
+ font-size: 16px;
+ width: 8000px;
+ height: 8000px;
+}
+
+.theme-dark .mm-node {
+ color: #f5f5f5;
+}
+
+.theme-dark .mm-node.mm-root {
+ color: #333;
+}
+
+.theme-light .mm-node.mm-root .mm-node-content {
+ color: #fff;
+ background-color: rgb(0, 170, 255);
+}
+
+.mm-node {
+ position: absolute;
+ cursor: pointer;
+ box-sizing: border-box;
+}
+.mm-node .mm-node-content {
+ padding: 2px 4px;
+ max-width: 800px;
+ word-break: break-word;
+}
+
+.mm-node-content > p,
+.mm-node-content > h1,
+.mm-node-content > h2,
+.mm-node-content > h3,
+.mm-node-content > h4,
+.mm-node-content > h5,
+.mm-node-content > h6 {
+ padding: 0;
+ margin: 0;
+}
+
+.mm-node.mm-root .mm-node-content {
+ font-size: 1.6em;
+ padding: 14px 20px;
+ border-radius: 0.25rem;
+ background: white;
+}
+
+.mm-node.mm-node-second .mm-node-content {
+ padding: 8px 10px;
+ font-size: 1.2em;
+}
+
+.mm-node.mm-node-select {
+ border: 2px solid var(--interactive-accent);
+ border-radius: 0.25rem;
+}
+
+.mm-node-bar {
+ position: absolute;
+ height: 12px;
+ width: 12px;
+ border-radius: 50%;
+ padding: 0 3px;
+ bottom: -8px;
+ box-sizing: border-box;
+}
+
+.mm-node-bar:hover {
+ transform: scale(1.2);
+}
+
+.mm-node .mm-node-bar {}
+
+.mm-node-right .mm-node-bar,
+.mm-node.mm-root .mm-node-bar {
+ right: -12px;
+}
+
+.mm-root .mm-node-bar,
+.mm-node-second .mm-node-bar {
+ top: 50%;
+ margin-top: -5px;
+ bottom: inherit;
+}
+
+.mm-node-left .mm-node-bar {
+ left: -12px;
+}
+
+.mm-root .mm-node-bar,
+.mm-node-leaf .mm-node-bar {
+ display: none;
+}
+
+.mm-node-collapse .mm-node-bar {
+ display: block !important;
+ box-sizing: border-box;
+ border: 0px;
+ background-color: #fff !important;
+ border: 2px solid #ccc;
+}
+
+/* node indicate */
+.mm-node-layout-indicate {
+ position: absolute;
+ left:0;
+ top:0;
+ width: 0;
+ height: 0;
+ border: 20px solid transparent;
+ border-bottom: 40px solid var(--interactive-accent);
+ transform-origin: center center;
+ z-index:100;
+}
+
+.mm-node-layout-indicate.mm-arrow-left{
+ transform: rotate(-90deg)
+}
+.mm-node-layout-indicate.mm-arrow-down{
+ transform: rotate(180deg)
+}
+.mm-node-layout-indicate.mm-arrow-right{
+ transform: rotate(-270deg)
+}
+
+
+/* edit node style */
+.mm-node.mm-edit-node{
+ z-index:50;
+}
+.mm-node.mm-edit-node .mm-node-content{
+ background-color: #333;
+ color:white;
+}
+
+.theme-light .mm-node.mm-edit-node .mm-node-content{
+ background-color: white;
+ color:#333
+}
+
+/* menu */
+.mm-node-menu{
+ position:absolute;
+ background:#333;
+ border:1px solid #000;
+ width:56px;
+ border-radius: 0.25rem;
+ z-index: 60;
+}
+
+.theme-light .mm-node-menu{
+ background:white;
+ border:1px solid #666;
+}
+
+.mm-node-menu span {
+ vertical-align: middle;
+ cursor: pointer;
+ margin:0 5px
+}
+
+.mm-node-menu span svg{
+ fill:#ccc;
+}
+
+.mm-node-menu span svg:hover{
+ opacity: 0.8;
+}
+
+.theme-light .mm-node-menu svg{
+ fill: #333;
+}
+
diff --git a/.obsidian/plugins/templater-obsidian/data.json b/.obsidian/plugins/templater-obsidian/data.json
new file mode 100644
index 00000000..49195a85
--- /dev/null
+++ b/.obsidian/plugins/templater-obsidian/data.json
@@ -0,0 +1,30 @@
+{
+ "command_timeout": 5,
+ "templates_folder": "templates",
+ "templates_pairs": [
+ [
+ "",
+ ""
+ ]
+ ],
+ "trigger_on_file_creation": false,
+ "auto_jump_to_cursor": false,
+ "enable_system_commands": false,
+ "shell_path": "",
+ "user_scripts_folder": "",
+ "enable_folder_templates": true,
+ "folder_templates": [
+ {
+ "folder": "",
+ "template": ""
+ }
+ ],
+ "syntax_highlighting": true,
+ "enabled_templates_hotkeys": [
+ ""
+ ],
+ "startup_templates": [
+ ""
+ ],
+ "enable_ribbon_icon": true
+}
\ No newline at end of file
diff --git a/.obsidian/plugins/templater-obsidian/main.js b/.obsidian/plugins/templater-obsidian/main.js
new file mode 100644
index 00000000..32262538
--- /dev/null
+++ b/.obsidian/plugins/templater-obsidian/main.js
@@ -0,0 +1,5617 @@
+/*
+THIS IS A GENERATED/BUNDLED FILE BY ESBUILD
+if you want to view the source, please visit the github repository of this plugin
+*/
+
+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 __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
+var __export = (target, all) => {
+ __markAsModule(target);
+ for (var name in all)
+ __defProp(target, name, { get: all[name], enumerable: true });
+};
+var __reExport = (target, module2, desc) => {
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
+ for (let key of __getOwnPropNames(module2))
+ if (!__hasOwnProp.call(target, key) && key !== "default")
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
+ }
+ return target;
+};
+var __toModule = (module2) => {
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
+};
+var __toBinary = /* @__PURE__ */ (() => {
+ var table = new Uint8Array(128);
+ for (var i = 0; i < 64; i++)
+ table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;
+ return (base64) => {
+ var n = base64.length, bytes = new Uint8Array((n - (base64[n - 1] == "=") - (base64[n - 2] == "=")) * 3 / 4 | 0);
+ for (var i2 = 0, j = 0; i2 < n; ) {
+ var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];
+ var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];
+ bytes[j++] = c0 << 2 | c1 >> 4;
+ bytes[j++] = c1 << 4 | c2 >> 2;
+ bytes[j++] = c2 << 6 | c3;
+ }
+ return bytes;
+ };
+})();
+
+// src/main.ts
+__export(exports, {
+ default: () => TemplaterPlugin
+});
+var import_obsidian18 = __toModule(require("obsidian"));
+
+// src/settings/Settings.ts
+var import_obsidian6 = __toModule(require("obsidian"));
+
+// src/utils/Log.ts
+var import_obsidian = __toModule(require("obsidian"));
+function log_error(e) {
+ const notice = new import_obsidian.Notice("", 8e3);
+ if (e instanceof TemplaterError && e.console_msg) {
+ notice.noticeEl.innerHTML = `Templater Error:
${e.message}
Check console for more information`;
+ console.error(`Templater Error:`, e.message, "\n", e.console_msg);
+ } else {
+ notice.noticeEl.innerHTML = `Templater Error:
${e.message}`;
+ }
+}
+
+// src/utils/Error.ts
+var TemplaterError = class extends Error {
+ constructor(msg, console_msg) {
+ super(msg);
+ this.console_msg = console_msg;
+ this.name = this.constructor.name;
+ Error.captureStackTrace(this, this.constructor);
+ }
+};
+async function errorWrapper(fn2, msg) {
+ try {
+ return await fn2();
+ } catch (e) {
+ if (!(e instanceof TemplaterError)) {
+ log_error(new TemplaterError(msg, e.message));
+ } else {
+ log_error(e);
+ }
+ return null;
+ }
+}
+function errorWrapperSync(fn2, msg) {
+ try {
+ return fn2();
+ } catch (e) {
+ log_error(new TemplaterError(msg, e.message));
+ return null;
+ }
+}
+
+// src/settings/suggesters/FolderSuggester.ts
+var import_obsidian3 = __toModule(require("obsidian"));
+
+// src/settings/suggesters/suggest.ts
+var import_obsidian2 = __toModule(require("obsidian"));
+
+// node_modules/@popperjs/core/lib/enums.js
+var top = "top";
+var bottom = "bottom";
+var right = "right";
+var left = "left";
+var auto = "auto";
+var basePlacements = [top, bottom, right, left];
+var start = "start";
+var end = "end";
+var clippingParents = "clippingParents";
+var viewport = "viewport";
+var popper = "popper";
+var reference = "reference";
+var variationPlacements = /* @__PURE__ */ basePlacements.reduce(function(acc, placement) {
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
+}, []);
+var placements = /* @__PURE__ */ [].concat(basePlacements, [auto]).reduce(function(acc, placement) {
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
+}, []);
+var beforeRead = "beforeRead";
+var read = "read";
+var afterRead = "afterRead";
+var beforeMain = "beforeMain";
+var main = "main";
+var afterMain = "afterMain";
+var beforeWrite = "beforeWrite";
+var write = "write";
+var afterWrite = "afterWrite";
+var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
+
+// node_modules/@popperjs/core/lib/dom-utils/getNodeName.js
+function getNodeName(element) {
+ return element ? (element.nodeName || "").toLowerCase() : null;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getWindow.js
+function getWindow(node) {
+ if (node == null) {
+ return window;
+ }
+ if (node.toString() !== "[object Window]") {
+ var ownerDocument = node.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView || window : window;
+ }
+ return node;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/instanceOf.js
+function isElement(node) {
+ var OwnElement = getWindow(node).Element;
+ return node instanceof OwnElement || node instanceof Element;
+}
+function isHTMLElement(node) {
+ var OwnElement = getWindow(node).HTMLElement;
+ return node instanceof OwnElement || node instanceof HTMLElement;
+}
+function isShadowRoot(node) {
+ if (typeof ShadowRoot === "undefined") {
+ return false;
+ }
+ var OwnElement = getWindow(node).ShadowRoot;
+ return node instanceof OwnElement || node instanceof ShadowRoot;
+}
+
+// node_modules/@popperjs/core/lib/modifiers/applyStyles.js
+function applyStyles(_ref) {
+ var state = _ref.state;
+ Object.keys(state.elements).forEach(function(name) {
+ var style = state.styles[name] || {};
+ var attributes = state.attributes[name] || {};
+ var element = state.elements[name];
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(name2) {
+ var value = attributes[name2];
+ if (value === false) {
+ element.removeAttribute(name2);
+ } else {
+ element.setAttribute(name2, value === true ? "" : value);
+ }
+ });
+ });
+}
+function effect(_ref2) {
+ var state = _ref2.state;
+ var initialStyles = {
+ popper: {
+ position: state.options.strategy,
+ left: "0",
+ top: "0",
+ margin: "0"
+ },
+ arrow: {
+ position: "absolute"
+ },
+ reference: {}
+ };
+ Object.assign(state.elements.popper.style, initialStyles.popper);
+ state.styles = initialStyles;
+ if (state.elements.arrow) {
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
+ }
+ return function() {
+ Object.keys(state.elements).forEach(function(name) {
+ var element = state.elements[name];
+ var attributes = state.attributes[name] || {};
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]);
+ var style = styleProperties.reduce(function(style2, property) {
+ style2[property] = "";
+ return style2;
+ }, {});
+ if (!isHTMLElement(element) || !getNodeName(element)) {
+ return;
+ }
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function(attribute) {
+ element.removeAttribute(attribute);
+ });
+ });
+ };
+}
+var applyStyles_default = {
+ name: "applyStyles",
+ enabled: true,
+ phase: "write",
+ fn: applyStyles,
+ effect,
+ requires: ["computeStyles"]
+};
+
+// node_modules/@popperjs/core/lib/utils/getBasePlacement.js
+function getBasePlacement(placement) {
+ return placement.split("-")[0];
+}
+
+// node_modules/@popperjs/core/lib/utils/math.js
+var max = Math.max;
+var min = Math.min;
+var round = Math.round;
+
+// node_modules/@popperjs/core/lib/utils/userAgent.js
+function getUAString() {
+ var uaData = navigator.userAgentData;
+ if (uaData != null && uaData.brands) {
+ return uaData.brands.map(function(item) {
+ return item.brand + "/" + item.version;
+ }).join(" ");
+ }
+ return navigator.userAgent;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js
+function isLayoutViewport() {
+ return !/^((?!chrome|android).)*safari/i.test(getUAString());
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js
+function getBoundingClientRect(element, includeScale, isFixedStrategy) {
+ if (includeScale === void 0) {
+ includeScale = false;
+ }
+ if (isFixedStrategy === void 0) {
+ isFixedStrategy = false;
+ }
+ var clientRect = element.getBoundingClientRect();
+ var scaleX = 1;
+ var scaleY = 1;
+ if (includeScale && isHTMLElement(element)) {
+ scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;
+ scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;
+ }
+ var _ref = isElement(element) ? getWindow(element) : window, visualViewport = _ref.visualViewport;
+ var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
+ var width = clientRect.width / scaleX;
+ var height = clientRect.height / scaleY;
+ return {
+ width,
+ height,
+ top: y,
+ right: x + width,
+ bottom: y + height,
+ left: x,
+ x,
+ y
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js
+function getLayoutRect(element) {
+ var clientRect = getBoundingClientRect(element);
+ var width = element.offsetWidth;
+ var height = element.offsetHeight;
+ if (Math.abs(clientRect.width - width) <= 1) {
+ width = clientRect.width;
+ }
+ if (Math.abs(clientRect.height - height) <= 1) {
+ height = clientRect.height;
+ }
+ return {
+ x: element.offsetLeft,
+ y: element.offsetTop,
+ width,
+ height
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/contains.js
+function contains(parent, child) {
+ var rootNode = child.getRootNode && child.getRootNode();
+ if (parent.contains(child)) {
+ return true;
+ } else if (rootNode && isShadowRoot(rootNode)) {
+ var next = child;
+ do {
+ if (next && parent.isSameNode(next)) {
+ return true;
+ }
+ next = next.parentNode || next.host;
+ } while (next);
+ }
+ return false;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js
+function getComputedStyle(element) {
+ return getWindow(element).getComputedStyle(element);
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/isTableElement.js
+function isTableElement(element) {
+ return ["table", "td", "th"].indexOf(getNodeName(element)) >= 0;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js
+function getDocumentElement(element) {
+ return ((isElement(element) ? element.ownerDocument : element.document) || window.document).documentElement;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getParentNode.js
+function getParentNode(element) {
+ if (getNodeName(element) === "html") {
+ return element;
+ }
+ return element.assignedSlot || element.parentNode || (isShadowRoot(element) ? element.host : null) || getDocumentElement(element);
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js
+function getTrueOffsetParent(element) {
+ if (!isHTMLElement(element) || getComputedStyle(element).position === "fixed") {
+ return null;
+ }
+ return element.offsetParent;
+}
+function getContainingBlock(element) {
+ var isFirefox = /firefox/i.test(getUAString());
+ var isIE = /Trident/i.test(getUAString());
+ if (isIE && isHTMLElement(element)) {
+ var elementCss = getComputedStyle(element);
+ if (elementCss.position === "fixed") {
+ return null;
+ }
+ }
+ var currentNode = getParentNode(element);
+ if (isShadowRoot(currentNode)) {
+ currentNode = currentNode.host;
+ }
+ while (isHTMLElement(currentNode) && ["html", "body"].indexOf(getNodeName(currentNode)) < 0) {
+ var css = getComputedStyle(currentNode);
+ if (css.transform !== "none" || css.perspective !== "none" || css.contain === "paint" || ["transform", "perspective"].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === "filter" || isFirefox && css.filter && css.filter !== "none") {
+ return currentNode;
+ } else {
+ currentNode = currentNode.parentNode;
+ }
+ }
+ return null;
+}
+function getOffsetParent(element) {
+ var window2 = getWindow(element);
+ var offsetParent = getTrueOffsetParent(element);
+ while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === "static") {
+ offsetParent = getTrueOffsetParent(offsetParent);
+ }
+ if (offsetParent && (getNodeName(offsetParent) === "html" || getNodeName(offsetParent) === "body" && getComputedStyle(offsetParent).position === "static")) {
+ return window2;
+ }
+ return offsetParent || getContainingBlock(element) || window2;
+}
+
+// node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js
+function getMainAxisFromPlacement(placement) {
+ return ["top", "bottom"].indexOf(placement) >= 0 ? "x" : "y";
+}
+
+// node_modules/@popperjs/core/lib/utils/within.js
+function within(min2, value, max2) {
+ return max(min2, min(value, max2));
+}
+function withinMaxClamp(min2, value, max2) {
+ var v = within(min2, value, max2);
+ return v > max2 ? max2 : v;
+}
+
+// node_modules/@popperjs/core/lib/utils/getFreshSideObject.js
+function getFreshSideObject() {
+ return {
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ };
+}
+
+// node_modules/@popperjs/core/lib/utils/mergePaddingObject.js
+function mergePaddingObject(paddingObject) {
+ return Object.assign({}, getFreshSideObject(), paddingObject);
+}
+
+// node_modules/@popperjs/core/lib/utils/expandToHashMap.js
+function expandToHashMap(value, keys) {
+ return keys.reduce(function(hashMap, key) {
+ hashMap[key] = value;
+ return hashMap;
+ }, {});
+}
+
+// node_modules/@popperjs/core/lib/modifiers/arrow.js
+var toPaddingObject = function toPaddingObject2(padding, state) {
+ padding = typeof padding === "function" ? padding(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : padding;
+ return mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+};
+function arrow(_ref) {
+ var _state$modifiersData$;
+ var state = _ref.state, name = _ref.name, options = _ref.options;
+ var arrowElement = state.elements.arrow;
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var basePlacement = getBasePlacement(state.placement);
+ var axis = getMainAxisFromPlacement(basePlacement);
+ var isVertical = [left, right].indexOf(basePlacement) >= 0;
+ var len = isVertical ? "height" : "width";
+ if (!arrowElement || !popperOffsets2) {
+ return;
+ }
+ var paddingObject = toPaddingObject(options.padding, state);
+ var arrowRect = getLayoutRect(arrowElement);
+ var minProp = axis === "y" ? top : left;
+ var maxProp = axis === "y" ? bottom : right;
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets2[axis] - state.rects.popper[len];
+ var startDiff = popperOffsets2[axis] - state.rects.reference[axis];
+ var arrowOffsetParent = getOffsetParent(arrowElement);
+ var clientSize = arrowOffsetParent ? axis === "y" ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
+ var centerToReference = endDiff / 2 - startDiff / 2;
+ var min2 = paddingObject[minProp];
+ var max2 = clientSize - arrowRect[len] - paddingObject[maxProp];
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
+ var offset2 = within(min2, center, max2);
+ var axisProp = axis;
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset2, _state$modifiersData$.centerOffset = offset2 - center, _state$modifiersData$);
+}
+function effect2(_ref2) {
+ var state = _ref2.state, options = _ref2.options;
+ var _options$element = options.element, arrowElement = _options$element === void 0 ? "[data-popper-arrow]" : _options$element;
+ if (arrowElement == null) {
+ return;
+ }
+ if (typeof arrowElement === "string") {
+ arrowElement = state.elements.popper.querySelector(arrowElement);
+ if (!arrowElement) {
+ return;
+ }
+ }
+ if (true) {
+ if (!isHTMLElement(arrowElement)) {
+ console.error(['Popper: "arrow" element must be an HTMLElement (not an SVGElement).', "To use an SVG arrow, wrap it in an HTMLElement that will be used as", "the arrow."].join(" "));
+ }
+ }
+ if (!contains(state.elements.popper, arrowElement)) {
+ if (true) {
+ console.error(['Popper: "arrow" modifier\'s `element` must be a child of the popper', "element."].join(" "));
+ }
+ return;
+ }
+ state.elements.arrow = arrowElement;
+}
+var arrow_default = {
+ name: "arrow",
+ enabled: true,
+ phase: "main",
+ fn: arrow,
+ effect: effect2,
+ requires: ["popperOffsets"],
+ requiresIfExists: ["preventOverflow"]
+};
+
+// node_modules/@popperjs/core/lib/utils/getVariation.js
+function getVariation(placement) {
+ return placement.split("-")[1];
+}
+
+// node_modules/@popperjs/core/lib/modifiers/computeStyles.js
+var unsetSides = {
+ top: "auto",
+ right: "auto",
+ bottom: "auto",
+ left: "auto"
+};
+function roundOffsetsByDPR(_ref) {
+ var x = _ref.x, y = _ref.y;
+ var win = window;
+ var dpr = win.devicePixelRatio || 1;
+ return {
+ x: round(x * dpr) / dpr || 0,
+ y: round(y * dpr) / dpr || 0
+ };
+}
+function mapToStyles(_ref2) {
+ var _Object$assign2;
+ var popper2 = _ref2.popper, popperRect = _ref2.popperRect, placement = _ref2.placement, variation = _ref2.variation, offsets = _ref2.offsets, position = _ref2.position, gpuAcceleration = _ref2.gpuAcceleration, adaptive = _ref2.adaptive, roundOffsets = _ref2.roundOffsets, isFixed = _ref2.isFixed;
+ var _offsets$x = offsets.x, x = _offsets$x === void 0 ? 0 : _offsets$x, _offsets$y = offsets.y, y = _offsets$y === void 0 ? 0 : _offsets$y;
+ var _ref3 = typeof roundOffsets === "function" ? roundOffsets({
+ x,
+ y
+ }) : {
+ x,
+ y
+ };
+ x = _ref3.x;
+ y = _ref3.y;
+ var hasX = offsets.hasOwnProperty("x");
+ var hasY = offsets.hasOwnProperty("y");
+ var sideX = left;
+ var sideY = top;
+ var win = window;
+ if (adaptive) {
+ var offsetParent = getOffsetParent(popper2);
+ var heightProp = "clientHeight";
+ var widthProp = "clientWidth";
+ if (offsetParent === getWindow(popper2)) {
+ offsetParent = getDocumentElement(popper2);
+ if (getComputedStyle(offsetParent).position !== "static" && position === "absolute") {
+ heightProp = "scrollHeight";
+ widthProp = "scrollWidth";
+ }
+ }
+ offsetParent = offsetParent;
+ if (placement === top || (placement === left || placement === right) && variation === end) {
+ sideY = bottom;
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : offsetParent[heightProp];
+ y -= offsetY - popperRect.height;
+ y *= gpuAcceleration ? 1 : -1;
+ }
+ if (placement === left || (placement === top || placement === bottom) && variation === end) {
+ sideX = right;
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : offsetParent[widthProp];
+ x -= offsetX - popperRect.width;
+ x *= gpuAcceleration ? 1 : -1;
+ }
+ }
+ var commonStyles = Object.assign({
+ position
+ }, adaptive && unsetSides);
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
+ x,
+ y
+ }) : {
+ x,
+ y
+ };
+ x = _ref4.x;
+ y = _ref4.y;
+ if (gpuAcceleration) {
+ var _Object$assign;
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? "0" : "", _Object$assign[sideX] = hasX ? "0" : "", _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
+ }
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : "", _Object$assign2[sideX] = hasX ? x + "px" : "", _Object$assign2.transform = "", _Object$assign2));
+}
+function computeStyles(_ref5) {
+ var state = _ref5.state, options = _ref5.options;
+ var _options$gpuAccelerat = options.gpuAcceleration, gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat, _options$adaptive = options.adaptive, adaptive = _options$adaptive === void 0 ? true : _options$adaptive, _options$roundOffsets = options.roundOffsets, roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
+ if (true) {
+ var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || "";
+ if (adaptive && ["transform", "top", "right", "bottom", "left"].some(function(property) {
+ return transitionProperty.indexOf(property) >= 0;
+ })) {
+ console.warn(["Popper: Detected CSS transitions on at least one of the following", 'CSS properties: "transform", "top", "right", "bottom", "left".', "\n\n", 'Disable the "computeStyles" modifier\'s `adaptive` option to allow', "for smooth transitions, or remove these properties from the CSS", "transition declaration on the popper element if only transitioning", "opacity or background-color for example.", "\n\n", "We recommend using the popper element as a wrapper around an inner", "element that can have any CSS property transitioned for animations."].join(" "));
+ }
+ }
+ var commonStyles = {
+ placement: getBasePlacement(state.placement),
+ variation: getVariation(state.placement),
+ popper: state.elements.popper,
+ popperRect: state.rects.popper,
+ gpuAcceleration,
+ isFixed: state.options.strategy === "fixed"
+ };
+ if (state.modifiersData.popperOffsets != null) {
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.popperOffsets,
+ position: state.options.strategy,
+ adaptive,
+ roundOffsets
+ })));
+ }
+ if (state.modifiersData.arrow != null) {
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.arrow,
+ position: "absolute",
+ adaptive: false,
+ roundOffsets
+ })));
+ }
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-placement": state.placement
+ });
+}
+var computeStyles_default = {
+ name: "computeStyles",
+ enabled: true,
+ phase: "beforeWrite",
+ fn: computeStyles,
+ data: {}
+};
+
+// node_modules/@popperjs/core/lib/modifiers/eventListeners.js
+var passive = {
+ passive: true
+};
+function effect3(_ref) {
+ var state = _ref.state, instance = _ref.instance, options = _ref.options;
+ var _options$scroll = options.scroll, scroll = _options$scroll === void 0 ? true : _options$scroll, _options$resize = options.resize, resize = _options$resize === void 0 ? true : _options$resize;
+ var window2 = getWindow(state.elements.popper);
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.addEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.addEventListener("resize", instance.update, passive);
+ }
+ return function() {
+ if (scroll) {
+ scrollParents.forEach(function(scrollParent) {
+ scrollParent.removeEventListener("scroll", instance.update, passive);
+ });
+ }
+ if (resize) {
+ window2.removeEventListener("resize", instance.update, passive);
+ }
+ };
+}
+var eventListeners_default = {
+ name: "eventListeners",
+ enabled: true,
+ phase: "write",
+ fn: function fn() {
+ },
+ effect: effect3,
+ data: {}
+};
+
+// node_modules/@popperjs/core/lib/utils/getOppositePlacement.js
+var hash = {
+ left: "right",
+ right: "left",
+ bottom: "top",
+ top: "bottom"
+};
+function getOppositePlacement(placement) {
+ return placement.replace(/left|right|bottom|top/g, function(matched) {
+ return hash[matched];
+ });
+}
+
+// node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js
+var hash2 = {
+ start: "end",
+ end: "start"
+};
+function getOppositeVariationPlacement(placement) {
+ return placement.replace(/start|end/g, function(matched) {
+ return hash2[matched];
+ });
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js
+function getWindowScroll(node) {
+ var win = getWindow(node);
+ var scrollLeft = win.pageXOffset;
+ var scrollTop = win.pageYOffset;
+ return {
+ scrollLeft,
+ scrollTop
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js
+function getWindowScrollBarX(element) {
+ return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js
+function getViewportRect(element, strategy) {
+ var win = getWindow(element);
+ var html = getDocumentElement(element);
+ var visualViewport = win.visualViewport;
+ var width = html.clientWidth;
+ var height = html.clientHeight;
+ var x = 0;
+ var y = 0;
+ if (visualViewport) {
+ width = visualViewport.width;
+ height = visualViewport.height;
+ var layoutViewport = isLayoutViewport();
+ if (layoutViewport || !layoutViewport && strategy === "fixed") {
+ x = visualViewport.offsetLeft;
+ y = visualViewport.offsetTop;
+ }
+ }
+ return {
+ width,
+ height,
+ x: x + getWindowScrollBarX(element),
+ y
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js
+function getDocumentRect(element) {
+ var _element$ownerDocumen;
+ var html = getDocumentElement(element);
+ var winScroll = getWindowScroll(element);
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
+ var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
+ var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
+ var x = -winScroll.scrollLeft + getWindowScrollBarX(element);
+ var y = -winScroll.scrollTop;
+ if (getComputedStyle(body || html).direction === "rtl") {
+ x += max(html.clientWidth, body ? body.clientWidth : 0) - width;
+ }
+ return {
+ width,
+ height,
+ x,
+ y
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js
+function isScrollParent(element) {
+ var _getComputedStyle = getComputedStyle(element), overflow = _getComputedStyle.overflow, overflowX = _getComputedStyle.overflowX, overflowY = _getComputedStyle.overflowY;
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js
+function getScrollParent(node) {
+ if (["html", "body", "#document"].indexOf(getNodeName(node)) >= 0) {
+ return node.ownerDocument.body;
+ }
+ if (isHTMLElement(node) && isScrollParent(node)) {
+ return node;
+ }
+ return getScrollParent(getParentNode(node));
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js
+function listScrollParents(element, list) {
+ var _element$ownerDocumen;
+ if (list === void 0) {
+ list = [];
+ }
+ var scrollParent = getScrollParent(element);
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
+ var win = getWindow(scrollParent);
+ var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;
+ var updatedList = list.concat(target);
+ return isBody ? updatedList : updatedList.concat(listScrollParents(getParentNode(target)));
+}
+
+// node_modules/@popperjs/core/lib/utils/rectToClientRect.js
+function rectToClientRect(rect) {
+ return Object.assign({}, rect, {
+ left: rect.x,
+ top: rect.y,
+ right: rect.x + rect.width,
+ bottom: rect.y + rect.height
+ });
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js
+function getInnerBoundingClientRect(element, strategy) {
+ var rect = getBoundingClientRect(element, false, strategy === "fixed");
+ rect.top = rect.top + element.clientTop;
+ rect.left = rect.left + element.clientLeft;
+ rect.bottom = rect.top + element.clientHeight;
+ rect.right = rect.left + element.clientWidth;
+ rect.width = element.clientWidth;
+ rect.height = element.clientHeight;
+ rect.x = rect.left;
+ rect.y = rect.top;
+ return rect;
+}
+function getClientRectFromMixedType(element, clippingParent, strategy) {
+ return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));
+}
+function getClippingParents(element) {
+ var clippingParents2 = listScrollParents(getParentNode(element));
+ var canEscapeClipping = ["absolute", "fixed"].indexOf(getComputedStyle(element).position) >= 0;
+ var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;
+ if (!isElement(clipperElement)) {
+ return [];
+ }
+ return clippingParents2.filter(function(clippingParent) {
+ return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== "body";
+ });
+}
+function getClippingRect(element, boundary, rootBoundary, strategy) {
+ var mainClippingParents = boundary === "clippingParents" ? getClippingParents(element) : [].concat(boundary);
+ var clippingParents2 = [].concat(mainClippingParents, [rootBoundary]);
+ var firstClippingParent = clippingParents2[0];
+ var clippingRect = clippingParents2.reduce(function(accRect, clippingParent) {
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
+ accRect.top = max(rect.top, accRect.top);
+ accRect.right = min(rect.right, accRect.right);
+ accRect.bottom = min(rect.bottom, accRect.bottom);
+ accRect.left = max(rect.left, accRect.left);
+ return accRect;
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
+ clippingRect.width = clippingRect.right - clippingRect.left;
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
+ clippingRect.x = clippingRect.left;
+ clippingRect.y = clippingRect.top;
+ return clippingRect;
+}
+
+// node_modules/@popperjs/core/lib/utils/computeOffsets.js
+function computeOffsets(_ref) {
+ var reference2 = _ref.reference, element = _ref.element, placement = _ref.placement;
+ var basePlacement = placement ? getBasePlacement(placement) : null;
+ var variation = placement ? getVariation(placement) : null;
+ var commonX = reference2.x + reference2.width / 2 - element.width / 2;
+ var commonY = reference2.y + reference2.height / 2 - element.height / 2;
+ var offsets;
+ switch (basePlacement) {
+ case top:
+ offsets = {
+ x: commonX,
+ y: reference2.y - element.height
+ };
+ break;
+ case bottom:
+ offsets = {
+ x: commonX,
+ y: reference2.y + reference2.height
+ };
+ break;
+ case right:
+ offsets = {
+ x: reference2.x + reference2.width,
+ y: commonY
+ };
+ break;
+ case left:
+ offsets = {
+ x: reference2.x - element.width,
+ y: commonY
+ };
+ break;
+ default:
+ offsets = {
+ x: reference2.x,
+ y: reference2.y
+ };
+ }
+ var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;
+ if (mainAxis != null) {
+ var len = mainAxis === "y" ? "height" : "width";
+ switch (variation) {
+ case start:
+ offsets[mainAxis] = offsets[mainAxis] - (reference2[len] / 2 - element[len] / 2);
+ break;
+ case end:
+ offsets[mainAxis] = offsets[mainAxis] + (reference2[len] / 2 - element[len] / 2);
+ break;
+ default:
+ }
+ }
+ return offsets;
+}
+
+// node_modules/@popperjs/core/lib/utils/detectOverflow.js
+function detectOverflow(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, _options$placement = _options.placement, placement = _options$placement === void 0 ? state.placement : _options$placement, _options$strategy = _options.strategy, strategy = _options$strategy === void 0 ? state.strategy : _options$strategy, _options$boundary = _options.boundary, boundary = _options$boundary === void 0 ? clippingParents : _options$boundary, _options$rootBoundary = _options.rootBoundary, rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary, _options$elementConte = _options.elementContext, elementContext = _options$elementConte === void 0 ? popper : _options$elementConte, _options$altBoundary = _options.altBoundary, altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary, _options$padding = _options.padding, padding = _options$padding === void 0 ? 0 : _options$padding;
+ var paddingObject = mergePaddingObject(typeof padding !== "number" ? padding : expandToHashMap(padding, basePlacements));
+ var altContext = elementContext === popper ? reference : popper;
+ var popperRect = state.rects.popper;
+ var element = state.elements[altBoundary ? altContext : elementContext];
+ var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);
+ var referenceClientRect = getBoundingClientRect(state.elements.reference);
+ var popperOffsets2 = computeOffsets({
+ reference: referenceClientRect,
+ element: popperRect,
+ strategy: "absolute",
+ placement
+ });
+ var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets2));
+ var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect;
+ var overflowOffsets = {
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
+ };
+ var offsetData = state.modifiersData.offset;
+ if (elementContext === popper && offsetData) {
+ var offset2 = offsetData[placement];
+ Object.keys(overflowOffsets).forEach(function(key) {
+ var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;
+ var axis = [top, bottom].indexOf(key) >= 0 ? "y" : "x";
+ overflowOffsets[key] += offset2[axis] * multiply;
+ });
+ }
+ return overflowOffsets;
+}
+
+// node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js
+function computeAutoPlacement(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+ var _options = options, placement = _options.placement, boundary = _options.boundary, rootBoundary = _options.rootBoundary, padding = _options.padding, flipVariations = _options.flipVariations, _options$allowedAutoP = _options.allowedAutoPlacements, allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;
+ var variation = getVariation(placement);
+ var placements2 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function(placement2) {
+ return getVariation(placement2) === variation;
+ }) : basePlacements;
+ var allowedPlacements = placements2.filter(function(placement2) {
+ return allowedAutoPlacements.indexOf(placement2) >= 0;
+ });
+ if (allowedPlacements.length === 0) {
+ allowedPlacements = placements2;
+ if (true) {
+ console.error(["Popper: The `allowedAutoPlacements` option did not allow any", "placements. Ensure the `placement` option matches the variation", "of the allowed placements.", 'For example, "auto" cannot be used to allow "bottom-start".', 'Use "auto-start" instead.'].join(" "));
+ }
+ }
+ var overflows = allowedPlacements.reduce(function(acc, placement2) {
+ acc[placement2] = detectOverflow(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding
+ })[getBasePlacement(placement2)];
+ return acc;
+ }, {});
+ return Object.keys(overflows).sort(function(a, b) {
+ return overflows[a] - overflows[b];
+ });
+}
+
+// node_modules/@popperjs/core/lib/modifiers/flip.js
+function getExpandedFallbackPlacements(placement) {
+ if (getBasePlacement(placement) === auto) {
+ return [];
+ }
+ var oppositePlacement = getOppositePlacement(placement);
+ return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];
+}
+function flip(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ if (state.modifiersData[name]._skip) {
+ return;
+ }
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis, specifiedFallbackPlacements = options.fallbackPlacements, padding = options.padding, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, _options$flipVariatio = options.flipVariations, flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio, allowedAutoPlacements = options.allowedAutoPlacements;
+ var preferredPlacement = state.options.placement;
+ var basePlacement = getBasePlacement(preferredPlacement);
+ var isBasePlacement = basePlacement === preferredPlacement;
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
+ var placements2 = [preferredPlacement].concat(fallbackPlacements).reduce(function(acc, placement2) {
+ return acc.concat(getBasePlacement(placement2) === auto ? computeAutoPlacement(state, {
+ placement: placement2,
+ boundary,
+ rootBoundary,
+ padding,
+ flipVariations,
+ allowedAutoPlacements
+ }) : placement2);
+ }, []);
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var checksMap = new Map();
+ var makeFallbackChecks = true;
+ var firstFittingPlacement = placements2[0];
+ for (var i = 0; i < placements2.length; i++) {
+ var placement = placements2[i];
+ var _basePlacement = getBasePlacement(placement);
+ var isStartVariation = getVariation(placement) === start;
+ var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;
+ var len = isVertical ? "width" : "height";
+ var overflow = detectOverflow(state, {
+ placement,
+ boundary,
+ rootBoundary,
+ altBoundary,
+ padding
+ });
+ var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;
+ if (referenceRect[len] > popperRect[len]) {
+ mainVariationSide = getOppositePlacement(mainVariationSide);
+ }
+ var altVariationSide = getOppositePlacement(mainVariationSide);
+ var checks = [];
+ if (checkMainAxis) {
+ checks.push(overflow[_basePlacement] <= 0);
+ }
+ if (checkAltAxis) {
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
+ }
+ if (checks.every(function(check) {
+ return check;
+ })) {
+ firstFittingPlacement = placement;
+ makeFallbackChecks = false;
+ break;
+ }
+ checksMap.set(placement, checks);
+ }
+ if (makeFallbackChecks) {
+ var numberOfChecks = flipVariations ? 3 : 1;
+ var _loop = function _loop2(_i2) {
+ var fittingPlacement = placements2.find(function(placement2) {
+ var checks2 = checksMap.get(placement2);
+ if (checks2) {
+ return checks2.slice(0, _i2).every(function(check) {
+ return check;
+ });
+ }
+ });
+ if (fittingPlacement) {
+ firstFittingPlacement = fittingPlacement;
+ return "break";
+ }
+ };
+ for (var _i = numberOfChecks; _i > 0; _i--) {
+ var _ret = _loop(_i);
+ if (_ret === "break")
+ break;
+ }
+ }
+ if (state.placement !== firstFittingPlacement) {
+ state.modifiersData[name]._skip = true;
+ state.placement = firstFittingPlacement;
+ state.reset = true;
+ }
+}
+var flip_default = {
+ name: "flip",
+ enabled: true,
+ phase: "main",
+ fn: flip,
+ requiresIfExists: ["offset"],
+ data: {
+ _skip: false
+ }
+};
+
+// node_modules/@popperjs/core/lib/modifiers/hide.js
+function getSideOffsets(overflow, rect, preventedOffsets) {
+ if (preventedOffsets === void 0) {
+ preventedOffsets = {
+ x: 0,
+ y: 0
+ };
+ }
+ return {
+ top: overflow.top - rect.height - preventedOffsets.y,
+ right: overflow.right - rect.width + preventedOffsets.x,
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
+ left: overflow.left - rect.width - preventedOffsets.x
+ };
+}
+function isAnySideFullyClipped(overflow) {
+ return [top, right, bottom, left].some(function(side) {
+ return overflow[side] >= 0;
+ });
+}
+function hide(_ref) {
+ var state = _ref.state, name = _ref.name;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var preventedOffsets = state.modifiersData.preventOverflow;
+ var referenceOverflow = detectOverflow(state, {
+ elementContext: "reference"
+ });
+ var popperAltOverflow = detectOverflow(state, {
+ altBoundary: true
+ });
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
+ state.modifiersData[name] = {
+ referenceClippingOffsets,
+ popperEscapeOffsets,
+ isReferenceHidden,
+ hasPopperEscaped
+ };
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ "data-popper-reference-hidden": isReferenceHidden,
+ "data-popper-escaped": hasPopperEscaped
+ });
+}
+var hide_default = {
+ name: "hide",
+ enabled: true,
+ phase: "main",
+ requiresIfExists: ["preventOverflow"],
+ fn: hide
+};
+
+// node_modules/@popperjs/core/lib/modifiers/offset.js
+function distanceAndSkiddingToXY(placement, rects, offset2) {
+ var basePlacement = getBasePlacement(placement);
+ var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;
+ var _ref = typeof offset2 === "function" ? offset2(Object.assign({}, rects, {
+ placement
+ })) : offset2, skidding = _ref[0], distance = _ref[1];
+ skidding = skidding || 0;
+ distance = (distance || 0) * invertDistance;
+ return [left, right].indexOf(basePlacement) >= 0 ? {
+ x: distance,
+ y: skidding
+ } : {
+ x: skidding,
+ y: distance
+ };
+}
+function offset(_ref2) {
+ var state = _ref2.state, options = _ref2.options, name = _ref2.name;
+ var _options$offset = options.offset, offset2 = _options$offset === void 0 ? [0, 0] : _options$offset;
+ var data = placements.reduce(function(acc, placement) {
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset2);
+ return acc;
+ }, {});
+ var _data$state$placement = data[state.placement], x = _data$state$placement.x, y = _data$state$placement.y;
+ if (state.modifiersData.popperOffsets != null) {
+ state.modifiersData.popperOffsets.x += x;
+ state.modifiersData.popperOffsets.y += y;
+ }
+ state.modifiersData[name] = data;
+}
+var offset_default = {
+ name: "offset",
+ enabled: true,
+ phase: "main",
+ requires: ["popperOffsets"],
+ fn: offset
+};
+
+// node_modules/@popperjs/core/lib/modifiers/popperOffsets.js
+function popperOffsets(_ref) {
+ var state = _ref.state, name = _ref.name;
+ state.modifiersData[name] = computeOffsets({
+ reference: state.rects.reference,
+ element: state.rects.popper,
+ strategy: "absolute",
+ placement: state.placement
+ });
+}
+var popperOffsets_default = {
+ name: "popperOffsets",
+ enabled: true,
+ phase: "read",
+ fn: popperOffsets,
+ data: {}
+};
+
+// node_modules/@popperjs/core/lib/utils/getAltAxis.js
+function getAltAxis(axis) {
+ return axis === "x" ? "y" : "x";
+}
+
+// node_modules/@popperjs/core/lib/modifiers/preventOverflow.js
+function preventOverflow(_ref) {
+ var state = _ref.state, options = _ref.options, name = _ref.name;
+ var _options$mainAxis = options.mainAxis, checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis, _options$altAxis = options.altAxis, checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis, boundary = options.boundary, rootBoundary = options.rootBoundary, altBoundary = options.altBoundary, padding = options.padding, _options$tether = options.tether, tether = _options$tether === void 0 ? true : _options$tether, _options$tetherOffset = options.tetherOffset, tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
+ var overflow = detectOverflow(state, {
+ boundary,
+ rootBoundary,
+ padding,
+ altBoundary
+ });
+ var basePlacement = getBasePlacement(state.placement);
+ var variation = getVariation(state.placement);
+ var isBasePlacement = !variation;
+ var mainAxis = getMainAxisFromPlacement(basePlacement);
+ var altAxis = getAltAxis(mainAxis);
+ var popperOffsets2 = state.modifiersData.popperOffsets;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var tetherOffsetValue = typeof tetherOffset === "function" ? tetherOffset(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : tetherOffset;
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === "number" ? {
+ mainAxis: tetherOffsetValue,
+ altAxis: tetherOffsetValue
+ } : Object.assign({
+ mainAxis: 0,
+ altAxis: 0
+ }, tetherOffsetValue);
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
+ var data = {
+ x: 0,
+ y: 0
+ };
+ if (!popperOffsets2) {
+ return;
+ }
+ if (checkMainAxis) {
+ var _offsetModifierState$;
+ var mainSide = mainAxis === "y" ? top : left;
+ var altSide = mainAxis === "y" ? bottom : right;
+ var len = mainAxis === "y" ? "height" : "width";
+ var offset2 = popperOffsets2[mainAxis];
+ var min2 = offset2 + overflow[mainSide];
+ var max2 = offset2 - overflow[altSide];
+ var additive = tether ? -popperRect[len] / 2 : 0;
+ var minLen = variation === start ? referenceRect[len] : popperRect[len];
+ var maxLen = variation === start ? -popperRect[len] : -referenceRect[len];
+ var arrowElement = state.elements.arrow;
+ var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {
+ width: 0,
+ height: 0
+ };
+ var arrowPaddingObject = state.modifiersData["arrow#persistent"] ? state.modifiersData["arrow#persistent"].padding : getFreshSideObject();
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
+ var arrowPaddingMax = arrowPaddingObject[altSide];
+ var arrowLen = within(0, referenceRect[len], arrowRect[len]);
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
+ var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);
+ var clientOffset = arrowOffsetParent ? mainAxis === "y" ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
+ var tetherMin = offset2 + minOffset - offsetModifierValue - clientOffset;
+ var tetherMax = offset2 + maxOffset - offsetModifierValue;
+ var preventedOffset = within(tether ? min(min2, tetherMin) : min2, offset2, tether ? max(max2, tetherMax) : max2);
+ popperOffsets2[mainAxis] = preventedOffset;
+ data[mainAxis] = preventedOffset - offset2;
+ }
+ if (checkAltAxis) {
+ var _offsetModifierState$2;
+ var _mainSide = mainAxis === "x" ? top : left;
+ var _altSide = mainAxis === "x" ? bottom : right;
+ var _offset = popperOffsets2[altAxis];
+ var _len = altAxis === "y" ? "height" : "width";
+ var _min = _offset + overflow[_mainSide];
+ var _max = _offset - overflow[_altSide];
+ var isOriginSide = [top, left].indexOf(basePlacement) !== -1;
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
+ var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
+ popperOffsets2[altAxis] = _preventedOffset;
+ data[altAxis] = _preventedOffset - _offset;
+ }
+ state.modifiersData[name] = data;
+}
+var preventOverflow_default = {
+ name: "preventOverflow",
+ enabled: true,
+ phase: "main",
+ fn: preventOverflow,
+ requiresIfExists: ["offset"]
+};
+
+// node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js
+function getHTMLElementScroll(element) {
+ return {
+ scrollLeft: element.scrollLeft,
+ scrollTop: element.scrollTop
+ };
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js
+function getNodeScroll(node) {
+ if (node === getWindow(node) || !isHTMLElement(node)) {
+ return getWindowScroll(node);
+ } else {
+ return getHTMLElementScroll(node);
+ }
+}
+
+// node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js
+function isElementScaled(element) {
+ var rect = element.getBoundingClientRect();
+ var scaleX = round(rect.width) / element.offsetWidth || 1;
+ var scaleY = round(rect.height) / element.offsetHeight || 1;
+ return scaleX !== 1 || scaleY !== 1;
+}
+function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
+ if (isFixed === void 0) {
+ isFixed = false;
+ }
+ var isOffsetParentAnElement = isHTMLElement(offsetParent);
+ var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);
+ var documentElement = getDocumentElement(offsetParent);
+ var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);
+ var scroll = {
+ scrollLeft: 0,
+ scrollTop: 0
+ };
+ var offsets = {
+ x: 0,
+ y: 0
+ };
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
+ if (getNodeName(offsetParent) !== "body" || isScrollParent(documentElement)) {
+ scroll = getNodeScroll(offsetParent);
+ }
+ if (isHTMLElement(offsetParent)) {
+ offsets = getBoundingClientRect(offsetParent, true);
+ offsets.x += offsetParent.clientLeft;
+ offsets.y += offsetParent.clientTop;
+ } else if (documentElement) {
+ offsets.x = getWindowScrollBarX(documentElement);
+ }
+ }
+ return {
+ x: rect.left + scroll.scrollLeft - offsets.x,
+ y: rect.top + scroll.scrollTop - offsets.y,
+ width: rect.width,
+ height: rect.height
+ };
+}
+
+// node_modules/@popperjs/core/lib/utils/orderModifiers.js
+function order(modifiers) {
+ var map = new Map();
+ var visited = new Set();
+ var result = [];
+ modifiers.forEach(function(modifier) {
+ map.set(modifier.name, modifier);
+ });
+ function sort(modifier) {
+ visited.add(modifier.name);
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
+ requires.forEach(function(dep) {
+ if (!visited.has(dep)) {
+ var depModifier = map.get(dep);
+ if (depModifier) {
+ sort(depModifier);
+ }
+ }
+ });
+ result.push(modifier);
+ }
+ modifiers.forEach(function(modifier) {
+ if (!visited.has(modifier.name)) {
+ sort(modifier);
+ }
+ });
+ return result;
+}
+function orderModifiers(modifiers) {
+ var orderedModifiers = order(modifiers);
+ return modifierPhases.reduce(function(acc, phase) {
+ return acc.concat(orderedModifiers.filter(function(modifier) {
+ return modifier.phase === phase;
+ }));
+ }, []);
+}
+
+// node_modules/@popperjs/core/lib/utils/debounce.js
+function debounce(fn2) {
+ var pending;
+ return function() {
+ if (!pending) {
+ pending = new Promise(function(resolve) {
+ Promise.resolve().then(function() {
+ pending = void 0;
+ resolve(fn2());
+ });
+ });
+ }
+ return pending;
+ };
+}
+
+// node_modules/@popperjs/core/lib/utils/format.js
+function format(str) {
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+ return [].concat(args).reduce(function(p, c) {
+ return p.replace(/%s/, c);
+ }, str);
+}
+
+// node_modules/@popperjs/core/lib/utils/validateModifiers.js
+var INVALID_MODIFIER_ERROR = 'Popper: modifier "%s" provided an invalid %s property, expected %s but got %s';
+var MISSING_DEPENDENCY_ERROR = 'Popper: modifier "%s" requires "%s", but "%s" modifier is not available';
+var VALID_PROPERTIES = ["name", "enabled", "phase", "fn", "effect", "requires", "options"];
+function validateModifiers(modifiers) {
+ modifiers.forEach(function(modifier) {
+ [].concat(Object.keys(modifier), VALID_PROPERTIES).filter(function(value, index, self) {
+ return self.indexOf(value) === index;
+ }).forEach(function(key) {
+ switch (key) {
+ case "name":
+ if (typeof modifier.name !== "string") {
+ console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '"name"', '"string"', '"' + String(modifier.name) + '"'));
+ }
+ break;
+ case "enabled":
+ if (typeof modifier.enabled !== "boolean") {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"enabled"', '"boolean"', '"' + String(modifier.enabled) + '"'));
+ }
+ break;
+ case "phase":
+ if (modifierPhases.indexOf(modifier.phase) < 0) {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"phase"', "either " + modifierPhases.join(", "), '"' + String(modifier.phase) + '"'));
+ }
+ break;
+ case "fn":
+ if (typeof modifier.fn !== "function") {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"fn"', '"function"', '"' + String(modifier.fn) + '"'));
+ }
+ break;
+ case "effect":
+ if (modifier.effect != null && typeof modifier.effect !== "function") {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"effect"', '"function"', '"' + String(modifier.fn) + '"'));
+ }
+ break;
+ case "requires":
+ if (modifier.requires != null && !Array.isArray(modifier.requires)) {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requires"', '"array"', '"' + String(modifier.requires) + '"'));
+ }
+ break;
+ case "requiresIfExists":
+ if (!Array.isArray(modifier.requiresIfExists)) {
+ console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '"requiresIfExists"', '"array"', '"' + String(modifier.requiresIfExists) + '"'));
+ }
+ break;
+ case "options":
+ case "data":
+ break;
+ default:
+ console.error('PopperJS: an invalid property has been provided to the "' + modifier.name + '" modifier, valid properties are ' + VALID_PROPERTIES.map(function(s) {
+ return '"' + s + '"';
+ }).join(", ") + '; but "' + key + '" was provided.');
+ }
+ modifier.requires && modifier.requires.forEach(function(requirement) {
+ if (modifiers.find(function(mod) {
+ return mod.name === requirement;
+ }) == null) {
+ console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));
+ }
+ });
+ });
+ });
+}
+
+// node_modules/@popperjs/core/lib/utils/uniqueBy.js
+function uniqueBy(arr, fn2) {
+ var identifiers = new Set();
+ return arr.filter(function(item) {
+ var identifier = fn2(item);
+ if (!identifiers.has(identifier)) {
+ identifiers.add(identifier);
+ return true;
+ }
+ });
+}
+
+// node_modules/@popperjs/core/lib/utils/mergeByName.js
+function mergeByName(modifiers) {
+ var merged = modifiers.reduce(function(merged2, current) {
+ var existing = merged2[current.name];
+ merged2[current.name] = existing ? Object.assign({}, existing, current, {
+ options: Object.assign({}, existing.options, current.options),
+ data: Object.assign({}, existing.data, current.data)
+ }) : current;
+ return merged2;
+ }, {});
+ return Object.keys(merged).map(function(key) {
+ return merged[key];
+ });
+}
+
+// node_modules/@popperjs/core/lib/createPopper.js
+var INVALID_ELEMENT_ERROR = "Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.";
+var INFINITE_LOOP_ERROR = "Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.";
+var DEFAULT_OPTIONS = {
+ placement: "bottom",
+ modifiers: [],
+ strategy: "absolute"
+};
+function areValidElements() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+ return !args.some(function(element) {
+ return !(element && typeof element.getBoundingClientRect === "function");
+ });
+}
+function popperGenerator(generatorOptions) {
+ if (generatorOptions === void 0) {
+ generatorOptions = {};
+ }
+ var _generatorOptions = generatorOptions, _generatorOptions$def = _generatorOptions.defaultModifiers, defaultModifiers2 = _generatorOptions$def === void 0 ? [] : _generatorOptions$def, _generatorOptions$def2 = _generatorOptions.defaultOptions, defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
+ return function createPopper2(reference2, popper2, options) {
+ if (options === void 0) {
+ options = defaultOptions;
+ }
+ var state = {
+ placement: "bottom",
+ orderedModifiers: [],
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
+ modifiersData: {},
+ elements: {
+ reference: reference2,
+ popper: popper2
+ },
+ attributes: {},
+ styles: {}
+ };
+ var effectCleanupFns = [];
+ var isDestroyed = false;
+ var instance = {
+ state,
+ setOptions: function setOptions(setOptionsAction) {
+ var options2 = typeof setOptionsAction === "function" ? setOptionsAction(state.options) : setOptionsAction;
+ cleanupModifierEffects();
+ state.options = Object.assign({}, defaultOptions, state.options, options2);
+ state.scrollParents = {
+ reference: isElement(reference2) ? listScrollParents(reference2) : reference2.contextElement ? listScrollParents(reference2.contextElement) : [],
+ popper: listScrollParents(popper2)
+ };
+ var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers2, state.options.modifiers)));
+ state.orderedModifiers = orderedModifiers.filter(function(m) {
+ return m.enabled;
+ });
+ if (true) {
+ var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function(_ref) {
+ var name = _ref.name;
+ return name;
+ });
+ validateModifiers(modifiers);
+ if (getBasePlacement(state.options.placement) === auto) {
+ var flipModifier = state.orderedModifiers.find(function(_ref2) {
+ var name = _ref2.name;
+ return name === "flip";
+ });
+ if (!flipModifier) {
+ console.error(['Popper: "auto" placements require the "flip" modifier be', "present and enabled to work."].join(" "));
+ }
+ }
+ var _getComputedStyle = getComputedStyle(popper2), marginTop = _getComputedStyle.marginTop, marginRight = _getComputedStyle.marginRight, marginBottom = _getComputedStyle.marginBottom, marginLeft = _getComputedStyle.marginLeft;
+ if ([marginTop, marginRight, marginBottom, marginLeft].some(function(margin) {
+ return parseFloat(margin);
+ })) {
+ console.warn(['Popper: CSS "margin" styles cannot be used to apply padding', "between the popper and its reference element or boundary.", "To replicate margin, use the `offset` modifier, as well as", "the `padding` option in the `preventOverflow` and `flip`", "modifiers."].join(" "));
+ }
+ }
+ runModifierEffects();
+ return instance.update();
+ },
+ forceUpdate: function forceUpdate() {
+ if (isDestroyed) {
+ return;
+ }
+ var _state$elements = state.elements, reference3 = _state$elements.reference, popper3 = _state$elements.popper;
+ if (!areValidElements(reference3, popper3)) {
+ if (true) {
+ console.error(INVALID_ELEMENT_ERROR);
+ }
+ return;
+ }
+ state.rects = {
+ reference: getCompositeRect(reference3, getOffsetParent(popper3), state.options.strategy === "fixed"),
+ popper: getLayoutRect(popper3)
+ };
+ state.reset = false;
+ state.placement = state.options.placement;
+ state.orderedModifiers.forEach(function(modifier) {
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
+ });
+ var __debug_loops__ = 0;
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
+ if (true) {
+ __debug_loops__ += 1;
+ if (__debug_loops__ > 100) {
+ console.error(INFINITE_LOOP_ERROR);
+ break;
+ }
+ }
+ if (state.reset === true) {
+ state.reset = false;
+ index = -1;
+ continue;
+ }
+ var _state$orderedModifie = state.orderedModifiers[index], fn2 = _state$orderedModifie.fn, _state$orderedModifie2 = _state$orderedModifie.options, _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2, name = _state$orderedModifie.name;
+ if (typeof fn2 === "function") {
+ state = fn2({
+ state,
+ options: _options,
+ name,
+ instance
+ }) || state;
+ }
+ }
+ },
+ update: debounce(function() {
+ return new Promise(function(resolve) {
+ instance.forceUpdate();
+ resolve(state);
+ });
+ }),
+ destroy: function destroy() {
+ cleanupModifierEffects();
+ isDestroyed = true;
+ }
+ };
+ if (!areValidElements(reference2, popper2)) {
+ if (true) {
+ console.error(INVALID_ELEMENT_ERROR);
+ }
+ return instance;
+ }
+ instance.setOptions(options).then(function(state2) {
+ if (!isDestroyed && options.onFirstUpdate) {
+ options.onFirstUpdate(state2);
+ }
+ });
+ function runModifierEffects() {
+ state.orderedModifiers.forEach(function(_ref3) {
+ var name = _ref3.name, _ref3$options = _ref3.options, options2 = _ref3$options === void 0 ? {} : _ref3$options, effect4 = _ref3.effect;
+ if (typeof effect4 === "function") {
+ var cleanupFn = effect4({
+ state,
+ name,
+ instance,
+ options: options2
+ });
+ var noopFn = function noopFn2() {
+ };
+ effectCleanupFns.push(cleanupFn || noopFn);
+ }
+ });
+ }
+ function cleanupModifierEffects() {
+ effectCleanupFns.forEach(function(fn2) {
+ return fn2();
+ });
+ effectCleanupFns = [];
+ }
+ return instance;
+ };
+}
+
+// node_modules/@popperjs/core/lib/popper.js
+var defaultModifiers = [eventListeners_default, popperOffsets_default, computeStyles_default, applyStyles_default, offset_default, flip_default, preventOverflow_default, arrow_default, hide_default];
+var createPopper = /* @__PURE__ */ popperGenerator({
+ defaultModifiers
+});
+
+// src/settings/suggesters/suggest.ts
+var wrapAround = (value, size) => {
+ return (value % size + size) % size;
+};
+var Suggest = class {
+ constructor(owner, containerEl, scope) {
+ this.owner = owner;
+ this.containerEl = containerEl;
+ containerEl.on("click", ".suggestion-item", this.onSuggestionClick.bind(this));
+ containerEl.on("mousemove", ".suggestion-item", this.onSuggestionMouseover.bind(this));
+ scope.register([], "ArrowUp", (event) => {
+ if (!event.isComposing) {
+ this.setSelectedItem(this.selectedItem - 1, true);
+ return false;
+ }
+ });
+ scope.register([], "ArrowDown", (event) => {
+ if (!event.isComposing) {
+ this.setSelectedItem(this.selectedItem + 1, true);
+ return false;
+ }
+ });
+ scope.register([], "Enter", (event) => {
+ if (!event.isComposing) {
+ this.useSelectedItem(event);
+ return false;
+ }
+ });
+ }
+ onSuggestionClick(event, el) {
+ event.preventDefault();
+ const item = this.suggestions.indexOf(el);
+ this.setSelectedItem(item, false);
+ this.useSelectedItem(event);
+ }
+ onSuggestionMouseover(_event, el) {
+ const item = this.suggestions.indexOf(el);
+ this.setSelectedItem(item, false);
+ }
+ setSuggestions(values) {
+ this.containerEl.empty();
+ const suggestionEls = [];
+ values.forEach((value) => {
+ const suggestionEl = this.containerEl.createDiv("suggestion-item");
+ this.owner.renderSuggestion(value, suggestionEl);
+ suggestionEls.push(suggestionEl);
+ });
+ this.values = values;
+ this.suggestions = suggestionEls;
+ this.setSelectedItem(0, false);
+ }
+ useSelectedItem(event) {
+ const currentValue = this.values[this.selectedItem];
+ if (currentValue) {
+ this.owner.selectSuggestion(currentValue, event);
+ }
+ }
+ setSelectedItem(selectedIndex, scrollIntoView) {
+ const normalizedIndex = wrapAround(selectedIndex, this.suggestions.length);
+ const prevSelectedSuggestion = this.suggestions[this.selectedItem];
+ const selectedSuggestion = this.suggestions[normalizedIndex];
+ prevSelectedSuggestion?.removeClass("is-selected");
+ selectedSuggestion?.addClass("is-selected");
+ this.selectedItem = normalizedIndex;
+ if (scrollIntoView) {
+ selectedSuggestion.scrollIntoView(false);
+ }
+ }
+};
+var TextInputSuggest = class {
+ constructor(inputEl) {
+ this.inputEl = inputEl;
+ this.scope = new import_obsidian2.Scope();
+ this.suggestEl = createDiv("suggestion-container");
+ const suggestion = this.suggestEl.createDiv("suggestion");
+ this.suggest = new Suggest(this, suggestion, this.scope);
+ this.scope.register([], "Escape", this.close.bind(this));
+ this.inputEl.addEventListener("input", this.onInputChanged.bind(this));
+ this.inputEl.addEventListener("focus", this.onInputChanged.bind(this));
+ this.inputEl.addEventListener("blur", this.close.bind(this));
+ this.suggestEl.on("mousedown", ".suggestion-container", (event) => {
+ event.preventDefault();
+ });
+ }
+ onInputChanged() {
+ const inputStr = this.inputEl.value;
+ const suggestions = this.getSuggestions(inputStr);
+ if (!suggestions) {
+ this.close();
+ return;
+ }
+ if (suggestions.length > 0) {
+ this.suggest.setSuggestions(suggestions);
+ this.open(app.dom.appContainerEl, this.inputEl);
+ } else {
+ this.close();
+ }
+ }
+ open(container, inputEl) {
+ app.keymap.pushScope(this.scope);
+ container.appendChild(this.suggestEl);
+ this.popper = createPopper(inputEl, this.suggestEl, {
+ placement: "bottom-start",
+ modifiers: [
+ {
+ name: "sameWidth",
+ enabled: true,
+ fn: ({ state, instance }) => {
+ const targetWidth = `${state.rects.reference.width}px`;
+ if (state.styles.popper.width === targetWidth) {
+ return;
+ }
+ state.styles.popper.width = targetWidth;
+ instance.update();
+ },
+ phase: "beforeWrite",
+ requires: ["computeStyles"]
+ }
+ ]
+ });
+ }
+ close() {
+ app.keymap.popScope(this.scope);
+ this.suggest.setSuggestions([]);
+ if (this.popper)
+ this.popper.destroy();
+ this.suggestEl.detach();
+ }
+};
+
+// src/settings/suggesters/FolderSuggester.ts
+var FolderSuggest = class extends TextInputSuggest {
+ getSuggestions(inputStr) {
+ const abstractFiles = app.vault.getAllLoadedFiles();
+ const folders = [];
+ const lowerCaseInputStr = inputStr.toLowerCase();
+ abstractFiles.forEach((folder) => {
+ if (folder instanceof import_obsidian3.TFolder && folder.path.toLowerCase().contains(lowerCaseInputStr)) {
+ folders.push(folder);
+ }
+ });
+ return folders;
+ }
+ renderSuggestion(file, el) {
+ el.setText(file.path);
+ }
+ selectSuggestion(file) {
+ this.inputEl.value = file.path;
+ this.inputEl.trigger("input");
+ this.close();
+ }
+};
+
+// src/settings/suggesters/FileSuggester.ts
+var import_obsidian5 = __toModule(require("obsidian"));
+
+// src/utils/Utils.ts
+var import_obsidian4 = __toModule(require("obsidian"));
+function delay(ms) {
+ return new Promise((resolve) => setTimeout(resolve, ms));
+}
+function escape_RegExp(str) {
+ return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
+}
+function generate_dynamic_command_regex() {
+ return /(<%(?:-|_)?\s*[*~]{0,1})\+((?:.|\s)*?%>)/g;
+}
+function resolve_tfolder(folder_str) {
+ folder_str = (0, import_obsidian4.normalizePath)(folder_str);
+ const folder = app.vault.getAbstractFileByPath(folder_str);
+ if (!folder) {
+ throw new TemplaterError(`Folder "${folder_str}" doesn't exist`);
+ }
+ if (!(folder instanceof import_obsidian4.TFolder)) {
+ throw new TemplaterError(`${folder_str} is a file, not a folder`);
+ }
+ return folder;
+}
+function resolve_tfile(file_str) {
+ file_str = (0, import_obsidian4.normalizePath)(file_str);
+ const file = app.vault.getAbstractFileByPath(file_str);
+ if (!file) {
+ throw new TemplaterError(`File "${file_str}" doesn't exist`);
+ }
+ if (!(file instanceof import_obsidian4.TFile)) {
+ throw new TemplaterError(`${file_str} is a folder, not a file`);
+ }
+ return file;
+}
+function get_tfiles_from_folder(folder_str) {
+ const folder = resolve_tfolder(folder_str);
+ const files = [];
+ import_obsidian4.Vault.recurseChildren(folder, (file) => {
+ if (file instanceof import_obsidian4.TFile) {
+ files.push(file);
+ }
+ });
+ files.sort((a, b) => {
+ return a.basename.localeCompare(b.basename);
+ });
+ return files;
+}
+function arraymove(arr, fromIndex, toIndex) {
+ if (toIndex < 0 || toIndex === arr.length) {
+ return;
+ }
+ const element = arr[fromIndex];
+ arr[fromIndex] = arr[toIndex];
+ arr[toIndex] = element;
+}
+
+// src/settings/suggesters/FileSuggester.ts
+var FileSuggestMode;
+(function(FileSuggestMode2) {
+ FileSuggestMode2[FileSuggestMode2["TemplateFiles"] = 0] = "TemplateFiles";
+ FileSuggestMode2[FileSuggestMode2["ScriptFiles"] = 1] = "ScriptFiles";
+})(FileSuggestMode || (FileSuggestMode = {}));
+var FileSuggest = class extends TextInputSuggest {
+ constructor(inputEl, plugin, mode) {
+ super(inputEl);
+ this.inputEl = inputEl;
+ this.plugin = plugin;
+ this.mode = mode;
+ }
+ get_folder(mode) {
+ switch (mode) {
+ case 0:
+ return this.plugin.settings.templates_folder;
+ case 1:
+ return this.plugin.settings.user_scripts_folder;
+ }
+ }
+ get_error_msg(mode) {
+ switch (mode) {
+ case 0:
+ return `Templates folder doesn't exist`;
+ case 1:
+ return `User Scripts folder doesn't exist`;
+ }
+ }
+ getSuggestions(input_str) {
+ const all_files = errorWrapperSync(() => get_tfiles_from_folder(this.get_folder(this.mode)), this.get_error_msg(this.mode));
+ if (!all_files) {
+ return [];
+ }
+ const files = [];
+ const lower_input_str = input_str.toLowerCase();
+ all_files.forEach((file) => {
+ if (file instanceof import_obsidian5.TFile && file.extension === "md" && file.path.toLowerCase().contains(lower_input_str)) {
+ files.push(file);
+ }
+ });
+ return files;
+ }
+ renderSuggestion(file, el) {
+ el.setText(file.path);
+ }
+ selectSuggestion(file) {
+ this.inputEl.value = file.path;
+ this.inputEl.trigger("input");
+ this.close();
+ }
+};
+
+// src/settings/Settings.ts
+var DEFAULT_SETTINGS = {
+ command_timeout: 5,
+ templates_folder: "",
+ templates_pairs: [["", ""]],
+ trigger_on_file_creation: false,
+ auto_jump_to_cursor: false,
+ enable_system_commands: false,
+ shell_path: "",
+ user_scripts_folder: "",
+ enable_folder_templates: true,
+ folder_templates: [{ folder: "", template: "" }],
+ syntax_highlighting: true,
+ enabled_templates_hotkeys: [""],
+ startup_templates: [""],
+ enable_ribbon_icon: true
+};
+var TemplaterSettingTab = class extends import_obsidian6.PluginSettingTab {
+ constructor(plugin) {
+ super(app, plugin);
+ this.plugin = plugin;
+ }
+ display() {
+ this.containerEl.empty();
+ this.add_general_setting_header();
+ this.add_template_folder_setting();
+ this.add_internal_functions_setting();
+ this.add_syntax_highlighting_setting();
+ this.add_auto_jump_to_cursor();
+ this.add_trigger_on_new_file_creation_setting();
+ this.add_ribbon_icon_setting();
+ this.add_templates_hotkeys_setting();
+ if (this.plugin.settings.trigger_on_file_creation) {
+ this.add_folder_templates_setting();
+ }
+ this.add_startup_templates_setting();
+ this.add_user_script_functions_setting();
+ this.add_user_system_command_functions_setting();
+ this.add_donating_setting();
+ }
+ add_general_setting_header() {
+ this.containerEl.createEl("h2", { text: "General Settings" });
+ }
+ add_template_folder_setting() {
+ new import_obsidian6.Setting(this.containerEl).setName("Template folder location").setDesc("Files in this folder will be available as templates.").addSearch((cb) => {
+ new FolderSuggest(cb.inputEl);
+ cb.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.templates_folder).onChange((new_folder) => {
+ this.plugin.settings.templates_folder = new_folder;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ });
+ }
+ add_internal_functions_setting() {
+ const desc = document.createDocumentFragment();
+ desc.append("Templater provides multiples predefined variables / functions that you can use.", desc.createEl("br"), "Check the ", desc.createEl("a", {
+ href: "https://silentvoid13.github.io/Templater/",
+ text: "documentation"
+ }), " to get a list of all the available internal variables / functions.");
+ new import_obsidian6.Setting(this.containerEl).setName("Internal Variables and Functions").setDesc(desc);
+ }
+ add_syntax_highlighting_setting() {
+ const desc = document.createDocumentFragment();
+ desc.append("Adds syntax highlighting for Templater commands in edit mode.");
+ new import_obsidian6.Setting(this.containerEl).setName("Syntax Highlighting").setDesc(desc).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.syntax_highlighting).onChange((syntax_highlighting) => {
+ this.plugin.settings.syntax_highlighting = syntax_highlighting;
+ this.plugin.save_settings();
+ this.plugin.event_handler.update_syntax_highlighting();
+ });
+ });
+ }
+ add_auto_jump_to_cursor() {
+ const desc = document.createDocumentFragment();
+ desc.append("Automatically triggers ", desc.createEl("code", { text: "tp.file.cursor" }), " after inserting a template.", desc.createEl("br"), "You can also set a hotkey to manually trigger ", desc.createEl("code", { text: "tp.file.cursor" }), ".");
+ new import_obsidian6.Setting(this.containerEl).setName("Automatic jump to cursor").setDesc(desc).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.auto_jump_to_cursor).onChange((auto_jump_to_cursor) => {
+ this.plugin.settings.auto_jump_to_cursor = auto_jump_to_cursor;
+ this.plugin.save_settings();
+ });
+ });
+ }
+ add_trigger_on_new_file_creation_setting() {
+ const desc = document.createDocumentFragment();
+ desc.append("Templater will listen for the new file creation event, and replace every command it finds in the new file's content.", desc.createEl("br"), "This makes Templater compatible with other plugins like the Daily note core plugin, Calendar plugin, Review plugin, Note refactor plugin, ...", desc.createEl("br"), desc.createEl("b", {
+ text: "Warning: "
+ }), "This can be dangerous if you create new files with unknown / unsafe content on creation. Make sure that every new file's content is safe on creation.");
+ new import_obsidian6.Setting(this.containerEl).setName("Trigger Templater on new file creation").setDesc(desc).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.trigger_on_file_creation).onChange((trigger_on_file_creation) => {
+ this.plugin.settings.trigger_on_file_creation = trigger_on_file_creation;
+ this.plugin.save_settings();
+ this.plugin.event_handler.update_trigger_file_on_creation();
+ this.display();
+ });
+ });
+ }
+ add_ribbon_icon_setting() {
+ const desc = document.createDocumentFragment();
+ desc.append("Show Templater icon in sidebar ribbon, allowing you to quickly use templates anywhere.");
+ new import_obsidian6.Setting(this.containerEl).setName("Show icon in sidebar").setDesc(desc).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.enable_ribbon_icon).onChange((enable_ribbon_icon) => {
+ this.plugin.settings.enable_ribbon_icon = enable_ribbon_icon;
+ this.plugin.save_settings();
+ if (this.plugin.settings.enable_ribbon_icon) {
+ this.plugin.addRibbonIcon("templater-icon", "Templater", async () => {
+ this.plugin.fuzzy_suggester.insert_template();
+ }).setAttribute("id", "rb-templater-icon");
+ } else {
+ document.getElementById("rb-templater-icon")?.remove();
+ }
+ });
+ });
+ }
+ add_templates_hotkeys_setting() {
+ this.containerEl.createEl("h2", { text: "Template Hotkeys" });
+ const desc = document.createDocumentFragment();
+ desc.append("Template Hotkeys allows you to bind a template to a hotkey.");
+ new import_obsidian6.Setting(this.containerEl).setDesc(desc);
+ this.plugin.settings.enabled_templates_hotkeys.forEach((template, index) => {
+ const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => {
+ new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles);
+ cb.setPlaceholder("Example: folder1/template_file").setValue(template).onChange((new_template) => {
+ if (new_template && this.plugin.settings.enabled_templates_hotkeys.contains(new_template)) {
+ log_error(new TemplaterError("This template is already bound to a hotkey"));
+ return;
+ }
+ this.plugin.command_handler.add_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[index], new_template);
+ this.plugin.settings.enabled_templates_hotkeys[index] = new_template;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ }).addExtraButton((cb) => {
+ cb.setIcon("any-key").setTooltip("Configure Hotkey").onClick(() => {
+ app.setting.openTabById("hotkeys");
+ const tab = app.setting.activeTab;
+ tab.searchInputEl.value = "Templater: Insert";
+ tab.updateHotkeyVisibility();
+ });
+ }).addExtraButton((cb) => {
+ cb.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(() => {
+ arraymove(this.plugin.settings.enabled_templates_hotkeys, index, index - 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ }).addExtraButton((cb) => {
+ cb.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(() => {
+ arraymove(this.plugin.settings.enabled_templates_hotkeys, index, index + 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ }).addExtraButton((cb) => {
+ cb.setIcon("cross").setTooltip("Delete").onClick(() => {
+ this.plugin.command_handler.remove_template_hotkey(this.plugin.settings.enabled_templates_hotkeys[index]);
+ this.plugin.settings.enabled_templates_hotkeys.splice(index, 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ s.infoEl.remove();
+ });
+ new import_obsidian6.Setting(this.containerEl).addButton((cb) => {
+ cb.setButtonText("Add new hotkey for template").setCta().onClick(() => {
+ this.plugin.settings.enabled_templates_hotkeys.push("");
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ }
+ add_folder_templates_setting() {
+ this.containerEl.createEl("h2", { text: "Folder Templates" });
+ const descHeading = document.createDocumentFragment();
+ descHeading.append("Folder Templates are triggered when a new ", descHeading.createEl("strong", { text: "empty " }), "file is created in a given folder.", descHeading.createEl("br"), "Templater will fill the empty file with the specified template.", descHeading.createEl("br"), "The deepest match is used. A global default template would be defined on the root ", descHeading.createEl("code", { text: "/" }), ".");
+ new import_obsidian6.Setting(this.containerEl).setDesc(descHeading);
+ const descUseNewFileTemplate = document.createDocumentFragment();
+ descUseNewFileTemplate.append("When enabled Templater will make use of the folder templates defined below.");
+ new import_obsidian6.Setting(this.containerEl).setName("Enable Folder Templates").setDesc(descUseNewFileTemplate).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.enable_folder_templates).onChange((use_new_file_templates) => {
+ this.plugin.settings.enable_folder_templates = use_new_file_templates;
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ if (!this.plugin.settings.enable_folder_templates) {
+ return;
+ }
+ new import_obsidian6.Setting(this.containerEl).setName("Add New").setDesc("Add new folder template").addButton((button) => {
+ button.setTooltip("Add additional folder template").setButtonText("+").setCta().onClick(() => {
+ this.plugin.settings.folder_templates.push({
+ folder: "",
+ template: ""
+ });
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ this.plugin.settings.folder_templates.forEach((folder_template, index) => {
+ const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => {
+ new FolderSuggest(cb.inputEl);
+ cb.setPlaceholder("Folder").setValue(folder_template.folder).onChange((new_folder) => {
+ if (new_folder && this.plugin.settings.folder_templates.some((e) => e.folder == new_folder)) {
+ log_error(new TemplaterError("This folder already has a template associated with it"));
+ return;
+ }
+ this.plugin.settings.folder_templates[index].folder = new_folder;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ }).addSearch((cb) => {
+ new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles);
+ cb.setPlaceholder("Template").setValue(folder_template.template).onChange((new_template) => {
+ this.plugin.settings.folder_templates[index].template = new_template;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ }).addExtraButton((cb) => {
+ cb.setIcon("up-chevron-glyph").setTooltip("Move up").onClick(() => {
+ arraymove(this.plugin.settings.folder_templates, index, index - 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ }).addExtraButton((cb) => {
+ cb.setIcon("down-chevron-glyph").setTooltip("Move down").onClick(() => {
+ arraymove(this.plugin.settings.folder_templates, index, index + 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ }).addExtraButton((cb) => {
+ cb.setIcon("cross").setTooltip("Delete").onClick(() => {
+ this.plugin.settings.folder_templates.splice(index, 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ s.infoEl.remove();
+ });
+ }
+ add_startup_templates_setting() {
+ this.containerEl.createEl("h2", { text: "Startup Templates" });
+ const desc = document.createDocumentFragment();
+ desc.append("Startup Templates are templates that will get executed once when Templater starts.", desc.createEl("br"), "These templates won't output anything.", desc.createEl("br"), "This can be useful to set up templates adding hooks to obsidian events for example.");
+ new import_obsidian6.Setting(this.containerEl).setDesc(desc);
+ this.plugin.settings.startup_templates.forEach((template, index) => {
+ const s = new import_obsidian6.Setting(this.containerEl).addSearch((cb) => {
+ new FileSuggest(cb.inputEl, this.plugin, FileSuggestMode.TemplateFiles);
+ cb.setPlaceholder("Example: folder1/template_file").setValue(template).onChange((new_template) => {
+ if (new_template && this.plugin.settings.startup_templates.contains(new_template)) {
+ log_error(new TemplaterError("This startup template already exist"));
+ return;
+ }
+ this.plugin.settings.startup_templates[index] = new_template;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ }).addExtraButton((cb) => {
+ cb.setIcon("cross").setTooltip("Delete").onClick(() => {
+ this.plugin.settings.startup_templates.splice(index, 1);
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ s.infoEl.remove();
+ });
+ new import_obsidian6.Setting(this.containerEl).addButton((cb) => {
+ cb.setButtonText("Add new startup template").setCta().onClick(() => {
+ this.plugin.settings.startup_templates.push("");
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ }
+ add_user_script_functions_setting() {
+ this.containerEl.createEl("h2", { text: "User Script Functions" });
+ let desc = document.createDocumentFragment();
+ desc.append("All JavaScript files in this folder will be loaded as CommonJS modules, to import custom user functions.", desc.createEl("br"), "The folder needs to be accessible from the vault.", desc.createEl("br"), "Check the ", desc.createEl("a", {
+ href: "https://silentvoid13.github.io/Templater/",
+ text: "documentation"
+ }), " for more information.");
+ new import_obsidian6.Setting(this.containerEl).setName("Script files folder location").setDesc(desc).addSearch((cb) => {
+ new FolderSuggest(cb.inputEl);
+ cb.setPlaceholder("Example: folder1/folder2").setValue(this.plugin.settings.user_scripts_folder).onChange((new_folder) => {
+ this.plugin.settings.user_scripts_folder = new_folder;
+ this.plugin.save_settings();
+ });
+ cb.containerEl.addClass("templater_search");
+ });
+ desc = document.createDocumentFragment();
+ let name;
+ if (!this.plugin.settings.user_scripts_folder) {
+ name = "No User Scripts folder set";
+ } else {
+ const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.user_scripts_folder), `User Scripts folder doesn't exist`);
+ if (!files || files.length === 0) {
+ name = "No User Scripts detected";
+ } else {
+ let count = 0;
+ for (const file of files) {
+ if (file.extension === "js") {
+ count++;
+ desc.append(desc.createEl("li", {
+ text: `tp.user.${file.basename}`
+ }));
+ }
+ }
+ name = `Detected ${count} User Script(s)`;
+ }
+ }
+ new import_obsidian6.Setting(this.containerEl).setName(name).setDesc(desc).addExtraButton((extra) => {
+ extra.setIcon("sync").setTooltip("Refresh").onClick(() => {
+ this.display();
+ });
+ });
+ }
+ add_user_system_command_functions_setting() {
+ let desc = document.createDocumentFragment();
+ desc.append("Allows you to create user functions linked to system commands.", desc.createEl("br"), desc.createEl("b", {
+ text: "Warning: "
+ }), "It can be dangerous to execute arbitrary system commands from untrusted sources. Only run system commands that you understand, from trusted sources.");
+ this.containerEl.createEl("h2", {
+ text: "User System Command Functions"
+ });
+ new import_obsidian6.Setting(this.containerEl).setName("Enable User System Command Functions").setDesc(desc).addToggle((toggle) => {
+ toggle.setValue(this.plugin.settings.enable_system_commands).onChange((enable_system_commands) => {
+ this.plugin.settings.enable_system_commands = enable_system_commands;
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ if (this.plugin.settings.enable_system_commands) {
+ new import_obsidian6.Setting(this.containerEl).setName("Timeout").setDesc("Maximum timeout in seconds for a system command.").addText((text) => {
+ text.setPlaceholder("Timeout").setValue(this.plugin.settings.command_timeout.toString()).onChange((new_value) => {
+ const new_timeout = Number(new_value);
+ if (isNaN(new_timeout)) {
+ log_error(new TemplaterError("Timeout must be a number"));
+ return;
+ }
+ this.plugin.settings.command_timeout = new_timeout;
+ this.plugin.save_settings();
+ });
+ });
+ desc = document.createDocumentFragment();
+ desc.append("Full path to the shell binary to execute the command with.", desc.createEl("br"), "This setting is optional and will default to the system's default shell if not specified.", desc.createEl("br"), "You can use forward slashes ('/') as path separators on all platforms if in doubt.");
+ new import_obsidian6.Setting(this.containerEl).setName("Shell binary location").setDesc(desc).addText((text) => {
+ text.setPlaceholder("Example: /bin/bash, ...").setValue(this.plugin.settings.shell_path).onChange((shell_path) => {
+ this.plugin.settings.shell_path = shell_path;
+ this.plugin.save_settings();
+ });
+ });
+ let i = 1;
+ this.plugin.settings.templates_pairs.forEach((template_pair) => {
+ const div2 = this.containerEl.createEl("div");
+ div2.addClass("templater_div");
+ const title = this.containerEl.createEl("h4", {
+ text: "User Function n\xB0" + i
+ });
+ title.addClass("templater_title");
+ const setting2 = new import_obsidian6.Setting(this.containerEl).addExtraButton((extra) => {
+ extra.setIcon("cross").setTooltip("Delete").onClick(() => {
+ const index = this.plugin.settings.templates_pairs.indexOf(template_pair);
+ if (index > -1) {
+ this.plugin.settings.templates_pairs.splice(index, 1);
+ this.plugin.save_settings();
+ this.display();
+ }
+ });
+ }).addText((text) => {
+ const t = text.setPlaceholder("Function name").setValue(template_pair[0]).onChange((new_value) => {
+ const index = this.plugin.settings.templates_pairs.indexOf(template_pair);
+ if (index > -1) {
+ this.plugin.settings.templates_pairs[index][0] = new_value;
+ this.plugin.save_settings();
+ }
+ });
+ t.inputEl.addClass("templater_template");
+ return t;
+ }).addTextArea((text) => {
+ const t = text.setPlaceholder("System Command").setValue(template_pair[1]).onChange((new_cmd) => {
+ const index = this.plugin.settings.templates_pairs.indexOf(template_pair);
+ if (index > -1) {
+ this.plugin.settings.templates_pairs[index][1] = new_cmd;
+ this.plugin.save_settings();
+ }
+ });
+ t.inputEl.setAttr("rows", 2);
+ t.inputEl.addClass("templater_cmd");
+ return t;
+ });
+ setting2.infoEl.remove();
+ div2.appendChild(title);
+ div2.appendChild(this.containerEl.lastChild);
+ i += 1;
+ });
+ const div = this.containerEl.createEl("div");
+ div.addClass("templater_div2");
+ const setting = new import_obsidian6.Setting(this.containerEl).addButton((button) => {
+ button.setButtonText("Add New User Function").setCta().onClick(() => {
+ this.plugin.settings.templates_pairs.push(["", ""]);
+ this.plugin.save_settings();
+ this.display();
+ });
+ });
+ setting.infoEl.remove();
+ div.appendChild(this.containerEl.lastChild);
+ }
+ }
+ add_donating_setting() {
+ const s = new import_obsidian6.Setting(this.containerEl).setName("Donate").setDesc("If you like this Plugin, consider donating to support continued development.");
+ const a1 = document.createElement("a");
+ a1.setAttribute("href", "https://github.com/sponsors/silentvoid13");
+ a1.addClass("templater_donating");
+ const img1 = document.createElement("img");
+ img1.src = "https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86";
+ a1.appendChild(img1);
+ const a2 = document.createElement("a");
+ a2.setAttribute("href", "https://www.paypal.com/donate?hosted_button_id=U2SRGAFYXT32Q");
+ a2.addClass("templater_donating");
+ const img2 = document.createElement("img");
+ img2.src = "https://img.shields.io/badge/paypal-silentvoid13-yellow?style=social&logo=paypal";
+ a2.appendChild(img2);
+ s.settingEl.appendChild(a1);
+ s.settingEl.appendChild(a2);
+ }
+};
+
+// src/handlers/FuzzySuggester.ts
+var import_obsidian7 = __toModule(require("obsidian"));
+var OpenMode;
+(function(OpenMode2) {
+ OpenMode2[OpenMode2["InsertTemplate"] = 0] = "InsertTemplate";
+ OpenMode2[OpenMode2["CreateNoteTemplate"] = 1] = "CreateNoteTemplate";
+})(OpenMode || (OpenMode = {}));
+var FuzzySuggester = class extends import_obsidian7.FuzzySuggestModal {
+ constructor(plugin) {
+ super(app);
+ this.plugin = plugin;
+ this.setPlaceholder("Type name of a template...");
+ }
+ getItems() {
+ if (!this.plugin.settings.templates_folder) {
+ return app.vault.getMarkdownFiles();
+ }
+ const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.templates_folder), `Couldn't retrieve template files from templates folder ${this.plugin.settings.templates_folder}`);
+ if (!files) {
+ return [];
+ }
+ return files;
+ }
+ getItemText(item) {
+ return item.basename;
+ }
+ onChooseItem(item) {
+ switch (this.open_mode) {
+ case 0:
+ this.plugin.templater.append_template_to_active_file(item);
+ break;
+ case 1:
+ this.plugin.templater.create_new_note_from_template(item, this.creation_folder);
+ break;
+ }
+ }
+ start() {
+ try {
+ this.open();
+ } catch (e) {
+ log_error(e);
+ }
+ }
+ insert_template() {
+ this.open_mode = 0;
+ this.start();
+ }
+ create_new_note_from_template(folder) {
+ this.creation_folder = folder;
+ this.open_mode = 1;
+ this.start();
+ }
+};
+
+// src/utils/Constants.ts
+var UNSUPPORTED_MOBILE_TEMPLATE = "Error_MobileUnsupportedTemplate";
+var ICON_DATA = ``;
+
+// src/core/Templater.ts
+var import_obsidian13 = __toModule(require("obsidian"));
+
+// src/core/functions/internal_functions/InternalModule.ts
+var InternalModule = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.static_functions = new Map();
+ this.dynamic_functions = new Map();
+ }
+ getName() {
+ return this.name;
+ }
+ async init() {
+ await this.create_static_templates();
+ this.static_object = Object.fromEntries(this.static_functions);
+ }
+ async generate_object(new_config) {
+ this.config = new_config;
+ await this.create_dynamic_templates();
+ return {
+ ...this.static_object,
+ ...Object.fromEntries(this.dynamic_functions)
+ };
+ }
+};
+
+// src/core/functions/internal_functions/date/InternalModuleDate.ts
+var InternalModuleDate = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "date";
+ }
+ async create_static_templates() {
+ this.static_functions.set("now", this.generate_now());
+ this.static_functions.set("tomorrow", this.generate_tomorrow());
+ this.static_functions.set("weekday", this.generate_weekday());
+ this.static_functions.set("yesterday", this.generate_yesterday());
+ }
+ async create_dynamic_templates() {
+ }
+ generate_now() {
+ return (format2 = "YYYY-MM-DD", offset2, reference2, reference_format) => {
+ if (reference2 && !window.moment(reference2, reference_format).isValid()) {
+ throw new TemplaterError("Invalid reference date format, try specifying one with the argument 'reference_format'");
+ }
+ let duration;
+ if (typeof offset2 === "string") {
+ duration = window.moment.duration(offset2);
+ } else if (typeof offset2 === "number") {
+ duration = window.moment.duration(offset2, "days");
+ }
+ return window.moment(reference2, reference_format).add(duration).format(format2);
+ };
+ }
+ generate_tomorrow() {
+ return (format2 = "YYYY-MM-DD") => {
+ return window.moment().add(1, "days").format(format2);
+ };
+ }
+ generate_weekday() {
+ return (format2 = "YYYY-MM-DD", weekday, reference2, reference_format) => {
+ if (reference2 && !window.moment(reference2, reference_format).isValid()) {
+ throw new TemplaterError("Invalid reference date format, try specifying one with the argument 'reference_format'");
+ }
+ return window.moment(reference2, reference_format).weekday(weekday).format(format2);
+ };
+ }
+ generate_yesterday() {
+ return (format2 = "YYYY-MM-DD") => {
+ return window.moment().add(-1, "days").format(format2);
+ };
+ }
+};
+
+// src/core/functions/internal_functions/file/InternalModuleFile.ts
+var import_obsidian8 = __toModule(require("obsidian"));
+var DEPTH_LIMIT = 10;
+var InternalModuleFile = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "file";
+ this.include_depth = 0;
+ this.create_new_depth = 0;
+ this.linkpath_regex = new RegExp("^\\[\\[(.*)\\]\\]$");
+ }
+ async create_static_templates() {
+ this.static_functions.set("creation_date", this.generate_creation_date());
+ this.static_functions.set("create_new", this.generate_create_new());
+ this.static_functions.set("cursor", this.generate_cursor());
+ this.static_functions.set("cursor_append", this.generate_cursor_append());
+ this.static_functions.set("exists", this.generate_exists());
+ this.static_functions.set("find_tfile", this.generate_find_tfile());
+ this.static_functions.set("folder", this.generate_folder());
+ this.static_functions.set("include", this.generate_include());
+ this.static_functions.set("last_modified_date", this.generate_last_modified_date());
+ this.static_functions.set("move", this.generate_move());
+ this.static_functions.set("path", this.generate_path());
+ this.static_functions.set("rename", this.generate_rename());
+ this.static_functions.set("selection", this.generate_selection());
+ }
+ async create_dynamic_templates() {
+ this.dynamic_functions.set("content", await this.generate_content());
+ this.dynamic_functions.set("tags", this.generate_tags());
+ this.dynamic_functions.set("title", this.generate_title());
+ }
+ async generate_content() {
+ return await app.vault.read(this.config.target_file);
+ }
+ generate_create_new() {
+ return async (template, filename, open_new = false, folder) => {
+ this.create_new_depth += 1;
+ if (this.create_new_depth > DEPTH_LIMIT) {
+ this.create_new_depth = 0;
+ throw new TemplaterError("Reached create_new depth limit (max = 10)");
+ }
+ const new_file = await this.plugin.templater.create_new_note_from_template(template, folder, filename, open_new);
+ this.create_new_depth -= 1;
+ return new_file;
+ };
+ }
+ generate_creation_date() {
+ return (format2 = "YYYY-MM-DD HH:mm") => {
+ return window.moment(this.config.target_file.stat.ctime).format(format2);
+ };
+ }
+ generate_cursor() {
+ return (order2) => {
+ return `<% tp.file.cursor(${order2 ?? ""}) %>`;
+ };
+ }
+ generate_cursor_append() {
+ return (content) => {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView);
+ if (active_view === null) {
+ log_error(new TemplaterError("No active view, can't append to cursor."));
+ return;
+ }
+ const editor = active_view.editor;
+ const doc = editor.getDoc();
+ doc.replaceSelection(content);
+ return "";
+ };
+ }
+ generate_exists() {
+ return async (filename) => {
+ const path = (0, import_obsidian8.normalizePath)(filename);
+ return await app.vault.exists(path);
+ };
+ }
+ generate_find_tfile() {
+ return (filename) => {
+ const path = (0, import_obsidian8.normalizePath)(filename);
+ return app.metadataCache.getFirstLinkpathDest(path, "");
+ };
+ }
+ generate_folder() {
+ return (relative = false) => {
+ const parent = this.config.target_file.parent;
+ let folder;
+ if (relative) {
+ folder = parent.path;
+ } else {
+ folder = parent.name;
+ }
+ return folder;
+ };
+ }
+ generate_include() {
+ return async (include_link) => {
+ this.include_depth += 1;
+ if (this.include_depth > DEPTH_LIMIT) {
+ this.include_depth -= 1;
+ throw new TemplaterError("Reached inclusion depth limit (max = 10)");
+ }
+ let inc_file_content;
+ if (include_link instanceof import_obsidian8.TFile) {
+ inc_file_content = await app.vault.read(include_link);
+ } else {
+ let match;
+ if ((match = this.linkpath_regex.exec(include_link)) === null) {
+ this.include_depth -= 1;
+ throw new TemplaterError("Invalid file format, provide an obsidian link between quotes.");
+ }
+ const { path, subpath } = (0, import_obsidian8.parseLinktext)(match[1]);
+ const inc_file = app.metadataCache.getFirstLinkpathDest(path, "");
+ if (!inc_file) {
+ this.include_depth -= 1;
+ throw new TemplaterError(`File ${include_link} doesn't exist`);
+ }
+ inc_file_content = await app.vault.read(inc_file);
+ if (subpath) {
+ const cache = app.metadataCache.getFileCache(inc_file);
+ if (cache) {
+ const result = (0, import_obsidian8.resolveSubpath)(cache, subpath);
+ if (result) {
+ inc_file_content = inc_file_content.slice(result.start.offset, result.end?.offset);
+ }
+ }
+ }
+ }
+ try {
+ const parsed_content = await this.plugin.templater.parser.parse_commands(inc_file_content, this.plugin.templater.current_functions_object);
+ this.include_depth -= 1;
+ return parsed_content;
+ } catch (e) {
+ this.include_depth -= 1;
+ throw e;
+ }
+ };
+ }
+ generate_last_modified_date() {
+ return (format2 = "YYYY-MM-DD HH:mm") => {
+ return window.moment(this.config.target_file.stat.mtime).format(format2);
+ };
+ }
+ generate_move() {
+ return async (path, file_to_move) => {
+ const file = file_to_move || this.config.target_file;
+ const new_path = (0, import_obsidian8.normalizePath)(`${path}.${file.extension}`);
+ const dirs = new_path.replace(/\\/g, "/").split("/");
+ dirs.pop();
+ if (dirs.length) {
+ const dir = dirs.join("/");
+ if (!window.app.vault.getAbstractFileByPath(dir)) {
+ await window.app.vault.createFolder(dir);
+ }
+ }
+ await app.fileManager.renameFile(file, new_path);
+ return "";
+ };
+ }
+ generate_path() {
+ return (relative = false) => {
+ let vault_path = "";
+ if (import_obsidian8.Platform.isMobileApp) {
+ const vault_adapter = app.vault.adapter.fs.uri;
+ const vault_base = app.vault.adapter.basePath;
+ vault_path = `${vault_adapter}/${vault_base}`;
+ } else {
+ if (app.vault.adapter instanceof import_obsidian8.FileSystemAdapter) {
+ vault_path = app.vault.adapter.getBasePath();
+ } else {
+ throw new TemplaterError("app.vault is not a FileSystemAdapter instance");
+ }
+ }
+ if (relative) {
+ return this.config.target_file.path;
+ } else {
+ return `${vault_path}/${this.config.target_file.path}`;
+ }
+ };
+ }
+ generate_rename() {
+ return async (new_title) => {
+ if (new_title.match(/[\\/:]+/g)) {
+ throw new TemplaterError("File name cannot contain any of these characters: \\ / :");
+ }
+ const new_path = (0, import_obsidian8.normalizePath)(`${this.config.target_file.parent.path}/${new_title}.${this.config.target_file.extension}`);
+ await app.fileManager.renameFile(this.config.target_file, new_path);
+ return "";
+ };
+ }
+ generate_selection() {
+ return () => {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian8.MarkdownView);
+ if (active_view == null) {
+ throw new TemplaterError("Active view is null, can't read selection.");
+ }
+ const editor = active_view.editor;
+ return editor.getSelection();
+ };
+ }
+ generate_tags() {
+ const cache = app.metadataCache.getFileCache(this.config.target_file);
+ if (cache) {
+ return (0, import_obsidian8.getAllTags)(cache);
+ }
+ return null;
+ }
+ generate_title() {
+ return this.config.target_file.basename;
+ }
+};
+
+// src/core/functions/internal_functions/web/InternalModuleWeb.ts
+var InternalModuleWeb = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "web";
+ }
+ async create_static_templates() {
+ this.static_functions.set("daily_quote", this.generate_daily_quote());
+ this.static_functions.set("random_picture", this.generate_random_picture());
+ }
+ async create_dynamic_templates() {
+ }
+ async getRequest(url) {
+ try {
+ const response = await fetch(url);
+ if (!response.ok) {
+ throw new TemplaterError("Error performing GET request");
+ }
+ return response;
+ } catch (error) {
+ throw new TemplaterError("Error performing GET request");
+ }
+ }
+ generate_daily_quote() {
+ return async () => {
+ try {
+ const response = await this.getRequest("https://api.quotable.io/random");
+ const json = await response.json();
+ const author = json.author;
+ const quote = json.content;
+ const new_content = `> ${quote}
+> \u2014 ${author}`;
+ return new_content;
+ } catch (error) {
+ new TemplaterError("Error generating daily quote");
+ return "Error generating daily quote";
+ }
+ };
+ }
+ generate_random_picture() {
+ return async (size, query, include_size = false) => {
+ try {
+ const response = await this.getRequest(`https://templater-unsplash.fly.dev/${query ? "?q=" + query : ""}`).then((res) => res.json());
+ let url = response.full;
+ if (size && !include_size) {
+ if (size.includes("x")) {
+ const [width, height] = size.split("x");
+ url = url.concat(`&w=${width}&h=${height}`);
+ } else {
+ url = url.concat(`&w=${size}`);
+ }
+ }
+ if (include_size) {
+ return `![photo by ${response.photog} on Unsplash|${size}](${url})`;
+ }
+ return `![photo by ${response.photog} on Unsplash](${url})`;
+ } catch (error) {
+ new TemplaterError("Error generating random picture");
+ return "Error generating random picture";
+ }
+ };
+ }
+};
+
+// src/core/functions/internal_functions/frontmatter/InternalModuleFrontmatter.ts
+var InternalModuleFrontmatter = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "frontmatter";
+ }
+ async create_static_templates() {
+ }
+ async create_dynamic_templates() {
+ const cache = app.metadataCache.getFileCache(this.config.target_file);
+ this.dynamic_functions = new Map(Object.entries(cache?.frontmatter || {}));
+ }
+};
+
+// src/core/functions/internal_functions/system/InternalModuleSystem.ts
+var import_obsidian11 = __toModule(require("obsidian"));
+
+// src/core/functions/internal_functions/system/PromptModal.ts
+var import_obsidian9 = __toModule(require("obsidian"));
+var PromptModal = class extends import_obsidian9.Modal {
+ constructor(prompt_text, default_value, multi_line) {
+ super(app);
+ this.prompt_text = prompt_text;
+ this.default_value = default_value;
+ this.multi_line = multi_line;
+ this.submitted = false;
+ }
+ onOpen() {
+ this.titleEl.setText(this.prompt_text);
+ this.createForm();
+ }
+ onClose() {
+ this.contentEl.empty();
+ if (!this.submitted) {
+ this.reject();
+ }
+ }
+ createForm() {
+ const div = this.contentEl.createDiv();
+ div.addClass("templater-prompt-div");
+ let textInput;
+ if (this.multi_line) {
+ textInput = new import_obsidian9.TextAreaComponent(div);
+ const buttonDiv = this.contentEl.createDiv();
+ buttonDiv.addClass("templater-button-div");
+ const submitButton = new import_obsidian9.ButtonComponent(buttonDiv);
+ submitButton.buttonEl.addClass("mod-cta");
+ submitButton.setButtonText("Submit").onClick((evt) => {
+ this.resolveAndClose(evt);
+ });
+ } else {
+ textInput = new import_obsidian9.TextComponent(div);
+ }
+ this.value = this.default_value ?? "";
+ textInput.inputEl.addClass("templater-prompt-input");
+ textInput.setPlaceholder("Type text here");
+ textInput.setValue(this.value);
+ textInput.onChange((value) => this.value = value);
+ textInput.inputEl.addEventListener("keydown", (evt) => this.enterCallback(evt));
+ }
+ enterCallback(evt) {
+ if (this.multi_line) {
+ if (import_obsidian9.Platform.isDesktop) {
+ if (evt.shiftKey && evt.key === "Enter") {
+ } else if (evt.key === "Enter") {
+ this.resolveAndClose(evt);
+ }
+ } else {
+ if (evt.key === "Enter") {
+ evt.preventDefault();
+ }
+ }
+ } else {
+ if (evt.key === "Enter") {
+ this.resolveAndClose(evt);
+ }
+ }
+ }
+ resolveAndClose(evt) {
+ this.submitted = true;
+ evt.preventDefault();
+ this.resolve(this.value);
+ this.close();
+ }
+ async openAndGetValue(resolve, reject) {
+ this.resolve = resolve;
+ this.reject = reject;
+ this.open();
+ }
+};
+
+// src/core/functions/internal_functions/system/SuggesterModal.ts
+var import_obsidian10 = __toModule(require("obsidian"));
+var SuggesterModal = class extends import_obsidian10.FuzzySuggestModal {
+ constructor(text_items, items, placeholder, limit) {
+ super(app);
+ this.text_items = text_items;
+ this.items = items;
+ this.submitted = false;
+ this.setPlaceholder(placeholder);
+ limit && (this.limit = limit);
+ }
+ getItems() {
+ return this.items;
+ }
+ onClose() {
+ if (!this.submitted) {
+ this.reject(new TemplaterError("Cancelled prompt"));
+ }
+ }
+ selectSuggestion(value, evt) {
+ this.submitted = true;
+ this.close();
+ this.onChooseSuggestion(value, evt);
+ }
+ getItemText(item) {
+ if (this.text_items instanceof Function) {
+ return this.text_items(item);
+ }
+ return this.text_items[this.items.indexOf(item)] || "Undefined Text Item";
+ }
+ onChooseItem(item) {
+ this.resolve(item);
+ }
+ async openAndGetValue(resolve, reject) {
+ this.resolve = resolve;
+ this.reject = reject;
+ this.open();
+ }
+};
+
+// src/core/functions/internal_functions/system/InternalModuleSystem.ts
+var InternalModuleSystem = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "system";
+ }
+ async create_static_templates() {
+ this.static_functions.set("clipboard", this.generate_clipboard());
+ this.static_functions.set("prompt", this.generate_prompt());
+ this.static_functions.set("suggester", this.generate_suggester());
+ }
+ async create_dynamic_templates() {
+ }
+ generate_clipboard() {
+ return async () => {
+ if (import_obsidian11.Platform.isMobileApp) {
+ return UNSUPPORTED_MOBILE_TEMPLATE;
+ }
+ return await navigator.clipboard.readText();
+ };
+ }
+ generate_prompt() {
+ return async (prompt_text, default_value, throw_on_cancel = false, multi_line = false) => {
+ const prompt = new PromptModal(prompt_text, default_value, multi_line);
+ const promise = new Promise((resolve, reject) => prompt.openAndGetValue(resolve, reject));
+ try {
+ return await promise;
+ } catch (error) {
+ if (throw_on_cancel) {
+ throw error;
+ }
+ return null;
+ }
+ };
+ }
+ generate_suggester() {
+ return async (text_items, items, throw_on_cancel = false, placeholder = "", limit) => {
+ const suggester = new SuggesterModal(text_items, items, placeholder, limit);
+ const promise = new Promise((resolve, reject) => suggester.openAndGetValue(resolve, reject));
+ try {
+ return await promise;
+ } catch (error) {
+ if (throw_on_cancel) {
+ throw error;
+ }
+ return null;
+ }
+ };
+ }
+};
+
+// src/core/functions/internal_functions/config/InternalModuleConfig.ts
+var InternalModuleConfig = class extends InternalModule {
+ constructor() {
+ super(...arguments);
+ this.name = "config";
+ }
+ async create_static_templates() {
+ }
+ async create_dynamic_templates() {
+ }
+ async generate_object(config) {
+ return config;
+ }
+};
+
+// src/core/functions/internal_functions/InternalFunctions.ts
+var InternalFunctions = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.modules_array = [];
+ this.modules_array.push(new InternalModuleDate(this.plugin));
+ this.modules_array.push(new InternalModuleFile(this.plugin));
+ this.modules_array.push(new InternalModuleWeb(this.plugin));
+ this.modules_array.push(new InternalModuleFrontmatter(this.plugin));
+ this.modules_array.push(new InternalModuleSystem(this.plugin));
+ this.modules_array.push(new InternalModuleConfig(this.plugin));
+ }
+ async init() {
+ for (const mod of this.modules_array) {
+ await mod.init();
+ }
+ }
+ async generate_object(config) {
+ const internal_functions_object = {};
+ for (const mod of this.modules_array) {
+ internal_functions_object[mod.getName()] = await mod.generate_object(config);
+ }
+ return internal_functions_object;
+ }
+};
+
+// src/core/functions/user_functions/UserSystemFunctions.ts
+var import_child_process = __toModule(require("child_process"));
+var import_util = __toModule(require("util"));
+var import_obsidian12 = __toModule(require("obsidian"));
+var UserSystemFunctions = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ if (import_obsidian12.Platform.isMobileApp || !(app.vault.adapter instanceof import_obsidian12.FileSystemAdapter)) {
+ this.cwd = "";
+ } else {
+ this.cwd = app.vault.adapter.getBasePath();
+ this.exec_promise = (0, import_util.promisify)(import_child_process.exec);
+ }
+ }
+ async generate_system_functions(config) {
+ const user_system_functions = new Map();
+ const internal_functions_object = await this.plugin.templater.functions_generator.generate_object(config, FunctionsMode.INTERNAL);
+ for (const template_pair of this.plugin.settings.templates_pairs) {
+ const template = template_pair[0];
+ let cmd = template_pair[1];
+ if (!template || !cmd) {
+ continue;
+ }
+ if (import_obsidian12.Platform.isMobileApp) {
+ user_system_functions.set(template, () => {
+ return new Promise((resolve) => resolve(UNSUPPORTED_MOBILE_TEMPLATE));
+ });
+ } else {
+ cmd = await this.plugin.templater.parser.parse_commands(cmd, internal_functions_object);
+ user_system_functions.set(template, async (user_args) => {
+ const process_env = {
+ ...process.env,
+ ...user_args
+ };
+ const cmd_options = {
+ timeout: this.plugin.settings.command_timeout * 1e3,
+ cwd: this.cwd,
+ env: process_env,
+ ...this.plugin.settings.shell_path && {
+ shell: this.plugin.settings.shell_path
+ }
+ };
+ try {
+ const { stdout } = await this.exec_promise(cmd, cmd_options);
+ return stdout.trimRight();
+ } catch (error) {
+ throw new TemplaterError(`Error with User Template ${template}`, error);
+ }
+ });
+ }
+ }
+ return user_system_functions;
+ }
+ async generate_object(config) {
+ const user_system_functions = await this.generate_system_functions(config);
+ return Object.fromEntries(user_system_functions);
+ }
+};
+
+// src/core/functions/user_functions/UserScriptFunctions.ts
+var UserScriptFunctions = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ }
+ async generate_user_script_functions() {
+ const user_script_functions = new Map();
+ const files = errorWrapperSync(() => get_tfiles_from_folder(this.plugin.settings.user_scripts_folder), `Couldn't find user script folder "${this.plugin.settings.user_scripts_folder}"`);
+ if (!files) {
+ return new Map();
+ }
+ for (const file of files) {
+ if (file.extension.toLowerCase() === "js") {
+ await this.load_user_script_function(file, user_script_functions);
+ }
+ }
+ return user_script_functions;
+ }
+ async load_user_script_function(file, user_script_functions) {
+ const req = (s) => {
+ return window.require && window.require(s);
+ };
+ const exp = {};
+ const mod = {
+ exports: exp
+ };
+ const file_content = await app.vault.read(file);
+ const wrapping_fn = window.eval("(function anonymous(require, module, exports){" + file_content + "\n})");
+ wrapping_fn(req, mod, exp);
+ const user_function = exp["default"] || mod.exports;
+ if (!user_function) {
+ throw new TemplaterError(`Failed to load user script ${file.path}. No exports detected.`);
+ }
+ if (!(user_function instanceof Function)) {
+ throw new TemplaterError(`Failed to load user script ${file.path}. Default export is not a function.`);
+ }
+ user_script_functions.set(`${file.basename}`, user_function);
+ }
+ async generate_object() {
+ const user_script_functions = await this.generate_user_script_functions();
+ return Object.fromEntries(user_script_functions);
+ }
+};
+
+// src/core/functions/user_functions/UserFunctions.ts
+var UserFunctions = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.user_system_functions = new UserSystemFunctions(plugin);
+ this.user_script_functions = new UserScriptFunctions(plugin);
+ }
+ async generate_object(config) {
+ let user_system_functions = {};
+ let user_script_functions = {};
+ if (this.plugin.settings.enable_system_commands) {
+ user_system_functions = await this.user_system_functions.generate_object(config);
+ }
+ if (this.plugin.settings.user_scripts_folder) {
+ user_script_functions = await this.user_script_functions.generate_object();
+ }
+ return {
+ ...user_system_functions,
+ ...user_script_functions
+ };
+ }
+};
+
+// src/core/functions/FunctionsGenerator.ts
+var obsidian_module = __toModule(require("obsidian"));
+var FunctionsMode;
+(function(FunctionsMode2) {
+ FunctionsMode2[FunctionsMode2["INTERNAL"] = 0] = "INTERNAL";
+ FunctionsMode2[FunctionsMode2["USER_INTERNAL"] = 1] = "USER_INTERNAL";
+})(FunctionsMode || (FunctionsMode = {}));
+var FunctionsGenerator = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.internal_functions = new InternalFunctions(this.plugin);
+ this.user_functions = new UserFunctions(this.plugin);
+ }
+ async init() {
+ await this.internal_functions.init();
+ }
+ additional_functions() {
+ return {
+ obsidian: obsidian_module
+ };
+ }
+ async generate_object(config, functions_mode = 1) {
+ const final_object = {};
+ const additional_functions_object = this.additional_functions();
+ const internal_functions_object = await this.internal_functions.generate_object(config);
+ let user_functions_object = {};
+ Object.assign(final_object, additional_functions_object);
+ switch (functions_mode) {
+ case 0:
+ Object.assign(final_object, internal_functions_object);
+ break;
+ case 1:
+ user_functions_object = await this.user_functions.generate_object(config);
+ Object.assign(final_object, {
+ ...internal_functions_object,
+ user: user_functions_object
+ });
+ break;
+ }
+ return final_object;
+ }
+};
+
+// node_modules/@silentvoid13/rusty_engine/rusty_engine.js
+var import_meta = {};
+var wasm;
+var heap = new Array(32).fill(void 0);
+heap.push(void 0, null, true, false);
+function getObject(idx) {
+ return heap[idx];
+}
+var heap_next = heap.length;
+function dropObject(idx) {
+ if (idx < 36)
+ return;
+ heap[idx] = heap_next;
+ heap_next = idx;
+}
+function takeObject(idx) {
+ const ret = getObject(idx);
+ dropObject(idx);
+ return ret;
+}
+var cachedTextDecoder = new TextDecoder("utf-8", { ignoreBOM: true, fatal: true });
+cachedTextDecoder.decode();
+var cachedUint8Memory0 = new Uint8Array();
+function getUint8Memory0() {
+ if (cachedUint8Memory0.byteLength === 0) {
+ cachedUint8Memory0 = new Uint8Array(wasm.memory.buffer);
+ }
+ return cachedUint8Memory0;
+}
+function getStringFromWasm0(ptr, len) {
+ return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len));
+}
+function addHeapObject(obj) {
+ if (heap_next === heap.length)
+ heap.push(heap.length + 1);
+ const idx = heap_next;
+ heap_next = heap[idx];
+ heap[idx] = obj;
+ return idx;
+}
+var WASM_VECTOR_LEN = 0;
+var cachedTextEncoder = new TextEncoder("utf-8");
+var encodeString = typeof cachedTextEncoder.encodeInto === "function" ? function(arg, view) {
+ return cachedTextEncoder.encodeInto(arg, view);
+} : function(arg, view) {
+ const buf = cachedTextEncoder.encode(arg);
+ view.set(buf);
+ return {
+ read: arg.length,
+ written: buf.length
+ };
+};
+function passStringToWasm0(arg, malloc, realloc) {
+ if (realloc === void 0) {
+ const buf = cachedTextEncoder.encode(arg);
+ const ptr2 = malloc(buf.length);
+ getUint8Memory0().subarray(ptr2, ptr2 + buf.length).set(buf);
+ WASM_VECTOR_LEN = buf.length;
+ return ptr2;
+ }
+ let len = arg.length;
+ let ptr = malloc(len);
+ const mem = getUint8Memory0();
+ let offset2 = 0;
+ for (; offset2 < len; offset2++) {
+ const code = arg.charCodeAt(offset2);
+ if (code > 127)
+ break;
+ mem[ptr + offset2] = code;
+ }
+ if (offset2 !== len) {
+ if (offset2 !== 0) {
+ arg = arg.slice(offset2);
+ }
+ ptr = realloc(ptr, len, len = offset2 + arg.length * 3);
+ const view = getUint8Memory0().subarray(ptr + offset2, ptr + len);
+ const ret = encodeString(arg, view);
+ offset2 += ret.written;
+ }
+ WASM_VECTOR_LEN = offset2;
+ return ptr;
+}
+function isLikeNone(x) {
+ return x === void 0 || x === null;
+}
+var cachedInt32Memory0 = new Int32Array();
+function getInt32Memory0() {
+ if (cachedInt32Memory0.byteLength === 0) {
+ cachedInt32Memory0 = new Int32Array(wasm.memory.buffer);
+ }
+ return cachedInt32Memory0;
+}
+function debugString(val) {
+ const type = typeof val;
+ if (type == "number" || type == "boolean" || val == null) {
+ return `${val}`;
+ }
+ if (type == "string") {
+ return `"${val}"`;
+ }
+ if (type == "symbol") {
+ const description = val.description;
+ if (description == null) {
+ return "Symbol";
+ } else {
+ return `Symbol(${description})`;
+ }
+ }
+ if (type == "function") {
+ const name = val.name;
+ if (typeof name == "string" && name.length > 0) {
+ return `Function(${name})`;
+ } else {
+ return "Function";
+ }
+ }
+ if (Array.isArray(val)) {
+ const length = val.length;
+ let debug = "[";
+ if (length > 0) {
+ debug += debugString(val[0]);
+ }
+ for (let i = 1; i < length; i++) {
+ debug += ", " + debugString(val[i]);
+ }
+ debug += "]";
+ return debug;
+ }
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
+ let className;
+ if (builtInMatches.length > 1) {
+ className = builtInMatches[1];
+ } else {
+ return toString.call(val);
+ }
+ if (className == "Object") {
+ try {
+ return "Object(" + JSON.stringify(val) + ")";
+ } catch (_) {
+ return "Object";
+ }
+ }
+ if (val instanceof Error) {
+ return `${val.name}: ${val.message}
+${val.stack}`;
+ }
+ return className;
+}
+function _assertClass(instance, klass) {
+ if (!(instance instanceof klass)) {
+ throw new Error(`expected instance of ${klass.name}`);
+ }
+ return instance.ptr;
+}
+var stack_pointer = 32;
+function addBorrowedObject(obj) {
+ if (stack_pointer == 1)
+ throw new Error("out of js stack");
+ heap[--stack_pointer] = obj;
+ return stack_pointer;
+}
+function handleError(f, args) {
+ try {
+ return f.apply(this, args);
+ } catch (e) {
+ wasm.__wbindgen_exn_store(addHeapObject(e));
+ }
+}
+var ParserConfig = class {
+ static __wrap(ptr) {
+ const obj = Object.create(ParserConfig.prototype);
+ obj.ptr = ptr;
+ return obj;
+ }
+ __destroy_into_raw() {
+ const ptr = this.ptr;
+ this.ptr = 0;
+ return ptr;
+ }
+ free() {
+ const ptr = this.__destroy_into_raw();
+ wasm.__wbg_parserconfig_free(ptr);
+ }
+ get interpolate() {
+ const ret = wasm.__wbg_get_parserconfig_interpolate(this.ptr);
+ return String.fromCodePoint(ret);
+ }
+ set interpolate(arg0) {
+ wasm.__wbg_set_parserconfig_interpolate(this.ptr, arg0.codePointAt(0));
+ }
+ get execution() {
+ const ret = wasm.__wbg_get_parserconfig_execution(this.ptr);
+ return String.fromCodePoint(ret);
+ }
+ set execution(arg0) {
+ wasm.__wbg_set_parserconfig_execution(this.ptr, arg0.codePointAt(0));
+ }
+ get single_whitespace() {
+ const ret = wasm.__wbg_get_parserconfig_single_whitespace(this.ptr);
+ return String.fromCodePoint(ret);
+ }
+ set single_whitespace(arg0) {
+ wasm.__wbg_set_parserconfig_single_whitespace(this.ptr, arg0.codePointAt(0));
+ }
+ get multiple_whitespace() {
+ const ret = wasm.__wbg_get_parserconfig_multiple_whitespace(this.ptr);
+ return String.fromCodePoint(ret);
+ }
+ set multiple_whitespace(arg0) {
+ wasm.__wbg_set_parserconfig_multiple_whitespace(this.ptr, arg0.codePointAt(0));
+ }
+ constructor(opt, clt, inte, ex, sw, mw, gv) {
+ const ptr0 = passStringToWasm0(opt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ const ptr1 = passStringToWasm0(clt, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len1 = WASM_VECTOR_LEN;
+ const ptr2 = passStringToWasm0(gv, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len2 = WASM_VECTOR_LEN;
+ const ret = wasm.parserconfig_new(ptr0, len0, ptr1, len1, inte.codePointAt(0), ex.codePointAt(0), sw.codePointAt(0), mw.codePointAt(0), ptr2, len2);
+ return ParserConfig.__wrap(ret);
+ }
+ get opening_tag() {
+ try {
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
+ wasm.parserconfig_opening_tag(retptr, this.ptr);
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_add_to_stack_pointer(16);
+ wasm.__wbindgen_free(r0, r1);
+ }
+ }
+ set opening_tag(val) {
+ const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.parserconfig_set_opening_tag(this.ptr, ptr0, len0);
+ }
+ get closing_tag() {
+ try {
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
+ wasm.parserconfig_closing_tag(retptr, this.ptr);
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_add_to_stack_pointer(16);
+ wasm.__wbindgen_free(r0, r1);
+ }
+ }
+ set closing_tag(val) {
+ const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.parserconfig_set_closing_tag(this.ptr, ptr0, len0);
+ }
+ get global_var() {
+ try {
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
+ wasm.parserconfig_global_var(retptr, this.ptr);
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
+ return getStringFromWasm0(r0, r1);
+ } finally {
+ wasm.__wbindgen_add_to_stack_pointer(16);
+ wasm.__wbindgen_free(r0, r1);
+ }
+ }
+ set global_var(val) {
+ const ptr0 = passStringToWasm0(val, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.parserconfig_set_global_var(this.ptr, ptr0, len0);
+ }
+};
+var Renderer = class {
+ static __wrap(ptr) {
+ const obj = Object.create(Renderer.prototype);
+ obj.ptr = ptr;
+ return obj;
+ }
+ __destroy_into_raw() {
+ const ptr = this.ptr;
+ this.ptr = 0;
+ return ptr;
+ }
+ free() {
+ const ptr = this.__destroy_into_raw();
+ wasm.__wbg_renderer_free(ptr);
+ }
+ constructor(config) {
+ _assertClass(config, ParserConfig);
+ var ptr0 = config.ptr;
+ config.ptr = 0;
+ const ret = wasm.renderer_new(ptr0);
+ return Renderer.__wrap(ret);
+ }
+ render_content(content, context) {
+ try {
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
+ const ptr0 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ wasm.renderer_render_content(retptr, this.ptr, ptr0, len0, addBorrowedObject(context));
+ var r0 = getInt32Memory0()[retptr / 4 + 0];
+ var r1 = getInt32Memory0()[retptr / 4 + 1];
+ var r2 = getInt32Memory0()[retptr / 4 + 2];
+ if (r2) {
+ throw takeObject(r1);
+ }
+ return takeObject(r0);
+ } finally {
+ wasm.__wbindgen_add_to_stack_pointer(16);
+ heap[stack_pointer++] = void 0;
+ }
+ }
+};
+async function load(module2, imports) {
+ if (typeof Response === "function" && module2 instanceof Response) {
+ if (typeof WebAssembly.instantiateStreaming === "function") {
+ try {
+ return await WebAssembly.instantiateStreaming(module2, imports);
+ } catch (e) {
+ if (module2.headers.get("Content-Type") != "application/wasm") {
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
+ } else {
+ throw e;
+ }
+ }
+ }
+ const bytes = await module2.arrayBuffer();
+ return await WebAssembly.instantiate(bytes, imports);
+ } else {
+ const instance = await WebAssembly.instantiate(module2, imports);
+ if (instance instanceof WebAssembly.Instance) {
+ return { instance, module: module2 };
+ } else {
+ return instance;
+ }
+ }
+}
+function getImports() {
+ const imports = {};
+ imports.wbg = {};
+ imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
+ takeObject(arg0);
+ };
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
+ const ret = getStringFromWasm0(arg0, arg1);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_string_get = function(arg0, arg1) {
+ const obj = getObject(arg1);
+ const ret = typeof obj === "string" ? obj : void 0;
+ var ptr0 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ var len0 = WASM_VECTOR_LEN;
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
+ };
+ imports.wbg.__wbg_call_97ae9d8645dc388b = function() {
+ return handleError(function(arg0, arg1) {
+ const ret = getObject(arg0).call(getObject(arg1));
+ return addHeapObject(ret);
+ }, arguments);
+ };
+ imports.wbg.__wbg_new_8d2af00bc1e329ee = function(arg0, arg1) {
+ const ret = new Error(getStringFromWasm0(arg0, arg1));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_message_fe2af63ccc8985bc = function(arg0) {
+ const ret = getObject(arg0).message;
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_newwithargs_8fe23e3842840c8e = function(arg0, arg1, arg2, arg3) {
+ const ret = new Function(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbg_call_168da88779e35f61 = function() {
+ return handleError(function(arg0, arg1, arg2) {
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
+ return addHeapObject(ret);
+ }, arguments);
+ };
+ imports.wbg.__wbg_call_3999bee59e9f7719 = function() {
+ return handleError(function(arg0, arg1, arg2, arg3) {
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));
+ return addHeapObject(ret);
+ }, arguments);
+ };
+ imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
+ const ret = debugString(getObject(arg1));
+ const ptr0 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
+ const len0 = WASM_VECTOR_LEN;
+ getInt32Memory0()[arg0 / 4 + 1] = len0;
+ getInt32Memory0()[arg0 / 4 + 0] = ptr0;
+ };
+ imports.wbg.__wbindgen_throw = function(arg0, arg1) {
+ throw new Error(getStringFromWasm0(arg0, arg1));
+ };
+ return imports;
+}
+function initMemory(imports, maybe_memory) {
+}
+function finalizeInit(instance, module2) {
+ wasm = instance.exports;
+ init.__wbindgen_wasm_module = module2;
+ cachedInt32Memory0 = new Int32Array();
+ cachedUint8Memory0 = new Uint8Array();
+ return wasm;
+}
+async function init(input) {
+ if (typeof input === "undefined") {
+ input = new URL("rusty_engine_bg.wasm", import_meta.url);
+ }
+ const imports = getImports();
+ if (typeof input === "string" || typeof Request === "function" && input instanceof Request || typeof URL === "function" && input instanceof URL) {
+ input = fetch(input);
+ }
+ initMemory(imports);
+ const { instance, module: module2 } = await load(await input, imports);
+ return finalizeInit(instance, module2);
+}
+var rusty_engine_default = init;
+
+// wasm-embed:/home/runner/work/Templater/Templater/node_modules/@silentvoid13/rusty_engine/rusty_engine_bg.wasm
+var rusty_engine_bg_default = __toBinary("AGFzbQEAAAABvwEaYAJ/fwBgAn9/AX9gAX8Bf2ADf39/AX9gA39/fwBgAX8AYAV/f39/fwBgBH9/f38AYAR/f39/AX9gAABgBX9/f39/AX9gAX8BfmAAAX9gBn9/f39/fwBgB39/f39/f38AYAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAFf35/f38AYAR/fX9/AGAEf3x/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gCn9/f39/f39/f38Bf2ACfn8BfwLkAgsDd2JnGl9fd2JpbmRnZW5fb2JqZWN0X2Ryb3BfcmVmAAUDd2JnFV9fd2JpbmRnZW5fc3RyaW5nX25ldwABA3diZxVfX3diaW5kZ2VuX3N0cmluZ19nZXQAAAN3YmcbX193YmdfY2FsbF85N2FlOWQ4NjQ1ZGMzODhiAAEDd2JnGl9fd2JnX25ld184ZDJhZjAwYmMxZTMyOWVlAAEDd2JnHl9fd2JnX21lc3NhZ2VfZmUyYWY2M2NjYzg5ODViYwACA3diZyJfX3diZ19uZXd3aXRoYXJnc184ZmUyM2UzODQyODQwYzhlAAgDd2JnG19fd2JnX2NhbGxfMTY4ZGE4ODc3OWUzNWY2MQADA3diZxtfX3diZ19jYWxsXzM5OTliZWU1OWU5Zjc3MTkACAN3YmcXX193YmluZGdlbl9kZWJ1Z19zdHJpbmcAAAN3YmcQX193YmluZGdlbl90aHJvdwAAA7kBtwECBwAGAgYEBAcBBQMKCAAEBgYAAwcCAAEADgETAQQXAQICAQAAAwcZAQAFAQwABgACAgAAAgAEBAAGAQAAAAAEBw0CAQUEBQYCDBgAAQAAAAQBAQEAAQABBAQEBgMDBwMJAwQIAAAABQkAAgEAAAAABwAAAgICAgAFBQMEFgoGEQ8QAAUHAwIBAgABBQEBCAACAQEBBQEAAgECAgACAQEBAgAJCQICAgIAAAAAAwMDAQECAgsLCwUEBQFwATs7BQMBABEGCQF/AUGAgMAACwfcBRkGbWVtb3J5AgAXX193YmdfcGFyc2VyY29uZmlnX2ZyZWUAUSJfX3diZ19nZXRfcGFyc2VyY29uZmlnX2ludGVycG9sYXRlAH4iX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19pbnRlcnBvbGF0ZQB3IF9fd2JnX2dldF9wYXJzZXJjb25maWdfZXhlY3V0aW9uAH8gX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19leGVjdXRpb24AeChfX3diZ19nZXRfcGFyc2VyY29uZmlnX3NpbmdsZV93aGl0ZXNwYWNlAIABKF9fd2JnX3NldF9wYXJzZXJjb25maWdfc2luZ2xlX3doaXRlc3BhY2UAeSpfX3diZ19nZXRfcGFyc2VyY29uZmlnX211bHRpcGxlX3doaXRlc3BhY2UAgQEqX193Ymdfc2V0X3BhcnNlcmNvbmZpZ19tdWx0aXBsZV93aGl0ZXNwYWNlAHoQcGFyc2VyY29uZmlnX25ldwBVGHBhcnNlcmNvbmZpZ19vcGVuaW5nX3RhZwBGHHBhcnNlcmNvbmZpZ19zZXRfb3BlbmluZ190YWcAYxhwYXJzZXJjb25maWdfY2xvc2luZ190YWcARxxwYXJzZXJjb25maWdfc2V0X2Nsb3NpbmdfdGFnAGQXcGFyc2VyY29uZmlnX2dsb2JhbF92YXIASBtwYXJzZXJjb25maWdfc2V0X2dsb2JhbF92YXIAZRNfX3diZ19yZW5kZXJlcl9mcmVlAE8McmVuZGVyZXJfbmV3ACAXcmVuZGVyZXJfcmVuZGVyX2NvbnRlbnQAORFfX3diaW5kZ2VuX21hbGxvYwB1El9fd2JpbmRnZW5fcmVhbGxvYwCFAR9fX3diaW5kZ2VuX2FkZF90b19zdGFja19wb2ludGVyAKsBD19fd2JpbmRnZW5fZnJlZQCaARRfX3diaW5kZ2VuX2V4bl9zdG9yZQCfAQllAQBBAQs6mAGdAaoBPzzBAZUBlgFOkgGOAWotYsEBwQFnKl3BAXaIAUyJAYgBhwGQAY8BiQGJAYwBigGLAZgBX8EBaKABXo4BvwG+AYQBOElwoQHBAWioAWCjAVclqQGcAcEBwAEK2dYCtwG8IAIPfwF+IwBBEGsiCyQAAkACQCAAQfUBTwRAQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiICQQBBEEEIEJcBQQJ0ayIBIAEgAksbIABNDQIgAEEEakEIEJcBIQRBrK7AACgCAEUNAUEAIARrIQMCQAJAAn9BACAEQYACSQ0AGkEfIARB////B0sNABogBEEGIARBCHZnIgBrdkEBcSAAQQF0a0E+agsiBkECdEG4sMAAaigCACIABEAgBCAGEJMBdCEHQQAhAQNAAkAgABCvASICIARJDQAgAiAEayICIANPDQAgACEBIAIiAw0AQQAhAwwDCyAAQRRqKAIAIgIgBSACIAAgB0EddkEEcWpBEGooAgAiAEcbIAUgAhshBSAHQQF0IQcgAA0ACyAFBEAgBSEADAILIAENAgtBACEBQQEgBnQQmwFBrK7AACgCAHEiAEUNAyAAEKQBaEECdEG4sMAAaigCACIARQ0DCwNAIAAgASAAEK8BIgEgBE8gASAEayIFIANJcSICGyEBIAUgAyACGyEDIAAQkQEiAA0ACyABRQ0CC0G4scAAKAIAIgAgBE9BACADIAAgBGtPGw0BIAEiACAEELoBIQYgABA1AkAgA0EQQQgQlwFPBEAgACAEEKYBIAYgAxCUASADQYACTwRAIAYgAxA0DAILIANBA3YiAUEDdEGwrsAAaiEFAn9BqK7AACgCACICQQEgAXQiAXEEQCAFKAIIDAELQaiuwAAgASACcjYCACAFCyEBIAUgBjYCCCABIAY2AgwgBiAFNgIMIAYgATYCCAwBCyAAIAMgBGoQjQELIAAQvAEiA0UNAQwCC0EQIABBBGpBEEEIEJcBQXtqIABLG0EIEJcBIQQCQAJAAkACfwJAAkBBqK7AACgCACIBIARBA3YiAHYiAkEDcUUEQCAEQbixwAAoAgBNDQcgAg0BQayuwAAoAgAiAEUNByAAEKQBaEECdEG4sMAAaigCACIBEK8BIARrIQMgARCRASIABEADQCAAEK8BIARrIgIgAyACIANJIgIbIQMgACABIAIbIQEgABCRASIADQALCyABIgAgBBC6ASEFIAAQNSADQRBBCBCXAUkNBSAAIAQQpgEgBSADEJQBQbixwAAoAgAiAUUNBCABQQN2IgFBA3RBsK7AAGohB0HAscAAKAIAIQZBqK7AACgCACICQQEgAXQiAXFFDQIgBygCCAwDCwJAIAJBf3NBAXEgAGoiA0EDdCIAQbiuwABqKAIAIgVBCGooAgAiAiAAQbCuwABqIgBHBEAgAiAANgIMIAAgAjYCCAwBC0GorsAAIAFBfiADd3E2AgALIAUgA0EDdBCNASAFELwBIQMMBwsCQEEBIABBH3EiAHQQmwEgAiAAdHEQpAFoIgJBA3QiAEG4rsAAaigCACIDQQhqKAIAIgEgAEGwrsAAaiIARwRAIAEgADYCDCAAIAE2AggMAQtBqK7AAEGorsAAKAIAQX4gAndxNgIACyADIAQQpgEgAyAEELoBIgUgAkEDdCAEayICEJQBQbixwAAoAgAiAARAIABBA3YiAEEDdEGwrsAAaiEHQcCxwAAoAgAhBgJ/QaiuwAAoAgAiAUEBIAB0IgBxBEAgBygCCAwBC0GorsAAIAAgAXI2AgAgBwshACAHIAY2AgggACAGNgIMIAYgBzYCDCAGIAA2AggLQcCxwAAgBTYCAEG4scAAIAI2AgAgAxC8ASEDDAYLQaiuwAAgASACcjYCACAHCyEBIAcgBjYCCCABIAY2AgwgBiAHNgIMIAYgATYCCAtBwLHAACAFNgIAQbixwAAgAzYCAAwBCyAAIAMgBGoQjQELIAAQvAEiAw0BCwJAAkACQAJAAkACQAJAAkBBuLHAACgCACIAIARJBEBBvLHAACgCACIAIARLDQIgC0EIQQgQlwEgBGpBFEEIEJcBakEQQQgQlwFqQYCABBCXARBxIAsoAgAiCA0BQQAhAwwJC0HAscAAKAIAIQIgACAEayIBQRBBCBCXAUkEQEHAscAAQQA2AgBBuLHAACgCACEAQbixwABBADYCACACIAAQjQEgAhC8ASEDDAkLIAIgBBC6ASEAQbixwAAgATYCAEHAscAAIAA2AgAgACABEJQBIAIgBBCmASACELwBIQMMCAsgCygCCCEMQcixwAAgCygCBCIKQcixwAAoAgBqIgE2AgBBzLHAAEHMscAAKAIAIgAgASAAIAFLGzYCAAJAAkBBxLHAACgCAARAQdCxwAAhAANAIAAQpwEgCEYNAiAAKAIIIgANAAsMAgtB5LHAACgCACIARSAIIABJcg0DDAcLIAAQsQENACAAELIBIAxHDQAgACIBKAIAIgVBxLHAACgCACICTQR/IAUgASgCBGogAksFQQALDQMLQeSxwABB5LHAACgCACIAIAggCCAASxs2AgAgCCAKaiEBQdCxwAAhAAJAAkADQCABIAAoAgBHBEAgACgCCCIADQEMAgsLIAAQsQENACAAELIBIAxGDQELQcSxwAAoAgAhCUHQscAAIQACQANAIAAoAgAgCU0EQCAAEKcBIAlLDQILIAAoAggiAA0AC0EAIQALIAkgABCnASIGQRRBCBCXASIPa0FpaiIBELwBIgBBCBCXASAAayABaiIAIABBEEEIEJcBIAlqSRsiDRC8ASEOIA0gDxC6ASEAQQhBCBCXASEDQRRBCBCXASEFQRBBCBCXASECQcSxwAAgCCAIELwBIgFBCBCXASABayIBELoBIgc2AgBBvLHAACAKQQhqIAIgAyAFamogAWprIgM2AgAgByADQQFyNgIEQQhBCBCXASEFQRRBCBCXASECQRBBCBCXASEBIAcgAxC6ASABIAIgBUEIa2pqNgIEQeCxwABBgICAATYCACANIA8QpgFB0LHAACkCACEQIA5BCGpB2LHAACkCADcCACAOIBA3AgBB3LHAACAMNgIAQdSxwAAgCjYCAEHQscAAIAg2AgBB2LHAACAONgIAA0AgAEEEELoBIQEgAEEHNgIEIAYgASIAQQRqSw0ACyAJIA1GDQcgCSANIAlrIgAgCSAAELoBEIYBIABBgAJPBEAgCSAAEDQMCAsgAEEDdiIAQQN0QbCuwABqIQICf0GorsAAKAIAIgFBASAAdCIAcQRAIAIoAggMAQtBqK7AACAAIAFyNgIAIAILIQAgAiAJNgIIIAAgCTYCDCAJIAI2AgwgCSAANgIIDAcLIAAoAgAhAyAAIAg2AgAgACAAKAIEIApqNgIEIAgQvAEiBUEIEJcBIQIgAxC8ASIBQQgQlwEhACAIIAIgBWtqIgYgBBC6ASEHIAYgBBCmASADIAAgAWtqIgAgBCAGamshBCAAQcSxwAAoAgBHBEBBwLHAACgCACAARg0EIAAoAgRBA3FBAUcNBQJAIAAQrwEiBUGAAk8EQCAAEDUMAQsgAEEMaigCACICIABBCGooAgAiAUcEQCABIAI2AgwgAiABNgIIDAELQaiuwABBqK7AACgCAEF+IAVBA3Z3cTYCAAsgBCAFaiEEIAAgBRC6ASEADAULQcSxwAAgBzYCAEG8scAAQbyxwAAoAgAgBGoiADYCACAHIABBAXI2AgQgBhC8ASEDDAcLQbyxwAAgACAEayIBNgIAQcSxwABBxLHAACgCACICIAQQugEiADYCACAAIAFBAXI2AgQgAiAEEKYBIAIQvAEhAwwGC0HkscAAIAg2AgAMAwsgACAAKAIEIApqNgIEQcSxwAAoAgBBvLHAACgCACAKahBWDAMLQcCxwAAgBzYCAEG4scAAQbixwAAoAgAgBGoiADYCACAHIAAQlAEgBhC8ASEDDAMLIAcgBCAAEIYBIARBgAJPBEAgByAEEDQgBhC8ASEDDAMLIARBA3YiAEEDdEGwrsAAaiECAn9BqK7AACgCACIBQQEgAHQiAHEEQCACKAIIDAELQaiuwAAgACABcjYCACACCyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCCAGELwBIQMMAgtB6LHAAEH/HzYCAEHcscAAIAw2AgBB1LHAACAKNgIAQdCxwAAgCDYCAEG8rsAAQbCuwAA2AgBBxK7AAEG4rsAANgIAQbiuwABBsK7AADYCAEHMrsAAQcCuwAA2AgBBwK7AAEG4rsAANgIAQdSuwABByK7AADYCAEHIrsAAQcCuwAA2AgBB3K7AAEHQrsAANgIAQdCuwABByK7AADYCAEHkrsAAQdiuwAA2AgBB2K7AAEHQrsAANgIAQeyuwABB4K7AADYCAEHgrsAAQdiuwAA2AgBB9K7AAEHorsAANgIAQeiuwABB4K7AADYCAEH8rsAAQfCuwAA2AgBB8K7AAEHorsAANgIAQfiuwABB8K7AADYCAEGEr8AAQfiuwAA2AgBBgK/AAEH4rsAANgIAQYyvwABBgK/AADYCAEGIr8AAQYCvwAA2AgBBlK/AAEGIr8AANgIAQZCvwABBiK/AADYCAEGcr8AAQZCvwAA2AgBBmK/AAEGQr8AANgIAQaSvwABBmK/AADYCAEGgr8AAQZivwAA2AgBBrK/AAEGgr8AANgIAQaivwABBoK/AADYCAEG0r8AAQaivwAA2AgBBsK/AAEGor8AANgIAQbyvwABBsK/AADYCAEHEr8AAQbivwAA2AgBBuK/AAEGwr8AANgIAQcyvwABBwK/AADYCAEHAr8AAQbivwAA2AgBB1K/AAEHIr8AANgIAQcivwABBwK/AADYCAEHcr8AAQdCvwAA2AgBB0K/AAEHIr8AANgIAQeSvwABB2K/AADYCAEHYr8AAQdCvwAA2AgBB7K/AAEHgr8AANgIAQeCvwABB2K/AADYCAEH0r8AAQeivwAA2AgBB6K/AAEHgr8AANgIAQfyvwABB8K/AADYCAEHwr8AAQeivwAA2AgBBhLDAAEH4r8AANgIAQfivwABB8K/AADYCAEGMsMAAQYCwwAA2AgBBgLDAAEH4r8AANgIAQZSwwABBiLDAADYCAEGIsMAAQYCwwAA2AgBBnLDAAEGQsMAANgIAQZCwwABBiLDAADYCAEGksMAAQZiwwAA2AgBBmLDAAEGQsMAANgIAQaywwABBoLDAADYCAEGgsMAAQZiwwAA2AgBBtLDAAEGosMAANgIAQaiwwABBoLDAADYCAEGwsMAAQaiwwAA2AgBBCEEIEJcBIQVBFEEIEJcBIQJBEEEIEJcBIQFBxLHAACAIIAgQvAEiAEEIEJcBIABrIgAQugEiAzYCAEG8scAAIApBCGogASACIAVqaiAAamsiBTYCACADIAVBAXI2AgRBCEEIEJcBIQJBFEEIEJcBIQFBEEEIEJcBIQAgAyAFELoBIAAgASACQQhramo2AgRB4LHAAEGAgIABNgIAC0EAIQNBvLHAACgCACIAIARNDQBBvLHAACAAIARrIgE2AgBBxLHAAEHEscAAKAIAIgIgBBC6ASIANgIAIAAgAUEBcjYCBCACIAQQpgEgAhC8ASEDCyALQRBqJAAgAwvgDwINfwp+IwBBMGsiCSQAAkAgASgCDCIKIAJqIgIgCkkEQBBrIAkoAgwhAiAJKAIIIQQMAQsCQAJAAkACfwJAIAIgASgCACIIIAhBAWoiB0EDdkEHbCAIQQhJGyILQQF2SwRAIAIgC0EBaiIEIAIgBEsbIgJBCEkNASACIAJB/////wFxRgRAQX8gAkEDdEEHbkF/amd2QQFqDAMLEGsgCSgCLCECIAkoAighBAwGCyABQQRqKAIAIQVBACECA0ACQAJAIARBAXFFBEAgAiAHTw0BDAILIAJBB2oiBCACSQ0AIAQiAiAHSQ0BCwJAAkAgB0EITwRAIAUgB2ogBSkAADcAAAwBCyAFQQhqIAUgBxAaIAdFDQELIANBCGopAwAiGELt3pHzlszct+QAhSIRIAMpAwAiFkL1ys2D16zbt/MAhXwiF0IgiSEZIBFCDYkgF4UiF0IRiSEaIBZC4eSV89bs2bzsAIUhFkEAIQIDQAJAIAUgAiIDaiIMLQAAQYABRw0AIAUgA0EDdGtBeGohDyAFIANBf3NBA3RqIQcCQANAIAggGCAPNQIAQoCAgICAgICABIQiEYVC88rRy6eM2bL0AIUiEkIQiSASIBZ8IhKFIhMgGXwiFCARhSASIBd8IhEgGoUiEnwiFSASQg2JhSISIBNCFYkgFIUiEyARQiCJQv8BhXwiEXwiFCASQhGJhSISQg2JIBIgE0IQiSARhSIRIBVCIIl8IhN8IhKFIhVCEYkgFSARQhWJIBOFIhEgFEIgiXwiE3wiFIUiFUINiSAVIBFCEIkgE4UiESASQiCJfCISfIUiEyARQhWJIBKFIhEgFEIgiXwiEnwiFCARQhCJIBKFQhWJhSATQhGJhSAUQiCIhaciDXEiBiEEIAUgBmopAABCgIGChIiQoMCAf4MiEVAEQEEIIQIgBiEEA0AgAiAEaiEEIAJBCGohAiAFIAQgCHEiBGopAABCgIGChIiQoMCAf4MiEVANAAsLIAUgEXqnQQN2IARqIAhxIgRqLAAAQX9KBEAgBSkDAEKAgYKEiJCgwIB/g3qnQQN2IQQLIAQgBmsgAyAGa3MgCHFBCE8EQCAFIARBf3NBA3RqIQIgBCAFaiIGLQAAIAYgDUEZdiIGOgAAIARBeGogCHEgBWpBCGogBjoAAEH/AUYNAiAHLQAFIQQgBy0ABCEGIAcgAi8ABDsABCACLQAHIQ0gAi0ABiEOIAIgBy8ABjsABiAHKAAAIRAgByACKAAANgAAIAIgEDYAACACIAY6AAQgByAOOgAGIAIgBDoABSAHIA06AAcMAQsLIAwgDUEZdiICOgAAIANBeGogCHEgBWpBCGogAjoAAAwBCyAMQf8BOgAAIANBeGogCHEgBWpBCGpB/wE6AAAgAiAHKQAANwAACyADQQFqIQIgAyAIRw0ACwsgASALIAprNgIIDAULIAIgBWoiBCAEKQMAIhFCB4hCf4VCgYKEiJCgwIABgyARQv/+/fv379+//wCEfDcDAEEBIQQgAkEBaiECDAALAAtBBEEIIAJBBEkbCyICQf////8BcSACRgRAIAJBA3QiBCACQQhqIgtqIgYgBE8NAQsQayAJKAIUIQIgCSgCECEEDAMLAkACQCAGQQBOBEBBCCEFAkAgBkUNACAGQQgQngEiBQ0AIAZBCBCzAQALIAQgBWogCxBFIQYgAkF/aiIFIAJBA3ZBB2wgBUEISRsgCmshCyABQQRqIgIoAgAhCiAHDQEgASALNgIIIAEgBTYCACACIAY2AgAMAgsQayAJKAIcIQIgCSgCGCEEDAQLIANBCGopAwAiGELt3pHzlszct+QAhSIRIAMpAwAiFkL1ys2D16zbt/MAhXwiF0IgiSEZIBFCDYkgF4UiF0IRiSEaIBZC4eSV89bs2bzsAIUhFkEAIQMDQCADIApqLAAAQQBOBEAgBiAFIBggCiADQQN0a0F4ajUCAEKAgICAgICAgASEIhGFQvPK0cunjNmy9ACFIhJCEIkgEiAWfCIShSITIBl8IhQgEYUgEiAXfCIRIBqFIhJ8IhUgEkINiYUiEiATQhWJIBSFIhMgEUIgiUL/AYV8IhF8IhQgEkIRiYUiEkINiSASIBNCEIkgEYUiESAVQiCJfCITfCIShSIVQhGJIBUgEUIViSAThSIRIBRCIIl8IhN8IhSFIhVCDYkgFSARQhCJIBOFIhEgEkIgiXwiEnyFIhMgEUIViSAShSIRIBRCIIl8IhJ8IhQgEUIQiSAShUIViYUgE0IRiYUgFEIgiIWnIgxxIgRqKQAAQoCBgoSIkKDAgH+DIhFQBEBBCCECA0AgAiAEaiEEIAJBCGohAiAGIAQgBXEiBGopAABCgIGChIiQoMCAf4MiEVANAAsLIAYgEXqnQQN2IARqIAVxIgJqLAAAQX9KBEAgBikDAEKAgYKEiJCgwIB/g3qnQQN2IQILIAIgBmogDEEZdiIEOgAAIAJBeGogBXEgBmpBCGogBDoAACAGIAJBf3NBA3RqIAogA0F/c0EDdGopAAA3AwALIAMgCEYgA0EBaiEDRQ0ACyABIAs2AgggASAFNgIAIAFBBGogBjYCACAIRQ0BC0GBgICAeCECIAggB0EDdCIEakEJakUNASAKIARrEBUMAQtBgYCAgHghAgsLIAAgAjYCBCAAIAQ2AgAgCUEwaiQAC8YNAhV/AX4jAEHQAGsiAiQAIAJBADYCECACQgQ3AwggAkEYaiABKAIAIg0gAUEEaigCACIOIAFBCGooAgAiChAfAkACQAJAIAIoAhgiAUUEQCAOIQUgDSEGDAELIApBDGohFCACQTBqIREgAkEoakEFciESIApBCGohFSAKQRRqIRYCQANAIBUoAgAgE2ohCCACKAIkIQcgAigCICEDIAIoAhwiBQRAIAIoAhAiBCACKAIMRgRAIAJBCGogBBA9IAIoAhAhBAsgAigCCCAEQQR0aiIGIAE2AgRBACEEIAZBADYCACAGQQhqIAU2AgAgAiACKAIQQQFqNgIQIAVBA3EhCSAFQX9qQQNPBEAgBUF8cSEMA0AgBCABLQAAQQpGaiABQQFqLQAAQQpGaiABQQJqLQAAQQpGaiABQQNqLQAAQQpGaiEEIAFBBGohASAMQXxqIgwNAAsLIAkEQANAIAQgAS0AAEEKRmohBCABQQFqIQEgCUF/aiIJDQALCyAEIAtqIQsgBSAIaiEICwJAAkACQAJAIAcEQAJAIAMsAAAiAUF/SgRAIAFB/wFxIQQMAQsgAy0AAUE/cSEGIAFBH3EhBSABQV9NBEAgBUEGdCAGciEEDAELIAMtAAJBP3EgBkEGdHIhBiABQXBJBEAgBiAFQQx0ciEEDAELIAVBEnRBgIDwAHEgAy0AA0E/cSAGQQZ0cnIiBEGAgMQARg0CC0EBIRAgCigCJCAERwRAQQAhECAEIAooAiBHDQILIAdBAU0EQCAIQQFqIQgMBQsgAywAASIBQb9/Sg0CDAkLIABBCGogDSAOIAsgCBAcIABCgYCAgDA3AgAMBQtBAiEQDAELIANBAWohAyAIQQFqIQggB0F/aiEHCwJAIAFBf0wEQCADLQABQT9xIQYgAUEfcSEFIAFBX00EQCAFQQZ0IAZyIQEMAgsgAy0AAkE/cSAGQQZ0ciEGIAFBcEkEQCAGIAVBDHRyIQEMAgsgBUESdEGAgPAAcSADLQADQT9xIAZBBnRyciIBQYCAxABGDQIMAQsgAUH/AXEhAQsCQAJAAkACQCAKKAIcIgUgAUcEQCABIAooAhgiBkYNASAGDQJBACEPDAQLQQEhDyAHQQJJDQIgAywAAUG/f0wNCQwCC0EAIQ8gB0ECSQ0BIAMsAAFBv39KDQEMCAtBASEPIAUNAgwBCyAIQQFqIQggA0EBaiEDIAdBf2ohBwsgAkFAayADIAcgFBAfAkACQAJAAkACQCACKAJAIgcEQCACKAJMIQUgAigCSCEGIBYoAgACQCACKAJEIgNBf2oiAUUEQCAHLQAAIQkMAQsgA0UNBCABIAdqLAAAIglBv39MDQQLIAhqIQRBASEIIAlB/wFxIgkgCigCJEYNAUEAIQggCigCICAJRg0BIAMgBGohE0ECIQgMAgsgESANIA4gCyAIEBwgAikDMCEXIABBEGogAigCODYCACAAQQhqIBc3AgAgAEKBgICAMDcCAAwHCyADIARqIRMgAUUNAiABIQMLIANBA3EhCQJAIANBf2pBA0kEQEEAIQQgByEBDAELIANBfHEhDEEAIQQgByEBA0AgBCABLQAAQQpGaiABQQFqLQAAQQpGaiABQQJqLQAAQQpGaiABQQNqLQAAQQpGaiEEIAFBBGohASAMQXxqIgwNAAsLIAlFDQIDQCAEIAEtAABBCkZqIQQgAUEBaiEBIAlBf2oiCQ0ACwwCCyAHIAMgASADEHsAC0EAIQNBACEECyACKAIQIgEgAigCDEYEQCACQQhqIAEQPSACKAIQIQELIAQgC2ohCyACKAIIIAFBBHRqIgEgCDoADiABIBA6AA0gASAHNgIEIAFBATYCACABQQxqIA86AAAgAUEIaiADNgIAIAIgAigCEEEBajYCECACQRhqIAYgBSAKEB8gAigCGCIBRQ0DDAELCyARIA0gDiALIAgQHCACQQI2AiwgAkHCAGogEkECai0AACIBOgAAIAIgEi8AACIHOwFAIAJBOGooAgAhAyACKQMwIRcgAEECOgAEIAAgBzsABSAAQQdqIAE6AAAgAEEQaiADNgIAIABBCGogFzcCACAAQQE2AgALIAIoAgxFDQEgAigCCBAVDAELIAUEQCACKAIQIgEgAigCDEYEQCACQQhqIAEQPSACKAIQIQELIAIoAgggAUEEdGoiASAGNgIEIAFBADYCACABQQhqIAU2AgAgAiACKAIQQQFqNgIQCyAAIAIpAwg3AgQgAEEANgIAIABBDGogAkEQaigCADYCAAsgAkHQAGokAA8LIAMgB0EBIAcQewALqwsCCn8BfgJ/AkAgBARAQQEhDQJAIARBAUYEQEEBIQgMAQtBASEGQQEhBwNAIAchCwJAAkAgBSAKaiIIIARJBEAgAyAGai0AACIHIAMgCGotAAAiBk8EQCAGIAdGDQJBASENIAtBAWohB0EAIQUgCyEKDAMLIAUgC2pBAWoiByAKayENQQAhBQwCCyAIIARB+JfAABBbAAtBACAFQQFqIgcgByANRiIGGyEFIAdBACAGGyALaiEHCyAFIAdqIgYgBEkNAAtBASEGQQEhB0EAIQVBASEIA0AgByELAkACQCAFIAlqIgwgBEkEQCADIAZqLQAAIgcgAyAMai0AACIGTQRAIAYgB0YNAkEBIQggC0EBaiEHQQAhBSALIQkMAwsgBSALakEBaiIHIAlrIQhBACEFDAILIAwgBEH4l8AAEFsAC0EAIAVBAWoiByAHIAhGIgYbIQUgB0EAIAYbIAtqIQcLIAUgB2oiBiAESQ0ACyAKIQULIAUgCSAFIAlLIgUbIgsgBE0EQCANIAggBRsiByALaiIFIAdPBEAgBSAETQRAIAMgAyAHaiALELgBBEAgCyAEIAtrIgZLIQogBEEDcSEHIARBf2pBA0kEQCADIQUMBgsgBEF8cSEIIAMhBQNAQgEgBTEAAIYgD4RCASAFQQFqMQAAhoRCASAFQQJqMQAAhoRCASAFQQNqMQAAhoQhDyAFQQRqIQUgCEF8aiIIDQALDAULQQEhCUEAIQVBASEGQQAhDQNAIAYiCiAFaiIMIARJBEACQAJAAkAgBCAFayAKQX9zaiIIIARJBEAgBUF/cyAEaiANayIGIARPDQEgAyAIai0AACIIIAMgBmotAAAiBk8EQCAGIAhGDQMgCkEBaiEGQQAhBUEBIQkgCiENDAQLIAxBAWoiBiANayEJQQAhBQwDCyAIIARBiJjAABBbAAsgBiAEQZiYwAAQWwALQQAgBUEBaiIIIAggCUYiBhshBSAIQQAgBhsgCmohBgsgByAJRw0BCwtBASEJQQAhBUEBIQZBACEIA0AgBiIKIAVqIg4gBEkEQAJAAkACQCAEIAVrIApBf3NqIgwgBEkEQCAFQX9zIARqIAhrIgYgBE8NASADIAxqLQAAIgwgAyAGai0AACIGTQRAIAYgDEYNAyAKQQFqIQZBACEFQQEhCSAKIQgMBAsgDkEBaiIGIAhrIQlBACEFDAMLIAwgBEGImMAAEFsACyAGIARBmJjAABBbAAtBACAFQQFqIgwgCSAMRiIGGyEFIAxBACAGGyAKaiEGCyAHIAlHDQELCyAHIARNBEAgBCANIAggDSAISxtrIQpBACEJAkAgB0UEQEEAIQcMAQsgB0EDcSEIAkAgB0F/akEDSQRAIAMhBQwBCyAHQXxxIQYgAyEFA0BCASAFMQAAhiAPhEIBIAVBAWoxAACGhEIBIAVBAmoxAACGhEIBIAVBA2oxAACGhCEPIAVBBGohBSAGQXxqIgYNAAsLIAhFDQADQEIBIAUxAACGIA+EIQ8gBUEBaiEFIAhBf2oiCA0ACwsgBAwGCyAHIAQQtQEACyAFIAQQtQEACyAHIAUQtgEACyALIAQQtQEACyAAIAM2AjggACABNgIwIABBADoADiAAQgA3AwAgAEE8akEANgIAIABBNGogAjYCACAAQQxqQYECOwEAIABBCGogAjYCAA8LIAcEQANAQgEgBTEAAIYgD4QhDyAFQQFqIQUgB0F/aiIHDQALCyALIAYgChtBAWohB0F/IQkgCyEKQX8LIQUgACADNgI4IAAgATYCMCAAQQE2AgAgAEE8aiAENgIAIABBNGogAjYCACAAQShqIAU2AgAgAEEkaiAJNgIAIABBIGogAjYCACAAQRxqQQA2AgAgAEEYaiAHNgIAIABBFGogCjYCACAAQRBqIAs2AgAgAEEIaiAPNwIAC+AJAQ9/IwBB0ABrIgEkACABQcgAaiAAQShqKAIAIgY2AgAgAUFAayILIABBIGopAgA3AwAgAUE4aiAAQRhqKQIANwMAIAFBMGogAEEQaikCADcDACABQShqIABBCGopAgA3AwAgASAAKQIANwMgAkAgBkUEQAwBCyABKAIoIQcgASgCJCEIIAEtAEQhCiABQTRqKAIAIgUgAUEsaigCACIMSwRAIApFIAggASgCICIARnEEQAwCCyAHRQRADAILIAggAGshBCABLQBFRSEAA0AgAEEBcUUNAiADIARqQQFqIQNBACEAIAZBf2oiBg0ACwwBCyABQTxqKAIAIgkgC2pBf2ohDSAJQQRNBEAgAS0ARSECA0AgAkH/AXENAgJ/AkAgBSABKAIwIgJJDQADQCACIAdqIQ4gDS0AACEPAkACfyAFIAJrIgRBCE8EQCABQRhqIA8gDiAEEDEgASgCHCEAIAEoAhgMAQtBACEAQQAgBEUNABoDQEEBIA8gACAOai0AAEYNARogBCAAQQFqIgBHDQALIAQhAEEAC0EBRgRAIAEgACACakEBaiICNgIwIAIgCUkgAiAMS3INASAHIAIgCWsiAGogCyAJELgBDQEgASgCICEEIAEgAjYCICAAIARrIQBBAAwECyABIAU2AjAMAgsgBSACTw0ACwsgCkVBACABKAIgIgAgCEYbDQMgAUEBOgBFIAggAGshAEEBCyECIAdFBEBBACEDDAMLIAAgA2pBAWohAyAGQX9qIgYNAAsMAQsgAS0ARSEAAkACQCAKRUEAIAEoAiAiBCAIRhtFBEAgB0UNASAIIARrIQsgAEUhAANAIABBAXFFDQQCQCAFIAEoAjAiAkkNAANAIAIgB2ohCCANLQAAIQoCfyAFIAJrIgRBCE8EQCABQQhqIAogCCAEEDEgASgCDCEAIAEoAggMAQtBACEAQQAgBEUNABoDQEEBIAogACAIai0AAEYNARogBCAAQQFqIgBHDQALIAQhAEEAC0EBRgRAIAEgACACakEBaiICNgIwIAIgCU9BACACIAxNGw0GIAUgAkkNAgwBCwsgASAFNgIwCyABQQE6AEUgAyALakEBaiEDQQAhACAGQX9qIgYNAAsMAwsgAARADAMLIAUgASgCMCICSQRADAMLA0AgAiAHaiEDIA0tAAAhBgJ/IAUgAmsiBEEITwRAIAFBEGogBiADIAQQMSABKAIUIQAgASgCEAwBC0EAIQBBACAERQ0AGgNAQQEgBiAAIANqLQAARg0BGiAEIABBAWoiAEcNAAsgBCEAQQALQQFHBEBBACEDDAQLIAEgACACakEBaiICNgIwIAIgCU9BACACIAxNGw0CIAUgAk8NAAtBACEDDAILIAAEQAwCCyAFIAEoAjAiAkkEQAwCCyAFIAdqIQcCQANAIA0tAAAhAwJ/IAUgAmsiBEEITwRAIAEgAyACIAQQMSABKAIEIQAgASgCAAwBC0EAIQBBACAERQ0AGgNAQQEgAyAAIAJqLQAARg0BGiACIABBAWoiAGogB0cNAAsgBCEAQQALQQFHDQEgASAAIAJqQQFqIgI2AjAgAiAJT0EAIAIgDE0bDQIgBSACTw0AC0EAIQMMAgsgASAFNgIwQQAhAwwBCyAJQQQQtQEACyABQdAAaiQAIAMLzAkBBX8jAEEQayIGJAACQCADRQ0AAkACQAJAAkACQAJAAkACQCADLQAARQRAIAYgATYCACAGIAEgAmoiAzYCBCAGIAM2AgwgBiABNgIIIAYgBkEIaiAEG0EEQQUgBBsRAgBBdmoOBAIBAQMBCyAEDQcgAkUEQEEAIQIMCQsgASACaiEDAkADQAJAIAMiAkF/aiIDLQAAIgRBGHRBGHUiBUF/Sg0AIAVBP3ECfyACQX5qIgMtAAAiBEEYdEEYdSIHQUBOBEAgBEEfcQwBCyAHQT9xAn8gAkF9aiIDLQAAIgRBGHRBGHUiCEFATgRAIARBD3EMAQsgCEE/cSACQXxqIgMtAABBB3FBBnRyC0EGdHILQQZ0ciIEQYCAxABHDQBBACECDAsLIARBIEYgBEF3akEFSXJFBEAgBEGAAUkNAiAEECxFDQILIAEgA0cNAAtBACECDAkLIAIgAWshAgwIC0EAIQMgBEUNAgwEC0EBIQUgBA0CIAYoAgwiAyAGKAIIRgRAQX8hAwwCCyAGIANBf2oiBDYCDCAELQAAIgRBGHRBGHUiBUF/TARAIAYgA0F+aiIENgIMAn8gBC0AACIEQRh0QRh1IgdBQE4EQCAEQR9xDAELIAYgA0F9aiIENgIMIAdBP3ECfyAELQAAIgRBGHRBGHUiCEFATgRAIARBD3EMAQsgBiADQXxqIgM2AgwgCEE/cSADLQAAQQdxQQZ0cgtBBnRyCyEEQX8hAyAFQT9xIARBBnRyIgRBgIDEAEYNAgtBfkF/IARBDUYbIQMMAQtBfyEDIARFDQAgBigCACIDIAYoAgRGBEBBASEFDAILIAYgA0EBajYCAAJAIAMtAAAiBEEYdEEYdUF/Sg0AIAYgA0ECajYCACADLQABQT9xIQUgBEEfcSEHIARB3wFNBEAgB0EGdCAFciEEDAELIAYgA0EDajYCACADLQACQT9xIAVBBnRyIQggBEHwAUkEQCAIIAdBDHRyIQQMAQsgBiADQQRqNgIAQQEhBSAHQRJ0QYCA8ABxIAMtAANBP3EgCEEGdHJyIgRBgIDEAEYNAgtBAkEBIARBCkYbIQUMAQsgAiADaiIERQRAQQAhAgwFCwJAIAQgAk8EQCADDQEgBCECDAYLIAEgBGosAABBv39MDQAgBCECDAULIAEgAkEAIAQQewALIAUgAk8EQCAFIAIiA0YNAQwCCyABIAVqLAAAQb9/TA0BIAUhAwsgASADaiEBIAIgA2shAgwCCyABIAIgBSACEHsACwJAIAJFBEAMAQsgASACaiEJIAEhAwNAAkACfyADIgQsAAAiBUF/SgRAIAVB/wFxIQUgBEEBagwBCyAELQABQT9xIQggBUEfcSEDIAVBX00EQCADQQZ0IAhyIQUgBEECagwBCyAELQACQT9xIAhBBnRyIQggBUFwSQRAIAggA0EMdHIhBSAEQQNqDAELIANBEnRBgIDwAHEgBC0AA0E/cSAIQQZ0cnIiBUGAgMQARg0BIARBBGoLIQMgBUEgRiAFQXdqQQVJckUEQCAFQYABSQ0DIAUQLEUNAwsgByAEayADaiEHIAMgCUcNAQsLIAIhBwsgASAHaiEBIAIgB2shAgsgACACNgIEIAAgATYCACAGQRBqJAALyAsBCH8jAEHgAGsiAyQAIABCATcCACAAQQhqIgRBADYCACAAQQBBEBBBIAQoAgAiBSAAKAIAaiIGQdSDwAApAAA3AAAgBCAFQRBqNgIAIAZBCGpB3IPAACkAADcAACADQQE2AiwgAyABKAIIQShqIgU2AiggAyAANgIYIANB3ABqQQE2AgAgA0ICNwJMIANB8IPAADYCSCADIANBKGo2AlgCQAJAAkACQAJAAkAgA0EYakGYisAAIANByABqEB5FBEAgAigCACEIAkAgAigCCCIBRQ0AIAFBBHQhCkGQhMAAIQZBACEBQQAhBANAAn8gASAIaiIHQQRqIgkgBygCAEUNABoCQCAERQ0AIANBEGogBCgCACAEKAIEQQAgBiAGLQAAQQJGG0EBEBAgA0EIaiADKAIQIAMoAhRBACAHQQ1qIgQgBC0AAEECRhtBABAQIANBGGogAygCCCADKAIMEBIgA0EBNgI0IANBATYCLCADIAU2AiggAyADQRhqNgIwIAMgADYCRCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0HEAGpBmIrAACADQcgAahAeDQUgAygCHEUNACADKAIYEBULIAdBDmohBgJAIAdBDGotAABFBEAgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQfSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcgA0ECNgI0IANBoIXAADYCMCADQQE2AiwgAyAFNgIoIAMgADYCGCADQQI2AlwgA0IDNwJMIANBmITAADYCSCADIANBKGo2AlggA0EYakGYisAAIANByABqEB5FDQFBq4HAAEErIANByABqQdiBwABBqIXAABBSAAsgA0ECNgIsIAMgCTYCKCADIAA2AhggA0EBNgJcIANCAjcCTCADQcSEwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQcLQQALIQQgCiABQRBqIgFHDQALIARFDQAgAyAEKAIAIAQoAgRBACAGIAYtAABBAkYbQQEQECADQRhqIAMoAgAgAygCBBASIANBNGpBATYCACADQQE2AiwgAyAFNgIoIAMgA0EYajYCMCADIAA2AkQgA0HcAGpBAjYCACADQgM3AkwgA0GYhMAANgJIIAMgA0EoajYCWCADQcQAakGYisAAIANByABqEB4NBSADKAIcRQ0AIAMoAhgQFQsgAEEEaigCACAAQQhqIgQoAgAiAWtBJ00EQCAAIAFBKBBBIAQoAgAhAQsgBCABQShqNgIAIAAoAgAgAWoiAUHIhcAAKQAANwAAIAFBCGpB0IXAACkAADcAACABQRBqQdiFwAApAAA3AAAgAUEYakHghcAAKQAANwAAIAFBIGpB6IXAACkAADcAACADQTxqQQI2AgAgA0E0akEBNgIAIANBoIXAADYCOCADIAU2AjAgA0EBNgIsIAMgBTYCKCADIAA2AhggA0HcAGoiAUEDNgIAIANCBDcCTCADQZiGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQUgA0EBNgIsIAMgBTYCKCADIAA2AhggAUEBNgIAIANCAjcCTCADQdCGwAA2AkggAyADQShqNgJYIANBGGpBmIrAACADQcgAahAeDQYgAkEEaigCAARAIAgQFQsgA0HgAGokAA8LQauBwABBKyADQcgAakHYgcAAQYCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbCEwAAQUgALQauBwABBKyADQcgAakHYgcAAQYSFwAAQUgALQauBwABBKyADQcgAakHYgcAAQdSEwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiFwAAQUgALQauBwABBKyADQcgAakHYgcAAQbiGwAAQUgALQauBwABBKyADQcgAakHYgcAAQeCGwAAQUgAL7QkCCH8GfiMAQdAAayIDJAACQAJAAkAQVCIEBEAgA0EgakIANwMAIANBHGpBkIrAADYCACAEIAQpAwAiC0IBfDcDACADQQA2AhggAyALNwMIIAMgBEEIaikDADcDECADQqeAgIDwBDcDSCADQo2AgICgDjcDQCADQoqAgIDgDTcDOCADQtyAgIDACzcDMCADQQhqIANBMGoQGSADQQA2AjggA0IENwMwIAJFBEAgAEEANgIIIABCATcCAEEEIQRBBCEBDAQLIAEgAmohCEEAIQIDQAJ/IAEsAAAiBEF/SgRAIARB/wFxIQQgAUEBagwBCyABLQABQT9xIQUgBEEfcSEGIARBX00EQCAGQQZ0IAVyIQQgAUECagwBCyABLQACQT9xIAVBBnRyIQUgBEFwSQRAIAUgBkEMdHIhBCABQQNqDAELIAZBEnRBgIDwAHEgAS0AA0E/cSAFQQZ0cnIiBEGAgMQARg0EIAFBBGoLIQEgAyAENgIsAkAgA0EIaiADQSxqECJFBEAgAygCLCECIAMoAjgiBCADKAI0RgRAIANBMGogBBA+IAMoAjghBAsgAygCMCAEQQJ0aiACNgIADAELIAMoAjgiBCADKAI0RgRAIANBMGogBBA+IAMoAjghBAsgAygCMCAEQQJ0akHcADYCACADIAMoAjhBAWoiAjYCOCADKAIkRQ0DIAMoAhgiBiADKQMQIgsgAygCLCIJrUKAgICAgICAgASEIgyFQvPK0cunjNmy9ACFIg1CEIkgDSADKQMIIg5C4eSV89bs2bzsAIV8Ig2FIg8gC0Lt3pHzlszct+QAhSILIA5C9crNg9es27fzAIV8Ig5CIIl8IhAgDIUgDSALQg2JIA6FIgt8IgwgC0IRiYUiC3wiDSALQg2JhSILIA9CFYkgEIUiDiAMQiCJQv8BhXwiDHwiDyALQhGJhSILQg2JIAsgDkIQiSAMhSIMIA1CIIl8Ig18IguFIg5CEYkgDiAMQhWJIA2FIgwgD0IgiXwiDXwiDoUiD0INiSAPIAxCEIkgDYUiDCALQiCJfCILfIUiDSAMQhWJIAuFIgsgDkIgiXwiDHwiDiALQhCJIAyFQhWJhSANQhGJhSAOQiCIhSILp3EhBCALQhmIQv8Ag0KBgoSIkKDAgAF+IQ1BACEFIAMoAhwhBwNAIAQgB2opAAAiDCANhSILQn+FIAtC//379+/fv/9+fINCgIGChIiQoMCAf4MhCwNAIAtQBEAgDCAMQgGGg0KAgYKEiJCgwIB/g1BFDQYgBCAFQQhqIgVqIAZxIQQMAgsgC3ohDiALQn98IAuDIQsgByAOp0EDdiAEaiAGcUEDdGsiCkF4aigCACAJRw0ACwsgCkF8aigCACEEIAMoAjQgAkYEQCADQTBqIAIQPiADKAI4IQILIAMoAjAgAkECdGogBDYCAAsgAyADKAI4QQFqIgI2AjggASAIRw0ACwwCC0GwisAAQcYAIANBMGpB2IvAAEHIi8AAEFIAC0GAgcAAQZSDwAAQbwALIABBADYCCCAAQgE3AgAgAygCMCIBIAJBAnRqIQQgAkUNACAAQQAgAhBBCyABIAQgABAoIAMoAjQEQCADKAIwEBULAkAgAygCGCIARQ0AIAAgAEEDdEEIaiIBakEJakUNACADKAIcIAFrEBULIANB0ABqJAALmAkBBX8jAEHwAGsiBCQAIAQgAzYCDCAEIAI2AggCQAJAAkACQAJAIAQCfwJAIAFBgQJPBEACf0GAAiAALACAAkG/f0oNABpB/wEgACwA/wFBv39KDQAaQf4BIAAsAP4BQb9/Sg0AGkH9AQsiBSABSQ0BIAEgBUcNAwsgBCABNgIUIAQgADYCEEGAk8AAIQZBAAwBCyAEIAU2AhQgBCAANgIQQcOYwAAhBkEFCzYCHCAEIAY2AhggAiABSyIFIAMgAUtyDQEgAiADTQRAAkACQCACRQ0AIAIgAU8EQCABIAJGDQEMAgsgACACaiwAAEFASA0BCyADIQILIAQgAjYCICACIAEiA0kEQCACQQFqIgVBACACQX1qIgMgAyACSxsiA0kNBAJAIAMgBUYNACAAIAVqIAAgA2oiB2shBSAAIAJqIggsAABBv39KBEAgBUF/aiEGDAELIAIgA0YNACAIQX9qIgIsAABBv39KBEAgBUF+aiEGDAELIAIgB0YNACAIQX5qIgIsAABBv39KBEAgBUF9aiEGDAELIAIgB0YNACAIQX1qIgIsAABBv39KBEAgBUF8aiEGDAELIAIgB0YNACAFQXtqIQYLIAMgBmohAwsCQCADRQ0AIAMgAU8EQCABIANGDQEMBwsgACADaiwAAEG/f0wNBgsgASADRg0EAn8CQAJAIAAgA2oiASwAACIAQX9MBEAgAS0AAUE/cSEFIABBH3EhAiAAQV9LDQEgAkEGdCAFciECDAILIAQgAEH/AXE2AiRBAQwCCyABLQACQT9xIAVBBnRyIQUgAEFwSQRAIAUgAkEMdHIhAgwBCyACQRJ0QYCA8ABxIAEtAANBP3EgBUEGdHJyIgJBgIDEAEYNBgsgBCACNgIkQQEgAkGAAUkNABpBAiACQYAQSQ0AGkEDQQQgAkGAgARJGwshASAEIAM2AiggBCABIANqNgIsIARBxABqQQU2AgAgBEHsAGpBNDYCACAEQeQAakE0NgIAIARB3ABqQTU2AgAgBEHUAGpBNjYCACAEQgU3AjQgBEGsmsAANgIwIARBAzYCTCAEIARByABqNgJAIAQgBEEYajYCaCAEIARBEGo2AmAgBCAEQShqNgJYIAQgBEEkajYCUCAEIARBIGo2AkggBEEwakHUmsAAEHQACyAEQeQAakE0NgIAIARB3ABqQTQ2AgAgBEHUAGpBAzYCACAEQcQAakEENgIAIARCBDcCNCAEQbiZwAA2AjAgBEEDNgJMIAQgBEHIAGo2AkAgBCAEQRhqNgJgIAQgBEEQajYCWCAEIARBDGo2AlAgBCAEQQhqNgJIIARBMGpB2JnAABB0AAsgACABQQAgBRB7AAsgBCACIAMgBRs2AiggBEHEAGpBAzYCACAEQdwAakE0NgIAIARB1ABqQTQ2AgAgBEIDNwI0IARB7JjAADYCMCAEQQM2AkwgBCAEQcgAajYCQCAEIARBGGo2AlggBCAEQRBqNgJQIAQgBEEoajYCSCAEQTBqQYSZwAAQdAALIAMgBRC2AQALQdCTwABB6JnAABBvAAsgACABIAMgARB7AAv/BwEIfwJAAkAgAEEDakF8cSICIABrIgMgAUsgA0EES3INACABIANrIgZBBEkNACAGQQNxIQdBACEBAkAgA0UNACADQQNxIQgCQCACIABBf3NqQQNJBEAgACECDAELIANBfHEhBCAAIQIDQCABIAIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEBIAJBBGohAiAEQXxqIgQNAAsLIAhFDQADQCABIAIsAABBv39KaiEBIAJBAWohAiAIQX9qIggNAAsLIAAgA2ohAAJAIAdFDQAgACAGQXxxaiICLAAAQb9/SiEFIAdBAUYNACAFIAIsAAFBv39KaiEFIAdBAkYNACAFIAIsAAJBv39KaiEFCyAGQQJ2IQMgASAFaiEEA0AgACEBIANFDQIgA0HAASADQcABSRsiBUEDcSEGIAVBAnQhBwJAIAVB/AFxIghBAnQiAEUEQEEAIQIMAQsgACABaiEJQQAhAiABIQADQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAEEEaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiAAQQhqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIABBDGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQRBqIgAgCUcNAAsLIAEgB2ohACADIAVrIQMgAkEIdkH/gfwHcSACQf+B/AdxakGBgARsQRB2IARqIQQgBkUNAAsgASAIQQJ0aiEAIAZB/////wNqIgNB/////wNxIgFBAWoiAkEDcQJAIAFBA0kEQEEAIQIMAQsgAkH8////B3EhAUEAIQIDQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAEEEaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiAAQQhqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIABBDGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQRBqIQAgAUF8aiIBDQALCwRAIANBgYCAgHxqIQEDQCACIAAoAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWohAiAAQQRqIQAgAUF/aiIBDQALCyACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgBGoPCyABRQRAQQAPCyABQQNxIQICQCABQX9qQQNJBEAMAQsgAUF8cSEBA0AgBCAALAAAQb9/SmogAEEBaiwAAEG/f0pqIABBAmosAABBv39KaiAAQQNqLAAAQb9/SmohBCAAQQRqIQAgAUF8aiIBDQALCyACRQ0AA0AgBCAALAAAQb9/SmohBCAAQQFqIQAgAkF/aiICDQALCyAEC4cHAQV/IAAQvQEiACAAEK8BIgIQugEhAQJAAkACQCAAELABDQAgACgCACEDAkAgABClAUUEQCACIANqIQIgACADELsBIgBBwLHAACgCAEcNASABKAIEQQNxQQNHDQJBuLHAACACNgIAIAAgAiABEIYBDwsgAiADakEQaiEADAILIANBgAJPBEAgABA1DAELIABBDGooAgAiBCAAQQhqKAIAIgVHBEAgBSAENgIMIAQgBTYCCAwBC0GorsAAQaiuwAAoAgBBfiADQQN2d3E2AgALAkAgARCiAQRAIAAgAiABEIYBDAELAkACQAJAQcSxwAAoAgAgAUcEQCABQcCxwAAoAgBHDQFBwLHAACAANgIAQbixwABBuLHAACgCACACaiIBNgIAIAAgARCUAQ8LQcSxwAAgADYCAEG8scAAQbyxwAAoAgAgAmoiATYCACAAIAFBAXI2AgQgAEHAscAAKAIARg0BDAILIAEQrwEiAyACaiECAkAgA0GAAk8EQCABEDUMAQsgAUEMaigCACIEIAFBCGooAgAiAUcEQCABIAQ2AgwgBCABNgIIDAELQaiuwABBqK7AACgCAEF+IANBA3Z3cTYCAAsgACACEJQBIABBwLHAACgCAEcNAkG4scAAIAI2AgAMAwtBuLHAAEEANgIAQcCxwABBADYCAAtB4LHAACgCACABTw0BQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiIAQQBBEEEIEJcBQQJ0ayIBIAEgAEsbRQ0BQcSxwAAoAgBFDQFBCEEIEJcBIQBBFEEIEJcBIQFBEEEIEJcBIQJBAAJAQbyxwAAoAgAiBCACIAEgAEEIa2pqIgJNDQBBxLHAACgCACEBQdCxwAAhAAJAA0AgACgCACABTQRAIAAQpwEgAUsNAgsgACgCCCIADQALQQAhAAsgABCxAQ0AIABBDGooAgAaDAALQQAQN2tHDQFBvLHAACgCAEHgscAAKAIATQ0BQeCxwABBfzYCAA8LIAJBgAJJDQEgACACEDRB6LHAAEHoscAAKAIAQX9qIgA2AgAgAA0AEDcaDwsPCyACQQN2IgNBA3RBsK7AAGohAQJ/QaiuwAAoAgAiAkEBIAN0IgNxBEAgASgCCAwBC0GorsAAIAIgA3I2AgAgAQshAyABIAA2AgggAyAANgIMIAAgATYCDCAAIAM2AggL8gYBBn8CQAJAAkACQAJAIAAoAggiCEEBR0EAIAAoAhAiBEEBRxtFBEAgBEEBRw0DIAEgAmohByAAQRRqKAIAIgYNASABIQQMAgsgACgCGCABIAIgAEEcaigCACgCDBEDACEDDAMLIAEhBANAIAQiAyAHRg0CAn8gA0EBaiADLAAAIgRBf0oNABogA0ECaiAEQWBJDQAaIANBA2ogBEFwSQ0AGiAEQf8BcUESdEGAgPAAcSADLQADQT9xIAMtAAJBP3FBBnQgAy0AAUE/cUEMdHJyckGAgMQARg0DIANBBGoLIgQgBSADa2ohBSAGQX9qIgYNAAsLIAQgB0YNACAELAAAIgNBf0ogA0FgSXIgA0FwSXJFBEAgA0H/AXFBEnRBgIDwAHEgBC0AA0E/cSAELQACQT9xQQZ0IAQtAAFBP3FBDHRycnJBgIDEAEYNAQsCQAJAIAVFBEBBACEEDAELIAUgAk8EQEEAIQMgBSACIgRGDQEMAgtBACEDIAUiBCABaiwAAEFASA0BCyAEIQUgASEDCyAFIAIgAxshAiADIAEgAxshAQsgCEUNASAAQQxqKAIAIQcCQCACQRBPBEAgASACEBQhBAwBCyACRQRAQQAhBAwBCyACQQNxIQUCQCACQX9qQQNJBEBBACEEIAEhAwwBCyACQXxxIQZBACEEIAEhAwNAIAQgAywAAEG/f0pqIANBAWosAABBv39KaiADQQJqLAAAQb9/SmogA0EDaiwAAEG/f0pqIQQgA0EEaiEDIAZBfGoiBg0ACwsgBUUNAANAIAQgAywAAEG/f0pqIQQgA0EBaiEDIAVBf2oiBQ0ACwsgByAESwRAQQAhAyAHIARrIgQhBgJAAkACQEEAIAAtACAiBSAFQQNGG0EDcUEBaw4CAAECC0EAIQYgBCEDDAELIARBAXYhAyAEQQFqQQF2IQYLIANBAWohAyAAQRxqKAIAIQQgACgCBCEFIAAoAhghAAJAA0AgA0F/aiIDRQ0BIAAgBSAEKAIQEQEARQ0AC0EBDwtBASEDIAVBgIDEAEYNASAAIAEgAiAEKAIMEQMADQFBACEDA0AgAyAGRgRAQQAPCyADQQFqIQMgACAFIAQoAhARAQBFDQALIANBf2ogBkkPCwwBCyADDwsgACgCGCABIAIgAEEcaigCACgCDBEDAAv+BgEGf0ErQYCAxAAgACgCACIFQQFxIgYbIQogBCAGaiEHAkAgBUEEcUUEQEEAIQEMAQsCQCACQRBPBEAgASACEBQhCAwBCyACRQ0AIAJBA3EhBgJAIAJBf2pBA0kEQCABIQUMAQsgAkF8cSEJIAEhBQNAIAggBSwAAEG/f0pqIAVBAWosAABBv39KaiAFQQJqLAAAQb9/SmogBUEDaiwAAEG/f0pqIQggBUEEaiEFIAlBfGoiCQ0ACwsgBkUNAANAIAggBSwAAEG/f0pqIQggBUEBaiEFIAZBf2oiBg0ACwsgByAIaiEHCwJAAkAgACgCCEUEQEEBIQUgACAKIAEgAhBuDQEMAgsCQAJAAkACQCAAQQxqKAIAIgYgB0sEQCAALQAAQQhxDQRBACEFIAYgB2siBiEHQQEgAC0AICIIIAhBA0YbQQNxQQFrDgIBAgMLQQEhBSAAIAogASACEG4NBAwFC0EAIQcgBiEFDAELIAZBAXYhBSAGQQFqQQF2IQcLIAVBAWohBSAAQRxqKAIAIQggACgCBCEGIAAoAhghCQJAA0AgBUF/aiIFRQ0BIAkgBiAIKAIQEQEARQ0AC0EBDwtBASEFIAZBgIDEAEYNASAAIAogASACEG4NASAAKAIYIAMgBCAAKAIcKAIMEQMADQEgACgCHCEBIAAoAhghAEEAIQUCfwNAIAcgBSAHRg0BGiAFQQFqIQUgACAGIAEoAhARAQBFDQALIAVBf2oLIAdJIQUMAQsgACgCBCEIIABBMDYCBCAALQAgIQlBASEFIABBAToAICAAIAogASACEG4NAEEAIQUgBiAHayIBIQICQAJAAkBBASAALQAgIgYgBkEDRhtBA3FBAWsOAgABAgtBACECIAEhBQwBCyABQQF2IQUgAUEBakEBdiECCyAFQQFqIQUgAEEcaigCACEGIAAoAgQhASAAKAIYIQcCQANAIAVBf2oiBUUNASAHIAEgBigCEBEBAEUNAAtBAQ8LQQEhBSABQYCAxABGDQAgACgCGCADIAQgACgCHCgCDBEDAA0AIAAoAhwhAyAAKAIYIQRBACEGAkADQCACIAZGDQEgBkEBaiEGIAQgASADKAIQEQEARQ0ACyAGQX9qIAJJDQELIAAgCToAICAAIAg2AgRBAA8LIAUPCyAAKAIYIAMgBCAAQRxqKAIAKAIMEQMAC4MHAQZ/AkACQAJAIAJBCU8EQCADIAIQJyICDQFBAA8LQQAhAkGAgHxBCEEIEJcBQRRBCBCXAWpBEEEIEJcBamtBd3FBfWoiAUEAQRBBCBCXAUECdGsiBSAFIAFLGyADTQ0BQRAgA0EEakEQQQgQlwFBe2ogA0sbQQgQlwEhBSAAEL0BIgEgARCvASIGELoBIQQCQAJAAkACQAJAAkACQCABEKUBRQRAIAYgBU8NASAEQcSxwAAoAgBGDQIgBEHAscAAKAIARg0DIAQQogENByAEEK8BIgcgBmoiCCAFSQ0HIAggBWshBiAHQYACSQ0EIAQQNQwFCyABEK8BIQQgBUGAAkkNBiAEIAVBBGpPQQAgBCAFa0GBgAhJGw0FIAEoAgAiBiAEakEQaiEHIAVBH2pBgIAEEJcBIQRBACIFRQ0GIAUgBmoiASAEIAZrIgBBcGoiAjYCBCABIAIQugFBBzYCBCABIABBdGoQugFBADYCBEHIscAAQcixwAAoAgAgBCAHa2oiADYCAEHkscAAQeSxwAAoAgAiAiAFIAUgAksbNgIAQcyxwABBzLHAACgCACICIAAgAiAASxs2AgAMCQsgBiAFayIEQRBBCBCXAUkNBCABIAUQugEhBiABIAUQggEgBiAEEIIBIAYgBBAhDAQLQbyxwAAoAgAgBmoiBiAFTQ0EIAEgBRC6ASEEIAEgBRCCASAEIAYgBWsiBUEBcjYCBEG8scAAIAU2AgBBxLHAACAENgIADAMLQbixwAAoAgAgBmoiBiAFSQ0DAkAgBiAFayIEQRBBCBCXAUkEQCABIAYQggFBACEEQQAhBgwBCyABIAUQugEiBiAEELoBIQcgASAFEIIBIAYgBBCUASAHIAcoAgRBfnE2AgQLQcCxwAAgBjYCAEG4scAAIAQ2AgAMAgsgBEEMaigCACIJIARBCGooAgAiBEcEQCAEIAk2AgwgCSAENgIIDAELQaiuwABBqK7AACgCAEF+IAdBA3Z3cTYCAAsgBkEQQQgQlwFPBEAgASAFELoBIQQgASAFEIIBIAQgBhCCASAEIAYQIQwBCyABIAgQggELIAENAwsgAxALIgVFDQEgBSAAIAMgARCvAUF4QXwgARClARtqIgEgASADSxsQuQEgABAVDwsgAiAAIAMgASABIANLGxC5ARogABAVCyACDwsgARClARogARC8AQvbBQIKfwd+IwBBMGsiAiQAIABBGGooAgBBAkEEIABBHGooAgAbIgNJBEAgAiAAQRBqIAMgABAMCyACQSBqIAFBGGopAgA3AwAgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACQoCAgIDAADcDKCACIAEpAgA3AwggAEEQaiEJQQAhAyAAQRRqIQoDQCAAKAIQIgQgAkEIaiADQQN0aikCACIQQv////8PgyIMIABBCGopAwAiDYVC88rRy6eM2bLwAIUiDkIQiSAOIAApAwAiD0Lh5JXz1uzZvOwAhXwiDoUiESANQu3ekfOWzNy35ACFIg0gD0L1ys2D16zbt/MAhXwiD0IgiXwiEiAMQoCAgICAgICABISFIA4gDUINiSAPhSIMfCINIAxCEYmFIgx8Ig4gDEINiYUiDCARQhWJIBKFIg8gDUIgiUL/AYV8Ig18IhEgDEIRiYUiDEINiSAMIA9CEIkgDYUiDSAOQiCJfCIOfCIMhSIPQhGJIA8gDUIViSAOhSINIBFCIIl8Ig58Ig+FIhFCDYkgESANQhCJIA6FIg0gDEIgiXwiDHyFIg4gDUIViSAMhSIMIA9CIIl8Ig18Ig8gDEIQiSANhUIViYUgDkIRiYUgD0IgiYUiDKdxIQEgDEIZiEL/AINCgYKEiJCgwIABfiEOIANBAWohAyAKKAIAIQUgEKchBiAQQiCIpyEHQQAhCAJAAkADQCABIAVqKQAAIg0gDoUiEEJ/hSAQQv/9+/fv37//fnyDQoCBgoSIkKDAgH+DIRADQCAQUARAIA0gDUIBhoNCgIGChIiQoMCAf4NQRQ0DIAEgCEEIaiIIaiAEcSEBDAILIBB6IQ8gEEJ/fCAQgyEQIAUgD6dBA3YgAWogBHFBA3RrIgtBeGooAgAgBkcNAAsLIAtBfGogBzYCAAwBCyAJIAwgBiAHIAAQJgsgA0EERw0ACyACQTBqJAALmAUBB38CQAJ/AkAgACABayACSQRAIAEgAmohBSAAIAJqIQMgACACQQ9NDQIaIANBfHEhAEEAIANBA3EiBmshByAGBEAgASACakF/aiEEA0AgA0F/aiIDIAQtAAA6AAAgBEF/aiEEIAAgA0kNAAsLIAAgAiAGayIGQXxxIgJrIQNBACACayECIAUgB2oiBUEDcQRAIAJBf0oNAiAFQQN0IgRBGHEhByAFQXxxIghBfGohAUEAIARrQRhxIQkgCCgCACEEA0AgAEF8aiIAIAQgCXQgASgCACIEIAd2cjYCACABQXxqIQEgACADSw0ACwwCCyACQX9KDQEgASAGakF8aiEBA0AgAEF8aiIAIAEoAgA2AgAgAUF8aiEBIAAgA0sNAAsMAQsCQCACQQ9NBEAgACEDDAELIABBACAAa0EDcSIFaiEEIAUEQCAAIQMgASEAA0AgAyAALQAAOgAAIABBAWohACADQQFqIgMgBEkNAAsLIAQgAiAFayICQXxxIgZqIQMCQCABIAVqIgVBA3EEQCAGQQFIDQEgBUEDdCIAQRhxIQcgBUF8cSIIQQRqIQFBACAAa0EYcSEJIAgoAgAhAANAIAQgACAHdiABKAIAIgAgCXRyNgIAIAFBBGohASAEQQRqIgQgA0kNAAsMAQsgBkEBSA0AIAUhAQNAIAQgASgCADYCACABQQRqIQEgBEEEaiIEIANJDQALCyACQQNxIQIgBSAGaiEBCyACRQ0CIAIgA2ohAANAIAMgAS0AADoAACABQQFqIQEgA0EBaiIDIABJDQALDAILIAZBA3EiAEUNASACIAVqIQUgAyAAawshACAFQX9qIQEDQCADQX9qIgMgAS0AADoAACABQX9qIQEgACADSQ0ACwsLwwUCAX8CfiMAQfAAayIFJAAgBSADNgIkIAUgAjYCICAFIAFBBGo2AiggBUHQAGogBUEgahANIAVB0ABqQQRyIQICQAJAAkAgBSgCUEUEQCAFQThqIAJBCGooAgAiAzYCACAFIAIpAgAiBjcDMCAFQdgAaiADNgIAIAUgBjcDUCAFQUBrIAVBIGogBUHQAGoQESAFQSE2AmQgBUGwh8AAQQIQATYCaCAFIAUoAkAiAiAFKAJIEAE2AmwgBUEYaiABIAVB5ABqIAVB6ABqIAVB7ABqEGYgBSgCHCEBAkAgBSgCGEUEQCAFKAJsIgNBJE8EQCADEAALIAUoAmgiA0EkTwRAIAMQAAsgBSgCZCIDQSRPBEAgAxAACyAFIAE2AmwgBUEhNgJQIAVBCGogBUHsAGogBUHQAGogBBBpIAUoAgwhASAFKAIIRQ0DIABCgYCAgBA3AgAgAUEkTwRAIAEQAAsgBSgCUCIAQSRPBEAgABAACyAFKAJsIgBBJEkNASAAEAAMAQsgBSABNgJQIAVBEGogBUHQAGooAgAQBSIBEAIgBSgCECIERQ0DIAUoAhQhAyABQSNLBEAgARAACyAAQgE3AgAgAEEQaiADNgIAIABBDGogAzYCACAAQQhqIAQ2AgAgBSgCUCIAQSRPBEAgABAACyAFKAJsIgBBJE8EQCAAEAALIAUoAmgiAEEkTwRAIAAQAAsgBSgCZCIAQSRJDQAgABAACyAFKAJERQ0DIAIQFQwDCyAFQcgAaiACQQhqKQIAIgY3AwAgBSACKQIAIgc3A0AgAEEMaiAGNwIAIAAgBzcCBCAAQQE2AgAMAgsgBSgCUCIDQSRPBEAgAxAACyAAQQA2AgAgACABNgIEIAUoAmwiAEEkTwRAIAAQAAsgBSgCREUNASACEBUMAQtBgIHAAEG0h8AAEG8ACyAFQfAAaiQAC6wFAQN/IwBBgAFrIgUkACAFQfAAakEKNgIAIAVB6ABqQoqAgIAQNwMAIAVB5ABqIAI2AgAgBUHgAGpBADYCACAFQdwAaiACNgIAIAUgAzYCeCAFQQA7AXQgBSABNgJYIAUgAjYCVCAFQQA2AlACQCADBEAgBUEANgJ4IANBf2oiBgRAA0AgBUEQaiAFQdAAahAdIAUoAhBFDQMgBkF/aiIGDQALCyAFQQhqIAVB0ABqEB0gBSgCCEUNAQsgBSAFQdAAahAdIAUoAgAiBkUNACAFKAIEIQcgBSAGNgIYIAUgBzYCHCAFQfAAakEKNgIAIAVB6ABqQoqAgIAQNwMAIAVB5ABqIAI2AgBBACEHIAVB4ABqQQA2AgAgBUHcAGogAjYCACAFIAM2AnggBUEBOwF0IAUgATYCWCAFIAI2AlQgBUEANgJQIAUgBCAFQdAAahAPayIBNgIkIAVBADYCMCAFQgE3AygCQCABQX9qIgIEQCAFQShqQQAgAhBBIAUoAjAhBgNAIAUoAiwgBkYEfyAFQShqIAYQQCAFKAIwBSAGCyAFKAIoakEgOgAAIAUgBSgCMEEBaiIGNgIwIAJBf2oiAg0ACyAFKAIsIgcgBkcNAQsgBUEoaiAHQQEQQSAFKAIwIQYLIAUoAiggBmpB3gA6AAAgBSAGQQFqNgIwIAVB7ABqQQE2AgAgBUHkAGpBAjYCACAFQdwAakEDNgIAIAVBAzYCVCAFIANBAWo2AjQgBSAFQShqNgJoIAUgBUEYajYCYCAFIAVBJGo2AlggBSAFQTRqNgJQIAVBzABqQQQ2AgAgBUIENwI8IAVBxILAADYCOCAFIAVB0ABqNgJIIAAgBUE4ahAjIAUoAiwEQCAFKAIoEBULIAVBgAFqJAAPC0GAgcAAQaSCwAAQbwALwAQBDX8jAEEQayIFJAACQCABLQAlDQAgASgCCCEIAn8CQCABQRRqKAIAIgYgAUEQaigCACIDSQ0AIAYgAUEMaigCACIMSw0AIAFBHGooAgAiByABQSBqIg5qQX9qIQ0CQCAHQQRNBEADQCADIAhqIQkgDS0AACEKAn8gBiADayIEQQhPBEAgBUEIaiAKIAkgBBAxIAUoAgwhAiAFKAIIDAELQQAhAkEAIARFDQAaA0BBASAKIAIgCWotAABGDQEaIAQgAkEBaiICRw0ACyAEIQJBAAtBAUcNAiABIAIgA2pBAWoiAzYCEAJAIAMgB0kgAyAMS3INACAIIAMgB2siBGogDiAHELgBDQAgASgCACECIAEgAzYCACAEIAJrDAULIAYgA08NAAwDCwALA0AgAyAIaiEJIA0tAAAhCgJ/IAYgA2siBEEITwRAIAUgCiAJIAQQMSAFKAIEIQIgBSgCAAwBC0EAIQJBACAERQ0AGgNAQQEgCiACIAlqLQAARg0BGiAEIAJBAWoiAkcNAAsgBCECQQALQQFHDQEgASACIANqQQFqIgM2AhAgAyAHT0EAIAMgDE0bRQRAIAYgA08NAQwDCwsgB0EEELUBAAsgASAGNgIQCyABLQAkIAEoAgAiAiABKAIEIgRHckUNASABQQE6ACUgBCACawshAyAIRQ0AIAIgCGohCyADRQRAQQAhAgwBCyADQX9qIgEgAyABIAtqLQAAQQ1GGyECCyAAIAI2AgQgACALNgIAIAVBEGokAAv+BAEKfyMAQTBrIgMkACADQSRqIAE2AgAgA0EDOgAoIANCgICAgIAENwMIIAMgADYCICADQQA2AhggA0EANgIQAkACQAJAIAIoAggiCkUEQCACQRRqKAIAIgRFDQEgAigCACEBIAIoAhAhACAEQX9qQf////8BcUEBaiIHIQQDQCABQQRqKAIAIgUEQCADKAIgIAEoAgAgBSADKAIkKAIMEQMADQQLIAAoAgAgA0EIaiAAQQRqKAIAEQEADQMgAEEIaiEAIAFBCGohASAEQX9qIgQNAAsMAQsgAkEMaigCACIARQ0AIABBBXQhCyAAQX9qQf///z9xQQFqIQcgAigCACEBA0AgAUEEaigCACIABEAgAygCICABKAIAIAAgAygCJCgCDBEDAA0DCyADIAQgCmoiBUEcai0AADoAKCADIAVBBGopAgBCIIk3AwggBUEYaigCACEGIAIoAhAhCEEAIQlBACEAAkACQAJAIAVBFGooAgBBAWsOAgACAQsgBkEDdCAIaiIMKAIEQTdHDQEgDCgCACgCACEGC0EBIQALIAMgBjYCFCADIAA2AhAgBUEQaigCACEAAkACQAJAIAVBDGooAgBBAWsOAgACAQsgAEEDdCAIaiIGKAIEQTdHDQEgBigCACgCACEAC0EBIQkLIAMgADYCHCADIAk2AhggCCAFKAIAQQN0aiIAKAIAIANBCGogACgCBBEBAA0CIAFBCGohASALIARBIGoiBEcNAAsLQQAhACAHIAIoAgRJIgFFDQEgAygCICACKAIAIAdBA3RqQQAgARsiASgCACABKAIEIAMoAiQoAgwRAwBFDQELQQEhAAsgA0EwaiQAIAALwgQBCH8jAEHQAGsiBCQAIARBEGogASACIAMoAgAgA0EIaigCABAOAkACQAJAAkACQAJAIAQoAhBFBEAgBEEeai0AAA0EIARBxABqKAIAIQYgBCgCQCEHIARBHGotAABFIQggBCgCFCEDA0ACQCADRQ0AIAYgA00EQCADIAZGDQEMCQsgAyAHaiwAAEFASA0ICyADIAZGDQICfyADIAdqIgksAAAiBUF/TARAIAktAAFBP3EiCiAFQR9xIgtBBnRyIAVBYEkNARogCS0AAkE/cSAKQQZ0ciIKIAtBDHRyIAVBcEkNARogC0ESdEGAgPAAcSAJLQADQT9xIApBBnRycgwBCyAFQf8BcQshBSAIRQRAIAMhBgwECyAFQYCAxABGDQQCf0EBIAVBgAFJDQAaQQIgBUGAEEkNABpBA0EEIAVBgIAESRsLIANqIQNBACEIDAALAAsgBEEYaiEDIARBzABqKAIAIQYgBEHEAGooAgAhBSAEKAJIIQcgBCgCQCEIIARBNGooAgBBf0cEQCAEIAMgCCAFIAcgBkEAECQMBQsgBCADIAggBSAHIAZBARAkDAQLIAgNAQsgBEEIaiAGNgIAIAQgBjYCBCAEQQE2AgAMAgsgBEEBOgAeCyAEQQA2AgALAkAgBCgCAARAIAQoAgQhAyAAQQxqIAIgBEEIaigCACICazYCACAAQQhqIAEgAmo2AgAgACADNgIEIAAgATYCAAwBCyAAQQA2AgALIARB0ABqJAAPCyAHIAYgAyAGEHsAC5QEAQ1/IwBBsAFrIgEkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAUGIAWoiAiAAQRBqKQIANwMAIAFBgAFqIgMgAEEIaikCADcDACABQZABaiIEIABBGGopAgA3AwAgAUGYAWoiBSAAQSBqKQIANwMAIAFBoAFqIgYgAEEoaikCADcDACABQagBaiIHIABBMGopAgA3AwAgAUEQaiIIIAFBhAFqKQIANwMAIAFBGGoiCSABQYwBaikCADcDACABQSBqIgogAUGUAWopAgA3AwAgAUEoaiILIAFBnAFqKQIANwMAIAFBMGoiDCABQaQBaikCADcDACABQThqIg0gAUGsAWooAgA2AgAgASAAKQIANwN4IAEgASkCfDcDCCAAEBUgAUHwAGogDSgCADYCACABQegAaiAMKQMANwMAIAFB4ABqIAspAwA3AwAgAUHYAGogCikDADcDACABQdAAaiAJKQMANwMAIAFByABqIAgpAwA3AwAgASABKQMINwNAIAFB+ABqIAFBQGsQOkE8QQQQngEiAEUNAiAAQQA2AgAgACABKQN4NwIEIABBDGogAykDADcCACAAQRRqIAIpAwA3AgAgAEEcaiAEKQMANwIAIABBJGogBSkDADcCACAAQSxqIAYpAwA3AgAgAEE0aiAHKQMANwIAIAFBsAFqJAAgAA8LEK0BAAsQrgEAC0E8QQQQswEAC9cEAQR/IAAgARC6ASECAkACQAJAIAAQsAENACAAKAIAIQMCQCAAEKUBRQRAIAEgA2ohASAAIAMQuwEiAEHAscAAKAIARw0BIAIoAgRBA3FBA0cNAkG4scAAIAE2AgAgACABIAIQhgEPCyABIANqQRBqIQAMAgsgA0GAAk8EQCAAEDUMAQsgAEEMaigCACIEIABBCGooAgAiBUcEQCAFIAQ2AgwgBCAFNgIIDAELQaiuwABBqK7AACgCAEF+IANBA3Z3cTYCAAsgAhCiAQRAIAAgASACEIYBDAILAkBBxLHAACgCACACRwRAIAJBwLHAACgCAEcNAUHAscAAIAA2AgBBuLHAAEG4scAAKAIAIAFqIgE2AgAgACABEJQBDwtBxLHAACAANgIAQbyxwABBvLHAACgCACABaiIBNgIAIAAgAUEBcjYCBCAAQcCxwAAoAgBHDQFBuLHAAEEANgIAQcCxwABBADYCAA8LIAIQrwEiAyABaiEBAkAgA0GAAk8EQCACEDUMAQsgAkEMaigCACIEIAJBCGooAgAiAkcEQCACIAQ2AgwgBCACNgIIDAELQaiuwABBqK7AACgCAEF+IANBA3Z3cTYCAAsgACABEJQBIABBwLHAACgCAEcNAUG4scAAIAE2AgALDwsgAUGAAk8EQCAAIAEQNA8LIAFBA3YiAkEDdEGwrsAAaiEBAn9BqK7AACgCACIDQQEgAnQiAnEEQCABKAIIDAELQaiuwAAgAiADcjYCACABCyECIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCAuYBAIDfwZ+IABBHGooAgBFBEBBAA8LIABBEGooAgAiAiAAQQhqKQMAIgUgASgCACIErUKAgICAgICAgASEIgaFQvPK0cunjNmy9ACFIgdCEIkgByAAKQMAIghC4eSV89bs2bzsAIV8IgeFIgkgBULt3pHzlszct+QAhSIFIAhC9crNg9es27fzAIV8IghCIIl8IgogBoUgByAFQg2JIAiFIgV8IgYgBUIRiYUiBXwiByAFQg2JhSIFIAlCFYkgCoUiCCAGQiCJQv8BhXwiBnwiCSAFQhGJhSIFQg2JIAUgCEIQiSAGhSIGIAdCIIl8Igd8IgWFIghCEYkgCCAGQhWJIAeFIgYgCUIgiXwiB3wiCIUiCUINiSAJIAZCEIkgB4UiBiAFQiCJfCIFfIUiByAGQhWJIAWFIgUgCEIgiXwiBnwiCCAFQhCJIAaFQhWJhSAHQhGJhSAIQiCIhSIFp3EhASAFQhmIQv8Ag0KBgoSIkKDAgAF+IQcgAEEUaigCACEAA0AgACABaikAACIGIAeFIgVCf4UgBUL//fv379+//358g0KAgYKEiJCgwIB/gyEFAkADQCAFUARAIAYgBkIBhoNCgIGChIiQoMCAf4NQDQJBAA8LIAV6IQggBUJ/fCAFgyEFIAAgCKdBA3YgAWogAnFBA3RrQXhqKAIAIARHDQALQQEPCyABIANBCGoiA2ogAnEhAQwACwAL4QMBCH8jAEEgayIEJAAgAUEUaigCACEJIAEoAgAhBQJAIAFBBGooAgAiB0EDdEUEQAwBCyAHQX9qQf////8BcSICQQFqIgNBB3EhBgJ/IAJBB0kEQEEAIQMgBQwBCyAFQTxqIQIgA0H4////A3EhCEEAIQMDQCACKAIAIAJBeGooAgAgAkFwaigCACACQWhqKAIAIAJBYGooAgAgAkFYaigCACACQVBqKAIAIAJBSGooAgAgA2pqampqampqIQMgAkFAayECIAhBeGoiCA0ACyACQURqCyAGRQ0AQQRqIQIDQCACKAIAIANqIQMgAkEIaiECIAZBf2oiBg0ACwsCQAJAAkAgCUUEQCADIQIMAQsCQCAHRQ0AIAUoAgQNACADQRBJDQILIAMgA2oiAiADSQ0BCyACRQ0AAkAgAkF/SgRAIAJBARCeASIDRQ0BDAMLEHMACyACQQEQswEAC0EBIQNBACECCyAAQQA2AgggACACNgIEIAAgAzYCACAEIAA2AgQgBEEYaiABQRBqKQIANwMAIARBEGogAUEIaikCADcDACAEIAEpAgA3AwggBEEEakG0kcAAIARBCGoQHkUEQCAEQSBqJAAPC0GkksAAQTMgBEEIakHMkcAAQfCSwAAQUgALzwMCDX8BfgJAIAVBf2oiDSABKAIUIghqIgcgA0kEQEEAIAEoAggiCmshDiAFIAEoAhAiD2shECABKAIcIQsgASkDACEUA0ACQAJAAkAgFCACIAdqMQAAiEIBg1BFBEAgCiAKIAsgCiALSxsgBhsiCSAFIAkgBUsbIQwgAiAIaiERIAkhBwJAA0AgByAMRgRAQQAgCyAGGyEMIAohBwJAAkACQANAIAwgB08EQCABIAUgCGoiAjYCFCAGRQ0CDA4LIAdBf2oiByAFTw0CIAcgCGoiCSADTw0DIAQgB2otAAAgAiAJai0AAEYNAAsgASAIIA9qIgg2AhQgECEHIAZFDQgMCQsgAUEANgIcDAsLIAcgBUHggMAAEFsACyAJIANB8IDAABBbAAsgByAIaiADTw0BIAcgEWohEiAEIAdqIAdBAWohBy0AACASLQAARg0ACyAIIA5qIAdqIQgMAgsgAyAIIAlqIgAgAyAASxsgA0HQgMAAEFsACyABIAUgCGoiCDYCFAtBACEHIAYNAQsgASAHNgIcIAchCwsgCCANaiIHIANJDQALCyABIAM2AhQgAEEANgIADwsgACAINgIEIABBCGogAjYCACAAQQE2AgALqwQCBX8BfkEBIQMCQCABKAIYIgRBJyABQRxqKAIAKAIQIgURAQANAEECIQFBMCECAkACfgJAAkACQAJAAkACQAJAIAAoAgAiAA4oCAEBAQEBAQEBAgQBAQMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBBQALIABB3ABGDQQLIAAQK0UNBCAAQQFyZ0ECdkEHc61CgICAgNAAhAwFC0H0ACECDAULQfIAIQIMBAtB7gAhAgwDCyAAIQIMAgsgABA7BEBBASEBIAAhAgwCCyAAQQFyZ0ECdkEHc61CgICAgNAAhAshB0EDIQEgACECCwNAIAEhBkEAIQEgAiEAAkACQAJAAkACQCAGQQFrDgMEAgABCwJAAkACQAJAAkAgB0IgiKdB/wFxQQFrDgUABAECAwULIAdC/////49ggyEHQf0AIQBBAyEBDAcLIAdC/////49gg0KAgICAIIQhB0H7ACEAQQMhAQwGCyAHQv////+PYINCgICAgDCEIQdB9QAhAEEDIQEMBQsgB0L/////j2CDQoCAgIDAAIQhB0HcACEAQQMhAQwEC0EwQdcAIAIgB6ciAUECdHZBD3EiAEEKSRsgAGohACABRQ0CIAdCf3xC/////w+DIAdCgICAgHCDhCEHQQMhAQwDCyAEQScgBREBACEDDAQLQdwAIQBBASEBDAELIAdC/////49gg0KAgICAEIQhB0EDIQELIAQgACAFEQEARQ0ACwsgAwu7AwEGfyMAQRBrIgkkACAAQQRqKAIAIgYgACgCACIIIAGnIgpxIgdqKQAAQoCBgoSIkKDAgH+DIgFQBEBBCCEFA0AgBSAHaiEHIAVBCGohBSAGIAcgCHEiB2opAABCgIGChIiQoMCAf4MiAVANAAsLAkAgACgCCCAGIAF6p0EDdiAHaiAIcSIFaiwAACIHQX9KBH8gBiAGKQMAQoCBgoSIkKDAgH+DeqdBA3YiBWotAAAFIAcLQQFxIgdFcg0AIAlBCGogAEEBIAQQDCAAQQRqKAIAIgYgACgCACIIIApxIgRqKQAAQoCBgoSIkKDAgH+DIgFQBEBBCCEFA0AgBCAFaiEEIAVBCGohBSAGIAQgCHEiBGopAABCgIGChIiQoMCAf4MiAVANAAsLIAYgAXqnQQN2IARqIAhxIgVqLAAAQX9MDQAgBikDAEKAgYKEiJCgwIB/g3qnQQN2IQULIAUgBmogCkEZdiIEOgAAIAVBeGogCHEgBmpBCGogBDoAACAAIAAoAgggB2s2AgggACAAKAIMQQFqNgIMIAYgBUEDdGsiAEF4aiACNgIAIABBfGogAzYCACAJQRBqJAALgwMBA38CQAJAAkACQCABQQlPBEBBEEEIEJcBIAFLDQEMAgsgABALIQMMAgtBEEEIEJcBIQELQYCAfEEIQQgQlwFBFEEIEJcBakEQQQgQlwFqa0F3cUF9aiIEQQBBEEEIEJcBQQJ0ayICIAIgBEsbIAFrIABNDQAgAUEQIABBBGpBEEEIEJcBQXtqIABLG0EIEJcBIgRqQRBBCBCXAWpBfGoQCyICRQ0AIAIQvQEhAAJAIAFBf2oiAyACcUUEQCAAIQEMAQsgAiADakEAIAFrcRC9ASECQRBBCBCXASEDIAAQrwEgAkEAIAEgAiAAayADSxtqIgEgAGsiAmshAyAAEKUBRQRAIAEgAxCCASAAIAIQggEgACACECEMAQsgACgCACEAIAEgAzYCBCABIAAgAmo2AgALIAEQpQENASABEK8BIgJBEEEIEJcBIARqTQ0BIAEgBBC6ASEAIAEgBBCCASAAIAIgBGsiBBCCASAAIAQQIQwBCyADDwsgARC8ASABEKUBGgv3AgEEfyMAQRBrIgMkACAAIAFHBEAgAkEIaiEEA0AgAEEEagJAAn8CQAJAIAAoAgAiAEGAAU8EQCADQQA2AgwgAEGAEEkNASAAQYCABE8NAiADIABBP3FBgAFyOgAOIAMgAEEMdkHgAXI6AAwgAyAAQQZ2QT9xQYABcjoADUEDDAMLIAQoAgAiBSACQQRqKAIARgR/IAIgBRBAIAQoAgAFIAULIAIoAgBqIAA6AAAgBCAEKAIAQQFqNgIADAMLIAMgAEE/cUGAAXI6AA0gAyAAQQZ2QcABcjoADEECDAELIAMgAEE/cUGAAXI6AA8gAyAAQQZ2QT9xQYABcjoADiADIABBDHZBP3FBgAFyOgANIAMgAEESdkEHcUHwAXI6AAxBBAshACACQQRqKAIAIAQoAgAiBWsgAEkEQCACIAUgABBBIAQoAgAhBQsgAigCACAFaiADQQxqIAAQuQEaIAQgACAFajYCAAsiACABRw0ACwsgA0EQaiQAC9QCAQd/QQEhCQJAAkAgAkUNACABIAJBAXRqIQogAEGA/gNxQQh2IQsgAEH/AXEhDQJAA0AgAUECaiEMIAcgAS0AASICaiEIIAsgAS0AACIBRwRAIAEgC0sNAyAIIQcgDCIBIApHDQEMAwsgCCAHTwRAIAggBEsNAiADIAdqIQECQANAIAJFDQEgAkF/aiECIAEtAAAgAUEBaiEBIA1HDQALQQAhCQwFCyAIIQcgDCIBIApHDQEMAwsLIAcgCBC2AQALIAggBBC1AQALIAZFDQAgBSAGaiEDIABB//8DcSEBA0ACQCAFQQFqIQACfyAAIAUtAAAiAkEYdEEYdSIEQQBODQAaIAAgA0YNASAFLQABIARB/wBxQQh0ciECIAVBAmoLIQUgASACayIBQQBIDQIgCUEBcyEJIAMgBUcNAQwCCwtB0JPAAEGMm8AAEG8ACyAJQQFxC+ICAQN/IwBBEGsiAiQAIAAoAgAhAAJAAn8CQAJAIAFBgAFPBEAgAkEANgIMIAFBgBBJDQEgAUGAgARPDQIgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwwDCyAAKAIIIgMgAEEEaigCAEYEfyAAIAMQQCAAKAIIBSADCyAAKAIAaiABOgAAIAAgACgCCEEBajYCCAwDCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAgwBCyACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQLIQEgAEEEaigCACAAQQhqIgQoAgAiA2sgAUkEQCAAIAMgARBBIAQoAgAhAwsgACgCACADaiACQQxqIAEQuQEaIAQgASADajYCAAsgAkEQaiQAQQAL4QIBBX8gAEELdCEEQSAhAkEgIQMCQANAAkACQCACQQF2IAFqIgJBAnRB6KbAAGooAgBBC3QiBSAETwRAIAQgBUYNAiACIQMMAQsgAkEBaiEBCyADIAFrIQIgAyABSw0BDAILCyACQQFqIQELAkACQCABQR9NBEAgAUECdCEEQcMFIQMgAUEfRwRAIARB7KbAAGooAgBBFXYhAwtBACEFIAFBf2oiAiABTQRAIAJBIE8NAiACQQJ0QeimwABqKAIAQf///wBxIQULAkAgAyAEQeimwABqKAIAQRV2IgFBf3NqRQ0AIAAgBWshBCABQcMFIAFBwwVLGyECIANBf2ohAEEAIQMDQCABIAJGDQQgAyABQeinwABqLQAAaiIDIARLDQEgACABQQFqIgFHDQALIAAhAQsgAUEBcQ8LIAFBIEGwpsAAEFsACyACQSBB0KbAABBbAAsgAkHDBUHApsAAEFsAC90CAQV/IABBC3QhBEEEIQJBBCEDAkADQAJAAkAgAkEBdiABaiICQQJ0QaytwABqKAIAQQt0IgUgBE8EQCAEIAVGDQIgAiEDDAELIAJBAWohAQsgAyABayECIAMgAUsNAQwCCwsgAkEBaiEBCwJAAkAgAUEDTQRAIAFBAnQhBEEVIQMgAUEDRwRAIARBsK3AAGooAgBBFXYhAwtBACEFIAFBf2oiAiABTQRAIAJBBE8NAiACQQJ0QaytwABqKAIAQf///wBxIQULAkAgAyAEQaytwABqKAIAQRV2IgFBf3NqRQ0AIAAgBWshBCABQRUgAUEVSxshAiADQX9qIQBBACEDA0AgASACRg0EIAMgAUG8rcAAai0AAGoiAyAESw0BIAAgAUEBaiIBRw0ACyAAIQELIAFBAXEPCyABQQRBsKbAABBbAAsgAkEEQdCmwAAQWwALIAJBFUHApsAAEFsAC9sCAQN/IwBBEGsiAiQAAkACfwJAAkAgAUGAAU8EQCACQQA2AgwgAUGAEEkNASABQYCABE8NAiACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAMLIAAoAggiAyAAQQRqKAIARgR/IAAgAxBAIAAoAggFIAMLIAAoAgBqIAE6AAAgACAAKAIIQQFqNgIIDAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEEgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJABBAAvVAgEDfyMAQRBrIgIkAAJAAn8CQCABQYABTwRAIAJBADYCDCABQYAQTw0BIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAILIAAoAggiAyAAQQRqKAIARgRAIAAgAxBDIAAoAgghAwsgACADQQFqNgIIIAAoAgAgA2ogAToAAAwCCyABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAQsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAAL1wIBA38jAEEQayICJAACQAJ/AkACQCABQYABTwRAIAJBADYCDCABQYAQSQ0BIAFBgIAETw0CIAIgAUE/cUGAAXI6AA4gAiABQQx2QeABcjoADCACIAFBBnZBP3FBgAFyOgANQQMMAwsgACgCCCIDIABBBGooAgBGBEAgACADEEMgACgCCCEDCyAAIANBAWo2AgggACgCACADaiABOgAADAMLIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAshASAAQQRqKAIAIABBCGoiBCgCACIDayABSQRAIAAgAyABEEIgBCgCACEDCyAAKAIAIANqIAJBDGogARC5ARogBCABIANqNgIACyACQRBqJAALtgIBB38CQCACQQ9NBEAgACEDDAELIABBACAAa0EDcSIEaiEFIAQEQCAAIQMgASEGA0AgAyAGLQAAOgAAIAZBAWohBiADQQFqIgMgBUkNAAsLIAUgAiAEayIIQXxxIgdqIQMCQCABIARqIgRBA3EEQCAHQQFIDQEgBEEDdCICQRhxIQkgBEF8cSIGQQRqIQFBACACa0EYcSECIAYoAgAhBgNAIAUgBiAJdiABKAIAIgYgAnRyNgIAIAFBBGohASAFQQRqIgUgA0kNAAsMAQsgB0EBSA0AIAQhAQNAIAUgASgCADYCACABQQRqIQEgBUEEaiIFIANJDQALCyAIQQNxIQIgBCAHaiEBCyACBEAgAiADaiECA0AgAyABLQAAOgAAIAFBAWohASADQQFqIgMgAkkNAAsLIAALvgIBBX8CQAJAAkACQCACQQNqQXxxIAJrIgRFDQAgAyAEIAQgA0sbIgRFDQAgAUH/AXEhB0EBIQYDQCACIAVqLQAAIAdGDQQgBCAFQQFqIgVHDQALIAQgA0F4aiIGSw0CDAELIANBeGohBkEAIQQLIAFB/wFxQYGChAhsIQUDQCACIARqIgcoAgAgBXMiCEF/cyAIQf/9+3dqcSAHQQRqKAIAIAVzIgdBf3MgB0H//ft3anFyQYCBgoR4cUUEQCAEQQhqIgQgBk0NAQsLIAQgA00NACAEIAMQtAEACwJAIAMgBEYNACAEIANrIQMgAiAEaiECQQAhBSABQf8BcSEBA0AgASACIAVqLQAARwRAIAMgBUEBaiIFag0BDAILCyAEIAVqIQVBASEGDAELQQAhBgsgACAFNgIEIAAgBjYCAAu+AgIFfwF+IwBBMGsiBCQAQSchAgJAIABCkM4AVARAIAAhBwwBCwNAIARBCWogAmoiA0F8aiAAIABCkM4AgCIHQpDOAH59pyIFQf//A3FB5ABuIgZBAXRBpZTAAGovAAA7AAAgA0F+aiAFIAZB5ABsa0H//wNxQQF0QaWUwABqLwAAOwAAIAJBfGohAiAAQv/B1y9WIAchAA0ACwsgB6ciA0HjAEsEQCACQX5qIgIgBEEJamogB6ciAyADQf//A3FB5ABuIgNB5ABsa0H//wNxQQF0QaWUwABqLwAAOwAACwJAIANBCk8EQCACQX5qIgIgBEEJamogA0EBdEGllMAAai8AADsAAAwBCyACQX9qIgIgBEEJamogA0EwajoAAAsgAUGAk8AAQQAgBEEJaiACakEnIAJrEBcgBEEwaiQAC7ECAQN/IwBBgAFrIgQkAAJAAkACQAJAIAEoAgAiAkEQcUUEQCACQSBxDQEgADUCACABEDIhAAwECyAAKAIAIQBBACECA0AgAiAEakH/AGpBMEHXACAAQQ9xIgNBCkkbIANqOgAAIAJBf2ohAiAAQQ9LIABBBHYhAA0ACyACQYABaiIAQYEBTw0BIAFBo5TAAEECIAIgBGpBgAFqQQAgAmsQFyEADAMLIAAoAgAhAEEAIQIDQCACIARqQf8AakEwQTcgAEEPcSIDQQpJGyADajoAACACQX9qIQIgAEEPSyAAQQR2IQANAAsgAkGAAWoiAEGBAU8NASABQaOUwABBAiACIARqQYABakEAIAJrEBchAAwCCyAAQYABELQBAAsgAEGAARC0AQALIARBgAFqJAAgAAunAgEFfyAAQgA3AhAgAAJ/QQAgAUGAAkkNABpBHyABQf///wdLDQAaIAFBBiABQQh2ZyICa3ZBAXEgAkEBdGtBPmoLIgI2AhwgAkECdEG4sMAAaiEDIAAhBAJAAkACQAJAQayuwAAoAgAiBUEBIAJ0IgZxBEAgAygCACEDIAIQkwEhAiADEK8BIAFHDQEgAyECDAILQayuwAAgBSAGcjYCACADIAA2AgAMAwsgASACdCEFA0AgAyAFQR12QQRxakEQaiIGKAIAIgJFDQIgBUEBdCEFIAIiAxCvASABRw0ACwsgAigCCCIBIAQ2AgwgAiAENgIIIAQgAjYCDCAEIAE2AgggAEEANgIYDwsgBiAANgIACyAAIAM2AhggBCAENgIIIAQgBDYCDAu2AgEFfyAAKAIYIQQCQAJAIAAgACgCDEYEQCAAQRRBECAAQRRqIgEoAgAiAxtqKAIAIgINAUEAIQEMAgsgACgCCCICIAAoAgwiATYCDCABIAI2AggMAQsgASAAQRBqIAMbIQMDQCADIQUgAiIBQRRqIgMoAgAiAkUEQCABQRBqIQMgASgCECECCyACDQALIAVBADYCAAsCQCAERQ0AAkAgACAAKAIcQQJ0QbiwwABqIgIoAgBHBEAgBEEQQRQgBCgCECAARhtqIAE2AgAgAQ0BDAILIAIgATYCACABDQBBrK7AAEGsrsAAKAIAQX4gACgCHHdxNgIADwsgASAENgIYIAAoAhAiAgRAIAEgAjYCECACIAE2AhgLIABBFGooAgAiAEUNACABQRRqIAA2AgAgACABNgIYCwvAAgEBfyMAQTBrIgIkAAJ/AkACQAJAAkAgACgCAEEBaw4DAQIDAAsgAkEcakEBNgIAIAJCATcCDCACQYSKwAA2AgggAkEKNgIkIAIgAEEEajYCLCACIAJBIGo2AhggAiACQSxqNgIgIAEgAkEIahBcDAMLIAJBHGpBADYCACACQfCIwAA2AhggAkIBNwIMIAJB5InAADYCCCABIAJBCGoQXAwCCyACQRxqQQE2AgAgAkIBNwIMIAJBwInAADYCCCACQQo2AiQgAiAAQQRqNgIsIAIgAkEgajYCGCACIAJBLGo2AiAgASACQQhqEFwMAQsgAkEcakEBNgIAIAJCATcCDCACQaCJwAA2AgggAkEKNgIkIAIgAEEEajYCLCACIAJBIGo2AhggAiACQSxqNgIgIAEgAkEIahBcCyACQTBqJAALbwEMf0HYscAAKAIAIgJFBEBB6LHAAEH/HzYCAEEADwtB0LHAACEGA0AgAiIBKAIIIQIgASgCBCEDIAEoAgAhBCABQQxqKAIAGiABIQYgBUEBaiEFIAINAAtB6LHAACAFQf8fIAVB/x9LGzYCACAIC4sCAgR/AX4jAEEwayICJAAgAUEEaiEEIAEoAgRFBEAgASgCACEDIAJBEGoiBUEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiADQRBqKQIANwMAIAJBIGogA0EIaikCADcDACACIAMpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogBEEIaiAFKAIANgIAIAQgAikDCDcCAAsgAkEgaiIDIARBCGooAgA2AgAgAUEMakEANgIAIAQpAgAhBiABQgE3AgQgAiAGNwMYQQxBBBCeASIBRQRAQQxBBBCzAQALIAEgAikDGDcCACABQQhqIAMoAgA2AgAgAEHoj8AANgIEIAAgATYCACACQTBqJAAL7AEBAn8jAEEwayIFJAACQCABBEAgASgCACIGQX9GDQEgASAGQQFqNgIAIAUgBDYCFCAFQRhqIAFBBGogAiADIAVBFGoQGyAFQRBqIAVBKGooAgA2AgAgBSAFQSBqKQMANwMIIAUoAhwhBCAFKAIYIQYgAwRAIAIQFQsgASABKAIAQX9qNgIAAn8gBkUEQEEAIQNBAAwBCyAFQSRqIAVBEGooAgA2AgAgBSAENgIYIAUgBSkDCDcCHEEBIQMgBUEYahBNCyEBIAAgAzYCCCAAIAE2AgQgACAENgIAIAVBMGokAA8LEK0BAAsQrgEAC4UCAQN/IwBBIGsiAiQAIAJB8IbAAEEGQfaGwABBJxAGNgIUIAJBITYCGCACQQhqIAJBFGogAkEYahBtIAIoAgwhAyACKAIIRQRAIAIoAhgiBEEkTwRAIAQQAAsgACADNgIAIAAgASkCADcCBCAAQTRqIAFBMGooAgA2AgAgAEEsaiABQShqKQIANwIAIABBJGogAUEgaikCADcCACAAQRxqIAFBGGopAgA3AgAgAEEUaiABQRBqKQIANwIAIABBDGogAUEIaikCADcCACACKAIUIgBBJE8EQCAAEAALIAJBIGokAA8LIAIgAzYCHEGrgcAAQSsgAkEcakHogcAAQaCHwAAQUgAL1gEAAkAgAEEgSQ0AAkACf0EBIABB/wBJDQAaIABBgIAESQ0BAkAgAEGAgAhPBEAgAEG12XNqQbXbK0kgAEHii3RqQeILSXINBCAAQZ+odGpBnxhJIABB3uJ0akEOSXINBCAAQX5xQZ7wCkYNBCAAQWBxQeDNCkcNAQwECyAAQbugwABBKkGPocAAQcABQc+iwABBtgMQKQ8LQQAgAEHHkXVqQQdJDQAaIABBgIC8f2pB8IN0SQsPCyAAQZybwABBKEHsm8AAQaACQYyewABBrwIQKQ8LQQALwwEBA38gACgCBCIDIAAoAgBGBEBBgIDEAA8LIAAgA0F/aiIBNgIEIAEtAAAiAUEYdEEYdSICQX9MBH8gACADQX5qIgE2AgQgAkE/cQJ/IAEtAAAiAUEYdEEYdSICQUBOBEAgAUEfcQwBCyAAIANBfWoiATYCBCACQT9xAn8gAS0AACIBQRh0QRh1IgJBQE4EQCABQQ9xDAELIAAgA0F8aiIANgIEIAJBP3EgAC0AAEEHcUEGdHILQQZ0cgtBBnRyBSABCwvTAQEFfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AQQQhBCAAQQRqKAIAIgVBAXQiASADIAEgA0sbIgFBBCABQQRLGyIBQf////8AcSABRkECdCEDIAFBBHQhBgJAIAVFBEBBACEEDAELIAIgBUEEdDYCFCACIAAoAgA2AhALIAIgBDYCGCACIAYgAyACQRBqEEsgAigCAARAIAJBCGooAgAiAEUNASACKAIEIAAQswEACyACKAIEIQMgAEEEaiABNgIAIAAgAzYCACACQSBqJAAPCxBzAAvTAQEFfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AQQQhBCAAQQRqKAIAIgVBAXQiASADIAEgA0sbIgFBBCABQQRLGyIBQf////8DcSABRkECdCEDIAFBAnQhBgJAIAVFBEBBACEEDAELIAIgBUECdDYCFCACIAAoAgA2AhALIAIgBDYCGCACIAYgAyACQRBqEEsgAigCAARAIAJBCGooAgAiAEUNASACKAIEIAAQswEACyACKAIEIQMgAEEEaiABNgIAIAAgAzYCACACQSBqJAAPCxBzAAu3AQEEfyAAKAIAIgEgACgCBEYEQEGAgMQADwsgACABQQFqNgIAIAEtAAAiA0EYdEEYdUF/TAR/IAAgAUECajYCACABLQABQT9xIQIgA0EfcSEEIANB3wFNBEAgBEEGdCACcg8LIAAgAUEDajYCACABLQACQT9xIAJBBnRyIQIgA0HwAUkEQCACIARBDHRyDwsgACABQQRqNgIAIARBEnRBgIDwAHEgAS0AA0E/cSACQQZ0cnIFIAMLC68BAQN/IwBBIGsiAiQAAkAgAUEBaiIDIAFJDQAgAEEEaigCACIBQQF0IgQgAyAEIANLGyIDQQggA0EISxshAyACIAEEfyACIAE2AhQgAiAAKAIANgIQQQEFQQALNgIYIAIgA0EBIAJBEGoQSyACKAIABEAgAkEIaigCACIARQ0BIAIoAgQgABCzAQALIAIoAgQhASAAQQRqIAM2AgAgACABNgIAIAJBIGokAA8LEHMAC68BAQJ/IwBBIGsiAyQAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxshBCADIAEEfyADIAE2AhQgAyAAKAIANgIQQQEFQQALNgIYIAMgBEEBIANBEGoQSyADKAIABEAgA0EIaigCACIARQ0BIAMoAgQgABCzAQALIAMoAgQhASAAQQRqIAQ2AgAgACABNgIAIANBIGokAA8LEHMAC60BAQJ/IwBBIGsiAyQAAkAgASACaiICIAFJDQAgAEEEaigCACIBQQF0IgQgAiAEIAJLGyICQQggAkEISxshBCADIAEEfyADIAE2AhQgAyAAKAIANgIQQQEFQQALNgIYIAMgBCADQRBqEEogAygCAARAIANBCGooAgAiAEUNASADKAIEIAAQswEACyADKAIEIQEgAEEEaiAENgIAIAAgATYCACADQSBqJAAPCxBzAAutAQEDfyMAQSBrIgIkAAJAIAFBAWoiAyABSQ0AIABBBGooAgAiAUEBdCIEIAMgBCADSxsiA0EIIANBCEsbIQMgAiABBH8gAiABNgIUIAIgACgCADYCEEEBBUEACzYCGCACIAMgAkEQahBKIAIoAgAEQCACQQhqKAIAIgBFDQEgAigCBCAAELMBAAsgAigCBCEBIABBBGogAzYCACAAIAE2AgAgAkEgaiQADwsQcwAL7wEBA38jAEEgayIFJABBjK7AAEGMrsAAKAIAIgdBAWo2AgBB7LHAAEHsscAAKAIAQQFqIgY2AgACQAJAIAdBAEggBkECS3INACAFIAQ6ABggBSADNgIUIAUgAjYCEEGArsAAKAIAIgJBf0wNAEGArsAAIAJBAWoiAjYCAEGArsAAQYiuwAAoAgAiAwR/QYSuwAAoAgAgBSAAIAEoAhARAAAgBSAFKQMANwMIIAVBCGogAygCFBEAAEGArsAAKAIABSACC0F/ajYCACAGQQFLDQAgBA0BCwALIwBBEGsiAiQAIAIgATYCDCACIAA2AggAC58BAQN/AkAgAUEPTQRAIAAhAgwBCyAAQQAgAGtBA3EiBGohAyAEBEAgACECA0AgAkH/AToAACACQQFqIgIgA0kNAAsLIAMgASAEayIBQXxxIgRqIQIgBEEBTgRAA0AgA0F/NgIAIANBBGoiAyACSQ0ACwsgAUEDcSEBCyABBEAgASACaiEBA0AgAkH/AToAACACQQFqIgIgAUkNAAsLIAALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQQRqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQRBqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEQayIDJAACQAJAIAEEQCABKAIAIgJBf0YNASABIAJBAWo2AgAgAyABQSxqEGEgASABKAIAQX9qNgIAIAMoAgAhAQJAIAMoAgQiAiADKAIIIgRNBEAgASECDAELIARFBEBBASECIAEQFQwBCyABIAJBASAEEJkBIgJFDQMLIAAgBDYCBCAAIAI2AgAgA0EQaiQADwsQrQEACxCuAQALIARBARCzAQALrAEBA38jAEEwayICJAAgAUEEaiEDIAEoAgRFBEAgASgCACEBIAJBEGoiBEEANgIAIAJCATcDCCACIAJBCGo2AhQgAkEoaiABQRBqKQIANwMAIAJBIGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGAjsAAIAJBGGoQHhogA0EIaiAEKAIANgIAIAMgAikDCDcCAAsgAEHoj8AANgIEIAAgAzYCACACQTBqJAALkAEBAn8CQAJ/AkACQAJAAn9BASIDIAFBAEgNABogAigCCEUNAiACKAIEIgQNASABDQNBAQwECyEDQQAhAQwECyACKAIAIARBASABEJkBDAILIAENAEEBDAELIAFBARCeAQsiAgRAIAAgAjYCBEEAIQMMAQsgACABNgIEQQEhAQsgACADNgIAIABBCGogATYCAAunAQECfwJAAkACQAJAAkACQAJAAn8gAgRAQQEiBCABQQBIDQEaIAMoAghFDQMgAygCBCIFDQIgAQ0EDAYLIAAgATYCBEEBCyEEQQAhAQwGCyADKAIAIAUgAiABEJkBIgNFDQIMBAsgAUUNAgsgASACEJ4BIgMNAgsgACABNgIEIAIhAQwCCyACIQMLIAAgAzYCBEEAIQQLIAAgBDYCACAAQQhqIAE2AgALlwEBAX8jAEEQayIGJAAgAQRAIAYgASADIAQgBSACKAIQEQYAIAYoAgAhAQJAIAYoAgQiAyAGKAIIIgJNBEAgASEDDAELIANBAnQhAyACQQJ0IgQEQCABIANBBCAEEJkBIgMNASAEQQQQswEAC0EEIQMgARAVCyAAIAI2AgQgACADNgIAIAZBEGokAA8LQciMwABBMBCsAQALjAEBAn8jAEFAaiIBJAAgAUEANgIIIAFCATcDACABQRBqIAEQfCAAIAFBEGoQNkUEQCABKAIAIAEoAggQBCABKAIEBEAgASgCABAVCwJAIAAoAgBBAUYNACAAQQhqKAIARQ0AIAAoAgQQFQsgAUFAayQADwtB3IfAAEE3IAFBOGpB8IjAAEHgiMAAEFIAC5YBAQF/IwBBQGoiAiQAIAAoAgAhACACQgA3AzggAkE4aiAAEAkgAkEcakEBNgIAIAIgAigCPCIANgIwIAIgADYCLCACIAIoAjg2AiggAkEiNgIkIAJCAjcCDCACQYSNwAA2AgggAiACQShqNgIgIAIgAkEgajYCGCABIAJBCGoQXCACKAIsBEAgAigCKBAVCyACQUBrJAALewEHfwJAIAAEQCAAKAIADQEgAEEANgIAIAAoAgghAiAAKAIMIAAoAhQhBCAAKAIYIQUgACgCMCEGIAAoAjQhByAAKAIEIQEgABAVIAFBJE8EQCABEAALBEAgAhAVCyAFBEAgBBAVCyAHBEAgBhAVCw8LEK0BAAsQrgEAC54BAQJ/IwBBEGsiAyQAIABBFGooAgAhBAJAAn8CQAJAIABBBGooAgAOAgABAwsgBA0CQQAhAEGYjsAADAELIAQNASAAKAIAIgQoAgQhACAEKAIACyEEIAMgADYCBCADIAQ2AgAgA0GckMAAIAEoAgggAiABLQAQEEQACyADQQA2AgQgAyAANgIAIANBiJDAACABKAIIIAIgAS0AEBBEAAtoAQZ/AkAgAARAIAAoAgANASAAQQA2AgAgACgCBCEBIAAoAgggACgCECEDIAAoAhQhBCAAKAIsIQUgACgCMCEGIAAQFQRAIAEQFQsgBARAIAMQFQsgBgRAIAUQFQsPCxCtAQALEK4BAAt9AQF/IwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQSxqQQI2AgAgBUE8akE4NgIAIAVCAjcCHCAFQZCUwAA2AhggBUE0NgI0IAUgBUEwajYCKCAFIAVBEGo2AjggBSAFQQhqNgIwIAVBGGogBBB0AAt8AQF/IAAtAAQhASAALQAFBEAgAUH/AXEhASAAAn9BASABDQAaIAAoAgAiAS0AAEEEcUUEQCABKAIYQaGUwABBAiABQRxqKAIAKAIMEQMADAELIAEoAhhBoJTAAEEBIAFBHGooAgAoAgwRAwALIgE6AAQLIAFB/wFxQQBHC10CAX8BfiMAQRBrIgAkAEGQrsAAKQMAUARAIABCAjcDCCAAQgE3AwAgACkDACEBQaCuwAAgACkDCDcDAEGYrsAAIAE3AwBBkK7AAEIBNwMACyAAQRBqJABBmK7AAAt9AQF/QThBBBCeASIKRQRAQThBBBCzAQALIAogCTYCNCAKIAk2AjAgCiAINgIsIAogBzYCKCAKIAY2AiQgCiAFNgIgIAogBDYCHCAKIAM2AhggCiADNgIUIAogAjYCECAKIAE2AgwgCiABNgIIIAogADYCBCAKQQA2AgAgCgt8AQN/IAAgABC8ASIAQQgQlwEgAGsiAhC6ASEAQbyxwAAgASACayIBNgIAQcSxwAAgADYCACAAIAFBAXI2AgRBCEEIEJcBIQJBFEEIEJcBIQNBEEEIEJcBIQQgACABELoBIAQgAyACQQhramo2AgRB4LHAAEGAgIABNgIAC28BBH8jAEEgayICJABBASEDAkAgACABEDMNACABQRxqKAIAIQQgASgCGCACQRxqQQA2AgAgAkGAk8AANgIYIAJCATcCDCACQYSTwAA2AgggBCACQQhqEB4NACAAQQRqIAEQMyEDCyACQSBqJAAgAwtvAQF/IwBBMGsiAiQAIAIgATYCBCACIAA2AgAgAkEcakECNgIAIAJBLGpBAzYCACACQgI3AgwgAkGklsAANgIIIAJBAzYCJCACIAJBIGo2AhggAiACQQRqNgIoIAIgAjYCICACQQhqQdSWwAAQdAALbwEBfyMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBHGpBAjYCACACQSxqQQM2AgAgAkICNwIMIAJBuJfAADYCCCACQQM2AiQgAiACQSBqNgIYIAIgAkEEajYCKCACIAI2AiAgAkEIakHIl8AAEHQAC28BAX8jAEEwayICJAAgAiABNgIEIAIgADYCACACQRxqQQI2AgAgAkEsakEDNgIAIAJCAjcCDCACQfSWwAA2AgggAkEDNgIkIAIgAkEgajYCGCACIAJBBGo2AiggAiACNgIgIAJBCGpBhJfAABB0AAtsAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBAzYCACADQgI3AgwgA0HAk8AANgIIIANBAzYCJCADIANBIGo2AhggAyADNgIoIAMgA0EEajYCICADQQhqIAIQdAALVgECfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCADIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGYisAAIAJBCGoQHiACQSBqJAALWQEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGAjsAAIAJBCGoQHiACQSBqJAALZwAjAEEwayIBJABB2K3AAC0AAARAIAFBHGpBATYCACABQgI3AgwgAUH0jsAANgIIIAFBAzYCJCABIAA2AiwgASABQSBqNgIYIAEgAUEsajYCICABQQhqQZyPwAAQdAALIAFBMGokAAtZAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbSRwAAgAkEIahAeIAJBIGokAAtnAQJ/IAEoAgAhAwJAAkACQCABQQhqKAIAIgFFBEBBASECDAELIAFBf0wNASABQQEQngEiAkUNAgsgAiADIAEQuQEhAiAAIAE2AgggACABNgIEIAAgAjYCAA8LEHMACyABQQEQswEAC1YBAX8jAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBmIrAACACQQhqEB4gAkEgaiQAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQQhqIgMoAgAEQCAAKAIEEBULIAAgATYCBCAAQQA2AgAgAEEMaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQRRqIgMoAgAEQCAAKAIQEBULIAAgATYCECAAQQA2AgAgAEEYaiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8CQCAABEAgACgCAA0BIABBfzYCACAAQTBqIgMoAgAEQCAAKAIsEBULIAAgATYCLCAAQQA2AgAgAEE0aiACNgIAIAMgAjYCAA8LEK0BAAsQrgEAC1YBAX8jAEEQayIFJAAgASgCACACKAIAIAMoAgAgBCgCABAIIQEgBUEIahCDASAFKAIMIQIgACAFKAIIIgNBAEc2AgAgACACIAEgAxs2AgQgBUEQaiQAC08BAn8gACgCACIDQQRqKAIAIANBCGoiBCgCACIAayACSQRAIAMgACACEEEgBCgCACEACyADKAIAIABqIAEgAhC5ARogBCAAIAJqNgIAQQALTwECfyAAKAIAIgNBBGooAgAgA0EIaiIEKAIAIgBrIAJJBEAgAyAAIAIQQiAEKAIAIQALIAMoAgAgAGogASACELkBGiAEIAAgAmo2AgBBAAtRAQF/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAchASAEQQhqEIMBIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALSgECfyAAQQRqKAIAIABBCGoiBCgCACIDayACSQRAIAAgAyACEEEgBCgCACEDCyAAKAIAIANqIAEgAhC5ARogBCACIANqNgIAQQALPwEBfyMAQSBrIgAkACAAQRxqQQA2AgAgAEGwkMAANgIYIABCATcCDCAAQcyQwAA2AgggAEEIakGkkcAAEHQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBf2oiAg0BDAILCyAEIAVrIQMLIAMLTAECfyMAQRBrIgMkACABKAIAIAIoAgAQAyEBIANBCGoQgwEgAygCDCECIAAgAygCCCIEQQBHNgIAIAAgAiABIAQbNgIEIANBEGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAQANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRAwALRwEBfyMAQSBrIgIkACACQRRqQQA2AgAgAkGAk8AANgIQIAJCATcCBCACQSs2AhwgAiAANgIYIAIgAkEYajYCACACIAEQdAALRgECfyABKAIEIQIgASgCACEDQQhBBBCeASIBRQRAQQhBBBCzAQALIAEgAjYCBCABIAM2AgAgAEH4j8AANgIEIAAgATYCAAs5AQF/IAFBEHZAACECIABBADYCCCAAQQAgAUGAgHxxIAJBf0YiARs2AgQgAEEAIAJBEHQgARs2AgALZAEDfyMAQRBrIgEkACAAKAIMIgJFBEBBmI7AAEHIj8AAEG8ACyAAKAIIIgNFBEBBmI7AAEHYj8AAEG8ACyABIAI2AgggASAANgIEIAEgAzYCACABKAIAIAEoAgQgASgCCBBQAAs/AQF/IwBBIGsiACQAIABBHGpBADYCACAAQcyRwAA2AhggAEIBNwIMIABBjJLAADYCCCAAQQhqQZSSwAAQdAALPgEBfyMAQSBrIgIkACACQQE6ABggAiABNgIUIAIgADYCECACQfyTwAA2AgwgAkGAk8AANgIIIAJBCGoQcgALKwACQCAAQXxLDQAgAEUEQEEEDwsgACAAQX1JQQJ0EJ4BIgBFDQAgAA8LAAsiACMAQRBrIgAkACAAQQhqIAEQfSAAQQhqEFMgAEEQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEcaiABNgIADwsQrQEACxCuAQALKwACQCAABEAgACgCAA0BIABBADYCACAAQSBqIAE2AgAPCxCtAQALEK4BAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATYCAA8LEK0BAAsQrgEACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQrQEACxCuAQALQAEBfyMAQRBrIgQkACAEIAM2AgwgBCACNgIIIAQgATYCBCAEIAA2AgAgBCgCACAEKAIEIAQoAgggBCgCDBATAAs3ACAAQQM6ACAgAEKAgICAgAQ3AgAgACABNgIYIABBADYCECAAQQA2AgggAEEcakHEh8AANgIACzUBAX8gASgCGEHDjsAAQQsgAUEcaigCACgCDBEDACECIABBADoABSAAIAI6AAQgACABNgIACyUAAkAgAARAIAAoAgBBf0YNASAAQRxqKAIADwsQrQEACxCuAQALJQACQCAABEAgACgCAEF/Rg0BIABBIGooAgAPCxCtAQALEK4BAAslAAJAIAAEQCAAKAIAQX9GDQEgAEEkaigCAA8LEK0BAAsQrgEACyUAAkAgAARAIAAoAgBBf0YNASAAQShqKAIADwsQrQEACxCuAQALJwAgACAAKAIEQQFxIAFyQQJyNgIEIAAgAWoiACAAKAIEQQFyNgIECzoBAn9B3K3AAC0AACEBQdytwABBADoAAEHgrcAAKAIAIQJB4K3AAEEANgIAIAAgAjYCBCAAIAE2AgALIAEBfwJAIAAoAgQiAUUNACAAQQhqKAIARQ0AIAEQFQsLHwACQCABQXxNBEAgACABQQQgAhCZASIADQELAAsgAAsjACACIAIoAgRBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAslACAARQRAQciMwABBMBCsAQALIAAgAiADIAQgBSABKAIQEQoACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQgACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQEQcACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERUACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERIACyMAIABFBEBByIzAAEEwEKwBAAsgACACIAMgBCABKAIQERQACx4AIAAgAUEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAsUACAAQQRqKAIABEAgACgCABAVCwshACAARQRAQciMwABBMBCsAQALIAAgAiADIAEoAhARBAALHwAgAEUEQEHIjMAAQTAQrAEACyAAIAIgASgCEBEBAAsZAQF/IAAoAhAiAQR/IAEFIABBFGooAgALCxkAIAAoAgAiACgCACAAQQhqKAIAIAEQtwELEgBBAEEZIABBAXZrIABBH0YbCxYAIAAgAUEBcjYCBCAAIAFqIAE2AgALHAAgASgCGEHgpsAAQQUgAUEcaigCACgCDBEDAAsTACAAKAIAIgBBJE8EQCAAEAALCxAAIAAgAWpBf2pBACABa3ELFAAgACgCACAAQQhqKAIAIAEQtwELDAAgACABIAIgAxAYCwsAIAEEQCAAEBULCw8AIABBAXQiAEEAIABrcgsUACAAKAIAIAEgACgCBCgCDBEBAAsRACAAKAIAIAAoAgQgARC3AQsIACAAIAEQJwsWAEHgrcAAIAA2AgBB3K3AAEEBOgAACw0AIAAoAgAgARAuQQALEwAgAEH4j8AANgIEIAAgATYCAAsNACAALQAEQQJxQQF2CxAAIAEgACgCACAAKAIEEBYLCgBBACAAayAAcQsLACAALQAEQQNxRQsMACAAIAFBA3I2AgQLDQAgACgCACAAKAIEagsNACAAKAIAIAEQL0EACw4AIAAoAgAaA0AMAAsACwsAIAA1AgAgARAyCwsAIAAjAGokACMACwkAIAAgARAKAAsNAEGUjcAAQRsQrAEACw4AQa+NwABBzwAQrAEACwoAIAAoAgRBeHELCgAgACgCBEEBcQsKACAAKAIMQQFxCwoAIAAoAgxBAXYLGQAgACABQfytwAAoAgAiAEEjIAAbEQAAAAsJACAAIAEQWAALCQAgACABEFoACwkAIAAgARBZAAsKACACIAAgARAWCwoAIAAgASACEGwLCgAgACABIAIQMAsHACAAIAFqCwcAIAAgAWsLBwAgAEEIagsHACAAQXhqCw0AQovk55XyuI/XuH8LDQBC/LTd9YySl9W1fwsNAEKksbTUvr71pMMACwMAAQsL2i0BAEGAgMAAC9AtL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwAAABAATwAAAIwFAAAhAAAAAAAQAE8AAACYBQAAFAAAAAAAEABPAAAAmAUAACEAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQAABgAAAAAAAAABAAAABwAAAAgAAAAEAAAABAAAAAkAAAAAABAATwAAABwEAAAXAAAAAAAQAE8AAAC3AQAAJgAAAHNyYy9saWIucnMAABgBEAAKAAAAfAAAAEYAAABsaW5lICBjb2wgOgoKCgAANAEQAAUAAAA5ARAABQAAAD4BEAADAAAAQQEQAAEAAAAYARAACgAAAJQAAAAWAAAAGAEQAAoAAACYAAAAFgAAABgBEAAKAAAAvAAAABYAAAAYARAACgAAANEAAAAwAAAAGAEQAAoAAAAAAQAAFgAAABgBEAAKAAAAAgEAABYAAAAYARAACgAAACkBAAAnAAAAbGV0IF9fcHJzID0gW107CmxldCAgPSAnJzsKAOQBEAAEAAAA6AEQAAcAAAAYARAACgAAAFABAAA9AAAAAis9Jyc7CgAAABAAAAAAABECEAADAAAAFAIQAAMAAAAYARAACgAAAF4BAABQAAAAOwoAAAAAEAAAAAAAQAIQAAIAAAAYARAACgAAAGkBAABRAAAAX19wcnMucHVzaCgpOwoAAGQCEAALAAAAbwIQAAMAAAAYARAACgAAAGUBAABHAAAAckoyS3FYenhRZwAAlAIQAAoAAAAYARAACgAAAGcBAAAiAAAAGAEQAAoAAABxAQAARAAAAGNvbnN0IF9fcnN0ID0gYXdhaXQgUHJvbWlzZS5hbGwoX19wcnMpOwogPSAucmVwbGFjZSgvL2csICgpID0+IF9fcnN0LnNoaWZ0KCkpOwoAAAAQAAAAAADwAhAAAwAAAPMCEAAKAAAA/QIQABoAAAAYARAACgAAAHoBAAAKAAAAcmV0dXJuIABIAxAABwAAAEACEAACAAAAGAEQAAoAAAB7AQAAOwAAAGJvZHksIHJldHVybiAoYXN5bmMgZnVuY3Rpb24oKXt9KS5jb25zdHJ1Y3RvcgAAABgBEAAKAAAAjAEAAEkAAAB0cAAAGAEQAAoAAACgAQAANQAAAAsAAAAMAAAABAAAAAwAAAANAAAADgAAAGEgRGlzcGxheSBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvciB1bmV4cGVjdGVkbHkvcnVzdGMvYTU1ZGQ3MWQ1ZmIwZWM1YTZhM2E5ZThjMjdiMjEyN2JhNDkxY2U1Mi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAABMEEABLAAAAugkAAA4AAAAPAAAAAAAAAAEAAAAHAAAATWlzc2luZyBjbG9zaW5nIGNvbW1hbmQgdGFnIGF0IACABBAAHwAAAE1pc3NpbmcgY29tbWFuZCB0eXBlIGF0IKgEEAAYAAAAVGVtcGxhdGUgZnVuY3Rpb24gY2FsbCBlcnJvcsgEEAAcAAAAVGVtcGxhdGUgc3ludGF4IGVycm9yOiAA7AQQABcAAAAAAAAA//////////8QAAAABAAAAAQAAAARAAAAEgAAABMAAABjYW5ub3QgYWNjZXNzIGEgVGhyZWFkIExvY2FsIFN0b3JhZ2UgdmFsdWUgZHVyaW5nIG9yIGFmdGVyIGRlc3RydWN0aW9uL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9zdGQvc3JjL3RocmVhZC9sb2NhbC5ycwAAAHYFEABPAAAApQEAABoAAAAUAAAAAAAAAAEAAAAVAAAAL3J1c3RjL2E1NWRkNzFkNWZiMGVjNWE2YTNhOWU4YzI3YjIxMjdiYTQ5MWNlNTIvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwDoBRAATwAAALcBAAAmAAAAY2xvc3VyZSBpbnZva2VkIHJlY3Vyc2l2ZWx5IG9yIGRlc3Ryb3llZCBhbHJlYWR5SnNWYWx1ZSgpAAAAeAYQAAgAAACABhAAAQAAAG51bGwgcG9pbnRlciBwYXNzZWQgdG8gcnVzdHJlY3Vyc2l2ZSB1c2Ugb2YgYW4gb2JqZWN0IGRldGVjdGVkIHdoaWNoIHdvdWxkIGxlYWQgdG8gdW5zYWZlIGFsaWFzaW5nIGluIHJ1c3QAACQAAAAEAAAABAAAACUAAAAmAAAAJwAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVBY2Nlc3NFcnJvcm1lbW9yeSBhbGxvY2F0aW9uIG9mICBieXRlcyBmYWlsZWQKAAAATgcQABUAAABjBxAADgAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc4QHEAAYAAAAUgEAAAkAAABsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzrAcQABwAAABGAgAAHwAAAKwHEAAcAAAARwIAAB4AAAAoAAAADAAAAAQAAAApAAAAJAAAAAgAAAAEAAAAKgAAACsAAAAQAAAABAAAACwAAAAtAAAAJAAAAAgAAAAEAAAALgAAAC8AAABIYXNoIHRhYmxlIGNhcGFjaXR5IG92ZXJmbG93MAgQABwAAAAvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9oYXNoYnJvd24tMC4xMi4zL3NyYy9yYXcvbW9kLnJzAFQIEABPAAAAWgAAACgAAAAwAAAABAAAAAQAAAAxAAAAMgAAADMAAAAwAAAAAAAAAAEAAAAHAAAAbGlicmFyeS9hbGxvYy9zcmMvcmF3X3ZlYy5yc2NhcGFjaXR5IG92ZXJmbG93AAAA+AgQABEAAADcCBAAHAAAAAYCAAAFAAAAYSBmb3JtYXR0aW5nIHRyYWl0IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9ybGlicmFyeS9hbGxvYy9zcmMvZm10LnJzAFcJEAAYAAAAZAIAACAAAAAuLgAAgAkQAAIAAABpbmRleCBvdXQgb2YgYm91bmRzOiB0aGUgbGVuIGlzICBidXQgdGhlIGluZGV4IGlzIAAAjAkQACAAAACsCRAAEgAAAGNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWUAOQAAAAAAAAABAAAAOgAAAGA6IACACRAAAAAAAA0KEAACAAAAfSB9MHgwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OXJhbmdlIHN0YXJ0IGluZGV4ICBvdXQgb2YgcmFuZ2UgZm9yIHNsaWNlIG9mIGxlbmd0aCAAAADtChAAEgAAAP8KEAAiAAAAbGlicmFyeS9jb3JlL3NyYy9zbGljZS9pbmRleC5ycwA0CxAAHwAAADQAAAAFAAAAcmFuZ2UgZW5kIGluZGV4IGQLEAAQAAAA/woQACIAAAA0CxAAHwAAAEkAAAAFAAAAc2xpY2UgaW5kZXggc3RhcnRzIGF0ICBidXQgZW5kcyBhdCAAlAsQABYAAACqCxAADQAAADQLEAAfAAAAXAAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3N0ci9wYXR0ZXJuLnJzANgLEAAfAAAAGgYAABUAAADYCxAAHwAAAEgGAAAVAAAA2AsQAB8AAABJBgAAFQAAAGxpYnJhcnkvY29yZS9zcmMvc3RyL21vZC5yc1suLi5dYnl0ZSBpbmRleCAgaXMgb3V0IG9mIGJvdW5kcyBvZiBgAAAASAwQAAsAAABTDBAAFgAAAAwKEAABAAAAKAwQABsAAABrAAAACQAAAGJlZ2luIDw9IGVuZCAoIDw9ICkgd2hlbiBzbGljaW5nIGAAAJQMEAAOAAAAogwQAAQAAACmDBAAEAAAAAwKEAABAAAAKAwQABsAAABvAAAABQAAACgMEAAbAAAAfQAAAC0AAAAgaXMgbm90IGEgY2hhciBib3VuZGFyeTsgaXQgaXMgaW5zaWRlICAoYnl0ZXMgKSBvZiBgSAwQAAsAAAD4DBAAJgAAAB4NEAAIAAAAJg0QAAYAAAAMChAAAQAAACgMEAAbAAAAfwAAAAUAAABsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvcHJpbnRhYmxlLnJzAAAAZA0QACUAAAAaAAAANgAAAAABAwUFBgYCBwYIBwkRChwLGQwaDRAODQ8EEAMSEhMJFgEXBBgBGQMaBxsBHAIfFiADKwMtCy4BMAMxAjIBpwKpAqoEqwj6AvsF/QL+A/8JrXh5i42iMFdYi4yQHN0OD0tM+/wuLz9cXV/ihI2OkZKpsbq7xcbJyt7k5f8ABBESKTE0Nzo7PUlKXYSOkqmxtLq7xsrOz+TlAAQNDhESKTE0OjtFRklKXmRlhJGbncnOzw0RKTo7RUlXW1xeX2RljZGptLq7xcnf5OXwDRFFSWRlgISyvL6/1dfw8YOFi6Smvr/Fx87P2ttImL3Nxs7PSU5PV1leX4mOj7G2t7/BxsfXERYXW1z29/7/gG1x3t8OH25vHB1ffX6ur3+7vBYXHh9GR05PWFpcXn5/tcXU1dzw8fVyc490dZYmLi+nr7e/x8/X35pAl5gwjx/S1M7/Tk9aWwcIDxAnL+7vbm83PT9CRZCRU2d1yMnQ0djZ5/7/ACBfIoLfBIJECBsEBhGBrA6AqwUfCYEbAxkIAQQvBDQEBwMBBwYHEQpQDxIHVQcDBBwKCQMIAwcDAgMDAwwEBQMLBgEOFQVOBxsHVwcCBhYNUARDAy0DAQQRBg8MOgQdJV8gbQRqJYDIBYKwAxoGgv0DWQcWCRgJFAwUDGoGCgYaBlkHKwVGCiwEDAQBAzELLAQaBgsDgKwGCgYvMU0DgKQIPAMPAzwHOAgrBYL/ERgILxEtAyEPIQ+AjASClxkLFYiUBS8FOwcCDhgJgL4idAyA1hoMBYD/BYDfDPKdAzcJgVwUgLgIgMsFChg7AwoGOAhGCAwGdAseA1oEWQmAgxgcChYJTASAigarpAwXBDGhBIHaJgcMBQWAphCB9QcBICoGTASAjQSAvgMbAw8NAAYBAQMBBAIFBwcCCAgJAgoFCwIOBBABEQISBRMRFAEVAhcCGQ0cBR0IJAFqBGsCrwO8As8C0QLUDNUJ1gLXAtoB4AXhAucE6ALuIPAE+AL6AvsBDCc7Pk5Pj56en3uLk5aisrqGsQYHCTY9Plbz0NEEFBg2N1ZXf6qur7014BKHiY6eBA0OERIpMTQ6RUZJSk5PZGVctrcbHAcICgsUFzY5Oqip2NkJN5CRqAcKOz5maY+Sb1+/7u9aYvT8/5qbLi8nKFWdoKGjpKeorbq8xAYLDBUdOj9FUaanzM2gBxkaIiU+P+fs7//FxgQgIyUmKDM4OkhKTFBTVVZYWlxeYGNlZmtzeH1/iqSqr7DA0K6vbm+TXiJ7BQMELQNmAwEvLoCCHQMxDxwEJAkeBSsFRAQOKoCqBiQEJAQoCDQLTkOBNwkWCggYO0U5A2MICTAWBSEDGwUBQDgESwUvBAoHCQdAICcEDAk2AzoFGgcEDAdQSTczDTMHLggKgSZSTigIKhYaJhwUFwlOBCQJRA0ZBwoGSAgnCXULP0EqBjsFCgZRBgEFEAMFgItiHkgICoCmXiJFCwoGDRM6Bgo2LAQXgLk8ZFMMSAkKRkUbSAhTDUmBB0YKHQNHSTcDDggKBjkHCoE2GYC3AQ8yDYObZnULgMSKTGMNhC+P0YJHobmCOQcqBFwGJgpGCigFE4KwW2VLBDkHEUAFCwIOl/gIhNYqCaLngTMtAxEECIGMiQRrBQ0DCQcQkmBHCXQ8gPYKcwhwFUaAmhQMVwkZgIeBRwOFQg8VhFAfgOErgNUtAxoEAoFAHxE6BQGE4ID3KUwECgQCgxFETD2AwjwGAQRVBRs0AoEOLARkDFYKgK44HQ0sBAkHAg4GgJqD2AUQAw0DdAxZBwwEAQ8MBDgICgYoCCJOgVQMFQMFAwcJHQMLBQYKCgYICAcJgMslCoQGbGlicmFyeS9jb3JlL3NyYy91bmljb2RlL3VuaWNvZGVfZGF0YS5ycwAAAAUTEAAoAAAASwAAACgAAAAFExAAKAAAAFcAAAAWAAAABRMQACgAAABSAAAAPgAAAEVycm9yAAAAAAMAAIMEIACRBWAAXROgABIXIB8MIGAf7yygKyowICxvpuAsAqhgLR77YC4A/iA2nv9gNv0B4TYBCiE3JA3hN6sOYTkvGKE5MBzhR/MeIUzwauFPT28hUJ28oVAAz2FRZdGhUQDaIVIA4OFTMOFhVa7ioVbQ6OFWIABuV/AB/1cAcAAHAC0BAQECAQIBAUgLMBUQAWUHAgYCAgEEIwEeG1sLOgkJARgEAQkBAwEFKwM8CCoYASA3AQEBBAgEAQMHCgIdAToBAQECBAgBCQEKAhoBAgI5AQQCBAICAwMBHgIDAQsCOQEEBQECBAEUAhYGAQE6AQECAQQIAQcDCgIeATsBAQEMAQkBKAEDATcBAQMFAwEEBwILAh0BOgECAQIBAwEFAgcCCwIcAjkCAQECBAgBCQEKAh0BSAEEAQIDAQEIAVEBAgcMCGIBAgkLBkoCGwEBAQEBNw4BBQECBQsBJAkBZgQBBgECAgIZAgQDEAQNAQICBgEPAQADAAMdAh4CHgJAAgEHCAECCwkBLQMBAXUCIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCATAfMQQwBwEBBQEoCQwCIAQCAgEDOAEBAgMBAQM6CAICmAMBDQEHBAEGAQMCxkAAAcMhAAONAWAgAAZpAgAEAQogAlACAAEDAQQBGQIFAZcCGhINASYIGQsuAzABAgQCAicBQwYCAgICDAEIAS8BMwEBAwICBQIBASoCCAHuAQIBBAEAAQAQEBAAAgAB4gGVBQADAQIFBCgDBAGlAgAEAAKZCzEEewE2DykBAgIKAzEEAgIHAT0DJAUBCD4BDAI0CQoEAgFfAwIBAQIGAaABAwgVAjkCAQEBARYBDgcDBcMIAgMBARcBUQECBgEBAgEBAgEC6wECBAYCAQIbAlUIAgEBAmoBAQECBgEBZQMCBAEFAAkBAvUBCgIBAQQBkAQCAgQBIAooBgIECAEJBgIDLg0BAgAHAQYBAVIWAgcBAgECegYDAQECAQcBAUgCAwEBAQACAAU7BwABPwRRAQACAC4CFwABAQMEBQgIAgceBJQDADcEMggBDgEWBQEPAAcBEQIHAQIBBQAHAAE9BAAHbQcAYIDwAACAFgAAACAgAQAwYAEBMHECCQUSAWQBGgEAAQALHQIFAS8BAAEAewlwcm9kdWNlcnMCCGxhbmd1YWdlAQRSdXN0AAxwcm9jZXNzZWQtYnkDBXJ1c3RjHTEuNjQuMCAoYTU1ZGQ3MWQ1IDIwMjItMDktMTkpBndhbHJ1cwYwLjE5LjAMd2FzbS1iaW5kZ2VuEjAuMi44MyAoZWJhNjkxZjM4KQ==");
+
+// src/core/parser/Parser.ts
+var Parser = class {
+ async init() {
+ await rusty_engine_default(rusty_engine_bg_default);
+ const config = new ParserConfig("<%", "%>", "\0", "*", "-", "_", "tR");
+ this.renderer = new Renderer(config);
+ }
+ async parse_commands(content, context) {
+ return this.renderer.render_content(content, context);
+ }
+};
+
+// src/core/Templater.ts
+var RunMode;
+(function(RunMode2) {
+ RunMode2[RunMode2["CreateNewFromTemplate"] = 0] = "CreateNewFromTemplate";
+ RunMode2[RunMode2["AppendActiveFile"] = 1] = "AppendActiveFile";
+ RunMode2[RunMode2["OverwriteFile"] = 2] = "OverwriteFile";
+ RunMode2[RunMode2["OverwriteActiveFile"] = 3] = "OverwriteActiveFile";
+ RunMode2[RunMode2["DynamicProcessor"] = 4] = "DynamicProcessor";
+ RunMode2[RunMode2["StartupTemplate"] = 5] = "StartupTemplate";
+})(RunMode || (RunMode = {}));
+var Templater = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.functions_generator = new FunctionsGenerator(this.plugin);
+ this.parser = new Parser();
+ }
+ async setup() {
+ await this.parser.init();
+ await this.functions_generator.init();
+ this.plugin.registerMarkdownPostProcessor((el, ctx) => this.process_dynamic_templates(el, ctx));
+ }
+ create_running_config(template_file, target_file, run_mode) {
+ const active_file = app.workspace.getActiveFile();
+ return {
+ template_file,
+ target_file,
+ run_mode,
+ active_file
+ };
+ }
+ async read_and_parse_template(config) {
+ const template_content = await app.vault.read(config.template_file);
+ return this.parse_template(config, template_content);
+ }
+ async parse_template(config, template_content) {
+ const functions_object = await this.functions_generator.generate_object(config, FunctionsMode.USER_INTERNAL);
+ this.current_functions_object = functions_object;
+ const content = await this.parser.parse_commands(template_content, functions_object);
+ return content;
+ }
+ async create_new_note_from_template(template, folder, filename, open_new_note = true) {
+ if (!folder) {
+ const new_file_location = app.vault.getConfig("newFileLocation");
+ switch (new_file_location) {
+ case "current": {
+ const active_file = app.workspace.getActiveFile();
+ if (active_file) {
+ folder = active_file.parent;
+ }
+ break;
+ }
+ case "folder":
+ folder = app.fileManager.getNewFileParent("");
+ break;
+ case "root":
+ folder = app.vault.getRoot();
+ break;
+ default:
+ break;
+ }
+ }
+ const created_note = await app.fileManager.createNewMarkdownFile(folder, filename ?? "Untitled");
+ let running_config;
+ let output_content;
+ if (template instanceof import_obsidian13.TFile) {
+ running_config = this.create_running_config(template, created_note, 0);
+ output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting.");
+ } else {
+ running_config = this.create_running_config(void 0, created_note, 0);
+ output_content = await errorWrapper(async () => this.parse_template(running_config, template), "Template parsing error, aborting.");
+ }
+ if (output_content == null) {
+ await app.vault.delete(created_note);
+ return;
+ }
+ await app.vault.modify(created_note, output_content);
+ app.workspace.trigger("templater:new-note-from-template", {
+ file: created_note,
+ content: output_content
+ });
+ if (open_new_note) {
+ const active_leaf = app.workspace.getLeaf(false);
+ if (!active_leaf) {
+ log_error(new TemplaterError("No active leaf"));
+ return;
+ }
+ await active_leaf.openFile(created_note, {
+ state: { mode: "source" }
+ });
+ await this.plugin.editor_handler.jump_to_next_cursor_location(created_note, true);
+ active_leaf.setEphemeralState({
+ rename: "all"
+ });
+ }
+ return created_note;
+ }
+ async append_template_to_active_file(template_file) {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView);
+ if (active_view === null) {
+ log_error(new TemplaterError("No active view, can't append templates."));
+ return;
+ }
+ const running_config = this.create_running_config(template_file, active_view.file, 1);
+ const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting.");
+ if (output_content == null) {
+ return;
+ }
+ const editor = active_view.editor;
+ const doc = editor.getDoc();
+ const oldSelections = doc.listSelections();
+ doc.replaceSelection(output_content);
+ app.workspace.trigger("templater:template-appended", {
+ view: active_view,
+ content: output_content,
+ oldSelections,
+ newSelections: doc.listSelections()
+ });
+ await this.plugin.editor_handler.jump_to_next_cursor_location(active_view.file, true);
+ }
+ async write_template_to_file(template_file, file) {
+ const running_config = this.create_running_config(template_file, file, 2);
+ const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting.");
+ if (output_content == null) {
+ return;
+ }
+ await app.vault.modify(file, output_content);
+ app.workspace.trigger("templater:new-note-from-template", {
+ file,
+ content: output_content
+ });
+ await this.plugin.editor_handler.jump_to_next_cursor_location(file, true);
+ }
+ overwrite_active_file_commands() {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian13.MarkdownView);
+ if (active_view === null) {
+ log_error(new TemplaterError("Active view is null, can't overwrite content"));
+ return;
+ }
+ this.overwrite_file_commands(active_view.file, true);
+ }
+ async overwrite_file_commands(file, active_file = false) {
+ const running_config = this.create_running_config(file, file, active_file ? 3 : 2);
+ const output_content = await errorWrapper(async () => this.read_and_parse_template(running_config), "Template parsing error, aborting.");
+ if (output_content == null) {
+ return;
+ }
+ await app.vault.modify(file, output_content);
+ app.workspace.trigger("templater:overwrite-file", {
+ file,
+ content: output_content
+ });
+ await this.plugin.editor_handler.jump_to_next_cursor_location(file, true);
+ }
+ async process_dynamic_templates(el, ctx) {
+ const dynamic_command_regex = generate_dynamic_command_regex();
+ const walker = document.createNodeIterator(el, NodeFilter.SHOW_TEXT);
+ let node;
+ let pass = false;
+ let functions_object;
+ while (node = walker.nextNode()) {
+ let content = node.nodeValue;
+ if (content !== null) {
+ let match = dynamic_command_regex.exec(content);
+ if (match !== null) {
+ const file = app.metadataCache.getFirstLinkpathDest("", ctx.sourcePath);
+ if (!file || !(file instanceof import_obsidian13.TFile)) {
+ return;
+ }
+ if (!pass) {
+ pass = true;
+ const config = this.create_running_config(file, file, 4);
+ functions_object = await this.functions_generator.generate_object(config, FunctionsMode.USER_INTERNAL);
+ this.current_functions_object = functions_object;
+ }
+ }
+ while (match != null) {
+ const complete_command = match[1] + match[2];
+ const command_output = await errorWrapper(async () => {
+ return await this.parser.parse_commands(complete_command, functions_object);
+ }, `Command Parsing error in dynamic command '${complete_command}'`);
+ if (command_output == null) {
+ return;
+ }
+ const start2 = dynamic_command_regex.lastIndex - match[0].length;
+ const end2 = dynamic_command_regex.lastIndex;
+ content = content.substring(0, start2) + command_output + content.substring(end2);
+ dynamic_command_regex.lastIndex += command_output.length - match[0].length;
+ match = dynamic_command_regex.exec(content);
+ }
+ node.nodeValue = content;
+ }
+ }
+ }
+ get_new_file_template_for_folder(folder) {
+ do {
+ const match = this.plugin.settings.folder_templates.find((e) => e.folder == folder.path);
+ if (match && match.template) {
+ return match.template;
+ }
+ folder = folder.parent;
+ } while (folder);
+ }
+ static async on_file_creation(templater, file) {
+ if (!(file instanceof import_obsidian13.TFile) || file.extension !== "md") {
+ return;
+ }
+ const template_folder = (0, import_obsidian13.normalizePath)(templater.plugin.settings.templates_folder);
+ if (file.path.includes(template_folder) && template_folder !== "/") {
+ return;
+ }
+ await delay(300);
+ if (file.stat.size == 0 && templater.plugin.settings.enable_folder_templates) {
+ const folder_template_match = templater.get_new_file_template_for_folder(file.parent);
+ if (!folder_template_match) {
+ return;
+ }
+ const template_file = await errorWrapper(async () => {
+ return resolve_tfile(folder_template_match);
+ }, `Couldn't find template ${folder_template_match}`);
+ if (template_file == null) {
+ return;
+ }
+ await templater.write_template_to_file(template_file, file);
+ } else {
+ if (file.stat.size <= 1e5) {
+ await templater.overwrite_file_commands(file);
+ } else {
+ console.log(`Templater skipped parsing ${file.path} because file size exceeds 10000`);
+ }
+ }
+ }
+ async execute_startup_scripts() {
+ for (const template of this.plugin.settings.startup_templates) {
+ if (!template) {
+ continue;
+ }
+ const file = errorWrapperSync(() => resolve_tfile(template), `Couldn't find startup template "${template}"`);
+ if (!file) {
+ continue;
+ }
+ const running_config = this.create_running_config(file, file, 5);
+ await errorWrapper(async () => this.read_and_parse_template(running_config), `Startup Template parsing error, aborting.`);
+ }
+ }
+};
+
+// src/handlers/EventHandler.ts
+var import_obsidian14 = __toModule(require("obsidian"));
+var EventHandler = class {
+ constructor(plugin, templater, settings) {
+ this.plugin = plugin;
+ this.templater = templater;
+ this.settings = settings;
+ }
+ setup() {
+ app.workspace.onLayoutReady(() => {
+ this.update_trigger_file_on_creation();
+ });
+ this.update_syntax_highlighting();
+ this.update_file_menu();
+ }
+ update_syntax_highlighting() {
+ if (this.plugin.settings.syntax_highlighting) {
+ this.syntax_highlighting_event = app.workspace.on("codemirror", (cm) => {
+ cm.setOption("mode", "templater");
+ });
+ app.workspace.iterateCodeMirrors((cm) => {
+ cm.setOption("mode", "templater");
+ });
+ this.plugin.registerEvent(this.syntax_highlighting_event);
+ } else {
+ if (this.syntax_highlighting_event) {
+ app.vault.offref(this.syntax_highlighting_event);
+ }
+ app.workspace.iterateCodeMirrors((cm) => {
+ cm.setOption("mode", "hypermd");
+ });
+ }
+ }
+ update_trigger_file_on_creation() {
+ if (this.settings.trigger_on_file_creation) {
+ this.trigger_on_file_creation_event = app.vault.on("create", (file) => Templater.on_file_creation(this.templater, file));
+ this.plugin.registerEvent(this.trigger_on_file_creation_event);
+ } else {
+ if (this.trigger_on_file_creation_event) {
+ app.vault.offref(this.trigger_on_file_creation_event);
+ this.trigger_on_file_creation_event = void 0;
+ }
+ }
+ }
+ update_file_menu() {
+ this.plugin.registerEvent(app.workspace.on("file-menu", (menu, file) => {
+ if (file instanceof import_obsidian14.TFolder) {
+ menu.addItem((item) => {
+ item.setTitle("Create new note from template").setIcon("templater-icon").onClick(() => {
+ this.plugin.fuzzy_suggester.create_new_note_from_template(file);
+ });
+ });
+ }
+ }));
+ }
+};
+
+// src/handlers/CommandHandler.ts
+var CommandHandler = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ }
+ setup() {
+ this.plugin.addCommand({
+ id: "insert-templater",
+ name: "Open Insert Template modal",
+ hotkeys: [
+ {
+ modifiers: ["Alt"],
+ key: "e"
+ }
+ ],
+ callback: () => {
+ this.plugin.fuzzy_suggester.insert_template();
+ }
+ });
+ this.plugin.addCommand({
+ id: "replace-in-file-templater",
+ name: "Replace templates in the active file",
+ hotkeys: [
+ {
+ modifiers: ["Alt"],
+ key: "r"
+ }
+ ],
+ callback: () => {
+ this.plugin.templater.overwrite_active_file_commands();
+ }
+ });
+ this.plugin.addCommand({
+ id: "jump-to-next-cursor-location",
+ name: "Jump to next cursor location",
+ hotkeys: [
+ {
+ modifiers: ["Alt"],
+ key: "Tab"
+ }
+ ],
+ callback: () => {
+ this.plugin.editor_handler.jump_to_next_cursor_location();
+ }
+ });
+ this.plugin.addCommand({
+ id: "create-new-note-from-template",
+ name: "Create new note from template",
+ hotkeys: [
+ {
+ modifiers: ["Alt"],
+ key: "n"
+ }
+ ],
+ callback: () => {
+ this.plugin.fuzzy_suggester.create_new_note_from_template();
+ }
+ });
+ this.register_templates_hotkeys();
+ }
+ register_templates_hotkeys() {
+ this.plugin.settings.enabled_templates_hotkeys.forEach((template) => {
+ if (template) {
+ this.add_template_hotkey(null, template);
+ }
+ });
+ }
+ add_template_hotkey(old_template, new_template) {
+ this.remove_template_hotkey(old_template);
+ if (new_template) {
+ this.plugin.addCommand({
+ id: new_template,
+ name: `Insert ${new_template}`,
+ callback: () => {
+ const template = errorWrapperSync(() => resolve_tfile(new_template), `Couldn't find the template file associated with this hotkey`);
+ if (!template) {
+ return;
+ }
+ this.plugin.templater.append_template_to_active_file(template);
+ }
+ });
+ }
+ }
+ remove_template_hotkey(template) {
+ if (template) {
+ app.commands.removeCommand(`${this.plugin.manifest.id}:${template}`);
+ }
+ }
+};
+
+// src/editor/Editor.ts
+var import_obsidian17 = __toModule(require("obsidian"));
+
+// src/editor/CursorJumper.ts
+var import_obsidian15 = __toModule(require("obsidian"));
+var CursorJumper = class {
+ constructor() {
+ }
+ async jump_to_next_cursor_location() {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView);
+ if (!active_view) {
+ return;
+ }
+ const active_file = active_view.file;
+ await active_view.save();
+ const content = await app.vault.read(active_file);
+ const { new_content, positions } = this.replace_and_get_cursor_positions(content);
+ if (positions) {
+ await app.vault.modify(active_file, new_content);
+ this.set_cursor_location(positions);
+ }
+ if (app.vault.getConfig("vimMode")) {
+ const cm = active_view.editor.cm.cm;
+ window.CodeMirrorAdapter.Vim.handleKey(cm, "i", "mapping");
+ }
+ }
+ get_editor_position_from_index(content, index) {
+ const substr = content.slice(0, index);
+ let l = 0;
+ let offset2 = -1;
+ let r = -1;
+ for (; (r = substr.indexOf("\n", r + 1)) !== -1; l++, offset2 = r)
+ ;
+ offset2 += 1;
+ const ch = content.slice(offset2, index).length;
+ return { line: l, ch };
+ }
+ replace_and_get_cursor_positions(content) {
+ let cursor_matches = [];
+ let match;
+ const cursor_regex = new RegExp("<%\\s*tp.file.cursor\\((?[0-9]{0,2})\\)\\s*%>", "g");
+ while ((match = cursor_regex.exec(content)) != null) {
+ cursor_matches.push(match);
+ }
+ if (cursor_matches.length === 0) {
+ return {};
+ }
+ cursor_matches.sort((m1, m2) => {
+ return Number(m1.groups && m1.groups["order"]) - Number(m2.groups && m2.groups["order"]);
+ });
+ const match_str = cursor_matches[0][0];
+ cursor_matches = cursor_matches.filter((m) => {
+ return m[0] === match_str;
+ });
+ const positions = [];
+ let index_offset = 0;
+ for (const match2 of cursor_matches) {
+ const index = match2.index - index_offset;
+ positions.push(this.get_editor_position_from_index(content, index));
+ content = content.replace(new RegExp(escape_RegExp(match2[0])), "");
+ index_offset += match2[0].length;
+ if (match2[1] === "") {
+ break;
+ }
+ }
+ return { new_content: content, positions };
+ }
+ set_cursor_location(positions) {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian15.MarkdownView);
+ if (!active_view) {
+ return;
+ }
+ const editor = active_view.editor;
+ const selections = [];
+ for (const pos of positions) {
+ selections.push({ from: pos });
+ }
+ const transaction = {
+ selections
+ };
+ editor.transaction(transaction);
+ }
+};
+
+// src/editor/Autocomplete.ts
+var import_obsidian16 = __toModule(require("obsidian"));
+
+// toml:/home/runner/work/Templater/Templater/docs/documentation.toml
+var tp = { config: { name: "config", description: "This module exposes Templater's running configuration.\n\nThis is mostly useful when writing scripts requiring some context information.\n", functions: { template_file: { name: "template_file", description: "The `TFile` object representing the template file.", definition: "tp.file.template_file" }, target_file: { name: "target_file", description: "The `TFile` object representing the target file where the template will be inserted.", definition: "tp.config.target_file" }, run_mode: { name: "run_mode", description: "The `RunMode`, representing the way Templater was launched (Create new from template, Append to active file, ...)", definition: "tp.config.run_mode" }, active_file: { name: "active_file", description: "The active file (if existing) when launching Templater.", definition: "tp.config.active_file?" } } }, date: { name: "date", description: "This module contains every internal function related to dates.", functions: { now: { name: "now", description: "Retrieves the date.", definition: 'tp.date.now(format: string = "YYYY-MM-DD", offset?: number\u23AEstring, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, offset: { name: "offset", description: "Offset for the day, e.g. set this to `-7` to get last week's date. You can also specify the offset as a string using the ISO 8601 format" }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } }, tomorrow: { name: "tomorrow", description: "Retrieves tomorrow's date.", definition: 'tp.date.tomorrow(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, yesterday: { name: "yesterday", description: "Retrieves yesterday's date.", definition: 'tp.date.yesterday(format: string = "YYYY-MM-DD")', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" } } }, weekday: { name: "weekday", description: "", definition: 'tp.date.weekday(format: string = "YYYY-MM-DD", weekday: number, reference?: string, reference_format?: string)', args: { format: { name: "format", description: "Format for the date, refer to [format reference](https://momentjs.com/docs/#/displaying/format/)" }, weekday: { name: "weekday", description: "Week day number. If the locale assigns Monday as the first day of the week, `0` will be Monday, `-7` will be last week's day." }, reference: { name: "reference", description: "The date referential, e.g. set this to the note's title" }, reference_format: { name: "reference_format", description: "The date reference format." } } } } }, file: { name: "file", description: "This module contains every internal function related to files.", functions: { content: { name: "content", description: "Retrieves the file's content", definition: "tp.file.content" }, create_new: { name: "create_new", description: "Creates a new file using a specified template or with a specified content.", definition: "tp.file.create_new(template: TFile \u23AE string, filename?: string, open_new: boolean = false, folder?: TFolder)", args: { template: { name: "template", description: "Either the template used for the new file content, or the file content as a string. If it is the template to use, you retrieve it with `tp.file.find_tfile(TEMPLATENAME)`" }, filename: { name: "filename", description: 'The filename of the new file, defaults to "Untitled".' }, open_new: { name: "open_new", description: "Whether to open or not the newly created file. Warning: if you use this option, since commands are executed asynchronously, the file can be opened first and then other commands are appended to that new file and not the previous file." }, folder: { name: "folder", description: 'The folder to put the new file in, defaults to obsidian\'s default location. If you want the file to appear in a different folder, specify it with `app.vault.getAbstractFileByPath("FOLDERNAME")`' } } }, creation_date: { name: "creation_date", description: "Retrieves the file's creation date.", definition: 'tp.file.creation_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference" } } }, cursor: { name: "cursor", description: "Sets the cursor to this location after the template has been inserted. \n\nYou can navigate between the different tp.file.cursor using the configured hotkey in obsidian settings.\n", definition: "tp.file.cursor(order?: number)", args: { order: { name: "order", description: "The order of the different cursors jump, e.g. it will jump from 1 to 2 to 3, and so on.\nIf you specify multiple tp.file.cursor with the same order, the editor will switch to multi-cursor.\n" } } }, cursor_append: { name: "cursor_append", description: "Appends some content after the active cursor in the file.", definition: "tp.file.cursor_append(content: string)", args: { content: { name: "content", description: "The content to append after the active cursor" } } }, exists: { name: "exists", description: "The filename of the file we want to check existence. The fullpath to the file, relative to the Vault and containing the extension, must be provided. e.g. MyFolder/SubFolder/MyFile.", definition: "tp.file.exists(filename: string)", args: { filename: { name: "filename", description: "The filename of the file we want to check existence, e.g. MyFile." } } }, find_tfile: { name: "find_tfile", description: "Search for a file and returns its `TFile` instance", definition: "tp.file.find_tfile(filename: string)", args: { filename: { name: "filename", description: "The filename we want to search and resolve as a `TFile`" } } }, folder: { name: "folder", description: "Retrieves the file's folder name.", definition: "tp.file.folder(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, appends the vault relative path to the folder name." } } }, include: { name: "include", description: "Includes the file's link content. Templates in the included content will be resolved.", definition: "tp.file.include(include_link: string \u23AE TFile)", args: { include_link: { name: "include_link", description: "The link to the file to include, e.g. [[MyFile]], or a TFile object. Also supports sections or blocks inclusions, e.g. [[MyFile#Section1]]" } } }, last_modified_date: { name: "last_modified_date", description: "Retrieves the file's last modification date.", definition: 'tp.file.last_modified_date(format: string = "YYYY-MM-DD HH:mm")', args: { format: { name: "format", description: "Format for the date, refer to format reference." } } }, move: { name: "functions.move", description: "Moves the file to the desired vault location.", definition: "tp.file.move(new_path: string, file_to_move?: TFile)", args: { new_path: { name: "new_path", description: "The new vault relative path of the file, without the file extension. Note: the new path needs to include the folder and the filename, e.g. /Notes/MyNote" } } }, path: { name: "path", description: "Retrieves the file's absolute path on the system.", definition: "tp.file.path(relative: boolean = false)", args: { relative: { name: "relative", description: "If set to true, only retrieves the vault's relative path." } } }, rename: { name: "rename", description: "Renames the file (keeps the same file extension).", definition: "tp.file.rename(new_title: string)", args: { new_title: { name: "new_title", description: "The new file title." } } }, selection: { name: "selection", description: "Retrieves the active file's text selection.", definition: "tp.file.selection()" }, tags: { name: "tags", description: "Retrieves the file's tags (array of string)", definition: "tp.file.tags" }, title: { name: "title", definition: "tp.file.title", description: "Retrieves the file's title." } } }, frontmatter: { name: "frontmatter", description: "This modules exposes all the frontmatter variables of a file as variables." }, obsidian: { name: "obsidian", description: "This module exposes all the functions and classes from the obsidian API." }, system: { name: "system", description: "This module contains system related functions.", functions: { clipboard: { name: "clipboard", description: "Retrieves the clipboard's content", definition: "tp.system.clipboard()" }, prompt: { name: "prompt", description: "Spawns a prompt modal and returns the user's input.", definition: "tp.system.prompt(prompt_text?: string, default_value?: string, throw_on_cancel: boolean = false, multiline?: boolean = false)", args: { prompt_text: { name: "prompt_text", description: "Text placed above the input field" }, default_value: { name: "default_value", description: "A default value for the input field" }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, multiline: { name: "multiline", description: "If set to true, the input field will be a multiline textarea" } } }, suggester: { name: "suggester", description: "Spawns a suggester prompt and returns the user's chosen item.", definition: 'tp.system.suggester(text_items: string[] \u23AE ((item: T) => string), items: T[], throw_on_cancel: boolean = false, placeholder: string = "", limit?: number = undefined)', args: { text_items: { name: "text_items", description: "Array of strings representing the text that will be displayed for each item in the suggester prompt. This can also be a function that maps an item to its text representation." }, items: { name: "items", description: "Array containing the values of each item in the correct order." }, throw_on_cancel: { name: "throw_on_cancel", description: "Throws an error if the prompt is canceled, instead of returning a `null` value" }, placeholder: { name: "placeholder", description: "Placeholder string of the prompt" }, limit: { name: "limit", description: "Limit the number of items rendered at once (useful to improve performance when displaying large lists)" } } } } }, web: { name: "web", description: "This modules contains every internal function related to the web (making web requests).", functions: { daily_quote: { name: "daily_quote", description: "Retrieves and parses the daily quote from the API https://api.quotable.io", definition: "tp.web.daily_quote()" }, random_picture: { name: "random_picture", description: "Gets a random image from https://unsplash.com/", definition: "tp.web.random_picture(size?: string, query?: string, include_size?: boolean)", args: { size: { name: "size", description: "Image size in the format `x`" }, query: { name: "query", description: "Limits selection to photos matching a search term. Multiple search terms can be passed separated by a comma `,`" }, include_dimensions: { name: "include_size", description: "Optional argument to include the specified size in the image link markdown. Defaults to false" } } } } } };
+var documentation_default = { tp };
+
+// src/editor/TpDocumentation.ts
+var module_names = [
+ "config",
+ "date",
+ "file",
+ "frontmatter",
+ "obsidian",
+ "system",
+ "user",
+ "web"
+];
+var module_names_checker = new Set(module_names);
+function is_module_name(x) {
+ return typeof x === "string" && module_names_checker.has(x);
+}
+function is_function_documentation(x) {
+ if (x.definition) {
+ return true;
+ }
+ return false;
+}
+var Documentation = class {
+ constructor() {
+ this.documentation = documentation_default;
+ }
+ get_all_modules_documentation() {
+ return Object.values(this.documentation.tp);
+ }
+ get_all_functions_documentation(module_name) {
+ if (!this.documentation.tp[module_name].functions) {
+ return;
+ }
+ return Object.values(this.documentation.tp[module_name].functions);
+ }
+ get_module_documentation(module_name) {
+ return this.documentation.tp[module_name];
+ }
+ get_function_documentation(module_name, function_name) {
+ return this.documentation.tp[module_name].functions[function_name];
+ }
+ get_argument_documentation(module_name, function_name, argument_name) {
+ const function_doc = this.get_function_documentation(module_name, function_name);
+ if (!function_doc || !function_doc.args) {
+ return null;
+ }
+ return function_doc.args[argument_name];
+ }
+};
+
+// src/editor/Autocomplete.ts
+var Autocomplete = class extends import_obsidian16.EditorSuggest {
+ constructor() {
+ super(app);
+ this.tp_keyword_regex = /tp\.(?[a-z]*)?(?\.(?[a-z_]*)?)?$/;
+ this.documentation = new Documentation();
+ }
+ onTrigger(cursor, editor, _file) {
+ const range = editor.getRange({ line: cursor.line, ch: 0 }, { line: cursor.line, ch: cursor.ch });
+ const match = this.tp_keyword_regex.exec(range);
+ if (!match) {
+ return null;
+ }
+ let query;
+ const module_name = match.groups && match.groups["module"] || "";
+ this.module_name = module_name;
+ if (match.groups && match.groups["fn_trigger"]) {
+ if (module_name == "" || !is_module_name(module_name)) {
+ return null;
+ }
+ this.function_trigger = true;
+ this.function_name = match.groups["fn"] || "";
+ query = this.function_name;
+ } else {
+ this.function_trigger = false;
+ query = this.module_name;
+ }
+ const trigger_info = {
+ start: { line: cursor.line, ch: cursor.ch - query.length },
+ end: { line: cursor.line, ch: cursor.ch },
+ query
+ };
+ this.latest_trigger_info = trigger_info;
+ return trigger_info;
+ }
+ getSuggestions(context) {
+ let suggestions;
+ if (this.module_name && this.function_trigger) {
+ suggestions = this.documentation.get_all_functions_documentation(this.module_name);
+ } else {
+ suggestions = this.documentation.get_all_modules_documentation();
+ }
+ if (!suggestions) {
+ return [];
+ }
+ return suggestions.filter((s) => s.name.startsWith(context.query));
+ }
+ renderSuggestion(value, el) {
+ el.createEl("b", { text: value.name });
+ el.createEl("br");
+ if (this.function_trigger && is_function_documentation(value)) {
+ el.createEl("code", { text: value.definition });
+ }
+ if (value.description) {
+ el.createEl("div", { text: value.description });
+ }
+ }
+ selectSuggestion(value, _evt) {
+ const active_view = app.workspace.getActiveViewOfType(import_obsidian16.MarkdownView);
+ if (!active_view) {
+ return;
+ }
+ active_view.editor.replaceRange(value.name, this.latest_trigger_info.start, this.latest_trigger_info.end);
+ if (this.latest_trigger_info.start.ch == this.latest_trigger_info.end.ch) {
+ const cursor_pos = this.latest_trigger_info.end;
+ cursor_pos.ch += value.name.length;
+ active_view.editor.setCursor(cursor_pos);
+ }
+ }
+};
+
+// src/editor/mode/javascript.js
+(function(mod) {
+ mod(window.CodeMirror);
+})(function(CodeMirror) {
+ "use strict";
+ CodeMirror.defineMode("javascript", function(config, parserConfig) {
+ var indentUnit = config.indentUnit;
+ var statementIndent = parserConfig.statementIndent;
+ var jsonldMode = parserConfig.jsonld;
+ var jsonMode = parserConfig.json || jsonldMode;
+ var trackScope = parserConfig.trackScope !== false;
+ var isTS = parserConfig.typescript;
+ var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/;
+ var keywords = function() {
+ function kw(type2) {
+ return { type: type2, style: "keyword" };
+ }
+ var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
+ var operator = kw("operator"), atom = { type: "atom", style: "atom" };
+ return {
+ if: kw("if"),
+ while: A,
+ with: A,
+ else: B,
+ do: B,
+ try: B,
+ finally: B,
+ return: D,
+ break: D,
+ continue: D,
+ new: kw("new"),
+ delete: C,
+ void: C,
+ throw: C,
+ debugger: kw("debugger"),
+ var: kw("var"),
+ const: kw("var"),
+ let: kw("var"),
+ function: kw("function"),
+ catch: kw("catch"),
+ for: kw("for"),
+ switch: kw("switch"),
+ case: kw("case"),
+ default: kw("default"),
+ in: operator,
+ typeof: operator,
+ instanceof: operator,
+ true: atom,
+ false: atom,
+ null: atom,
+ undefined: atom,
+ NaN: atom,
+ Infinity: atom,
+ this: kw("this"),
+ class: kw("class"),
+ super: kw("atom"),
+ yield: C,
+ export: kw("export"),
+ import: kw("import"),
+ extends: C,
+ await: C
+ };
+ }();
+ var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
+ var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
+ function readRegexp(stream) {
+ var escaped = false, next, inSet = false;
+ while ((next = stream.next()) != null) {
+ if (!escaped) {
+ if (next == "/" && !inSet)
+ return;
+ if (next == "[")
+ inSet = true;
+ else if (inSet && next == "]")
+ inSet = false;
+ }
+ escaped = !escaped && next == "\\";
+ }
+ }
+ var type, content;
+ function ret(tp2, style, cont2) {
+ type = tp2;
+ content = cont2;
+ return style;
+ }
+ function tokenBase(stream, state) {
+ var ch = stream.next();
+ if (ch == '"' || ch == "'") {
+ state.tokenize = tokenString(ch);
+ return state.tokenize(stream, state);
+ } else if (ch == "." && stream.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)) {
+ return ret("number", "number");
+ } else if (ch == "." && stream.match("..")) {
+ return ret("spread", "meta");
+ } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
+ return ret(ch);
+ } else if (ch == "=" && stream.eat(">")) {
+ return ret("=>", "operator");
+ } else if (ch == "0" && stream.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {
+ return ret("number", "number");
+ } else if (/\d/.test(ch)) {
+ stream.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/);
+ return ret("number", "number");
+ } else if (ch == "/") {
+ if (stream.eat("*")) {
+ state.tokenize = tokenComment;
+ return tokenComment(stream, state);
+ } else if (stream.eat("/")) {
+ stream.skipToEnd();
+ return ret("comment", "comment");
+ } else if (expressionAllowed(stream, state, 1)) {
+ readRegexp(stream);
+ stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
+ return ret("regexp", "string-2");
+ } else {
+ stream.eat("=");
+ return ret("operator", "operator", stream.current());
+ }
+ } else if (ch == "`") {
+ state.tokenize = tokenQuasi;
+ return tokenQuasi(stream, state);
+ } else if (ch == "#" && stream.peek() == "!") {
+ stream.skipToEnd();
+ return ret("meta", "meta");
+ } else if (ch == "#" && stream.eatWhile(wordRE)) {
+ return ret("variable", "property");
+ } else if (ch == "<" && stream.match("!--") || ch == "-" && stream.match("->") && !/\S/.test(stream.string.slice(0, stream.start))) {
+ stream.skipToEnd();
+ return ret("comment", "comment");
+ } else if (isOperatorChar.test(ch)) {
+ if (ch != ">" || !state.lexical || state.lexical.type != ">") {
+ if (stream.eat("=")) {
+ if (ch == "!" || ch == "=")
+ stream.eat("=");
+ } else if (/[<>*+\-|&?]/.test(ch)) {
+ stream.eat(ch);
+ if (ch == ">")
+ stream.eat(ch);
+ }
+ }
+ if (ch == "?" && stream.eat("."))
+ return ret(".");
+ return ret("operator", "operator", stream.current());
+ } else if (wordRE.test(ch)) {
+ stream.eatWhile(wordRE);
+ var word = stream.current();
+ if (state.lastType != ".") {
+ if (keywords.propertyIsEnumerable(word)) {
+ var kw = keywords[word];
+ return ret(kw.type, kw.style, word);
+ }
+ if (word == "async" && stream.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/, false))
+ return ret("async", "keyword", word);
+ }
+ return ret("variable", "variable", word);
+ }
+ }
+ function tokenString(quote) {
+ return function(stream, state) {
+ var escaped = false, next;
+ if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)) {
+ state.tokenize = tokenBase;
+ return ret("jsonld-keyword", "meta");
+ }
+ while ((next = stream.next()) != null) {
+ if (next == quote && !escaped)
+ break;
+ escaped = !escaped && next == "\\";
+ }
+ if (!escaped)
+ state.tokenize = tokenBase;
+ return ret("string", "string");
+ };
+ }
+ function tokenComment(stream, state) {
+ var maybeEnd = false, ch;
+ while (ch = stream.next()) {
+ if (ch == "/" && maybeEnd) {
+ state.tokenize = tokenBase;
+ break;
+ }
+ maybeEnd = ch == "*";
+ }
+ return ret("comment", "comment");
+ }
+ function tokenQuasi(stream, state) {
+ var escaped = false, next;
+ while ((next = stream.next()) != null) {
+ if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
+ state.tokenize = tokenBase;
+ break;
+ }
+ escaped = !escaped && next == "\\";
+ }
+ return ret("quasi", "string-2", stream.current());
+ }
+ var brackets = "([{}])";
+ function findFatArrow(stream, state) {
+ if (state.fatArrowAt)
+ state.fatArrowAt = null;
+ var arrow2 = stream.string.indexOf("=>", stream.start);
+ if (arrow2 < 0)
+ return;
+ if (isTS) {
+ var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow2));
+ if (m)
+ arrow2 = m.index;
+ }
+ var depth = 0, sawSomething = false;
+ for (var pos = arrow2 - 1; pos >= 0; --pos) {
+ var ch = stream.string.charAt(pos);
+ var bracket = brackets.indexOf(ch);
+ if (bracket >= 0 && bracket < 3) {
+ if (!depth) {
+ ++pos;
+ break;
+ }
+ if (--depth == 0) {
+ if (ch == "(")
+ sawSomething = true;
+ break;
+ }
+ } else if (bracket >= 3 && bracket < 6) {
+ ++depth;
+ } else if (wordRE.test(ch)) {
+ sawSomething = true;
+ } else if (/["'\/`]/.test(ch)) {
+ for (; ; --pos) {
+ if (pos == 0)
+ return;
+ var next = stream.string.charAt(pos - 1);
+ if (next == ch && stream.string.charAt(pos - 2) != "\\") {
+ pos--;
+ break;
+ }
+ }
+ } else if (sawSomething && !depth) {
+ ++pos;
+ break;
+ }
+ }
+ if (sawSomething && !depth)
+ state.fatArrowAt = pos;
+ }
+ var atomicTypes = {
+ atom: true,
+ number: true,
+ variable: true,
+ string: true,
+ regexp: true,
+ this: true,
+ import: true,
+ "jsonld-keyword": true
+ };
+ function JSLexical(indented, column, type2, align, prev, info) {
+ this.indented = indented;
+ this.column = column;
+ this.type = type2;
+ this.prev = prev;
+ this.info = info;
+ if (align != null)
+ this.align = align;
+ }
+ function inScope(state, varname) {
+ if (!trackScope)
+ return false;
+ for (var v = state.localVars; v; v = v.next)
+ if (v.name == varname)
+ return true;
+ for (var cx2 = state.context; cx2; cx2 = cx2.prev) {
+ for (var v = cx2.vars; v; v = v.next)
+ if (v.name == varname)
+ return true;
+ }
+ }
+ function parseJS(state, style, type2, content2, stream) {
+ var cc = state.cc;
+ cx.state = state;
+ cx.stream = stream;
+ cx.marked = null, cx.cc = cc;
+ cx.style = style;
+ if (!state.lexical.hasOwnProperty("align"))
+ state.lexical.align = true;
+ while (true) {
+ var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
+ if (combinator(type2, content2)) {
+ while (cc.length && cc[cc.length - 1].lex)
+ cc.pop()();
+ if (cx.marked)
+ return cx.marked;
+ if (type2 == "variable" && inScope(state, content2))
+ return "variable-2";
+ return style;
+ }
+ }
+ }
+ var cx = { state: null, column: null, marked: null, cc: null };
+ function pass() {
+ for (var i = arguments.length - 1; i >= 0; i--)
+ cx.cc.push(arguments[i]);
+ }
+ function cont() {
+ pass.apply(null, arguments);
+ return true;
+ }
+ function inList(name, list) {
+ for (var v = list; v; v = v.next)
+ if (v.name == name)
+ return true;
+ return false;
+ }
+ function register(varname) {
+ var state = cx.state;
+ cx.marked = "def";
+ if (!trackScope)
+ return;
+ if (state.context) {
+ if (state.lexical.info == "var" && state.context && state.context.block) {
+ var newContext = registerVarScoped(varname, state.context);
+ if (newContext != null) {
+ state.context = newContext;
+ return;
+ }
+ } else if (!inList(varname, state.localVars)) {
+ state.localVars = new Var(varname, state.localVars);
+ return;
+ }
+ }
+ if (parserConfig.globalVars && !inList(varname, state.globalVars))
+ state.globalVars = new Var(varname, state.globalVars);
+ }
+ function registerVarScoped(varname, context) {
+ if (!context) {
+ return null;
+ } else if (context.block) {
+ var inner = registerVarScoped(varname, context.prev);
+ if (!inner)
+ return null;
+ if (inner == context.prev)
+ return context;
+ return new Context(inner, context.vars, true);
+ } else if (inList(varname, context.vars)) {
+ return context;
+ } else {
+ return new Context(context.prev, new Var(varname, context.vars), false);
+ }
+ }
+ function isModifier(name) {
+ return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly";
+ }
+ function Context(prev, vars, block2) {
+ this.prev = prev;
+ this.vars = vars;
+ this.block = block2;
+ }
+ function Var(name, next) {
+ this.name = name;
+ this.next = next;
+ }
+ var defaultVars = new Var("this", new Var("arguments", null));
+ function pushcontext() {
+ cx.state.context = new Context(cx.state.context, cx.state.localVars, false);
+ cx.state.localVars = defaultVars;
+ }
+ function pushblockcontext() {
+ cx.state.context = new Context(cx.state.context, cx.state.localVars, true);
+ cx.state.localVars = null;
+ }
+ function popcontext() {
+ cx.state.localVars = cx.state.context.vars;
+ cx.state.context = cx.state.context.prev;
+ }
+ popcontext.lex = true;
+ function pushlex(type2, info) {
+ var result = function() {
+ var state = cx.state, indent = state.indented;
+ if (state.lexical.type == "stat")
+ indent = state.lexical.indented;
+ else
+ for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev)
+ indent = outer.indented;
+ state.lexical = new JSLexical(indent, cx.stream.column(), type2, null, state.lexical, info);
+ };
+ result.lex = true;
+ return result;
+ }
+ function poplex() {
+ var state = cx.state;
+ if (state.lexical.prev) {
+ if (state.lexical.type == ")")
+ state.indented = state.lexical.indented;
+ state.lexical = state.lexical.prev;
+ }
+ }
+ poplex.lex = true;
+ function expect(wanted) {
+ function exp(type2) {
+ if (type2 == wanted)
+ return cont();
+ else if (wanted == ";" || type2 == "}" || type2 == ")" || type2 == "]")
+ return pass();
+ else
+ return cont(exp);
+ }
+ return exp;
+ }
+ function statement(type2, value) {
+ if (type2 == "var")
+ return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
+ if (type2 == "keyword a")
+ return cont(pushlex("form"), parenExpr, statement, poplex);
+ if (type2 == "keyword b")
+ return cont(pushlex("form"), statement, poplex);
+ if (type2 == "keyword d")
+ return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
+ if (type2 == "debugger")
+ return cont(expect(";"));
+ if (type2 == "{")
+ return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
+ if (type2 == ";")
+ return cont();
+ if (type2 == "if") {
+ if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
+ cx.state.cc.pop()();
+ return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse);
+ }
+ if (type2 == "function")
+ return cont(functiondef);
+ if (type2 == "for")
+ return cont(pushlex("form"), pushblockcontext, forspec, statement, popcontext, poplex);
+ if (type2 == "class" || isTS && value == "interface") {
+ cx.marked = "keyword";
+ return cont(pushlex("form", type2 == "class" ? type2 : value), className, poplex);
+ }
+ if (type2 == "variable") {
+ if (isTS && value == "declare") {
+ cx.marked = "keyword";
+ return cont(statement);
+ } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) {
+ cx.marked = "keyword";
+ if (value == "enum")
+ return cont(enumdef);
+ else if (value == "type")
+ return cont(typename, expect("operator"), typeexpr, expect(";"));
+ else
+ return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex);
+ } else if (isTS && value == "namespace") {
+ cx.marked = "keyword";
+ return cont(pushlex("form"), expression, statement, poplex);
+ } else if (isTS && value == "abstract") {
+ cx.marked = "keyword";
+ return cont(statement);
+ } else {
+ return cont(pushlex("stat"), maybelabel);
+ }
+ }
+ if (type2 == "switch")
+ return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext, block, poplex, poplex, popcontext);
+ if (type2 == "case")
+ return cont(expression, expect(":"));
+ if (type2 == "default")
+ return cont(expect(":"));
+ if (type2 == "catch")
+ return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
+ if (type2 == "export")
+ return cont(pushlex("stat"), afterExport, poplex);
+ if (type2 == "import")
+ return cont(pushlex("stat"), afterImport, poplex);
+ if (type2 == "async")
+ return cont(statement);
+ if (value == "@")
+ return cont(expression, statement);
+ return pass(pushlex("stat"), expression, expect(";"), poplex);
+ }
+ function maybeCatchBinding(type2) {
+ if (type2 == "(")
+ return cont(funarg, expect(")"));
+ }
+ function expression(type2, value) {
+ return expressionInner(type2, value, false);
+ }
+ function expressionNoComma(type2, value) {
+ return expressionInner(type2, value, true);
+ }
+ function parenExpr(type2) {
+ if (type2 != "(")
+ return pass();
+ return cont(pushlex(")"), maybeexpression, expect(")"), poplex);
+ }
+ function expressionInner(type2, value, noComma) {
+ if (cx.state.fatArrowAt == cx.stream.start) {
+ var body = noComma ? arrowBodyNoComma : arrowBody;
+ if (type2 == "(")
+ return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
+ else if (type2 == "variable")
+ return pass(pushcontext, pattern, expect("=>"), body, popcontext);
+ }
+ var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
+ if (atomicTypes.hasOwnProperty(type2))
+ return cont(maybeop);
+ if (type2 == "function")
+ return cont(functiondef, maybeop);
+ if (type2 == "class" || isTS && value == "interface") {
+ cx.marked = "keyword";
+ return cont(pushlex("form"), classExpression, poplex);
+ }
+ if (type2 == "keyword c" || type2 == "async")
+ return cont(noComma ? expressionNoComma : expression);
+ if (type2 == "(")
+ return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
+ if (type2 == "operator" || type2 == "spread")
+ return cont(noComma ? expressionNoComma : expression);
+ if (type2 == "[")
+ return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
+ if (type2 == "{")
+ return contCommasep(objprop, "}", null, maybeop);
+ if (type2 == "quasi")
+ return pass(quasi, maybeop);
+ if (type2 == "new")
+ return cont(maybeTarget(noComma));
+ return cont();
+ }
+ function maybeexpression(type2) {
+ if (type2.match(/[;\}\)\],]/))
+ return pass();
+ return pass(expression);
+ }
+ function maybeoperatorComma(type2, value) {
+ if (type2 == ",")
+ return cont(maybeexpression);
+ return maybeoperatorNoComma(type2, value, false);
+ }
+ function maybeoperatorNoComma(type2, value, noComma) {
+ var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
+ var expr = noComma == false ? expression : expressionNoComma;
+ if (type2 == "=>")
+ return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
+ if (type2 == "operator") {
+ if (/\+\+|--/.test(value) || isTS && value == "!")
+ return cont(me);
+ if (isTS && value == "<" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, false))
+ return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
+ if (value == "?")
+ return cont(expression, expect(":"), expr);
+ return cont(expr);
+ }
+ if (type2 == "quasi") {
+ return pass(quasi, me);
+ }
+ if (type2 == ";")
+ return;
+ if (type2 == "(")
+ return contCommasep(expressionNoComma, ")", "call", me);
+ if (type2 == ".")
+ return cont(property, me);
+ if (type2 == "[")
+ return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
+ if (isTS && value == "as") {
+ cx.marked = "keyword";
+ return cont(typeexpr, me);
+ }
+ if (type2 == "regexp") {
+ cx.state.lastType = cx.marked = "operator";
+ cx.stream.backUp(cx.stream.pos - cx.stream.start - 1);
+ return cont(expr);
+ }
+ }
+ function quasi(type2, value) {
+ if (type2 != "quasi")
+ return pass();
+ if (value.slice(value.length - 2) != "${")
+ return cont(quasi);
+ return cont(maybeexpression, continueQuasi);
+ }
+ function continueQuasi(type2) {
+ if (type2 == "}") {
+ cx.marked = "string-2";
+ cx.state.tokenize = tokenQuasi;
+ return cont(quasi);
+ }
+ }
+ function arrowBody(type2) {
+ findFatArrow(cx.stream, cx.state);
+ return pass(type2 == "{" ? statement : expression);
+ }
+ function arrowBodyNoComma(type2) {
+ findFatArrow(cx.stream, cx.state);
+ return pass(type2 == "{" ? statement : expressionNoComma);
+ }
+ function maybeTarget(noComma) {
+ return function(type2) {
+ if (type2 == ".")
+ return cont(noComma ? targetNoComma : target);
+ else if (type2 == "variable" && isTS)
+ return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma);
+ else
+ return pass(noComma ? expressionNoComma : expression);
+ };
+ }
+ function target(_, value) {
+ if (value == "target") {
+ cx.marked = "keyword";
+ return cont(maybeoperatorComma);
+ }
+ }
+ function targetNoComma(_, value) {
+ if (value == "target") {
+ cx.marked = "keyword";
+ return cont(maybeoperatorNoComma);
+ }
+ }
+ function maybelabel(type2) {
+ if (type2 == ":")
+ return cont(poplex, statement);
+ return pass(maybeoperatorComma, expect(";"), poplex);
+ }
+ function property(type2) {
+ if (type2 == "variable") {
+ cx.marked = "property";
+ return cont();
+ }
+ }
+ function objprop(type2, value) {
+ if (type2 == "async") {
+ cx.marked = "property";
+ return cont(objprop);
+ } else if (type2 == "variable" || cx.style == "keyword") {
+ cx.marked = "property";
+ if (value == "get" || value == "set")
+ return cont(getterSetter);
+ var m;
+ if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
+ cx.state.fatArrowAt = cx.stream.pos + m[0].length;
+ return cont(afterprop);
+ } else if (type2 == "number" || type2 == "string") {
+ cx.marked = jsonldMode ? "property" : cx.style + " property";
+ return cont(afterprop);
+ } else if (type2 == "jsonld-keyword") {
+ return cont(afterprop);
+ } else if (isTS && isModifier(value)) {
+ cx.marked = "keyword";
+ return cont(objprop);
+ } else if (type2 == "[") {
+ return cont(expression, maybetype, expect("]"), afterprop);
+ } else if (type2 == "spread") {
+ return cont(expressionNoComma, afterprop);
+ } else if (value == "*") {
+ cx.marked = "keyword";
+ return cont(objprop);
+ } else if (type2 == ":") {
+ return pass(afterprop);
+ }
+ }
+ function getterSetter(type2) {
+ if (type2 != "variable")
+ return pass(afterprop);
+ cx.marked = "property";
+ return cont(functiondef);
+ }
+ function afterprop(type2) {
+ if (type2 == ":")
+ return cont(expressionNoComma);
+ if (type2 == "(")
+ return pass(functiondef);
+ }
+ function commasep(what, end2, sep) {
+ function proceed(type2, value) {
+ if (sep ? sep.indexOf(type2) > -1 : type2 == ",") {
+ var lex = cx.state.lexical;
+ if (lex.info == "call")
+ lex.pos = (lex.pos || 0) + 1;
+ return cont(function(type3, value2) {
+ if (type3 == end2 || value2 == end2)
+ return pass();
+ return pass(what);
+ }, proceed);
+ }
+ if (type2 == end2 || value == end2)
+ return cont();
+ if (sep && sep.indexOf(";") > -1)
+ return pass(what);
+ return cont(expect(end2));
+ }
+ return function(type2, value) {
+ if (type2 == end2 || value == end2)
+ return cont();
+ return pass(what, proceed);
+ };
+ }
+ function contCommasep(what, end2, info) {
+ for (var i = 3; i < arguments.length; i++)
+ cx.cc.push(arguments[i]);
+ return cont(pushlex(end2, info), commasep(what, end2), poplex);
+ }
+ function block(type2) {
+ if (type2 == "}")
+ return cont();
+ return pass(statement, block);
+ }
+ function maybetype(type2, value) {
+ if (isTS) {
+ if (type2 == ":")
+ return cont(typeexpr);
+ if (value == "?")
+ return cont(maybetype);
+ }
+ }
+ function maybetypeOrIn(type2, value) {
+ if (isTS && (type2 == ":" || value == "in"))
+ return cont(typeexpr);
+ }
+ function mayberettype(type2) {
+ if (isTS && type2 == ":") {
+ if (cx.stream.match(/^\s*\w+\s+is\b/, false))
+ return cont(expression, isKW, typeexpr);
+ else
+ return cont(typeexpr);
+ }
+ }
+ function isKW(_, value) {
+ if (value == "is") {
+ cx.marked = "keyword";
+ return cont();
+ }
+ }
+ function typeexpr(type2, value) {
+ if (value == "keyof" || value == "typeof" || value == "infer" || value == "readonly") {
+ cx.marked = "keyword";
+ return cont(value == "typeof" ? expressionNoComma : typeexpr);
+ }
+ if (type2 == "variable" || value == "void") {
+ cx.marked = "type";
+ return cont(afterType);
+ }
+ if (value == "|" || value == "&")
+ return cont(typeexpr);
+ if (type2 == "string" || type2 == "number" || type2 == "atom")
+ return cont(afterType);
+ if (type2 == "[")
+ return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType);
+ if (type2 == "{")
+ return cont(pushlex("}"), typeprops, poplex, afterType);
+ if (type2 == "(")
+ return cont(commasep(typearg, ")"), maybeReturnType, afterType);
+ if (type2 == "<")
+ return cont(commasep(typeexpr, ">"), typeexpr);
+ if (type2 == "quasi") {
+ return pass(quasiType, afterType);
+ }
+ }
+ function maybeReturnType(type2) {
+ if (type2 == "=>")
+ return cont(typeexpr);
+ }
+ function typeprops(type2) {
+ if (type2.match(/[\}\)\]]/))
+ return cont();
+ if (type2 == "," || type2 == ";")
+ return cont(typeprops);
+ return pass(typeprop, typeprops);
+ }
+ function typeprop(type2, value) {
+ if (type2 == "variable" || cx.style == "keyword") {
+ cx.marked = "property";
+ return cont(typeprop);
+ } else if (value == "?" || type2 == "number" || type2 == "string") {
+ return cont(typeprop);
+ } else if (type2 == ":") {
+ return cont(typeexpr);
+ } else if (type2 == "[") {
+ return cont(expect("variable"), maybetypeOrIn, expect("]"), typeprop);
+ } else if (type2 == "(") {
+ return pass(functiondecl, typeprop);
+ } else if (!type2.match(/[;\}\)\],]/)) {
+ return cont();
+ }
+ }
+ function quasiType(type2, value) {
+ if (type2 != "quasi")
+ return pass();
+ if (value.slice(value.length - 2) != "${")
+ return cont(quasiType);
+ return cont(typeexpr, continueQuasiType);
+ }
+ function continueQuasiType(type2) {
+ if (type2 == "}") {
+ cx.marked = "string-2";
+ cx.state.tokenize = tokenQuasi;
+ return cont(quasiType);
+ }
+ }
+ function typearg(type2, value) {
+ if (type2 == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?")
+ return cont(typearg);
+ if (type2 == ":")
+ return cont(typeexpr);
+ if (type2 == "spread")
+ return cont(typearg);
+ return pass(typeexpr);
+ }
+ function afterType(type2, value) {
+ if (value == "<")
+ return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType);
+ if (value == "|" || type2 == "." || value == "&")
+ return cont(typeexpr);
+ if (type2 == "[")
+ return cont(typeexpr, expect("]"), afterType);
+ if (value == "extends" || value == "implements") {
+ cx.marked = "keyword";
+ return cont(typeexpr);
+ }
+ if (value == "?")
+ return cont(typeexpr, expect(":"), typeexpr);
+ }
+ function maybeTypeArgs(_, value) {
+ if (value == "<")
+ return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType);
+ }
+ function typeparam() {
+ return pass(typeexpr, maybeTypeDefault);
+ }
+ function maybeTypeDefault(_, value) {
+ if (value == "=")
+ return cont(typeexpr);
+ }
+ function vardef(_, value) {
+ if (value == "enum") {
+ cx.marked = "keyword";
+ return cont(enumdef);
+ }
+ return pass(pattern, maybetype, maybeAssign, vardefCont);
+ }
+ function pattern(type2, value) {
+ if (isTS && isModifier(value)) {
+ cx.marked = "keyword";
+ return cont(pattern);
+ }
+ if (type2 == "variable") {
+ register(value);
+ return cont();
+ }
+ if (type2 == "spread")
+ return cont(pattern);
+ if (type2 == "[")
+ return contCommasep(eltpattern, "]");
+ if (type2 == "{")
+ return contCommasep(proppattern, "}");
+ }
+ function proppattern(type2, value) {
+ if (type2 == "variable" && !cx.stream.match(/^\s*:/, false)) {
+ register(value);
+ return cont(maybeAssign);
+ }
+ if (type2 == "variable")
+ cx.marked = "property";
+ if (type2 == "spread")
+ return cont(pattern);
+ if (type2 == "}")
+ return pass();
+ if (type2 == "[")
+ return cont(expression, expect("]"), expect(":"), proppattern);
+ return cont(expect(":"), pattern, maybeAssign);
+ }
+ function eltpattern() {
+ return pass(pattern, maybeAssign);
+ }
+ function maybeAssign(_type, value) {
+ if (value == "=")
+ return cont(expressionNoComma);
+ }
+ function vardefCont(type2) {
+ if (type2 == ",")
+ return cont(vardef);
+ }
+ function maybeelse(type2, value) {
+ if (type2 == "keyword b" && value == "else")
+ return cont(pushlex("form", "else"), statement, poplex);
+ }
+ function forspec(type2, value) {
+ if (value == "await")
+ return cont(forspec);
+ if (type2 == "(")
+ return cont(pushlex(")"), forspec1, poplex);
+ }
+ function forspec1(type2) {
+ if (type2 == "var")
+ return cont(vardef, forspec2);
+ if (type2 == "variable")
+ return cont(forspec2);
+ return pass(forspec2);
+ }
+ function forspec2(type2, value) {
+ if (type2 == ")")
+ return cont();
+ if (type2 == ";")
+ return cont(forspec2);
+ if (value == "in" || value == "of") {
+ cx.marked = "keyword";
+ return cont(expression, forspec2);
+ }
+ return pass(expression, forspec2);
+ }
+ function functiondef(type2, value) {
+ if (value == "*") {
+ cx.marked = "keyword";
+ return cont(functiondef);
+ }
+ if (type2 == "variable") {
+ register(value);
+ return cont(functiondef);
+ }
+ if (type2 == "(")
+ return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
+ if (isTS && value == "<")
+ return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef);
+ }
+ function functiondecl(type2, value) {
+ if (value == "*") {
+ cx.marked = "keyword";
+ return cont(functiondecl);
+ }
+ if (type2 == "variable") {
+ register(value);
+ return cont(functiondecl);
+ }
+ if (type2 == "(")
+ return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, popcontext);
+ if (isTS && value == "<")
+ return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondecl);
+ }
+ function typename(type2, value) {
+ if (type2 == "keyword" || type2 == "variable") {
+ cx.marked = "type";
+ return cont(typename);
+ } else if (value == "<") {
+ return cont(pushlex(">"), commasep(typeparam, ">"), poplex);
+ }
+ }
+ function funarg(type2, value) {
+ if (value == "@")
+ cont(expression, funarg);
+ if (type2 == "spread")
+ return cont(funarg);
+ if (isTS && isModifier(value)) {
+ cx.marked = "keyword";
+ return cont(funarg);
+ }
+ if (isTS && type2 == "this")
+ return cont(maybetype, maybeAssign);
+ return pass(pattern, maybetype, maybeAssign);
+ }
+ function classExpression(type2, value) {
+ if (type2 == "variable")
+ return className(type2, value);
+ return classNameAfter(type2, value);
+ }
+ function className(type2, value) {
+ if (type2 == "variable") {
+ register(value);
+ return cont(classNameAfter);
+ }
+ }
+ function classNameAfter(type2, value) {
+ if (value == "<")
+ return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter);
+ if (value == "extends" || value == "implements" || isTS && type2 == ",") {
+ if (value == "implements")
+ cx.marked = "keyword";
+ return cont(isTS ? typeexpr : expression, classNameAfter);
+ }
+ if (type2 == "{")
+ return cont(pushlex("}"), classBody, poplex);
+ }
+ function classBody(type2, value) {
+ if (type2 == "async" || type2 == "variable" && (value == "static" || value == "get" || value == "set" || isTS && isModifier(value)) && cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false)) {
+ cx.marked = "keyword";
+ return cont(classBody);
+ }
+ if (type2 == "variable" || cx.style == "keyword") {
+ cx.marked = "property";
+ return cont(classfield, classBody);
+ }
+ if (type2 == "number" || type2 == "string")
+ return cont(classfield, classBody);
+ if (type2 == "[")
+ return cont(expression, maybetype, expect("]"), classfield, classBody);
+ if (value == "*") {
+ cx.marked = "keyword";
+ return cont(classBody);
+ }
+ if (isTS && type2 == "(")
+ return pass(functiondecl, classBody);
+ if (type2 == ";" || type2 == ",")
+ return cont(classBody);
+ if (type2 == "}")
+ return cont();
+ if (value == "@")
+ return cont(expression, classBody);
+ }
+ function classfield(type2, value) {
+ if (value == "!")
+ return cont(classfield);
+ if (value == "?")
+ return cont(classfield);
+ if (type2 == ":")
+ return cont(typeexpr, maybeAssign);
+ if (value == "=")
+ return cont(expressionNoComma);
+ var context = cx.state.lexical.prev, isInterface = context && context.info == "interface";
+ return pass(isInterface ? functiondecl : functiondef);
+ }
+ function afterExport(type2, value) {
+ if (value == "*") {
+ cx.marked = "keyword";
+ return cont(maybeFrom, expect(";"));
+ }
+ if (value == "default") {
+ cx.marked = "keyword";
+ return cont(expression, expect(";"));
+ }
+ if (type2 == "{")
+ return cont(commasep(exportField, "}"), maybeFrom, expect(";"));
+ return pass(statement);
+ }
+ function exportField(type2, value) {
+ if (value == "as") {
+ cx.marked = "keyword";
+ return cont(expect("variable"));
+ }
+ if (type2 == "variable")
+ return pass(expressionNoComma, exportField);
+ }
+ function afterImport(type2) {
+ if (type2 == "string")
+ return cont();
+ if (type2 == "(")
+ return pass(expression);
+ if (type2 == ".")
+ return pass(maybeoperatorComma);
+ return pass(importSpec, maybeMoreImports, maybeFrom);
+ }
+ function importSpec(type2, value) {
+ if (type2 == "{")
+ return contCommasep(importSpec, "}");
+ if (type2 == "variable")
+ register(value);
+ if (value == "*")
+ cx.marked = "keyword";
+ return cont(maybeAs);
+ }
+ function maybeMoreImports(type2) {
+ if (type2 == ",")
+ return cont(importSpec, maybeMoreImports);
+ }
+ function maybeAs(_type, value) {
+ if (value == "as") {
+ cx.marked = "keyword";
+ return cont(importSpec);
+ }
+ }
+ function maybeFrom(_type, value) {
+ if (value == "from") {
+ cx.marked = "keyword";
+ return cont(expression);
+ }
+ }
+ function arrayLiteral(type2) {
+ if (type2 == "]")
+ return cont();
+ return pass(commasep(expressionNoComma, "]"));
+ }
+ function enumdef() {
+ return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex);
+ }
+ function enummember() {
+ return pass(pattern, maybeAssign);
+ }
+ function isContinuedStatement(state, textAfter) {
+ return state.lastType == "operator" || state.lastType == "," || isOperatorChar.test(textAfter.charAt(0)) || /[,.]/.test(textAfter.charAt(0));
+ }
+ function expressionAllowed(stream, state, backUp) {
+ return state.tokenize == tokenBase && /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) || state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0)));
+ }
+ return {
+ startState: function(basecolumn) {
+ var state = {
+ tokenize: tokenBase,
+ lastType: "sof",
+ cc: [],
+ lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
+ localVars: parserConfig.localVars,
+ context: parserConfig.localVars && new Context(null, null, false),
+ indented: basecolumn || 0
+ };
+ if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
+ state.globalVars = parserConfig.globalVars;
+ return state;
+ },
+ token: function(stream, state) {
+ if (stream.sol()) {
+ if (!state.lexical.hasOwnProperty("align"))
+ state.lexical.align = false;
+ state.indented = stream.indentation();
+ findFatArrow(stream, state);
+ }
+ if (state.tokenize != tokenComment && stream.eatSpace())
+ return null;
+ var style = state.tokenize(stream, state);
+ if (type == "comment")
+ return style;
+ state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
+ return parseJS(state, style, type, content, stream);
+ },
+ indent: function(state, textAfter) {
+ if (state.tokenize == tokenComment || state.tokenize == tokenQuasi)
+ return CodeMirror.Pass;
+ if (state.tokenize != tokenBase)
+ return 0;
+ var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top2;
+ if (!/^\s*else\b/.test(textAfter))
+ for (var i = state.cc.length - 1; i >= 0; --i) {
+ var c = state.cc[i];
+ if (c == poplex)
+ lexical = lexical.prev;
+ else if (c != maybeelse && c != popcontext)
+ break;
+ }
+ while ((lexical.type == "stat" || lexical.type == "form") && (firstChar == "}" || (top2 = state.cc[state.cc.length - 1]) && (top2 == maybeoperatorComma || top2 == maybeoperatorNoComma) && !/^[,\.=+\-*:?[\(]/.test(textAfter)))
+ lexical = lexical.prev;
+ if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
+ lexical = lexical.prev;
+ var type2 = lexical.type, closing = firstChar == type2;
+ if (type2 == "vardef")
+ return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
+ else if (type2 == "form" && firstChar == "{")
+ return lexical.indented;
+ else if (type2 == "form")
+ return lexical.indented + indentUnit;
+ else if (type2 == "stat")
+ return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);
+ else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
+ return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
+ else if (lexical.align)
+ return lexical.column + (closing ? 0 : 1);
+ else
+ return lexical.indented + (closing ? 0 : indentUnit);
+ },
+ electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
+ blockCommentStart: jsonMode ? null : "/*",
+ blockCommentEnd: jsonMode ? null : "*/",
+ blockCommentContinue: jsonMode ? null : " * ",
+ lineComment: jsonMode ? null : "//",
+ fold: "brace",
+ closeBrackets: "()[]{}''\"\"``",
+ helperType: jsonMode ? "json" : "javascript",
+ jsonldMode,
+ jsonMode,
+ expressionAllowed,
+ skipExpression: function(state) {
+ parseJS(state, "atom", "atom", "true", new CodeMirror.StringStream("", 2, null));
+ }
+ };
+ });
+ CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/);
+ CodeMirror.defineMIME("text/javascript", "javascript");
+ CodeMirror.defineMIME("text/ecmascript", "javascript");
+ CodeMirror.defineMIME("application/javascript", "javascript");
+ CodeMirror.defineMIME("application/x-javascript", "javascript");
+ CodeMirror.defineMIME("application/ecmascript", "javascript");
+ CodeMirror.defineMIME("application/json", {
+ name: "javascript",
+ json: true
+ });
+ CodeMirror.defineMIME("application/x-json", {
+ name: "javascript",
+ json: true
+ });
+ CodeMirror.defineMIME("application/manifest+json", {
+ name: "javascript",
+ json: true
+ });
+ CodeMirror.defineMIME("application/ld+json", {
+ name: "javascript",
+ jsonld: true
+ });
+ CodeMirror.defineMIME("text/typescript", {
+ name: "javascript",
+ typescript: true
+ });
+ CodeMirror.defineMIME("application/typescript", {
+ name: "javascript",
+ typescript: true
+ });
+});
+
+// src/editor/mode/custom_overlay.js
+(function(mod) {
+ mod(window.CodeMirror);
+})(function(CodeMirror) {
+ "use strict";
+ CodeMirror.customOverlayMode = function(base, overlay, combine) {
+ return {
+ startState: function() {
+ return {
+ base: CodeMirror.startState(base),
+ overlay: CodeMirror.startState(overlay),
+ basePos: 0,
+ baseCur: null,
+ overlayPos: 0,
+ overlayCur: null,
+ streamSeen: null
+ };
+ },
+ copyState: function(state) {
+ return {
+ base: CodeMirror.copyState(base, state.base),
+ overlay: CodeMirror.copyState(overlay, state.overlay),
+ basePos: state.basePos,
+ baseCur: null,
+ overlayPos: state.overlayPos,
+ overlayCur: null
+ };
+ },
+ token: function(stream, state) {
+ if (stream != state.streamSeen || Math.min(state.basePos, state.overlayPos) < stream.start) {
+ state.streamSeen = stream;
+ state.basePos = state.overlayPos = stream.start;
+ }
+ if (stream.start == state.basePos) {
+ state.baseCur = base.token(stream, state.base);
+ state.basePos = stream.pos;
+ }
+ if (stream.start == state.overlayPos) {
+ stream.pos = stream.start;
+ state.overlayCur = overlay.token(stream, state.overlay);
+ state.overlayPos = stream.pos;
+ }
+ stream.pos = Math.min(state.basePos, state.overlayPos);
+ if (state.baseCur && state.overlayCur && state.baseCur.contains("line-HyperMD-codeblock")) {
+ state.overlayCur = state.overlayCur.replace("line-templater-inline", "");
+ state.overlayCur += ` line-background-HyperMD-codeblock-bg`;
+ }
+ if (state.overlayCur == null)
+ return state.baseCur;
+ else if (state.baseCur != null && state.overlay.combineTokens || combine && state.overlay.combineTokens == null)
+ return state.baseCur + " " + state.overlayCur;
+ else
+ return state.overlayCur;
+ },
+ indent: base.indent && function(state, textAfter, line) {
+ return base.indent(state.base, textAfter, line);
+ },
+ electricChars: base.electricChars,
+ innerMode: function(state) {
+ return { state: state.base, mode: base };
+ },
+ blankLine: function(state) {
+ var baseToken, overlayToken;
+ if (base.blankLine)
+ baseToken = base.blankLine(state.base);
+ if (overlay.blankLine)
+ overlayToken = overlay.blankLine(state.overlay);
+ return overlayToken == null ? baseToken : combine && baseToken != null ? baseToken + " " + overlayToken : overlayToken;
+ }
+ };
+ };
+});
+
+// src/editor/Editor.ts
+var import_language = __toModule(require("@codemirror/language"));
+var TP_CMD_TOKEN_CLASS = "templater-command";
+var TP_INLINE_CLASS = "templater-inline";
+var TP_OPENING_TAG_TOKEN_CLASS = "templater-opening-tag";
+var TP_CLOSING_TAG_TOKEN_CLASS = "templater-closing-tag";
+var TP_INTERPOLATION_TAG_TOKEN_CLASS = "templater-interpolation-tag";
+var TP_EXEC_TAG_TOKEN_CLASS = "templater-execution-tag";
+var Editor2 = class {
+ constructor(plugin) {
+ this.plugin = plugin;
+ this.cursor_jumper = new CursorJumper();
+ }
+ async setup() {
+ await this.registerCodeMirrorMode();
+ this.plugin.registerEditorSuggest(new Autocomplete());
+ if (import_obsidian17.Platform.isDesktopApp && this.plugin.settings.syntax_highlighting) {
+ this.plugin.registerEditorExtension(import_language.StreamLanguage.define(window.CodeMirror.getMode({}, { name: "templater" })));
+ }
+ }
+ async jump_to_next_cursor_location(file = null, auto_jump = false) {
+ if (auto_jump && !this.plugin.settings.auto_jump_to_cursor) {
+ return;
+ }
+ if (file && app.workspace.getActiveFile() !== file) {
+ return;
+ }
+ await this.cursor_jumper.jump_to_next_cursor_location();
+ }
+ async registerCodeMirrorMode() {
+ if (!this.plugin.settings.syntax_highlighting) {
+ return;
+ }
+ if (import_obsidian17.Platform.isMobileApp) {
+ return;
+ }
+ const js_mode = window.CodeMirror.getMode({}, "javascript");
+ if (js_mode.name === "null") {
+ log_error(new TemplaterError("Javascript syntax mode couldn't be found, can't enable syntax highlighting."));
+ return;
+ }
+ const overlay_mode = window.CodeMirror.customOverlayMode;
+ if (overlay_mode == null) {
+ log_error(new TemplaterError("Couldn't find customOverlayMode, can't enable syntax highlighting."));
+ return;
+ }
+ window.CodeMirror.defineMode("templater", function(config) {
+ const templaterOverlay = {
+ startState: function() {
+ const js_state = window.CodeMirror.startState(js_mode);
+ return {
+ ...js_state,
+ inCommand: false,
+ tag_class: "",
+ freeLine: false
+ };
+ },
+ copyState: function(state) {
+ const js_state = window.CodeMirror.startState(js_mode);
+ const new_state = {
+ ...js_state,
+ inCommand: state.inCommand,
+ tag_class: state.tag_class,
+ freeLine: state.freeLine
+ };
+ return new_state;
+ },
+ blankLine: function(state) {
+ if (state.inCommand) {
+ return `line-background-templater-command-bg`;
+ }
+ return null;
+ },
+ token: function(stream, state) {
+ if (stream.sol() && state.inCommand) {
+ state.freeLine = true;
+ }
+ if (state.inCommand) {
+ let keywords = "";
+ if (stream.match(/[-_]{0,1}%>/, true)) {
+ state.inCommand = false;
+ state.freeLine = false;
+ const tag_class = state.tag_class;
+ state.tag_class = "";
+ return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_CLOSING_TAG_TOKEN_CLASS} ${tag_class}`;
+ }
+ const js_result = js_mode.token && js_mode.token(stream, state);
+ if (stream.peek() == null && state.freeLine) {
+ keywords += ` line-background-templater-command-bg`;
+ }
+ if (!state.freeLine) {
+ keywords += ` line-${TP_INLINE_CLASS}`;
+ }
+ return `${keywords} ${TP_CMD_TOKEN_CLASS} ${js_result}`;
+ }
+ const match = stream.match(/<%[-_]{0,1}\s*([*+]{0,1})/, true);
+ if (match != null) {
+ switch (match[1]) {
+ case "*":
+ state.tag_class = TP_EXEC_TAG_TOKEN_CLASS;
+ break;
+ default:
+ state.tag_class = TP_INTERPOLATION_TAG_TOKEN_CLASS;
+ break;
+ }
+ state.inCommand = true;
+ return `line-${TP_INLINE_CLASS} ${TP_CMD_TOKEN_CLASS} ${TP_OPENING_TAG_TOKEN_CLASS} ${state.tag_class}`;
+ }
+ while (stream.next() != null && !stream.match(/<%/, false))
+ ;
+ return null;
+ }
+ };
+ return overlay_mode(window.CodeMirror.getMode(config, "hypermd"), templaterOverlay);
+ });
+ }
+};
+
+// src/main.ts
+var TemplaterPlugin = class extends import_obsidian18.Plugin {
+ async onload() {
+ await this.load_settings();
+ this.templater = new Templater(this);
+ await this.templater.setup();
+ this.editor_handler = new Editor2(this);
+ await this.editor_handler.setup();
+ this.fuzzy_suggester = new FuzzySuggester(this);
+ this.event_handler = new EventHandler(this, this.templater, this.settings);
+ this.event_handler.setup();
+ this.command_handler = new CommandHandler(this);
+ this.command_handler.setup();
+ (0, import_obsidian18.addIcon)("templater-icon", ICON_DATA);
+ if (this.settings.enable_ribbon_icon) {
+ this.addRibbonIcon("templater-icon", "Templater", async () => {
+ this.fuzzy_suggester.insert_template();
+ }).setAttribute("id", "rb-templater-icon");
+ }
+ this.addSettingTab(new TemplaterSettingTab(this));
+ app.workspace.onLayoutReady(() => {
+ this.templater.execute_startup_scripts();
+ });
+ }
+ async save_settings() {
+ await this.saveData(this.settings);
+ }
+ async load_settings() {
+ this.settings = Object.assign({}, DEFAULT_SETTINGS, await this.loadData());
+ }
+};
diff --git a/.obsidian/plugins/templater-obsidian/manifest.json b/.obsidian/plugins/templater-obsidian/manifest.json
new file mode 100644
index 00000000..70cf5959
--- /dev/null
+++ b/.obsidian/plugins/templater-obsidian/manifest.json
@@ -0,0 +1,10 @@
+{
+ "id": "templater-obsidian",
+ "name": "Templater",
+ "version": "1.16.0",
+ "description": "Create and use templates",
+ "minAppVersion": "0.11.13",
+ "author": "SilentVoid",
+ "authorUrl": "https://github.com/SilentVoid13",
+ "isDesktopOnly": false
+}
diff --git a/.obsidian/plugins/templater-obsidian/styles.css b/.obsidian/plugins/templater-obsidian/styles.css
new file mode 100644
index 00000000..207db950
--- /dev/null
+++ b/.obsidian/plugins/templater-obsidian/styles.css
@@ -0,0 +1,281 @@
+.templater_search {
+ width: calc(100% - 20px);
+}
+
+.templater_div {
+ border-top: 1px solid var(--background-modifier-border);
+}
+
+.templater_div > .setting-item {
+ border-top: none !important;
+ align-self: center;
+}
+
+.templater_div > .setting-item > .setting-item-control {
+ justify-content: space-around;
+ padding: 0;
+ width: 100%;
+}
+
+.templater_div
+ > .setting-item
+ > .setting-item-control
+ > .setting-editor-extra-setting-button {
+ align-self: center;
+}
+
+.templater_donating {
+ margin: 10px;
+}
+
+.templater_title {
+ margin: 0;
+ padding: 0;
+ margin-top: 5px;
+ text-align: center;
+}
+
+.templater_template {
+ align-self: center;
+ margin-left: 5px;
+ margin-right: 5px;
+ width: 70%;
+}
+
+.templater_cmd {
+ margin-left: 5px;
+ margin-right: 5px;
+ font-size: 14px;
+ width: 100%;
+}
+
+.templater_div2 > .setting-item {
+ align-content: center;
+ justify-content: center;
+}
+
+.templater-prompt-div {
+ display: flex;
+}
+
+.templater-prompt-form {
+ display: flex;
+ flex-grow: 1;
+}
+
+.templater-prompt-input {
+ flex-grow: 1;
+}
+
+.templater-button-div {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ margin-top: 1rem;
+}
+
+textarea.templater-prompt-input {
+ height: 10rem;
+}
+
+textarea.templater-prompt-input:focus {
+ border-color: var(--interactive-accent);
+}
+
+.cm-s-obsidian .templater-command-bg {
+ left: 0px;
+ right: 0px;
+ background-color: var(--background-primary-alt);
+}
+
+.cm-s-obsidian .cm-templater-command {
+ font-size: 0.85em;
+ font-family: var(--font-monospace);
+ line-height: 1.3;
+}
+
+.cm-s-obsidian .templater-inline .cm-templater-command {
+ background-color: var(--background-primary-alt);
+}
+
+.cm-s-obsidian .cm-templater-command.cm-templater-opening-tag {
+ font-weight: bold;
+}
+
+.cm-s-obsidian .cm-templater-command.cm-templater-closing-tag {
+ font-weight: bold;
+}
+
+.cm-s-obsidian .cm-templater-command.cm-templater-interpolation-tag {
+ color: #008bff;
+}
+
+.cm-s-obsidian .cm-templater-command.cm-templater-execution-tag {
+ color: #c0d700;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-keyword {
+ color: #00a7aa;
+ font-weight: normal;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-atom {
+ color: #f39b35;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-number {
+ color: #a06fca;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-type {
+ color: #a06fca;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-def {
+ color: #98e342;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-property {
+ color: #d4d4d4;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable {
+ color: #d4d4d4;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable-2 {
+ color: #da7dae;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-variable-3 {
+ color: #a06fca;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-type.cm-def {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-property.cm-def {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-callee {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-operator {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-qualifier {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-tag {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-tag.cm-bracket {
+ color: #d4d4d4;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-attribute {
+ color: #a06fca;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment {
+ color: #696d70;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment.cm-tag {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-comment.cm-attribute {
+ color: #d4d4d4;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-string {
+ color: #e6db74;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-string-2 {
+ color: #f39b35;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-meta {
+ color: #d4d4d4;
+ background: inherit;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-builtin {
+ color: #fc4384;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-header {
+ color: #da7dae;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-hr {
+ color: #98e342;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-link {
+ color: #696d70;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.cm-error {
+ border-bottom: 1px solid #c42412;
+}
+
+.theme-dark .cm-s-obsidian pre.HyperMD-codeblock .cm-keyword {
+ font-weight: normal;
+}
+
+.theme-dark
+ .cm-s-obsidian
+ .cm-templater-command.CodeMirror-activeline-background {
+ background: #272727;
+}
+
+.theme-dark .cm-s-obsidian .cm-templater-command.CodeMirror-matchingbracket {
+ outline: 1px solid grey;
+ color: #d4d4d4 !important;
+}
+
+.CodeMirror-hints {
+ position: absolute;
+ z-index: 10;
+ overflow: hidden;
+ list-style: none;
+
+ margin: 0;
+ padding: 2px;
+
+ -webkit-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
+ -moz-box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
+ box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.2);
+ border-radius: 3px;
+ border: 1px solid silver;
+
+ background: white;
+ font-size: 90%;
+ font-family: monospace;
+
+ max-height: 20em;
+ overflow-y: auto;
+}
+
+.CodeMirror-hint {
+ margin: 0;
+ padding: 0 4px;
+ border-radius: 2px;
+ white-space: pre;
+ color: black;
+ cursor: pointer;
+}
+
+li.CodeMirror-hint-active {
+ background: #08f;
+ color: white;
+}
diff --git a/LICENSE b/LICENSE
index 261eeb9e..411c2b55 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,201 +1,13 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
+Copyright 2023 Beijing Huaxia Chunsong Technology Co., Ltd.
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+Licensed under the Chunsong Public License, Version 1.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
- 1. Definitions.
+ https://docs.cskefu.com/licenses/v1.html
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/README.md b/README.md
index ad0e2483..d0f4bb5a 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,20 @@
-# cskefu-docs
\ No newline at end of file
+# 春松客服文档中心
+
+做好开源客服系统:
+
+[https://docs.cskefu.com/](https://docs.cskefu.com/)
+
+文档中心 Repo:
+
+* [GitHub](https://github.com/cskefu/docs) 主站 / Main Site
+* [Gitee](https://gitee.com/cskefu/docs) 副本 / Standby Site
+
+
+文档中心 Issues:
+
+[https://github.com/cskefu/cskefu/issues](https://github.com/cskefu/cskefu/issues)
+
+
+## 开源许可协议
+
+[Chunsong Public License, Version 1.0](https://docs.cskefu.com/licenses/v1.html)
diff --git a/babel.config.js b/babel.config.js
new file mode 100644
index 00000000..e00595da
--- /dev/null
+++ b/babel.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
+};
diff --git a/docs/index.md b/docs/index.md
new file mode 100644
index 00000000..c40e6197
--- /dev/null
+++ b/docs/index.md
@@ -0,0 +1,12 @@
+---
+sidebar_position: 1
+---
+
+# 春松客服
+
+Next 版本尚未进入研发。
+
+请使用:
+
+## [v8](/docs/): 最新发行版本,积极维护中
+## [v7](/docs/v7): 上一个发行版本,已经不再积极维护
\ No newline at end of file
diff --git a/docusaurus.config.js b/docusaurus.config.js
new file mode 100644
index 00000000..d488eec6
--- /dev/null
+++ b/docusaurus.config.js
@@ -0,0 +1,153 @@
+// @ts-check
+// Note: type annotations allow type checking and IDEs autocompletion
+
+const lightCodeTheme = require('prism-react-renderer/themes/github');
+const darkCodeTheme = require('prism-react-renderer/themes/dracula');
+
+/** @type {import('@docusaurus/types').Config} */
+const config = {
+ title: '春松客服',
+ tagline: '迭代客服系统助力企业持续成长',
+ url: 'https://docs.cskefu.com',
+ baseUrl: '/docs/',
+ onBrokenLinks: 'warn',
+ onBrokenMarkdownLinks: 'warn',
+ favicon: 'img/favicon.ico',
+
+ // GitHub pages deployment config.
+ // If you aren't using GitHub pages, you don't need these.
+ organizationName: 'cskefu', // Usually your GitHub org/user name.
+ projectName: 'cskefu-docs', // Usually your repo name.
+
+ // Even if you don't use internalization, you can use this field to set useful
+ // metadata like html lang. For example, if your site is Chinese, you may want
+ // to replace "en" with "zh-Hans".
+ i18n: {
+ defaultLocale: 'zh-Hans',
+ locales: ['zh-Hans'],
+ },
+
+ presets: [
+ [
+ 'classic',
+ /** @type {import('@docusaurus/preset-classic').Options} */
+ ({
+ docs: {
+ sidebarPath: require.resolve('./sidebars.js'),
+ // Please change this to your repo.
+ // Remove this to remove the "edit this page" links.
+ editUrl:
+ 'https://github.com/cskefu/docs/tree/main/packages/create-docusaurus/templates/shared/',
+ },
+ blog: {
+ showReadingTime: true,
+ // Please change this to your repo.
+ // Remove this to remove the "edit this page" links.
+ editUrl:
+ 'https://github.com/cskefu/docs/tree/main/packages/create-docusaurus/templates/shared/',
+ },
+ theme: {
+ customCss: require.resolve('./src/css/custom.css'),
+ },
+ }),
+ ],
+ ],
+
+ themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */
+ {
+ navbar: {
+ title: '春松客服',
+ logo: {
+ alt: '春松客服图标',
+ src: 'img/logo.png',
+ },
+ items: [
+ {
+ type: 'doc',
+ docId: 'index',
+ position: 'left',
+ label: '文档中心',
+ },
+ { to: 'https://www.cskefu.com/', label: '官网', position: 'left' },
+ {
+ type: "docsVersionDropdown",
+ position: "right",
+ },
+ {
+ href: 'https://gitee.com/cskefu/cskefu',
+ label: 'SourceCodes',
+ position: 'right',
+ },
+ ],
+ },
+ footer: {
+ style: 'dark',
+ links: [
+ {
+ title: '文档',
+ items: [
+ {
+ label: '应用部署',
+ to: '/docs/deploy/',
+ },
+ {
+ label: '开发环境搭建',
+ to: '/docs/osc/engineering',
+ },
+ {
+ label: '提交代码',
+ to: '/docs/osc/contribution',
+ },
+ ],
+ },
+ {
+ title: '社区',
+ items: [
+ {
+ label: '组织原则',
+ href: 'https://www.cskefu.com/community-constitution/',
+ },
+ {
+ label: '关于我们',
+ href: 'https://www.cskefu.com/about/',
+ },
+ {
+ label: '加入我们',
+ href: 'https://tribe.cskefu.com/invite/28LjhB9f',
+ },
+ ],
+ },
+ {
+ title: '更多',
+ items: [
+ {
+ label: '定制开发教程',
+ to: 'https://docs.cskefu.com/docs/osc/training',
+ },
+ {
+ label: '工单列表',
+ to: 'https://gitee.com/cskefu/cskefu/issues',
+ },
+ {
+ label: 'Rss',
+ href: 'https://www.cskefu.com/feed/',
+ },
+ ],
+ },
+ ],
+ copyright: `Copyright © 2018-${new Date().getFullYear()} 北京华夏春松科技有限公司 | 京公网安备:京ICP备20023756号-2 | 使用 Docusaurus 构建, 站点源码`,
+ },
+ prism: {
+ theme: lightCodeTheme,
+ darkTheme: darkCodeTheme,
+ },
+ // https://docusaurus.io/docs/api/themes/configuration
+ colorMode: {
+ defaultMode: 'dark',
+ disableSwitch: false,
+ respectPrefersColorScheme: true,
+ }
+ },
+};
+
+module.exports = config;
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 00000000..4a86f894
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,20759 @@
+{
+ "name": "cskefu-docs",
+ "version": "0.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "cskefu-docs",
+ "version": "0.0.0",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/preset-classic": "2.4.1",
+ "@mdx-js/react": "^1.6.22",
+ "clsx": "^1.2.1",
+ "prism-react-renderer": "^1.3.5",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2"
+ },
+ "devDependencies": {
+ "@docusaurus/module-type-aliases": "2.4.1"
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/@algolia/autocomplete-core": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz",
+ "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==",
+ "dependencies": {
+ "@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
+ "@algolia/autocomplete-shared": "1.9.3"
+ }
+ },
+ "node_modules/@algolia/autocomplete-plugin-algolia-insights": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz",
+ "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.9.3"
+ },
+ "peerDependencies": {
+ "search-insights": ">= 1 < 3"
+ }
+ },
+ "node_modules/@algolia/autocomplete-preset-algolia": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz",
+ "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==",
+ "dependencies": {
+ "@algolia/autocomplete-shared": "1.9.3"
+ },
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
+ "node_modules/@algolia/autocomplete-shared": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz",
+ "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==",
+ "peerDependencies": {
+ "@algolia/client-search": ">= 4.9.1 < 6",
+ "algoliasearch": ">= 4.9.1 < 6"
+ }
+ },
+ "node_modules/@algolia/cache-browser-local-storage": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.2.tgz",
+ "integrity": "sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==",
+ "dependencies": {
+ "@algolia/cache-common": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/cache-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.2.tgz",
+ "integrity": "sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ=="
+ },
+ "node_modules/@algolia/cache-in-memory": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.2.tgz",
+ "integrity": "sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==",
+ "dependencies": {
+ "@algolia/cache-common": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/client-account": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.2.tgz",
+ "integrity": "sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==",
+ "dependencies": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/client-analytics": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.2.tgz",
+ "integrity": "sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==",
+ "dependencies": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/client-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.2.tgz",
+ "integrity": "sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==",
+ "dependencies": {
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/client-personalization": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.2.tgz",
+ "integrity": "sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==",
+ "dependencies": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/client-search": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.2.tgz",
+ "integrity": "sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==",
+ "dependencies": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/events": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz",
+ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ=="
+ },
+ "node_modules/@algolia/logger-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.2.tgz",
+ "integrity": "sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ=="
+ },
+ "node_modules/@algolia/logger-console": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.2.tgz",
+ "integrity": "sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==",
+ "dependencies": {
+ "@algolia/logger-common": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/requester-browser-xhr": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.2.tgz",
+ "integrity": "sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==",
+ "dependencies": {
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/requester-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.2.tgz",
+ "integrity": "sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A=="
+ },
+ "node_modules/@algolia/requester-node-http": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.2.tgz",
+ "integrity": "sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==",
+ "dependencies": {
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "node_modules/@algolia/transporter": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.2.tgz",
+ "integrity": "sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==",
+ "dependencies": {
+ "@algolia/cache-common": "4.17.2",
+ "@algolia/logger-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "dependencies": {
+ "@babel/highlight": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.13.tgz",
+ "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.18.13.tgz",
+ "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==",
+ "dependencies": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.18.13",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-module-transforms": "^7.18.9",
+ "@babel/helpers": "^7.18.9",
+ "@babel/parser": "^7.18.13",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.18.13",
+ "@babel/types": "^7.18.13",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.13.tgz",
+ "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==",
+ "dependencies": {
+ "@babel/types": "^7.18.13",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
+ "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "dependencies": {
+ "@babel/helper-explode-assignable-expression": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
+ "dependencies": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.20.2",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz",
+ "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz",
+ "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
+ "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0-0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-explode-assignable-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
+ "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
+ "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
+ "dependencies": {
+ "@babel/template": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "dependencies": {
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
+ "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "@babel/template": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz",
+ "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
+ "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
+ "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "dependencies": {
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "dependencies": {
+ "@babel/types": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
+ "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.18.11",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
+ "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
+ "dependencies": {
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.18.11",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.18.9.tgz",
+ "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
+ "dependencies": {
+ "@babel/template": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/highlight/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz",
+ "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
+ "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-static-block": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
+ "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
+ "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz",
+ "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==",
+ "dependencies": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.18.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
+ "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
+ "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
+ "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
+ "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
+ "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-remap-async-to-generator": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz",
+ "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz",
+ "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
+ "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz",
+ "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "dependencies": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
+ "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
+ "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
+ "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-simple-access": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz",
+ "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==",
+ "dependencies": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz",
+ "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
+ "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-constant-elements": {
+ "version": "7.18.12",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz",
+ "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-display-name": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz",
+ "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz",
+ "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-development": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
+ "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
+ "dependencies": {
+ "@babel/plugin-transform-react-jsx": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz",
+ "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
+ "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "regenerator-transform": "^0.15.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
+ "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz",
+ "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.18.12",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz",
+ "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-typescript": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
+ "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.18.10.tgz",
+ "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
+ "dependencies": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-async-generator-functions": "^7.18.10",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.18.6",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-async-to-generator": "^7.18.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.18.9",
+ "@babel/plugin-transform-classes": "^7.18.9",
+ "@babel/plugin-transform-computed-properties": "^7.18.9",
+ "@babel/plugin-transform-destructuring": "^7.18.9",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.18.8",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.18.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.9",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.18.8",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.18.6",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.18.9",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.18.10",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.18.10",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "core-js-compat": "^3.22.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-env/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-react": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.18.6.tgz",
+ "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-react-display-name": "^7.18.6",
+ "@babel/plugin-transform-react-jsx": "^7.18.6",
+ "@babel/plugin-transform-react-jsx-development": "^7.18.6",
+ "@babel/plugin-transform-react-pure-annotations": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-typescript": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
+ "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-typescript": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
+ "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.11"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/runtime-corejs3": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz",
+ "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==",
+ "dependencies": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.13.tgz",
+ "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.18.13",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.18.13",
+ "@babel/types": "^7.18.13",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.18.13.tgz",
+ "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.18.10",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/@docsearch/css": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz",
+ "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA=="
+ },
+ "node_modules/@docsearch/react": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz",
+ "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==",
+ "dependencies": {
+ "@algolia/autocomplete-core": "1.9.3",
+ "@algolia/autocomplete-preset-algolia": "1.9.3",
+ "@docsearch/css": "3.5.1",
+ "algoliasearch": "^4.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">= 16.8.0 < 19.0.0",
+ "react": ">= 16.8.0 < 19.0.0",
+ "react-dom": ">= 16.8.0 < 19.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "react-dom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/core": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz",
+ "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==",
+ "dependencies": {
+ "@babel/core": "^7.18.6",
+ "@babel/generator": "^7.18.7",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-transform-runtime": "^7.18.6",
+ "@babel/preset-env": "^7.18.6",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.18.6",
+ "@babel/runtime": "^7.18.6",
+ "@babel/runtime-corejs3": "^7.18.6",
+ "@babel/traverse": "^7.18.8",
+ "@docusaurus/cssnano-preset": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@slorber/static-site-generator-webpack-plugin": "^4.0.7",
+ "@svgr/webpack": "^6.2.1",
+ "autoprefixer": "^10.4.7",
+ "babel-loader": "^8.2.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3",
+ "boxen": "^6.2.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.3",
+ "clean-css": "^5.3.0",
+ "cli-table3": "^0.6.2",
+ "combine-promises": "^1.1.0",
+ "commander": "^5.1.0",
+ "copy-webpack-plugin": "^11.0.0",
+ "core-js": "^3.23.3",
+ "css-loader": "^6.7.1",
+ "css-minimizer-webpack-plugin": "^4.0.0",
+ "cssnano": "^5.1.12",
+ "del": "^6.1.1",
+ "detect-port": "^1.3.0",
+ "escape-html": "^1.0.3",
+ "eta": "^2.0.0",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "html-minifier-terser": "^6.1.0",
+ "html-tags": "^3.2.0",
+ "html-webpack-plugin": "^5.5.0",
+ "import-fresh": "^3.3.0",
+ "leven": "^3.1.0",
+ "lodash": "^4.17.21",
+ "mini-css-extract-plugin": "^2.6.1",
+ "postcss": "^8.4.14",
+ "postcss-loader": "^7.0.0",
+ "prompts": "^2.4.2",
+ "react-dev-utils": "^12.0.1",
+ "react-helmet-async": "^1.3.0",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
+ "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
+ "react-router": "^5.3.3",
+ "react-router-config": "^5.1.1",
+ "react-router-dom": "^5.3.3",
+ "rtl-detect": "^1.0.4",
+ "semver": "^7.3.7",
+ "serve-handler": "^6.1.3",
+ "shelljs": "^0.8.5",
+ "terser-webpack-plugin": "^5.3.3",
+ "tslib": "^2.4.0",
+ "update-notifier": "^5.1.0",
+ "url-loader": "^4.1.1",
+ "wait-on": "^6.0.1",
+ "webpack": "^5.73.0",
+ "webpack-bundle-analyzer": "^4.5.0",
+ "webpack-dev-server": "^4.9.3",
+ "webpack-merge": "^5.8.0",
+ "webpackbar": "^5.0.2"
+ },
+ "bin": {
+ "docusaurus": "bin/docusaurus.mjs"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/cssnano-preset": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz",
+ "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==",
+ "dependencies": {
+ "cssnano-preset-advanced": "^5.3.8",
+ "postcss": "^8.4.14",
+ "postcss-sort-media-queries": "^4.2.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/@docusaurus/logger": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz",
+ "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==",
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/@docusaurus/mdx-loader": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz",
+ "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==",
+ "dependencies": {
+ "@babel/parser": "^7.18.8",
+ "@babel/traverse": "^7.18.8",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@mdx-js/mdx": "^1.6.22",
+ "escape-html": "^1.0.3",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "image-size": "^1.0.1",
+ "mdast-util-to-string": "^2.0.0",
+ "remark-emoji": "^2.2.0",
+ "stringify-object": "^3.3.0",
+ "tslib": "^2.4.0",
+ "unified": "^9.2.2",
+ "unist-util-visit": "^2.0.3",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.73.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/module-type-aliases": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz",
+ "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==",
+ "dependencies": {
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/types": "2.4.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
+ },
+ "peerDependencies": {
+ "react": "*",
+ "react-dom": "*"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-blog": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz",
+ "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "cheerio": "^1.0.0-rc.12",
+ "feed": "^4.2.2",
+ "fs-extra": "^10.1.0",
+ "lodash": "^4.17.21",
+ "reading-time": "^1.5.0",
+ "tslib": "^2.4.0",
+ "unist-util-visit": "^2.0.3",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-docs": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz",
+ "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@types/react-router-config": "^5.0.6",
+ "combine-promises": "^1.1.0",
+ "fs-extra": "^10.1.0",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-content-pages": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz",
+ "integrity": "sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "tslib": "^2.4.0",
+ "webpack": "^5.73.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-debug": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz",
+ "integrity": "sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "react-json-view": "^1.21.3",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-analytics": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz",
+ "integrity": "sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-gtag": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz",
+ "integrity": "sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-google-tag-manager": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz",
+ "integrity": "sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/plugin-sitemap": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz",
+ "integrity": "sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "sitemap": "^7.1.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/preset-classic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz",
+ "integrity": "sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/plugin-debug": "2.4.1",
+ "@docusaurus/plugin-google-analytics": "2.4.1",
+ "@docusaurus/plugin-google-gtag": "2.4.1",
+ "@docusaurus/plugin-google-tag-manager": "2.4.1",
+ "@docusaurus/plugin-sitemap": "2.4.1",
+ "@docusaurus/theme-classic": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-search-algolia": "2.4.1",
+ "@docusaurus/types": "2.4.1"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/react-loadable": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmmirror.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
+ "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==",
+ "dependencies": {
+ "@types/react": "*",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/@docusaurus/theme-classic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz",
+ "integrity": "sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==",
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-translations": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@mdx-js/react": "^1.6.22",
+ "clsx": "^1.2.1",
+ "copy-text-to-clipboard": "^3.0.1",
+ "infima": "0.2.0-alpha.43",
+ "lodash": "^4.17.21",
+ "nprogress": "^0.2.0",
+ "postcss": "^8.4.14",
+ "prism-react-renderer": "^1.3.5",
+ "prismjs": "^1.28.0",
+ "react-router-dom": "^5.3.3",
+ "rtlcss": "^3.5.0",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-common": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz",
+ "integrity": "sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==",
+ "dependencies": {
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "clsx": "^1.2.1",
+ "parse-numeric-range": "^1.3.0",
+ "prism-react-renderer": "^1.3.5",
+ "tslib": "^2.4.0",
+ "use-sync-external-store": "^1.2.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-search-algolia": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz",
+ "integrity": "sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==",
+ "dependencies": {
+ "@docsearch/react": "^3.1.1",
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-translations": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "algoliasearch": "^4.13.1",
+ "algoliasearch-helper": "^3.10.0",
+ "clsx": "^1.2.1",
+ "eta": "^2.0.0",
+ "fs-extra": "^10.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/theme-translations": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz",
+ "integrity": "sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==",
+ "dependencies": {
+ "fs-extra": "^10.1.0",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/@docusaurus/types": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz",
+ "integrity": "sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.6.0",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0",
+ "webpack-merge": "^5.8.0"
+ },
+ "peerDependencies": {
+ "react": "^16.8.4 || ^17.0.0",
+ "react-dom": "^16.8.4 || ^17.0.0"
+ }
+ },
+ "node_modules/@docusaurus/utils": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz",
+ "integrity": "sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==",
+ "dependencies": {
+ "@docusaurus/logger": "2.4.1",
+ "@svgr/webpack": "^6.2.1",
+ "escape-string-regexp": "^4.0.0",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "github-slugger": "^1.4.0",
+ "globby": "^11.1.0",
+ "gray-matter": "^4.0.3",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "micromatch": "^4.0.5",
+ "resolve-pathname": "^3.0.0",
+ "shelljs": "^0.8.5",
+ "tslib": "^2.4.0",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.73.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "@docusaurus/types": "*"
+ },
+ "peerDependenciesMeta": {
+ "@docusaurus/types": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/utils-common": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.1.tgz",
+ "integrity": "sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==",
+ "dependencies": {
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ },
+ "peerDependencies": {
+ "@docusaurus/types": "*"
+ },
+ "peerDependenciesMeta": {
+ "@docusaurus/types": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@docusaurus/utils-validation": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz",
+ "integrity": "sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==",
+ "dependencies": {
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "joi": "^17.6.0",
+ "js-yaml": "^4.1.0",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
+ "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
+ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
+ },
+ "node_modules/@mdx-js/mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
+ "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
+ "dependencies": {
+ "@babel/core": "7.12.9",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@babel/plugin-syntax-object-rest-spread": "7.8.3",
+ "@mdx-js/util": "1.6.22",
+ "babel-plugin-apply-mdx-type-prop": "1.6.22",
+ "babel-plugin-extract-import-names": "1.6.22",
+ "camelcase-css": "2.0.1",
+ "detab": "2.0.4",
+ "hast-util-raw": "6.0.1",
+ "lodash.uniq": "4.5.0",
+ "mdast-util-to-hast": "10.0.1",
+ "remark-footnotes": "2.0.0",
+ "remark-mdx": "1.6.22",
+ "remark-parse": "8.0.3",
+ "remark-squeeze-paragraphs": "4.0.0",
+ "style-to-object": "0.3.0",
+ "unified": "9.2.0",
+ "unist-builder": "2.0.3",
+ "unist-util-visit": "2.0.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/@babel/core": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
+ "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.5",
+ "@babel/parser": "^7.12.7",
+ "@babel/template": "^7.12.7",
+ "@babel/traverse": "^7.12.9",
+ "@babel/types": "^7.12.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@mdx-js/mdx/node_modules/unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "dependencies": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@mdx-js/react": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmmirror.com/@mdx-js/react/-/react-1.6.22.tgz",
+ "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
+ "peerDependencies": {
+ "react": "^16.13.1 || ^17.0.0"
+ }
+ },
+ "node_modules/@mdx-js/util": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz",
+ "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.21",
+ "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz",
+ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz",
+ "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@slorber/static-site-generator-webpack-plugin": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz",
+ "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==",
+ "dependencies": {
+ "eval": "^0.1.8",
+ "p-map": "^4.0.0",
+ "webpack-sources": "^3.2.2"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz",
+ "integrity": "sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz",
+ "integrity": "sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz",
+ "integrity": "sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz",
+ "integrity": "sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz",
+ "integrity": "sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz",
+ "integrity": "sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz",
+ "integrity": "sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-plugin-transform-svg-component": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz",
+ "integrity": "sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw==",
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/babel-preset": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz",
+ "integrity": "sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g==",
+ "dependencies": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^6.3.1",
+ "@svgr/babel-plugin-remove-jsx-attribute": "^6.3.1",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.3.1",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.3.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^6.3.1",
+ "@svgr/babel-plugin-svg-em-dimensions": "^6.3.1",
+ "@svgr/babel-plugin-transform-react-native-svg": "^6.3.1",
+ "@svgr/babel-plugin-transform-svg-component": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@svgr/core": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/core/-/core-6.3.1.tgz",
+ "integrity": "sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA==",
+ "dependencies": {
+ "@svgr/plugin-jsx": "^6.3.1",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@svgr/hast-util-to-babel-ast": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz",
+ "integrity": "sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ==",
+ "dependencies": {
+ "@babel/types": "^7.18.4",
+ "entities": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@svgr/plugin-jsx": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz",
+ "integrity": "sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw==",
+ "dependencies": {
+ "@babel/core": "^7.18.5",
+ "@svgr/babel-preset": "^6.3.1",
+ "@svgr/hast-util-to-babel-ast": "^6.3.1",
+ "svg-parser": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@svgr/core": "^6.0.0"
+ }
+ },
+ "node_modules/@svgr/plugin-svgo": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz",
+ "integrity": "sha512-yJIjTDKPYqzFVjmsbH5EdIwEsmKxjxdXSGJVLeUgwZOZPAkNQmD1v7LDbOdOKbR44FG8465Du+zWPdbYGnbMbw==",
+ "dependencies": {
+ "cosmiconfig": "^7.0.1",
+ "deepmerge": "^4.2.2",
+ "svgo": "^2.8.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "@svgr/core": "^6.0.0"
+ }
+ },
+ "node_modules/@svgr/webpack": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/webpack/-/webpack-6.3.1.tgz",
+ "integrity": "sha512-eODxwIUShLxSMaRjzJtrj9wg89D75JLczvWg9SaB5W+OtVTkiC1vdGd8+t+pf5fTlBOy4RRXAq7x1E3DUl3D0A==",
+ "dependencies": {
+ "@babel/core": "^7.18.5",
+ "@babel/plugin-transform-react-constant-elements": "^7.17.12",
+ "@babel/preset-env": "^7.18.2",
+ "@babel/preset-react": "^7.17.12",
+ "@babel/preset-typescript": "^7.17.12",
+ "@svgr/core": "^6.3.1",
+ "@svgr/plugin-jsx": "^6.3.1",
+ "@svgr/plugin-svgo": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "dependencies": {
+ "defer-to-connect": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/bonjour": {
+ "version": "3.5.10",
+ "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz",
+ "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.35",
+ "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz",
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz",
+ "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==",
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/eslint": {
+ "version": "8.4.6",
+ "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.6.tgz",
+ "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ=="
+ },
+ "node_modules/@types/express": {
+ "version": "4.17.13",
+ "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.13.tgz",
+ "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "4.17.30",
+ "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz",
+ "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "node_modules/@types/hast": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
+ "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/history": {
+ "version": "4.7.11",
+ "resolved": "https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz",
+ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
+ },
+ "node_modules/@types/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.9",
+ "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ },
+ "node_modules/@types/mdast": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz",
+ "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==",
+ "dependencies": {
+ "@types/unist": "*"
+ }
+ },
+ "node_modules/@types/mime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz",
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
+ },
+ "node_modules/@types/node": {
+ "version": "18.7.13",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.7.13.tgz",
+ "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+ },
+ "node_modules/@types/parse5": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
+ "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
+ },
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz",
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
+ },
+ "node_modules/@types/react": {
+ "version": "18.0.17",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.17.tgz",
+ "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
+ "dependencies": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-router": {
+ "version": "5.1.18",
+ "resolved": "https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.18.tgz",
+ "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*"
+ }
+ },
+ "node_modules/@types/react-router-config": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/react-router-config/-/react-router-config-5.0.6.tgz",
+ "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "node_modules/@types/react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
+ "dependencies": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "node_modules/@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
+ },
+ "node_modules/@types/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
+ "node_modules/@types/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
+ "dependencies": {
+ "@types/express": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "dependencies": {
+ "@types/mime": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/sockjs": {
+ "version": "0.3.33",
+ "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz",
+ "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz",
+ "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "dependencies": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ=="
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg=="
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA=="
+ },
+ "node_modules/@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "dependencies": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q=="
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ=="
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/accepts/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "peerDependencies": {
+ "acorn": "^8"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/address": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/address/-/address-1.2.0.tgz",
+ "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "dependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependencies": {
+ "ajv": "^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "ajv": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ajv-formats/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/ajv-formats/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/algoliasearch": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.2.tgz",
+ "integrity": "sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==",
+ "dependencies": {
+ "@algolia/cache-browser-local-storage": "4.17.2",
+ "@algolia/cache-common": "4.17.2",
+ "@algolia/cache-in-memory": "4.17.2",
+ "@algolia/client-account": "4.17.2",
+ "@algolia/client-analytics": "4.17.2",
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-personalization": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/logger-common": "4.17.2",
+ "@algolia/logger-console": "4.17.2",
+ "@algolia/requester-browser-xhr": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/requester-node-http": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "node_modules/algoliasearch-helper": {
+ "version": "3.13.2",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.13.2.tgz",
+ "integrity": "sha512-1bZjtHuqCBYw7Eu3Qh0Jfq4s63UcbOs6VvLPdt7kxn5+zMgs46xiXgc65YhZBNM3hDGrudhAX9hDhE9OP+rKUw==",
+ "dependencies": {
+ "@algolia/events": "^4.0.1"
+ },
+ "peerDependencies": {
+ "algoliasearch": ">= 3.1 < 6"
+ }
+ },
+ "node_modules/ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "dependencies": {
+ "string-width": "^4.1.0"
+ }
+ },
+ "node_modules/ansi-align/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/ansi-align/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "10.4.14",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
+ "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ ],
+ "dependencies": {
+ "browserslist": "^4.21.5",
+ "caniuse-lite": "^1.0.30001464",
+ "fraction.js": "^4.2.0",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.25.0.tgz",
+ "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
+ "dependencies": {
+ "follow-redirects": "^1.14.7"
+ }
+ },
+ "node_modules/babel-loader": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.5.tgz",
+ "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+ "dependencies": {
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^2.0.0",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 8.9"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "webpack": ">=2"
+ }
+ },
+ "node_modules/babel-plugin-apply-mdx-type-prop": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz",
+ "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@mdx-js/util": "1.6.22"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.11.6"
+ }
+ },
+ "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "node_modules/babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "dependencies": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "node_modules/babel-plugin-extract-import-names": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz",
+ "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "7.10.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
+ "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
+ "dependencies": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "semver": "^6.1.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
+ "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "core-js-compat": "^3.21.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
+ "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/base16": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz",
+ "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ=="
+ },
+ "node_modules/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
+ },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/bonjour-service": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.0.13.tgz",
+ "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==",
+ "dependencies": {
+ "array-flatten": "^2.1.2",
+ "dns-equal": "^1.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "node_modules/boxen": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/boxen/-/boxen-6.2.1.tgz",
+ "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==",
+ "dependencies": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.2",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.0.1",
+ "type-fest": "^2.5.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.0.1"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.9",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
+ "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001503",
+ "electron-to-chromium": "^1.4.431",
+ "node-releases": "^2.0.12",
+ "update-browserslist-db": "^1.0.11"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "node_modules/bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/normalize-url": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001505",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz",
+ "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/ccount": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
+ "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/character-entities": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-entities-legacy": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/character-reference-invalid": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "node_modules/clean-css": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.1.tgz",
+ "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 10.0"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/cli-table3/-/cli-table3-0.6.2.tgz",
+ "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==",
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-table3/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/cli-table3/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "node_modules/clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/collapse-white-space": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+ "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
+ },
+ "node_modules/colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
+ },
+ "node_modules/combine-promises": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/combine-promises/-/combine-promises-1.1.0.tgz",
+ "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/comma-separated-tokens": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
+ "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compressible/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "dependencies": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "node_modules/configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/consola": {
+ "version": "2.15.3",
+ "resolved": "https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz",
+ "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw=="
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "node_modules/copy-text-to-clipboard": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz",
+ "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng==",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
+ "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
+ "dependencies": {
+ "fast-glob": "^3.2.11",
+ "glob-parent": "^6.0.1",
+ "globby": "^13.1.1",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/globby": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-13.1.2.tgz",
+ "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==",
+ "dependencies": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.11",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/copy-webpack-plugin/node_modules/schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.0.tgz",
+ "integrity": "sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA==",
+ "hasInstallScript": true
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.25.0.tgz",
+ "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
+ "dependencies": {
+ "browserslist": "^4.21.3",
+ "semver": "7.0.0"
+ }
+ },
+ "node_modules/core-js-compat/node_modules/semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.25.0.tgz",
+ "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==",
+ "hasInstallScript": true
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz",
+ "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==",
+ "dependencies": {
+ "node-fetch": "^2.6.11"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz",
+ "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==",
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.0.9"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
+ "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==",
+ "dependencies": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.7",
+ "postcss-modules-extract-imports": "^3.0.0",
+ "postcss-modules-local-by-default": "^4.0.0",
+ "postcss-modules-scope": "^3.0.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/css-minimizer-webpack-plugin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz",
+ "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==",
+ "dependencies": {
+ "cssnano": "^5.1.8",
+ "jest-worker": "^27.5.1",
+ "postcss": "^8.4.13",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@parcel/css": {
+ "optional": true
+ },
+ "clean-css": {
+ "optional": true
+ },
+ "csso": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "5.1.13",
+ "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.13.tgz",
+ "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==",
+ "dependencies": {
+ "cssnano-preset-default": "^5.2.12",
+ "lilconfig": "^2.0.3",
+ "yaml": "^1.10.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/cssnano-preset-advanced": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz",
+ "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==",
+ "dependencies": {
+ "autoprefixer": "^10.4.12",
+ "cssnano-preset-default": "^5.2.14",
+ "postcss-discard-unused": "^5.1.0",
+ "postcss-merge-idents": "^5.1.1",
+ "postcss-reduce-idents": "^5.2.0",
+ "postcss-zindex": "^5.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "5.2.14",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
+ "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
+ "dependencies": {
+ "css-declaration-sorter": "^6.3.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-calc": "^8.2.3",
+ "postcss-colormin": "^5.3.1",
+ "postcss-convert-values": "^5.1.3",
+ "postcss-discard-comments": "^5.1.2",
+ "postcss-discard-duplicates": "^5.1.0",
+ "postcss-discard-empty": "^5.1.1",
+ "postcss-discard-overridden": "^5.1.0",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.4",
+ "postcss-minify-font-values": "^5.1.0",
+ "postcss-minify-gradients": "^5.1.1",
+ "postcss-minify-params": "^5.1.4",
+ "postcss-minify-selectors": "^5.2.1",
+ "postcss-normalize-charset": "^5.1.0",
+ "postcss-normalize-display-values": "^5.1.0",
+ "postcss-normalize-positions": "^5.1.1",
+ "postcss-normalize-repeat-style": "^5.1.1",
+ "postcss-normalize-string": "^5.1.0",
+ "postcss-normalize-timing-functions": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
+ "postcss-normalize-url": "^5.1.0",
+ "postcss-normalize-whitespace": "^5.1.1",
+ "postcss-ordered-values": "^5.1.3",
+ "postcss-reduce-initial": "^5.1.2",
+ "postcss-reduce-transforms": "^5.1.0",
+ "postcss-svgo": "^5.1.0",
+ "postcss-unique-selectors": "^5.1.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/cssnano-utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
+ "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dependencies": {
+ "css-tree": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmmirror.com/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "dependencies": {
+ "globby": "^11.0.1",
+ "graceful-fs": "^4.2.4",
+ "is-glob": "^4.0.1",
+ "is-path-cwd": "^2.2.0",
+ "is-path-inside": "^3.0.2",
+ "p-map": "^4.0.0",
+ "rimraf": "^3.0.2",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detab": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz",
+ "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==",
+ "dependencies": {
+ "repeat-string": "^1.5.4"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
+ },
+ "node_modules/detect-port": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/detect-port/-/detect-port-1.3.0.tgz",
+ "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
+ "dependencies": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "bin": {
+ "detect": "bin/detect-port",
+ "detect-port": "bin/detect-port"
+ },
+ "engines": {
+ "node": ">= 4.2.1"
+ }
+ },
+ "node_modules/detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmmirror.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
+ "dependencies": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "bin": {
+ "detect": "bin/detect-port",
+ "detect-port": "bin/detect-port"
+ },
+ "engines": {
+ "node": ">= 4.2.1"
+ }
+ },
+ "node_modules/detect-port-alt/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/detect-port-alt/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/detect-port/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/detect-port/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
+ },
+ "node_modules/dns-packet": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.4.0.tgz",
+ "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
+ "dependencies": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dependencies": {
+ "utila": "~0.4"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dot-prop/node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.434",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.434.tgz",
+ "integrity": "sha512-5Gvm09UZTQRaWrimRtWRO5rvaX6Kpk5WHAPKDa7A4Gj6NIPuJ8w8WNpnxCXdd+CJJt6RBU6tUw0KyULoW6XuHw=="
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/emoticon": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz",
+ "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
+ "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
+ "dependencies": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-goat": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/escape-goat/-/escape-goat-2.1.1.tgz",
+ "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eta": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz",
+ "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g==",
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/eta-dev/eta?sponsor=1"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eval": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/eval/-/eval-0.1.8.tgz",
+ "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==",
+ "dependencies": {
+ "@types/node": "*",
+ "require-like": ">= 0.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/execa/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/express": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/express/node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "node_modules/express/node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/express/node_modules/path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "node_modules/express/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/express/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "node_modules/fast-url-parser": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
+ "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==",
+ "dependencies": {
+ "punycode": "^1.3.2"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "dependencies": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "node_modules/fbjs": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz",
+ "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==",
+ "dependencies": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^1.0.35"
+ }
+ },
+ "node_modules/fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "node_modules/feed": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz",
+ "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==",
+ "dependencies": {
+ "xml-js": "^1.6.11"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/file-loader": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz",
+ "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/file-loader/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/filesize": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz",
+ "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flux": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz",
+ "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==",
+ "dependencies": {
+ "fbemitter": "^3.0.0",
+ "fbjs": "^3.0.1"
+ },
+ "peerDependencies": {
+ "react": "^15.0.2 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz",
+ "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==",
+ "dependencies": {
+ "@babel/code-frame": "^7.8.3",
+ "@types/json-schema": "^7.0.5",
+ "chalk": "^4.1.0",
+ "chokidar": "^3.4.2",
+ "cosmiconfig": "^6.0.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "memfs": "^3.1.2",
+ "minimatch": "^3.0.4",
+ "schema-utils": "2.7.0",
+ "semver": "^7.3.2",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=10",
+ "yarn": ">=1.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 6",
+ "typescript": ">= 2.7",
+ "vue-template-compiler": "*",
+ "webpack": ">= 4"
+ },
+ "peerDependenciesMeta": {
+ "eslint": {
+ "optional": true
+ },
+ "vue-template-compiler": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz",
+ "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ }
+ },
+ "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fraction.js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "patreon",
+ "url": "https://www.patreon.com/infusion"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/fs-monkey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz",
+ "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q=="
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "node_modules/get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/github-slugger": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
+ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw=="
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
+ },
+ "node_modules/global-dirs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/global-dirs/-/global-dirs-3.0.0.tgz",
+ "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/global-dirs/node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "dependencies": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "node_modules/gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "dependencies": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/gray-matter/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/gray-matter/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
+ "dependencies": {
+ "duplexer": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hast-to-hyperscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz",
+ "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==",
+ "dependencies": {
+ "@types/unist": "^2.0.3",
+ "comma-separated-tokens": "^1.0.0",
+ "property-information": "^5.3.0",
+ "space-separated-tokens": "^1.0.0",
+ "style-to-object": "^0.3.0",
+ "unist-util-is": "^4.0.0",
+ "web-namespaces": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-from-parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
+ "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==",
+ "dependencies": {
+ "@types/parse5": "^5.0.0",
+ "hastscript": "^6.0.0",
+ "property-information": "^5.0.0",
+ "vfile": "^4.0.0",
+ "vfile-location": "^3.2.0",
+ "web-namespaces": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-parse-selector": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
+ "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz",
+ "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "hast-util-from-parse5": "^6.0.0",
+ "hast-util-to-parse5": "^6.0.0",
+ "html-void-elements": "^1.0.0",
+ "parse5": "^6.0.0",
+ "unist-util-position": "^3.0.0",
+ "vfile": "^4.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.0",
+ "zwitch": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hast-util-raw/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ },
+ "node_modules/hast-util-to-parse5": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz",
+ "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==",
+ "dependencies": {
+ "hast-to-hyperscript": "^9.0.0",
+ "property-information": "^5.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.0",
+ "zwitch": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/hastscript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
+ "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "dependencies": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmmirror.com/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
+ "node_modules/hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "dependencies": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hpack.js/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/hpack.js/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/hpack.js/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/html-entities": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz",
+ "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="
+ },
+ "node_modules/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
+ "dependencies": {
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.2.2",
+ "commander": "^8.3.0",
+ "he": "^1.2.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.10.0"
+ },
+ "bin": {
+ "html-minifier-terser": "cli.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/html-minifier-terser/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/html-void-elements": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
+ "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
+ "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
+ "dependencies": {
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
+ "lodash": "^4.17.21",
+ "pretty-error": "^4.0.0",
+ "tapable": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.20.0"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ },
+ "peerDependencies": {
+ "@types/express": "^4.17.13"
+ },
+ "peerDependenciesMeta": {
+ "@types/express": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/image-size": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz",
+ "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
+ "dependencies": {
+ "queue": "6.0.2"
+ },
+ "bin": {
+ "image-size": "bin/image-size.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/immer": {
+ "version": "9.0.15",
+ "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ=="
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/infima": {
+ "version": "0.2.0-alpha.43",
+ "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz",
+ "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "node_modules/inline-style-parser": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "dependencies": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
+ "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "dependencies": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "dependencies": {
+ "ci-info": "^2.0.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz",
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
+ "node_modules/is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-hexadecimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/is-npm": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-npm/-/is-npm-5.0.0.tgz",
+ "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-root": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "node_modules/is-whitespace-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-word-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
+ },
+ "node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "dependencies": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.6.0",
+ "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz",
+ "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==",
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.0",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "node_modules/json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "dependencies": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/klona": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
+ "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "dependencies": {
+ "package-json": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
+ "node_modules/loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==",
+ "engines": {
+ "node": ">=6.11.5"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz",
+ "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "node_modules/lodash.curry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
+ "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA=="
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.flow": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz",
+ "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw=="
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "node_modules/loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "dependencies": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "dependencies": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/make-dir/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/markdown-escapes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/mdast-squeeze-paragraphs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz",
+ "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==",
+ "dependencies": {
+ "unist-util-remove": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-definitions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
+ "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "dependencies": {
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-hast": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz",
+ "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==",
+ "dependencies": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "mdast-util-definitions": "^4.0.0",
+ "mdurl": "^1.0.0",
+ "unist-builder": "^2.0.0",
+ "unist-util-generated": "^1.0.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdast-util-to-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz",
+ "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ },
+ "node_modules/mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memfs": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.4.7.tgz",
+ "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
+ "dependencies": {
+ "fs-monkey": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "dependencies": {
+ "mime-db": "~1.33.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mini-create-react-context": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
+ "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.1",
+ "tiny-warning": "^1.0.3"
+ },
+ "peerDependencies": {
+ "prop-types": "^15.0.0",
+ "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
+ "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
+ "dependencies": {
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+ },
+ "node_modules/mrmime": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz",
+ "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "dependencies": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ },
+ "bin": {
+ "multicast-dns": "cli.js"
+ }
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ },
+ "node_modules/no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "dependencies": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "dependencies": {
+ "lodash": "^4.17.21"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
+ "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
+ "engines": {
+ "node": ">= 6.13.0"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
+ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/open": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
+ "dependencies": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
+ "bin": {
+ "opener": "bin/opener-bin.js"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "dependencies": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmmirror.com/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "dependencies": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/package-json/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "dependencies": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "dependencies": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/parse-numeric-range": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
+ "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ=="
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w=="
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "node_modules/path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-up/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-up/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.16",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.16.tgz",
+ "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz",
+ "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.9",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.2"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
+ "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+ "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
+ "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
+ "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
+ "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-discard-unused": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz",
+ "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.5"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-7.0.1.tgz",
+ "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==",
+ "dependencies": {
+ "cosmiconfig": "^7.0.0",
+ "klona": "^2.0.5",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": ">= 14.15.0"
+ },
+ "peerDependencies": {
+ "postcss": "^7.0.0 || ^8.0.1",
+ "webpack": "^5.0.0"
+ }
+ },
+ "node_modules/postcss-merge-idents": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz",
+ "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==",
+ "dependencies": {
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^5.1.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
+ "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^3.1.0",
+ "postcss-selector-parser": "^6.0.5"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
+ "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
+ "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
+ "dependencies": {
+ "colord": "^2.9.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+ "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.5"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "dependencies": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.4"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "dependencies": {
+ "icss-utils": "^5.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >= 14"
+ },
+ "peerDependencies": {
+ "postcss": "^8.1.0"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
+ "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
+ "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+ "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+ "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
+ "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
+ "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
+ "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
+ "dependencies": {
+ "normalize-url": "^6.0.1",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
+ "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+ "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
+ "dependencies": {
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-reduce-idents": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz",
+ "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
+ "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
+ "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.10",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-sort-media-queries": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz",
+ "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==",
+ "dependencies": {
+ "sort-css-media-queries": "2.1.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4.16"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
+ "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
+ "dependencies": {
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^2.7.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
+ "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
+ "dependencies": {
+ "postcss-selector-parser": "^6.0.5"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
+ "node_modules/postcss-zindex": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz",
+ "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==",
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pretty-error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^3.0.0"
+ }
+ },
+ "node_modules/pretty-time": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/pretty-time/-/pretty-time-1.1.0.tgz",
+ "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prism-react-renderer": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmmirror.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
+ "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
+ "peerDependencies": {
+ "react": ">=0.14.9"
+ }
+ },
+ "node_modules/prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "dependencies": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "node_modules/property-information": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
+ "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/proxy-addr/node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "node_modules/pupa": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/pupa/-/pupa-2.1.1.tgz",
+ "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
+ "dependencies": {
+ "escape-goat": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pure-color": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz",
+ "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA=="
+ },
+ "node_modules/qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "dependencies": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/raw-body/node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-base16-styling": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz",
+ "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==",
+ "dependencies": {
+ "base16": "^1.0.0",
+ "lodash.curry": "^4.0.1",
+ "lodash.flow": "^3.3.0",
+ "pure-color": "^1.2.0"
+ }
+ },
+ "node_modules/react-dev-utils": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmmirror.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.16.0",
+ "address": "^1.1.2",
+ "browserslist": "^4.18.1",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "detect-port-alt": "^1.1.6",
+ "escape-string-regexp": "^4.0.0",
+ "filesize": "^8.0.6",
+ "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^6.5.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.4",
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/loader-utils": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.0.tgz",
+ "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==",
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dev-utils/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ },
+ "peerDependencies": {
+ "react": "17.0.2"
+ }
+ },
+ "node_modules/react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
+ },
+ "node_modules/react-fast-compare": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz",
+ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
+ },
+ "node_modules/react-helmet-async": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
+ "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.2.0",
+ "shallowequal": "^1.1.0"
+ },
+ "peerDependencies": {
+ "react": "^16.6.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "node_modules/react-json-view": {
+ "version": "1.21.3",
+ "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz",
+ "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
+ "dependencies": {
+ "flux": "^4.0.1",
+ "react-base16-styling": "^0.6.0",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-textarea-autosize": "^8.3.2"
+ },
+ "peerDependencies": {
+ "react": "^17.0.0 || ^16.3.0 || ^15.5.4",
+ "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4"
+ }
+ },
+ "node_modules/react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "node_modules/react-loadable": {
+ "name": "@docusaurus/react-loadable",
+ "version": "5.5.2",
+ "resolved": "https://registry.npmmirror.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
+ "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==",
+ "dependencies": {
+ "@types/react": "*",
+ "prop-types": "^15.6.2"
+ },
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
+ "node_modules/react-loadable-ssr-addon-v5-slorber": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz",
+ "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==",
+ "dependencies": {
+ "@babel/runtime": "^7.10.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependencies": {
+ "react-loadable": "*",
+ "webpack": ">=4.41.1 || 5.x"
+ }
+ },
+ "node_modules/react-router": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/react-router/-/react-router-5.3.3.tgz",
+ "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "loose-envify": "^1.3.1",
+ "mini-create-react-context": "^0.4.0",
+ "path-to-regexp": "^1.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.6.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-router-config": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/react-router-config/-/react-router-config-5.1.1.tgz",
+ "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==",
+ "dependencies": {
+ "@babel/runtime": "^7.1.2"
+ },
+ "peerDependencies": {
+ "react": ">=15",
+ "react-router": ">=5"
+ }
+ },
+ "node_modules/react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.3.3",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ },
+ "peerDependencies": {
+ "react": ">=15"
+ }
+ },
+ "node_modules/react-textarea-autosize": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz",
+ "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.20.13",
+ "use-composed-ref": "^1.3.0",
+ "use-latest": "^1.2.1"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/reading-time": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
+ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg=="
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/recursive-readdir": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
+ "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==",
+ "dependencies": {
+ "minimatch": "3.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/recursive-readdir/node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
+ "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.1.0.tgz",
+ "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
+ "dependencies": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.0.1",
+ "regjsgen": "^0.6.0",
+ "regjsparser": "^0.8.2",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/registry-auth-token": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
+ "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
+ "dependencies": {
+ "rc": "1.2.8"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "dependencies": {
+ "rc": "^1.2.8"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz",
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA=="
+ },
+ "node_modules/regjsparser": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz",
+ "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
+ "dependencies": {
+ "jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/remark-emoji": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz",
+ "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==",
+ "dependencies": {
+ "emoticon": "^3.2.0",
+ "node-emoji": "^1.10.0",
+ "unist-util-visit": "^2.0.3"
+ }
+ },
+ "node_modules/remark-footnotes": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz",
+ "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
+ "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "dependencies": {
+ "@babel/core": "7.12.9",
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "7.12.1",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@mdx-js/util": "1.6.22",
+ "is-alphabetical": "1.0.4",
+ "remark-parse": "8.0.3",
+ "unified": "9.2.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/@babel/core": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
+ "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.5",
+ "@babel/parser": "^7.12.7",
+ "@babel/template": "^7.12.7",
+ "@babel/traverse": "^7.12.9",
+ "@babel/types": "^7.12.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
+ "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-transform-parameters": "^7.12.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/remark-mdx/node_modules/unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "dependencies": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-parse": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
+ "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
+ "dependencies": {
+ "ccount": "^1.0.0",
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^2.0.0",
+ "vfile-location": "^3.0.0",
+ "xtend": "^4.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/remark-squeeze-paragraphs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz",
+ "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==",
+ "dependencies": {
+ "mdast-squeeze-paragraphs": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/renderkid": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/renderkid/node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/renderkid/node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "node_modules/renderkid/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "node_modules/renderkid/node_modules/htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-like": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/require-like/-/require-like-0.1.2.tgz",
+ "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ },
+ "node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rtl-detect": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/rtl-detect/-/rtl-detect-1.0.4.tgz",
+ "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ=="
+ },
+ "node_modules/rtlcss": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz",
+ "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==",
+ "dependencies": {
+ "find-up": "^5.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.3.11",
+ "strip-json-comments": "^3.1.1"
+ },
+ "bin": {
+ "rtlcss": "bin/rtlcss.js"
+ }
+ },
+ "node_modules/rtlcss/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/rtlcss/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/rtlcss/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/rtlcss/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.5.6",
+ "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.5.6.tgz",
+ "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==",
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "node_modules/scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "dependencies": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "node_modules/schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ }
+ },
+ "node_modules/search-insights": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz",
+ "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==",
+ "peer": true,
+ "engines": {
+ "node": ">=8.16.0"
+ }
+ },
+ "node_modules/section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
+ },
+ "node_modules/selfsigned": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.0.1.tgz",
+ "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==",
+ "dependencies": {
+ "node-forge": "^1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/semver-diff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/semver-diff/-/semver-diff-3.1.1.tgz",
+ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "dependencies": {
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/semver-diff/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/send/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "node_modules/send/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-handler": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmmirror.com/serve-handler/-/serve-handler-6.1.3.tgz",
+ "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==",
+ "dependencies": {
+ "bytes": "3.0.0",
+ "content-disposition": "0.5.2",
+ "fast-url-parser": "1.1.3",
+ "mime-types": "2.1.18",
+ "minimatch": "3.0.4",
+ "path-is-inside": "1.0.2",
+ "path-to-regexp": "2.2.1",
+ "range-parser": "1.2.0"
+ }
+ },
+ "node_modules/serve-handler/node_modules/minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/serve-handler/node_modules/path-to-regexp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz",
+ "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ=="
+ },
+ "node_modules/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/serve-index/node_modules/setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "node_modules/serve-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw=="
+ },
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmmirror.com/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "node_modules/sirv": {
+ "version": "1.0.19",
+ "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz",
+ "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==",
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.20",
+ "mrmime": "^1.0.0",
+ "totalist": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+ },
+ "node_modules/sitemap": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz",
+ "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==",
+ "dependencies": {
+ "@types/node": "^17.0.5",
+ "@types/sax": "^1.2.1",
+ "arg": "^5.0.0",
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "sitemap": "dist/cli.js"
+ },
+ "engines": {
+ "node": ">=12.0.0",
+ "npm": ">=5.6.0"
+ }
+ },
+ "node_modules/sitemap/node_modules/@types/node": {
+ "version": "17.0.45",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
+ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "dependencies": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "node_modules/sort-css-media-queries": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz",
+ "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==",
+ "engines": {
+ "node": ">= 6.3.0"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/space-separated-tokens": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
+ "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "node_modules/stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility"
+ },
+ "node_modules/state-toggle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
+ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/std-env": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.2.1.tgz",
+ "integrity": "sha512-D/uYFWkI/31OrnKmXZqGAGK5GbQRPp/BWA1nuITcc6ICblhhuQUPHS5E2GSCVS7Hwhf4ciq8qsATwBUxv+lI6w=="
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string_decoder/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/string-width/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/string-width/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "dependencies": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "dependencies": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "node_modules/stylehacks": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
+ "dependencies": {
+ "browserslist": "^4.21.4",
+ "postcss-selector-parser": "^6.0.4"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2.15"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/svg-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz",
+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
+ },
+ "node_modules/svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "dependencies": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/svgo/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/svgo/node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "node_modules/svgo/node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/svgo/node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "node_modules/svgo/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz",
+ "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==",
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz",
+ "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^5.1.0"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "uglify-js": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
+ "node_modules/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+ },
+ "node_modules/tiny-invariant": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz",
+ "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg=="
+ },
+ "node_modules/tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/totalist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz",
+ "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "node_modules/trim": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
+ "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==",
+ "deprecated": "Use String.prototype.trim() instead"
+ },
+ "node_modules/trim-trailing-lines": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz",
+ "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ },
+ "node_modules/type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/type-is/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "dependencies": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz",
+ "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
+ "peer": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "node_modules/ua-parser-js": {
+ "version": "1.0.35",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz",
+ "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/ua-parser-js"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/faisalman"
+ }
+ ],
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/unherit": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
+ "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
+ "dependencies": {
+ "inherits": "^2.0.0",
+ "xtend": "^4.0.0"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unified": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz",
+ "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==",
+ "dependencies": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "dependencies": {
+ "crypto-random-string": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/unist-builder": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz",
+ "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-generated": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+ "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-is": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
+ "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz",
+ "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==",
+ "dependencies": {
+ "unist-util-is": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "dependencies": {
+ "unist-util-visit": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "dependencies": {
+ "@types/unist": "^2.0.2"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
+ "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/unist-util-visit-parents": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
+ "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
+ "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/update-notifier": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/update-notifier/-/update-notifier-5.1.0.tgz",
+ "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
+ "dependencies": {
+ "boxen": "^5.0.0",
+ "chalk": "^4.1.0",
+ "configstore": "^5.0.1",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.4.0",
+ "is-npm": "^5.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.1.0",
+ "pupa": "^2.1.1",
+ "semver": "^7.3.4",
+ "semver-diff": "^3.1.1",
+ "xdg-basedir": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/update-notifier/node_modules/boxen": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "dependencies": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.0",
+ "cli-boxes": "^2.2.1",
+ "string-width": "^4.2.2",
+ "type-fest": "^0.20.2",
+ "widest-line": "^3.1.0",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/update-notifier/node_modules/cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/update-notifier/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/update-notifier/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/update-notifier/node_modules/widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "dependencies": {
+ "string-width": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-notifier/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/uri-js/node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/url-loader/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/url-loader/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/url-loader/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "dependencies": {
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/use-composed-ref": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz",
+ "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/use-isomorphic-layout-effect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-latest": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz",
+ "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==",
+ "dependencies": {
+ "use-isomorphic-layout-effect": "^1.1.1"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
+ },
+ "node_modules/utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-location": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
+ "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "dependencies": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/unified"
+ }
+ },
+ "node_modules/wait-on": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/wait-on/-/wait-on-6.0.1.tgz",
+ "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==",
+ "dependencies": {
+ "axios": "^0.25.0",
+ "joi": "^17.6.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.5",
+ "rxjs": "^7.5.4"
+ },
+ "bin": {
+ "wait-on": "bin/wait-on"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "dependencies": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dependencies": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/web-namespaces": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
+ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "node_modules/webpack": {
+ "version": "5.74.0",
+ "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.74.0.tgz",
+ "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-bundle-analyzer": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz",
+ "integrity": "sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==",
+ "dependencies": {
+ "acorn": "^8.0.4",
+ "acorn-walk": "^8.0.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "gzip-size": "^6.0.0",
+ "lodash": "^4.17.20",
+ "opener": "^1.5.2",
+ "sirv": "^1.0.7",
+ "ws": "^7.3.1"
+ },
+ "bin": {
+ "webpack-bundle-analyzer": "lib/bin/analyzer.js"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+ "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
+ "dependencies": {
+ "colorette": "^2.0.10",
+ "memfs": "^3.4.3",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack-dev-middleware/node_modules/schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz",
+ "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==",
+ "dependencies": {
+ "@types/bonjour": "^3.5.9",
+ "@types/connect-history-api-fallback": "^1.3.5",
+ "@types/express": "^4.17.13",
+ "@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
+ "@types/sockjs": "^0.3.33",
+ "@types/ws": "^8.5.1",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.0.11",
+ "chokidar": "^3.5.3",
+ "colorette": "^2.0.10",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^2.0.0",
+ "default-gateway": "^6.0.3",
+ "express": "^4.17.3",
+ "graceful-fs": "^4.2.6",
+ "html-entities": "^2.3.2",
+ "http-proxy-middleware": "^2.0.3",
+ "ipaddr.js": "^2.0.1",
+ "open": "^8.0.9",
+ "p-retry": "^4.5.0",
+ "rimraf": "^3.0.2",
+ "schema-utils": "^4.0.0",
+ "selfsigned": "^2.0.1",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^5.3.1",
+ "ws": "^8.4.2"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.37.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3"
+ },
+ "peerDependencies": {
+ "ajv": "^8.8.2"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "node_modules/webpack-dev-server/node_modules/schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 12.13.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ws": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.8.1.tgz",
+ "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz",
+ "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "wildcard": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==",
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/webpack/node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/webpackbar": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/webpackbar/-/webpackbar-5.0.2.tgz",
+ "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "consola": "^2.15.3",
+ "pretty-time": "^1.1.0",
+ "std-env": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "peerDependencies": {
+ "webpack": "3 || 4 || 5"
+ }
+ },
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "dependencies": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "dependencies": {
+ "string-width": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wildcard": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz",
+ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw=="
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz",
+ "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.1.0.tgz",
+ "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "node_modules/write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/xml-js": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
+ "dependencies": {
+ "sax": "^1.2.4"
+ },
+ "bin": {
+ "xml-js": "bin/cli.js"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ }
+ },
+ "dependencies": {
+ "@algolia/autocomplete-core": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz",
+ "integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==",
+ "requires": {
+ "@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
+ "@algolia/autocomplete-shared": "1.9.3"
+ }
+ },
+ "@algolia/autocomplete-plugin-algolia-insights": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz",
+ "integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==",
+ "requires": {
+ "@algolia/autocomplete-shared": "1.9.3"
+ }
+ },
+ "@algolia/autocomplete-preset-algolia": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz",
+ "integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==",
+ "requires": {
+ "@algolia/autocomplete-shared": "1.9.3"
+ }
+ },
+ "@algolia/autocomplete-shared": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz",
+ "integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==",
+ "requires": {}
+ },
+ "@algolia/cache-browser-local-storage": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.17.2.tgz",
+ "integrity": "sha512-ZkVN7K/JE+qMQbpR6h3gQOGR6yCJpmucSBCmH5YDxnrYbp2CbrVCu0Nr+FGVoWzMJNznj1waShkfQ9awERulLw==",
+ "requires": {
+ "@algolia/cache-common": "4.17.2"
+ }
+ },
+ "@algolia/cache-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.17.2.tgz",
+ "integrity": "sha512-fojbhYIS8ovfYs6hwZpy1O4mBfVRxNgAaZRqsdVQd54hU4MxYDYFCxagYX28lOBz7btcDHld6BMoWXvjzkx6iQ=="
+ },
+ "@algolia/cache-in-memory": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.17.2.tgz",
+ "integrity": "sha512-UYQcMzPurNi+cPYkuPemTZkjKAjdgAS1hagC5irujKbrYnN4yscK4TkOI5tX+O8/KegtJt3kOK07OIrJ2QDAAw==",
+ "requires": {
+ "@algolia/cache-common": "4.17.2"
+ }
+ },
+ "@algolia/client-account": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.17.2.tgz",
+ "integrity": "sha512-doSk89pBPDpDyKJSHFADIGa2XSGrBCj3QwPvqtRJXDADpN+OjW+eTR8r4hEs/7X4GGfjfAOAES8JgDx+fZntYw==",
+ "requires": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "@algolia/client-analytics": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.17.2.tgz",
+ "integrity": "sha512-V+DcXbOtD/hKwAR3qGQrtlrJ3q2f9OKfx843q744o4m3xHv5ueCAvGXB1znPsdaUrVDNAImcgEgqwI9x7EJbDw==",
+ "requires": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "@algolia/client-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.17.2.tgz",
+ "integrity": "sha512-gKBUnjxi0ukJYIJxVREYGt1Dmj1B3RBYbfGWi0dIPp1BC1VvQm+BOuNwsIwmq/x3MPO+sGuK978eKiP3tZDvag==",
+ "requires": {
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "@algolia/client-personalization": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.17.2.tgz",
+ "integrity": "sha512-wc4UgOWxSYWz5wpuelNmlt895jA9twjZWM2ms17Ws8qCvBHF7OVGdMGgbysPB8790YnfvvDnSsWOv3CEj26Eow==",
+ "requires": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "@algolia/client-search": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.17.2.tgz",
+ "integrity": "sha512-FUjIs+gRe0upJC++uVs4sdxMw15JxfkT86Gr/kqVwi9kcqaZhXntSbW/Fw959bIYXczjmeVQsilYvBWW4YvSZA==",
+ "requires": {
+ "@algolia/client-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "@algolia/events": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz",
+ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ=="
+ },
+ "@algolia/logger-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.17.2.tgz",
+ "integrity": "sha512-EfXuweUE+1HiSMsQidaDWA5Lv4NnStYIlh7PO5pLkI+sdhbMX0e5AO5nUAMIFM1VkEANes70RA8fzhP6OqCqQQ=="
+ },
+ "@algolia/logger-console": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.17.2.tgz",
+ "integrity": "sha512-JuG8HGVlJ+l/UEDK4h2Y8q/IEmRjQz1J0aS9tf6GPNbGYiSvMr1DDdZ+hqV3bb1XE6wU8Ypex56HisWMSpnG0A==",
+ "requires": {
+ "@algolia/logger-common": "4.17.2"
+ }
+ },
+ "@algolia/requester-browser-xhr": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.17.2.tgz",
+ "integrity": "sha512-FKI2lYWwksALfRt2OETFmGb5+P7WVc4py2Ai3H7k8FSfTLwVvs9WVVmtlx6oANQ8RFEK4B85h8DQJTJ29TDfmA==",
+ "requires": {
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "@algolia/requester-common": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.17.2.tgz",
+ "integrity": "sha512-Rfim23ztAhYpE9qm+KCfCRo+YLJCjiiTG+IpDdzUjMpYPhUtirQT0A35YEd/gKn86YNyydxS9w8iRSjwKh+L0A=="
+ },
+ "@algolia/requester-node-http": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.17.2.tgz",
+ "integrity": "sha512-E0b0kyCDMvUIhQmDNd/mH4fsKJdEEX6PkMKrYJjzm6moo+rP22tqpq4Rfe7DZD8OB6/LsDD3zs3Kvd+L+M5wwQ==",
+ "requires": {
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "@algolia/transporter": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.17.2.tgz",
+ "integrity": "sha512-m8pXlz5OnNzjD1rcw+duCN4jG4yEzkJBsvKYMoN22Oq6rQwy1AY5muZ+IQUs4dL+A364CYkRMLRWhvXpCZ1x+g==",
+ "requires": {
+ "@algolia/cache-common": "4.17.2",
+ "@algolia/logger-common": "4.17.2",
+ "@algolia/requester-common": "4.17.2"
+ }
+ },
+ "@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "@babel/code-frame": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz",
+ "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
+ "requires": {
+ "@babel/highlight": "^7.18.6"
+ }
+ },
+ "@babel/compat-data": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.18.13.tgz",
+ "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw=="
+ },
+ "@babel/core": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/core/-/core-7.18.13.tgz",
+ "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==",
+ "requires": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.18.13",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-module-transforms": "^7.18.9",
+ "@babel/helpers": "^7.18.9",
+ "@babel/parser": "^7.18.13",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.18.13",
+ "@babel/types": "^7.18.13",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/generator": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/generator/-/generator-7.18.13.tgz",
+ "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==",
+ "requires": {
+ "@babel/types": "^7.18.13",
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@babel/helper-annotate-as-pure": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz",
+ "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-builder-binary-assignment-operator-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
+ "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
+ "requires": {
+ "@babel/helper-explode-assignable-expression": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-compilation-targets": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
+ "requires": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.20.2",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-create-class-features-plugin": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz",
+ "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-split-export-declaration": "^7.18.6"
+ }
+ },
+ "@babel/helper-create-regexp-features-plugin": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz",
+ "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "regexpu-core": "^5.1.0"
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
+ "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-environment-visitor": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
+ "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg=="
+ },
+ "@babel/helper-explode-assignable-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
+ "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz",
+ "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==",
+ "requires": {
+ "@babel/template": "^7.18.6",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-hoist-variables": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
+ "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz",
+ "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==",
+ "requires": {
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz",
+ "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-simple-access": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "@babel/template": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz",
+ "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w=="
+ },
+ "@babel/helper-remap-async-to-generator": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
+ "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-wrap-function": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz",
+ "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-member-expression-to-functions": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz",
+ "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz",
+ "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==",
+ "requires": {
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/helper-split-export-declaration": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
+ "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
+ "requires": {
+ "@babel/types": "^7.18.6"
+ }
+ },
+ "@babel/helper-string-parser": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
+ "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw=="
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
+ },
+ "@babel/helper-validator-option": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
+ },
+ "@babel/helper-wrap-function": {
+ "version": "7.18.11",
+ "resolved": "https://registry.npmmirror.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
+ "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
+ "requires": {
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/template": "^7.18.10",
+ "@babel/traverse": "^7.18.11",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/helpers": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/helpers/-/helpers-7.18.9.tgz",
+ "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==",
+ "requires": {
+ "@babel/template": "^7.18.6",
+ "@babel/traverse": "^7.18.9",
+ "@babel/types": "^7.18.9"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz",
+ "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
+ }
+ },
+ "@babel/parser": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.18.13.tgz",
+ "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg=="
+ },
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
+ "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9"
+ }
+ },
+ "@babel/plugin-proposal-async-generator-functions": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
+ "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
+ "requires": {
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-remap-async-to-generator": "^7.18.9",
+ "@babel/plugin-syntax-async-generators": "^7.8.4"
+ }
+ },
+ "@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-class-static-block": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
+ "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-dynamic-import": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
+ "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
+ "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
+ "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
+ "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
+ "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-numeric-separator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
+ "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz",
+ "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==",
+ "requires": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-transform-parameters": "^7.18.8"
+ }
+ },
+ "@babel/plugin-proposal-optional-catch-binding": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
+ "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-optional-chaining": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
+ "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-private-methods": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
+ "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
+ "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
+ }
+ },
+ "@babel/plugin-proposal-unicode-property-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
+ "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ }
+ },
+ "@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-import-assertions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
+ "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz",
+ "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ }
+ },
+ "@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ }
+ },
+ "@babel/plugin-syntax-typescript": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
+ "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-arrow-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
+ "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-async-to-generator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
+ "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-remap-async-to-generator": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
+ "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-block-scoping": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz",
+ "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-classes": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz",
+ "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-optimise-call-expression": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-replace-supers": "^7.18.9",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/plugin-transform-computed-properties": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
+ "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-destructuring": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz",
+ "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-dotall-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
+ "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-duplicate-keys": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
+ "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
+ "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
+ "requires": {
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-for-of": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
+ "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-function-name": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
+ "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
+ "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-member-expression-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
+ "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-modules-amd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
+ "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-commonjs": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
+ "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-simple-access": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-systemjs": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz",
+ "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==",
+ "requires": {
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-module-transforms": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "babel-plugin-dynamic-import-node": "^2.3.3"
+ }
+ },
+ "@babel/plugin-transform-modules-umd": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
+ "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
+ "requires": {
+ "@babel/helper-module-transforms": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz",
+ "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-new-target": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
+ "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-object-super": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
+ "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-replace-supers": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-parameters": {
+ "version": "7.18.8",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
+ "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-property-literals": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
+ "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-constant-elements": {
+ "version": "7.18.12",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz",
+ "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-react-display-name": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz",
+ "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-jsx": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz",
+ "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-jsx": "^7.18.6",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/plugin-transform-react-jsx-development": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz",
+ "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==",
+ "requires": {
+ "@babel/plugin-transform-react-jsx": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-react-pure-annotations": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz",
+ "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==",
+ "requires": {
+ "@babel/helper-annotate-as-pure": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-regenerator": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
+ "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "regenerator-transform": "^0.15.0"
+ }
+ },
+ "@babel/plugin-transform-reserved-words": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
+ "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
+ "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/plugin-transform-shorthand-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
+ "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-spread": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz",
+ "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-sticky-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
+ "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-template-literals": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
+ "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-typeof-symbol": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
+ "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-typescript": {
+ "version": "7.18.12",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz",
+ "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==",
+ "requires": {
+ "@babel/helper-create-class-features-plugin": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/plugin-syntax-typescript": "^7.18.6"
+ }
+ },
+ "@babel/plugin-transform-unicode-escapes": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
+ "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.9"
+ }
+ },
+ "@babel/plugin-transform-unicode-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
+ "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
+ "requires": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ }
+ },
+ "@babel/preset-env": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-env/-/preset-env-7.18.10.tgz",
+ "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
+ "requires": {
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-compilation-targets": "^7.18.9",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-async-generator-functions": "^7.18.10",
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
+ "@babel/plugin-proposal-class-static-block": "^7.18.6",
+ "@babel/plugin-proposal-dynamic-import": "^7.18.6",
+ "@babel/plugin-proposal-export-namespace-from": "^7.18.9",
+ "@babel/plugin-proposal-json-strings": "^7.18.6",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
+ "@babel/plugin-proposal-numeric-separator": "^7.18.6",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.9",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.18.6",
+ "@babel/plugin-proposal-optional-chaining": "^7.18.9",
+ "@babel/plugin-proposal-private-methods": "^7.18.6",
+ "@babel/plugin-proposal-private-property-in-object": "^7.18.6",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.18.6",
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.18.6",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5",
+ "@babel/plugin-transform-arrow-functions": "^7.18.6",
+ "@babel/plugin-transform-async-to-generator": "^7.18.6",
+ "@babel/plugin-transform-block-scoped-functions": "^7.18.6",
+ "@babel/plugin-transform-block-scoping": "^7.18.9",
+ "@babel/plugin-transform-classes": "^7.18.9",
+ "@babel/plugin-transform-computed-properties": "^7.18.9",
+ "@babel/plugin-transform-destructuring": "^7.18.9",
+ "@babel/plugin-transform-dotall-regex": "^7.18.6",
+ "@babel/plugin-transform-duplicate-keys": "^7.18.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.18.6",
+ "@babel/plugin-transform-for-of": "^7.18.8",
+ "@babel/plugin-transform-function-name": "^7.18.9",
+ "@babel/plugin-transform-literals": "^7.18.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.18.6",
+ "@babel/plugin-transform-modules-amd": "^7.18.6",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.6",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.9",
+ "@babel/plugin-transform-modules-umd": "^7.18.6",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6",
+ "@babel/plugin-transform-new-target": "^7.18.6",
+ "@babel/plugin-transform-object-super": "^7.18.6",
+ "@babel/plugin-transform-parameters": "^7.18.8",
+ "@babel/plugin-transform-property-literals": "^7.18.6",
+ "@babel/plugin-transform-regenerator": "^7.18.6",
+ "@babel/plugin-transform-reserved-words": "^7.18.6",
+ "@babel/plugin-transform-shorthand-properties": "^7.18.6",
+ "@babel/plugin-transform-spread": "^7.18.9",
+ "@babel/plugin-transform-sticky-regex": "^7.18.6",
+ "@babel/plugin-transform-template-literals": "^7.18.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.18.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.18.10",
+ "@babel/plugin-transform-unicode-regex": "^7.18.6",
+ "@babel/preset-modules": "^0.1.5",
+ "@babel/types": "^7.18.10",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "core-js-compat": "^3.22.1",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ }
+ },
+ "@babel/preset-react": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-react/-/preset-react-7.18.6.tgz",
+ "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-react-display-name": "^7.18.6",
+ "@babel/plugin-transform-react-jsx": "^7.18.6",
+ "@babel/plugin-transform-react-jsx-development": "^7.18.6",
+ "@babel/plugin-transform-react-pure-annotations": "^7.18.6"
+ }
+ },
+ "@babel/preset-typescript": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmmirror.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
+ "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.18.6",
+ "@babel/helper-validator-option": "^7.18.6",
+ "@babel/plugin-transform-typescript": "^7.18.6"
+ }
+ },
+ "@babel/runtime": {
+ "version": "7.22.5",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
+ "integrity": "sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.11"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz",
+ "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==",
+ "requires": {
+ "core-js-pure": "^3.20.2",
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
+ "@babel/template": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz",
+ "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/parser": "^7.18.10",
+ "@babel/types": "^7.18.10"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/traverse/-/traverse-7.18.13.tgz",
+ "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==",
+ "requires": {
+ "@babel/code-frame": "^7.18.6",
+ "@babel/generator": "^7.18.13",
+ "@babel/helper-environment-visitor": "^7.18.9",
+ "@babel/helper-function-name": "^7.18.9",
+ "@babel/helper-hoist-variables": "^7.18.6",
+ "@babel/helper-split-export-declaration": "^7.18.6",
+ "@babel/parser": "^7.18.13",
+ "@babel/types": "^7.18.13",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.18.13",
+ "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.18.13.tgz",
+ "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==",
+ "requires": {
+ "@babel/helper-string-parser": "^7.18.10",
+ "@babel/helper-validator-identifier": "^7.18.6",
+ "to-fast-properties": "^2.0.0"
+ }
+ },
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "optional": true
+ },
+ "@docsearch/css": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.1.tgz",
+ "integrity": "sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA=="
+ },
+ "@docsearch/react": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.1.tgz",
+ "integrity": "sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==",
+ "requires": {
+ "@algolia/autocomplete-core": "1.9.3",
+ "@algolia/autocomplete-preset-algolia": "1.9.3",
+ "@docsearch/css": "3.5.1",
+ "algoliasearch": "^4.0.0"
+ }
+ },
+ "@docusaurus/core": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.4.1.tgz",
+ "integrity": "sha512-SNsY7PshK3Ri7vtsLXVeAJGS50nJN3RgF836zkyUfAD01Fq+sAk5EwWgLw+nnm5KVNGDu7PRR2kRGDsWvqpo0g==",
+ "requires": {
+ "@babel/core": "^7.18.6",
+ "@babel/generator": "^7.18.7",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-transform-runtime": "^7.18.6",
+ "@babel/preset-env": "^7.18.6",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/preset-typescript": "^7.18.6",
+ "@babel/runtime": "^7.18.6",
+ "@babel/runtime-corejs3": "^7.18.6",
+ "@babel/traverse": "^7.18.8",
+ "@docusaurus/cssnano-preset": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@slorber/static-site-generator-webpack-plugin": "^4.0.7",
+ "@svgr/webpack": "^6.2.1",
+ "autoprefixer": "^10.4.7",
+ "babel-loader": "^8.2.5",
+ "babel-plugin-dynamic-import-node": "^2.3.3",
+ "boxen": "^6.2.1",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.3",
+ "clean-css": "^5.3.0",
+ "cli-table3": "^0.6.2",
+ "combine-promises": "^1.1.0",
+ "commander": "^5.1.0",
+ "copy-webpack-plugin": "^11.0.0",
+ "core-js": "^3.23.3",
+ "css-loader": "^6.7.1",
+ "css-minimizer-webpack-plugin": "^4.0.0",
+ "cssnano": "^5.1.12",
+ "del": "^6.1.1",
+ "detect-port": "^1.3.0",
+ "escape-html": "^1.0.3",
+ "eta": "^2.0.0",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "html-minifier-terser": "^6.1.0",
+ "html-tags": "^3.2.0",
+ "html-webpack-plugin": "^5.5.0",
+ "import-fresh": "^3.3.0",
+ "leven": "^3.1.0",
+ "lodash": "^4.17.21",
+ "mini-css-extract-plugin": "^2.6.1",
+ "postcss": "^8.4.14",
+ "postcss-loader": "^7.0.0",
+ "prompts": "^2.4.2",
+ "react-dev-utils": "^12.0.1",
+ "react-helmet-async": "^1.3.0",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2",
+ "react-loadable-ssr-addon-v5-slorber": "^1.0.1",
+ "react-router": "^5.3.3",
+ "react-router-config": "^5.1.1",
+ "react-router-dom": "^5.3.3",
+ "rtl-detect": "^1.0.4",
+ "semver": "^7.3.7",
+ "serve-handler": "^6.1.3",
+ "shelljs": "^0.8.5",
+ "terser-webpack-plugin": "^5.3.3",
+ "tslib": "^2.4.0",
+ "update-notifier": "^5.1.0",
+ "url-loader": "^4.1.1",
+ "wait-on": "^6.0.1",
+ "webpack": "^5.73.0",
+ "webpack-bundle-analyzer": "^4.5.0",
+ "webpack-dev-server": "^4.9.3",
+ "webpack-merge": "^5.8.0",
+ "webpackbar": "^5.0.2"
+ }
+ },
+ "@docusaurus/cssnano-preset": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.4.1.tgz",
+ "integrity": "sha512-ka+vqXwtcW1NbXxWsh6yA1Ckii1klY9E53cJ4O9J09nkMBgrNX3iEFED1fWdv8wf4mJjvGi5RLZ2p9hJNjsLyQ==",
+ "requires": {
+ "cssnano-preset-advanced": "^5.3.8",
+ "postcss": "^8.4.14",
+ "postcss-sort-media-queries": "^4.2.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/logger": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.4.1.tgz",
+ "integrity": "sha512-5h5ysIIWYIDHyTVd8BjheZmQZmEgWDR54aQ1BX9pjFfpyzFo5puKXKYrYJXbjEHGyVhEzmB9UXwbxGfaZhOjcg==",
+ "requires": {
+ "chalk": "^4.1.2",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/mdx-loader": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.4.1.tgz",
+ "integrity": "sha512-4KhUhEavteIAmbBj7LVFnrVYDiU51H5YWW1zY6SmBSte/YLhDutztLTBE0PQl1Grux1jzUJeaSvAzHpTn6JJDQ==",
+ "requires": {
+ "@babel/parser": "^7.18.8",
+ "@babel/traverse": "^7.18.8",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@mdx-js/mdx": "^1.6.22",
+ "escape-html": "^1.0.3",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "image-size": "^1.0.1",
+ "mdast-util-to-string": "^2.0.0",
+ "remark-emoji": "^2.2.0",
+ "stringify-object": "^3.3.0",
+ "tslib": "^2.4.0",
+ "unified": "^9.2.2",
+ "unist-util-visit": "^2.0.3",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.73.0"
+ }
+ },
+ "@docusaurus/module-type-aliases": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.4.1.tgz",
+ "integrity": "sha512-gLBuIFM8Dp2XOCWffUDSjtxY7jQgKvYujt7Mx5s4FCTfoL5dN1EVbnrn+O2Wvh8b0a77D57qoIDY7ghgmatR1A==",
+ "requires": {
+ "@docusaurus/react-loadable": "5.5.2",
+ "@docusaurus/types": "2.4.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "@types/react-router-dom": "*",
+ "react-helmet-async": "*",
+ "react-loadable": "npm:@docusaurus/react-loadable@5.5.2"
+ }
+ },
+ "@docusaurus/plugin-content-blog": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.4.1.tgz",
+ "integrity": "sha512-E2i7Knz5YIbE1XELI6RlTnZnGgS52cUO4BlCiCUCvQHbR+s1xeIWz4C6BtaVnlug0Ccz7nFSksfwDpVlkujg5Q==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "cheerio": "^1.0.0-rc.12",
+ "feed": "^4.2.2",
+ "fs-extra": "^10.1.0",
+ "lodash": "^4.17.21",
+ "reading-time": "^1.5.0",
+ "tslib": "^2.4.0",
+ "unist-util-visit": "^2.0.3",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0"
+ }
+ },
+ "@docusaurus/plugin-content-docs": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.4.1.tgz",
+ "integrity": "sha512-Lo7lSIcpswa2Kv4HEeUcGYqaasMUQNpjTXpV0N8G6jXgZaQurqp7E8NGYeGbDXnb48czmHWbzDL4S3+BbK0VzA==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@types/react-router-config": "^5.0.6",
+ "combine-promises": "^1.1.0",
+ "fs-extra": "^10.1.0",
+ "import-fresh": "^3.3.0",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0"
+ }
+ },
+ "@docusaurus/plugin-content-pages": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.4.1.tgz",
+ "integrity": "sha512-/UjuH/76KLaUlL+o1OvyORynv6FURzjurSjvn2lbWTFc4tpYY2qLYTlKpTCBVPhlLUQsfyFnshEJDLmPneq2oA==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "tslib": "^2.4.0",
+ "webpack": "^5.73.0"
+ }
+ },
+ "@docusaurus/plugin-debug": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.4.1.tgz",
+ "integrity": "sha512-7Yu9UPzRShlrH/G8btOpR0e6INFZr0EegWplMjOqelIwAcx3PKyR8mgPTxGTxcqiYj6hxSCRN0D8R7YrzImwNA==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "react-json-view": "^1.21.3",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/plugin-google-analytics": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.4.1.tgz",
+ "integrity": "sha512-dyZJdJiCoL+rcfnm0RPkLt/o732HvLiEwmtoNzOoz9MSZz117UH2J6U2vUDtzUzwtFLIf32KkeyzisbwUCgcaQ==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/plugin-google-gtag": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.4.1.tgz",
+ "integrity": "sha512-mKIefK+2kGTQBYvloNEKtDmnRD7bxHLsBcxgnbt4oZwzi2nxCGjPX6+9SQO2KCN5HZbNrYmGo5GJfMgoRvy6uA==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/plugin-google-tag-manager": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-2.4.1.tgz",
+ "integrity": "sha512-Zg4Ii9CMOLfpeV2nG74lVTWNtisFaH9QNtEw48R5QE1KIwDBdTVaiSA18G1EujZjrzJJzXN79VhINSbOJO/r3g==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/plugin-sitemap": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.4.1.tgz",
+ "integrity": "sha512-lZx+ijt/+atQ3FVE8FOHV/+X3kuok688OydDXrqKRJyXBJZKgGjA2Qa8RjQ4f27V2woaXhtnyrdPop/+OjVMRg==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "fs-extra": "^10.1.0",
+ "sitemap": "^7.1.1",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/preset-classic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.4.1.tgz",
+ "integrity": "sha512-P4//+I4zDqQJ+UDgoFrjIFaQ1MeS9UD1cvxVQaI6O7iBmiHQm0MGROP1TbE7HlxlDPXFJjZUK3x3cAoK63smGQ==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/plugin-debug": "2.4.1",
+ "@docusaurus/plugin-google-analytics": "2.4.1",
+ "@docusaurus/plugin-google-gtag": "2.4.1",
+ "@docusaurus/plugin-google-tag-manager": "2.4.1",
+ "@docusaurus/plugin-sitemap": "2.4.1",
+ "@docusaurus/theme-classic": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-search-algolia": "2.4.1",
+ "@docusaurus/types": "2.4.1"
+ }
+ },
+ "@docusaurus/react-loadable": {
+ "version": "5.5.2",
+ "resolved": "https://registry.npmmirror.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
+ "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==",
+ "requires": {
+ "@types/react": "*",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "@docusaurus/theme-classic": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.4.1.tgz",
+ "integrity": "sha512-Rz0wKUa+LTW1PLXmwnf8mn85EBzaGSt6qamqtmnh9Hflkc+EqiYMhtUJeLdV+wsgYq4aG0ANc+bpUDpsUhdnwg==",
+ "requires": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-translations": "2.4.1",
+ "@docusaurus/types": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "@mdx-js/react": "^1.6.22",
+ "clsx": "^1.2.1",
+ "copy-text-to-clipboard": "^3.0.1",
+ "infima": "0.2.0-alpha.43",
+ "lodash": "^4.17.21",
+ "nprogress": "^0.2.0",
+ "postcss": "^8.4.14",
+ "prism-react-renderer": "^1.3.5",
+ "prismjs": "^1.28.0",
+ "react-router-dom": "^5.3.3",
+ "rtlcss": "^3.5.0",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "@docusaurus/theme-common": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz",
+ "integrity": "sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA==",
+ "requires": {
+ "@docusaurus/mdx-loader": "2.4.1",
+ "@docusaurus/module-type-aliases": "2.4.1",
+ "@docusaurus/plugin-content-blog": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/plugin-content-pages": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-common": "2.4.1",
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router-config": "*",
+ "clsx": "^1.2.1",
+ "parse-numeric-range": "^1.3.0",
+ "prism-react-renderer": "^1.3.5",
+ "tslib": "^2.4.0",
+ "use-sync-external-store": "^1.2.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "@docusaurus/theme-search-algolia": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.4.1.tgz",
+ "integrity": "sha512-6BcqW2lnLhZCXuMAvPRezFs1DpmEKzXFKlYjruuas+Xy3AQeFzDJKTJFIm49N77WFCTyxff8d3E4Q9pi/+5McQ==",
+ "requires": {
+ "@docsearch/react": "^3.1.1",
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/plugin-content-docs": "2.4.1",
+ "@docusaurus/theme-common": "2.4.1",
+ "@docusaurus/theme-translations": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "@docusaurus/utils-validation": "2.4.1",
+ "algoliasearch": "^4.13.1",
+ "algoliasearch-helper": "^3.10.0",
+ "clsx": "^1.2.1",
+ "eta": "^2.0.0",
+ "fs-extra": "^10.1.0",
+ "lodash": "^4.17.21",
+ "tslib": "^2.4.0",
+ "utility-types": "^3.10.0"
+ }
+ },
+ "@docusaurus/theme-translations": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.4.1.tgz",
+ "integrity": "sha512-T1RAGP+f86CA1kfE8ejZ3T3pUU3XcyvrGMfC/zxCtc2BsnoexuNI9Vk2CmuKCb+Tacvhxjv5unhxXce0+NKyvA==",
+ "requires": {
+ "fs-extra": "^10.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/types": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz",
+ "integrity": "sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ==",
+ "requires": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "commander": "^5.1.0",
+ "joi": "^17.6.0",
+ "react-helmet-async": "^1.3.0",
+ "utility-types": "^3.10.0",
+ "webpack": "^5.73.0",
+ "webpack-merge": "^5.8.0"
+ }
+ },
+ "@docusaurus/utils": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz",
+ "integrity": "sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA==",
+ "requires": {
+ "@docusaurus/logger": "2.4.1",
+ "@svgr/webpack": "^6.2.1",
+ "escape-string-regexp": "^4.0.0",
+ "file-loader": "^6.2.0",
+ "fs-extra": "^10.1.0",
+ "github-slugger": "^1.4.0",
+ "globby": "^11.1.0",
+ "gray-matter": "^4.0.3",
+ "js-yaml": "^4.1.0",
+ "lodash": "^4.17.21",
+ "micromatch": "^4.0.5",
+ "resolve-pathname": "^3.0.0",
+ "shelljs": "^0.8.5",
+ "tslib": "^2.4.0",
+ "url-loader": "^4.1.1",
+ "webpack": "^5.73.0"
+ }
+ },
+ "@docusaurus/utils-common": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.4.1.tgz",
+ "integrity": "sha512-bCVGdZU+z/qVcIiEQdyx0K13OC5mYwxhSuDUR95oFbKVuXYRrTVrwZIqQljuo1fyJvFTKHiL9L9skQOPokuFNQ==",
+ "requires": {
+ "tslib": "^2.4.0"
+ }
+ },
+ "@docusaurus/utils-validation": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.4.1.tgz",
+ "integrity": "sha512-unII3hlJlDwZ3w8U+pMO3Lx3RhI4YEbY3YNsQj4yzrkZzlpqZOLuAiZK2JyULnD+TKbceKU0WyWkQXtYbLNDFA==",
+ "requires": {
+ "@docusaurus/logger": "2.4.1",
+ "@docusaurus/utils": "2.4.1",
+ "joi": "^17.6.0",
+ "js-yaml": "^4.1.0",
+ "tslib": "^2.4.0"
+ }
+ },
+ "@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmmirror.com/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ=="
+ },
+ "@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz",
+ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw=="
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
+ "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
+ }
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.15",
+ "resolved": "https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz",
+ "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==",
+ "requires": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@leichtgewicht/ip-codec": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz",
+ "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A=="
+ },
+ "@mdx-js/mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz",
+ "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==",
+ "requires": {
+ "@babel/core": "7.12.9",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@babel/plugin-syntax-object-rest-spread": "7.8.3",
+ "@mdx-js/util": "1.6.22",
+ "babel-plugin-apply-mdx-type-prop": "1.6.22",
+ "babel-plugin-extract-import-names": "1.6.22",
+ "camelcase-css": "2.0.1",
+ "detab": "2.0.4",
+ "hast-util-raw": "6.0.1",
+ "lodash.uniq": "4.5.0",
+ "mdast-util-to-hast": "10.0.1",
+ "remark-footnotes": "2.0.0",
+ "remark-mdx": "1.6.22",
+ "remark-parse": "8.0.3",
+ "remark-squeeze-paragraphs": "4.0.0",
+ "style-to-object": "0.3.0",
+ "unified": "9.2.0",
+ "unist-builder": "2.0.3",
+ "unist-util-visit": "2.0.3"
+ },
+ "dependencies": {
+ "@babel/core": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
+ "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.5",
+ "@babel/parser": "^7.12.7",
+ "@babel/template": "^7.12.7",
+ "@babel/traverse": "^7.12.9",
+ "@babel/types": "^7.12.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ },
+ "unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ }
+ }
+ }
+ },
+ "@mdx-js/react": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmmirror.com/@mdx-js/react/-/react-1.6.22.tgz",
+ "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==",
+ "requires": {}
+ },
+ "@mdx-js/util": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz",
+ "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA=="
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A=="
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@polka/url": {
+ "version": "1.0.0-next.21",
+ "resolved": "https://registry.npmmirror.com/@polka/url/-/url-1.0.0-next.21.tgz",
+ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g=="
+ },
+ "@sideway/address": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmmirror.com/@sideway/address/-/address-4.1.4.tgz",
+ "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "@sideway/formula": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/@sideway/formula/-/formula-3.0.0.tgz",
+ "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg=="
+ },
+ "@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ=="
+ },
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmmirror.com/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
+ },
+ "@slorber/static-site-generator-webpack-plugin": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz",
+ "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==",
+ "requires": {
+ "eval": "^0.1.8",
+ "p-map": "^4.0.0",
+ "webpack-sources": "^3.2.2"
+ }
+ },
+ "@svgr/babel-plugin-add-jsx-attribute": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.3.1.tgz",
+ "integrity": "sha512-jDBKArXYO1u0B1dmd2Nf8Oy6aTF5vLDfLoO9Oon/GLkqZ/NiggYWZA+a2HpUMH4ITwNqS3z43k8LWApB8S583w==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-remove-jsx-attribute": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.3.1.tgz",
+ "integrity": "sha512-dQzyJ4prwjcFd929T43Z8vSYiTlTu8eafV40Z2gO7zy/SV5GT+ogxRJRBIKWomPBOiaVXFg3jY4S5hyEN3IBjQ==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-remove-jsx-empty-expression": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.3.1.tgz",
+ "integrity": "sha512-HBOUc1XwSU67fU26V5Sfb8MQsT0HvUyxru7d0oBJ4rA2s4HW3PhyAPC7fV/mdsSGpAvOdd8Wpvkjsr0fWPUO7A==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-replace-jsx-attribute-value": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.3.1.tgz",
+ "integrity": "sha512-C12e6aN4BXAolRrI601gPn5MDFCRHO7C4TM8Kks+rDtl8eEq+NN1sak0eAzJu363x3TmHXdZn7+Efd2nr9I5dA==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-svg-dynamic-title": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.3.1.tgz",
+ "integrity": "sha512-6NU55Mmh3M5u2CfCCt6TX29/pPneutrkJnnDCHbKZnjukZmmgUAZLtZ2g6ZoSPdarowaQmAiBRgAHqHmG0vuqA==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-svg-em-dimensions": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.3.1.tgz",
+ "integrity": "sha512-HV1NGHYTTe1vCNKlBgq/gKuCSfaRlKcHIADn7P8w8U3Zvujdw1rmusutghJ1pZJV7pDt3Gt8ws+SVrqHnBO/Qw==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-transform-react-native-svg": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.3.1.tgz",
+ "integrity": "sha512-2wZhSHvTolFNeKDAN/ZmIeSz2O9JSw72XD+o2bNp2QAaWqa8KGpn5Yk5WHso6xqfSAiRzAE+GXlsrBO4UP9LLw==",
+ "requires": {}
+ },
+ "@svgr/babel-plugin-transform-svg-component": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.3.1.tgz",
+ "integrity": "sha512-cZ8Tr6ZAWNUFfDeCKn/pGi976iWSkS8ijmEYKosP+6ktdZ7lW9HVLHojyusPw3w0j8PI4VBeWAXAmi/2G7owxw==",
+ "requires": {}
+ },
+ "@svgr/babel-preset": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/babel-preset/-/babel-preset-6.3.1.tgz",
+ "integrity": "sha512-tQtWtzuMMQ3opH7je+MpwfuRA1Hf3cKdSgTtAYwOBDfmhabP7rcTfBi3E7V3MuwJNy/Y02/7/RutvwS1W4Qv9g==",
+ "requires": {
+ "@svgr/babel-plugin-add-jsx-attribute": "^6.3.1",
+ "@svgr/babel-plugin-remove-jsx-attribute": "^6.3.1",
+ "@svgr/babel-plugin-remove-jsx-empty-expression": "^6.3.1",
+ "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.3.1",
+ "@svgr/babel-plugin-svg-dynamic-title": "^6.3.1",
+ "@svgr/babel-plugin-svg-em-dimensions": "^6.3.1",
+ "@svgr/babel-plugin-transform-react-native-svg": "^6.3.1",
+ "@svgr/babel-plugin-transform-svg-component": "^6.3.1"
+ }
+ },
+ "@svgr/core": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/core/-/core-6.3.1.tgz",
+ "integrity": "sha512-Sm3/7OdXbQreemf9aO25keerZSbnKMpGEfmH90EyYpj1e8wMD4TuwJIb3THDSgRMWk1kYJfSRulELBy4gVgZUA==",
+ "requires": {
+ "@svgr/plugin-jsx": "^6.3.1",
+ "camelcase": "^6.2.0",
+ "cosmiconfig": "^7.0.1"
+ }
+ },
+ "@svgr/hast-util-to-babel-ast": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.3.1.tgz",
+ "integrity": "sha512-NgyCbiTQIwe3wHe/VWOUjyxmpUmsrBjdoIxKpXt3Nqc3TN30BpJG22OxBvVzsAh9jqep0w0/h8Ywvdk3D9niNQ==",
+ "requires": {
+ "@babel/types": "^7.18.4",
+ "entities": "^4.3.0"
+ }
+ },
+ "@svgr/plugin-jsx": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/plugin-jsx/-/plugin-jsx-6.3.1.tgz",
+ "integrity": "sha512-r9+0mYG3hD4nNtUgsTXWGYJomv/bNd7kC16zvsM70I/bGeoCi/3lhTmYqeN6ChWX317OtQCSZZbH4wq9WwoXbw==",
+ "requires": {
+ "@babel/core": "^7.18.5",
+ "@svgr/babel-preset": "^6.3.1",
+ "@svgr/hast-util-to-babel-ast": "^6.3.1",
+ "svg-parser": "^2.0.4"
+ }
+ },
+ "@svgr/plugin-svgo": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/plugin-svgo/-/plugin-svgo-6.3.1.tgz",
+ "integrity": "sha512-yJIjTDKPYqzFVjmsbH5EdIwEsmKxjxdXSGJVLeUgwZOZPAkNQmD1v7LDbOdOKbR44FG8465Du+zWPdbYGnbMbw==",
+ "requires": {
+ "cosmiconfig": "^7.0.1",
+ "deepmerge": "^4.2.2",
+ "svgo": "^2.8.0"
+ }
+ },
+ "@svgr/webpack": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmmirror.com/@svgr/webpack/-/webpack-6.3.1.tgz",
+ "integrity": "sha512-eODxwIUShLxSMaRjzJtrj9wg89D75JLczvWg9SaB5W+OtVTkiC1vdGd8+t+pf5fTlBOy4RRXAq7x1E3DUl3D0A==",
+ "requires": {
+ "@babel/core": "^7.18.5",
+ "@babel/plugin-transform-react-constant-elements": "^7.17.12",
+ "@babel/preset-env": "^7.18.2",
+ "@babel/preset-react": "^7.17.12",
+ "@babel/preset-typescript": "^7.17.12",
+ "@svgr/core": "^6.3.1",
+ "@svgr/plugin-jsx": "^6.3.1",
+ "@svgr/plugin-svgo": "^6.3.1"
+ }
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@trysound/sax": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/@trysound/sax/-/sax-0.2.0.tgz",
+ "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="
+ },
+ "@types/body-parser": {
+ "version": "1.19.2",
+ "resolved": "https://registry.npmmirror.com/@types/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "requires": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/bonjour": {
+ "version": "3.5.10",
+ "resolved": "https://registry.npmmirror.com/@types/bonjour/-/bonjour-3.5.10.tgz",
+ "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.35",
+ "resolved": "https://registry.npmmirror.com/@types/connect/-/connect-3.4.35.tgz",
+ "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/connect-history-api-fallback": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmmirror.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz",
+ "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==",
+ "requires": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/eslint": {
+ "version": "8.4.6",
+ "resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.4.6.tgz",
+ "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==",
+ "requires": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
+ "@types/eslint-scope": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmmirror.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz",
+ "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==",
+ "requires": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
+ "@types/estree": {
+ "version": "0.0.51",
+ "resolved": "https://registry.npmmirror.com/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ=="
+ },
+ "@types/express": {
+ "version": "4.17.13",
+ "resolved": "https://registry.npmmirror.com/@types/express/-/express-4.17.13.tgz",
+ "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
+ "requires": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^4.17.18",
+ "@types/qs": "*",
+ "@types/serve-static": "*"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.30",
+ "resolved": "https://registry.npmmirror.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz",
+ "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==",
+ "requires": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*"
+ }
+ },
+ "@types/hast": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz",
+ "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==",
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/history": {
+ "version": "4.7.11",
+ "resolved": "https://registry.npmmirror.com/@types/history/-/history-4.7.11.tgz",
+ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA=="
+ },
+ "@types/html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg=="
+ },
+ "@types/http-proxy": {
+ "version": "1.17.9",
+ "resolved": "https://registry.npmmirror.com/@types/http-proxy/-/http-proxy-1.17.9.tgz",
+ "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ },
+ "@types/mdast": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.11.tgz",
+ "integrity": "sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==",
+ "requires": {
+ "@types/unist": "*"
+ }
+ },
+ "@types/mime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/@types/mime/-/mime-3.0.1.tgz",
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
+ },
+ "@types/node": {
+ "version": "18.7.13",
+ "resolved": "https://registry.npmmirror.com/@types/node/-/node-18.7.13.tgz",
+ "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw=="
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
+ },
+ "@types/parse5": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz",
+ "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw=="
+ },
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmmirror.com/@types/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
+ },
+ "@types/range-parser": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz",
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
+ },
+ "@types/react": {
+ "version": "18.0.17",
+ "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.17.tgz",
+ "integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-router": {
+ "version": "5.1.18",
+ "resolved": "https://registry.npmmirror.com/@types/react-router/-/react-router-5.1.18.tgz",
+ "integrity": "sha512-YYknwy0D0iOwKQgz9v8nOzt2J6l4gouBmDnWqUUznltOTaon+r8US8ky8HvN0tXvc38U9m6z/t2RsVsnd1zM0g==",
+ "requires": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*"
+ }
+ },
+ "@types/react-router-config": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmmirror.com/@types/react-router-config/-/react-router-config-5.0.6.tgz",
+ "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==",
+ "requires": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "@types/react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/@types/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==",
+ "requires": {
+ "@types/history": "^4.7.11",
+ "@types/react": "*",
+ "@types/react-router": "*"
+ }
+ },
+ "@types/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
+ },
+ "@types/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
+ "@types/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==",
+ "requires": {
+ "@types/express": "*"
+ }
+ },
+ "@types/serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/@types/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "requires": {
+ "@types/mime": "*",
+ "@types/node": "*"
+ }
+ },
+ "@types/sockjs": {
+ "version": "0.3.33",
+ "resolved": "https://registry.npmmirror.com/@types/sockjs/-/sockjs-0.3.33.tgz",
+ "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/unist": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz",
+ "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
+ },
+ "@types/ws": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz",
+ "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@webassemblyjs/ast": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ast/-/ast-1.11.1.tgz",
+ "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==",
+ "requires": {
+ "@webassemblyjs/helper-numbers": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1"
+ }
+ },
+ "@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz",
+ "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ=="
+ },
+ "@webassemblyjs/helper-api-error": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz",
+ "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg=="
+ },
+ "@webassemblyjs/helper-buffer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz",
+ "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA=="
+ },
+ "@webassemblyjs/helper-numbers": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz",
+ "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==",
+ "requires": {
+ "@webassemblyjs/floating-point-hex-parser": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz",
+ "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q=="
+ },
+ "@webassemblyjs/helper-wasm-section": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz",
+ "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1"
+ }
+ },
+ "@webassemblyjs/ieee754": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz",
+ "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==",
+ "requires": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "@webassemblyjs/leb128": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz",
+ "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==",
+ "requires": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@webassemblyjs/utf8": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz",
+ "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ=="
+ },
+ "@webassemblyjs/wasm-edit": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz",
+ "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/helper-wasm-section": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-opt": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "@webassemblyjs/wast-printer": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-gen": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz",
+ "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-opt": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz",
+ "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-buffer": "1.11.1",
+ "@webassemblyjs/wasm-gen": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wasm-parser": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz",
+ "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/helper-api-error": "1.11.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.11.1",
+ "@webassemblyjs/ieee754": "1.11.1",
+ "@webassemblyjs/leb128": "1.11.1",
+ "@webassemblyjs/utf8": "1.11.1"
+ }
+ },
+ "@webassemblyjs/wast-printer": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmmirror.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz",
+ "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==",
+ "requires": {
+ "@webassemblyjs/ast": "1.11.1",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
+ },
+ "@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
+ },
+ "accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "requires": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ }
+ }
+ },
+ "acorn": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.8.0.tgz",
+ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w=="
+ },
+ "acorn-import-assertions": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz",
+ "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==",
+ "requires": {}
+ },
+ "acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmmirror.com/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
+ },
+ "address": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/address/-/address-1.2.0.tgz",
+ "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig=="
+ },
+ "aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "requires": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ }
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-formats": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-2.1.1.tgz",
+ "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
+ "requires": {
+ "ajv": "^8.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ }
+ }
+ },
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "requires": {}
+ },
+ "algoliasearch": {
+ "version": "4.17.2",
+ "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.17.2.tgz",
+ "integrity": "sha512-VFu43JJNYIW74awp7oeQcQsPcxOhd8psqBDTfyNO2Zt6L1NqnNMTVnaIdQ+8dtKqUDBqQZp0szPxECvX8CK2Fg==",
+ "requires": {
+ "@algolia/cache-browser-local-storage": "4.17.2",
+ "@algolia/cache-common": "4.17.2",
+ "@algolia/cache-in-memory": "4.17.2",
+ "@algolia/client-account": "4.17.2",
+ "@algolia/client-analytics": "4.17.2",
+ "@algolia/client-common": "4.17.2",
+ "@algolia/client-personalization": "4.17.2",
+ "@algolia/client-search": "4.17.2",
+ "@algolia/logger-common": "4.17.2",
+ "@algolia/logger-console": "4.17.2",
+ "@algolia/requester-browser-xhr": "4.17.2",
+ "@algolia/requester-common": "4.17.2",
+ "@algolia/requester-node-http": "4.17.2",
+ "@algolia/transporter": "4.17.2"
+ }
+ },
+ "algoliasearch-helper": {
+ "version": "3.13.2",
+ "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.13.2.tgz",
+ "integrity": "sha512-1bZjtHuqCBYw7Eu3Qh0Jfq4s63UcbOs6VvLPdt7kxn5+zMgs46xiXgc65YhZBNM3hDGrudhAX9hDhE9OP+rKUw==",
+ "requires": {
+ "@algolia/events": "^4.0.1"
+ }
+ },
+ "ansi-align": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
+ "requires": {
+ "string-width": "^4.1.0"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ }
+ }
+ },
+ "ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmmirror.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw=="
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ=="
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw=="
+ },
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
+ },
+ "at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="
+ },
+ "autoprefixer": {
+ "version": "10.4.14",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz",
+ "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==",
+ "requires": {
+ "browserslist": "^4.21.5",
+ "caniuse-lite": "^1.0.30001464",
+ "fraction.js": "^4.2.0",
+ "normalize-range": "^0.1.2",
+ "picocolors": "^1.0.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "axios": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.25.0.tgz",
+ "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==",
+ "requires": {
+ "follow-redirects": "^1.14.7"
+ }
+ },
+ "babel-loader": {
+ "version": "8.2.5",
+ "resolved": "https://registry.npmmirror.com/babel-loader/-/babel-loader-8.2.5.tgz",
+ "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==",
+ "requires": {
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^2.0.0",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ }
+ },
+ "babel-plugin-apply-mdx-type-prop": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz",
+ "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@mdx-js/util": "1.6.22"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ }
+ }
+ },
+ "babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "requires": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "babel-plugin-extract-import-names": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz",
+ "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "7.10.4"
+ },
+ "dependencies": {
+ "@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ }
+ }
+ },
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
+ "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
+ "requires": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "semver": "^6.1.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
+ "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "core-js-compat": "^3.21.0"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
+ "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2"
+ }
+ },
+ "bail": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ=="
+ },
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "base16": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz",
+ "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ=="
+ },
+ "batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
+ },
+ "big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmmirror.com/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ },
+ "body-parser": {
+ "version": "1.20.0",
+ "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
+ "requires": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "bonjour-service": {
+ "version": "1.0.13",
+ "resolved": "https://registry.npmmirror.com/bonjour-service/-/bonjour-service-1.0.13.tgz",
+ "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==",
+ "requires": {
+ "array-flatten": "^2.1.2",
+ "dns-equal": "^1.0.0",
+ "fast-deep-equal": "^3.1.3",
+ "multicast-dns": "^7.2.5"
+ }
+ },
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "boxen": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmmirror.com/boxen/-/boxen-6.2.1.tgz",
+ "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==",
+ "requires": {
+ "ansi-align": "^3.0.1",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.2",
+ "cli-boxes": "^3.0.0",
+ "string-width": "^5.0.1",
+ "type-fest": "^2.5.0",
+ "widest-line": "^4.0.1",
+ "wrap-ansi": "^8.0.1"
+ }
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "browserslist": {
+ "version": "4.21.9",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz",
+ "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==",
+ "requires": {
+ "caniuse-lite": "^1.0.30001503",
+ "electron-to-chromium": "^1.4.431",
+ "node-releases": "^2.0.12",
+ "update-browserslist-db": "^1.0.11"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ=="
+ },
+ "bytes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.0.0.tgz",
+ "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+ },
+ "normalize-url": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
+ }
+ }
+ },
+ "call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
+ },
+ "camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "requires": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ },
+ "camelcase-css": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
+ "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA=="
+ },
+ "caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "requires": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "caniuse-lite": {
+ "version": "1.0.30001505",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz",
+ "integrity": "sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A=="
+ },
+ "ccount": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz",
+ "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg=="
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "character-entities": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw=="
+ },
+ "character-entities-legacy": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA=="
+ },
+ "character-reference-invalid": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg=="
+ },
+ "cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "requires": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ }
+ },
+ "cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ }
+ },
+ "chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg=="
+ },
+ "ci-info": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ci-info/-/ci-info-2.0.0.tgz",
+ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ=="
+ },
+ "clean-css": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmmirror.com/clean-css/-/clean-css-5.3.1.tgz",
+ "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==",
+ "requires": {
+ "source-map": "~0.6.0"
+ }
+ },
+ "clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
+ },
+ "cli-boxes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-3.0.0.tgz",
+ "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g=="
+ },
+ "cli-table3": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/cli-table3/-/cli-table3-0.6.2.tgz",
+ "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==",
+ "requires": {
+ "@colors/colors": "1.5.0",
+ "string-width": "^4.2.0"
+ },
+ "dependencies": {
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ }
+ }
+ },
+ "clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "requires": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ }
+ },
+ "clone-response": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "clsx": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/clsx/-/clsx-1.2.1.tgz",
+ "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
+ },
+ "collapse-white-space": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+ "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ=="
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmmirror.com/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="
+ },
+ "colorette": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz",
+ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
+ },
+ "combine-promises": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/combine-promises/-/combine-promises-1.1.0.tgz",
+ "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg=="
+ },
+ "comma-separated-tokens": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
+ "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw=="
+ },
+ "commander": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-5.1.0.tgz",
+ "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="
+ },
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg=="
+ },
+ "compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmmirror.com/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "requires": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ }
+ }
+ },
+ "compression": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmmirror.com/compression/-/compression-1.7.4.tgz",
+ "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "requires": {
+ "accepts": "~1.3.5",
+ "bytes": "3.0.0",
+ "compressible": "~2.0.16",
+ "debug": "2.6.9",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.1.2",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
+ },
+ "configstore": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/configstore/-/configstore-5.0.1.tgz",
+ "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "requires": {
+ "dot-prop": "^5.2.0",
+ "graceful-fs": "^4.1.2",
+ "make-dir": "^3.0.0",
+ "unique-string": "^2.0.0",
+ "write-file-atomic": "^3.0.0",
+ "xdg-basedir": "^4.0.0"
+ }
+ },
+ "connect-history-api-fallback": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz",
+ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA=="
+ },
+ "consola": {
+ "version": "2.15.3",
+ "resolved": "https://registry.npmmirror.com/consola/-/consola-2.15.3.tgz",
+ "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw=="
+ },
+ "content-disposition": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.2.tgz",
+ "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA=="
+ },
+ "content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
+ },
+ "convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "requires": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
+ },
+ "cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
+ },
+ "copy-text-to-clipboard": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.1.0.tgz",
+ "integrity": "sha512-PFM6BnjLnOON/lB3ta/Jg7Ywsv+l9kQGD4TWDCSlRBGmqnnTM5MrDkhAFgw+8HZt0wW6Q2BBE4cmy9sq+s9Qng=="
+ },
+ "copy-webpack-plugin": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmmirror.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz",
+ "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==",
+ "requires": {
+ "fast-glob": "^3.2.11",
+ "glob-parent": "^6.0.1",
+ "globby": "^13.1.1",
+ "normalize-path": "^3.0.0",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globby": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-13.1.2.tgz",
+ "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==",
+ "requires": {
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.11",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^4.0.0"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ },
+ "slash": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-4.0.0.tgz",
+ "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew=="
+ }
+ }
+ },
+ "core-js": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.25.0.tgz",
+ "integrity": "sha512-CVU1xvJEfJGhyCpBrzzzU1kjCfgsGUxhEvwUV2e/cOedYWHdmluamx+knDnmhqALddMG16fZvIqvs9aijsHHaA=="
+ },
+ "core-js-compat": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js-compat/-/core-js-compat-3.25.0.tgz",
+ "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
+ "requires": {
+ "browserslist": "^4.21.3",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+ }
+ }
+ },
+ "core-js-pure": {
+ "version": "3.25.0",
+ "resolved": "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.25.0.tgz",
+ "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A=="
+ },
+ "core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "cross-fetch": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.6.tgz",
+ "integrity": "sha512-riRvo06crlE8HiqOwIpQhxwdOk4fOeR7FVM/wXoxchFEqMNUjvbs3bfo4OTgMEMHzppd4DxFBDbyySj8Cv781g==",
+ "requires": {
+ "node-fetch": "^2.6.11"
+ }
+ },
+ "cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "crypto-random-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
+ "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA=="
+ },
+ "css-declaration-sorter": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz",
+ "integrity": "sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew==",
+ "requires": {}
+ },
+ "css-loader": {
+ "version": "6.7.1",
+ "resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-6.7.1.tgz",
+ "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==",
+ "requires": {
+ "icss-utils": "^5.1.0",
+ "postcss": "^8.4.7",
+ "postcss-modules-extract-imports": "^3.0.0",
+ "postcss-modules-local-by-default": "^4.0.0",
+ "postcss-modules-scope": "^3.0.0",
+ "postcss-modules-values": "^4.0.0",
+ "postcss-value-parser": "^4.2.0",
+ "semver": "^7.3.5"
+ }
+ },
+ "css-minimizer-webpack-plugin": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz",
+ "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==",
+ "requires": {
+ "cssnano": "^5.1.8",
+ "jest-worker": "^27.5.1",
+ "postcss": "^8.4.13",
+ "schema-utils": "^4.0.0",
+ "serialize-javascript": "^6.0.0",
+ "source-map": "^0.6.1"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ }
+ }
+ },
+ "css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "requires": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="
+ },
+ "cssnano": {
+ "version": "5.1.13",
+ "resolved": "https://registry.npmmirror.com/cssnano/-/cssnano-5.1.13.tgz",
+ "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==",
+ "requires": {
+ "cssnano-preset-default": "^5.2.12",
+ "lilconfig": "^2.0.3",
+ "yaml": "^1.10.2"
+ }
+ },
+ "cssnano-preset-advanced": {
+ "version": "5.3.10",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz",
+ "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==",
+ "requires": {
+ "autoprefixer": "^10.4.12",
+ "cssnano-preset-default": "^5.2.14",
+ "postcss-discard-unused": "^5.1.0",
+ "postcss-merge-idents": "^5.1.1",
+ "postcss-reduce-idents": "^5.2.0",
+ "postcss-zindex": "^5.1.0"
+ }
+ },
+ "cssnano-preset-default": {
+ "version": "5.2.14",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz",
+ "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==",
+ "requires": {
+ "css-declaration-sorter": "^6.3.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-calc": "^8.2.3",
+ "postcss-colormin": "^5.3.1",
+ "postcss-convert-values": "^5.1.3",
+ "postcss-discard-comments": "^5.1.2",
+ "postcss-discard-duplicates": "^5.1.0",
+ "postcss-discard-empty": "^5.1.1",
+ "postcss-discard-overridden": "^5.1.0",
+ "postcss-merge-longhand": "^5.1.7",
+ "postcss-merge-rules": "^5.1.4",
+ "postcss-minify-font-values": "^5.1.0",
+ "postcss-minify-gradients": "^5.1.1",
+ "postcss-minify-params": "^5.1.4",
+ "postcss-minify-selectors": "^5.2.1",
+ "postcss-normalize-charset": "^5.1.0",
+ "postcss-normalize-display-values": "^5.1.0",
+ "postcss-normalize-positions": "^5.1.1",
+ "postcss-normalize-repeat-style": "^5.1.1",
+ "postcss-normalize-string": "^5.1.0",
+ "postcss-normalize-timing-functions": "^5.1.0",
+ "postcss-normalize-unicode": "^5.1.1",
+ "postcss-normalize-url": "^5.1.0",
+ "postcss-normalize-whitespace": "^5.1.1",
+ "postcss-ordered-values": "^5.1.3",
+ "postcss-reduce-initial": "^5.1.2",
+ "postcss-reduce-transforms": "^5.1.0",
+ "postcss-svgo": "^5.1.0",
+ "postcss-unique-selectors": "^5.1.1"
+ }
+ },
+ "cssnano-utils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz",
+ "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==",
+ "requires": {}
+ },
+ "csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "requires": {
+ "css-tree": "^1.1.2"
+ }
+ },
+ "csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
+ },
+ "deepmerge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg=="
+ },
+ "default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "requires": {
+ "execa": "^5.0.0"
+ }
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ },
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og=="
+ },
+ "define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmmirror.com/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "requires": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "del": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmmirror.com/del/-/del-6.1.1.tgz",
+ "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==",
+ "requires": {
+ "globby": "^11.0.1",
+ "graceful-fs": "^4.2.4",
+ "is-glob": "^4.0.1",
+ "is-path-cwd": "^2.2.0",
+ "is-path-inside": "^3.0.2",
+ "p-map": "^4.0.0",
+ "rimraf": "^3.0.2",
+ "slash": "^3.0.0"
+ }
+ },
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
+ "destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
+ },
+ "detab": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz",
+ "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==",
+ "requires": {
+ "repeat-string": "^1.5.4"
+ }
+ },
+ "detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g=="
+ },
+ "detect-port": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/detect-port/-/detect-port-1.3.0.tgz",
+ "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==",
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "detect-port-alt": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmmirror.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
+ "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==",
+ "requires": {
+ "address": "^1.0.1",
+ "debug": "^2.6.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg=="
+ },
+ "dns-packet": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmmirror.com/dns-packet/-/dns-packet-5.4.0.tgz",
+ "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==",
+ "requires": {
+ "@leichtgewicht/ip-codec": "^2.0.1"
+ }
+ },
+ "dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "requires": {
+ "utila": "~0.4"
+ }
+ },
+ "dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="
+ },
+ "domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "requires": {
+ "domelementtype": "^2.3.0"
+ }
+ },
+ "domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "requires": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ }
+ },
+ "dot-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/dot-case/-/dot-case-3.0.4.tgz",
+ "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "requires": {
+ "is-obj": "^2.0.0"
+ },
+ "dependencies": {
+ "is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w=="
+ }
+ }
+ },
+ "duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
+ },
+ "duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmmirror.com/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+ },
+ "eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
+ },
+ "ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
+ },
+ "electron-to-chromium": {
+ "version": "1.4.434",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.434.tgz",
+ "integrity": "sha512-5Gvm09UZTQRaWrimRtWRO5rvaX6Kpk5WHAPKDa7A4Gj6NIPuJ8w8WNpnxCXdd+CJJt6RBU6tUw0KyULoW6XuHw=="
+ },
+ "emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ },
+ "emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q=="
+ },
+ "emoticon": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz",
+ "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg=="
+ },
+ "encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "enhanced-resolve": {
+ "version": "5.10.0",
+ "resolved": "https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz",
+ "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==",
+ "requires": {
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
+ }
+ },
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmmirror.com/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmmirror.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ=="
+ },
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+ },
+ "escape-goat": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/escape-goat/-/escape-goat-2.1.1.tgz",
+ "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q=="
+ },
+ "escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+ },
+ "esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw=="
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
+ },
+ "eta": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/eta/-/eta-2.2.0.tgz",
+ "integrity": "sha512-UVQ72Rqjy/ZKQalzV5dCCJP80GrmPrMxh6NlNf+erV6ObL0ZFkhCstWRawS85z3smdr3d2wXPsZEY7rDPfGd2g=="
+ },
+ "etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmmirror.com/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
+ },
+ "eval": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/eval/-/eval-0.1.8.tgz",
+ "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==",
+ "requires": {
+ "@types/node": "*",
+ "require-like": ">= 0.1.1"
+ }
+ },
+ "eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
+ },
+ "events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
+ },
+ "execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "requires": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
+ }
+ }
+ },
+ "express": {
+ "version": "4.18.1",
+ "resolved": "https://registry.npmmirror.com/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
+ "requires": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.5.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "dependencies": {
+ "array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
+ },
+ "content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "requires": {
+ "safe-buffer": "5.2.1"
+ }
+ },
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "path-to-regexp": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "requires": {
+ "is-extendable": "^0.1.0"
+ }
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ },
+ "fast-glob": {
+ "version": "3.2.11",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.2.11.tgz",
+ "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==",
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ },
+ "fast-url-parser": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz",
+ "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==",
+ "requires": {
+ "punycode": "^1.3.2"
+ }
+ },
+ "fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmmirror.com/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
+ "fbemitter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz",
+ "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==",
+ "requires": {
+ "fbjs": "^3.0.0"
+ }
+ },
+ "fbjs": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.5.tgz",
+ "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==",
+ "requires": {
+ "cross-fetch": "^3.1.5",
+ "fbjs-css-vars": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^1.0.35"
+ }
+ },
+ "fbjs-css-vars": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz",
+ "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ=="
+ },
+ "feed": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz",
+ "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==",
+ "requires": {
+ "xml-js": "^1.6.11"
+ }
+ },
+ "file-loader": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz",
+ "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "filesize": {
+ "version": "8.0.7",
+ "resolved": "https://registry.npmmirror.com/filesize/-/filesize-8.0.7.tgz",
+ "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ=="
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "finalhandler": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
+ "requires": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flux": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.4.tgz",
+ "integrity": "sha512-NCj3XlayA2UsapRpM7va6wU1+9rE5FIL7qoMcmxWHRzbp0yujihMBm9BBHZ1MDIk5h5o2Bl6eGiCe8rYELAmYw==",
+ "requires": {
+ "fbemitter": "^3.0.0",
+ "fbjs": "^3.0.1"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
+ },
+ "fork-ts-checker-webpack-plugin": {
+ "version": "6.5.2",
+ "resolved": "https://registry.npmmirror.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz",
+ "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==",
+ "requires": {
+ "@babel/code-frame": "^7.8.3",
+ "@types/json-schema": "^7.0.5",
+ "chalk": "^4.1.0",
+ "chokidar": "^3.4.2",
+ "cosmiconfig": "^6.0.0",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^9.0.0",
+ "glob": "^7.1.6",
+ "memfs": "^3.1.2",
+ "minimatch": "^3.0.4",
+ "schema-utils": "2.7.0",
+ "semver": "^7.3.2",
+ "tapable": "^1.0.0"
+ },
+ "dependencies": {
+ "cosmiconfig": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
+ "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.1.0",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.7.2"
+ }
+ },
+ "fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "requires": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "schema-utils": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.0.tgz",
+ "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+ "requires": {
+ "@types/json-schema": "^7.0.4",
+ "ajv": "^6.12.2",
+ "ajv-keywords": "^3.4.1"
+ }
+ },
+ "tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA=="
+ }
+ }
+ },
+ "forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
+ },
+ "fraction.js": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz",
+ "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA=="
+ },
+ "fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmmirror.com/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
+ },
+ "fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ }
+ },
+ "fs-monkey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/fs-monkey/-/fs-monkey-1.0.3.tgz",
+ "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q=="
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
+ },
+ "get-intrinsic": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
+ "requires": {
+ "function-bind": "^1.1.1",
+ "has": "^1.0.3",
+ "has-symbols": "^1.0.3"
+ }
+ },
+ "get-own-enumerable-property-symbols": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g=="
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "github-slugger": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz",
+ "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw=="
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "glob-to-regexp": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
+ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
+ },
+ "global-dirs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/global-dirs/-/global-dirs-3.0.0.tgz",
+ "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
+ "requires": {
+ "ini": "2.0.0"
+ },
+ "dependencies": {
+ "ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
+ }
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "dependencies": {
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ }
+ }
+ },
+ "globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmmirror.com/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "graceful-fs": {
+ "version": "4.2.10",
+ "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
+ },
+ "gray-matter": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz",
+ "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==",
+ "requires": {
+ "js-yaml": "^3.13.1",
+ "kind-of": "^6.0.2",
+ "section-matter": "^1.0.0",
+ "strip-bom-string": "^1.0.0"
+ },
+ "dependencies": {
+ "argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "requires": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "requires": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ }
+ }
+ }
+ },
+ "gzip-size": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
+ "requires": {
+ "duplexer": "^0.1.2"
+ }
+ },
+ "handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg=="
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
+ "has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
+ },
+ "has-yarn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/has-yarn/-/has-yarn-2.1.0.tgz",
+ "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw=="
+ },
+ "hast-to-hyperscript": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz",
+ "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==",
+ "requires": {
+ "@types/unist": "^2.0.3",
+ "comma-separated-tokens": "^1.0.0",
+ "property-information": "^5.3.0",
+ "space-separated-tokens": "^1.0.0",
+ "style-to-object": "^0.3.0",
+ "unist-util-is": "^4.0.0",
+ "web-namespaces": "^1.0.0"
+ }
+ },
+ "hast-util-from-parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz",
+ "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==",
+ "requires": {
+ "@types/parse5": "^5.0.0",
+ "hastscript": "^6.0.0",
+ "property-information": "^5.0.0",
+ "vfile": "^4.0.0",
+ "vfile-location": "^3.2.0",
+ "web-namespaces": "^1.0.0"
+ }
+ },
+ "hast-util-parse-selector": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz",
+ "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ=="
+ },
+ "hast-util-raw": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz",
+ "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "hast-util-from-parse5": "^6.0.0",
+ "hast-util-to-parse5": "^6.0.0",
+ "html-void-elements": "^1.0.0",
+ "parse5": "^6.0.0",
+ "unist-util-position": "^3.0.0",
+ "vfile": "^4.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.0",
+ "zwitch": "^1.0.0"
+ },
+ "dependencies": {
+ "parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw=="
+ }
+ }
+ },
+ "hast-util-to-parse5": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz",
+ "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==",
+ "requires": {
+ "hast-to-hyperscript": "^9.0.0",
+ "property-information": "^5.0.0",
+ "web-namespaces": "^1.0.0",
+ "xtend": "^4.0.0",
+ "zwitch": "^1.0.0"
+ }
+ },
+ "hastscript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz",
+ "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==",
+ "requires": {
+ "@types/hast": "^2.0.0",
+ "comma-separated-tokens": "^1.0.0",
+ "hast-util-parse-selector": "^2.0.0",
+ "property-information": "^5.0.0",
+ "space-separated-tokens": "^1.0.0"
+ }
+ },
+ "he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ },
+ "history": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmmirror.com/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
+ "requires": {
+ "@babel/runtime": "^7.1.2",
+ "loose-envify": "^1.2.0",
+ "resolve-pathname": "^3.0.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0",
+ "value-equal": "^1.0.1"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
+ "requires": {
+ "react-is": "^16.7.0"
+ }
+ },
+ "hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmmirror.com/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "requires": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
+ "html-entities": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmmirror.com/html-entities/-/html-entities-2.3.3.tgz",
+ "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA=="
+ },
+ "html-minifier-terser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz",
+ "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==",
+ "requires": {
+ "camel-case": "^4.1.2",
+ "clean-css": "^5.2.2",
+ "commander": "^8.3.0",
+ "he": "^1.2.0",
+ "param-case": "^3.0.4",
+ "relateurl": "^0.2.7",
+ "terser": "^5.10.0"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="
+ }
+ }
+ },
+ "html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg=="
+ },
+ "html-void-elements": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz",
+ "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w=="
+ },
+ "html-webpack-plugin": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmmirror.com/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz",
+ "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==",
+ "requires": {
+ "@types/html-minifier-terser": "^6.0.0",
+ "html-minifier-terser": "^6.0.2",
+ "lodash": "^4.17.21",
+ "pretty-error": "^4.0.0",
+ "tapable": "^2.0.0"
+ }
+ },
+ "htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "http-cache-semantics": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="
+ },
+ "http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmmirror.com/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw=="
+ },
+ "http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "requires": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ }
+ },
+ "http-parser-js": {
+ "version": "0.5.8",
+ "resolved": "https://registry.npmmirror.com/http-parser-js/-/http-parser-js-0.5.8.tgz",
+ "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ },
+ "http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmmirror.com/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "requires": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "http-proxy-middleware": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
+ "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
+ "requires": {
+ "@types/http-proxy": "^1.17.8",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "dependencies": {
+ "is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA=="
+ }
+ }
+ },
+ "human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="
+ },
+ "iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "requires": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ }
+ },
+ "icss-utils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/icss-utils/-/icss-utils-5.1.0.tgz",
+ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
+ "requires": {}
+ },
+ "ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ=="
+ },
+ "image-size": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz",
+ "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==",
+ "requires": {
+ "queue": "6.0.2"
+ }
+ },
+ "immer": {
+ "version": "9.0.15",
+ "resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.15.tgz",
+ "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ=="
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-lazy": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/import-lazy/-/import-lazy-2.1.0.tgz",
+ "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A=="
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="
+ },
+ "infima": {
+ "version": "0.2.0-alpha.43",
+ "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.43.tgz",
+ "integrity": "sha512-2uw57LvUqW0rK/SWYnd/2rRfxNA5DDNOh33jxF7fy46VWoNhGxiUQyVZHbBMjQ33mQem0cjdDVwgWVAmlRfgyQ=="
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
+ "inline-style-parser": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz",
+ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q=="
+ },
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA=="
+ },
+ "invariant": {
+ "version": "2.2.4",
+ "resolved": "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz",
+ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ },
+ "ipaddr.js": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-2.0.1.tgz",
+ "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng=="
+ },
+ "is-alphabetical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg=="
+ },
+ "is-alphanumerical": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
+ "requires": {
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0"
+ }
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ=="
+ },
+ "is-ci": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/is-ci/-/is-ci-2.0.0.tgz",
+ "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
+ "requires": {
+ "ci-info": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz",
+ "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-decimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw=="
+ },
+ "is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ=="
+ },
+ "is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-hexadecimal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw=="
+ },
+ "is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "requires": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ }
+ },
+ "is-npm": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/is-npm/-/is-npm-5.0.0.tgz",
+ "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA=="
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
+ },
+ "is-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="
+ },
+ "is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ=="
+ },
+ "is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="
+ },
+ "is-plain-obj": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
+ },
+ "is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "requires": {
+ "isobject": "^3.0.1"
+ }
+ },
+ "is-regexp": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA=="
+ },
+ "is-root": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/is-root/-/is-root-2.1.0.tgz",
+ "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg=="
+ },
+ "is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
+ },
+ "is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "is-whitespace-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w=="
+ },
+ "is-word-character": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA=="
+ },
+ "is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "requires": {
+ "is-docker": "^2.0.0"
+ }
+ },
+ "is-yarn-global": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
+ "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw=="
+ },
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
+ },
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
+ },
+ "jest-worker": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmmirror.com/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
+ "requires": {
+ "@types/node": "*",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "dependencies": {
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "joi": {
+ "version": "17.6.0",
+ "resolved": "https://registry.npmmirror.com/joi/-/joi-17.6.0.tgz",
+ "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==",
+ "requires": {
+ "@hapi/hoek": "^9.0.0",
+ "@hapi/topo": "^5.0.0",
+ "@sideway/address": "^4.1.3",
+ "@sideway/formula": "^3.0.0",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w=="
+ },
+ "json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+ },
+ "json5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
+ },
+ "jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "requires": {
+ "graceful-fs": "^4.1.6",
+ "universalify": "^2.0.0"
+ }
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmmirror.com/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
+ },
+ "kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
+ },
+ "klona": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/klona/-/klona-2.0.5.tgz",
+ "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ=="
+ },
+ "latest-version": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/latest-version/-/latest-version-5.1.0.tgz",
+ "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
+ "requires": {
+ "package-json": "^6.3.0"
+ }
+ },
+ "leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A=="
+ },
+ "lilconfig": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmmirror.com/lilconfig/-/lilconfig-2.0.6.tgz",
+ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmmirror.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
+ },
+ "loader-runner": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/loader-runner/-/loader-runner-4.3.0.tgz",
+ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg=="
+ },
+ "loader-utils": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.2.tgz",
+ "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==",
+ "requires": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ },
+ "lodash.curry": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
+ "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA=="
+ },
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "lodash.flow": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz",
+ "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw=="
+ },
+ "lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
+ },
+ "loose-envify": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
+ "requires": {
+ "js-tokens": "^3.0.0 || ^4.0.0"
+ }
+ },
+ "lower-case": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
+ "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
+ "requires": {
+ "tslib": "^2.0.3"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "requires": {
+ "semver": "^6.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "markdown-escapes": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg=="
+ },
+ "mdast-squeeze-paragraphs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz",
+ "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==",
+ "requires": {
+ "unist-util-remove": "^2.0.0"
+ }
+ },
+ "mdast-util-definitions": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz",
+ "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==",
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "mdast-util-to-hast": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz",
+ "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==",
+ "requires": {
+ "@types/mdast": "^3.0.0",
+ "@types/unist": "^2.0.0",
+ "mdast-util-definitions": "^4.0.0",
+ "mdurl": "^1.0.0",
+ "unist-builder": "^2.0.0",
+ "unist-util-generated": "^1.0.0",
+ "unist-util-position": "^3.0.0",
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "mdast-util-to-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz",
+ "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w=="
+ },
+ "mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmmirror.com/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow=="
+ },
+ "mdurl": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+ "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g=="
+ },
+ "media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
+ },
+ "memfs": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmmirror.com/memfs/-/memfs-3.4.7.tgz",
+ "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==",
+ "requires": {
+ "fs-monkey": "^1.0.3"
+ }
+ },
+ "merge-descriptors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
+ },
+ "merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
+ },
+ "methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
+ },
+ "mime-db": {
+ "version": "1.33.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.33.0.tgz",
+ "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
+ },
+ "mime-types": {
+ "version": "2.1.18",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.18.tgz",
+ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "requires": {
+ "mime-db": "~1.33.0"
+ }
+ },
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
+ },
+ "mimic-response": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mimic-response/-/mimic-response-1.0.1.tgz",
+ "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="
+ },
+ "mini-create-react-context": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmmirror.com/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
+ "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
+ "requires": {
+ "@babel/runtime": "^7.12.1",
+ "tiny-warning": "^1.0.3"
+ }
+ },
+ "mini-css-extract-plugin": {
+ "version": "2.6.1",
+ "resolved": "https://registry.npmmirror.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz",
+ "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==",
+ "requires": {
+ "schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
+ },
+ "mrmime": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/mrmime/-/mrmime-1.0.1.tgz",
+ "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw=="
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "multicast-dns": {
+ "version": "7.2.5",
+ "resolved": "https://registry.npmmirror.com/multicast-dns/-/multicast-dns-7.2.5.tgz",
+ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==",
+ "requires": {
+ "dns-packet": "^5.2.2",
+ "thunky": "^1.0.2"
+ }
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw=="
+ },
+ "negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
+ },
+ "neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
+ },
+ "no-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/no-case/-/no-case-3.0.4.tgz",
+ "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
+ "requires": {
+ "lower-case": "^2.0.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node-emoji": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz",
+ "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==",
+ "requires": {
+ "lodash": "^4.17.21"
+ }
+ },
+ "node-fetch": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz",
+ "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==",
+ "requires": {
+ "whatwg-url": "^5.0.0"
+ }
+ },
+ "node-forge": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA=="
+ },
+ "node-releases": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz",
+ "integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ=="
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
+ },
+ "normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA=="
+ },
+ "normalize-url": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
+ },
+ "npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "requires": {
+ "path-key": "^3.0.0"
+ }
+ },
+ "nprogress": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz",
+ "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
+ },
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
+ "object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
+ },
+ "object-inspect": {
+ "version": "1.12.2",
+ "resolved": "https://registry.npmmirror.com/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ },
+ "object.assign": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.4.tgz",
+ "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.4",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ }
+ },
+ "obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
+ },
+ "on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmmirror.com/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "requires": {
+ "ee-first": "1.1.1"
+ }
+ },
+ "on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "requires": {
+ "mimic-fn": "^2.1.0"
+ }
+ },
+ "open": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmmirror.com/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
+ "requires": {
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
+ }
+ },
+ "opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmmirror.com/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A=="
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "requires": {
+ "aggregate-error": "^3.0.0"
+ }
+ },
+ "p-retry": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/p-retry/-/p-retry-4.6.2.tgz",
+ "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==",
+ "requires": {
+ "@types/retry": "0.12.0",
+ "retry": "^0.13.1"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
+ },
+ "package-json": {
+ "version": "6.5.0",
+ "resolved": "https://registry.npmmirror.com/package-json/-/package-json-6.5.0.tgz",
+ "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
+ "requires": {
+ "got": "^9.6.0",
+ "registry-auth-token": "^4.0.0",
+ "registry-url": "^5.0.0",
+ "semver": "^6.2.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "param-case": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz",
+ "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==",
+ "requires": {
+ "dot-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-entities": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz",
+ "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==",
+ "requires": {
+ "character-entities": "^1.0.0",
+ "character-entities-legacy": "^1.0.0",
+ "character-reference-invalid": "^1.0.0",
+ "is-alphanumerical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-hexadecimal": "^1.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmmirror.com/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "parse-numeric-range": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz",
+ "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ=="
+ },
+ "parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "requires": {
+ "entities": "^4.4.0"
+ }
+ },
+ "parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "requires": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ }
+ },
+ "parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
+ },
+ "pascal-case": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/pascal-case/-/pascal-case-3.1.2.tgz",
+ "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
+ "requires": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
+ },
+ "path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w=="
+ },
+ "path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw=="
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ },
+ "pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "requires": {
+ "find-up": "^3.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
+ }
+ }
+ },
+ "postcss": {
+ "version": "8.4.16",
+ "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.4.16.tgz",
+ "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-calc": {
+ "version": "8.2.4",
+ "resolved": "https://registry.npmmirror.com/postcss-calc/-/postcss-calc-8.2.4.tgz",
+ "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.9",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-colormin": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz",
+ "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "colord": "^2.9.1",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-convert-values": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz",
+ "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-discard-comments": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz",
+ "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==",
+ "requires": {}
+ },
+ "postcss-discard-duplicates": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz",
+ "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==",
+ "requires": {}
+ },
+ "postcss-discard-empty": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz",
+ "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==",
+ "requires": {}
+ },
+ "postcss-discard-overridden": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz",
+ "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==",
+ "requires": {}
+ },
+ "postcss-discard-unused": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz",
+ "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-loader": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/postcss-loader/-/postcss-loader-7.0.1.tgz",
+ "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==",
+ "requires": {
+ "cosmiconfig": "^7.0.0",
+ "klona": "^2.0.5",
+ "semver": "^7.3.7"
+ }
+ },
+ "postcss-merge-idents": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz",
+ "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==",
+ "requires": {
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-merge-longhand": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz",
+ "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0",
+ "stylehacks": "^5.1.1"
+ }
+ },
+ "postcss-merge-rules": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz",
+ "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0",
+ "cssnano-utils": "^3.1.0",
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-minify-font-values": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz",
+ "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-gradients": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz",
+ "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==",
+ "requires": {
+ "colord": "^2.9.1",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-params": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz",
+ "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-minify-selectors": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz",
+ "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-modules-extract-imports": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz",
+ "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==",
+ "requires": {}
+ },
+ "postcss-modules-local-by-default": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz",
+ "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==",
+ "requires": {
+ "icss-utils": "^5.0.0",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "postcss-modules-scope": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz",
+ "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "postcss-modules-values": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
+ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==",
+ "requires": {
+ "icss-utils": "^5.0.0"
+ }
+ },
+ "postcss-normalize-charset": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz",
+ "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==",
+ "requires": {}
+ },
+ "postcss-normalize-display-values": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz",
+ "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-positions": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz",
+ "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-repeat-style": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz",
+ "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-string": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz",
+ "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-timing-functions": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz",
+ "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-unicode": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz",
+ "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz",
+ "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==",
+ "requires": {
+ "normalize-url": "^6.0.1",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-normalize-whitespace": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz",
+ "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-ordered-values": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmmirror.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz",
+ "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==",
+ "requires": {
+ "cssnano-utils": "^3.1.0",
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-reduce-idents": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz",
+ "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-reduce-initial": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz",
+ "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "caniuse-api": "^3.0.0"
+ }
+ },
+ "postcss-reduce-transforms": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz",
+ "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0"
+ }
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.10",
+ "resolved": "https://registry.npmmirror.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "postcss-sort-media-queries": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz",
+ "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==",
+ "requires": {
+ "sort-css-media-queries": "2.1.0"
+ }
+ },
+ "postcss-svgo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz",
+ "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==",
+ "requires": {
+ "postcss-value-parser": "^4.2.0",
+ "svgo": "^2.7.0"
+ }
+ },
+ "postcss-unique-selectors": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz",
+ "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==",
+ "requires": {
+ "postcss-selector-parser": "^6.0.5"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmmirror.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="
+ },
+ "postcss-zindex": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz",
+ "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==",
+ "requires": {}
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA=="
+ },
+ "pretty-error": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/pretty-error/-/pretty-error-4.0.0.tgz",
+ "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==",
+ "requires": {
+ "lodash": "^4.17.20",
+ "renderkid": "^3.0.0"
+ }
+ },
+ "pretty-time": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/pretty-time/-/pretty-time-1.1.0.tgz",
+ "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA=="
+ },
+ "prism-react-renderer": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmmirror.com/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz",
+ "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==",
+ "requires": {}
+ },
+ "prismjs": {
+ "version": "1.29.0",
+ "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz",
+ "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
+ },
+ "process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "~2.0.3"
+ }
+ },
+ "prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmmirror.com/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "requires": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ }
+ },
+ "prop-types": {
+ "version": "15.8.1",
+ "resolved": "https://registry.npmmirror.com/prop-types/-/prop-types-15.8.1.tgz",
+ "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
+ "requires": {
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.13.1"
+ }
+ },
+ "property-information": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz",
+ "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==",
+ "requires": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmmirror.com/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "requires": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "dependencies": {
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
+ }
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ=="
+ },
+ "pupa": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/pupa/-/pupa-2.1.1.tgz",
+ "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
+ "requires": {
+ "escape-goat": "^2.0.0"
+ }
+ },
+ "pure-color": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz",
+ "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA=="
+ },
+ "qs": {
+ "version": "6.10.3",
+ "resolved": "https://registry.npmmirror.com/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
+ "requires": {
+ "side-channel": "^1.0.4"
+ }
+ },
+ "queue": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz",
+ "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==",
+ "requires": {
+ "inherits": "~2.0.3"
+ }
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.0.tgz",
+ "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A=="
+ },
+ "raw-body": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
+ "requires": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "dependencies": {
+ "bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmmirror.com/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
+ }
+ }
+ },
+ "rc": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/rc/-/rc-1.2.8.tgz",
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
+ "requires": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "dependencies": {
+ "strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
+ }
+ }
+ },
+ "react": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "react-base16-styling": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz",
+ "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==",
+ "requires": {
+ "base16": "^1.0.0",
+ "lodash.curry": "^4.0.1",
+ "lodash.flow": "^3.3.0",
+ "pure-color": "^1.2.0"
+ }
+ },
+ "react-dev-utils": {
+ "version": "12.0.1",
+ "resolved": "https://registry.npmmirror.com/react-dev-utils/-/react-dev-utils-12.0.1.tgz",
+ "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==",
+ "requires": {
+ "@babel/code-frame": "^7.16.0",
+ "address": "^1.1.2",
+ "browserslist": "^4.18.1",
+ "chalk": "^4.1.2",
+ "cross-spawn": "^7.0.3",
+ "detect-port-alt": "^1.1.6",
+ "escape-string-regexp": "^4.0.0",
+ "filesize": "^8.0.6",
+ "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^6.5.0",
+ "global-modules": "^2.0.0",
+ "globby": "^11.0.4",
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "loader-utils": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-3.2.0.tgz",
+ "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ=="
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ }
+ }
+ },
+ "react-dom": {
+ "version": "17.0.2",
+ "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1",
+ "scheduler": "^0.20.2"
+ }
+ },
+ "react-error-overlay": {
+ "version": "6.0.11",
+ "resolved": "https://registry.npmmirror.com/react-error-overlay/-/react-error-overlay-6.0.11.tgz",
+ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg=="
+ },
+ "react-fast-compare": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmmirror.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz",
+ "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA=="
+ },
+ "react-helmet-async": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/react-helmet-async/-/react-helmet-async-1.3.0.tgz",
+ "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "invariant": "^2.2.4",
+ "prop-types": "^15.7.2",
+ "react-fast-compare": "^3.2.0",
+ "shallowequal": "^1.1.0"
+ }
+ },
+ "react-is": {
+ "version": "16.13.1",
+ "resolved": "https://registry.npmmirror.com/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
+ },
+ "react-json-view": {
+ "version": "1.21.3",
+ "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz",
+ "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==",
+ "requires": {
+ "flux": "^4.0.1",
+ "react-base16-styling": "^0.6.0",
+ "react-lifecycles-compat": "^3.0.4",
+ "react-textarea-autosize": "^8.3.2"
+ }
+ },
+ "react-lifecycles-compat": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
+ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
+ },
+ "react-loadable": {
+ "version": "npm:@docusaurus/react-loadable@5.5.2",
+ "resolved": "https://registry.npmmirror.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz",
+ "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==",
+ "requires": {
+ "@types/react": "*",
+ "prop-types": "^15.6.2"
+ }
+ },
+ "react-loadable-ssr-addon-v5-slorber": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz",
+ "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==",
+ "requires": {
+ "@babel/runtime": "^7.10.3"
+ }
+ },
+ "react-router": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/react-router/-/react-router-5.3.3.tgz",
+ "integrity": "sha512-mzQGUvS3bM84TnbtMYR8ZjKnuPJ71IjSzR+DE6UkUqvN4czWIqEs17yLL8xkAycv4ev0AiN+IGrWu88vJs/p2w==",
+ "requires": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "hoist-non-react-statics": "^3.1.0",
+ "loose-envify": "^1.3.1",
+ "mini-create-react-context": "^0.4.0",
+ "path-to-regexp": "^1.7.0",
+ "prop-types": "^15.6.2",
+ "react-is": "^16.6.0",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ }
+ },
+ "react-router-config": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmmirror.com/react-router-config/-/react-router-config-5.1.1.tgz",
+ "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==",
+ "requires": {
+ "@babel/runtime": "^7.1.2"
+ }
+ },
+ "react-router-dom": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-5.3.3.tgz",
+ "integrity": "sha512-Ov0tGPMBgqmbu5CDmN++tv2HQ9HlWDuWIIqn4b88gjlAN5IHI+4ZUZRcpz9Hl0azFIwihbLDYw1OiHGRo7ZIng==",
+ "requires": {
+ "@babel/runtime": "^7.12.13",
+ "history": "^4.9.0",
+ "loose-envify": "^1.3.1",
+ "prop-types": "^15.6.2",
+ "react-router": "5.3.3",
+ "tiny-invariant": "^1.0.2",
+ "tiny-warning": "^1.0.0"
+ }
+ },
+ "react-textarea-autosize": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.4.1.tgz",
+ "integrity": "sha512-aD2C+qK6QypknC+lCMzteOdIjoMbNlgSFmJjCV+DrfTPwp59i/it9mMNf2HDzvRjQgKAyBDPyLJhcrzElf2U4Q==",
+ "requires": {
+ "@babel/runtime": "^7.20.13",
+ "use-composed-ref": "^1.3.0",
+ "use-latest": "^1.2.1"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "reading-time": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz",
+ "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg=="
+ },
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
+ "recursive-readdir": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmmirror.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz",
+ "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==",
+ "requires": {
+ "minimatch": "3.0.4"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
+ }
+ },
+ "regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmmirror.com/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
+ },
+ "regenerate-unicode-properties": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmmirror.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
+ "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
+ "requires": {
+ "regenerate": "^1.4.2"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.13.11",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
+ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg=="
+ },
+ "regenerator-transform": {
+ "version": "0.15.0",
+ "resolved": "https://registry.npmmirror.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
+ "requires": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "regexpu-core": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/regexpu-core/-/regexpu-core-5.1.0.tgz",
+ "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
+ "requires": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.0.1",
+ "regjsgen": "^0.6.0",
+ "regjsparser": "^0.8.2",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.0.0"
+ }
+ },
+ "registry-auth-token": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmmirror.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz",
+ "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==",
+ "requires": {
+ "rc": "1.2.8"
+ }
+ },
+ "registry-url": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/registry-url/-/registry-url-5.1.0.tgz",
+ "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
+ "requires": {
+ "rc": "^1.2.8"
+ }
+ },
+ "regjsgen": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmmirror.com/regjsgen/-/regjsgen-0.6.0.tgz",
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA=="
+ },
+ "regjsparser": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmmirror.com/regjsparser/-/regjsparser-0.8.4.tgz",
+ "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
+ "requires": {
+ "jsesc": "~0.5.0"
+ },
+ "dependencies": {
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
+ }
+ }
+ },
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmmirror.com/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog=="
+ },
+ "remark-emoji": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz",
+ "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==",
+ "requires": {
+ "emoticon": "^3.2.0",
+ "node-emoji": "^1.10.0",
+ "unist-util-visit": "^2.0.3"
+ }
+ },
+ "remark-footnotes": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz",
+ "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ=="
+ },
+ "remark-mdx": {
+ "version": "1.6.22",
+ "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz",
+ "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==",
+ "requires": {
+ "@babel/core": "7.12.9",
+ "@babel/helper-plugin-utils": "7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "7.12.1",
+ "@babel/plugin-syntax-jsx": "7.12.1",
+ "@mdx-js/util": "1.6.22",
+ "is-alphabetical": "1.0.4",
+ "remark-parse": "8.0.3",
+ "unified": "9.2.0"
+ },
+ "dependencies": {
+ "@babel/core": {
+ "version": "7.12.9",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz",
+ "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==",
+ "requires": {
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.12.5",
+ "@babel/helper-module-transforms": "^7.12.1",
+ "@babel/helpers": "^7.12.5",
+ "@babel/parser": "^7.12.7",
+ "@babel/template": "^7.12.7",
+ "@babel/traverse": "^7.12.9",
+ "@babel/types": "^7.12.7",
+ "convert-source-map": "^1.7.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.1",
+ "json5": "^2.1.2",
+ "lodash": "^4.17.19",
+ "resolve": "^1.3.2",
+ "semver": "^5.4.1",
+ "source-map": "^0.5.0"
+ }
+ },
+ "@babel/helper-plugin-utils": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
+ },
+ "@babel/plugin-proposal-object-rest-spread": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz",
+ "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.0",
+ "@babel/plugin-transform-parameters": "^7.12.1"
+ }
+ },
+ "@babel/plugin-syntax-jsx": {
+ "version": "7.12.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz",
+ "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
+ },
+ "unified": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz",
+ "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==",
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ }
+ }
+ }
+ },
+ "remark-parse": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz",
+ "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==",
+ "requires": {
+ "ccount": "^1.0.0",
+ "collapse-white-space": "^1.0.2",
+ "is-alphabetical": "^1.0.0",
+ "is-decimal": "^1.0.0",
+ "is-whitespace-character": "^1.0.0",
+ "is-word-character": "^1.0.0",
+ "markdown-escapes": "^1.0.0",
+ "parse-entities": "^2.0.0",
+ "repeat-string": "^1.5.4",
+ "state-toggle": "^1.0.0",
+ "trim": "0.0.1",
+ "trim-trailing-lines": "^1.0.0",
+ "unherit": "^1.0.4",
+ "unist-util-remove-position": "^2.0.0",
+ "vfile-location": "^3.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "remark-squeeze-paragraphs": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz",
+ "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==",
+ "requires": {
+ "mdast-squeeze-paragraphs": "^4.0.0"
+ }
+ },
+ "renderkid": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/renderkid/-/renderkid-3.0.0.tgz",
+ "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==",
+ "requires": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^6.0.1"
+ },
+ "dependencies": {
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ },
+ "htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ }
+ }
+ },
+ "repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w=="
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
+ },
+ "require-like": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmmirror.com/require-like/-/require-like-0.1.2.tgz",
+ "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A=="
+ },
+ "requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
+ },
+ "resolve-pathname": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "retry": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmmirror.com/retry/-/retry-0.13.1.tgz",
+ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg=="
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rtl-detect": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/rtl-detect/-/rtl-detect-1.0.4.tgz",
+ "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ=="
+ },
+ "rtlcss": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz",
+ "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==",
+ "requires": {
+ "find-up": "^5.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.3.11",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ }
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "rxjs": {
+ "version": "7.5.6",
+ "resolved": "https://registry.npmmirror.com/rxjs/-/rxjs-7.5.6.tgz",
+ "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==",
+ "requires": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "scheduler": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
+ "requires": {
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "requires": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ }
+ },
+ "search-insights": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.6.0.tgz",
+ "integrity": "sha512-vU2/fJ+h/Mkm/DJOe+EaM5cafJv/1rRTZpGJTuFPf/Q5LjzgMDsqPdSaZsAe+GAWHHsfsu+rQSAn6c8IGtBEVw==",
+ "peer": true
+ },
+ "section-matter": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz",
+ "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==",
+ "requires": {
+ "extend-shallow": "^2.0.1",
+ "kind-of": "^6.0.0"
+ }
+ },
+ "select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg=="
+ },
+ "selfsigned": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/selfsigned/-/selfsigned-2.0.1.tgz",
+ "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==",
+ "requires": {
+ "node-forge": "^1"
+ }
+ },
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "semver-diff": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/semver-diff/-/semver-diff-3.1.1.tgz",
+ "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
+ "requires": {
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "send": {
+ "version": "0.18.0",
+ "resolved": "https://registry.npmmirror.com/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
+ "requires": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ }
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ }
+ }
+ },
+ "serialize-javascript": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmmirror.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "serve-handler": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmmirror.com/serve-handler/-/serve-handler-6.1.3.tgz",
+ "integrity": "sha512-FosMqFBNrLyeiIDvP1zgO6YoTzFYHxLDEIavhlmQ+knB2Z7l1t+kGLHkZIDN7UVWqQAmKI3D20A6F6jo3nDd4w==",
+ "requires": {
+ "bytes": "3.0.0",
+ "content-disposition": "0.5.2",
+ "fast-url-parser": "1.1.3",
+ "mime-types": "2.1.18",
+ "minimatch": "3.0.4",
+ "path-is-inside": "1.0.2",
+ "path-to-regexp": "2.2.1",
+ "range-parser": "1.2.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.0.4.tgz",
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "path-to-regexp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-2.2.1.tgz",
+ "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ=="
+ }
+ }
+ },
+ "serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmmirror.com/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "requires": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ=="
+ },
+ "http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmmirror.com/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "requires": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ }
+ },
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ },
+ "statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA=="
+ }
+ }
+ },
+ "serve-static": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
+ "requires": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ }
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA=="
+ },
+ "setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "requires": {
+ "kind-of": "^6.0.2"
+ }
+ },
+ "shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
+ "shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
+ },
+ "shell-quote": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmmirror.com/shell-quote/-/shell-quote-1.7.3.tgz",
+ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw=="
+ },
+ "shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmmirror.com/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "side-channel": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "get-intrinsic": "^1.0.2",
+ "object-inspect": "^1.9.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "sirv": {
+ "version": "1.0.19",
+ "resolved": "https://registry.npmmirror.com/sirv/-/sirv-1.0.19.tgz",
+ "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==",
+ "requires": {
+ "@polka/url": "^1.0.0-next.20",
+ "mrmime": "^1.0.0",
+ "totalist": "^1.0.0"
+ }
+ },
+ "sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmmirror.com/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg=="
+ },
+ "sitemap": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz",
+ "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==",
+ "requires": {
+ "@types/node": "^17.0.5",
+ "@types/sax": "^1.2.1",
+ "arg": "^5.0.0",
+ "sax": "^1.2.4"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "17.0.45",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz",
+ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw=="
+ }
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q=="
+ },
+ "sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmmirror.com/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "requires": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "sort-css-media-queries": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz",
+ "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA=="
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw=="
+ },
+ "source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmmirror.com/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "space-separated-tokens": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
+ "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA=="
+ },
+ "spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmmirror.com/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "requires": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ }
+ },
+ "spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "requires": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
+ },
+ "stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmmirror.com/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w=="
+ },
+ "state-toggle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
+ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ=="
+ },
+ "statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
+ },
+ "std-env": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmmirror.com/std-env/-/std-env-3.2.1.tgz",
+ "integrity": "sha512-D/uYFWkI/31OrnKmXZqGAGK5GbQRPp/BWA1nuITcc6ICblhhuQUPHS5E2GSCVS7Hwhf4ciq8qsATwBUxv+lI6w=="
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
+ }
+ },
+ "string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "requires": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "stringify-object": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
+ "requires": {
+ "get-own-enumerable-property-symbols": "^3.0.0",
+ "is-obj": "^1.0.1",
+ "is-regexp": "^1.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-bom-string": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz",
+ "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g=="
+ },
+ "strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="
+ },
+ "strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
+ },
+ "style-to-object": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz",
+ "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==",
+ "requires": {
+ "inline-style-parser": "0.1.1"
+ }
+ },
+ "stylehacks": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz",
+ "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==",
+ "requires": {
+ "browserslist": "^4.21.4",
+ "postcss-selector-parser": "^6.0.4"
+ }
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
+ },
+ "svg-parser": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmmirror.com/svg-parser/-/svg-parser-2.0.4.tgz",
+ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ=="
+ },
+ "svgo": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/svgo/-/svgo-2.8.0.tgz",
+ "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==",
+ "requires": {
+ "@trysound/sax": "0.2.0",
+ "commander": "^7.2.0",
+ "css-select": "^4.1.3",
+ "css-tree": "^1.1.3",
+ "csso": "^4.2.0",
+ "picocolors": "^1.0.0",
+ "stable": "^0.1.8"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ },
+ "css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmmirror.com/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "requires": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ }
+ },
+ "domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmmirror.com/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "requires": {
+ "domelementtype": "^2.2.0"
+ }
+ },
+ "domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmmirror.com/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "requires": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ }
+ },
+ "entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A=="
+ }
+ }
+ },
+ "tapable": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
+ },
+ "terser": {
+ "version": "5.15.0",
+ "resolved": "https://registry.npmmirror.com/terser/-/terser-5.15.0.tgz",
+ "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==",
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ }
+ }
+ },
+ "terser-webpack-plugin": {
+ "version": "5.3.5",
+ "resolved": "https://registry.npmmirror.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.5.tgz",
+ "integrity": "sha512-AOEDLDxD2zylUGf/wxHxklEkOe2/r+seuyOWujejFrIxHf11brA1/dWQNIgXa1c6/Wkxgu7zvv0JhOWfc2ELEA==",
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.14",
+ "jest-worker": "^27.4.5",
+ "schema-utils": "^3.1.1",
+ "serialize-javascript": "^6.0.0",
+ "terser": "^5.14.1"
+ },
+ "dependencies": {
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw=="
+ },
+ "thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
+ },
+ "tiny-invariant": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz",
+ "integrity": "sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg=="
+ },
+ "tiny-warning": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
+ "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
+ },
+ "to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
+ },
+ "to-readable-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz",
+ "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q=="
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
+ },
+ "totalist": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmmirror.com/totalist/-/totalist-1.1.0.tgz",
+ "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g=="
+ },
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
+ },
+ "trim": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz",
+ "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ=="
+ },
+ "trim-trailing-lines": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz",
+ "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ=="
+ },
+ "trough": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA=="
+ },
+ "tslib": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
+ },
+ "type-fest": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-2.19.0.tgz",
+ "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA=="
+ },
+ "type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmmirror.com/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "requires": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ }
+ }
+ },
+ "typedarray-to-buffer": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmmirror.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz",
+ "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==",
+ "requires": {
+ "is-typedarray": "^1.0.0"
+ }
+ },
+ "typescript": {
+ "version": "4.8.2",
+ "resolved": "https://registry.npmmirror.com/typescript/-/typescript-4.8.2.tgz",
+ "integrity": "sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==",
+ "peer": true
+ },
+ "ua-parser-js": {
+ "version": "1.0.35",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz",
+ "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA=="
+ },
+ "unherit": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
+ "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
+ "requires": {
+ "inherits": "^2.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw=="
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ=="
+ },
+ "unified": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz",
+ "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==",
+ "requires": {
+ "bail": "^1.0.0",
+ "extend": "^3.0.0",
+ "is-buffer": "^2.0.0",
+ "is-plain-obj": "^2.0.0",
+ "trough": "^1.0.0",
+ "vfile": "^4.0.0"
+ }
+ },
+ "unique-string": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/unique-string/-/unique-string-2.0.0.tgz",
+ "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
+ "requires": {
+ "crypto-random-string": "^2.0.0"
+ }
+ },
+ "unist-builder": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz",
+ "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw=="
+ },
+ "unist-util-generated": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz",
+ "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg=="
+ },
+ "unist-util-is": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz",
+ "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg=="
+ },
+ "unist-util-position": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz",
+ "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA=="
+ },
+ "unist-util-remove": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz",
+ "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==",
+ "requires": {
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "unist-util-remove-position": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz",
+ "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==",
+ "requires": {
+ "unist-util-visit": "^2.0.0"
+ }
+ },
+ "unist-util-stringify-position": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "requires": {
+ "@types/unist": "^2.0.2"
+ }
+ },
+ "unist-util-visit": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz",
+ "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0",
+ "unist-util-visit-parents": "^3.0.0"
+ }
+ },
+ "unist-util-visit-parents": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz",
+ "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-is": "^4.0.0"
+ }
+ },
+ "universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
+ },
+ "unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
+ },
+ "update-browserslist-db": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz",
+ "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==",
+ "requires": {
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
+ }
+ },
+ "update-notifier": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/update-notifier/-/update-notifier-5.1.0.tgz",
+ "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
+ "requires": {
+ "boxen": "^5.0.0",
+ "chalk": "^4.1.0",
+ "configstore": "^5.0.1",
+ "has-yarn": "^2.1.0",
+ "import-lazy": "^2.1.0",
+ "is-ci": "^2.0.0",
+ "is-installed-globally": "^0.4.0",
+ "is-npm": "^5.0.0",
+ "is-yarn-global": "^0.3.0",
+ "latest-version": "^5.1.0",
+ "pupa": "^2.1.1",
+ "semver": "^7.3.4",
+ "semver-diff": "^3.1.1",
+ "xdg-basedir": "^4.0.0"
+ },
+ "dependencies": {
+ "boxen": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmmirror.com/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "requires": {
+ "ansi-align": "^3.0.0",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.1.0",
+ "cli-boxes": "^2.2.1",
+ "string-width": "^4.2.2",
+ "type-fest": "^0.20.2",
+ "widest-line": "^3.1.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "cli-boxes": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmmirror.com/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw=="
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmmirror.com/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
+ },
+ "widest-line": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmmirror.com/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
+ "requires": {
+ "string-width": "^4.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ }
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmmirror.com/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "requires": {
+ "punycode": "^2.1.0"
+ },
+ "dependencies": {
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmmirror.com/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
+ }
+ }
+ },
+ "url-loader": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-4.1.1.tgz",
+ "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+ "requires": {
+ "loader-utils": "^2.0.0",
+ "mime-types": "^2.1.27",
+ "schema-utils": "^3.0.0"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmmirror.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "use-composed-ref": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz",
+ "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==",
+ "requires": {}
+ },
+ "use-isomorphic-layout-effect": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz",
+ "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==",
+ "requires": {}
+ },
+ "use-latest": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz",
+ "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==",
+ "requires": {
+ "use-isomorphic-layout-effect": "^1.1.1"
+ }
+ },
+ "use-sync-external-store": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz",
+ "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==",
+ "requires": {}
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA=="
+ },
+ "utility-types": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg=="
+ },
+ "utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ },
+ "value-equal": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
+ },
+ "vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
+ },
+ "vfile": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz",
+ "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "is-buffer": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0",
+ "vfile-message": "^2.0.0"
+ }
+ },
+ "vfile-location": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz",
+ "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA=="
+ },
+ "vfile-message": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
+ "requires": {
+ "@types/unist": "^2.0.0",
+ "unist-util-stringify-position": "^2.0.0"
+ }
+ },
+ "wait-on": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/wait-on/-/wait-on-6.0.1.tgz",
+ "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==",
+ "requires": {
+ "axios": "^0.25.0",
+ "joi": "^17.6.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.5",
+ "rxjs": "^7.5.4"
+ }
+ },
+ "watchpack": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmmirror.com/watchpack/-/watchpack-2.4.0.tgz",
+ "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==",
+ "requires": {
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.1.2"
+ }
+ },
+ "wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmmirror.com/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "requires": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "web-namespaces": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz",
+ "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw=="
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ },
+ "webpack": {
+ "version": "5.74.0",
+ "resolved": "https://registry.npmmirror.com/webpack/-/webpack-5.74.0.tgz",
+ "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==",
+ "requires": {
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
+ "@webassemblyjs/ast": "1.11.1",
+ "@webassemblyjs/wasm-edit": "1.11.1",
+ "@webassemblyjs/wasm-parser": "1.11.1",
+ "acorn": "^8.7.1",
+ "acorn-import-assertions": "^1.7.6",
+ "browserslist": "^4.14.5",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^5.10.0",
+ "es-module-lexer": "^0.9.0",
+ "eslint-scope": "5.1.1",
+ "events": "^3.2.0",
+ "glob-to-regexp": "^0.4.1",
+ "graceful-fs": "^4.2.9",
+ "json-parse-even-better-errors": "^2.3.1",
+ "loader-runner": "^4.2.0",
+ "mime-types": "^2.1.27",
+ "neo-async": "^2.6.2",
+ "schema-utils": "^3.1.0",
+ "tapable": "^2.1.1",
+ "terser-webpack-plugin": "^5.1.3",
+ "watchpack": "^2.4.0",
+ "webpack-sources": "^3.2.3"
+ },
+ "dependencies": {
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "schema-utils": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.1.1.tgz",
+ "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
+ "requires": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ }
+ }
+ }
+ },
+ "webpack-bundle-analyzer": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmmirror.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz",
+ "integrity": "sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==",
+ "requires": {
+ "acorn": "^8.0.4",
+ "acorn-walk": "^8.0.0",
+ "chalk": "^4.1.0",
+ "commander": "^7.2.0",
+ "gzip-size": "^6.0.0",
+ "lodash": "^4.17.20",
+ "opener": "^1.5.2",
+ "sirv": "^1.0.7",
+ "ws": "^7.3.1"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmmirror.com/commander/-/commander-7.2.0.tgz",
+ "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="
+ }
+ }
+ },
+ "webpack-dev-middleware": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz",
+ "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==",
+ "requires": {
+ "colorette": "^2.0.10",
+ "memfs": "^3.4.3",
+ "mime-types": "^2.1.31",
+ "range-parser": "^1.2.1",
+ "schema-utils": "^4.0.0"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
+ "range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ }
+ }
+ },
+ "webpack-dev-server": {
+ "version": "4.10.0",
+ "resolved": "https://registry.npmmirror.com/webpack-dev-server/-/webpack-dev-server-4.10.0.tgz",
+ "integrity": "sha512-7dezwAs+k6yXVFZ+MaL8VnE+APobiO3zvpp3rBHe/HmWQ+avwh0Q3d0xxacOiBybZZ3syTZw9HXzpa3YNbAZDQ==",
+ "requires": {
+ "@types/bonjour": "^3.5.9",
+ "@types/connect-history-api-fallback": "^1.3.5",
+ "@types/express": "^4.17.13",
+ "@types/serve-index": "^1.9.1",
+ "@types/serve-static": "^1.13.10",
+ "@types/sockjs": "^0.3.33",
+ "@types/ws": "^8.5.1",
+ "ansi-html-community": "^0.0.8",
+ "bonjour-service": "^1.0.11",
+ "chokidar": "^3.5.3",
+ "colorette": "^2.0.10",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^2.0.0",
+ "default-gateway": "^6.0.3",
+ "express": "^4.17.3",
+ "graceful-fs": "^4.2.6",
+ "html-entities": "^2.3.2",
+ "http-proxy-middleware": "^2.0.3",
+ "ipaddr.js": "^2.0.1",
+ "open": "^8.0.9",
+ "p-retry": "^4.5.0",
+ "rimraf": "^3.0.2",
+ "schema-utils": "^4.0.0",
+ "selfsigned": "^2.0.1",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.24",
+ "spdy": "^4.0.2",
+ "webpack-dev-middleware": "^5.3.1",
+ "ws": "^8.4.2"
+ },
+ "dependencies": {
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ajv-keywords": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
+ },
+ "schema-utils": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
+ "requires": {
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
+ }
+ },
+ "ws": {
+ "version": "8.8.1",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-8.8.1.tgz",
+ "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==",
+ "requires": {}
+ }
+ }
+ },
+ "webpack-merge": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmmirror.com/webpack-merge/-/webpack-merge-5.8.0.tgz",
+ "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==",
+ "requires": {
+ "clone-deep": "^4.0.1",
+ "wildcard": "^2.0.0"
+ }
+ },
+ "webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmmirror.com/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
+ },
+ "webpackbar": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmmirror.com/webpackbar/-/webpackbar-5.0.2.tgz",
+ "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==",
+ "requires": {
+ "chalk": "^4.1.0",
+ "consola": "^2.15.3",
+ "pretty-time": "^1.1.0",
+ "std-env": "^3.0.1"
+ }
+ },
+ "websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmmirror.com/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "requires": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "widest-line": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmmirror.com/widest-line/-/widest-line-4.0.1.tgz",
+ "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==",
+ "requires": {
+ "string-width": "^5.0.1"
+ }
+ },
+ "wildcard": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.0.tgz",
+ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw=="
+ },
+ "wrap-ansi": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.0.1.tgz",
+ "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==",
+ "requires": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA=="
+ },
+ "ansi-styles": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.1.0.tgz",
+ "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ=="
+ },
+ "strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "requires": {
+ "ansi-regex": "^6.0.1"
+ }
+ }
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
+ },
+ "write-file-atomic": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz",
+ "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==",
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "is-typedarray": "^1.0.0",
+ "signal-exit": "^3.0.2",
+ "typedarray-to-buffer": "^3.1.5"
+ }
+ },
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmmirror.com/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "requires": {}
+ },
+ "xdg-basedir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
+ "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q=="
+ },
+ "xml-js": {
+ "version": "1.6.11",
+ "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz",
+ "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==",
+ "requires": {
+ "sax": "^1.2.4"
+ }
+ },
+ "xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmmirror.com/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
+ },
+ "yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
+ },
+ "zwitch": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz",
+ "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..a30f169a
--- /dev/null
+++ b/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "cskefu-docs",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "docusaurus": "docusaurus",
+ "start": "docusaurus start",
+ "build": "docusaurus build",
+ "swizzle": "docusaurus swizzle",
+ "deploy": "docusaurus deploy",
+ "clear": "docusaurus clear",
+ "serve": "docusaurus serve",
+ "write-translations": "docusaurus write-translations",
+ "write-heading-ids": "docusaurus write-heading-ids"
+ },
+ "dependencies": {
+ "@docusaurus/core": "2.4.1",
+ "@docusaurus/preset-classic": "2.4.1",
+ "@mdx-js/react": "^1.6.22",
+ "clsx": "^1.2.1",
+ "prism-react-renderer": "^1.3.5",
+ "react": "^17.0.2",
+ "react-dom": "^17.0.2"
+ },
+ "devDependencies": {
+ "@docusaurus/module-type-aliases": "2.4.1"
+ },
+ "browserslist": {
+ "production": [
+ ">0.5%",
+ "not dead",
+ "not op_mini all"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ },
+ "engines": {
+ "node": ">=16.14"
+ }
+}
diff --git a/sidebars.js b/sidebars.js
new file mode 100644
index 00000000..33c0b396
--- /dev/null
+++ b/sidebars.js
@@ -0,0 +1,32 @@
+/**
+ * Creating a sidebar enables you to:
+ - create an ordered group of docs
+ - render a sidebar for each doc of that group
+ - provide next/previous navigation
+
+ The sidebars can be generated from the filesystem, or explicitly defined here.
+
+ Create as many sidebars as you want.
+ */
+
+// @ts-check
+
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const sidebars = {
+ // By default, Docusaurus generates a sidebar from the docs folder structure
+ // tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
+ tutorialSidebar: [],
+
+ // But you can create a sidebar manually
+ /*
+ tutorialSidebar: [
+ {
+ type: 'category',
+ label: 'Tutorial',
+ items: ['hello'],
+ },
+ ],
+ */
+};
+
+module.exports = sidebars;
diff --git a/src/components/HomepageFeatures/index.js b/src/components/HomepageFeatures/index.js
new file mode 100644
index 00000000..e609663d
--- /dev/null
+++ b/src/components/HomepageFeatures/index.js
@@ -0,0 +1,61 @@
+import React from 'react';
+import clsx from 'clsx';
+import styles from './styles.module.css';
+
+const FeatureList = [
+ {
+ title: '功能强大',
+ Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
+ description: (
+ <>
+ 春松客服是拥有坐席管理、渠道管理、机器人客服、数据分析、CRM 等功能于一身的新一代客服系统。
+ >
+ ),
+ },
+ {
+ title: '安装简单',
+ Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
+ description: (
+ <>
+ 春松客服适应各种部署方式,支持云原生一键部署,提供 Docker 和 Docker compose 作为默认安装方案,适合体验、开发、测试和上线春松客服。
+ >
+ ),
+ },
+ {
+ title: '开源软件',
+ Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
+ description: (
+ <>
+ 春松客服使用的开源许可协议是 春松许可证 v1.0,春松客服目前坐拥中文开源客服系统之中最多的 Stars, 最多的下载次数,最多的用户反馈。
+ >
+ ),
+ },
+];
+
+function Feature({Svg, title, description}) {
+ return (
+
+
+
+
+
+
{title}
+
{description}
+
+
+ );
+}
+
+export default function HomepageFeatures() {
+ return (
+
+
+
+ {FeatureList.map((props, idx) => (
+
+ ))}
+
+
+
+ );
+}
diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css
new file mode 100644
index 00000000..b248eb2e
--- /dev/null
+++ b/src/components/HomepageFeatures/styles.module.css
@@ -0,0 +1,11 @@
+.features {
+ display: flex;
+ align-items: center;
+ padding: 2rem 0;
+ width: 100%;
+}
+
+.featureSvg {
+ height: 200px;
+ width: 200px;
+}
diff --git a/src/css/custom.css b/src/css/custom.css
new file mode 100644
index 00000000..2bc6a4cf
--- /dev/null
+++ b/src/css/custom.css
@@ -0,0 +1,30 @@
+/**
+ * Any CSS included here will be global. The classic template
+ * bundles Infima by default. Infima is a CSS framework designed to
+ * work well for content-centric websites.
+ */
+
+/* You can override the default Infima variables here. */
+:root {
+ --ifm-color-primary: #2e8555;
+ --ifm-color-primary-dark: #29784c;
+ --ifm-color-primary-darker: #277148;
+ --ifm-color-primary-darkest: #205d3b;
+ --ifm-color-primary-light: #33925d;
+ --ifm-color-primary-lighter: #359962;
+ --ifm-color-primary-lightest: #3cad6e;
+ --ifm-code-font-size: 95%;
+ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
+}
+
+/* For readability concerns, you should choose a lighter palette in dark mode. */
+[data-theme='dark'] {
+ --ifm-color-primary: #25c2a0;
+ --ifm-color-primary-dark: #21af90;
+ --ifm-color-primary-darker: #1fa588;
+ --ifm-color-primary-darkest: #1a8870;
+ --ifm-color-primary-light: #29d5b0;
+ --ifm-color-primary-lighter: #32d8b4;
+ --ifm-color-primary-lightest: #4fddbf;
+ --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
+}
diff --git a/src/pages/index.js b/src/pages/index.js
new file mode 100644
index 00000000..03ec4bd5
--- /dev/null
+++ b/src/pages/index.js
@@ -0,0 +1,41 @@
+import React from 'react';
+import clsx from 'clsx';
+import Link from '@docusaurus/Link';
+import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
+import Layout from '@theme/Layout';
+import HomepageFeatures from '@site/src/components/HomepageFeatures';
+
+import styles from './index.module.css';
+
+function HomepageHeader() {
+ const {siteConfig} = useDocusaurusContext();
+ return (
+
+
+
{siteConfig.title}
+
{siteConfig.tagline}
+
+
+ 快速部署
+
+
+
+
+ );
+}
+
+export default function Home() {
+ const {siteConfig} = useDocusaurusContext();
+ return (
+
+
+
+
+
+
+ );
+}
diff --git a/src/pages/index.module.css b/src/pages/index.module.css
new file mode 100644
index 00000000..9f71a5da
--- /dev/null
+++ b/src/pages/index.module.css
@@ -0,0 +1,23 @@
+/**
+ * CSS files with the .module.css suffix will be treated as CSS modules
+ * and scoped locally.
+ */
+
+.heroBanner {
+ padding: 4rem 0;
+ text-align: center;
+ position: relative;
+ overflow: hidden;
+}
+
+@media screen and (max-width: 996px) {
+ .heroBanner {
+ padding: 2rem;
+ }
+}
+
+.buttons {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
diff --git a/src/pages/markdown-page.md b/src/pages/markdown-page.md
new file mode 100644
index 00000000..9756c5b6
--- /dev/null
+++ b/src/pages/markdown-page.md
@@ -0,0 +1,7 @@
+---
+title: Markdown page example
+---
+
+# Markdown page example
+
+You don't need React to write simple standalone pages.
diff --git a/static/.nojekyll b/static/.nojekyll
new file mode 100644
index 00000000..e69de29b
diff --git a/static/img/favicon.ico b/static/img/favicon.ico
new file mode 100644
index 00000000..d787988f
Binary files /dev/null and b/static/img/favicon.ico differ
diff --git a/static/img/logo.png b/static/img/logo.png
new file mode 100644
index 00000000..b3b00e6d
Binary files /dev/null and b/static/img/logo.png differ
diff --git a/static/img/products/Pasted image 20230913134502.png b/static/img/products/Pasted image 20230913134502.png
new file mode 100644
index 00000000..f54b7d60
Binary files /dev/null and b/static/img/products/Pasted image 20230913134502.png differ
diff --git a/static/img/products/Pasted image 20230913134529.png b/static/img/products/Pasted image 20230913134529.png
new file mode 100644
index 00000000..a8fec5b4
Binary files /dev/null and b/static/img/products/Pasted image 20230913134529.png differ
diff --git a/static/img/products/cskefu-pr-workflow.png b/static/img/products/cskefu-pr-workflow.png
new file mode 100644
index 00000000..0c7535c1
Binary files /dev/null and b/static/img/products/cskefu-pr-workflow.png differ
diff --git a/static/img/products/cskfdjt19_product_store_qr.jpg b/static/img/products/cskfdjt19_product_store_qr.jpg
new file mode 100644
index 00000000..f2978c23
Binary files /dev/null and b/static/img/products/cskfdjt19_product_store_qr.jpg differ
diff --git a/static/img/products/fish.txt b/static/img/products/fish.txt
new file mode 100644
index 00000000..e69de29b
diff --git a/static/img/products/screenshot_20230819144222.png b/static/img/products/screenshot_20230819144222.png
new file mode 100644
index 00000000..0b2ea316
Binary files /dev/null and b/static/img/products/screenshot_20230819144222.png differ
diff --git a/static/img/products/screenshot_20230819145915.png b/static/img/products/screenshot_20230819145915.png
new file mode 100644
index 00000000..7e5459de
Binary files /dev/null and b/static/img/products/screenshot_20230819145915.png differ
diff --git a/static/img/products/screenshot_20230819150006.png b/static/img/products/screenshot_20230819150006.png
new file mode 100644
index 00000000..64fd5440
Binary files /dev/null and b/static/img/products/screenshot_20230819150006.png differ
diff --git a/static/img/products/screenshot_20230819150059.png b/static/img/products/screenshot_20230819150059.png
new file mode 100644
index 00000000..0961555c
Binary files /dev/null and b/static/img/products/screenshot_20230819150059.png differ
diff --git a/static/img/products/screenshot_20230819154050.png b/static/img/products/screenshot_20230819154050.png
new file mode 100644
index 00000000..bdc9c294
Binary files /dev/null and b/static/img/products/screenshot_20230819154050.png differ
diff --git a/static/img/products/screenshot_20230819154121 1.png b/static/img/products/screenshot_20230819154121 1.png
new file mode 100644
index 00000000..b92c4b6e
Binary files /dev/null and b/static/img/products/screenshot_20230819154121 1.png differ
diff --git a/static/img/products/screenshot_20230819154121.png b/static/img/products/screenshot_20230819154121.png
new file mode 100644
index 00000000..b92c4b6e
Binary files /dev/null and b/static/img/products/screenshot_20230819154121.png differ
diff --git a/static/img/products/screenshot_20230819154635.png b/static/img/products/screenshot_20230819154635.png
new file mode 100644
index 00000000..6bfaf63c
Binary files /dev/null and b/static/img/products/screenshot_20230819154635.png differ
diff --git a/static/img/products/screenshot_20230819170111.png b/static/img/products/screenshot_20230819170111.png
new file mode 100644
index 00000000..c58e1d66
Binary files /dev/null and b/static/img/products/screenshot_20230819170111.png differ
diff --git a/static/img/products/screenshot_20230819171028.png b/static/img/products/screenshot_20230819171028.png
new file mode 100644
index 00000000..d13d5f87
Binary files /dev/null and b/static/img/products/screenshot_20230819171028.png differ
diff --git a/static/img/products/screenshot_20230819171137.png b/static/img/products/screenshot_20230819171137.png
new file mode 100644
index 00000000..7ae24070
Binary files /dev/null and b/static/img/products/screenshot_20230819171137.png differ
diff --git a/static/img/products/screenshot_20230819171254.png b/static/img/products/screenshot_20230819171254.png
new file mode 100644
index 00000000..dc876955
Binary files /dev/null and b/static/img/products/screenshot_20230819171254.png differ
diff --git a/static/img/products/screenshot_20230819172232.png b/static/img/products/screenshot_20230819172232.png
new file mode 100644
index 00000000..463cf5fd
Binary files /dev/null and b/static/img/products/screenshot_20230819172232.png differ
diff --git a/static/img/products/screenshot_20230819172301.png b/static/img/products/screenshot_20230819172301.png
new file mode 100644
index 00000000..89d96a00
Binary files /dev/null and b/static/img/products/screenshot_20230819172301.png differ
diff --git a/static/img/products/screenshot_20230819172636.png b/static/img/products/screenshot_20230819172636.png
new file mode 100644
index 00000000..43042b00
Binary files /dev/null and b/static/img/products/screenshot_20230819172636.png differ
diff --git a/static/img/products/screenshot_20230819172750.png b/static/img/products/screenshot_20230819172750.png
new file mode 100644
index 00000000..6d7d9e09
Binary files /dev/null and b/static/img/products/screenshot_20230819172750.png differ
diff --git a/static/img/products/screenshot_20230819173102.png b/static/img/products/screenshot_20230819173102.png
new file mode 100644
index 00000000..271c449c
Binary files /dev/null and b/static/img/products/screenshot_20230819173102.png differ
diff --git a/static/img/products/screenshot_20230819173200.png b/static/img/products/screenshot_20230819173200.png
new file mode 100644
index 00000000..d1323148
Binary files /dev/null and b/static/img/products/screenshot_20230819173200.png differ
diff --git a/static/img/products/screenshot_20230819173250.png b/static/img/products/screenshot_20230819173250.png
new file mode 100644
index 00000000..67313af1
Binary files /dev/null and b/static/img/products/screenshot_20230819173250.png differ
diff --git a/static/img/products/screenshot_20230819173357.png b/static/img/products/screenshot_20230819173357.png
new file mode 100644
index 00000000..ad0f4386
Binary files /dev/null and b/static/img/products/screenshot_20230819173357.png differ
diff --git a/static/img/products/screenshot_20230819173544.png b/static/img/products/screenshot_20230819173544.png
new file mode 100644
index 00000000..21d588e9
Binary files /dev/null and b/static/img/products/screenshot_20230819173544.png differ
diff --git a/static/img/products/screenshot_20230819174201.png b/static/img/products/screenshot_20230819174201.png
new file mode 100644
index 00000000..e851645d
Binary files /dev/null and b/static/img/products/screenshot_20230819174201.png differ
diff --git a/static/img/products/screenshot_20230819174401.png b/static/img/products/screenshot_20230819174401.png
new file mode 100644
index 00000000..7af6c2b4
Binary files /dev/null and b/static/img/products/screenshot_20230819174401.png differ
diff --git a/static/img/products/screenshot_20230819174514.png b/static/img/products/screenshot_20230819174514.png
new file mode 100644
index 00000000..d1ce939f
Binary files /dev/null and b/static/img/products/screenshot_20230819174514.png differ
diff --git a/static/img/products/screenshot_20230828081950.png b/static/img/products/screenshot_20230828081950.png
new file mode 100644
index 00000000..26a5ae46
Binary files /dev/null and b/static/img/products/screenshot_20230828081950.png differ
diff --git a/static/img/products/screenshot_20231024100318.png b/static/img/products/screenshot_20231024100318.png
new file mode 100644
index 00000000..e64b7b61
Binary files /dev/null and b/static/img/products/screenshot_20231024100318.png differ
diff --git a/static/img/products/screenshot_20231027141906.png b/static/img/products/screenshot_20231027141906.png
new file mode 100644
index 00000000..f31be70d
Binary files /dev/null and b/static/img/products/screenshot_20231027141906.png differ
diff --git a/static/img/products/screenshot_20231027142234.png b/static/img/products/screenshot_20231027142234.png
new file mode 100644
index 00000000..01ad5098
Binary files /dev/null and b/static/img/products/screenshot_20231027142234.png differ
diff --git a/static/img/products/screenshot_20231027142324.png b/static/img/products/screenshot_20231027142324.png
new file mode 100644
index 00000000..ecc5795e
Binary files /dev/null and b/static/img/products/screenshot_20231027142324.png differ
diff --git a/static/img/undraw_docusaurus_mountain.svg b/static/img/undraw_docusaurus_mountain.svg
new file mode 100644
index 00000000..af961c49
--- /dev/null
+++ b/static/img/undraw_docusaurus_mountain.svg
@@ -0,0 +1,171 @@
+
diff --git a/static/img/undraw_docusaurus_react.svg b/static/img/undraw_docusaurus_react.svg
new file mode 100644
index 00000000..94b5cf08
--- /dev/null
+++ b/static/img/undraw_docusaurus_react.svg
@@ -0,0 +1,170 @@
+
diff --git a/static/img/undraw_docusaurus_tree.svg b/static/img/undraw_docusaurus_tree.svg
new file mode 100644
index 00000000..d9161d33
--- /dev/null
+++ b/static/img/undraw_docusaurus_tree.svg
@@ -0,0 +1,40 @@
+
diff --git a/static/licenses/chunsong1.0.svg b/static/licenses/chunsong1.0.svg
new file mode 100644
index 00000000..eaf6812f
--- /dev/null
+++ b/static/licenses/chunsong1.0.svg
@@ -0,0 +1,175 @@
+
+
diff --git a/static/licenses/v1.diff-apache2.0.docx b/static/licenses/v1.diff-apache2.0.docx
new file mode 100644
index 00000000..6904dd5b
Binary files /dev/null and b/static/licenses/v1.diff-apache2.0.docx differ
diff --git a/static/licenses/v1.html b/static/licenses/v1.html
new file mode 100644
index 00000000..404e59cb
--- /dev/null
+++ b/static/licenses/v1.html
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Version 1.0, June 2023
+https://docs.cskefu.com/licenses/v1.html
+
+用于使用、重生成和分发的法律条款和条件。
+
+1.定义
+
+"许可证"是指根据本文档第1到第9部分关于使用、重生成和分发的术语和条件。
+"许可证颁发者"是指版权所有者或者由版权所有者批准的授权许可证的实体。
+"法律实体"是指实施实体和进行控制的所有其它实体受该实体控制,或者受该实体集中控制。根据此定义,"控制"是指(i)让无论是否签订协议的上述实体,进行指导或管理的直接权利或间接权利,或者(ii)拥有百分之五十(50%)或以上已发行股票的所有者,或者(iii)上述实体的实权所有者。
+"用户"(或"用户的")是指行使本许可证所授予权限的个人或法律实体。
+"源程序"形式是指对包含但不限制软件源代码、文档源程序和配置文件进行修改的首选形式。
+"目标"形式是指对源程序形式进行机械转换或翻译的任何形式,包括但不限于对编译的目标代码,生成的文件以及转换为其它媒体类型。
+"作品"是指根据本许可证所制作的源程序形式或目标形式的著作,在著作中包含的或附加的版权通知(在下面附录中提供了一个示例)。
+"衍生作品"是指基于作品(或从作品衍生而来)的源程序形式或目标形式的任何作品,以及编辑修订、注释、详细描述或其它修订等构成原创著作作品的整体。根据本许可证,衍生作品不得包括与作品及其衍生作品分离之作品,或仅与作品及其衍生作品的接口相链接(或按名称结合)之作品。
+"证书服务器"是指对作品及衍生作品中设定的付费资源或软件功能进行管理的网络服务,完成订单管理、支付、订阅和授权证书校验等。
+"贡献"是指任何著作作品,包括作品的原始版本和对该作品或衍生作品所做的任何修订或补充,意在提交给许可证颁发者以让版权所有者或代表版权所有者的授权个人或法律实体包含在其作品中。根据此定义,"提交"一词表示发送给许可证颁发者或其代表人,任何电子的、口头的或书面的交流信息形式,包括但不限于在由许可证颁发者或者代表其管理的电子邮件清单、源代码控制系统、以及发布跟踪系统上为讨论和提高作品的交流,但不包括由版权所有者以书面形式明显标注或指定为"非贡献"的交流活动。
+"贡献者"是指许可证颁发者和代表从许可证颁发者接受之贡献的并随后包含在作品之贡献中的任何个人或法律实体。
+
+2.版权许可证的授予。根据本许可证的条款,每个贡献者授予用户永久性的、全球性的、非专有性的、无版权费的、不可撤销的版权许可证以源程序形式或目标形式复制、准备衍生作品、公开显示、公开执行、授予分许可证、以及分发作品和这样的衍生作品。
+
+3.专利许可证的授予。根据本许可证的条款,每个贡献者授予用户永久性的、全球性的、非专有性的、无版权费的、不可撤销的(除在本部分进行说明)专利许可证对作品进行制作、让人制作、使用、提供销售、销售、进口和其它转让,且这样的许可证仅适用于在所递交作品的贡献中因可由单一的或多个这样的贡献者授予而必须侵犯的申请专利。如果用户对作品的许可证颁发者或作品中所涉及贡献的贡献者所关联的实体提出因直接性或贡献性专利侵权而提起专利法律诉讼(包括交互诉讼请求或反索赔),那么根据本许可证,授予用户针对作品的任何专利许可证将在提起上述诉讼之日起终止。
+
+4.重新分发。用户可在任何媒介中复制和分发作品或衍生作品之副本,无论是否修订,还是以源程序形式或目标形式,条件是用户需满足下列条款:
+
+(a) 用户必须为作品或衍生作品的任何其他接收者提供本许可证的副本;并且
+(b) 用户必须让任何修改过的文件附带明显的通知,声明用户已更改文件;并且
+(c) 用户必须从作品的源程序形式中保留衍生作品源程序形式的用户所分发的所有版权、专利、商标和属性通知,但不包括不属于衍生作品任何部分的类似通知;并且
+(d) 用户不能改变源代码、目标、作品或衍生作品中涉及的付费资源的购买和计费行为,相关行为包括但不限于连接证书服务器、订阅管理、支付交互界面和证书校验等,例如改变购买和计费涉及的源码、遮盖或绕过购买链接、伪造证书和设置欺骗证书服务器等造成妨碍购买和计费,均属于违反本条款;并且
+(e) 如果作品将"通知"文本文件包括为其分发作品的一部分,那么用户分发的任何衍生作品中须至少在下列地方之一包括(在这样的通知文件中所包含的属性通知的可读副本,但不包括那些不属于衍生作品任何部分的通知):在作为衍生作品一部分而分发的通知文本文件中;如果与衍生作品一起提供则在源程序形式或文件中;或者通常作为第三方通知出现的时候和地方,在衍生作品中产生的画面中。通知文件的内容仅供信息提供,并未对许可证进行修改。用户可在其分发的衍生作品中在作品的通知文本后或作为附录添加自己的属性通知,条件是附加的属性通知不得构成修改本许可证。
+
+用户可以为自身所做出的修订添加自己的版权声明并可对自身所做出修订内容或为这样的衍生作品作为整体的使用、复制或分发提供附加或不同的条款,条件是用户对作品的使用、复制和分发必须符合本许可证中声明的条款。
+
+
+5.贡献的提交。除非用户明确声明,在作品中由用户向许可证颁发者的提交若要包含在贡献中,必须在无任何附加条款下符合本许可证的条款。尽管上面如此规定,执行许可证颁发者有关贡献的条款时,任何情况下均不得替代或修改任何单独许可证协议的条款。
+
+6.商标。本许可证并未授予用户使用许可证颁发者的商号、商标、服务标记或产品名称,除非将这些名称用于合理性和惯例性描述作品起源和复制通知文件的内容时。
+
+7.保证否认条款。除非因适用法律需要或书面同意,许可证颁发者以"按原样"基础提供作品(并且每个贡献者提供其贡献),无任何明示的或暗示的保证或条件,包括但不限于关于所有权、不侵权、商品适销性、或适用性的保证或条件。用户仅对使用或重新分发作品的正确性负责,并需承担根据本许可证行使权限时的任何风险。
+
+8.责任限制条款。在任何情况下并根据任何法律,无论是因侵权(包括过失)或根据合同,还是其它原因,除非根据适用法律需要(例如故意行为和重大过失行为)或经书面同意,即使贡献者事先已被告知发生损害的可能性,任何贡献者不就用户因使用本许可证或不能使用或无法使用作品(包括但不限于商誉损失、停工、计算机失效或故障,或任何商业损坏或损失)而造成的损失,包括直接的、非直接的、特殊的、意外的或间接的字符损坏而负责。
+
+9.接受保证或附加责任。重新分发作品或及其衍生作品时,用户可选择提供或为符合本许可证承担之支持、担保、赔偿或其它职责义务和/或权利而收取费用。但是,在承担上述义务时,用户只可代表用户本身和用户本身责任来执行,无需代表任何其它贡献者,并且用户仅可保证、防护并保持每个贡献者不受任何因此而产生的责任或对因用户自身承担这样的保证或附加责任而对这样的贡献者所提出的索赔。
+
+条款结束。
+
+附录:如何向用户作品中应用春松许可证 v1.0
+
+若要向用户作品应用春松许可证 v1.0,请附加下列样本通知,将括号"[]"中的字段以用户自身的区分信息来替换(但不包括括号)。文本必须以文件格式适当的注释句法包含在其中。另外建议将文件名或类别名以及目的说明包含在相同的"打印页"上作为版权通知,以更加容易的区分出第三方档案。
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Chunsong Public License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ https://docs.cskefu.com/licenses/v1.html
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
+
+
+
+Version 1.0, June 2023
+https://docs.cskefu.com/licenses/v1.html
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction,
+and distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by
+the copyright owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all
+other entities that control, are controlled by, or are under common
+control with that entity. For the purposes of this definition,
+"control" means (i) the power, direct or indirect, to cause the
+direction or management of such entity, whether by contract or
+otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity
+exercising permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications,
+including but not limited to software source code, documentation
+source, and configuration files.
+
+"Object" form shall mean any form resulting from mechanical
+transformation or translation of a Source form, including but
+not limited to compiled object code, generated documentation,
+and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or
+Object form, made available under the License, as indicated by a
+copyright notice that is included in or attached to the work
+(an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object
+form, that is based on (or derived from) the Work and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship. For the purposes
+of this License, Derivative Works shall not include works that remain
+separable from, or merely link (or bind by name) to the interfaces of,
+the Work and Derivative Works thereof.
+
+"License Server" shall mean network service(s) to support the
+management of orders, subscriptions, licenses or quota in the
+Work or Derivative Works, such supports including but not limit to
+placing orders , paying orders, license validations.
+
+"Contribution" shall mean any work of authorship, including
+the original version of the Work and any modifications or additions
+to that Work or Derivative Works thereof, that is intentionally
+submitted to Licensor for inclusion in the Work by the copyright owner
+or by an individual or Legal Entity authorized to submit on behalf of
+the copyright owner. For the purposes of this definition, "submitted"
+means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems,
+and issue tracking systems that are managed by, or on behalf of, the
+Licensor for the purpose of discussing and improving the Work, but
+excluding communication that is conspicuously marked or otherwise
+designated in writing by the copyright owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity
+on behalf of whom a Contribution has been received by Licensor and
+subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, royalty-free, irrevocable
+copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the
+Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+this License, each Contributor hereby grants to You a perpetual,
+worldwide, non-exclusive, royalty-free, irrevocable
+(except as stated in this section) patent license to make, have made,
+use, offer to sell, sell, import, and otherwise transfer the Work,
+where such license applies only to those patent claims licensable
+by such Contributor that are necessarily infringed by their
+Contribution(s) alone or by combination of their Contribution(s)
+with the Work to which such Contribution(s) was submitted. If You
+institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work
+or a Contribution incorporated within the Work constitutes direct
+or contributory patent infringement, then any patent licenses
+granted to You under this License for that Work shall terminate
+as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+Work or Derivative Works thereof in any medium, with or without
+modifications, and in Source or Object form, provided that You
+meet the following conditions:
+
+(a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+(b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+(c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+(d) You must not modify the management behaviors of order(s) ,
+ license(s), subscription(s) and quota that including but not
+ limit to placing or purchasing order(s), checking the capacity
+ of quota, connecting to License Server for validation.
+ Any change on Source, Object, Work and Derivative Works
+ that blocks the workflows of placing order, purchasing, quota
+ checking and billing policy is a violation of this condition; and
+
+(e) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+You may add Your own copyright statement to Your modifications and
+may provide additional or different license terms and conditions
+for use, reproduction, or distribution of Your modifications, or
+for any such Derivative Works as a whole, provided Your use,
+reproduction, and distribution of the Work otherwise complies with
+the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+any Contribution intentionally submitted for inclusion in the Work
+by You to the Licensor shall be under the terms and conditions of
+this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify
+the terms of any separate license agreement you may have executed
+with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+names, trademarks, service marks, or product names of the Licensor,
+except as required for reasonable and customary use in describing the
+origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+agreed to in writing, Licensor provides the Work (and each
+Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+implied, including, without limitation, any warranties or conditions
+of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+PARTICULAR PURPOSE. You are solely responsible for determining the
+appropriateness of using or redistributing the Work and assume any
+risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+whether in tort (including negligence), contract, or otherwise,
+unless required by applicable law (such as deliberate and grossly
+negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special,
+incidental, or consequential damages of any character arising as a
+result of this License or out of the use or inability to use the
+Work (including but not limited to damages for loss of goodwill,
+work stoppage, computer failure or malfunction, or any and all
+other commercial damages or losses), even if such Contributor
+has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+the Work or Derivative Works thereof, You may choose to offer,
+and charge a fee for, acceptance of support, warranty, indemnity,
+or other liability obligations and/or rights consistent with this
+License. However, in accepting such obligations, You may act only
+on Your own behalf and on Your sole responsibility, not on behalf
+of any other Contributor, and only if You agree to indemnify,
+defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason
+of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+To apply the Chunsong Public License to your work, attach the following
+boilerplate notice, with the fields enclosed by brackets "[]"
+replaced with your own identifying information. (Don't include
+the brackets!) The text should be enclosed in the appropriate
+comment syntax for the file format. We also recommend that a
+file or class name and description of purpose be included on the
+same "printed page" as the copyright notice for easier
+identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Chunsong Public License, Version 1.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ https://docs.cskefu.com/licenses/v1.html
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
\ No newline at end of file
diff --git a/static/pdf/spring-framework-docs-v5.3.24.pdf b/static/pdf/spring-framework-docs-v5.3.24.pdf
new file mode 100644
index 00000000..5b8cd20c
Binary files /dev/null and b/static/pdf/spring-framework-docs-v5.3.24.pdf differ
diff --git a/versioned_docs/version-v7/accounting.md b/versioned_docs/version-v7/accounting.md
new file mode 100644
index 00000000..d5e2f134
--- /dev/null
+++ b/versioned_docs/version-v7/accounting.md
@@ -0,0 +1,178 @@
+---
+sidebar_position: 5
+---
+
+# 账号和权限
+
+## 系统管理员
+
+在春松客服里,系统管理员是具备管理所辖组织内坐席、权限、角色、联系人和坐席监控等资源的管理员,系统管理员分为两种类型:**超级管理员**和**普通管理员**,普通管理员也简称“管理员”。
+
+超级管理员为春松客服系统设置的,初始化一个春松客服实例后,默认超级管理员用户名为 `admin`,密码为 `admin1234`,并且有且只有一个,IT 人员在初始化搭建的春松客服实例的第一件事就是更改超级管理员账号的密码,以确保系统安全。超级管理员具备更新系统所有属性的能力,读写数据,是春松客服内权限最大的用户。
+
+安装启动系统,进入春松客服后台界面,输入初始化的超级管理员账号密码(用户名: `admin`, 密码: `admin1234`),点击立即登录。
+
+![登录界面](images/products/cosin/Picture1.png)
+
+**超级管理员同时维护者春松客服的组织机构的高层级,组织机构是树形结构,默认情况下没有组织机构信息,春松客服搭建完成后,由超级管理员设定根节点,比如总公司、总公司下属子公司,维护这样的一个层级结构,再创建其他管理员账号,普通管理员账号可以创建多个,不同管理员隶属于不同组织机构,该管理员只有管理其所在组织机构及该组织机构附属组织机构的权限。**
+
+系统管理员切换不同的组织机构,可以查看不同组织机构的数据。
+
+## 权限设计
+
+春松客服权限体系包括:组织机构,角色,账号。
+
+### 权限的管理
+
+角色可以自定义,设置对一系列资源的读写。**角色的创建和删除,修改资源授权,只有超级管理员可以操作,**,普通【管理员】只具备角色的使用权:添加或删除权限里的系统账号。
+
+### 系统账号读写资源与角色的关系
+
+将账号添加到角色后,因为账号也同时隶属于不同的组织机构,那么账号所具有的权限就是其所在组织机构以及附属组织机构的角色对应的资源的读写。
+
+根据角色和坐席所在组织机构进行权限检查:
+
+- 超级管理员可以管理系统所有资源
+- 管理员可以创建部门人员
+- 组织机构支持层级的树状结构
+- 角色包含对不同资源的读写权限
+- 资源如联系人,客户等是根据组织机构进行隔离的
+- 网站渠道必须启用技能组,不同网站渠道接入的访客根据网站渠道设置分配给不同的技能组
+- 系统数据根据坐席当前所在的组织机构进行展示
+- 坐席可以看到自己所在组织机构以及附属组织机构的数据
+
+假设组织机构如下:
+
+![组织机构示意图](images/products/cosin/Picture23.png)
+
+- 李四所能看到的联系人全集是 A 部门及其附属部门所创建的全部联系人
+- 李四看不到 B 部门的联系人,张三看不到 A 部门的联系人
+- 李四能看到刘一创建的联系人,刘一看不到李四创建的联系人
+
+## 组织机构管理
+
+### 创建部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _创建部门_,并且可以启用或关闭技能组
+
+![创建部门](images/products/cosin/Picture10.png)
+
+- 名词解释:
+
+**部门** 需要创建的部门名称
+
+**上级机构** 选择上级部门
+
+**启用技能组** 这里启用与否,技能是接待同一个渠道的坐席人员群组,春松客服支持配置自动分配策略,连接访客与坐席,简称 ACD 模块
+
+### 更新、删除部门
+
+进入部门列表
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_
+
+### 编辑(修改)部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _修改部门_
+
+![修改部门](images/products/cosin/Picture12.png)
+
+### 删除部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _删除部门_
+
+### 设置部门地区
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织结构_ -> _选中一个部门_ -> _地区设置_
+
+![设置部门地区](images/products/cosin/Picture15.png)
+
+## 角色管理
+
+### 创建角色
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _系统角色_ -> _新建角色_
+
+只有【系统超级管理员】可以创建角色。
+
+![创建角色](images/products/cosin/Picture17.png)
+
+名词解释:
+
+**角色** 系统中用户的操作权限是通过角色来控制,角色可以理解为具备一定操作权限的用户组;
+
+可以把一个或者更多的用户添加到一个角色下;
+
+可以给一个角色设置一定的系统权限,相当于这个角色下面的用户有了这些系统权限;
+
+角色创建好了以后,在所有组织机构中共享。不同组织机构的管理员,只能管理其所在组织机构和下属组织机构里的账号的角色。
+
+### 编辑(修改)角色
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _系统角色_ -> _修改角色_
+
+只有【系统超级管理员】可以编辑角色。
+
+![修改角色](images/products/cosin/Picture22.png)
+
+### 删除角色
+
+系统->系统概况->用户和组->系统角色>删除角色
+
+只有【系统超级管理员】可以删除角色。
+
+![删除角色](images/products/cosin/Picture20.png)
+
+## 账号管理
+
+### 创建用户账号:_系统_ -> _系统概况_ -> _用户和组_ -> _用户账号_ -> _创建新用户_
+
+> 提示:
+
+```
+电子邮件: 需要有效的格式
+密码: 字母数字最少8位,手动录入
+手机号: 全系统唯一
+```
+
+- 用户分为管理员和普通用户
+- 坐席分为一般坐席和 SIP 坐席,普通用户与管理用户都可以成为坐席,SIP 坐席是在多媒体坐席的基础上
+- **每个账号必须分配到一个部门下,以及关联到一个角色上,才可以查看或管理资源,请详细阅读【组织机构】和【角色】管理**
+
+- 创建普通用户
+
+![创建普通用户](images/products/cosin/Picture3.png)
+
+- 创建多媒体坐席
+
+![创建多媒体坐席](images/products/cosin/Picture4.png)
+
+- 创建管理员
+
+![创建管理员](images/products/cosin/Picture5.png)
+
+### 查看账号信息
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _用户账号_
+
+![查看账户信息](images/products/cosin/Picture7.png)
+
+点击操作一栏中的“编辑”“删除”,可以对当前用户列表中的所有用户的信息进行编辑或者删除
+
+### 添加账号到部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织结构_ -> _选中一个部门_ -> _添加用户到当前部门_
+
+- 可以把已经存在的 用户账号 添加到一个特定的部门中
+
+- 一个用户账号只能隶属于一个部门
+
+![部门中添加账号](images/products/cosin/Picture14.png)
+
+### 添加账号到角色
+
+系统->系统概况->用户和组->系统角色>添加用户到角色
+
+![角色中添加账号](images/products/cosin/Picture21.png)
+
+
diff --git a/versioned_docs/version-v7/channels/index.md b/versioned_docs/version-v7/channels/index.md
new file mode 100644
index 00000000..d276bfa3
--- /dev/null
+++ b/versioned_docs/version-v7/channels/index.md
@@ -0,0 +1,20 @@
+---
+sidebar_position: 7
+---
+
+# 渠道管理
+
+## 概述
+
+春松客服支持多种渠道,访客的来源可能是多渠道的,这也是目前联络中心发展的趋势,以及对智能客服系统的一个挑战,一方面随着信息技术和互联网通信、聊天工具的演变,企业的客户逐渐分散,尤其是营销平台多元化。
+
+多渠道的适应能力,是春松客服的重要特色。在【渠道管理】的子菜单中,查看支持的不同类型的渠道。
+
+
+
+## 渠道支持
+
+| 渠道名称 | 简介 | 获得 |
+| ----------------------------- | ------------------------------------------------------------------------------------------------------------- | --- |
+| [网页渠道](webim.html) | 通过在网页中注入春松客服网页渠道 HTML,实现聊天控件,访客与客服建立实时通信连接,支持坐席邀请访客对话等功能 | **开源,免费**,随[基础代码](https://github.com/chatopera/cskefu)发布 |
+| [Facebook Messenger 渠道](messenger/index.html) | 简称“Messenger插件”或“ME”插件, Messenger 是 Facebook 旗下的最主要的即时通信软件,支持多种平台,因其创新的理念、优秀的用户体验和全球最大的社交网络,而广泛应用。春松客服 Messenger 插件帮助企业在 Facebook 平台上实现营销和客户服务| **开源,免费**,随[基础代码](https://github.com/chatopera/cskefu)发布 |
diff --git a/versioned_docs/version-v7/channels/messenger/facebook-otn.md b/versioned_docs/version-v7/channels/messenger/facebook-otn.md
new file mode 100644
index 00000000..eee50777
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/facebook-otn.md
@@ -0,0 +1,124 @@
+---
+sidebar_position: 2
+---
+
+# Facebook OTN 主动推送指南
+
+## 什么是 OTN 消息
+
+OTN 消息是 Facebook 平台提供的 Facebook 主页可以向粉丝主动推送消息的工具。粉丝有权利订阅,订阅后 Facebook 主页管理员推送通知消息时,不受24小时规则限制,可以是营销或非营销消息。
+
+OTN 是 One-time Notification 的缩写。
+
+![OTN](../../images/products/cskefu/messenger/image-2021-02-19-120353.png)
+
+整个 OTN 使用流程可分为四步:
+
+1、管理员在春松客服“营销中心”创建 OTN 记录,生成**分享链接**;
+
+2、运营人员发布**分享链接**到 Facebook Page 页面或其它渠道;
+
+3、消费者或访客点击**分享链接**后订阅 OTN 通知,即**分享链接**页面的“通知我”按钮;
+
+4、管理员可以通过手动触发或自动发送的方式,向订阅的访客发送 OTN 通知,即创建 OTN 记录时表单的内容。
+
+使用 OTN 的关键在于掌握:**OTN 创建表单**,在推广活动时使用**分享链接**和**发送 OTN 通知**。
+
+下图为 Facebook 官方给出的一个 OTN 通知在访客端的样例:
+
+![案例](../../images/products/cskefu/messenger/image2021-2-6_0-12-8.png)
+
+## 开通 Facebook Page 的 OTN 权限
+
+根据 Facebook 的规定,您首先需要为您的 Page 开通 OTN 权限。如下图所示,在 Page 中按照:设定→ 进阶信息→ 要求的功能→ 一次性通知 的路径为您的 Page 申请 OTN 权限。
+
+![开通权限](../../images/products/cskefu/messenger/image2021-2-5_23-3-7.png)
+
+## OTN 管理
+
+营销人员可以在营销中心对 OTN 进行管理。在营销中心可以看到 OTN 的详细信息以及订阅人数和状态等。
+
+### 创建 OTN
+
+步骤:营销中心 → 创建 OTN
+
+![创建 OTN](../../images/products/cskefu/messenger/image2021-2-4_14-30-15.png)
+
+OTN 表单内容。
+
+![自定义内容](../../images/products/cskefu/messenger/image2021-2-10_19-31-55.png)
+
+* OTN支持文本和图片两种消息类型
+* 请选择渠道是指messenger渠道
+* 订阅前邀请消息支持文本和图片,可以根据需要自定义
+* 订阅邀请文本
+* 成功订阅提醒是用户订阅消息后,收到的消息
+* OTN 内容指用户收到的营销人员发送的OTN消息详情
+* 推送时间可以预设,到达预设的时间,系统自动发送 OTN 消息
+
+### 获得分享链接
+
+创建 OTN 后,可以在 OTN 管理列表中,找到对应项的【分享链接】,点击【复制】。
+
+**那么,接下来,您就可以发布推文(Post),并且在推文中增加该链接,Facebook 用户在浏览推文,如果感兴趣就点击该链接,完成订阅!**
+
+### 编辑 OTN
+
+步骤:Messenger OTN 列表页→ 操作栏→ 编辑
+在推送内容前,管理员可以继续编辑 OTN 表单内容。
+
+### 删除 OTN
+
+步骤:Messenger OTN列表页→ 操作栏→ 删除
+
+![删除](../../images/products/cskefu/messenger/image2021-2-4_23-59-8.png)
+
+### 发送 OTN 推送
+
+活动的时间到了,是推送优惠券或者重要更新的时候了,之前点击了订阅的链接的用户,给 TA 们推送消息吧!
+
+有两种发送 OTN 推送方式:**定时发送**和**手动发送**。
+
+定时发送:在 OTN 的表单中,指定时间,在当前设定未到达前,您可以随时调整该时间。
+
+![定时发送](../../images/products/cskefu/messenger/image2021210-18470.png)
+
+手动发送步骤:Messenger OTN列表页→ 操作栏→ 发送
+
+![手动发送](../../images/products/cskefu/messenger/image2021-2-5_0-0-35.png)
+
+## 营销人员发布分享链接到 Facebook 主页
+
+第一步:营销人员复制 Messenger OTN 列表中的分享链接
+
+![复制链接](../../images/products/cskefu/messenger/image2021-2-5_0-6-56.png)
+
+第二步:进入 Facebook 主页页面,建立贴文;帖文中加上分享链接,然后发布
+
+![分享链接](../../images/products/cskefu/messenger/image2021-2-5_23-23-19.png)
+
+## Facebook 渠道用户订阅 OTN 消息
+
+用户在 Facebook page 页面,点击分享链接,进入对话窗口后点击:通知我/Notify Me
+
+![订阅消息](../../images/products/cskefu/messenger/image2021-2-5_23-45-39.png)
+
+## Facebook 渠道用户接收 OTN 消息
+
+用户订阅 OTN 消息后,营销人员在营销中心发送 OTN,用户就可以收到消息了
+
+![通知消息](../../images/products/cskefu/messenger/image2021-2-5_23-48-11.png)
+
+## 查看 OTN 发送效果
+
+OTN 列表页“订阅”一列显示此 OTN 订阅人数,订阅的用户都能接收到 OTN 推送,接收人数和订阅人数相同。
+
+![查看 OTN 数据](../../images/products/cskefu/messenger/image2021-2-10_3-35-16.png)
+
+在 Facebook 主页上,作为管理员,从右侧管理面板进入公共主页成效分析,包含最近丰富的粉丝增长数据,页面访问情况数据,指导企业计算 RoI 等指标。
+
+![查看 Facebook 统计数据](../../images/products/cskefu/messenger/image2021-2-5_10-9-5.png)
+
+## OTN 注意事项
+
+根据 Facebook 官方对于 OTN 的限制说明,需要注意:不能在短时间内多次向用户发送获得 OTN 许可的请求,即不能短时间内重复多次发送 OTN、请求用户点击“通知我/Notify Me”。这样的行为会被 Facebook 监控,如果 Facebook 算法检测到短时间内发送的 OTN 请求数量异常,您将面临失去访问 OTN 功能的风险。
diff --git a/versioned_docs/version-v7/channels/messenger/index.md b/versioned_docs/version-v7/channels/messenger/index.md
new file mode 100644
index 00000000..d832d137
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/index.md
@@ -0,0 +1,44 @@
+---
+sidebar_position: 1
+---
+
+# Messenger 渠道
+
+![Facebook Messenger](../../images/products/cskefu/messenger/image-2021-02-23-104502.png)
+
+## 概述
+
+Messenger 是 Facebook 旗下的最主要的即时通信软件,支持多种平台,因其创新的理念、优秀的用户体验和全球最大的社交网络,而广泛应用。通过 Facebook Messenger 的官方链接,可以了解更多。
+
+
+
+春松客服 Messenger 插件帮助企业在 Facebook 平台上实现营销和客户服务。
+
+![连接客户](../../images/products/cskefu/messenger/image2021-2-1_19-58-6.png)
+
+* 集成 Facebook 粉丝页,使用 OTN 推送营销活动信息,吸引新粉丝和激活老客户
+* 集成 Chatopera 机器人客服,自动回答常见问题,提升客户体验
+* 支持机器人客服转人工坐席,解决客户的复杂问题
+* 产品迭代一年,提供多个最佳实践,帮助企业高效率运营
+* 春松客服运营分析和 Chatopera 机器人客服运营分析生成报表,洞察业务指标
+
+## 了解 Messenger 的强大功能
+
+首先,出海企业要获客,或者通过互联网方式提供服务,那么 Facebook 上的广告和 Messenger 服务,是您无论如何都要使用的,因为你可以从这里找到您的目标客户、潜在客户。但是,如果 Facebook 平台的商业化程度过高,将影响社交网络内用户的体验,比如用户收到和自己不相关、不感兴趣的、大量的广告。为此 Facebook 在广告和 Messenger 上,有很多设计、一些限制,达到了商业化和人们社交需求的平衡,这是 Facebook 能成为今天世界上最大的社交网络的关键原因之一。
+
+其次,您需要了解 Messenger 的一些应用场景,比如 Chatopera 为九九互动提供的智能客服和 OTN 服务的案例[^chatopera-me-jiujiu2020]。
+
+[^chatopera-me-jiujiu2020]: 春松客服为出海企业提供智能客服,https://www.chatopera.com/solutions/overseas.html
+
+在正式介绍春松客服 Messenger 插件的使用之前,需要说明 Chatopera 提供该插件是通过 Facebook Messenger 平台的开发者 APIs 实现,因此,该插件的功能安全可靠、稳定强大并且会不断更新。
+
+[https://developers.facebook.com/docs/messenger-platform](https://developers.facebook.com/docs/messenger-platform)
+
+
+
+## 使用指南
+
+* [Messenger 渠道配置](install.html)
+* [Facebook OTN 主动推送指南](facebook-otn.html)
+* [Messenger 渠道配置机器人客服](messenger-chatbot.html)
+* [Messenger 管理机器人客服对话](message-types.html)
diff --git a/versioned_docs/version-v7/channels/messenger/install.md b/versioned_docs/version-v7/channels/messenger/install.md
new file mode 100644
index 00000000..c6f09828
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/install.md
@@ -0,0 +1,286 @@
+---
+sidebar_position: 1
+---
+
+# Messenger 渠道配置
+
+## 前提准备
+
+在使用春松客服集成 Messenger 前,您需要做如下准备工作。
+
+| 准备工作 | 描述 | 网址 |
+| --- | --- | --- |
+| 注册 Facebook 账号 | 创建 Messenger 应用,Facebook Page 页,测试 BOT 等需要准备 Facebook 账号 | [link](https://facebook.com/) |
+| 注册 Chatopera 云服务账号 | 创建机器人客服需要使用 Chatopera 云服务 | [link](https://bot.chatopera.com/) |
+| 部署春松客服实例 | 春松客服实例需要安装有 Messenger 插件 | [link](https://docs.chatopera.com/products/cskefu/deploy.html) |
+| 初始化春松客服 | 使用超级管理员创建组织机构,技能组,坐席角色和一个坐席账号,将账号绑定到坐席角色和技能组 | [link](https://docs.chatopera.com/products/cskefu/initialization.html) |
+
+
+在配置的过程中,还需要开通额外的账号或资源,是以以上为基础的。
+
+## 集成 Messenger 渠道
+
+安装好春松客服 Messenger 插件后,系统管理员登录,只有系统管理员或超级系统管理员【admin】可以维护 Facebook Messenger 渠道。
+
+### Messenger 渠道管理
+
+在右上角组织机构,选择一个技能组,然后进入【系统管理】,打开 【Messenger】页面。
+
+![打开 Messenger 渠道管理](../../images/products/cskefu/messenger/image2021-2-1_20-14-52.png)
+
+注意:此处要先切换到技能组,因为创建 Messenger 渠道必须绑定一个技能组。
+
+点击【创建渠道】。
+
+![创建渠道](../../images/products/cskefu/messenger/image2021-2-2_21-21-26.png)
+
+如图,创建 Messenger 表单有几个信息,接下来,我们将介绍如何获得这些信息。
+
+### 创建 Facebook Page
+
+Facebook Page,也称为 Facebook 粉丝页、Facebook 页面、Facebook 主页,是 Facebook 为机构、企业、非营利性组织等各种类型的组织提供的站点,在该站点组织发布消息,和 Facebook 平台的用户互动。在粉丝页,Facebook 提供了广告、推文、点评、小组、数据分析等工具,帮助企业充分的利用社交网络实现营销、品牌建设。
+
+![粉丝页](../../images/products/cskefu/messenger/image2021-2-2_19-55-57.png)
+
+在上图,我们注意到,访客可以看到“发消息”按钮,那么点击发消息按钮就可以唤起 Messenger 聊天控件和企业互动,完成反馈、咨询等。服务访客的,可能是人工坐席,也可以能是机器人客服,此外,企业可以主动联系访客,并进而通过 Messenger 进行实时对话。稍后,我们将介绍如何集成配置春松客服连接一个 Facebook 页面,然后进行更多最佳实践的介绍,敬请继续阅读。
+
+在熟悉了 Facebook Page 的定位以后,当您有了 Facebook 账号,您可以通过下面链接快速的创建一个 Facebook Page。
+
+
+
+![快速创建](../../images/products/cskefu/messenger/image2021-2-2_20-8-47.png)
+
+在此,我们创建一个示例页面,在演示如何在春松客服集成 Messenger 时使用,注意:企业创建 Messenger 应用以后,可以将 Messenger 应用集成到 Facebook Page 上,Facebook Page 是企业的一个对外的主页,而并不是唯一的,Messenger 应用同时支持多种渠道,比如网页聊天、Whatsapp等。Messenger 应用的介绍是在下一环节。
+
+假设我们创建的 Facebook Page 名称:春松客服 DEMO。创建完成后,进入 春松客服 DEMO 地址,这时,我们是管理员视图,点击“访客视图”,就是普通访客看到的页面。
+
+![访客视图](../../images/products/cskefu/messenger/image2021-2-2_20-10-36.png)
+
+注意:此时,Facebook Page 刚刚创建,对于 Facebook 普通用户而言,这个页面还是不可见的,作为管理员,在 Facebook Page 设置页面,进行可见度设置,调整为 Public 才是公开的。设置界面,后面我们还会使用到。
+
+![管理员界面](../../images/products/cskefu/messenger/image2021-2-2_20-16-29.png)
+
+### 添加联系我按钮
+
+此时,我们有了一个 Facebook Page,默认情况下,没有联系我按钮,我们需要手动的添加。
+
+在 Facebook Page 页面,以管理员视图查看,找到“添加按钮”,点击这个按钮。
+
+![添加按钮](../../images/products/cskefu/messenger/image2021-2-2_20-23-51.png)
+
+这时,我们在很多弹出的选项中,选择“发消息”。
+
+![发消息](../../images/products/cskefu/messenger/image2021-2-2_20-25-7.png)
+
+提交后,在您的页面上,便有了“发消息”按钮。作为管理员,您可以设置或测试它。
+
+![测试对话](../../images/products/cskefu/messenger/image2021-2-2_20-26-36.png)
+
+当我们再以访客视图查看,就会发现唤起 Messenger 聊天控件的发消息按钮。
+
+![访客视图](../../images/products/cskefu/messenger/image2021-2-2_20-29-20.png)
+
+作为 Facebook Page 的管理员,我如何回复消息呢?
+
+有两个方案:
+
+#### 普通模式
+
+在默认情况下,用户浏览会以通知的形式发送给您登录的浏览器,您可以进行回复。并进入设置→消息,进行一些个性化的设置。
+
+![回复消息](../../images/products/cskefu/messenger/image2021-2-2_20-31-30.png)
+
+此种方式下,访客的信息并没有和您的 CRM 系统联通,信息分散了;此外,您的访客可能来自不同渠道,Facebook Messenger 只是其中之一,渠道不能统一到一个系统,您的组织的客户服务工作效率降低,客户体验差。还有很多问题,这就是为什么 Facebook 提供了第二种模式 - 高级模式。
+
+#### 高级模式
+
+在高级模式下,Facebook 将访客在您的 Facebook Page 上唤起的 Messenger 对话控件的消息,转发给了兼容 Facebook Messenger 平台的软件服务,比如一个春松客服实例,春松客服和 Facebook Messenger 平台之间进行通信,并且以约定的形式,企业可以主动发起会话、发布营销通知、回复访客会话等,Facebook 平台同时有丰富的接口,春松客服可以获得访客的 ID、语言、所在地区、邮箱、电话号码等信息,从而满足客户关系管理、营销和客服等诉求。下文,我们就详细介绍如何使用春松客服 Messenger 插件,通过高级模式,支持 Messenger 的对话。
+
+创建 Messenger 应用
+在高级模式下,企业可以选择:
+
+* 1)企业自行开通 Facebook 开发者平台账号,创建 Messenger 应用,并绑定 Facebook Page;
+* 2)和支持 Facebook Messenger 平台的服务商合作,获得技术支持,比如[春松客服官方团队](https://www.chatopera.com/price.html),该技术支持是付费服务项。
+
+我们推荐企业使用第一种方式,即自行开通,该过程会多花一点时间,但是相对也简单,这种方式,完全由企业在 Facebook 平台上操作,不涉及任何春松客服官方的接口、云服务。
+
+在以上两种方式中,您的春松客服实例都需要配置 HTTPs 协议,这部分后续会详细介绍。接下来,我们就以自行开通 Facebook 开发者平台进行讲解。
+
+打开 Facebook Developer Portal, 使用 Facebook 账号开通
+
+
+
+开通后登入,点击创建应用,一个应用可以关联多种 Facebook 产品,Messenger 是产品之一,因为本文我们将用该应用关联 Messenger 产品,因此,我们简称此种应用为 Messenger 应用。
+
+![Facebook 应用](../../images/products/cskefu/messenger/image2021-2-2_20-57-26.png)
+
+在弹出的表单中,选择“更多选项”。
+
+![更多选项](../../images/products/cskefu/messenger/image2021-2-2_21-1-50.png)
+
+接着填写应用的名称,联系邮箱。
+
+![联系邮箱](../../images/products/cskefu/messenger/image2021-2-2_21-2-40.png)
+
+这里,我们假设名字填写了【春松001】,作为示例程序名字。如果您有开通 Facebook 商务账号,也可以在这里关联,该项为非必填。
+
+Facebook 商户账号( )是管理企业的组织人员、广告等资产的平台。
+
+当应用创建成功,自动跳转到应用详情页面,如下。
+
+![详情页面](../../images/products/cskefu/messenger/image2021-2-2_21-6-18.png)
+
+在添加产品卡片上,点击 Messenger 的【设置】按钮,进入 Messenger 产品设置页面,该页面有较多内容,我们将着重介绍有关和春松客服集成到 Facebook Page 相关的内容。
+
+页面滑动至【访问口令】,点击【添加或移除主页】。
+
+![访问口令](../../images/products/cskefu/messenger/image2021-2-2_21-8-47.png)
+
+此时,将弹出对话框,提示授权登录 Facebook,登录成功后,将展示您的 Facebook Page 列表,此时,我们可以看到【春松客服 DEMO】,勾选并选择提交。
+
+![绑定页面](../../images/products/cskefu/messenger/image2021-2-2_21-13-16.png)
+
+如果该绑定失败,可能会提示原因,并且提示您进行变更,如下所示,点击【完成】。
+
+![完成绑定](../../images/products/cskefu/messenger/image2021-2-2_21-14-51.png)
+
+此时,代表着【春松客服001】Messenger 应用正式接管了 Facebook Page 【春松客服 DEMO】的消息管理。回到应用详情页面,此时 Messenger 设置中,就出现了【春松客服 DEMO】。
+
+![完成接入](../../images/products/cskefu/messenger/image2021-2-2_21-17-50.png)
+
+### 获得 Messenger 配置信息
+
+还记得之前在春松客服内,创建 Messenger 渠道的表单吗?现在,对于表单里的内容,就可以获得了。
+
+| 配置项 | 描述 | 示例 |
+| --- | --- | --- |
+| 名称 | 渠道名称,可使用 Facebook Page 名字 | 春松客服 DEMO |
+| Page ID | Facebook Page 的唯一标识。在 Messenger 应用的设置的访问口令列表中,Page ID 就是主页名称下的数字字符串 | 159955055741 |
+| Access Token | 访问 Facebook Page 的口令,每个 Facebook Page 使用不同口令。在 Messenger 应用的设置的访问口令列表中,点击【生成口令】 | xxxx |
+| Verify Token | 该值为随机字符串,由企业用户自定义 | foobar20 |
+
+
+![渠道表单](../../images/products/cskefu/messenger/image2021-2-2_21-28-24.png)
+
+### 创建 Messenger 渠道
+
+回到春松客服 Messenger 渠道创建表单,填写对应值,点击【提交】。
+
+![提交表单](../../images/products/cskefu/messenger/image2021-2-2_21-31-16.png)
+
+此时,渠道创建成功。但是,还需要一些配置,使得春松客服实例与 Facebook Messenger 平台服务连接起来。
+
+### 配置 HTTPS
+
+处于安全的考虑,Facebook 要求 Messenger 应用对接的软件服务使用 HTTPS 加密协议,春松客服企业用户有多种方案完成这一目的,针对生产环境,推荐您使用文档[《春松客服配置 CDN和HTTPS》](https://chatopera.blog.csdn.net/article/details/105820829)进行配置。出于本文是演示使用的目的,我们使用更为简单的方案,但是企业客户不要在生产环境用这种方式,避免因连接不稳定给您带来的损失。
+
+在下文,我们使用 ngrok 为春松客服实例实现 HTTPS 协议的访问地址,ngrok 是可以免费使用的,但是需要您先注册,注册好了使用 ngrok 的命令行客户端绑定 localhost 的春松客服端口,ngrok 就提供一个 https 地址作为代理。
+
+执行命令:
+
+```
+ngrok http 8035
+```
+
+此处,8035 即春松客服实例运行端口。
+
+![HTTPS 代理](../../images/products/cskefu/messenger/image2021-2-2_21-43-12.png)
+
+在以上 ngrok 运营的结果,就是 `https://efdbe3894f65.ngrok.io` -> `http://localhost:8035`
+
+此时,我们就得到了春松客服的HTTPS服务的地址 `https://efdbe3894f65.ngrok.io`
+
+### 激活渠道连接
+
+进入 Messenger 应用设置页面,滑动至【Webhook】区域,点击【添加回调网址】。
+
+![回调信息](../../images/products/cskefu/messenger/image2021-2-2_21-45-29.png)
+
+在弹出的对话框内,填写回调地址和验证口令。
+
+![地址和验证](../../images/products/cskefu/messenger/image2021-2-2_21-51-20.png)
+
+回调地址:`https://your_domain/facebook/webhook/{{PAGE_ID}}` ,将 {{PAGE_ID}} 替换为Page ID。
+
+验证口令:即之前设定的 Verify Token。
+
+点击【验证并保存】,此时,Facebook 会请求春松客服实例,保证服务连接状态正常,回到设置页面;若连接不成功,将会进行提示。
+
+注意:第一次配置回调地址成功后,回调地址栏内将有值。一个 Messenger 应用可以集成多个 Facebook Page,这些 Facebook Page 是共享一个回调地址和验证口令的,那么您在这个 Messenger 应用上添加第二个 Facebook Page 并且都是连接到同一个春松客服实例时,是不需要再次设置 Webhook 信息的,所有的 Facebook Page 对话将一起被发送给这个回调地址处理。
+
+![配置 Webhook](../../images/products/cskefu/messenger/image2021-2-2_22-11-12.png)
+
+至此,配置 Webhook 成功。
+
+### Webhook 添加订阅
+
+完成添加 Webhook 信息,还需要在 Webhook 栏内选择【添加订阅】。
+
+![设置订阅内容](../../images/products/cskefu/messenger/image2021-2-2_22-39-6.png)
+
+Facebook 将该主页发生的【发消息】相关的事件分为很多种类型,现在我们勾选 messages 和 messaging_postbacks。如果需要了解其他的事件类型可以参考 [Facebook Messenger 平台文档](https://developers.facebook.com/docs/messenger-platform)。
+
+![检查订阅内容](../../images/products/cskefu/messenger/image2021-2-2_22-39-46.png)
+
+保存,回到 messenger 设置页面后,可见 Webhooks 多了两个字段。
+
+![完成订阅](../../images/products/cskefu/messenger/image2021-2-2_22-40-20.png)
+
+此时,渠道就连接上了,春松客服经由 Facebook 开发者平台对接上了 Facebook Page 上的 Messenger 对话控件。
+
+### 做一个测试
+
+在集成 messenger 渠道的准备工作里,提到前提条件包括创建技能组、创建坐席人员的角色和创建至少一个账号关联角色和技能组。假设这个坐席人员名字是张三,现在,我们作为技能组的张三登录系统。同时,进入春松客服 DEMO 的 Facebook 主页,点击【发消息】,开始对话。
+
+![发送测试消息](../../images/products/cskefu/messenger/image2021-2-2_22-45-10.png)
+
+访客发送的消息会自动在张三的网页上弹屏,二者进入对话。
+
+### 正式上线
+
+之前,在 Facebook 主页内的操作,我们都是使用管理员账号,此时,Facebook 普通用户作为访客登录,发起 Messenger 对话,是不会被 Facebook 转发到春松客服的,为了达成这个目标,我们需要提交上线,此过程需要在 Facebook 开发者平台,应用详情页面,编辑申请权限。
+
+![编辑权限](../../images/products/cskefu/messenger/image2021-2-2_22-30-46.png)
+
+找到 pages_messaging,点击申请。
+
+![申请](../../images/products/cskefu/messenger/image2021-2-2_22-31-45.png)
+
+提示申请需要大约 5 天,根据经验,三天内就可以完成。
+
+![提交状态](../../images/products/cskefu/messenger/image2021-2-2_22-32-21.png)
+
+提交申请后,同时我们丰富一下 Facebook 应用的介绍信息,这是可能被数十亿人浏览和使用的!
+
+比如应用的 Icon, 服务条款网址等。
+
+![审核内容](../../images/products/cskefu/messenger/image2021-2-3_9-57-27.png)
+
+ 当权限申请完成,应用信息填写完成,正式提交审核,在侧边栏,点击【应用审核->申请】。
+
+![处理申请](../../images/products/cskefu/messenger/image2021-2-3_10-0-10.png)
+
+注意:以上图片因为没有完成权限申请,没有提交上线的审核按钮。
+
+上线审核通过后,在应用设置页面的上方,将【开发中】开关拨动到另一侧,此时,Facebook Page 和春松客服的集成大功告成。
+
+![上线](../../images/products/cskefu/messenger/image2021-2-3_10-2-31.png)
+
+这时,您的主页就可以通过购买 Facebook 广告、发布文章等方法运营、转化客户了。
+
+
+
+### 进一步学习最佳实践
+
+接下来,您可以阅读下面的[最佳实践](#最佳实践)系列文章,了解如何一步一步的打造良好的用户体验。
+
+最佳实践主要是针对 Facebook 主页与春松客服之间的使用经验,如何获得高效的运营体验和客服服务体验,完成营销和客服工作。
+
+此外,春松客服的基本功能如报表和坐席监控等,请参考春松客服文档中心的其它部分。
+
+## 最佳实践
+
+* [Messenger 渠道配置](install.html)
+* [Facebook OTN 主动推送指南](facebook-otn.html)
+* [Messenger 渠道配置机器人客服](messenger-chatbot.html)
+* [Messenger 管理机器人客服对话](message-types.html)
\ No newline at end of file
diff --git a/versioned_docs/version-v7/channels/messenger/message-types.md b/versioned_docs/version-v7/channels/messenger/message-types.md
new file mode 100644
index 00000000..3d1aed58
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/message-types.md
@@ -0,0 +1,194 @@
+---
+sidebar_position: 4
+---
+
+# Messenger 管理机器人客服对话
+
+## 概述
+
+本文演示ME渠道机器人可以实现的一些基本功能。
+
+阅读本文前需了解:
+
+* Chatopera 机器人平台的[多轮对话设计器](https://docs.chatopera.com/products/chatbot-platform/conversation/cde.html)
+
+* [Messenger 渠道插件使用文档](https://docs.chatopera.com/products/cskefu/channels/messenger/index.html)
+
+* [配置机器人客服接待访客 Messenger 渠道](https://docs.chatopera.com/products/cskefu/channels/messenger/messenger-chatbot.html)
+
+![关系图](../../images/products/cskefu/messenger/image2021-2-10_17-41-6.png)
+
+## 开始按钮
+
+用户首次打开该 Facebook 主页的 Messenger 对话窗口时,主页显示【Get Started】,引导用户开始和机器人对话。
+
+点击按钮后,机器人发送自定义欢迎信息。
+
+![欢迎语](../../images/products/cskefu/messenger/image2021-2-10_2-59-11.png)
+
+实现原理:
+
+通过 Messenger Profile API 设置 Page 欢迎屏幕会显示“开始”按钮,payload 设置为 `__get_start`。
+
+户轻触此按钮后,Messenger 平台会向您的 Webhook 发送一个 messaging_postbacks 事件, 发送 `__get_start` 到机器人,开启机器人对话。
+
+延申阅读Facebook Messenger 消息格式[Get Started 文档](https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/get-started-button)。
+
+在多轮对话设计器中,处理`__get_start`事件,定制机器人回复:
+
+![欢迎事件](../../images/products/cskefu/messenger/image2021-2-10_17-44-38.png)
+
+比如下面技能代码,实现响应 `__get_start` 事件,推送欢迎语和导航菜单。
+
+技能函数:
+
+```
+// Get Started
++ __get_start
+- ^get_start()
+```
+
+技能函数:
+
+```
+exports.get_start = async () => {
+ return {
+ text: '#in params',
+ params: [{ // 文本消息
+ text: '欢迎使用ME机器人客服'
+ }, {
+ attachment: { // 导航菜单
+ type: 'template',
+ payload: {
+ template_type: 'button',
+ text: 'Hi,你想查看什么?',
+ buttons: [{
+ type: "phone_number",
+ title: "商务洽谈",
+ payload: "+8613691490568",
+ },
+ {
+ type: "postback",
+ payload: "__body_feeling",
+ title: "查看城市体感",
+ },
+ {
+ type: "postback",
+ payload: "__start_ask",
+ title: "咨询问题",
+ }
+ ],
+ },
+ },
+ }, ]
+ }
+}
+```
+
+## 导航菜单
+
+我们给用户推送一个导航菜单,引导用户使用我们的服务。
+
+菜单按钮直接触发云平台对应机器人技能。
+
+![导航菜单](../../images/products/cskefu/messenger/image2021-2-10_3-2-0.png)
+
+导航菜单使用 Buttons 实现,按钮类型同 [Messenger Buttons](https://developers.facebook.com/docs/messenger-platform/reference/buttons)。
+
+菜单 payload 在用户点击后推送给机器人。
+
+## 快捷回复
+
+现在用户想查看城市体感信息,我们通过快捷回复,给用户几个热门城市选择,点击直接回复机器人。
+
+![快捷回复](../../images/products/cskefu/messenger/image2021-2-10_3-9-54.png)
+
+用户选择 “查看城市体感” , `__body_feeling` 技能被处理,返回推荐选项给用户选择。
+
+技能脚本:
+
+```
+// 显示推荐城市
++ __body_feeling
+- ^queryFeeling()
+
+// 查询城市数据
++ __query_city (*)
+- ^getWeatherByCity()
+```
+
+技能函数
+
+```
+exports.queryFeeling = async () => {
+ return {
+ text: '#in params',
+ params: {
+ text: '请选择需要查询体感的城市',
+ // 快捷回复选项
+ quick_replies: [{
+ content_type: 'text',
+ title: '北京',
+ payload: '__query_city 北京',
+ },
+ {
+ content_type: 'text',
+ title: '上海',
+ payload: '__query_city 上海'
+ },
+ ],
+ },
+ };
+}
+
+// 此处简化处理,技能函数有访问REST API的能力
+exports.getWeatherByCity = function(city, cb) {
+ debug("getWeatherByCity: %s", city);
+ let data = {
+ '北京': '舒适',
+ '上海': '闷热'
+ }
+
+ cb(null, city + '体感' + data[city]);
+}
+```
+
+## 知识库查询
+
+在输入框直接回复完整问题查询知识库,回答已有的知识点。
+
+![知识库](../../images/products/cskefu/messenger/image2021-2-10_3-16-21.png)
+
+在 Chatopera 云平台,设置常见问答对。用户问答和知识库数据匹配度超过指定阈值时,直接回复该条目答案。
+
+![知识库回复](../../images/products/cskefu/messenger/image2021-2-10_16-13-27.png)
+
+## 知识库反馈
+
+针对知识库的问答对,可以请用户进行反馈,提高知识库准确定。
+
+![知识库反馈](../../images/products/cskefu/messenger/image2021-2-10_3-19-29.png)
+
+数据统计展示在云平台ROI数据中。使用 Chatopera 云服务 聚类分析 ,选择性优化知识库,提升机器人服务效果。
+
+![知识库聚类](../../images/products/cskefu/messenger/image2021-2-10_16-21-20.png)
+
+## 知识库推荐
+
+当问题没有匹配,有相关问题时,系统会推荐给用户,供用户快速选择。
+
+![知识库推荐](../../images/products/cskefu/messenger/image2021-2-10_3-23-24.png)
+
+## 人工服务
+
+用户问题机器人无法解决时,可在适当时机转人工处理。
+
+![转人工](../../images/products/cskefu/messenger/image2021-2-10_3-28-5.png)
+
+系统会根据ACD策略接入合适的客服,进行处理。客服可以看到用户的历史对话,并使用 知识库快捷,知识库联想、转接其他专业客服等功能更好的服务访客。
+
+## 小结
+
+基于以上介绍,企业用户在春松客服和 Chatopera 机器人平台基础上,可以无代码的方式提供基于知识库的 FAQ Bot 和 低代码的方式实现多轮对话 Bot。
+
+强大的定制化开发能力,满足企业客户的各种需求,提升企业的智能化和自动化,在规模化的同时,消费者获得个性化服务,自助式服务。
diff --git a/versioned_docs/version-v7/channels/messenger/messenger-chatbot.md b/versioned_docs/version-v7/channels/messenger/messenger-chatbot.md
new file mode 100644
index 00000000..c8f13117
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/messenger-chatbot.md
@@ -0,0 +1,78 @@
+---
+sidebar_position: 3
+---
+
+# Messenger 渠道配置机器人客服
+
+## 概述
+
+在春松客服中集成了 Messenger 渠道后,您可以通过配置机器人客服实现更加高效,方便,快捷的服务方式。机器人客服可以帮助您回答简单问题,提供轻松的娱乐,预先过滤访客数据,收集信息等,大大减少了人工客服的工作量。
+
+## 配置机器人客服
+
+春松客服实例需要安装有 Messenger 插件和智能机器人插件。只有超级管理员「admin」可以维护智能机器人插件。
+
+### 创建机器人
+
+步骤:系统→系统设置→智能机器人→新建
+
+![新建机器人](../../images/products/cskefu/messenger/image2021-2-5_17-31-50.png)
+
+点击新建之后,弹出集成智能机器人对话框。渠道类型默认的是网站渠道,需要选择 Messenger 渠道。
+
+![选择 Messenger 渠道](../../images/products/cskefu/messenger/image2021-2-5_17-27-10.png)
+
+根据提示填写对应信息,其中 ClientId 和 Secret 需要在 [Chatopera 云服务](https://bot.chatopera.com/)中机器人的设置页面获取。
+
+![填写密钥](../../images/products/cskefu/messenger/image2021-2-5_17-37-46.png)
+
+点击保存之后,创建智能机器人成功。
+
+### 编辑机器人
+
+步骤:智能机器人页面→操作栏→绑定
+
+![绑定](../../images/products/cskefu/messenger/image2021-2-5_17-43-12.png)
+
+### 设置机器人
+
+步骤:智能机器人列表选择需要设置的机器人→根据需求进行设置
+
+![设置](../../images/products/cskefu/messenger/image2021-2-5_17-46-49.png)
+
+### 删除机器人
+
+步骤:智能机器人页面→操作栏→删除
+
+![删除](../../images/products/cskefu/messenger/image2021-2-5_17-48-25.png)
+
+## 机器人不同工作模式
+
+| 模式| 描述| 是否可以转接不同工作模式|
+| --- | --- | --- |
+| 机器人客服优先| 当有新的访客接入会话时,机器人客服优先服务。访客可以选择转人工服务。| 是|
+| 人工客服优先 | 当有新的访客接入会话时,人工客服优先服务。| 否|
+| 仅机器人客服 | 当有新的访客接入会话时,机器人客服优先服务。访客不可以选择转人工服务。| 否|
+
+
+## 访客和机器人对话
+
+访客在 Facebook page 页面点击「发消息」进入对话窗口,访客在对话窗口中发消息可以收到机器人回复,并且可以评价机器人的回复是否有帮助。
+
+![评价机器人](../../images/products/cskefu/messenger/image2021-2-6_15-45-50.png)
+
+访客反馈问题是否有帮助后,数据会记录到 Chatopera 云服务中,登录 [https://bot.chatopera.com/](https://bot.chatopera.com/ ) 进入机器人「统计」页面可以查看数据。
+
+![查看统计数据](../../images/products/cskefu/messenger/image2021-2-6_16-9-34.png)
+
+## 访客如何选择转人工服务
+
+访客和机器人对话触发到兜底回复时,兜底回复下带有「转人工」的按钮,访客点击「转人工」收到提示消息后就可以发送消息和人工客服对话。
+
+![转人工](../../images/products/cskefu/messenger/image2021-2-8_19-28-4.png)
+
+## 人工客服如何结束对话
+
+Facebook 渠道的访客不能主动结束对话,需要人工坐席在坐席工作台主动结束对话。
+
+![结束对话](../../images/products/cskefu/messenger/image2021-2-8_19-41-19.png)
diff --git a/versioned_docs/version-v7/channels/messenger/toc.yml b/versioned_docs/version-v7/channels/messenger/toc.yml
new file mode 100644
index 00000000..76b4eb13
--- /dev/null
+++ b/versioned_docs/version-v7/channels/messenger/toc.yml
@@ -0,0 +1,8 @@
+- name: "配置 Messenger 渠道"
+ href: install.md
+- name: "OTN 主动推送指南"
+ href: facebook-otn.md
+- name: "配置机器人客服"
+ href: messenger-chatbot.md
+- name: "管理机器人客服对话"
+ href: message-types.md
\ No newline at end of file
diff --git a/versioned_docs/version-v7/channels/toc.yml b/versioned_docs/version-v7/channels/toc.yml
new file mode 100644
index 00000000..136b56ac
--- /dev/null
+++ b/versioned_docs/version-v7/channels/toc.yml
@@ -0,0 +1,5 @@
+- name: "网页渠道"
+ href: webim.md
+- name: "Messenger"
+ href: messenger/toc.yml
+ topicHref: messenger/index.md
diff --git a/versioned_docs/version-v7/channels/webim.md b/versioned_docs/version-v7/channels/webim.md
new file mode 100644
index 00000000..2fb53088
--- /dev/null
+++ b/versioned_docs/version-v7/channels/webim.md
@@ -0,0 +1,33 @@
+---
+sidebar_position: 1
+---
+
+# 网页渠道
+
+## 概述
+
+网页聊天支持可以适配移动设备浏览器,桌面浏览器。可以在电脑,手机,微信等渠道接入网页聊天控件。
+
+## 安装
+
+获取网页脚本,_系统_ -> _系统管理_ -> _客服接入_ -> _网站列表_ -> _点击“Chatopera 官网”_ -> _基本设置_ -> _接入;_
+
+![接入网站](../images/products/cosin/Picture30.png)
+
+将图中的代码复制到一个 Web 项目的页面中,例如下图的。
+
+![粘贴聊天控件代码](../images/products/cosin/Picture31.png)
+
+## 使用
+
+使用浏览器打开该 Web 页面。
+
+![聊天控件](../images/products/cosin/Picture32.png)
+
+【提示】该网页需要使用 http(s)打开,不支持使用浏览器打开本地 HTML 页面。
+
+点击该网页中出现的“在线客服”按钮,出现聊天窗口,可以作为访客,与客服聊天了。
+
+![与在线客服对话](../images/products/cosin/Picture33.png)
+
+【提示】春松客服提供一个测试网页客户端的例子,可以使用 _]}}/testclient.html_ 进行访问。
diff --git a/versioned_docs/version-v7/crm.md b/versioned_docs/version-v7/crm.md
new file mode 100644
index 00000000..1a327079
--- /dev/null
+++ b/versioned_docs/version-v7/crm.md
@@ -0,0 +1,32 @@
+---
+sidebar_position: 7
+---
+
+# 客户关系管理
+
+## 新建客户
+
+_左侧菜单_ -> _全部客户_ -> _新建客户_
+
+这里客户信息包括“基本信息”,“企业信息”,“联系人信息”;
+其中“联系人信息”,会同步到 左侧菜单->全部联系人;
+
+![新建联系人](images/products/cosin/Picture24.png)
+
+## 编辑客户
+
+_左侧菜单_ -> _全部客户_ -> _客户列表_ -> _选中一个客户_ -> _点击“编辑”按钮_
+
+只能更新“基本信息”,“企业信息”;
+需要更新 “联系人信息”,请移步到 左侧菜单->全部联系人;
+
+## 联系人笔记
+
+进入联系人列表,选择一个联系人,点击_联系人_姓名,进入详情页面。
+在详情页面,编辑联系人笔记,记录来往历史。
+
+![编辑联系人笔记](images/products/cosin/Picture74.png)
+
+## 删除客
+
+_左侧菜单_ -> _全部客户_ -> _客户列表_ -> _选中一个客户_ -> _点击“删除”按钮_
diff --git a/versioned_docs/version-v7/deploy.md b/versioned_docs/version-v7/deploy.md
new file mode 100644
index 00000000..e938e4fd
--- /dev/null
+++ b/versioned_docs/version-v7/deploy.md
@@ -0,0 +1,195 @@
+---
+sidebar_position: 2
+---
+
+# 应用部署
+
+春松客服适应各种部署方式,本文使用 Docker 和 Docker compose 的方式,适合体验、开发、测试和上线春松客服,此种方式简单快捷。
+
+重要提示:部署应用后,必须按照《系统初始化》[^initdoc]文档进行系统初始化,再使用,不做初始化,会造成坐席无法分配等问题。
+
+[^initdoc]: 系统初始化文档,https://docs.cskefu.com/docs/initialization/
+
+## 准备条件
+
+### 前提
+
+| 项目 | 说明 |
+| ------------------- | ------------------------------------------------------------- |
+| 操作系统 | **Ubuntu 16.04+**;鉴于下述部署方案基于 Docker 和 Docker Compose,其它操作系统如 CentOS 7.x 理论上也兼容 |
+| Docker 版本 | Docker version 1.13.x 及以上 |
+| Docker Compose 版本 | version 1.23.x 及以上 |
+| 防火墙端口 | 8035, 8036 |
+| 其他软件 | git |
+| 内存 | 开发测试 >= 8GB \| 生产环境 >= 16GB |
+| CPU 颗数 | 开发测试 >= 2 \| 生产环境 >= 4 |
+| 硬盘 | >= 20GB |
+
+
+### 安全组
+
+如果使用云主机,要考虑到不同云服务提供商的安全组设置,允许 8035 和 8036 端口下行。
+
+## 克隆代码
+
+```Bash
+git clone -b master https://github.com/cskefu/cskefu.git cskefu
+cd cskefu
+cp sample.env .env # 使用文本编辑器打开 .env 文件,并按照需求需改配置
+```
+
+以上命令中,`master` 代表春松客服源码仓库的 master 分支,目前是 [cskefu/cskefu](https://github.com/cskefu/cskefu) 的 v7 版本代码,分支说明。
+
+| 分支 | 说明 | 目前对应版本 |
+| --- | --- | --- |
+| master | 当前稳定版本 | v7.x |
+| develop | 当前开发版本 | v8.x |
+
+克隆代码时,按照需要指定分支信息;本部署文档针对春松客服 v7.x 版本。
+
+## 配置项
+
+以下为部署相关的环境变量,可以在 `.env` 中覆盖默认值。
+
+| KEY | 默认值 | 说明 |
+| -------------------- | ------------------ | ---------------------------------------------- |
+| COMPOSE_FILE | docker-compose.yml | 服务编排描述文件,保持默认值 |
+| COMPOSE_PROJECT_NAME | cskefu | 服务实例的容器前缀,可以用其它字符串 |
+| MYSQL_PORT | 8037 | MySQL 数据库映射到宿主机器使用的端口 |
+| REDIS_PORT | 8041 | Redis 映射到宿主机器的端口 |
+| ES_PORT1 | 8039 | ElasticSearch RestAPI 映射到宿主机器的端口 |
+| ES_PORT2 | 8040 | ElasticSearch 服务发现端口映射到宿主机器的端口 |
+| CC_WEB_PORT | 8035 | 春松客服 Web 服务地址映射到宿主机器的端口 |
+| CC_SOCKET_PORT | 8036 | 春松客服 SocketIO 服务映射到宿主机器的端口 |
+| ACTIVEMQ_PORT1 | 8051 | ActiveMQ 端口 |
+| ACTIVEMQ_PORT2 | 8052 | ActiveMQ 端口 |
+| ACTIVEMQ_PORT2 | 8053 | ActiveMQ 端口 |
+| DB_PASSWD | 123456 | 数据库密码,设置到 MySQL, Redis, ActiveMQ |
+| LOG_LEVEL | INFO | 日志级别,可使用 WARN, ERROR, INFO, DEBUG |
+
+
+
+以上配置中,**端口的各默认值需要保证在宿主机器上还没有被占用;数据库的密码尽量复杂;CC_WEB_PORT 和 CC_SOCKET_PORT 这两个值尽量不要变更;生产环境下 LOG_LEVEL 使用至少 WARN 的级别**。
+
+以下为一些业务功能相关配置的环境变量:
+
+| KEY | 默认值 | 说明 |
+| -------------------- | ----------- | -------------------------------------------------------------------------------------------------------- |
+| TONGJI_BAIDU_SITEKEY | placeholder | 使用[百度统计](https://tongji.baidu.com/web/welcome/login) 记录和查看页面访问情况,默认不记录 |
+| EXTRAS_LOGIN_BANNER | off | 登录页上方展示通知的内容,默认(off)不展示 |
+| EXTRAS_LOGIN_CHATBOX | off | 登录页支持加入一个春松客服网页渠道聊天按钮,比如 )不展示 |
+
+
+
+## 管理命令
+
+### 启动服务
+
+```Bash
+cd cskefu # 进入下载后的文件夹
+docker-compose pull # 拉取镜像
+docker-compose up -d contact-center # 启动服务
+```
+
+### 查看服务状态
+
+```Bash
+docker-compose ps
+```
+
+### 查看服务日志
+
+```Bash
+docker-compose logs -f contact-center
+```
+
+### 登陆系统
+
+在日志中,查看到如下类似信息,代表服务已经启动。
+
+```日志
+INFO c.c.socketio.SocketIOServer - SocketIO server started at port: 8036 [nioEventLoopGroup-2-1]
+INFO com.chatopera.cc.Application - Started Application in 35.319 seconds (JVM running for 42.876) [main]
+```
+
+然后,从浏览器打开 访问服务。
+默认管理员账号: admin 密码: admin1234
+
+### 关闭服务
+
+```Bash
+docker-compose down
+```
+
+### 重启服务
+
+```Bash
+docker-compose restart
+```
+
+## 无网络访问条件下部署
+
+### 利用其他机器
+
+首先,找一个网络条件好的电脑或服务器,安装 docker。
+
+### 下载镜像
+
+然后,在新的电脑下载镜像。
+
+方法,执行命令:
+
+```
+docker pull IMAGE_NAME
+```
+
+IMAGE_NAME 参考 docker-compose.yml 中各服务的 image,
+比如:
+`docker pull cskefu/contact-center:develop`
+
+春松客服包含多个 image。
+
+### 导出镜像
+
+下载好 image 后,导出 image,将所有 image 使用下面命令导出为 tgz 文件
+
+```
+docker save cskefu/contact-center:develop > cc.docker.tgz
+```
+
+### 上传镜像
+
+将所有导出的 image tgz 文件上传到目标部署的服务器
+即网络条件不好的机器,比如用 FTP 工具或 SCP 命令。
+
+### 安装镜像
+
+上传到目标机器后,安装镜像
+`docker load < cc.docker.tgz`
+
+安装成功后,会提示。
+
+### 启动服务
+
+启动春松客服,参考本章以上内容。
+
+```
+cd cskefu # 源文件下载地址
+docker-compose up -d contact-center
+```
+
+
+
+## 下一步
+
+### 配置 HTTPS
+
+- [春松客服配置 CDN 和 HTTPS | 春松客服](https://github.com/cskefu/cskefu/issues/414#issuecomment-1437767407)
+
+### 系统初始化
+
+- [系统初始化:建立组织机构、账号、坐席和角色等](/docs/initialization)
+
+### 系统维护
+
+- [系统维护:备份、升级和恢复回退等](/docs/osc/maintainence)
diff --git a/versioned_docs/version-v7/faq.md b/versioned_docs/version-v7/faq.md
new file mode 100644
index 00000000..dbb2f4a4
--- /dev/null
+++ b/versioned_docs/version-v7/faq.md
@@ -0,0 +1,109 @@
+---
+sidebar_position: 13
+---
+
+# FAQ
+
+以下总结[春松客服](index.html)的大家关心的常问问题,是基于企业客户/开发者的咨询整理而来。
+
+## 问答列表
+
+**问:简单的介绍下这个开源项目吧?**
+
+春松客服是面向中小型企业的智能客服系统。现有提供的功能可以参考我们的 README.md 文件。
+我们强调的智能客服主要是机器人客服以及辅助客服人员的一些功能。语音识别模块,以及我们已经发布的多轮对话设计器、智能问答引擎,很快会集成到春松客服中。
+适用场景包括售前、对话营销。
+
+**问:多轮对话设计器、智能问答引擎,这两个集成后是开源的吗,还是付费使用?**
+
+多轮对话设计器可以免费下载使用, 智能问答引擎还没有开源。参考[Chatopera 云服务](/products/chatbot-platform/index.html)。
+
+**问:请问客户怎么接入?**
+
+部署安装,配置使用。创建网站渠道,查看网站渠道详情有集成指南。
+
+**问:软件怎么收费?**
+
+基础模块不收费,商业插件和服务收费。参考[开源项目地址主页介绍](https://github.com/chatopera/cskefu)。
+
+**问:春松客服支持哪些渠道?**
+
+免费模块目前支持 PC,Mobile 浏览器,开源版本就可以。APP 需要对接 SDK,这个有额外的开发工作,我们可以定制开发。
+
+付费模块支持安装 [Facebook Messenger](channels/messenger/index.html) 渠道插件。
+
+**问:如果我们也需要给商家开坐席,也是能支持的吗?**
+
+支持,春松客服内置的权限,组织机构管理使用参考[账号和权限](accounting.html)。
+
+**问:那怎么能互相交流?后台看到坐席了,前端是不是还要在跑一个程序?**
+
+访客可以用网页客户端插件,参考[文档](work.html)。
+
+**问:有没有 java 项目可以直接导入 idea?**
+
+[开发环境搭建](osc/engineering.html)
+
+**问:为啥我这里客服没有管理员权限就看不到对话?**
+
+权限由“人员-角色-资源”确定。资源又通过部门隔离,参考[cc] resource 根据角色和部门进行权限检查 [#61](https://github.com/chatopera/cskefu/issues/61)
+然后,具体到坐席管理,需要新建一个角色。之后赋予坐席的权限。再加“人员”到这个角色。
+
+**问:我的服务器已经部署过 redis mysql 等服务,对这个项目部署有问题吗?**
+
+那可以直接用,设置环境变量就行。修改一下 docker-compose.yml。
+
+**问:有本地部署的教程文档吗?**
+
+[参考春松客服部署方案](deploy.html)
+
+**问:我想改成异步触发对话,后台重新输出了一下页面作用域里面的值,发现参数太多,web 通信时候调用得 socket.io.js 有没有相关的文档和参数解释?**
+
+[cc] 提供启动客服会话的 RestAPI [#97](https://github.com/chatopera/cosin/issues/97)
+
+**问:由于使用了 netty-socketio,所以 Web 端、android、ios 端都需要使用 socketio 的客户端吧,比如不能说 Android 直接写原生 netty 客户端 或者 web 直接写 websocket 客户端去连服务器,对吧?**
+
+socketio 是对 websocket 进行封装,是 websocket 协议的一种实现,在客户端通过 websocket 连接应该是没问题的。这块我还没有试过,不过肯定能 google 到。
+
+**问:微信功能接进去了吗?**
+
+现在还不支持微信公众号。
+
+**问:机器人自动回复模块在哪?**
+
+机器人客服参考[文档](https://docs.chatopera.comwork-chatbot/index.html)。
+
+**问:多轮对话,看上去就是在编辑脚本,有对分支逻辑的支持吗?**
+
+支持分支编辑,参考
+
+**问:多轮语言的编辑的 开源的也有么**
+
+我们做的不开源。
+
+**问:就是客服开源对吧**
+
+Chatopera 全部开源项目查看 [https://github.com/chatopera](https://github.com/chatopera)。
+
+**问:春松的访客,有匿名用户和注册用户的概念吗**
+
+没有,访客并不注册账号,客服端可以关联联系人。
+
+**问:没有多租户也就是你们没有考虑搞 saas 云喽?要用只能做独立部署?**
+
+春松客服 SaaS 版暂时没有上线时间计划,主要是企业私有部署或部署在 IaaS 云服务内。
+
+**问:现在的最新开源代码,已经完成集群改造了?**
+
+集群还需要调整一点代码,因为目前单机版性能轻松支持 200 位坐席人员同时使用,集群部署还未提上日程。
+
+**问:常用浏览器兼容到的最低版本多少?**
+
+有条件就用最新的,安全性有保证。
+特殊说明微软浏览器:暂时不支持`IE`,请推荐用户使用 Edge 浏览器。
+
+**问:这个项目要怎么启动呢**
+
+- 服务器部署:
+
+- 开发环境搭建:
diff --git a/versioned_docs/version-v7/images/products/assistant/10.png b/versioned_docs/version-v7/images/products/assistant/10.png
new file mode 100644
index 00000000..d7c0e6ce
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/10.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/11.jpg b/versioned_docs/version-v7/images/products/assistant/11.jpg
new file mode 100644
index 00000000..4ab25083
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/11.jpg differ
diff --git a/versioned_docs/version-v7/images/products/assistant/2.png b/versioned_docs/version-v7/images/products/assistant/2.png
new file mode 100644
index 00000000..e578506d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/2.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/3.png b/versioned_docs/version-v7/images/products/assistant/3.png
new file mode 100644
index 00000000..7d4b5c0c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/3.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/4.png b/versioned_docs/version-v7/images/products/assistant/4.png
new file mode 100644
index 00000000..4d560731
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/4.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/5.png b/versioned_docs/version-v7/images/products/assistant/5.png
new file mode 100644
index 00000000..c896b275
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/5.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/6.png b/versioned_docs/version-v7/images/products/assistant/6.png
new file mode 100644
index 00000000..a2846f7e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/6.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/7.png b/versioned_docs/version-v7/images/products/assistant/7.png
new file mode 100644
index 00000000..62d56cbf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/7.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/8.png b/versioned_docs/version-v7/images/products/assistant/8.png
new file mode 100644
index 00000000..3f51e421
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/8.png differ
diff --git a/versioned_docs/version-v7/images/products/assistant/9.png b/versioned_docs/version-v7/images/products/assistant/9.png
new file mode 100644
index 00000000..22886318
Binary files /dev/null and b/versioned_docs/version-v7/images/products/assistant/9.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-1.png b/versioned_docs/version-v7/images/products/cc-bot-1.png
new file mode 100644
index 00000000..621ae943
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-2.png b/versioned_docs/version-v7/images/products/cc-bot-2.png
new file mode 100644
index 00000000..746f2676
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-3.png b/versioned_docs/version-v7/images/products/cc-bot-3.png
new file mode 100644
index 00000000..62bdd4f8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-3.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-4.png b/versioned_docs/version-v7/images/products/cc-bot-4.png
new file mode 100644
index 00000000..f3bdd20a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-5.png b/versioned_docs/version-v7/images/products/cc-bot-5.png
new file mode 100644
index 00000000..81a5f9fb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-5.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-bot-6.png b/versioned_docs/version-v7/images/products/cc-bot-6.png
new file mode 100644
index 00000000..d41bd333
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-bot-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cc-djt-cover.jpg b/versioned_docs/version-v7/images/products/cc-djt-cover.jpg
new file mode 100644
index 00000000..045e4c90
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-djt-cover.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cc-qa-sys.jpg b/versioned_docs/version-v7/images/products/cc-qa-sys.jpg
new file mode 100644
index 00000000..9185dd72
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cc-qa-sys.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cde-launchpad-1.png b/versioned_docs/version-v7/images/products/cde-launchpad-1.png
new file mode 100644
index 00000000..6102c919
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde-launchpad-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde-launchpad-2.png b/versioned_docs/version-v7/images/products/cde-launchpad-2.png
new file mode 100644
index 00000000..3ea3c3a3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde-launchpad-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/43114481-f01ce562-8f31-11e8-9a29-0482a8daffb0.png b/versioned_docs/version-v7/images/products/cde/43114481-f01ce562-8f31-11e8-9a29-0482a8daffb0.png
new file mode 100644
index 00000000..6011a628
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/43114481-f01ce562-8f31-11e8-9a29-0482a8daffb0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/banner.jpg b/versioned_docs/version-v7/images/products/cde/banner.jpg
new file mode 100644
index 00000000..bc9ac0cc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/banner.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-1.png b/versioned_docs/version-v7/images/products/cde/cde-1.png
new file mode 100644
index 00000000..284c8db8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-10.png b/versioned_docs/version-v7/images/products/cde/cde-10.png
new file mode 100644
index 00000000..b424fd95
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-11.png b/versioned_docs/version-v7/images/products/cde/cde-11.png
new file mode 100644
index 00000000..4e7446b0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-11.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-12.png b/versioned_docs/version-v7/images/products/cde/cde-12.png
new file mode 100644
index 00000000..54d7ec00
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-13.png b/versioned_docs/version-v7/images/products/cde/cde-13.png
new file mode 100644
index 00000000..9fddb976
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-13.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-14.png b/versioned_docs/version-v7/images/products/cde/cde-14.png
new file mode 100644
index 00000000..4eba730a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-14.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-15.png b/versioned_docs/version-v7/images/products/cde/cde-15.png
new file mode 100644
index 00000000..3cd0ae93
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-15.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-16.png b/versioned_docs/version-v7/images/products/cde/cde-16.png
new file mode 100644
index 00000000..98e75655
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-17.png b/versioned_docs/version-v7/images/products/cde/cde-17.png
new file mode 100644
index 00000000..f3a9b49a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-17.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-18.png b/versioned_docs/version-v7/images/products/cde/cde-18.png
new file mode 100644
index 00000000..44bbb17f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-18.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-19.png b/versioned_docs/version-v7/images/products/cde/cde-19.png
new file mode 100644
index 00000000..d928a8be
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-19.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-2.jpg b/versioned_docs/version-v7/images/products/cde/cde-2.jpg
new file mode 100644
index 00000000..f27c92ee
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-2.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-20.png b/versioned_docs/version-v7/images/products/cde/cde-20.png
new file mode 100644
index 00000000..5b832f5e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-21.png b/versioned_docs/version-v7/images/products/cde/cde-21.png
new file mode 100644
index 00000000..47a17b95
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-21.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-22.png b/versioned_docs/version-v7/images/products/cde/cde-22.png
new file mode 100644
index 00000000..6c0fba49
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-22.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-23.png b/versioned_docs/version-v7/images/products/cde/cde-23.png
new file mode 100644
index 00000000..402a3398
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-23.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-24.png b/versioned_docs/version-v7/images/products/cde/cde-24.png
new file mode 100644
index 00000000..afed33d9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-24.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-25.png b/versioned_docs/version-v7/images/products/cde/cde-25.png
new file mode 100644
index 00000000..8b4ffc05
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-25.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-26.png b/versioned_docs/version-v7/images/products/cde/cde-26.png
new file mode 100644
index 00000000..27fd6ecc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-26.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-27.png b/versioned_docs/version-v7/images/products/cde/cde-27.png
new file mode 100644
index 00000000..4b7e77b3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-27.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-28.png b/versioned_docs/version-v7/images/products/cde/cde-28.png
new file mode 100644
index 00000000..ebd2f861
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-28.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-29.png b/versioned_docs/version-v7/images/products/cde/cde-29.png
new file mode 100644
index 00000000..7c2f9672
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-29.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-3.png b/versioned_docs/version-v7/images/products/cde/cde-3.png
new file mode 100644
index 00000000..bf8d8222
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-3.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-4.png b/versioned_docs/version-v7/images/products/cde/cde-4.png
new file mode 100644
index 00000000..547634bc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-5.png b/versioned_docs/version-v7/images/products/cde/cde-5.png
new file mode 100644
index 00000000..5355de3b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-5.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-6.png b/versioned_docs/version-v7/images/products/cde/cde-6.png
new file mode 100644
index 00000000..58120d40
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-7.png b/versioned_docs/version-v7/images/products/cde/cde-7.png
new file mode 100644
index 00000000..1ec9808a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-7.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-8.png b/versioned_docs/version-v7/images/products/cde/cde-8.png
new file mode 100644
index 00000000..80d5f857
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-8.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/cde-9.png b/versioned_docs/version-v7/images/products/cde/cde-9.png
new file mode 100644
index 00000000..c0cd4002
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/cde-9.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/chat.png b/versioned_docs/version-v7/images/products/cde/chat.png
new file mode 100644
index 00000000..3d3663d0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/chat.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/chatbot-0.png b/versioned_docs/version-v7/images/products/cde/chatbot-0.png
new file mode 100644
index 00000000..aa63ae36
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/chatbot-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/chatbot-1.png b/versioned_docs/version-v7/images/products/cde/chatbot-1.png
new file mode 100644
index 00000000..51752ee9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/chatbot-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/chatbot-2.png b/versioned_docs/version-v7/images/products/cde/chatbot-2.png
new file mode 100644
index 00000000..05e847a1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/chatbot-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/checkout-0.png b/versioned_docs/version-v7/images/products/cde/checkout-0.png
new file mode 100644
index 00000000..97b04168
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/checkout-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/config-0.png b/versioned_docs/version-v7/images/products/cde/config-0.png
new file mode 100644
index 00000000..d45e501c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/config-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/config-1.png b/versioned_docs/version-v7/images/products/cde/config-1.png
new file mode 100644
index 00000000..945ab515
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/config-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/conversation.png b/versioned_docs/version-v7/images/products/cde/conversation.png
new file mode 100644
index 00000000..cfdeba5d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/conversation.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/debugger.png b/versioned_docs/version-v7/images/products/cde/debugger.png
new file mode 100644
index 00000000..c9ffd50f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/debugger.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/diff-0.png b/versioned_docs/version-v7/images/products/cde/diff-0.png
new file mode 100644
index 00000000..ee5120c3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/diff-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/diff-1.png b/versioned_docs/version-v7/images/products/cde/diff-1.png
new file mode 100644
index 00000000..a00e4fae
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/diff-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/diff-2.png b/versioned_docs/version-v7/images/products/cde/diff-2.png
new file mode 100644
index 00000000..956f1092
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/diff-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/diff-3.png b/versioned_docs/version-v7/images/products/cde/diff-3.png
new file mode 100644
index 00000000..aa4e3301
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/diff-3.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/diff-4.png b/versioned_docs/version-v7/images/products/cde/diff-4.png
new file mode 100644
index 00000000..f2ff011f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/diff-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/export-0.png b/versioned_docs/version-v7/images/products/cde/export-0.png
new file mode 100644
index 00000000..2fa1269f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/export-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/export-1.png b/versioned_docs/version-v7/images/products/cde/export-1.png
new file mode 100644
index 00000000..c0065f5f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/export-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/flow.png b/versioned_docs/version-v7/images/products/cde/flow.png
new file mode 100644
index 00000000..9e4ea5e4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/flow.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/function.png b/versioned_docs/version-v7/images/products/cde/function.png
new file mode 100644
index 00000000..001a5751
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/function.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/import-0.png b/versioned_docs/version-v7/images/products/cde/import-0.png
new file mode 100644
index 00000000..c00bda52
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/import-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/import-1.png b/versioned_docs/version-v7/images/products/cde/import-1.png
new file mode 100644
index 00000000..77c0054c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/import-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/import-2.png b/versioned_docs/version-v7/images/products/cde/import-2.png
new file mode 100644
index 00000000..01ee7c50
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/import-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/mac-homepage.png b/versioned_docs/version-v7/images/products/cde/mac-homepage.png
new file mode 100644
index 00000000..0e0fadaf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/mac-homepage.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/mac-install-0.png b/versioned_docs/version-v7/images/products/cde/mac-install-0.png
new file mode 100644
index 00000000..b69da4fe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/mac-install-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/mac-install-1.png b/versioned_docs/version-v7/images/products/cde/mac-install-1.png
new file mode 100644
index 00000000..daa7a98e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/mac-install-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/manage-0.png b/versioned_docs/version-v7/images/products/cde/manage-0.png
new file mode 100644
index 00000000..3be34579
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/manage-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/manage-1.png b/versioned_docs/version-v7/images/products/cde/manage-1.png
new file mode 100644
index 00000000..2fbf21d1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/manage-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/manner-conversation.png b/versioned_docs/version-v7/images/products/cde/manner-conversation.png
new file mode 100644
index 00000000..20ccb1fd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/manner-conversation.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/manner-version-0.png b/versioned_docs/version-v7/images/products/cde/manner-version-0.png
new file mode 100644
index 00000000..a323d40c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/manner-version-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/manner-version-1.png b/versioned_docs/version-v7/images/products/cde/manner-version-1.png
new file mode 100644
index 00000000..dba120ca
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/manner-version-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/new-conversation-0.png b/versioned_docs/version-v7/images/products/cde/new-conversation-0.png
new file mode 100644
index 00000000..2f1c0a73
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/new-conversation-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/new-conversation-1.png b/versioned_docs/version-v7/images/products/cde/new-conversation-1.png
new file mode 100644
index 00000000..0173396a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/new-conversation-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/new-conversation-2.png b/versioned_docs/version-v7/images/products/cde/new-conversation-2.png
new file mode 100644
index 00000000..1bd20e48
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/new-conversation-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/release-0.png b/versioned_docs/version-v7/images/products/cde/release-0.png
new file mode 100644
index 00000000..8345f3d8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/release-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/release-1.png b/versioned_docs/version-v7/images/products/cde/release-1.png
new file mode 100644
index 00000000..a2906008
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/release-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/release-2.png b/versioned_docs/version-v7/images/products/cde/release-2.png
new file mode 100644
index 00000000..d4e088ed
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/release-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cde/windows-homepage.png b/versioned_docs/version-v7/images/products/cde/windows-homepage.png
new file mode 100644
index 00000000..76377cc8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cde/windows-homepage.png differ
diff --git a/versioned_docs/version-v7/images/products/chatbot-engine-1.png b/versioned_docs/version-v7/images/products/chatbot-engine-1.png
new file mode 100644
index 00000000..9ceb80d5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/chatbot-engine-1.png differ
diff --git a/versioned_docs/version-v7/images/products/chatopera_gzh_1.png b/versioned_docs/version-v7/images/products/chatopera_gzh_1.png
new file mode 100644
index 00000000..4a001b3c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/chatopera_gzh_1.png differ
diff --git a/versioned_docs/version-v7/images/products/chatopera_love_os.png b/versioned_docs/version-v7/images/products/chatopera_love_os.png
new file mode 100644
index 00000000..feaadbf6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/chatopera_love_os.png differ
diff --git a/versioned_docs/version-v7/images/products/chatopera_superbrain_architecture.png b/versioned_docs/version-v7/images/products/chatopera_superbrain_architecture.png
new file mode 100644
index 00000000..b634e691
Binary files /dev/null and b/versioned_docs/version-v7/images/products/chatopera_superbrain_architecture.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47127371-6fbc5480-d2bf-11e8-9983-b6f79e97cbf1.png b/versioned_docs/version-v7/images/products/cosin/47127371-6fbc5480-d2bf-11e8-9983-b6f79e97cbf1.png
new file mode 100644
index 00000000..e1f2a59d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47127371-6fbc5480-d2bf-11e8-9983-b6f79e97cbf1.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47127504-f96c2200-d2bf-11e8-9366-d598b24f0f80.png b/versioned_docs/version-v7/images/products/cosin/47127504-f96c2200-d2bf-11e8-9366-d598b24f0f80.png
new file mode 100644
index 00000000..d0757fb1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47127504-f96c2200-d2bf-11e8-9366-d598b24f0f80.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47127885-92e80380-d2c1-11e8-913e-ace93839f9d5.png b/versioned_docs/version-v7/images/products/cosin/47127885-92e80380-d2c1-11e8-913e-ace93839f9d5.png
new file mode 100644
index 00000000..615d795c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47127885-92e80380-d2c1-11e8-913e-ace93839f9d5.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47128338-5f0ddd80-d2c3-11e8-8581-65f3c1321474.png b/versioned_docs/version-v7/images/products/cosin/47128338-5f0ddd80-d2c3-11e8-8581-65f3c1321474.png
new file mode 100644
index 00000000..ae7d0816
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47128338-5f0ddd80-d2c3-11e8-8581-65f3c1321474.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47128735-0dfee900-d2c5-11e8-9947-59e69e70d477.png b/versioned_docs/version-v7/images/products/cosin/47128735-0dfee900-d2c5-11e8-9947-59e69e70d477.png
new file mode 100644
index 00000000..d0392e16
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47128735-0dfee900-d2c5-11e8-9947-59e69e70d477.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47128812-72ba4380-d2c5-11e8-83cd-d820af98f5d5.png b/versioned_docs/version-v7/images/products/cosin/47128812-72ba4380-d2c5-11e8-83cd-d820af98f5d5.png
new file mode 100644
index 00000000..a6c37085
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47128812-72ba4380-d2c5-11e8-83cd-d820af98f5d5.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/47128866-a9905980-d2c5-11e8-885a-06bc8f9cd890.png b/versioned_docs/version-v7/images/products/cosin/47128866-a9905980-d2c5-11e8-885a-06bc8f9cd890.png
new file mode 100644
index 00000000..c8b16107
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/47128866-a9905980-d2c5-11e8-885a-06bc8f9cd890.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture1.png b/versioned_docs/version-v7/images/products/cosin/Picture1.png
new file mode 100644
index 00000000..5bcf9b8c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture1.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture10.png b/versioned_docs/version-v7/images/products/cosin/Picture10.png
new file mode 100644
index 00000000..ebeb43c8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture10.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture11.png b/versioned_docs/version-v7/images/products/cosin/Picture11.png
new file mode 100644
index 00000000..95e3c768
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture11.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture12.png b/versioned_docs/version-v7/images/products/cosin/Picture12.png
new file mode 100644
index 00000000..a238dcbe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture12.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture13.png b/versioned_docs/version-v7/images/products/cosin/Picture13.png
new file mode 100644
index 00000000..ebed8b9e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture13.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture14.png b/versioned_docs/version-v7/images/products/cosin/Picture14.png
new file mode 100644
index 00000000..f1399e68
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture14.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture15.png b/versioned_docs/version-v7/images/products/cosin/Picture15.png
new file mode 100644
index 00000000..60735480
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture15.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture16.png b/versioned_docs/version-v7/images/products/cosin/Picture16.png
new file mode 100644
index 00000000..654501eb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture16.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture17.png b/versioned_docs/version-v7/images/products/cosin/Picture17.png
new file mode 100644
index 00000000..87086b8f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture17.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture18.png b/versioned_docs/version-v7/images/products/cosin/Picture18.png
new file mode 100644
index 00000000..5ceb2a08
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture18.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture19.png b/versioned_docs/version-v7/images/products/cosin/Picture19.png
new file mode 100644
index 00000000..ff9dc886
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture19.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture2.png b/versioned_docs/version-v7/images/products/cosin/Picture2.png
new file mode 100644
index 00000000..ce032bfc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture2.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture20.png b/versioned_docs/version-v7/images/products/cosin/Picture20.png
new file mode 100644
index 00000000..16715224
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture20.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture21.png b/versioned_docs/version-v7/images/products/cosin/Picture21.png
new file mode 100644
index 00000000..480a100b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture21.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture22.png b/versioned_docs/version-v7/images/products/cosin/Picture22.png
new file mode 100644
index 00000000..106f9cb5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture22.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture23.png b/versioned_docs/version-v7/images/products/cosin/Picture23.png
new file mode 100644
index 00000000..48b093ff
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture23.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture24.png b/versioned_docs/version-v7/images/products/cosin/Picture24.png
new file mode 100644
index 00000000..1b5784cf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture24.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture25.png b/versioned_docs/version-v7/images/products/cosin/Picture25.png
new file mode 100644
index 00000000..fa957925
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture25.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture26.png b/versioned_docs/version-v7/images/products/cosin/Picture26.png
new file mode 100644
index 00000000..d3ed7724
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture26.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture27.png b/versioned_docs/version-v7/images/products/cosin/Picture27.png
new file mode 100644
index 00000000..c388db41
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture27.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture28.png b/versioned_docs/version-v7/images/products/cosin/Picture28.png
new file mode 100644
index 00000000..c61e81b9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture28.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture29.png b/versioned_docs/version-v7/images/products/cosin/Picture29.png
new file mode 100644
index 00000000..d3b646c8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture29.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture3.png b/versioned_docs/version-v7/images/products/cosin/Picture3.png
new file mode 100644
index 00000000..5656a566
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture3.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture30.png b/versioned_docs/version-v7/images/products/cosin/Picture30.png
new file mode 100644
index 00000000..5326753d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture30.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture31.png b/versioned_docs/version-v7/images/products/cosin/Picture31.png
new file mode 100644
index 00000000..83563690
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture31.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture32.png b/versioned_docs/version-v7/images/products/cosin/Picture32.png
new file mode 100644
index 00000000..fb68f790
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture32.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture33.png b/versioned_docs/version-v7/images/products/cosin/Picture33.png
new file mode 100644
index 00000000..3a11a14d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture33.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture34.png b/versioned_docs/version-v7/images/products/cosin/Picture34.png
new file mode 100644
index 00000000..53f42928
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture34.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture35.png b/versioned_docs/version-v7/images/products/cosin/Picture35.png
new file mode 100644
index 00000000..9b3503b7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture35.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture36.png b/versioned_docs/version-v7/images/products/cosin/Picture36.png
new file mode 100644
index 00000000..9f562749
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture36.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture37.png b/versioned_docs/version-v7/images/products/cosin/Picture37.png
new file mode 100644
index 00000000..e9c8e43f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture37.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture38.png b/versioned_docs/version-v7/images/products/cosin/Picture38.png
new file mode 100644
index 00000000..a296fcf0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture38.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture39.png b/versioned_docs/version-v7/images/products/cosin/Picture39.png
new file mode 100644
index 00000000..b338c395
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture39.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture4.png b/versioned_docs/version-v7/images/products/cosin/Picture4.png
new file mode 100644
index 00000000..283e0c29
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture4.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture40.png b/versioned_docs/version-v7/images/products/cosin/Picture40.png
new file mode 100644
index 00000000..95189797
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture40.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture41.png b/versioned_docs/version-v7/images/products/cosin/Picture41.png
new file mode 100644
index 00000000..0961e7f5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture41.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture42.png b/versioned_docs/version-v7/images/products/cosin/Picture42.png
new file mode 100644
index 00000000..20bbd6d5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture42.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture43.png b/versioned_docs/version-v7/images/products/cosin/Picture43.png
new file mode 100644
index 00000000..8f832d17
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture43.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture44.png b/versioned_docs/version-v7/images/products/cosin/Picture44.png
new file mode 100644
index 00000000..64271e1d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture44.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture45.png b/versioned_docs/version-v7/images/products/cosin/Picture45.png
new file mode 100644
index 00000000..38331c46
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture45.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture46.png b/versioned_docs/version-v7/images/products/cosin/Picture46.png
new file mode 100644
index 00000000..6b12d3f7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture46.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture47.png b/versioned_docs/version-v7/images/products/cosin/Picture47.png
new file mode 100644
index 00000000..c2d3c910
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture47.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture48.png b/versioned_docs/version-v7/images/products/cosin/Picture48.png
new file mode 100644
index 00000000..bd21d1db
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture48.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture49.png b/versioned_docs/version-v7/images/products/cosin/Picture49.png
new file mode 100644
index 00000000..78fdf1f2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture49.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture5.png b/versioned_docs/version-v7/images/products/cosin/Picture5.png
new file mode 100644
index 00000000..dc3f84a5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture5.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture50.png b/versioned_docs/version-v7/images/products/cosin/Picture50.png
new file mode 100644
index 00000000..a9a75353
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture50.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture51.png b/versioned_docs/version-v7/images/products/cosin/Picture51.png
new file mode 100644
index 00000000..5cdf3688
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture51.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture52.png b/versioned_docs/version-v7/images/products/cosin/Picture52.png
new file mode 100644
index 00000000..82b0435f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture52.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture53.png b/versioned_docs/version-v7/images/products/cosin/Picture53.png
new file mode 100644
index 00000000..e4154587
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture53.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture54.png b/versioned_docs/version-v7/images/products/cosin/Picture54.png
new file mode 100644
index 00000000..ed6e7fbc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture54.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture55.png b/versioned_docs/version-v7/images/products/cosin/Picture55.png
new file mode 100644
index 00000000..7bb5900b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture55.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture56.png b/versioned_docs/version-v7/images/products/cosin/Picture56.png
new file mode 100644
index 00000000..abcd890a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture56.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture57.png b/versioned_docs/version-v7/images/products/cosin/Picture57.png
new file mode 100644
index 00000000..460273f8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture57.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture58png.png b/versioned_docs/version-v7/images/products/cosin/Picture58png.png
new file mode 100644
index 00000000..2053981b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture58png.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture59.png b/versioned_docs/version-v7/images/products/cosin/Picture59.png
new file mode 100644
index 00000000..4e0021cb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture59.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture6.png b/versioned_docs/version-v7/images/products/cosin/Picture6.png
new file mode 100644
index 00000000..deaac54b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture6.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture60.png b/versioned_docs/version-v7/images/products/cosin/Picture60.png
new file mode 100644
index 00000000..3e9b6a3e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture60.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture62.png b/versioned_docs/version-v7/images/products/cosin/Picture62.png
new file mode 100644
index 00000000..166cbfc6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture62.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture63.png b/versioned_docs/version-v7/images/products/cosin/Picture63.png
new file mode 100644
index 00000000..4bbbef3e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture63.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture64.png b/versioned_docs/version-v7/images/products/cosin/Picture64.png
new file mode 100644
index 00000000..ecca8f02
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture64.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture65.png b/versioned_docs/version-v7/images/products/cosin/Picture65.png
new file mode 100644
index 00000000..db51fad4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture65.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture66.png b/versioned_docs/version-v7/images/products/cosin/Picture66.png
new file mode 100644
index 00000000..208268b2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture66.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture67.png b/versioned_docs/version-v7/images/products/cosin/Picture67.png
new file mode 100644
index 00000000..49f81525
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture67.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture68.png b/versioned_docs/version-v7/images/products/cosin/Picture68.png
new file mode 100644
index 00000000..7ee5cedd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture68.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture69.png b/versioned_docs/version-v7/images/products/cosin/Picture69.png
new file mode 100644
index 00000000..f0593196
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture69.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture7.png b/versioned_docs/version-v7/images/products/cosin/Picture7.png
new file mode 100644
index 00000000..c872d3fd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture7.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture70.png b/versioned_docs/version-v7/images/products/cosin/Picture70.png
new file mode 100644
index 00000000..bfeb8239
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture70.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture71.png b/versioned_docs/version-v7/images/products/cosin/Picture71.png
new file mode 100644
index 00000000..69dc969b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture71.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture72.png b/versioned_docs/version-v7/images/products/cosin/Picture72.png
new file mode 100644
index 00000000..29e3f02e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture72.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture73.png b/versioned_docs/version-v7/images/products/cosin/Picture73.png
new file mode 100644
index 00000000..d56451c5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture73.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture74.png b/versioned_docs/version-v7/images/products/cosin/Picture74.png
new file mode 100644
index 00000000..8800fd69
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture74.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture8.png b/versioned_docs/version-v7/images/products/cosin/Picture8.png
new file mode 100644
index 00000000..a516435f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture8.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/Picture9.png b/versioned_docs/version-v7/images/products/cosin/Picture9.png
new file mode 100644
index 00000000..c1a1d832
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/Picture9.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/b1.jpg b/versioned_docs/version-v7/images/products/cosin/b1.jpg
new file mode 100644
index 00000000..bb89d981
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/b1.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/b2.jpg b/versioned_docs/version-v7/images/products/cosin/b2.jpg
new file mode 100644
index 00000000..93106cd0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/b2.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-1.png b/versioned_docs/version-v7/images/products/cosin/cards/image-1.png
new file mode 100644
index 00000000..471d7a24
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-10.png b/versioned_docs/version-v7/images/products/cosin/cards/image-10.png
new file mode 100644
index 00000000..fc1fa335
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-11.png b/versioned_docs/version-v7/images/products/cosin/cards/image-11.png
new file mode 100644
index 00000000..db29f8b2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-11.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-12.png b/versioned_docs/version-v7/images/products/cosin/cards/image-12.png
new file mode 100644
index 00000000..3c95aa78
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-13.png b/versioned_docs/version-v7/images/products/cosin/cards/image-13.png
new file mode 100644
index 00000000..0175a829
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-13.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-2.png b/versioned_docs/version-v7/images/products/cosin/cards/image-2.png
new file mode 100644
index 00000000..239ca2f3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-3.png b/versioned_docs/version-v7/images/products/cosin/cards/image-3.png
new file mode 100644
index 00000000..eef0eba7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-3.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-4.png b/versioned_docs/version-v7/images/products/cosin/cards/image-4.png
new file mode 100644
index 00000000..12bdc805
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-5.png b/versioned_docs/version-v7/images/products/cosin/cards/image-5.png
new file mode 100644
index 00000000..8a1cab36
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-5.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-6.png b/versioned_docs/version-v7/images/products/cosin/cards/image-6.png
new file mode 100644
index 00000000..05d575cf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-7.png b/versioned_docs/version-v7/images/products/cosin/cards/image-7.png
new file mode 100644
index 00000000..caa17a64
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-7.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-8.png b/versioned_docs/version-v7/images/products/cosin/cards/image-8.png
new file mode 100644
index 00000000..17477b7a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-8.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/cards/image-9.png b/versioned_docs/version-v7/images/products/cosin/cards/image-9.png
new file mode 100644
index 00000000..87412fca
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/cards/image-9.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/faq-work-ass.png b/versioned_docs/version-v7/images/products/cosin/faq-work-ass.png
new file mode 100644
index 00000000..ba02eeee
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/faq-work-ass.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g1.jpg b/versioned_docs/version-v7/images/products/cosin/g1.jpg
new file mode 100644
index 00000000..39aa33c1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g1.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g10.png b/versioned_docs/version-v7/images/products/cosin/g10.png
new file mode 100644
index 00000000..847b085f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g10.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g11.png b/versioned_docs/version-v7/images/products/cosin/g11.png
new file mode 100644
index 00000000..9ac5647b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g11.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g12.png b/versioned_docs/version-v7/images/products/cosin/g12.png
new file mode 100644
index 00000000..8bb76f9c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g12.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g13.png b/versioned_docs/version-v7/images/products/cosin/g13.png
new file mode 100644
index 00000000..64b11c4f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g13.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g14.png b/versioned_docs/version-v7/images/products/cosin/g14.png
new file mode 100644
index 00000000..10393464
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g14.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g15.png b/versioned_docs/version-v7/images/products/cosin/g15.png
new file mode 100644
index 00000000..7b9a3c3f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g15.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g16.png b/versioned_docs/version-v7/images/products/cosin/g16.png
new file mode 100644
index 00000000..e412e94b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g16.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g17.png b/versioned_docs/version-v7/images/products/cosin/g17.png
new file mode 100644
index 00000000..b1b7e02e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g17.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g18.png b/versioned_docs/version-v7/images/products/cosin/g18.png
new file mode 100644
index 00000000..794cb2c2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g18.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g19.png b/versioned_docs/version-v7/images/products/cosin/g19.png
new file mode 100644
index 00000000..c313343a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g19.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g2.jpg b/versioned_docs/version-v7/images/products/cosin/g2.jpg
new file mode 100644
index 00000000..c0aaa786
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g2.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g20.png b/versioned_docs/version-v7/images/products/cosin/g20.png
new file mode 100644
index 00000000..2642623e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g20.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g21.png b/versioned_docs/version-v7/images/products/cosin/g21.png
new file mode 100644
index 00000000..559283d2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g21.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g22.png b/versioned_docs/version-v7/images/products/cosin/g22.png
new file mode 100644
index 00000000..6766ad47
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g22.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g23.jpg b/versioned_docs/version-v7/images/products/cosin/g23.jpg
new file mode 100644
index 00000000..1516764d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g23.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g24.jpg b/versioned_docs/version-v7/images/products/cosin/g24.jpg
new file mode 100644
index 00000000..570f92e0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g24.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g25.jpg b/versioned_docs/version-v7/images/products/cosin/g25.jpg
new file mode 100644
index 00000000..2d22c229
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g25.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g3.jpg b/versioned_docs/version-v7/images/products/cosin/g3.jpg
new file mode 100644
index 00000000..63a3a286
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g3.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g4.jpg b/versioned_docs/version-v7/images/products/cosin/g4.jpg
new file mode 100644
index 00000000..727daac8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g4.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g5.png b/versioned_docs/version-v7/images/products/cosin/g5.png
new file mode 100644
index 00000000..e15c735c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g5.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g6.png b/versioned_docs/version-v7/images/products/cosin/g6.png
new file mode 100644
index 00000000..9f4d0c63
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g6.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g7.png b/versioned_docs/version-v7/images/products/cosin/g7.png
new file mode 100644
index 00000000..c49a49a9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g7.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g8.png b/versioned_docs/version-v7/images/products/cosin/g8.png
new file mode 100644
index 00000000..fd53c4e9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g8.png differ
diff --git a/versioned_docs/version-v7/images/products/cosin/g9.png b/versioned_docs/version-v7/images/products/cosin/g9.png
new file mode 100644
index 00000000..5bc507f4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cosin/g9.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu-full-logo.png b/versioned_docs/version-v7/images/products/cskefu-full-logo.png
new file mode 100644
index 00000000..c819a0d6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu-full-logo.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-2.jpg b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-2.jpg
new file mode 100644
index 00000000..f6b4afc6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-2.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-3.jpg b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-3.jpg
new file mode 100644
index 00000000..6ac9a57e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions-3.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions.jpg b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions.jpg
new file mode 100644
index 00000000..d645ea06
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/2-3.accout-n-permissions.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/98638023-436f4700-2364-11eb-922d-801ade42d397.png b/versioned_docs/version-v7/images/products/cskefu/98638023-436f4700-2364-11eb-922d-801ade42d397.png
new file mode 100644
index 00000000..772ec45f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/98638023-436f4700-2364-11eb-922d-801ade42d397.png differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143006.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143006.png"
new file mode 100644
index 00000000..583dc877
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143006.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143142.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143142.png"
new file mode 100644
index 00000000..6d711672
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143142.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143322.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143322.png"
new file mode 100644
index 00000000..db767f7d
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143322.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143559.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143559.png"
new file mode 100644
index 00000000..787fb1e6
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143559.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143632.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143632.png"
new file mode 100644
index 00000000..3fe0da38
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624143632.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151732.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151732.png"
new file mode 100644
index 00000000..12cd427f
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151732.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151803.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151803.png"
new file mode 100644
index 00000000..4632d60f
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624151803.png" differ
diff --git "a/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624154218.png" "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624154218.png"
new file mode 100644
index 00000000..c965ffce
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/cskefu/QQ\346\210\252\345\233\27620220624154218.png" differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161422.png b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161422.png
new file mode 100644
index 00000000..1b30f436
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161422.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161436.png b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161436.png
new file mode 100644
index 00000000..f8eff7f9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161436.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161512.png b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161512.png
new file mode 100644
index 00000000..f0f7a636
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/account/screenshot-20211129-161512.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/cskefu-wechat-gzh.png b/versioned_docs/version-v7/images/products/cskefu/cskefu-wechat-gzh.png
new file mode 100644
index 00000000..129677af
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/cskefu-wechat-gzh.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/customers-2021.jpg b/versioned_docs/version-v7/images/products/cskefu/customers-2021.jpg
new file mode 100644
index 00000000..6df87455
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/customers-2021.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/git-scm-intro.png b/versioned_docs/version-v7/images/products/cskefu/git-scm-intro.png
new file mode 100644
index 00000000..ab2125c4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/git-scm-intro.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-12-2.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-12-2.png
new file mode 100644
index 00000000..c153104b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-12-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-17-16.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-17-16.png
new file mode 100644
index 00000000..dd07e7c8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-17-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-19-58.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-19-58.png
new file mode 100644
index 00000000..0e2ad928
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-19-58.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-2-0.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-2-0.png
new file mode 100644
index 00000000..ffa98311
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-2-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-23-2.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-23-2.png
new file mode 100644
index 00000000..832ff761
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-23-2.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-27-10.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-27-10.png
new file mode 100644
index 00000000..0cbb5f5f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-27-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-29-59.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-29-59.png
new file mode 100644
index 00000000..29dcd94a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-29-59.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-32-12.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-32-12.png
new file mode 100644
index 00000000..6d7b53eb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-32-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-37-25.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-37-25.png
new file mode 100644
index 00000000..d1982249
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-37-25.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-39-57.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-39-57.png
new file mode 100644
index 00000000..06d0bfeb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-39-57.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-7-59.png b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-7-59.png
new file mode 100644
index 00000000..b3d81bbb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2019-11-19_16-7-59.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_14-59-23.png b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_14-59-23.png
new file mode 100644
index 00000000..ca0df0b9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_14-59-23.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-20-49.png b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-20-49.png
new file mode 100644
index 00000000..f01eb092
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-20-49.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-21-52.png b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-21-52.png
new file mode 100644
index 00000000..38b675c9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-21-52.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-36-7.png b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-36-7.png
new file mode 100644
index 00000000..18ff3a47
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-36-7.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-6-25.png b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-6-25.png
new file mode 100644
index 00000000..407368c4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2021-12-4_16-6-25.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-53-32.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-53-32.png
new file mode 100644
index 00000000..e124968c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-53-32.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-54-15.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-54-15.png
new file mode 100644
index 00000000..e5ef94c2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-54-15.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-55-16.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-55-16.png
new file mode 100644
index 00000000..3724ba5a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-55-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-56-34.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-56-34.png
new file mode 100644
index 00000000..e9c67990
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_15-56-34.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-0-40.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-0-40.png
new file mode 100644
index 00000000..574d7b00
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-0-40.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-10-31.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-10-31.png
new file mode 100644
index 00000000..4f7e05e1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-10-31.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-12-56.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-12-56.png
new file mode 100644
index 00000000..6bc35e81
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-12-56.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-14-16.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-14-16.png
new file mode 100644
index 00000000..9c54f5ab
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-14-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-16-43.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-16-43.png
new file mode 100644
index 00000000..0d361920
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-16-43.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-23-28.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-23-28.png
new file mode 100644
index 00000000..34c50c41
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-23-28.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-25-4.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-25-4.png
new file mode 100644
index 00000000..5a49aea6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-25-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-28-16.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-28-16.png
new file mode 100644
index 00000000..9ccfed50
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-28-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-6-21.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-6-21.png
new file mode 100644
index 00000000..ea5afb01
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-6-21.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-7-20.png b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-7-20.png
new file mode 100644
index 00000000..f29f0393
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/image2022-3-26_16-7-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/init-1.jpg b/versioned_docs/version-v7/images/products/cskefu/init-1.jpg
new file mode 100644
index 00000000..774f9222
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/init-1.jpg differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-19-120353.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-19-120353.png
new file mode 100644
index 00000000..af81aaec
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-19-120353.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-23-104502.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-23-104502.png
new file mode 100644
index 00000000..1f7d03f4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image-2021-02-23-104502.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-13-27.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-13-27.png
new file mode 100644
index 00000000..51ccca6d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-13-27.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-21-20.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-21-20.png
new file mode 100644
index 00000000..b1ea3775
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_16-21-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-41-6.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-41-6.png
new file mode 100644
index 00000000..77d077a0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-41-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-3.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-3.png
new file mode 100644
index 00000000..c0a87f05
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-3.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-38.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-38.png
new file mode 100644
index 00000000..ef58a3bc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_17-44-38.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_19-31-55.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_19-31-55.png
new file mode 100644
index 00000000..6c5100d4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_19-31-55.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-53-46.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-53-46.png
new file mode 100644
index 00000000..964d6c33
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-53-46.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-54-13.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-54-13.png
new file mode 100644
index 00000000..ee14c142
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-54-13.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-59-11.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-59-11.png
new file mode 100644
index 00000000..d0fbf191
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_2-59-11.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-16-21.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-16-21.png
new file mode 100644
index 00000000..26a0c3b7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-16-21.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-18-8.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-18-8.png
new file mode 100644
index 00000000..c96d3f8c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-18-8.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-19-29.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-19-29.png
new file mode 100644
index 00000000..35dccc48
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-19-29.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-2-0.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-2-0.png
new file mode 100644
index 00000000..a99796dd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-2-0.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-23-24.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-23-24.png
new file mode 100644
index 00000000..8e5c4b90
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-23-24.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-28-5.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-28-5.png
new file mode 100644
index 00000000..b8deb489
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-28-5.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-35-16.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-35-16.png
new file mode 100644
index 00000000..baeb5222
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-35-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-9-54.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-9-54.png
new file mode 100644
index 00000000..27f8e011
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-10_3-9-54.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_19-58-6.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_19-58-6.png
new file mode 100644
index 00000000..1029dc26
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_19-58-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_20-14-52.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_20-14-52.png
new file mode 100644
index 00000000..5dac8549
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-1_20-14-52.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_19-55-57.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_19-55-57.png
new file mode 100644
index 00000000..11aa3a3e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_19-55-57.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-10-36.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-10-36.png
new file mode 100644
index 00000000..16749bbb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-10-36.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-16-29.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-16-29.png
new file mode 100644
index 00000000..5bdce50e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-16-29.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-23-51.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-23-51.png
new file mode 100644
index 00000000..8b876cde
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-23-51.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-25-7.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-25-7.png
new file mode 100644
index 00000000..80f7f58b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-25-7.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-26-36.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-26-36.png
new file mode 100644
index 00000000..83de111a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-26-36.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-29-20.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-29-20.png
new file mode 100644
index 00000000..267681a3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-29-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-31-30.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-31-30.png
new file mode 100644
index 00000000..bb19f0e2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-31-30.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-57-26.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-57-26.png
new file mode 100644
index 00000000..67c04e34
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-57-26.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-8-47.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-8-47.png
new file mode 100644
index 00000000..a9d8700d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_20-8-47.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-1-50.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-1-50.png
new file mode 100644
index 00000000..b72eea18
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-1-50.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-13-16.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-13-16.png
new file mode 100644
index 00000000..36615f58
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-13-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-14-51.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-14-51.png
new file mode 100644
index 00000000..b9dd22a1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-14-51.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-17-50.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-17-50.png
new file mode 100644
index 00000000..5bcb6c3d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-17-50.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-2-40.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-2-40.png
new file mode 100644
index 00000000..e6d7487c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-2-40.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-21-26.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-21-26.png
new file mode 100644
index 00000000..393f1afb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-21-26.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-28-24.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-28-24.png
new file mode 100644
index 00000000..32639013
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-28-24.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-31-16.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-31-16.png
new file mode 100644
index 00000000..81bb7690
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-31-16.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-43-12.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-43-12.png
new file mode 100644
index 00000000..c50b79d4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-43-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-45-29.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-45-29.png
new file mode 100644
index 00000000..1d530c3c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-45-29.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-51-20.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-51-20.png
new file mode 100644
index 00000000..284224e9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-51-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-6-18.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-6-18.png
new file mode 100644
index 00000000..f93c2f04
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-6-18.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-8-47.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-8-47.png
new file mode 100644
index 00000000..6104b7d3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_21-8-47.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-11-12.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-11-12.png
new file mode 100644
index 00000000..e3b46b8f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-11-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-30-46.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-30-46.png
new file mode 100644
index 00000000..38a320ae
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-30-46.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-31-45.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-31-45.png
new file mode 100644
index 00000000..9d2cd55c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-31-45.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-32-21.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-32-21.png
new file mode 100644
index 00000000..e26fe2d1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-32-21.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-46.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-46.png
new file mode 100644
index 00000000..9ca515f4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-46.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-6.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-6.png
new file mode 100644
index 00000000..1ed733a8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-39-6.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-40-20.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-40-20.png
new file mode 100644
index 00000000..0ea89e6f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-40-20.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-45-10.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-45-10.png
new file mode 100644
index 00000000..5af81592
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-2_22-45-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-0-10.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-0-10.png
new file mode 100644
index 00000000..35bafa8c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-0-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-2-31.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-2-31.png
new file mode 100644
index 00000000..8e33b93e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_10-2-31.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_9-57-27.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_9-57-27.png
new file mode 100644
index 00000000..9b9706a5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-3_9-57-27.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_14-30-15.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_14-30-15.png
new file mode 100644
index 00000000..be5c26a1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_14-30-15.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_23-59-8.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_23-59-8.png
new file mode 100644
index 00000000..56ab95eb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-4_23-59-8.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-0-35.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-0-35.png
new file mode 100644
index 00000000..1a5663e9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-0-35.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-6-56.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-6-56.png
new file mode 100644
index 00000000..81c2b1fc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_0-6-56.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_10-9-5.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_10-9-5.png
new file mode 100644
index 00000000..ff6e60fc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_10-9-5.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-27-10.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-27-10.png
new file mode 100644
index 00000000..a8217a00
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-27-10.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-31-50.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-31-50.png
new file mode 100644
index 00000000..bb2e5e7e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-31-50.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-37-46.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-37-46.png
new file mode 100644
index 00000000..3e43b7c8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-37-46.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-43-12.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-43-12.png
new file mode 100644
index 00000000..11c6e0fb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-43-12.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-46-49.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-46-49.png
new file mode 100644
index 00000000..8b479d44
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-46-49.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-48-25.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-48-25.png
new file mode 100644
index 00000000..5907da99
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_17-48-25.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-20-14.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-20-14.png
new file mode 100644
index 00000000..085cb98c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-20-14.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-23-19.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-23-19.png
new file mode 100644
index 00000000..05cc4ca4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-23-19.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-3-7.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-3-7.png
new file mode 100644
index 00000000..58849e37
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-3-7.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-45-39.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-45-39.png
new file mode 100644
index 00000000..acf5df3d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-45-39.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-48-11.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-48-11.png
new file mode 100644
index 00000000..e80c4af4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-48-11.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-8-24.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-8-24.png
new file mode 100644
index 00000000..3537efea
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_23-8-24.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_9-31-1.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_9-31-1.png
new file mode 100644
index 00000000..0cba165f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-5_9-31-1.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_0-12-8.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_0-12-8.png
new file mode 100644
index 00000000..930b1258
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_0-12-8.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_15-45-50.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_15-45-50.png
new file mode 100644
index 00000000..7b431e74
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_15-45-50.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_16-9-34.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_16-9-34.png
new file mode 100644
index 00000000..59329670
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-6_16-9-34.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-28-4.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-28-4.png
new file mode 100644
index 00000000..c0eb1622
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-28-4.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-41-19.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-41-19.png
new file mode 100644
index 00000000..163e42c4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021-2-8_19-41-19.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/messenger/image2021210-18470.png b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021210-18470.png
new file mode 100644
index 00000000..91cc0df6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/messenger/image2021210-18470.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135039.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135039.png
new file mode 100644
index 00000000..ab453c34
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135039.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135924.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135924.png
new file mode 100644
index 00000000..44ed50aa
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20210720-135924.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20211204-155923.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20211204-155923.png
new file mode 100644
index 00000000..1c0cbc46
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20211204-155923.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-142302.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-142302.png
new file mode 100644
index 00000000..12a0cd3c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-142302.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-160845.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-160845.png
new file mode 100644
index 00000000..1772a502
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-160845.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-161804.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-161804.png
new file mode 100644
index 00000000..27917c86
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220325-161804.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-103030.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-103030.png
new file mode 100644
index 00000000..cf8a6bbe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-103030.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-105115.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-105115.png
new file mode 100644
index 00000000..ed80d233
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220326-105115.png differ
diff --git a/versioned_docs/version-v7/images/products/cskefu/screenshot-20220328-095049.png b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220328-095049.png
new file mode 100644
index 00000000..ac145203
Binary files /dev/null and b/versioned_docs/version-v7/images/products/cskefu/screenshot-20220328-095049.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/1.png b/versioned_docs/version-v7/images/products/dscrm/1.png
new file mode 100644
index 00000000..4b925f5a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/1.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/10.png b/versioned_docs/version-v7/images/products/dscrm/10.png
new file mode 100644
index 00000000..36e35a21
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/10.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/100.png b/versioned_docs/version-v7/images/products/dscrm/100.png
new file mode 100644
index 00000000..3ba7efcf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/100.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/101.png b/versioned_docs/version-v7/images/products/dscrm/101.png
new file mode 100644
index 00000000..914bd062
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/101.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/102.png b/versioned_docs/version-v7/images/products/dscrm/102.png
new file mode 100644
index 00000000..02395efd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/102.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/103.png b/versioned_docs/version-v7/images/products/dscrm/103.png
new file mode 100644
index 00000000..b58ea511
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/103.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/104.png b/versioned_docs/version-v7/images/products/dscrm/104.png
new file mode 100644
index 00000000..6e07d1fa
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/104.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/105.png b/versioned_docs/version-v7/images/products/dscrm/105.png
new file mode 100644
index 00000000..33f294c4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/105.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/106.png b/versioned_docs/version-v7/images/products/dscrm/106.png
new file mode 100644
index 00000000..da830453
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/106.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/107.png b/versioned_docs/version-v7/images/products/dscrm/107.png
new file mode 100644
index 00000000..94e73203
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/107.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/108.png b/versioned_docs/version-v7/images/products/dscrm/108.png
new file mode 100644
index 00000000..ebe0960e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/108.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/109.png b/versioned_docs/version-v7/images/products/dscrm/109.png
new file mode 100644
index 00000000..6a6ba252
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/109.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/11.png b/versioned_docs/version-v7/images/products/dscrm/11.png
new file mode 100644
index 00000000..215f262b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/11.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/110.png b/versioned_docs/version-v7/images/products/dscrm/110.png
new file mode 100644
index 00000000..c070465a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/110.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/111.png b/versioned_docs/version-v7/images/products/dscrm/111.png
new file mode 100644
index 00000000..fdfb7f89
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/111.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/112.png b/versioned_docs/version-v7/images/products/dscrm/112.png
new file mode 100644
index 00000000..c1ab7e4d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/112.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/113.png b/versioned_docs/version-v7/images/products/dscrm/113.png
new file mode 100644
index 00000000..22cdc3dc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/113.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/114.png b/versioned_docs/version-v7/images/products/dscrm/114.png
new file mode 100644
index 00000000..4d8305f2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/114.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/115.png b/versioned_docs/version-v7/images/products/dscrm/115.png
new file mode 100644
index 00000000..3ac38de0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/115.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/116.png b/versioned_docs/version-v7/images/products/dscrm/116.png
new file mode 100644
index 00000000..d617ed7e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/116.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/117.png b/versioned_docs/version-v7/images/products/dscrm/117.png
new file mode 100644
index 00000000..22a846e0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/117.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/118.png b/versioned_docs/version-v7/images/products/dscrm/118.png
new file mode 100644
index 00000000..d12a7e15
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/118.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/119.png b/versioned_docs/version-v7/images/products/dscrm/119.png
new file mode 100644
index 00000000..d4e02b97
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/119.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/12.png b/versioned_docs/version-v7/images/products/dscrm/12.png
new file mode 100644
index 00000000..1646eccc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/12.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/120.png b/versioned_docs/version-v7/images/products/dscrm/120.png
new file mode 100644
index 00000000..279e28ad
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/120.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/121.png b/versioned_docs/version-v7/images/products/dscrm/121.png
new file mode 100644
index 00000000..2df3aefc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/121.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/122.png b/versioned_docs/version-v7/images/products/dscrm/122.png
new file mode 100644
index 00000000..eb7c84c7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/122.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/123.png b/versioned_docs/version-v7/images/products/dscrm/123.png
new file mode 100644
index 00000000..b2647147
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/123.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/124.png b/versioned_docs/version-v7/images/products/dscrm/124.png
new file mode 100644
index 00000000..5582e358
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/124.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/125.png b/versioned_docs/version-v7/images/products/dscrm/125.png
new file mode 100644
index 00000000..154dc147
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/125.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/126.png b/versioned_docs/version-v7/images/products/dscrm/126.png
new file mode 100644
index 00000000..3b61169d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/126.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/127.png b/versioned_docs/version-v7/images/products/dscrm/127.png
new file mode 100644
index 00000000..40ac6328
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/127.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/128.png b/versioned_docs/version-v7/images/products/dscrm/128.png
new file mode 100644
index 00000000..0a5474f6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/128.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/129.png b/versioned_docs/version-v7/images/products/dscrm/129.png
new file mode 100644
index 00000000..ee2f6dee
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/129.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/13.png b/versioned_docs/version-v7/images/products/dscrm/13.png
new file mode 100644
index 00000000..a47de417
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/13.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/130.png b/versioned_docs/version-v7/images/products/dscrm/130.png
new file mode 100644
index 00000000..1fe85767
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/130.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/131.png b/versioned_docs/version-v7/images/products/dscrm/131.png
new file mode 100644
index 00000000..62819a8a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/131.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/132.png b/versioned_docs/version-v7/images/products/dscrm/132.png
new file mode 100644
index 00000000..18c7251a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/132.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/133.png b/versioned_docs/version-v7/images/products/dscrm/133.png
new file mode 100644
index 00000000..e67a9879
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/133.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/134.png b/versioned_docs/version-v7/images/products/dscrm/134.png
new file mode 100644
index 00000000..6f46eb38
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/134.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/135.png b/versioned_docs/version-v7/images/products/dscrm/135.png
new file mode 100644
index 00000000..310bf925
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/135.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/136.png b/versioned_docs/version-v7/images/products/dscrm/136.png
new file mode 100644
index 00000000..38efc52e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/136.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/137.png b/versioned_docs/version-v7/images/products/dscrm/137.png
new file mode 100644
index 00000000..d8c3b770
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/137.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/138.png b/versioned_docs/version-v7/images/products/dscrm/138.png
new file mode 100644
index 00000000..8bfabfd6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/138.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/139.png b/versioned_docs/version-v7/images/products/dscrm/139.png
new file mode 100644
index 00000000..fc2b0608
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/139.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/14.png b/versioned_docs/version-v7/images/products/dscrm/14.png
new file mode 100644
index 00000000..476a998d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/14.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/140.png b/versioned_docs/version-v7/images/products/dscrm/140.png
new file mode 100644
index 00000000..4db81cd9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/140.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/141.png b/versioned_docs/version-v7/images/products/dscrm/141.png
new file mode 100644
index 00000000..8916c7bd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/141.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/142.png b/versioned_docs/version-v7/images/products/dscrm/142.png
new file mode 100644
index 00000000..fb6a12bf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/142.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/143.png b/versioned_docs/version-v7/images/products/dscrm/143.png
new file mode 100644
index 00000000..ec54891d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/143.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/144.png b/versioned_docs/version-v7/images/products/dscrm/144.png
new file mode 100644
index 00000000..33f7f491
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/144.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/145.png b/versioned_docs/version-v7/images/products/dscrm/145.png
new file mode 100644
index 00000000..bd661762
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/145.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/146.png b/versioned_docs/version-v7/images/products/dscrm/146.png
new file mode 100644
index 00000000..82031779
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/146.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/147.png b/versioned_docs/version-v7/images/products/dscrm/147.png
new file mode 100644
index 00000000..50ebb69f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/147.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/148.png b/versioned_docs/version-v7/images/products/dscrm/148.png
new file mode 100644
index 00000000..6bfcfb85
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/148.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/149.png b/versioned_docs/version-v7/images/products/dscrm/149.png
new file mode 100644
index 00000000..795aeeb7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/149.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/15.png b/versioned_docs/version-v7/images/products/dscrm/15.png
new file mode 100644
index 00000000..cd0cc057
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/15.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/150.png b/versioned_docs/version-v7/images/products/dscrm/150.png
new file mode 100644
index 00000000..0293e7e7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/150.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/151.png b/versioned_docs/version-v7/images/products/dscrm/151.png
new file mode 100644
index 00000000..b60623e1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/151.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/152.png b/versioned_docs/version-v7/images/products/dscrm/152.png
new file mode 100644
index 00000000..711466a4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/152.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/153.png b/versioned_docs/version-v7/images/products/dscrm/153.png
new file mode 100644
index 00000000..6b31dc57
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/153.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/154.png b/versioned_docs/version-v7/images/products/dscrm/154.png
new file mode 100644
index 00000000..4caab8fb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/154.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/155.png b/versioned_docs/version-v7/images/products/dscrm/155.png
new file mode 100644
index 00000000..ec4c9e84
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/155.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/156.png b/versioned_docs/version-v7/images/products/dscrm/156.png
new file mode 100644
index 00000000..c4a39cf1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/156.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/157.png b/versioned_docs/version-v7/images/products/dscrm/157.png
new file mode 100644
index 00000000..d141867c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/157.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/158.png b/versioned_docs/version-v7/images/products/dscrm/158.png
new file mode 100644
index 00000000..04ff4adc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/158.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/159.png b/versioned_docs/version-v7/images/products/dscrm/159.png
new file mode 100644
index 00000000..3c9c2d04
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/159.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/16.png b/versioned_docs/version-v7/images/products/dscrm/16.png
new file mode 100644
index 00000000..7380eed0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/16.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/160.png b/versioned_docs/version-v7/images/products/dscrm/160.png
new file mode 100644
index 00000000..233466b8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/160.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/161.png b/versioned_docs/version-v7/images/products/dscrm/161.png
new file mode 100644
index 00000000..2fa7909c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/161.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/162.png b/versioned_docs/version-v7/images/products/dscrm/162.png
new file mode 100644
index 00000000..46e6cfe6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/162.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/163.png b/versioned_docs/version-v7/images/products/dscrm/163.png
new file mode 100644
index 00000000..66d453c4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/163.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/164.png b/versioned_docs/version-v7/images/products/dscrm/164.png
new file mode 100644
index 00000000..2de308d3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/164.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/165.png b/versioned_docs/version-v7/images/products/dscrm/165.png
new file mode 100644
index 00000000..73b7a991
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/165.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/166.png b/versioned_docs/version-v7/images/products/dscrm/166.png
new file mode 100644
index 00000000..a791fcfa
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/166.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/167.png b/versioned_docs/version-v7/images/products/dscrm/167.png
new file mode 100644
index 00000000..944d1cbc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/167.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/168.png b/versioned_docs/version-v7/images/products/dscrm/168.png
new file mode 100644
index 00000000..002b62ba
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/168.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/169.png b/versioned_docs/version-v7/images/products/dscrm/169.png
new file mode 100644
index 00000000..8fbd3e54
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/169.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/17.png b/versioned_docs/version-v7/images/products/dscrm/17.png
new file mode 100644
index 00000000..efe2adc2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/17.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/170.png b/versioned_docs/version-v7/images/products/dscrm/170.png
new file mode 100644
index 00000000..61bb9efe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/170.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/171.png b/versioned_docs/version-v7/images/products/dscrm/171.png
new file mode 100644
index 00000000..5394d04c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/171.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/172.png b/versioned_docs/version-v7/images/products/dscrm/172.png
new file mode 100644
index 00000000..980f8453
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/172.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/173.png b/versioned_docs/version-v7/images/products/dscrm/173.png
new file mode 100644
index 00000000..682e1128
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/173.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/174.png b/versioned_docs/version-v7/images/products/dscrm/174.png
new file mode 100644
index 00000000..d793619b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/174.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/175.png b/versioned_docs/version-v7/images/products/dscrm/175.png
new file mode 100644
index 00000000..8f221816
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/175.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/176.png b/versioned_docs/version-v7/images/products/dscrm/176.png
new file mode 100644
index 00000000..2ed540aa
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/176.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/177.png b/versioned_docs/version-v7/images/products/dscrm/177.png
new file mode 100644
index 00000000..e68ac0da
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/177.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/178.png b/versioned_docs/version-v7/images/products/dscrm/178.png
new file mode 100644
index 00000000..a8201aed
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/178.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/179.png b/versioned_docs/version-v7/images/products/dscrm/179.png
new file mode 100644
index 00000000..efd9af2f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/179.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/18.png b/versioned_docs/version-v7/images/products/dscrm/18.png
new file mode 100644
index 00000000..27051c01
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/18.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/180.png b/versioned_docs/version-v7/images/products/dscrm/180.png
new file mode 100644
index 00000000..b4d23883
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/180.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/181.png b/versioned_docs/version-v7/images/products/dscrm/181.png
new file mode 100644
index 00000000..488bc3b0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/181.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/182.png b/versioned_docs/version-v7/images/products/dscrm/182.png
new file mode 100644
index 00000000..86e60b2d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/182.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/183.png b/versioned_docs/version-v7/images/products/dscrm/183.png
new file mode 100644
index 00000000..bf1a853e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/183.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/184.png b/versioned_docs/version-v7/images/products/dscrm/184.png
new file mode 100644
index 00000000..1101803f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/184.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/185.png b/versioned_docs/version-v7/images/products/dscrm/185.png
new file mode 100644
index 00000000..92da394d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/185.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/186.png b/versioned_docs/version-v7/images/products/dscrm/186.png
new file mode 100644
index 00000000..582558a5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/186.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/187.png b/versioned_docs/version-v7/images/products/dscrm/187.png
new file mode 100644
index 00000000..7d753a9c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/187.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/188.png b/versioned_docs/version-v7/images/products/dscrm/188.png
new file mode 100644
index 00000000..12394077
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/188.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/189.png b/versioned_docs/version-v7/images/products/dscrm/189.png
new file mode 100644
index 00000000..20b162d2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/189.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/19.png b/versioned_docs/version-v7/images/products/dscrm/19.png
new file mode 100644
index 00000000..51f3a078
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/19.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/190.png b/versioned_docs/version-v7/images/products/dscrm/190.png
new file mode 100644
index 00000000..5b429ed8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/190.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/191.png b/versioned_docs/version-v7/images/products/dscrm/191.png
new file mode 100644
index 00000000..44431999
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/191.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/192.png b/versioned_docs/version-v7/images/products/dscrm/192.png
new file mode 100644
index 00000000..90006f62
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/192.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/193.png b/versioned_docs/version-v7/images/products/dscrm/193.png
new file mode 100644
index 00000000..1bdff0dc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/193.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/194.png b/versioned_docs/version-v7/images/products/dscrm/194.png
new file mode 100644
index 00000000..f8bb0da8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/194.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/195.png b/versioned_docs/version-v7/images/products/dscrm/195.png
new file mode 100644
index 00000000..ff2921cc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/195.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/196.png b/versioned_docs/version-v7/images/products/dscrm/196.png
new file mode 100644
index 00000000..068667d7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/196.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/197.png b/versioned_docs/version-v7/images/products/dscrm/197.png
new file mode 100644
index 00000000..0b15ca90
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/197.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/198.png b/versioned_docs/version-v7/images/products/dscrm/198.png
new file mode 100644
index 00000000..e9d2ed8c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/198.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/199.png b/versioned_docs/version-v7/images/products/dscrm/199.png
new file mode 100644
index 00000000..63542d2b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/199.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/2.png b/versioned_docs/version-v7/images/products/dscrm/2.png
new file mode 100644
index 00000000..79d916e3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/2.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/20.png b/versioned_docs/version-v7/images/products/dscrm/20.png
new file mode 100644
index 00000000..5d776e58
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/20.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/200.png b/versioned_docs/version-v7/images/products/dscrm/200.png
new file mode 100644
index 00000000..6c265d25
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/200.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/201.png b/versioned_docs/version-v7/images/products/dscrm/201.png
new file mode 100644
index 00000000..444b6afe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/201.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/202.png b/versioned_docs/version-v7/images/products/dscrm/202.png
new file mode 100644
index 00000000..196357ee
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/202.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/203.png b/versioned_docs/version-v7/images/products/dscrm/203.png
new file mode 100644
index 00000000..0c745a07
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/203.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/204.png b/versioned_docs/version-v7/images/products/dscrm/204.png
new file mode 100644
index 00000000..c9f22b33
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/204.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/205.png b/versioned_docs/version-v7/images/products/dscrm/205.png
new file mode 100644
index 00000000..418566b6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/205.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/206.png b/versioned_docs/version-v7/images/products/dscrm/206.png
new file mode 100644
index 00000000..9a2ab581
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/206.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/207.png b/versioned_docs/version-v7/images/products/dscrm/207.png
new file mode 100644
index 00000000..20417cc8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/207.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/208.png b/versioned_docs/version-v7/images/products/dscrm/208.png
new file mode 100644
index 00000000..e6404ce0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/208.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/209.png b/versioned_docs/version-v7/images/products/dscrm/209.png
new file mode 100644
index 00000000..8de6b002
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/209.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/21.png b/versioned_docs/version-v7/images/products/dscrm/21.png
new file mode 100644
index 00000000..e6eba71c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/21.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/210.png b/versioned_docs/version-v7/images/products/dscrm/210.png
new file mode 100644
index 00000000..781e0987
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/210.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/211.png b/versioned_docs/version-v7/images/products/dscrm/211.png
new file mode 100644
index 00000000..8d0ec45e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/211.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/212.png b/versioned_docs/version-v7/images/products/dscrm/212.png
new file mode 100644
index 00000000..bfb2af6a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/212.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/213.png b/versioned_docs/version-v7/images/products/dscrm/213.png
new file mode 100644
index 00000000..03a3d8c8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/213.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/214.png b/versioned_docs/version-v7/images/products/dscrm/214.png
new file mode 100644
index 00000000..f8fb3f43
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/214.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/215.png b/versioned_docs/version-v7/images/products/dscrm/215.png
new file mode 100644
index 00000000..a8f29e59
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/215.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/216.png b/versioned_docs/version-v7/images/products/dscrm/216.png
new file mode 100644
index 00000000..5162441c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/216.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/217.png b/versioned_docs/version-v7/images/products/dscrm/217.png
new file mode 100644
index 00000000..5c81e8b7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/217.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/218.png b/versioned_docs/version-v7/images/products/dscrm/218.png
new file mode 100644
index 00000000..f61b8775
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/218.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/219.png b/versioned_docs/version-v7/images/products/dscrm/219.png
new file mode 100644
index 00000000..90c43be1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/219.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/22.png b/versioned_docs/version-v7/images/products/dscrm/22.png
new file mode 100644
index 00000000..7b66ac8f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/22.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/220.png b/versioned_docs/version-v7/images/products/dscrm/220.png
new file mode 100644
index 00000000..389414dd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/220.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/221.png b/versioned_docs/version-v7/images/products/dscrm/221.png
new file mode 100644
index 00000000..23e317f3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/221.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/222.png b/versioned_docs/version-v7/images/products/dscrm/222.png
new file mode 100644
index 00000000..bf7d510f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/222.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/223.png b/versioned_docs/version-v7/images/products/dscrm/223.png
new file mode 100644
index 00000000..eaa9c1b1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/223.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/224.png b/versioned_docs/version-v7/images/products/dscrm/224.png
new file mode 100644
index 00000000..f16ee329
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/224.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/225.png b/versioned_docs/version-v7/images/products/dscrm/225.png
new file mode 100644
index 00000000..61ba59a9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/225.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/226.png b/versioned_docs/version-v7/images/products/dscrm/226.png
new file mode 100644
index 00000000..4cb12c77
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/226.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/227.png b/versioned_docs/version-v7/images/products/dscrm/227.png
new file mode 100644
index 00000000..3ad48ba0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/227.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/228.png b/versioned_docs/version-v7/images/products/dscrm/228.png
new file mode 100644
index 00000000..572d5dc3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/228.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/229.png b/versioned_docs/version-v7/images/products/dscrm/229.png
new file mode 100644
index 00000000..9f004b1b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/229.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/23.png b/versioned_docs/version-v7/images/products/dscrm/23.png
new file mode 100644
index 00000000..dd84eb52
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/23.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/230.png b/versioned_docs/version-v7/images/products/dscrm/230.png
new file mode 100644
index 00000000..8b7aed53
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/230.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/231.png b/versioned_docs/version-v7/images/products/dscrm/231.png
new file mode 100644
index 00000000..7dae59b2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/231.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/232.png b/versioned_docs/version-v7/images/products/dscrm/232.png
new file mode 100644
index 00000000..e310ec35
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/232.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/233.png b/versioned_docs/version-v7/images/products/dscrm/233.png
new file mode 100644
index 00000000..bf22a1b2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/233.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/234.png b/versioned_docs/version-v7/images/products/dscrm/234.png
new file mode 100644
index 00000000..5e591e34
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/234.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/235.png b/versioned_docs/version-v7/images/products/dscrm/235.png
new file mode 100644
index 00000000..bd851024
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/235.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/236.png b/versioned_docs/version-v7/images/products/dscrm/236.png
new file mode 100644
index 00000000..040ac19a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/236.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/237.png b/versioned_docs/version-v7/images/products/dscrm/237.png
new file mode 100644
index 00000000..134ad828
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/237.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/238.png b/versioned_docs/version-v7/images/products/dscrm/238.png
new file mode 100644
index 00000000..308d05ac
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/238.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/239.png b/versioned_docs/version-v7/images/products/dscrm/239.png
new file mode 100644
index 00000000..d9d37db5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/239.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/24.png b/versioned_docs/version-v7/images/products/dscrm/24.png
new file mode 100644
index 00000000..80683152
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/24.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/240.png b/versioned_docs/version-v7/images/products/dscrm/240.png
new file mode 100644
index 00000000..9166e1bc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/240.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/241.png b/versioned_docs/version-v7/images/products/dscrm/241.png
new file mode 100644
index 00000000..8670a2d8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/241.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/242.png b/versioned_docs/version-v7/images/products/dscrm/242.png
new file mode 100644
index 00000000..170f5ae5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/242.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/243.png b/versioned_docs/version-v7/images/products/dscrm/243.png
new file mode 100644
index 00000000..1fde8fc0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/243.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/244.png b/versioned_docs/version-v7/images/products/dscrm/244.png
new file mode 100644
index 00000000..fbc36cc6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/244.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/245.png b/versioned_docs/version-v7/images/products/dscrm/245.png
new file mode 100644
index 00000000..3beb9b41
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/245.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/246.png b/versioned_docs/version-v7/images/products/dscrm/246.png
new file mode 100644
index 00000000..a374f3d7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/246.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/247.png b/versioned_docs/version-v7/images/products/dscrm/247.png
new file mode 100644
index 00000000..37fd30f4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/247.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/248.png b/versioned_docs/version-v7/images/products/dscrm/248.png
new file mode 100644
index 00000000..e3e2d4b9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/248.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/249.png b/versioned_docs/version-v7/images/products/dscrm/249.png
new file mode 100644
index 00000000..1763df7d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/249.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/25.png b/versioned_docs/version-v7/images/products/dscrm/25.png
new file mode 100644
index 00000000..86a47a6d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/25.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/250.png b/versioned_docs/version-v7/images/products/dscrm/250.png
new file mode 100644
index 00000000..01c6fa03
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/250.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/251.png b/versioned_docs/version-v7/images/products/dscrm/251.png
new file mode 100644
index 00000000..d887dae3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/251.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/252.png b/versioned_docs/version-v7/images/products/dscrm/252.png
new file mode 100644
index 00000000..8716c1e6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/252.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/253.png b/versioned_docs/version-v7/images/products/dscrm/253.png
new file mode 100644
index 00000000..7c9dba7d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/253.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/254.png b/versioned_docs/version-v7/images/products/dscrm/254.png
new file mode 100644
index 00000000..c2de79ff
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/254.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/255.png b/versioned_docs/version-v7/images/products/dscrm/255.png
new file mode 100644
index 00000000..86795abc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/255.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/256.png b/versioned_docs/version-v7/images/products/dscrm/256.png
new file mode 100644
index 00000000..c6679265
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/256.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/257.png b/versioned_docs/version-v7/images/products/dscrm/257.png
new file mode 100644
index 00000000..93fe8f3f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/257.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/258.png b/versioned_docs/version-v7/images/products/dscrm/258.png
new file mode 100644
index 00000000..93e90a57
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/258.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/259.png b/versioned_docs/version-v7/images/products/dscrm/259.png
new file mode 100644
index 00000000..adc188cd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/259.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/26.png b/versioned_docs/version-v7/images/products/dscrm/26.png
new file mode 100644
index 00000000..09a7f010
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/26.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/260.png b/versioned_docs/version-v7/images/products/dscrm/260.png
new file mode 100644
index 00000000..be3c4799
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/260.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/261.png b/versioned_docs/version-v7/images/products/dscrm/261.png
new file mode 100644
index 00000000..0ba06765
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/261.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/262.png b/versioned_docs/version-v7/images/products/dscrm/262.png
new file mode 100644
index 00000000..9c258edb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/262.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/263.png b/versioned_docs/version-v7/images/products/dscrm/263.png
new file mode 100644
index 00000000..287e3e52
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/263.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/264.png b/versioned_docs/version-v7/images/products/dscrm/264.png
new file mode 100644
index 00000000..5f14a880
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/264.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/265.png b/versioned_docs/version-v7/images/products/dscrm/265.png
new file mode 100644
index 00000000..41330826
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/265.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/266.png b/versioned_docs/version-v7/images/products/dscrm/266.png
new file mode 100644
index 00000000..a0706a7a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/266.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/27.png b/versioned_docs/version-v7/images/products/dscrm/27.png
new file mode 100644
index 00000000..55e319eb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/27.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/28.png b/versioned_docs/version-v7/images/products/dscrm/28.png
new file mode 100644
index 00000000..779d3972
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/28.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/29.png b/versioned_docs/version-v7/images/products/dscrm/29.png
new file mode 100644
index 00000000..e297d710
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/29.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/3.png b/versioned_docs/version-v7/images/products/dscrm/3.png
new file mode 100644
index 00000000..4dc983b4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/3.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/30.png b/versioned_docs/version-v7/images/products/dscrm/30.png
new file mode 100644
index 00000000..eff5c5de
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/30.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/31.png b/versioned_docs/version-v7/images/products/dscrm/31.png
new file mode 100644
index 00000000..1885bf19
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/31.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/32.png b/versioned_docs/version-v7/images/products/dscrm/32.png
new file mode 100644
index 00000000..f866914a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/32.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/33.png b/versioned_docs/version-v7/images/products/dscrm/33.png
new file mode 100644
index 00000000..dd79a9c6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/33.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/34.png b/versioned_docs/version-v7/images/products/dscrm/34.png
new file mode 100644
index 00000000..59b52b38
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/34.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/35.png b/versioned_docs/version-v7/images/products/dscrm/35.png
new file mode 100644
index 00000000..bdb487ad
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/35.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/36.png b/versioned_docs/version-v7/images/products/dscrm/36.png
new file mode 100644
index 00000000..9e2f7926
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/36.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/37.png b/versioned_docs/version-v7/images/products/dscrm/37.png
new file mode 100644
index 00000000..fcf1c2dd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/37.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/38.png b/versioned_docs/version-v7/images/products/dscrm/38.png
new file mode 100644
index 00000000..81e9e618
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/38.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/39.png b/versioned_docs/version-v7/images/products/dscrm/39.png
new file mode 100644
index 00000000..693b0f41
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/39.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/4.png b/versioned_docs/version-v7/images/products/dscrm/4.png
new file mode 100644
index 00000000..ecbfd091
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/4.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/40.png b/versioned_docs/version-v7/images/products/dscrm/40.png
new file mode 100644
index 00000000..041f524f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/40.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/41.png b/versioned_docs/version-v7/images/products/dscrm/41.png
new file mode 100644
index 00000000..384e859d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/41.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/42.png b/versioned_docs/version-v7/images/products/dscrm/42.png
new file mode 100644
index 00000000..79be4fb2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/42.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/43.png b/versioned_docs/version-v7/images/products/dscrm/43.png
new file mode 100644
index 00000000..528a566f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/43.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/44.png b/versioned_docs/version-v7/images/products/dscrm/44.png
new file mode 100644
index 00000000..7dd7c1c7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/44.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/45.png b/versioned_docs/version-v7/images/products/dscrm/45.png
new file mode 100644
index 00000000..9d1ba0fe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/45.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/46.png b/versioned_docs/version-v7/images/products/dscrm/46.png
new file mode 100644
index 00000000..15637bbe
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/46.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/47.png b/versioned_docs/version-v7/images/products/dscrm/47.png
new file mode 100644
index 00000000..e9a1a928
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/47.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/48.png b/versioned_docs/version-v7/images/products/dscrm/48.png
new file mode 100644
index 00000000..6245b0fc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/48.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/49.png b/versioned_docs/version-v7/images/products/dscrm/49.png
new file mode 100644
index 00000000..cc58314f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/49.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/5.png b/versioned_docs/version-v7/images/products/dscrm/5.png
new file mode 100644
index 00000000..5b332b0d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/5.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/50.png b/versioned_docs/version-v7/images/products/dscrm/50.png
new file mode 100644
index 00000000..618cdae9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/50.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/51.png b/versioned_docs/version-v7/images/products/dscrm/51.png
new file mode 100644
index 00000000..306480d4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/51.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/52.png b/versioned_docs/version-v7/images/products/dscrm/52.png
new file mode 100644
index 00000000..0a893461
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/52.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/53.png b/versioned_docs/version-v7/images/products/dscrm/53.png
new file mode 100644
index 00000000..7c9a0214
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/53.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/54.png b/versioned_docs/version-v7/images/products/dscrm/54.png
new file mode 100644
index 00000000..b986b432
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/54.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/55.png b/versioned_docs/version-v7/images/products/dscrm/55.png
new file mode 100644
index 00000000..f524d5b4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/55.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/56.png b/versioned_docs/version-v7/images/products/dscrm/56.png
new file mode 100644
index 00000000..fc167f30
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/56.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/57.png b/versioned_docs/version-v7/images/products/dscrm/57.png
new file mode 100644
index 00000000..68ae91ea
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/57.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/58.png b/versioned_docs/version-v7/images/products/dscrm/58.png
new file mode 100644
index 00000000..12c39108
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/58.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/59.png b/versioned_docs/version-v7/images/products/dscrm/59.png
new file mode 100644
index 00000000..a91c9be2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/59.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/6.png b/versioned_docs/version-v7/images/products/dscrm/6.png
new file mode 100644
index 00000000..9c0837a1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/6.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/60.png b/versioned_docs/version-v7/images/products/dscrm/60.png
new file mode 100644
index 00000000..2610c1dd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/60.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/61.png b/versioned_docs/version-v7/images/products/dscrm/61.png
new file mode 100644
index 00000000..77b4f0a4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/61.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/62.png b/versioned_docs/version-v7/images/products/dscrm/62.png
new file mode 100644
index 00000000..a4957766
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/62.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/63.png b/versioned_docs/version-v7/images/products/dscrm/63.png
new file mode 100644
index 00000000..59136bb0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/63.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/64.png b/versioned_docs/version-v7/images/products/dscrm/64.png
new file mode 100644
index 00000000..cc4880f5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/64.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/65.png b/versioned_docs/version-v7/images/products/dscrm/65.png
new file mode 100644
index 00000000..b7291673
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/65.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/66.png b/versioned_docs/version-v7/images/products/dscrm/66.png
new file mode 100644
index 00000000..95967df1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/66.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/67.png b/versioned_docs/version-v7/images/products/dscrm/67.png
new file mode 100644
index 00000000..c4ec6d44
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/67.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/68.png b/versioned_docs/version-v7/images/products/dscrm/68.png
new file mode 100644
index 00000000..43e6f11b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/68.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/69.png b/versioned_docs/version-v7/images/products/dscrm/69.png
new file mode 100644
index 00000000..1e4e62d2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/69.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/7.png b/versioned_docs/version-v7/images/products/dscrm/7.png
new file mode 100644
index 00000000..27051c01
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/7.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/70.png b/versioned_docs/version-v7/images/products/dscrm/70.png
new file mode 100644
index 00000000..d8f41e3d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/70.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/71.png b/versioned_docs/version-v7/images/products/dscrm/71.png
new file mode 100644
index 00000000..fd37c4cf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/71.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/72.png b/versioned_docs/version-v7/images/products/dscrm/72.png
new file mode 100644
index 00000000..e12c966a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/72.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/73.png b/versioned_docs/version-v7/images/products/dscrm/73.png
new file mode 100644
index 00000000..49bbb646
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/73.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/74.png b/versioned_docs/version-v7/images/products/dscrm/74.png
new file mode 100644
index 00000000..3c3c91f1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/74.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/75.png b/versioned_docs/version-v7/images/products/dscrm/75.png
new file mode 100644
index 00000000..767f523f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/75.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/76.png b/versioned_docs/version-v7/images/products/dscrm/76.png
new file mode 100644
index 00000000..4ff132cb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/76.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/77.png b/versioned_docs/version-v7/images/products/dscrm/77.png
new file mode 100644
index 00000000..1fc437c5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/77.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/78.png b/versioned_docs/version-v7/images/products/dscrm/78.png
new file mode 100644
index 00000000..1abf0ef5
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/78.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/79.png b/versioned_docs/version-v7/images/products/dscrm/79.png
new file mode 100644
index 00000000..931a2976
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/79.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/8.png b/versioned_docs/version-v7/images/products/dscrm/8.png
new file mode 100644
index 00000000..d82937dd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/8.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/80.png b/versioned_docs/version-v7/images/products/dscrm/80.png
new file mode 100644
index 00000000..2c7989d6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/80.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/81.png b/versioned_docs/version-v7/images/products/dscrm/81.png
new file mode 100644
index 00000000..e58ce416
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/81.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/82.png b/versioned_docs/version-v7/images/products/dscrm/82.png
new file mode 100644
index 00000000..04cf2df7
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/82.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/83.png b/versioned_docs/version-v7/images/products/dscrm/83.png
new file mode 100644
index 00000000..489df1ea
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/83.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/84.png b/versioned_docs/version-v7/images/products/dscrm/84.png
new file mode 100644
index 00000000..3a390ad3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/84.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/85.png b/versioned_docs/version-v7/images/products/dscrm/85.png
new file mode 100644
index 00000000..bdc1ee99
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/85.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/86.png b/versioned_docs/version-v7/images/products/dscrm/86.png
new file mode 100644
index 00000000..945affdc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/86.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/87.png b/versioned_docs/version-v7/images/products/dscrm/87.png
new file mode 100644
index 00000000..b89295ac
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/87.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/88.png b/versioned_docs/version-v7/images/products/dscrm/88.png
new file mode 100644
index 00000000..e5cb8563
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/88.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/89.png b/versioned_docs/version-v7/images/products/dscrm/89.png
new file mode 100644
index 00000000..4e0dbdf0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/89.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/9.png b/versioned_docs/version-v7/images/products/dscrm/9.png
new file mode 100644
index 00000000..53837863
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/9.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/90.png b/versioned_docs/version-v7/images/products/dscrm/90.png
new file mode 100644
index 00000000..fab49436
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/90.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/91.png b/versioned_docs/version-v7/images/products/dscrm/91.png
new file mode 100644
index 00000000..92c6732a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/91.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/92.png b/versioned_docs/version-v7/images/products/dscrm/92.png
new file mode 100644
index 00000000..b3c33d90
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/92.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/93.png b/versioned_docs/version-v7/images/products/dscrm/93.png
new file mode 100644
index 00000000..46d82c90
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/93.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/94.png b/versioned_docs/version-v7/images/products/dscrm/94.png
new file mode 100644
index 00000000..33f7a084
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/94.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/95.png b/versioned_docs/version-v7/images/products/dscrm/95.png
new file mode 100644
index 00000000..a95cc3f6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/95.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/96.png b/versioned_docs/version-v7/images/products/dscrm/96.png
new file mode 100644
index 00000000..095e8697
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/96.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/97.png b/versioned_docs/version-v7/images/products/dscrm/97.png
new file mode 100644
index 00000000..27f4f967
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/97.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/98.png b/versioned_docs/version-v7/images/products/dscrm/98.png
new file mode 100644
index 00000000..1d3b347d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/98.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/99.png b/versioned_docs/version-v7/images/products/dscrm/99.png
new file mode 100644
index 00000000..cecd99b2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/99.png differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/dscrm_logo.jpg b/versioned_docs/version-v7/images/products/dscrm/dscrm_logo.jpg
new file mode 100644
index 00000000..87e31601
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/dscrm_logo.jpg differ
diff --git a/versioned_docs/version-v7/images/products/dscrm/problem.jpg b/versioned_docs/version-v7/images/products/dscrm/problem.jpg
new file mode 100644
index 00000000..05d1144a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/dscrm/problem.jpg differ
diff --git a/versioned_docs/version-v7/images/products/faq/bot-edu-xiaozhshou-cover.png b/versioned_docs/version-v7/images/products/faq/bot-edu-xiaozhshou-cover.png
new file mode 100644
index 00000000..64398786
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/bot-edu-xiaozhshou-cover.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-35-6.png b/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-35-6.png
new file mode 100644
index 00000000..7b55d847
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-35-6.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-41-59.png b/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-41-59.png
new file mode 100644
index 00000000..980e01e2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-15_16-41-59.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_15-51-3.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_15-51-3.png
new file mode 100644
index 00000000..c8320711
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_15-51-3.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_16-55-26.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_16-55-26.png
new file mode 100644
index 00000000..1eca2e7d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_16-55-26.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-37-50.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-37-50.png
new file mode 100644
index 00000000..c6a9ff70
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-37-50.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-40-38.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-40-38.png
new file mode 100644
index 00000000..1921fd1c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-40-38.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-41-57.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-41-57.png
new file mode 100644
index 00000000..ea2a72ce
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-41-57.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-57-42.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-57-42.png
new file mode 100644
index 00000000..d690e401
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_17-57-42.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-0-59.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-0-59.png
new file mode 100644
index 00000000..d0e165d0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-0-59.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-10-5.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-10-5.png
new file mode 100644
index 00000000..f9b6acbb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-10-5.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-5-50.png b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-5-50.png
new file mode 100644
index 00000000..42cbc0b9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2020-7-16_18-5-50.png differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2021-8-10_01.jpg b/versioned_docs/version-v7/images/products/faq/image2021-8-10_01.jpg
new file mode 100644
index 00000000..1d442219
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2021-8-10_01.jpg differ
diff --git a/versioned_docs/version-v7/images/products/faq/image2021-8-10_02.jpg b/versioned_docs/version-v7/images/products/faq/image2021-8-10_02.jpg
new file mode 100644
index 00000000..2789aeb8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/faq/image2021-8-10_02.jpg differ
diff --git a/versioned_docs/version-v7/images/products/introduction-video-cover.jpg b/versioned_docs/version-v7/images/products/introduction-video-cover.jpg
new file mode 100644
index 00000000..f2be7251
Binary files /dev/null and b/versioned_docs/version-v7/images/products/introduction-video-cover.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/202009-bot-ke-1.jpg b/versioned_docs/version-v7/images/products/platform/202009-bot-ke-1.jpg
new file mode 100644
index 00000000..ad4542d9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/202009-bot-ke-1.jpg differ
diff --git "a/versioned_docs/version-v7/images/products/platform/Chatopera_\344\274\201\344\270\232\345\276\256\344\277\241_\345\256\242\346\210\267\347\276\244_qr_explained.png" "b/versioned_docs/version-v7/images/products/platform/Chatopera_\344\274\201\344\270\232\345\276\256\344\277\241_\345\256\242\346\210\267\347\276\244_qr_explained.png"
new file mode 100644
index 00000000..9d852ca1
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/Chatopera_\344\274\201\344\270\232\345\276\256\344\277\241_\345\256\242\346\210\267\347\276\244_qr_explained.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155155.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155155.png"
new file mode 100644
index 00000000..4a352374
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155155.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155207.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155207.png"
new file mode 100644
index 00000000..7c87de60
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155207.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155220.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155220.png"
new file mode 100644
index 00000000..81138dd7
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155220.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155233.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155233.png"
new file mode 100644
index 00000000..f3d56c1c
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155233.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155253.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155253.png"
new file mode 100644
index 00000000..39ce3dba
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155253.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155315.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155315.png"
new file mode 100644
index 00000000..8011abca
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155315.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155328.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155328.png"
new file mode 100644
index 00000000..9f4a1593
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155328.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155346.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155346.png"
new file mode 100644
index 00000000..0a5c6015
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155346.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155420.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155420.png"
new file mode 100644
index 00000000..c7bc7d7b
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155420.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155438.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155438.png"
new file mode 100644
index 00000000..cbfd513e
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155438.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155455.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155455.png"
new file mode 100644
index 00000000..36bd3723
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155455.png" differ
diff --git "a/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155505.png" "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155505.png"
new file mode 100644
index 00000000..4118f915
Binary files /dev/null and "b/versioned_docs/version-v7/images/products/platform/QQ\346\210\252\345\233\27620220616155505.png" differ
diff --git a/versioned_docs/version-v7/images/products/platform/asr.sample.001.wav b/versioned_docs/version-v7/images/products/platform/asr.sample.001.wav
new file mode 100644
index 00000000..33471b26
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/asr.sample.001.wav differ
diff --git a/versioned_docs/version-v7/images/products/platform/billing-1.png b/versioned_docs/version-v7/images/products/platform/billing-1.png
new file mode 100644
index 00000000..518f4a14
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/billing-1.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/bot-console-define-config.jpg b/versioned_docs/version-v7/images/products/platform/bot-console-define-config.jpg
new file mode 100644
index 00000000..39ea7402
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/bot-console-define-config.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/bot-roi-1.png b/versioned_docs/version-v7/images/products/platform/bot-roi-1.png
new file mode 100644
index 00000000..e9fe1da8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/bot-roi-1.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/chatopera-cde-download.gif b/versioned_docs/version-v7/images/products/platform/chatopera-cde-download.gif
new file mode 100644
index 00000000..a8b33989
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/chatopera-cde-download.gif differ
diff --git a/versioned_docs/version-v7/images/products/platform/complaint.jpg b/versioned_docs/version-v7/images/products/platform/complaint.jpg
new file mode 100644
index 00000000..691f2fe4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/complaint.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/congr-20210913-195053.png b/versioned_docs/version-v7/images/products/platform/congr-20210913-195053.png
new file mode 100644
index 00000000..4329a53e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/congr-20210913-195053.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-19-2.png b/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-19-2.png
new file mode 100644
index 00000000..9c53d398
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-19-2.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-22-14.png b/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-22-14.png
new file mode 100644
index 00000000..866c9181
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/image2021-9-3_16-22-14.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_16-47-24.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_16-47-24.png
new file mode 100644
index 00000000..d60b181d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_16-47-24.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-11-54.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-11-54.png
new file mode 100644
index 00000000..810166cf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-11-54.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-36-27.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-36-27.png
new file mode 100644
index 00000000..22081409
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_17-36-27.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_18-58-18.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_18-58-18.png
new file mode 100644
index 00000000..0f3ee39a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_18-58-18.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-29-33.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-29-33.png
new file mode 100644
index 00000000..d9a11d76
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-29-33.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-4-42.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-4-42.png
new file mode 100644
index 00000000..ae3d1efb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-4-42.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-43-43.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-43-43.png
new file mode 100644
index 00000000..a0e29ccf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-1_19-43-43.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-3_11-49-51.png b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-3_11-49-51.png
new file mode 100644
index 00000000..01b86480
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/conversations/intents/image2021-9-3_11-49-51.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/cskefu_opensource_community_wx_qr.png b/versioned_docs/version-v7/images/products/platform/cskefu_opensource_community_wx_qr.png
new file mode 100644
index 00000000..7631abac
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/cskefu_opensource_community_wx_qr.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/djt-teacher-hain.jpg b/versioned_docs/version-v7/images/products/platform/djt-teacher-hain.jpg
new file mode 100644
index 00000000..b3b9c8d2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/djt-teacher-hain.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/image-043.png b/versioned_docs/version-v7/images/products/platform/image-043.png
new file mode 100644
index 00000000..4d1c0047
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image-043.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image-044.png b/versioned_docs/version-v7/images/products/platform/image-044.png
new file mode 100644
index 00000000..c0260f64
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image-044.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image-047.png b/versioned_docs/version-v7/images/products/platform/image-047.png
new file mode 100644
index 00000000..d3639ae0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image-047.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-46-32.png b/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-46-32.png
new file mode 100644
index 00000000..372d497a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-46-32.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-49-27.png b/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-49-27.png
new file mode 100644
index 00000000..3e0f00c9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image2021-8-17_19-49-27.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-15-50.png b/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-15-50.png
new file mode 100644
index 00000000..79e552cf
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-15-50.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-27-53.png b/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-27-53.png
new file mode 100644
index 00000000..76c75876
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/image2021-8-18_10-27-53.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/lattice-1.png b/versioned_docs/version-v7/images/products/platform/lattice-1.png
new file mode 100644
index 00000000..2c9ab305
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/lattice-1.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/lattice-2.png b/versioned_docs/version-v7/images/products/platform/lattice-2.png
new file mode 100644
index 00000000..59870f4e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/lattice-2.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/lattice-3.png b/versioned_docs/version-v7/images/products/platform/lattice-3.png
new file mode 100644
index 00000000..236704d3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/lattice-3.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/lattice-4.png b/versioned_docs/version-v7/images/products/platform/lattice-4.png
new file mode 100644
index 00000000..6a1fc123
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/lattice-4.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/love-20210914-114743.png b/versioned_docs/version-v7/images/products/platform/love-20210914-114743.png
new file mode 100644
index 00000000..8484b2a3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/love-20210914-114743.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/6.png b/versioned_docs/version-v7/images/products/platform/mechanism/6.png
new file mode 100644
index 00000000..4c665e5d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/6.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/conversations.jpg b/versioned_docs/version-v7/images/products/platform/mechanism/conversations.jpg
new file mode 100644
index 00000000..7b0e9ab9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/conversations.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-54-27.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-54-27.png
new file mode 100644
index 00000000..f697e2dc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-54-27.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-56-53.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-56-53.png
new file mode 100644
index 00000000..a1fa46d1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_13-56-53.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-23-46.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-23-46.png
new file mode 100644
index 00000000..5c65cfd4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-23-46.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-37-47.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-37-47.png
new file mode 100644
index 00000000..3592902a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-37-47.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-46-3.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-46-3.png
new file mode 100644
index 00000000..732a50bc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-46-3.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-56-50.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-56-50.png
new file mode 100644
index 00000000..f99c4c87
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_14-56-50.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-14-24.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-14-24.png
new file mode 100644
index 00000000..6c4d0255
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-14-24.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-5-27.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-5-27.png
new file mode 100644
index 00000000..c9d3a17e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-5-27.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-7-12.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-7-12.png
new file mode 100644
index 00000000..d91f5c5b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-7-12.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-8-13.png b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-8-13.png
new file mode 100644
index 00000000..ee3a0632
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/image2021-8-19_15-8-13.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/mechanism/screenshot-20210903-105329.png b/versioned_docs/version-v7/images/products/platform/mechanism/screenshot-20210903-105329.png
new file mode 100644
index 00000000..583cfcae
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/mechanism/screenshot-20210903-105329.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210802-193746.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-193746.png
new file mode 100644
index 00000000..d5cfd1d9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-193746.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210802-194710.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-194710.png
new file mode 100644
index 00000000..cd6d2ae4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-194710.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210802-202119.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-202119.png
new file mode 100644
index 00000000..1b65661e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210802-202119.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085034.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085034.png
new file mode 100644
index 00000000..90516b67
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085034.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085247.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085247.png
new file mode 100644
index 00000000..29ff8b87
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-085247.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210905-102649.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-102649.png
new file mode 100644
index 00000000..ea61431e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210905-102649.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210906-081057.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210906-081057.png
new file mode 100644
index 00000000..1491c60a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210906-081057.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210907-194649.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210907-194649.png
new file mode 100644
index 00000000..5943c49b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210907-194649.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210912-201141.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210912-201141.png
new file mode 100644
index 00000000..0f2a0364
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210912-201141.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-130806.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-130806.png
new file mode 100644
index 00000000..4f0f1771
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-130806.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-173454.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-173454.png
new file mode 100644
index 00000000..b19ac575
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-173454.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-185844.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-185844.png
new file mode 100644
index 00000000..32b8536c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-185844.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191033.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191033.png
new file mode 100644
index 00000000..28d4bc6f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191033.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191738.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191738.png
new file mode 100644
index 00000000..05f1057e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-191738.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192350.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192350.png
new file mode 100644
index 00000000..069396a8
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192350.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192631.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192631.png
new file mode 100644
index 00000000..95b4c8e6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192631.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192956.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192956.png
new file mode 100644
index 00000000..f4d7ed0e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-192956.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193617.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193617.png
new file mode 100644
index 00000000..df643934
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193617.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193815.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193815.png
new file mode 100644
index 00000000..d315aa0b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-193815.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-194520.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-194520.png
new file mode 100644
index 00000000..eae3f209
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-194520.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-195806.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-195806.png
new file mode 100644
index 00000000..e66568fd
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-195806.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-200902.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-200902.png
new file mode 100644
index 00000000..d34e8e5c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-200902.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-201656.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-201656.png
new file mode 100644
index 00000000..95bf2e05
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-201656.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202002.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202002.png
new file mode 100644
index 00000000..bda7f082
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202002.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202526.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202526.png
new file mode 100644
index 00000000..c742a067
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202526.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202923.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202923.png
new file mode 100644
index 00000000..a1c84276
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-202923.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203144.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203144.png
new file mode 100644
index 00000000..24915b42
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203144.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203616.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203616.png
new file mode 100644
index 00000000..68fd2320
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210913-203616.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013637.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013637.png
new file mode 100644
index 00000000..36726dd2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013637.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013838.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013838.png
new file mode 100644
index 00000000..25fc72a0
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-013838.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014143.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014143.png
new file mode 100644
index 00000000..b7a54f71
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014143.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014615.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014615.png
new file mode 100644
index 00000000..fba99342
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014615.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014900.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014900.png
new file mode 100644
index 00000000..2fcd387f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-014900.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-015710.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-015710.png
new file mode 100644
index 00000000..74a4de6b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-015710.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020307.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020307.png
new file mode 100644
index 00000000..81ea6e63
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020307.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020455.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020455.png
new file mode 100644
index 00000000..f2831deb
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020455.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020727.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020727.png
new file mode 100644
index 00000000..a4c0f229
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-020727.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-021512.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-021512.png
new file mode 100644
index 00000000..f08e0631
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-021512.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-022010.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-022010.png
new file mode 100644
index 00000000..174e0b11
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-022010.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023036.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023036.png
new file mode 100644
index 00000000..e9a6d4ca
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023036.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023400.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023400.png
new file mode 100644
index 00000000..8f2205c1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-023400.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-074406.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-074406.png
new file mode 100644
index 00000000..e1ae7b9c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-074406.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075200.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075200.png
new file mode 100644
index 00000000..f399187c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075200.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075524.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075524.png
new file mode 100644
index 00000000..4baa1fe4
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075524.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075951.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075951.png
new file mode 100644
index 00000000..2b37f494
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-075951.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-080228.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-080228.png
new file mode 100644
index 00000000..285bb3da
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-080228.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-114056.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-114056.png
new file mode 100644
index 00000000..4b9e3ed1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-114056.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210914-144603.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-144603.png
new file mode 100644
index 00000000..7a970f3e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210914-144603.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210915-134251.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-134251.png
new file mode 100644
index 00000000..33601bb6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-134251.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210915-135243.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-135243.png
new file mode 100644
index 00000000..1cb1a6f3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-135243.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210915-140141.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-140141.png
new file mode 100644
index 00000000..f20c1954
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-140141.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210915-163124.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-163124.png
new file mode 100644
index 00000000..72c01170
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210915-163124.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210916-103336.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210916-103336.png
new file mode 100644
index 00000000..071e8792
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210916-103336.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/screenshot-20210916-143238.png b/versioned_docs/version-v7/images/products/platform/screenshot-20210916-143238.png
new file mode 100644
index 00000000..c30afd17
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/screenshot-20210916-143238.png differ
diff --git a/versioned_docs/version-v7/images/products/platform/set-faq-route-conversion-reply.jpg b/versioned_docs/version-v7/images/products/platform/set-faq-route-conversion-reply.jpg
new file mode 100644
index 00000000..7c825e8e
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/set-faq-route-conversion-reply.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/weather-bot-demo-cover.jpg b/versioned_docs/version-v7/images/products/platform/weather-bot-demo-cover.jpg
new file mode 100644
index 00000000..b7575afa
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/weather-bot-demo-cover.jpg differ
diff --git a/versioned_docs/version-v7/images/products/platform/webchat-1.jpeg b/versioned_docs/version-v7/images/products/platform/webchat-1.jpeg
new file mode 100644
index 00000000..cc6bb864
Binary files /dev/null and b/versioned_docs/version-v7/images/products/platform/webchat-1.jpeg differ
diff --git a/versioned_docs/version-v7/images/products/solution-1.png b/versioned_docs/version-v7/images/products/solution-1.png
new file mode 100644
index 00000000..5083eb24
Binary files /dev/null and b/versioned_docs/version-v7/images/products/solution-1.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42856529-304dde8e-8a78-11e8-87f1-964291c2852f.png b/versioned_docs/version-v7/images/products/superadmin/42856529-304dde8e-8a78-11e8-87f1-964291c2852f.png
new file mode 100644
index 00000000..a946932c
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42856529-304dde8e-8a78-11e8-87f1-964291c2852f.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42859842-01c1aabe-8a87-11e8-9d49-b24a101a8131.png b/versioned_docs/version-v7/images/products/superadmin/42859842-01c1aabe-8a87-11e8-9d49-b24a101a8131.png
new file mode 100644
index 00000000..e43e0a08
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42859842-01c1aabe-8a87-11e8-9d49-b24a101a8131.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42860041-fa4fe498-8a87-11e8-95f4-a9f845492bd7.png b/versioned_docs/version-v7/images/products/superadmin/42860041-fa4fe498-8a87-11e8-95f4-a9f845492bd7.png
new file mode 100644
index 00000000..02c578d9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42860041-fa4fe498-8a87-11e8-95f4-a9f845492bd7.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42860378-baac14aa-8a88-11e8-957e-3d3dcc1b3484.png b/versioned_docs/version-v7/images/products/superadmin/42860378-baac14aa-8a88-11e8-957e-3d3dcc1b3484.png
new file mode 100644
index 00000000..43d532ad
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42860378-baac14aa-8a88-11e8-957e-3d3dcc1b3484.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42860742-86b64146-8a8a-11e8-88ed-b56b93f396be.png b/versioned_docs/version-v7/images/products/superadmin/42860742-86b64146-8a8a-11e8-88ed-b56b93f396be.png
new file mode 100644
index 00000000..c71b8dc9
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42860742-86b64146-8a8a-11e8-88ed-b56b93f396be.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42861165-820b1dc2-8a8c-11e8-80f1-d2b329afc800.png b/versioned_docs/version-v7/images/products/superadmin/42861165-820b1dc2-8a8c-11e8-80f1-d2b329afc800.png
new file mode 100644
index 00000000..1a03b2ec
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42861165-820b1dc2-8a8c-11e8-80f1-d2b329afc800.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42862020-5081e066-8a90-11e8-815b-1dbed47ce099.png b/versioned_docs/version-v7/images/products/superadmin/42862020-5081e066-8a90-11e8-815b-1dbed47ce099.png
new file mode 100644
index 00000000..3eb73ad1
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42862020-5081e066-8a90-11e8-815b-1dbed47ce099.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42862106-ac4fc17e-8a90-11e8-902c-4e58ad24f20f.png b/versioned_docs/version-v7/images/products/superadmin/42862106-ac4fc17e-8a90-11e8-902c-4e58ad24f20f.png
new file mode 100644
index 00000000..2ca69054
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42862106-ac4fc17e-8a90-11e8-902c-4e58ad24f20f.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42863223-ea1f9b06-8a94-11e8-9e1d-22a55f281749.png b/versioned_docs/version-v7/images/products/superadmin/42863223-ea1f9b06-8a94-11e8-9e1d-22a55f281749.png
new file mode 100644
index 00000000..a9724ab2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42863223-ea1f9b06-8a94-11e8-9e1d-22a55f281749.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42863264-17709aa6-8a95-11e8-9e4b-d22df4ab7872.png b/versioned_docs/version-v7/images/products/superadmin/42863264-17709aa6-8a95-11e8-9e4b-d22df4ab7872.png
new file mode 100644
index 00000000..299fc228
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42863264-17709aa6-8a95-11e8-9e4b-d22df4ab7872.png differ
diff --git a/versioned_docs/version-v7/images/products/superadmin/42863336-4fdb49c2-8a95-11e8-9608-b3757d68ec49.png b/versioned_docs/version-v7/images/products/superadmin/42863336-4fdb49c2-8a95-11e8-9608-b3757d68ec49.png
new file mode 100644
index 00000000..c79cff13
Binary files /dev/null and b/versioned_docs/version-v7/images/products/superadmin/42863336-4fdb49c2-8a95-11e8-9608-b3757d68ec49.png differ
diff --git a/versioned_docs/version-v7/images/products/trademark-chatopera.png b/versioned_docs/version-v7/images/products/trademark-chatopera.png
new file mode 100644
index 00000000..18e1129f
Binary files /dev/null and b/versioned_docs/version-v7/images/products/trademark-chatopera.png differ
diff --git a/versioned_docs/version-v7/images/products/user-cycle-growth.png b/versioned_docs/version-v7/images/products/user-cycle-growth.png
new file mode 100644
index 00000000..cd0f30a3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-cycle-growth.png differ
diff --git a/versioned_docs/version-v7/images/products/user-cycle-service.png b/versioned_docs/version-v7/images/products/user-cycle-service.png
new file mode 100644
index 00000000..57c48dbc
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-cycle-service.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-2.png b/versioned_docs/version-v7/images/products/user-service-2.png
new file mode 100644
index 00000000..23ea59d3
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-2.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-3.png b/versioned_docs/version-v7/images/products/user-service-3.png
new file mode 100644
index 00000000..1b691079
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-3.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-4.png b/versioned_docs/version-v7/images/products/user-service-4.png
new file mode 100644
index 00000000..bae2db3a
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-4.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-5.png b/versioned_docs/version-v7/images/products/user-service-5.png
new file mode 100644
index 00000000..30ff042b
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-5.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-6.png b/versioned_docs/version-v7/images/products/user-service-6.png
new file mode 100644
index 00000000..fc8b4e81
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-6.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-7.png b/versioned_docs/version-v7/images/products/user-service-7.png
new file mode 100644
index 00000000..b95e7be2
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-7.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-flow-1.png b/versioned_docs/version-v7/images/products/user-service-flow-1.png
new file mode 100644
index 00000000..2fd9c38d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-flow-1.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-flow-2.png b/versioned_docs/version-v7/images/products/user-service-flow-2.png
new file mode 100644
index 00000000..cf5fd94d
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-flow-2.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-flow-3.png b/versioned_docs/version-v7/images/products/user-service-flow-3.png
new file mode 100644
index 00000000..ae1edb41
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-flow-3.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-login.png b/versioned_docs/version-v7/images/products/user-service-login.png
new file mode 100644
index 00000000..27b3e4e6
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-login.png differ
diff --git a/versioned_docs/version-v7/images/products/user-service-prod.png b/versioned_docs/version-v7/images/products/user-service-prod.png
new file mode 100644
index 00000000..c82cd2ca
Binary files /dev/null and b/versioned_docs/version-v7/images/products/user-service-prod.png differ
diff --git a/versioned_docs/version-v7/images/products/usercase-1.png b/versioned_docs/version-v7/images/products/usercase-1.png
new file mode 100644
index 00000000..999df297
Binary files /dev/null and b/versioned_docs/version-v7/images/products/usercase-1.png differ
diff --git a/versioned_docs/version-v7/index.md b/versioned_docs/version-v7/index.md
new file mode 100644
index 00000000..31e01a4c
--- /dev/null
+++ b/versioned_docs/version-v7/index.md
@@ -0,0 +1,118 @@
+---
+sidebar_position: 1
+---
+
+# 春松客服
+
+[https://www.cskefu.com](https://www.cskefu.com)
+
+春松客服是拥有坐席管理、渠道管理、机器人客服、数据分析、CRM 等功能于一身的新一代客服系统。将智能机器人与人工客服完美融合,同时整合了多种渠道,结合 CRM 系统,为客户打标签,建立客户的人群画像等,帮助企业向客户提供更加专业客服服务。
+
+!!! 目前,春松客服 v7 已经不在积极维护,请参考[文档中心](https://docs.cskefu.com/docs/next/)使用稳定版本。
+
+![用户案例](images/products/cskefu/customers-2021.jpg)
+
+## 产品定义
+
+客服系统是企业的重要工具,尤其是移动互联网时代,微信公众号、移动电话或是 Facebook Messenger 等渠道分散了企业的服务渠道,企业需要响应来自任何地点任何时间的客户。同时,企业的口碑至关重要,企业服务需要在客户获得、客户激活、客户留存等阶段无懈可击。
+
+![客服的重要性](images/products/user-cycle-growth.png)
+
+**春松客服**有下面的亮点:
+
+### 模块化设计
+
+将功能以插件形式模块化,适合企业长期使用,尤其是中小型企业,灵活购买高级插件。
+
+![插件机制](images/products/user-service-prod.png)
+
+### 部署方便
+
+以容器化基础,安装使用 Docker 编排,卸载等非常简单。
+
+### 机器人客服
+
+强大的机器人客服解决方案,与 Chatopera 机器人平台等产品集成。
+
+![全周期解决方案](images/products/solution-1.png)
+
+### 开箱即用
+
+春松客服提供多个**开箱即用**的模块:
+
+- 账号及组织机构管理:按组织、角色分配账号权限
+
+- 坐席监控:设置坐席监控角色的人员可以看到并干预访客会话
+
+- 联系人和客户管理:CRM 模块,管理联系人和客户,细粒度维护客户信息,自定义标签和打标签,记录来往历史等
+
+- 网页渠道组件:一分钟接入对话窗口,支持技能组、邀请和关联联系人等
+
+- Facebook 渠道组件:快速接入 [Facebook Messenger](https://www.messenger.com/) 渠道,通过 Messenger 支持 Facebook 粉丝页、[Shopify](https://www.shopify.com/) 等海外社交、电商平台
+
+- 坐席工作台:汇聚多渠道访客请求,坐席根据策略自动分配,自动弹屏,转接等
+
+- 机器人客服:与[Chatopera 云服务](/products/chatbot-platform/index.html)集成
+
+- 企业聊天:支持企业员工在春松客服系统中群聊和私聊
+
+- 质检:历史会话、服务小结、服务反馈及相关报表
+
+在本文档中,也称以上模块为*基础模块*。
+
+## 产品演示
+
+演示环境是为了帮助大家了解春松客服,以下是地址和超级管理员账号。
+
+| 网站 | 用户名 | 密码 |
+| --------------------------- | ------ | --------- |
+| | admin | admin1234 |
+
+
+提示:【演示环境】定时刷新且任何人都可以登录,不要更改密码和创建敏感数据,因该网站会**频繁重置数据和升级**,**该网站不能作为生产系统评估**,仅作为应用可行性参考;评估系统,比如压力测试和性能测试,请按照部署文档[^deploy]操作获得新的服务实例。
+
+[^deploy]: 部署文档
+
+## 使用场景角色
+
+### 客户
+
+需要智能客服系统的企业。
+
+### 客服人员
+
+指代客户的客服团队的工作人员。
+
+### 访客/消费者
+
+指代甲方的客户,是需要通过联系客服人员咨询问题的人。
+
+### 开发人员
+
+指代智能客服系统的开发者,开发人员应该是有权限修改智能客服系统代码的人,包括 Chatopera 工程师和春松客服开源社区开发者。
+
+### 业务专家
+
+指代熟悉客户业务的人员,业务专家可以提供产品设计的意见,可以参与智能问答的质量评定,也可以作为管理员登录智能客服系统,配置系统,管理智能对话和训练。
+
+## 关注春松客服公众号
+
+及时获得产品更新、活动分享等信息。
+
+![春松客服公众号](images/products/cskefu/cskefu-wechat-gzh.png)
+
+## 用户使用文档 PDF
+
+春松客服用户使用指南(PDF) 2022 最新版本[下载链接](https://www.cskefu.com/moment/825.html/)。
+
+
+
+用户使用文档(PDF)是与[文档中心](https://docs.cskefu.com/docs/)的内容一致的 PDF 文件。PDF 格式方便查看、搜索和打印。使用时注意版本更新,相对而言,[网站](https://docs.cskefu.com/docs/) 是最新的,注册春松客服官网:,及时获得更新提醒。
+
+
+
+## 定制化开发培训课程
+
+开发者通过学习《春松客服大讲堂》[^cskefudjt2019]来掌握基于春松客服定制开发客服系统,在春松客服基础上添加企业特别需求的功能。
+
+[^cskefudjt2019]: 地址,https://docs.cskefu.com/docs/osc/training
diff --git a/versioned_docs/version-v7/initialization.md b/versioned_docs/version-v7/initialization.md
new file mode 100644
index 00000000..109deda6
--- /dev/null
+++ b/versioned_docs/version-v7/initialization.md
@@ -0,0 +1,109 @@
+---
+sidebar_position: 3
+---
+
+# 系统初始化
+
+完成[部署春松客服实例](/products/cskefu/deploy.html)后,还需要针对企业的组织架构和客服坐席进行配置才能使用。**请认真阅读本页内的内容,尤其是【常见问题】一节。** 这样可以节约您的宝贵时间!
+
+默认的账号 `admin` 是超级管理员,该账号做了特殊处理:可以使用坐席工作台,但是不具备接待访客会话的能力。
+
+只有对系统进行初始化,才能开始处理客户咨询,所以初始化主要是针对坐席管理的,也请先详细阅读 [权限设计](/products/cskefu/accounting.html#%E6%9D%83%E9%99%90%E8%AE%BE%E8%AE%A1)。
+
+在您了解了`组织机构`、`角色`、`账号`和[网页渠道](/products/cskefu/channels/webim.html)的概念后,继续阅读一下内容。
+
+**春松客服刚搭建好后,合理的初始化顺序是:1)创建组织机构;2)创建角色;3)创建账号;4)账号添加到组织机构;5)账号添加到角色。** 在使用过程中,也可以灵活调整。
+
+## 默认的账号信息
+
+在系统部署后,得到默认的:
+
+| **登录账号** | **密码** | **角色** |
+| ------------ | --------- | --------- |
+| admin | admin1234 | 系统超级管理员 |
+| zhangsan | agent1234 | 客服坐席人员 |
+
+
+* 系统超级管理员【admin】, 密码:`admin1234`
+
+* 角色【管理员】【高级坐席】【初级坐席】
+ * 初级坐席:仅具备坐席服务的基本资源读写权限
+ * 高级坐席:在初级坐席基础上,支持【坐席监控】等高级功能
+ * 管理员:可以查看【系统管理】并对管理员所在的组织机构和附属组织机构进行人员、设置等
+
+* 组织机构【售前坐席A组】, 及其从属
+ * 角色【普通坐席】
+ * 坐席账号【zhangsan】,属于角色【普通坐席】, 密码:`agent1234`
+ * 网站渠道【localhost】, 该聊天控件可以在 *http(s)://CSKEFU_IP:CSKEFU_PORT/testclient.html* 体验
+
+需要强调的是,为了系统安全起见,您可以按照一下顺序删除`网站渠道【localhost】`、`【zhangsan】`、`【普通坐席】` 和 `【售前坐席A组】`。
+
+## 修改默认账号密码
+
+**为了安全起见,在系统部署后,完成密码修改并妥善保管密码。**
+
+### 修改【admin】账号
+
+使用系统超级管理员 admin,点击右上角【个人资料】。
+
+![个人资料](images/products/cskefu/account/screenshot-20211129-161436.png)
+
+设置新密码并保存。
+
+![设置](images/products/cskefu/account/screenshot-20211129-161422.png)
+
+### 修改【zhangsan】账号
+
+使用系统超级管理员 admin 进入【售前坐席 A 组】,再进入系统管理,账号管理,找到zhangsan,点击`编辑`进行修改。
+
+![修改账号](images/products/cskefu/account/screenshot-20211129-161512.png)
+
+## 创建组织机构
+
+参考[组织机构管理](/products/cskefu/accounting.html#组织机构管理),为企业建设一个树形的组织架构。针对坐席小组,设定为 **技能组**。
+
+## 创建角色
+
+参考[角色管理](/products/cskefu/accounting.html#%E8%A7%92%E8%89%B2%E7%AE%A1%E7%90%86),创建角色并授予相应的权限,客服人员主要需要的资源就是**坐席对话**,**全部客户** 和 **全部联系人**,此处**全部客户**和**全部联系人**是限定在该坐席所在的组织机构和下属组织机构而言的。
+
+![创建角色](images/products/cskefu/init-1.jpg)
+
+若果该角色需要能干预其他坐席人员的会话,则可授予**会话监控**,此处也是监控该坐席所在的组织机构和下属组织机构的。
+
+一个春松客服登陆用户,具体有什么资源的访问,看到哪些数据,是通过其所在的组织机构及其下属组织机构,和该登陆用户的角色授予情况来判断的,因为一个资源,即有资源名称,又属于一个组织机构。
+
+
+
+## 创建账号
+
+参考[账号管理](/products/cskefu/accounting.html#%E8%B4%A6%E5%8F%B7%E7%AE%A1%E7%90%86),**创建账号后,将账号添加到组织机构和角色**。
+
+## 下一步
+
+[坐席工作台的使用注意事项](/products/cskefu/work.html)
+
+[创建网页聊天控件](https://docs.chatopera.com/products/cskefu/channels/webim.html)
+
+[配置机器人客服](/products/cskefu/work-chatbot/index.html)
+
+[春松客服系统维护:升级、备份、回退等](/products/cskefu/osc/maintainence.html)
+
+## 常见问题
+
+### #463
+
+
+
+问题:客户端点开客服每次都进入的排队 ,发现只有刷新后台的页面才会正常接入客服
+
+解决:进入【系统设置-网页渠道-接入】,在【客服信息】中绑定单一技能组。
+
+
+### #378
+
+
+
+问题:访客打开网页聊天控件,提示等待
+
+解决:没有坐席在线,需要按照上述建立有效的坐席人员,并有坐席人员登陆。春松客服部署好以后,默认只有`超级管理员`,这时直接建立网页渠道访问,超级管理员在线,就会出现提示等待。
+
diff --git a/versioned_docs/version-v7/monitoring.md b/versioned_docs/version-v7/monitoring.md
new file mode 100644
index 00000000..97a6659b
--- /dev/null
+++ b/versioned_docs/version-v7/monitoring.md
@@ -0,0 +1,39 @@
+---
+sidebar_position: 8
+---
+
+# 坐席监控
+
+## 查看历史会话
+
+_左侧菜单_ -> _会话历史_ -> _历史会话_
+
+![查看历史会话](images/products/cosin/Picture59.png)
+
+## 查看当前会话
+
+_左侧菜单_ -> _会话历史_ -> _当前会话_
+
+## 查看排队队列
+
+_左侧菜单_ -> _会话历史_ -> _排队队列_
+
+## 查看访客留言
+
+_左侧菜单_ -> _会话历史_ -> _访客留言_
+
+## 查看满意度统计
+
+_左侧菜单_ -> _统计功能_ -> _满意度统计_
+
+![查看满意度](images/products/cosin/Picture64.png)
+
+## 查看全部坐席
+
+_左侧菜单_ -> _会话历史_ -> _坐席信息_ -> _全部坐席_
+
+## 坐席监控
+
+_左侧菜单_ -> _坐席监控_
+
+![查看坐席监控](images/products/cosin/Picture68.png)
diff --git a/versioned_docs/version-v7/osc/contribution.md b/versioned_docs/version-v7/osc/contribution.md
new file mode 100644
index 00000000..5109d9dd
--- /dev/null
+++ b/versioned_docs/version-v7/osc/contribution.md
@@ -0,0 +1,181 @@
+---
+sidebar_position: 4
+---
+
+# 提交代码
+
+春松客服一直会坚持 Apache 2.0 许可证,在保持开放的情况下,团结起来,一起做好开源客服系统,既然大家都在用春松客服,合作才会成为大赢家。
+
+提交代码,就是变更[春松客服项目库](https://github.com/chatopera/cskefu)中的内容,比如增加文档、变更代码、配置等。给春松客服提交代码是成为一个春松客服开发者的标志。相对于其它类型的贡献,提交代码需要更多的努力,因此,给春松客服提交代码,也是开源合作共赢精神的证明。
+
+## 成为春松客服开发者
+
+春松客服有很多用户,企业或独立开发者在使用春松客服,作为要不断优化的企业软件,春松客服得到很多的反馈建议,包括 BUG、需求、文档等。作为开源软件,可作为贡献者工作的也主要是三项:发现问题、分析问题和解决问题。现在,春松客服开源社区运作不平衡,很多人发现问题,少部分的人分析问题,解决问题的主要还是发布者。但是从另外一方面,也有一些春松客服用户在做变更,比如 [dph5199278/wit@621c949](https://github.com/dph5199278/wit/commit/621c949e471e8338045d0fef51dd77800dda950e)。
+
+如果大家做的变更公开了,但是却没有提交到春松客服 OSC 分支(春松客服源码的主分支),可能是缺少一份说明文档。这是本文档的作用:详细的说明如何提交代码到春松客服。
+
+我们诚挚的邀请春松客服用户提交 PR,成为春松客服的开发者:春松客服属于贡献者。
+
+以下内容为具体介绍,建议先全文读一遍再进行实践。
+
+提交代码的过程,可以简述为:1)确定工作内容;2)搭建开发环境;3)完成开发和测试;4)推送代码;5)提交 PR 到春松客服。在合并到春松客服 OSC 分支前,可能还会根据 Code Review 进行沟通和优化。
+
+## 确定工作的内容
+
+工作的内容记录在春松客服的[工单(Issue)](https://github.com/chatopera/cskefu/issues)中,可以创建根据您自己的需要创建工单,或者选择一个已有的工单。
+
+在工单中,对工作进行准确和清晰的定义,讨论,设计是非常有必要的,这个过程可以体现工作成熟度。
+
+高手解决问题,在大脑中完成,动手实现只是完成确定无疑的事情。聪明的人,不断的完善头脑中创造的能力。“少用脑,多用手”会一直停留在菜鸟的阶段。
+
+## 搭建开发环境
+
+开发环境搭建,包括下载源码、安装 IDE、启动数据库和配置项目等。
+
+详细内容,参考文档[开发环境搭建](https://docs.chatopera.com/products/cskefu/osc/engineering.html)。
+
+## 完成开发和测试
+
+在对工单进行思考后,开始着手实现,下面探讨两项相关内容。
+
+### Git 使用概述
+
+Git 用于版本管理,使用 Git 时,一个文件有三个可能存在的地方:indexed(索引区),staged(暂存区) 和 workarea(工作区)。indexed 文件就是被索引了(提交了);staged 就是被临时的保存了(暂未提交,保护一下);workarea,在编辑器中打开的这份。
+
+![Git 使用概述](../images/products/cskefu/git-scm-intro.png)
+
+上图中 master 所在区就是 indexed。
+
+Git 的版本管理,就是指这三个层面同一个文件的差异。
+
+Git add: 从 workarea 添加到 staged
+
+Git commit: 从 staged 到 indexed
+
+当然还有不同的方向,这构成了 git checkout, git stash, git restore, git reset, git clean 等命令。
+
+当本地的 Git 库和它的远程的 Git 库同步时,就涉及使用 git push 和 git pull。
+
+以上是对 Git 的简要介绍,快速入门 Git,首先熟悉它的远离,比如以上;其次,做一些练习,比如使用 [practice-git](https://github.com/grayghostvisuals/practice-git)。
+
+即便还没有理解,也可以按照下面的命令完成代码提交。
+
+### 管理工作区
+
+首先,创建本次工作的分支,创建分支是非常有必要的。保持工作区的清爽,方便多人协作。
+
+```bash
+cd cskefu.osc # 在第2步,搭建开发环境中,有描述,克隆代码后,得到该路径
+git checkout -b ${名称}
+# 比如,git checkout -b issue7
+```
+
+然后,开始修改代码,进行测试。
+
+### 成为一个优秀的开发者
+
+要从工作中获得更多快乐,同时也为了不断涨薪,就需要不断的前进,依赖于:1)心态;2)技能。
+
+#### 关于心态
+
+这是一个比提升技能更需要时间和重视的部分,一个好的开发者的心态,可以和一个觉悟者相提并论了,那些个看不到、摸不着的字节,完成你的复杂的逻辑,需要你保持稳定和理性的状态。
+
+这方面有很多好的读物,比如[《程序员修炼之道:从小工到专家》](https://item.jd.com/10393278.html)、[《冥想》](https://item.jd.com/12058554.html)和[《程序员的自我修养——链接、装载与库》](https://item.jd.com/10024708744202.html)。这几本书,值得常看,常看可以常新。尤其是《冥想》,每天早晚各十分钟冥想,坚持 90 天,保证你成为程序员中的大师!
+
+#### 关于技能
+
+春松客服社区发布了[《春松客服大讲堂》](https://docs.chatopera.com/products/cskefu/osc/training.html),快速的入门以及熟悉开发技能。
+
+在《春松客服大讲堂》中,有很多知识内容,而单元测试、AOP 变成、自动化测试等也涉及,内容丰富。
+
+## 推送代码
+
+通过测试后,进行代码推送。推送代码,一方面是为了备份,一方面是为了协作。
+
+```bash
+cd cskefu.osc
+git add --all # 添加全部的变更
+# 也可以使用 git add ${文件路径} 来指定
+
+
+git commit -m "#7 foo bar, some description" # 在 Commit Message 中添加 #ISSUE_NUMBER 是一个好习惯,可以 Git log 日志整洁,易于维护
+git push origin ${YOUR_BRANCH_NAME} # ${YOUR_BRANCH_NAME} 就是分支名称
+# 比如 git push origin issue7
+```
+
+执行过程中,交互类似:
+
+![推送代码](../images/products/cskefu/screenshot-20220325-160845.png)
+
+在 git push 命令,执行后,也可以看到,git 提示您,可以提交一个 PR(Pull Request):
+
+```bash
+remote: Resolving deltas: 100% (1/1), completed with 1 local object.
+remote:
+remote: Create a pull request for 'issue7' on GitHub by visiting:
+remote: https://github.com/hailiang-wang/cskefu/pull/new/issue7
+remote:
+To github.com:hailiang-wang/cskefu.git
+ * [new branch] issue7 -> issue7
+```
+
+这里的日志说的 remote, 就是指您远程的 GitHub 仓库,这里我的仓库地址是:
+
+[https://github.com/hailiang-wang/cskefu](https://github.com/hailiang-wang/cskefu)
+
+## 提交 PR 到春松客服
+
+上一步,已经提示,推送代码到 remote,可以打开提示 URL 地址,比如
+
+
+
+进行 PR 提交,PR 提交是指将您的变更通知春松客服开源仓库,仓库的维护人员,可以查看、评价和合并您的变更。
+
+在浏览器中,打开 ,得到如下页面:
+
+![创建 PR](../images/products/cskefu/screenshot-20220325-161804.png)
+
+在该页面,确认希望提交的代码分支是正确的,合并的方向是从【源库:branch】到【目标库:branch】。然后,对变更添加标题和描述正文。
+
+在春松客服中,使用了模板,根据模板进行填写。在模板中,添加工单的 Issue Number, 比如使用 `#7`。
+
+进行这些步骤,点击【Create pull request】。
+
+本步骤完成,提交 PR 的工作就完成了,春松客服开源社区的其它贡献者会尽快的处理,完成交流和合并工作。
+
+## 恭喜您
+
+发布代码到春松客服是值得骄傲的事情,您的变更在合并的路上!
+
+## PR 被 Merge 后
+
+PR 被合并后,是指代码进入到了春松客服的[OSC 分支](https://github.com/chatopera/cskefu/tree/osc),一个被 Merge 的 PR 状态显示为【Merged】,比如 [PR 666](https://github.com/chatopera/cskefu/pull/666)。
+
+![同步代码](../images/products/cskefu/screenshot-20220328-095049.png)
+
+现在,Upstream 已经有了最新的代码,但是您的远程仓库还没有最新的代码,也就是您的 OSC 分支还没有更新,此时需要做下面的操作。
+
+### 在本地 Git 库同步 Upstream
+
+```bash
+cd cskefu.osc
+git checkout osc # 如果此时在 local 有变更,不是 clean 的状态,使用 git stash 缓存,或使用 git clean -f . 放弃
+git pull upstream osc
+git push origin osc # 推送到您的远程 Git 仓库
+```
+
+### 在本地删除临时的 Branch
+
+假如现在工单的工作已经完成,那么可以删除本地的临时的分支。
+
+```bash
+git branch -d issue7
+```
+
+
+
+## 自豪的
+
+春松客服是最流行的开源客服系统,现在已经在企业部署超过 17,000 次,为数百政府机构、事业单位和企业上线智能客服系统,现在您是春松客服的开发者一员了!
+
+春松客服会尽快的将您添加到[贡献者列表](https://github.com/chatopera/cskefu#%E8%B4%A1%E7%8C%AE%E8%80%85%E5%88%97%E8%A1%A8-)!
diff --git a/versioned_docs/version-v7/osc/engineering.md b/versioned_docs/version-v7/osc/engineering.md
new file mode 100644
index 00000000..e36d1102
--- /dev/null
+++ b/versioned_docs/version-v7/osc/engineering.md
@@ -0,0 +1,419 @@
+---
+sidebar_position: 3
+---
+
+# 开发环境搭建
+
+本文介绍如何完成春松客服开发环境的搭建,**面向企业/开发者提供关于春松客服二次开发的相关知识,从入门到掌握全部开发技能请学习[《春松客服大讲堂》](/docs/osc/training)**。
+
+本文档针对春松客服 v7 版本,该版本对应的代码参考[链接](/docs/deploy#克隆代码)。
+
+## 依赖
+
+开发环境依赖,提前准备好:
+
+- 操作系统 Windows 或 Mac OS
+- [Git](https://git-scm.com/)
+- [Java 11+](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/what-is-corretto-11.html)
+- [Maven 3+](https://maven.apache.org/)
+- [Docker 18+](https://www.docker.com/)
+- [Docker compose 1.22+](https://docs.docker.com/compose/install/)
+
+以上安装,也涉及环境变量 PATH 配置,比如 `java`, `mvn` 和 `git` 等在命令行终端中可以使用,在不同的依赖安装文档中也有。
+在 Windows 上,命令行终端使用 Git Bash,安装 Git 时会默认包括。
+
+提示:
+
+1. Docker 或 Docker compose 可以安装到 Linux/Windows/Mac 上,Docker 在开发阶段用来启动数据库、中间件。
+
+## 安装 Java SDK
+
+春松客服使用[Amazon Corretto SDK 11](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/what-is-corretto-11.html),原因:
+
+- 兼容 OpenJDK 标准
+- 良好的开源社区,可长期商业友好的使用,Amazon 发布,James Gosling 领导
+- 适应不同操作系统
+
+春松客服不使用其它版本的 JDK,如有其它 JDK 诉求自行测试:理论上,所有 OpenJDK 11 的 JVM 都是可以运行春松客服的。
+
+## 配置 Maven
+
+确保在 pom.xml 中存在如下的 maven 库,[Chatopera Nexus](https://nexus.chatopera.com/)是代理 Maven Central,Alibaba Maven Repo 等节点的混合 Maven Repository,使用 Chatopera Nexus 不会影响项目使用其它公共包(Artifacts)。
+
+在``内存在:
+
+```XML
+
+
+ chatopera
+ Chatopera Inc.
+ https://nexus.chatopera.com/repository/maven-public
+
+ true
+
+
+ true
+
+
+
+```
+
+配置文件的示例见 [pom.xml](https://github.com/cskefu/cskefu/blob/osc/contact-center/app/pom.xml)。
+
+如配置后不能下载,请参考[配置文件](https://github.com/cskefu/cskefu/issues/137)。
+
+## 克隆项目
+
+### 准备 GitHub 账号
+
+注册[地址](https://github.com/signup?user_email=&source=form-home-signup),该注册依赖于邮箱。注册完成后,进行登录。
+
+添加 SSH Key:
+
+- 在 Terminal 命令行终端(Git Bash, Windows)执行命令 `ssh-keygen`,得到文件 `~/.ssh/id_rsa.pub` 并复制其文本内容到粘贴板。
+
+- 打开 [SSH Keys 管理地址](https://github.com/settings/keys),点击【New SSH Key】,使用粘贴板内容创建一个 SSH KEY。
+
+### Fork 源码
+
+在浏览器中,打开[春松客服项目地址](https://github.com/cskefu/cskefu),在右上角,找到【Fork】按钮,点击【Fork】,根据提示选择空间,该项目源码将被复制到该空间。
+
+![Fork 源码](../images/products/cskefu/screenshot-20220325-142302.png)
+
+克隆后,新的项目地址类似如下:
+
+```Bash
+https://github.com/${YOUR_SPACE}/cskefu # ${YOUR_SPACE} 代表您的空间名称
+```
+
+### 下载源码
+
+克隆项目,就是将上面新建的项目的源码,下载到计算机,使用命令行终端执行:
+
+```Bash
+git clone https://github.com/${YOUR_SPACE}/cskefu.git cskefu
+# 默认为 develop 分支, develop 分支为当前发行版本的维护分支;master 分支为发行版本的稳定分支;next 为下一个版本的研发分支
+# 以下,使用 cskefu 代表源码所在路径
+```
+
+### 添加 Upstream
+
+Upstream 指春松客服 GitHub Repo(https://github.com/cskefu/cskefu),就是春松客服的项目库核心分支。添加 Upstream 的目的,是之后从春松客服项目拉取更新代码。
+
+```Bash
+cd cskefu
+git remote add upstream git@github.com:cskefu/cskefu.git
+```
+
+完成以上步骤,克隆项目完毕。也请给春松客服点赞,使用【Fork】旁边的【Star】按钮。
+
+![给春松客服点赞](../images/products/cosin/g4.jpg]
+
+## 文件目录介绍
+
+![文件目录介绍](../images/products/cosin/g9.png)
+
+| 目录 | 说明 |
+| -------- | ---------------------------- |
+| `_m2` | 用于 Dockerfile 中,构建镜像 |
+| `admin` | 各种脚本 |
+| `app` | 源代码 |
+| `config` | 数据库文件 |
+| `data` | 数据库数据 |
+| `logs` | 日志 |
+
+
+
+春松客服是基于 Java 开发到,使用 Maven 维护项目声明周期。使用 Maven 命令,生成项目,方便导入到 IDE 中。
+
+## 配置启动参数
+
+春松客服是基于 [Spring Boot Release 1.5.22.RELEASE](https://mvnrepository.com/artifact/org.springframework.boot/spring-boot/1.5.22.RELEASE) 开发,配置文件是
+
+```路径
+cskefu/contact-center/app/src/main/resources/application.properties
+```
+
+数据库(后文介绍搭建数据库)连接等其他信息,参考该文件。使用自定义值覆盖默认值,有以下两个方式:
+
+1)使用 application-dev.properties;
+
+2)使用环境变量。
+
+### 使用 Profile 文件
+
+使用 application-dev.properties 覆盖默认配置。
+
+- 设置环境变量
+
+```环境变量
+SPRING_PROFILES_ACTIVE=dev
+```
+
+- 创建 application-dev.properties
+
+```Bash
+touch contact-center/app/src/main/resources/application-dev.properties
+```
+
+内容如下:
+
+```文本
+# MySQL
+spring.datasource.url=jdbc:mysql://192.168.2.217:7111/cosinee?useUnicode=true&characterEncoding=UTF-8
+spring.datasource.username=root
+spring.datasource.password=123456
+
+# Redis服务器连接端口
+spring.redis.host=localhost
+spring.redis.port=6379
+# Redis服务器连接密码(默认为空)
+spring.redis.password=
+
+# ActiveMQ
+spring.activemq.broker-url=tcp://192.168.2.217:9007
+spring.activemq.user=admin
+spring.activemq.password=123456
+
+# Elasticsearch
+spring.data.elasticsearch.cluster-nodes=192.168.2.217:7201
+```
+
+**此处可以覆盖 application.properties 中的任何值。**
+
+### 环境变量
+
+`application.properties` 中的每一项都可以用环境变量配置,通过环境变量方式映射配置信息,实现覆盖 `application.properties` 中等配置,其映射方式为 `propery` 的键转为大写同时`.`和`-`转为`_`。部分环境变量:
+
+```环境变量
+SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/contactcenter?useUnicode=true&characterEncoding=UTF-8
+SPRING_DATASOURCE_USERNAME=root
+SPRING_DATASOURCE_PASSWORD=123456
+```
+
+比如,`SPRING_DATASOURCE_URL` 就是对应了 `properties` 文件中的 `spring.datasource.url`。同时,环境变量的值优先级高于 `properties` 文件。
+
+> 提示:在生产环境部署,建议使用环境变量方式配置。
+
+春松客服 Docker 容器的配置,使用了环境变量的方式,参考文件[docker-compose.yml](https://github.com/cskefu/cskefu/blob/osc/docker-compose.yml)。
+
+## 数据库搭建
+
+在源码中,默认使用 docker-compose 启动服务的描述文件 [docker-compose.yml](https://github.com/cskefu/cskefu/blob/develop/docker-compose.yml),用于快速准备开发环境。
+
+为了减少开发环境搭建可能遇到的问题,使用 [docker-compose.yml](https://github.com/cskefu/cskefu/blob/develop/docker-compose.yml) 中的 docker 镜像启动以下服务,尤其是春松客服对于一些软件的版本有要求,我们强烈建议开发者在入门春松客服开发的阶段,安装 docker 和 docker-compose,并按照下面的步骤配置开发环境。
+
+这几个数据库,可以用一行命令启动:
+
+```bash
+cd cskefu
+docker-compose up -d mysql elasticsearch activemq redis
+```
+
+另外,以下几个数据库服务可以运行在不同的计算机,以节省开发机器的资源;如果使用了不同的计算机运行。以下也给出如何逐个启动,如何修改配置文件。
+
+### Elasticsearch
+
+春松客服依赖 Elasticsearch 服务,用下面的方式创建。
+
+```Bash
+cd cskefu
+docker-compose up -d elasticsearch
+```
+
+Elasticsearch 的配置项在 application.properties 是
+
+```文本
+spring.data.elasticsearch.cluster-name=elasticsearch
+spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
+```
+
+将 cluster-nodes 配置为开发服务地址,默认为"YOUR_IP:9300"。
+
+Elasticsearch 的数据浏览和管理,使用 [elasticsearch-head](https://github.com/mobz/elasticsearch-head)。
+
+### ActiveMQ
+
+春松客服依赖 ActiveMQ 服务,如果没有 ActiveMQ 服务,可以用下面的方式创建。
+
+```Bash
+cd cskefu
+docker-compose up -d activemq
+```
+
+ActiveMQ 的配置项在 application.properties 是
+
+```文本
+spring.activemq.broker-url=tcp://localhost:61616
+spring.activemq.user=admin
+spring.activemq.password=admin
+spring.activemq.pool.enabled=true
+spring.activemq.pool.max-connections=50
+```
+
+将以上值修改为 ActiveMQ 的实际地址和密码。
+
+ActiveMQ 管理工具,使用浏览器打开, 默认是 `8051`,即[环境变量](https://github.com/cskefu/cskefu/blob/osc/docker-compose.yml) `ACTIVEMQ_PORT1`。
+
+![ActiveMQ 管理工具](../images/products/cskefu/screenshot-20220326-105115.png)
+
+点击【Manage ActiveMQ broker】,用户名 admin, 密码 admin。
+
+### MySQL
+
+春松客服依赖 MySQL 服务,如果没有 MySQL 服务,可以用下面的方式创建。
+
+```Bash
+cd cskefu
+docker-compose up -d mysql
+```
+
+MySQL 容器启动后,还需要创建春松客服数据库,该过程是在数据库上执行 SQL 文件([`contact-center/config/sql/cosinee-MySQL-slim.sql`](https://github.com/cskefu/cskefu/blob/osc/contact-center/config/sql/cosinee-MySQL-slim.sql))完成的。
+
+#### 连接 MySQL 服务
+
+安装 DBMS 管理工具 MySQL Workbench,下载地址:
+
+
+
+![MySQL Workbench 下载](../images/products/cskefu/screenshot-20220326-103030.png)
+
+在 Windows 上,MySQL Workbench 依赖 [Visual C++ Redistributable](https://docs.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170),需要提前安装。
+
+使用`docker-compose`启动的 MySQL 服务,其连接认证信息如下:
+
+| IP | 用户名 | 密码 | 端口 |
+| --------- | ------ | ------ | ---- |
+| localhost | root | 123456 | 8037 |
+
+
+
+![MySQL Workbench 安装](../images/products/cskefu/screenshot-20220326-103030.png)
+
+#### MySQL 数据字典
+
+在线浏览[数据字典](https://chatopera.github.io/cskefu/)
+
+![春松客服数据字典](../images/products/cosin/g8.png)
+
+#### SQL 快速入门
+
+参考《春松客服大讲堂》之[春松客服开发基础知识 SQL 快速入门](https://www.bilibili.com/video/BV1ah411s7ak?p=1)。
+
+### Redis
+
+春松客服依赖 Redis 服务,如果没有 Redis 服务,可以用下面的方式创建。
+
+```Bash
+docker-compose up -d redis
+```
+
+Redis 启动后就可以,不需要其他操作。
+
+Redis 管理工具,推荐 [AnotherRedisDesktopManager for Windows](https://github.com/qishibo/AnotherRedisDesktopManager/releases), [medis for macOS](https://github.com/luin/medis/releases)。
+
+## 安装春松客服插件
+
+春松客服的一些定制化需求是通过插件的形式发布的,插件让非通用需求和定制化开发的功能的源码与基础代码分离。一些插件是付费的,一些插件是免费的,比如**机器人客服插件**就是免费开源的。
+
+插件的安装和源码参考:[https://github.com/cskefu/cskefu/tree/osc/public/plugins](https://github.com/cskefu/cskefu/tree/osc/public/plugins)
+
+## 配置 IDE
+
+春松客服开发支持的 IDE,包括所有的支持 Spring Boot 的 IDE,以下仅提供部分工具的文档。
+
+- [Intelij IDEA](./ide_intelij_idea.md)
+- [Eclipse IDE](./ide_eclipse.md)
+
+配置完成后,需要继续完成以下内容。
+
+## 初始化系统
+
+启动调试服务,如果要定制化客服接待访客的代码,需要按照[系统初始化](/products/cskefu/initialization.html)文档做更多配置。
+
+## 春松客服代码规范
+
+为提升合作和可维护性,共同做好开源客服系统,修改春松客服代码,需要符合一定规范,这是对春松客服开源社区开发者的一致要求。
+
+配置好开发环境后,阅读[《春松客服代码规范》](https://github.com/cskefu/cskefu/blob/osc/CODE_OF_CONDUCT.md)。
+
+## 模拟访客端测试
+
+介绍如何测试网页端访客程序,假设服务是自动在本地 `http://localhost:8035` 端口。
+
+### 创建网站渠道
+
+```文本
+http://localhost:8035/
+用户名:admin
+密码:admin1234
+```
+
+保证有下面的一条网站渠道:
+
+![网站渠道](../images/products/cosin/g19.png)
+
+**注意**:网站地址为 _localhost_
+
+### 设计网页端样式
+
+在网站列表中,从右侧操作中点击“设计”。
+
+![设计网页](../images/products/cosin/g20.png)
+
+按照需求配置各种属性。
+
+![配置](../images/products/cosin/g21.png)
+
+### 访问测试程序
+
+浏览器打开
+
+```URL
+http://localhost:8035/testclient.html
+```
+
+![测试](../images/products/cosin/g22.png)
+
+### 网站留言
+
+如果当前系统中没有"在线"并且"就绪"的客服人员,则进入留言。
+
+### 嵌入代码到网站中
+
+在目标接入访客聊天控件的网站中,网页 HTML 的 header 中加入一行代码,就可以访问了,代码:
+
+```HTML
+
+```
+
+**注意**:如果使用 80 或 443 端口,可省略端口;请将网页放在 HTTP 服务器上,如果从浏览器中以本地文件打开因为安全限制会无法加载聊天控件。
+
+HTML 示例:
+
+```HTML
+
+
+
+
+
+
+
+
+
+
+春松客服演示客户端
+
+
+
+```
+
+
+
+## 接下来
+
+- [如何为开源客服系统春松客服贡献代码 | 春松客服](./contribution.md)
+
+- [春松客服数据库表及管理 | 春松客服](https://blog.csdn.net/samurais/article/details/105807088)
+
+- [春松客服的压力测试 | 春松客服](https://blog.csdn.net/samurais/article/details/105725876)
diff --git a/versioned_docs/version-v7/osc/ide_eclipse.md b/versioned_docs/version-v7/osc/ide_eclipse.md
new file mode 100644
index 00000000..27a5cac3
--- /dev/null
+++ b/versioned_docs/version-v7/osc/ide_eclipse.md
@@ -0,0 +1,176 @@
+---
+sidebar_position: 3
+---
+
+# IDE 使用之 Eclipse IDE
+
+<< 回到[上一步:开发环境搭建](./engineering.md#初始化系统)
+
+## 安装和下载 Eclipse
+
+### 下载安装包
+
+安装 Eclipse:
+本文下载时,版本为:Eclipse IDE 2021‑09
+
+![下载 Eclipse](../images/products/cskefu/image2021-12-4_14-59-23.png)
+
+下载过程大约需要 10 mins。
+
+### 安装 Eclipse
+
+双击安装包,按照提示进行安装。
+
+![安装 Eclipse](../images/products/cskefu/image2022-3-26_15-53-32.png)
+
+### 安装 STS
+
+STS 最简单的安装方式,就是启动 Eclipse 后,在 Eclipse Marketplace 中安装。
+
+打开 Marketplace。
+
+![Marketplace。](../images/products/cskefu/image2022-3-26_15-54-15.png)
+
+搜索,Spring Tool Suite。
+
+![Spring Tool Suite](../images/products/cskefu/image2022-3-26_15-55-16.png)
+
+点击【Install】。
+
+![Install](../images/products/cskefu/image2022-3-26_15-56-34.png)
+
+至少选择以上几项,在授权声明页面,选择 【I accept】,点击【Finish】。
+安装过程可能会持续半个小时,视网络情况。
+
+STS 安装完成,下一步导入项目。
+
+## 导入项目
+
+### 初始化 Contact Center 项目描述文件
+
+春松客服提供初始化脚本,在命令行执行:
+
+```bash
+cd cskefu.osc/contact-center
+./admin/gen-eclipse.sh
+```
+
+完成后有如下提示:
+
+![导入项目](../images/products/cskefu/image2021-12-4_16-6-25.png)
+
+该命令生成了被 Eclipse 识别的项目导入文件。
+
+### 导入到 Eclipse
+
+打开 Eclipse,选择 File - Import, 导航到 cskefu.osc/contact-center/app,点击 【Select Folder】。
+
+![导入到 Eclipse](../images/products/cskefu/image2022-3-26_16-0-40.png)
+
+在提示界面,选择 Projects: contact-center.
+
+![选择项目](../images/products/cskefu/image2022-3-26_16-7-20.png)
+
+导入完成。
+
+![导入完成](../images/products/cskefu/image2022-3-26_16-6-21.png)
+
+## 启动和调试
+
+### 设置 JDK 为 Corretto 8 或 11
+
+在上一篇[《开发环境搭建》](./engineering.md)文档中,介绍安装 Corretto 8 或 11,此时,需要将该 JDK 设置为 Eclipse 中 contact-center 项目依赖的 JDK,方法如下:
+
+首先,在左侧 contact-center 右键,选择 Build path, configure Build Path ...
+
+![设置 Build path](../images/products/cskefu/image2022-3-26_16-14-16.png)
+
+然后,选择 Add Library, JRE System Library。
+
+![Add Library](../images/products/cskefu/image2022-3-26_16-12-56.png)
+
+然后,添加 JDK 8 路径。
+
+![设置路径](../images/products/cskefu/image2022-3-26_16-10-31.png)
+
+点击 【Finish】。确认依赖 JDK。
+
+添加完成,回到 Java Build Path 配置页面,确认 Libraries 中,依赖了 Corretto JDK。
+
+![确认 SDK](../images/products/cskefu/image2022-3-26_16-16-43.png)
+
+### 修改配置文件
+
+在目录中添加 application-dev.properties 文件
+
+具体操作,复制 contact-center/src/main/resources/application.properties 为 /contact-center/src/main/resources/application-dev.properties。
+
+根据数据库信息,或其它信息进行必要的更改。
+
+参考上一篇[《开发环境搭建》](./engineering.md)里的内容。
+
+### 创建项目 debug 调试
+
+点击 Debug 启动按钮下拉中的 Debug Configurations, 在左侧找到 Spring Boot App,右键,选择新建配置。
+
+![启动 Debug](../images/products/cskefu/image2022-3-26_16-25-4.png)
+
+在配置页面,填写应用名称:contact-center - Application,project 选择 contact-center, Main Type 选择 com.chatopera.cc.Application。
+
+然后点击 Environment,点击 Add 添加:Name - SPRING_PROFILES_ACTIVE, Value - dev,字符串无空格。
+
+![设置环境变量](../images/products/cskefu/image2022-3-26_16-23-28.png)
+
+点击【Apply】。然后点击【Debug】。
+
+此时,滚动出大量的日志。
+
+![查看日志](../images/products/cskefu/image2022-3-26_16-28-16.png)
+
+### 调试项目
+
+在项目提示: c.c.socketio.SocketIOServer - SocketIO server started at port,代表项目启动成功。
+
+#### 断点调试的基本知识
+
+第一步: 设置断点:在该行最前面边框双击 或快捷键:Ctrl + Shift + B
+
+第二步: Debug 运行启动
+
+第三部: 运行到断点后,使用快捷键F5,F6,F7单步执行。
+
+* F5 - Step into/跳入方法/进入该行的函数内部;
+* F6 - Step over/向下逐行调试/一行一行执行;
+* F7 - Step return/跳出方法/退出当前的函数;
+* F8 - 直接跳转到下一个断点。
+
+#### 更多相关内容参考网络文章
+
+* [Eclipse 断点调试(debug)实用技巧——基础篇](https://jingyan.baidu.com/article/647f0115d666b27f2148a8b1.html)
+* [Eclipse 的 Debug 调试技巧大全](https://blog.csdn.net/u011781521/article/details/55000066)
+
+## Trouble Shooting
+
+### 报错:com.sun.net.ssl.internal.ssl.Provider
+
+![日志](../images/products/cskefu/image2021-12-4_16-20-49.png)
+
+解决办法:
+
+* 修改 Compiler 验证提示,[详细介绍](https://blog.csdn.net/tower888/article/details/106220494)
+
+![日志](../images/products/cskefu/image2021-12-4_16-21-52.png)
+
+* 修改 Project JRE 为前面安装的 Java8 JRE
+
+### 修正中文显示
+
+解决办法[详细介绍](https://blog.csdn.net/timo1160139211/article/details/74908266)。
+
+![显示中文](../images/products/cskefu/image2021-12-4_16-36-7.png)
+
+
+
+## 下一步
+
+回到[上一步:开发环境搭建](./engineering.md#初始化系统)完成后续步骤。
diff --git a/versioned_docs/version-v7/osc/ide_intelij_idea.md b/versioned_docs/version-v7/osc/ide_intelij_idea.md
new file mode 100644
index 00000000..4f565058
--- /dev/null
+++ b/versioned_docs/version-v7/osc/ide_intelij_idea.md
@@ -0,0 +1,59 @@
+---
+sidebar_position: 3
+---
+
+# IDE 使用之 IntelliJ IDEA
+
+<< 回到[上一步](./engineering.md#初始化系统)
+
+春松客服团队使用 [IntelliJ IDEA](https://www.jetbrains.com/idea/) 作为集成开发环境,它因为更加智能而大幅提升了开发者的工作效率,我们也强烈推荐 Java 开发者使用这个工具。本文使用`IntelliJ IDEA`介绍搭建过程。
+
+## 生成项目描述文件
+
+在命令行终端,执行:
+
+```bash
+cd cskefu.osc
+cd contact-center
+./admin/gen-idea.sh
+```
+
+按照 `IDEA` 提示,导入 `contact-center/app` 目录。
+
+## 配置执行及调试
+
+配置运行方式为 Spring,应用为 `com.chatopera.cc.app.Application`
+
+![设置 Main Class](../images/products/cosin/g10.png)
+
+## 配置环境变量
+
+![设置环境变量](../images/products/cosin/g11.png)
+
+## 运行及调试
+
+![运行及调试](../images/products/cosin/g12.png)
+
+点击"执行"或"调试",服务启动,然后访问 确定服务正常运行了。
+
+![登录](../images/products/cosin/g13.png)
+
+**用户名**:admin **密码**:admin1234
+
+## 热更新
+
+在开发过程中,修改了代码,更新正在以 **“调试”** 模式运行服务,点击"执行旁边的锤子"。
+
+![构建](../images/products/cosin/g14.png)
+
+更新成功后,提示
+
+![断点](../images/products/cosin/g15.png)
+
+另外, **“调试”** 模式下,也支持断点调试。
+
+
+
+## 下一步
+
+回到[开发环境搭建](./engineering.md#初始化系统)完成后续步骤。
diff --git a/versioned_docs/version-v7/osc/index.md b/versioned_docs/version-v7/osc/index.md
new file mode 100644
index 00000000..3323707c
--- /dev/null
+++ b/versioned_docs/version-v7/osc/index.md
@@ -0,0 +1,54 @@
+---
+sidebar_position: 4
+---
+
+# 开源社区
+
+[![GitHub Stargazers](https://img.shields.io/github/stars/chatopera/cskefu.svg?style=social&label=Star&maxAge=2592000)](https://github.com/chatopera/cskefu/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/chatopera/cskefu.svg?style=social&label=Fork&maxAge=2592000)](https://github.com/chatopera/cskefu/network/members) [![License](https://img.shields.io/github/license/chatopera/cskefu.svg)](https://github.com/chatopera/cskefu/blob/osc/LICENSE "开源许可协议") [![GitHub Issues](https://img.shields.io/github/issues/chatopera/cskefu.svg)](https://github.com/chatopera/cskefu/issues) [![GitHub Issues Closed](https://img.shields.io/github/issues-closed/chatopera/cskefu.svg)](https://github.com/chatopera/cskefu/issues?q=is%3Aissue+is%3Aclosed) [![Docker Tags](https://raw.githubusercontent.com/hailiang-wang/Rishit-dagli/master/badges/docker.svg)](https://hub.docker.com/repository/docker/chatopera/contact-center/tags?page=1&ordering=last_updated "Get Latest Docker Images") [![Docker Pulls](https://img.shields.io/docker/pulls/chatopera/contact-center.svg "Docker Pulls")](https://hub.docker.com/r/chatopera/contact-center/) [![Docker Stars](https://img.shields.io/docker/stars/chatopera/contact-center.svg)](https://hub.docker.com/r/chatopera/contact-center/ "Docker Stars")
+
+## 开源许可协议
+
+春松客服采用 Apache 2.0 开源许可协议,详细了解该协议内容:
+
+[开源许可协议](https://www.cskefu.com/2022/06/24/cskefu-opensource-license/)
+
+## 加入春松客服开源社区
+
+如何加入春松客服开源社区,[参考文档](https://www.cskefu.com/join-us/)
+
+## 源码仓库
+
+**开源项目地址:**
+
+[Github](https://github.com/chatopera/cskefu) | [Gitee](https://gitee.com/chatopera/cskefu) | [CodeChina](https://codechina.csdn.net/chatopera/cskefu)
+
+以上不同地址的代码同步,在上面的地址,您可以:
+
+- 下载项目开源码
+- 通过 README.md 了解更多项目信息
+- 通过 Wiki 获得开发文档
+- 通过 Issue 提问
+- 通过 Pullrequest 贡献代码
+- 通过 Issue 了解开发状态
+
+在项目地址中,有详细的入门说明,如果使用遇到问题,第一时间[阅读文档](/products/cskefu/index.html),第二时间搜索[历史 Issues](https://github.com/chatopera/cskefu/issues),如果无法解决,加入社区提问。
+
+## 邮件列表
+
+春松客服邮件列表通过邮件服务沟通,跟踪最新的开发动态:
+
+[https://lists.cskefu.com/cgi-bin/mailman/listinfo/dev](https://lists.cskefu.com/cgi-bin/mailman/listinfo/dev)
+
+## 博客专栏
+
+[**《春松客服专栏》**](https://blog.csdn.net/watson243671/category_9915986.html)火热 🔥 更新中,订阅关注,及时获得最新的信息。
+
+![春松客服拥抱开源](../images/products/chatopera_love_os.png)
+
+
+
+## 为春松客服点赞
+
+您的关注、鼓励是开源项目的工作动力之一,请给春松客服点赞 👍!
+
+![点赞春松客服](../images/products/cosin/g4.jpg)
diff --git a/versioned_docs/version-v7/osc/license.md b/versioned_docs/version-v7/osc/license.md
new file mode 100644
index 00000000..ff8ce913
--- /dev/null
+++ b/versioned_docs/version-v7/osc/license.md
@@ -0,0 +1,250 @@
+---
+sidebar_position: 1
+---
+
+# 开源许可协议
+
+春松客服开源以来,完成了超过 17,000 次官网 Docker 镜像部署,超过 1,000 家企业使用,得到社会各界关注。我们收到来自于开发者、企业、IT 集成商、其他开源社区的对春松客服的发展情况、开源社区治理的数千次咨询,尤其是有意于使用春松客服上线客服系统的企业或开发者。
+
+![](../images/products/cskefu/QQ截图20220624154218.png)
+
+很多人惊叹于春松客服的功能、代码质量和文档,在认可春松客服之后,大家关心最多的就是:春松客服的开源许可协议。因为站在用户角度,开源协议明确回答了:
+
+* 作为春松客服使用者,我得到代码和软件安装包后,我有哪些权力;
+* 作为春松客服使用者,我成为贡献者、开发者有哪些好处;
+* 作为春松客服发布者和维护者的你们,对我有什么要求。
+
+开源软件(OpenSource Software)是伴随着自由软件(Free Software)商业化过程中出现的术语。没有开源软件就没有今天数字化生活,互联网时代。**开源许可协议就是围绕软件制作、软件销售、软件产权的契约。** 这个契约有关各方的权力、义务和回报。 **这个契约因为有法律约束力,它将软件发布者、软件维护者、软件用户、软件销售者凝聚在一起,促进这个集体的合作,创造价值。** 了解这个契约,就会认识开源的魅力;认识了开源的魅力,就会认可开源的精神;认可开源的精神,就会受到鼓舞,参与开源社区的建设;参与开源社区的建设,就会带来精神和物质的回报;有了丰富的精神和物质生活,就是我们实现了开源的初心:自由的人做自由的软件。虽然我们会谈到钱,但自由的价值是无法衡量的。所以,作为开源客服系统春松客服的发布者,我期待下载春松客服的源码的人,可以读到这篇文章: **让我们共同的遵守这个契约,一起做好开源客服系统**。
+
+春松客服使用的开源许可协议是 Apache 2.0,该协议文件在春松客服源码文件的头部和代码库的 [LICENSE](https://github.com/chatopera/cskefu/blob/osc/LICENSE) 文件中,都有携带,受限于以上形式的篇幅,不能详细描述,本文将对内容进行展开,用更简单的语言,口语化的描述。
+
+春松客服采用的开源许可协议详细阐述分为五个部分:
+
+* 称呼定义
+* 用户必须遵守什么
+* 用户可以做什么
+* 用户如果想提交代码
+* 对违反协议的用户
+
+## 一、称呼定义
+
+以下“用户”、“您”泛指所有和春松客服有关联的人或组织,包括但不限于:源码或安装包的使用者、开发者、维护者、报告(缺陷、性能、瓶颈、文档、需求、建议、测试)者、发布者、集成商、继承春松客服衍生的企业软件的开发者。开发者指独立的人、企业、机构等。
+
+以下“我”、“开发者”泛指所有提交源代码到春松客服软件库的人或组织。
+
+## 二、用户必须遵守什么
+
+### 2.1 保留春松客服的开源许可协议声明
+
+在您使用春松客服的源码、软件及衍生作品时,必须保留春松客服的声明。
+
+* 2.1.1 源码库的 LICENSE 和 NOTICE 文件(如果[春松客服官方代码库](https://github.com/chatopera/cskefu/)存在该文件)
+
+![](../images/products/cskefu/QQ截图20220624143006.png)
+
+* 2.1.2 在源文件的头部
+
+服务端声明示例:
+
+![](../images/products/cskefu/QQ截图20220624143142.png)
+
+客户端声明示例:
+
+![](../images/products/cskefu/QQ截图20220624143559.png)
+
+![](../images/products/cskefu/QQ截图20220624143632.png)
+
+* 2.1.3 在引用春松客服时进行说明
+
+您可以引用“春松客服”及其 LOGO 以表述春松客服和春松客服开源社区,当您使用春松客服及其安装包,对外提供基于春松客服和其衍生作品时,必须声明春松客服及其官网地址: 或 官网源代码仓库 。
+
+### 2.2 不许使用春松客服作为您的产品的商标
+
+作为用户,不允许您使用“春松客服”及春松客服 LOGO 作为您的商品名、商标、服务标志或产品名。
+
+![](../images/products/cskefu/QQ截图20220624151803.png)
+
+## 三、用户可以做什么
+
+在遵守前述条件情况下,您享有下面的权力。
+
+### 3.1 享受自有的版权
+
+作为用户,您可以免费复制、使用、修改、再许可、分发本作品及衍生作品,该作品的源代码可以不公开。
+
+### 3.2 享受自有的专利
+
+作为用户,我在此授予您专利许可:即使您的专利涉及我的专利、我的潜在专利,您也可以永久性地免费使用您的专利,用于制作、使用、出售、转让春松客服相关的作品,包括衍生于春松客服的作品;但是,如果您利用您的专利告春松客服侵犯了您的权益,那么您的专利许可,在您告我那天,我授予您的专利许可被我收回,您的专利将不具备法律基础。
+
+### 3.3 销售
+
+作为用户,您可以销售春松客服、您修改后的春松客服、或其它衍生于春松客服的作品。
+
+## 四、用户如果想提交代码
+
+### 4.1 参与贡献
+
+作为用户,您可以提交代码到春松客服源码库,成为春松客服开发者。
+
+* 4.1.1 改动文件
+
+作为春松客服开发者,在您的改动文件中,应带有您的修改的声明;或者不声明,默认就是春松客服采用的 Apache 2.0 协议。
+
+改动的声明,比如在文件最开头,添加 Modifications copyright:
+
+```text
+/*
+ * Copyright (C) 2018-2022 Chatopera Inc,
+ * Modifications copyright (C) {YEAR} {YOUR NAME}
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+```
+
+* 4.1.2 新增文件
+
+作为春松客服开发者,在您新增的文件中,应带有您的声明;如果不声明,默认就是春松客服采用的 Apache 2.0 协议。
+
+### 4.2 免责
+
+作为用户,您使用、销售春松客服过程中,遇到任何的麻烦,不要认为春松客服的发布者、维护者应承担法律责任。任何春松客服开发者提交到开源社区的代码,都是出于优化增强软件的目的,但是不保证没有 BUG、缺陷、瓶颈等,我们不对春松客服给您造成的任何经济损失承担责任。除非您和春松客服的开发者、维护者另外签订了协议,那么该开发者、维护者将承担潜在的责任和法律风险。
+
+## 五、对违反协议的用户
+
+春松客服采用的开源许可协议是开放、商业友好、宽松的,充分的表达了我们的心声:合作共赢。但是如果,如果我们发现使用春松客服源码的人,有违反春松客服采用的开源许可协议,我们将:
+
+* 诉诸法律 - 您需要承担法律责任,并承担一切诉讼费用、我方经济损失和您的违法所得
+
+* 诉诸媒体 - 将您的行为公布于开源社区,成为不遵守知识产权的案例
+
+同时,在遵守我国法律的前提下,我们不放弃任何可以惩治您的方法:对于那些不遵守我们立的契约而伤害我们权益的人,我们是不宽容的。
+
+## 引用及参考文献
+
+1. [逐句深扒 Apache 许可协议原文,一文看懂!](https://www.163.com/dy/article/FCE1GN2K0511FQO9.html)
+
+2. [开源定义是什么?为什么OSI不接受SSPL?](https://www.51cto.com/article/671655.html)
+
+3. [如何选择开源许可证?](https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html)
+
+4. [一文看懂开源许可证,能不能商用再也不抓瞎](https://www.easemob.com/news/4415)
+
+5. [了解开源的许可证GPL、LGPL、BSD、Apache 2.0的区别](https://www.cnblogs.com/fbwfbi/p/3440327.html)
+
+6. [一文看懂开源许可证丨开源知识科普](https://pingcap.com/zh/blog/introduction-of-open-source-license)
+
+7. [详细介绍 Apache Licence 2.0 协议](https://www.oschina.net/question/12_2828)
+
+8. [开源许可违反:案例说明(Apache License 2.0)](https://blog.csdn.net/liumiaocn/article/details/107368370)
+
+9. [Open Source Licenses 101: Apache License 2.0](https://fossa.com/blog/open-source-licenses-101-apache-license-2-0/)
+
+## 附件
+
+### Apache 2.0 中文协议(法律声明)
+
+[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html) 的官方文本地址:[https://www.apache.org/licenses/LICENSE-2.0.html](https://www.apache.org/licenses/LICENSE-2.0.html)
+
+以下内容为 Apache 2.0 协议条款的中文翻译版。
+
+Apache License
+2.0 版,2004 年 1 月
+
+
+使用,复制和分发的条款和条件
+
+#### 定义
+
+“许可”是指本文档第 1 至 9 节定义的使用,复制和分发的条款和条件。
+
+“许可人”是指版权所有者或授予许可的版权所有者授权的实体。
+
+“法律实体”是指行为实体与控制该实体,由该实体控制或受其共同控制的所有其他实体的联合。就本定义而言,“控制”是指(i)不论是通过 Contract 还是其他方式直接或间接引起该实体的指示或 Management 的权力,或(ii)百分之五十(50%)的所有权或更多的已发行股票,或(iii)该实体的实益拥有权。
+
+“您”(或“您的”)是指行使本许可授予的许可的个人或法人实体。
+
+“源”形式是指进行修改的首选形式,包括但不限于软件源代码,文档源和配置文件。
+
+“对象”形式是指源形式的机械转换或翻译产生的任何形式,包括但不限于已编译的目标代码,生成的文档以及对其他媒体类型的转换。
+
+“作品”是指根据许可获得的著作权作品,无论是源形式还是对象形式,均应包含在该作品中或随附于其上的版权声明所指示(以下附录中提供了一个示例)。
+
+“衍生作品”是指基于(或衍生自)该作品的任何作品(无论是源形式还是对象形式),并且其编辑修订,注解,细化或其他修改从整体上代表原始作品的作者身份。就本许可而言,衍生作品不应包括与该作品及其衍生作品保持分离或仅链接(或按名称绑定)的作品。
+
+“贡献”是指版权拥有者,个人或个人有意向许可人提交以包括在作品中的任何创作作品,包括作品的原始版本以及对该作品或其衍生作品的任何修改或增补。授权代表版权所有者提交的法人实体。就此定义而言,“已提交”是指发送给许可方或其代表的任何形式的电子,口头或书面通讯,包括但不限于有关电子邮件列表,源代码控制系统和问题跟踪系统的通讯,由许可方或代表许可方 Management,以讨论和改进本作品,但不包括版权拥有者明显标记或以其他方式书面指定为“非贡献”的通信。
+
+“贡献者”是指许可人以及许可人已经代表其收到贡献并随后合并到作品中的任何个人或法人实体。
+
+#### 版权许可的授予
+
+在遵守本许可的条款和条件的前提下,每位贡献者特此向您授予永久性的,Global 性的,非排他性的,免费的,免版税的,不可撤销的版权许可,以复制,准备衍生产品以来源或客体形式对作品及此类衍生作品进行公开展示,公开表演,再许可和分发的作品。
+
+#### 专利许可的授予
+
+在遵守本许可的条款和条件的前提下,每位贡献者特此向您授予永久,Global 性,非排他性,免费,免版税,不可撤销的许可(本节中所述除外) )制作,制作,使用,提供要约,出售,import,以及以其他方式转让作品的专利许可,但该许可仅适用于该贡献者应许可的专利索赔,而这些专利索赔仅因其贡献而受到侵犯或将他们的贡献与提交的作品相结合。如果您针对任何实体(包括诉讼中的交叉索赔或反索赔)提起专利诉讼,指称该作品或该作品中包含的贡献构成直接或共同的专利侵权,则根据本许可授予您的任何专利许可该工作应在提起诉讼之日终止。
+
+#### 再分发
+
+##### 只要您满足以下条件,您可以在任何媒介中以修改或不修改的形式,以源或对象的形式复制和分发作品或衍生作品的副本
+
+* 您必须向该作品或衍生作品的任何其他接收者提供本许可的副本;和
+
+* 您必须使所有修改过的文件带有明显的声明,表明您已更改文件;和
+
+* 您必须以您分发的任何衍生作品的“源”形式保留该作品“源”形式的所有版权,专利,商标和出处声明,但与这些衍生作品的任何部分无关的那些声明除外;和
+
+* 如果作品包含“注意”文本文件作为其分发的一部分,则您分发的任何衍生作品都必须包括该通知文件中包含的署名声明的可读副本,但不包括与声明的任何部分无关的那些声明。衍生作品,至少应位于以下至少一个位置:在作为衍生作品一部分分发的 NOTICE 文本文件中;在原始表格或文档中(如果与衍生作品一起提供);或在“衍生作品”产生的显示中,通常在任何时候出现此类第三方通知的地方。注意文件的内容仅供参考,请勿修改许可证。您可以在您分发的衍生作品中添加您自己的归属通知,在作品的“通知”文本旁边或作为附录,前提是此类附加归属通知不能被解释为修改许可。
+
+##### 您可以在自己的修改中添加您自己的版权声明,并可以提供其他或不同的许可条款和条件,以使用,复制或分发您的修改,或任何此类衍生作品作为一个整体,前提是您使用,复制和分发了否则,作品应符合本许可中规定的条件
+
+#### 贡献的提交
+
+除非您另有明确说明,否则您主动提交给许可人的包括在作品中的任何贡献均应符合本许可的条款和条件,没有任何其他条款或条件。尽管有上述规定,本文中的任何内容都不能取代或修改您可能与许可方签署的有关此类贡献的任何单独许可协议的条款。
+
+#### 商标
+
+本许可不授予许可使用许可人的商标名称,商标,服务标记或产品名称的权利,除非在描述作品的来源和复制作品的内容时合理合理地使用是必需的 NOTICE 文件。
+
+#### 免责声明
+
+除非适用法律要求或书面同意,否则许可方将按“原样”提供工作(每个贡献者均应提供其贡献),而没有任何形式的保证或条件,无论是明示的还是明示的。隐含(包括但不限于)标题,非侵权,可贸易性或特定目的适用性的任何保证或条件。您应独自负责确定使用或重新分发作品的适当性,并承担与您行使本许可下的许可有关的任何风险。
+
+#### 责任限制
+
+在任何情况下,在任何法律理论上,无论是侵权(包括过失),Contract 还是其他形式,除非适用法律要求(例如故意和严重过失的行为)或书面同意,任何贡献者均应对您承担赔偿责任,包括由于本许可或由于使用或无法使用本作品而引起的任何性质的任何直接,间接,特殊,偶然或后果性损害(包括但不限于商誉损失,停工,计算机故障或故障,或任何及所有其他商业损失或损害赔偿),即使已告知该贡献者此类损失的可能性。
+
+#### 接受保修或其他责任
+
+在重新分发其作品或衍生作品时,您可以选择提供支持,保证,赔偿或其他责任义务和/或与此相一致的权利并收取费用。License。但是,在接受此类义务时,您只能代表您自己并独自承担责任,不能代表任何其他贡献者,并且仅在您同意赔偿,捍卫每个贡献者并使他们不承担任何责任的情况下,或由于您接受任何此类保证或其他责任而针对该贡献者提出的索赔。
+
+#### 条款和条件的结尾
+
+##### 附录:如何将 Apache 许可证应用于您的工作
+
+要将 Apache 许可证应用于您的工作,请附上以下样板声明,并用括号“ []”括起来的字段替换为您自己的标识信息。 (不包括方括号!)文本应包含在文件格式的相应 Comments 语法中。我们还建议在与版权声明相同的“印刷页面”中包含文件或类名以及用途说明,以便在第三方 Files 中更容易识别。
+
+```
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+```
diff --git a/versioned_docs/version-v7/osc/maintainence.md b/versioned_docs/version-v7/osc/maintainence.md
new file mode 100644
index 00000000..795c5a94
--- /dev/null
+++ b/versioned_docs/version-v7/osc/maintainence.md
@@ -0,0 +1,131 @@
+---
+sidebar_position: 3
+---
+
+# 系统维护
+
+以下文档基于[《春松客服私有部署》](/docs/deploy)文档部署的案例,进行运维管理。
+
+假设春松客服部署目录为:_ROOT_PATH/cskefu.develop_。以下脚本假设部署服务器为 Linux 或包含 Bash 环境的 Windows 服务器,使用 Bash Shell 运行脚本。
+
+## 注意事项及官方声明
+
+**!!! 如果您在使用其它部署方案,或者在官方基础上更新过春松客服的源代码,以下文档并不一定适用。**
+
+**运维需谨慎,尽量了解每个步骤的目的和结果,在操作前,如果使用虚拟化环境,请给服务器做快照!!!**
+
+**作为一个给开发者社区提供的维护文档,我们的维护指南不承担法律责任,不承担经济责任。如需要专业的商业支持,请联系[春松客服官方团队](https://www.chatopera.com/mail.html)。**
+
+## 关于春松客服版本号
+
+_ROOT_PATH/cskefu.osc/.env_(以下简称 _.env_) 文件作为配置春松客服版本和环境变量的文件,也记录着 Docker 启动春松客服的版本信息,该文件在[部署阶段](https://docs.cskefu.com/docs/deploy/)创建。
+
+```文本
+CC_IMAGE=chatopera/contact-center:develop
+```
+
+在开源版本中,镜像的名字是 `chatopera/contact-center`,默认的版本是 `develop`,所有可选的版本在 [GitHub](https://github.com/chatopera/cskefu/commits/develop) 中可以浏览到:
+
+![版本管理](../images/products/cskefu/screenshot-20210720-135039.png)
+
+
+
+为了方便管理,春松客服 Git Commit Short ID 也是春松客服 Docker 镜像的 Tag,也常用 Docker 镜像版本号来指代。**在 GitHub** Commit 历史中,有对号的版本就是完成了对应的 Docker 镜像发布的版本,`develop` 标签就是已经发布的最近的版本。
+
+比如,在上图中,`chatopera/contact-center:develop` 就代表 `chatopera/contact-center:4b70d05`。`chatopera/contact-center:develop` 对应的 Docker 容器会变化,但是用 Commit Short ID 的版本号对应的容器和代码一一对应,是不变的。
+
+在春松客服实例中,也可以得到版本信息。作为春松客服系统用户登录,并在右上角用户名下拉菜单中,打开【关于产品】。
+
+![查看版本信息](../images/products/cskefu/screenshot-20210720-135924.png)
+
+在 `build` 的最后几位字符串就是版本号。
+
+## 系统备份
+
+### 设置版本号到配置文件
+
+设置春松客服容器版本到 .env。
+
+```Bash
+cd ROOT_PATH/cskefu.develop
+vi .env # 使用文本编辑器编辑
+```
+
+找到修改或添加
+
+```文本
+CC_IMAGE=chatopera/contact-center:YOUR_VERSION
+```
+
+将 `YOUR_VERSION` 替换为春松客服版本号,此处不要使用 `develop`,而必须是 Git Commit Short ID,原因见上文。
+
+### 运行脚本
+
+作为备份的文件,是和春松客服 Docker 容器版本绑定的,在完成了以上步骤后,执行下面的脚本。
+
+```Bash
+TIMESTAMP=$(date +%Y%m%d_%H%M)
+cd ROOT_PATH/cskefu.develop
+docker-compose down # 停止服务
+cd ../ # 来到父级目录
+tar czfp cskefu.osc.$TIMESTAMP.tgz cskefu.osc # 打包备份
+```
+
+其中,tar 命令执行了将应用文件夹归档为【保留文件访问权限】的压缩包。
+
+## 系统升级
+
+基于 Docker 容器的系统升级,过程也很简单,因为春松客服发布的版本中,每次重启,都会校验数据库的版本匹配,自动维护数据库的表结构,比如新版本中增加了字段、删除了字段等,都会自动完成。这也是 Chatopera 团队推荐开发者/企业使用春松客服官方镜像的主要原因:部署、运维更简单。
+
+### 系统备份
+
+春松客服升级为【就地升级/ In Place Upgrade】,首先按照系统备份过程备份,以防升级后遇到问题无法回退。
+
+### 获取最新的春松客服版本
+
+参考前文【关于春松客服版本号】获得春松客服最新的版本信息,然后执行以下操作。
+
+```Bash
+cd ROOT_PATH/cskefu.develop
+docker-compose down # 停止服务
+vi .env # 打开配置文件
+```
+
+找到修改或添加
+
+```文本
+CC_IMAGE=cskefu/contact-center:YOUR_VERSION
+```
+
+将 `YOUR_VERSION` 替换为春松客服新的版本号。
+
+```Bash
+cd ROOT_PATH/cskefu.develop
+docker-compose up -d # 重启服务,此时,docker 会自动拉取新版本的镜像
+```
+
+## 回滚到系统备份
+
+假设备份文件压缩包的位置是:`/root/cskefu.develop.202107001.tgz`。
+
+```Bash
+cd ROOT_PATH/cskefu.develop
+docker-compose down
+cd ..
+mv cskefu.develop cskefu.develop.backup # 将当前的文件存放在临时位置(万一还会用到,只是以防有可能用到)
+tar xzfp /root/cskefu.develop.202107001.tgz # 备份文件被解压到 ROOT_PATH/cskefu.osc
+cd ROOT_PATH/cskefu.develop
+docker-compose up -d # 启动服务
+docker-compose logs -f contact-center # 查看日志
+```
+
+在春松客服运行后,在浏览器内访问并验证服务正常。升级完毕。
+当系统可以稳定运行,比如 2 个月,再酌情删除 `cskefu.develop.backup`。
+
+
+
+## 下一步
+
+- [搭建春松客服性能监控服务(付费视频)](https://ke.qq.com/webcourse/index.html#cid=464050&term_id=100555327&taid=4785516986176690&type=1024&vid=5285890796447482734)
+
+- [搭建开发环境](/docs/osc/engineering)
diff --git a/versioned_docs/version-v7/osc/restapi.md b/versioned_docs/version-v7/osc/restapi.md
new file mode 100644
index 00000000..7211ab69
--- /dev/null
+++ b/versioned_docs/version-v7/osc/restapi.md
@@ -0,0 +1,71 @@
+---
+sidebar_position: 6
+---
+
+# REST APIs
+
+春松客服目前具备 30 余个 RESTful API 接口,包括联系人管理,授权,获得访客会话列表等,方便企业/开发者从不同系统中集成春松客服。
+
+## 安装 Postman
+
+查看、测试和体验春松客服 API 需要安装 Postman, 并导入春松客服 API Collection 文件。
+
+[Postman](https://www.postman.com/) 支持各种操作系统,免费下载安装包并使用:
+
+[https://www.postman.com/](https://www.postman.com/)
+
+## 导入 Collection
+
+导入春松客服 API Collection,下载[Chatopera_cc_v1.postman_collection.20200312.zip](https://github.com/chatopera/cosin/files/4323043/Chatopera_cc_v1.postman_collection.20200312.zip)
+
+将 zip 文件解压,得到 `Chatopera_cc_v1.postman_collection.json`。
+
+打开 Postman,执行导入
+
+![导入 Postman](../images/products/cosin/g16.png)
+
+每个 API 在 Postman 中都有`Path`,`Body`,`Headers`等的设置,可查看示例和发送请求,对于开发人员来说非常友好。
+
+## API 认证
+
+导入 collection 文件后,从左侧找到 **Chatopera_cc_v1**
+
+![找到 Collection](../images/products/cosin/g17.png)
+
+认证接口:
+
+```
+# 获得Token
+POST http://IP:PORT/tokens?username=USERNAME&password=PASSWORD
+```
+
+| key | 描述 |
+| -------- | ------------ |
+| IP | 春松客服 IP |
+| PORT | 春松客服端口 |
+| USERNAME | 用户名 |
+| PASSWORD | 密码 |
+
+
+回复结果为一个字符串,即 Auth token。
+
+## API 请求
+
+在请求其它 API 时,在 header 中设置`authorization`为 Auth token 就可以,如下:
+
+![发送 API 请求](../images/products/cosin/g18.png)
+
+部分接口:
+
+- 获得登录用户
+
+- 联系人笔记:创建/删除/更新
+
+- 机器人客服:创建/查询
+
+针对每个接口的描述,此处不赘述,请直接用 Postman 查看。
+
+## 注意事项
+
+- 每个 token 有效期为 24 小时,认证失败会有相应提醒
+- 登录用户的权限有限制,API 访问受此约束
diff --git a/versioned_docs/version-v7/osc/toc.yml b/versioned_docs/version-v7/osc/toc.yml
new file mode 100644
index 00000000..ce39fa17
--- /dev/null
+++ b/versioned_docs/version-v7/osc/toc.yml
@@ -0,0 +1,12 @@
+- name: "开源许可协议"
+ href: https://www.cskefu.com/2022/06/24/cskefu-opensource-license/
+- name: "春松客服大讲堂"
+ href: training.md
+- name: "开发环境搭建"
+ href: engineering.md
+- name: "提交代码"
+ href: contribution.md
+- name: "系统维护"
+ href: maintainence.md
+- name: "REST APIs"
+ href: restapi.md
\ No newline at end of file
diff --git a/versioned_docs/version-v7/osc/training.md b/versioned_docs/version-v7/osc/training.md
new file mode 100644
index 00000000..f297aadd
--- /dev/null
+++ b/versioned_docs/version-v7/osc/training.md
@@ -0,0 +1,55 @@
+---
+sidebar_position: 2
+---
+
+# 春松客服大讲堂
+
+😉 春松客服大讲堂,面向开发者、软件工程师及运维人员的在线课程。
+
+* 基于春松客服定制客服系统,紧紧围绕春松客服开发技能
+* 由浅入深的介绍春松客服上线智能客服系统、运营客服工作
+* 全面介绍春松客服插件、机器人客服的等原理和使用
+
+## 春松客服大讲堂 2019
+
+该课程有发布到两个地址:Bilibili 和 [腾讯课堂](https://ke.qq.com/course/464050)。
+
+Bilibili 视频免费观看,腾讯课堂为付费,有条件的观众请在腾讯课堂购买,以视对我们工作的支持和鼓励 :heartpulse:,做好开源客服系统。
+
+Bilibili 站点地址,PPT 见课件库地址[^kejian2019]。
+
+[^kejian2019]: 春松客服大讲堂地址,https://github.com/chatopera/cskefu.djt
+
+| 章 | 小节 | 时长(时:分:秒) | 课件 |
+| :----------------------- | :---------------------------------- | :--------------- | :--- |
+| 一、春松客服的介绍 | 如何使用Java开发智能客服系统 | 0:32:11 | PPT |
+| | 春松客服在企业的落地 | 0:30:41 | PPT |
+| | 春松客服的技术介绍 | 1:09:30 | PPT |
+| 二、客服相关的基本知识 | 客服的日常工作 | 0:57:35 | PPT |
+| | 客服的基本知识 | 0:46:48 | PPT |
+| | 账号体系-权限,部门和角色 | 0:42:06 | PPT |
+| | 坐席会话的工具-拉黑,服务小结和转接 | 0:33:00 | PPT |
+| | 即时通信及坐席自动分配 | 0:56:50 | PPT |
+| | 企业聊天与人工质检 | 0:35:12 | PPT |
+| | 统计报表和满意度评价 | 0:37:18 | PPT |
+| 三、春松客服的上线及维护 | 春松客服的编译和部署 | 0:38:27 | PPT |
+| | 春松客服的运维管理 | 1:00:37 | PPT |
+| | 春松客服的自动化系统测试(1) | 0:32:45 | PPT |
+| | 春松客服的自动化系统测试(2) | 0:49:20 | PPT |
+| | 春松客服的压力测试(1) | 0:42:33 | PPT |
+| | 春松客服的压力测试(2) | 0:40:39 | PPT |
+| 四、春松客服的机器人客服 | Chatopera 云服务介绍 | 0:28:01 | PPT |
+| | 机器人的知识库管理 | 0:47:56 | PPT |
+| | 机器人的多轮对话及富文本消息类型 | 0:43:32 | PPT |
+| 五、春松客服开发基础知识 | SQL快速入门 | 0:46:39 | PPT |
+| | 春松客服数据库表及管理 | 0:45:30 | PPT |
+| | Java编程基础(1) | 0:45:24 | PPT |
+| | Java编程基础(2) | 1:37:53 | PPT |
+| | Maven项目管理 | 0:46:18 | PPT |
+| | 搭建春松客服开发环境 | 1:10:28 | PPT |
+| | SpringBoot快速入门 | 0:45:50 | PPT |
+| | 项目源码讲解 | 1:09:40 | PPT |
+| 六、春松客服的插件 | 插件机制设计 | 0:45:51 | PPT |
+| | 春松客服机器人插件解读 | 0:41:20 | PPT |
+| 七、总结 | 春松客服团队介绍及课程总结 | 0:32:11 | PPT |
+
\ No newline at end of file
diff --git a/versioned_docs/version-v7/reports.md b/versioned_docs/version-v7/reports.md
new file mode 100644
index 00000000..21f55165
--- /dev/null
+++ b/versioned_docs/version-v7/reports.md
@@ -0,0 +1,83 @@
+---
+sidebar_position: 10
+---
+
+# 会话历史
+
+会话历史作为客服主管的运营工具,主要展示客服业务的数据和报表,同时也有一些数据是实时的,或通过时间选择器自定义时间段,形成数据分析和汇总。在[角色](https://docs.chatopera.com/products/cskefu/accounting.html)中,可以配置权限,指定登录用户的访问【会话历史】的权限。
+
+## 历史会话
+
+查看:左侧菜单 → 会话历史 → 历史会话
+
+![历史会话](images/products/cskefu/image2019-11-19_16-2-0.png)
+
+## 当前会话
+
+查看:左侧菜单 → 会话历史 → 当前会话
+
+![当前会话](images/products/cskefu/image2019-11-19_16-7-59.png)
+
+## 排队队列
+
+查看:左侧菜单 → 会话历史 → 排队队列
+
+![排队队列](images/products/cskefu/image2019-11-19_16-12-2.png)
+
+## 访客留言
+
+查看:左侧菜单 → 会话历史 → 访客留言
+
+![访客留言](images/products/cskefu/image2019-11-19_16-17-16.png)
+
+## 满意度统计
+
+查看:左侧菜单 → 统计功能 → 满意度统计
+
+![满意度统计](images/products/cskefu/image2019-11-19_16-19-58.png)
+
+## 客服坐席
+
+查看:左侧菜单 → 统计功能 → 客服坐席
+
+![客服坐席](images/products/cskefu/image2019-11-19_16-23-2.png)
+
+## 服务小结
+
+查看:左侧菜单 → 服务小结 → 多媒体客服
+
+![服务小结](images/products/cskefu/image2019-11-19_16-27-10.png)
+
+## 已处理服务小结
+
+查看:左侧菜单 → 服务小结 → 已处理多媒体客服
+
+![已处理服务小结](images/products/cskefu/image2019-11-19_16-29-59.png)
+
+## 满意度评价
+
+查看:左侧菜单 → 满意度评价 → 在线客服
+
+![满意度评价](images/products/cskefu/image2019-11-19_16-32-12.png)
+
+## 在线坐席
+
+查看:左侧菜单 → 坐席信息 → 在线坐席
+
+![在线坐席](images/products/cskefu/image2019-11-19_16-37-25.png)
+
+## 全部坐席
+
+查看:左侧菜单 → 坐席信息 → 全部坐席
+
+![全部坐席](images/products/cskefu/image2019-11-19_16-39-57.png)
+
+
+
+## 常见问题
+
+### [GH-395](https://github.com/chatopera/cskefu/issues/395)
+
+**问题** 历史会话不显示数据
+
+**解决方案** 需要在网站渠道中启用技能组模式,并绑定单一技能组。
diff --git a/versioned_docs/version-v7/sla.md b/versioned_docs/version-v7/sla.md
new file mode 100644
index 00000000..ff795a7d
--- /dev/null
+++ b/versioned_docs/version-v7/sla.md
@@ -0,0 +1,100 @@
+---
+sidebar_position: 12
+---
+
+# 服务水平协议
+
+北京华夏春松科技有限公司(以下简称‘华夏春松’)提供围绕春松客服的商业化服务,包括系统维护、部署、定制化开发、高级插件和云服务等。
+
+## 范围与承诺
+
+本协议作用于*春松客服商业付费客户*。
+
+- 简约版单服务实例支持 50 坐席并发。简约版条件:32GB 内存;4Core CPU; 500GB Disk。
+- 服务可靠性 99.9%
+- 由第三方造成的服务间断,数据丢失并不由华夏春松承担责任
+- 由用户操作失误造成的服务间断,数据丢失并不由华夏春松承担责任
+- 由自然不可抗拒因素造成的服务间断,数据丢失并不由华夏春松承担责任
+
+## 联系方式
+
+【工单处理】工作日内 9:00 ~ 18:00 可获得技术支持。
+
+【紧急联系方式】需要快速获得支持,应对服务宕机等,紧急联系方式为 info@chatopera.com
+
+2018 年 10 月 [北京华夏春松科技有限公司](https://www.chatopera.com/)
+
+# 服务条款
+
+"春松客服"(以下简称“本软件”)是由北京华夏春松科技有限公司(以下简称本公司)在向用户提供的智能客服产品。本软件主要提供:多种渠道、集成机器人客服、CRM 模块、账号权限管理模块和坐席管理模块。
+
+您对本协议的接受即自愿接受全部条款的约束,包括接受本公司对任一服务条款随时所做的任何修改。本协议可由本公司随时更新,更新后的协议条款一旦公布即代替原来的协议条款,恕不再另行通知,用户可在本网站查阅最新版协议条款。在本公司修改本协议相关条款之后,如果用户不接受修改后的条款,请立即停止使用本公司提供的服务,用户继续使用本公司提供的服务将被视为已接受了修改后的协议。
+
+除非您接受本协议所有条款,否则您无权注册、登录或使用本协议所涉相关服务。您的注册、登录、使用等行为将视为对本协议的接受,并同意接受本协议各项条款的约束。非云服务用户不受以下条款约束,具体内容以双方签订合作协议为准。
+
+## 用户使用规则
+
+### 用户须是具备完全民事权利能力和完全民事行为能力的自然人、法人或其他组织,并保证所提供的个人或单位身份资料信息真实、完整、有效
+
+### 用户须同意并接受本公司通过电子邮件,手机号向用户登记的联系方式发送相关商业信息
+
+### 用户不得为了任何非法目的而使用本公司上的服务
+
+### 用户须遵守所有与本公司服务有关的网络协议、规定和程序
+
+### 用户不得恶意占用网络带宽等本公司服务资源
+
+### 不得逆向工程、反编译或试图以其他方式发现本公司提供的软件的源代码
+
+### 不得以任何方式登录或者尝试登录提供服务的主机
+
+### 不得以任何方式获取或者尝试获取提供服务的主机的管理权限
+
+### 不得利用账户进行任何可能对互联网的正常运转造成不利影响的行为
+
+### 不得利用本公司服务系统发布任何骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息
+
+### 不得利用本公司服务系统进行任何不利于本公司的行为
+
+### 就本公司及合作商业伙伴的服务、产品、业务咨询应采取相应机构提供的沟通渠道,不得在公众场合发布有关本公司及相关服务的负面宣传
+
+### 如发现任何非法使用用户账号或账号出现安全漏洞的情况,应立即通告本公司
+
+## 用户权利及义务
+
+### 默认情况下,在服务协议终止后或者在用户主动删除数据或用户服务期满后,用户使用过程中产生的数据会立即删除
+
+### 本公司承诺用户能够控制数据的迁移,保证启用或弃用该服务时,数据能有偿迁入和迁出
+
+### 用户私自登录节点进行操作,导致的数据丢失,本公司不提供恢复服务
+
+### 本公司不会将用户数据、个人信息等资料泄露给任何第三方,除非政府监管部门监管审计需要
+
+### 本公司承诺用户在必要的条件下,由于合规或是安全取证调查等原因,可以提供相关的信息。本公司承诺遵守国家相应的法律法规,配合政府监管部门的监管审查。提供的相关信息包括关键组件运行日志、运维人员操作记录等
+
+### 为了便于运维,本公司保留查看用户操作记录的权利,登录主机进行运维操作的权利
+
+## 免责条款
+
+### 用户实施违反包括但不限于本协议的行为,本公司有权拒绝向用户提供服务,终止本协议,用户已支付的“服务费”预付款不予退还,同时本公司有进一步追究用户法律责任的权利
+
+### 本公司通过内容部检测程序发现或经其他机构或用户举报而发现用户有发布违法信息、严重违背社会公德以及其他违反法律禁止性规定或本协议约定的行为时,本公司有权立即终止对用户提供服务并不退还任何款项
+
+### 不论在何种情况下,本公司均不对由于互联网正常的设备维护,互联网网络联接故障,电脑、通讯或其他系统的故障,电力故障,黑客攻击、计算机病毒侵入或发作、电信部门技术调整导致的影响、因政府管制而造成的暂时性关闭、由于第三方原因(包括但不限于不可抗力,例如火灾、水灾、雷击、地震、洪水、台风、龙卷风、火山爆发、瘟疫和传染病流行、罢工、战争或暴力行为或类似事件等,政府行为,司法行政机关的命令或第三方的不作为等不可抗力而造成的不能服务或延迟服务、用户数据丢失等承担责任,但本公司应及时通知用户,并及时采取措施防止损失扩大
+
+### 用户了解并同意,本公司不对因下述任一情况而导致用户的任何损害赔偿承担责任,包括但不限于利润、商誉、使用、数据等方面的损失或其它无形损失的损害赔偿 (无论本公司是否已被告知该等损害赔偿的可能性)
+
+ 使用或未能使用本公司服务;
+ 第三方未经批准的使用用户的账户或更改用户的数据;
+ 用户对本公司服务的误解;
+ 任何非因本公司的原因而引起的与本公司服务有关的其它损失。
+
+### 特别提示:在受限于本协议其他规定的前提下,为更好的提供服务,本公司将定期或不定期的对本公司平台进行功能及(或)页面上的改造及(或)升级。本公司会通过本公司平台或其他有效方式将相关事项及用户注意事项告知用户,经上述告知,本公司不对因用户未能遵守相关注意事项而造成的损失承担任何责任,本公司经改造及(或)升级后,对于用户因操作习惯性而引起的损失,本公司不承担任何责任
+
+### 受限于本协议其他规定的前提下,因本公司平台中接入的其他方的支付渠道与用户就支付关系发生任何争议的,与本公司无关,本公司不承担任何责任
+
+### 当出现来自或针对客户网站的互联网攻击行为或者接到政府相关部门的监管要求时,本公司将通知客户立即进行处理,对未按照要求及时处理的,本公司有权采取相应措施,以避免网络或内容安全事件的进一步扩大;当出现紧急网络或内容安全事件(例如内容涉及国家监管部门禁止范围,被国家监管部门如网监勒令封闭 IP 等事件)时,为保护广大用户的合法权益,本公司有权在事先不通知对方的情况下采取相应措施。本公司对上述紧急网络或内容安全事件的处理措施免于承担责
+
+### 用户接入第三方服务,比如百度统计等,并不是本公司负责安全保护,如果造成用户财产损失,与本公司无关,本公司不承担任何责任
+
+2018 年 10 月 [北京华夏春松科技有限公司](https://www.chatopera.com/)
diff --git a/versioned_docs/version-v7/toc.yml b/versioned_docs/version-v7/toc.yml
new file mode 100644
index 00000000..250d4921
--- /dev/null
+++ b/versioned_docs/version-v7/toc.yml
@@ -0,0 +1,33 @@
+- name: 产品概述
+ href: index.md
+- name: 应用部署
+ href: deploy.md
+- name: 系统初始化
+ href: initialization.md
+- name: 开源社区
+ href: osc/toc.yml
+ topicHref: osc/index.md
+- name: 商业服务
+ href: https://www.chatopera.com/price.html
+- name: 账号和权限
+ href: accounting.md
+- name: 坐席工作台
+ href: work.md
+- name: 客户关系管理
+ href: crm.md
+- name: 渠道管理
+ href: channels/toc.yml
+ topicHref: channels/index.md
+- name: 坐席监控
+ href: monitoring.md
+- name: 机器人客服
+ href: work-chatbot/toc.yml
+ topicHref: work-chatbot/index.md
+- name: 会话历史
+ href: reports.md
+- name: 访问统计
+ href: usage.md
+- name: 服务水平协议
+ href: sla.md
+- name: FAQ
+ href: faq.md
diff --git a/versioned_docs/version-v7/usage.md b/versioned_docs/version-v7/usage.md
new file mode 100644
index 00000000..35b8107e
--- /dev/null
+++ b/versioned_docs/version-v7/usage.md
@@ -0,0 +1,69 @@
+---
+sidebar_position: 11
+---
+
+# 访问统计
+
+页面统计是针对坐席控制台的 Web 页面的使用情况进行统计,按照页面打开次数、登录地址和入口页面等内容进行计数。目前只支持接入[百度统计](https://tongji.baidu.com/),请注册百度统计帐号【百度统计-站长版】使用。
+
+## 获得百度统计 Key
+
+登录,新增网站,
+
+![新增网站](images/products/cosin/g23.jpg)
+
+- 网站域名:春松客服系统域名,必须是你安装的实际地址(假设你安装在 cc.example.com,则填写 cc.example.com)
+
+- 网站首页:春松客服首页 ()
+
+拷贝 `YOUR_SITE_KEY`: **登录 -> 管理 -> 新增网站 -> 代码获取 -> 拷贝 SiteKey**。
+
+```说明
+hm.src = "https://hm.baidu.com/hm.js?YOUR_SITE_KEY";
+```
+
+![统计代码获取](images/products/cosin/g25.jpg)
+
+得到`YOUR_SITE_KEY`后继续`设置环境变量`。
+
+## 设置环境变量
+
+设置环境变量 `TONGJI_BAIDU_SITEKEY`,可以在 `.env` 文件或 `docker-compose.yml` 文件中添加,参考部署文档:
+
+
+
+```环境变量
+TONGJI_BAIDU_SITEKEY=YOUR_SITE_KEY
+```
+
+示例
+
+```环境变量
+TONGJI_BAIDU_SITEKEY=585cbac007x12es81b517031e9ec29c56e
+```
+
+重启服务
+
+```Bash
+docker-compose restart contact-center
+```
+
+重启完成后,回到百度统计站点,在网站栏内,点击:**代码安装检查**,代码检查成功表示安装成功;注意网站域名等一致,数据收集有延迟。
+
+## 报告
+
+进入百度统计主页,选择站点“查看报告”
+
+示例:
+
+![示例代码](images/products/cosin/g24.jpg)
+
+## 注意事项
+
+- 该功能开发者/企业自行设置
+
+- 开源代码中没有后门、追踪程序、统计等
+
+- 不设置环境变量不进行统计,该统计报告只开发者/企业在百度网站内能查看
+
+- 开发者/企业自行衡量和保护百度统计账号,因百度账号泄漏等原因造成企业/开发者财产损失,春松客服不承担任何责任,见[服务水平协议](https://docs.chatopera.com/products/cskefu/sla.html)。
diff --git a/versioned_docs/version-v7/work-chatbot/bot-agent.md b/versioned_docs/version-v7/work-chatbot/bot-agent.md
new file mode 100644
index 00000000..d9a36b13
--- /dev/null
+++ b/versioned_docs/version-v7/work-chatbot/bot-agent.md
@@ -0,0 +1,68 @@
+---
+sidebar_position: 2
+---
+
+# 集成机器人客服
+
+## 创建聊天机器人
+
+首先,创建聊天机器人,登录[Chatopera 云服务](https://bot.chatopera.com/),注册并在【控制台】中创建聊天机器人。
+
+![创建聊天机器人](../images/products/cc-bot-1.png)
+
+| 项目 | 值 | 描述 |
+| ---------- | ---------- | ---------------------------- |
+| 机器人名称 | 小 C | 机器人的名字,创建后不能变更 |
+| 描述 | 机器人客服 | 机器人的描述 |
+| 语言 | zh_CN | 机器人的语言为中文 |
+
+
+机器人具有多轮对话和知识库两个管理对话能力的组件,在创建好机器人后,创建一个问答对作为测试示例。点击【知识库】图标,点击【新建问题】。
+
+![新建问答对](../images/products/cc-bot-2.png)
+
+| 项目 | 值 | 描述 |
+| ---- | -------------------------------------------------------- | ---------- |
+| 问题 | 缴费年期变更后,佣金如何计算? | 问题的文本 |
+| 答案 | 变更后仍有佣金的,按照变更后的年期对应的提佣率计算佣金。 | 问题的答案 |
+
+点击【确定】。
+
+集成机器人的方式是通过 SDK 创建机器人实例,使用机器人接口进行对话和查询等。机器人实例的认证和授权是通过*ClientId*和*Secret*完成,点击【设置】查看*ClientId*和*Secret*。
+
+![查看 ClientId 和 Secret](../images/products/cc-bot-4.png)
+
+## 绑定机器人
+
+然后,以管理员身份进入系统设置,在左侧菜单中导航至【智能机器人-新建机器人】,按照如下内容填入创建表单。
+
+| 项目 | 值 | 描述 |
+| -------- | -------------- | ------------------------------------------------------- |
+| 网站渠道 | localhost | 根据网站地址选择网站渠道 |
+| ClientId | xxx | [Chatopera 云服务 ClientId](https://bot.chatopera.com/) |
+| Secret | xxx | [Chatopera 云服务 Secret](https://bot.chatopera.com/) |
+| 工作模式 | 机器人客服优先 | 目前支持【机器人客服优先】或【人工客服优先】两种类型 |
+| 描述 | 机器人客服 | 对机器人的简要介绍 |
+
+
+![集成机器人客服](../images/products/cosin/b1.jpg)
+
+点击【保存】创建机器人,返回机器人列表页面,可以找到刚刚创建的机器人客服。
+
+![开启机器人客服](../images/products/cosin/b2.jpg)
+
+## 测试机器人客服
+
+> 提示:春松客服访客测试端地址
+
+```URL
+http[s]://春松客服IP[:PORT]/testclient.html
+```
+
+使用浏览器打开*春松客服访客测试端*,并点击【在线客服】。在知识库设置好后,当访客在客户端问问题,匹配了知识库的问题后,机器人就自动回复。
+
+比如输入:*缴费年期变更后,佣金如何计算?*,能得到在知识库中设置的答案。
+
+![访客端和机器人对话](../images/products/cc-bot-6.png)
+
+如果想使机器人变得更加智能,需要参考关于[Chatopera 云服务](https://docs.chatopera.com/chatbot-platform.html)的更多介绍。
diff --git a/versioned_docs/version-v7/work-chatbot/index.md b/versioned_docs/version-v7/work-chatbot/index.md
new file mode 100644
index 00000000..b9857826
--- /dev/null
+++ b/versioned_docs/version-v7/work-chatbot/index.md
@@ -0,0 +1,77 @@
+---
+sidebar_position: 9
+---
+
+# 机器人客服
+
+## 痛点
+
+企业需要快速回复客服问题,当前市场上,存在很多厂商能提供全渠道智能客服系统,相对来说,渠道对接已经非常成熟,集成起来容易。在机器人客服上,用户体验参差不齐。在 Chatopera,我们主要关注智能机器人,追求最好的机器人客服体验:快速实现符合业务需求的聊天机器人,效果稳定。
+
+![用户服务环节](../images/products/user-cycle-service.png)
+
+## 解决方案
+
+
+
+
+### 场景描述
+
+在 Chatopera,机器人客服将加入到聊天室中,它有两种参与客户服务的方式:
+
+- 管聊天室,直接和消费者沟通
+
+![机器人客服](../images/products/user-service-flow-2.png)
+
+具体地说,在排队阶段,引导消费者问问题,借助Chatopera 机器人平台,进行意图识别,如果意图匹配到了智能问答引擎中的对话,就启动多轮对话,完成服务;未匹配到多轮对话则继续排队,在客服人员接入会话时,机器人客服针对消费者的问题,给客服人员建议回复。
+
+**针对不同企业客户的需求,机器人客服的服务方式也可以调整,最主要的是,机器人客服可以利用多轮对话和知识库,提高用户满意度,提高效率,人工坐席专注于更加棘手的问题。**
+
+- 辅助客服人员
+
+![机器人辅助坐席](../images/products/cosin/faq-work-ass.png)
+
+### 功能设计
+
+考虑到上述痛点,春松客服的机器人客服推出两个主要功能:机器人客服的主要功能包括:1)智能客服,接待访客;2)知识库建议,包括知识库联想和知识库快捷。
+
+智能客服:在开启状态下,在访客端可以看到智能客服对话窗口并与机器人客服对话。 在管理页面,可切换工作状态,比如机器人客服优先、人工坐席优先或仅机器人客服。
+
+知识库建议:包括知识库联想和知识库快捷。知识库联想:当坐席与访客进行对话过程中,坐席输入消息时是否得到机器人的建议回复;知识库快捷:当坐席与访客进行对话过程中,坐席收到访客的消息时是否得到机器人的建议回复。
利用机器人知识库,可以支持坐席即时获得建议回复,得到标准、准确、体贴的回复内容,提升用户体验,大幅度提升工作效率。在春松客服中,支持使用知识库完成:知识库快捷和知识库联想,详细内容阅读下文。
+
+可以在 Chatopera 机器人平台的管理页面设置这些功能的开启状态,在右上角菜单进入机器人管理和使用统计情况查看页面。
+
+## 视频教程
+
+机器人客服是春松客服的特色功能之一,机器人客服设计的目标是自动完成固定话术和固定话术的问答。春松客服的机器人客服是从客服人员和访客两个角度展开的,提升生产力和客户满意度,比如智能建议回复、知识库问答和多轮对话。
+
+建议先看[视频教程](https://ke.qq.com/course/475430),再看本文剩余内容。
+
+视频地址:[https://ke.qq.com/course/475430](https://ke.qq.com/course/475430)
+
+
+
+## 下一步
+
+- [配置环境变量](/products/cskefu/work-chatbot/install.html)
+
+- [配置机器人客服:创建机器人,创建渠道,绑定机器人](/products/cskefu/work-chatbot/bot-agent.html)
+
+- [消息类型:支持热门问题列表,增强机器人交互体验,发送图文、按钮消息](/products/cskefu/work-chatbot/message-types.html)
+
+## 计费和发票
+
+春松客服里机器人客服的收费标准,对于使用 [Chatopera 云服务](https://bot.chatopera.com/) 而言,参考 [《计费和发票》](https://docs.chatopera.com/products/chatbot-platform/billing.html);同时,Chatopera 机器人平台可为企业客户私有部署,洽谈合作参考 [《联系我们》](https://www.chatopera.com/price.html)。
+
+## 话术助手
+
+考虑到客服工作目前分布在不同渠道,而且每隔一段时间还会出现新的渠道,有没有一个好的知识库工具能适应不同渠道呢?
+
+Chatopera 发布 [话术助手](/products/chatbot-platform/faq/assistant.html) 来适应差异较大的不同渠道,将机器人知识库发挥更大作用。
+
+话术助手将知识库的效益最大化,适合作为企业知识库管理、网络聊天快捷语等场景。
diff --git a/versioned_docs/version-v7/work-chatbot/install.md b/versioned_docs/version-v7/work-chatbot/install.md
new file mode 100644
index 00000000..4fa488ad
--- /dev/null
+++ b/versioned_docs/version-v7/work-chatbot/install.md
@@ -0,0 +1,52 @@
+---
+sidebar_position: 1
+---
+
+# 安装配置
+
+## 机器人客服
+
+只有**超级管理员**可以在【系统设置】中配置机器人客服,超级管理员权限介绍参考[账号与权限](/products/cskefu/accounting.html)。
+
+![安装好机器人插件](../images/products/cskefu/98638023-436f4700-2364-11eb-922d-801ade42d397.png)
+
+## 配置环境变量
+
+在机器人客服问答中,会从 Chatopera 云服务检索答案,答案有时候也包含多条记录,怎么回答访客的问题按照如下策略。
+
+1、 首先,每个答案包含与访客问题的相似度,该相似度在[0,1]区间,值越大二者越相似。
+
+2、 最高的相似度的答案如何大于或等于 **最佳回复阀值** 时,机器人客服将直接发送答案给访客。
+
+3、 如何 (_2_)中没有得到答案,那么则将相似度大于或等于 **建议回复阀值** 的记录,作为一个列表发送给访客。
+
+![建议回复列表](../images/products/cosin/g6.png)
+
+4、(_2_) 和 (_3_)都没有答案,则回复兜底回复。
+
+以上,我们引入了 **最佳回复阀值** 和 **建议回复阀值** 的概念,这两个值的默认值分别为 0.8 和 0.6。在启动服务时,也可以通过环境变量修改他们,其中 **最佳回复阀值** 需要大于 **建议回复阀值** 。
+
+- 环境变量
+
+```环境变量
+BOT_PROVIDER # Chatopera 机器人平台地址,支持私有部署,默认为 Chatopera 云服务 https://bot.chatopera.com
+BOT_THRESHOLD_FAQ_BEST_REPLY # 最佳回复阀值
+BOT_THRESHOLD_FAQ_SUGG_REPLY # 建议回复阀值
+```
+
+如果部署是按照文档[春松客服私有部署](/products/cskefu/deploy.html)进行,可以在 _.env_ 中设置配置项,参考 [sample.env](https://github.com/chatopera/cskefu/blob/osc/sample.env)。
+
+## 创建网站渠道
+
+以管理员身份登录春松客服坐席工作台,导航【系统-客服接入-网站列表-创建新网站】,按照如下内容设置网站渠道。
+
+| 项目 | 值 | 描述 |
+| -------- | --------- | --------------- |
+| 网站名称 | localhost | 任意字符串 |
+| 网站地址 | localhost | 网站的域名或 IP |
+
+
+
+![创建网站渠道](../images/products/cosin/47127371-6fbc5480-d2bf-11e8-9983-b6f79e97cbf1.png)
+
+点击【立即提交】保存。
diff --git a/versioned_docs/version-v7/work-chatbot/message-types.md b/versioned_docs/version-v7/work-chatbot/message-types.md
new file mode 100644
index 00000000..3eba6127
--- /dev/null
+++ b/versioned_docs/version-v7/work-chatbot/message-types.md
@@ -0,0 +1,200 @@
+---
+sidebar_position: 3
+---
+
+# 消息类型
+
+不同消息类型,增强了用户体验。
+
+## 普通问候语
+
+在默认情况下,机器人的问候语是在 Chatopera 云服务的机器人属性页面进行设置,该设置只支持简单的文本。
+
+![设置机器人问候语](../images/products/cosin/cards/image-11.png)
+
+![春松客服访客端](../images/products/cosin/cards/image-1.png)
+
+## 热门问题问候语
+
+访客登录进入客服聊天窗口往往是有一些问题要咨询的,所以更为合理的用户体验是将一些常见问题作为导航用途显示在问候语下面,比如这样:
+
+![常见问题列表](../images/products/cosin/cards/image-8.png)
+在春松客服里,为了支持各种丰富的对话场景,这些功能都是使用多轮对话配置。接下来的介绍假设您已经学习了[多轮对话设计器](/products/chatbot-platform/conversation/cde.html)的内容,**如果您还没有学习这部分内容,建议先完成,大约需要 30 分钟时间**。
+
+下面是支持在问候语中展示热门问题,进行导航的方法,这种形式比只有一段文本的【普通问候语】更加友好。
+
+- 下载安装多轮对话设计器
+
+![下载多轮对话设计器](../images/products/cosin/cards/image-2.png)
+
+下载连接也可以通过[多轮对话设计器使用教程](/products/chatbot-platform/conversation/cde.html)获得。
+
+- 新建聊天机器人
+
+![新建聊天机器人](../images/products/cosin/cards/image-3.png)
+
+- 新建对话技能
+
+![新建对话技能](../images/products/cosin/cards/image-4.png)
+
+此处,对话名称可以使用字母、数字和下划线组成的字符串填写。
+
+- 粘贴技能脚本
+
+在该机器人的技能列表中,点击刚刚创建的技能的“编辑”按钮,并在新打开的编辑窗口中,选择“脚本”,将下面的几行内容粘贴到编辑窗口中。
+
+```脚本
+// FAQ Hotlist
++ __faq_hot_list
+- {keep} ^get_greetings()
+```
+
+点击【保存】,在编辑窗口中,如图。
+
+![粘贴技能脚本](../images/products/cosin/cards/image-12.png)
+
+该规则`__faq_hot_list`将保证在访客和机器人连接成功后,
+机器人发送函数`get_greetings`返回的内容。此处`__faq_hot_list`是固定的,`get_greetings`函数名和下面的技能函数名保持一致便可。
+
+`__faq_hot_list` 是春松客服与 [Chatopera 机器人平台](https://bot.chatopera.com/)之间约定的一个钩子。
+
+`{keep}` 的作用是机器人记忆中,可重复的使用一个回复,参考[文档](/products/chatbot-platform/howto-guides/conv-state.html#重复使用回复)。
+
+- 粘贴技能函数
+
+```函数
+// 问候语中关联常见问题
+exports.get_greetings = async function() {
+ return {
+ text: "请问有什么可以帮到您?",
+ params: [{
+ label: "1. 产品列表",
+ type: "qlist",
+ text: "产品列表"
+ }, {
+ label: "2. 当季热销产品",
+ type: "qlist",
+ text: "当季热销产品"
+ }, {
+ label: "3. 退换货咨询",
+ type: "qlist",
+ text: "退换货咨询"
+ }]
+ };
+}
+```
+
+点击【保存】,在编辑窗口中,如图。
+
+![粘贴技能函数](../images/products/cosin/cards/image-13.png)
+
+在函数中,可以自定义热门问题的文字,顺序。文字即访客看到的文本内容,通过`label`设定,当访客点击一个问题时,聊天机器人将收到 `text`设定的文本。您可以在知识库或多轮对话中,设置该文本的回复内容。
+
+访客对于热门问题列表,可以点击多次。
+
+- 导出聊天机器人
+
+多轮对话设计器是智能对话机器人的设计环境,[Chatopera 云服务](https://docs.chatopera.com/chatbot-platform.html)或[智能问答引擎](https://docs.chatopera.com/chatbot-engine.html)是机器人的运行时环境。
+
+![发布并导出对话应用](../images/products/cosin/cards/image-6.png)
+
+导出后,多轮对话设计将该机器人多轮对话保存为一个`.c66` 后缀的文件。
+
+- 发布聊天机器人
+
+登录 Chatopera 云服务,在目标机器人的多轮对话管理面板中,导入对话应用(`.c66`)文件。
+
+![导入Chatopera云服务](../images/products/cosin/cards/image-7.png)
+
+- 上线后使用
+
+在导入成功后,在春松客服中,访客再次登录聊天窗口,就会收到带有热门问题的问候语。
+
+## 按钮消息
+
+另外一种情况是机器人客服回答一个选择列表,访客点选按钮进行选择。
+
+![按钮消息](../images/products/cosin/cards/image-9.png)
+
+- 粘贴技能脚本
+
+可以在上面步骤中建立的技能中,添加新的规则:
+
+```脚本
++ (*) 产品列表 (*)
+- ^get_products()
+```
+
+该规则将保证在访客的问题中有 `产品列表`时,发送函数`get_products`返回的内容。
+
+- 粘贴技能函数
+
+```函数
+// 按钮选择消息
+exports.get_products = async function() {
+ return {
+ text: "您对下面哪个产品感兴趣",
+ params: [{
+ label: "上衣",
+ type: "button",
+ text: "介绍一下上衣"
+ },
+ {
+ label: "服装",
+ type: "button",
+ text: "介绍一下鞋帽"
+ }
+ ]
+ }
+}
+```
+
+在脚本中,只需要设定`params`中的内容作为选型,其他保持默认。
+
+## 图文消息
+
+春松客服还支持的一类消息是图文消息,通过是分享一个链接,展示链接的图片和简介。
+
+![按钮消息](../images/products/cosin/cards/image-10.png)
+
+- 粘贴技能脚本
+
+可以在上面步骤中建立的技能中,添加新的规则:
+
+```脚本
++ 介绍一下上衣
+- ^get_shangyi()
+```
+
+该规则将保证在访客的问题中有 `介绍一下上衣`时,发送函数`get_shangyi`返回的内容。
+
+- 粘贴技能函数
+
+```函数
+// 图文消息
+exports.get_shangyi = async function() {
+ return {
+ text: "{CLEAR} 图文消息",
+ params: [{
+ type: 'card',
+ title: "秋冬上衣优选",
+ thumbnail: "https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=277597165,2202071991&fm=15&gp=0.jpg",
+ summary: "秋冬上衣优选秋冬上衣优选秋冬上衣优选秋冬上衣优选秋冬上衣优选秋冬上衣优选秋冬上衣优选秋冬上衣优选",
+ hyperlink: "https://www.1688.com/huo/B6F9CDAFD7B0C5AEBAA2CDE2CCD7BCD3BAF1C9CFD2C2C7EFB6AC.html"
+ }]
+ }
+}
+```
+
+其中,`title`代表大标题,`thumbnail`是图片,`summary`是简介,`hyperlink`是点击图文消息后,跳转的链接,这几项是用户可以自定义的,其它项就使用默认值,比如`type`的值必须是`card`。
+
+文本消息、热门问题、按钮消息和图文消息是春松客服支持的在线机器人客服消息类型,更多知识进入 [Chatopera 机器人平台文档](/products/chatbot-platform/conversation/function.html#消息形式)查看。
+
+在掌握了知识库、脚本语法和函数后,用户可以支持各种客服场景。
+
+## 快速开始
+
+在上面的介绍中,Chatopera 的多轮聊天机器人通过`c66`文件进行分发,Chatopera
+提供了在问候语中关联热门问题的多轮对话应用示例文件(`小松.1.0.7.c66`),您可以点击[下载链接](https://github.com/chatopera/chatopera.samples/raw/master/%E5%8D%A1%E7%89%87%E6%B6%88%E6%81%AF/%E5%B0%8F%E6%9D%BE.1.0.7.c66)获得这个应用。
+
+该对话可以导入到多轮对话设计器中,进行浏览脚本和函数;也可以直接导入到 Chatopera 云服务,然后在春松客服中进行体验。
diff --git a/versioned_docs/version-v7/work-chatbot/toc.yml b/versioned_docs/version-v7/work-chatbot/toc.yml
new file mode 100644
index 00000000..431cc74f
--- /dev/null
+++ b/versioned_docs/version-v7/work-chatbot/toc.yml
@@ -0,0 +1,6 @@
+- name: "安装及配置"
+ href: install.md
+- name: "集成机器人客服"
+ href: bot-agent.md
+- name: "消息类型"
+ href: message-types.md
diff --git a/versioned_docs/version-v7/work.md b/versioned_docs/version-v7/work.md
new file mode 100644
index 00000000..f48a5af2
--- /dev/null
+++ b/versioned_docs/version-v7/work.md
@@ -0,0 +1,71 @@
+---
+sidebar_position: 6
+---
+
+# 坐席工作台
+
+坐席工作台,是坐席人员服务访客的主要工具,在左侧导航菜单可进入坐席工作台页面。进入坐席工作台后,客服人员可查看服务中、排队的访客,和访客交谈等。
+
+## 客服工作状态
+
+客服人员和消费者建立连接,并完成对话的聊天室,是客服系统的核心之一。参考以下内容,避免出现使用错误。
+
+![聊天室的状态](images/products/cskefu/2-3.accout-n-permissions.jpg)
+
+![聊天室的状态](images/products/cskefu/2-3.accout-n-permissions-2.jpg)
+
+![聊天室的状态](images/products/cskefu/2-3.accout-n-permissions-3.jpg)
+
+### 注意事项
+
+客服人员状态设置应注意以下事项:
+
+1. 登录后设定为“在线”,默认为“就绪置闲”。
+
+2. 坐席设定“置忙”或“非就绪”。
+
+3. 坐席只能单点登录,后续的登录会将早前的登录踢出。
+
+4. 坐席可以在登录后打开多个 Tab 页。
+
+5. 坐席关闭所有 Tab 页后:如果在 10 秒内没有打开新的 Tab 页,则系统自动设定该坐席为“非就绪”状态;如果坐席在 10 秒内打开新的 tab 页,则保持关闭 tab 页前的状态。
+
+6. 坐席没有关闭所有 Tab 页,则保持关闭前的状态。
+
+7. 坐席刷新 Tab 页,保持刷新前的状态:此处如果坐席持续不断的刷新 Tab 页,则有可能被系统设定到“非就绪状态”,这个符合客观事实,连续不断的刷就是非就绪。
+
+8. 坐席登出,设定为离线状态。**离开电脑超过 1 个小时,坐席人员应设定为非就绪状态或置忙;在下班前,应登出春松客服。**
+
+9. 坐席每次登录,有最大时效为 24 小时,超过 24 小时需要重新登录,否则执行转接等操作时会提醒并回到登录页面。
+
+## 访客会话状态流转
+
+在访客与人工坐席的会话中,状态流转如下:
+
+ ![聊天室的状态](images/products/user-service-flow-1.png)
+
+`排队`:人工坐席繁忙,消费者接入聊天室时没有空闲的客服人员接起会话,这时,消费者往往会等待,在等待的过程中输入问题。此时消费者不能断开,断开后重连有可能重新排队。
+
+`活动`:人工坐席加入会话,开始和消费者聊天,解答问题,并且有可能进行几句寒暄。
+
+`转接`:当前服务人员有时会需要其他工作人员协助,往往也会直接将消费者转接到另外一名客服人员。这时,聊天室就被另外一名客服人员接管。
+
+`关闭`:聊天结束后的一种状态,代表服务未顺利完成,很可能对消费者问题没有解决或消费者离开聊天室。
+
+`完成`:聊天结束后的一种状态,代表服务顺利完成,比如消费者得到了满意的回答,关闭聊天室。
+
+当该渠道集成了机器人客服时,对该流程有影响,参考[机器人客服](/products/cskefu/work-chatbot/index.html)。
+
+## 客服坐席设置
+
+- 确保需要作为坐席的用户具有“多媒体坐席”的权限;系统->系统管理->用户和组->用户账号->选中该用户->编辑,就可以设置“多媒体坐席
+
+![聊天室的状态](images/products/cosin/Picture27.png)
+
+- 需要把 “坐席工作台” 授权给此用户;
+
+![聊天室的状态](images/products/cosin/Picture28.png)
+
+- 保证该坐席用户已经登录系统,并且将自己的坐席状态设置为”就绪”。
+
+![聊天室的状态](images/products/cosin/Picture29.png)
diff --git a/versioned_docs/version-v8/accounting.md b/versioned_docs/version-v8/accounting.md
new file mode 100644
index 00000000..f400a278
--- /dev/null
+++ b/versioned_docs/version-v8/accounting.md
@@ -0,0 +1,182 @@
+---
+sidebar_position: 6
+---
+
+# 账号和权限
+
+## 视频教程
+
+本文介绍如何完成春松客服开发环境的搭建,**面向企业/开发者提供关于春松客服二次开发的相关知识,从入门到掌握全部开发技能请学习[《春松客服大讲堂》](https://docs.cskefu.com/docs/osc/training)**。
+
+## 系统管理员
+
+在春松客服里,系统管理员是具备管理所辖组织内坐席、权限、角色、联系人和坐席监控等资源的管理员,系统管理员分为两种类型:**超级管理员**和**普通管理员**,普通管理员也简称“管理员”。
+
+超级管理员为春松客服系统设置的,初始化一个春松客服实例后,默认超级管理员用户名为 `admin`,密码为 `admin1234`,并且有且只有一个,IT 人员在初始化搭建的春松客服实例的第一件事就是更改超级管理员账号的密码,以确保系统安全。超级管理员具备更新系统所有属性的能力,读写数据,是春松客服内权限最大的用户。
+
+安装启动系统,进入春松客服后台界面,输入初始化的超级管理员账号密码(用户名: `admin`, 密码: `admin1234`),点击立即登录。
+
+![登录界面](images/products/cosin/Picture1.png)
+
+**超级管理员同时维护者春松客服的组织机构的高层级,组织机构是树形结构,默认情况下没有组织机构信息,春松客服搭建完成后,由超级管理员设定根节点,比如总公司、总公司下属子公司,维护这样的一个层级结构,再创建其他管理员账号,普通管理员账号可以创建多个,不同管理员隶属于不同组织机构,该管理员只有管理其所在组织机构及该组织机构附属组织机构的权限。**
+
+系统管理员切换不同的组织机构,可以查看不同组织机构的数据。
+
+## 权限设计
+
+春松客服权限体系包括:组织机构,角色,账号。
+
+### 权限的管理
+
+角色可以自定义,设置对一系列资源的读写。**角色的创建和删除,修改资源授权,只有超级管理员可以操作,**,普通【管理员】只具备角色的使用权:添加或删除权限里的系统账号。
+
+### 系统账号读写资源与角色的关系
+
+将账号添加到角色后,因为账号也同时隶属于不同的组织机构,那么账号所具有的权限就是其所在组织机构以及附属组织机构的角色对应的资源的读写。
+
+根据角色和坐席所在组织机构进行权限检查:
+
+- 超级管理员可以管理系统所有资源
+- 管理员可以创建部门人员
+- 组织机构支持层级的树状结构
+- 角色包含对不同资源的读写权限
+- 资源如联系人,客户等是根据组织机构进行隔离的
+- 网站渠道必须启用技能组,不同网站渠道接入的访客根据网站渠道设置分配给不同的技能组
+- 系统数据根据坐席当前所在的组织机构进行展示
+- 坐席可以看到自己所在组织机构以及附属组织机构的数据
+
+假设组织机构如下:
+
+![组织机构示意图](images/products/cosin/Picture23.png)
+
+- 李四所能看到的联系人全集是 A 部门及其附属部门所创建的全部联系人
+- 李四看不到 B 部门的联系人,张三看不到 A 部门的联系人
+- 李四能看到刘一创建的联系人,刘一看不到李四创建的联系人
+
+## 组织机构管理
+
+### 创建部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _创建部门_,并且可以启用或关闭技能组
+
+![创建部门](images/products/cosin/Picture10.png)
+
+- 名词解释:
+
+**部门** 需要创建的部门名称
+
+**上级机构** 选择上级部门
+
+**启用技能组** 这里启用与否,技能是接待同一个渠道的坐席人员群组,春松客服支持配置自动分配策略,连接访客与坐席,简称 ACD 模块
+
+### 更新、删除部门
+
+进入部门列表
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_
+
+### 编辑(修改)部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _修改部门_
+
+![修改部门](images/products/cosin/Picture12.png)
+
+### 删除部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织机构_ -> _删除部门_
+
+### 设置部门地区
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织结构_ -> _选中一个部门_ -> _地区设置_
+
+![设置部门地区](images/products/cosin/Picture15.png)
+
+## 角色管理
+
+### 创建角色
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _系统角色_ -> _新建角色_
+
+只有【系统超级管理员】可以创建角色。
+
+![创建角色](images/products/cosin/Picture17.png)
+
+名词解释:
+
+**角色** 系统中用户的操作权限是通过角色来控制,角色可以理解为具备一定操作权限的用户组;
+
+可以把一个或者更多的用户添加到一个角色下;
+
+可以给一个角色设置一定的系统权限,相当于这个角色下面的用户有了这些系统权限;
+
+角色创建好了以后,在所有组织机构中共享。不同组织机构的管理员,只能管理其所在组织机构和下属组织机构里的账号的角色。
+
+### 编辑(修改)角色
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _系统角色_ -> _修改角色_
+
+只有【系统超级管理员】可以编辑角色。
+
+![修改角色](images/products/cosin/Picture22.png)
+
+### 删除角色
+
+系统->系统概况->用户和组->系统角色>删除角色
+
+只有【系统超级管理员】可以删除角色。
+
+![删除角色](images/products/cosin/Picture20.png)
+
+## 账号管理
+
+### 创建用户账号:_系统_ -> _系统概况_ -> _用户和组_ -> _用户账号_ -> _创建新用户_
+
+> 提示:
+
+```
+电子邮件: 需要有效的格式
+密码: 字母数字最少8位,手动录入
+手机号: 全系统唯一
+```
+
+- 用户分为管理员和普通用户
+- 坐席分为一般坐席和 SIP 坐席,普通用户与管理用户都可以成为坐席,SIP 坐席是在多媒体坐席的基础上
+- **每个账号必须分配到一个部门下,以及关联到一个角色上,才可以查看或管理资源,请详细阅读【组织机构】和【角色】管理**
+
+- 创建普通用户
+
+![创建普通用户](images/products/cosin/Picture3.png)
+
+- 创建多媒体坐席
+
+![创建多媒体坐席](images/products/cosin/Picture4.png)
+
+- 创建管理员
+
+![创建管理员](images/products/cosin/Picture5.png)
+
+### 查看账号信息
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _用户账号_
+
+![查看账户信息](images/products/cosin/Picture7.png)
+
+点击操作一栏中的“编辑”“删除”,可以对当前用户列表中的所有用户的信息进行编辑或者删除
+
+### 添加账号到部门
+
+_系统_ -> _系统概况_ -> _用户和组_ -> _组织结构_ -> _选中一个部门_ -> _添加用户到当前部门_
+
+- 可以把已经存在的 用户账号 添加到一个特定的部门中
+
+- 一个用户账号只能隶属于一个部门
+
+![部门中添加账号](images/products/cosin/Picture14.png)
+
+### 添加账号到角色
+
+系统->系统概况->用户和组->系统角色>添加用户到角色
+
+![角色中添加账号](images/products/cosin/Picture21.png)
+
+
diff --git a/versioned_docs/version-v8/channels/index.md b/versioned_docs/version-v8/channels/index.md
new file mode 100644
index 00000000..d276bfa3
--- /dev/null
+++ b/versioned_docs/version-v8/channels/index.md
@@ -0,0 +1,20 @@
+---
+sidebar_position: 7
+---
+
+# 渠道管理
+
+## 概述
+
+春松客服支持多种渠道,访客的来源可能是多渠道的,这也是目前联络中心发展的趋势,以及对智能客服系统的一个挑战,一方面随着信息技术和互联网通信、聊天工具的演变,企业的客户逐渐分散,尤其是营销平台多元化。
+
+多渠道的适应能力,是春松客服的重要特色。在【渠道管理】的子菜单中,查看支持的不同类型的渠道。
+
+
+
+## 渠道支持
+
+| 渠道名称 | 简介 | 获得 |
+| ----------------------------- | ------------------------------------------------------------------------------------------------------------- | --- |
+| [网页渠道](webim.html) | 通过在网页中注入春松客服网页渠道 HTML,实现聊天控件,访客与客服建立实时通信连接,支持坐席邀请访客对话等功能 | **开源,免费**,随[基础代码](https://github.com/chatopera/cskefu)发布 |
+| [Facebook Messenger 渠道](messenger/index.html) | 简称“Messenger插件”或“ME”插件, Messenger 是 Facebook 旗下的最主要的即时通信软件,支持多种平台,因其创新的理念、优秀的用户体验和全球最大的社交网络,而广泛应用。春松客服 Messenger 插件帮助企业在 Facebook 平台上实现营销和客户服务| **开源,免费**,随[基础代码](https://github.com/chatopera/cskefu)发布 |
diff --git a/versioned_docs/version-v8/channels/messenger/facebook-otn.md b/versioned_docs/version-v8/channels/messenger/facebook-otn.md
new file mode 100644
index 00000000..eee50777
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/facebook-otn.md
@@ -0,0 +1,124 @@
+---
+sidebar_position: 2
+---
+
+# Facebook OTN 主动推送指南
+
+## 什么是 OTN 消息
+
+OTN 消息是 Facebook 平台提供的 Facebook 主页可以向粉丝主动推送消息的工具。粉丝有权利订阅,订阅后 Facebook 主页管理员推送通知消息时,不受24小时规则限制,可以是营销或非营销消息。
+
+OTN 是 One-time Notification 的缩写。
+
+![OTN](../../images/products/cskefu/messenger/image-2021-02-19-120353.png)
+
+整个 OTN 使用流程可分为四步:
+
+1、管理员在春松客服“营销中心”创建 OTN 记录,生成**分享链接**;
+
+2、运营人员发布**分享链接**到 Facebook Page 页面或其它渠道;
+
+3、消费者或访客点击**分享链接**后订阅 OTN 通知,即**分享链接**页面的“通知我”按钮;
+
+4、管理员可以通过手动触发或自动发送的方式,向订阅的访客发送 OTN 通知,即创建 OTN 记录时表单的内容。
+
+使用 OTN 的关键在于掌握:**OTN 创建表单**,在推广活动时使用**分享链接**和**发送 OTN 通知**。
+
+下图为 Facebook 官方给出的一个 OTN 通知在访客端的样例:
+
+![案例](../../images/products/cskefu/messenger/image2021-2-6_0-12-8.png)
+
+## 开通 Facebook Page 的 OTN 权限
+
+根据 Facebook 的规定,您首先需要为您的 Page 开通 OTN 权限。如下图所示,在 Page 中按照:设定→ 进阶信息→ 要求的功能→ 一次性通知 的路径为您的 Page 申请 OTN 权限。
+
+![开通权限](../../images/products/cskefu/messenger/image2021-2-5_23-3-7.png)
+
+## OTN 管理
+
+营销人员可以在营销中心对 OTN 进行管理。在营销中心可以看到 OTN 的详细信息以及订阅人数和状态等。
+
+### 创建 OTN
+
+步骤:营销中心 → 创建 OTN
+
+![创建 OTN](../../images/products/cskefu/messenger/image2021-2-4_14-30-15.png)
+
+OTN 表单内容。
+
+![自定义内容](../../images/products/cskefu/messenger/image2021-2-10_19-31-55.png)
+
+* OTN支持文本和图片两种消息类型
+* 请选择渠道是指messenger渠道
+* 订阅前邀请消息支持文本和图片,可以根据需要自定义
+* 订阅邀请文本
+* 成功订阅提醒是用户订阅消息后,收到的消息
+* OTN 内容指用户收到的营销人员发送的OTN消息详情
+* 推送时间可以预设,到达预设的时间,系统自动发送 OTN 消息
+
+### 获得分享链接
+
+创建 OTN 后,可以在 OTN 管理列表中,找到对应项的【分享链接】,点击【复制】。
+
+**那么,接下来,您就可以发布推文(Post),并且在推文中增加该链接,Facebook 用户在浏览推文,如果感兴趣就点击该链接,完成订阅!**
+
+### 编辑 OTN
+
+步骤:Messenger OTN 列表页→ 操作栏→ 编辑
+在推送内容前,管理员可以继续编辑 OTN 表单内容。
+
+### 删除 OTN
+
+步骤:Messenger OTN列表页→ 操作栏→ 删除
+
+![删除](../../images/products/cskefu/messenger/image2021-2-4_23-59-8.png)
+
+### 发送 OTN 推送
+
+活动的时间到了,是推送优惠券或者重要更新的时候了,之前点击了订阅的链接的用户,给 TA 们推送消息吧!
+
+有两种发送 OTN 推送方式:**定时发送**和**手动发送**。
+
+定时发送:在 OTN 的表单中,指定时间,在当前设定未到达前,您可以随时调整该时间。
+
+![定时发送](../../images/products/cskefu/messenger/image2021210-18470.png)
+
+手动发送步骤:Messenger OTN列表页→ 操作栏→ 发送
+
+![手动发送](../../images/products/cskefu/messenger/image2021-2-5_0-0-35.png)
+
+## 营销人员发布分享链接到 Facebook 主页
+
+第一步:营销人员复制 Messenger OTN 列表中的分享链接
+
+![复制链接](../../images/products/cskefu/messenger/image2021-2-5_0-6-56.png)
+
+第二步:进入 Facebook 主页页面,建立贴文;帖文中加上分享链接,然后发布
+
+![分享链接](../../images/products/cskefu/messenger/image2021-2-5_23-23-19.png)
+
+## Facebook 渠道用户订阅 OTN 消息
+
+用户在 Facebook page 页面,点击分享链接,进入对话窗口后点击:通知我/Notify Me
+
+![订阅消息](../../images/products/cskefu/messenger/image2021-2-5_23-45-39.png)
+
+## Facebook 渠道用户接收 OTN 消息
+
+用户订阅 OTN 消息后,营销人员在营销中心发送 OTN,用户就可以收到消息了
+
+![通知消息](../../images/products/cskefu/messenger/image2021-2-5_23-48-11.png)
+
+## 查看 OTN 发送效果
+
+OTN 列表页“订阅”一列显示此 OTN 订阅人数,订阅的用户都能接收到 OTN 推送,接收人数和订阅人数相同。
+
+![查看 OTN 数据](../../images/products/cskefu/messenger/image2021-2-10_3-35-16.png)
+
+在 Facebook 主页上,作为管理员,从右侧管理面板进入公共主页成效分析,包含最近丰富的粉丝增长数据,页面访问情况数据,指导企业计算 RoI 等指标。
+
+![查看 Facebook 统计数据](../../images/products/cskefu/messenger/image2021-2-5_10-9-5.png)
+
+## OTN 注意事项
+
+根据 Facebook 官方对于 OTN 的限制说明,需要注意:不能在短时间内多次向用户发送获得 OTN 许可的请求,即不能短时间内重复多次发送 OTN、请求用户点击“通知我/Notify Me”。这样的行为会被 Facebook 监控,如果 Facebook 算法检测到短时间内发送的 OTN 请求数量异常,您将面临失去访问 OTN 功能的风险。
diff --git a/versioned_docs/version-v8/channels/messenger/index.md b/versioned_docs/version-v8/channels/messenger/index.md
new file mode 100644
index 00000000..d832d137
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/index.md
@@ -0,0 +1,44 @@
+---
+sidebar_position: 1
+---
+
+# Messenger 渠道
+
+![Facebook Messenger](../../images/products/cskefu/messenger/image-2021-02-23-104502.png)
+
+## 概述
+
+Messenger 是 Facebook 旗下的最主要的即时通信软件,支持多种平台,因其创新的理念、优秀的用户体验和全球最大的社交网络,而广泛应用。通过 Facebook Messenger 的官方链接,可以了解更多。
+
+
+
+春松客服 Messenger 插件帮助企业在 Facebook 平台上实现营销和客户服务。
+
+![连接客户](../../images/products/cskefu/messenger/image2021-2-1_19-58-6.png)
+
+* 集成 Facebook 粉丝页,使用 OTN 推送营销活动信息,吸引新粉丝和激活老客户
+* 集成 Chatopera 机器人客服,自动回答常见问题,提升客户体验
+* 支持机器人客服转人工坐席,解决客户的复杂问题
+* 产品迭代一年,提供多个最佳实践,帮助企业高效率运营
+* 春松客服运营分析和 Chatopera 机器人客服运营分析生成报表,洞察业务指标
+
+## 了解 Messenger 的强大功能
+
+首先,出海企业要获客,或者通过互联网方式提供服务,那么 Facebook 上的广告和 Messenger 服务,是您无论如何都要使用的,因为你可以从这里找到您的目标客户、潜在客户。但是,如果 Facebook 平台的商业化程度过高,将影响社交网络内用户的体验,比如用户收到和自己不相关、不感兴趣的、大量的广告。为此 Facebook 在广告和 Messenger 上,有很多设计、一些限制,达到了商业化和人们社交需求的平衡,这是 Facebook 能成为今天世界上最大的社交网络的关键原因之一。
+
+其次,您需要了解 Messenger 的一些应用场景,比如 Chatopera 为九九互动提供的智能客服和 OTN 服务的案例[^chatopera-me-jiujiu2020]。
+
+[^chatopera-me-jiujiu2020]: 春松客服为出海企业提供智能客服,https://www.chatopera.com/solutions/overseas.html
+
+在正式介绍春松客服 Messenger 插件的使用之前,需要说明 Chatopera 提供该插件是通过 Facebook Messenger 平台的开发者 APIs 实现,因此,该插件的功能安全可靠、稳定强大并且会不断更新。
+
+[https://developers.facebook.com/docs/messenger-platform](https://developers.facebook.com/docs/messenger-platform)
+
+
+
+## 使用指南
+
+* [Messenger 渠道配置](install.html)
+* [Facebook OTN 主动推送指南](facebook-otn.html)
+* [Messenger 渠道配置机器人客服](messenger-chatbot.html)
+* [Messenger 管理机器人客服对话](message-types.html)
diff --git a/versioned_docs/version-v8/channels/messenger/install.md b/versioned_docs/version-v8/channels/messenger/install.md
new file mode 100644
index 00000000..c6f09828
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/install.md
@@ -0,0 +1,286 @@
+---
+sidebar_position: 1
+---
+
+# Messenger 渠道配置
+
+## 前提准备
+
+在使用春松客服集成 Messenger 前,您需要做如下准备工作。
+
+| 准备工作 | 描述 | 网址 |
+| --- | --- | --- |
+| 注册 Facebook 账号 | 创建 Messenger 应用,Facebook Page 页,测试 BOT 等需要准备 Facebook 账号 | [link](https://facebook.com/) |
+| 注册 Chatopera 云服务账号 | 创建机器人客服需要使用 Chatopera 云服务 | [link](https://bot.chatopera.com/) |
+| 部署春松客服实例 | 春松客服实例需要安装有 Messenger 插件 | [link](https://docs.chatopera.com/products/cskefu/deploy.html) |
+| 初始化春松客服 | 使用超级管理员创建组织机构,技能组,坐席角色和一个坐席账号,将账号绑定到坐席角色和技能组 | [link](https://docs.chatopera.com/products/cskefu/initialization.html) |
+
+
+在配置的过程中,还需要开通额外的账号或资源,是以以上为基础的。
+
+## 集成 Messenger 渠道
+
+安装好春松客服 Messenger 插件后,系统管理员登录,只有系统管理员或超级系统管理员【admin】可以维护 Facebook Messenger 渠道。
+
+### Messenger 渠道管理
+
+在右上角组织机构,选择一个技能组,然后进入【系统管理】,打开 【Messenger】页面。
+
+![打开 Messenger 渠道管理](../../images/products/cskefu/messenger/image2021-2-1_20-14-52.png)
+
+注意:此处要先切换到技能组,因为创建 Messenger 渠道必须绑定一个技能组。
+
+点击【创建渠道】。
+
+![创建渠道](../../images/products/cskefu/messenger/image2021-2-2_21-21-26.png)
+
+如图,创建 Messenger 表单有几个信息,接下来,我们将介绍如何获得这些信息。
+
+### 创建 Facebook Page
+
+Facebook Page,也称为 Facebook 粉丝页、Facebook 页面、Facebook 主页,是 Facebook 为机构、企业、非营利性组织等各种类型的组织提供的站点,在该站点组织发布消息,和 Facebook 平台的用户互动。在粉丝页,Facebook 提供了广告、推文、点评、小组、数据分析等工具,帮助企业充分的利用社交网络实现营销、品牌建设。
+
+![粉丝页](../../images/products/cskefu/messenger/image2021-2-2_19-55-57.png)
+
+在上图,我们注意到,访客可以看到“发消息”按钮,那么点击发消息按钮就可以唤起 Messenger 聊天控件和企业互动,完成反馈、咨询等。服务访客的,可能是人工坐席,也可以能是机器人客服,此外,企业可以主动联系访客,并进而通过 Messenger 进行实时对话。稍后,我们将介绍如何集成配置春松客服连接一个 Facebook 页面,然后进行更多最佳实践的介绍,敬请继续阅读。
+
+在熟悉了 Facebook Page 的定位以后,当您有了 Facebook 账号,您可以通过下面链接快速的创建一个 Facebook Page。
+
+
+
+![快速创建](../../images/products/cskefu/messenger/image2021-2-2_20-8-47.png)
+
+在此,我们创建一个示例页面,在演示如何在春松客服集成 Messenger 时使用,注意:企业创建 Messenger 应用以后,可以将 Messenger 应用集成到 Facebook Page 上,Facebook Page 是企业的一个对外的主页,而并不是唯一的,Messenger 应用同时支持多种渠道,比如网页聊天、Whatsapp等。Messenger 应用的介绍是在下一环节。
+
+假设我们创建的 Facebook Page 名称:春松客服 DEMO。创建完成后,进入 春松客服 DEMO 地址,这时,我们是管理员视图,点击“访客视图”,就是普通访客看到的页面。
+
+![访客视图](../../images/products/cskefu/messenger/image2021-2-2_20-10-36.png)
+
+注意:此时,Facebook Page 刚刚创建,对于 Facebook 普通用户而言,这个页面还是不可见的,作为管理员,在 Facebook Page 设置页面,进行可见度设置,调整为 Public 才是公开的。设置界面,后面我们还会使用到。
+
+![管理员界面](../../images/products/cskefu/messenger/image2021-2-2_20-16-29.png)
+
+### 添加联系我按钮
+
+此时,我们有了一个 Facebook Page,默认情况下,没有联系我按钮,我们需要手动的添加。
+
+在 Facebook Page 页面,以管理员视图查看,找到“添加按钮”,点击这个按钮。
+
+![添加按钮](../../images/products/cskefu/messenger/image2021-2-2_20-23-51.png)
+
+这时,我们在很多弹出的选项中,选择“发消息”。
+
+![发消息](../../images/products/cskefu/messenger/image2021-2-2_20-25-7.png)
+
+提交后,在您的页面上,便有了“发消息”按钮。作为管理员,您可以设置或测试它。
+
+![测试对话](../../images/products/cskefu/messenger/image2021-2-2_20-26-36.png)
+
+当我们再以访客视图查看,就会发现唤起 Messenger 聊天控件的发消息按钮。
+
+![访客视图](../../images/products/cskefu/messenger/image2021-2-2_20-29-20.png)
+
+作为 Facebook Page 的管理员,我如何回复消息呢?
+
+有两个方案:
+
+#### 普通模式
+
+在默认情况下,用户浏览会以通知的形式发送给您登录的浏览器,您可以进行回复。并进入设置→消息,进行一些个性化的设置。
+
+![回复消息](../../images/products/cskefu/messenger/image2021-2-2_20-31-30.png)
+
+此种方式下,访客的信息并没有和您的 CRM 系统联通,信息分散了;此外,您的访客可能来自不同渠道,Facebook Messenger 只是其中之一,渠道不能统一到一个系统,您的组织的客户服务工作效率降低,客户体验差。还有很多问题,这就是为什么 Facebook 提供了第二种模式 - 高级模式。
+
+#### 高级模式
+
+在高级模式下,Facebook 将访客在您的 Facebook Page 上唤起的 Messenger 对话控件的消息,转发给了兼容 Facebook Messenger 平台的软件服务,比如一个春松客服实例,春松客服和 Facebook Messenger 平台之间进行通信,并且以约定的形式,企业可以主动发起会话、发布营销通知、回复访客会话等,Facebook 平台同时有丰富的接口,春松客服可以获得访客的 ID、语言、所在地区、邮箱、电话号码等信息,从而满足客户关系管理、营销和客服等诉求。下文,我们就详细介绍如何使用春松客服 Messenger 插件,通过高级模式,支持 Messenger 的对话。
+
+创建 Messenger 应用
+在高级模式下,企业可以选择:
+
+* 1)企业自行开通 Facebook 开发者平台账号,创建 Messenger 应用,并绑定 Facebook Page;
+* 2)和支持 Facebook Messenger 平台的服务商合作,获得技术支持,比如[春松客服官方团队](https://www.chatopera.com/price.html),该技术支持是付费服务项。
+
+我们推荐企业使用第一种方式,即自行开通,该过程会多花一点时间,但是相对也简单,这种方式,完全由企业在 Facebook 平台上操作,不涉及任何春松客服官方的接口、云服务。
+
+在以上两种方式中,您的春松客服实例都需要配置 HTTPs 协议,这部分后续会详细介绍。接下来,我们就以自行开通 Facebook 开发者平台进行讲解。
+
+打开 Facebook Developer Portal, 使用 Facebook 账号开通
+
+
+
+开通后登入,点击创建应用,一个应用可以关联多种 Facebook 产品,Messenger 是产品之一,因为本文我们将用该应用关联 Messenger 产品,因此,我们简称此种应用为 Messenger 应用。
+
+![Facebook 应用](../../images/products/cskefu/messenger/image2021-2-2_20-57-26.png)
+
+在弹出的表单中,选择“更多选项”。
+
+![更多选项](../../images/products/cskefu/messenger/image2021-2-2_21-1-50.png)
+
+接着填写应用的名称,联系邮箱。
+
+![联系邮箱](../../images/products/cskefu/messenger/image2021-2-2_21-2-40.png)
+
+这里,我们假设名字填写了【春松001】,作为示例程序名字。如果您有开通 Facebook 商务账号,也可以在这里关联,该项为非必填。
+
+Facebook 商户账号( )是管理企业的组织人员、广告等资产的平台。
+
+当应用创建成功,自动跳转到应用详情页面,如下。
+
+![详情页面](../../images/products/cskefu/messenger/image2021-2-2_21-6-18.png)
+
+在添加产品卡片上,点击 Messenger 的【设置】按钮,进入 Messenger 产品设置页面,该页面有较多内容,我们将着重介绍有关和春松客服集成到 Facebook Page 相关的内容。
+
+页面滑动至【访问口令】,点击【添加或移除主页】。
+
+![访问口令](../../images/products/cskefu/messenger/image2021-2-2_21-8-47.png)
+
+此时,将弹出对话框,提示授权登录 Facebook,登录成功后,将展示您的 Facebook Page 列表,此时,我们可以看到【春松客服 DEMO】,勾选并选择提交。
+
+![绑定页面](../../images/products/cskefu/messenger/image2021-2-2_21-13-16.png)
+
+如果该绑定失败,可能会提示原因,并且提示您进行变更,如下所示,点击【完成】。
+
+![完成绑定](../../images/products/cskefu/messenger/image2021-2-2_21-14-51.png)
+
+此时,代表着【春松客服001】Messenger 应用正式接管了 Facebook Page 【春松客服 DEMO】的消息管理。回到应用详情页面,此时 Messenger 设置中,就出现了【春松客服 DEMO】。
+
+![完成接入](../../images/products/cskefu/messenger/image2021-2-2_21-17-50.png)
+
+### 获得 Messenger 配置信息
+
+还记得之前在春松客服内,创建 Messenger 渠道的表单吗?现在,对于表单里的内容,就可以获得了。
+
+| 配置项 | 描述 | 示例 |
+| --- | --- | --- |
+| 名称 | 渠道名称,可使用 Facebook Page 名字 | 春松客服 DEMO |
+| Page ID | Facebook Page 的唯一标识。在 Messenger 应用的设置的访问口令列表中,Page ID 就是主页名称下的数字字符串 | 159955055741 |
+| Access Token | 访问 Facebook Page 的口令,每个 Facebook Page 使用不同口令。在 Messenger 应用的设置的访问口令列表中,点击【生成口令】 | xxxx |
+| Verify Token | 该值为随机字符串,由企业用户自定义 | foobar20 |
+
+
+![渠道表单](../../images/products/cskefu/messenger/image2021-2-2_21-28-24.png)
+
+### 创建 Messenger 渠道
+
+回到春松客服 Messenger 渠道创建表单,填写对应值,点击【提交】。
+
+![提交表单](../../images/products/cskefu/messenger/image2021-2-2_21-31-16.png)
+
+此时,渠道创建成功。但是,还需要一些配置,使得春松客服实例与 Facebook Messenger 平台服务连接起来。
+
+### 配置 HTTPS
+
+处于安全的考虑,Facebook 要求 Messenger 应用对接的软件服务使用 HTTPS 加密协议,春松客服企业用户有多种方案完成这一目的,针对生产环境,推荐您使用文档[《春松客服配置 CDN和HTTPS》](https://chatopera.blog.csdn.net/article/details/105820829)进行配置。出于本文是演示使用的目的,我们使用更为简单的方案,但是企业客户不要在生产环境用这种方式,避免因连接不稳定给您带来的损失。
+
+在下文,我们使用 ngrok 为春松客服实例实现 HTTPS 协议的访问地址,ngrok 是可以免费使用的,但是需要您先注册,注册好了使用 ngrok 的命令行客户端绑定 localhost 的春松客服端口,ngrok 就提供一个 https 地址作为代理。
+
+执行命令:
+
+```
+ngrok http 8035
+```
+
+此处,8035 即春松客服实例运行端口。
+
+![HTTPS 代理](../../images/products/cskefu/messenger/image2021-2-2_21-43-12.png)
+
+在以上 ngrok 运营的结果,就是 `https://efdbe3894f65.ngrok.io` -> `http://localhost:8035`
+
+此时,我们就得到了春松客服的HTTPS服务的地址 `https://efdbe3894f65.ngrok.io`
+
+### 激活渠道连接
+
+进入 Messenger 应用设置页面,滑动至【Webhook】区域,点击【添加回调网址】。
+
+![回调信息](../../images/products/cskefu/messenger/image2021-2-2_21-45-29.png)
+
+在弹出的对话框内,填写回调地址和验证口令。
+
+![地址和验证](../../images/products/cskefu/messenger/image2021-2-2_21-51-20.png)
+
+回调地址:`https://your_domain/facebook/webhook/{{PAGE_ID}}` ,将 {{PAGE_ID}} 替换为Page ID。
+
+验证口令:即之前设定的 Verify Token。
+
+点击【验证并保存】,此时,Facebook 会请求春松客服实例,保证服务连接状态正常,回到设置页面;若连接不成功,将会进行提示。
+
+注意:第一次配置回调地址成功后,回调地址栏内将有值。一个 Messenger 应用可以集成多个 Facebook Page,这些 Facebook Page 是共享一个回调地址和验证口令的,那么您在这个 Messenger 应用上添加第二个 Facebook Page 并且都是连接到同一个春松客服实例时,是不需要再次设置 Webhook 信息的,所有的 Facebook Page 对话将一起被发送给这个回调地址处理。
+
+![配置 Webhook](../../images/products/cskefu/messenger/image2021-2-2_22-11-12.png)
+
+至此,配置 Webhook 成功。
+
+### Webhook 添加订阅
+
+完成添加 Webhook 信息,还需要在 Webhook 栏内选择【添加订阅】。
+
+![设置订阅内容](../../images/products/cskefu/messenger/image2021-2-2_22-39-6.png)
+
+Facebook 将该主页发生的【发消息】相关的事件分为很多种类型,现在我们勾选 messages 和 messaging_postbacks。如果需要了解其他的事件类型可以参考 [Facebook Messenger 平台文档](https://developers.facebook.com/docs/messenger-platform)。
+
+![检查订阅内容](../../images/products/cskefu/messenger/image2021-2-2_22-39-46.png)
+
+保存,回到 messenger 设置页面后,可见 Webhooks 多了两个字段。
+
+![完成订阅](../../images/products/cskefu/messenger/image2021-2-2_22-40-20.png)
+
+此时,渠道就连接上了,春松客服经由 Facebook 开发者平台对接上了 Facebook Page 上的 Messenger 对话控件。
+
+### 做一个测试
+
+在集成 messenger 渠道的准备工作里,提到前提条件包括创建技能组、创建坐席人员的角色和创建至少一个账号关联角色和技能组。假设这个坐席人员名字是张三,现在,我们作为技能组的张三登录系统。同时,进入春松客服 DEMO 的 Facebook 主页,点击【发消息】,开始对话。
+
+![发送测试消息](../../images/products/cskefu/messenger/image2021-2-2_22-45-10.png)
+
+访客发送的消息会自动在张三的网页上弹屏,二者进入对话。
+
+### 正式上线
+
+之前,在 Facebook 主页内的操作,我们都是使用管理员账号,此时,Facebook 普通用户作为访客登录,发起 Messenger 对话,是不会被 Facebook 转发到春松客服的,为了达成这个目标,我们需要提交上线,此过程需要在 Facebook 开发者平台,应用详情页面,编辑申请权限。
+
+![编辑权限](../../images/products/cskefu/messenger/image2021-2-2_22-30-46.png)
+
+找到 pages_messaging,点击申请。
+
+![申请](../../images/products/cskefu/messenger/image2021-2-2_22-31-45.png)
+
+提示申请需要大约 5 天,根据经验,三天内就可以完成。
+
+![提交状态](../../images/products/cskefu/messenger/image2021-2-2_22-32-21.png)
+
+提交申请后,同时我们丰富一下 Facebook 应用的介绍信息,这是可能被数十亿人浏览和使用的!
+
+比如应用的 Icon, 服务条款网址等。
+
+![审核内容](../../images/products/cskefu/messenger/image2021-2-3_9-57-27.png)
+
+ 当权限申请完成,应用信息填写完成,正式提交审核,在侧边栏,点击【应用审核->申请】。
+
+![处理申请](../../images/products/cskefu/messenger/image2021-2-3_10-0-10.png)
+
+注意:以上图片因为没有完成权限申请,没有提交上线的审核按钮。
+
+上线审核通过后,在应用设置页面的上方,将【开发中】开关拨动到另一侧,此时,Facebook Page 和春松客服的集成大功告成。
+
+![上线](../../images/products/cskefu/messenger/image2021-2-3_10-2-31.png)
+
+这时,您的主页就可以通过购买 Facebook 广告、发布文章等方法运营、转化客户了。
+
+
+
+### 进一步学习最佳实践
+
+接下来,您可以阅读下面的[最佳实践](#最佳实践)系列文章,了解如何一步一步的打造良好的用户体验。
+
+最佳实践主要是针对 Facebook 主页与春松客服之间的使用经验,如何获得高效的运营体验和客服服务体验,完成营销和客服工作。
+
+此外,春松客服的基本功能如报表和坐席监控等,请参考春松客服文档中心的其它部分。
+
+## 最佳实践
+
+* [Messenger 渠道配置](install.html)
+* [Facebook OTN 主动推送指南](facebook-otn.html)
+* [Messenger 渠道配置机器人客服](messenger-chatbot.html)
+* [Messenger 管理机器人客服对话](message-types.html)
\ No newline at end of file
diff --git a/versioned_docs/version-v8/channels/messenger/message-types.md b/versioned_docs/version-v8/channels/messenger/message-types.md
new file mode 100644
index 00000000..3d1aed58
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/message-types.md
@@ -0,0 +1,194 @@
+---
+sidebar_position: 4
+---
+
+# Messenger 管理机器人客服对话
+
+## 概述
+
+本文演示ME渠道机器人可以实现的一些基本功能。
+
+阅读本文前需了解:
+
+* Chatopera 机器人平台的[多轮对话设计器](https://docs.chatopera.com/products/chatbot-platform/conversation/cde.html)
+
+* [Messenger 渠道插件使用文档](https://docs.chatopera.com/products/cskefu/channels/messenger/index.html)
+
+* [配置机器人客服接待访客 Messenger 渠道](https://docs.chatopera.com/products/cskefu/channels/messenger/messenger-chatbot.html)
+
+![关系图](../../images/products/cskefu/messenger/image2021-2-10_17-41-6.png)
+
+## 开始按钮
+
+用户首次打开该 Facebook 主页的 Messenger 对话窗口时,主页显示【Get Started】,引导用户开始和机器人对话。
+
+点击按钮后,机器人发送自定义欢迎信息。
+
+![欢迎语](../../images/products/cskefu/messenger/image2021-2-10_2-59-11.png)
+
+实现原理:
+
+通过 Messenger Profile API 设置 Page 欢迎屏幕会显示“开始”按钮,payload 设置为 `__get_start`。
+
+户轻触此按钮后,Messenger 平台会向您的 Webhook 发送一个 messaging_postbacks 事件, 发送 `__get_start` 到机器人,开启机器人对话。
+
+延申阅读Facebook Messenger 消息格式[Get Started 文档](https://developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/get-started-button)。
+
+在多轮对话设计器中,处理`__get_start`事件,定制机器人回复:
+
+![欢迎事件](../../images/products/cskefu/messenger/image2021-2-10_17-44-38.png)
+
+比如下面技能代码,实现响应 `__get_start` 事件,推送欢迎语和导航菜单。
+
+技能函数:
+
+```
+// Get Started
++ __get_start
+- ^get_start()
+```
+
+技能函数:
+
+```
+exports.get_start = async () => {
+ return {
+ text: '#in params',
+ params: [{ // 文本消息
+ text: '欢迎使用ME机器人客服'
+ }, {
+ attachment: { // 导航菜单
+ type: 'template',
+ payload: {
+ template_type: 'button',
+ text: 'Hi,你想查看什么?',
+ buttons: [{
+ type: "phone_number",
+ title: "商务洽谈",
+ payload: "+8613691490568",
+ },
+ {
+ type: "postback",
+ payload: "__body_feeling",
+ title: "查看城市体感",
+ },
+ {
+ type: "postback",
+ payload: "__start_ask",
+ title: "咨询问题",
+ }
+ ],
+ },
+ },
+ }, ]
+ }
+}
+```
+
+## 导航菜单
+
+我们给用户推送一个导航菜单,引导用户使用我们的服务。
+
+菜单按钮直接触发云平台对应机器人技能。
+
+![导航菜单](../../images/products/cskefu/messenger/image2021-2-10_3-2-0.png)
+
+导航菜单使用 Buttons 实现,按钮类型同 [Messenger Buttons](https://developers.facebook.com/docs/messenger-platform/reference/buttons)。
+
+菜单 payload 在用户点击后推送给机器人。
+
+## 快捷回复
+
+现在用户想查看城市体感信息,我们通过快捷回复,给用户几个热门城市选择,点击直接回复机器人。
+
+![快捷回复](../../images/products/cskefu/messenger/image2021-2-10_3-9-54.png)
+
+用户选择 “查看城市体感” , `__body_feeling` 技能被处理,返回推荐选项给用户选择。
+
+技能脚本:
+
+```
+// 显示推荐城市
++ __body_feeling
+- ^queryFeeling()
+
+// 查询城市数据
++ __query_city (*)
+- ^getWeatherByCity()
+```
+
+技能函数
+
+```
+exports.queryFeeling = async () => {
+ return {
+ text: '#in params',
+ params: {
+ text: '请选择需要查询体感的城市',
+ // 快捷回复选项
+ quick_replies: [{
+ content_type: 'text',
+ title: '北京',
+ payload: '__query_city 北京',
+ },
+ {
+ content_type: 'text',
+ title: '上海',
+ payload: '__query_city 上海'
+ },
+ ],
+ },
+ };
+}
+
+// 此处简化处理,技能函数有访问REST API的能力
+exports.getWeatherByCity = function(city, cb) {
+ debug("getWeatherByCity: %s", city);
+ let data = {
+ '北京': '舒适',
+ '上海': '闷热'
+ }
+
+ cb(null, city + '体感' + data[city]);
+}
+```
+
+## 知识库查询
+
+在输入框直接回复完整问题查询知识库,回答已有的知识点。
+
+![知识库](../../images/products/cskefu/messenger/image2021-2-10_3-16-21.png)
+
+在 Chatopera 云平台,设置常见问答对。用户问答和知识库数据匹配度超过指定阈值时,直接回复该条目答案。
+
+![知识库回复](../../images/products/cskefu/messenger/image2021-2-10_16-13-27.png)
+
+## 知识库反馈
+
+针对知识库的问答对,可以请用户进行反馈,提高知识库准确定。
+
+![知识库反馈](../../images/products/cskefu/messenger/image2021-2-10_3-19-29.png)
+
+数据统计展示在云平台ROI数据中。使用 Chatopera 云服务 聚类分析 ,选择性优化知识库,提升机器人服务效果。
+
+![知识库聚类](../../images/products/cskefu/messenger/image2021-2-10_16-21-20.png)
+
+## 知识库推荐
+
+当问题没有匹配,有相关问题时,系统会推荐给用户,供用户快速选择。
+
+![知识库推荐](../../images/products/cskefu/messenger/image2021-2-10_3-23-24.png)
+
+## 人工服务
+
+用户问题机器人无法解决时,可在适当时机转人工处理。
+
+![转人工](../../images/products/cskefu/messenger/image2021-2-10_3-28-5.png)
+
+系统会根据ACD策略接入合适的客服,进行处理。客服可以看到用户的历史对话,并使用 知识库快捷,知识库联想、转接其他专业客服等功能更好的服务访客。
+
+## 小结
+
+基于以上介绍,企业用户在春松客服和 Chatopera 机器人平台基础上,可以无代码的方式提供基于知识库的 FAQ Bot 和 低代码的方式实现多轮对话 Bot。
+
+强大的定制化开发能力,满足企业客户的各种需求,提升企业的智能化和自动化,在规模化的同时,消费者获得个性化服务,自助式服务。
diff --git a/versioned_docs/version-v8/channels/messenger/messenger-chatbot.md b/versioned_docs/version-v8/channels/messenger/messenger-chatbot.md
new file mode 100644
index 00000000..c8f13117
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/messenger-chatbot.md
@@ -0,0 +1,78 @@
+---
+sidebar_position: 3
+---
+
+# Messenger 渠道配置机器人客服
+
+## 概述
+
+在春松客服中集成了 Messenger 渠道后,您可以通过配置机器人客服实现更加高效,方便,快捷的服务方式。机器人客服可以帮助您回答简单问题,提供轻松的娱乐,预先过滤访客数据,收集信息等,大大减少了人工客服的工作量。
+
+## 配置机器人客服
+
+春松客服实例需要安装有 Messenger 插件和智能机器人插件。只有超级管理员「admin」可以维护智能机器人插件。
+
+### 创建机器人
+
+步骤:系统→系统设置→智能机器人→新建
+
+![新建机器人](../../images/products/cskefu/messenger/image2021-2-5_17-31-50.png)
+
+点击新建之后,弹出集成智能机器人对话框。渠道类型默认的是网站渠道,需要选择 Messenger 渠道。
+
+![选择 Messenger 渠道](../../images/products/cskefu/messenger/image2021-2-5_17-27-10.png)
+
+根据提示填写对应信息,其中 ClientId 和 Secret 需要在 [Chatopera 云服务](https://bot.chatopera.com/)中机器人的设置页面获取。
+
+![填写密钥](../../images/products/cskefu/messenger/image2021-2-5_17-37-46.png)
+
+点击保存之后,创建智能机器人成功。
+
+### 编辑机器人
+
+步骤:智能机器人页面→操作栏→绑定
+
+![绑定](../../images/products/cskefu/messenger/image2021-2-5_17-43-12.png)
+
+### 设置机器人
+
+步骤:智能机器人列表选择需要设置的机器人→根据需求进行设置
+
+![设置](../../images/products/cskefu/messenger/image2021-2-5_17-46-49.png)
+
+### 删除机器人
+
+步骤:智能机器人页面→操作栏→删除
+
+![删除](../../images/products/cskefu/messenger/image2021-2-5_17-48-25.png)
+
+## 机器人不同工作模式
+
+| 模式| 描述| 是否可以转接不同工作模式|
+| --- | --- | --- |
+| 机器人客服优先| 当有新的访客接入会话时,机器人客服优先服务。访客可以选择转人工服务。| 是|
+| 人工客服优先 | 当有新的访客接入会话时,人工客服优先服务。| 否|
+| 仅机器人客服 | 当有新的访客接入会话时,机器人客服优先服务。访客不可以选择转人工服务。| 否|
+
+
+## 访客和机器人对话
+
+访客在 Facebook page 页面点击「发消息」进入对话窗口,访客在对话窗口中发消息可以收到机器人回复,并且可以评价机器人的回复是否有帮助。
+
+![评价机器人](../../images/products/cskefu/messenger/image2021-2-6_15-45-50.png)
+
+访客反馈问题是否有帮助后,数据会记录到 Chatopera 云服务中,登录 [https://bot.chatopera.com/](https://bot.chatopera.com/ ) 进入机器人「统计」页面可以查看数据。
+
+![查看统计数据](../../images/products/cskefu/messenger/image2021-2-6_16-9-34.png)
+
+## 访客如何选择转人工服务
+
+访客和机器人对话触发到兜底回复时,兜底回复下带有「转人工」的按钮,访客点击「转人工」收到提示消息后就可以发送消息和人工客服对话。
+
+![转人工](../../images/products/cskefu/messenger/image2021-2-8_19-28-4.png)
+
+## 人工客服如何结束对话
+
+Facebook 渠道的访客不能主动结束对话,需要人工坐席在坐席工作台主动结束对话。
+
+![结束对话](../../images/products/cskefu/messenger/image2021-2-8_19-41-19.png)
diff --git a/versioned_docs/version-v8/channels/messenger/toc.yml b/versioned_docs/version-v8/channels/messenger/toc.yml
new file mode 100644
index 00000000..76b4eb13
--- /dev/null
+++ b/versioned_docs/version-v8/channels/messenger/toc.yml
@@ -0,0 +1,8 @@
+- name: "配置 Messenger 渠道"
+ href: install.md
+- name: "OTN 主动推送指南"
+ href: facebook-otn.md
+- name: "配置机器人客服"
+ href: messenger-chatbot.md
+- name: "管理机器人客服对话"
+ href: message-types.md
\ No newline at end of file
diff --git a/versioned_docs/version-v8/channels/toc.yml b/versioned_docs/version-v8/channels/toc.yml
new file mode 100644
index 00000000..136b56ac
--- /dev/null
+++ b/versioned_docs/version-v8/channels/toc.yml
@@ -0,0 +1,5 @@
+- name: "网页渠道"
+ href: webim.md
+- name: "Messenger"
+ href: messenger/toc.yml
+ topicHref: messenger/index.md
diff --git a/versioned_docs/version-v8/channels/webim.md b/versioned_docs/version-v8/channels/webim.md
new file mode 100644
index 00000000..2fb53088
--- /dev/null
+++ b/versioned_docs/version-v8/channels/webim.md
@@ -0,0 +1,33 @@
+---
+sidebar_position: 1
+---
+
+# 网页渠道
+
+## 概述
+
+网页聊天支持可以适配移动设备浏览器,桌面浏览器。可以在电脑,手机,微信等渠道接入网页聊天控件。
+
+## 安装
+
+获取网页脚本,_系统_ -> _系统管理_ -> _客服接入_ -> _网站列表_ -> _点击“Chatopera 官网”_ -> _基本设置_ -> _接入;_
+
+![接入网站](../images/products/cosin/Picture30.png)
+
+将图中的代码复制到一个 Web 项目的页面中,例如下图的。
+
+![粘贴聊天控件代码](../images/products/cosin/Picture31.png)
+
+## 使用
+
+使用浏览器打开该 Web 页面。
+
+![聊天控件](../images/products/cosin/Picture32.png)
+
+【提示】该网页需要使用 http(s)打开,不支持使用浏览器打开本地 HTML 页面。
+
+点击该网页中出现的“在线客服”按钮,出现聊天窗口,可以作为访客,与客服聊天了。
+
+![与在线客服对话](../images/products/cosin/Picture33.png)
+
+【提示】春松客服提供一个测试网页客户端的例子,可以使用 _]}}/testclient.html_ 进行访问。
diff --git a/versioned_docs/version-v8/crm.md b/versioned_docs/version-v8/crm.md
new file mode 100644
index 00000000..cc487f6e
--- /dev/null
+++ b/versioned_docs/version-v8/crm.md
@@ -0,0 +1,36 @@
+---
+sidebar_position: 7
+---
+
+# 客户关系管理
+
+## 视频教程
+
+本文介绍如何完成春松客服开发环境的搭建,**面向企业/开发者提供关于春松客服二次开发的相关知识,从入门到掌握全部开发技能请学习[《春松客服大讲堂》](https://docs.cskefu.com/docs/osc/training)**。
+
+## 新建客户
+
+_左侧菜单_ -> _全部客户_ -> _新建客户_
+
+这里客户信息包括“基本信息”,“企业信息”,“联系人信息”;
+其中“联系人信息”,会同步到 左侧菜单->全部联系人;
+
+![新建联系人](images/products/cosin/Picture24.png)
+
+## 编辑客户
+
+_左侧菜单_ -> _全部客户_ -> _客户列表_ -> _选中一个客户_ -> _点击“编辑”按钮_
+
+只能更新“基本信息”,“企业信息”;
+需要更新 “联系人信息”,请移步到 左侧菜单->全部联系人;
+
+## 联系人笔记
+
+进入联系人列表,选择一个联系人,点击_联系人_姓名,进入详情页面。
+在详情页面,编辑联系人笔记,记录来往历史。
+
+![编辑联系人笔记](images/products/cosin/Picture74.png)
+
+## 删除客
+
+_左侧菜单_ -> _全部客户_ -> _客户列表_ -> _选中一个客户_ -> _点击“删除”按钮_
diff --git a/versioned_docs/version-v8/deploy.md b/versioned_docs/version-v8/deploy.md
new file mode 100644
index 00000000..384255c4
--- /dev/null
+++ b/versioned_docs/version-v8/deploy.md
@@ -0,0 +1,204 @@
+---
+sidebar_position: 2
+---
+
+# 应用部署
+
+## 视频教程
+
+本文介绍如何完成春松客服开发环境的搭建,**面向企业/开发者提供关于春松客服二次开发的相关知识,从入门到掌握全部开发技能请学习[《春松客服大讲堂》](https://docs.cskefu.com/docs/osc/training)**。
+
+春松客服适应各种部署方式,本文使用 Docker 和 Docker compose 的方式,适合体验、开发、测试和上线春松客服,此种方式简单快捷。
+
+重要提示:部署应用后,必须按照《系统初始化》[^initdoc]文档进行系统初始化,再使用,不做初始化,会造成坐席无法分配等问题。
+
+[^initdoc]: 系统初始化文档,https://docs.cskefu.com/docs/initialization/
+
+## 准备条件
+
+### 前提
+
+| 项目 | 说明 |
+| ------------------- | ------------------------------------------------------------- |
+| 操作系统 | Linux (CentOS 7.x, Ubuntu 16.04+ 等),**推荐使用 Ubuntu LTS** |
+| Docker 版本 | Docker version 1.13.x 及以上 |
+| Docker Compose 版本 | version 1.23.x 及以上 |
+| 防火墙端口 | 8035, 8036 |
+| 其他软件 | git |
+| 内存 | 开发测试 >= 8GB \| 生产环境 >= 16GB |
+| CPU 颗数 | 开发测试 >= 2 \| 生产环境 >= 4 |
+| 硬盘 | >= 20GB |
+
+
+
+### 安全组
+
+如果使用云主机,要考虑到不同云服务提供商的安全组设置,允许 8035 和 8036 端口下行。
+
+## 克隆代码
+
+```Bash
+git clone -b develop https://gitee.com/cskefu/cskefu.git cskefu.develop
+cd cskefu.develop
+```
+
+以上命令中,`develop` 代表开发中的大版本,当前是 [cskefu/cskefu](https://gitee.com/cskefu/cskefu) v8。
+
+| 分支 | 说明 | 版本 |
+| --- | --- | --- |
+| master | 当前稳定版本 | v7.x |
+| develop | 当前开发版本 | v8.x |
+
+克隆代码时,按照需要指定分支信息;本部署文档针对春松客服 v8.x 版本。
+
+## 配置项
+
+```
+cd cskefu.develop
+cp sample.env .env
+```
+
+以下为部署相关的环境变量,可以在 `.env` 中覆盖默认值。
+
+| KEY | 默认值 | 说明 |
+| -------------------- | ------------------ | ---------------------------------------------- |
+| COMPOSE_FILE | docker-compose.yml | 服务编排描述文件,保持默认值 |
+| COMPOSE_PROJECT_NAME | cskefu | 服务实例的容器前缀,可以用其它字符串 |
+| MYSQL_PORT | 8037 | MySQL 数据库映射到宿主机器使用的端口 |
+| REDIS_PORT | 8041 | Redis 映射到宿主机器的端口 |
+| CC_WEB_PORT | 8035 | 春松客服 Web 服务地址映射到宿主机器的端口 |
+| CC_SOCKET_PORT | 8036 | 春松客服 SocketIO 服务映射到宿主机器的端口 |
+| ACTIVEMQ_PORT1 | 8051 | ActiveMQ 端口 |
+| ACTIVEMQ_PORT2 | 8052 | ActiveMQ 端口 |
+| ACTIVEMQ_PORT2 | 8053 | ActiveMQ 端口 |
+| DB_PASSWD | 123456 | 数据库密码,设置到 MySQL, Redis, ActiveMQ |
+| LOG_LEVEL | INFO | 日志级别,可使用 WARN, ERROR, INFO, DEBUG |
+
+
+
+以上配置中,**端口的各默认值需要保证在宿主机器上还没有被占用;数据库的密码尽量复杂;CC_WEB_PORT 和 CC_SOCKET_PORT 这两个值尽量不要变更;生产环境下 LOG_LEVEL 使用至少 WARN 的级别**。
+
+以下为一些业务功能相关配置的环境变量:
+
+| KEY | 默认值 | 说明 |
+| -------------------- | ----------- | -------------------------------------------------------------------------------------------------------- |
+| TONGJI_BAIDU_SITEKEY | placeholder | 使用[百度统计](https://tongji.baidu.com/web/welcome/login) 记录和查看页面访问情况,默认不记录 |
+| EXTRAS_AUTH_SUPER_ADMIN_PASS | admin1234 | 系统超级管理员 admin 的初始化密码 |
+| EXTRAS_LOGIN_BANNER | off | 登录页上方展示通知的内容,默认(off)不展示 |
+| EXTRAS_LOGIN_CHATBOX | off | 登录页支持加入一个春松客服网页渠道聊天按钮,比如