@capgo/capacitor-inappbrowser 8.23.0 → 8.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -80
- package/dist/docs.json +17 -1
- package/dist/esm/definitions.d.ts +50 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/web.d.ts +39 -11
- package/dist/esm/web.js +324 -64
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +407 -152
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +407 -152
- package/dist/plugin.js.map +1 -1
- package/ios/Sources/InAppBrowserPlugin/InAppBrowserPlugin.swift +1 -1
- package/package.json +2 -2
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/bundled-asset-support.js","esm/definitions.js","esm/index.js","esm/web.js"],"sourcesContent":["/** Default Capacitor local URL settings used when no runtime config is available. */\nexport const BUNDLED_ASSET_DEFAULTS = {\n ios: { scheme: 'capacitor', host: 'localhost' },\n android: { scheme: 'https', host: 'localhost' },\n};\nconst ABSOLUTE_URL_PATTERN = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\nconst RESERVED_WEB_SCHEMES = ['http', 'https'];\n/** Returns true when the input looks like an absolute URL (including protocol-relative URLs). */\nexport function isAbsoluteUrl(url) {\n return ABSOLUTE_URL_PATTERN.test(url) || url.startsWith('//');\n}\n/** Returns true when any path segment is `..`. */\nexport function containsPathTraversal(path) {\n return path.split('/').includes('..');\n}\n/**\n * Normalizes a relative bundled asset path to a leading-slash form.\n * Returns null when the path contains traversal segments.\n */\nexport function normalizeBundledPath(path) {\n const trimmed = path.trim();\n if (!trimmed || trimmed === '/') {\n return '/';\n }\n if (containsPathTraversal(trimmed)) {\n return null;\n }\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n/** Parses a Capacitor local URL into scheme and host components. */\nexport function parseBundledLocalConfig(localUrl) {\n if (!localUrl) {\n return null;\n }\n try {\n const parsed = new URL(localUrl.endsWith('/') ? localUrl : `${localUrl}/`);\n if (!parsed.protocol || !parsed.hostname) {\n return null;\n }\n return {\n scheme: parsed.protocol.replace(/:$/, '').toLowerCase(),\n host: parsed.hostname.toLowerCase(),\n };\n }\n catch (_a) {\n return null;\n }\n}\n/** Returns the scheme WebView navigation should use for bundled assets on a platform. */\nexport function handlerSchemeForPlatform(platform, localConfig) {\n if (platform === 'ios' && RESERVED_WEB_SCHEMES.includes(localConfig.scheme)) {\n return BUNDLED_ASSET_DEFAULTS.ios.scheme;\n }\n if (platform === 'android') {\n if (localConfig.scheme === 'http' || localConfig.scheme === 'https') {\n return localConfig.scheme;\n }\n return BUNDLED_ASSET_DEFAULTS.android.scheme;\n }\n return localConfig.scheme;\n}\n/**\n * Returns true when the URL targets the configured Capacitor local host/scheme\n * (including the platform handler scheme rewrite).\n */\nexport function isBundledLocalUrl(url, platform, localConfig) {\n if (!isAbsoluteUrl(url)) {\n return false;\n }\n try {\n const parsed = new URL(url);\n const scheme = parsed.protocol.replace(/:$/, '').toLowerCase();\n const host = parsed.hostname.toLowerCase();\n const config = localConfig !== null && localConfig !== void 0 ? localConfig : BUNDLED_ASSET_DEFAULTS[platform];\n if (host !== config.host) {\n return false;\n }\n if (parsed.port !== '') {\n return false;\n }\n if (scheme === config.scheme || scheme === handlerSchemeForPlatform(platform, config)) {\n return true;\n }\n return RESERVED_WEB_SCHEMES.includes(scheme) && RESERVED_WEB_SCHEMES.includes(config.scheme);\n }\n catch (_a) {\n return false;\n }\n}\n/** Returns true when the input is a non-empty relative bundled asset path. */\nexport function isRelativeBundledPath(url) {\n const trimmed = url.trim();\n if (!trimmed) {\n return false;\n }\n return !isAbsoluteUrl(trimmed);\n}\nfunction rewriteBundledLocalUrl(url, localConfig, navigationScheme) {\n try {\n const parsed = new URL(url);\n const host = parsed.hostname.toLowerCase();\n const scheme = parsed.protocol.replace(/:$/, '').toLowerCase();\n if (host !== localConfig.host || scheme === navigationScheme) {\n return null;\n }\n const pathname = parsed.pathname || '/';\n const search = parsed.search;\n const hash = parsed.hash;\n const userinfo = parsed.username.length > 0 ? `${parsed.username}${parsed.password.length > 0 ? `:${parsed.password}` : ''}@` : '';\n return `${navigationScheme}://${userinfo}${host}${pathname}${search}${hash}`;\n }\n catch (_a) {\n return null;\n }\n}\n/**\n * Resolves a bundled asset URL for the given platform.\n * Relative paths become platform-local URLs; bundled local URLs may be rewritten to the handler scheme.\n */\nexport function resolveBundledAssetUrl(url, platform, localConfig) {\n const trimmed = url.trim();\n const config = localConfig !== null && localConfig !== void 0 ? localConfig : BUNDLED_ASSET_DEFAULTS[platform];\n const navigationScheme = handlerSchemeForPlatform(platform, config);\n if (isRelativeBundledPath(trimmed)) {\n const path = normalizeBundledPath(trimmed);\n if (path === null) {\n return null;\n }\n return {\n url: `${navigationScheme}://${config.host}${path}`,\n };\n }\n if (isBundledLocalUrl(trimmed, platform, config)) {\n const rewritten = rewriteBundledLocalUrl(trimmed, config, navigationScheme);\n return {\n url: rewritten !== null && rewritten !== void 0 ? rewritten : trimmed,\n };\n }\n return {\n url: trimmed,\n };\n}\n/**\n * Resolves relative bundled paths for legacy native plugins that do not perform native resolution.\n * Throws when the path is invalid.\n */\nexport function resolveLegacyNativeWebViewUrl(url, platform, localConfig) {\n if (!isRelativeBundledPath(url)) {\n return url;\n }\n const resolution = resolveBundledAssetUrl(url, platform, localConfig);\n if (resolution === null) {\n throw new Error('Invalid bundled asset path');\n }\n return resolution.url;\n}\n//# sourceMappingURL=bundled-asset-support.js.map","export var BackgroundColor;\n(function (BackgroundColor) {\n BackgroundColor[\"WHITE\"] = \"white\";\n BackgroundColor[\"BLACK\"] = \"black\";\n})(BackgroundColor || (BackgroundColor = {}));\nexport var ToolBarType;\n(function (ToolBarType) {\n /**\n * Shows a simple toolbar with just a close button and share button\n * @since 0.1.0\n */\n ToolBarType[\"ACTIVITY\"] = \"activity\";\n /**\n * Shows a simple toolbar with just a close button\n * @since 7.6.8\n */\n ToolBarType[\"COMPACT\"] = \"compact\";\n /**\n * Shows a full navigation toolbar with back/forward buttons\n * @since 0.1.0\n */\n ToolBarType[\"NAVIGATION\"] = \"navigation\";\n /**\n * Shows no toolbar\n * @since 0.1.0\n */\n ToolBarType[\"BLANK\"] = \"blank\";\n})(ToolBarType || (ToolBarType = {}));\nexport var InvisibilityMode;\n(function (InvisibilityMode) {\n /**\n * WebView is aware it is hidden (dimensions may be zero).\n */\n InvisibilityMode[\"AWARE\"] = \"AWARE\";\n /**\n * WebView is hidden but reports fullscreen dimensions (uses alpha=0 to remain invisible).\n */\n InvisibilityMode[\"FAKE_VISIBLE\"] = \"FAKE_VISIBLE\";\n})(InvisibilityMode || (InvisibilityMode = {}));\nexport var CloseAction;\n(function (CloseAction) {\n /**\n * The toolbar close button closes and destroys the webview.\n */\n CloseAction[\"CLOSE\"] = \"close\";\n /**\n * The toolbar close button hides the webview so it can be shown again.\n */\n CloseAction[\"HIDE\"] = \"hide\";\n})(CloseAction || (CloseAction = {}));\nexport var CloseButtonPosition;\n(function (CloseButtonPosition) {\n /**\n * Leading edge of the toolbar (left in left-to-right layouts).\n */\n CloseButtonPosition[\"START\"] = \"start\";\n /**\n * Trailing edge of the toolbar (right in left-to-right layouts).\n */\n CloseButtonPosition[\"END\"] = \"end\";\n})(CloseButtonPosition || (CloseButtonPosition = {}));\n//# sourceMappingURL=definitions.js.map","import { Capacitor, registerPlugin } from '@capacitor/core';\nimport { containsPathTraversal, isRelativeBundledPath, parseBundledLocalConfig, resolveLegacyNativeWebViewUrl, } from './bundled-asset-support';\nconst CAPGO_PLUGIN_NAME = 'CapgoInAppBrowser';\nconst PREVIOUS_PLUGIN_NAME = 'InAppBrowser';\nfunction resolvePluginName() {\n if (!Capacitor.isNativePlatform()) {\n return CAPGO_PLUGIN_NAME;\n }\n if (Capacitor.isPluginAvailable(CAPGO_PLUGIN_NAME)) {\n return CAPGO_PLUGIN_NAME;\n }\n if (Capacitor.isPluginAvailable(PREVIOUS_PLUGIN_NAME)) {\n return PREVIOUS_PLUGIN_NAME;\n }\n console.warn(`[InAppBrowser] Neither '${CAPGO_PLUGIN_NAME}' nor '${PREVIOUS_PLUGIN_NAME}' native plugin detected. ` +\n 'Ensure @capgo/capacitor-inappbrowser native code is installed.');\n return CAPGO_PLUGIN_NAME;\n}\nconst inAppBrowserImplementations = {\n web: () => import('./web').then((m) => new m.InAppBrowserWeb()),\n};\nfunction assertValidBundledAssetPath(url) {\n if (isRelativeBundledPath(url) && containsPathTraversal(url)) {\n throw new Error('Invalid bundled asset path');\n }\n}\nconst activePluginName = resolvePluginName();\nfunction bundledAssetPlatform() {\n return Capacitor.getPlatform() === 'ios' ? 'ios' : 'android';\n}\nfunction getConfiguredLocalConfig() {\n if (!Capacitor.isNativePlatform()) {\n return null;\n }\n const getServerUrl = Capacitor.getServerUrl;\n if (typeof getServerUrl !== 'function') {\n return null;\n }\n return parseBundledLocalConfig(getServerUrl());\n}\nfunction prepareUrlOptions(options) {\n assertValidBundledAssetPath(options.url);\n if (!Capacitor.isNativePlatform() || activePluginName !== PREVIOUS_PLUGIN_NAME) {\n return options;\n }\n return Object.assign(Object.assign({}, options), { url: resolveLegacyNativeWebViewUrl(options.url, bundledAssetPlatform(), getConfiguredLocalConfig()) });\n}\nconst baseInAppBrowser = registerPlugin(activePluginName, inAppBrowserImplementations);\nconst InAppBrowser = new Proxy(baseInAppBrowser, {\n get(target, prop, receiver) {\n if (prop === 'openWebView') {\n return (options) => target.openWebView(prepareUrlOptions(options));\n }\n if (prop === 'setUrl') {\n return (options) => target.setUrl(prepareUrlOptions(options));\n }\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n },\n});\nfunction arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\nfunction headersToRecord(headers) {\n const result = {};\n headers.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\nfunction errorMessage(error) {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {\n return error.message;\n }\n return String(error);\n}\nfunction isStaleProxyResponseError(error) {\n const message = errorMessage(error);\n return message.includes('No proxy handler found') || message.includes('Target WebView not found for proxy request');\n}\nfunction isProxyResponse(value) {\n return (value !== null &&\n typeof value === 'object' &&\n 'status' in value &&\n 'headers' in value &&\n !(value instanceof Response));\n}\nfunction isProxyRequestOverride(value) {\n return value !== null && typeof value === 'object' && 'url' in value && !(value instanceof Response);\n}\nfunction isProxyDecision(value) {\n return (value !== null && typeof value === 'object' && ('request' in value || 'response' in value || 'cancel' in value));\n}\nasync function sendProxyDecision(requestId, webviewId, decision, phase) {\n try {\n await InAppBrowser.handleProxyRequest({\n requestId,\n webviewId,\n decision,\n phase,\n });\n }\n catch (error) {\n if (isStaleProxyResponseError(error)) {\n return;\n }\n throw error;\n }\n}\nasync function resolveProxyHandlerDecision(callback, event) {\n try {\n const result = await callback(event);\n if (result === null) {\n return null;\n }\n if (isProxyDecision(result)) {\n return result;\n }\n if (isProxyRequestOverride(result)) {\n return { request: result };\n }\n if (isProxyResponse(result)) {\n return { response: result };\n }\n const cloned = result.clone();\n const buffer = await cloned.arrayBuffer();\n return {\n response: {\n body: arrayBufferToBase64(buffer),\n status: result.status,\n headers: headersToRecord(result.headers),\n },\n };\n }\n catch (_a) {\n return null;\n }\n}\nconst addProxyHandler = (callback) => {\n return InAppBrowser.addListener('proxyRequest', (event) => {\n void (async () => {\n const decision = await resolveProxyHandlerDecision(callback, event);\n await sendProxyDecision(event.requestId, event.webviewId, decision, event.phase);\n })();\n });\n};\nexport * from './definitions';\nexport { InAppBrowser, addProxyHandler };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nexport class InAppBrowserWeb extends WebPlugin {\n clearAllCookies() {\n console.log('clearAllCookies');\n return Promise.resolve();\n }\n clearCache() {\n console.log('clearCache');\n return Promise.resolve();\n }\n clearAllBrowsingData() {\n console.log('clearAllBrowsingData');\n return Promise.resolve();\n }\n async open(options) {\n console.log('open', options);\n return options;\n }\n async clearCookies(options) {\n console.log('cleanCookies', options);\n return;\n }\n async getCookies(options) {\n // Web implementation to get cookies\n return options;\n }\n async openWebView(options) {\n if (options.fullscreen) {\n throw this.unimplemented('Fullscreen is only supported by native openWebView presentations.');\n }\n console.log('openWebView', options);\n return options;\n }\n async executeScript({ code }) {\n console.log('code', code);\n return code;\n }\n async close(options) {\n console.log('close', options);\n return;\n }\n async hide(options) {\n console.log('hide', options);\n return;\n }\n async show(options) {\n console.log('show', options);\n return;\n }\n async sendToBack(options) {\n console.log('sendToBack not supported on web', options);\n return;\n }\n async bringToFront(options) {\n console.log('bringToFront not supported on web', options);\n return;\n }\n async dispatchInputEvent(options) {\n console.log('dispatchInputEvent not supported on web', options);\n return;\n }\n async setUrl(options) {\n console.log('setUrl', options.url);\n return;\n }\n async reload(options) {\n console.log('reload', options);\n return;\n }\n async postMessage(options) {\n console.log('postMessage', options);\n return options;\n }\n async takeScreenshot(options) {\n console.log('takeScreenshot not supported on web', options);\n throw this.unimplemented('Screenshots are not supported on web.');\n }\n async goBack() {\n console.log('goBack');\n return;\n }\n async getPluginVersion() {\n return { version: 'web' };\n }\n async updateDimensions(options) {\n console.log('updateDimensions', options);\n // Web platform doesn't support dimension control\n return;\n }\n async handleProxyRequest(options) {\n console.log('handleProxyRequest not supported on web', options);\n return;\n }\n async setEnabledSafeTopMargin(options) {\n console.log('setEnabledSafeTopMargin not supported on web', options);\n return;\n }\n async setFullscreen(options) {\n console.log('setFullscreen not supported on web', options);\n throw this.unimplemented('Fullscreen is only supported by native openWebView presentations.');\n }\n async getFullscreen(options) {\n console.log('getFullscreen not supported on web', options);\n throw this.unimplemented('Fullscreen is only supported by native openWebView presentations.');\n }\n async setEnabledSafeBottomMargin(options) {\n console.log('setEnabledSafeBottomMargin not supported on web', options);\n return;\n }\n async openSecureWindow(options) {\n const w = 600;\n const h = 550;\n const settings = [\n ['width', w],\n ['height', h],\n ['left', screen.width / 2 - w / 2],\n ['top', screen.height / 2 - h / 2],\n ]\n .map((x) => x.join('='))\n .join(',');\n const popup = window.open(options.authEndpoint, 'Authorization', settings);\n if (!popup) {\n throw new Error('Failed to open secure window');\n }\n if (typeof popup.focus === 'function') {\n popup.focus();\n }\n return new Promise((resolve, reject) => {\n const bc = new BroadcastChannel(options.broadcastChannelName || 'oauth-channel');\n bc.addEventListener('message', (event) => {\n if (event.data.startsWith(options.redirectUri)) {\n bc.close();\n resolve({ redirectedUri: event.data });\n }\n else {\n bc.close();\n reject(new Error('Redirect URI does not match, expected ' + options.redirectUri + ' but got ' + event.data));\n }\n });\n setTimeout(() => {\n bc.close();\n reject(new Error('The sign-in flow timed out'));\n }, 5 * 60000);\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["BackgroundColor","ToolBarType","InvisibilityMode","CloseAction","CloseButtonPosition","Capacitor","registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/bundled-asset-support.js","esm/web.js","esm/definitions.js","esm/index.js"],"sourcesContent":["/** Default Capacitor local URL settings used when no runtime config is available. */\nexport const BUNDLED_ASSET_DEFAULTS = {\n ios: { scheme: 'capacitor', host: 'localhost' },\n android: { scheme: 'https', host: 'localhost' },\n};\nconst ABSOLUTE_URL_PATTERN = /^[a-zA-Z][a-zA-Z\\d+\\-.]*:/;\nconst RESERVED_WEB_SCHEMES = ['http', 'https'];\n/** Returns true when the input looks like an absolute URL (including protocol-relative URLs). */\nexport function isAbsoluteUrl(url) {\n return ABSOLUTE_URL_PATTERN.test(url) || url.startsWith('//');\n}\n/** Returns true when any path segment is `..`. */\nexport function containsPathTraversal(path) {\n return path.split('/').includes('..');\n}\n/**\n * Normalizes a relative bundled asset path to a leading-slash form.\n * Returns null when the path contains traversal segments.\n */\nexport function normalizeBundledPath(path) {\n const trimmed = path.trim();\n if (!trimmed || trimmed === '/') {\n return '/';\n }\n if (containsPathTraversal(trimmed)) {\n return null;\n }\n return trimmed.startsWith('/') ? trimmed : `/${trimmed}`;\n}\n/** Parses a Capacitor local URL into scheme and host components. */\nexport function parseBundledLocalConfig(localUrl) {\n if (!localUrl) {\n return null;\n }\n try {\n const parsed = new URL(localUrl.endsWith('/') ? localUrl : `${localUrl}/`);\n if (!parsed.protocol || !parsed.hostname) {\n return null;\n }\n return {\n scheme: parsed.protocol.replace(/:$/, '').toLowerCase(),\n host: parsed.hostname.toLowerCase(),\n };\n }\n catch (_a) {\n return null;\n }\n}\n/** Returns the scheme WebView navigation should use for bundled assets on a platform. */\nexport function handlerSchemeForPlatform(platform, localConfig) {\n if (platform === 'ios' && RESERVED_WEB_SCHEMES.includes(localConfig.scheme)) {\n return BUNDLED_ASSET_DEFAULTS.ios.scheme;\n }\n if (platform === 'android') {\n if (localConfig.scheme === 'http' || localConfig.scheme === 'https') {\n return localConfig.scheme;\n }\n return BUNDLED_ASSET_DEFAULTS.android.scheme;\n }\n return localConfig.scheme;\n}\n/**\n * Returns true when the URL targets the configured Capacitor local host/scheme\n * (including the platform handler scheme rewrite).\n */\nexport function isBundledLocalUrl(url, platform, localConfig) {\n if (!isAbsoluteUrl(url)) {\n return false;\n }\n try {\n const parsed = new URL(url);\n const scheme = parsed.protocol.replace(/:$/, '').toLowerCase();\n const host = parsed.hostname.toLowerCase();\n const config = localConfig !== null && localConfig !== void 0 ? localConfig : BUNDLED_ASSET_DEFAULTS[platform];\n if (host !== config.host) {\n return false;\n }\n if (parsed.port !== '') {\n return false;\n }\n if (scheme === config.scheme || scheme === handlerSchemeForPlatform(platform, config)) {\n return true;\n }\n return RESERVED_WEB_SCHEMES.includes(scheme) && RESERVED_WEB_SCHEMES.includes(config.scheme);\n }\n catch (_a) {\n return false;\n }\n}\n/** Returns true when the input is a non-empty relative bundled asset path. */\nexport function isRelativeBundledPath(url) {\n const trimmed = url.trim();\n if (!trimmed) {\n return false;\n }\n return !isAbsoluteUrl(trimmed);\n}\nfunction rewriteBundledLocalUrl(url, localConfig, navigationScheme) {\n try {\n const parsed = new URL(url);\n const host = parsed.hostname.toLowerCase();\n const scheme = parsed.protocol.replace(/:$/, '').toLowerCase();\n if (host !== localConfig.host || scheme === navigationScheme) {\n return null;\n }\n const pathname = parsed.pathname || '/';\n const search = parsed.search;\n const hash = parsed.hash;\n const userinfo = parsed.username.length > 0 ? `${parsed.username}${parsed.password.length > 0 ? `:${parsed.password}` : ''}@` : '';\n return `${navigationScheme}://${userinfo}${host}${pathname}${search}${hash}`;\n }\n catch (_a) {\n return null;\n }\n}\n/**\n * Resolves a bundled asset URL for the given platform.\n * Relative paths become platform-local URLs; bundled local URLs may be rewritten to the handler scheme.\n */\nexport function resolveBundledAssetUrl(url, platform, localConfig) {\n const trimmed = url.trim();\n const config = localConfig !== null && localConfig !== void 0 ? localConfig : BUNDLED_ASSET_DEFAULTS[platform];\n const navigationScheme = handlerSchemeForPlatform(platform, config);\n if (isRelativeBundledPath(trimmed)) {\n const path = normalizeBundledPath(trimmed);\n if (path === null) {\n return null;\n }\n return {\n url: `${navigationScheme}://${config.host}${path}`,\n };\n }\n if (isBundledLocalUrl(trimmed, platform, config)) {\n const rewritten = rewriteBundledLocalUrl(trimmed, config, navigationScheme);\n return {\n url: rewritten !== null && rewritten !== void 0 ? rewritten : trimmed,\n };\n }\n return {\n url: trimmed,\n };\n}\n/**\n * Resolves relative bundled paths for legacy native plugins that do not perform native resolution.\n * Throws when the path is invalid.\n */\nexport function resolveLegacyNativeWebViewUrl(url, platform, localConfig) {\n if (!isRelativeBundledPath(url)) {\n return url;\n }\n const resolution = resolveBundledAssetUrl(url, platform, localConfig);\n if (resolution === null) {\n throw new Error('Invalid bundled asset path');\n }\n return resolution.url;\n}\n//# sourceMappingURL=bundled-asset-support.js.map","import { WebPlugin } from '@capacitor/core';\nconst HTML_ATTRIBUTE_ESCAPES = { '&': '&', '\"': '"', '<': '<', '>': '>' };\nconst escapeHtmlAttribute = (value) => value.replace(/[&\"<>]/g, (c) => HTML_ATTRIBUTE_ESCAPES[c]);\nconst OPENING_HEAD_TAG = /<head(?:\\s[^>]*)?>/i;\nconst NATIVE_BRIDGE_SCRIPT = \"(function(){window.addEventListener('message',function(e){if(e.source===window.parent){window.dispatchEvent(new CustomEvent('messageFromNative',{detail:e.data}));}});})();\";\nexport const formatDoctype = (doctype) => {\n if (!doctype) {\n return '';\n }\n if (doctype.publicId) {\n const system = doctype.systemId ? ` \"${doctype.systemId}\"` : '';\n return `<!DOCTYPE ${doctype.name} PUBLIC \"${doctype.publicId}\"${system}>`;\n }\n if (doctype.systemId) {\n return `<!DOCTYPE ${doctype.name} SYSTEM \"${doctype.systemId}\">`;\n }\n return `<!DOCTYPE ${doctype.name}>`;\n};\nconst serializeParsedHtml = (doc) => formatDoctype(doc.doctype) + doc.documentElement.outerHTML;\nconst TRUSTED_TYPES_POLICY_NAME = 'capgo-inappbrowser';\nexport const TRUSTED_TYPES_POLICY_BLOCKED_MESSAGE = \"InAppBrowser could not create the Trusted Types policy 'capgo-inappbrowser'. \" +\n 'Add capgo-inappbrowser to the host app Content-Security-Policy trusted-types directive.';\nlet trustedHtmlPolicy;\n/** Clears the lazy Trusted Types policy cache (for tests). */\nexport const resetTrustedHtmlPolicyCache = () => {\n trustedHtmlPolicy = undefined;\n};\nconst getTrustedHtmlPolicy = () => {\n var _a;\n if (trustedHtmlPolicy !== undefined) {\n return trustedHtmlPolicy;\n }\n const trustedTypes = (_a = globalThis.window) === null || _a === void 0 ? void 0 : _a.trustedTypes;\n if (!trustedTypes) {\n trustedHtmlPolicy = null;\n return null;\n }\n try {\n trustedHtmlPolicy = trustedTypes.createPolicy(TRUSTED_TYPES_POLICY_NAME, {\n createHTML: (value) => value,\n });\n return trustedHtmlPolicy;\n }\n catch (_b) {\n throw new Error(TRUSTED_TYPES_POLICY_BLOCKED_MESSAGE);\n }\n};\nexport const createTrustedHtml = (html) => {\n const policy = getTrustedHtmlPolicy();\n return policy ? policy.createHTML(html) : html;\n};\nconst trustedHtmlToString = (html) => (typeof html === 'string' ? html : String(html));\nexport const injectNativeBridge = (html) => {\n if (typeof DOMParser !== 'undefined') {\n const doc = new DOMParser().parseFromString(createTrustedHtml(html), 'text/html');\n const script = doc.createElement('script');\n script.textContent = NATIVE_BRIDGE_SCRIPT;\n if (doc.body) {\n doc.body.appendChild(script);\n return serializeParsedHtml(doc);\n }\n }\n return `${html}<script>${NATIVE_BRIDGE_SCRIPT}</script>`;\n};\n/** Whether a webview message origin may replace the postMessage target (full origin string). */\nexport function mayAdoptPostMessageOrigin(openedUrl, messageOrigin) {\n try {\n const opened = new URL(openedUrl);\n const incoming = new URL(messageOrigin);\n if (opened.protocol !== incoming.protocol) {\n return false;\n }\n if (opened.port !== incoming.port) {\n return false;\n }\n if (opened.origin === incoming.origin) {\n return true;\n }\n const openedHost = opened.hostname;\n const incomingHost = incoming.hostname;\n return incomingHost === openedHost || incomingHost.endsWith(`.${openedHost}`);\n }\n catch (_a) {\n return false;\n }\n}\n/**\n * Wraps fetched HTML in a sandboxed iframe (opaque origin, no allow-same-origin) so the remote page\n * cannot read the app's storage or DOM even though the wrapper is a Blob created by the app origin.\n * A <base href> pointing at the final response URL keeps relative URLs resolving against the target.\n * The wrapper relays messages from the app (its opener) into the sandboxed frame.\n */\nexport const buildIsolatedDocument = (html, baseHref) => {\n const baseTag = `<base href=\"${escapeHtmlAttribute(baseHref)}\">`;\n let inner = OPENING_HEAD_TAG.test(html)\n ? html.replace(OPENING_HEAD_TAG, (tag) => `${tag}${baseTag}`)\n : `${baseTag}${html}`;\n inner = injectNativeBridge(inner);\n const srcdoc = trustedHtmlToString(createTrustedHtml(inner));\n const sandbox = 'allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation';\n const relay = \"(function(){var f=document.getElementById('capgo-iab-frame');\" +\n \"window.addEventListener('message',function(e){if(e.source===window.opener&&f&&f.contentWindow){f.contentWindow.postMessage(e.data,'*');}});})();\";\n return ('<!doctype html><html><head><meta charset=\"utf-8\">' +\n '<style>html,body,iframe{margin:0;padding:0;border:0;width:100%;height:100%;display:block}</style></head>' +\n `<body><iframe id=\"capgo-iab-frame\" sandbox=\"${sandbox}\" referrerpolicy=\"no-referrer\" srcdoc=\"${escapeHtmlAttribute(srcdoc)}\"></iframe>` +\n `<script>${relay}</script></body></html>`);\n};\nexport class InAppBrowserWeb extends WebPlugin {\n constructor() {\n super();\n this.webViews = new Map();\n this.webViewCounter = 0;\n this.handleWindowMessage = (event) => {\n const match = Array.from(this.webViews.entries()).find(([, entry]) => this.isFromWebView(entry, event.source));\n if (!match) {\n return;\n }\n const [id, entry] = match;\n if (entry.window === event.source &&\n event.origin &&\n event.origin !== 'null' &&\n mayAdoptPostMessageOrigin(entry.url, event.origin)) {\n entry.origin = event.origin;\n }\n let data = event.data;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n }\n catch (_a) {\n this.notifyListeners('messageFromWebview', { id, rawMessage: event.data });\n return;\n }\n }\n if (data && typeof data === 'object' && !Array.isArray(data)) {\n this.notifyListeners('messageFromWebview', Object.assign(Object.assign({}, data), { id }));\n }\n else if (typeof event.data === 'string') {\n this.notifyListeners('messageFromWebview', { id, rawMessage: event.data });\n }\n };\n if (globalThis.window !== undefined) {\n globalThis.window.addEventListener('message', this.handleWindowMessage);\n }\n }\n isFromWebView(entry, source) {\n if (!source) {\n return false;\n }\n if (entry.window === source) {\n return true;\n }\n if (!entry.objectUrl) {\n return false;\n }\n try {\n const frame = entry.window.document.getElementById('capgo-iab-frame');\n return (frame === null || frame === void 0 ? void 0 : frame.contentWindow) === source;\n }\n catch (_a) {\n return false;\n }\n }\n watchClosed(id) {\n const entry = this.webViews.get(id);\n if (!(entry === null || entry === void 0 ? void 0 : entry.window.closed)) {\n return;\n }\n globalThis.clearInterval(entry.timer);\n if (entry.objectUrl) {\n URL.revokeObjectURL(entry.objectUrl);\n }\n this.webViews.delete(id);\n this.notifyListeners('closeEvent', { id, url: entry.url });\n }\n resolveWebViewEntry(id) {\n if (id) {\n const entry = this.webViews.get(id);\n if (entry && !entry.window.closed) {\n return { id, entry };\n }\n return undefined;\n }\n const match = Array.from(this.webViews.entries())\n .reverse()\n .find(([, entry]) => !entry.window.closed);\n if (!match) {\n return undefined;\n }\n return { id: match[0], entry: match[1] };\n }\n resolveTargetOrigin(url) {\n var _a, _b;\n try {\n return new URL(url).origin;\n }\n catch (_c) {\n return (_b = (_a = globalThis.location) === null || _a === void 0 ? void 0 : _a.origin) !== null && _b !== void 0 ? _b : 'null';\n }\n }\n hasHeaders(headers) {\n return headers != null && Object.keys(headers).length > 0;\n }\n navigateOpenedWindow(id, win, url, headers) {\n if (!this.hasHeaders(headers)) {\n win.location.href = url;\n return;\n }\n void (async () => {\n var _a, _b;\n try {\n const response = await fetch(url, { headers });\n if (!response.ok) {\n throw new Error(`Request failed with status ${response.status}`);\n }\n const html = await response.text();\n const parsed = new URL(response.url || url, (_b = (_a = globalThis.location) === null || _a === void 0 ? void 0 : _a.href) !== null && _b !== void 0 ? _b : 'https://localhost/');\n const baseHref = `${parsed.origin}${parsed.pathname}${parsed.search}`;\n const blob = new Blob([buildIsolatedDocument(html, baseHref)], { type: 'text/html;charset=utf-8' });\n const objectUrl = URL.createObjectURL(blob);\n const entry = this.webViews.get(id);\n if (!entry || win.closed) {\n URL.revokeObjectURL(objectUrl);\n return;\n }\n entry.objectUrl = objectUrl;\n win.location.href = objectUrl;\n }\n catch (error) {\n console.error('[InAppBrowser] Failed to load web view with headers', error);\n win.close();\n this.watchClosed(id);\n }\n })();\n }\n clearAllCookies() {\n console.log('clearAllCookies');\n return Promise.resolve();\n }\n clearCache() {\n console.log('clearCache');\n return Promise.resolve();\n }\n clearAllBrowsingData() {\n console.log('clearAllBrowsingData');\n return Promise.resolve();\n }\n open(options) {\n const opened = globalThis.open('', '_blank');\n if (!opened) {\n return Promise.reject(new Error('Popup blocked'));\n }\n opened.opener = null;\n opened.location.href = options.url;\n return Promise.resolve();\n }\n clearCookies(options) {\n console.log('cleanCookies', options);\n return Promise.resolve();\n }\n getCookies(options) {\n return Promise.resolve(options);\n }\n openWebView(options) {\n var _a, _b, _c;\n if (options.fullscreen) {\n return Promise.reject(this.unimplemented('Fullscreen is only supported by native openWebView presentations.'));\n }\n const { popup = false, width, height } = (_a = options.web) !== null && _a !== void 0 ? _a : {};\n const features = popup\n ? ['popup=yes', width ? `width=${width}` : '', height ? `height=${height}` : ''].filter(Boolean).join(',')\n : '';\n const opened = globalThis.open('', '_blank', features);\n if (!opened) {\n return Promise.reject(new Error('Popup blocked'));\n }\n const id = `web-${++this.webViewCounter}`;\n const timer = globalThis.setInterval(() => this.watchClosed(id), 500);\n // Header loads render inside an app-origin wrapper document, so messages target the app origin there.\n const origin = this.hasHeaders(options.headers)\n ? ((_c = (_b = globalThis.location) === null || _b === void 0 ? void 0 : _b.origin) !== null && _c !== void 0 ? _c : 'null')\n : this.resolveTargetOrigin(options.url);\n this.webViews.set(id, { window: opened, url: options.url, timer, origin });\n this.navigateOpenedWindow(id, opened, options.url, options.headers);\n return Promise.resolve({ id });\n }\n executeScript({ code }) {\n console.log('code', code);\n return Promise.resolve(code);\n }\n close(options) {\n const resolved = this.resolveWebViewEntry(options === null || options === void 0 ? void 0 : options.id);\n if (!resolved) {\n return Promise.resolve();\n }\n resolved.entry.window.close();\n this.watchClosed(resolved.id);\n return Promise.resolve();\n }\n hide(_options) {\n console.log('hide', _options);\n return Promise.resolve();\n }\n show(_options) {\n console.log('show', _options);\n return Promise.resolve();\n }\n sendToBack(_options) {\n console.log('sendToBack not supported on web', _options);\n return Promise.resolve();\n }\n bringToFront(_options) {\n console.log('bringToFront not supported on web', _options);\n return Promise.resolve();\n }\n dispatchInputEvent(_options) {\n console.log('dispatchInputEvent not supported on web', _options);\n return Promise.resolve();\n }\n setUrl(options) {\n console.log('setUrl', options.url);\n return Promise.resolve();\n }\n reload(options) {\n console.log('reload', options);\n return Promise.resolve();\n }\n postMessage(options) {\n const resolved = this.resolveWebViewEntry(options.id);\n if (resolved) {\n resolved.entry.window.postMessage(options.detail, resolved.entry.origin);\n }\n return Promise.resolve();\n }\n takeScreenshot(_options) {\n console.log('takeScreenshot not supported on web', _options);\n return Promise.reject(this.unimplemented('Screenshots are not supported on web.'));\n }\n goBack() {\n console.log('goBack');\n return Promise.resolve();\n }\n getPluginVersion() {\n return Promise.resolve({ version: 'web' });\n }\n updateDimensions(_options) {\n console.log('updateDimensions', _options);\n return Promise.resolve();\n }\n handleProxyRequest(options) {\n console.log('handleProxyRequest not supported on web', options);\n return Promise.resolve();\n }\n setEnabledSafeTopMargin(_options) {\n console.log('setEnabledSafeTopMargin not supported on web', _options);\n return Promise.resolve();\n }\n setFullscreen(options) {\n console.log('setFullscreen not supported on web', options);\n return Promise.reject(this.unimplemented('Fullscreen is only supported by native openWebView presentations.'));\n }\n getFullscreen(_options) {\n console.log('getFullscreen not supported on web', _options);\n return Promise.reject(this.unimplemented('Fullscreen is only supported by native openWebView presentations.'));\n }\n setEnabledSafeBottomMargin(_options) {\n console.log('setEnabledSafeBottomMargin not supported on web', _options);\n return Promise.resolve();\n }\n async openSecureWindow(options) {\n const w = 600;\n const h = 550;\n const settings = [\n ['width', w],\n ['height', h],\n ['left', screen.width / 2 - w / 2],\n ['top', screen.height / 2 - h / 2],\n ]\n .map((x) => x.join('='))\n .join(',');\n const popup = globalThis.open(options.authEndpoint, 'Authorization', settings);\n if (!popup) {\n throw new Error('Failed to open secure window');\n }\n if (typeof popup.focus === 'function') {\n popup.focus();\n }\n return new Promise((resolve, reject) => {\n const bc = new BroadcastChannel(options.broadcastChannelName || 'oauth-channel');\n bc.addEventListener('message', (event) => {\n if (event.data.startsWith(options.redirectUri)) {\n bc.close();\n resolve({ redirectedUri: event.data });\n }\n else {\n bc.close();\n reject(new Error('Redirect URI does not match, expected ' + options.redirectUri + ' but got ' + event.data));\n }\n });\n setTimeout(() => {\n bc.close();\n reject(new Error('The sign-in flow timed out'));\n }, 5 * 60000);\n });\n }\n}\n//# sourceMappingURL=web.js.map","export var BackgroundColor;\n(function (BackgroundColor) {\n BackgroundColor[\"WHITE\"] = \"white\";\n BackgroundColor[\"BLACK\"] = \"black\";\n})(BackgroundColor || (BackgroundColor = {}));\nexport var ToolBarType;\n(function (ToolBarType) {\n /**\n * Shows a simple toolbar with just a close button and share button\n * @since 0.1.0\n */\n ToolBarType[\"ACTIVITY\"] = \"activity\";\n /**\n * Shows a simple toolbar with just a close button\n * @since 7.6.8\n */\n ToolBarType[\"COMPACT\"] = \"compact\";\n /**\n * Shows a full navigation toolbar with back/forward buttons\n * @since 0.1.0\n */\n ToolBarType[\"NAVIGATION\"] = \"navigation\";\n /**\n * Shows no toolbar\n * @since 0.1.0\n */\n ToolBarType[\"BLANK\"] = \"blank\";\n})(ToolBarType || (ToolBarType = {}));\nexport var InvisibilityMode;\n(function (InvisibilityMode) {\n /**\n * WebView is aware it is hidden (dimensions may be zero).\n */\n InvisibilityMode[\"AWARE\"] = \"AWARE\";\n /**\n * WebView is hidden but reports fullscreen dimensions (uses alpha=0 to remain invisible).\n */\n InvisibilityMode[\"FAKE_VISIBLE\"] = \"FAKE_VISIBLE\";\n})(InvisibilityMode || (InvisibilityMode = {}));\nexport var CloseAction;\n(function (CloseAction) {\n /**\n * The toolbar close button closes and destroys the webview.\n */\n CloseAction[\"CLOSE\"] = \"close\";\n /**\n * The toolbar close button hides the webview so it can be shown again.\n */\n CloseAction[\"HIDE\"] = \"hide\";\n})(CloseAction || (CloseAction = {}));\nexport var CloseButtonPosition;\n(function (CloseButtonPosition) {\n /**\n * Leading edge of the toolbar (left in left-to-right layouts).\n */\n CloseButtonPosition[\"START\"] = \"start\";\n /**\n * Trailing edge of the toolbar (right in left-to-right layouts).\n */\n CloseButtonPosition[\"END\"] = \"end\";\n})(CloseButtonPosition || (CloseButtonPosition = {}));\n//# sourceMappingURL=definitions.js.map","import { Capacitor, registerPlugin } from '@capacitor/core';\nimport { containsPathTraversal, isRelativeBundledPath, parseBundledLocalConfig, resolveLegacyNativeWebViewUrl, } from './bundled-asset-support';\nimport { InAppBrowserWeb } from './web';\nconst CAPGO_PLUGIN_NAME = 'CapgoInAppBrowser';\nconst PREVIOUS_PLUGIN_NAME = 'InAppBrowser';\nfunction resolvePluginName() {\n if (!Capacitor.isNativePlatform()) {\n return CAPGO_PLUGIN_NAME;\n }\n if (Capacitor.isPluginAvailable(CAPGO_PLUGIN_NAME)) {\n return CAPGO_PLUGIN_NAME;\n }\n if (Capacitor.isPluginAvailable(PREVIOUS_PLUGIN_NAME)) {\n return PREVIOUS_PLUGIN_NAME;\n }\n console.warn(`[InAppBrowser] Neither '${CAPGO_PLUGIN_NAME}' nor '${PREVIOUS_PLUGIN_NAME}' native plugin detected. ` +\n 'Ensure @capgo/capacitor-inappbrowser native code is installed.');\n return CAPGO_PLUGIN_NAME;\n}\nlet webImplementation;\nconst inAppBrowserImplementations = {\n // Imported statically so the first openWebView() reaches window.open without awaiting a chunk load,\n // which can outlast the browser's user-activation window and get the popup blocked.\n // Memoized so concurrent first calls share one instance (one id counter and window map).\n web: () => (webImplementation !== null && webImplementation !== void 0 ? webImplementation : (webImplementation = new InAppBrowserWeb())),\n};\nfunction assertValidBundledAssetPath(url) {\n if (isRelativeBundledPath(url) && containsPathTraversal(url)) {\n throw new Error('Invalid bundled asset path');\n }\n}\nconst activePluginName = resolvePluginName();\nfunction bundledAssetPlatform() {\n return Capacitor.getPlatform() === 'ios' ? 'ios' : 'android';\n}\nfunction getConfiguredLocalConfig() {\n if (!Capacitor.isNativePlatform()) {\n return null;\n }\n const getServerUrl = Capacitor.getServerUrl;\n if (typeof getServerUrl !== 'function') {\n return null;\n }\n return parseBundledLocalConfig(getServerUrl());\n}\nfunction prepareUrlOptions(options) {\n assertValidBundledAssetPath(options.url);\n if (!Capacitor.isNativePlatform() || activePluginName !== PREVIOUS_PLUGIN_NAME) {\n return options;\n }\n return Object.assign(Object.assign({}, options), { url: resolveLegacyNativeWebViewUrl(options.url, bundledAssetPlatform(), getConfiguredLocalConfig()) });\n}\nconst baseInAppBrowser = registerPlugin(activePluginName, inAppBrowserImplementations);\nconst InAppBrowser = new Proxy(baseInAppBrowser, {\n get(target, prop, receiver) {\n if (prop === 'openWebView') {\n return (options) => target.openWebView(prepareUrlOptions(options));\n }\n if (prop === 'setUrl') {\n return (options) => target.setUrl(prepareUrlOptions(options));\n }\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n },\n});\nfunction arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return btoa(binary);\n}\nfunction headersToRecord(headers) {\n const result = {};\n headers.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\nfunction errorMessage(error) {\n if (error instanceof Error) {\n return error.message;\n }\n if (typeof error === 'string') {\n return error;\n }\n if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {\n return error.message;\n }\n return String(error);\n}\nfunction isStaleProxyResponseError(error) {\n const message = errorMessage(error);\n return message.includes('No proxy handler found') || message.includes('Target WebView not found for proxy request');\n}\nfunction isProxyResponse(value) {\n return (value !== null &&\n typeof value === 'object' &&\n 'status' in value &&\n 'headers' in value &&\n !(value instanceof Response));\n}\nfunction isProxyRequestOverride(value) {\n return value !== null && typeof value === 'object' && 'url' in value && !(value instanceof Response);\n}\nfunction isProxyDecision(value) {\n return (value !== null && typeof value === 'object' && ('request' in value || 'response' in value || 'cancel' in value));\n}\nasync function sendProxyDecision(requestId, webviewId, decision, phase) {\n try {\n await InAppBrowser.handleProxyRequest({\n requestId,\n webviewId,\n decision,\n phase,\n });\n }\n catch (error) {\n if (isStaleProxyResponseError(error)) {\n return;\n }\n throw error;\n }\n}\nasync function resolveProxyHandlerDecision(callback, event) {\n try {\n const result = await callback(event);\n if (result === null) {\n return null;\n }\n if (isProxyDecision(result)) {\n return result;\n }\n if (isProxyRequestOverride(result)) {\n return { request: result };\n }\n if (isProxyResponse(result)) {\n return { response: result };\n }\n const cloned = result.clone();\n const buffer = await cloned.arrayBuffer();\n return {\n response: {\n body: arrayBufferToBase64(buffer),\n status: result.status,\n headers: headersToRecord(result.headers),\n },\n };\n }\n catch (_a) {\n return null;\n }\n}\nconst addProxyHandler = (callback) => {\n return InAppBrowser.addListener('proxyRequest', (event) => {\n void (async () => {\n const decision = await resolveProxyHandlerDecision(callback, event);\n await sendProxyDecision(event.requestId, event.webviewId, decision, event.phase);\n })();\n });\n};\nexport * from './definitions';\nexport { InAppBrowser, addProxyHandler };\n//# sourceMappingURL=index.js.map"],"names":["WebPlugin","BackgroundColor","ToolBarType","InvisibilityMode","CloseAction","CloseButtonPosition","Capacitor","registerPlugin"],"mappings":";;;;AAAA;AACO,MAAM,sBAAsB,GAAG;AACtC,IAAI,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE;AACnD,IAAI,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;AACnD,CAAC;AACD,MAAM,oBAAoB,GAAG,2BAA2B;AACxD,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;AAC9C;AACO,SAAS,aAAa,CAAC,GAAG,EAAE;AACnC,IAAI,OAAO,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACjE;AACA;AACO,SAAS,qBAAqB,CAAC,IAAI,EAAE;AAC5C,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;AACzC;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE;AAC3C,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE;AAC/B,IAAI,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,GAAG,EAAE;AACrC,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACxC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC5D;AACA;AACO,SAAS,uBAAuB,CAAC,QAAQ,EAAE;AAClD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClF,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAClD,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AACnE,YAAY,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;AAC/C,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACO,SAAS,wBAAwB,CAAC,QAAQ,EAAE,WAAW,EAAE;AAChE,IAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,oBAAoB,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;AACjF,QAAQ,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM;AAChD,IAAI;AACJ,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;AAChC,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,EAAE;AAC7E,YAAY,OAAO,WAAW,CAAC,MAAM;AACrC,QAAQ;AACR,QAAQ,OAAO,sBAAsB,CAAC,OAAO,CAAC,MAAM;AACpD,IAAI;AACJ,IAAI,OAAO,WAAW,CAAC,MAAM;AAC7B;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AAC7B,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACnC,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AACtE,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;AAClD,QAAQ,MAAM,MAAM,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC;AACtH,QAAQ,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAClC,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,EAAE;AAChC,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE;AAC/F,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;AACpG,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACO,SAAS,qBAAqB,CAAC,GAAG,EAAE;AAC3C,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE;AAC9B,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;AAClC;AACA,SAAS,sBAAsB,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE;AACpE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AACnC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE;AAClD,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;AACtE,QAAQ,IAAI,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,MAAM,KAAK,gBAAgB,EAAE;AACtE,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,GAAG;AAC/C,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;AACpC,QAAQ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAChC,QAAQ,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE;AAC1I,QAAQ,OAAO,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACO,SAAS,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE;AACnE,IAAI,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE;AAC9B,IAAI,MAAM,MAAM,GAAG,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,WAAW,GAAG,sBAAsB,CAAC,QAAQ,CAAC;AAClH,IAAI,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC;AACvE,IAAI,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE;AACxC,QAAQ,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC;AAClD,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;AAC3B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,SAAS;AACT,IAAI;AACJ,IAAI,IAAI,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE;AACtD,QAAQ,MAAM,SAAS,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC;AACnF,QAAQ,OAAO;AACf,YAAY,GAAG,EAAE,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO;AACjF,SAAS;AACT,IAAI;AACJ,IAAI,OAAO;AACX,QAAQ,GAAG,EAAE,OAAO;AACpB,KAAK;AACL;AACA;AACA;AACA;AACA;AACO,SAAS,6BAA6B,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC1E,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE;AACrC,QAAQ,OAAO,GAAG;AAClB,IAAI;AACJ,IAAI,MAAM,UAAU,GAAG,sBAAsB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;AACzE,IAAI,IAAI,UAAU,KAAK,IAAI,EAAE;AAC7B,QAAQ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AACrD,IAAI;AACJ,IAAI,OAAO,UAAU,CAAC,GAAG;AACzB;;AC1JA,MAAM,sBAAsB,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE;AACxF,MAAM,mBAAmB,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC;AACjG,MAAM,gBAAgB,GAAG,qBAAqB;AAC9C,MAAM,oBAAoB,GAAG,6KAA6K;AACnM,MAAM,aAAa,GAAG,CAAC,OAAO,KAAK;AAC1C,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,OAAO,EAAE;AACjB,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE;AACvE,QAAQ,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AACjF,IAAI;AACJ,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;AAC1B,QAAQ,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;AACxE,IAAI;AACJ,IAAI,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,CAAC;AACD,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,eAAe,CAAC,SAAS;AAC/F,MAAM,yBAAyB,GAAG,oBAAoB;AAC/C,MAAM,oCAAoC,GAAG,+EAA+E;AACnI,IAAI,yFAAyF;AAC7F,IAAI,iBAAiB;AAKrB,MAAM,oBAAoB,GAAG,MAAM;AACnC,IAAI,IAAI,EAAE;AACV,IAAI,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACzC,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,MAAM,YAAY,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,YAAY;AACtG,IAAI,IAAI,CAAC,YAAY,EAAE;AACvB,QAAQ,iBAAiB,GAAG,IAAI;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,IAAI;AACR,QAAQ,iBAAiB,GAAG,YAAY,CAAC,YAAY,CAAC,yBAAyB,EAAE;AACjF,YAAY,UAAU,EAAE,CAAC,KAAK,KAAK,KAAK;AACxC,SAAS,CAAC;AACV,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC;AAC7D,IAAI;AACJ,CAAC;AACM,MAAM,iBAAiB,GAAG,CAAC,IAAI,KAAK;AAC3C,IAAI,MAAM,MAAM,GAAG,oBAAoB,EAAE;AACzC,IAAI,OAAO,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI;AAClD,CAAC;AACD,MAAM,mBAAmB,GAAG,CAAC,IAAI,MAAM,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/E,MAAM,kBAAkB,GAAG,CAAC,IAAI,KAAK;AAC5C,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;AAC1C,QAAQ,MAAM,GAAG,GAAG,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;AACzF,QAAQ,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;AAClD,QAAQ,MAAM,CAAC,WAAW,GAAG,oBAAoB;AACjD,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE;AACtB,YAAY,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACxC,YAAY,OAAO,mBAAmB,CAAC,GAAG,CAAC;AAC3C,QAAQ;AACR,IAAI;AACJ,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,oBAAoB,CAAC,SAAS,CAAC;AAC5D,CAAC;AACD;AACO,SAAS,yBAAyB,CAAC,SAAS,EAAE,aAAa,EAAE;AACpE,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC;AACzC,QAAQ,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC;AAC/C,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;AACnD,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;AAC3C,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AAC/C,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ;AAC1C,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ;AAC9C,QAAQ,OAAO,YAAY,KAAK,UAAU,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACrF,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AACzD,IAAI,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;AACpE,IAAI,IAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI;AAC1C,UAAU,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACpE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7B,IAAI,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACrC,IAAI,MAAM,MAAM,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAChE,IAAI,MAAM,OAAO,GAAG,+GAA+G;AACnI,IAAI,MAAM,KAAK,GAAG,+DAA+D;AACjF,QAAQ,kJAAkJ;AAC1J,IAAI,QAAQ,mDAAmD;AAC/D,QAAQ,0GAA0G;AAClH,QAAQ,CAAC,4CAA4C,EAAE,OAAO,CAAC,uCAAuC,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;AAChJ,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,uBAAuB,CAAC;AACjD,CAAC;AACM,MAAM,eAAe,SAASA,cAAS,CAAC;AAC/C,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,EAAE;AACf,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE;AACjC,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC;AAC/B,QAAQ,IAAI,CAAC,mBAAmB,GAAG,CAAC,KAAK,KAAK;AAC9C,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC1H,YAAY,IAAI,CAAC,KAAK,EAAE;AACxB,gBAAgB;AAChB,YAAY;AACZ,YAAY,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,KAAK;AACrC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;AAC7C,gBAAgB,KAAK,CAAC,MAAM;AAC5B,gBAAgB,KAAK,CAAC,MAAM,KAAK,MAAM;AACvC,gBAAgB,yBAAyB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;AACpE,gBAAgB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC3C,YAAY;AACZ,YAAY,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI;AACjC,YAAY,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1C,gBAAgB,IAAI;AACpB,oBAAoB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,gBAAgB;AAChB,gBAAgB,OAAO,EAAE,EAAE;AAC3B,oBAAoB,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9F,oBAAoB;AACpB,gBAAgB;AAChB,YAAY;AACZ,YAAY,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AAC1E,gBAAgB,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1G,YAAY;AACZ,iBAAiB,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACrD,gBAAgB,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1F,YAAY;AACZ,QAAQ,CAAC;AACT,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7C,YAAY,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC;AACnF,QAAQ;AACR,IAAI;AACJ,IAAI,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AACjC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;AACrC,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;AAC9B,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,QAAQ,IAAI;AACZ,YAAY,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACjF,YAAY,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,aAAa,MAAM,MAAM;AACjG,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,KAAK;AACxB,QAAQ;AACR,IAAI;AACJ,IAAI,WAAW,CAAC,EAAE,EAAE;AACpB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AAC3C,QAAQ,IAAI,EAAE,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;AAClF,YAAY;AACZ,QAAQ;AACR,QAAQ,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;AAC7C,QAAQ,IAAI,KAAK,CAAC,SAAS,EAAE;AAC7B,YAAY,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;AAChD,QAAQ;AACR,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAClE,IAAI;AACJ,IAAI,mBAAmB,CAAC,EAAE,EAAE;AAC5B,QAAQ,IAAI,EAAE,EAAE;AAChB,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/C,YAAY,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/C,gBAAgB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE;AACpC,YAAY;AACZ,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;AACxD,aAAa,OAAO;AACpB,aAAa,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;AACtD,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,OAAO,SAAS;AAC5B,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;AAChD,IAAI;AACJ,IAAI,mBAAmB,CAAC,GAAG,EAAE;AAC7B,QAAQ,IAAI,EAAE,EAAE,EAAE;AAClB,QAAQ,IAAI;AACZ,YAAY,OAAO,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM;AACtC,QAAQ;AACR,QAAQ,OAAO,EAAE,EAAE;AACnB,YAAY,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM;AAC3I,QAAQ;AACR,IAAI;AACJ,IAAI,UAAU,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,OAAO,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;AACjE,IAAI;AACJ,IAAI,oBAAoB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;AAChD,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvC,YAAY,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG;AACnC,YAAY;AACZ,QAAQ;AACR,QAAQ,KAAK,CAAC,YAAY;AAC1B,YAAY,IAAI,EAAE,EAAE,EAAE;AACtB,YAAY,IAAI;AAChB,gBAAgB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC;AAC9D,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAClC,oBAAoB,MAAM,IAAI,KAAK,CAAC,CAAC,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF,gBAAgB;AAChB,gBAAgB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE;AAClD,gBAAgB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,oBAAoB,CAAC;AACjM,gBAAgB,MAAM,QAAQ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AACrF,gBAAgB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;AACnH,gBAAgB,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AAC3D,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACnD,gBAAgB,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE;AAC1C,oBAAoB,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC;AAClD,oBAAoB;AACpB,gBAAgB;AAChB,gBAAgB,KAAK,CAAC,SAAS,GAAG,SAAS;AAC3C,gBAAgB,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS;AAC7C,YAAY;AACZ,YAAY,OAAO,KAAK,EAAE;AAC1B,gBAAgB,OAAO,CAAC,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC;AAC3F,gBAAgB,GAAG,CAAC,KAAK,EAAE;AAC3B,gBAAgB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACpC,YAAY;AACZ,QAAQ,CAAC,GAAG;AACZ,IAAI;AACJ,IAAI,eAAe,GAAG;AACtB,QAAQ,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AACtC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,UAAU,GAAG;AACjB,QAAQ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACjC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,oBAAoB,GAAG;AAC3B,QAAQ,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAC3C,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,CAAC,OAAO,EAAE;AAClB,QAAQ,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC;AACpD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAC7D,QAAQ;AACR,QAAQ,MAAM,CAAC,MAAM,GAAG,IAAI;AAC5B,QAAQ,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG;AAC1C,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,OAAO,CAAC;AAC5C,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,UAAU,CAAC,OAAO,EAAE;AACxB,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC;AACvC,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE;AACtB,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE;AAChC,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mEAAmE,CAAC,CAAC;AAC1H,QAAQ;AACR,QAAQ,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE;AACvG,QAAQ,MAAM,QAAQ,GAAG;AACzB,cAAc,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG;AACrH,cAAc,EAAE;AAChB,QAAQ,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC;AAC9D,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;AAC7D,QAAQ;AACR,QAAQ,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;AAC7E;AACA,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO;AACtD,eAAe,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM;AACvI,cAAc,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC;AACnD,QAAQ,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClF,QAAQ,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;AAC3E,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;AACtC,IAAI;AACJ,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,EAAE;AAC5B,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACjC,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;AACpC,IAAI;AACJ,IAAI,KAAK,CAAC,OAAO,EAAE;AACnB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC;AAC/G,QAAQ,IAAI,CAAC,QAAQ,EAAE;AACvB,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE;AACpC,QAAQ;AACR,QAAQ,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACnB,QAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC;AACrC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,UAAU,CAAC,QAAQ,EAAE;AACzB,QAAQ,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,QAAQ,CAAC;AAChE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,YAAY,CAAC,QAAQ,EAAE;AAC3B,QAAQ,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,QAAQ,CAAC;AAClE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,kBAAkB,CAAC,QAAQ,EAAE;AACjC,QAAQ,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,QAAQ,CAAC;AACxE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1C,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC;AACtC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,CAAC;AAC7D,QAAQ,IAAI,QAAQ,EAAE;AACtB,YAAY,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AACpF,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,cAAc,CAAC,QAAQ,EAAE;AAC7B,QAAQ,OAAO,CAAC,GAAG,CAAC,qCAAqC,EAAE,QAAQ,CAAC;AACpE,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,uCAAuC,CAAC,CAAC;AAC1F,IAAI;AACJ,IAAI,MAAM,GAAG;AACb,QAAQ,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7B,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,gBAAgB,GAAG;AACvB,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAClD,IAAI;AACJ,IAAI,gBAAgB,CAAC,QAAQ,EAAE;AAC/B,QAAQ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC;AACjD,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAChC,QAAQ,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,OAAO,CAAC;AACvE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,uBAAuB,CAAC,QAAQ,EAAE;AACtC,QAAQ,OAAO,CAAC,GAAG,CAAC,8CAA8C,EAAE,QAAQ,CAAC;AAC7E,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B,QAAQ,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,OAAO,CAAC;AAClE,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mEAAmE,CAAC,CAAC;AACtH,IAAI;AACJ,IAAI,aAAa,CAAC,QAAQ,EAAE;AAC5B,QAAQ,OAAO,CAAC,GAAG,CAAC,oCAAoC,EAAE,QAAQ,CAAC;AACnE,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,mEAAmE,CAAC,CAAC;AACtH,IAAI;AACJ,IAAI,0BAA0B,CAAC,QAAQ,EAAE;AACzC,QAAQ,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,QAAQ,CAAC;AAChF,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE;AAChC,IAAI;AACJ,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE;AACpC,QAAQ,MAAM,CAAC,GAAG,GAAG;AACrB,QAAQ,MAAM,CAAC,GAAG,GAAG;AACrB,QAAQ,MAAM,QAAQ,GAAG;AACzB,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;AACxB,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC9C;AACA,aAAa,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACnC,aAAa,IAAI,CAAC,GAAG,CAAC;AACtB,QAAQ,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,CAAC;AACtF,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC;AAC3D,QAAQ;AACR,QAAQ,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,UAAU,EAAE;AAC/C,YAAY,KAAK,CAAC,KAAK,EAAE;AACzB,QAAQ;AACR,QAAQ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAChD,YAAY,MAAM,EAAE,GAAG,IAAI,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,IAAI,eAAe,CAAC;AAC5F,YAAY,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACtD,gBAAgB,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AAChE,oBAAoB,EAAE,CAAC,KAAK,EAAE;AAC9B,oBAAoB,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;AAC1D,gBAAgB;AAChB,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,KAAK,EAAE;AAC9B,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,GAAG,OAAO,CAAC,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;AAChI,gBAAgB;AAChB,YAAY,CAAC,CAAC;AACd,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,EAAE,CAAC,KAAK,EAAE;AAC1B,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AAC/D,YAAY,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;AACzB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ;;ACrZWC;AACX,CAAC,UAAU,eAAe,EAAE;AAC5B,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO;AACtC,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO;AACtC,CAAC,EAAEA,uBAAe,KAAKA,uBAAe,GAAG,EAAE,CAAC,CAAC;AAClCC;AACX,CAAC,UAAU,WAAW,EAAE;AACxB;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,UAAU;AACxC;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,SAAS,CAAC,GAAG,SAAS;AACtC;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,YAAY;AAC5C;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;AAClC,CAAC,EAAEA,mBAAW,KAAKA,mBAAW,GAAG,EAAE,CAAC,CAAC;AAC1BC;AACX,CAAC,UAAU,gBAAgB,EAAE;AAC7B;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,OAAO,CAAC,GAAG,OAAO;AACvC;AACA;AACA;AACA,IAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,cAAc;AACrD,CAAC,EAAEA,wBAAgB,KAAKA,wBAAgB,GAAG,EAAE,CAAC,CAAC;AACpCC;AACX,CAAC,UAAU,WAAW,EAAE;AACxB;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,OAAO;AAClC;AACA;AACA;AACA,IAAI,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM;AAChC,CAAC,EAAEA,mBAAW,KAAKA,mBAAW,GAAG,EAAE,CAAC,CAAC;AAC1BC;AACX,CAAC,UAAU,mBAAmB,EAAE;AAChC;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,OAAO,CAAC,GAAG,OAAO;AAC1C;AACA;AACA;AACA,IAAI,mBAAmB,CAAC,KAAK,CAAC,GAAG,KAAK;AACtC,CAAC,EAAEA,2BAAmB,KAAKA,2BAAmB,GAAG,EAAE,CAAC,CAAC;;ACzDrD,MAAM,iBAAiB,GAAG,mBAAmB;AAC7C,MAAM,oBAAoB,GAAG,cAAc;AAC3C,SAAS,iBAAiB,GAAG;AAC7B,IAAI,IAAI,CAACC,cAAS,CAAC,gBAAgB,EAAE,EAAE;AACvC,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,IAAIA,cAAS,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;AACxD,QAAQ,OAAO,iBAAiB;AAChC,IAAI;AACJ,IAAI,IAAIA,cAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,EAAE;AAC3D,QAAQ,OAAO,oBAAoB;AACnC,IAAI;AACJ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,CAAC,0BAA0B,CAAC;AACvH,QAAQ,gEAAgE,CAAC;AACzE,IAAI,OAAO,iBAAiB;AAC5B;AACA,IAAI,iBAAiB;AACrB,MAAM,2BAA2B,GAAG;AACpC;AACA;AACA;AACA,IAAI,GAAG,EAAE,OAAO,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,IAAI,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC,CAAC;AAC7I,CAAC;AACD,SAAS,2BAA2B,CAAC,GAAG,EAAE;AAC1C,IAAI,IAAI,qBAAqB,CAAC,GAAG,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,EAAE;AAClE,QAAQ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC;AACrD,IAAI;AACJ;AACA,MAAM,gBAAgB,GAAG,iBAAiB,EAAE;AAC5C,SAAS,oBAAoB,GAAG;AAChC,IAAI,OAAOA,cAAS,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,KAAK,GAAG,SAAS;AAChE;AACA,SAAS,wBAAwB,GAAG;AACpC,IAAI,IAAI,CAACA,cAAS,CAAC,gBAAgB,EAAE,EAAE;AACvC,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,MAAM,YAAY,GAAGA,cAAS,CAAC,YAAY;AAC/C,IAAI,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;AAC5C,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ,IAAI,OAAO,uBAAuB,CAAC,YAAY,EAAE,CAAC;AAClD;AACA,SAAS,iBAAiB,CAAC,OAAO,EAAE;AACpC,IAAI,2BAA2B,CAAC,OAAO,CAAC,GAAG,CAAC;AAC5C,IAAI,IAAI,CAACA,cAAS,CAAC,gBAAgB,EAAE,IAAI,gBAAgB,KAAK,oBAAoB,EAAE;AACpF,QAAQ,OAAO,OAAO;AACtB,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,6BAA6B,CAAC,OAAO,CAAC,GAAG,EAAE,oBAAoB,EAAE,EAAE,wBAAwB,EAAE,CAAC,EAAE,CAAC;AAC7J;AACA,MAAM,gBAAgB,GAAGC,mBAAc,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;AACjF,MAAC,YAAY,GAAG,IAAI,KAAK,CAAC,gBAAgB,EAAE;AACjD,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;AAChC,QAAQ,IAAI,IAAI,KAAK,aAAa,EAAE;AACpC,YAAY,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC9E,QAAQ;AACR,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC/B,YAAY,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACzE,QAAQ;AACR,QAAQ,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC;AACzD,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AACzC,YAAY,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,QAAQ;AACR,QAAQ,OAAO,KAAK;AACpB,IAAI,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,MAAM,EAAE;AACrC,IAAI,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC;AACxC,IAAI,IAAI,MAAM,GAAG,EAAE;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAQ,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI;AACJ,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC;AACvB;AACA,SAAS,eAAe,CAAC,OAAO,EAAE;AAClC,IAAI,MAAM,MAAM,GAAG,EAAE;AACrB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK;AACpC,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK;AAC3B,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,MAAM;AACjB;AACA,SAAS,YAAY,CAAC,KAAK,EAAE;AAC7B,IAAI,IAAI,KAAK,YAAY,KAAK,EAAE;AAChC,QAAQ,OAAO,KAAK,CAAC,OAAO;AAC5B,IAAI;AACJ,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACnC,QAAQ,OAAO,KAAK;AACpB,IAAI;AACJ,IAAI,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvG,QAAQ,OAAO,KAAK,CAAC,OAAO;AAC5B,IAAI;AACJ,IAAI,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB;AACA,SAAS,yBAAyB,CAAC,KAAK,EAAE;AAC1C,IAAI,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;AACvC,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,4CAA4C,CAAC;AACvH;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,QAAQ,KAAK,KAAK,IAAI;AAC1B,QAAQ,OAAO,KAAK,KAAK,QAAQ;AACjC,QAAQ,QAAQ,IAAI,KAAK;AACzB,QAAQ,SAAS,IAAI,KAAK;AAC1B,QAAQ,EAAE,KAAK,YAAY,QAAQ,CAAC;AACpC;AACA,SAAS,sBAAsB,CAAC,KAAK,EAAE;AACvC,IAAI,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,KAAK,YAAY,QAAQ,CAAC;AACxG;AACA,SAAS,eAAe,CAAC,KAAK,EAAE;AAChC,IAAI,QAAQ,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,KAAK,SAAS,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AAC3H;AACA,eAAe,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;AACxE,IAAI,IAAI;AACR,QAAQ,MAAM,YAAY,CAAC,kBAAkB,CAAC;AAC9C,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,YAAY,KAAK;AACjB,SAAS,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,KAAK,EAAE;AAClB,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE;AAC9C,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,KAAK;AACnB,IAAI;AACJ;AACA,eAAe,2BAA2B,CAAC,QAAQ,EAAE,KAAK,EAAE;AAC5D,IAAI,IAAI;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC;AAC5C,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE;AAC7B,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,OAAO,MAAM;AACzB,QAAQ;AACR,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE;AAC5C,YAAY,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE;AACtC,QAAQ;AACR,QAAQ,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE;AACrC,YAAY,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;AACvC,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE;AACrC,QAAQ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE;AACjD,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE;AACtB,gBAAgB,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC;AACjD,gBAAgB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrC,gBAAgB,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,aAAa;AACb,SAAS;AACT,IAAI;AACJ,IAAI,OAAO,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI;AACnB,IAAI;AACJ;AACK,MAAC,eAAe,GAAG,CAAC,QAAQ,KAAK;AACtC,IAAI,OAAO,YAAY,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC,KAAK,KAAK;AAC/D,QAAQ,KAAK,CAAC,YAAY;AAC1B,YAAY,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC;AAC/E,YAAY,MAAM,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC;AAC5F,QAAQ,CAAC,GAAG;AACZ,IAAI,CAAC,CAAC;AACN;;;;;"}
|