(function () { 'use strict'; /* * Copyright 2010-2020 Gildas Lormeau * contact : gildas.lormeau gmail.com * * This file is part of SingleFile. * * The code in this file is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * (GNU AGPL) as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * The code in this file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero * General Public License for more details. * * As additional permission under GNU AGPL version 3 section 7, you may * distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU * AGPL normally required by section 4, provided you include this license * notice and a URL through which recipients can access the Corresponding * Source. */ /* global document, getComputedStyle, FileReader, Image, OffscreenCanvas, createImageBitmap */ const singlefile$1 = globalThis.singlefile; const CLOSE_ICON = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AYht+mSlUqHewg4hChOogFURFHqWIRLJS2QqsOJpf+CE0akhQXR8G14ODPYtXBxVlXB1dBEPwBcXNzUnSREr9LCi1ivOO4h/e+9+XuO0Col5lqdowDqmYZqXhMzOZWxMAruhGiOYohiZl6Ir2Qgef4uoeP73dRnuVd9+foVfImA3wi8SzTDYt4nXh609I57xOHWUlSiM+Jxwy6IPEj12WX3zgXHRZ4ZtjIpOaIw8RisY3lNmYlQyWeIo4oqkb5QtZlhfMWZ7VcZc178hcG89pymuu0BhHHIhJIQoSMKjZQhoUo7RopJlJ0HvPwDzj+JLlkcm2AkWMeFaiQHD/4H/zurVmYnHCTgjGg88W2P4aBwC7QqNn297FtN04A/zNwpbX8lTow80l6raVFjoDQNnBx3dLkPeByB+h/0iVDciQ/LaFQAN7P6JtyQN8t0LPq9q15jtMHIEO9WroBDg6BkSJlr3m8u6u9b//WNPv3A6mTcr3f/E/sAAAABmJLR0QAigCKAIrj2uckAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5QkPDysvCdPVuwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAELSURBVHja7ZpLFsIwDAPj3v/OsGHDe1BIa8tKO7Mnlkw+dpoxAAAAAGCfx4ur6Yx/B337UUS4mp/VuWUEcjSfOgO+BXCZCWe0hSqQo/npBLglIUNLdAV2MH84Ad1JyIwdLkK6YoabIHWscBWmihHuAqvHtv+XqmdXOK9TxdKy3axUm2vZkXXGgPJksTuz1bVFeeU2Y6ijsLIpXbtKa1kDs2ews69o7+A+ihJ2lvI+/lcS1G21zUVG18XKNm4OS4BNkGOQQohSmGaIdpgLESvzyiRwKepsXjE2H0ZWMF8Zi4+jK5mviM0DiRXNZ2rhkdTK5jO0xermz2o8dCnq+FS2XNNVH0sDAAAA3JYnre9cH8BZmhEAAAAASUVORK5CYII="; const SINGLE_FILE_UI_ELEMENT_CLASS$1 = singlefile$1.helper.SINGLE_FILE_UI_ELEMENT_CLASS; const SHARE_PAGE_BAR_TAGNAME = "singlefile-share-page-bar"; let EMBEDDED_IMAGE_BUTTON_MESSAGE$1, SHARE_PAGE_BUTTON_MESSAGE$1, SHARE_SELECTION_BUTTON_MESSAGE$1, ERROR_TITLE_MESSAGE$1; const CSS_PROPERTIES$1 = new Set(Array.from(getComputedStyle(document.documentElement))); function setLabels(labels) { ({ EMBEDDED_IMAGE_BUTTON_MESSAGE: EMBEDDED_IMAGE_BUTTON_MESSAGE$1, SHARE_PAGE_BUTTON_MESSAGE: SHARE_PAGE_BUTTON_MESSAGE$1, SHARE_SELECTION_BUTTON_MESSAGE: SHARE_SELECTION_BUTTON_MESSAGE$1, ERROR_TITLE_MESSAGE: ERROR_TITLE_MESSAGE$1 } = labels); } function getSharePageBar() { let resolvePromise; return { display: async function (selectedContent) { return new Promise(resolve => { resolvePromise = resolve; displayBar(SHARE_PAGE_BAR_TAGNAME, "", { buttonLabel: selectedContent ? SHARE_SELECTION_BUTTON_MESSAGE$1 : SHARE_PAGE_BUTTON_MESSAGE$1, buttonOnclick: resolve }); }); }, hide: function () { const barElement = document.querySelector(SHARE_PAGE_BAR_TAGNAME); if (barElement) { barElement.remove(); } }, cancel: function () { this.hide(); if (resolvePromise) { resolvePromise(true); } } }; } function displayBar(tagName, message, { link, buttonLabel, buttonOnclick } = {}) { try { const barElement = document.querySelector(tagName); if (!barElement) { const barElement = createElement$1(tagName); const shadowRoot = barElement.attachShadow({ mode: "open" }); const styleElement = document.createElement("style"); styleElement.textContent = ` .container { background-color: #ff6c00; color: white; display: flex; position: fixed; top: 0px; left: 0px; right: 0px; height: auto; width: auto; min-height: 24px; min-width: 24px; z-index: 2147483647; margin: 0; padding: 2px; font-family: Arial; } .singlefile-open-file-bar.container, .singlefile-share-page-bar.container { background-color: gainsboro; border-block-end: gray 1px solid; } .text { flex: 1; padding-top: 4px; padding-bottom: 4px; padding-left: 8px; } button { background-color: grey; color: white; border: 1px solid darkgrey; padding: 3px; padding-left: 8px; padding-right: 8px; border-radius: 4px; cursor: pointer; } .close-button { opacity: .7; padding-left: 8px; padding-right: 8px; cursor: pointer; transition: opacity 250ms; height: 16px; font-size: .8rem; align-self: center; } .singlefile-open-file-bar button, .singlefile-share-page-bar button{ background-color: dimgrey; } .singlefile-open-file-bar .close-button, .singlefile-share-page-bar .close-button{ filter: invert(1); } a { color: #303036; } .close-button:hover { opacity: 1; } `; shadowRoot.appendChild(styleElement); const containerElement = document.createElement("div"); containerElement.classList.add(tagName); containerElement.classList.add("container"); const textElement = document.createElement("span"); textElement.classList.add("text"); const content = message.split("__DOC_LINK__"); textElement.textContent = content[0]; if (link && content.length == 2) { const linkElement = document.createElement("a"); linkElement.textContent = link; linkElement.href = link; linkElement.target = "_blank"; textElement.appendChild(linkElement); textElement.appendChild(document.createTextNode(content[1])); } if (buttonLabel && buttonOnclick) { const buttonElement = document.createElement("button"); buttonElement.textContent = buttonLabel; buttonElement.onclick = () => buttonOnclick(); textElement.appendChild(buttonElement); } containerElement.appendChild(textElement); const closeElement = document.createElement("img"); closeElement.classList.add("close-button"); containerElement.appendChild(closeElement); shadowRoot.appendChild(containerElement); closeElement.src = CLOSE_ICON; closeElement.onclick = event => { if (event.button === 0) { if (buttonOnclick) { buttonOnclick(true); } barElement.remove(); } }; document.documentElement.appendChild(barElement); } // eslint-disable-next-line no-unused-vars } catch (error) { // iignored } } function createElement$1(tagName, parentElement) { const element = document.createElement(tagName); element.className = SINGLE_FILE_UI_ELEMENT_CLASS$1; CSS_PROPERTIES$1.forEach(property => element.style.setProperty(property, "initial", "important")); return element; } /* global TextEncoder, TextDecoder */ const TYPE_REFERENCE = 0; const SPECIAL_TYPES = [TYPE_REFERENCE]; const EMPTY_SLOT_VALUE = Symbol(); const textEncoder = new TextEncoder(); const textDecoder = new TextDecoder(); const types = new Array(256); let typeIndex = 0; registerType(serializeCircularReference, parseCircularReference, testCircularReference, TYPE_REFERENCE); registerType(null, parseObject, testObject); registerType(serializeArray, parseArray, testArray); registerType(serializeString, parseString, testString); registerType(serializeTypedArray, parseFloat64Array, testFloat64Array); registerType(serializeTypedArray, parseFloat32Array, testFloat32Array); registerType(serializeTypedArray, parseUint32Array, testUint32Array); registerType(serializeTypedArray, parseInt32Array, testInt32Array); registerType(serializeTypedArray, parseUint16Array, testUint16Array); registerType(serializeTypedArray, parseInt16Array, testInt16Array); registerType(serializeTypedArray, parseUint8ClampedArray, testUint8ClampedArray); registerType(serializeTypedArray, parseUint8Array, testUint8Array); registerType(serializeTypedArray, parseInt8Array, testInt8Array); registerType(serializeArrayBuffer, parseArrayBuffer, testArrayBuffer); registerType(serializeNumber, parseNumber, testNumber); registerType(serializeUint32, parseUint32, testUint32); registerType(serializeInt32, parseInt32, testInt32); registerType(serializeUint16, parseUint16, testUint16); registerType(serializeInt16, parseInt16, testInt16); registerType(serializeUint8, parseUint8, testUint8); registerType(serializeInt8, parseInt8, testInt8); registerType(null, parseUndefined, testUndefined); registerType(null, parseNull, testNull); registerType(null, parseNaN, testNaN); registerType(serializeBoolean, parseBoolean, testBoolean); registerType(serializeSymbol, parseSymbol, testSymbol); registerType(null, parseEmptySlot, testEmptySlot); registerType(serializeMap, parseMap, testMap); registerType(serializeSet, parseSet, testSet); registerType(serializeDate, parseDate, testDate); registerType(serializeError, parseError, testError); registerType(serializeRegExp, parseRegExp, testRegExp); registerType(serializeStringObject, parseStringObject, testStringObject); registerType(serializeNumberObject, parseNumberObject, testNumberObject); registerType(serializeBooleanObject, parseBooleanObject, testBooleanObject); function registerType(serialize, parse, test, type) { if (type === undefined) { typeIndex++; if (types.length - typeIndex >= SPECIAL_TYPES.length) { types[types.length - typeIndex] = { serialize, parse, test }; } else { throw new Error("Reached maximum number of custom types"); } } else { types[type] = { serialize, parse, test }; } } async function serializeValue(data, value) { const type = types.findIndex(({ test } = {}) => test && test(value, data)); data.addObject(value); await data.append(new Uint8Array([type])); const serialize = types[type].serialize; if (serialize) { await serialize(data, value); } if (type != TYPE_REFERENCE && testObject(value)) { await serializeSymbols(data, value); await serializeOwnProperties(data, value); } } async function serializeSymbols(data, value) { const ownPropertySymbols = Object.getOwnPropertySymbols(value); const symbols = ownPropertySymbols.map(propertySymbol => [propertySymbol, value[propertySymbol]]); await serializeArray(data, symbols); } async function serializeOwnProperties(data, value) { if (!ArrayBuffer.isView(value)) { let entries = Object.entries(value); if (testArray(value)) { entries = entries.filter(([key]) => !testInteger(Number(key))); } await serializeValue(data, entries.length); for (const [key, value] of entries) { await serializeString(data, key); await serializeValue(data, value); } } else { await serializeValue(data, 0); } } async function serializeCircularReference(data, value) { const index = data.objects.indexOf(value); await serializeValue(data, index); } async function serializeArray(data, array) { await serializeValue(data, array.length); const notEmptyIndexes = Object.keys(array).filter(key => testInteger(Number(key))).map(key => Number(key)); let indexNotEmptyIndexes = 0, currentNotEmptyIndex = notEmptyIndexes[indexNotEmptyIndexes]; for (const [indexArray, value] of array.entries()) { if (currentNotEmptyIndex == indexArray) { currentNotEmptyIndex = notEmptyIndexes[++indexNotEmptyIndexes]; await serializeValue(data, value); } else { await serializeValue(data, EMPTY_SLOT_VALUE); } } } async function serializeString(data, string) { const encodedString = textEncoder.encode(string); await serializeValue(data, encodedString.length); await data.append(encodedString); } async function serializeTypedArray(data, array) { await serializeValue(data, array.length); await data.append(array.constructor.name == "Uint8Array" ? array : new Uint8Array(array.buffer)); } async function serializeArrayBuffer(data, arrayBuffer) { await serializeValue(data, arrayBuffer.byteLength); await data.append(new Uint8Array(arrayBuffer)); } async function serializeNumber(data, number) { const serializedNumber = new Uint8Array(new Float64Array([number]).buffer); await data.append(serializedNumber); } async function serializeUint32(data, number) { const serializedNumber = new Uint8Array(new Uint32Array([number]).buffer); await data.append(serializedNumber); } async function serializeInt32(data, number) { const serializedNumber = new Uint8Array(new Int32Array([number]).buffer); await data.append(serializedNumber); } async function serializeUint16(data, number) { const serializedNumber = new Uint8Array(new Uint16Array([number]).buffer); await data.append(serializedNumber); } async function serializeInt16(data, number) { const serializedNumber = new Uint8Array(new Int16Array([number]).buffer); await data.append(serializedNumber); } async function serializeUint8(data, number) { const serializedNumber = new Uint8Array([number]); await data.append(serializedNumber); } async function serializeInt8(data, number) { const serializedNumber = new Uint8Array(new Int8Array([number]).buffer); await data.append(serializedNumber); } async function serializeBoolean(data, boolean) { const serializedBoolean = new Uint8Array([Number(boolean)]); await data.append(serializedBoolean); } async function serializeMap(data, map) { const entries = map.entries(); await serializeValue(data, map.size); for (const [key, value] of entries) { await serializeValue(data, key); await serializeValue(data, value); } } async function serializeSet(data, set) { await serializeValue(data, set.size); for (const value of set) { await serializeValue(data, value); } } async function serializeDate(data, date) { await serializeNumber(data, date.getTime()); } async function serializeError(data, error) { await serializeString(data, error.message); await serializeString(data, error.stack); } async function serializeRegExp(data, regExp) { await serializeString(data, regExp.source); await serializeString(data, regExp.flags); } async function serializeStringObject(data, string) { await serializeString(data, string.valueOf()); } async function serializeNumberObject(data, number) { await serializeNumber(data, number.valueOf()); } async function serializeBooleanObject(data, boolean) { await serializeBoolean(data, boolean.valueOf()); } async function serializeSymbol(data, symbol) { await serializeString(data, symbol.description); } class Reference { constructor(index, data) { this.index = index; this.data = data; } getObject() { return this.data.objects[this.index]; } } async function parseValue(data) { const array = await data.consume(1); const parserType = array[0]; const parse = types[parserType].parse; const valueId = data.getObjectId(); const result = await parse(data); if (parserType != TYPE_REFERENCE && testObject(result)) { await parseSymbols(data, result); await parseOwnProperties(data, result); } data.resolveObject(valueId, result); return result; } async function parseSymbols(data, value) { const symbols = await parseArray(data); data.setObject([symbols], symbols => symbols.forEach(([symbol, propertyValue]) => value[symbol] = propertyValue)); } async function parseOwnProperties(data, object) { const size = await parseValue(data); if (size) { await parseNextProperty(); } async function parseNextProperty(indexKey = 0) { const key = await parseString(data); const value = await parseValue(data); data.setObject([value], value => object[key] = value); if (indexKey < size - 1) { await parseNextProperty(indexKey + 1); } } } async function parseCircularReference(data) { const index = await parseValue(data); const result = new Reference(index, data); return result; } function parseObject() { return {}; } async function parseArray(data) { const length = await parseValue(data); const array = new Array(length); if (length) { await parseNextSlot(); } return array; async function parseNextSlot(indexArray = 0) { const value = await parseValue(data); if (!testEmptySlot(value)) { data.setObject([value], value => array[indexArray] = value); } if (indexArray < length - 1) { await parseNextSlot(indexArray + 1); } } } function parseEmptySlot() { return EMPTY_SLOT_VALUE; } async function parseString(data) { const size = await parseValue(data); const array = await data.consume(size); return textDecoder.decode(array); } async function parseFloat64Array(data) { const length = await parseValue(data); const array = await data.consume(length * 8); return new Float64Array(array.buffer); } async function parseFloat32Array(data) { const length = await parseValue(data); const array = await data.consume(length * 4); return new Float32Array(array.buffer); } async function parseUint32Array(data) { const length = await parseValue(data); const array = await data.consume(length * 4); return new Uint32Array(array.buffer); } async function parseInt32Array(data) { const length = await parseValue(data); const array = await data.consume(length * 4); return new Int32Array(array.buffer); } async function parseUint16Array(data) { const length = await parseValue(data); const array = await data.consume(length * 2); return new Uint16Array(array.buffer); } async function parseInt16Array(data) { const length = await parseValue(data); const array = await data.consume(length * 2); return new Int16Array(array.buffer); } async function parseUint8ClampedArray(data) { const length = await parseValue(data); const array = await data.consume(length); return new Uint8ClampedArray(array.buffer); } async function parseUint8Array(data) { const length = await parseValue(data); const array = await data.consume(length); return array; } async function parseInt8Array(data) { const length = await parseValue(data); const array = await data.consume(length); return new Int8Array(array.buffer); } async function parseArrayBuffer(data) { const length = await parseValue(data); const array = await data.consume(length); return array.buffer; } async function parseNumber(data) { const array = await data.consume(8); return new Float64Array(array.buffer)[0]; } async function parseUint32(data) { const array = await data.consume(4); return new Uint32Array(array.buffer)[0]; } async function parseInt32(data) { const array = await data.consume(4); return new Int32Array(array.buffer)[0]; } async function parseUint16(data) { const array = await data.consume(2); return new Uint16Array(array.buffer)[0]; } async function parseInt16(data) { const array = await data.consume(2); return new Int16Array(array.buffer)[0]; } async function parseUint8(data) { const array = await data.consume(1); return new Uint8Array(array.buffer)[0]; } async function parseInt8(data) { const array = await data.consume(1); return new Int8Array(array.buffer)[0]; } function parseUndefined() { return undefined; } function parseNull() { return null; } function parseNaN() { return NaN; } async function parseBoolean(data) { const array = await data.consume(1); return Boolean(array[0]); } async function parseMap(data) { const size = await parseValue(data); const map = new Map(); if (size) { await parseNextEntry(); } return map; async function parseNextEntry(indexKey = 0) { const key = await parseValue(data); const value = await parseValue(data); data.setObject([key, value], (key, value) => map.set(key, value)); if (indexKey < size - 1) { await parseNextEntry(indexKey + 1); } } } async function parseSet(data) { const size = await parseValue(data); const set = new Set(); if (size) { await parseNextEntry(); } return set; async function parseNextEntry(indexKey = 0) { const value = await parseValue(data); data.setObject([value], value => set.add(value)); if (indexKey < size - 1) { await parseNextEntry(indexKey + 1); } } } async function parseDate(data) { const milliseconds = await parseNumber(data); return new Date(milliseconds); } async function parseError(data) { const message = await parseString(data); const stack = await parseString(data); const error = new Error(message); error.stack = stack; return error; } async function parseRegExp(data) { const source = await parseString(data); const flags = await parseString(data); return new RegExp(source, flags); } async function parseStringObject(data) { return new String(await parseString(data)); } async function parseNumberObject(data) { return new Number(await parseNumber(data)); } async function parseBooleanObject(data) { return new Boolean(await parseBoolean(data)); } async function parseSymbol(data) { const description = await parseString(data); return Symbol(description); } function testCircularReference(value, data) { return testObject(value) && data.objects.includes(value); } function testObject(value) { return value === Object(value); } function testArray(value) { return typeof value.length == "number"; } function testEmptySlot(value) { return value === EMPTY_SLOT_VALUE; } function testString(value) { return typeof value == "string"; } function testFloat64Array(value) { return value.constructor.name == "Float64Array"; } function testUint32Array(value) { return value.constructor.name == "Uint32Array"; } function testInt32Array(value) { return value.constructor.name == "Int32Array"; } function testUint16Array(value) { return value.constructor.name == "Uint16Array"; } function testFloat32Array(value) { return value.constructor.name == "Float32Array"; } function testInt16Array(value) { return value.constructor.name == "Int16Array"; } function testUint8ClampedArray(value) { return value.constructor.name == "Uint8ClampedArray"; } function testUint8Array(value) { return value.constructor.name == "Uint8Array"; } function testInt8Array(value) { return value.constructor.name == "Int8Array"; } function testArrayBuffer(value) { return value.constructor.name == "ArrayBuffer"; } function testNumber(value) { return typeof value == "number"; } function testUint32(value) { return testInteger(value) && value >= 0 && value <= 4294967295; } function testInt32(value) { return testInteger(value) && value >= -2147483648 && value <= 2147483647; } function testUint16(value) { return testInteger(value) && value >= 0 && value <= 65535; } function testInt16(value) { return testInteger(value) && value >= -32768 && value <= 32767; } function testUint8(value) { return testInteger(value) && value >= 0 && value <= 255; } function testInt8(value) { return testInteger(value) && value >= -128 && value <= 127; } function testInteger(value) { return testNumber(value) && Number.isInteger(value); } function testUndefined(value) { return value === undefined; } function testNull(value) { return value === null; } function testNaN(value) { return Number.isNaN(value); } function testBoolean(value) { return typeof value == "boolean"; } function testMap(value) { return value instanceof Map; } function testSet(value) { return value instanceof Set; } function testDate(value) { return value instanceof Date; } function testError(value) { return value instanceof Error; } function testRegExp(value) { return value instanceof RegExp; } function testStringObject(value) { return value instanceof String; } function testNumberObject(value) { return value instanceof Number; } function testBooleanObject(value) { return value instanceof Boolean; } function testSymbol(value) { return typeof value == "symbol"; } /* * Copyright 2010-2020 Gildas Lormeau * contact : gildas.lormeau gmail.com * * This file is part of SingleFile. * * The code in this file is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * (GNU AGPL) as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * The code in this file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero * General Public License for more details. * * As additional permission under GNU AGPL version 3 section 7, you may * distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU * AGPL normally required by section 4, provided you include this license * notice and a URL through which recipients can access the Corresponding * Source. */ /* global browser, document, prompt, getComputedStyle, addEventListener, removeEventListener, requestAnimationFrame, setTimeout, getSelection, Node, URL */ const singlefile = globalThis.singlefile; singlefile.helper.SELECTED_CONTENT_ATTRIBUTE_NAME; const LOGS_WINDOW_TAGNAME = "singlefile-logs-window"; const LOGS_CLASSNAME = "singlefile-logs"; const LOGS_LINE_CLASSNAME = "singlefile-logs-line"; const LOGS_LINE_TEXT_ELEMENT_CLASSNAME = "singlefile-logs-line-text"; const LOGS_LINE_STATUS_ELEMENT_CLASSNAME = "singlefile-logs-line-icon"; const SINGLE_FILE_UI_ELEMENT_CLASS = singlefile.helper.SINGLE_FILE_UI_ELEMENT_CLASS; const CSS_PROPERTIES = new Set(Array.from(getComputedStyle(document.documentElement))); let LOG_PANEL_WIDTH, LOG_PANEL_DEFERRED_IMAGES_MESSAGE, LOG_PANEL_FRAME_CONTENTS_MESSAGE, LOG_PANEL_EMBEDDED_IMAGE_MESSAGE, LOG_PANEL_STEP_MESSAGE; try { LOG_PANEL_WIDTH = browser.i18n.getMessage("logPanelWidth"); LOG_PANEL_DEFERRED_IMAGES_MESSAGE = browser.i18n.getMessage("logPanelDeferredImages"); LOG_PANEL_FRAME_CONTENTS_MESSAGE = browser.i18n.getMessage("logPanelFrameContents"); LOG_PANEL_EMBEDDED_IMAGE_MESSAGE = browser.i18n.getMessage("logPanelEmbeddedImage"); LOG_PANEL_STEP_MESSAGE = browser.i18n.getMessage("logPanelStep"); // eslint-disable-next-line no-unused-vars } catch (error) { // ignored } let logsWindowElement; createLogsWindowElement(); function promptMessage(message, defaultValue) { return prompt(message, defaultValue); } function createLogsWindowElement() { try { logsWindowElement = document.querySelector(LOGS_WINDOW_TAGNAME); if (!logsWindowElement) { logsWindowElement = createElement(LOGS_WINDOW_TAGNAME); const shadowRoot = logsWindowElement.attachShadow({ mode: "open" }); const styleElement = document.createElement("style"); styleElement.textContent = ` @keyframes single-file-pulse { 0% { opacity: .25; } 100% { opacity: 1; } } .${LOGS_CLASSNAME} { position: fixed; bottom: 24px; left: 8px; z-index: 2147483647; opacity: 0.9; padding: 4px; background-color: white; min-width: ${LOG_PANEL_WIDTH}px; min-height: 16px; transition: height 100ms; } .${LOGS_LINE_CLASSNAME} { display: flex; justify-content: space-between; padding: 2px; font-family: arial, sans-serif; color: black; background-color: white; } .${LOGS_LINE_TEXT_ELEMENT_CLASSNAME} { font-size: 13px; opacity: 1; transition: opacity 200ms; } .${LOGS_LINE_STATUS_ELEMENT_CLASSNAME} { font-size: 11px; min-width: 15px; text-align: center; position: relative; top: 1px; } `; shadowRoot.appendChild(styleElement); const logsContentElement = document.createElement("div"); logsContentElement.classList.add(LOGS_CLASSNAME); shadowRoot.appendChild(logsContentElement); } // eslint-disable-next-line no-unused-vars } catch (error) { // ignored } } function createElement(tagName, parentElement) { const element = document.createElement(tagName); element.className = SINGLE_FILE_UI_ELEMENT_CLASS; CSS_PROPERTIES.forEach(property => element.style.setProperty(property, "initial", "important")); return element; } /* * Copyright 2010-2020 Gildas Lormeau * contact : gildas.lormeau gmail.com * * This file is part of SingleFile. * * The code in this file is free software: you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * (GNU AGPL) as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * The code in this file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero * General Public License for more details. * * As additional permission under GNU AGPL version 3 section 7, you may * distribute UNMODIFIED VERSIONS OF THIS file without the copy of the GNU * AGPL normally required by section 4, provided you include this license * notice and a URL through which recipients can access the Corresponding * Source. */ let EMBEDDED_IMAGE_BUTTON_MESSAGE, SHARE_PAGE_BUTTON_MESSAGE, SHARE_SELECTION_BUTTON_MESSAGE, ERROR_TITLE_MESSAGE; try { EMBEDDED_IMAGE_BUTTON_MESSAGE = browser.i18n.getMessage("topPanelEmbeddedImageButton"); SHARE_PAGE_BUTTON_MESSAGE = browser.i18n.getMessage("topPanelSharePageButton"); SHARE_SELECTION_BUTTON_MESSAGE = browser.i18n.getMessage("topPanelShareSelectionButton"); ERROR_TITLE_MESSAGE = browser.i18n.getMessage("topPanelError"); // eslint-disable-next-line no-unused-vars } catch (error) { // ignored } let sharePageBar; setLabels({ EMBEDDED_IMAGE_BUTTON_MESSAGE, SHARE_PAGE_BUTTON_MESSAGE, SHARE_SELECTION_BUTTON_MESSAGE, ERROR_TITLE_MESSAGE }); async function downloadPageForeground(pageData, options) { if (Array.isArray(pageData.content)) { pageData.content = new Uint8Array(pageData.content); } if (options.sharePage && navigator.share) { await sharePage(pageData, options); } else { let filename = pageData.filename; if (options.confirmFilename) { filename = promptMessage("Save as", pageData.filename); if (filename) { pageData.filename = filename; } else { browser.runtime.sendMessage({ method: "downloads.cancel" }); browser.runtime.sendMessage({ method: "ui.processCancelled" }); } } if (filename) { const link = document.createElement("a"); link.download = pageData.filename; link.href = URL.createObjectURL(new Blob([pageData.content], { type: pageData.mimeType })); link.dispatchEvent(new MouseEvent("click")); return new Promise(resolve => setTimeout(() => { URL.revokeObjectURL(link.href); resolve(); }, 1000)); } } } async function sharePage(pageData, options) { sharePageBar = getSharePageBar(); const cancelled = await sharePageBar.display(options.selected); if (!cancelled) { const data = { files: [new File([pageData.content], pageData.filename, { type: pageData.mimeType })] }; try { await navigator.share(data); sharePageBar.hide(); } catch (error) { sharePageBar.hide(); if (error.name === "AbortError") { await sharePage(pageData, options); } else { throw error; } } } } /* global URL, TextDecoder, TextEncoder, btoa, atob */ const EVENT_HANDLER_ATTRIBUTES = [ "onafterprint", "onbeforeprint", "onbeforeunload", "onhashchange", "onlanguagechange", "onmessage", "onmessageerror", "onoffline", "ononline", "onpagehide", "onpageshow", "onpopstate", "onrejectionhandled", "onstorage", "onunhandledrejection", "onunload", "ongamepadconnected", "ongamepaddisconnected", "onabort", "onblur", "onfocus", "oncancel", "onauxclick", "onbeforeinput", "onbeforetoggle", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncontentvisibilityautostatechange", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncopy", "oncuechange", "oncut", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onformdata", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onwheel", "onpaste", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreset", "onresize", "onscroll", "onscrollend", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onslotchange", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "onvolumechange", "onwaiting", "onselectstart", "onselectionchange", "ontoggle", "onpointercancel", "onpointerdown", "onpointerup", "onpointermove", "onpointerout", "onpointerover", "onpointerenter", "onpointerleave", "ongotpointercapture", "onlostpointercapture", "onanimationcancel", "onanimationend", "onanimationiteration", "onanimationstart", "ontransitioncancel", "ontransitionend", "ontransitionrun", "ontransitionstart", "onerror", "onfullscreenchange", "onfullscreenerror" ]; function decodeQuotedPrintable(array) { const result = []; for (let i = 0; i < array.length; i++) { if (array[i] === 0x3D) { if (isHex(array[i + 1]) && isHex(array[i + 2])) { const hex = parseInt(String.fromCharCode(array[i + 1], array[i + 2]), 16); result.push(hex); i += 2; } else { result.push(array[i]); } } else { result.push(array[i]); } } return new Uint8Array(result); function isHex(value) { return value >= 0x30 && value <= 0x39 || value >= 0x41 && value <= 0x46; } } function decodeBinary(array) { let data = ""; for (let indexData = 0; indexData < array.length; indexData++) { data += String.fromCharCode(array[indexData]); } return btoa(data); } function decodeBase64(value, charset) { const decodedData = new Uint8Array(atob(value).split("").map(char => char.charCodeAt(0))); return new TextDecoder(charset).decode(decodedData); } function decodeMimeHeader(encodedSubject) { if (encodedSubject && encodedSubject.startsWith("=?") && encodedSubject.endsWith("?=")) { const encodedSubjectParts = []; let index = 0; while (index < encodedSubject.length) { const start = encodedSubject.indexOf("=?", index); if (start === -1) { break; } const endCharset = encodedSubject.indexOf("?", start + 2); if (endCharset === -1) { break; } const charset = encodedSubject.substring(start + 2, endCharset); const endEncoding = encodedSubject.indexOf("?", endCharset + 1); if (endEncoding === -1) { break; } const encoding = encodedSubject.substring(endCharset + 1, endEncoding); const endValue = encodedSubject.indexOf("?=", endEncoding + 1); if (endValue === -1) { break; } const value = encodedSubject.substring(endEncoding + 1, endValue); index = endValue + 2; if (encoding === "Q") { encodedSubjectParts.push(new TextDecoder(charset).decode(decodeQuotedPrintable(new TextEncoder().encode(value)))); } else if (encoding === "B") { encodedSubjectParts.push(decodeBase64(value, charset)); } } encodedSubject = encodedSubjectParts.join(""); } return encodedSubject || ""; } function parseDOM(asset, contentType = "text/html", DOMParser = globalThis.DOMParser) { let document; try { document = new DOMParser().parseFromString(asset, contentType); // eslint-disable-next-line no-unused-vars } catch (_) { document = new DOMParser().parseFromString(asset, "text/html"); } return { document, serialize() { let result = ""; if (this.document.doctype) { result += serializeDocType(this.document.doctype) + "\n"; } result += this.document.documentElement.outerHTML; return result; } }; } function serializeDocType(doctype) { return ``; } function decodeString(array, charset) { return new TextDecoder(charset).decode(array); } function encodeString(string, charset) { return new TextEncoder(charset).encode(string); } function getCharset(contentType) { const charsetMatch = contentType.match(/charset=([^;]+)/); if (charsetMatch) { return removeQuotes(charsetMatch[1]).toLowerCase(); } } function removeQuotes(value) { return value.replace(/^"(.*)"$/, "$1").replace(/^'(.*)'$/, "$1").trim(); } function replaceCharset(contentType, charset) { return contentType.replace(/charset=([^;]+)/, `charset=${charset}`); } function isDocument(contentType) { return contentType.startsWith("text/html") || contentType.startsWith("application/xhtml+xml"); } function isStylesheet(contentType) { return contentType.startsWith("text/css"); } function isText(contentType) { return contentType.startsWith("text/"); } function isMultipartAlternative(contentType) { return contentType.startsWith("multipart/alternative"); } function getBoundary(contentType) { const contentTypeParams = contentType.split(";"); contentTypeParams.shift(); const boundaryParam = contentTypeParams.find(param => param.startsWith("boundary=")); if (boundaryParam) { return removeQuotes(boundaryParam.substring(9)); } } function indexOf(array, string) { const stringBytes = new TextEncoder().encode(string); for (let i = 0; i < array.length; i++) { if (array[i] === stringBytes[0]) { let match = true; for (let j = 1; j < stringBytes.length; j++) { if (array[i + j] !== stringBytes[j]) { match = false; break; } } if (match) { // return index return i; } } } return -1; } function isLineFeed(array) { return array.length == 2 ? array[0] == 0x0D && array[1] == 0x0A : array.length == 1 ? array[0] == 0x0A : false; } function endsWithCRLF(array) { return array.length >= 2 ? array[array.length - 2] == 0x0D && array[array.length - 1] == 0x0A : array.length >= 1 ? array[array.length - 1] == 0x0D : false; } function endsWithLF(array) { return array.length >= 1 ? array[array.length - 1] == 0x0A : false; } function startsWithBoundary(array) { return array.length >= 2 ? array[0] == 0x2D && array[1] == 0x2D : false; } function getResourceURI({ contentType, transferEncoding, data }) { return `data:${contentType};${"base64"},${transferEncoding === "base64" ? data : btoa(unescape(encodeURIComponent(data)))}`; } function resolvePath(path, base) { if (base && !path.startsWith("data:")) { try { return new URL(path, base).href; // eslint-disable-next-line no-unused-vars } catch (_) { if (path.startsWith("//")) { const protocol = base.match(/^[^:]+/); if (protocol) { return `${protocol[0]}:${path}`; } else { return path; } } else { return path; } } } else { return path; } } // dist/csstree.esm.js from https://github.com/csstree/csstree/tree/b3fe3e026ce131aa559427162451a60792589730 /* * Copyright (C) 2016-2024 by Roman Dvornov * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ var Ra=Object.create;var or=Object.defineProperty;var Fa=Object.getOwnPropertyDescriptor;var Ma=Object.getOwnPropertyNames;var Ba=Object.getPrototypeOf,_a=Object.prototype.hasOwnProperty;var Me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),f=(e,t)=>{for(var r in t)or(e,r,{get:t[r],enumerable:true});},Wa=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ma(t))!_a.call(e,i)&&i!==r&&or(e,i,{get:()=>t[i],enumerable:!(n=Fa(t,i))||n.enumerable});return e};var qa=(e,t,r)=>(r=e!=null?Ra(Ba(e)):{},Wa(or(r,"default",{value:e,enumerable:true}),e));var So=Me(fr=>{var vo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");fr.encode=function(e){if(0<=e&&e{var Co=So(),gr=5,To=1<>1;return t?-r:r}br.encode=function(t){var r="",n,i=Za(t);do n=i&Ao,i>>>=gr,i>0&&(n|=Lo),r+=Co.encode(n);while(i>0);return r};br.decode=function(t,r,n){var i=t.length,o=0,s=0,u,c;do{if(r>=i)throw new Error("Expected more digits in base 64 VLQ value.");if(c=Co.decode(t.charCodeAt(r++)),c===-1)throw new Error("Invalid base64 digit: "+t.charAt(r-1));u=!!(c&Lo),c&=Ao,o=o+(c<{function el(e,t,r){if(t in e)return e[t];if(arguments.length===3)return r;throw new Error('"'+t+'" is a required argument.')}W.getArg=el;var zo=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,tl=/^data:.+\,.+$/;function lt(e){var t=e.match(zo);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}W.urlParse=lt;function Ge(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}W.urlGenerate=Ge;var rl=32;function nl(e){var t=[];return function(r){for(var n=0;nrl&&t.pop(),o}}var xr=nl(function(t){var r=t,n=lt(t);if(n){if(!n.path)return t;r=n.path;}for(var i=W.isAbsolute(r),o=[],s=0,u=0;;)if(s=u,u=r.indexOf("/",s),u===-1){o.push(r.slice(s));break}else for(o.push(r.slice(s,u));u=0;u--)c=o[u],c==="."?o.splice(u,1):c===".."?a++:a>0&&(c===""?(o.splice(u+1,a),a=0):(o.splice(u,2),a--));return r=o.join("/"),r===""&&(r=i?"/":"."),n?(n.path=r,Ge(n)):r});W.normalize=xr;function Po(e,t){e===""&&(e="."),t===""&&(t=".");var r=lt(t),n=lt(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),Ge(r);if(r||t.match(tl))return t;if(n&&!n.host&&!n.path)return n.host=t,Ge(n);var i=t.charAt(0)==="/"?t:xr(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=i,Ge(n)):i}W.join=Po;W.isAbsolute=function(e){return e.charAt(0)==="/"||zo.test(e)};function il(e,t){e===""&&(e="."),e=e.replace(/\/$/,"");for(var r=0;t.indexOf(e+"/")!==0;){var n=e.lastIndexOf("/");if(n<0||(e=e.slice(0,n),e.match(/^([^\/]+:\/)?\/*$/)))return t;++r;}return Array(r+1).join("../")+t.substr(e.length+1)}W.relative=il;var Io=function(){var e=Object.create(null);return !("__proto__"in e)}();function Do(e){return e}function ol(e){return No(e)?"$"+e:e}W.toSetString=Io?Do:ol;function sl(e){return No(e)?e.slice(1):e}W.fromSetString=Io?Do:sl;function No(e){if(!e)return false;var t=e.length;if(t<9||e.charCodeAt(t-1)!==95||e.charCodeAt(t-2)!==95||e.charCodeAt(t-3)!==111||e.charCodeAt(t-4)!==116||e.charCodeAt(t-5)!==111||e.charCodeAt(t-6)!==114||e.charCodeAt(t-7)!==112||e.charCodeAt(t-8)!==95||e.charCodeAt(t-9)!==95)return false;for(var r=t-10;r>=0;r--)if(e.charCodeAt(r)!==36)return false;return true}function al(e,t,r){var n=ke(e.source,t.source);return n!==0||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:ke(e.name,t.name)}W.compareByOriginalPositions=al;function ll(e,t,r){var n;return n=e.originalLine-t.originalLine,n!==0||(n=e.originalColumn-t.originalColumn,n!==0||r)||(n=e.generatedColumn-t.generatedColumn,n!==0)||(n=e.generatedLine-t.generatedLine,n!==0)?n:ke(e.name,t.name)}W.compareByOriginalPositionsNoSource=ll;function cl(e,t,r){var n=e.generatedLine-t.generatedLine;return n!==0||(n=e.generatedColumn-t.generatedColumn,n!==0||r)||(n=ke(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:ke(e.name,t.name)}W.compareByGeneratedPositionsDeflated=cl;function ul(e,t,r){var n=e.generatedColumn-t.generatedColumn;return n!==0||r||(n=ke(e.source,t.source),n!==0)||(n=e.originalLine-t.originalLine,n!==0)||(n=e.originalColumn-t.originalColumn,n!==0)?n:ke(e.name,t.name)}W.compareByGeneratedPositionsDeflatedNoLine=ul;function ke(e,t){return e===t?0:e===null?1:t===null?-1:e>t?1:-1}function pl(e,t){var r=e.generatedLine-t.generatedLine;return r!==0||(r=e.generatedColumn-t.generatedColumn,r!==0)||(r=ke(e.source,t.source),r!==0)||(r=e.originalLine-t.originalLine,r!==0)||(r=e.originalColumn-t.originalColumn,r!==0)?r:ke(e.name,t.name)}W.compareByGeneratedPositionsInflated=pl;function hl(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}W.parseSourceMapInput=hl;function ml(e,t,r){if(t=t||"",e&&(e[e.length-1]!=="/"&&t[0]!=="/"&&(e+="/"),t=e+t),r){var n=lt(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var i=n.path.lastIndexOf("/");i>=0&&(n.path=n.path.substring(0,i+1));}t=Po(Ge(n),t);}return xr(t)}W.computeSourceURL=ml;});var Ro=Me(Oo=>{var yr=Rt(),kr=Object.prototype.hasOwnProperty,Ne=typeof Map<"u";function we(){this._array=[],this._set=Ne?new Map:Object.create(null);}we.fromArray=function(t,r){for(var n=new we,i=0,o=t.length;i=0)return r}else {var n=yr.toSetString(t);if(kr.call(this._set,n))return this._set[n]}throw new Error('"'+t+'" is not in the set.')};we.prototype.at=function(t){if(t>=0&&t{var Fo=Rt();function dl(e,t){var r=e.generatedLine,n=t.generatedLine,i=e.generatedColumn,o=t.generatedColumn;return n>r||n==r&&o>=i||Fo.compareByGeneratedPositionsInflated(e,t)<=0}function Ft(){this._array=[],this._sorted=true,this._last={generatedLine:-1,generatedColumn:0};}Ft.prototype.unsortedForEach=function(t,r){this._array.forEach(t,r);};Ft.prototype.add=function(t){dl(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=false,this._array.push(t));};Ft.prototype.toArray=function(){return this._sorted||(this._array.sort(Fo.compareByGeneratedPositionsInflated),this._sorted=true),this._array};Mo.MappingList=Ft;});var Wo=Me(_o=>{var ct=Eo(),F=Rt(),Mt=Ro().ArraySet,fl=Bo().MappingList;function ne(e){e||(e={}),this._file=F.getArg(e,"file",null),this._sourceRoot=F.getArg(e,"sourceRoot",null),this._skipValidation=F.getArg(e,"skipValidation",false),this._sources=new Mt,this._names=new Mt,this._mappings=new fl,this._sourcesContents=null;}ne.prototype._version=3;ne.fromSourceMap=function(t){var r=t.sourceRoot,n=new ne({file:t.file,sourceRoot:r});return t.eachMapping(function(i){var o={generated:{line:i.generatedLine,column:i.generatedColumn}};i.source!=null&&(o.source=i.source,r!=null&&(o.source=F.relative(r,o.source)),o.original={line:i.originalLine,column:i.originalColumn},i.name!=null&&(o.name=i.name)),n.addMapping(o);}),t.sources.forEach(function(i){var o=i;r!==null&&(o=F.relative(r,i)),n._sources.has(o)||n._sources.add(o);var s=t.sourceContentFor(i);s!=null&&n.setSourceContent(i,s);}),n};ne.prototype.addMapping=function(t){var r=F.getArg(t,"generated"),n=F.getArg(t,"original",null),i=F.getArg(t,"source",null),o=F.getArg(t,"name",null);this._skipValidation||this._validateMapping(r,n,i,o),i!=null&&(i=String(i),this._sources.has(i)||this._sources.add(i)),o!=null&&(o=String(o),this._names.has(o)||this._names.add(o)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:i,name:o});};ne.prototype.setSourceContent=function(t,r){var n=t;this._sourceRoot!=null&&(n=F.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[F.toSetString(n)]=r):this._sourcesContents&&(delete this._sourcesContents[F.toSetString(n)],Object.keys(this._sourcesContents).length===0&&(this._sourcesContents=null));};ne.prototype.applySourceMap=function(t,r,n){var i=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map's "file" property. Both were omitted.`);i=t.file;}var o=this._sourceRoot;o!=null&&(i=F.relative(o,i));var s=new Mt,u=new Mt;this._mappings.unsortedForEach(function(c){if(c.source===i&&c.originalLine!=null){var a=t.originalPositionFor({line:c.originalLine,column:c.originalColumn});a.source!=null&&(c.source=a.source,n!=null&&(c.source=F.join(n,c.source)),o!=null&&(c.source=F.relative(o,c.source)),c.originalLine=a.line,c.originalColumn=a.column,a.name!=null&&(c.name=a.name));}var l=c.source;l!=null&&!s.has(l)&&s.add(l);var p=c.name;p!=null&&!u.has(p)&&u.add(p);},this),this._sources=s,this._names=u,t.sources.forEach(function(c){var a=t.sourceContentFor(c);a!=null&&(n!=null&&(c=F.join(n,c)),o!=null&&(c=F.relative(o,c)),this.setSourceContent(c,a));},this);};ne.prototype._validateMapping=function(t,r,n,i){if(r&&typeof r.line!="number"&&typeof r.column!="number")throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(t&&"line"in t&&"column"in t&&t.line>0&&t.column>=0&&!r&&!n&&!i)){if(t&&"line"in t&&"column"in t&&r&&"line"in r&&"column"in r&&t.line>0&&t.column>=0&&r.line>0&&r.column>=0&&n)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:t,source:n,original:r,name:i}))}};ne.prototype._serializeMappings=function(){for(var t=0,r=1,n=0,i=0,o=0,s=0,u="",c,a,l,p,h=this._mappings.toArray(),d=0,g=h.length;d0){if(!F.compareByGeneratedPositionsInflated(a,h[d-1]))continue;c+=",";}c+=ct.encode(a.generatedColumn-t),t=a.generatedColumn,a.source!=null&&(p=this._sources.indexOf(a.source),c+=ct.encode(p-s),s=p,c+=ct.encode(a.originalLine-1-i),i=a.originalLine-1,c+=ct.encode(a.originalColumn-n),n=a.originalColumn,a.name!=null&&(l=this._names.indexOf(a.name),c+=ct.encode(l-o),o=l)),u+=c;}return u};ne.prototype._generateSourcesContent=function(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&&(n=F.relative(r,n));var i=F.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,i)?this._sourcesContents[i]:null},this)};ne.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&&(t.file=this._file),this._sourceRoot!=null&&(t.sourceRoot=this._sourceRoot),this._sourcesContents&&(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};ne.prototype.toString=function(){return JSON.stringify(this.toJSON())};_o.SourceMapGenerator=ne;});var sr={};f(sr,{AtKeyword:()=>D,BadString:()=>Be,BadUrl:()=>H,CDC:()=>G,CDO:()=>ze,Colon:()=>B,Comma:()=>Y,Comment:()=>N,Delim:()=>v,Dimension:()=>k,EOF:()=>be,Function:()=>y,Hash:()=>A,Ident:()=>m,LeftCurlyBracket:()=>R,LeftParenthesis:()=>S,LeftSquareBracket:()=>X,Number:()=>b,Percentage:()=>P,RightCurlyBracket:()=>$,RightParenthesis:()=>x,RightSquareBracket:()=>Z,Semicolon:()=>_,String:()=>te,Url:()=>M,WhiteSpace:()=>L});var be=0,m=1,y=2,D=3,A=4,te=5,Be=6,M=7,H=8,v=9,b=10,P=11,k=12,L=13,ze=14,G=15,B=16,_=17,Y=18,X=19,Z=20,S=21,x=22,R=23,$=24,N=25;function O(e){return e>=48&&e<=57}function J(e){return O(e)||e>=65&&e<=70||e>=97&&e<=102}function Lt(e){return e>=65&&e<=90}function ja(e){return e>=97&&e<=122}function Ua(e){return Lt(e)||ja(e)}function Ha(e){return e>=128}function At(e){return Ua(e)||Ha(e)||e===95}function _e(e){return At(e)||O(e)||e===45}function Ga(e){return e>=0&&e<=8||e===11||e>=14&&e<=31||e===127}function tt(e){return e===10||e===13||e===12}function me(e){return tt(e)||e===32||e===9}function K(e,t){return !(e!==92||tt(t)||t===0)}function We(e,t,r){return e===45?At(t)||t===45||K(t,r):At(e)?true:e===92?K(e,t):false}function Et(e,t,r){return e===43||e===45?O(t)?2:t===46&&O(r)?3:0:e===46?O(t)?2:0:O(e)?1:0}function zt(e){return e===65279||e===65534?1:0}var ar=new Array(128),Ya=128,rt=130,lr=131,Pt=132,cr=133;for(let e=0;ee.length)return false;for(let i=t;i=0&&me(e.charCodeAt(t));t--);return t+1}function nt(e,t){for(;t=55296&&t<=57343||t>1114111)&&(t=65533),String.fromCodePoint(t)}var Ie=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token","comment-token"];function Ue(e=null,t){return e===null||e.length0?zt(t.charCodeAt(0)):0,i=Ue(e.lines,r),o=Ue(e.columns,r),s=e.startLine,u=e.startColumn;for(let c=n;cr?r:e}var st=class{constructor(t,r){this.setSource(t,r);}reset(){this.eof=false,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset;}setSource(t="",r=()=>{}){t=String(t||"");let n=t.length,i=Ue(this.offsetAndType,t.length+1),o=Ue(this.balance,t.length+1),s=0,u=-1,c=0,a=t.length;this.offsetAndType=null,this.balance=null,o.fill(0),r(t,(l,p,h)=>{let d=s++;if(i[d]=l<>le];}else this.isBlockOpenerTokenType(l)&&(a=d,c=Se[l]);}),i[s]=0<s&&(o[l]=s);}this.source=t,this.firstCharOffset=u===-1?0:u,this.tokenCount=s,this.offsetAndType=i,this.balance=o,this.reset(),this.next();}lookupType(t){return t+=this.tokenIndex,t>le:0}lookupTypeNonSC(t){for(let r=this.tokenIndex;r>le;if(n!==13&&n!==25&&t--===0)return n}return 0}lookupOffset(t){return t+=this.tokenIndex,t>le;if(n!==13&&n!==25&&t--===0)return r-this.tokenIndex}return 0}lookupValue(t,r){return t+=this.tokenIndex,t0?t>le}substrToCursor(t){return this.source.substring(t,this.tokenStart)}isBlockOpenerTokenType(t){return ce[t]===at}isBlockCloserTokenType(t){return ce[t]===Ot}getBlockTokenPairIndex(t){let r=this.getTokenType(t);if(ce[r]===1){let n=this.balance[t],i=this.getTokenType(n);return Se[r]===i?n:-1}else if(ce[r]===2){let n=this.balance[t],i=this.getTokenType(n);return Se[i]===r?n:-1}return -1}isBalanceEdge(t){return this.balance[this.tokenIndex]>le,this.tokenEnd=r&ae):(this.tokenIndex=this.tokenCount,this.next());}next(){let t=this.tokenIndex+1;t>le,this.tokenEnd=t&ae):(this.eof=true,this.tokenIndex=this.tokenCount,this.tokenType=0,this.tokenStart=this.tokenEnd=this.source.length);}skipSC(){for(;this.tokenType===13||this.tokenType===25;)this.next();}skipUntilBalanced(t,r){let n=t,i=0,o=0;e:for(;n0?this.offsetAndType[n-1]&ae:this.firstCharOffset,r(this.source.charCodeAt(o))){case 1:break e;case 2:n++;break e;default:this.isBlockOpenerTokenType(this.offsetAndType[n]>>le)&&(n=i);}}this.skip(n-this.tokenIndex);}forEachToken(t){for(let r=0,n=this.firstCharOffset;r>le;n=s,t(u,i,s,r);}}dump(){let t=new Array(this.tokenCount);return this.forEachToken((r,n,i,o)=>{t[o]={idx:o,type:Ie[r],chunk:this.source.substring(n,i),balance:this.balance[o]};}),t}};function Ce(e,t){function r(p){return p=e.length){aString(g+w+1).padStart(h)+" |"+j).join(` `)}let u=` `.repeat(Math.max(n-1,0)),c=" ".repeat(Math.max(i-1,0)),a=(u+c+e).split(/\r\n?|\n|\f/),l=Math.max(1,t-o)-1,p=Math.min(t+o,a.length+1),h=Math.max(4,String(p).length)+1,d=0;r+=(fo.length-1)*(a[t-1].substr(0,r-1).match(/\t/g)||[]).length,r>pr&&(d=r-mo+3,r=mo-2);for(let g=l;g<=p;g++)g>=0&&g0&&a[g].length>d?"\u2026":"")+a[g].substr(d,pr-2)+(a[g].length>d+pr-1?"\u2026":""));return [s(l,t),new Array(r+h+2).join("-")+"^",s(t,p)].filter(Boolean).join(` `).replace(/^(\s+\d+\s+\|\n)+/,"").replace(/\n(\s+\d+\s+\|)+$/,"")}function hr(e,t,r,n,i,o=1,s=1){return Object.assign(De("SyntaxError",e),{source:t,offset:r,line:n,column:i,sourceFragment(c){return go({source:t,line:n,column:i,baseLine:o,baseColumn:s},isNaN(c)?0:c)},get formattedMessage(){return `Parse error: ${e} `+go({source:t,line:n,column:i,baseLine:o,baseColumn:s},2)}})}function bo(e){let t=this.createList(),r=false,n={recognizer:e};for(;!this.eof;){switch(this.tokenType){case 25:this.next();continue;case 13:r=true,this.next();continue}let i=e.getNode.call(this,n);if(i===void 0)break;r&&(e.onWhiteSpace&&e.onWhiteSpace.call(this,i,t,n),r=false),t.push(i);}return r&&e.onWhiteSpace&&e.onWhiteSpace.call(this,null,t,n),t}var xo=()=>{},Va=33,Qa=35,mr=59,yo=123,ko=0;function Xa(e){return function(){return this[e]()}}function dr(e){let t=Object.create(null);for(let r of Object.keys(e)){let n=e[r],i=n.parse||n;i&&(t[r]=i);}return t}function $a(e){let t={context:Object.create(null),features:Object.assign(Object.create(null),e.features),scope:Object.assign(Object.create(null),e.scope),atrule:dr(e.atrule),pseudo:dr(e.pseudo),node:dr(e.node)};for(let[r,n]of Object.entries(e.parseContext))switch(typeof n){case "function":t.context[r]=n;break;case "string":t.context[r]=Xa(n);break}return {config:t,...t,...t.node}}function wo(e){let t="",r="",n=false,i=xo,o=false,s=new ot,u=Object.assign(new st,$a(e||{}),{parseAtrulePrelude:true,parseRulePrelude:true,parseValue:true,parseCustomProperty:false,readSequence:bo,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket(l){return l===yo?1:0},consumeUntilLeftCurlyBracketOrSemicolon(l){return l===yo||l===mr?1:0},consumeUntilExclamationMarkOrSemicolon(l){return l===Va||l===mr?1:0},consumeUntilSemicolonIncluded(l){return l===mr?2:0},createList(){return new V},createSingleNodeList(l){return new V().appendData(l)},getFirstListNode(l){return l&&l.first},getLastListNode(l){return l&&l.last},parseWithFallback(l,p){let h=this.tokenIndex;try{return l.call(this)}catch(d){if(o)throw d;this.skip(h-this.tokenIndex);let g=p.call(this);return o=true,i(d,g),o=false,g}},lookupNonWSType(l){let p;do if(p=this.lookupType(l++),p!==13&&p!==25)return p;while(p!==ko);return ko},charCodeAt(l){return l>=0&&lg.toUpperCase()),h=`${/[[\](){}]/.test(p)?`"${p}"`:p} is expected`,d=this.tokenStart;switch(l){case 1:this.tokenType===2||this.tokenType===7?(d=this.tokenEnd-1,h="Identifier is expected but function found"):h="Identifier is expected";break;case 4:this.isDelim(Qa)&&(this.next(),d++,h="Name is expected");break;case 11:this.tokenType===10&&(d=this.tokenEnd,h="Percent sign is expected");break}this.error(h,d);}this.next();},eatIdent(l){(this.tokenType!==1||this.lookupValue(0,l)===false)&&this.error(`Identifier "${l}" is expected`),this.next();},eatDelim(l){this.isDelim(l)||this.error(`Delim "${String.fromCharCode(l)}" is expected`),this.next();},getLocation(l,p){return n?s.getLocationRange(l,p,r):null},getLocationFromList(l){if(n){let p=this.getFirstListNode(l),h=this.getLastListNode(l);return s.getLocationRange(p!==null?p.loc.start.offset-s.startOffset:this.tokenStart,h!==null?h.loc.end.offset-s.startOffset:this.tokenStart,r)}return null},error(l,p){let h=typeof p<"u"&&p({filename:r,source:t,tokenCount:u.tokenCount,getTokenType:l=>u.getTokenType(l),getTokenTypeName:l=>Ie[u.getTokenType(l)],getTokenStart:l=>u.getTokenStart(l),getTokenEnd:l=>u.getTokenEnd(l),getTokenValue:l=>u.source.substring(u.getTokenStart(l),u.getTokenEnd(l)),substring:(l,p)=>u.source.substring(l,p),balance:u.balance.subarray(0,u.tokenCount+1),isBlockOpenerTokenType:u.isBlockOpenerTokenType,isBlockCloserTokenType:u.isBlockCloserTokenType,getBlockTokenPairIndex:l=>u.getBlockTokenPairIndex(l),getLocation:l=>s.getLocation(l,r),getRangeLocation:(l,p)=>s.getLocationRange(l,p,r)});return Object.assign(function(l,p){t=l,p=p||{},u.setSource(t,Ce),s.setSource(t,p.offset,p.line,p.column),r=p.filename||"",n=!!p.positions,i=typeof p.onParseError=="function"?p.onParseError:xo,o=false,u.parseAtrulePrelude="parseAtrulePrelude"in p?!!p.parseAtrulePrelude:true,u.parseRulePrelude="parseRulePrelude"in p?!!p.parseRulePrelude:true,u.parseValue="parseValue"in p?!!p.parseValue:true,u.parseCustomProperty="parseCustomProperty"in p?!!p.parseCustomProperty:false;let{context:h="default",onComment:d,onToken:g}=p;if(!(h in u.context))throw new Error("Unknown context `"+h+"`");Array.isArray(g)?u.forEachToken((j,w,T)=>{g.push({type:j,start:w,end:T});}):typeof g=="function"&&u.forEachToken(g.bind(c())),typeof d=="function"&&u.forEachToken((j,w,T)=>{if(j===25){let he=u.getLocation(w,T),z=ye(t,T-2,T,"*/")?t.slice(w+2,T-2):t.slice(w+2,T);d(z,he);}});let ee=u.context[h].call(u,p);return u.eof||u.error(),ee},{SyntaxError:hr,config:u.config})}var jo=qa(Wo()),qo=new Set(["Atrule","Selector","Declaration"]);function Uo(e){let t=new jo.SourceMapGenerator,r={line:1,column:0},n={line:0,column:0},i={line:1,column:0},o={generated:i},s=1,u=0,c=false,a=e.node;e.node=function(h){if(h.loc&&h.loc.start&&qo.has(h.type)){let d=h.loc.start.line,g=h.loc.start.column-1;(n.line!==d||n.column!==g)&&(n.line=d,n.column=g,r.line=s,r.column=u,c&&(c=false,(r.line!==i.line||r.column!==i.column)&&t.addMapping(o)),c=true,t.addMapping({source:h.loc.source,original:n,generated:r}));}a.call(this,h),c&&qo.has(h.type)&&(i.line=s,i.column=u);};let l=e.emit;e.emit=function(h,d,g){for(let ee=0;eevr,spec:()=>yl});var gl=43,bl=45,wr=(e,t)=>{if(e===9&&(e=t),typeof e=="string"){let r=e.charCodeAt(0);return r>127?32768:r<<8}return e},Ho=[[1,1],[1,2],[1,7],[1,8],[1,"-"],[1,10],[1,11],[1,12],[1,15],[1,21],[3,1],[3,2],[3,7],[3,8],[3,"-"],[3,10],[3,11],[3,12],[3,15],[4,1],[4,2],[4,7],[4,8],[4,"-"],[4,10],[4,11],[4,12],[4,15],[12,1],[12,2],[12,7],[12,8],[12,"-"],[12,10],[12,11],[12,12],[12,15],["#",1],["#",2],["#",7],["#",8],["#","-"],["#",10],["#",11],["#",12],["#",15],["-",1],["-",2],["-",7],["-",8],["-","-"],["-",10],["-",11],["-",12],["-",15],[10,1],[10,2],[10,7],[10,8],[10,10],[10,11],[10,12],[10,"%"],[10,15],["@",1],["@",2],["@",7],["@",8],["@","-"],["@",15],[".",10],[".",11],[".",12],["+",10],["+",11],["+",12],["/","*"]],xl=Ho.concat([[1,4],[12,4],[4,4],[3,21],[3,5],[3,16],[11,11],[11,12],[11,2],[11,"-"],[22,1],[22,2],[22,11],[22,12],[22,4],[22,"-"]]);function Go(e){let t=new Set(e.map(([r,n])=>wr(r)<<16|wr(n)));return function(r,n,i){let o=wr(n,i),s=i.charCodeAt(0);return (s===bl&&n!==1&&n!==2&&n!==15||s===gl?t.has(r<<16|s<<8):t.has(r<<16|o))&&this.emit(" ",13,true),o}}var yl=Go(Ho),vr=Go(xl);var kl=92;function wl(e,t){if(typeof t=="function"){let r=null;e.children.forEach(n=>{r!==null&&t.call(this,r),this.node(n),r=n;});return}e.children.forEach(this.node,this);}function vl(e){Ce(e,(t,r,n)=>{this.token(t,e.slice(r,n));});}function Yo(e){let t=new Map;for(let[r,n]of Object.entries(e.node))typeof(n.generate||n)=="function"&&t.set(r,n.generate||n);return function(r,n){let i="",o=0,s={node(c){if(t.has(c.type))t.get(c.type).call(u,c);else throw new Error("Unknown node type: "+c.type)},tokenBefore:vr,token(c,a){o=this.tokenBefore(o,c,a),this.emit(a,c,false),c===9&&a.charCodeAt(0)===kl&&this.emit(` `,13,true);},emit(c){i+=c;},result(){return i}};n&&(typeof n.decorator=="function"&&(s=n.decorator(s)),n.sourceMap&&(s=Uo(s)),n.mode in Bt&&(s.tokenBefore=Bt[n.mode]));let u={node:c=>s.node(c),children:wl,token:(c,a)=>s.token(c,a),tokenize:vl};return s.node(r),s.result()}}function Ko(e){return {fromPlainObject(t){return e(t,{enter(r){r.children&&!(r.children instanceof V)&&(r.children=new V().fromArray(r.children));}}),t},toPlainObject(t){return e(t,{leave(r){r.children&&r.children instanceof V&&(r.children=r.children.toArray());}}),t}}}var{hasOwnProperty:Sr}=Object.prototype,ut=function(){};function Vo(e){return typeof e=="function"?e:ut}function Qo(e,t){return function(r,n,i){r.type===t&&e.call(this,r,n,i);}}function Sl(e,t){let r=t.structure,n=[];for(let i in r){if(Sr.call(r,i)===false)continue;let o=r[i],s={name:i,type:false,nullable:false};Array.isArray(o)||(o=[o]);for(let u of o)u===null?s.nullable=true:typeof u=="string"?s.type="node":Array.isArray(u)&&(s.type="list");s.type&&n.push(s);}return n.length?{context:t.walkContext,fields:n}:null}function Cl(e){let t={};for(let r in e.node)if(Sr.call(e.node,r)){let n=e.node[r];if(!n.structure)throw new Error("Missed `structure` field in `"+r+"` node type definition");t[r]=Sl(r,n);}return t}function Xo(e,t){let r=e.fields.slice(),n=e.context,i=typeof n=="string";return t&&r.reverse(),function(o,s,u,c){let a;i&&(a=s[n],s[n]=o);for(let l of r){let p=o[l.name];if(!l.nullable||p){if(l.type==="list"){if(t?p.reduceRight(c,false):p.reduce(c,false))return true}else if(u(p))return true}}i&&(s[n]=a);}}function $o({StyleSheet:e,Atrule:t,Rule:r,Block:n,DeclarationList:i}){return {Atrule:{StyleSheet:e,Atrule:t,Rule:r,Block:n},Rule:{StyleSheet:e,Atrule:t,Rule:r,Block:n},Declaration:{StyleSheet:e,Atrule:t,Rule:r,Block:n,DeclarationList:i}}}function Zo(e){let t=Cl(e),r={},n={},i=Symbol("break-walk"),o=Symbol("skip-node");for(let a in t)Sr.call(t,a)&&t[a]!==null&&(r[a]=Xo(t[a],false),n[a]=Xo(t[a],true));let s=$o(r),u=$o(n),c=function(a,l){function p(w,T,he){let z=h.call(j,w,T,he);return z===i?true:z===o?false:!!(g.hasOwnProperty(w.type)&&g[w.type](w,j,p,ee)||d.call(j,w,T,he)===i)}let h=ut,d=ut,g=r,ee=(w,T,he,z)=>w||p(T,he,z),j={break:i,skip:o,root:a,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if(typeof l=="function")h=l;else if(l&&(h=Vo(l.enter),d=Vo(l.leave),l.reverse&&(g=n),l.visit)){if(s.hasOwnProperty(l.visit))g=l.reverse?u[l.visit]:s[l.visit];else if(!t.hasOwnProperty(l.visit))throw new Error("Bad value `"+l.visit+"` for `visit` option (should be: "+Object.keys(t).sort().join(", ")+")");h=Qo(h,l.visit),d=Qo(d,l.visit);}if(h===ut&&d===ut)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");p(a);};return c.break=i,c.skip=o,c.find=function(a,l){let p=null;return c(a,function(h,d,g){if(l.call(this,h,d,g))return p=h,i}),p},c.findLast=function(a,l){let p=null;return c(a,{reverse:true,enter(h,d,g){if(l.call(this,h,d,g))return p=h,i}}),p},c.findAll=function(a,l){let p=[];return c(a,function(h,d,g){l.call(this,h,d,g)&&p.push(h);}),p},c}function Tl(e){return e}function Al(e){let{min:t,max:r,comma:n}=e;return t===0&&r===0?n?"#?":"*":t===0&&r===1?"?":t===1&&r===0?n?"#":"+":t===1&&r===1?"":(n?"#":"")+(t===r?"{"+t+"}":"{"+t+","+(r!==0?r:"")+"}")}function Ll(e){switch(e.type){case "Range":return " ["+(e.min===null?"-\u221E":e.min)+","+(e.max===null?"\u221E":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`")}}function El(e,t,r,n){let i=e.combinator===" "||n?e.combinator:" "+e.combinator+" ",o=e.terms.map(s=>_t(s,t,r,n)).join(i);return e.explicit||r?(n||o[0]===","?"[":"[ ")+o+(n?"]":" ]"):o}function _t(e,t,r,n){let i;switch(e.type){case "Group":i=El(e,t,r,n)+(e.disallowEmpty?"!":"");break;case "Multiplier":return _t(e.term,t,r,n)+t(Al(e),e);case "Boolean":i="";break;case "Type":i="<"+e.name+(e.opts?t(Ll(e.opts),e.opts):"")+">";break;case "Property":i="<'"+e.name+"'>";break;case "Keyword":i=e.name;break;case "AtKeyword":i="@"+e.name;break;case "Function":i=e.name+"(";break;case "String":case "Token":i=e.value;break;case "Comma":i=",";break;default:throw new Error("Unknown node type `"+e.type+"`")}return t(i,e)}function Oe(e,t){let r=Tl,n=false,i=false;return typeof t=="function"?r=t:t&&(n=!!t.forceBraces,i=!!t.compact,typeof t.decorate=="function"&&(r=t.decorate)),_t(e,r,n,i)}var Jo={offset:0,line:1,column:1};function zl(e,t){let r=e.tokens,n=e.longestMatch,i=n1?(l=Wt(o||t,"end")||pt(Jo,a),p=pt(l)):(l=Wt(o,"start")||pt(Wt(t,"start")||Jo,a.slice(0,s)),p=Wt(o,"end")||pt(l,a.substr(s,u))),{css:a,mismatchOffset:s,mismatchLength:u,start:l,end:p}}function Wt(e,t){let r=e&&e.loc&&e.loc[t];return r?"line"in r?pt(r):r:null}function pt({offset:e,line:t,column:r},n){let i={offset:e,line:t,column:r};if(n){let o=n.split(/\n|\r\n?|\f/);i.offset+=n.length,i.line+=o.length-1,i.column=o.length===1?i.column+n.length:o.pop().length+1;}return i}var Ye=function(e,t){let r=De("SyntaxReferenceError",e+(t?" `"+t+"`":""));return r.reference=t,r},es=function(e,t,r,n){let i=De("SyntaxMatchError",e),{css:o,mismatchOffset:s,mismatchLength:u,start:c,end:a}=zl(n,r);return i.rawMessage=e,i.syntax=t?Oe(t):"",i.css=o,i.mismatchOffset=s,i.mismatchLength=u,i.message=e+` syntax: `+i.syntax+` value: `+(o||"")+` --------`+new Array(i.mismatchOffset+1).join("-")+"^",Object.assign(i,c),i.loc={source:r&&r.loc&&r.loc.source||"",start:c,end:a},i};var qt=new Map,Ke=new Map,jt=45,Ut=Pl,Cr=Il;function Ht(e,t){return t=t||0,e.length-t>=2&&e.charCodeAt(t)===jt&&e.charCodeAt(t+1)===jt}function Tr(e,t){if(t=t||0,e.length-t>=3&&e.charCodeAt(t)===jt&&e.charCodeAt(t+1)!==jt){let r=e.indexOf("-",t+2);if(r!==-1)return e.substring(t,r+1)}return ""}function Pl(e){if(qt.has(e))return qt.get(e);let t=e.toLowerCase(),r=qt.get(t);if(r===void 0){let n=Ht(t,0),i=n?"":Tr(t,0);r=Object.freeze({basename:t.substr(i.length),name:t,prefix:i,vendor:i,custom:n});}return qt.set(e,r),r}function Il(e){if(Ke.has(e))return Ke.get(e);let t=e,r=e[0];r==="/"?r=e[1]==="/"?"//":"/":r!=="_"&&r!=="*"&&r!=="$"&&r!=="#"&&r!=="+"&&r!=="&"&&(r="");let n=Ht(t,r.length);if(!n&&(t=t.toLowerCase(),Ke.has(t))){let u=Ke.get(t);return Ke.set(e,u),u}let i=n?"":Tr(t,r.length),o=t.substr(0,r.length+i.length),s=Object.freeze({basename:t.substr(o.length),name:t.substr(r.length),hack:r,vendor:i,prefix:o,custom:n});return Ke.set(e,s),s}var Ve=["initial","inherit","unset","revert","revert-layer"];var mt=43,de=45,Ar=110,Qe=true,Nl=false;function Er(e,t){return e!==null&&e.type===9&&e.value.charCodeAt(0)===t}function ht(e,t,r){for(;e!==null&&(e.type===13||e.type===25);)e=r(++t);return t}function Te(e,t,r,n){if(!e)return 0;let i=e.value.charCodeAt(t);if(i===mt||i===de){if(r)return 0;t++;}for(;t6)return 0}return n}function Gt(e,t,r){if(!e)return 0;for(;Pr(r(t),rs);){if(++e>6)return 0;t++;}return t}function Ir(e,t){let r=0;if(e===null||e.type!==1||!xe(e.value,0,Rl)||(e=t(++r),e===null))return 0;if(Pr(e,Ol))return e=t(++r),e===null?0:e.type===1?Gt(dt(e,0,true),++r,t):Pr(e,rs)?Gt(1,++r,t):0;if(e.type===10){let n=dt(e,1,true);return n===0?0:(e=t(++r),e===null?r:e.type===12||e.type===10?!Fl(e,ts)||!dt(e,1,false)?0:r+1:Gt(n,r,t))}return e.type===12?Gt(dt(e,1,true),++r,t):0}var Ml=["calc(","-moz-calc(","-webkit-calc("],Dr=new Map([[2,22],[21,22],[19,20],[23,24]]);function ue(e,t){return te.max&&typeof e.max!="string")return true}return false}function Bl(e,t){let r=0,n=[],i=0;e:do{switch(e.type){case 24:case 22:case 20:if(e.type!==r)break e;if(r=n.pop(),n.length===0){i++;break e}break;case 2:case 21:case 19:case 23:n.push(r),r=Dr.get(e.type);break}i++;}while(e=t(i));return i}function ie(e){return function(t,r,n){return t===null?0:t.type===2&&is(t.value,Ml)?Bl(t,r):e(t,r,n)}}function I(e){return function(t){return t===null||t.type!==e?0:1}}function _l(e){if(e===null||e.type!==1)return 0;let t=e.value.toLowerCase();return is(t,Ve)||ns(t,"default")?0:1}function ss(e){return e===null||e.type!==1||ue(e.value,0)!==45||ue(e.value,1)!==45?0:1}function Wl(e){return !ss(e)||e.value==="--"?0:1}function ql(e){if(e===null||e.type!==4)return 0;let t=e.value.length;if(t!==4&&t!==5&&t!==7&&t!==9)return 0;for(let r=1;rZl,decibel:()=>nc,flex:()=>rc,frequency:()=>ec,length:()=>$l,resolution:()=>tc,semitones:()=>ic,time:()=>Jl});var $l=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],Zl=["deg","grad","rad","turn"],Jl=["s","ms"],ec=["hz","khz"],tc=["dpi","dpcm","dppx","x"],rc=["fr"],nc=["db"],ic=["st"];var ws={};f(ws,{SyntaxError:()=>Vt,generate:()=>Oe,parse:()=>Xe,walk:()=>Zt});function Vt(e,t,r){return Object.assign(De("SyntaxError",e),{input:t,offset:r,rawMessage:e,message:e+` `+t+` --`+new Array((r||t.length)+1).join("-")+"^"})}var oc=9,sc=10,ac=12,lc=13,cc=32,cs=new Uint8Array(128).map((e,t)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(t))?1:0),Qt=class{constructor(t){this.str=t,this.pos=0;}charCodeAt(t){return t=128||cs[r]===0)break}return this.pos===t&&this.error("Expect a keyword"),this.substringToPos(t)}scanNumber(){let t=this.pos;for(;t57)break}return this.pos===t&&this.error("Expect a number"),this.substringToPos(t)}scanString(){let t=this.str.indexOf("'",this.pos+1);return t===-1&&(this.pos=this.str.length,this.error("Expect an apostrophe")),this.substringToPos(t+1)}};var uc=9,pc=10,hc=12,mc=13,dc=32,bs=33,Fr=35,us=38,Xt=39,xs=40,fc=41,ys=42,Mr=43,Br=44,ps=45,_r=60,Or=62,Rr=63,gc=64,ft=91,gt=93,$t=123,hs=124,ms=125,ds=8734,fs={" ":1,"&&":2,"||":3,"|":4};function gs(e){let t=null,r=null;return e.eat($t),e.skipWs(),t=e.scanNumber(e),e.skipWs(),e.charCode()===Br?(e.pos++,e.skipWs(),e.charCode()!==ms&&(r=e.scanNumber(e),e.skipWs())):r=t,e.eat(ms),{min:Number(t),max:r?Number(r):0}}function bc(e){let t=null,r=false;switch(e.charCode()){case ys:e.pos++,t={min:0,max:0};break;case Mr:e.pos++,t={min:1,max:0};break;case Rr:e.pos++,t={min:0,max:1};break;case Fr:e.pos++,r=true,e.charCode()===$t?t=gs(e):e.charCode()===Rr?(e.pos++,t={min:0,max:0}):t={min:1,max:0};break;case $t:t=gs(e);break;default:return null}return {type:"Multiplier",comma:r,min:t.min,max:t.max,term:null}}function Ae(e,t){let r=bc(e);return r!==null?(r.term=t,e.charCode()===Fr&&e.charCodeAt(e.pos-1)===Mr?Ae(e,r):r):t}function Nr(e){let t=e.peek();return t===""?null:Ae(e,{type:"Token",value:t})}function xc(e){let t;return e.eat(_r),e.eat(Xt),t=e.scanWord(),e.eat(Xt),e.eat(Or),Ae(e,{type:"Property",name:t})}function yc(e){let t=null,r=null,n=1;return e.eat(ft),e.charCode()===ps&&(e.peek(),n=-1),n==-1&&e.charCode()===ds?e.peek():(t=n*Number(e.scanNumber(e)),e.isNameCharCode()&&(t+=e.scanWord())),e.skipWs(),e.eat(Br),e.skipWs(),e.charCode()===ds?e.peek():(n=1,e.charCode()===ps&&(e.peek(),n=-1),r=n*Number(e.scanNumber(e)),e.isNameCharCode()&&(r+=e.scanWord())),e.eat(gt),{type:"Range",min:t,max:r}}function kc(e){let t,r=null;if(e.eat(_r),t=e.scanWord(),t==="boolean-expr"){e.eat(ft);let n=Wr(e,gt);return e.eat(gt),e.eat(Or),Ae(e,{type:"Boolean",term:n.terms.length===1?n.terms[0]:n})}return e.charCode()===xs&&e.nextCharCode()===fc&&(e.pos+=2,t+="()"),e.charCodeAt(e.findWsEnd(e.pos))===ft&&(e.skipWs(),r=yc(e)),e.eat(Or),Ae(e,{type:"Type",name:t,opts:r})}function wc(e){let t=e.scanWord();return e.charCode()===xs?(e.pos++,{type:"Function",name:t}):Ae(e,{type:"Keyword",name:t})}function vc(e,t){function r(i,o){return {type:"Group",terms:i,combinator:o,disallowEmpty:false,explicit:false}}let n;for(t=Object.keys(t).sort((i,o)=>fs[i]-fs[o]);t.length>0;){n=t.shift();let i=0,o=0;for(;i1&&(e.splice(o,i-o,r(e.slice(o,i),n)),i=o+1),o=-1));}o!==-1&&t.length&&e.splice(o,i-o,r(e.slice(o,i),n));}return n}function Wr(e,t){let r=Object.create(null),n=[],i,o=null,s=e.pos;for(;e.charCode()!==t&&(i=Cc(e,t));)i.type!=="Spaces"&&(i.type==="Combinator"?((o===null||o.type==="Combinator")&&(e.pos=s,e.error("Unexpected combinator")),r[i.value]=true):o!==null&&o.type!=="Combinator"&&(r[" "]=true,n.push({type:"Combinator",value:" "})),n.push(i),o=i,s=e.pos);return o!==null&&o.type==="Combinator"&&(e.pos-=s,e.error("Unexpected combinator")),{type:"Group",terms:n,combinator:vc(n,r)||" ",disallowEmpty:false,explicit:false}}function Sc(e,t){let r;return e.eat(ft),r=Wr(e,t),e.eat(gt),r.explicit=true,e.charCode()===bs&&(e.pos++,r.disallowEmpty=true),r}function Cc(e,t){let r=e.charCode();switch(r){case gt:break;case ft:return Ae(e,Sc(e,t));case _r:return e.nextCharCode()===Xt?xc(e):kc(e);case hs:return {type:"Combinator",value:e.substringToPos(e.pos+(e.nextCharCode()===hs?2:1))};case us:return e.pos++,e.eat(us),{type:"Combinator",value:"&&"};case Br:return e.pos++,{type:"Comma"};case Xt:return Ae(e,{type:"String",value:e.scanString()});case dc:case uc:case pc:case mc:case hc:return {type:"Spaces",value:e.scanSpaces()};case gc:return r=e.nextCharCode(),e.isNameCharCode(r)?(e.pos++,{type:"AtKeyword",name:e.scanWord()}):Nr(e);case ys:case Mr:case Rr:case Fr:case bs:break;case $t:if(r=e.nextCharCode(),r<48||r>57)return Nr(e);break;default:return e.isNameCharCode(r)?wc(e):Nr(e)}}function Xe(e){let t=new Qt(e),r=Wr(t);return t.pos!==e.length&&t.error("Unexpected input"),r.terms.length===1&&r.terms[0].type==="Group"?r.terms[0]:r}var bt=function(){};function ks(e){return typeof e=="function"?e:bt}function Zt(e,t,r){function n(s){switch(i.call(r,s),s.type){case "Group":s.terms.forEach(n);break;case "Multiplier":case "Boolean":n(s.term);break;case "Type":case "Property":case "Keyword":case "AtKeyword":case "Function":case "String":case "Token":case "Comma":break;default:throw new Error("Unknown type: "+s.type)}o.call(r,s);}let i=bt,o=bt;if(typeof t=="function"?i=t:t&&(i=ks(t.enter),o=ks(t.leave)),i===bt&&o===bt)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");n(e);}var Tc={decorator(e){let t=[],r=null;return {...e,node(n){let i=r;r=n,e.node.call(this,n),r=i;},emit(n,i,o){t.push({type:i,value:n,node:o?null:r});},result(){return t}}}};function Ac(e){let t=[];return Ce(e,(r,n,i)=>t.push({type:r,value:e.slice(n,i),node:null})),t}function vs(e,t){return typeof e=="string"?Ac(e):t.generate(e,Tc)}var C={type:"Match"},E={type:"Mismatch"},Jt={type:"DisallowEmpty"},Lc=40,Ec=41;function Q(e,t,r){return t===C&&r===E||e===C&&t===C&&r===C?e:(e.type==="If"&&e.else===E&&t===C&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:r})}function Cs(e){return e.length>2&&e.charCodeAt(e.length-2)===Lc&&e.charCodeAt(e.length-1)===Ec}function Ss(e){return e.type==="Keyword"||e.type==="AtKeyword"||e.type==="Function"||e.type==="Type"&&Cs(e.name)}function Le(e,t=" ",r=false){return {type:"Group",terms:e,combinator:t,disallowEmpty:false,explicit:r}}function xt(e,t,r=new Set){if(!r.has(e))switch(r.add(e),e.type){case "If":e.match=xt(e.match,t,r),e.then=xt(e.then,t,r),e.else=xt(e.else,t,r);break;case "Type":return t[e.name]||e}return e}function qr(e,t,r){switch(e){case " ":{let n=C;for(let i=t.length-1;i>=0;i--){let o=t[i];n=Q(o,n,E);}return n}case "|":{let n=E,i=null;for(let o=t.length-1;o>=0;o--){let s=t[o];if(Ss(s)&&(i===null&&o>0&&Ss(t[o-1])&&(i=Object.create(null),n=Q({type:"Enum",map:i},C,n)),i!==null)){let u=(Cs(s.name)?s.name.slice(0,-1):s.name).toLowerCase();if(!(u in i)){i[u]=s;continue}}i=null,n=Q(s,C,n);}return n}case "&&":{if(t.length>5)return {type:"MatchOnce",terms:t,all:true};let n=E;for(let i=t.length-1;i>=0;i--){let o=t[i],s;t.length>1?s=qr(e,t.filter(function(u){return u!==o}),false):s=C,n=Q(o,s,n);}return n}case "||":{if(t.length>5)return {type:"MatchOnce",terms:t,all:false};let n=r?C:E;for(let i=t.length-1;i>=0;i--){let o=t[i],s;t.length>1?s=qr(e,t.filter(function(u){return u!==o}),true):s=C,n=Q(o,s,n);}return n}}}function zc(e){let t=C,r=$e(e.term);if(e.max===0)r=Q(r,Jt,E),t=Q(r,null,E),t.then=Q(C,C,t),e.comma&&(t.then.else=Q({type:"Comma",syntax:e},t,E));else for(let n=e.min||1;n<=e.max;n++)e.comma&&t!==C&&(t=Q({type:"Comma",syntax:e},t,E)),t=Q(r,Q(C,C,t),E);if(e.min===0)t=Q(C,C,t);else for(let n=0;n=65&&i<=90&&(i=i|32),i!==n)return false}return true}function Fc(e){return e.type!==9?false:e.value!=="?"}function Es(e){return e===null?true:e.type===18||e.type===2||e.type===21||e.type===19||e.type===23||Fc(e)}function zs(e){return e===null?true:e.type===22||e.type===20||e.type===24||e.type===9&&e.value==="/"}function Mc(e,t,r){function n(){do T++,w=The&&(he=T);}function a(){p={syntax:t.syntax,opts:t.syntax.opts||p!==null&&p.opts||null,prev:p},z={type:Ur,syntax:t.syntax,token:z.token,prev:z};}function l(){z.type===Ur?z=z.prev:z={type:Ps,syntax:p.syntax,token:z.token,prev:z},p=p.prev;}let p=null,h=null,d=null,g=null,ee=0,j=null,w=null,T=-1,he=0,z={type:Pc,syntax:null,token:null,prev:null};for(n();j===null&&++eed.tokenIndex)&&(d=g,g=false);else if(d===null){j=Dc;break}t=d.nextState,h=d.thenStack,p=d.syntaxStack,z=d.matchStack,T=d.tokenIndex,w=TT){for(;T":"<'"+t.name+"'>"));if(g!==false&&w!==null&&t.type==="Type"&&(t.name==="custom-ident"&&w.type===1||t.name==="length"&&w.value==="0")){g===null&&(g=o(t,d)),t=E;break}a(),t=U.matchRef||U.match;break}case "Keyword":{let q=t.name;if(w!==null){let U=w.value;if(U.indexOf("\\")!==-1&&(U=U.replace(/\\[09].*$/,"")),jr(U,q)){c(),t=C;break}}t=E;break}case "AtKeyword":case "Function":if(w!==null&&jr(w.value,t.name)){c(),t=C;break}t=E;break;case "Token":if(w!==null&&w.value===t.value){c(),t=C;break}t=E;break;case "Comma":w!==null&&w.type===18?Es(z.token)?t=E:(c(),t=zs(w)?E:C):t=Es(z.token)||zs(w)?C:E;break;case "String":let oe="",ge=T;for(;geIs,isKeyword:()=>Wc,isProperty:()=>_c,isType:()=>Bc});function Is(e){function t(i){return i===null?false:i.type==="Type"||i.type==="Property"||i.type==="Keyword"}function r(i){if(Array.isArray(i.match)){for(let o=0;or.type==="Type"&&r.name===t)}function _c(e,t){return Gr(this,e,r=>r.type==="Property"&&r.name===t)}function Wc(e){return Gr(this,e,t=>t.type==="Keyword")}function Gr(e,t,r){let n=Is.call(e,t);return n===null?false:n.some(r)}function Ds(e){return "node"in e?e.node:Ds(e.match[0])}function Ns(e){return "node"in e?e.node:Ns(e.match[e.match.length-1])}function Kr(e,t,r,n,i){function o(u){if(u.syntax!==null&&u.syntax.type===n&&u.syntax.name===i){let c=Ds(u),a=Ns(u);e.syntax.walk(t,function(l,p,h){if(l===c){let d=new V;do{if(d.appendData(p.data),p.data===a)break;p=p.next;}while(p!==null);s.push({parent:h,nodes:d});}});}Array.isArray(u.match)&&u.match.forEach(o);}let s=[];return r.matched!==null&&o(r.matched),s}var{hasOwnProperty:kt}=Object.prototype;function Vr(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e&&e>=0}function Os(e){return !!e&&Vr(e.offset)&&Vr(e.line)&&Vr(e.column)}function qc(e,t){return function(n,i){if(!n||n.constructor!==Object)return i(n,"Type of node should be an Object");for(let o in n){let s=true;if(kt.call(n,o)!==false){if(o==="type")n.type!==e&&i(n,"Wrong node type `"+n.type+"`, expected `"+e+"`");else if(o==="loc"){if(n.loc===null)continue;if(n.loc&&n.loc.constructor===Object)if(typeof n.loc.source!="string")o+=".source";else if(!Os(n.loc.start))o+=".start";else if(!Os(n.loc.end))o+=".end";else continue;s=false;}else if(t.hasOwnProperty(o)){s=false;for(let u=0;!s&&u");else throw new Error("Wrong value `"+i+"` in `"+t+"` structure definition")}return r.join(" | ")}function jc(e,t){let r=t.structure,n={type:String,loc:true},i={type:'"'+e+'"'};for(let o in r){if(kt.call(r,o)===false)continue;let s=n[o]=Array.isArray(r[o])?r[o].slice():[r[o]];i[o]=Rs(s,e+"."+o);}return {docs:i,check:qc(e,n)}}function Fs(e){let t={};if(e.node){for(let r in e.node)if(kt.call(e.node,r)){let n=e.node[r];if(n.structure)t[r]=jc(r,n);else throw new Error("Missed `structure` field in `"+r+"` node type definition")}}return t}function Qr(e,t,r){let n={};for(let i in e)e[i].syntax&&(n[i]=r?e[i].syntax:Oe(e[i].syntax,{compact:t}));return n}function Uc(e,t,r){let n={};for(let[i,o]of Object.entries(e))n[i]={prelude:o.prelude&&(r?o.prelude.syntax:Oe(o.prelude.syntax,{compact:t})),descriptors:o.descriptors&&Qr(o.descriptors,t,r)};return n}function Hc(e){for(let t=0;t(n[i]=this.createDescriptor(r.descriptors[i],"AtruleDescriptor",i,t),n),Object.create(null)):null});}addProperty_(t,r){r&&(this.properties[t]=this.createDescriptor(r,"Property",t));}addType_(t,r){r&&(this.types[t]=this.createDescriptor(r,"Type",t));}checkAtruleName(t){if(!this.getAtrule(t))return new Ye("Unknown at-rule","@"+t)}checkAtrulePrelude(t,r){let n=this.checkAtruleName(t);if(n)return n;let i=this.getAtrule(t);if(!i.prelude&&r)return new SyntaxError("At-rule `@"+t+"` should not contain a prelude");if(i.prelude&&!r&&!Ze(this,i.prelude,"",false).matched)return new SyntaxError("At-rule `@"+t+"` should contain a prelude")}checkAtruleDescriptorName(t,r){let n=this.checkAtruleName(t);if(n)return n;let i=this.getAtrule(t),o=Ut(r);if(!i.descriptors)return new SyntaxError("At-rule `@"+t+"` has no known descriptors");if(!i.descriptors[o.name]&&!i.descriptors[o.basename])return new Ye("Unknown at-rule descriptor",r)}checkPropertyName(t){if(!this.getProperty(t))return new Ye("Unknown property",t)}matchAtrulePrelude(t,r){let n=this.checkAtrulePrelude(t,r);if(n)return pe(null,n);let i=this.getAtrule(t);return i.prelude?Ze(this,i.prelude,r||"",false):pe(null,null)}matchAtruleDescriptor(t,r,n){let i=this.checkAtruleDescriptorName(t,r);if(i)return pe(null,i);let o=this.getAtrule(t),s=Ut(r);return Ze(this,o.descriptors[s.name]||o.descriptors[s.basename],n,false)}matchDeclaration(t){return t.type!=="Declaration"?pe(null,new Error("Not a Declaration node")):this.matchProperty(t.property,t.value)}matchProperty(t,r){if(Cr(t).custom)return pe(null,new Error("Lexer matching doesn't applicable for custom properties"));let n=this.checkPropertyName(t);return n?pe(null,n):Ze(this,this.getProperty(t),r,true)}matchType(t,r){let n=this.getType(t);return n?Ze(this,n,r,false):pe(null,new Ye("Unknown type",t))}match(t,r){return typeof t!="string"&&(!t||!t.type)?pe(null,new Ye("Bad syntax")):((typeof t=="string"||!t.match)&&(t=this.createDescriptor(t,"Type","anonymous")),Ze(this,t,r,false))}findValueFragments(t,r,n,i){return Kr(this,r,this.matchProperty(t,r),n,i)}findDeclarationValueFragments(t,r,n){return Kr(this,t.value,this.matchDeclaration(t),r,n)}findAllFragments(t,r,n){let i=[];return this.syntax.walk(t,{visit:"Declaration",enter:o=>{i.push.apply(i,this.findDeclarationValueFragments(o,r,n));}}),i}getAtrule(t,r=true){let n=Ut(t);return (n.vendor&&r?this.atrules[n.name]||this.atrules[n.basename]:this.atrules[n.name])||null}getAtrulePrelude(t,r=true){let n=this.getAtrule(t,r);return n&&n.prelude||null}getAtruleDescriptor(t,r){return this.atrules.hasOwnProperty(t)&&this.atrules.declarators&&this.atrules[t].declarators[r]||null}getProperty(t,r=true){let n=Cr(t);return (n.vendor&&r?this.properties[n.name]||this.properties[n.basename]:this.properties[n.name])||null}getType(t){return hasOwnProperty.call(this.types,t)?this.types[t]:null}validate(){function t(c,a){return a?`<${c}>`:`<'${c}'>`}function r(c,a,l,p){if(l.has(a))return l.get(a);l.set(a,false),p.syntax!==null&&Zt(p.syntax,function(h){if(h.type!=="Type"&&h.type!=="Property")return;let d=h.type==="Type"?c.types:c.properties,g=h.type==="Type"?i:o;hasOwnProperty.call(d,h.name)?r(c,h.name,g,d[h.name])&&(n.push(`${t(a,l===i)} used broken syntax definition ${t(h.name,h.type==="Type")}`),l.set(a,true)):(n.push(`${t(a,l===i)} used missed syntax definition ${t(h.name,h.type==="Type")}`),l.set(a,true));},this);}let n=[],i=new Map,o=new Map;for(let c in this.types)r(this,c,i,this.types[c]);for(let c in this.properties)r(this,c,o,this.properties[c]);let s=[...i.keys()].filter(c=>i.get(c)),u=[...o.keys()].filter(c=>o.get(c));return s.length||u.length?{errors:n,types:s,properties:u}:null}dump(t,r){return {generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:Qr(this.types,!r,t),properties:Qr(this.properties,!r,t),atrules:Uc(this.atrules,!r,t)}}toString(){return JSON.stringify(this.dump())}};function Xr(e,t){return typeof t=="string"&&/^\s*\|/.test(t)?typeof e=="string"?e+t:t.replace(/^\s*\|\s*/,""):t||null}function Yc(e,t){let r=Object.create(null);for(let n of Object.keys(e))t.includes(n)&&(r[n]=e[n]);return r}function $r(e,t,r){let n={...e};for(let[i,o]of Object.entries(t))n[i]={...n[i],...r?Yc(o,r):o};return n}function wt(e,t){let r={...e};for(let[n,i]of Object.entries(t))switch(n){case "generic":r[n]=!!i;break;case "cssWideKeywords":r[n]=e[n]?[...e[n],...i]:i||[];break;case "units":r[n]={...e[n]};for(let[o,s]of Object.entries(i))r[n][o]=Array.isArray(s)?s:[];break;case "atrules":r[n]={...e[n]};for(let[o,s]of Object.entries(i)){let u=r[n][o]||{},c=r[n][o]={prelude:u.prelude||null,descriptors:{...u.descriptors}};if(s){c.prelude=s.prelude?Xr(c.prelude,s.prelude):c.prelude||null;for(let[a,l]of Object.entries(s.descriptors||{}))c.descriptors[a]=l?Xr(c.descriptors[a],l):null;Object.keys(c.descriptors).length||(c.descriptors=null);}}break;case "types":case "properties":r[n]={...e[n]};for(let[o,s]of Object.entries(i))r[n][o]=Xr(r[n][o],s);break;case "parseContext":r[n]={...e[n],...i};break;case "scope":case "features":r[n]=$r(e[n],i);break;case "atrule":case "pseudo":r[n]=$r(e[n],i,["parse"]);break;case "node":r[n]=$r(e[n],i,["name","structure","parse","generate","walkContext"]);break}return r}function Ms(e){let t=wo(e),r=Zo(e),n=Yo(e),{fromPlainObject:i,toPlainObject:o}=Ko(r),s={lexer:null,createLexer:u=>new Je(u,s,s.lexer.structure),tokenize:Ce,parse:t,generate:n,walk:r,find:r.find,findLast:r.findLast,findAll:r.findAll,fromPlainObject:i,toPlainObject:o,fork(u){let c=wt({},e);return Ms(typeof u=="function"?u(c):wt(c,u))}};return s.lexer=new Je({generic:e.generic,cssWideKeywords:e.cssWideKeywords,units:e.units,types:e.types,atrules:e.atrules,properties:e.properties,node:e.node},s),s}var Zr=e=>Ms(wt({},e));var Bs={generic:true,cssWideKeywords:["initial","inherit","unset","revert","revert-layer"],units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( )","alpha-value":"|","an+b":"odd|even|||'+'? \u2020 n|-n||'+'? \u2020 || |'+'? \u2020 n |-n | |'+'? \u2020 n- |-n- | ['+'|'-'] |'+'? \u2020 n ['+'|'-'] |-n ['+'|'-'] ","anchor()":"anchor( ?&& , ? )","anchor-name":"","anchor-side":"inside|outside|top|left|right|bottom|start|end|self-start|self-end||center","anchor-size":"width|height|block|inline|self-block|self-inline","anchor-size()":"anchor-size( [||]? , ? )","angle-percentage":"|","angular-color-hint":"|","angular-color-stop":" ?","angular-color-stop-list":" , [? , ]#?","animateable-feature":"scroll-position|contents|","asin()":"asin( )","atan()":"atan( )","atan2()":"atan2( , )",attachment:"scroll|fixed|local","attr()":"attr( ? [, ]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' ']'|'[' [|] ? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [? ]+ ? )","auto-track-list":"[? [|]]* ? [? [|]]* ?",axis:"block|inline|x|y","baseline-position":"[first|last]? baseline","basic-shape":"||||||","basic-shape-rect":"||","bg-clip":"|border-area|text","bg-image":"none|","bg-layer":"|| [/ ]?||||||||","bg-position":"[[left|center|right|top|bottom|]|[left|center|right|] [top|center|bottom|]|[center|[left|right] ?]&&[center|[top|bottom] ?]]","bg-size":"[|auto]{1,2}|cover|contain","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity","blur()":"blur( ? )","brightness()":"brightness( [|]? )","calc()":"calc( )","calc-constant":"e|pi|infinity|-infinity|NaN","calc-product":" ['*' |'/' ]*","calc-size()":"calc-size( , )","calc-size-basis":"||any|","calc-sum":" [['+'|'-'] ]*","calc-value":"||||( )","cf-final-image":"|","cf-mixing-image":"?&&","circle()":"circle( ? [at ]? )","clamp()":"clamp( #{3} )","class-selector":"'.' ","clip-source":"",color:"|currentColor||||<-non-standard-color>","color()":"color( [/ [|none]]? )","color-base":"||||transparent","color-function":"|||||||||","color-interpolation-method":"in [| ?|]","color-mix()":"color-mix( , [&&?]#{2} )","color-stop":"|","color-stop-angle":"[|]{1,2}","color-stop-length":"{1,2}","color-stop-list":" , [? , ]#?","colorspace-params":"[|]",combinator:"'>'|'+'|'~'|['|' '|']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","complex-selector":" [? ]*","complex-selector-list":"#","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[? *]!","compound-selector-list":"#","conic-gradient()":"conic-gradient( [] )","conic-gradient-syntax":"[[[from [|]]? [at ]?]||]? , ","container-condition":"not | [[and ]*|[or ]*]","container-name":"","container-query":"not | [[and ]*|[or ]*]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[|contents||||||]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"","contextual-alt-values":"[contextual|no-contextual]","contrast()":"contrast( [|]? )","coord-box":"content-box|padding-box|border-box|fill-box|stroke-box|view-box","cos()":"cos( )",counter:"|","counter()":"counter( , ? )","counter-name":"","counter-style":"|symbols( )","counter-style-name":"","counters()":"counters( , , ? )","cross-fade()":"cross-fade( , ? )","cubic-bezier()":"cubic-bezier( [ , ]#{2} )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|","custom-color-space":"","custom-params":" [||none]+",dasharray:"[[|]+]#","dashndashdigit-ident":"","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonHighlight|ButtonShadow|CaptionText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( [?&&{2,3}] )","easing-function":"||","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( , [first|start|last|first-except]? )|element( )","ellipse()":"ellipse( ? [at ]? )","env()":"env( , ? )","exp()":"exp( )","explicit-track-list":"[? ]+ ?","family-name":"|+","feature-tag-value":" [|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":" '{' '}'","feature-value-block-list":"+","feature-value-declaration":" : + ;","feature-value-declaration-list":"","feature-value-name":"","filter-function":"|||||||||","filter-value-list":"[|]+","final-bg-layer":"<'background-color'>|||| [/ ]?||||||||","fit-content()":"fit-content( )","fixed-breadth":"","fixed-repeat":"repeat( [] , [? ]+ ? )","fixed-size":"|minmax( , )|minmax( , )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|","form-control-identifier":"select","frequency-percentage":"|","generic-complete":"serif|sans-serif|system-ui|cursive|fantasy|math|monospace","general-enclosed":"[ ? )]|[( ? )]","generic-family":"|||<-non-standard-generic-family>","generic-incomplete":"ui-serif|ui-sans-serif|ui-monospace|ui-rounded","geometry-box":"|fill-box|stroke-box|view-box",gradient:"||||||<-legacy-gradient>","grayscale()":"grayscale( [|]? )","grid-line":"auto||[&&?]|[span&&[||]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( , , , ? )|hsl( [|none] [||none] [||none] [/ [|none]]? )","hsla()":"hsla( , , , ? )|hsla( [|none] [||none] [||none] [/ [|none]]? )",hue:"|","hue-interpolation-method":"[shorter|longer|increasing|decreasing] hue","hue-rotate()":"hue-rotate( [|]? )","hwb()":"hwb( [|none] [||none] [||none] [/ [|none]]? )","hypot()":"hypot( # )",image:"||||||","image()":"image( ? [? , ?]! )","image-set()":"image-set( # )","image-set-option":"[|] [||type( )]","image-src":"|","image-tags":"ltr|rtl","inflexible-breadth":"|min-content|max-content|auto","inset()":"inset( {1,4} [round <'border-radius'>]? )","invert()":"invert( [|]? )","keyframe-block":"# { }","keyframe-selector":"from|to|| ","keyframes-name":"|","lab()":"lab( [||none] [||none] [||none] [/ [|none]]? )","layer()":"layer( )","layer-name":" ['.' ]*","lch()":"lch( [||none] [||none] [|none] [/ [|none]]? )","leader()":"leader( )","leader-type":"dotted|solid|space|","length-percentage":"|","light-dark()":"light-dark( , )","line-name-list":"[|]+","line-names":"'[' * ']'","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"|thin|medium|thick","linear()":"linear( [&&{0,2}]# )","linear-color-hint":"","linear-color-stop":" ?","linear-easing-function":"linear|","linear-gradient()":"linear-gradient( [] )","linear-gradient-syntax":"[[||to ]||]? , ","log()":"log( , ? )","mask-layer":"|| [/ ]?||||||[|no-clip]||||","mask-position":"[|left|center|right] [|top|center|bottom]?","mask-reference":"none||","mask-source":"","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( #{6} )","matrix3d()":"matrix3d( #{16} )","max()":"max( # )","media-and":" [and ]+","media-condition":"|||","media-condition-without-or":"||","media-feature":"( [||] )","media-in-parens":"( )||","media-not":"not ","media-or":" [or ]+","media-query":"|[not|only]? [and ]?","media-query-list":"#","media-type":"","mf-boolean":"","mf-name":"","mf-plain":" : ","mf-range":" ['<'|'>']? '='? | ['<'|'>']? '='? | '<' '='? '<' '='? | '>' '='? '>' '='? ","mf-value":"|||","min()":"min( # )","minmax()":"minmax( [|min-content|max-content|auto] , [||min-content|max-content|auto] )","mod()":"mod( , )","n-dimension":"","name-repeat":"repeat( [|auto-fill] , + )","named-color":"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen","namespace-prefix":"","ndash-dimension":"","ndashdigit-dimension":"","ndashdigit-ident":"","ns-prefix":"[|'*']? '|'","number-percentage":"|","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]","offset-path":"||","oklab()":"oklab( [||none] [||none] [||none] [/ [|none]]? )","oklch()":"oklch( [||none] [||none] [|none] [/ [|none]]? )","opacity()":"opacity( [|]? )","opacity-value":"|","outline-line-style":"none|dotted|dashed|solid|double|groove|ridge|inset|outset","outline-radius":"|","overflow-position":"unsafe|safe","page-body":"? [; ]?| ","page-margin-box":" '{' '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector":"+| *","page-selector-list":"[#]?","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger",paint:"none|| [none|]?|context-fill|context-stroke","paint()":"paint( , ? )","paint-box":"|fill-box|stroke-box","palette-identifier":"","palette-mix()":"palette-mix( , [[normal|light|dark||]&&?]#{2} )","path()":"path( <'fill-rule'>? , )","perspective()":"perspective( [|none] )","polar-color-space":"hsl|hwb|lch|oklch","polygon()":"polygon( <'fill-rule'>? , [ ]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|] [top|center|bottom|]?|[[left|right] ]&&[[top|bottom] ]]","position-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|center|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|center|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]","pow()":"pow( , )","predefined-rgb":"srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020","predefined-rgb-params":" [||none]{3}","pseudo-class-selector":"':' |':' ')'","pseudo-element-selector":"':' |","pseudo-page":": [left|right|first|blank]","query-in-parens":"( )|( )|style( )|",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-extent":"closest-corner|closest-side|farthest-corner|farthest-side","radial-gradient()":"radial-gradient( [] )","radial-gradient-syntax":"[[[||]? [at ]?]||]? , ","radial-shape":"circle|ellipse","radial-size":"||{2}",ratio:" [/ ]?","ray()":"ray( &&?&&contain?&&[at ]? )","ray-size":"closest-side|closest-corner|farthest-side|farthest-corner|sides","rect()":"rect( [|auto]{4} [round <'border-radius'>]? )","rectangular-color-space":"srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|lab|oklab|xyz|xyz-d50|xyz-d65","relative-selector":"? ","relative-selector-list":"#","relative-size":"larger|smaller","rem()":"rem( , )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [] )","repeating-linear-gradient()":"repeating-linear-gradient( [] )","repeating-radial-gradient()":"repeating-radial-gradient( [] )","reversed-counter-name":"reversed( )","rgb()":"rgb( #{3} , ? )|rgb( #{3} , ? )|rgb( [||none]{3} [/ [|none]]? )","rgba()":"rgba( #{3} , ? )|rgba( #{3} , ? )|rgba( [||none]{3} [/ [|none]]? )","rotate()":"rotate( [|] )","rotate3d()":"rotate3d( , , , [|] )","rotateX()":"rotateX( [|] )","rotateY()":"rotateY( [|] )","rotateZ()":"rotateZ( [|] )","round()":"round( ? , , )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( [|]? )","scale()":"scale( [|]#{1,2} )","scale3d()":"scale3d( [|]#{3} )","scaleX()":"scaleX( [|] )","scaleY()":"scaleY( [|] )","scaleZ()":"scaleZ( [|] )","scope-end":"","scope-start":"","scroll()":"scroll( [||]? )",scroller:"root|nearest|self","scroll-state-feature":"","scroll-state-in-parens":"( )|( )|","scroll-state-query":"not | [[and ]*|[or ]*]|","selector-list":"","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","sepia()":"sepia( [|]? )",shadow:"inset?&&{2,4}&&?","shadow-t":"[{2,3}&&?]",shape:"rect( , , , )|rect( )","shape-box":"|margin-box","side-or-corner":"[left|right]||[top|bottom]","sign()":"sign( )","signed-integer":"","signless-integer":"","sin()":"sin( )","single-animation":"<'animation-duration'>||||<'animation-delay'>||||||||||[none|]||","single-animation-composition":"replace|add|accumulate","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|||","single-transition":"[none|]||