diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ecd5ed8e7b..479af92e69 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -276,6 +276,10 @@ dependencies { if (ModulesConfig.pushProvidersConfig.includeUnifiedPush) { implementation(projects.libraries.pushproviders.unifiedpush) } + // Blap: built-in ntfy push provider (no Google, no external distributor app) + implementation(projects.libraries.pushproviders.ntfy) + // Blap: proactive battery-optimization prompt (ntfy websocket needs the Doze exemption) + implementation(projects.libraries.push.impl) implementation(libs.appyx.core) implementation(libs.androidx.splash) diff --git a/app/src/main/kotlin/io/element/android/x/MainActivity.kt b/app/src/main/kotlin/io/element/android/x/MainActivity.kt index a882dd8769..3b1c9be9ef 100644 --- a/app/src/main/kotlin/io/element/android/x/MainActivity.kt +++ b/app/src/main/kotlin/io/element/android/x/MainActivity.kt @@ -38,6 +38,9 @@ import io.element.android.libraries.architecture.appyx.DebugNavStateNodeHost import io.element.android.libraries.architecture.bindings import io.element.android.libraries.core.log.logger.LoggerTag import io.element.android.libraries.designsystem.theme.ElementThemeApp +import io.element.android.libraries.push.impl.battery.BatteryOptimizationBindings +import io.element.android.libraries.pushproviders.ntfy.NtfyStoreBindings +import io.element.android.libraries.pushproviders.ntfy.NtfySubscriberService import io.element.android.libraries.designsystem.utils.snackbar.LocalSnackbarDispatcher import io.element.android.services.analytics.compose.LocalAnalyticsService import io.element.android.x.di.AppBindings @@ -57,6 +60,23 @@ class MainActivity : NodeActivity() { super.onCreate(savedInstanceState) appBindings = bindings() setupLockManagement(appBindings.lockScreenService(), appBindings.lockScreenEntryPoint()) + // Blap: ensure the ntfy push socket is running whenever the app is opened — after a + // sideloaded update or force-stop nothing else restarts it until reboot. + runCatching { + if (bindings().ntfyStore().getAllTopics().isNotEmpty()) { + NtfySubscriberService.start(this) + // Doze suspends the ntfy websocket unless the app has the battery + // exemption, so surface the banner proactively — upstream only shows it + // after a push already arrived, which never happens on a dead socket. + // (Dismissal is sticky in the store, so this never re-nags.) + val batteryBindings = bindings() + if (!batteryBindings.batteryOptimization().isIgnoringBatteryOptimizations()) { + lifecycleScope.launch { + batteryBindings.mutableBatteryOptimizationStore().showBatteryOptimizationBanner() + } + } + } + } enableEdgeToEdge() setContent { MainContent(appBindings) diff --git a/appconfig/build.gradle.kts b/appconfig/build.gradle.kts index 64b9b76a14..d8a4feebdc 100644 --- a/appconfig/build.gradle.kts +++ b/appconfig/build.gradle.kts @@ -30,19 +30,13 @@ android { ) buildConfigFieldStr( name = "BUG_REPORT_URL", - value = if (isEnterpriseBuild) { - BuildTimeConfig.BUG_REPORT_URL ?: "" - } else { - "https://rageshakes.element.io/api/submit" - }, + // Blap: no rageshake server — empty URL hides the "Report a problem" feature + // instead of sending reports to Element's endpoint. + value = BuildTimeConfig.BUG_REPORT_URL ?: "", ) buildConfigFieldStr( name = "BUG_REPORT_APP_NAME", - value = if (isEnterpriseBuild) { - BuildTimeConfig.BUG_REPORT_APP_NAME ?: "" - } else { - "element-x-android" - }, + value = BuildTimeConfig.BUG_REPORT_APP_NAME ?: "", ) } } diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/ApplicationConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/ApplicationConfig.kt index e1ae6896bb..35bdda3028 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/ApplicationConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/ApplicationConfig.kt @@ -24,12 +24,12 @@ object ApplicationConfig { * Cannot be empty. * For Element, the value is "Element". */ - const val PRODUCTION_APPLICATION_NAME: String = "Element" + const val PRODUCTION_APPLICATION_NAME: String = "Blap" /** * Used in the strings to reference the Element Desktop client, for instance Element Web. * Cannot be empty. * For Element, the value is "Element". We use the same name for desktop and mobile for now. */ - const val DESKTOP_APPLICATION_NAME: String = "Element" + const val DESKTOP_APPLICATION_NAME: String = "Blap" } diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt index cac2f8a8ed..625081be55 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/NotificationConfig.kt @@ -28,5 +28,6 @@ object NotificationConfig { const val SHOW_QUICK_REPLY_ACTION = true @ColorInt - val NOTIFICATION_ACCENT_COLOR: Int = "#FF0DBD8B".toColorInt() + // Blap accent purple (was Element green) + val NOTIFICATION_ACCENT_COLOR: Int = "#FF7C66E0".toColorInt() } diff --git a/appconfig/src/main/kotlin/io/element/android/appconfig/PushConfig.kt b/appconfig/src/main/kotlin/io/element/android/appconfig/PushConfig.kt index d36fb742b0..a85983f4f4 100644 --- a/appconfig/src/main/kotlin/io/element/android/appconfig/PushConfig.kt +++ b/appconfig/src/main/kotlin/io/element/android/appconfig/PushConfig.kt @@ -12,5 +12,5 @@ object PushConfig { /** * Note: pusher_app_id cannot exceed 64 chars. */ - const val PUSHER_APP_ID: String = "im.vector.app.android" + const val PUSHER_APP_ID: String = "lol.utn.blap.android" } diff --git a/appicon/element/src/debug/res/drawable/ic_launcher_background.xml b/appicon/element/src/debug/res/drawable/ic_launcher_background.xml index d41447906a..34c477e6dc 100644 --- a/appicon/element/src/debug/res/drawable/ic_launcher_background.xml +++ b/appicon/element/src/debug/res/drawable/ic_launcher_background.xml @@ -4,7 +4,7 @@ android:viewportWidth="108" android:viewportHeight="108"> diff --git a/appicon/element/src/main/ic_launcher-playstore.png b/appicon/element/src/main/ic_launcher-playstore.png index 325bf570f5..f4b32c5fd1 100644 Binary files a/appicon/element/src/main/ic_launcher-playstore.png and b/appicon/element/src/main/ic_launcher-playstore.png differ diff --git a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp index 2ae0da8d0f..cbc9d0675f 100644 Binary files a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp and b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp index e40370b86f..f8a48547ba 100644 Binary files a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp and b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp differ diff --git a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp index bcc8059674..3eb90e8d10 100644 Binary files a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp and b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp differ diff --git a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp index 8ad6b74901..ac442ad488 100644 Binary files a/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp and b/appicon/element/src/main/res/mipmap-hdpi/ic_launcher_round.webp differ diff --git a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp index d4e1b90f22..ab80da50f7 100644 Binary files a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp and b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp index ac2361f8b0..e04889a4ff 100644 Binary files a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp and b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp differ diff --git a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp index 62e0fb81a7..4c33a8fd96 100644 Binary files a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp and b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp differ diff --git a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp index 3cd52b2182..104af060f6 100644 Binary files a/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp and b/appicon/element/src/main/res/mipmap-mdpi/ic_launcher_round.webp differ diff --git a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp index 527b23880a..afff4e3da1 100644 Binary files a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp and b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp index f8c5c5f218..4624868961 100644 Binary files a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp and b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp differ diff --git a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp index d7c1ffcc72..db4c58087a 100644 Binary files a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp and b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp differ diff --git a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp index 1c98f35c9f..7d12bb4358 100644 Binary files a/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and b/appicon/element/src/main/res/mipmap-xhdpi/ic_launcher_round.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp index ed524b893c..e836399d40 100644 Binary files a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp and b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp index bb401bcb37..23e7825cd0 100644 Binary files a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp and b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp index 4f5c924f1f..908d416df0 100644 Binary files a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp and b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp index a6b0547ed0..89886ee00b 100644 Binary files a/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and b/appicon/element/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp index 359e3921a1..5f1542a79e 100644 Binary files a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp index f0f9a63324..8ff11e9960 100644 Binary files a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp and b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp index c3490dc0b4..930859c33c 100644 Binary files a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp and b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp differ diff --git a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp index 36125792fe..8acf756861 100644 Binary files a/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and b/appicon/element/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp differ diff --git a/appicon/element/src/nightly/res/drawable/ic_launcher_background.xml b/appicon/element/src/nightly/res/drawable/ic_launcher_background.xml index dc27f37adf..34c477e6dc 100644 --- a/appicon/element/src/nightly/res/drawable/ic_launcher_background.xml +++ b/appicon/element/src/nightly/res/drawable/ic_launcher_background.xml @@ -4,7 +4,7 @@ android:viewportWidth="108" android:viewportHeight="108"> diff --git a/appicon/element/src/release/res/drawable/ic_launcher_background.xml b/appicon/element/src/release/res/drawable/ic_launcher_background.xml index 1cbabacb4f..34c477e6dc 100644 --- a/appicon/element/src/release/res/drawable/ic_launcher_background.xml +++ b/appicon/element/src/release/res/drawable/ic_launcher_background.xml @@ -4,7 +4,7 @@ android:viewportWidth="108" android:viewportHeight="108"> diff --git a/features/call/impl/build.gradle.kts b/features/call/impl/build.gradle.kts index d01e31451e..4c15ed3c29 100644 --- a/features/call/impl/build.gradle.kts +++ b/features/call/impl/build.gradle.kts @@ -85,7 +85,9 @@ dependencies { implementation(libs.androidx.webkit) implementation(libs.coil.compose) implementation(libs.serialization.json) - implementation(libs.element.call.embedded) + // Blap: the stock element-call-embedded AAR is replaced by our EC fork's dist, + // vendored under src/main/assets/element-call/ (same layout the AAR provided). + // implementation(libs.element.call.embedded) api(projects.features.call.api) testCommonDependencies(libs, true) diff --git a/features/call/impl/src/main/assets/element-call/assets/IndexedDBWorker-D6PiCwZY.js b/features/call/impl/src/main/assets/element-call/assets/IndexedDBWorker-D6PiCwZY.js new file mode 100644 index 0000000000..1be907edb6 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/IndexedDBWorker-D6PiCwZY.js @@ -0,0 +1,23 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);function f(e){"@babel/helpers - typeof";return f=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},f(e)}function p(e,t){if(f(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(f(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function m(e){var t=p(e,`string`);return f(t)==`symbol`?t:t+``}function h(e,t,n){return(t=m(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function g(e){if(Array.isArray(e))return e}function _(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function v(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{(function(e,n){typeof define==`function`&&define.amd?define(n):typeof t==`object`&&t.exports?t.exports=n():e.log=n()})(e,function(){var e=function(){},t=`undefined`,n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=[`trace`,`debug`,`info`,`warn`,`error`],i={},a=null;function o(e,t){var n=e[t];if(typeof n.bind==`function`)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(r){return r===`debug`&&(r=`log`),typeof console===t?!1:r===`trace`&&n?s:console[r]===void 0?console.log===void 0?e:o(console,`log`):o(console,r)}function l(){for(var n=this.getLevel(),i=0;i=0&&t<=o.levels.SILENT)return t;throw TypeError(`log.setLevel() called with invalid level: `+e)}o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=n||d,o.getLevel=function(){return u??c??s},o.setLevel=function(e,t){return u=g(e),t!==!1&&p(u),l.call(o)},o.setDefaultLevel=function(e){c=g(e),m()||o.setLevel(e,!1)},o.resetLevel=function(){u=null,h(),l.call(o)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)},o.rebuild=function(){if(a!==o&&(s=g(a.getLevel())),l.call(o),a===o)for(var e in i)i[e].rebuild()},s=g(a?a.getLevel():`WARN`);var _=m();_!=null&&(u=g(_)),l.call(o)}a=new f,a.getLogger=function(e){if(typeof e!=`symbol`&&typeof e!=`string`||e===``)throw TypeError(`You must supply a name when creating a logger.`);var t=i[e];return t||=i[e]=new f(e,a.methodFactory),t};var p=typeof window===t?void 0:window.log;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=p),a},a.getLoggers=function(){return i},a.default=a,a})}))(),1),te=`matrix`;ee.default.methodFactory=function(e,t,n){return function(){var t=[...arguments];return this.prefix&&t.unshift(this.prefix),e===`error`||e===`warn`||e===`trace`||e===`info`||e===`debug`?console[e](...t):console.log(...t)}};function ne(e){var t=te+(e===void 0?``:`-${e}`),n=ee.default.getLogger(t);return n.getChild===void 0&&(n.prefix=e,n.getChild=t=>{var r=ne((e??``)+t);return r.methodFactory=n.methodFactory,r.rebuild(),r},n.setLevel(ee.default.levels.DEBUG,!1)),n}var w=ne(),re=class{constructor(e,t){this.parent=e,h(this,`name`,void 0),this.name=t+`:`}trace(){var e=[...arguments];this.parent.trace(this.name,...e)}debug(){var e=[...arguments];this.parent.debug(this.name,...e)}info(){var e=[...arguments];this.parent.info(this.name,...e)}warn(){var e=[...arguments];this.parent.warn(this.name,...e)}error(){var e=[...arguments];this.parent.error(this.name,...e)}},ie=c({I:()=>`l`,default:()=>eE,m:()=>`rn`,µ:()=>`μ`,Æ:()=>`AE`,Ç:()=>`C̦`,Ð:()=>`D̵`,Ø:()=>`O̸`,æ:()=>`ae`,ç:()=>`c̦`,ð:()=>Ut,ö:()=>`ة`,ø:()=>`o̸`,Đ:()=>`D̵`,đ:()=>`d̵`,Ě:()=>`Ĕ`,ě:()=>`ĕ`,Ħ:()=>`H̵`,ħ:()=>`h̵`,ı:()=>`i`,IJ:()=>`lJ`,ij:()=>`ij`,Ŀ:()=>`l·`,ŀ:()=>`l·`,Ł:()=>`L̸`,ł:()=>`l̸`,ņ:()=>`ɲ`,ʼn:()=>`'n`,Ő:()=>`Ö`,Œ:()=>`OE`,œ:()=>`oe`,ţ:()=>`ƫ`,Ŧ:()=>`T̵`,ŧ:()=>`t̵`,ſ:()=>`f`,ƀ:()=>`b̵`,Ɓ:()=>`'B`,Ƃ:()=>`b̄`,ƃ:()=>`b̄`,Ƅ:()=>`b`,Ƈ:()=>`C'`,Ɖ:()=>`D̵`,Ɗ:()=>`'D`,ƌ:()=>`d̄`,ƍ:()=>`g`,Ƒ:()=>`F̦`,ƒ:()=>`f̦`,Ɠ:()=>`G'`,Ɩ:()=>`l`,Ɨ:()=>`l̵`,Ƙ:()=>`K'`,ƙ:()=>`k̔`,ƚ:()=>`l̵`,Ɲ:()=>`N̦`,ƞ:()=>`n̩`,Ɵ:()=>`O̵`,Ơ:()=>`O'`,ơ:()=>`o'`,Ƥ:()=>`'P`,ƥ:()=>`p̔`,Ʀ:()=>`R`,Ƨ:()=>`2`,Ƭ:()=>`'T`,ƭ:()=>`t̔`,Ʈ:()=>`T̨`,Ƴ:()=>`'Y`,ƴ:()=>`y̔`,Ƶ:()=>`Z̵`,ƶ:()=>`z̵`,Ʒ:()=>`3`,ƻ:()=>`2̵`,Ƽ:()=>`5`,ƽ:()=>`s`,ƿ:()=>`þ`,ǀ:()=>`l`,ǁ:()=>`ll`,ǃ:()=>`!`,DŽ:()=>`DŽ`,Dž:()=>`Dž`,dž:()=>`dž`,LJ:()=>`LJ`,Lj:()=>`Lj`,lj:()=>`lj`,NJ:()=>`NJ`,Nj:()=>`Nj`,nj:()=>`nj`,Ǎ:()=>`Ă`,ǎ:()=>`ă`,Ǐ:()=>`Ĭ`,ǐ:()=>`ĭ`,Ǒ:()=>`Ŏ`,ǒ:()=>`ŏ`,Ǔ:()=>`Ŭ`,ǔ:()=>`ŭ`,Ǥ:()=>`G̵`,ǥ:()=>`g̵`,Ǧ:()=>`Ğ`,ǧ:()=>`ğ`,DZ:()=>`DZ`,Dz:()=>`Dz`,dz:()=>`dz`,ǵ:()=>`ģ`,Ǿ:()=>un,Ț:()=>`Ţ`,ț:()=>`ƫ`,Ȝ:()=>`3`,Ȣ:()=>`8`,ȣ:()=>`8`,Ȥ:()=>`Z̦`,ȥ:()=>`z̦`,Ȧ:()=>`Å`,ȧ:()=>`å`,ȼ:()=>`c̸`,Ⱦ:()=>`T̸`,Ɂ:()=>`?`,Ʉ:()=>`U̵`,Ɇ:()=>`E̸`,ɇ:()=>`e̸`,Ɉ:()=>`J̵`,ɉ:()=>`j̵`,ɍ:()=>`r̵`,Ɏ:()=>`Y̵`,ɏ:()=>`y̵`,ɑ:()=>`a`,ɓ:()=>`b̔`,ɖ:()=>`d̨`,ɗ:()=>`d̔`,ə:()=>`ǝ`,ɚ:()=>en,ɛ:()=>`ꞓ`,ɠ:()=>`g̔`,ɡ:()=>`g`,ɣ:()=>`y`,ɦ:()=>`h̔`,ɨ:()=>`i̵`,ɩ:()=>`i`,ɪ:()=>`i`,ɫ:()=>`l̴`,ɭ:()=>`l̨`,ɮ:()=>`lȝ`,ɯ:()=>`w`,ɱ:()=>yn,ɳ:()=>`n̨`,ɵ:()=>`o̵`,ɶ:()=>dn,ɼ:()=>`r̩`,ɽ:()=>`r̨`,ʂ:()=>`s̨`,ʋ:()=>`u`,ʏ:()=>`y`,ʐ:()=>`z̨`,ʒ:()=>`ȝ`,ʔ:()=>`?`,ʠ:()=>`q̔`,ʣ:()=>`dz`,ʤ:()=>`dȝ`,ʥ:()=>`dʑ`,ʦ:()=>`ts`,ʧ:()=>`tʃ`,ʨ:()=>`tɕ`,ʩ:()=>`fŋ`,ʪ:()=>`ls`,ʫ:()=>`lz`,ʳ:()=>`ᣴ`,ʹ:()=>`'`,ʺ:()=>`''`,ʻ:()=>`'`,ʼ:()=>`'`,ʽ:()=>`'`,ʾ:()=>`'`,ʿ:()=>`ՙ`,ˆ:()=>`^`,ˈ:()=>`'`,ˊ:()=>`'`,ˋ:()=>`'`,ː:()=>`:`,ˡ:()=>`ᣳ`,ˢ:()=>`ᣵ`,ˤ:()=>`ˁ`,ˮ:()=>`''`,Ͱ:()=>`Ⱶ`,ʹ:()=>`'`,Ͷ:()=>`И`,ͷ:()=>`ᴎ`,ͺ:()=>`i`,ͻ:()=>`ɔ`,ͽ:()=>`ꜿ`,Ϳ:()=>`J`,Α:()=>`A`,Β:()=>`B`,Ε:()=>`E`,Ζ:()=>`Z`,Η:()=>`H`,Θ:()=>`O̵`,Ι:()=>`l`,Κ:()=>`K`,Λ:()=>`Ʌ`,Μ:()=>`M`,Ν:()=>`N`,Ο:()=>`O`,Ρ:()=>`P`,Σ:()=>`Ʃ`,Τ:()=>`T`,Υ:()=>`Y`,Χ:()=>`X`,α:()=>`a`,β:()=>`ß`,γ:()=>`y`,δ:()=>`ẟ`,ε:()=>`ꞓ`,η:()=>`n̩`,θ:()=>`O̵`,ι:()=>`i`,κ:()=>`ĸ`,ν:()=>`v`,ο:()=>`o`,ρ:()=>`p`,σ:()=>`o`,τ:()=>`ᴛ`,υ:()=>`u`,φ:()=>`ɸ`,ϐ:()=>`ß`,ϑ:()=>`O̵`,ϒ:()=>`Y`,ϕ:()=>`ɸ`,ϖ:()=>`π`,ϛ:()=>`ς`,Ϝ:()=>`F`,Ϩ:()=>`2`,ϩ:()=>`ƨ`,ϰ:()=>`ĸ`,ϱ:()=>`p`,ϲ:()=>`c`,ϳ:()=>`j`,ϴ:()=>`O̵`,ϵ:()=>`ꞓ`,Ϸ:()=>`Þ`,ϸ:()=>`þ`,Ϲ:()=>`C`,Ϻ:()=>`M`,Ͻ:()=>`Ɔ`,Ͽ:()=>`Ꜿ`,Є:()=>`Ꞓ`,Ѕ:()=>`S`,І:()=>`l`,Ј:()=>`J`,А:()=>`A`,Б:()=>`b̄`,В:()=>`B`,Г:()=>`Γ`,Е:()=>`E`,З:()=>`3`,Й:()=>`Ѝ`,К:()=>`K`,Л:()=>`Ʌ`,М:()=>`M`,Н:()=>`H`,О:()=>`O`,П:()=>`Π`,Р:()=>`P`,С:()=>`C`,Т:()=>`T`,У:()=>`Y`,Ф:()=>`Φ`,Х:()=>`X`,Ы:()=>`bl`,Ь:()=>`b`,Ю:()=>`lO`,а:()=>`a`,б:()=>`6`,в:()=>`ʙ`,г:()=>`r`,е:()=>`e`,з:()=>`ɜ`,и:()=>`ᴎ`,к:()=>`ĸ`,м:()=>`ʍ`,н:()=>`ʜ`,о:()=>`o`,п:()=>`π`,р:()=>`p`,с:()=>`c`,т:()=>`ᴛ`,у:()=>`y`,ф:()=>`ɸ`,х:()=>`x`,ъ:()=>`ˉb`,ы:()=>`ƅi`,ь:()=>`ƅ`,я:()=>`ᴙ`,є:()=>`ꞓ`,ѕ:()=>`s`,і:()=>`i`,ј:()=>`j`,ћ:()=>`h̵`,ѝ:()=>`й`,ѡ:()=>`w`,Ѣ:()=>`b̵`,ѣ:()=>`b̵`,Ѱ:()=>`Ψ`,ѱ:()=>`ψ`,Ѳ:()=>`O̵`,ѳ:()=>`o̵`,Ѵ:()=>`V`,ѵ:()=>`v`,Ѽ:()=>zn,ѽ:()=>On,Ҋ:()=>In,ҋ:()=>Ln,Ҍ:()=>`b̵`,ҍ:()=>`b̵`,Ґ:()=>`Γ'`,ґ:()=>`r'`,Ғ:()=>An,ғ:()=>`r̵`,Җ:()=>Fn,җ:()=>Pn,Ҙ:()=>`3̦`,ҙ:()=>rn,Қ:()=>`K̩`,қ:()=>_n,Ҟ:()=>`K̵`,ҟ:()=>vn,Ң:()=>`H̩`,ң:()=>an,Ҫ:()=>`C̦`,ҫ:()=>`c̦`,Ҭ:()=>`T̩`,ҭ:()=>Sn,Ү:()=>`Y`,ү:()=>`y`,Ұ:()=>`Y̵`,ұ:()=>`y̵`,Ҳ:()=>`X̩`,һ:()=>`h`,ҽ:()=>`e`,Ҿ:()=>Vn,ҿ:()=>`ę`,Ӏ:()=>`l`,Ӆ:()=>En,ӆ:()=>Rn,Ӈ:()=>`H̦`,ӈ:()=>sn,Ӊ:()=>`H̦`,ӊ:()=>on,Ӌ:()=>`Ҷ`,ӌ:()=>`ҷ`,Ӎ:()=>`M̦`,ӎ:()=>kn,ӏ:()=>`i`,Ӕ:()=>`AE`,ӕ:()=>`ae`,Ә:()=>`Ə`,ә:()=>`ǝ`,Ӡ:()=>`3`,ӡ:()=>`ȝ`,Ө:()=>`O̵`,ө:()=>`o̵`,ԁ:()=>`d`,Ԋ:()=>`Ƕ`,Ԍ:()=>`G`,ԍ:()=>`ɢ`,Ԑ:()=>`Ɛ`,ԑ:()=>`ꞓ`,ԛ:()=>`q`,Ԝ:()=>`W`,ԝ:()=>`w`,Ի:()=>`ኮ`,Մ:()=>`ሆ`,Պ:()=>`ጣ`,Ռ:()=>`ቡ`,Ս:()=>`U`,Տ:()=>`S`,Փ:()=>`Φ`,Օ:()=>`O`,ա:()=>`w`,գ:()=>`q`,զ:()=>`q`,ծ:()=>`ẟ`,հ:()=>`h`,յ:()=>`ȷ`,ո:()=>`n`,պ:()=>`ɰ`,ռ:()=>`n`,ս:()=>`u`,ց:()=>`g`,ք:()=>`f`,օ:()=>`o`,և:()=>Hn,ו:()=>`l`,ט:()=>`v`,י:()=>`'`,ן:()=>`l`,ס:()=>`o`,װ:()=>`ll`,ױ:()=>`l'`,ײ:()=>`''`,أ:()=>`lٴ`,ؤ:()=>rd,إ:()=>`lٕ`,ئ:()=>qd,ا:()=>`l`,ث:()=>Td,ش:()=>aa,ؽ:()=>Hd,ؿ:()=>Ld,ه:()=>`o`,ي:()=>`ى`,ٮ:()=>`ى`,ٯ:()=>`ڡ`,ٲ:()=>`lٴ`,ٳ:()=>`lٕ`,ٵ:()=>`lٴ`,ٶ:()=>od,ٷ:()=>sd,ٸ:()=>Qd,ٹ:()=>ud,پ:()=>bd,ځ:()=>pi,څ:()=>fi,ڈ:()=>Fi,ڋ:()=>Wi,ڎ:()=>Ri,ڑ:()=>Gi,ڒ:()=>Zi,ژ:()=>Ji,ڞ:()=>wo,ڟ:()=>us,ڤ:()=>mc,ڧ:()=>`ف`,ڨ:()=>yc,ک:()=>`ك`,ڪ:()=>`ك`,ڭ:()=>Pc,ڴ:()=>sl,ڵ:()=>ll,ڷ:()=>cl,ں:()=>`ى`,ڻ:()=>hd,ڽ:()=>Fd,ھ:()=>`o`,ہ:()=>`o`,ۂ:()=>`ۀ`,ۃ:()=>`ة`,ۆ:()=>Ju,ۇ:()=>Gu,ۈ:()=>ed,ۉ:()=>Zu,ۋ:()=>Hu,ی:()=>`ى`,ێ:()=>Bd,ې:()=>`ٻ`,ۑ:()=>Id,ے:()=>`ى`,ە:()=>`o`,ۮ:()=>Vi,ۯ:()=>$i,ۿ:()=>`ô`,ݑ:()=>Xn,ݖ:()=>zd,ݢ:()=>`ڬ`,ݣ:()=>zc,ݧ:()=>`ݔ`,ݨ:()=>mu,ݩ:()=>hu,ݬ:()=>ea,ݱ:()=>ia,ݲ:()=>mi,ݾ:()=>ga,ߊ:()=>`l`,ߴ:()=>`'`,ߵ:()=>`'`,ߺ:()=>`_`,ࢡ:()=>Qn,ࢤ:()=>bc,ࢧ:()=>Wl,ࢨ:()=>Ud,ࢩ:()=>`ݔ`,ࢮ:()=>Hi,ࢯ:()=>To,ࢰ:()=>`گ`,ࢱ:()=>`و`,ࢲ:()=>ra,ࢶ:()=>Zn,ࢷ:()=>Rd,ࢹ:()=>Qi,ࢺ:()=>Vd,ࢻ:()=>`ڡ`,ࢼ:()=>`ڡ`,ࢽ:()=>`ى`,ऄ:()=>bp,आ:()=>gp,ई:()=>Tp,ऍ:()=>Sp,ऎ:()=>Cp,ऐ:()=>wp,ऑ:()=>xp,ऒ:()=>_p,ओ:()=>vp,औ:()=>yp,ॽ:()=>`?`,আ:()=>Ep,ৠ:()=>Dp,ৡ:()=>Op,ਆ:()=>jp,ਇ:()=>Pp,ਈ:()=>Fp,ਉ:()=>kp,ਊ:()=>Ap,ਏ:()=>Ip,ਐ:()=>Mp,ਔ:()=>Np,આ:()=>Lp,ઍ:()=>Vp,એ:()=>Hp,ઐ:()=>Up,ઑ:()=>Rp,ઓ:()=>zp,ઔ:()=>Bp,ઽ:()=>`ऽ`,ଆ:()=>Wp,ଠ:()=>`O`,ஊ:()=>Gp,ஜ:()=>`ஐ`,ர:()=>`ஈ`,ఓ:()=>Qp,ఔ:()=>Xp,ఠ:()=>rm,ఢ:()=>em,థ:()=>tm,భ:()=>nm,మ:()=>om,ష:()=>im,హ:()=>am,ౠ:()=>Jp,ౡ:()=>Yp,ಅ:()=>`అ`,ಆ:()=>`ఆ`,ಇ:()=>`ఇ`,ಒ:()=>`ఒ`,ಓ:()=>$p,ಔ:()=>Zp,ಜ:()=>`జ`,ಞ:()=>`ఞ`,ಣ:()=>`ణ`,ಯ:()=>`య`,ಱ:()=>`ఱ`,ಲ:()=>`ల`,ೡ:()=>sm,ഈ:()=>cm,ഉ:()=>`உ`,ഊ:()=>Kp,ഌ:()=>fm,ഐ:()=>lm,ഓ:()=>um,ഔ:()=>dm,ങ:()=>pm,ജ:()=>`ஐ`,ഠ:()=>`o`,ണ:()=>`ண`,റ:()=>`ര`,ഴ:()=>`ழ`,ശ:()=>`ஶ`,ഺ:()=>qp,ൎ:()=>`ॱ`,ൟ:()=>mn,ൡ:()=>`ഞ`,ൻ:()=>mm,ർ:()=>hm,ฃ:()=>`ข`,ซ:()=>`ช`,ฏ:()=>`ฎ`,ด:()=>`ค`,ต:()=>`ค`,ท:()=>`ฑ`,ม:()=>`ฆ`,ฦ:()=>`ภ`,ำ:()=>Em,แ:()=>Dm,ๅ:()=>`า`,ຈ:()=>`จ`,ຍ:()=>`ย`,ບ:()=>`บ`,ປ:()=>`ป`,ຝ:()=>`ฝ`,ພ:()=>`พ`,ຟ:()=>`ฟ`,ຳ:()=>Am,ໜ:()=>Om,ໝ:()=>km,ༀ:()=>jm,ཪ:()=>`ར`,က:()=>Nm,တ:()=>hn,ဝ:()=>`o`,ဟ:()=>Im,ဩ:()=>zm,ဪ:()=>Bm,ၥ:()=>`၁`,ၦ:()=>Fm,ၯ:()=>Lm,ၰ:()=>Pm,ၾ:()=>Rm,ႁ:()=>Mm,Ⴀ:()=>`Ꞇ`,ყ:()=>`y`,ჳ:()=>`ȝ`,ჿ:()=>`o`,ᄁ:()=>Jg,ᄄ:()=>M_,ᄈ:()=>jy,ᄊ:()=>Eb,ᄍ:()=>hx,ᄓ:()=>s_,ᄔ:()=>l_,ᄕ:()=>f_,ᄖ:()=>g_,ᄗ:()=>A_,ᄘ:()=>nv,ᄙ:()=>lv,ᄚ:()=>Hv,ᄛ:()=>Nv,ᄜ:()=>oy,ᄝ:()=>my,ᄞ:()=>Sy,ᄟ:()=>wy,ᄠ:()=>Ty,ᄡ:()=>Iy,ᄢ:()=>zy,ᄣ:()=>Vy,ᄤ:()=>Wy,ᄥ:()=>Gy,ᄦ:()=>Ky,ᄧ:()=>Zy,ᄨ:()=>eb,ᄩ:()=>rb,ᄪ:()=>ab,ᄫ:()=>Jy,ᄬ:()=>Py,ᄭ:()=>lb,ᄮ:()=>fb,ᄯ:()=>mb,ᄰ:()=>_b,ᄱ:()=>yb,ᄲ:()=>xb,ᄳ:()=>wb,ᄴ:()=>Mb,ᄵ:()=>Nb,ᄶ:()=>Pb,ᄷ:()=>Lb,ᄸ:()=>zb,ᄹ:()=>Bb,ᄺ:()=>Hb,ᄻ:()=>Wv,ᄽ:()=>Lx,ᄿ:()=>Rx,ᅁ:()=>Wb,ᅂ:()=>qb,ᅃ:()=>Yb,ᅄ:()=>Xb,ᅅ:()=>Zb,ᅆ:()=>lx,ᅇ:()=>ex,ᅈ:()=>rx,ᅉ:()=>ix,ᅊ:()=>ox,ᅋ:()=>sx,ᅍ:()=>mx,ᅏ:()=>Ux,ᅑ:()=>Wx,ᅒ:()=>yx,ᅓ:()=>bx,ᅖ:()=>Sx,ᅗ:()=>Tx,ᅘ:()=>Fx,ᅚ:()=>Qg,ᅛ:()=>__,ᅜ:()=>b_,ᅝ:()=>T_,ᅞ:()=>I_,ᅢ:()=>Yx,ᅤ:()=>eS,ᅦ:()=>aS,ᅨ:()=>uS,ᅪ:()=>fS,ᅫ:()=>mS,ᅬ:()=>TS,ᅯ:()=>BS,ᅰ:()=>US,ᅱ:()=>JS,ᅳ:()=>`ー`,ᅴ:()=>Xt,ᅵ:()=>`丨`,ᅶ:()=>qx,ᅷ:()=>Jx,ᅸ:()=>Zx,ᅹ:()=>Qx,ᅺ:()=>rS,ᅻ:()=>iS,ᅼ:()=>nS,ᅽ:()=>cS,ᅾ:()=>lS,ᅿ:()=>vS,ᆀ:()=>yS,ᆁ:()=>xS,ᆂ:()=>SS,ᆃ:()=>wS,ᆄ:()=>kS,ᆅ:()=>MS,ᆆ:()=>jS,ᆇ:()=>FS,ᆈ:()=>IS,ᆉ:()=>RS,ᆊ:()=>zS,ᆋ:()=>HS,ᆌ:()=>KS,ᆍ:()=>qS,ᆎ:()=>ZS,ᆏ:()=>$S,ᆐ:()=>eC,ᆑ:()=>tC,ᆒ:()=>rC,ᆓ:()=>oC,ᆔ:()=>sC,ᆕ:()=>Yt,ᆖ:()=>Wt,ᆗ:()=>Qt,ᆘ:()=>LC,ᆙ:()=>RC,ᆚ:()=>UC,ᆛ:()=>KC,ᆜ:()=>IC,ᆝ:()=>JC,ᆟ:()=>uC,ᆠ:()=>fC,ᆡ:()=>mC,ᆢ:()=>pC,ᆣ:()=>Kx,ᆤ:()=>$x,ᆥ:()=>sS,ᆦ:()=>gS,ᆧ:()=>_S,ᆨ:()=>`ᄀ`,ᆩ:()=>Xg,ᆪ:()=>t_,ᆫ:()=>`ᄂ`,ᆬ:()=>x_,ᆭ:()=>E_,ᆮ:()=>`ᄃ`,ᆯ:()=>`ᄅ`,ᆰ:()=>Y_,ᆱ:()=>pv,ᆲ:()=>yv,ᆳ:()=>Av,ᆴ:()=>Rv,ᆵ:()=>Bv,ᆶ:()=>Gv,ᆷ:()=>`ᄆ`,ᆸ:()=>`ᄇ`,ᆹ:()=>Ry,ᆺ:()=>`ᄉ`,ᆻ:()=>Ob,ᆼ:()=>`ᄋ`,ᆽ:()=>`ᄌ`,ᆾ:()=>`ᄎ`,ᆿ:()=>`ᄏ`,ᇀ:()=>`ᄐ`,ᇁ:()=>`ᄑ`,ᇂ:()=>`ᄒ`,ᇃ:()=>$g,ᇄ:()=>r_,ᇅ:()=>c_,ᇆ:()=>m_,ᇇ:()=>v_,ᇈ:()=>O_,ᇉ:()=>w_,ᇊ:()=>j_,ᇋ:()=>L_,ᇌ:()=>$_,ᇍ:()=>rv,ᇎ:()=>av,ᇏ:()=>cv,ᇐ:()=>uv,ᇑ:()=>hv,ᇒ:()=>gv,ᇓ:()=>Cv,ᇔ:()=>Ov,ᇕ:()=>Ev,ᇖ:()=>Mv,ᇗ:()=>qv,ᇘ:()=>Lv,ᇙ:()=>Xv,ᇚ:()=>ey,ᇛ:()=>iy,ᇜ:()=>cy,ᇝ:()=>dy,ᇞ:()=>py,ᇟ:()=>by,ᇠ:()=>vy,ᇡ:()=>yy,ᇢ:()=>gy,ᇣ:()=>Oy,ᇤ:()=>ob,ᇥ:()=>cb,ᇦ:()=>Xy,ᇧ:()=>db,ᇨ:()=>gb,ᇩ:()=>vb,ᇪ:()=>Cb,ᇫ:()=>`ᅀ`,ᇬ:()=>Gb,ᇭ:()=>Kb,ᇮ:()=>nx,ᇯ:()=>ax,ᇰ:()=>`ᅌ`,ᇱ:()=>Qb,ᇲ:()=>ux,ᇳ:()=>Cx,ᇴ:()=>Dx,ᇵ:()=>Ax,ᇶ:()=>jx,ᇷ:()=>Mx,ᇸ:()=>Nx,ᇹ:()=>`ᅙ`,ᇺ:()=>Zg,ᇻ:()=>e_,ᇼ:()=>i_,ᇽ:()=>a_,ᇾ:()=>o_,ᇿ:()=>d_,ሀ:()=>`U`,ሣ:()=>`ɰ`,ቀ:()=>`Φ`,በ:()=>`Ո`,ኔ:()=>`ձ`,ዐ:()=>`O`,Ꭰ:()=>`D`,Ꭱ:()=>`R`,Ꭲ:()=>`T`,Ꭴ:()=>`O'`,Ꭵ:()=>`i`,Ꭸ:()=>`Ⱶ`,Ꭹ:()=>`Y`,Ꭺ:()=>`A`,Ꭻ:()=>`J`,Ꭼ:()=>`E`,Ꭾ:()=>`?`,Ꮀ:()=>`Ⱶ`,Ꮁ:()=>`Γ`,Ꮃ:()=>`W`,Ꮇ:()=>`M`,Ꮋ:()=>`H`,Ꮍ:()=>`Y`,Ꮎ:()=>`O̵`,Ꮏ:()=>`ƫ`,Ꮐ:()=>`G`,Ꮒ:()=>`h`,Ꮓ:()=>`Z`,Ꮗ:()=>`Ѡ`,Ꮛ:()=>`Ɛ`,Ꮜ:()=>`U̵`,Ꮞ:()=>`4`,Ꮟ:()=>`b`,Ꮢ:()=>`R`,Ꮤ:()=>`W`,Ꮥ:()=>`S`,Ꮩ:()=>`V`,Ꮪ:()=>`S`,Ꮮ:()=>`L`,Ꮯ:()=>`C`,Ꮲ:()=>`P`,Ꮶ:()=>`K`,Ꮷ:()=>`d`,Ꮻ:()=>`O̵`,Ꮾ:()=>`6`,Ᏸ:()=>`ß`,Ᏺ:()=>`h̔`,Ᏻ:()=>`G`,Ᏼ:()=>`B`,ᏻ:()=>`ɢ`,ᏼ:()=>`ʙ`,ᐃ:()=>`Δ`,ᐌ:()=>be,ᐍ:()=>Vm,ᐎ:()=>ve,ᐏ:()=>Mn,ᐐ:()=>xe,ᐑ:()=>Um,ᐒ:()=>Se,ᐓ:()=>Wm,ᐔ:()=>Ce,ᐕ:()=>Km,ᐗ:()=>we,ᐘ:()=>qm,ᐙ:()=>Te,ᐚ:()=>Ym,ᐧ:()=>`·`,ᐫ:()=>Hm,ᐬ:()=>Nn,ᐭ:()=>Gm,ᐮ:()=>Jm,ᐯ:()=>`V`,ᐱ:()=>`Ʌ`,ᐳ:()=>`>`,ᐷ:()=>`·>`,ᐸ:()=>`<`,ᐺ:()=>`·V`,ᐻ:()=>`V·`,ᐼ:()=>ge,ᐽ:()=>Dn,ᐾ:()=>Ee,ᐿ:()=>Zm,ᑀ:()=>`·>`,ᑁ:()=>`>·`,ᑂ:()=>De,ᑃ:()=>Qm,ᑄ:()=>`·<`,ᑅ:()=>`<·`,ᑆ:()=>Oe,ᑇ:()=>$m,ᑊ:()=>`'`,ᑌ:()=>`U`,ᑎ:()=>`Ո`,ᑔ:()=>Ae,ᑗ:()=>`·U`,ᑘ:()=>`U·`,ᑙ:()=>ye,ᑚ:()=>qn,ᑛ:()=>ke,ᑜ:()=>eh,ᑝ:()=>je,ᑞ:()=>th,ᑟ:()=>Me,ᑠ:()=>rh,ᑡ:()=>Ne,ᑢ:()=>ih,ᑣ:()=>Pe,ᑤ:()=>oh,ᑧ:()=>`U'`,ᑨ:()=>`Ո'`,ᑩ:()=>nh,ᑪ:()=>ah,ᑭ:()=>`P`,ᑯ:()=>`d`,ᑲ:()=>`b`,ᑳ:()=>`ḃ`,ᑴ:()=>Fe,ᑵ:()=>sh,ᑶ:()=>`·P`,ᑷ:()=>`p·`,ᑸ:()=>Ie,ᑹ:()=>lh,ᑺ:()=>`·d`,ᑻ:()=>`d·`,ᑼ:()=>Le,ᑽ:()=>uh,ᑾ:()=>`·b`,ᑿ:()=>`b·`,ᒀ:()=>he,ᒁ:()=>$t,ᒅ:()=>ch,ᒆ:()=>`P'`,ᒇ:()=>`d'`,ᒈ:()=>`b'`,ᒍ:()=>`J`,ᒒ:()=>Re,ᒓ:()=>dh,ᒔ:()=>ze,ᒕ:()=>fh,ᒖ:()=>Be,ᒗ:()=>ph,ᒘ:()=>`·J`,ᒙ:()=>`J·`,ᒚ:()=>Ve,ᒛ:()=>mh,ᒜ:()=>He,ᒝ:()=>hh,ᒞ:()=>Ue,ᒟ:()=>gh,ᒥ:()=>`Γ`,ᒪ:()=>`L`,ᒬ:()=>We,ᒭ:()=>_h,ᒮ:()=>_e,ᒯ:()=>jn,ᒰ:()=>Ge,ᒱ:()=>vh,ᒲ:()=>Ke,ᒳ:()=>yh,ᒴ:()=>qe,ᒵ:()=>bh,ᒶ:()=>`·L`,ᒷ:()=>`l·`,ᒸ:()=>Je,ᒹ:()=>xh,ᒿ:()=>`2`,ᓉ:()=>Ye,ᓊ:()=>Sh,ᓋ:()=>et,ᓌ:()=>Dh,ᓍ:()=>tt,ᓎ:()=>Oh,ᓑ:()=>`ᐡ`,ᓜ:()=>nt,ᓝ:()=>kh,ᓞ:()=>rt,ᓟ:()=>Ah,ᓠ:()=>it,ᓡ:()=>jh,ᓢ:()=>at,ᓣ:()=>Mh,ᓤ:()=>ot,ᓥ:()=>Nh,ᓦ:()=>st,ᓧ:()=>Ph,ᓨ:()=>ct,ᓩ:()=>Fh,ᓶ:()=>lt,ᓷ:()=>Ih,ᓸ:()=>ut,ᓹ:()=>Lh,ᓺ:()=>dt,ᓻ:()=>Rh,ᓼ:()=>ft,ᓽ:()=>zh,ᓾ:()=>pt,ᓿ:()=>Bh,ᔀ:()=>mt,ᔁ:()=>Vh,ᔂ:()=>ht,ᔃ:()=>Hh,ᔌ:()=>Uh,ᔍ:()=>Gh,ᔎ:()=>Wh,ᔏ:()=>Kh,ᔗ:()=>gt,ᔘ:()=>qh,ᔙ:()=>_t,ᔚ:()=>Jh,ᔛ:()=>vt,ᔜ:()=>Yh,ᔝ:()=>yt,ᔞ:()=>Xh,ᔟ:()=>bt,ᔠ:()=>Zh,ᔡ:()=>xt,ᔢ:()=>Qh,ᔣ:()=>St,ᔤ:()=>$h,ᔯ:()=>`·4`,ᔰ:()=>`4·`,ᔱ:()=>Ct,ᔲ:()=>eg,ᔳ:()=>wt,ᔴ:()=>tg,ᔵ:()=>Tt,ᔶ:()=>ng,ᔷ:()=>Et,ᔸ:()=>rg,ᔹ:()=>Dt,ᔺ:()=>ig,ᔻ:()=>Ot,ᔼ:()=>ag,ᕀ:()=>`ᐩ`,ᕁ:()=>`x`,ᕎ:()=>Ft,ᕏ:()=>sg,ᕛ:()=>It,ᕜ:()=>_g,ᕨ:()=>Lt,ᕩ:()=>bg,ᕷ:()=>`ẟ`,ᕼ:()=>`H`,ᕽ:()=>`x`,ᕾ:()=>pg,ᕿ:()=>dg,ᖀ:()=>mg,ᖁ:()=>ug,ᖂ:()=>hg,ᖃ:()=>cg,ᖄ:()=>lg,ᖅ:()=>gg,ᖇ:()=>`R`,ᖎ:()=>Tg,ᖏ:()=>Eg,ᖐ:()=>Dg,ᖑ:()=>Cg,ᖒ:()=>Og,ᖓ:()=>kg,ᖔ:()=>Ag,ᖯ:()=>`b`,ᖴ:()=>`F`,ᖵ:()=>`Ⅎ`,ᖷ:()=>`ꟻ`,ᗄ:()=>`Ɐ`,ᗅ:()=>`A`,ᗞ:()=>`D`,ᗪ:()=>`D`,ᗯ:()=>`Ѡ`,ᗰ:()=>`M`,ᗷ:()=>`B`,ᘂ:()=>`ᒐ`,ᘃ:()=>`ᒉ`,ᘄ:()=>`ᓓ`,ᘇ:()=>`ᓚ`,ᘢ:()=>`ᕃ`,ᘣ:()=>`ᕆ`,ᘤ:()=>`ᕊ`,ᘮ:()=>`Ʊ`,ᘯ:()=>`Ω`,ᘴ:()=>`Ʊ`,ᘵ:()=>`Ω`,ᙯ:()=>fg,ᙰ:()=>wg,ᙱ:()=>Mg,ᙲ:()=>Ng,ᙳ:()=>jg,ᙴ:()=>Pg,ᙵ:()=>Fg,ᙶ:()=>Ig,ᙷ:()=>Rg,ᙸ:()=>zg,ᙹ:()=>Bg,ᙺ:()=>Vg,ᙻ:()=>Hg,ᙼ:()=>Ug,ᙽ:()=>Wg,ᚲ:()=>`<`,ᚷ:()=>`X`,ᛁ:()=>`l`,ᛂ:()=>`ᚽ`,ᛌ:()=>`'`,ᛕ:()=>`K`,ᛖ:()=>`M`,ᛘ:()=>`Ψ`,ᛡ:()=>`ᚼ`,ᛰ:()=>`Φ`,ឣ:()=>`អ`,ᡕ:()=>`ᠵ`,ᢖ:()=>`ᡜ`,ᢳ:()=>Rt,ᢶ:()=>zt,ᢹ:()=>Bt,ᣂ:()=>Vt,ᣆ:()=>Xe,ᣇ:()=>Ch,ᣈ:()=>Ze,ᣉ:()=>wh,ᣊ:()=>Qe,ᣋ:()=>Th,ᣌ:()=>$e,ᣍ:()=>Eh,ᣎ:()=>kt,ᣏ:()=>At,ᣐ:()=>jt,ᣑ:()=>Mt,ᣒ:()=>Nt,ᣓ:()=>Pt,ᣛ:()=>`ᣵ`,ᣜ:()=>qg,ᣝ:()=>Xm,ᣠ:()=>og,ᣣ:()=>vg,ᣤ:()=>yg,ᣥ:()=>xg,ᣨ:()=>Sg,ᣪ:()=>Lg,ᣭ:()=>Bn,ᣰ:()=>Gg,ᣲ:()=>Kg,ᴄ:()=>`c`,ᴈ:()=>`ɜ`,ᴋ:()=>`ĸ`,ᴍ:()=>`ʍ`,ᴏ:()=>`o`,ᴐ:()=>`ɔ`,ᴑ:()=>`o`,ᴔ:()=>`ǝo`,ᴜ:()=>`u`,ᴠ:()=>`v`,ᴡ:()=>`w`,ᴢ:()=>`z`,ᴤ:()=>`ƨ`,ᴦ:()=>`r`,ᴧ:()=>`ʌ`,ᴨ:()=>`π`,ᴩ:()=>`ᴘ`,ᴫ:()=>`л`,ᴾ:()=>`ᣖ`,ᵒ:()=>`º`,ᵫ:()=>`ue`,ᵮ:()=>`f̴`,ᵯ:()=>bn,ᵰ:()=>`n̴`,ᵲ:()=>`r̴`,ᵳ:()=>xn,ᵴ:()=>`s̴`,ᵵ:()=>`t̴`,ᵶ:()=>`z̴`,ᵸ:()=>`ᴴ`,ᵻ:()=>`i̵`,ᵼ:()=>`i̵`,ᵽ:()=>`p̵`,ᵾ:()=>`u̵`,ᵿ:()=>Cn,ᶃ:()=>`g`,ᶌ:()=>`y`,ᶐ:()=>`ɋ`,ᶟ:()=>`ᵋ`,ᶢ:()=>`ᵍ`,ᶺ:()=>`ᣔ`,ᶻ:()=>`ᙆ`,ṃ:()=>`ꭑ`,ẚ:()=>`ả`,ẝ:()=>`f`,ỿ:()=>`y`,ώ:()=>`ῴ`,ι:()=>`i`,ῶ:()=>`Ꮿ`,ℂ:()=>`C`,ℇ:()=>`Ɛ`,ℊ:()=>`g`,ℋ:()=>`H`,ℌ:()=>`H`,ℍ:()=>`H`,ℎ:()=>`h`,ℏ:()=>`h̵`,ℐ:()=>`l`,ℑ:()=>`l`,ℒ:()=>`L`,ℓ:()=>`l`,ℕ:()=>`N`,ℙ:()=>`P`,ℚ:()=>`Q`,ℛ:()=>`R`,ℜ:()=>`R`,ℝ:()=>`R`,ℤ:()=>`Z`,Ω:()=>`Ω`,ℨ:()=>`Z`,K:()=>`K`,ℬ:()=>`B`,ℭ:()=>`C`,℮:()=>`e`,ℯ:()=>`e`,ℰ:()=>`E`,ℱ:()=>`F`,ℳ:()=>`M`,ℴ:()=>`o`,ℵ:()=>`א`,ℶ:()=>`ב`,ℷ:()=>`ג`,ℸ:()=>`ד`,ℹ:()=>`i`,ℼ:()=>`π`,ℽ:()=>`y`,ℾ:()=>`Γ`,ℿ:()=>`Π`,ⅅ:()=>`D`,ⅆ:()=>`d`,ⅇ:()=>`e`,ⅈ:()=>`i`,ⅉ:()=>`j`,Ⅰ:()=>`l`,Ⅱ:()=>`ll`,Ⅲ:()=>`lll`,Ⅳ:()=>`lV`,Ⅴ:()=>`V`,Ⅵ:()=>`Vl`,Ⅶ:()=>`Vll`,Ⅷ:()=>Tn,Ⅸ:()=>`lX`,Ⅹ:()=>`X`,Ⅺ:()=>`Xl`,Ⅻ:()=>`Xll`,Ⅼ:()=>`L`,Ⅽ:()=>`C`,Ⅾ:()=>`D`,Ⅿ:()=>`M`,ⅰ:()=>`i`,ⅱ:()=>`ii`,ⅲ:()=>`iii`,ⅳ:()=>`iv`,ⅴ:()=>`v`,ⅵ:()=>`vi`,ⅶ:()=>`vii`,ⅷ:()=>wn,ⅸ:()=>`ix`,ⅹ:()=>`x`,ⅺ:()=>`xi`,ⅻ:()=>`xii`,ⅼ:()=>`l`,ⅽ:()=>`c`,ⅾ:()=>`d`,ⅿ:()=>`rn`,Ↄ:()=>`Ɔ`,ↄ:()=>`ɔ`,Ⱨ:()=>`H̩`,Ⱪ:()=>`K̩`,Ⲅ:()=>`Γ`,ⲅ:()=>`r`,Ⲇ:()=>`Δ`,Ⲉ:()=>`Ꞓ`,ⲉ:()=>`ꞓ`,Ⲏ:()=>`H`,Ⲓ:()=>`l`,Ⲕ:()=>`K`,ⲕ:()=>`ĸ`,Ⲗ:()=>`λ`,Ⲙ:()=>`M`,Ⲛ:()=>`N`,Ⲟ:()=>`O`,ⲟ:()=>`o`,Ⲡ:()=>`Π`,Ⲣ:()=>`P`,ⲣ:()=>`p`,Ⲥ:()=>`C`,ⲥ:()=>`c`,Ⲧ:()=>`T`,Ⲩ:()=>`Y`,Ⲫ:()=>`Φ`,ⲫ:()=>`ɸ`,Ⲭ:()=>`X`,ⲭ:()=>`χ`,Ⲯ:()=>`Ψ`,ⲱ:()=>`ω`,Ⲵ:()=>`<·`,Ⲻ:()=>`-`,Ⲽ:()=>`Ш`,ⲽ:()=>`ш`,Ⳇ:()=>`/`,Ⳋ:()=>`9`,Ⳍ:()=>`3`,ⳍ:()=>`ȝ`,Ⳑ:()=>`L`,ⳑ:()=>`ʟ`,Ⳓ:()=>`6`,Ⳝ:()=>`Ϭ`,ⳤ:()=>`ϗ`,ⴱ:()=>`O̵`,ⴷ:()=>`Ʌ`,ⴸ:()=>`V`,ⴹ:()=>`E`,ⴺ:()=>`Ǝ`,ⵁ:()=>`O̸`,ⵈ:()=>me,ⵉ:()=>`Ʃ`,ⵏ:()=>`l`,ⵑ:()=>`!`,ⵔ:()=>`O`,ⵕ:()=>`Q`,ⵙ:()=>`ʘ`,ⵝ:()=>`X`,ⵠ:()=>`Δ`,ⵣ:()=>`ᛯ`,〇:()=>`O`,〳:()=>`/`,〸:()=>`十`,〹:()=>`卄`,〺:()=>`卅`,く:()=>`❬`,゛:()=>`゙`,゜:()=>`゚`,イ:()=>`亻`,エ:()=>`工`,カ:()=>`力`,タ:()=>`夕`,ト:()=>`卜`,ニ:()=>`二`,ノ:()=>`/`,ハ:()=>`八`,ヘ:()=>`へ`,ロ:()=>`口`,ㄱ:()=>`ᄀ`,ㄲ:()=>Yg,ㄳ:()=>n_,ㄴ:()=>`ᄂ`,ㄵ:()=>S_,ㄶ:()=>D_,ㄷ:()=>`ᄃ`,ㄸ:()=>N_,ㄹ:()=>`ᄅ`,ㄺ:()=>X_,ㄻ:()=>mv,ㄼ:()=>bv,ㄽ:()=>jv,ㄾ:()=>zv,ㄿ:()=>Vv,ㅀ:()=>Uv,ㅁ:()=>`ᄆ`,ㅂ:()=>`ᄇ`,ㅃ:()=>My,ㅄ:()=>Ly,ㅅ:()=>`ᄉ`,ㅆ:()=>Db,ㅇ:()=>`ᄋ`,ㅈ:()=>`ᄌ`,ㅉ:()=>gx,ㅊ:()=>`ᄎ`,ㅋ:()=>`ᄏ`,ㅌ:()=>`ᄐ`,ㅍ:()=>`ᄑ`,ㅎ:()=>`ᄒ`,ㅏ:()=>`ᅡ`,ㅐ:()=>Xx,ㅑ:()=>`ᅣ`,ㅒ:()=>tS,ㅓ:()=>`ᅥ`,ㅔ:()=>oS,ㅕ:()=>`ᅧ`,ㅖ:()=>dS,ㅗ:()=>`ᅩ`,ㅘ:()=>pS,ㅙ:()=>hS,ㅚ:()=>ES,ㅛ:()=>`ᅭ`,ㅜ:()=>`ᅮ`,ㅝ:()=>VS,ㅞ:()=>WS,ㅟ:()=>YS,ㅠ:()=>`ᅲ`,ㅡ:()=>`ー`,ㅢ:()=>Zt,ㅣ:()=>`丨`,ㅤ:()=>`ᅠ`,ㅥ:()=>u_,ㅦ:()=>p_,ㅧ:()=>y_,ㅨ:()=>k_,ㅩ:()=>ev,ㅪ:()=>ov,ㅫ:()=>wv,ㅬ:()=>Jv,ㅭ:()=>Zv,ㅮ:()=>sy,ㅯ:()=>fy,ㅰ:()=>xy,ㅱ:()=>hy,ㅲ:()=>Cy,ㅳ:()=>Ey,ㅴ:()=>By,ㅵ:()=>Hy,ㅶ:()=>Qy,ㅷ:()=>ib,ㅸ:()=>Yy,ㅹ:()=>Fy,ㅺ:()=>ub,ㅻ:()=>pb,ㅼ:()=>hb,ㅽ:()=>Sb,ㅾ:()=>Fb,ㅿ:()=>`ᅀ`,ㆀ:()=>tx,ㆁ:()=>`ᅌ`,ㆂ:()=>$b,ㆃ:()=>dx,ㆄ:()=>Ex,ㆅ:()=>Ix,ㆆ:()=>`ᅙ`,ㆇ:()=>AS,ㆈ:()=>NS,ㆉ:()=>LS,ㆊ:()=>nC,ㆋ:()=>iC,ㆌ:()=>cC,ㆍ:()=>`ᆞ`,ㆎ:()=>hC,㦳:()=>`㘽`,䎛:()=>`㖈`,䐠:()=>`㬻`,一:()=>`ー`,丶:()=>`\\`,丿:()=>`/`,倂:()=>`併`,值:()=>`値`,啟:()=>`啓`,囗:()=>`口`,填:()=>`塡`,士:()=>`土`,壿:()=>`墫`,嬀:()=>`媯`,帲:()=>`帡`,幐:()=>`㬺`,戸:()=>`戶`,搉:()=>`㩁`,晣:()=>`䀿`,晩:()=>`晚`,曶:()=>`㫚`,朦:()=>`䑃`,柿:()=>`杮`,槩:()=>`㮣`,樧:()=>`榝`,潙:()=>`溈`,硏:()=>`研`,絶:()=>`絕`,肦:()=>`朌`,胊:()=>`朐`,胐:()=>`朏`,胶:()=>`㬵`,脁:()=>`朓`,脧:()=>`朘`,腁:()=>`胼`,膧:()=>`朣`,蔿:()=>`蒍`,虁:()=>`蘷`,訞:()=>`䚶`,詽:()=>`訮`,讏:()=>`讆`,豣:()=>`豜`,趆:()=>`赿`,跺:()=>`跥`,躛:()=>`躗`,輧:()=>`軿`,郞:()=>`郎`,鎮:()=>`鎭`,隸:()=>`隷`,鹃:()=>`鹂`,黒:()=>`黑`,鿃:()=>`䀹`,ꓐ:()=>`B`,ꓑ:()=>`P`,ꓒ:()=>`d`,ꓓ:()=>`D`,ꓔ:()=>`T`,ꓖ:()=>`G`,ꓗ:()=>`K`,ꓙ:()=>`J`,ꓚ:()=>`C`,ꓛ:()=>`Ɔ`,ꓜ:()=>`Z`,ꓝ:()=>`F`,ꓞ:()=>`Ⅎ`,ꓟ:()=>`M`,ꓠ:()=>`N`,ꓡ:()=>`L`,ꓢ:()=>`S`,ꓣ:()=>`R`,ꓥ:()=>`Ʌ`,ꓦ:()=>`V`,ꓧ:()=>`H`,ꓪ:()=>`W`,ꓫ:()=>`X`,ꓬ:()=>`Y`,ꓭ:()=>`ᙠ`,ꓮ:()=>`A`,ꓯ:()=>`Ɐ`,ꓰ:()=>`E`,ꓱ:()=>`Ǝ`,ꓲ:()=>`l`,ꓳ:()=>`O`,ꓴ:()=>`U`,ꓵ:()=>`Ո`,ꓷ:()=>`ᗡ`,ꓸ:()=>`.`,ꓹ:()=>`,`,ꓺ:()=>`..`,ꓻ:()=>`.,`,ꓽ:()=>`:`,Ꙅ:()=>`2`,ꙅ:()=>`ƨ`,ꙇ:()=>`i`,ꙍ:()=>`ω`,Ꙑ:()=>`Ъl`,ꙑ:()=>Ht,Ꙩ:()=>`ʘ`,ꚕ:()=>`h̔`,Ꚙ:()=>`OO`,ꚙ:()=>`oo`,Ꚛ:()=>kC,ꚡ:()=>`И`,ꚰ:()=>`ᚹ`,ꚱ:()=>`Ⱶ`,ꛍ:()=>`ʡ`,ꛎ:()=>`Ʌ`,ꛛ:()=>`Π`,ꛟ:()=>`V`,ꛫ:()=>`?`,ꛯ:()=>`2`,Ꜩ:()=>`T3`,ꜩ:()=>`tȝ`,ꜱ:()=>`s`,Ꜳ:()=>`AA`,ꜳ:()=>`aa`,Ꜵ:()=>`AO`,ꜵ:()=>`ao`,Ꜷ:()=>`AU`,ꜷ:()=>`au`,Ꜹ:()=>`AV`,ꜹ:()=>`av`,Ꜻ:()=>`AV`,ꜻ:()=>`av`,Ꜽ:()=>`AY`,ꜽ:()=>`ay`,Ꝁ:()=>`K̵`,Ꝋ:()=>`O̵`,ꝋ:()=>`o̵`,Ꝏ:()=>`OO`,ꝏ:()=>`oo`,Ꝛ:()=>`2`,ꝡ:()=>`w̦`,Ꝫ:()=>`3`,ꝫ:()=>`ȝ`,Ꝯ:()=>`9`,ꝷ:()=>`tf`,ꝸ:()=>`&`,ꝺ:()=>`Ꝺ`,ꞌ:()=>`'`,ꞏ:()=>`·`,ꞕ:()=>`ꜧ`,Ꞙ:()=>`F`,ꞙ:()=>`f`,Ꞛ:()=>jC,ꞛ:()=>AC,ꞝ:()=>`ʚ`,Ꞟ:()=>`ꓤ`,ꞟ:()=>`u`,Ɜ:()=>`3`,Ʇ:()=>`ꓕ`,Ʝ:()=>`J`,Ꭓ:()=>`X`,Ꞵ:()=>`B`,ꞵ:()=>`ß`,Ꞷ:()=>`Ꙍ`,ꞷ:()=>`ω`,ꟷ:()=>`ー`,ꥠ:()=>R_,ꥡ:()=>z_,ꥢ:()=>V_,ꥣ:()=>W_,ꥤ:()=>J_,ꥥ:()=>Z_,ꥦ:()=>iv,ꥧ:()=>sv,ꥨ:()=>fv,ꥩ:()=>vv,ꥪ:()=>Sv,ꥫ:()=>Tv,ꥬ:()=>kv,ꥭ:()=>Fv,ꥮ:()=>Iv,ꥯ:()=>$v,ꥰ:()=>ry,ꥱ:()=>uy,ꥲ:()=>qy,ꥳ:()=>nb,ꥴ:()=>sb,ꥵ:()=>jb,ꥶ:()=>Jb,ꥷ:()=>cx,ꥸ:()=>vx,ꥹ:()=>xx,ꥺ:()=>kx,ꥻ:()=>Px,ꥼ:()=>Gx,ꦒ:()=>`ⰿ`,ꦣ:()=>`ꦝ`,ꧏ:()=>`٢`,ꬲ:()=>`e`,ꬵ:()=>`f`,ꬽ:()=>`o`,ꬾ:()=>`o̸`,ꬿ:()=>gn,ꭁ:()=>tn,ꭂ:()=>nn,ꭇ:()=>`r`,ꭈ:()=>`r`,ꭍ:()=>`ʃ`,ꭎ:()=>`u`,ꭒ:()=>`u`,ꭓ:()=>`χ`,ꭕ:()=>`χ`,ꭚ:()=>`y`,ꭠ:()=>`љ`,ꭢ:()=>`ɔe`,ꭣ:()=>`uo`,ꭰ:()=>`ᴅ`,ꭱ:()=>`ʀ`,ꭲ:()=>`ᴛ`,ꭴ:()=>`ơ`,ꭵ:()=>`i`,ꭺ:()=>`ᴀ`,ꭻ:()=>`ᴊ`,ꭼ:()=>`ᴇ`,ꭾ:()=>`ɂ`,ꮀ:()=>`ⱶ`,ꮁ:()=>`r`,ꮃ:()=>`w`,ꮇ:()=>`ʍ`,ꮋ:()=>`ʜ`,ꮎ:()=>`o̵`,ꮐ:()=>`ɢ`,ꮓ:()=>`z`,ꮛ:()=>`ꞓ`,ꮜ:()=>`u̵`,ꮟ:()=>`ƅ`,ꮢ:()=>`ʀ`,ꮩ:()=>`v`,ꮪ:()=>`s`,ꮮ:()=>`ʟ`,ꮯ:()=>`c`,ꮲ:()=>`ᴘ`,ꮶ:()=>`ĸ`,ꮻ:()=>`o̵`,ힰ:()=>bS,ힱ:()=>CS,ힲ:()=>DS,ힳ:()=>OS,ힴ:()=>PS,ힵ:()=>GS,ힶ:()=>XS,ힷ:()=>QS,ힸ:()=>aC,ힹ:()=>Gt,ힺ:()=>Kt,ힻ:()=>qt,ힼ:()=>Jt,ힽ:()=>zC,ힾ:()=>BC,ힿ:()=>VC,ퟀ:()=>HC,ퟁ:()=>WC,ퟂ:()=>GC,ퟃ:()=>qC,ퟄ:()=>YC,ퟅ:()=>lC,ퟆ:()=>dC,ퟋ:()=>h_,ퟌ:()=>C_,ퟍ:()=>P_,ퟎ:()=>F_,ퟏ:()=>B_,ퟐ:()=>H_,ퟑ:()=>U_,ퟒ:()=>G_,ퟓ:()=>K_,ퟔ:()=>q_,ퟕ:()=>Q_,ퟖ:()=>tv,ퟗ:()=>dv,ퟘ:()=>_v,ퟙ:()=>xv,ퟚ:()=>Dv,ퟛ:()=>Yv,ퟜ:()=>Qv,ퟝ:()=>Pv,ퟞ:()=>ty,ퟟ:()=>ny,ퟠ:()=>ay,ퟡ:()=>ly,ퟢ:()=>_y,ퟣ:()=>Dy,ퟤ:()=>ky,ퟥ:()=>Ay,ퟦ:()=>Ny,ퟧ:()=>Uy,ퟨ:()=>$y,ퟩ:()=>tb,ퟪ:()=>bb,ퟫ:()=>Tb,ퟬ:()=>kb,ퟭ:()=>Ab,ퟮ:()=>Ub,ퟯ:()=>Ib,ퟰ:()=>Rb,ퟱ:()=>Vb,ퟲ:()=>Kv,ퟳ:()=>zx,ퟴ:()=>Bx,ퟵ:()=>Vx,ퟶ:()=>Hx,ퟷ:()=>fx,ퟸ:()=>px,ퟹ:()=>_x,ퟺ:()=>wx,ퟻ:()=>Ox,豈:()=>`豈`,更:()=>`更`,車:()=>`車`,賈:()=>`賈`,滑:()=>`滑`,串:()=>`串`,句:()=>`句`,龜:()=>`龜`,龜:()=>`龜`,契:()=>`契`,金:()=>`金`,喇:()=>`喇`,奈:()=>`奈`,懶:()=>`懶`,癩:()=>`癩`,羅:()=>`羅`,蘿:()=>`蘿`,螺:()=>`螺`,裸:()=>`裸`,邏:()=>`邏`,樂:()=>`樂`,洛:()=>`洛`,烙:()=>`烙`,珞:()=>`珞`,落:()=>`落`,酪:()=>`酪`,駱:()=>`駱`,亂:()=>`亂`,卵:()=>`卵`,欄:()=>`欄`,爛:()=>`爛`,蘭:()=>`蘭`,鸞:()=>`鸞`,嵐:()=>`嵐`,濫:()=>`濫`,藍:()=>`藍`,襤:()=>`襤`,拉:()=>`拉`,臘:()=>`臘`,蠟:()=>`蠟`,廊:()=>`廊`,朗:()=>`朗`,浪:()=>`浪`,狼:()=>`狼`,郎:()=>`郎`,來:()=>`來`,冷:()=>`冷`,勞:()=>`勞`,擄:()=>`擄`,櫓:()=>`櫓`,爐:()=>`爐`,盧:()=>`盧`,老:()=>`老`,蘆:()=>`蘆`,虜:()=>`虜`,路:()=>`路`,露:()=>`露`,魯:()=>`魯`,鷺:()=>`鷺`,碌:()=>`碌`,祿:()=>`祿`,綠:()=>`綠`,菉:()=>`菉`,錄:()=>`錄`,鹿:()=>`鹿`,論:()=>`論`,壟:()=>`壟`,弄:()=>`弄`,籠:()=>`籠`,聾:()=>`聾`,牢:()=>`牢`,磊:()=>`磊`,賂:()=>`賂`,雷:()=>`雷`,壘:()=>`壘`,屢:()=>`屢`,樓:()=>`樓`,淚:()=>`淚`,漏:()=>`漏`,累:()=>`累`,縷:()=>`縷`,陋:()=>`陋`,勒:()=>`勒`,肋:()=>`肋`,凜:()=>`凜`,凌:()=>`凌`,稜:()=>`稜`,綾:()=>`綾`,菱:()=>`菱`,陵:()=>`陵`,讀:()=>`讀`,拏:()=>`拏`,樂:()=>`樂`,諾:()=>`諾`,丹:()=>`丹`,寧:()=>`寧`,怒:()=>`怒`,率:()=>`率`,異:()=>`異`,北:()=>`北`,磻:()=>`磻`,便:()=>`便`,復:()=>`復`,不:()=>`不`,泌:()=>`泌`,數:()=>`數`,索:()=>`索`,參:()=>`參`,塞:()=>`塞`,省:()=>`省`,葉:()=>`葉`,說:()=>`說`,殺:()=>`殺`,辰:()=>`辰`,沈:()=>`沈`,拾:()=>`拾`,若:()=>`若`,掠:()=>`掠`,略:()=>`略`,亮:()=>`亮`,兩:()=>`兩`,凉:()=>`凉`,梁:()=>`梁`,糧:()=>`糧`,良:()=>`良`,諒:()=>`諒`,量:()=>`量`,勵:()=>`勵`,呂:()=>`呂`,女:()=>`女`,廬:()=>`廬`,旅:()=>`旅`,濾:()=>`濾`,礪:()=>`礪`,閭:()=>`閭`,驪:()=>`驪`,麗:()=>`麗`,黎:()=>`黎`,力:()=>`力`,曆:()=>`曆`,歷:()=>`歷`,轢:()=>`轢`,年:()=>`年`,憐:()=>`憐`,戀:()=>`戀`,撚:()=>`撚`,漣:()=>`漣`,煉:()=>`煉`,璉:()=>`璉`,秊:()=>`秊`,練:()=>`練`,聯:()=>`聯`,輦:()=>`輦`,蓮:()=>`蓮`,連:()=>`連`,鍊:()=>`鍊`,列:()=>`列`,劣:()=>`劣`,咽:()=>`咽`,烈:()=>`烈`,裂:()=>`裂`,說:()=>`說`,廉:()=>`廉`,念:()=>`念`,捻:()=>`捻`,殮:()=>`殮`,簾:()=>`簾`,獵:()=>`獵`,令:()=>`令`,囹:()=>`囹`,寧:()=>`寧`,嶺:()=>`嶺`,怜:()=>`怜`,玲:()=>`玲`,瑩:()=>`瑩`,羚:()=>`羚`,聆:()=>`聆`,鈴:()=>`鈴`,零:()=>`零`,靈:()=>`靈`,領:()=>`領`,例:()=>`例`,禮:()=>`禮`,醴:()=>`醴`,隸:()=>`隷`,惡:()=>`惡`,了:()=>`了`,僚:()=>`僚`,寮:()=>`寮`,尿:()=>`尿`,料:()=>`料`,樂:()=>`樂`,燎:()=>`燎`,療:()=>`療`,蓼:()=>`蓼`,遼:()=>`遼`,龍:()=>`龍`,暈:()=>`暈`,阮:()=>`阮`,劉:()=>`劉`,杻:()=>`杻`,柳:()=>`柳`,流:()=>`流`,溜:()=>`溜`,琉:()=>`琉`,留:()=>`留`,硫:()=>`硫`,紐:()=>`紐`,類:()=>`類`,六:()=>`六`,戮:()=>`戮`,陸:()=>`陸`,倫:()=>`倫`,崙:()=>`崙`,淪:()=>`淪`,輪:()=>`輪`,律:()=>`律`,慄:()=>`慄`,栗:()=>`栗`,率:()=>`率`,隆:()=>`隆`,利:()=>`利`,吏:()=>`吏`,履:()=>`履`,易:()=>`易`,李:()=>`李`,梨:()=>`梨`,泥:()=>`泥`,理:()=>`理`,痢:()=>`痢`,罹:()=>`罹`,裏:()=>`裏`,裡:()=>`裡`,里:()=>`里`,離:()=>`離`,匿:()=>`匿`,溺:()=>`溺`,吝:()=>`吝`,燐:()=>`燐`,璘:()=>`璘`,藺:()=>`藺`,隣:()=>`隣`,鱗:()=>`鱗`,麟:()=>`麟`,林:()=>`林`,淋:()=>`淋`,臨:()=>`臨`,立:()=>`立`,笠:()=>`笠`,粒:()=>`粒`,狀:()=>`狀`,炙:()=>`炙`,識:()=>`識`,什:()=>`什`,茶:()=>`茶`,刺:()=>`刺`,切:()=>`切`,度:()=>`度`,拓:()=>`拓`,糖:()=>`糖`,宅:()=>`宅`,洞:()=>`洞`,暴:()=>`暴`,輻:()=>`輻`,行:()=>`行`,降:()=>`降`,見:()=>`見`,廓:()=>`廓`,兀:()=>`兀`,嗀:()=>`嗀`,塚:()=>`塚`,晴:()=>`晴`,凞:()=>`凞`,猪:()=>`猪`,益:()=>`益`,礼:()=>`礼`,神:()=>`神`,祥:()=>`祥`,福:()=>`福`,靖:()=>`靖`,精:()=>`精`,羽:()=>`羽`,蘒:()=>`蘒`,諸:()=>`諸`,逸:()=>`逸`,都:()=>`都`,飯:()=>`飯`,飼:()=>`飼`,館:()=>`館`,鶴:()=>`鶴`,郞:()=>`郎`,隷:()=>`隷`,侮:()=>`侮`,僧:()=>`僧`,免:()=>`免`,勉:()=>`勉`,勤:()=>`勤`,卑:()=>`卑`,喝:()=>`喝`,嘆:()=>`嘆`,器:()=>`器`,塀:()=>`塀`,墨:()=>`墨`,層:()=>`層`,屮:()=>`屮`,悔:()=>`悔`,慨:()=>`慨`,憎:()=>`憎`,懲:()=>`懲`,敏:()=>`敏`,既:()=>`既`,暑:()=>`暑`,梅:()=>`梅`,海:()=>`海`,渚:()=>`渚`,漢:()=>`漢`,煮:()=>`煮`,爫:()=>`爫`,琢:()=>`琢`,碑:()=>`碑`,社:()=>`社`,祉:()=>`祉`,祈:()=>`祈`,祐:()=>`祐`,祖:()=>`祖`,祝:()=>`祝`,禍:()=>`禍`,禎:()=>`禎`,穀:()=>`穀`,突:()=>`突`,節:()=>`節`,練:()=>`練`,縉:()=>`縉`,繁:()=>`繁`,署:()=>`署`,者:()=>`者`,臭:()=>`臭`,艹:()=>`艹`,艹:()=>`艹`,著:()=>`著`,褐:()=>`褐`,視:()=>`視`,謁:()=>`謁`,謹:()=>`謹`,賓:()=>`賓`,贈:()=>`贈`,辶:()=>`辶`,逸:()=>`逸`,難:()=>`難`,響:()=>`響`,頻:()=>`頻`,恵:()=>`恵`,𤋮:()=>Bw,舘:()=>`舘`,並:()=>`並`,况:()=>`况`,全:()=>`全`,侀:()=>`侀`,充:()=>`充`,冀:()=>`冀`,勇:()=>`勇`,勺:()=>`勺`,喝:()=>`喝`,啕:()=>`啕`,喙:()=>`喙`,嗢:()=>`嗢`,塚:()=>`塚`,墳:()=>`墳`,奄:()=>`奄`,奔:()=>`奔`,婢:()=>`婢`,嬨:()=>`嬨`,廒:()=>`廒`,廙:()=>`廙`,彩:()=>`彩`,徭:()=>`徭`,惘:()=>`惘`,慎:()=>`慎`,愈:()=>`愈`,憎:()=>`憎`,慠:()=>`慠`,懲:()=>`懲`,戴:()=>`戴`,揄:()=>`揄`,搜:()=>`搜`,摒:()=>`摒`,敖:()=>`敖`,晴:()=>`晴`,朗:()=>`朗`,望:()=>`望`,杖:()=>`杖`,歹:()=>`歹`,殺:()=>`殺`,流:()=>`流`,滛:()=>`滛`,滋:()=>`滋`,漢:()=>`漢`,瀞:()=>`瀞`,煮:()=>`煮`,瞧:()=>`瞧`,爵:()=>`爵`,犯:()=>`犯`,猪:()=>`猪`,瑱:()=>`瑱`,甆:()=>`甆`,画:()=>`画`,瘝:()=>`瘝`,瘟:()=>`瘟`,益:()=>`益`,盛:()=>`盛`,直:()=>`直`,睊:()=>`睊`,着:()=>`着`,磌:()=>`磌`,窱:()=>`窱`,節:()=>`節`,类:()=>`类`,絛:()=>`絛`,練:()=>`練`,缾:()=>`缾`,者:()=>`者`,荒:()=>`荒`,華:()=>`華`,蝹:()=>`蝹`,襁:()=>`襁`,覆:()=>`覆`,視:()=>`視`,調:()=>`調`,諸:()=>`諸`,請:()=>`請`,謁:()=>`謁`,諾:()=>`諾`,諭:()=>`諭`,謹:()=>`謹`,變:()=>`變`,贈:()=>`贈`,輸:()=>`輸`,遲:()=>`遲`,醙:()=>`醙`,鉶:()=>`鉶`,陼:()=>`陼`,難:()=>`難`,靖:()=>`靖`,韛:()=>`韛`,響:()=>`響`,頋:()=>`頋`,頻:()=>`頻`,鬒:()=>`鬒`,龜:()=>`龜`,𢡊:()=>yw,𢡄:()=>vw,𣏕:()=>Ow,㮝:()=>`㮝`,䀘:()=>`䀘`,䀹:()=>`䀹`,𥉉:()=>eT,𥳐:()=>uT,𧻓:()=>PT,齃:()=>`齃`,龎:()=>`龎`,ff:()=>`ff`,fi:()=>`fi`,fl:()=>`fl`,ffi:()=>`ffi`,ffl:()=>`ffl`,st:()=>`st`,ﬓ:()=>Kn,ﬔ:()=>Un,ﬕ:()=>Wn,ﬖ:()=>Jn,ﬗ:()=>Gn,ﬠ:()=>`ע`,ﬡ:()=>`א`,ﬢ:()=>`ד`,ﬣ:()=>`ה`,ﬤ:()=>`כ`,ﬥ:()=>`ל`,ﬦ:()=>`ם`,ﬧ:()=>`ר`,ﬨ:()=>`ת`,שׂ:()=>`שׁ`,שּׂ:()=>`שּׁ`,אָ:()=>`אַ`,אּ:()=>`אַ`,יּ:()=>`יִ`,שּ:()=>`שׁ`,ﭏ:()=>Yn,ﭐ:()=>`ٱ`,ﭑ:()=>`ٱ`,ﭒ:()=>`ٻ`,ﭓ:()=>`ٻ`,ﭔ:()=>`ٻ`,ﭕ:()=>`ٻ`,ﭖ:()=>wd,ﭗ:()=>Cd,ﭘ:()=>xd,ﭙ:()=>Sd,ﭚ:()=>`ڀ`,ﭛ:()=>`ڀ`,ﭜ:()=>`ڀ`,ﭝ:()=>`ڀ`,ﭞ:()=>`ٺ`,ﭟ:()=>`ٺ`,ﭠ:()=>`ٺ`,ﭡ:()=>`ٺ`,ﭢ:()=>`ٿ`,ﭣ:()=>`ٿ`,ﭤ:()=>`ٿ`,ﭥ:()=>`ٿ`,ﭦ:()=>md,ﭧ:()=>pd,ﭨ:()=>dd,ﭩ:()=>fd,ﭪ:()=>vc,ﭫ:()=>_c,ﭬ:()=>hc,ﭭ:()=>gc,ﭮ:()=>`ڦ`,ﭯ:()=>`ڦ`,ﭰ:()=>`ڦ`,ﭱ:()=>`ڦ`,ﭲ:()=>`ڄ`,ﭳ:()=>`ڄ`,ﭴ:()=>`ڄ`,ﭵ:()=>`ڄ`,ﭶ:()=>`ڃ`,ﭷ:()=>`ڃ`,ﭸ:()=>`ڃ`,ﭹ:()=>`ڃ`,ﭺ:()=>`چ`,ﭻ:()=>`چ`,ﭼ:()=>`چ`,ﭽ:()=>`چ`,ﭾ:()=>`ڇ`,ﭿ:()=>`ڇ`,ﮀ:()=>`ڇ`,ﮁ:()=>`ڇ`,ﮂ:()=>`ڍ`,ﮃ:()=>`ڍ`,ﮄ:()=>`ڌ`,ﮅ:()=>`ڌ`,ﮆ:()=>Bi,ﮇ:()=>zi,ﮈ:()=>Li,ﮉ:()=>Ii,ﮊ:()=>Xi,ﮋ:()=>Yi,ﮌ:()=>qi,ﮍ:()=>Ki,ﮎ:()=>`ك`,ﮏ:()=>`ك`,ﮐ:()=>`ك`,ﮑ:()=>`ك`,ﮒ:()=>`گ`,ﮓ:()=>`گ`,ﮔ:()=>`گ`,ﮕ:()=>`گ`,ﮖ:()=>`ڳ`,ﮗ:()=>`ڳ`,ﮘ:()=>`ڳ`,ﮙ:()=>`ڳ`,ﮚ:()=>`ڱ`,ﮛ:()=>`ڱ`,ﮜ:()=>`ڱ`,ﮝ:()=>`ڱ`,ﮞ:()=>`ى`,ﮟ:()=>`ى`,ﮠ:()=>yd,ﮡ:()=>vd,ﮢ:()=>gd,ﮣ:()=>_d,ﮤ:()=>`ۀ`,ﮥ:()=>`ۀ`,ﮦ:()=>`o`,ﮧ:()=>`o`,ﮨ:()=>`o`,ﮩ:()=>`o`,ﮪ:()=>`o`,ﮫ:()=>`o`,ﮬ:()=>`o`,ﮭ:()=>`o`,ﮮ:()=>`ى`,ﮯ:()=>`ى`,ﮰ:()=>`ۓ`,ﮱ:()=>`ۓ`,ﯓ:()=>Rc,ﯔ:()=>Lc,ﯕ:()=>Fc,ﯖ:()=>Ic,ﯗ:()=>qu,ﯘ:()=>Ku,ﯙ:()=>Xu,ﯚ:()=>Yu,ﯛ:()=>nd,ﯜ:()=>td,ﯝ:()=>cd,ﯞ:()=>Wu,ﯟ:()=>Uu,ﯠ:()=>`ۅ`,ﯡ:()=>`ۅ`,ﯢ:()=>$u,ﯣ:()=>Qu,ﯤ:()=>`ٻ`,ﯥ:()=>`ٻ`,ﯦ:()=>`ٻ`,ﯧ:()=>`ٻ`,ﯨ:()=>`ى`,ﯩ:()=>`ى`,ﯪ:()=>ef,ﯫ:()=>$d,ﯬ:()=>af,ﯭ:()=>rf,ﯮ:()=>Sf,ﯯ:()=>xf,ﯰ:()=>wf,ﯱ:()=>Cf,ﯲ:()=>Ef,ﯳ:()=>Tf,ﯴ:()=>Of,ﯵ:()=>Df,ﯶ:()=>cf,ﯷ:()=>sf,ﯸ:()=>of,ﯹ:()=>Mf,ﯺ:()=>Af,ﯻ:()=>kf,ﯼ:()=>`ى`,ﯽ:()=>`ى`,ﯾ:()=>`ى`,ﯿ:()=>`ى`,ﰀ:()=>uf,ﰁ:()=>ff,ﰂ:()=>yf,ﰃ:()=>Nf,ﰄ:()=>Ff,ﰅ:()=>er,ﰆ:()=>nr,ﰇ:()=>ar,ﰈ:()=>mr,ﰉ:()=>_r,ﰊ:()=>yr,ﰋ:()=>xr,ﰌ:()=>Er,ﰍ:()=>jr,ﰎ:()=>Br,ﰏ:()=>Jr,ﰐ:()=>Xr,ﰑ:()=>Rf,ﰒ:()=>np,ﰓ:()=>pp,ﰔ:()=>hp,ﰕ:()=>Qr,ﰖ:()=>ri,ﰗ:()=>gi,ﰘ:()=>yi,ﰙ:()=>Di,ﰚ:()=>Oi,ﰛ:()=>Ai,ﰜ:()=>xa,ﰝ:()=>ja,ﰞ:()=>Ha,ﰟ:()=>to,ﰠ:()=>Do,ﰡ:()=>zo,ﰢ:()=>qo,ﰣ:()=>Yo,ﰤ:()=>$o,ﰥ:()=>as,ﰦ:()=>fs,ﰧ:()=>hs,ﰨ:()=>Es,ﰩ:()=>Os,ﰪ:()=>Ns,ﰫ:()=>Us,ﰬ:()=>Gs,ﰭ:()=>ec,ﰮ:()=>nc,ﰯ:()=>ic,ﰰ:()=>cc,ﰱ:()=>dc,ﰲ:()=>pc,ﰳ:()=>Sc,ﰴ:()=>Tc,ﰵ:()=>jc,ﰶ:()=>Nc,ﰷ:()=>`كl`,ﰸ:()=>Vc,ﰹ:()=>Uc,ﰺ:()=>Gc,ﰻ:()=>Yc,ﰼ:()=>$c,ﰽ:()=>il,ﰾ:()=>ol,ﰿ:()=>_l,ﱀ:()=>wl,ﱁ:()=>Al,ﱂ:()=>Il,ﱃ:()=>Vl,ﱄ:()=>Ul,ﱅ:()=>Kl,ﱆ:()=>Ql,ﱇ:()=>iu,ﱈ:()=>uu,ﱉ:()=>fu,ﱊ:()=>pu,ﱋ:()=>sr,ﱌ:()=>Cu,ﱍ:()=>Ou,ﱎ:()=>Pu,ﱏ:()=>zu,ﱐ:()=>Vu,ﱑ:()=>`oج`,ﱒ:()=>`oم`,ﱓ:()=>`oى`,ﱔ:()=>`oى`,ﱕ:()=>Lf,ﱖ:()=>Vf,ﱗ:()=>Wf,ﱘ:()=>Qf,ﱙ:()=>lp,ﱚ:()=>dp,ﱛ:()=>Ui,ﱜ:()=>ta,ﱝ:()=>Gd,ﱞ:()=>ae,ﱟ:()=>oe,ﱠ:()=>ce,ﱡ:()=>ue,ﱢ:()=>fe,ﱣ:()=>pe,ﱤ:()=>mf,ﱥ:()=>hf,ﱦ:()=>vf,ﱧ:()=>bf,ﱨ:()=>jf,ﱩ:()=>Pf,ﱪ:()=>lr,ﱫ:()=>ur,ﱬ:()=>pr,ﱭ:()=>hr,ﱮ:()=>gr,ﱯ:()=>vr,ﱰ:()=>Fr,ﱱ:()=>Ir,ﱲ:()=>zr,ﱳ:()=>Kr,ﱴ:()=>qr,ﱵ:()=>Yr,ﱶ:()=>Kf,ﱷ:()=>Jf,ﱸ:()=>tp,ﱹ:()=>sp,ﱺ:()=>fp,ﱻ:()=>mp,ﱼ:()=>uc,ﱽ:()=>fc,ﱾ:()=>Ac,ﱿ:()=>Mc,ﲀ:()=>`كl`,ﲁ:()=>Jc,ﲂ:()=>Qc,ﲃ:()=>rl,ﲄ:()=>al,ﲅ:()=>Fl,ﲆ:()=>Bl,ﲇ:()=>Hl,ﲈ:()=>`مl`,ﲉ:()=>lu,ﲊ:()=>ku,ﲋ:()=>Au,ﲌ:()=>Nu,ﲍ:()=>Lu,ﲎ:()=>Ru,ﲏ:()=>Bu,ﲐ:()=>Wd,ﲑ:()=>Gf,ﲒ:()=>qf,ﲓ:()=>Zf,ﲔ:()=>op,ﲕ:()=>cp,ﲖ:()=>up,ﲗ:()=>lf,ﲘ:()=>df,ﲙ:()=>pf,ﲚ:()=>gf,ﲛ:()=>tf,ﲜ:()=>$n,ﲝ:()=>tr,ﲞ:()=>ir,ﲟ:()=>dr,ﲠ:()=>`بo`,ﲡ:()=>br,ﲢ:()=>Tr,ﲣ:()=>Ar,ﲤ:()=>Lr,ﲥ:()=>`تo`,ﲦ:()=>$f,ﲧ:()=>Zr,ﲨ:()=>ni,ﲩ:()=>hi,ﲪ:()=>vi,ﲫ:()=>Ei,ﲬ:()=>ki,ﲭ:()=>ya,ﲮ:()=>ka,ﲯ:()=>Ba,ﲰ:()=>$a,ﲱ:()=>Eo,ﲲ:()=>jo,ﲳ:()=>Ro,ﲴ:()=>Ko,ﲵ:()=>Jo,ﲶ:()=>Qo,ﲷ:()=>is,ﲸ:()=>ds,ﲹ:()=>ws,ﲺ:()=>Ds,ﲻ:()=>Ms,ﲼ:()=>Hs,ﲽ:()=>Ws,ﲾ:()=>$s,ﲿ:()=>tc,ﳀ:()=>rc,ﳁ:()=>sc,ﳂ:()=>xc,ﳃ:()=>wc,ﳄ:()=>Bc,ﳅ:()=>Hc,ﳆ:()=>Wc,ﳇ:()=>Kc,ﳈ:()=>Xc,ﳉ:()=>gl,ﳊ:()=>Cl,ﳋ:()=>kl,ﳌ:()=>Nl,ﳍ:()=>`لo`,ﳎ:()=>Gl,ﳏ:()=>Zl,ﳐ:()=>ru,ﳑ:()=>cu,ﳒ:()=>or,ﳓ:()=>Su,ﳔ:()=>Du,ﳕ:()=>ju,ﳖ:()=>`نo`,ﳗ:()=>`oج`,ﳘ:()=>`oم`,ﳙ:()=>`oٰ`,ﳚ:()=>If,ﳛ:()=>Bf,ﳜ:()=>Uf,ﳝ:()=>Yf,ﳞ:()=>`ىo`,ﳟ:()=>_f,ﳠ:()=>nf,ﳡ:()=>fr,ﳢ:()=>`بo`,ﳣ:()=>Rr,ﳤ:()=>`تo`,ﳥ:()=>ep,ﳦ:()=>Kd,ﳧ:()=>eo,ﳨ:()=>`سo`,ﳩ:()=>ro,ﳪ:()=>va,ﳫ:()=>qc,ﳬ:()=>Zc,ﳭ:()=>Pl,ﳮ:()=>Mu,ﳯ:()=>`نo`,ﳰ:()=>Xf,ﳱ:()=>`ىo`,ﳲ:()=>se,ﳳ:()=>le,ﳴ:()=>de,ﳵ:()=>xs,ﳶ:()=>Cs,ﳷ:()=>zs,ﳸ:()=>Vs,ﳹ:()=>Xs,ﳺ:()=>Qs,ﳻ:()=>_o,ﳼ:()=>yo,ﳽ:()=>xo,ﳾ:()=>Co,ﳿ:()=>Ci,ﴀ:()=>Ti,ﴁ:()=>li,ﴂ:()=>di,ﴃ:()=>Mi,ﴄ:()=>Pi,ﴅ:()=>Uo,ﴆ:()=>Go,ﴇ:()=>ss,ﴈ:()=>ls,ﴉ:()=>Ta,ﴊ:()=>Fa,ﴋ:()=>Ka,ﴌ:()=>ao,ﴍ:()=>Qa,ﴎ:()=>Xa,ﴏ:()=>No,ﴐ:()=>rs,ﴑ:()=>bs,ﴒ:()=>Ss,ﴓ:()=>Rs,ﴔ:()=>Bs,ﴕ:()=>Ys,ﴖ:()=>Zs,ﴗ:()=>go,ﴘ:()=>vo,ﴙ:()=>bo,ﴚ:()=>So,ﴛ:()=>Si,ﴜ:()=>wi,ﴝ:()=>ci,ﴞ:()=>ui,ﴟ:()=>ji,ﴠ:()=>Ni,ﴡ:()=>Ho,ﴢ:()=>Wo,ﴣ:()=>os,ﴤ:()=>cs,ﴥ:()=>wa,ﴦ:()=>Pa,ﴧ:()=>Ga,ﴨ:()=>io,ﴩ:()=>Za,ﴪ:()=>Ya,ﴫ:()=>Mo,ﴬ:()=>ns,ﴭ:()=>Sa,ﴮ:()=>Ma,ﴯ:()=>Ua,ﴰ:()=>no,ﴱ:()=>`سo`,ﴲ:()=>_a,ﴳ:()=>ps,ﴴ:()=>ba,ﴵ:()=>Aa,ﴶ:()=>Va,ﴷ:()=>Ca,ﴸ:()=>Na,ﴹ:()=>Wa,ﴺ:()=>ms,ﴻ:()=>Ts,ﴼ:()=>`l̋`,ﴽ:()=>`l̋`,ﵐ:()=>Sr,ﵑ:()=>Or,ﵒ:()=>Dr,ﵓ:()=>kr,ﵔ:()=>Mr,ﵕ:()=>Vr,ﵖ:()=>Hr,ﵗ:()=>Ur,ﵘ:()=>ai,ﵙ:()=>ii,ﵚ:()=>xi,ﵛ:()=>bi,ﵜ:()=>Ia,ﵝ:()=>Ea,ﵞ:()=>Da,ﵟ:()=>co,ﵠ:()=>so,ﵡ:()=>oo,ﵢ:()=>po,ﵣ:()=>fo,ﵤ:()=>ko,ﵥ:()=>Oo,ﵦ:()=>Vo,ﵧ:()=>Ra,ﵨ:()=>La,ﵩ:()=>Oa,ﵪ:()=>uo,ﵫ:()=>lo,ﵬ:()=>ho,ﵭ:()=>mo,ﵮ:()=>Xo,ﵯ:()=>ts,ﵰ:()=>es,ﵱ:()=>_s,ﵲ:()=>gs,ﵳ:()=>vs,ﵴ:()=>ys,ﵵ:()=>As,ﵶ:()=>Fs,ﵷ:()=>Ps,ﵸ:()=>Is,ﵹ:()=>Ks,ﵺ:()=>Js,ﵻ:()=>qs,ﵼ:()=>oc,ﵽ:()=>ac,ﵾ:()=>Dc,ﵿ:()=>Oc,ﶀ:()=>El,ﶁ:()=>Ol,ﶂ:()=>Dl,ﶃ:()=>vl,ﶄ:()=>yl,ﶅ:()=>Ml,ﶆ:()=>jl,ﶇ:()=>Rl,ﶈ:()=>Ll,ﶉ:()=>$l,ﶊ:()=>eu,ﶋ:()=>nu,ﶌ:()=>ql,ﶍ:()=>Yl,ﶎ:()=>au,ﶏ:()=>ou,ﶒ:()=>Jl,ﶓ:()=>fn,ﶔ:()=>pn,ﶕ:()=>wu,ﶖ:()=>Tu,ﶗ:()=>yu,ﶘ:()=>vu,ﶙ:()=>bu,ﶚ:()=>Iu,ﶛ:()=>Fu,ﶜ:()=>ip,ﶝ:()=>rp,ﶞ:()=>cr,ﶟ:()=>wr,ﶠ:()=>Cr,ﶡ:()=>Pr,ﶢ:()=>Nr,ﶣ:()=>Gr,ﶤ:()=>Wr,ﶥ:()=>si,ﶦ:()=>$r,ﶧ:()=>oi,ﶨ:()=>qa,ﶩ:()=>Ao,ﶪ:()=>za,ﶫ:()=>Zo,ﶬ:()=>Sl,ﶭ:()=>zl,ﶮ:()=>Hf,ﶯ:()=>zf,ﶰ:()=>ap,ﶱ:()=>du,ﶲ:()=>kc,ﶳ:()=>Eu,ﶴ:()=>Ec,ﶵ:()=>Tl,ﶶ:()=>Ls,ﶷ:()=>nl,ﶸ:()=>gu,ﶹ:()=>su,ﶺ:()=>bl,ﶻ:()=>tl,ﶼ:()=>xl,ﶽ:()=>_u,ﶾ:()=>ei,ﶿ:()=>_i,ﷀ:()=>Xl,ﷁ:()=>lc,ﷂ:()=>rr,ﷃ:()=>el,ﷄ:()=>ks,ﷅ:()=>Bo,ﷆ:()=>Ja,ﷇ:()=>xu,ﷰ:()=>Io,ﷱ:()=>Cc,ﷲ:()=>ln,ﷳ:()=>cn,ﷴ:()=>tu,ﷵ:()=>Po,ﷶ:()=>na,ﷷ:()=>js,ﷸ:()=>ld,ﷹ:()=>Fo,ﷺ:()=>Lo,ﷻ:()=>ti,ﺀ:()=>`ء`,ﺁ:()=>`آ`,ﺂ:()=>`آ`,ﺃ:()=>`lٴ`,ﺄ:()=>`lٴ`,ﺅ:()=>ad,ﺆ:()=>id,ﺇ:()=>`lٕ`,ﺈ:()=>`lٕ`,ﺉ:()=>Zd,ﺊ:()=>Xd,ﺋ:()=>Jd,ﺌ:()=>Yd,ﺍ:()=>`l`,ﺎ:()=>`l`,ﺏ:()=>`ب`,ﺐ:()=>`ب`,ﺑ:()=>`ب`,ﺒ:()=>`ب`,ﺓ:()=>`ة`,ﺔ:()=>`ة`,ﺕ:()=>`ت`,ﺖ:()=>`ت`,ﺗ:()=>`ت`,ﺘ:()=>`ت`,ﺙ:()=>Pd,ﺚ:()=>Nd,ﺛ:()=>jd,ﺜ:()=>Md,ﺝ:()=>`ج`,ﺞ:()=>`ج`,ﺟ:()=>`ج`,ﺠ:()=>`ج`,ﺡ:()=>`ح`,ﺢ:()=>`ح`,ﺣ:()=>`ح`,ﺤ:()=>`ح`,ﺥ:()=>`خ`,ﺦ:()=>`خ`,ﺧ:()=>`خ`,ﺨ:()=>`خ`,ﺩ:()=>`د`,ﺪ:()=>`د`,ﺫ:()=>`ذ`,ﺬ:()=>`ذ`,ﺭ:()=>`ر`,ﺮ:()=>`ر`,ﺯ:()=>`ز`,ﺰ:()=>`ز`,ﺱ:()=>`س`,ﺲ:()=>`س`,ﺳ:()=>`س`,ﺴ:()=>`س`,ﺵ:()=>ha,ﺶ:()=>ma,ﺷ:()=>fa,ﺸ:()=>pa,ﺹ:()=>`ص`,ﺺ:()=>`ص`,ﺻ:()=>`ص`,ﺼ:()=>`ص`,ﺽ:()=>`ض`,ﺾ:()=>`ض`,ﺿ:()=>`ض`,ﻀ:()=>`ض`,ﻁ:()=>`ط`,ﻂ:()=>`ط`,ﻃ:()=>`ط`,ﻄ:()=>`ط`,ﻅ:()=>`ظ`,ﻆ:()=>`ظ`,ﻇ:()=>`ظ`,ﻈ:()=>`ظ`,ﻉ:()=>`ع`,ﻊ:()=>`ع`,ﻋ:()=>`ع`,ﻌ:()=>`ع`,ﻍ:()=>`غ`,ﻎ:()=>`غ`,ﻏ:()=>`غ`,ﻐ:()=>`غ`,ﻑ:()=>`ف`,ﻒ:()=>`ف`,ﻓ:()=>`ف`,ﻔ:()=>`ف`,ﻕ:()=>`ق`,ﻖ:()=>`ق`,ﻗ:()=>`ق`,ﻘ:()=>`ق`,ﻙ:()=>`ك`,ﻚ:()=>`ك`,ﻛ:()=>`ك`,ﻜ:()=>`ك`,ﻝ:()=>`ل`,ﻞ:()=>`ل`,ﻟ:()=>`ل`,ﻠ:()=>`ل`,ﻡ:()=>`م`,ﻢ:()=>`م`,ﻣ:()=>`م`,ﻤ:()=>`م`,ﻥ:()=>`ن`,ﻦ:()=>`ن`,ﻧ:()=>`ن`,ﻨ:()=>`ن`,ﻩ:()=>`o`,ﻪ:()=>`o`,ﻫ:()=>`o`,ﻬ:()=>`o`,ﻭ:()=>`و`,ﻮ:()=>`و`,ﻯ:()=>`ى`,ﻰ:()=>`ى`,ﻱ:()=>`ى`,ﻲ:()=>`ى`,ﻳ:()=>`ى`,ﻴ:()=>`ى`,ﻵ:()=>hl,ﻶ:()=>ml,ﻷ:()=>pl,ﻸ:()=>fl,ﻹ:()=>dl,ﻺ:()=>ul,ﻻ:()=>`لl`,ﻼ:()=>`لl`,A:()=>`A`,B:()=>`B`,C:()=>`C`,E:()=>`E`,H:()=>`H`,I:()=>`l`,J:()=>`J`,K:()=>`K`,M:()=>`M`,N:()=>`N`,O:()=>`O`,P:()=>`P`,S:()=>`S`,T:()=>`T`,X:()=>`X`,Y:()=>`Y`,Z:()=>`Z`,a:()=>`a`,c:()=>`c`,e:()=>`e`,g:()=>`g`,h:()=>`h`,i:()=>`i`,j:()=>`j`,l:()=>`l`,o:()=>`o`,p:()=>`p`,s:()=>`s`,v:()=>`v`,x:()=>`x`,y:()=>`y`,𐊂:()=>`B`,𐊅:()=>`Δ`,𐊆:()=>`E`,𐊇:()=>`F`,𐊊:()=>`l`,𐊍:()=>`Ʌ`,𐊐:()=>`X`,𐊒:()=>`O`,𐊔:()=>`ᛜ`,𐊕:()=>`P`,𐊖:()=>`S`,𐊗:()=>`T`,𐊛:()=>`+`,𐊠:()=>`A`,𐊡:()=>`B`,𐊢:()=>`C`,𐊣:()=>`Δ`,𐊥:()=>`F`,𐊫:()=>`O`,𐊭:()=>`Ϙ`,𐊰:()=>`M`,𐊱:()=>`T`,𐊲:()=>`Y`,𐊳:()=>`Φ`,𐊴:()=>`X`,𐊵:()=>`Ψ`,𐊶:()=>`Ω`,𐊸:()=>`ⵀ`,𐋏:()=>`H`,𐌁:()=>`B`,𐌂:()=>`C`,𐌉:()=>`l`,𐌑:()=>`M`,𐌒:()=>`Ϙ`,𐌕:()=>`T`,𐌗:()=>`X`,𐌚:()=>`8`,𐌟:()=>`*`,𐏑:()=>MC,𐏓:()=>NC,𐐁:()=>`Ɛ`,𐐄:()=>`O`,𐐑:()=>`ꓶ`,𐐕:()=>`C`,𐐛:()=>`L`,𐐟:()=>`Ɒ`,𐐠:()=>`S`,𐐣:()=>`Ɔ`,𐐥:()=>`И`,𐐩:()=>`ꞓ`,𐐪:()=>`ʚ`,𐐬:()=>`o`,𐐽:()=>`c`,𐐿:()=>`ɷ`,𐑂:()=>`ɞ`,𐑃:()=>`ʟ`,𐑈:()=>`s`,𐑋:()=>`ɔ`,𐑍:()=>`ᴎ`,𐒰:()=>`Ʌ`,𐒴:()=>`R`,𐒼:()=>`Ӄ`,𐓂:()=>`O`,𐓃:()=>`ʘ`,𐓄:()=>`Þ`,𐓍:()=>`Ћ`,𐓎:()=>`U`,𐓐:()=>`ᛦ`,𐓑:()=>`Ψ`,𐓒:()=>`7`,𐓘:()=>`ʌ`,𐓛:()=>`λ`,𐓪:()=>`o`,𐓫:()=>`ꙩ`,𐓶:()=>`u`,𐓹:()=>`ψ`,𐔓:()=>`N`,𐔖:()=>`O`,𐔘:()=>`K`,𐔜:()=>`C`,𐔝:()=>`V`,𐔥:()=>`F`,𐔦:()=>`L`,𐔧:()=>`X`,𑇜:()=>`ꣻ`,𑐓:()=>gm,𑐙:()=>_m,𑐤:()=>vm,𑐪:()=>ym,𑐭:()=>bm,𑐯:()=>xm,𑒒:()=>`ঘ`,𑒔:()=>`চ`,𑒖:()=>`জ`,𑒘:()=>`ঞ`,𑒙:()=>`ট`,𑒛:()=>`ড`,𑒝:()=>`ল`,𑒞:()=>`ত`,𑒟:()=>`থ`,𑒠:()=>`দ`,𑒡:()=>`ধ`,𑒢:()=>`ন`,𑒣:()=>`প`,𑒧:()=>`ম`,𑒨:()=>`য`,𑒩:()=>`ব`,𑒪:()=>`ণ`,𑒫:()=>`র`,𑒭:()=>`ষ`,𑒮:()=>`স`,𑓄:()=>`ঽ`,𑓅:()=>`ẇ`,𑗘:()=>Sm,𑗙:()=>Cm,𑗚:()=>wm,𑗛:()=>Tm,𑜀:()=>`rn`,𑜆:()=>`v`,𑜊:()=>`w`,𑜎:()=>`w`,𑜏:()=>`w`,𑢠:()=>`V`,𑢢:()=>`F`,𑢣:()=>`L`,𑢤:()=>`Y`,𑢦:()=>`E`,𑢨:()=>`∇`,𑢩:()=>`Z`,𑢬:()=>`9`,𑢮:()=>`E`,𑢯:()=>`4`,𑢲:()=>`L`,𑢵:()=>`O`,𑢷:()=>`ᛜ`,𑢸:()=>`U`,𑢻:()=>`5`,𑢼:()=>`T`,𑣀:()=>`v`,𑣁:()=>`s`,𑣂:()=>`F`,𑣃:()=>`i`,𑣄:()=>`z`,𑣆:()=>`7`,𑣈:()=>`o`,𑣊:()=>`3`,𑣌:()=>`9`,𑣎:()=>`ꞓ`,𑣕:()=>`6`,𑣖:()=>`9`,𑣗:()=>`o`,𑣘:()=>`u`,𑣜:()=>`y`,𑫦:()=>gC,𑫧:()=>bC,𑫨:()=>_C,𑫩:()=>vC,𑫪:()=>yC,𑫬:()=>EC,𑫭:()=>DC,𑫮:()=>OC,𑫴:()=>xC,𑫵:()=>TC,𑫶:()=>SC,𑫷:()=>CC,𑫸:()=>wC,𒀸:()=>PC,𓋹:()=>FC,𖼇:()=>`Γ`,𖼈:()=>`V`,𖼊:()=>`T`,𖼖:()=>`L`,𖼚:()=>`Δ`,𖼜:()=>`Ꙙ`,𖼦:()=>`ꓶ`,𖼨:()=>`l`,𖼭:()=>`Ɛ`,𖼵:()=>`R`,𖼺:()=>`S`,𖼻:()=>`3`,𖼽:()=>`Ʌ`,𖼿:()=>`>`,𖽀:()=>`A`,𖽂:()=>`U`,𖽃:()=>`Y`,𝐀:()=>`A`,𝐁:()=>`B`,𝐂:()=>`C`,𝐃:()=>`D`,𝐄:()=>`E`,𝐅:()=>`F`,𝐆:()=>`G`,𝐇:()=>`H`,𝐈:()=>`l`,𝐉:()=>`J`,𝐊:()=>`K`,𝐋:()=>`L`,𝐌:()=>`M`,𝐍:()=>`N`,𝐎:()=>`O`,𝐏:()=>`P`,𝐐:()=>`Q`,𝐑:()=>`R`,𝐒:()=>`S`,𝐓:()=>`T`,𝐔:()=>`U`,𝐕:()=>`V`,𝐖:()=>`W`,𝐗:()=>`X`,𝐘:()=>`Y`,𝐙:()=>`Z`,𝐚:()=>`a`,𝐛:()=>`b`,𝐜:()=>`c`,𝐝:()=>`d`,𝐞:()=>`e`,𝐟:()=>`f`,𝐠:()=>`g`,𝐡:()=>`h`,𝐢:()=>`i`,𝐣:()=>`j`,𝐤:()=>`k`,𝐥:()=>`l`,𝐦:()=>`rn`,𝐧:()=>`n`,𝐨:()=>`o`,𝐩:()=>`p`,𝐪:()=>`q`,𝐫:()=>`r`,𝐬:()=>`s`,𝐭:()=>`t`,𝐮:()=>`u`,𝐯:()=>`v`,𝐰:()=>`w`,𝐱:()=>`x`,𝐲:()=>`y`,𝐳:()=>`z`,𝐴:()=>`A`,𝐵:()=>`B`,𝐶:()=>`C`,𝐷:()=>`D`,𝐸:()=>`E`,𝐹:()=>`F`,𝐺:()=>`G`,𝐻:()=>`H`,𝐼:()=>`l`,𝐽:()=>`J`,𝐾:()=>`K`,𝐿:()=>`L`,𝑀:()=>`M`,𝑁:()=>`N`,𝑂:()=>`O`,𝑃:()=>`P`,𝑄:()=>`Q`,𝑅:()=>`R`,𝑆:()=>`S`,𝑇:()=>`T`,𝑈:()=>`U`,𝑉:()=>`V`,𝑊:()=>`W`,𝑋:()=>`X`,𝑌:()=>`Y`,𝑍:()=>`Z`,𝑎:()=>`a`,𝑏:()=>`b`,𝑐:()=>`c`,𝑑:()=>`d`,𝑒:()=>`e`,𝑓:()=>`f`,𝑔:()=>`g`,𝑖:()=>`i`,𝑗:()=>`j`,𝑘:()=>`k`,𝑙:()=>`l`,𝑚:()=>`rn`,𝑛:()=>`n`,𝑜:()=>`o`,𝑝:()=>`p`,𝑞:()=>`q`,𝑟:()=>`r`,𝑠:()=>`s`,𝑡:()=>`t`,𝑢:()=>`u`,𝑣:()=>`v`,𝑤:()=>`w`,𝑥:()=>`x`,𝑦:()=>`y`,𝑧:()=>`z`,𝑨:()=>`A`,𝑩:()=>`B`,𝑪:()=>`C`,𝑫:()=>`D`,𝑬:()=>`E`,𝑭:()=>`F`,𝑮:()=>`G`,𝑯:()=>`H`,𝑰:()=>`l`,𝑱:()=>`J`,𝑲:()=>`K`,𝑳:()=>`L`,𝑴:()=>`M`,𝑵:()=>`N`,𝑶:()=>`O`,𝑷:()=>`P`,𝑸:()=>`Q`,𝑹:()=>`R`,𝑺:()=>`S`,𝑻:()=>`T`,𝑼:()=>`U`,𝑽:()=>`V`,𝑾:()=>`W`,𝑿:()=>`X`,𝒀:()=>`Y`,𝒁:()=>`Z`,𝒂:()=>`a`,𝒃:()=>`b`,𝒄:()=>`c`,𝒅:()=>`d`,𝒆:()=>`e`,𝒇:()=>`f`,𝒈:()=>`g`,𝒉:()=>`h`,𝒊:()=>`i`,𝒋:()=>`j`,𝒌:()=>`k`,𝒍:()=>`l`,𝒎:()=>`rn`,𝒏:()=>`n`,𝒐:()=>`o`,𝒑:()=>`p`,𝒒:()=>`q`,𝒓:()=>`r`,𝒔:()=>`s`,𝒕:()=>`t`,𝒖:()=>`u`,𝒗:()=>`v`,𝒘:()=>`w`,𝒙:()=>`x`,𝒚:()=>`y`,𝒛:()=>`z`,𝒜:()=>`A`,𝒞:()=>`C`,𝒟:()=>`D`,𝒢:()=>`G`,𝒥:()=>`J`,𝒦:()=>`K`,𝒩:()=>`N`,𝒪:()=>`O`,𝒫:()=>`P`,𝒬:()=>`Q`,𝒮:()=>`S`,𝒯:()=>`T`,𝒰:()=>`U`,𝒱:()=>`V`,𝒲:()=>`W`,𝒳:()=>`X`,𝒴:()=>`Y`,𝒵:()=>`Z`,𝒶:()=>`a`,𝒷:()=>`b`,𝒸:()=>`c`,𝒹:()=>`d`,𝒻:()=>`f`,𝒽:()=>`h`,𝒾:()=>`i`,𝒿:()=>`j`,𝓀:()=>`k`,𝓁:()=>`l`,𝓂:()=>`rn`,𝓃:()=>`n`,𝓅:()=>`p`,𝓆:()=>`q`,𝓇:()=>`r`,𝓈:()=>`s`,𝓉:()=>`t`,𝓊:()=>`u`,𝓋:()=>`v`,𝓌:()=>`w`,𝓍:()=>`x`,𝓎:()=>`y`,𝓏:()=>`z`,𝓐:()=>`A`,𝓑:()=>`B`,𝓒:()=>`C`,𝓓:()=>`D`,𝓔:()=>`E`,𝓕:()=>`F`,𝓖:()=>`G`,𝓗:()=>`H`,𝓘:()=>`l`,𝓙:()=>`J`,𝓚:()=>`K`,𝓛:()=>`L`,𝓜:()=>`M`,𝓝:()=>`N`,𝓞:()=>`O`,𝓟:()=>`P`,𝓠:()=>`Q`,𝓡:()=>`R`,𝓢:()=>`S`,𝓣:()=>`T`,𝓤:()=>`U`,𝓥:()=>`V`,𝓦:()=>`W`,𝓧:()=>`X`,𝓨:()=>`Y`,𝓩:()=>`Z`,𝓪:()=>`a`,𝓫:()=>`b`,𝓬:()=>`c`,𝓭:()=>`d`,𝓮:()=>`e`,𝓯:()=>`f`,𝓰:()=>`g`,𝓱:()=>`h`,𝓲:()=>`i`,𝓳:()=>`j`,𝓴:()=>`k`,𝓵:()=>`l`,𝓶:()=>`rn`,𝓷:()=>`n`,𝓸:()=>`o`,𝓹:()=>`p`,𝓺:()=>`q`,𝓻:()=>`r`,𝓼:()=>`s`,𝓽:()=>`t`,𝓾:()=>`u`,𝓿:()=>`v`,𝔀:()=>`w`,𝔁:()=>`x`,𝔂:()=>`y`,𝔃:()=>`z`,𝔄:()=>`A`,𝔅:()=>`B`,𝔇:()=>`D`,𝔈:()=>`E`,𝔉:()=>`F`,𝔊:()=>`G`,𝔍:()=>`J`,𝔎:()=>`K`,𝔏:()=>`L`,𝔐:()=>`M`,𝔑:()=>`N`,𝔒:()=>`O`,𝔓:()=>`P`,𝔔:()=>`Q`,𝔖:()=>`S`,𝔗:()=>`T`,𝔘:()=>`U`,𝔙:()=>`V`,𝔚:()=>`W`,𝔛:()=>`X`,𝔜:()=>`Y`,𝔞:()=>`a`,𝔟:()=>`b`,𝔠:()=>`c`,𝔡:()=>`d`,𝔢:()=>`e`,𝔣:()=>`f`,𝔤:()=>`g`,𝔥:()=>`h`,𝔦:()=>`i`,𝔧:()=>`j`,𝔨:()=>`k`,𝔩:()=>`l`,𝔪:()=>`rn`,𝔫:()=>`n`,𝔬:()=>`o`,𝔭:()=>`p`,𝔮:()=>`q`,𝔯:()=>`r`,𝔰:()=>`s`,𝔱:()=>`t`,𝔲:()=>`u`,𝔳:()=>`v`,𝔴:()=>`w`,𝔵:()=>`x`,𝔶:()=>`y`,𝔷:()=>`z`,𝔸:()=>`A`,𝔹:()=>`B`,𝔻:()=>`D`,𝔼:()=>`E`,𝔽:()=>`F`,𝔾:()=>`G`,𝕀:()=>`l`,𝕁:()=>`J`,𝕂:()=>`K`,𝕃:()=>`L`,𝕄:()=>`M`,𝕆:()=>`O`,𝕊:()=>`S`,𝕋:()=>`T`,𝕌:()=>`U`,𝕍:()=>`V`,𝕎:()=>`W`,𝕏:()=>`X`,𝕐:()=>`Y`,𝕒:()=>`a`,𝕓:()=>`b`,𝕔:()=>`c`,𝕕:()=>`d`,𝕖:()=>`e`,𝕗:()=>`f`,𝕘:()=>`g`,𝕙:()=>`h`,𝕚:()=>`i`,𝕛:()=>`j`,𝕜:()=>`k`,𝕝:()=>`l`,𝕞:()=>`rn`,𝕟:()=>`n`,𝕠:()=>`o`,𝕡:()=>`p`,𝕢:()=>`q`,𝕣:()=>`r`,𝕤:()=>`s`,𝕥:()=>`t`,𝕦:()=>`u`,𝕧:()=>`v`,𝕨:()=>`w`,𝕩:()=>`x`,𝕪:()=>`y`,𝕫:()=>`z`,𝕬:()=>`A`,𝕭:()=>`B`,𝕮:()=>`C`,𝕯:()=>`D`,𝕰:()=>`E`,𝕱:()=>`F`,𝕲:()=>`G`,𝕳:()=>`H`,𝕴:()=>`l`,𝕵:()=>`J`,𝕶:()=>`K`,𝕷:()=>`L`,𝕸:()=>`M`,𝕹:()=>`N`,𝕺:()=>`O`,𝕻:()=>`P`,𝕼:()=>`Q`,𝕽:()=>`R`,𝕾:()=>`S`,𝕿:()=>`T`,𝖀:()=>`U`,𝖁:()=>`V`,𝖂:()=>`W`,𝖃:()=>`X`,𝖄:()=>`Y`,𝖅:()=>`Z`,𝖆:()=>`a`,𝖇:()=>`b`,𝖈:()=>`c`,𝖉:()=>`d`,𝖊:()=>`e`,𝖋:()=>`f`,𝖌:()=>`g`,𝖍:()=>`h`,𝖎:()=>`i`,𝖏:()=>`j`,𝖐:()=>`k`,𝖑:()=>`l`,𝖒:()=>`rn`,𝖓:()=>`n`,𝖔:()=>`o`,𝖕:()=>`p`,𝖖:()=>`q`,𝖗:()=>`r`,𝖘:()=>`s`,𝖙:()=>`t`,𝖚:()=>`u`,𝖛:()=>`v`,𝖜:()=>`w`,𝖝:()=>`x`,𝖞:()=>`y`,𝖟:()=>`z`,𝖠:()=>`A`,𝖡:()=>`B`,𝖢:()=>`C`,𝖣:()=>`D`,𝖤:()=>`E`,𝖥:()=>`F`,𝖦:()=>`G`,𝖧:()=>`H`,𝖨:()=>`l`,𝖩:()=>`J`,𝖪:()=>`K`,𝖫:()=>`L`,𝖬:()=>`M`,𝖭:()=>`N`,𝖮:()=>`O`,𝖯:()=>`P`,𝖰:()=>`Q`,𝖱:()=>`R`,𝖲:()=>`S`,𝖳:()=>`T`,𝖴:()=>`U`,𝖵:()=>`V`,𝖶:()=>`W`,𝖷:()=>`X`,𝖸:()=>`Y`,𝖹:()=>`Z`,𝖺:()=>`a`,𝖻:()=>`b`,𝖼:()=>`c`,𝖽:()=>`d`,𝖾:()=>`e`,𝖿:()=>`f`,𝗀:()=>`g`,𝗁:()=>`h`,𝗂:()=>`i`,𝗃:()=>`j`,𝗄:()=>`k`,𝗅:()=>`l`,𝗆:()=>`rn`,𝗇:()=>`n`,𝗈:()=>`o`,𝗉:()=>`p`,𝗊:()=>`q`,𝗋:()=>`r`,𝗌:()=>`s`,𝗍:()=>`t`,𝗎:()=>`u`,𝗏:()=>`v`,𝗐:()=>`w`,𝗑:()=>`x`,𝗒:()=>`y`,𝗓:()=>`z`,𝗔:()=>`A`,𝗕:()=>`B`,𝗖:()=>`C`,𝗗:()=>`D`,𝗘:()=>`E`,𝗙:()=>`F`,𝗚:()=>`G`,𝗛:()=>`H`,𝗜:()=>`l`,𝗝:()=>`J`,𝗞:()=>`K`,𝗟:()=>`L`,𝗠:()=>`M`,𝗡:()=>`N`,𝗢:()=>`O`,𝗣:()=>`P`,𝗤:()=>`Q`,𝗥:()=>`R`,𝗦:()=>`S`,𝗧:()=>`T`,𝗨:()=>`U`,𝗩:()=>`V`,𝗪:()=>`W`,𝗫:()=>`X`,𝗬:()=>`Y`,𝗭:()=>`Z`,𝗮:()=>`a`,𝗯:()=>`b`,𝗰:()=>`c`,𝗱:()=>`d`,𝗲:()=>`e`,𝗳:()=>`f`,𝗴:()=>`g`,𝗵:()=>`h`,𝗶:()=>`i`,𝗷:()=>`j`,𝗸:()=>`k`,𝗹:()=>`l`,𝗺:()=>`rn`,𝗻:()=>`n`,𝗼:()=>`o`,𝗽:()=>`p`,𝗾:()=>`q`,𝗿:()=>`r`,𝘀:()=>`s`,𝘁:()=>`t`,𝘂:()=>`u`,𝘃:()=>`v`,𝘄:()=>`w`,𝘅:()=>`x`,𝘆:()=>`y`,𝘇:()=>`z`,𝘈:()=>`A`,𝘉:()=>`B`,𝘊:()=>`C`,𝘋:()=>`D`,𝘌:()=>`E`,𝘍:()=>`F`,𝘎:()=>`G`,𝘏:()=>`H`,𝘐:()=>`l`,𝘑:()=>`J`,𝘒:()=>`K`,𝘓:()=>`L`,𝘔:()=>`M`,𝘕:()=>`N`,𝘖:()=>`O`,𝘗:()=>`P`,𝘘:()=>`Q`,𝘙:()=>`R`,𝘚:()=>`S`,𝘛:()=>`T`,𝘜:()=>`U`,𝘝:()=>`V`,𝘞:()=>`W`,𝘟:()=>`X`,𝘠:()=>`Y`,𝘡:()=>`Z`,𝘢:()=>`a`,𝘣:()=>`b`,𝘤:()=>`c`,𝘥:()=>`d`,𝘦:()=>`e`,𝘧:()=>`f`,𝘨:()=>`g`,𝘩:()=>`h`,𝘪:()=>`i`,𝘫:()=>`j`,𝘬:()=>`k`,𝘭:()=>`l`,𝘮:()=>`rn`,𝘯:()=>`n`,𝘰:()=>`o`,𝘱:()=>`p`,𝘲:()=>`q`,𝘳:()=>`r`,𝘴:()=>`s`,𝘵:()=>`t`,𝘶:()=>`u`,𝘷:()=>`v`,𝘸:()=>`w`,𝘹:()=>`x`,𝘺:()=>`y`,𝘻:()=>`z`,𝘼:()=>`A`,𝘽:()=>`B`,𝘾:()=>`C`,𝘿:()=>`D`,𝙀:()=>`E`,𝙁:()=>`F`,𝙂:()=>`G`,𝙃:()=>`H`,𝙄:()=>`l`,𝙅:()=>`J`,𝙆:()=>`K`,𝙇:()=>`L`,𝙈:()=>`M`,𝙉:()=>`N`,𝙊:()=>`O`,𝙋:()=>`P`,𝙌:()=>`Q`,𝙍:()=>`R`,𝙎:()=>`S`,𝙏:()=>`T`,𝙐:()=>`U`,𝙑:()=>`V`,𝙒:()=>`W`,𝙓:()=>`X`,𝙔:()=>`Y`,𝙕:()=>`Z`,𝙖:()=>`a`,𝙗:()=>`b`,𝙘:()=>`c`,𝙙:()=>`d`,𝙚:()=>`e`,𝙛:()=>`f`,𝙜:()=>`g`,𝙝:()=>`h`,𝙞:()=>`i`,𝙟:()=>`j`,𝙠:()=>`k`,𝙡:()=>`l`,𝙢:()=>`rn`,𝙣:()=>`n`,𝙤:()=>`o`,𝙥:()=>`p`,𝙦:()=>`q`,𝙧:()=>`r`,𝙨:()=>`s`,𝙩:()=>`t`,𝙪:()=>`u`,𝙫:()=>`v`,𝙬:()=>`w`,𝙭:()=>`x`,𝙮:()=>`y`,𝙯:()=>`z`,𝙰:()=>`A`,𝙱:()=>`B`,𝙲:()=>`C`,𝙳:()=>`D`,𝙴:()=>`E`,𝙵:()=>`F`,𝙶:()=>`G`,𝙷:()=>`H`,𝙸:()=>`l`,𝙹:()=>`J`,𝙺:()=>`K`,𝙻:()=>`L`,𝙼:()=>`M`,𝙽:()=>`N`,𝙾:()=>`O`,𝙿:()=>`P`,𝚀:()=>`Q`,𝚁:()=>`R`,𝚂:()=>`S`,𝚃:()=>`T`,𝚄:()=>`U`,𝚅:()=>`V`,𝚆:()=>`W`,𝚇:()=>`X`,𝚈:()=>`Y`,𝚉:()=>`Z`,𝚊:()=>`a`,𝚋:()=>`b`,𝚌:()=>`c`,𝚍:()=>`d`,𝚎:()=>`e`,𝚏:()=>`f`,𝚐:()=>`g`,𝚑:()=>`h`,𝚒:()=>`i`,𝚓:()=>`j`,𝚔:()=>`k`,𝚕:()=>`l`,𝚖:()=>`rn`,𝚗:()=>`n`,𝚘:()=>`o`,𝚙:()=>`p`,𝚚:()=>`q`,𝚛:()=>`r`,𝚜:()=>`s`,𝚝:()=>`t`,𝚞:()=>`u`,𝚟:()=>`v`,𝚠:()=>`w`,𝚡:()=>`x`,𝚢:()=>`y`,𝚣:()=>`z`,𝚤:()=>`i`,𝚥:()=>`ȷ`,𝚨:()=>`A`,𝚩:()=>`B`,𝚪:()=>`Γ`,𝚫:()=>`Δ`,𝚬:()=>`E`,𝚭:()=>`Z`,𝚮:()=>`H`,𝚯:()=>`O̵`,𝚰:()=>`l`,𝚱:()=>`K`,𝚲:()=>`Ʌ`,𝚳:()=>`M`,𝚴:()=>`N`,𝚵:()=>`Ξ`,𝚶:()=>`O`,𝚷:()=>`Π`,𝚸:()=>`P`,𝚹:()=>`O̵`,𝚺:()=>`Ʃ`,𝚻:()=>`T`,𝚼:()=>`Y`,𝚽:()=>`Φ`,𝚾:()=>`X`,𝚿:()=>`Ψ`,𝛀:()=>`Ω`,𝛂:()=>`a`,𝛃:()=>`ß`,𝛄:()=>`y`,𝛅:()=>`ẟ`,𝛆:()=>`ꞓ`,𝛇:()=>`ζ`,𝛈:()=>`n̩`,𝛉:()=>`O̵`,𝛊:()=>`i`,𝛋:()=>`ĸ`,𝛌:()=>`λ`,𝛍:()=>`μ`,𝛎:()=>`v`,𝛏:()=>`ξ`,𝛐:()=>`o`,𝛑:()=>`π`,𝛒:()=>`p`,𝛓:()=>`ς`,𝛔:()=>`o`,𝛕:()=>`ᴛ`,𝛖:()=>`u`,𝛗:()=>`ɸ`,𝛘:()=>`χ`,𝛙:()=>`ψ`,𝛚:()=>`ω`,𝛜:()=>`ꞓ`,𝛝:()=>`O̵`,𝛞:()=>`ĸ`,𝛟:()=>`ɸ`,𝛠:()=>`p`,𝛡:()=>`π`,𝛢:()=>`A`,𝛣:()=>`B`,𝛤:()=>`Γ`,𝛥:()=>`Δ`,𝛦:()=>`E`,𝛧:()=>`Z`,𝛨:()=>`H`,𝛩:()=>`O̵`,𝛪:()=>`l`,𝛫:()=>`K`,𝛬:()=>`Ʌ`,𝛭:()=>`M`,𝛮:()=>`N`,𝛯:()=>`Ξ`,𝛰:()=>`O`,𝛱:()=>`Π`,𝛲:()=>`P`,𝛳:()=>`O̵`,𝛴:()=>`Ʃ`,𝛵:()=>`T`,𝛶:()=>`Y`,𝛷:()=>`Φ`,𝛸:()=>`X`,𝛹:()=>`Ψ`,𝛺:()=>`Ω`,𝛼:()=>`a`,𝛽:()=>`ß`,𝛾:()=>`y`,𝛿:()=>`ẟ`,𝜀:()=>`ꞓ`,𝜁:()=>`ζ`,𝜂:()=>`n̩`,𝜃:()=>`O̵`,𝜄:()=>`i`,𝜅:()=>`ĸ`,𝜆:()=>`λ`,𝜇:()=>`μ`,𝜈:()=>`v`,𝜉:()=>`ξ`,𝜊:()=>`o`,𝜋:()=>`π`,𝜌:()=>`p`,𝜍:()=>`ς`,𝜎:()=>`o`,𝜏:()=>`ᴛ`,𝜐:()=>`u`,𝜑:()=>`ɸ`,𝜒:()=>`χ`,𝜓:()=>`ψ`,𝜔:()=>`ω`,𝜖:()=>`ꞓ`,𝜗:()=>`O̵`,𝜘:()=>`ĸ`,𝜙:()=>`ɸ`,𝜚:()=>`p`,𝜛:()=>`π`,𝜜:()=>`A`,𝜝:()=>`B`,𝜞:()=>`Γ`,𝜟:()=>`Δ`,𝜠:()=>`E`,𝜡:()=>`Z`,𝜢:()=>`H`,𝜣:()=>`O̵`,𝜤:()=>`l`,𝜥:()=>`K`,𝜦:()=>`Ʌ`,𝜧:()=>`M`,𝜨:()=>`N`,𝜩:()=>`Ξ`,𝜪:()=>`O`,𝜫:()=>`Π`,𝜬:()=>`P`,𝜭:()=>`O̵`,𝜮:()=>`Ʃ`,𝜯:()=>`T`,𝜰:()=>`Y`,𝜱:()=>`Φ`,𝜲:()=>`X`,𝜳:()=>`Ψ`,𝜴:()=>`Ω`,𝜶:()=>`a`,𝜷:()=>`ß`,𝜸:()=>`y`,𝜹:()=>`ẟ`,𝜺:()=>`ꞓ`,𝜻:()=>`ζ`,𝜼:()=>`n̩`,𝜽:()=>`O̵`,𝜾:()=>`i`,𝜿:()=>`ĸ`,𝝀:()=>`λ`,𝝁:()=>`μ`,𝝂:()=>`v`,𝝃:()=>`ξ`,𝝄:()=>`o`,𝝅:()=>`π`,𝝆:()=>`p`,𝝇:()=>`ς`,𝝈:()=>`o`,𝝉:()=>`ᴛ`,𝝊:()=>`u`,𝝋:()=>`ɸ`,𝝌:()=>`χ`,𝝍:()=>`ψ`,𝝎:()=>`ω`,𝝐:()=>`ꞓ`,𝝑:()=>`O̵`,𝝒:()=>`ĸ`,𝝓:()=>`ɸ`,𝝔:()=>`p`,𝝕:()=>`π`,𝝖:()=>`A`,𝝗:()=>`B`,𝝘:()=>`Γ`,𝝙:()=>`Δ`,𝝚:()=>`E`,𝝛:()=>`Z`,𝝜:()=>`H`,𝝝:()=>`O̵`,𝝞:()=>`l`,𝝟:()=>`K`,𝝠:()=>`Ʌ`,𝝡:()=>`M`,𝝢:()=>`N`,𝝣:()=>`Ξ`,𝝤:()=>`O`,𝝥:()=>`Π`,𝝦:()=>`P`,𝝧:()=>`O̵`,𝝨:()=>`Ʃ`,𝝩:()=>`T`,𝝪:()=>`Y`,𝝫:()=>`Φ`,𝝬:()=>`X`,𝝭:()=>`Ψ`,𝝮:()=>`Ω`,𝝰:()=>`a`,𝝱:()=>`ß`,𝝲:()=>`y`,𝝳:()=>`ẟ`,𝝴:()=>`ꞓ`,𝝵:()=>`ζ`,𝝶:()=>`n̩`,𝝷:()=>`O̵`,𝝸:()=>`i`,𝝹:()=>`ĸ`,𝝺:()=>`λ`,𝝻:()=>`μ`,𝝼:()=>`v`,𝝽:()=>`ξ`,𝝾:()=>`o`,𝝿:()=>`π`,𝞀:()=>`p`,𝞁:()=>`ς`,𝞂:()=>`o`,𝞃:()=>`ᴛ`,𝞄:()=>`u`,𝞅:()=>`ɸ`,𝞆:()=>`χ`,𝞇:()=>`ψ`,𝞈:()=>`ω`,𝞊:()=>`ꞓ`,𝞋:()=>`O̵`,𝞌:()=>`ĸ`,𝞍:()=>`ɸ`,𝞎:()=>`p`,𝞏:()=>`π`,𝞐:()=>`A`,𝞑:()=>`B`,𝞒:()=>`Γ`,𝞓:()=>`Δ`,𝞔:()=>`E`,𝞕:()=>`Z`,𝞖:()=>`H`,𝞗:()=>`O̵`,𝞘:()=>`l`,𝞙:()=>`K`,𝞚:()=>`Ʌ`,𝞛:()=>`M`,𝞜:()=>`N`,𝞝:()=>`Ξ`,𝞞:()=>`O`,𝞟:()=>`Π`,𝞠:()=>`P`,𝞡:()=>`O̵`,𝞢:()=>`Ʃ`,𝞣:()=>`T`,𝞤:()=>`Y`,𝞥:()=>`Φ`,𝞦:()=>`X`,𝞧:()=>`Ψ`,𝞨:()=>`Ω`,𝞪:()=>`a`,𝞫:()=>`ß`,𝞬:()=>`y`,𝞭:()=>`ẟ`,𝞮:()=>`ꞓ`,𝞯:()=>`ζ`,𝞰:()=>`n̩`,𝞱:()=>`O̵`,𝞲:()=>`i`,𝞳:()=>`ĸ`,𝞴:()=>`λ`,𝞵:()=>`μ`,𝞶:()=>`v`,𝞷:()=>`ξ`,𝞸:()=>`o`,𝞹:()=>`π`,𝞺:()=>`p`,𝞻:()=>`ς`,𝞼:()=>`o`,𝞽:()=>`ᴛ`,𝞾:()=>`u`,𝞿:()=>`ɸ`,𝟀:()=>`χ`,𝟁:()=>`ψ`,𝟂:()=>`ω`,𝟄:()=>`ꞓ`,𝟅:()=>`O̵`,𝟆:()=>`ĸ`,𝟇:()=>`ɸ`,𝟈:()=>`p`,𝟉:()=>`π`,𝟊:()=>`F`,𝟋:()=>`ϝ`,𞸀:()=>`l`,𞸁:()=>`ب`,𞸂:()=>`ج`,𞸃:()=>`د`,𞸅:()=>`و`,𞸆:()=>`ز`,𞸇:()=>`ح`,𞸈:()=>`ط`,𞸉:()=>`ى`,𞸊:()=>`ك`,𞸋:()=>`ل`,𞸌:()=>`م`,𞸍:()=>`ن`,𞸎:()=>`س`,𞸏:()=>`ع`,𞸐:()=>`ف`,𞸑:()=>`ص`,𞸒:()=>`ق`,𞸓:()=>`ر`,𞸔:()=>oa,𞸕:()=>`ت`,𞸖:()=>Ed,𞸗:()=>`خ`,𞸘:()=>`ذ`,𞸙:()=>`ض`,𞸚:()=>`ظ`,𞸛:()=>`غ`,𞸜:()=>`ى`,𞸝:()=>`ى`,𞸞:()=>`ڡ`,𞸟:()=>`ڡ`,𞸡:()=>`ب`,𞸢:()=>`ج`,𞸤:()=>`o`,𞸧:()=>`ح`,𞸩:()=>`ى`,𞸪:()=>`ك`,𞸫:()=>`ل`,𞸬:()=>`م`,𞸭:()=>`ن`,𞸮:()=>`س`,𞸯:()=>`ع`,𞸰:()=>`ف`,𞸱:()=>`ص`,𞸲:()=>`ق`,𞸴:()=>sa,𞸵:()=>`ت`,𞸶:()=>Dd,𞸷:()=>`خ`,𞸹:()=>`ض`,𞸻:()=>`غ`,𞹂:()=>`ج`,𞹇:()=>`ح`,𞹉:()=>`ى`,𞹋:()=>`ل`,𞹍:()=>`ن`,𞹎:()=>`س`,𞹏:()=>`ع`,𞹑:()=>`ص`,𞹒:()=>`ق`,𞹔:()=>ca,𞹗:()=>`خ`,𞹙:()=>`ض`,𞹛:()=>`غ`,𞹝:()=>`ى`,𞹟:()=>`ڡ`,𞹡:()=>`ب`,𞹢:()=>`ج`,𞹤:()=>`o`,𞹧:()=>`ح`,𞹨:()=>`ط`,𞹩:()=>`ى`,𞹪:()=>`ك`,𞹬:()=>`م`,𞹭:()=>`ن`,𞹮:()=>`س`,𞹯:()=>`ع`,𞹰:()=>`ف`,𞹱:()=>`ص`,𞹲:()=>`ق`,𞹴:()=>la,𞹵:()=>`ت`,𞹶:()=>Od,𞹷:()=>`خ`,𞹹:()=>`ض`,𞹺:()=>`ظ`,𞹻:()=>`غ`,𞹼:()=>`ى`,𞹾:()=>`ڡ`,𞺀:()=>`l`,𞺁:()=>`ب`,𞺂:()=>`ج`,𞺃:()=>`د`,𞺄:()=>`o`,𞺅:()=>`و`,𞺆:()=>`ز`,𞺇:()=>`ح`,𞺈:()=>`ط`,𞺉:()=>`ى`,𞺋:()=>`ل`,𞺌:()=>`م`,𞺍:()=>`ن`,𞺎:()=>`س`,𞺏:()=>`ع`,𞺐:()=>`ف`,𞺑:()=>`ص`,𞺒:()=>`ق`,𞺓:()=>`ر`,𞺔:()=>ua,𞺕:()=>`ت`,𞺖:()=>kd,𞺗:()=>`خ`,𞺘:()=>`ذ`,𞺙:()=>`ض`,𞺚:()=>`ظ`,𞺛:()=>`غ`,𞺡:()=>`ب`,𞺢:()=>`ج`,𞺣:()=>`د`,𞺥:()=>`و`,𞺦:()=>`ز`,𞺧:()=>`ح`,𞺨:()=>`ط`,𞺩:()=>`ى`,𞺫:()=>`ل`,𞺬:()=>`م`,𞺭:()=>`ن`,𞺮:()=>`س`,𞺯:()=>`ع`,𞺰:()=>`ف`,𞺱:()=>`ص`,𞺲:()=>`ق`,𞺳:()=>`ر`,𞺴:()=>da,𞺵:()=>`ت`,𞺶:()=>Ad,𞺷:()=>`خ`,𞺸:()=>`ذ`,𞺹:()=>`ض`,𞺺:()=>`ظ`,𞺻:()=>`غ`,𡿨:()=>`❬`,丽:()=>`丽`,丸:()=>`丸`,乁:()=>`乁`,𠄢:()=>XC,你:()=>`你`,侮:()=>`侮`,侻:()=>`侻`,倂:()=>`併`,偺:()=>`偺`,備:()=>`備`,僧:()=>`僧`,像:()=>`像`,㒞:()=>`㒞`,𠘺:()=>ew,免:()=>`免`,兔:()=>`兔`,兤:()=>`兤`,具:()=>`具`,𠔜:()=>ZC,㒹:()=>`㒹`,內:()=>`內`,再:()=>`再`,𠕋:()=>$C,冗:()=>`冗`,冤:()=>`冤`,仌:()=>`仌`,冬:()=>`冬`,况:()=>`况`,𩇟:()=>HT,凵:()=>`凵`,刃:()=>`刃`,㓟:()=>`㓟`,刻:()=>`刻`,剆:()=>`剆`,割:()=>`割`,剷:()=>`剷`,㔕:()=>`㔕`,勇:()=>`勇`,勉:()=>`勉`,勤:()=>`勤`,勺:()=>`勺`,包:()=>`包`,匆:()=>`匆`,北:()=>`北`,卉:()=>`卉`,卑:()=>`卑`,博:()=>`博`,即:()=>`即`,卽:()=>`卽`,卿:()=>`卿`,卿:()=>`卿`,卿:()=>`卿`,𠨬:()=>rw,灰:()=>`灰`,及:()=>`及`,叟:()=>`叟`,𠭣:()=>iw,叫:()=>`叫`,叱:()=>`叱`,吆:()=>`吆`,咞:()=>`咞`,吸:()=>`吸`,呈:()=>`呈`,周:()=>`周`,咢:()=>`咢`,哶:()=>`哶`,唐:()=>`唐`,啓:()=>`啓`,啣:()=>`啣`,善:()=>`善`,善:()=>`善`,喙:()=>`喙`,喫:()=>`喫`,喳:()=>`喳`,嗂:()=>`嗂`,圖:()=>`圖`,嘆:()=>`嘆`,圗:()=>`圗`,噑:()=>`噑`,噴:()=>`噴`,切:()=>`切`,壮:()=>`壮`,城:()=>`城`,埴:()=>`埴`,堍:()=>`堍`,型:()=>`型`,堲:()=>`堲`,報:()=>`報`,墬:()=>`墬`,𡓤:()=>aw,売:()=>`売`,壷:()=>`壷`,夆:()=>`夆`,多:()=>`多`,夢:()=>`夢`,奢:()=>`奢`,𡚨:()=>ow,𡛪:()=>sw,姬:()=>`姬`,娛:()=>`娛`,娧:()=>`娧`,姘:()=>`姘`,婦:()=>`婦`,㛮:()=>`㛮`,㛼:()=>`㛼`,嬈:()=>`嬈`,嬾:()=>`嬾`,嬾:()=>`嬾`,𡧈:()=>cw,寃:()=>`寃`,寘:()=>`寘`,寧:()=>`寧`,寳:()=>`寳`,𡬘:()=>lw,寿:()=>`寿`,将:()=>`将`,当:()=>`当`,尢:()=>`尢`,㞁:()=>`㞁`,屠:()=>`屠`,屮:()=>`屮`,峀:()=>`峀`,岍:()=>`岍`,𡷤:()=>dw,嵃:()=>`嵃`,𡷦:()=>fw,嵮:()=>`嵮`,嵫:()=>`嵫`,嵼:()=>`嵼`,巡:()=>`巡`,巢:()=>`巢`,㠯:()=>`㠯`,巽:()=>`巽`,帨:()=>`帨`,帽:()=>`帽`,幩:()=>`幩`,㡢:()=>`㡢`,𢆃:()=>pw,㡼:()=>`㡼`,庰:()=>`庰`,庳:()=>`庳`,庶:()=>`庶`,廊:()=>`廊`,𪎒:()=>QT,廾:()=>`廾`,𢌱:()=>hw,𢌱:()=>gw,舁:()=>`舁`,弢:()=>`弢`,弢:()=>`弢`,㣇:()=>`㣇`,𣊸:()=>Cw,𦇚:()=>fT,形:()=>`形`,彫:()=>`彫`,㣣:()=>`㣣`,徚:()=>`徚`,忍:()=>`忍`,志:()=>`志`,忹:()=>`忹`,悁:()=>`悁`,㤺:()=>`㤺`,㤜:()=>`㤜`,悔:()=>`悔`,𢛔:()=>_w,惇:()=>`惇`,慈:()=>`慈`,慌:()=>`慌`,慎:()=>`慎`,慌:()=>`慌`,慺:()=>`慺`,憎:()=>`憎`,憲:()=>`憲`,憤:()=>`憤`,憯:()=>`憯`,懞:()=>`懞`,懲:()=>`懲`,懶:()=>`懶`,成:()=>`成`,戛:()=>`戛`,扝:()=>`扝`,抱:()=>`抱`,拔:()=>`拔`,捐:()=>`捐`,𢬌:()=>bw,挽:()=>`挽`,拼:()=>`拼`,捨:()=>`捨`,掃:()=>`掃`,揤:()=>`揤`,𢯱:()=>xw,搢:()=>`搢`,揅:()=>`揅`,掩:()=>`掩`,㨮:()=>`㨮`,摩:()=>`摩`,摾:()=>`摾`,撝:()=>`撝`,摷:()=>`摷`,㩬:()=>`㩬`,敏:()=>`敏`,敬:()=>`敬`,𣀊:()=>Sw,旣:()=>`旣`,書:()=>`書`,晉:()=>`晉`,㬙:()=>`㬙`,暑:()=>`暑`,㬈:()=>`㬈`,㫤:()=>`㫤`,冒:()=>`冒`,冕:()=>`冕`,最:()=>`最`,暜:()=>`暜`,肭:()=>`肭`,䏙:()=>`䏙`,朗:()=>`朗`,望:()=>`望`,朡:()=>`朡`,杞:()=>`杞`,杓:()=>`杓`,𣏃:()=>Dw,㭉:()=>`㭉`,柺:()=>`柺`,枅:()=>`枅`,桒:()=>`桒`,梅:()=>`梅`,𣑭:()=>kw,梎:()=>`梎`,栟:()=>`栟`,椔:()=>`椔`,㮝:()=>`㮝`,楂:()=>`楂`,榣:()=>`榣`,槪:()=>`槪`,檨:()=>`檨`,𣚣:()=>Aw,櫛:()=>`櫛`,㰘:()=>`㰘`,次:()=>`次`,𣢧:()=>jw,歔:()=>`歔`,㱎:()=>`㱎`,歲:()=>`歲`,殟:()=>`殟`,殺:()=>`殺`,殻:()=>`殻`,𣪍:()=>Mw,𡴋:()=>uw,𣫺:()=>Nw,汎:()=>`汎`,𣲼:()=>Pw,沿:()=>`沿`,泍:()=>`泍`,汧:()=>`汧`,洖:()=>`洖`,派:()=>`派`,海:()=>`海`,流:()=>`流`,浩:()=>`浩`,浸:()=>`浸`,涅:()=>`涅`,𣴞:()=>Fw,洴:()=>`洴`,港:()=>`港`,湮:()=>`湮`,㴳:()=>`㴳`,滋:()=>`滋`,滇:()=>`滇`,𣻑:()=>Iw,淹:()=>`淹`,潮:()=>`潮`,𣽞:()=>Lw,𣾎:()=>Rw,濆:()=>`濆`,瀹:()=>`瀹`,瀞:()=>`瀞`,瀛:()=>`瀛`,㶖:()=>`㶖`,灊:()=>`灊`,災:()=>`災`,灷:()=>`灷`,炭:()=>`炭`,𠔥:()=>QC,煅:()=>`煅`,𤉣:()=>zw,熜:()=>`熜`,𤎫:()=>Vw,爨:()=>`爨`,爵:()=>`爵`,牐:()=>`牐`,𤘈:()=>Hw,犀:()=>`犀`,犕:()=>`犕`,𤜵:()=>Uw,𤠔:()=>Ww,獺:()=>`獺`,王:()=>`王`,㺬:()=>`㺬`,玥:()=>`玥`,㺸:()=>`㺸`,㺸:()=>`㺸`,瑇:()=>`瑇`,瑜:()=>`瑜`,瑱:()=>`瑱`,璅:()=>`璅`,瓊:()=>`瓊`,㼛:()=>`㼛`,甤:()=>`甤`,𤰶:()=>Gw,甾:()=>`甾`,𤲒:()=>Kw,異:()=>`異`,𢆟:()=>mw,瘐:()=>`瘐`,𤾡:()=>qw,𤾸:()=>Jw,𥁄:()=>Yw,㿼:()=>`㿼`,䀈:()=>`䀈`,直:()=>`直`,𥃳:()=>Zw,𥃲:()=>Xw,𥄙:()=>Qw,𥄳:()=>$w,眞:()=>`眞`,真:()=>`真`,真:()=>`真`,睊:()=>`睊`,䀹:()=>`䀹`,瞋:()=>`瞋`,䁆:()=>`䁆`,䂖:()=>`䂖`,𥐝:()=>tT,硎:()=>`硎`,碌:()=>`碌`,磌:()=>`磌`,䃣:()=>`䃣`,𥘦:()=>nT,祖:()=>`祖`,𥚚:()=>rT,𥛅:()=>iT,福:()=>`福`,秫:()=>`秫`,䄯:()=>`䄯`,穀:()=>`穀`,穊:()=>`穊`,穏:()=>`穏`,𥥼:()=>aT,𥪧:()=>oT,𥪧:()=>sT,竮:()=>`竮`,䈂:()=>`䈂`,𥮫:()=>cT,篆:()=>`篆`,築:()=>`築`,䈧:()=>`䈧`,𥲀:()=>lT,糒:()=>`糒`,䊠:()=>`䊠`,糨:()=>`糨`,糣:()=>`糣`,紀:()=>`紀`,𥾆:()=>dT,絣:()=>`絣`,䌁:()=>`䌁`,緇:()=>`緇`,縂:()=>`縂`,繅:()=>`繅`,䌴:()=>`䌴`,𦈨:()=>pT,𦉇:()=>mT,䍙:()=>`䍙`,𦋙:()=>hT,罺:()=>`罺`,𦌾:()=>gT,羕:()=>`羕`,翺:()=>`翺`,者:()=>`者`,𦓚:()=>_T,𦔣:()=>vT,聠:()=>`聠`,𦖨:()=>yT,聰:()=>`聰`,𣍟:()=>ww,䏕:()=>`䏕`,育:()=>`育`,脃:()=>`脃`,䐋:()=>`䐋`,脾:()=>`脾`,媵:()=>`媵`,𦞧:()=>bT,𦞵:()=>xT,𣎓:()=>Tw,𣎜:()=>Ew,舁:()=>`舁`,舄:()=>`舄`,辞:()=>`辞`,䑫:()=>`䑫`,芑:()=>`芑`,芋:()=>`芋`,芝:()=>`芝`,劳:()=>`劳`,花:()=>`花`,芳:()=>`芳`,芽:()=>`芽`,苦:()=>`苦`,𦬼:()=>ST,若:()=>`若`,茝:()=>`茝`,荣:()=>`荣`,莭:()=>`莭`,茣:()=>`茣`,莽:()=>`莽`,菧:()=>`菧`,著:()=>`著`,荓:()=>`荓`,菊:()=>`菊`,菌:()=>`菌`,菜:()=>`菜`,𦰶:()=>CT,𦵫:()=>TT,𦳕:()=>wT,䔫:()=>`䔫`,蓱:()=>`蓱`,蓳:()=>`蓳`,蔖:()=>`蔖`,𧏊:()=>kT,蕤:()=>`蕤`,𦼬:()=>ET,䕝:()=>`䕝`,䕡:()=>`䕡`,𦾱:()=>DT,𧃒:()=>OT,䕫:()=>`䕫`,虐:()=>`虐`,虜:()=>`虜`,虧:()=>`虧`,虩:()=>`虩`,蚩:()=>`蚩`,蚈:()=>`蚈`,蜎:()=>`蜎`,蛢:()=>`蛢`,蝹:()=>`蝹`,蜨:()=>`蜨`,蝫:()=>`蝫`,螆:()=>`螆`,䗗:()=>`䗗`,蟡:()=>`蟡`,蠁:()=>`蠁`,䗹:()=>`䗹`,衠:()=>`衠`,衣:()=>`衣`,𧙧:()=>AT,裗:()=>`裗`,裞:()=>`裞`,䘵:()=>`䘵`,裺:()=>`裺`,㒻:()=>`㒻`,𧢮:()=>jT,𧥦:()=>MT,䚾:()=>`䚾`,䛇:()=>`䛇`,誠:()=>`誠`,諭:()=>`諭`,變:()=>`變`,豕:()=>`豕`,𧲨:()=>NT,貫:()=>`貫`,賁:()=>`賁`,贛:()=>`贛`,起:()=>`起`,𧼯:()=>FT,𠠄:()=>tw,跋:()=>`跋`,趼:()=>`趼`,跰:()=>`跰`,𠣞:()=>nw,軔:()=>`軔`,輸:()=>`輸`,𨗒:()=>IT,𨗭:()=>LT,邔:()=>`邔`,郱:()=>`郱`,鄑:()=>`鄑`,𨜮:()=>RT,鄛:()=>`鄛`,鈸:()=>`鈸`,鋗:()=>`鋗`,鋘:()=>`鋘`,鉼:()=>`鉼`,鏹:()=>`鏹`,鐕:()=>`鐕`,𨯺:()=>zT,開:()=>`開`,䦕:()=>`䦕`,閷:()=>`閷`,𨵷:()=>BT,䧦:()=>`䧦`,雃:()=>`雃`,嶲:()=>`嶲`,霣:()=>`霣`,𩅅:()=>VT,𩈚:()=>UT,䩮:()=>`䩮`,䩶:()=>`䩶`,韠:()=>`韠`,𩐊:()=>WT,䪲:()=>`䪲`,𩒖:()=>GT,頋:()=>`頋`,頋:()=>`頋`,頩:()=>`頩`,𩖶:()=>KT,飢:()=>`飢`,䬳:()=>`䬳`,餩:()=>`餩`,馧:()=>`馧`,駂:()=>`駂`,駾:()=>`駾`,䯎:()=>`䯎`,𩬰:()=>qT,鬒:()=>`鬒`,鱀:()=>`鱀`,鳽:()=>`鳽`,䳎:()=>`䳎`,䳭:()=>`䳭`,鵧:()=>`鵧`,𪃎:()=>JT,䳸:()=>`䳸`,𪄅:()=>YT,𪈎:()=>XT,𪊑:()=>ZT,麻:()=>`麻`,䵖:()=>`䵖`,黹:()=>`黹`,黾:()=>`黾`,鼅:()=>`鼅`,鼏:()=>`鼏`,鼖:()=>`鼖`,鼻:()=>`鼻`,𪘀:()=>$T}),ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it,at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,aa,oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta,Ea,Da,Oa,ka,Aa,ja,Ma,Na,Pa,Fa,Ia,La,Ra,za,Ba,Va,Ha,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo,Zo,Qo,$o,es,ts,ns,rs,is,as,os,ss,cs,ls,us,ds,fs,ps,ms,hs,gs,_s,vs,ys,bs,xs,Ss,Cs,ws,Ts,Es,Ds,Os,ks,As,js,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,Hs,Us,Ws,Gs,Ks,qs,Js,Ys,Xs,Zs,Qs,$s,ec,tc,nc,rc,ic,ac,oc,sc,cc,lc,uc,dc,fc,pc,mc,hc,gc,_c,vc,yc,bc,xc,Sc,Cc,wc,Tc,Ec,Dc,Oc,kc,Ac,jc,Mc,Nc,Pc,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc,Gc,Kc,qc,Jc,Yc,Xc,Zc,Qc,$c,el,tl,nl,rl,il,al,ol,sl,cl,ll,ul,dl,fl,pl,ml,hl,gl,_l,vl,yl,bl,xl,Sl,Cl,wl,Tl,El,Dl,Ol,kl,Al,jl,Ml,Nl,Pl,Fl,Il,Ll,Rl,zl,Bl,Vl,Hl,Ul,Wl,Gl,Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu,tu,nu,ru,iu,au,ou,su,cu,lu,uu,du,fu,pu,mu,hu,gu,_u,vu,yu,bu,xu,Su,Cu,wu,Tu,Eu,Du,Ou,ku,Au,ju,Mu,Nu,Pu,Fu,Iu,Lu,Ru,zu,Bu,Vu,Hu,Uu,Wu,Gu,Ku,qu,Ju,Yu,Xu,Zu,Qu,$u,ed,td,nd,rd,id,ad,od,sd,cd,ld,ud,dd,fd,pd,md,hd,gd,_d,vd,yd,bd,xd,Sd,Cd,wd,Td,Ed,Dd,Od,kd,Ad,jd,Md,Nd,Pd,Fd,Id,Ld,Rd,zd,Bd,Vd,Hd,Ud,Wd,Gd,Kd,qd,Jd,Yd,Xd,Zd,Qd,$d,ef,tf,nf,rf,af,of,sf,cf,lf,uf,df,ff,pf,mf,hf,gf,_f,vf,yf,bf,xf,Sf,Cf,wf,Tf,Ef,Df,Of,kf,Af,jf,Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp,up,dp,fp,pp,mp,hp,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp,Rp,zp,Bp,Vp,Hp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,Nm,Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh,xh,Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh,Mh,Nh,Ph,Fh,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh,Jh,Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg,ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg,xg,Sg,Cg,wg,Tg,Eg,Dg,Og,kg,Ag,jg,Mg,Ng,Pg,Fg,Ig,Lg,Rg,zg,Bg,Vg,Hg,Ug,Wg,Gg,Kg,qg,Jg,Yg,Xg,Zg,Qg,$g,e_,t_,n_,r_,i_,a_,o_,s_,c_,l_,u_,d_,f_,p_,m_,h_,g_,__,v_,y_,b_,x_,S_,C_,w_,T_,E_,D_,O_,k_,A_,j_,M_,N_,P_,F_,I_,L_,R_,z_,B_,V_,H_,U_,W_,G_,K_,q_,J_,Y_,X_,Z_,Q_,$_,ev,tv,nv,rv,iv,av,ov,sv,cv,lv,uv,dv,fv,pv,mv,hv,gv,_v,vv,yv,bv,xv,Sv,Cv,wv,Tv,Ev,Dv,Ov,kv,Av,jv,Mv,Nv,Pv,Fv,Iv,Lv,Rv,zv,Bv,Vv,Hv,Uv,Wv,Gv,Kv,qv,Jv,Yv,Xv,Zv,Qv,$v,ey,ty,ny,ry,iy,ay,oy,sy,cy,ly,uy,dy,fy,py,my,hy,gy,_y,vy,yy,by,xy,Sy,Cy,wy,Ty,Ey,Dy,Oy,ky,Ay,jy,My,Ny,Py,Fy,Iy,Ly,Ry,zy,By,Vy,Hy,Uy,Wy,Gy,Ky,qy,Jy,Yy,Xy,Zy,Qy,$y,eb,tb,nb,rb,ib,ab,ob,sb,cb,lb,ub,db,fb,pb,mb,hb,gb,_b,vb,yb,bb,xb,Sb,Cb,wb,Tb,Eb,Db,Ob,kb,Ab,jb,Mb,Nb,Pb,Fb,Ib,Lb,Rb,zb,Bb,Vb,Hb,Ub,Wb,Gb,Kb,qb,Jb,Yb,Xb,Zb,Qb,$b,ex,tx,nx,rx,ix,ax,ox,sx,cx,lx,ux,dx,fx,px,mx,hx,gx,_x,vx,yx,bx,xx,Sx,Cx,wx,Tx,Ex,Dx,Ox,kx,Ax,jx,Mx,Nx,Px,Fx,Ix,Lx,Rx,zx,Bx,Vx,Hx,Ux,Wx,Gx,Kx,qx,Jx,Yx,Xx,Zx,Qx,$x,eS,tS,nS,rS,iS,aS,oS,sS,cS,lS,uS,dS,fS,pS,mS,hS,gS,_S,vS,yS,bS,xS,SS,CS,wS,TS,ES,DS,OS,kS,AS,jS,MS,NS,PS,FS,IS,LS,RS,zS,BS,VS,HS,US,WS,GS,KS,qS,JS,YS,XS,ZS,QS,$S,eC,tC,nC,rC,iC,aC,oC,sC,cC,lC,uC,dC,fC,pC,mC,hC,gC,_C,vC,yC,bC,xC,SC,CC,wC,TC,EC,DC,OC,kC,AC,jC,MC,NC,PC,FC,IC,LC,RC,zC,BC,VC,HC,UC,WC,GC,KC,qC,JC,YC,XC,ZC,QC,$C,ew,tw,nw,rw,iw,aw,ow,sw,cw,lw,uw,dw,fw,pw,mw,hw,gw,_w,vw,yw,bw,xw,Sw,Cw,ww,Tw,Ew,Dw,Ow,kw,Aw,jw,Mw,Nw,Pw,Fw,Iw,Lw,Rw,zw,Bw,Vw,Hw,Uw,Ww,Gw,Kw,qw,Jw,Yw,Xw,Zw,Qw,$w,eT,tT,nT,rT,iT,aT,oT,sT,cT,lT,uT,dT,fT,pT,mT,hT,gT,_T,vT,yT,bT,xT,ST,CT,wT,TT,ET,DT,OT,kT,AT,jT,MT,NT,PT,FT,IT,LT,RT,zT,BT,VT,HT,UT,WT,GT,KT,qT,JT,YT,XT,ZT,QT,$T,eE,tE=o((()=>{ae=`ﹲّ`,oe=`ﹴّ`,se=`ﹷّ`,ce=`ﹶّ`,le=`ﹹّ`,ue=`ﹸّ`,de=`ﹻّ`,fe=`ﹺّ`,pe=`ﹼٰ`,me=`···`,he=`·ḃ`,ge=`·Ʌ`,_e=`·Γ`,ve=`·Δ`,ye=`·Ո`,be=`·ᐁ`,xe=`·ᐄ`,Se=`·ᐅ`,Ce=`·ᐆ`,we=`·ᐊ`,Te=`·ᐋ`,Ee=`·ᐲ`,De=`·ᐴ`,Oe=`·ᐹ`,ke=`·ᑏ`,Ae=`·ᑐ`,je=`·ᑐ`,Me=`·ᑑ`,Ne=`·ᑕ`,Pe=`·ᑖ`,Fe=`·ᑫ`,Ie=`·ᑮ`,Le=`·ᑰ`,Re=`·ᒉ`,ze=`·ᒋ`,Be=`·ᒌ`,Ve=`·ᒎ`,He=`·ᒐ`,Ue=`·ᒑ`,We=`·ᒣ`,Ge=`·ᒦ`,Ke=`·ᒧ`,qe=`·ᒨ`,Je=`·ᒫ`,Ye=`·ᓀ`,Xe=`·ᓂ`,Ze=`·ᓃ`,Qe=`·ᓄ`,$e=`·ᓅ`,et=`·ᓇ`,tt=`·ᓈ`,nt=`·ᓓ`,rt=`·ᓕ`,it=`·ᓖ`,at=`·ᓗ`,ot=`·ᓘ`,st=`·ᓚ`,ct=`·ᓛ`,lt=`·ᓭ`,ut=`·ᓯ`,dt=`·ᓰ`,ft=`·ᓱ`,pt=`·ᓲ`,mt=`·ᓴ`,ht=`·ᓵ`,gt=`·ᔐ`,_t=`·ᔑ`,vt=`·ᔒ`,yt=`·ᔓ`,bt=`·ᔔ`,xt=`·ᔕ`,St=`·ᔖ`,Ct=`·ᔨ`,wt=`·ᔩ`,Tt=`·ᔪ`,Et=`·ᔫ`,Dt=`·ᔭ`,Ot=`·ᔮ`,kt=`·ᕃ`,At=`·ᕆ`,jt=`·ᕇ`,Mt=`·ᕈ`,Nt=`·ᕉ`,Pt=`·ᕋ`,Ft=`·ᕌ`,It=`·ᕚ`,Lt=`·ᕧ`,Rt=`·ᢱ`,zt=`·ᢴ`,Bt=`·ᢸ`,Vt=`·ᣀ`,Ht=`ˉbi`,Ut=`∂̵`,Wt=`ーー`,Gt=`ーᅡ`,Kt=`ーᅥ`,qt=`ーᅥ丨`,Jt=`ーᅩ`,Yt=`ーᅮ`,Xt=`ー丨`,Zt=`ー丨`,Qt=`ー丨ᅮ`,$t=`ḃ·`,en=`ǝ˞`,tn=`ǝo̸`,nn=`ǝo̵`,rn=`ɜ̦`,an=`ʜ̩`,on=`ʜ̦`,sn=`ʜ̦`,cn=`lكبر`,ln=`lللّٰo`,un=`Ó̸`,dn=`oᴇ`,fn=`oمج`,pn=`oمم`,mn=`oരo`,hn=`oာ`,gn=`ɔ̸`,_n=`ĸ̩`,vn=`ĸ̵`,yn=`rn̦`,bn=`rn̴`,xn=`ɾ̴`,Sn=`ᴛ̩`,Cn=`ʊ̵`,wn=`viii`,Tn=`Vlll`,En=`Ʌ̦`,Dn=`Ʌ·`,On=`w҆҇`,kn=`ʍ̦`,An=`Γ̵`,jn=`Γ·`,Mn=`Δ·`,Nn=`Δᐠ`,Pn=`ж̩`,Fn=`Ж̩`,In=`Ѝ̦`,Ln=`й̦`,Rn=`л̦`,zn=`Ѡ҆҇`,Bn=`Ѡ·`,Vn=`Ҽ̨`,Hn=`եւ`,Un=`մե`,Wn=`մի`,Gn=`մխ`,Kn=`մն`,qn=`Ո·`,Jn=`վն`,Yn=`אל`,Xn=`بۛ`,Zn=`بۢ`,Qn=`بٔ`,$n=`بج`,er=`بج`,tr=`بح`,nr=`بح`,rr=`بحى`,ir=`بخ`,ar=`بخ`,or=`بخ`,sr=`بخ`,cr=`بخى`,lr=`بر`,ur=`بز`,dr=`بم`,fr=`بم`,pr=`بم`,mr=`بم`,hr=`بن`,gr=`بى`,_r=`بى`,vr=`بى`,yr=`بى`,br=`تج`,xr=`تج`,Sr=`تجم`,Cr=`تجى`,wr=`تجى`,Tr=`تح`,Er=`تح`,Dr=`تحج`,Or=`تحج`,kr=`تحم`,Ar=`تخ`,jr=`تخ`,Mr=`تخم`,Nr=`تخى`,Pr=`تخى`,Fr=`تر`,Ir=`تز`,Lr=`تم`,Rr=`تم`,zr=`تم`,Br=`تم`,Vr=`تمج`,Hr=`تمح`,Ur=`تمخ`,Wr=`تمى`,Gr=`تمى`,Kr=`تن`,qr=`تى`,Jr=`تى`,Yr=`تى`,Xr=`تى`,Zr=`جح`,Qr=`جح`,$r=`جحى`,ei=`جحى`,ti=`جل جلlلo`,ni=`جم`,ri=`جم`,ii=`جمح`,ai=`جمح`,oi=`جمى`,si=`جمى`,ci=`جى`,li=`جى`,ui=`جى`,di=`جى`,fi=`حۛ`,pi=`حٔ`,mi=`حٔ`,hi=`حج`,gi=`حج`,_i=`حجى`,vi=`حم`,yi=`حم`,bi=`حمى`,xi=`حمى`,Si=`حى`,Ci=`حى`,wi=`حى`,Ti=`حى`,Ei=`خج`,Di=`خج`,Oi=`خح`,ki=`خم`,Ai=`خم`,ji=`خى`,Mi=`خى`,Ni=`خى`,Pi=`خى`,Fi=`دؕ`,Ii=`دؕ`,Li=`دؕ`,Ri=`دۛ`,zi=`دۛ`,Bi=`دۛ`,Vi=`د̂`,Hi=`د̤̣`,Ui=`ذٰ`,Wi=`ڊؕ`,Gi=`رؕ`,Ki=`رؕ`,qi=`رؕ`,Ji=`رۛ`,Yi=`رۛ`,Xi=`رۛ`,Zi=`ر̆`,Qi=`ر̆̇`,$i=`ر̂`,ea=`رٔ`,ta=`رٰ`,na=`رسول`,ra=`ز̂`,ia=`ڗؕ`,aa=`سۛ`,oa=`سۛ`,sa=`سۛ`,ca=`سۛ`,la=`سۛ`,ua=`سۛ`,da=`سۛ`,fa=`سۛ`,pa=`سۛ`,ma=`سۛ`,ha=`سۛ`,ga=`س̂`,_a=`سۛo`,va=`سۛo`,ya=`سج`,ba=`سج`,xa=`سج`,Sa=`سۛج`,Ca=`سۛج`,wa=`سۛج`,Ta=`سۛج`,Ea=`سجح`,Da=`سجى`,Oa=`سۛجى`,ka=`سح`,Aa=`سح`,ja=`سح`,Ma=`سۛح`,Na=`سۛح`,Pa=`سۛح`,Fa=`سۛح`,Ia=`سحج`,La=`سۛحم`,Ra=`سۛحم`,za=`سۛحى`,Ba=`سخ`,Va=`سخ`,Ha=`سخ`,Ua=`سۛخ`,Wa=`سۛخ`,Ga=`سۛخ`,Ka=`سۛخ`,qa=`سخى`,Ja=`سخى`,Ya=`سر`,Xa=`سر`,Za=`سۛر`,Qa=`سۛر`,$a=`سم`,eo=`سم`,to=`سم`,no=`سۛم`,ro=`سۛم`,io=`سۛم`,ao=`سۛم`,oo=`سمج`,so=`سمح`,co=`سمح`,lo=`سۛمخ`,uo=`سۛمخ`,fo=`سمم`,po=`سمم`,mo=`سۛمم`,ho=`سۛمم`,go=`سى`,_o=`سى`,vo=`سى`,yo=`سى`,bo=`سۛى`,xo=`سۛى`,So=`سۛى`,Co=`سۛى`,wo=`صۛ`,To=`ص̤̣`,Eo=`صح`,Do=`صح`,Oo=`صحح`,ko=`صحح`,Ao=`صحى`,jo=`صخ`,Mo=`صر`,No=`صر`,Po=`صلعم`,Fo=`صلى`,Io=`صلى`,Lo=`صلى lللo علىo وسلم`,Ro=`صم`,zo=`صم`,Bo=`صمم`,Vo=`صمم`,Ho=`صى`,Uo=`صى`,Wo=`صى`,Go=`صى`,Ko=`ضج`,qo=`ضج`,Jo=`ضح`,Yo=`ضح`,Xo=`ضحى`,Zo=`ضحى`,Qo=`ضخ`,$o=`ضخ`,es=`ضخم`,ts=`ضخم`,ns=`ضر`,rs=`ضر`,is=`ضم`,as=`ضم`,os=`ضى`,ss=`ضى`,cs=`ضى`,ls=`ضى`,us=`طۛ`,ds=`طح`,fs=`طح`,ps=`طم`,ms=`طم`,hs=`طم`,gs=`طمح`,_s=`طمح`,vs=`طمم`,ys=`طمى`,bs=`طى`,xs=`طى`,Ss=`طى`,Cs=`طى`,ws=`ظم`,Ts=`ظم`,Es=`ظم`,Ds=`عج`,Os=`عج`,ks=`عجم`,As=`عجم`,js=`علىo`,Ms=`عم`,Ns=`عم`,Ps=`عمم`,Fs=`عمم`,Is=`عمى`,Ls=`عمى`,Rs=`عى`,zs=`عى`,Bs=`عى`,Vs=`عى`,Hs=`غج`,Us=`غج`,Ws=`غم`,Gs=`غم`,Ks=`غمم`,qs=`غمى`,Js=`غمى`,Ys=`غى`,Xs=`غى`,Zs=`غى`,Qs=`غى`,$s=`فج`,ec=`فج`,tc=`فح`,nc=`فح`,rc=`فخ`,ic=`فخ`,ac=`فخم`,oc=`فخم`,sc=`فم`,cc=`فم`,lc=`فمى`,uc=`فى`,dc=`فى`,fc=`فى`,pc=`فى`,mc=`ڡۛ`,hc=`ڡۛ`,gc=`ڡۛ`,_c=`ڡۛ`,vc=`ڡۛ`,yc=`ڡۛ`,bc=`ڢۛ`,xc=`قح`,Sc=`قح`,Cc=`قلى`,wc=`قم`,Tc=`قم`,Ec=`قمح`,Dc=`قمح`,Oc=`قمم`,kc=`قمى`,Ac=`قى`,jc=`قى`,Mc=`قى`,Nc=`قى`,Pc=`كۛ`,Fc=`كۛ`,Ic=`كۛ`,Lc=`كۛ`,Rc=`كۛ`,zc=`كۛ`,Bc=`كج`,Vc=`كج`,Hc=`كح`,Uc=`كح`,Wc=`كخ`,Gc=`كخ`,Kc=`كل`,qc=`كل`,Jc=`كل`,Yc=`كل`,Xc=`كم`,Zc=`كم`,Qc=`كم`,$c=`كم`,el=`كمم`,tl=`كمم`,nl=`كمى`,rl=`كى`,il=`كى`,al=`كى`,ol=`كى`,sl=`گۛ`,cl=`لۛ`,ll=`ل̆`,ul=`لlٕ`,dl=`لlٕ`,fl=`لlٴ`,pl=`لlٴ`,ml=`لآ`,hl=`لآ`,gl=`لج`,_l=`لج`,vl=`لجج`,yl=`لجج`,bl=`لجم`,xl=`لجم`,Sl=`لجى`,Cl=`لح`,wl=`لح`,Tl=`لحم`,El=`لحم`,Dl=`لحى`,Ol=`لحى`,kl=`لخ`,Al=`لخ`,jl=`لخم`,Ml=`لخم`,Nl=`لم`,Pl=`لم`,Fl=`لم`,Il=`لم`,Ll=`لمح`,Rl=`لمح`,zl=`لمى`,Bl=`لى`,Vl=`لى`,Hl=`لى`,Ul=`لى`,Wl=`مۛ`,Gl=`مج`,Kl=`مج`,ql=`مجح`,Jl=`مجخ`,Yl=`مجم`,Xl=`مجى`,Zl=`مح`,Ql=`مح`,$l=`محج`,eu=`محم`,tu=`محمد`,nu=`محى`,ru=`مخ`,iu=`مخ`,au=`مخج`,ou=`مخم`,su=`مخى`,cu=`مم`,lu=`مم`,uu=`مم`,du=`ممى`,fu=`مى`,pu=`مى`,mu=`نؕ`,hu=`ن̆`,gu=`نجح`,_u=`نجح`,vu=`نجم`,yu=`نجم`,bu=`نجى`,xu=`نجى`,Su=`نح`,Cu=`نح`,wu=`نحم`,Tu=`نحى`,Eu=`نحى`,Du=`نخ`,Ou=`نخ`,ku=`نر`,Au=`نز`,ju=`نم`,Mu=`نم`,Nu=`نم`,Pu=`نم`,Fu=`نمى`,Iu=`نمى`,Lu=`نن`,Ru=`نى`,zu=`نى`,Bu=`نى`,Vu=`نى`,Hu=`وۛ`,Uu=`وۛ`,Wu=`وۛ`,Gu=`و̓`,Ku=`و̓`,qu=`و̓`,Ju=`و̆`,Yu=`و̆`,Xu=`و̆`,Zu=`و̂`,Qu=`و̂`,$u=`و̂`,ed=`وٰ`,td=`وٰ`,nd=`وٰ`,rd=`وٴ`,id=`وٴ`,ad=`وٴ`,od=`وٴ`,sd=`و̓ٴ`,cd=`و̓ٴ`,ld=`وسلم`,ud=`ىؕ`,dd=`ىؕ`,fd=`ىؕ`,pd=`ىؕ`,md=`ىؕ`,hd=`ىؕ`,gd=`ىؕ`,_d=`ىؕ`,vd=`ىؕ`,yd=`ىؕ`,bd=`ىۛ`,xd=`ىۛ`,Sd=`ىۛ`,Cd=`ىۛ`,wd=`ىۛ`,Td=`ىۛ`,Ed=`ىۛ`,Dd=`ىۛ`,Od=`ىۛ`,kd=`ىۛ`,Ad=`ىۛ`,jd=`ىۛ`,Md=`ىۛ`,Nd=`ىۛ`,Pd=`ىۛ`,Fd=`ىۛ`,Id=`ىۛ`,Ld=`ىۛ`,Rd=`ىۛۢ`,zd=`ى̆`,Bd=`ى̆`,Vd=`ى̆̇`,Hd=`ى̂`,Ud=`ىٔ`,Wd=`ىٰ`,Gd=`ىٰ`,Kd=`ىۛo`,qd=`ىٴ`,Jd=`ىٴ`,Yd=`ىٴ`,Xd=`ىٴ`,Zd=`ىٴ`,Qd=`ىٴ`,$d=`ىٴl`,ef=`ىٴl`,tf=`ىٴo`,nf=`ىٴo`,rf=`ىٴo`,af=`ىٴo`,of=`ىٴٻ`,sf=`ىٴٻ`,cf=`ىٴٻ`,lf=`ىٴج`,uf=`ىٴج`,df=`ىٴح`,ff=`ىٴح`,pf=`ىٴخ`,mf=`ىٴر`,hf=`ىٴز`,gf=`ىٴم`,_f=`ىٴم`,vf=`ىٴم`,yf=`ىٴم`,bf=`ىٴن`,xf=`ىٴو`,Sf=`ىٴو`,Cf=`ىٴو̓`,wf=`ىٴو̓`,Tf=`ىٴو̆`,Ef=`ىٴو̆`,Df=`ىٴوٰ`,Of=`ىٴوٰ`,kf=`ىٴى`,Af=`ىٴى`,jf=`ىٴى`,Mf=`ىٴى`,Nf=`ىٴى`,Pf=`ىٴى`,Ff=`ىٴى`,If=`ىج`,Lf=`ىج`,Rf=`ىۛج`,zf=`ىجى`,Bf=`ىح`,Vf=`ىح`,Hf=`ىحى`,Uf=`ىخ`,Wf=`ىخ`,Gf=`ىر`,Kf=`ىۛر`,qf=`ىز`,Jf=`ىۛز`,Yf=`ىم`,Xf=`ىم`,Zf=`ىم`,Qf=`ىم`,$f=`ىۛم`,ep=`ىۛم`,tp=`ىۛم`,np=`ىۛم`,rp=`ىمم`,ip=`ىمم`,ap=`ىمى`,op=`ىن`,sp=`ىۛن`,cp=`ىى`,lp=`ىى`,up=`ىى`,dp=`ىى`,fp=`ىۛى`,pp=`ىۛى`,mp=`ىۛى`,hp=`ىۛى`,gp=`अा`,_p=`अाॆ`,vp=`अाे`,yp=`अाै`,bp=`अॆ`,xp=`अॉ`,Sp=`एॅ`,Cp=`एॆ`,wp=`एे`,Tp=`र्इ`,Ep=`অা`,Dp=`ঋৃ`,Op=`ঋৃ`,kp=`ੳੁ`,Ap=`ੳੂ`,jp=`ਅਾ`,Mp=`ਅੈ`,Np=`ਅੌ`,Pp=`ੲਿ`,Fp=`ੲੀ`,Ip=`ੲੇ`,Lp=`અા`,Rp=`અાૅ`,zp=`અાે`,Bp=`અાૈ`,Vp=`અૅ`,Hp=`અે`,Up=`અૈ`,Wp=`ଅା`,Gp=`உள`,Kp=`உൗ`,qp=`டி`,Jp=`ఋా`,Yp=`ఌా`,Xp=`ఒౌ`,Zp=`ఒౌ`,Qp=`ఒౕ`,$p=`ఒౕ`,em=`డ̣`,tm=`ధּ`,nm=`బ̣`,rm=`రּ`,im=`వ̣`,am=`వా`,om=`వు`,sm=`ಌಾ`,cm=`ഇൗ`,lm=`എെ`,um=`ഒാ`,dm=`ഒൗ`,fm=`നു`,pm=`നു`,mm=`ന്`,hm=`ര്`,gm=`𑐴𑑂𑐒`,_m=`𑐴𑑂𑐘`,vm=`𑐴𑑂𑐣`,ym=`𑐴𑑂𑐩`,bm=`𑐴𑑂𑐬`,xm=`𑐴𑑂𑐮`,Sm=`𑖂`,Cm=`𑖂`,wm=`𑖃`,Tm=`𑖄`,Em=`̊า`,Dm=`เเ`,Om=`ຫນ`,km=`ຫມ`,Am=`̊າ`,jm=`ཨོཾ`,Mm=`ဂှ`,Nm=`ဂာ`,Pm=`ဃှ`,Fm=`ပှ`,Im=`ပာ`,Lm=`ပာှ`,Rm=`ၽှ`,zm=`သြ`,Bm=`သြော်`,Vm=`ᐁ·`,Hm=`ᐁᐠ`,Um=`ᐄ·`,Wm=`ᐅ·`,Gm=`ᐅᐠ`,Km=`ᐆ·`,qm=`ᐊ·`,Jm=`ᐊᐠ`,Ym=`ᐋ·`,Xm=`ᐞᣟ`,Zm=`ᐲ·`,Qm=`ᐴ·`,$m=`ᐹ·`,eh=`ᑏ·`,th=`ᑐ·`,nh=`ᑐ'`,rh=`ᑑ·`,ih=`ᑕ·`,ah=`ᑕ'`,oh=`ᑖ·`,sh=`ᑫ·`,ch=`ᑫ'`,lh=`ᑮ·`,uh=`ᑰ·`,dh=`ᒉ·`,fh=`ᒋ·`,ph=`ᒌ·`,mh=`ᒎ·`,hh=`ᒐ·`,gh=`ᒑ·`,_h=`ᒣ·`,vh=`ᒦ·`,yh=`ᒧ·`,bh=`ᒨ·`,xh=`ᒫ·`,Sh=`ᓀ·`,Ch=`ᓂ·`,wh=`ᓃ·`,Th=`ᓄ·`,Eh=`ᓅ·`,Dh=`ᓇ·`,Oh=`ᓈ·`,kh=`ᓓ·`,Ah=`ᓕ·`,jh=`ᓖ·`,Mh=`ᓗ·`,Nh=`ᓘ·`,Ph=`ᓚ·`,Fh=`ᓛ·`,Ih=`ᓭ·`,Lh=`ᓯ·`,Rh=`ᓰ·`,zh=`ᓱ·`,Bh=`ᓲ·`,Vh=`ᓴ·`,Hh=`ᓵ·`,Uh=`ᔋ<`,Wh=`ᔋb`,Gh=`ᔋᑕ`,Kh=`ᔋᒐ`,qh=`ᔐ·`,Jh=`ᔑ·`,Yh=`ᔒ·`,Xh=`ᔓ·`,Zh=`ᔔ·`,Qh=`ᔕ·`,$h=`ᔖ·`,eg=`ᔨ·`,tg=`ᔩ·`,ng=`ᔪ·`,rg=`ᔫ·`,ig=`ᔭ·`,ag=`ᔮ·`,og=`ᕃ·`,sg=`ᕌ·`,cg=`ᕐb`,lg=`ᕐḃ`,ug=`ᕐd`,dg=`ᕐP`,fg=`ᕐᑫ`,pg=`ᕐᑬ`,mg=`ᕐᑮ`,hg=`ᕐᑰ`,gg=`ᕐᒃ`,_g=`ᕚ·`,vg=`ᕞ·`,yg=`ᕦ·`,bg=`ᕧ·`,xg=`ᕫ·`,Sg=`ᖆ·`,Cg=`ᖕJ`,wg=`ᖕᒉ`,Tg=`ᖕᒊ`,Eg=`ᖕᒋ`,Dg=`ᖕᒌ`,Og=`ᖕᒎ`,kg=`ᖕᒐ`,Ag=`ᖕᒑ`,jg=`ᖖJ`,Mg=`ᖖᒋ`,Ng=`ᖖᒌ`,Pg=`ᖖᒎ`,Fg=`ᖖᒐ`,Ig=`ᖖᒑ`,Lg=`ᖗ·`,Rg=`ᖧ·`,zg=`ᖨ·`,Bg=`ᖩ·`,Vg=`ᖪ·`,Hg=`ᖫ·`,Ug=`ᖬ·`,Wg=`ᖭ·`,Gg=`ᗴ·`,Kg=`ᘛ·`,qg=`ᣟᐞ`,Jg=`ᄀᄀ`,Yg=`ᄀᄀ`,Xg=`ᄀᄀ`,Zg=`ᄀᄂ`,Qg=`ᄀᄃ`,$g=`ᄀᄅ`,e_=`ᄀᄇ`,t_=`ᄀᄉ`,n_=`ᄀᄉ`,r_=`ᄀᄉᄀ`,i_=`ᄀᄎ`,a_=`ᄀᄏ`,o_=`ᄀᄒ`,s_=`ᄂᄀ`,c_=`ᄂᄀ`,l_=`ᄂᄂ`,u_=`ᄂᄂ`,d_=`ᄂᄂ`,f_=`ᄂᄃ`,p_=`ᄂᄃ`,m_=`ᄂᄃ`,h_=`ᄂᄅ`,g_=`ᄂᄇ`,__=`ᄂᄉ`,v_=`ᄂᄉ`,y_=`ᄂᄉ`,b_=`ᄂᄌ`,x_=`ᄂᄌ`,S_=`ᄂᄌ`,C_=`ᄂᄎ`,w_=`ᄂᄐ`,T_=`ᄂᄒ`,E_=`ᄂᄒ`,D_=`ᄂᄒ`,O_=`ᄂᅀ`,k_=`ᄂᅀ`,A_=`ᄃᄀ`,j_=`ᄃᄀ`,M_=`ᄃᄃ`,N_=`ᄃᄃ`,P_=`ᄃᄃ`,F_=`ᄃᄃᄇ`,I_=`ᄃᄅ`,L_=`ᄃᄅ`,R_=`ᄃᄆ`,z_=`ᄃᄇ`,B_=`ᄃᄇ`,V_=`ᄃᄉ`,H_=`ᄃᄉ`,U_=`ᄃᄉᄀ`,W_=`ᄃᄌ`,G_=`ᄃᄌ`,K_=`ᄃᄎ`,q_=`ᄃᄐ`,J_=`ᄅᄀ`,Y_=`ᄅᄀ`,X_=`ᄅᄀ`,Z_=`ᄅᄀᄀ`,Q_=`ᄅᄀᄀ`,$_=`ᄅᄀᄉ`,ev=`ᄅᄀᄉ`,tv=`ᄅᄀᄒ`,nv=`ᄅᄂ`,rv=`ᄅᄂ`,iv=`ᄅᄃ`,av=`ᄅᄃ`,ov=`ᄅᄃ`,sv=`ᄅᄃᄃ`,cv=`ᄅᄃᄒ`,lv=`ᄅᄅ`,uv=`ᄅᄅ`,dv=`ᄅᄅᄏ`,fv=`ᄅᄆ`,pv=`ᄅᄆ`,mv=`ᄅᄆ`,hv=`ᄅᄆᄀ`,gv=`ᄅᄆᄉ`,_v=`ᄅᄆᄒ`,vv=`ᄅᄇ`,yv=`ᄅᄇ`,bv=`ᄅᄇ`,xv=`ᄅᄇᄃ`,Sv=`ᄅᄇᄇ`,Cv=`ᄅᄇᄉ`,wv=`ᄅᄇᄉ`,Tv=`ᄅᄇᄋ`,Ev=`ᄅᄇᄋ`,Dv=`ᄅᄇᄑ`,Ov=`ᄅᄇᄒ`,kv=`ᄅᄉ`,Av=`ᄅᄉ`,jv=`ᄅᄉ`,Mv=`ᄅᄉᄉ`,Nv=`ᄅᄋ`,Pv=`ᄅᄋ`,Fv=`ᄅᄌ`,Iv=`ᄅᄏ`,Lv=`ᄅᄏ`,Rv=`ᄅᄐ`,zv=`ᄅᄐ`,Bv=`ᄅᄑ`,Vv=`ᄅᄑ`,Hv=`ᄅᄒ`,Uv=`ᄅᄒ`,Wv=`ᄅᄒ`,Gv=`ᄅᄒ`,Kv=`ᄅᄒ`,qv=`ᄅᅀ`,Jv=`ᄅᅀ`,Yv=`ᄅᅌ`,Xv=`ᄅᅙ`,Zv=`ᄅᅙ`,Qv=`ᄅᅙᄒ`,$v=`ᄆᄀ`,ey=`ᄆᄀ`,ty=`ᄆᄂ`,ny=`ᄆᄂᄂ`,ry=`ᄆᄃ`,iy=`ᄆᄅ`,ay=`ᄆᄆ`,oy=`ᄆᄇ`,sy=`ᄆᄇ`,cy=`ᄆᄇ`,ly=`ᄆᄇᄉ`,uy=`ᄆᄉ`,dy=`ᄆᄉ`,fy=`ᄆᄉ`,py=`ᄆᄉᄉ`,my=`ᄆᄋ`,hy=`ᄆᄋ`,gy=`ᄆᄋ`,_y=`ᄆᄌ`,vy=`ᄆᄎ`,yy=`ᄆᄒ`,by=`ᄆᅀ`,xy=`ᄆᅀ`,Sy=`ᄇᄀ`,Cy=`ᄇᄀ`,wy=`ᄇᄂ`,Ty=`ᄇᄃ`,Ey=`ᄇᄃ`,Dy=`ᄇᄃ`,Oy=`ᄇᄅ`,ky=`ᄇᄅᄑ`,Ay=`ᄇᄆ`,jy=`ᄇᄇ`,My=`ᄇᄇ`,Ny=`ᄇᄇ`,Py=`ᄇᄇᄋ`,Fy=`ᄇᄇᄋ`,Iy=`ᄇᄉ`,Ly=`ᄇᄉ`,Ry=`ᄇᄉ`,zy=`ᄇᄉᄀ`,By=`ᄇᄉᄀ`,Vy=`ᄇᄉᄃ`,Hy=`ᄇᄉᄃ`,Uy=`ᄇᄉᄃ`,Wy=`ᄇᄉᄇ`,Gy=`ᄇᄉᄉ`,Ky=`ᄇᄉᄌ`,qy=`ᄇᄉᄐ`,Jy=`ᄇᄋ`,Yy=`ᄇᄋ`,Xy=`ᄇᄋ`,Zy=`ᄇᄌ`,Qy=`ᄇᄌ`,$y=`ᄇᄌ`,eb=`ᄇᄎ`,tb=`ᄇᄎ`,nb=`ᄇᄏ`,rb=`ᄇᄐ`,ib=`ᄇᄐ`,ab=`ᄇᄑ`,ob=`ᄇᄑ`,sb=`ᄇᄒ`,cb=`ᄇᄒ`,lb=`ᄉᄀ`,ub=`ᄉᄀ`,db=`ᄉᄀ`,fb=`ᄉᄂ`,pb=`ᄉᄂ`,mb=`ᄉᄃ`,hb=`ᄉᄃ`,gb=`ᄉᄃ`,_b=`ᄉᄅ`,vb=`ᄉᄅ`,yb=`ᄉᄆ`,bb=`ᄉᄆ`,xb=`ᄉᄇ`,Sb=`ᄉᄇ`,Cb=`ᄉᄇ`,wb=`ᄉᄇᄀ`,Tb=`ᄉᄇᄋ`,Eb=`ᄉᄉ`,Db=`ᄉᄉ`,Ob=`ᄉᄉ`,kb=`ᄉᄉᄀ`,Ab=`ᄉᄉᄃ`,jb=`ᄉᄉᄇ`,Mb=`ᄉᄉᄉ`,Nb=`ᄉᄋ`,Pb=`ᄉᄌ`,Fb=`ᄉᄌ`,Ib=`ᄉᄌ`,Lb=`ᄉᄎ`,Rb=`ᄉᄎ`,zb=`ᄉᄏ`,Bb=`ᄉᄐ`,Vb=`ᄉᄐ`,Hb=`ᄉᄑ`,Ub=`ᄉᅀ`,Wb=`ᄋᄀ`,Gb=`ᄋᄀ`,Kb=`ᄋᄀᄀ`,qb=`ᄋᄃ`,Jb=`ᄋᄅ`,Yb=`ᄋᄆ`,Xb=`ᄋᄇ`,Zb=`ᄋᄉ`,Qb=`ᄋᄉ`,$b=`ᄋᄉ`,ex=`ᄋᄋ`,tx=`ᄋᄋ`,nx=`ᄋᄋ`,rx=`ᄋᄌ`,ix=`ᄋᄎ`,ax=`ᄋᄏ`,ox=`ᄋᄐ`,sx=`ᄋᄑ`,cx=`ᄋᄒ`,lx=`ᄋᅀ`,ux=`ᄋᅀ`,dx=`ᄋᅀ`,fx=`ᄌᄇ`,px=`ᄌᄇᄇ`,mx=`ᄌᄋ`,hx=`ᄌᄌ`,gx=`ᄌᄌ`,_x=`ᄌᄌ`,vx=`ᄌᄌᄒ`,yx=`ᄎᄏ`,bx=`ᄎᄒ`,xx=`ᄐᄐ`,Sx=`ᄑᄇ`,Cx=`ᄑᄇ`,wx=`ᄑᄉ`,Tx=`ᄑᄋ`,Ex=`ᄑᄋ`,Dx=`ᄑᄋ`,Ox=`ᄑᄐ`,kx=`ᄑᄒ`,Ax=`ᄒᄂ`,jx=`ᄒᄅ`,Mx=`ᄒᄆ`,Nx=`ᄒᄇ`,Px=`ᄒᄉ`,Fx=`ᄒᄒ`,Ix=`ᄒᄒ`,Lx=`ᄼᄼ`,Rx=`ᄾᄾ`,zx=`ᅀᄇ`,Bx=`ᅀᄇᄋ`,Vx=`ᅌᄆ`,Hx=`ᅌᄒ`,Ux=`ᅎᅎ`,Wx=`ᅐᅐ`,Gx=`ᅙᅙ`,Kx=`ᅡー`,qx=`ᅡᅩ`,Jx=`ᅡᅮ`,Yx=`ᅡ丨`,Xx=`ᅡ丨`,Zx=`ᅣᅩ`,Qx=`ᅣᅭ`,$x=`ᅣᅮ`,eS=`ᅣ丨`,tS=`ᅣ丨`,nS=`ᅥー`,rS=`ᅥᅩ`,iS=`ᅥᅮ`,aS=`ᅥ丨`,oS=`ᅥ丨`,sS=`ᅧᅣ`,cS=`ᅧᅩ`,lS=`ᅧᅮ`,uS=`ᅧ丨`,dS=`ᅧ丨`,fS=`ᅩᅡ`,pS=`ᅩᅡ`,mS=`ᅩᅡ丨`,hS=`ᅩᅡ丨`,gS=`ᅩᅣ`,_S=`ᅩᅣ丨`,vS=`ᅩᅥ`,yS=`ᅩᅥ丨`,bS=`ᅩᅧ`,xS=`ᅩᅧ丨`,SS=`ᅩᅩ`,CS=`ᅩᅩ丨`,wS=`ᅩᅮ`,TS=`ᅩ丨`,ES=`ᅩ丨`,DS=`ᅭᅡ`,OS=`ᅭᅡ丨`,kS=`ᅭᅣ`,AS=`ᅭᅣ`,jS=`ᅭᅣ`,MS=`ᅭᅣ丨`,NS=`ᅭᅣ丨`,PS=`ᅭᅥ`,FS=`ᅭᅩ`,IS=`ᅭ丨`,LS=`ᅭ丨`,RS=`ᅮᅡ`,zS=`ᅮᅡ丨`,BS=`ᅮᅥ`,VS=`ᅮᅥ`,HS=`ᅮᅥー`,US=`ᅮᅥ丨`,WS=`ᅮᅥ丨`,GS=`ᅮᅧ`,KS=`ᅮᅧ丨`,qS=`ᅮᅮ`,JS=`ᅮ丨`,YS=`ᅮ丨`,XS=`ᅮ丨丨`,ZS=`ᅲᅡ`,QS=`ᅲᅡ丨`,$S=`ᅲᅥ`,eC=`ᅲᅥ丨`,tC=`ᅲᅧ`,nC=`ᅲᅧ`,rC=`ᅲᅧ丨`,iC=`ᅲᅧ丨`,aC=`ᅲᅩ`,oC=`ᅲᅮ`,sC=`ᅲ丨`,cC=`ᅲ丨`,lC=`ᆞᅡ`,uC=`ᆞᅥ`,dC=`ᆞᅥ丨`,fC=`ᆞᅮ`,pC=`ᆞᆞ`,mC=`ᆞ丨`,hC=`ᆞ丨`,gC=`𑫥𑫯`,_C=`𑫥𑫥`,vC=`𑫥𑫥𑫯`,yC=`𑫥𑫥𑫰`,bC=`𑫥𑫰`,xC=`𑫳𑫯`,SC=`𑫳𑫳`,CC=`𑫳𑫳𑫯`,wC=`𑫳𑫳𑫰`,TC=`𑫳𑫰`,EC=`𑫫𑫯`,DC=`𑫫𑫫`,OC=`𑫫𑫫𑫯`,kC=`𐊨`,AC=`𐐺`,jC=`𐐒`,MC=`𐎂`,NC=`𐎓`,PC=`𐎚`,FC=`𐦞`,IC=`丨ー`,LC=`丨ᅡ`,RC=`丨ᅣ`,zC=`丨ᅣᅩ`,BC=`丨ᅣ丨`,VC=`丨ᅧ`,HC=`丨ᅧ丨`,UC=`丨ᅩ`,WC=`丨ᅩ丨`,GC=`丨ᅭ`,KC=`丨ᅮ`,qC=`丨ᅲ`,JC=`丨ᆞ`,YC=`丨丨`,XC=`𠄢`,ZC=`𠔜`,QC=`𠔥`,$C=`𠕋`,ew=`𠘺`,tw=`𠠄`,nw=`𠣞`,rw=`𠨬`,iw=`𠭣`,aw=`𡓤`,ow=`𡚨`,sw=`𡛪`,cw=`𡧈`,lw=`𡬘`,uw=`𡴋`,dw=`𡷤`,fw=`𡷦`,pw=`𢆃`,mw=`𢆟`,hw=`𢌱`,gw=`𢌱`,_w=`𢛔`,vw=`𢡄`,yw=`𢡊`,bw=`𢬌`,xw=`𢯱`,Sw=`𣀊`,Cw=`𣊸`,ww=`𣍟`,Tw=`𣎓`,Ew=`𣎜`,Dw=`𣏃`,Ow=`𣏕`,kw=`𣑭`,Aw=`𣚣`,jw=`𣢧`,Mw=`𣪍`,Nw=`𣫺`,Pw=`𣲼`,Fw=`𣴞`,Iw=`𣻑`,Lw=`𣽞`,Rw=`𣾎`,zw=`𤉣`,Bw=`𤋮`,Vw=`𤎫`,Hw=`𤘈`,Uw=`𤜵`,Ww=`𤠔`,Gw=`𤰶`,Kw=`𤲒`,qw=`𤾡`,Jw=`𤾸`,Yw=`𥁄`,Xw=`𥃲`,Zw=`𥃳`,Qw=`𥄙`,$w=`𥄳`,eT=`𥉉`,tT=`𥐝`,nT=`𥘦`,rT=`𥚚`,iT=`𥛅`,aT=`𥥼`,oT=`𥪧`,sT=`𥪧`,cT=`𥮫`,lT=`𥲀`,uT=`𥳐`,dT=`𥾆`,fT=`𦇚`,pT=`𦈨`,mT=`𦉇`,hT=`𦋙`,gT=`𦌾`,_T=`𦓚`,vT=`𦔣`,yT=`𦖨`,bT=`𦞧`,xT=`𦞵`,ST=`𦬼`,CT=`𦰶`,wT=`𦳕`,TT=`𦵫`,ET=`𦼬`,DT=`𦾱`,OT=`𧃒`,kT=`𧏊`,AT=`𧙧`,jT=`𧢮`,MT=`𧥦`,NT=`𧲨`,PT=`𧻓`,FT=`𧼯`,IT=`𨗒`,LT=`𨗭`,RT=`𨜮`,zT=`𨯺`,BT=`𨵷`,VT=`𩅅`,HT=`𩇟`,UT=`𩈚`,WT=`𩐊`,GT=`𩒖`,KT=`𩖶`,qT=`𩬰`,JT=`𪃎`,YT=`𪄅`,XT=`𪈎`,ZT=`𪊑`,QT=`𪎒`,$T=`𪘀`,eE={0:`O`,1:`l`,"֭":`֖`,"֮":`֘`,"֨":`֙`,"֤":`֚`,"᪴":`ۛ`,"⃛":`ۛ`,"ؙ":`̓`,"ࣳ":`̓`,"̓":`̓`,"̕":`̓`,"ُ":`̓`,"ٝ":`̔`,"֜":`́`,"֝":`́`,"ؘ":`́`,"݇":`́`,"́":`́`,"॔":`́`,"َ":`́`,"̀":`̀`,"॓":`̀`,"̌":`̆`,"꙼":`̆`,"٘":`̆`,"ٚ":`̆`,"ͮ":`̆`,"ۨ":`̆̇`,"̐":`̆̇`,"ँ":`̆̇`,"ঁ":`̆̇`,"ઁ":`̆̇`,"ଁ":`̆̇`,"ఀ":`̆̇`,"ಁ":`̆̇`,"ഁ":`̆̇`,"𑒿":`̆̇`,"᳐":`̂`,"̑":`̂`,"ٛ":`̂`,"߮":`̂`,"꛰":`̂`,"֯":`̊`,"۟":`̊`,"៓":`̊`,"゚":`̊`,"ْ":`̊`,"ஂ":`̊`,"ံ":`̊`,"ំ":`̊`,"𑌀":`̊`,"ํ":`̊`,"ໍ":`̊`,"ͦ":`̊`,"ⷪ":`̊`,"࣫":`̈`,"߳":`̈`,"ً":`̋`,"ࣰ":`̋`,"͂":`̃`,"ٓ":`̃`,"ׄ":`̇`,"۬":`̇`,"݀":`̇`,"࣪":`̇`,"݁":`̇`,"͘":`̇`,"ֹ":`̇`,"ֺ":`̇`,"ׂ":`̇`,"ׁ":`̇`,"߭":`̇`,"ं":`̇`,"ਂ":`̇`,"ં":`̇`,"்":`̇`,"̷":`̸`,"᪷":`̨`,"̢":`̨`,"ͅ":`̨`,"᳒":`̄`,"̅":`̄`,"ٙ":`̄`,"߫":`̄`,"꛱":`̄`,"᳚":`̎`,"ٗ":`̒`,"͗":`͐`,"ࣿ":`͐`,"ࣸ":`͐`,"ऀ":`͒`,"᳭":`̖`,"᳜":`̩`,"ٖ":`̩`,"᳕":`̫`,"͇":`̳`,"ࣹ":`͔`,"ࣺ":`͕`,゛:`゙`,゜:`゚`,"̶":`̵`,"〬":`̉`,"ׅ":`̣`,"࣭":`̣`,"᳝":`̣`,"ִ":`̣`,"ٜ":`̣`,"़":`̣`,"়":`̣`,"਼":`̣`,"઼":`̣`,"଼":`̣`,"𑇊":`̣`,"𑓃":`̣`,"𐨺":`̣`,"࣮":`̤`,"᳞":`̤`,"༷":`̥`,"〭":`̥`,"̧":`̦`,"̡":`̦`,"̹":`̦`,"᳙":`̭`,"᳘":`̮`,"॒":`̱`,"̠":`̱`,"ࣱ":`ٌ`,"ࣨ":`ٌ`,"ࣥ":`ٌ`,ﱞ:ae,"ࣲ":`ٍ`,ﱟ:oe,ﳲ:se,ﱠ:ce,ﳳ:le,ﱡ:ue,"ؚ":`ِ`,"̗":`ِ`,ﳴ:de,ﱢ:fe,ﱣ:pe,"ٟ":`ٕ`,"̍":`ٰ`,"݂":`ܼ`,"ਃ":`ঃ`,"ః":`ঃ`,"ಃ":`ঃ`,"ഃ":`ঃ`,"ඃ":`ঃ`,"း":`ঃ`,"𑓁":`ঃ`,"់":`่`,"່":`่`,"້":`้`,"໊":`๊`,"໋":`๋`,"꙯":`⃩`,"\u2028":` `,"\u2029":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `,"\xA0":` `," ":` `," ":` `,ߺ:`_`,"﹍":`_`,"﹎":`_`,"﹏":`_`,"‐":`-`,"‑":`-`,"‒":`-`,"–":`-`,"﹘":`-`,"۔":`-`,"⁃":`-`,"˗":`-`,"−":`-`,"➖":`-`,Ⲻ:`-`,"⨩":`-̓`,"⸚":`-̈`,"﬩":`-̇`,"∸":`-̇`,"⨪":`-̣`,"꓾":`-.`,"~":`〜`,"؍":`,`,"٫":`,`,"‚":`,`,"¸":`,`,ꓹ:`,`,"⸲":`،`,"٬":`،`,";":`;`,"⸵":`؛`,"ः":`:`,"ઃ":`:`,":":`:`,"։":`:`,"܃":`:`,"܄":`:`,"᛬":`:`,"︰":`:`,"᠃":`:`,"᠉":`:`,"⁚":`:`,"׃":`:`,"˸":`:`,"꞉":`:`,"∶":`:`,ː:`:`,ꓽ:`:`,"⩴":`::=`,"⧴":`:→`,"!":`!`,ǃ:`!`,ⵑ:`!`,"‼":`!!`,"⁉":`!?`,ʔ:`?`,Ɂ:`?`,ॽ:`?`,Ꭾ:`?`,ꛫ:`?`,"⁈":`?!`,"⁇":`??`,"⸮":`؟`,"𝅭":`.`,"․":`.`,"܁":`.`,"܂":`.`,"꘎":`.`,"𐩐":`.`,"٠":`.`,"۰":`.`,ꓸ:`.`,ꓻ:`.,`,"‥":`..`,ꓺ:`..`,"…":`...`,"꛴":`꛳꛳`,"・":`·`,"・":`·`,"᛫":`·`,"·":`·`,"⸱":`·`,"𐄁":`·`,"•":`·`,"‧":`·`,"∙":`·`,"⋅":`·`,ꞏ:`·`,ᐧ:`·`,"⋯":`···`,ⵈ:me,ᑄ:`·<`,"⋗":`·>`,ᐷ:`·>`,ᑀ:`·>`,ᔯ:`·4`,ᑾ:`·b`,ᒀ:he,ᑺ:`·d`,ᒘ:`·J`,ᒶ:`·L`,ᑶ:`·P`,ᑗ:`·U`,ᐺ:`·V`,ᐼ:ge,ᒮ:_e,ᐎ:ve,ᑙ:ye,ᐌ:be,ᐐ:xe,ᐒ:Se,ᐔ:Ce,ᐗ:we,ᐙ:Te,ᐾ:Ee,ᑂ:De,ᑆ:Oe,ᑛ:ke,ᑔ:Ae,ᑝ:je,ᑟ:Me,ᑡ:Ne,ᑣ:Pe,ᑴ:Fe,ᑸ:Ie,ᑼ:Le,ᒒ:Re,ᒔ:ze,ᒖ:Be,ᒚ:Ve,ᒜ:He,ᒞ:Ue,ᒬ:We,ᒰ:Ge,ᒲ:Ke,ᒴ:qe,ᒸ:Je,ᓉ:Ye,ᣆ:Xe,ᣈ:Ze,ᣊ:Qe,ᣌ:$e,ᓋ:et,ᓍ:tt,ᓜ:nt,ᓞ:rt,ᓠ:it,ᓢ:at,ᓤ:ot,ᓦ:st,ᓨ:ct,ᓶ:lt,ᓸ:ut,ᓺ:dt,ᓼ:ft,ᓾ:pt,ᔀ:mt,ᔂ:ht,ᔗ:gt,ᔙ:_t,ᔛ:vt,ᔝ:yt,ᔟ:bt,ᔡ:xt,ᔣ:St,ᔱ:Ct,ᔳ:wt,ᔵ:Tt,ᔷ:Et,ᔹ:Dt,ᔻ:Ot,ᣎ:kt,ᣏ:At,ᣐ:jt,ᣑ:Mt,ᣒ:Nt,ᣓ:Pt,ᕎ:Ft,ᕛ:It,ᕨ:Lt,ᢳ:Rt,ᢶ:zt,ᢹ:Bt,ᣂ:Vt,"꠰":`।`,"॥":`।।`,"᰼":`᰻᰻`,"။":`၊၊`,"᪩":`᪨᪨`,"᪫":`᪪᪨`,"᭟":`᭞᭞`,"𐩗":`𐩖𐩖`,"𑑌":`𑑋𑑋`,"𑙂":`𑙁𑙁`,"𑱂":`𑱁𑱁`,"᱿":`᱾᱾`,"՝":`'`,"'":`'`,"‘":`'`,"’":`'`,"‛":`'`,"′":`'`,"‵":`'`,"՚":`'`,"׳":`'`,"`":`'`,"`":`'`,"`":`'`,"´":`'`,"΄":`'`,"´":`'`,"᾽":`'`,"᾿":`'`,"῾":`'`,ʹ:`'`,ʹ:`'`,ˈ:`'`,ˊ:`'`,ˋ:`'`,"˴":`'`,ʻ:`'`,ʽ:`'`,ʼ:`'`,ʾ:`'`,ꞌ:`'`,י:`'`,ߴ:`'`,ߵ:`'`,ᑊ:`'`,ᛌ:`'`,"𖽑":`'`,"𖽒":`'`,"᳓":`''`,'"':`''`,""":`''`,"“":`''`,"”":`''`,"‟":`''`,"″":`''`,"‶":`''`,"〃":`''`,"״":`''`,"˝":`''`,ʺ:`''`,"˶":`''`,ˮ:`''`,ײ:`''`,"‴":`'''`,"‷":`'''`,"⁗":`''''`,Ɓ:`'B`,Ɗ:`'D`,ʼn:`'n`,Ƥ:`'P`,Ƭ:`'T`,Ƴ:`'Y`,"[":`(`,"❨":`(`,"❲":`(`,"〔":`(`,"﴾":`(`,"⸨":`((`,"㈠":`(ー)`,"⑵":`(2)`,"⒇":`(2O)`,"⑶":`(3)`,"⑷":`(4)`,"⑸":`(5)`,"⑹":`(6)`,"⑺":`(7)`,"⑻":`(8)`,"⑼":`(9)`,"⒜":`(a)`,"🄐":`(A)`,"⒝":`(b)`,"🄑":`(B)`,"⒞":`(c)`,"🄒":`(C)`,"⒟":`(d)`,"🄓":`(D)`,"⒠":`(e)`,"🄔":`(E)`,"⒡":`(f)`,"🄕":`(F)`,"⒢":`(g)`,"🄖":`(G)`,"⒣":`(h)`,"🄗":`(H)`,"⒤":`(i)`,"⒥":`(j)`,"🄙":`(J)`,"⒦":`(k)`,"🄚":`(K)`,"⑴":`(l)`,"🄘":`(l)`,"⒧":`(l)`,"🄛":`(L)`,"⑿":`(l2)`,"⒀":`(l3)`,"⒁":`(l4)`,"⒂":`(l5)`,"⒃":`(l6)`,"⒄":`(l7)`,"⒅":`(l8)`,"⒆":`(l9)`,"⑾":`(ll)`,"⑽":`(lO)`,"🄜":`(M)`,"⒩":`(n)`,"🄝":`(N)`,"⒪":`(o)`,"🄞":`(O)`,"⒫":`(p)`,"🄟":`(P)`,"⒬":`(q)`,"🄠":`(Q)`,"⒭":`(r)`,"🄡":`(R)`,"⒨":`(rn)`,"⒮":`(s)`,"🄢":`(S)`,"🄪":`(S)`,"⒯":`(t)`,"🄣":`(T)`,"⒰":`(u)`,"🄤":`(U)`,"⒱":`(v)`,"🄥":`(V)`,"⒲":`(w)`,"🄦":`(W)`,"⒳":`(x)`,"🄧":`(X)`,"⒴":`(y)`,"🄨":`(Y)`,"⒵":`(z)`,"🄩":`(Z)`,"㈀":`(ᄀ)`,"㈎":`(가)`,"㈁":`(ᄂ)`,"㈏":`(나)`,"㈂":`(ᄃ)`,"㈐":`(다)`,"㈃":`(ᄅ)`,"㈑":`(라)`,"㈄":`(ᄆ)`,"㈒":`(마)`,"㈅":`(ᄇ)`,"㈓":`(바)`,"㈆":`(ᄉ)`,"㈔":`(사)`,"㈇":`(ᄋ)`,"㈕":`(아)`,"㈝":`(오전)`,"㈞":`(오후)`,"㈈":`(ᄌ)`,"㈖":`(자)`,"㈜":`(주)`,"㈉":`(ᄎ)`,"㈗":`(차)`,"㈊":`(ᄏ)`,"㈘":`(카)`,"㈋":`(ᄐ)`,"㈙":`(타)`,"㈌":`(ᄑ)`,"㈚":`(파)`,"㈍":`(ᄒ)`,"㈛":`(하)`,"㈦":`(七)`,"㈢":`(三)`,"🉁":`(三)`,"㈨":`(九)`,"㈡":`(二)`,"🉂":`(二)`,"㈤":`(五)`,"㈹":`(代)`,"㈽":`(企)`,"㉁":`(休)`,"㈧":`(八)`,"㈥":`(六)`,"㈸":`(労)`,"🉇":`(勝)`,"㈩":`(十)`,"㈿":`(協)`,"㈴":`(名)`,"㈺":`(呼)`,"㈣":`(四)`,"㈯":`(土)`,"㈻":`(学)`,"🉃":`(安)`,"🉅":`(打)`,"🉈":`(敗)`,"㈰":`(日)`,"㈪":`(月)`,"㈲":`(有)`,"㈭":`(木)`,"🉀":`(本)`,"㈱":`(株)`,"㈬":`(水)`,"㈫":`(火)`,"🉄":`(点)`,"㈵":`(特)`,"🉆":`(盗)`,"㈼":`(監)`,"㈳":`(社)`,"㈷":`(祝)`,"㉀":`(祭)`,"㉂":`(自)`,"㉃":`(至)`,"㈶":`(財)`,"㈾":`(資)`,"㈮":`(金)`,"]":`)`,"❩":`)`,"❳":`)`,"〕":`)`,"﴿":`)`,"⸩":`))`,"❴":`{`,"𝄔":`{`,"❵":`}`,"〚":`⟦`,"〛":`⟧`,"⟨":`❬`,"〈":`❬`,"〈":`❬`,"㇛":`❬`,く:`❬`,𡿨:`❬`,"⟩":`❭`,"〉":`❭`,"〉":`❭`,"^":`︿`,"⸿":`¶`,"⁎":`*`,"٭":`*`,"∗":`*`,𐌟:`*`,"᜵":`/`,"⁁":`/`,"∕":`/`,"⁄":`/`,"╱":`/`,"⟋":`/`,"⧸":`/`,"𝈺":`/`,"㇓":`/`,〳:`/`,Ⳇ:`/`,ノ:`/`,丿:`/`,"⼃":`/`,"⧶":`/̄`,"⫽":`//`,"⫻":`///`,"\":`\\`,"﹨":`\\`,"∖":`\\`,"⟍":`\\`,"⧵":`\\`,"⧹":`\\`,"𝈏":`\\`,"𝈻":`\\`,"㇔":`\\`,丶:`\\`,"⼂":`\\`,"⳹":`\\\\`,"⑊":`\\\\`,"⟈":`\\ᑕ`,ꝸ:`&`,"૰":`॰`,"𑂻":`॰`,"𑇇":`॰`,"⚬":`॰`,"𑇛":`꣼`,"៙":`๏`,"៕":`๚`,"៚":`๛`,"༌":`་`,"༎":`།།`,"˄":`^`,ˆ:`^`,"꙾":`ˇ`,"˘":`ˇ`,"‾":`ˉ`,"﹉":`ˉ`,"﹊":`ˉ`,"﹋":`ˉ`,"﹌":`ˉ`,"¯":`ˉ`," ̄":`ˉ`,"▔":`ˉ`,ъ:`ˉb`,ꙑ:Ht,"͵":`ˏ`,"˻":`˪`,"꜖":`˪`,"꜔":`˫`,"。":`˳`,"⸰":`°`,"˚":`°`,"∘":`°`,"○":`°`,"◦":`°`,"⍜":`°̲`,"⍤":`°̈`,"℃":`°C`,"℉":`°F`,"௵":`௳`,"༛":`༚༚`,"༟":`༚༝`,"࿎":`༝༚`,"༞":`༝༝`,"Ⓒ":`©`,"Ⓡ":`®`,"Ⓟ":`℗`,"𝈛":`⅄`,"⯬":`↞`,"⯭":`↟`,"⯮":`↠`,"⯯":`↡`,"↵":`↲`,"⥥":`⇃⇂`,"⥯":`⇃ᛚ`,"𝛛":`∂`,"𝜕":`∂`,"𝝏":`∂`,"𝞉":`∂`,"𝟃":`∂`,"𞣌":`∂`,"𞣍":`∂̵`,ð:Ut,"⌀":`∅`,"𝛁":`∇`,"𝛻":`∇`,"𝜵":`∇`,"𝝯":`∇`,"𝞩":`∇`,𑢨:`∇`,"⍢":`∇̈`,"⍫":`∇̴`,"█":`∎`,"■":`∎`,"⨿":`∐`,"᛭":`+`,"➕":`+`,𐊛:`+`,"⨣":`+̂`,"⨢":`+̊`,"⨤":`+̃`,"∔":`+̇`,"⨥":`+̣`,"⨦":`+̰`,"⨧":`+₂`,"➗":`÷`,"‹":`<`,"❮":`<`,"˂":`<`,"𝈶":`<`,ᐸ:`<`,ᚲ:`<`,"⋖":`<·`,Ⲵ:`<·`,ᑅ:`<·`,"≪":`<<`,"⋘":`<<<`,"᐀":`=`,"⹀":`=`,"゠":`=`,"꓿":`=`,"≚":`=̆`,"≙":`=̂`,"≗":`=̊`,"≐":`=̇`,"≑":`=̣̇`,"⩮":`=⃰`,"⩵":`==`,"⩶":`===`,"≞":`=ͫ`,"›":`>`,"❯":`>`,"˃":`>`,"𝈷":`>`,ᐳ:`>`,𖼿:`>`,ᑁ:`>·`,"⪥":`><`,"≫":`>>`,"⨠":`>>`,"⋙":`>>>`,"⁓":`~`,"˜":`~`,"῀":`~`,"∼":`~`,"⍨":`~̈`,"⸞":`~̇`,"⩪":`~̇`,"⸟":`~̣`,"𞣈":`∠`,"⋀":`∧`,"∯":`∮∮`,"∰":`∮∮∮`,"⸫":`∴`,"⸪":`∵`,"⸬":`∷`,"𑇞":`≈`,"♎":`≏`,"🝞":`≏`,"≣":`≡`,"⨃":`⊍`,"⨄":`⊎`,"𝈸":`⊏`,"𝈹":`⊐`,"⨅":`⊓`,"⨆":`⊔`,"⨂":`⊗`,"⍟":`⊛`,"🝱":`⊠`,"🝕":`⊡`,"◁":`⊲`,"▷":`⊳`,"⍣":`⋆̈`,"︴":`⌇`,"◠":`⌒`,"⨽":`⌙`,"⌥":`⌤`,"⧇":`⌻`,"◎":`⌾`,"⦾":`⌾`,"⧅":`⍂`,"⦰":`⍉`,"⏃":`⍋`,"⏂":`⍎`,"⏁":`⍕`,"⏆":`⍭`,"☸":`⎈`,"︵":`⏜`,"︶":`⏝`,"︷":`⏞`,"︸":`⏟`,"︹":`⏠`,"︺":`⏡`,"▱":`⏥`,"⏼":`⏻`,"︱":`│`,"|":`│`,"┃":`│`,"┏":`┌`,"┣":`├`,"▐":`▌`,"▗":`▖`,"▝":`▘`,"☐":`□`,"■":`▪`,"▸":`▶`,"►":`▶`,"⳩":`☧`,"🜊":`☩`,"🌒":`☽`,"🌙":`☽`,"⏾":`☾`,"🌘":`☾`,"⧙":`⦚`,"🜺":`⧟`,"⨾":`⨟`,"𐆠":`⳨`,"♩":`𝅘𝅥`,"♪":`𝅘𝅥𝅮`,"⓪":`🄍`,"↺":`🄎`,"˙":`ॱ`,ൎ:`ॱ`,"-":`ー`,"—":`ー`,"―":`ー`,"─":`ー`,"━":`ー`,"㇐":`ー`,ꟷ:`ー`,ᅳ:`ー`,ㅡ:`ー`,一:`ー`,"⼀":`ー`,ᆖ:Wt,ힹ:Gt,ힺ:Kt,ힻ:qt,ힼ:Jt,ᆕ:Yt,ᅴ:Xt,ㅢ:Zt,ᆗ:Qt,"🄏":`$⃠`,"₤":`£`,"〒":`₸`,"〶":`₸`,"᭜":`᭐`,"꧆":`꧐`,"𑓑":`১`,"೧":`౧`,ၥ:`၁`,"①":`➀`,"⑩":`➉`,"⏨":`₁₀`,"𝟐":`2`,"𝟚":`2`,"𝟤":`2`,"𝟮":`2`,"𝟸":`2`,"🯲":`2`,Ꝛ:`2`,Ƨ:`2`,Ϩ:`2`,Ꙅ:`2`,ᒿ:`2`,ꛯ:`2`,ꧏ:`٢`,"۲":`٢`,"૨":`२`,"𑓒":`২`,"೨":`౨`,"②":`➁`,ƻ:`2̵`,"🄃":`2,`,"⒉":`2.`,"㏵":`22日`,"㍮":`22点`,"㏶":`23日`,"㍯":`23点`,"㏷":`24日`,"㍰":`24点`,"㏸":`25日`,"㏹":`26日`,"㏺":`27日`,"㏻":`28日`,"㏼":`29日`,"㏴":`2l日`,"㍭":`2l点`,"⒛":`2O.`,"㏳":`2O日`,"㍬":`2O点`,"෩":`෨ා`,"෯":`෨ී`,"㏡":`2日`,"㋁":`2月`,"㍚":`2点`,"𝈆":`3`,"𝟑":`3`,"𝟛":`3`,"𝟥":`3`,"𝟯":`3`,"𝟹":`3`,"🯳":`3`,Ɜ:`3`,Ȝ:`3`,Ʒ:`3`,Ꝫ:`3`,Ⳍ:`3`,З:`3`,Ӡ:`3`,𖼻:`3`,𑣊:`3`,"۳":`٣`,"𞣉":`٣`,"૩":`३`,"③":`➂`,Ҙ:`3̦`,"🄄":`3,`,"⒊":`3.`,"㏾":`3l日`,"㏽":`3O日`,"㏢":`3日`,"㋂":`3月`,"㍛":`3点`,"𝟒":`4`,"𝟜":`4`,"𝟦":`4`,"𝟰":`4`,"𝟺":`4`,"🯴":`4`,Ꮞ:`4`,𑢯:`4`,"۴":`٤`,"૪":`४`,"④":`➃`,"🄅":`4,`,"⒋":`4.`,ᔰ:`4·`,"㏣":`4日`,"㋃":`4月`,"㍜":`4点`,"𝟓":`5`,"𝟝":`5`,"𝟧":`5`,"𝟱":`5`,"𝟻":`5`,"🯵":`5`,Ƽ:`5`,𑢻:`5`,"⑤":`➄`,"🄆":`5,`,"⒌":`5.`,"㏤":`5日`,"㋄":`5月`,"㍝":`5点`,"𝟔":`6`,"𝟞":`6`,"𝟨":`6`,"𝟲":`6`,"𝟼":`6`,"🯶":`6`,Ⳓ:`6`,б:`6`,Ꮾ:`6`,𑣕:`6`,"۶":`٦`,"𑓖":`৬`,"⑥":`➅`,"🄇":`6,`,"⒍":`6.`,"㏥":`6日`,"㋅":`6月`,"㍞":`6点`,"𝈒":`7`,"𝟕":`7`,"𝟟":`7`,"𝟩":`7`,"𝟳":`7`,"𝟽":`7`,"🯷":`7`,𐓒:`7`,𑣆:`7`,"⑦":`➆`,"🄈":`7,`,"⒎":`7.`,"㏦":`7日`,"㋆":`7月`,"㍟":`7点`,"ଃ":`8`,"৪":`8`,"੪":`8`,"𞣋":`8`,"𝟖":`8`,"𝟠":`8`,"𝟪":`8`,"𝟴":`8`,"𝟾":`8`,"🯸":`8`,ȣ:`8`,Ȣ:`8`,𐌚:`8`,"૮":`८`,"⑧":`➇`,"🄉":`8,`,"⒏":`8.`,"㏧":`8日`,"㋇":`8月`,"㍠":`8点`,"੧":`9`,"୨":`9`,"৭":`9`,"൭":`9`,"𝟗":`9`,"𝟡":`9`,"𝟫":`9`,"𝟵":`9`,"𝟿":`9`,"🯹":`9`,Ꝯ:`9`,Ⳋ:`9`,𑣌:`9`,𑢬:`9`,𑣖:`9`,"१":`٩`,"𑣤":`٩`,"۹":`٩`,"೯":`౯`,"⑨":`➈`,"🄊":`9,`,"⒐":`9.`,"㏨":`9日`,"㋈":`9月`,"㍡":`9点`,"⍺":`a`,a:`a`,𝐚:`a`,𝑎:`a`,𝒂:`a`,𝒶:`a`,𝓪:`a`,𝔞:`a`,𝕒:`a`,𝖆:`a`,𝖺:`a`,𝗮:`a`,𝘢:`a`,𝙖:`a`,𝚊:`a`,ɑ:`a`,α:`a`,𝛂:`a`,𝛼:`a`,𝜶:`a`,𝝰:`a`,𝞪:`a`,а:`a`,"ⷶ":`ͣ`,A:`A`,𝐀:`A`,𝐴:`A`,𝑨:`A`,𝒜:`A`,𝓐:`A`,𝔄:`A`,𝔸:`A`,𝕬:`A`,𝖠:`A`,𝗔:`A`,𝘈:`A`,𝘼:`A`,𝙰:`A`,Α:`A`,𝚨:`A`,𝛢:`A`,𝜜:`A`,𝝖:`A`,𝞐:`A`,А:`A`,Ꭺ:`A`,ᗅ:`A`,ꓮ:`A`,𖽀:`A`,𐊠:`A`,"⍶":`a̲`,ǎ:`ă`,Ǎ:`Ă`,ȧ:`å`,Ȧ:`Å`,ẚ:`ả`,"℀":`a/c`,"℁":`a/s`,ꜳ:`aa`,Ꜳ:`AA`,æ:`ae`,ӕ:`ae`,Æ:`AE`,Ӕ:`AE`,ꜵ:`ao`,Ꜵ:`AO`,"🜇":`AR`,ꜷ:`au`,Ꜷ:`AU`,ꜹ:`av`,ꜻ:`av`,Ꜹ:`AV`,Ꜻ:`AV`,ꜽ:`ay`,Ꜽ:`AY`,ꭺ:`ᴀ`,"∀":`Ɐ`,"𝈗":`Ɐ`,ᗄ:`Ɐ`,ꓯ:`Ɐ`,𐐟:`Ɒ`,𝐛:`b`,𝑏:`b`,𝒃:`b`,𝒷:`b`,𝓫:`b`,𝔟:`b`,𝕓:`b`,𝖇:`b`,𝖻:`b`,𝗯:`b`,𝘣:`b`,𝙗:`b`,𝚋:`b`,Ƅ:`b`,Ь:`b`,Ꮟ:`b`,ᑲ:`b`,ᖯ:`b`,B:`B`,ℬ:`B`,𝐁:`B`,𝐵:`B`,𝑩:`B`,𝓑:`B`,𝔅:`B`,𝔹:`B`,𝕭:`B`,𝖡:`B`,𝗕:`B`,𝘉:`B`,𝘽:`B`,𝙱:`B`,Ꞵ:`B`,Β:`B`,𝚩:`B`,𝛣:`B`,𝜝:`B`,𝝗:`B`,𝞑:`B`,В:`B`,Ᏼ:`B`,ᗷ:`B`,ꓐ:`B`,𐊂:`B`,𐊡:`B`,𐌁:`B`,ɓ:`b̔`,ᑳ:`ḃ`,ƃ:`b̄`,Ƃ:`b̄`,Б:`b̄`,ƀ:`b̵`,ҍ:`b̵`,Ҍ:`b̵`,ѣ:`b̵`,Ѣ:`b̵`,ᑿ:`b·`,ᒁ:$t,ᒈ:`b'`,Ы:`bl`,в:`ʙ`,ᏼ:`ʙ`,c:`c`,ⅽ:`c`,𝐜:`c`,𝑐:`c`,𝒄:`c`,𝒸:`c`,𝓬:`c`,𝔠:`c`,𝕔:`c`,𝖈:`c`,𝖼:`c`,𝗰:`c`,𝘤:`c`,𝙘:`c`,𝚌:`c`,ᴄ:`c`,ϲ:`c`,ⲥ:`c`,с:`c`,ꮯ:`c`,𐐽:`c`,"ⷭ":`ͨ`,"🝌":`C`,"𑣲":`C`,"𑣩":`C`,C:`C`,Ⅽ:`C`,ℂ:`C`,ℭ:`C`,𝐂:`C`,𝐶:`C`,𝑪:`C`,𝒞:`C`,𝓒:`C`,𝕮:`C`,𝖢:`C`,𝗖:`C`,𝘊:`C`,𝘾:`C`,𝙲:`C`,Ϲ:`C`,Ⲥ:`C`,С:`C`,Ꮯ:`C`,ꓚ:`C`,𐊢:`C`,𐌂:`C`,𐐕:`C`,𐔜:`C`,"¢":`c̸`,ȼ:`c̸`,"₡":`C⃫`,"🅮":`C⃠`,ç:`c̦`,ҫ:`c̦`,Ç:`C̦`,Ҫ:`C̦`,Ƈ:`C'`,"℅":`c/o`,"℆":`c/u`,"🅭":`㏄ ⃝`,"⋴":`ꞓ`,ɛ:`ꞓ`,ε:`ꞓ`,ϵ:`ꞓ`,𝛆:`ꞓ`,𝛜:`ꞓ`,𝜀:`ꞓ`,𝜖:`ꞓ`,𝜺:`ꞓ`,𝝐:`ꞓ`,𝝴:`ꞓ`,𝞊:`ꞓ`,𝞮:`ꞓ`,𝟄:`ꞓ`,ⲉ:`ꞓ`,є:`ꞓ`,ԑ:`ꞓ`,ꮛ:`ꞓ`,𑣎:`ꞓ`,𐐩:`ꞓ`,"€":`Ꞓ`,Ⲉ:`Ꞓ`,Є:`Ꞓ`,"⍷":`ꞓ̲`,ͽ:`ꜿ`,Ͽ:`Ꜿ`,ⅾ:`d`,ⅆ:`d`,𝐝:`d`,𝑑:`d`,𝒅:`d`,𝒹:`d`,𝓭:`d`,𝔡:`d`,𝕕:`d`,𝖉:`d`,𝖽:`d`,𝗱:`d`,𝘥:`d`,𝙙:`d`,𝚍:`d`,ԁ:`d`,Ꮷ:`d`,ᑯ:`d`,ꓒ:`d`,Ⅾ:`D`,ⅅ:`D`,𝐃:`D`,𝐷:`D`,𝑫:`D`,𝒟:`D`,𝓓:`D`,𝔇:`D`,𝔻:`D`,𝕯:`D`,𝖣:`D`,𝗗:`D`,𝘋:`D`,𝘿:`D`,𝙳:`D`,Ꭰ:`D`,ᗞ:`D`,ᗪ:`D`,ꓓ:`D`,ɗ:`d̔`,ɖ:`d̨`,ƌ:`d̄`,đ:`d̵`,Đ:`D̵`,Ð:`D̵`,Ɖ:`D̵`,"₫":`ḏ̵`,ꝺ:`Ꝺ`,ᑻ:`d·`,ᒇ:`d'`,ʤ:`dȝ`,dz:`dz`,ʣ:`dz`,Dz:`Dz`,DZ:`DZ`,dž:`dž`,Dž:`Dž`,DŽ:`DŽ`,ʥ:`dʑ`,ꭰ:`ᴅ`,"⸹":`ẟ`,δ:`ẟ`,𝛅:`ẟ`,𝛿:`ẟ`,𝜹:`ẟ`,𝝳:`ẟ`,𝞭:`ẟ`,ծ:`ẟ`,ᕷ:`ẟ`,℮:`e`,e:`e`,ℯ:`e`,ⅇ:`e`,𝐞:`e`,𝑒:`e`,𝒆:`e`,𝓮:`e`,𝔢:`e`,𝕖:`e`,𝖊:`e`,𝖾:`e`,𝗲:`e`,𝘦:`e`,𝙚:`e`,𝚎:`e`,ꬲ:`e`,е:`e`,ҽ:`e`,"ⷷ":`ͤ`,"⋿":`E`,E:`E`,ℰ:`E`,𝐄:`E`,𝐸:`E`,𝑬:`E`,𝓔:`E`,𝔈:`E`,𝔼:`E`,𝕰:`E`,𝖤:`E`,𝗘:`E`,𝘌:`E`,𝙀:`E`,𝙴:`E`,Ε:`E`,𝚬:`E`,𝛦:`E`,𝜠:`E`,𝝚:`E`,𝞔:`E`,Е:`E`,ⴹ:`E`,Ꭼ:`E`,ꓰ:`E`,𑢦:`E`,𑢮:`E`,𐊆:`E`,ě:`ĕ`,Ě:`Ĕ`,ɇ:`e̸`,Ɇ:`E̸`,ҿ:`ę`,ꭼ:`ᴇ`,ə:`ǝ`,ә:`ǝ`,"∃":`Ǝ`,ⴺ:`Ǝ`,ꓱ:`Ǝ`,ɚ:en,ᴔ:`ǝo`,ꭁ:tn,ꭂ:nn,Ә:`Ə`,"𝈡":`Ɛ`,ℇ:`Ɛ`,Ԑ:`Ɛ`,Ꮛ:`Ɛ`,𖼭:`Ɛ`,𐐁:`Ɛ`,ᶟ:`ᵋ`,ᴈ:`ɜ`,з:`ɜ`,ҙ:rn,𐑂:`ɞ`,ꞝ:`ʚ`,𐐪:`ʚ`,𝐟:`f`,𝑓:`f`,𝒇:`f`,𝒻:`f`,𝓯:`f`,𝔣:`f`,𝕗:`f`,𝖋:`f`,𝖿:`f`,𝗳:`f`,𝘧:`f`,𝙛:`f`,𝚏:`f`,ꬵ:`f`,ꞙ:`f`,ſ:`f`,ẝ:`f`,ք:`f`,"𝈓":`F`,ℱ:`F`,𝐅:`F`,𝐹:`F`,𝑭:`F`,𝓕:`F`,𝔉:`F`,𝔽:`F`,𝕱:`F`,𝖥:`F`,𝗙:`F`,𝘍:`F`,𝙁:`F`,𝙵:`F`,Ꞙ:`F`,Ϝ:`F`,𝟊:`F`,ᖴ:`F`,ꓝ:`F`,𑣂:`F`,𑢢:`F`,𐊇:`F`,𐊥:`F`,𐔥:`F`,ƒ:`f̦`,Ƒ:`F̦`,ᵮ:`f̴`,"℻":`FAX`,ff:`ff`,ffi:`ffi`,ffl:`ffl`,fi:`fi`,fl:`fl`,ʩ:`fŋ`,ᖵ:`Ⅎ`,ꓞ:`Ⅎ`,"𝈰":`ꟻ`,ᖷ:`ꟻ`,g:`g`,ℊ:`g`,𝐠:`g`,𝑔:`g`,𝒈:`g`,𝓰:`g`,𝔤:`g`,𝕘:`g`,𝖌:`g`,𝗀:`g`,𝗴:`g`,𝘨:`g`,𝙜:`g`,𝚐:`g`,ɡ:`g`,ᶃ:`g`,ƍ:`g`,ց:`g`,𝐆:`G`,𝐺:`G`,𝑮:`G`,𝒢:`G`,𝓖:`G`,𝔊:`G`,𝔾:`G`,𝕲:`G`,𝖦:`G`,𝗚:`G`,𝘎:`G`,𝙂:`G`,𝙶:`G`,Ԍ:`G`,Ꮐ:`G`,Ᏻ:`G`,ꓖ:`G`,ᶢ:`ᵍ`,ɠ:`g̔`,ǧ:`ğ`,Ǧ:`Ğ`,ǵ:`ģ`,ǥ:`g̵`,Ǥ:`G̵`,Ɠ:`G'`,ԍ:`ɢ`,ꮐ:`ɢ`,ᏻ:`ɢ`,h:`h`,ℎ:`h`,𝐡:`h`,𝒉:`h`,𝒽:`h`,𝓱:`h`,𝔥:`h`,𝕙:`h`,𝖍:`h`,𝗁:`h`,𝗵:`h`,𝘩:`h`,𝙝:`h`,𝚑:`h`,һ:`h`,հ:`h`,Ꮒ:`h`,H:`H`,ℋ:`H`,ℌ:`H`,ℍ:`H`,𝐇:`H`,𝐻:`H`,𝑯:`H`,𝓗:`H`,𝕳:`H`,𝖧:`H`,𝗛:`H`,𝘏:`H`,𝙃:`H`,𝙷:`H`,Η:`H`,𝚮:`H`,𝛨:`H`,𝜢:`H`,𝝜:`H`,𝞖:`H`,Ⲏ:`H`,Н:`H`,Ꮋ:`H`,ᕼ:`H`,ꓧ:`H`,𐋏:`H`,ᵸ:`ᴴ`,ɦ:`h̔`,ꚕ:`h̔`,Ᏺ:`h̔`,Ⱨ:`H̩`,Ң:`H̩`,ħ:`h̵`,ℏ:`h̵`,ћ:`h̵`,Ħ:`H̵`,Ӊ:`H̦`,Ӈ:`H̦`,н:`ʜ`,ꮋ:`ʜ`,ң:an,ӊ:on,ӈ:sn,Ԋ:`Ƕ`,ꮀ:`ⱶ`,Ͱ:`Ⱶ`,Ꭸ:`Ⱶ`,Ꮀ:`Ⱶ`,ꚱ:`Ⱶ`,ꞕ:`ꜧ`,"˛":`i`,"⍳":`i`,i:`i`,ⅰ:`i`,ℹ:`i`,ⅈ:`i`,𝐢:`i`,𝑖:`i`,𝒊:`i`,𝒾:`i`,𝓲:`i`,𝔦:`i`,𝕚:`i`,𝖎:`i`,𝗂:`i`,𝗶:`i`,𝘪:`i`,𝙞:`i`,𝚒:`i`,ı:`i`,𝚤:`i`,ɪ:`i`,ɩ:`i`,ι:`i`,ι:`i`,ͺ:`i`,𝛊:`i`,𝜄:`i`,𝜾:`i`,𝝸:`i`,𝞲:`i`,і:`i`,ꙇ:`i`,ӏ:`i`,ꭵ:`i`,Ꭵ:`i`,𑣃:`i`,"ⓛ":`Ⓘ`,"⍸":`i̲`,ǐ:`ĭ`,Ǐ:`Ĭ`,ɨ:`i̵`,ᵻ:`i̵`,ᵼ:`i̵`,ⅱ:`ii`,ⅲ:`iii`,ij:`ij`,ⅳ:`iv`,ⅸ:`ix`,j:`j`,ⅉ:`j`,𝐣:`j`,𝑗:`j`,𝒋:`j`,𝒿:`j`,𝓳:`j`,𝔧:`j`,𝕛:`j`,𝖏:`j`,𝗃:`j`,𝗷:`j`,𝘫:`j`,𝙟:`j`,𝚓:`j`,ϳ:`j`,ј:`j`,J:`J`,𝐉:`J`,𝐽:`J`,𝑱:`J`,𝒥:`J`,𝓙:`J`,𝔍:`J`,𝕁:`J`,𝕵:`J`,𝖩:`J`,𝗝:`J`,𝘑:`J`,𝙅:`J`,𝙹:`J`,Ʝ:`J`,Ϳ:`J`,Ј:`J`,Ꭻ:`J`,ᒍ:`J`,ꓙ:`J`,ɉ:`j̵`,Ɉ:`J̵`,ᒙ:`J·`,𝚥:`ȷ`,յ:`ȷ`,ꭻ:`ᴊ`,𝐤:`k`,𝑘:`k`,𝒌:`k`,𝓀:`k`,𝓴:`k`,𝔨:`k`,𝕜:`k`,𝖐:`k`,𝗄:`k`,𝗸:`k`,𝘬:`k`,𝙠:`k`,𝚔:`k`,K:`K`,K:`K`,𝐊:`K`,𝐾:`K`,𝑲:`K`,𝒦:`K`,𝓚:`K`,𝔎:`K`,𝕂:`K`,𝕶:`K`,𝖪:`K`,𝗞:`K`,𝘒:`K`,𝙆:`K`,𝙺:`K`,Κ:`K`,𝚱:`K`,𝛫:`K`,𝜥:`K`,𝝟:`K`,𝞙:`K`,Ⲕ:`K`,К:`K`,Ꮶ:`K`,ᛕ:`K`,ꓗ:`K`,𐔘:`K`,ƙ:`k̔`,Ⱪ:`K̩`,Қ:`K̩`,"₭":`K̵`,Ꝁ:`K̵`,Ҟ:`K̵`,Ƙ:`K'`,"׀":`l`,"|":`l`,"∣":`l`,"⏽":`l`,"│":`l`,"١":`l`,"۱":`l`,"𐌠":`l`,"𞣇":`l`,"𝟏":`l`,"𝟙":`l`,"𝟣":`l`,"𝟭":`l`,"𝟷":`l`,"🯱":`l`,I:`l`,I:`l`,Ⅰ:`l`,ℐ:`l`,ℑ:`l`,𝐈:`l`,𝐼:`l`,𝑰:`l`,𝓘:`l`,𝕀:`l`,𝕴:`l`,𝖨:`l`,𝗜:`l`,𝘐:`l`,𝙄:`l`,𝙸:`l`,Ɩ:`l`,l:`l`,ⅼ:`l`,ℓ:`l`,𝐥:`l`,𝑙:`l`,𝒍:`l`,𝓁:`l`,𝓵:`l`,𝔩:`l`,𝕝:`l`,𝖑:`l`,𝗅:`l`,𝗹:`l`,𝘭:`l`,𝙡:`l`,𝚕:`l`,ǀ:`l`,Ι:`l`,𝚰:`l`,𝛪:`l`,𝜤:`l`,𝝞:`l`,𝞘:`l`,Ⲓ:`l`,І:`l`,Ӏ:`l`,ו:`l`,ן:`l`,ا:`l`,𞸀:`l`,𞺀:`l`,ﺎ:`l`,ﺍ:`l`,ߊ:`l`,ⵏ:`l`,ᛁ:`l`,ꓲ:`l`,𖼨:`l`,𐊊:`l`,𐌉:`l`,"𝈪":`L`,Ⅼ:`L`,ℒ:`L`,𝐋:`L`,𝐿:`L`,𝑳:`L`,𝓛:`L`,𝔏:`L`,𝕃:`L`,𝕷:`L`,𝖫:`L`,𝗟:`L`,𝘓:`L`,𝙇:`L`,𝙻:`L`,Ⳑ:`L`,Ꮮ:`L`,ᒪ:`L`,ꓡ:`L`,𖼖:`L`,𑢣:`L`,𑢲:`L`,𐐛:`L`,𐔦:`L`,ﴼ:`l̋`,ﴽ:`l̋`,ł:`l̸`,Ł:`L̸`,ɭ:`l̨`,Ɨ:`l̵`,ƚ:`l̵`,ɫ:`l̴`,إ:`lٕ`,ﺈ:`lٕ`,ﺇ:`lٕ`,ٳ:`lٕ`,ŀ:`l·`,Ŀ:`l·`,ᒷ:`l·`,"🄂":`l,`,"⒈":`l.`,ױ:`l'`,"⒓":`l2.`,"㏫":`l2日`,"㋋":`l2月`,"㍤":`l2点`,"⒔":`l3.`,"㏬":`l3日`,"㍥":`l3点`,"⒕":`l4.`,"㏭":`l4日`,"㍦":`l4点`,"⒖":`l5.`,"㏮":`l5日`,"㍧":`l5点`,"⒗":`l6.`,"㏯":`l6日`,"㍨":`l6点`,"⒘":`l7.`,"㏰":`l7日`,"㍩":`l7点`,"⒙":`l8.`,"㏱":`l8日`,"㍪":`l8点`,"⒚":`l9.`,"㏲":`l9日`,"㍫":`l9点`,lj:`lj`,IJ:`lJ`,Lj:`Lj`,LJ:`LJ`,"‖":`ll`,"∥":`ll`,Ⅱ:`ll`,ǁ:`ll`,װ:`ll`,"𐆙":`l̵l̵`,"⒒":`ll.`,Ⅲ:`lll`,"𐆘":`l̵l̵S̵`,"㏪":`ll日`,"㋊":`ll月`,"㍣":`ll点`,Ю:`lO`,"⒑":`lO.`,"㏩":`lO日`,"㋉":`lO月`,"㍢":`lO点`,ʪ:`ls`,"₶":`lt`,Ⅳ:`lV`,Ⅸ:`lX`,ɮ:`lȝ`,ʫ:`lz`,أ:`lٴ`,ﺄ:`lٴ`,ﺃ:`lٴ`,ٲ:`lٴ`,ٵ:`lٴ`,ﷳ:cn,ﷲ:ln,"㏠":`l日`,"㋀":`l月`,"㍙":`l点`,ⳑ:`ʟ`,ꮮ:`ʟ`,𐑃:`ʟ`,M:`M`,Ⅿ:`M`,ℳ:`M`,𝐌:`M`,𝑀:`M`,𝑴:`M`,𝓜:`M`,𝔐:`M`,𝕄:`M`,𝕸:`M`,𝖬:`M`,𝗠:`M`,𝘔:`M`,𝙈:`M`,𝙼:`M`,Μ:`M`,𝚳:`M`,𝛭:`M`,𝜧:`M`,𝝡:`M`,𝞛:`M`,Ϻ:`M`,Ⲙ:`M`,М:`M`,Ꮇ:`M`,ᗰ:`M`,ᛖ:`M`,ꓟ:`M`,𐊰:`M`,𐌑:`M`,Ӎ:`M̦`,"🝫":`MB`,"ⷨ":`ᷟ`,𝐧:`n`,𝑛:`n`,𝒏:`n`,𝓃:`n`,𝓷:`n`,𝔫:`n`,𝕟:`n`,𝖓:`n`,𝗇:`n`,𝗻:`n`,𝘯:`n`,𝙣:`n`,𝚗:`n`,ո:`n`,ռ:`n`,N:`N`,ℕ:`N`,𝐍:`N`,𝑁:`N`,𝑵:`N`,𝒩:`N`,𝓝:`N`,𝔑:`N`,𝕹:`N`,𝖭:`N`,𝗡:`N`,𝘕:`N`,𝙉:`N`,𝙽:`N`,Ν:`N`,𝚴:`N`,𝛮:`N`,𝜨:`N`,𝝢:`N`,𝞜:`N`,Ⲛ:`N`,ꓠ:`N`,𐔓:`N`,"𐆎":`N̊`,ɳ:`n̨`,ƞ:`n̩`,η:`n̩`,𝛈:`n̩`,𝜂:`n̩`,𝜼:`n̩`,𝝶:`n̩`,𝞰:`n̩`,Ɲ:`N̦`,ᵰ:`n̴`,nj:`nj`,Nj:`Nj`,NJ:`NJ`,"№":`No`,ͷ:`ᴎ`,и:`ᴎ`,𐑍:`ᴎ`,ņ:`ɲ`,"ం":`o`,"ಂ":`o`,"ം":`o`,"ං":`o`,"०":`o`,"੦":`o`,"૦":`o`,"௦":`o`,"౦":`o`,"೦":`o`,"൦":`o`,"๐":`o`,"໐":`o`,"၀":`o`,"٥":`o`,"۵":`o`,o:`o`,ℴ:`o`,𝐨:`o`,𝑜:`o`,𝒐:`o`,𝓸:`o`,𝔬:`o`,𝕠:`o`,𝖔:`o`,𝗈:`o`,𝗼:`o`,𝘰:`o`,𝙤:`o`,𝚘:`o`,ᴏ:`o`,ᴑ:`o`,ꬽ:`o`,ο:`o`,𝛐:`o`,𝜊:`o`,𝝄:`o`,𝝾:`o`,𝞸:`o`,σ:`o`,𝛔:`o`,𝜎:`o`,𝝈:`o`,𝞂:`o`,𝞼:`o`,ⲟ:`o`,о:`o`,ჿ:`o`,օ:`o`,ס:`o`,ه:`o`,𞸤:`o`,𞹤:`o`,𞺄:`o`,ﻫ:`o`,ﻬ:`o`,ﻪ:`o`,ﻩ:`o`,ھ:`o`,ﮬ:`o`,ﮭ:`o`,ﮫ:`o`,ﮪ:`o`,ہ:`o`,ﮨ:`o`,ﮩ:`o`,ﮧ:`o`,ﮦ:`o`,ە:`o`,ഠ:`o`,ဝ:`o`,𐓪:`o`,𑣈:`o`,𑣗:`o`,𐐬:`o`,"߀":`O`,"০":`O`,"୦":`O`,〇:`O`,"𑓐":`O`,"𑣠":`O`,"𝟎":`O`,"𝟘":`O`,"𝟢":`O`,"𝟬":`O`,"𝟶":`O`,"🯰":`O`,O:`O`,𝐎:`O`,𝑂:`O`,𝑶:`O`,𝒪:`O`,𝓞:`O`,𝔒:`O`,𝕆:`O`,𝕺:`O`,𝖮:`O`,𝗢:`O`,𝘖:`O`,𝙊:`O`,𝙾:`O`,Ο:`O`,𝚶:`O`,𝛰:`O`,𝜪:`O`,𝝤:`O`,𝞞:`O`,Ⲟ:`O`,О:`O`,Օ:`O`,ⵔ:`O`,ዐ:`O`,ଠ:`O`,𐓂:`O`,ꓳ:`O`,𑢵:`O`,𐊒:`O`,𐊫:`O`,𐐄:`O`,𐔖:`O`,"⁰":`º`,ᵒ:`º`,ǒ:`ŏ`,Ǒ:`Ŏ`,ۿ:`ô`,Ő:`Ö`,ø:`o̸`,ꬾ:`o̸`,Ø:`O̸`,ⵁ:`O̸`,Ǿ:un,ɵ:`o̵`,ꝋ:`o̵`,ө:`o̵`,ѳ:`o̵`,ꮎ:`o̵`,ꮻ:`o̵`,"⊖":`O̵`,"⊝":`O̵`,"⍬":`O̵`,"𝈚":`O̵`,"🜔":`O̵`,Ɵ:`O̵`,Ꝋ:`O̵`,θ:`O̵`,ϑ:`O̵`,𝛉:`O̵`,𝛝:`O̵`,𝜃:`O̵`,𝜗:`O̵`,𝜽:`O̵`,𝝑:`O̵`,𝝷:`O̵`,𝞋:`O̵`,𝞱:`O̵`,𝟅:`O̵`,Θ:`O̵`,ϴ:`O̵`,𝚯:`O̵`,𝚹:`O̵`,𝛩:`O̵`,𝛳:`O̵`,𝜣:`O̵`,𝜭:`O̵`,𝝝:`O̵`,𝝧:`O̵`,𝞗:`O̵`,𝞡:`O̵`,Ө:`O̵`,Ѳ:`O̵`,ⴱ:`O̵`,Ꮎ:`O̵`,Ꮻ:`O̵`,ꭴ:`ơ`,ﳙ:`oٰ`,"🄁":`O,`,"🄀":`O.`,ơ:`o'`,Ơ:`O'`,Ꭴ:`O'`,"%":`º/₀`,"٪":`º/₀`,"⁒":`º/₀`,"‰":`º/₀₀`,"؉":`º/₀₀`,"‱":`º/₀₀₀`,"؊":`º/₀₀₀`,œ:`oe`,Œ:`OE`,ɶ:dn,"∞":`oo`,ꝏ:`oo`,ꚙ:`oo`,Ꝏ:`OO`,Ꚙ:`OO`,ﳗ:`oج`,ﱑ:`oج`,ﳘ:`oم`,ﱒ:`oم`,ﶓ:fn,ﶔ:pn,ﱓ:`oى`,ﱔ:`oى`,ൟ:mn,တ:hn,"㍘":`O点`,ↄ:`ɔ`,ᴐ:`ɔ`,ͻ:`ɔ`,𐑋:`ɔ`,Ↄ:`Ɔ`,Ͻ:`Ɔ`,ꓛ:`Ɔ`,𐐣:`Ɔ`,ꬿ:gn,ꭢ:`ɔe`,𐐿:`ɷ`,"⍴":`p`,p:`p`,𝐩:`p`,𝑝:`p`,𝒑:`p`,𝓅:`p`,𝓹:`p`,𝔭:`p`,𝕡:`p`,𝖕:`p`,𝗉:`p`,𝗽:`p`,𝘱:`p`,𝙥:`p`,𝚙:`p`,ρ:`p`,ϱ:`p`,𝛒:`p`,𝛠:`p`,𝜌:`p`,𝜚:`p`,𝝆:`p`,𝝔:`p`,𝞀:`p`,𝞎:`p`,𝞺:`p`,𝟈:`p`,ⲣ:`p`,р:`p`,P:`P`,ℙ:`P`,𝐏:`P`,𝑃:`P`,𝑷:`P`,𝒫:`P`,𝓟:`P`,𝔓:`P`,𝕻:`P`,𝖯:`P`,𝗣:`P`,𝘗:`P`,𝙋:`P`,𝙿:`P`,Ρ:`P`,𝚸:`P`,𝛲:`P`,𝜬:`P`,𝝦:`P`,𝞠:`P`,Ⲣ:`P`,Р:`P`,Ꮲ:`P`,ᑭ:`P`,ꓑ:`P`,𐊕:`P`,ƥ:`p̔`,ᵽ:`p̵`,ᑷ:`p·`,ᒆ:`P'`,ᴩ:`ᴘ`,ꮲ:`ᴘ`,φ:`ɸ`,ϕ:`ɸ`,𝛗:`ɸ`,𝛟:`ɸ`,𝜑:`ɸ`,𝜙:`ɸ`,𝝋:`ɸ`,𝝓:`ɸ`,𝞅:`ɸ`,𝞍:`ɸ`,𝞿:`ɸ`,𝟇:`ɸ`,ⲫ:`ɸ`,ф:`ɸ`,𝐪:`q`,𝑞:`q`,𝒒:`q`,𝓆:`q`,𝓺:`q`,𝔮:`q`,𝕢:`q`,𝖖:`q`,𝗊:`q`,𝗾:`q`,𝘲:`q`,𝙦:`q`,𝚚:`q`,ԛ:`q`,գ:`q`,զ:`q`,ℚ:`Q`,𝐐:`Q`,𝑄:`Q`,𝑸:`Q`,𝒬:`Q`,𝓠:`Q`,𝔔:`Q`,𝕼:`Q`,𝖰:`Q`,𝗤:`Q`,𝘘:`Q`,𝙌:`Q`,𝚀:`Q`,ⵕ:`Q`,ʠ:`q̔`,"🜀":`QE`,ᶐ:`ɋ`,ᴋ:`ĸ`,κ:`ĸ`,ϰ:`ĸ`,𝛋:`ĸ`,𝛞:`ĸ`,𝜅:`ĸ`,𝜘:`ĸ`,𝜿:`ĸ`,𝝒:`ĸ`,𝝹:`ĸ`,𝞌:`ĸ`,𝞳:`ĸ`,𝟆:`ĸ`,ⲕ:`ĸ`,к:`ĸ`,ꮶ:`ĸ`,қ:_n,ҟ:vn,𝐫:`r`,𝑟:`r`,𝒓:`r`,𝓇:`r`,𝓻:`r`,𝔯:`r`,𝕣:`r`,𝖗:`r`,𝗋:`r`,𝗿:`r`,𝘳:`r`,𝙧:`r`,𝚛:`r`,ꭇ:`r`,ꭈ:`r`,ᴦ:`r`,ⲅ:`r`,г:`r`,ꮁ:`r`,"𝈖":`R`,ℛ:`R`,ℜ:`R`,ℝ:`R`,𝐑:`R`,𝑅:`R`,𝑹:`R`,𝓡:`R`,𝕽:`R`,𝖱:`R`,𝗥:`R`,𝘙:`R`,𝙍:`R`,𝚁:`R`,Ʀ:`R`,Ꭱ:`R`,Ꮢ:`R`,𐒴:`R`,ᖇ:`R`,ꓣ:`R`,𖼵:`R`,ɽ:`r̨`,ɼ:`r̩`,ɍ:`r̵`,ғ:`r̵`,ᵲ:`r̴`,ґ:`r'`,"𑣣":`rn`,m:`rn`,ⅿ:`rn`,𝐦:`rn`,𝑚:`rn`,𝒎:`rn`,𝓂:`rn`,𝓶:`rn`,𝔪:`rn`,𝕞:`rn`,𝖒:`rn`,𝗆:`rn`,𝗺:`rn`,𝘮:`rn`,𝙢:`rn`,𝚖:`rn`,𑜀:`rn`,"₥":`rn̸`,ɱ:yn,ᵯ:bn,"₨":`Rs`,ꭱ:`ʀ`,ꮢ:`ʀ`,я:`ᴙ`,ᵳ:xn,"℩":`ɿ`,s:`s`,𝐬:`s`,𝑠:`s`,𝒔:`s`,𝓈:`s`,𝓼:`s`,𝔰:`s`,𝕤:`s`,𝖘:`s`,𝗌:`s`,𝘀:`s`,𝘴:`s`,𝙨:`s`,𝚜:`s`,ꜱ:`s`,ƽ:`s`,ѕ:`s`,ꮪ:`s`,𑣁:`s`,𐑈:`s`,S:`S`,𝐒:`S`,𝑆:`S`,𝑺:`S`,𝒮:`S`,𝓢:`S`,𝔖:`S`,𝕊:`S`,𝕾:`S`,𝖲:`S`,𝗦:`S`,𝘚:`S`,𝙎:`S`,𝚂:`S`,Ѕ:`S`,Տ:`S`,Ꮥ:`S`,Ꮪ:`S`,ꓢ:`S`,𖼺:`S`,𐊖:`S`,𐐠:`S`,ʂ:`s̨`,ᵴ:`s̴`,ꞵ:`ß`,β:`ß`,ϐ:`ß`,𝛃:`ß`,𝛽:`ß`,𝜷:`ß`,𝝱:`ß`,𝞫:`ß`,Ᏸ:`ß`,"🝜":`sss`,st:`st`,"∫":`ʃ`,ꭍ:`ʃ`,"∑":`Ʃ`,"⅀":`Ʃ`,Σ:`Ʃ`,𝚺:`Ʃ`,𝛴:`Ʃ`,𝜮:`Ʃ`,𝝨:`Ʃ`,𝞢:`Ʃ`,ⵉ:`Ʃ`,"∬":`ʃʃ`,"∭":`ʃʃʃ`,"⨌":`ʃʃʃʃ`,𝐭:`t`,𝑡:`t`,𝒕:`t`,𝓉:`t`,𝓽:`t`,𝔱:`t`,𝕥:`t`,𝖙:`t`,𝗍:`t`,𝘁:`t`,𝘵:`t`,𝙩:`t`,𝚝:`t`,"⊤":`T`,"⟙":`T`,"🝨":`T`,T:`T`,𝐓:`T`,𝑇:`T`,𝑻:`T`,𝒯:`T`,𝓣:`T`,𝔗:`T`,𝕋:`T`,𝕿:`T`,𝖳:`T`,𝗧:`T`,𝘛:`T`,𝙏:`T`,𝚃:`T`,Τ:`T`,𝚻:`T`,𝛵:`T`,𝜯:`T`,𝝩:`T`,𝞣:`T`,Ⲧ:`T`,Т:`T`,Ꭲ:`T`,ꓔ:`T`,𖼊:`T`,𑢼:`T`,𐊗:`T`,𐊱:`T`,𐌕:`T`,ƭ:`t̔`,"⍡":`T̈`,Ⱦ:`T̸`,Ț:`Ţ`,Ʈ:`T̨`,Ҭ:`T̩`,"₮":`T⃫`,ŧ:`t̵`,Ŧ:`T̵`,ᵵ:`t̴`,Ⴀ:`Ꞇ`,Ꜩ:`T3`,ʨ:`tɕ`,"℡":`TEL`,ꝷ:`tf`,ʦ:`ts`,ʧ:`tʃ`,ꜩ:`tȝ`,τ:`ᴛ`,𝛕:`ᴛ`,𝜏:`ᴛ`,𝝉:`ᴛ`,𝞃:`ᴛ`,𝞽:`ᴛ`,т:`ᴛ`,ꭲ:`ᴛ`,ҭ:Sn,ţ:`ƫ`,ț:`ƫ`,Ꮏ:`ƫ`,𝐮:`u`,𝑢:`u`,𝒖:`u`,𝓊:`u`,𝓾:`u`,𝔲:`u`,𝕦:`u`,𝖚:`u`,𝗎:`u`,𝘂:`u`,𝘶:`u`,𝙪:`u`,𝚞:`u`,ꞟ:`u`,ᴜ:`u`,ꭎ:`u`,ꭒ:`u`,ʋ:`u`,υ:`u`,𝛖:`u`,𝜐:`u`,𝝊:`u`,𝞄:`u`,𝞾:`u`,ս:`u`,𐓶:`u`,𑣘:`u`,"∪":`U`,"⋃":`U`,𝐔:`U`,𝑈:`U`,𝑼:`U`,𝒰:`U`,𝓤:`U`,𝔘:`U`,𝕌:`U`,𝖀:`U`,𝖴:`U`,𝗨:`U`,𝘜:`U`,𝙐:`U`,𝚄:`U`,Ս:`U`,ሀ:`U`,𐓎:`U`,ᑌ:`U`,ꓴ:`U`,𖽂:`U`,𑢸:`U`,ǔ:`ŭ`,Ǔ:`Ŭ`,ᵾ:`u̵`,ꮜ:`u̵`,Ʉ:`U̵`,Ꮜ:`U̵`,ᑘ:`U·`,ᑧ:`U'`,ᵫ:`ue`,ꭣ:`uo`,ṃ:`ꭑ`,պ:`ɰ`,ሣ:`ɰ`,"℧":`Ʊ`,ᘮ:`Ʊ`,ᘴ:`Ʊ`,ᵿ:Cn,"∨":`v`,"⋁":`v`,v:`v`,ⅴ:`v`,𝐯:`v`,𝑣:`v`,𝒗:`v`,𝓋:`v`,𝓿:`v`,𝔳:`v`,𝕧:`v`,𝖛:`v`,𝗏:`v`,𝘃:`v`,𝘷:`v`,𝙫:`v`,𝚟:`v`,ᴠ:`v`,ν:`v`,𝛎:`v`,𝜈:`v`,𝝂:`v`,𝝼:`v`,𝞶:`v`,ѵ:`v`,ט:`v`,𑜆:`v`,ꮩ:`v`,𑣀:`v`,"𝈍":`V`,"٧":`V`,"۷":`V`,Ⅴ:`V`,𝐕:`V`,𝑉:`V`,𝑽:`V`,𝒱:`V`,𝓥:`V`,𝔙:`V`,𝕍:`V`,𝖁:`V`,𝖵:`V`,𝗩:`V`,𝘝:`V`,𝙑:`V`,𝚅:`V`,Ѵ:`V`,ⴸ:`V`,Ꮩ:`V`,ᐯ:`V`,ꛟ:`V`,ꓦ:`V`,𖼈:`V`,𑢠:`V`,𐔝:`V`,"𐆗":`V̵`,ᐻ:`V·`,"🝬":`VB`,ⅵ:`vi`,ⅶ:`vii`,ⅷ:wn,Ⅵ:`Vl`,Ⅶ:`Vll`,Ⅷ:Tn,"🜈":`Vᷤ`,ᴧ:`ʌ`,𐓘:`ʌ`,"٨":`Ʌ`,"۸":`Ʌ`,Λ:`Ʌ`,𝚲:`Ʌ`,𝛬:`Ʌ`,𝜦:`Ʌ`,𝝠:`Ʌ`,𝞚:`Ʌ`,Л:`Ʌ`,ⴷ:`Ʌ`,𐒰:`Ʌ`,ᐱ:`Ʌ`,ꛎ:`Ʌ`,ꓥ:`Ʌ`,𖼽:`Ʌ`,𐊍:`Ʌ`,Ӆ:En,ᐽ:Dn,ɯ:`w`,𝐰:`w`,𝑤:`w`,𝒘:`w`,𝓌:`w`,𝔀:`w`,𝔴:`w`,𝕨:`w`,𝖜:`w`,𝗐:`w`,𝘄:`w`,𝘸:`w`,𝙬:`w`,𝚠:`w`,ᴡ:`w`,ѡ:`w`,ԝ:`w`,ա:`w`,𑜊:`w`,𑜎:`w`,𑜏:`w`,ꮃ:`w`,"𑣯":`W`,"𑣦":`W`,𝐖:`W`,𝑊:`W`,𝑾:`W`,𝒲:`W`,𝓦:`W`,𝔚:`W`,𝕎:`W`,𝖂:`W`,𝖶:`W`,𝗪:`W`,𝘞:`W`,𝙒:`W`,𝚆:`W`,Ԝ:`W`,Ꮃ:`W`,Ꮤ:`W`,ꓪ:`W`,ѽ:On,𑓅:`ẇ`,"₩":`W̵`,ꝡ:`w̦`,ᴍ:`ʍ`,м:`ʍ`,ꮇ:`ʍ`,ӎ:kn,"᙮":`x`,"×":`x`,"⤫":`x`,"⤬":`x`,"⨯":`x`,x:`x`,ⅹ:`x`,𝐱:`x`,𝑥:`x`,𝒙:`x`,𝓍:`x`,𝔁:`x`,𝔵:`x`,𝕩:`x`,𝖝:`x`,𝗑:`x`,𝘅:`x`,𝘹:`x`,𝙭:`x`,𝚡:`x`,х:`x`,ᕁ:`x`,ᕽ:`x`,"ⷯ":`ͯ`,"᙭":`X`,"╳":`X`,"𐌢":`X`,"𑣬":`X`,X:`X`,Ⅹ:`X`,𝐗:`X`,𝑋:`X`,𝑿:`X`,𝒳:`X`,𝓧:`X`,𝔛:`X`,𝕏:`X`,𝖃:`X`,𝖷:`X`,𝗫:`X`,𝘟:`X`,𝙓:`X`,𝚇:`X`,Ꭓ:`X`,Χ:`X`,𝚾:`X`,𝛸:`X`,𝜲:`X`,𝝬:`X`,𝞦:`X`,Ⲭ:`X`,Х:`X`,ⵝ:`X`,ᚷ:`X`,ꓫ:`X`,𐊐:`X`,𐊴:`X`,𐌗:`X`,𐔧:`X`,"⨰":`ẋ`,Ҳ:`X̩`,"𐆖":`X̵`,ⅺ:`xi`,ⅻ:`xii`,Ⅺ:`Xl`,Ⅻ:`Xll`,ɣ:`y`,ᶌ:`y`,y:`y`,𝐲:`y`,𝑦:`y`,𝒚:`y`,𝓎:`y`,𝔂:`y`,𝔶:`y`,𝕪:`y`,𝖞:`y`,𝗒:`y`,𝘆:`y`,𝘺:`y`,𝙮:`y`,𝚢:`y`,ʏ:`y`,ỿ:`y`,ꭚ:`y`,γ:`y`,ℽ:`y`,𝛄:`y`,𝛾:`y`,𝜸:`y`,𝝲:`y`,𝞬:`y`,у:`y`,ү:`y`,ყ:`y`,𑣜:`y`,Y:`Y`,𝐘:`Y`,𝑌:`Y`,𝒀:`Y`,𝒴:`Y`,𝓨:`Y`,𝔜:`Y`,𝕐:`Y`,𝖄:`Y`,𝖸:`Y`,𝗬:`Y`,𝘠:`Y`,𝙔:`Y`,𝚈:`Y`,Υ:`Y`,ϒ:`Y`,𝚼:`Y`,𝛶:`Y`,𝜰:`Y`,𝝪:`Y`,𝞤:`Y`,Ⲩ:`Y`,У:`Y`,Ү:`Y`,Ꭹ:`Y`,Ꮍ:`Y`,ꓬ:`Y`,𖽃:`Y`,𑢤:`Y`,𐊲:`Y`,ƴ:`y̔`,ɏ:`y̵`,ұ:`y̵`,"¥":`Y̵`,Ɏ:`Y̵`,Ұ:`Y̵`,ʒ:`ȝ`,ꝫ:`ȝ`,ⳍ:`ȝ`,ӡ:`ȝ`,ჳ:`ȝ`,𝐳:`z`,𝑧:`z`,𝒛:`z`,𝓏:`z`,𝔃:`z`,𝔷:`z`,𝕫:`z`,𝖟:`z`,𝗓:`z`,𝘇:`z`,𝘻:`z`,𝙯:`z`,𝚣:`z`,ᴢ:`z`,ꮓ:`z`,𑣄:`z`,"𐋵":`Z`,"𑣥":`Z`,Z:`Z`,ℤ:`Z`,ℨ:`Z`,𝐙:`Z`,𝑍:`Z`,𝒁:`Z`,𝒵:`Z`,𝓩:`Z`,𝖅:`Z`,𝖹:`Z`,𝗭:`Z`,𝘡:`Z`,𝙕:`Z`,𝚉:`Z`,Ζ:`Z`,𝚭:`Z`,𝛧:`Z`,𝜡:`Z`,𝝛:`Z`,𝞕:`Z`,Ꮓ:`Z`,ꓜ:`Z`,𑢩:`Z`,ʐ:`z̨`,ƶ:`z̵`,Ƶ:`Z̵`,ȥ:`z̦`,Ȥ:`Z̦`,ᵶ:`z̴`,ƿ:`þ`,ϸ:`þ`,Ϸ:`Þ`,𐓄:`Þ`,"⁹":`ꝰ`,ᴤ:`ƨ`,ϩ:`ƨ`,ꙅ:`ƨ`,ь:`ƅ`,ꮟ:`ƅ`,ы:`ƅi`,ꭾ:`ɂ`,ˤ:`ˁ`,ꛍ:`ʡ`,"⊙":`ʘ`,"☉":`ʘ`,"⨀":`ʘ`,Ꙩ:`ʘ`,ⵙ:`ʘ`,𐓃:`ʘ`,ℾ:`Γ`,𝚪:`Γ`,𝛤:`Γ`,𝜞:`Γ`,𝝘:`Γ`,𝞒:`Γ`,Ⲅ:`Γ`,Г:`Γ`,Ꮁ:`Γ`,ᒥ:`Γ`,𖼇:`Γ`,Ғ:An,ᒯ:jn,Ґ:`Γ'`,"∆":`Δ`,"△":`Δ`,"🜂":`Δ`,𝚫:`Δ`,𝛥:`Δ`,𝜟:`Δ`,𝝙:`Δ`,𝞓:`Δ`,Ⲇ:`Δ`,ⵠ:`Δ`,ᐃ:`Δ`,𖼚:`Δ`,𐊅:`Δ`,𐊣:`Δ`,"⍙":`Δ̲`,ᐏ:Mn,ᐬ:Nn,𝟋:`ϝ`,𝛇:`ζ`,𝜁:`ζ`,𝜻:`ζ`,𝝵:`ζ`,𝞯:`ζ`,ⳤ:`ϗ`,𝛌:`λ`,𝜆:`λ`,𝝀:`λ`,𝝺:`λ`,𝞴:`λ`,Ⲗ:`λ`,𐓛:`λ`,µ:`μ`,𝛍:`μ`,𝜇:`μ`,𝝁:`μ`,𝝻:`μ`,𝞵:`μ`,𝛏:`ξ`,𝜉:`ξ`,𝝃:`ξ`,𝝽:`ξ`,𝞷:`ξ`,𝚵:`Ξ`,𝛯:`Ξ`,𝜩:`Ξ`,𝝣:`Ξ`,𝞝:`Ξ`,ϖ:`π`,ℼ:`π`,𝛑:`π`,𝛡:`π`,𝜋:`π`,𝜛:`π`,𝝅:`π`,𝝕:`π`,𝝿:`π`,𝞏:`π`,𝞹:`π`,𝟉:`π`,ᴨ:`π`,п:`π`,"∏":`Π`,ℿ:`Π`,𝚷:`Π`,𝛱:`Π`,𝜫:`Π`,𝝥:`Π`,𝞟:`Π`,Ⲡ:`Π`,П:`Π`,ꛛ:`Π`,𐊭:`Ϙ`,𐌒:`Ϙ`,ϛ:`ς`,𝛓:`ς`,𝜍:`ς`,𝝇:`ς`,𝞁:`ς`,𝞻:`ς`,𝚽:`Φ`,𝛷:`Φ`,𝜱:`Φ`,𝝫:`Φ`,𝞥:`Φ`,Ⲫ:`Φ`,Ф:`Φ`,Փ:`Φ`,ቀ:`Φ`,ᛰ:`Φ`,𐊳:`Φ`,ꭓ:`χ`,ꭕ:`χ`,𝛘:`χ`,𝜒:`χ`,𝝌:`χ`,𝞆:`χ`,𝟀:`χ`,ⲭ:`χ`,𝛙:`ψ`,𝜓:`ψ`,𝝍:`ψ`,𝞇:`ψ`,𝟁:`ψ`,ѱ:`ψ`,𐓹:`ψ`,𝚿:`Ψ`,𝛹:`Ψ`,𝜳:`Ψ`,𝝭:`Ψ`,𝞧:`Ψ`,Ⲯ:`Ψ`,Ѱ:`Ψ`,𐓑:`Ψ`,ᛘ:`Ψ`,𐊵:`Ψ`,"⍵":`ω`,ꞷ:`ω`,𝛚:`ω`,𝜔:`ω`,𝝎:`ω`,𝞈:`ω`,𝟂:`ω`,ⲱ:`ω`,ꙍ:`ω`,Ω:`Ω`,𝛀:`Ω`,𝛺:`Ω`,𝜴:`Ω`,𝝮:`Ω`,𝞨:`Ω`,ᘯ:`Ω`,ᘵ:`Ω`,𐊶:`Ω`,"⍹":`ω̲`,ώ:`ῴ`,"☰":`Ⲷ`,Ⳝ:`Ϭ`,җ:Pn,Җ:Fn,"𝈋":`И`,Ͷ:`И`,ꚡ:`И`,𐐥:`И`,Й:`Ѝ`,Ҋ:In,ѝ:`й`,ҋ:Ln,𐒼:`Ӄ`,ᴫ:`л`,ӆ:Rn,ꭠ:`љ`,𐓫:`ꙩ`,"ᷮ":`ⷬ`,𐓍:`Ћ`,"𝈂":`Ӿ`,"𝈢":`Ѡ`,Ꮗ:`Ѡ`,ᗯ:`Ѡ`,Ѽ:zn,ᣭ:Bn,Ꞷ:`Ꙍ`,ӌ:`ҷ`,Ӌ:`Ҷ`,Ҿ:Vn,ⲽ:`ш`,Ⲽ:`Ш`,Ꙑ:`Ъl`,"℈":`Э`,"🜁":`Ꙙ`,𖼜:`Ꙙ`,ꦒ:`ⰿ`,և:Hn,ኔ:`ձ`,ﬔ:Un,ﬕ:Wn,ﬗ:Gn,ﬓ:Kn,"∩":`Ո`,"⋂":`Ո`,"𝉅":`Ո`,በ:`Ո`,ᑎ:`Ո`,ꓵ:`Ո`,ᑚ:qn,ᑨ:`Ո'`,ﬖ:Jn,"₽":`Ք`,"˓":`ՙ`,ʿ:`ՙ`,ℵ:`א`,ﬡ:`א`,אָ:`אַ`,אּ:`אַ`,ﭏ:Yn,ℶ:`ב`,ℷ:`ג`,ℸ:`ד`,ﬢ:`ד`,ﬣ:`ה`,יּ:`יִ`,ﬤ:`כ`,ﬥ:`ל`,ﬦ:`ם`,ﬠ:`ע`,ﬧ:`ר`,שׂ:`שׁ`,שּ:`שׁ`,שּׂ:`שּׁ`,ﬨ:`ת`,ﺀ:`ء`,"۽":`ء͈`,ﺂ:`آ`,ﺁ:`آ`,ﭑ:`ٱ`,ﭐ:`ٱ`,𞸁:`ب`,𞸡:`ب`,𞹡:`ب`,𞺁:`ب`,𞺡:`ب`,ﺑ:`ب`,ﺒ:`ب`,ﺐ:`ب`,ﺏ:`ب`,ݑ:Xn,ࢶ:Zn,ࢡ:Qn,ﲠ:`بo`,ﳢ:`بo`,ﲜ:$n,ﰅ:er,ﲝ:tr,ﰆ:nr,ﷂ:rr,ﲞ:ir,ﰇ:ar,ﳒ:or,ﱋ:sr,ﶞ:cr,ﱪ:lr,ﱫ:ur,ﲟ:dr,ﳡ:fr,ﱬ:pr,ﰈ:mr,ﱭ:hr,ﱮ:gr,ﰉ:_r,ﱯ:vr,ﰊ:yr,ﭔ:`ٻ`,ﭕ:`ٻ`,ﭓ:`ٻ`,ﭒ:`ٻ`,ې:`ٻ`,ﯦ:`ٻ`,ﯧ:`ٻ`,ﯥ:`ٻ`,ﯤ:`ٻ`,ﭜ:`ڀ`,ﭝ:`ڀ`,ﭛ:`ڀ`,ﭚ:`ڀ`,ࢩ:`ݔ`,ݧ:`ݔ`,"⍥":`ة`,ö:`ة`,ﺔ:`ة`,ﺓ:`ة`,ۃ:`ة`,𞸕:`ت`,𞸵:`ت`,𞹵:`ت`,𞺕:`ت`,𞺵:`ت`,ﺗ:`ت`,ﺘ:`ت`,ﺖ:`ت`,ﺕ:`ت`,ﲥ:`تo`,ﳤ:`تo`,ﲡ:br,ﰋ:xr,ﵐ:Sr,ﶠ:Cr,ﶟ:wr,ﲢ:Tr,ﰌ:Er,ﵒ:Dr,ﵑ:Or,ﵓ:kr,ﲣ:Ar,ﰍ:jr,ﵔ:Mr,ﶢ:Nr,ﶡ:Pr,ﱰ:Fr,ﱱ:Ir,ﲤ:Lr,ﳣ:Rr,ﱲ:zr,ﰎ:Br,ﵕ:Vr,ﵖ:Hr,ﵗ:Ur,ﶤ:Wr,ﶣ:Gr,ﱳ:Kr,ﱴ:qr,ﰏ:Jr,ﱵ:Yr,ﰐ:Xr,ﭠ:`ٺ`,ﭡ:`ٺ`,ﭟ:`ٺ`,ﭞ:`ٺ`,ﭤ:`ٿ`,ﭥ:`ٿ`,ﭣ:`ٿ`,ﭢ:`ٿ`,𞸂:`ج`,𞸢:`ج`,𞹂:`ج`,𞹢:`ج`,𞺂:`ج`,𞺢:`ج`,ﺟ:`ج`,ﺠ:`ج`,ﺞ:`ج`,ﺝ:`ج`,ﲧ:Zr,ﰕ:Qr,ﶦ:$r,ﶾ:ei,ﷻ:ti,ﲨ:ni,ﰖ:ri,ﵙ:ii,ﵘ:ai,ﶧ:oi,ﶥ:si,ﴝ:ci,ﴁ:li,ﴞ:ui,ﴂ:di,ﭸ:`ڃ`,ﭹ:`ڃ`,ﭷ:`ڃ`,ﭶ:`ڃ`,ﭴ:`ڄ`,ﭵ:`ڄ`,ﭳ:`ڄ`,ﭲ:`ڄ`,ﭼ:`چ`,ﭽ:`چ`,ﭻ:`چ`,ﭺ:`چ`,ﮀ:`ڇ`,ﮁ:`ڇ`,ﭿ:`ڇ`,ﭾ:`ڇ`,𞸇:`ح`,𞸧:`ح`,𞹇:`ح`,𞹧:`ح`,𞺇:`ح`,𞺧:`ح`,ﺣ:`ح`,ﺤ:`ح`,ﺢ:`ح`,ﺡ:`ح`,څ:fi,ځ:pi,ݲ:mi,ﲩ:hi,ﰗ:gi,ﶿ:_i,ﲪ:vi,ﰘ:yi,ﵛ:bi,ﵚ:xi,ﴛ:Si,ﳿ:Ci,ﴜ:wi,ﴀ:Ti,𞸗:`خ`,𞸷:`خ`,𞹗:`خ`,𞹷:`خ`,𞺗:`خ`,𞺷:`خ`,ﺧ:`خ`,ﺨ:`خ`,ﺦ:`خ`,ﺥ:`خ`,ﲫ:Ei,ﰙ:Di,ﰚ:Oi,ﲬ:ki,ﰛ:Ai,ﴟ:ji,ﴃ:Mi,ﴠ:Ni,ﴄ:Pi,"𐋡":`د`,𞸃:`د`,𞺃:`د`,𞺣:`د`,ﺪ:`د`,ﺩ:`د`,ڈ:Fi,ﮉ:Ii,ﮈ:Li,ڎ:Ri,ﮇ:zi,ﮆ:Bi,ۮ:Vi,ࢮ:Hi,𞸘:`ذ`,𞺘:`ذ`,𞺸:`ذ`,ﺬ:`ذ`,ﺫ:`ذ`,ﱛ:Ui,ڋ:Wi,ﮅ:`ڌ`,ﮄ:`ڌ`,ﮃ:`ڍ`,ﮂ:`ڍ`,𞸓:`ر`,𞺓:`ر`,𞺳:`ر`,ﺮ:`ر`,ﺭ:`ر`,ڑ:Gi,ﮍ:Ki,ﮌ:qi,ژ:Ji,ﮋ:Yi,ﮊ:Xi,ڒ:Zi,ࢹ:Qi,ۯ:$i,ݬ:ea,ﱜ:ta,ﷶ:na,"﷼":`رىlل`,𞸆:`ز`,𞺆:`ز`,𞺦:`ز`,ﺰ:`ز`,ﺯ:`ز`,ࢲ:ra,ݱ:ia,𞸎:`س`,𞸮:`س`,𞹎:`س`,𞹮:`س`,𞺎:`س`,𞺮:`س`,ﺳ:`س`,ﺴ:`س`,ﺲ:`س`,ﺱ:`س`,ش:aa,𞸔:oa,𞸴:sa,𞹔:ca,𞹴:la,𞺔:ua,𞺴:da,ﺷ:fa,ﺸ:pa,ﺶ:ma,ﺵ:ha,ݾ:ga,ﴱ:`سo`,ﳨ:`سo`,ﴲ:_a,ﳪ:va,ﲭ:ya,ﴴ:ba,ﰜ:xa,ﴭ:Sa,ﴷ:Ca,ﴥ:wa,ﴉ:Ta,ﵝ:Ea,ﵞ:Da,ﵩ:Oa,ﲮ:ka,ﴵ:Aa,ﰝ:ja,ﴮ:Ma,ﴸ:Na,ﴦ:Pa,ﴊ:Fa,ﵜ:Ia,ﵨ:La,ﵧ:Ra,ﶪ:za,ﲯ:Ba,ﴶ:Va,ﰞ:Ha,ﴯ:Ua,ﴹ:Wa,ﴧ:Ga,ﴋ:Ka,ﶨ:qa,ﷆ:Ja,ﴪ:Ya,ﴎ:Xa,ﴩ:Za,ﴍ:Qa,ﲰ:$a,ﳧ:eo,ﰟ:to,ﴰ:no,ﳩ:ro,ﴨ:io,ﴌ:ao,ﵡ:oo,ﵠ:so,ﵟ:co,ﵫ:lo,ﵪ:uo,ﵣ:fo,ﵢ:po,ﵭ:mo,ﵬ:ho,ﴗ:go,ﳻ:_o,ﴘ:vo,ﳼ:yo,ﴙ:bo,ﳽ:xo,ﴚ:So,ﳾ:Co,"𐋲":`ص`,𞸑:`ص`,𞸱:`ص`,𞹑:`ص`,𞹱:`ص`,𞺑:`ص`,𞺱:`ص`,ﺻ:`ص`,ﺼ:`ص`,ﺺ:`ص`,ﺹ:`ص`,ڞ:wo,ࢯ:To,ﲱ:Eo,ﰠ:Do,ﵥ:Oo,ﵤ:ko,ﶩ:Ao,ﲲ:jo,ﴫ:Mo,ﴏ:No,ﷵ:Po,ﷹ:Fo,ﷰ:Io,ﷺ:Lo,ﲳ:Ro,ﰡ:zo,ﷅ:Bo,ﵦ:Vo,ﴡ:Ho,ﴅ:Uo,ﴢ:Wo,ﴆ:Go,𞸙:`ض`,𞸹:`ض`,𞹙:`ض`,𞹹:`ض`,𞺙:`ض`,𞺹:`ض`,ﺿ:`ض`,ﻀ:`ض`,ﺾ:`ض`,ﺽ:`ض`,ﲴ:Ko,ﰢ:qo,ﲵ:Jo,ﰣ:Yo,ﵮ:Xo,ﶫ:Zo,ﲶ:Qo,ﰤ:$o,ﵰ:es,ﵯ:ts,ﴬ:ns,ﴐ:rs,ﲷ:is,ﰥ:as,ﴣ:os,ﴇ:ss,ﴤ:cs,ﴈ:ls,"𐋨":`ط`,𞸈:`ط`,𞹨:`ط`,𞺈:`ط`,𞺨:`ط`,ﻃ:`ط`,ﻄ:`ط`,ﻂ:`ط`,ﻁ:`ط`,ڟ:us,ﲸ:ds,ﰦ:fs,ﴳ:ps,ﴺ:ms,ﰧ:hs,ﵲ:gs,ﵱ:_s,ﵳ:vs,ﵴ:ys,ﴑ:bs,ﳵ:xs,ﴒ:Ss,ﳶ:Cs,𞸚:`ظ`,𞹺:`ظ`,𞺚:`ظ`,𞺺:`ظ`,ﻇ:`ظ`,ﻈ:`ظ`,ﻆ:`ظ`,ﻅ:`ظ`,ﲹ:ws,ﴻ:Ts,ﰨ:Es,"؏":`ع`,𞸏:`ع`,𞸯:`ع`,𞹏:`ع`,𞹯:`ع`,𞺏:`ع`,𞺯:`ع`,ﻋ:`ع`,ﻌ:`ع`,ﻊ:`ع`,ﻉ:`ع`,ﲺ:Ds,ﰩ:Os,ﷄ:ks,ﵵ:As,ﷷ:js,ﲻ:Ms,ﰪ:Ns,ﵷ:Ps,ﵶ:Fs,ﵸ:Is,ﶶ:Ls,ﴓ:Rs,ﳷ:zs,ﴔ:Bs,ﳸ:Vs,𞸛:`غ`,𞸻:`غ`,𞹛:`غ`,𞹻:`غ`,𞺛:`غ`,𞺻:`غ`,ﻏ:`غ`,ﻐ:`غ`,ﻎ:`غ`,ﻍ:`غ`,ﲼ:Hs,ﰫ:Us,ﲽ:Ws,ﰬ:Gs,ﵹ:Ks,ﵻ:qs,ﵺ:Js,ﴕ:Ys,ﳹ:Xs,ﴖ:Zs,ﳺ:Qs,𞸐:`ف`,𞸰:`ف`,𞹰:`ف`,𞺐:`ف`,𞺰:`ف`,ﻓ:`ف`,ﻔ:`ف`,ﻒ:`ف`,ﻑ:`ف`,ڧ:`ف`,ﲾ:$s,ﰭ:ec,ﲿ:tc,ﰮ:nc,ﳀ:rc,ﰯ:ic,ﵽ:ac,ﵼ:oc,ﳁ:sc,ﰰ:cc,ﷁ:lc,ﱼ:uc,ﰱ:dc,ﱽ:fc,ﰲ:pc,𞸞:`ڡ`,𞹾:`ڡ`,ࢻ:`ڡ`,ٯ:`ڡ`,𞸟:`ڡ`,𞹟:`ڡ`,ࢼ:`ڡ`,ڤ:mc,ﭬ:hc,ﭭ:gc,ﭫ:_c,ﭪ:vc,ڨ:yc,ࢤ:bc,ﭰ:`ڦ`,ﭱ:`ڦ`,ﭯ:`ڦ`,ﭮ:`ڦ`,𞸒:`ق`,𞸲:`ق`,𞹒:`ق`,𞹲:`ق`,𞺒:`ق`,𞺲:`ق`,ﻗ:`ق`,ﻘ:`ق`,ﻖ:`ق`,ﻕ:`ق`,ﳂ:xc,ﰳ:Sc,ﷱ:Cc,ﳃ:wc,ﰴ:Tc,ﶴ:Ec,ﵾ:Dc,ﵿ:Oc,ﶲ:kc,ﱾ:Ac,ﰵ:jc,ﱿ:Mc,ﰶ:Nc,𞸊:`ك`,𞸪:`ك`,𞹪:`ك`,ﻛ:`ك`,ﻜ:`ك`,ﻚ:`ك`,ﻙ:`ك`,ک:`ك`,ﮐ:`ك`,ﮑ:`ك`,ﮏ:`ك`,ﮎ:`ك`,ڪ:`ك`,ڭ:Pc,ﯕ:Fc,ﯖ:Ic,ﯔ:Lc,ﯓ:Rc,ݣ:zc,ﲀ:`كl`,ﰷ:`كl`,ﳄ:Bc,ﰸ:Vc,ﳅ:Hc,ﰹ:Uc,ﳆ:Wc,ﰺ:Gc,ﳇ:Kc,ﳫ:qc,ﲁ:Jc,ﰻ:Yc,ﳈ:Xc,ﳬ:Zc,ﲂ:Qc,ﰼ:$c,ﷃ:el,ﶻ:tl,ﶷ:nl,ﲃ:rl,ﰽ:il,ﲄ:al,ﰾ:ol,ݢ:`ڬ`,ﮔ:`گ`,ﮕ:`گ`,ﮓ:`گ`,ﮒ:`گ`,ࢰ:`گ`,ڴ:sl,ﮜ:`ڱ`,ﮝ:`ڱ`,ﮛ:`ڱ`,ﮚ:`ڱ`,ﮘ:`ڳ`,ﮙ:`ڳ`,ﮗ:`ڳ`,ﮖ:`ڳ`,𞸋:`ل`,𞸫:`ل`,𞹋:`ل`,𞺋:`ل`,𞺫:`ل`,ﻟ:`ل`,ﻠ:`ل`,ﻞ:`ل`,ﻝ:`ل`,ڷ:cl,ڵ:ll,ﻼ:`لl`,ﻻ:`لl`,ﻺ:ul,ﻹ:dl,ﻸ:fl,ﻷ:pl,ﳍ:`لo`,ﻶ:ml,ﻵ:hl,ﳉ:gl,ﰿ:_l,ﶃ:vl,ﶄ:yl,ﶺ:bl,ﶼ:xl,ﶬ:Sl,ﳊ:Cl,ﱀ:wl,ﶵ:Tl,ﶀ:El,ﶂ:Dl,ﶁ:Ol,ﳋ:kl,ﱁ:Al,ﶆ:jl,ﶅ:Ml,ﳌ:Nl,ﳭ:Pl,ﲅ:Fl,ﱂ:Il,ﶈ:Ll,ﶇ:Rl,ﶭ:zl,ﲆ:Bl,ﱃ:Vl,ﲇ:Hl,ﱄ:Ul,𞸌:`م`,𞸬:`م`,𞹬:`م`,𞺌:`م`,𞺬:`م`,ﻣ:`م`,ﻤ:`م`,ﻢ:`م`,ﻡ:`م`,ࢧ:Wl,"۾":`م͈`,ﲈ:`مl`,ﳎ:Gl,ﱅ:Kl,ﶌ:ql,ﶒ:Jl,ﶍ:Yl,ﷀ:Xl,ﳏ:Zl,ﱆ:Ql,ﶉ:$l,ﶊ:eu,ﷴ:tu,ﶋ:nu,ﳐ:ru,ﱇ:iu,ﶎ:au,ﶏ:ou,ﶹ:su,ﳑ:cu,ﲉ:lu,ﱈ:uu,ﶱ:du,ﱉ:fu,ﱊ:pu,𞸍:`ن`,𞸭:`ن`,𞹍:`ن`,𞹭:`ن`,𞺍:`ن`,𞺭:`ن`,ﻧ:`ن`,ﻨ:`ن`,ﻦ:`ن`,ﻥ:`ن`,ݨ:mu,ݩ:hu,ﳖ:`نo`,ﳯ:`نo`,ﶸ:gu,ﶽ:_u,ﶘ:vu,ﶗ:yu,ﶙ:bu,ﷇ:xu,ﳓ:Su,ﱌ:Cu,ﶕ:wu,ﶖ:Tu,ﶳ:Eu,ﳔ:Du,ﱍ:Ou,ﲊ:ku,ﲋ:Au,ﳕ:ju,ﳮ:Mu,ﲌ:Nu,ﱎ:Pu,ﶛ:Fu,ﶚ:Iu,ﲍ:Lu,ﲎ:Ru,ﱏ:zu,ﲏ:Bu,ﱐ:Vu,ۂ:`ۀ`,ﮥ:`ۀ`,ﮤ:`ۀ`,"𐋤":`و`,𞸅:`و`,𞺅:`و`,𞺥:`و`,ﻮ:`و`,ﻭ:`و`,ࢱ:`و`,ۋ:Hu,ﯟ:Uu,ﯞ:Wu,ۇ:Gu,ﯘ:Ku,ﯗ:qu,ۆ:Ju,ﯚ:Yu,ﯙ:Xu,ۉ:Zu,ﯣ:Qu,ﯢ:$u,ۈ:ed,ﯜ:td,ﯛ:nd,ؤ:rd,ﺆ:id,ﺅ:ad,ٶ:od,ٷ:sd,ﯝ:cd,ﷸ:ld,ﯡ:`ۅ`,ﯠ:`ۅ`,ٮ:`ى`,𞸜:`ى`,𞹼:`ى`,ں:`ى`,𞸝:`ى`,𞹝:`ى`,ﮟ:`ى`,ﮞ:`ى`,ࢽ:`ى`,ﯨ:`ى`,ﯩ:`ى`,ﻰ:`ى`,ﻯ:`ى`,ي:`ى`,𞸉:`ى`,𞸩:`ى`,𞹉:`ى`,𞹩:`ى`,𞺉:`ى`,𞺩:`ى`,ﻳ:`ى`,ﻴ:`ى`,ﻲ:`ى`,ﻱ:`ى`,ی:`ى`,ﯾ:`ى`,ﯿ:`ى`,ﯽ:`ى`,ﯼ:`ى`,ے:`ى`,ﮯ:`ى`,ﮮ:`ى`,ٹ:ud,ﭨ:dd,ﭩ:fd,ﭧ:pd,ﭦ:md,ڻ:hd,ﮢ:gd,ﮣ:_d,ﮡ:vd,ﮠ:yd,پ:bd,ﭘ:xd,ﭙ:Sd,ﭗ:Cd,ﭖ:wd,ث:Td,𞸖:Ed,𞸶:Dd,𞹶:Od,𞺖:kd,𞺶:Ad,ﺛ:jd,ﺜ:Md,ﺚ:Nd,ﺙ:Pd,ڽ:Fd,ۑ:Id,ؿ:Ld,ࢷ:Rd,ݖ:zd,ێ:Bd,ࢺ:Vd,ؽ:Hd,ࢨ:Ud,ﲐ:Wd,ﱝ:Gd,ﳞ:`ىo`,ﳱ:`ىo`,ﳦ:Kd,ئ:qd,ﺋ:Jd,ﺌ:Yd,ﺊ:Xd,ﺉ:Zd,ٸ:Qd,ﯫ:$d,ﯪ:ef,ﲛ:tf,ﳠ:nf,ﯭ:rf,ﯬ:af,ﯸ:of,ﯷ:sf,ﯶ:cf,ﲗ:lf,ﰀ:uf,ﲘ:df,ﰁ:ff,ﲙ:pf,ﱤ:mf,ﱥ:hf,ﲚ:gf,ﳟ:_f,ﱦ:vf,ﰂ:yf,ﱧ:bf,ﯯ:xf,ﯮ:Sf,ﯱ:Cf,ﯰ:wf,ﯳ:Tf,ﯲ:Ef,ﯵ:Df,ﯴ:Of,ﯻ:kf,ﯺ:Af,ﱨ:jf,ﯹ:Mf,ﰃ:Nf,ﱩ:Pf,ﰄ:Ff,ﳚ:If,ﱕ:Lf,ﰑ:Rf,ﶯ:zf,ﳛ:Bf,ﱖ:Vf,ﶮ:Hf,ﳜ:Uf,ﱗ:Wf,ﲑ:Gf,ﱶ:Kf,ﲒ:qf,ﱷ:Jf,ﳝ:Yf,ﳰ:Xf,ﲓ:Zf,ﱘ:Qf,ﲦ:$f,ﳥ:ep,ﱸ:tp,ﰒ:np,ﶝ:rp,ﶜ:ip,ﶰ:ap,ﲔ:op,ﱹ:sp,ﲕ:cp,ﱙ:lp,ﲖ:up,ﱚ:dp,ﱺ:fp,ﰓ:pp,ﱻ:mp,ﰔ:hp,ﮱ:`ۓ`,ﮰ:`ۓ`,𐊸:`ⵀ`,"⁞":`ⵂ`,"⸽":`ⵂ`,"⦙":`ⵂ`,"︙":`ⵗ`,"⁝":`ⵗ`,"⋮":`ⵗ`,Մ:`ሆ`,Ռ:`ቡ`,Ի:`ኮ`,Պ:`ጣ`,आ:gp,ऒ:_p,ओ:vp,औ:yp,ऄ:bp,ऑ:xp,ऍ:Sp,ऎ:Cp,ऐ:wp,ई:Tp,ઽ:`ऽ`,𑇜:`ꣻ`,"𑇋":`ऺ`,"ુ":`ु`,"ૂ":`ू`,"ੋ":`ॆ`,"੍":`्`,"્":`्`,আ:Ep,ৠ:Dp,ৡ:Op,𑒒:`ঘ`,𑒔:`চ`,𑒖:`জ`,𑒘:`ঞ`,𑒙:`ট`,𑒛:`ড`,𑒪:`ণ`,𑒞:`ত`,𑒟:`থ`,𑒠:`দ`,𑒡:`ধ`,𑒢:`ন`,𑒣:`প`,𑒩:`ব`,𑒧:`ম`,𑒨:`য`,𑒫:`র`,𑒝:`ল`,𑒭:`ষ`,𑒮:`স`,𑓄:`ঽ`,"𑒰":`া`,"𑒱":`ি`,"𑒹":`ে`,"𑒼":`ো`,"𑒾":`ৌ`,"𑓂":`্`,"𑒽":`ৗ`,ਉ:kp,ਊ:Ap,ਆ:jp,ਐ:Mp,ਔ:Np,ਇ:Pp,ਈ:Fp,ਏ:Ip,આ:Lp,ઑ:Rp,ઓ:zp,ઔ:Bp,ઍ:Vp,એ:Hp,ઐ:Up,ଆ:Wp,"௮":`அ`,ர:`ஈ`,"ா":`ஈ`,"௫":`ஈு`,"௨":`உ`,ഉ:`உ`,ஊ:Gp,ഊ:Kp,"௭":`எ`,"௷":`எவ`,ஜ:`ஐ`,ജ:`ஐ`,"௧":`க`,"௪":`ச`,"௬":`சு`,"௲":`சூ`,ഺ:qp,ണ:`ண`,"௺":`நீ`,"௴":`மீ`,"௰":`ய`,ഴ:`ழ`,"ௗ":`ள`,"ை":`ன`,ശ:`ஶ`,"௸":`ஷ`,"ി":`ி`,"ീ":`ி`,"ொ":`ெஈ`,"ௌ":`ெள`,"ோ":`ேஈ`,ಅ:`అ`,ಆ:`ఆ`,ಇ:`ఇ`,ౠ:Jp,ౡ:Yp,ಒ:`ఒ`,ఔ:Xp,ಔ:Zp,ఓ:Qp,ಓ:$p,ಜ:`జ`,ಞ:`ఞ`,ఢ:em,ಣ:`ణ`,థ:tm,భ:nm,ಯ:`య`,ఠ:rm,ಱ:`ఱ`,ಲ:`ల`,ష:im,హ:am,మ:om,"ూ":`ుా`,"ౄ":`ృా`,ೡ:sm,ഈ:cm,ഐ:lm,ഓ:um,ഔ:dm,ൡ:`ഞ`,"൫":`ദ്ര`,"൹":`നു`,ഌ:fm,ങ:pm,"൯":`ന്`,ൻ:mm,"൬":`ന്ന`,"൚":`ന്മ`,റ:`ര`,"൪":`ര്`,ർ:hm,"൮":`വ്ര`,"൶":`ഹ്മ`,"ൂ":`ു`,"ൃ":`ു`,"ൈ":`െെ`,"෪":`ජ`,"෫":`ද`,𑐓:gm,𑐙:_m,𑐤:vm,𑐪:ym,𑐭:bm,𑐯:xm,𑗘:Sm,𑗙:Cm,𑗚:wm,𑗛:Tm,"𑗜":`𑖲`,"𑗝":`𑖳`,ฃ:`ข`,ด:`ค`,ต:`ค`,ม:`ฆ`,ຈ:`จ`,ซ:`ช`,ฏ:`ฎ`,ท:`ฑ`,ບ:`บ`,ປ:`ป`,ຝ:`ฝ`,ພ:`พ`,ຟ:`ฟ`,ฦ:`ภ`,ຍ:`ย`,"។":`ฯ`,ๅ:`า`,ำ:Em,"ិ":`ิ`,"ី":`ี`,"ឹ":`ึ`,"ឺ":`ื`,"ຸ":`ุ`,"ູ":`ู`,แ:Dm,ໜ:Om,ໝ:km,ຳ:Am,"༂":`འུྂཿ`,"༃":`འུྂ༔`,ཪ:`ར`,ༀ:jm,"ཷ":`ྲཱྀ`,"ཹ":`ླཱྀ`,"𑲲":`𑲪`,ႁ:Mm,က:Nm,ၰ:Pm,ၦ:Fm,ဟ:Im,ၯ:Lm,ၾ:Rm,ဩ:zm,ဪ:Bm,"႞":`ႃ̊`,ឣ:`អ`,"᧐":`ᦞ`,"᧑":`ᦱ`,"᪀":`ᩅ`,"᪐":`ᩅ`,"꩓":`ꨁ`,"꩖":`ꨣ`,"᭒":`ᬍ`,"᭓":`ᬑ`,"᭘":`ᬨ`,ꦣ:`ꦝ`,ᢖ:`ᡜ`,ᡕ:`ᠵ`,ῶ:`Ꮿ`,ᐍ:Vm,ᐫ:Hm,ᐑ:Um,ᐓ:Wm,ᐭ:Gm,ᐕ:Km,ᐘ:qm,ᐮ:Jm,ᐚ:Ym,ᣝ:Xm,ᓑ:`ᐡ`,ᕀ:`ᐩ`,ᐿ:Zm,ᑃ:Qm,"⍩":`ᐵ`,ᑇ:$m,ᑜ:eh,"⸧":`ᑐ`,"⊃":`ᑐ`,ᑞ:th,ᑩ:nh,"⟉":`ᑐ/`,"⫗":`ᑐᑕ`,ᑠ:rh,"⸦":`ᑕ`,"⊂":`ᑕ`,ᑢ:ih,ᑪ:ah,ᑤ:oh,ᑵ:sh,ᒅ:ch,ᑹ:lh,ᑽ:uh,ᘃ:`ᒉ`,ᒓ:dh,ᒕ:fh,ᒗ:ph,ᒛ:mh,ᘂ:`ᒐ`,ᒝ:hh,ᒟ:gh,ᒭ:_h,ᒱ:vh,ᒳ:yh,ᒵ:bh,ᒹ:xh,ᓊ:Sh,ᣇ:Ch,ᣉ:wh,ᣋ:Th,ᣍ:Eh,ᓌ:Dh,ᓎ:Oh,ᘄ:`ᓓ`,ᓝ:kh,ᓟ:Ah,ᓡ:jh,ᓣ:Mh,ᓥ:Nh,ᘇ:`ᓚ`,ᓧ:Ph,ᓩ:Fh,ᓷ:Ih,ᓹ:Lh,ᓻ:Rh,ᓽ:zh,ᓿ:Bh,ᔁ:Vh,ᔃ:Hh,ᔌ:Uh,ᔎ:Wh,ᔍ:Gh,ᔏ:Kh,ᔘ:qh,ᔚ:Jh,ᔜ:Yh,ᔞ:Xh,ᔠ:Zh,ᔢ:Qh,ᔤ:$h,ᔲ:eg,ᔴ:tg,ᔶ:ng,ᔸ:rg,ᔺ:ig,ᔼ:ag,ᘢ:`ᕃ`,ᣠ:og,ᘣ:`ᕆ`,ᘤ:`ᕊ`,ᕏ:sg,ᖃ:cg,ᖄ:lg,ᖁ:ug,ᕿ:dg,ᙯ:fg,ᕾ:pg,ᖀ:mg,ᖂ:hg,ᖅ:gg,ᕜ:_g,ᣣ:vg,ᣤ:yg,ᕩ:bg,ᣥ:xg,ᣨ:Sg,ᖑ:Cg,ᙰ:wg,ᖎ:Tg,ᖏ:Eg,ᖐ:Dg,ᖒ:Og,ᖓ:kg,ᖔ:Ag,ᙳ:jg,ᙱ:Mg,ᙲ:Ng,ᙴ:Pg,ᙵ:Fg,ᙶ:Ig,ᣪ:Lg,ᙷ:Rg,ᙸ:zg,ᙹ:Bg,ᙺ:Vg,ᙻ:Hg,ᙼ:Ug,ᙽ:Wg,"⪫":`ᗒ`,"⪪":`ᗕ`,ꓷ:`ᗡ`,ᣰ:Gg,ᣲ:Kg,ᶻ:`ᙆ`,ꓭ:`ᙠ`,ᶺ:`ᣔ`,ᴾ:`ᣖ`,ᣜ:qg,ˡ:`ᣳ`,ʳ:`ᣴ`,ˢ:`ᣵ`,ᣛ:`ᣵ`,ꚰ:`ᚹ`,ᛡ:`ᚼ`,"⍿":`ᚽ`,ᛂ:`ᚽ`,"𝈿":`ᛋ`,"↑":`ᛏ`,"↿":`ᛐ`,"⥮":`ᛐ⇂`,"⥣":`ᛐᛚ`,ⵣ:`ᛯ`,"↾":`ᛚ`,"⨡":`ᛚ`,"⋄":`ᛜ`,"◇":`ᛜ`,"◊":`ᛜ`,"♢":`ᛜ`,"🝔":`ᛜ`,𑢷:`ᛜ`,𐊔:`ᛜ`,"⍚":`ᛜ̲`,"⋈":`ᛞ`,"⨝":`ᛞ`,𐓐:`ᛦ`,"↕":`ᛨ`,"𐳼":`𐲂`,"𐳺":`𐲥`,ㄱ:`ᄀ`,ᆨ:`ᄀ`,ᄁ:Jg,ㄲ:Yg,ᆩ:Xg,ᇺ:Zg,ᅚ:Qg,ᇃ:$g,ᇻ:e_,ᆪ:t_,ㄳ:n_,ᇄ:r_,ᇼ:i_,ᇽ:a_,ᇾ:o_,ㄴ:`ᄂ`,ᆫ:`ᄂ`,ᄓ:s_,ᇅ:c_,ᄔ:l_,ㅥ:u_,ᇿ:d_,ᄕ:f_,ㅦ:p_,ᇆ:m_,ퟋ:h_,ᄖ:g_,ᅛ:__,ᇇ:v_,ㅧ:y_,ᅜ:b_,ᆬ:x_,ㄵ:S_,ퟌ:C_,ᇉ:w_,ᅝ:T_,ᆭ:E_,ㄶ:D_,ᇈ:O_,ㅨ:k_,ㄷ:`ᄃ`,ᆮ:`ᄃ`,ᄗ:A_,ᇊ:j_,ᄄ:M_,ㄸ:N_,ퟍ:P_,ퟎ:F_,ᅞ:I_,ᇋ:L_,ꥠ:R_,ꥡ:z_,ퟏ:B_,ꥢ:V_,ퟐ:H_,ퟑ:U_,ꥣ:W_,ퟒ:G_,ퟓ:K_,ퟔ:q_,ㄹ:`ᄅ`,ᆯ:`ᄅ`,ꥤ:J_,ᆰ:Y_,ㄺ:X_,ꥥ:Z_,ퟕ:Q_,ᇌ:$_,ㅩ:ev,ퟖ:tv,ᄘ:nv,ᇍ:rv,ꥦ:iv,ᇎ:av,ㅪ:ov,ꥧ:sv,ᇏ:cv,ᄙ:lv,ᇐ:uv,ퟗ:dv,ꥨ:fv,ᆱ:pv,ㄻ:mv,ᇑ:hv,ᇒ:gv,ퟘ:_v,ꥩ:vv,ᆲ:yv,ㄼ:bv,ퟙ:xv,ꥪ:Sv,ᇓ:Cv,ㅫ:wv,ꥫ:Tv,ᇕ:Ev,ퟚ:Dv,ᇔ:Ov,ꥬ:kv,ᆳ:Av,ㄽ:jv,ᇖ:Mv,ᄛ:Nv,ퟝ:Pv,ꥭ:Fv,ꥮ:Iv,ᇘ:Lv,ᆴ:Rv,ㄾ:zv,ᆵ:Bv,ㄿ:Vv,ᄚ:Hv,ㅀ:Uv,ᄻ:Wv,ᆶ:Gv,ퟲ:Kv,ᇗ:qv,ㅬ:Jv,ퟛ:Yv,ᇙ:Xv,ㅭ:Zv,ퟜ:Qv,ㅁ:`ᄆ`,ᆷ:`ᄆ`,ꥯ:$v,ᇚ:ey,ퟞ:ty,ퟟ:ny,ꥰ:ry,ᇛ:iy,ퟠ:ay,ᄜ:oy,ㅮ:sy,ᇜ:cy,ퟡ:ly,ꥱ:uy,ᇝ:dy,ㅯ:fy,ᇞ:py,ᄝ:my,ㅱ:hy,ᇢ:gy,ퟢ:_y,ᇠ:vy,ᇡ:yy,ᇟ:by,ㅰ:xy,ㅂ:`ᄇ`,ᆸ:`ᄇ`,ᄞ:Sy,ㅲ:Cy,ᄟ:wy,ᄠ:Ty,ㅳ:Ey,ퟣ:Dy,ᇣ:Oy,ퟤ:ky,ퟥ:Ay,ᄈ:jy,ㅃ:My,ퟦ:Ny,ᄬ:Py,ㅹ:Fy,ᄡ:Iy,ㅄ:Ly,ᆹ:Ry,ᄢ:zy,ㅴ:By,ᄣ:Vy,ㅵ:Hy,ퟧ:Uy,ᄤ:Wy,ᄥ:Gy,ᄦ:Ky,ꥲ:qy,ᄫ:Jy,ㅸ:Yy,ᇦ:Xy,ᄧ:Zy,ㅶ:Qy,ퟨ:$y,ᄨ:eb,ퟩ:tb,ꥳ:nb,ᄩ:rb,ㅷ:ib,ᄪ:ab,ᇤ:ob,ꥴ:sb,ᇥ:cb,ㅅ:`ᄉ`,ᆺ:`ᄉ`,ᄭ:lb,ㅺ:ub,ᇧ:db,ᄮ:fb,ㅻ:pb,ᄯ:mb,ㅼ:hb,ᇨ:gb,ᄰ:_b,ᇩ:vb,ᄱ:yb,ퟪ:bb,ᄲ:xb,ㅽ:Sb,ᇪ:Cb,ᄳ:wb,ퟫ:Tb,ᄊ:Eb,ㅆ:Db,ᆻ:Ob,ퟬ:kb,ퟭ:Ab,ꥵ:jb,ᄴ:Mb,ᄵ:Nb,ᄶ:Pb,ㅾ:Fb,ퟯ:Ib,ᄷ:Lb,ퟰ:Rb,ᄸ:zb,ᄹ:Bb,ퟱ:Vb,ᄺ:Hb,ퟮ:Ub,ㅇ:`ᄋ`,ᆼ:`ᄋ`,ᅁ:Wb,ᇬ:Gb,ᇭ:Kb,ᅂ:qb,ꥶ:Jb,ᅃ:Yb,ᅄ:Xb,ᅅ:Zb,ᇱ:Qb,ㆂ:$b,ᅇ:ex,ㆀ:tx,ᇮ:nx,ᅈ:rx,ᅉ:ix,ᇯ:ax,ᅊ:ox,ᅋ:sx,ꥷ:cx,ᅆ:lx,ᇲ:ux,ㆃ:dx,ㅈ:`ᄌ`,ᆽ:`ᄌ`,ퟷ:fx,ퟸ:px,ᅍ:mx,ᄍ:hx,ㅉ:gx,ퟹ:_x,ꥸ:vx,ㅊ:`ᄎ`,ᆾ:`ᄎ`,ᅒ:yx,ᅓ:bx,ㅋ:`ᄏ`,ᆿ:`ᄏ`,ㅌ:`ᄐ`,ᇀ:`ᄐ`,ꥹ:xx,ㅍ:`ᄑ`,ᇁ:`ᄑ`,ᅖ:Sx,ᇳ:Cx,ퟺ:wx,ᅗ:Tx,ㆄ:Ex,ᇴ:Dx,ퟻ:Ox,ꥺ:kx,ㅎ:`ᄒ`,ᇂ:`ᄒ`,ᇵ:Ax,ᇶ:jx,ᇷ:Mx,ᇸ:Nx,ꥻ:Px,ᅘ:Fx,ㆅ:Ix,ᄽ:Lx,ᄿ:Rx,ㅿ:`ᅀ`,ᇫ:`ᅀ`,ퟳ:zx,ퟴ:Bx,ㆁ:`ᅌ`,ᇰ:`ᅌ`,ퟵ:Vx,ퟶ:Hx,ᅏ:Ux,ᅑ:Wx,ㆆ:`ᅙ`,ᇹ:`ᅙ`,ꥼ:Gx,ㅤ:`ᅠ`,ㅏ:`ᅡ`,ᆣ:Kx,ᅶ:qx,ᅷ:Jx,ᅢ:Yx,ㅐ:Xx,ㅑ:`ᅣ`,ᅸ:Zx,ᅹ:Qx,ᆤ:$x,ᅤ:eS,ㅒ:tS,ㅓ:`ᅥ`,ᅼ:nS,ᅺ:rS,ᅻ:iS,ᅦ:aS,ㅔ:oS,ㅕ:`ᅧ`,ᆥ:sS,ᅽ:cS,ᅾ:lS,ᅨ:uS,ㅖ:dS,ㅗ:`ᅩ`,ᅪ:fS,ㅘ:pS,ᅫ:mS,ㅙ:hS,ᆦ:gS,ᆧ:_S,ᅿ:vS,ᆀ:yS,ힰ:bS,ᆁ:xS,ᆂ:SS,ힱ:CS,ᆃ:wS,ᅬ:TS,ㅚ:ES,ㅛ:`ᅭ`,ힲ:DS,ힳ:OS,ᆄ:kS,ㆇ:AS,ᆆ:jS,ᆅ:MS,ㆈ:NS,ힴ:PS,ᆇ:FS,ᆈ:IS,ㆉ:LS,ㅜ:`ᅮ`,ᆉ:RS,ᆊ:zS,ᅯ:BS,ㅝ:VS,ᆋ:HS,ᅰ:US,ㅞ:WS,ힵ:GS,ᆌ:KS,ᆍ:qS,ᅱ:JS,ㅟ:YS,ힶ:XS,ㅠ:`ᅲ`,ᆎ:ZS,ힷ:QS,ᆏ:$S,ᆐ:eC,ᆑ:tC,ㆊ:nC,ᆒ:rC,ㆋ:iC,ힸ:aC,ᆓ:oC,ᆔ:sC,ㆌ:cC,ㆍ:`ᆞ`,ퟅ:lC,ᆟ:uC,ퟆ:dC,ᆠ:fC,ᆢ:pC,ᆡ:mC,ㆎ:hC,ヘ:`へ`,"⍁":`〼`,"⧄":`〼`,"꒞":`ꁊ`,"꒬":`ꁐ`,"꒜":`ꃀ`,"꒨":`ꄲ`,"꒿":`ꉙ`,"꒾":`ꊱ`,"꒔":`ꋍ`,"꓀":`ꎫ`,"꓂":`ꎵ`,"꒺":`ꎿ`,"꒰":`ꏂ`,"꒧":`ꑘ`,"⊥":`ꓕ`,"⟂":`ꓕ`,"𝈜":`ꓕ`,Ʇ:`ꓕ`,Ꞟ:`ꓤ`,"⅁":`ꓨ`,"⅂":`ꓶ`,"𝈕":`ꓶ`,"𝈫":`ꓶ`,𖼦:`ꓶ`,𐐑:`ꓶ`,"⅃":`𖼀`,𑫦:gC,𑫨:_C,𑫩:vC,𑫪:yC,𑫧:bC,𑫴:xC,𑫶:SC,𑫷:CC,𑫸:wC,𑫵:TC,𑫬:EC,𑫭:DC,𑫮:OC,"⊕":`𐊨`,"⨁":`𐊨`,"🜨":`𐊨`,Ꚛ:kC,"▽":`𐊼`,"𝈔":`𐊼`,"🜄":`𐊼`,"⧖":`𐋀`,ꞛ:AC,Ꞛ:jC,"𐒠":`𐒆`,𐏑:MC,𐏓:NC,𒀸:PC,"☥":`𐦞`,𓋹:FC,〹:`卄`,不:`不`,丽:`丽`,並:`並`,"⎜":`丨`,"⎟":`丨`,"⎢":`丨`,"⎥":`丨`,"⎪":`丨`,"⎮":`丨`,"㇑":`丨`,ᅵ:`丨`,ㅣ:`丨`,"⼁":`丨`,ᆜ:IC,ᆘ:LC,ᆙ:RC,ힽ:zC,ힾ:BC,ힿ:VC,ퟀ:HC,ᆚ:UC,ퟁ:WC,ퟂ:GC,ᆛ:KC,ퟃ:qC,ᆝ:JC,ퟄ:YC,串:`串`,丸:`丸`,丹:`丹`,乁:`乁`,"㇠":`乙`,"⼄":`乙`,"㇟":`乚`,"⺃":`乚`,"㇖":`乛`,"⺂":`乛`,"⻲":`亀`,亂:`亂`,"㇚":`亅`,"⼅":`亅`,了:`了`,ニ:`二`,"⼆":`二`,𠄢:XC,"⼇":`亠`,亮:`亮`,"⼈":`人`,イ:`亻`,"⺅":`亻`,什:`什`,仌:`仌`,令:`令`,你:`你`,倂:`併`,倂:`併`,侀:`侀`,來:`來`,例:`例`,侮:`侮`,侮:`侮`,侻:`侻`,便:`便`,值:`値`,倫:`倫`,偺:`偺`,備:`備`,像:`像`,僚:`僚`,僧:`僧`,僧:`僧`,㒞:`㒞`,"⼉":`儿`,兀:`兀`,"⺎":`兀`,充:`充`,免:`免`,免:`免`,兔:`兔`,兤:`兤`,"⼊":`入`,內:`內`,全:`全`,兩:`兩`,ハ:`八`,"⼋":`八`,六:`六`,具:`具`,𠔜:ZC,𠔥:QC,冀:`冀`,㒹:`㒹`,"⼌":`冂`,再:`再`,𠕋:$C,冒:`冒`,冕:`冕`,㒻:`㒻`,最:`最`,"⼍":`冖`,冗:`冗`,冤:`冤`,"⼎":`冫`,冬:`冬`,况:`况`,况:`况`,冷:`冷`,凉:`凉`,凌:`凌`,凜:`凜`,凞:`凞`,"⼏":`几`,𠘺:ew,凵:`凵`,"⼐":`凵`,"⼑":`刀`,"⺉":`刂`,刃:`刃`,切:`切`,切:`切`,列:`列`,利:`利`,㓟:`㓟`,刺:`刺`,刻:`刻`,剆:`剆`,割:`割`,剷:`剷`,劉:`劉`,𠠄:tw,カ:`力`,力:`力`,"⼒":`力`,劣:`劣`,㔕:`㔕`,劳:`劳`,勇:`勇`,勇:`勇`,勉:`勉`,勉:`勉`,勒:`勒`,勞:`勞`,勤:`勤`,勤:`勤`,勵:`勵`,"⼓":`勹`,勺:`勺`,勺:`勺`,包:`包`,匆:`匆`,𠣞:nw,"⼔":`匕`,北:`北`,北:`北`,"⼕":`匚`,"⼖":`匸`,匿:`匿`,"⼗":`十`,〸:`十`,〺:`卅`,卉:`卉`,"࿖":`卍`,"࿕":`卐`,卑:`卑`,卑:`卑`,博:`博`,ト:`卜`,"⼘":`卜`,"⼙":`卩`,"⺋":`㔾`,即:`即`,卵:`卵`,卽:`卽`,卿:`卿`,卿:`卿`,卿:`卿`,"⼚":`厂`,𠨬:rw,"⼛":`厶`,參:`參`,"⼜":`又`,及:`及`,叟:`叟`,𠭣:iw,ロ:`口`,"⼝":`口`,囗:`口`,"⼞":`口`,句:`句`,叫:`叫`,叱:`叱`,吆:`吆`,吏:`吏`,吝:`吝`,吸:`吸`,呂:`呂`,呈:`呈`,周:`周`,咞:`咞`,咢:`咢`,咽:`咽`,䎛:`㖈`,哶:`哶`,唐:`唐`,啓:`啓`,啟:`啓`,啕:`啕`,啣:`啣`,善:`善`,善:`善`,喇:`喇`,喙:`喙`,喙:`喙`,喝:`喝`,喝:`喝`,喫:`喫`,喳:`喳`,嗀:`嗀`,嗂:`嗂`,嗢:`嗢`,嘆:`嘆`,嘆:`嘆`,噑:`噑`,噴:`噴`,器:`器`,囹:`囹`,圖:`圖`,圗:`圗`,"⼟":`土`,士:`土`,"⼠":`土`,型:`型`,城:`城`,㦳:`㘽`,埴:`埴`,堍:`堍`,報:`報`,堲:`堲`,塀:`塀`,塚:`塚`,塚:`塚`,塞:`塞`,填:`塡`,壿:`墫`,墬:`墬`,墳:`墳`,壘:`壘`,壟:`壟`,𡓤:aw,壮:`壮`,売:`売`,壷:`壷`,"⼡":`夂`,夆:`夆`,"⼢":`夊`,タ:`夕`,"⼣":`夕`,多:`多`,夢:`夢`,"⼤":`大`,奄:`奄`,奈:`奈`,契:`契`,奔:`奔`,奢:`奢`,女:`女`,"⼥":`女`,𡚨:ow,𡛪:sw,姘:`姘`,姬:`姬`,娛:`娛`,娧:`娧`,婢:`婢`,婦:`婦`,嬀:`媯`,㛮:`㛮`,㛼:`㛼`,媵:`媵`,嬈:`嬈`,嬨:`嬨`,嬾:`嬾`,嬾:`嬾`,"⼦":`子`,"⼧":`宀`,宅:`宅`,𡧈:cw,寃:`寃`,寘:`寘`,寧:`寧`,寧:`寧`,寧:`寧`,寮:`寮`,寳:`寳`,𡬘:lw,"⼨":`寸`,寿:`寿`,将:`将`,"⼩":`小`,尢:`尢`,"⺐":`尢`,"⼪":`尢`,"⺏":`尣`,㞁:`㞁`,"⼫":`尸`,尿:`尿`,屠:`屠`,屢:`屢`,層:`層`,履:`履`,屮:`屮`,屮:`屮`,"⼬":`屮`,𡴋:uw,"⼭":`山`,峀:`峀`,岍:`岍`,𡷤:dw,𡷦:fw,崙:`崙`,嵃:`嵃`,嵐:`嵐`,嵫:`嵫`,嵮:`嵮`,嵼:`嵼`,嶲:`嶲`,嶺:`嶺`,"⼮":`巛`,巢:`巢`,エ:`工`,"⼯":`工`,"⼰":`己`,"⺒":`巳`,㠯:`㠯`,巽:`巽`,"⼱":`巾`,帲:`帡`,帨:`帨`,帽:`帽`,幩:`幩`,㡢:`㡢`,𢆃:pw,"⼲":`干`,年:`年`,𢆟:mw,"⺓":`幺`,"⼳":`幺`,"⼴":`广`,度:`度`,㡼:`㡼`,庰:`庰`,庳:`庳`,庶:`庶`,廊:`廊`,廊:`廊`,廉:`廉`,廒:`廒`,廓:`廓`,廙:`廙`,廬:`廬`,"⼵":`廴`,廾:`廾`,"⼶":`廾`,𢌱:hw,𢌱:gw,弄:`弄`,"⼷":`弋`,"⼸":`弓`,弢:`弢`,弢:`弢`,"⼹":`彐`,"⺔":`彑`,当:`当`,㣇:`㣇`,"⼺":`彡`,形:`形`,彩:`彩`,彫:`彫`,"⼻":`彳`,律:`律`,㣣:`㣣`,徚:`徚`,復:`復`,徭:`徭`,"⼼":`心`,"⺖":`忄`,"⺗":`㣺`,忍:`忍`,志:`志`,念:`念`,忹:`忹`,怒:`怒`,怜:`怜`,恵:`恵`,㤜:`㤜`,㤺:`㤺`,悁:`悁`,悔:`悔`,悔:`悔`,惇:`惇`,惘:`惘`,惡:`惡`,𢛔:_w,愈:`愈`,慨:`慨`,慄:`慄`,慈:`慈`,慌:`慌`,慌:`慌`,慎:`慎`,慎:`慎`,慠:`慠`,慺:`慺`,憎:`憎`,憎:`憎`,憎:`憎`,憐:`憐`,憤:`憤`,憯:`憯`,憲:`憲`,𢡄:vw,𢡊:yw,懞:`懞`,懲:`懲`,懲:`懲`,懲:`懲`,懶:`懶`,懶:`懶`,戀:`戀`,"⼽":`戈`,成:`成`,戛:`戛`,戮:`戮`,戴:`戴`,"⼾":`戶`,戸:`戶`,"⼿":`手`,"⺘":`扌`,扝:`扝`,抱:`抱`,拉:`拉`,拏:`拏`,拓:`拓`,拔:`拔`,拼:`拼`,拾:`拾`,𢬌:bw,挽:`挽`,捐:`捐`,捨:`捨`,捻:`捻`,掃:`掃`,掠:`掠`,掩:`掩`,揄:`揄`,揤:`揤`,摒:`摒`,𢯱:xw,搜:`搜`,搢:`搢`,揅:`揅`,摩:`摩`,摷:`摷`,摾:`摾`,㨮:`㨮`,搉:`㩁`,撚:`撚`,撝:`撝`,擄:`擄`,㩬:`㩬`,"⽀":`支`,"⽁":`攴`,"⺙":`攵`,敏:`敏`,敏:`敏`,敖:`敖`,敬:`敬`,數:`數`,𣀊:Sw,"⽂":`文`,"⻫":`斉`,"⽃":`斗`,料:`料`,"⽄":`斤`,"⽅":`方`,旅:`旅`,"⽆":`无`,"⺛":`旡`,既:`既`,旣:`旣`,"⽇":`日`,易:`易`,曶:`㫚`,㫤:`㫤`,晉:`晉`,晩:`晚`,晴:`晴`,晴:`晴`,暑:`暑`,暑:`暑`,暈:`暈`,㬈:`㬈`,暜:`暜`,暴:`暴`,曆:`曆`,㬙:`㬙`,𣊸:Cw,"⽈":`曰`,更:`更`,書:`書`,"⽉":`月`,𣍟:ww,肦:`朌`,胐:`朏`,胊:`朐`,脁:`朓`,胶:`㬵`,朗:`朗`,朗:`朗`,朗:`朗`,脧:`朘`,望:`望`,望:`望`,幐:`㬺`,䐠:`㬻`,𣎓:Tw,膧:`朣`,𣎜:Ew,"⽊":`木`,李:`李`,杓:`杓`,杖:`杖`,杞:`杞`,𣏃:Dw,柿:`杮`,杻:`杻`,枅:`枅`,林:`林`,㭉:`㭉`,𣏕:Ow,柳:`柳`,柺:`柺`,栗:`栗`,栟:`栟`,桒:`桒`,𣑭:kw,梁:`梁`,梅:`梅`,梅:`梅`,梎:`梎`,梨:`梨`,椔:`椔`,楂:`楂`,㮝:`㮝`,㮝:`㮝`,槩:`㮣`,樧:`榝`,榣:`榣`,槪:`槪`,樂:`樂`,樂:`樂`,樂:`樂`,樓:`樓`,𣚣:Aw,檨:`檨`,櫓:`櫓`,櫛:`櫛`,欄:`欄`,㰘:`㰘`,"⽋":`欠`,次:`次`,𣢧:jw,歔:`歔`,㱎:`㱎`,"⽌":`止`,"⻭":`歯`,歲:`歲`,歷:`歷`,歹:`歹`,"⽍":`歹`,"⺞":`歺`,殟:`殟`,殮:`殮`,"⽎":`殳`,殺:`殺`,殺:`殺`,殺:`殺`,殻:`殻`,𣪍:Mw,"⽏":`毋`,"⺟":`母`,𣫺:Nw,"⽐":`比`,"⽑":`毛`,"⽒":`氏`,"⺠":`民`,"⽓":`气`,"⽔":`水`,"⺡":`氵`,"⺢":`氺`,汎:`汎`,汧:`汧`,沈:`沈`,沿:`沿`,泌:`泌`,泍:`泍`,泥:`泥`,𣲼:Pw,洛:`洛`,洞:`洞`,洴:`洴`,派:`派`,流:`流`,流:`流`,流:`流`,洖:`洖`,浩:`浩`,浪:`浪`,海:`海`,海:`海`,浸:`浸`,涅:`涅`,𣴞:Fw,淋:`淋`,淚:`淚`,淪:`淪`,淹:`淹`,渚:`渚`,港:`港`,湮:`湮`,潙:`溈`,滋:`滋`,滋:`滋`,溜:`溜`,溺:`溺`,滇:`滇`,滑:`滑`,滛:`滛`,㴳:`㴳`,漏:`漏`,漢:`漢`,漢:`漢`,漣:`漣`,𣻑:Iw,潮:`潮`,𣽞:Lw,𣾎:Rw,濆:`濆`,濫:`濫`,濾:`濾`,瀛:`瀛`,瀞:`瀞`,瀞:`瀞`,瀹:`瀹`,灊:`灊`,㶖:`㶖`,"⽕":`火`,"⺣":`灬`,灰:`灰`,灷:`灷`,災:`災`,炙:`炙`,炭:`炭`,烈:`烈`,烙:`烙`,煮:`煮`,煮:`煮`,𤉣:zw,煅:`煅`,煉:`煉`,𤋮:Bw,熜:`熜`,燎:`燎`,燐:`燐`,𤎫:Vw,爐:`爐`,爛:`爛`,爨:`爨`,"⽖":`爪`,爫:`爫`,"⺤":`爫`,爵:`爵`,爵:`爵`,"⽗":`父`,"⽘":`爻`,"⺦":`丬`,"⽙":`爿`,"⽚":`片`,牐:`牐`,"⽛":`牙`,𤘈:Hw,"⽜":`牛`,牢:`牢`,犀:`犀`,犕:`犕`,"⽝":`犬`,"⺨":`犭`,犯:`犯`,狀:`狀`,𤜵:Uw,狼:`狼`,猪:`猪`,猪:`猪`,𤠔:Ww,獵:`獵`,獺:`獺`,"⽞":`玄`,率:`率`,率:`率`,"⽟":`玉`,王:`王`,㺬:`㺬`,玥:`玥`,玲:`玲`,㺸:`㺸`,㺸:`㺸`,珞:`珞`,琉:`琉`,理:`理`,琢:`琢`,瑇:`瑇`,瑜:`瑜`,瑩:`瑩`,瑱:`瑱`,瑱:`瑱`,璅:`璅`,璉:`璉`,璘:`璘`,瓊:`瓊`,"⽠":`瓜`,"⽡":`瓦`,㼛:`㼛`,甆:`甆`,"⽢":`甘`,"⽣":`生`,甤:`甤`,"⽤":`用`,"⽥":`田`,画:`画`,甾:`甾`,𤰶:Gw,留:`留`,略:`略`,異:`異`,異:`異`,𤲒:Kw,"⽦":`疋`,"⽧":`疒`,痢:`痢`,瘐:`瘐`,瘟:`瘟`,瘝:`瘝`,療:`療`,癩:`癩`,"⽨":`癶`,"⽩":`白`,𤾡:qw,𤾸:Jw,"⽪":`皮`,"⽫":`皿`,𥁄:Yw,㿼:`㿼`,益:`益`,益:`益`,盛:`盛`,盧:`盧`,䀈:`䀈`,"⽬":`目`,直:`直`,直:`直`,𥃲:Xw,𥃳:Zw,省:`省`,䀘:`䀘`,𥄙:Qw,眞:`眞`,真:`真`,真:`真`,𥄳:$w,着:`着`,睊:`睊`,睊:`睊`,鿃:`䀹`,䀹:`䀹`,䀹:`䀹`,晣:`䀿`,䁆:`䁆`,瞋:`瞋`,𥉉:eT,瞧:`瞧`,"⽭":`矛`,"⽮":`矢`,"⽯":`石`,䂖:`䂖`,𥐝:tT,硏:`研`,硎:`硎`,硫:`硫`,碌:`碌`,碌:`碌`,碑:`碑`,磊:`磊`,磌:`磌`,磌:`磌`,磻:`磻`,䃣:`䃣`,礪:`礪`,"⽰":`示`,"⺭":`礻`,礼:`礼`,社:`社`,祈:`祈`,祉:`祉`,𥘦:nT,祐:`祐`,祖:`祖`,祖:`祖`,祝:`祝`,神:`神`,祥:`祥`,視:`視`,視:`視`,祿:`祿`,𥚚:rT,禍:`禍`,禎:`禎`,福:`福`,福:`福`,𥛅:iT,禮:`禮`,"⽱":`禸`,"⽲":`禾`,秊:`秊`,䄯:`䄯`,秫:`秫`,稜:`稜`,穊:`穊`,穀:`穀`,穀:`穀`,穏:`穏`,"⽳":`穴`,突:`突`,𥥼:aT,窱:`窱`,立:`立`,"⽴":`立`,"⻯":`竜`,𥪧:oT,𥪧:sT,竮:`竮`,"⽵":`竹`,笠:`笠`,節:`節`,節:`節`,䈂:`䈂`,𥮫:cT,篆:`篆`,䈧:`䈧`,築:`築`,𥲀:lT,𥳐:uT,簾:`簾`,籠:`籠`,"⽶":`米`,类:`类`,粒:`粒`,精:`精`,糒:`糒`,糖:`糖`,糨:`糨`,䊠:`䊠`,糣:`糣`,糧:`糧`,"⽷":`糸`,"⺯":`糹`,𥾆:dT,紀:`紀`,紐:`紐`,索:`索`,累:`累`,絶:`絕`,絣:`絣`,絛:`絛`,綠:`綠`,綾:`綾`,緇:`緇`,練:`練`,練:`練`,練:`練`,縂:`縂`,䌁:`䌁`,縉:`縉`,縷:`縷`,繁:`繁`,繅:`繅`,𦇚:fT,䌴:`䌴`,"⽸":`缶`,𦈨:pT,缾:`缾`,𦉇:mT,"⽹":`网`,"⺫":`罒`,"⺲":`罒`,"⺱":`罓`,䍙:`䍙`,署:`署`,𦋙:hT,罹:`罹`,罺:`罺`,羅:`羅`,𦌾:gT,"⽺":`羊`,羕:`羕`,羚:`羚`,羽:`羽`,"⽻":`羽`,翺:`翺`,老:`老`,"⽼":`老`,"⺹":`耂`,者:`者`,者:`者`,者:`者`,"⽽":`而`,𦓚:_T,"⽾":`耒`,𦔣:vT,"⽿":`耳`,聆:`聆`,聠:`聠`,𦖨:yT,聯:`聯`,聰:`聰`,聾:`聾`,"⾀":`聿`,"⺺":`肀`,"⾁":`肉`,肋:`肋`,肭:`肭`,育:`育`,䏕:`䏕`,䏙:`䏙`,腁:`胼`,脃:`脃`,脾:`脾`,䐋:`䐋`,朡:`朡`,𦞧:bT,𦞵:xT,朦:`䑃`,臘:`臘`,"⾂":`臣`,臨:`臨`,"⾃":`自`,臭:`臭`,"⾄":`至`,"⾅":`臼`,舁:`舁`,舁:`舁`,舄:`舄`,"⾆":`舌`,舘:`舘`,"⾇":`舛`,"⾈":`舟`,䑫:`䑫`,"⾉":`艮`,良:`良`,"⾊":`色`,"⾋":`艸`,艹:`艹`,艹:`艹`,"⺾":`艹`,"⺿":`艹`,"⻀":`艹`,芋:`芋`,芑:`芑`,芝:`芝`,花:`花`,芳:`芳`,芽:`芽`,若:`若`,若:`若`,苦:`苦`,𦬼:ST,茶:`茶`,荒:`荒`,荣:`荣`,茝:`茝`,茣:`茣`,莽:`莽`,荓:`荓`,菉:`菉`,菊:`菊`,菌:`菌`,菜:`菜`,菧:`菧`,華:`華`,菱:`菱`,著:`著`,著:`著`,𦰶:CT,莭:`莭`,落:`落`,葉:`葉`,蔿:`蒍`,𦳕:wT,𦵫:TT,蓮:`蓮`,蓱:`蓱`,蓳:`蓳`,蓼:`蓼`,蔖:`蔖`,䔫:`䔫`,蕤:`蕤`,𦼬:ET,藍:`藍`,䕝:`䕝`,𦾱:DT,䕡:`䕡`,藺:`藺`,蘆:`蘆`,䕫:`䕫`,蘒:`蘒`,蘭:`蘭`,𧃒:OT,虁:`蘷`,蘿:`蘿`,"⾌":`虍`,"⻁":`虎`,虐:`虐`,虜:`虜`,虜:`虜`,虧:`虧`,虩:`虩`,"⾍":`虫`,蚩:`蚩`,蚈:`蚈`,蛢:`蛢`,蜎:`蜎`,蜨:`蜨`,蝫:`蝫`,蟡:`蟡`,蝹:`蝹`,蝹:`蝹`,螆:`螆`,䗗:`䗗`,𧏊:kT,螺:`螺`,蠁:`蠁`,䗹:`䗹`,蠟:`蠟`,"⾎":`血`,行:`行`,"⾏":`行`,衠:`衠`,衣:`衣`,"⾐":`衣`,"⻂":`衤`,裂:`裂`,𧙧:AT,裏:`裏`,裗:`裗`,裞:`裞`,裡:`裡`,裸:`裸`,裺:`裺`,䘵:`䘵`,褐:`褐`,襁:`襁`,襤:`襤`,"⾑":`襾`,"⻄":`西`,"⻃":`覀`,覆:`覆`,見:`見`,"⾒":`見`,𧢮:jT,"⻅":`见`,"⾓":`角`,"⾔":`言`,𧥦:MT,詽:`訮`,訞:`䚶`,䚾:`䚾`,䛇:`䛇`,誠:`誠`,說:`說`,說:`說`,調:`調`,請:`請`,諒:`諒`,論:`論`,諭:`諭`,諭:`諭`,諸:`諸`,諸:`諸`,諾:`諾`,諾:`諾`,謁:`謁`,謁:`謁`,謹:`謹`,謹:`謹`,識:`識`,讀:`讀`,讏:`讆`,變:`變`,變:`變`,"⻈":`讠`,"⾕":`谷`,"⾖":`豆`,豈:`豈`,豕:`豕`,"⾗":`豕`,豣:`豜`,"⾘":`豸`,𧲨:NT,"⾙":`貝`,貫:`貫`,賁:`賁`,賂:`賂`,賈:`賈`,賓:`賓`,贈:`贈`,贈:`贈`,贛:`贛`,"⻉":`贝`,"⾚":`赤`,"⾛":`走`,起:`起`,趆:`赿`,𧻓:PT,𧼯:FT,"⾜":`足`,跋:`跋`,趼:`趼`,跺:`跥`,路:`路`,跰:`跰`,躛:`躗`,"⾝":`身`,車:`車`,"⾞":`車`,軔:`軔`,輧:`軿`,輦:`輦`,輪:`輪`,輸:`輸`,輸:`輸`,輻:`輻`,轢:`轢`,"⻋":`车`,"⾟":`辛`,辞:`辞`,辰:`辰`,"⾠":`辰`,"⾡":`辵`,辶:`辶`,"⻌":`辶`,"⻍":`辶`,巡:`巡`,連:`連`,逸:`逸`,逸:`逸`,遲:`遲`,遼:`遼`,𨗒:IT,𨗭:LT,邏:`邏`,"⾢":`邑`,邔:`邔`,郎:`郎`,郞:`郎`,郞:`郎`,郱:`郱`,都:`都`,𨜮:RT,鄑:`鄑`,鄛:`鄛`,"⾣":`酉`,酪:`酪`,醙:`醙`,醴:`醴`,"⾤":`釆`,里:`里`,"⾥":`里`,量:`量`,金:`金`,"⾦":`金`,鈴:`鈴`,鈸:`鈸`,鉶:`鉶`,鋗:`鋗`,鋘:`鋘`,鉼:`鉼`,錄:`錄`,鍊:`鍊`,鎮:`鎭`,鏹:`鏹`,鐕:`鐕`,𨯺:zT,"⻐":`钅`,"⻑":`長`,"⾧":`長`,"⻒":`镸`,"⻓":`长`,"⾨":`門`,開:`開`,䦕:`䦕`,閭:`閭`,閷:`閷`,𨵷:BT,"⻔":`门`,"⾩":`阜`,"⻏":`阝`,"⻖":`阝`,阮:`阮`,陋:`陋`,降:`降`,陵:`陵`,陸:`陸`,陼:`陼`,隆:`隆`,隣:`隣`,䧦:`䧦`,"⾪":`隶`,隷:`隷`,隸:`隷`,隸:`隷`,"⾫":`隹`,雃:`雃`,離:`離`,難:`難`,難:`難`,"⾬":`雨`,零:`零`,雷:`雷`,霣:`霣`,𩅅:VT,露:`露`,靈:`靈`,"⾭":`靑`,"⻘":`青`,靖:`靖`,靖:`靖`,𩇟:HT,"⾮":`非`,"⾯":`面`,𩈚:UT,"⾰":`革`,䩮:`䩮`,䩶:`䩶`,"⾱":`韋`,韛:`韛`,韠:`韠`,"⻙":`韦`,"⾲":`韭`,𩐊:WT,"⾳":`音`,響:`響`,響:`響`,"⾴":`頁`,䪲:`䪲`,頋:`頋`,頋:`頋`,頋:`頋`,領:`領`,頩:`頩`,𩒖:GT,頻:`頻`,頻:`頻`,類:`類`,"⻚":`页`,"⾵":`風`,𩖶:KT,"⻛":`风`,"⾶":`飛`,"⻜":`飞`,"⻝":`食`,"⾷":`食`,"⻟":`飠`,飢:`飢`,飯:`飯`,飼:`飼`,䬳:`䬳`,館:`館`,餩:`餩`,"⻠":`饣`,"⾸":`首`,"⾹":`香`,馧:`馧`,"⾺":`馬`,駂:`駂`,駱:`駱`,駾:`駾`,驪:`驪`,"⻢":`马`,"⾻":`骨`,䯎:`䯎`,"⾼":`高`,"⾽":`髟`,𩬰:qT,鬒:`鬒`,鬒:`鬒`,"⾾":`鬥`,"⾿":`鬯`,"⿀":`鬲`,"⿁":`鬼`,"⻤":`鬼`,"⿂":`魚`,魯:`魯`,鱀:`鱀`,鱗:`鱗`,"⻥":`鱼`,"⿃":`鳥`,鳽:`鳽`,䳎:`䳎`,鵧:`鵧`,䳭:`䳭`,𪃎:JT,鶴:`鶴`,𪄅:YT,䳸:`䳸`,鷺:`鷺`,𪈎:XT,鸞:`鸞`,鹃:`鹂`,"⿄":`鹵`,鹿:`鹿`,"⿅":`鹿`,𪊑:ZT,麗:`麗`,麟:`麟`,"⿆":`麥`,"⻨":`麦`,麻:`麻`,"⿇":`麻`,𪎒:QT,"⿈":`黃`,"⻩":`黄`,"⿉":`黍`,黎:`黎`,䵖:`䵖`,"⿊":`黑`,黒:`黑`,墨:`墨`,黹:`黹`,"⿋":`黹`,"⿌":`黽`,鼅:`鼅`,黾:`黾`,"⿍":`鼎`,鼏:`鼏`,"⿎":`鼓`,鼖:`鼖`,"⿏":`鼠`,鼻:`鼻`,"⿐":`鼻`,齃:`齃`,"⿑":`齊`,"⻬":`齐`,"⿒":`齒`,𪘀:$T,"⻮":`齿`,龍:`龍`,"⿓":`龍`,龎:`龎`,"⻰":`龙`,龜:`龜`,龜:`龜`,龜:`龜`,"⿔":`龜`,"⻳":`龟`,"⿕":`龠`}})),nE=u(s(((e,t)=>{var n=(tE(),d(ie).default);function r(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,`\\$1`)}var i=RegExp(Object.keys(n).map(r).join(`|`),`g`);function a(e){return n[e]}function o(e){return e.replace(i,a)}t.exports=o}))(),1);const rE=Object.prototype.toString,iE=e=>rE.call(e)===`[object Error]`,aE=new Set([`network error`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`,`fetch failed`,`terminated`,` A network error occurred.`,`Network connection lost`]);function oE(e){if(!(e&&iE(e)&&e.name===`TypeError`&&typeof e.message==`string`))return!1;let{message:t,stack:n}=e;return t===`Load failed`?n===void 0||`__sentry_captured__`in e:t.startsWith(`error sending request for url`)||t===`Failed to fetch`||t.startsWith(`Failed to fetch (`)&&t.endsWith(`)`)?!0:aE.has(t)}function sE(e){if(typeof e==`number`){if(e<0)throw TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw TypeError("Expected `retries` to be a number or Infinity.")}function cE(e,t,{min:n=0,allowInfinity:r=!1}={}){if(t!==void 0){if(typeof t!=`number`||Number.isNaN(t))throw TypeError(`Expected \`${e}\` to be a number${r?` or Infinity`:``}.`);if(!r&&!Number.isFinite(t))throw TypeError(`Expected \`${e}\` to be a finite number.`);if(t{let i=()=>{clearTimeout(a),t.signal?.removeEventListener(`abort`,i),r(t.signal.reason)},a=setTimeout(()=>{t.signal?.removeEventListener(`abort`,i),n()},e);t.unref&&a.unref?.(),t.signal?.addEventListener(`abort`,i,{once:!0})})}async function mE({error:e,attemptNumber:t,retriesConsumed:n,startTime:r,options:i}){let a=e instanceof Error?e:TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof uE)throw a.originalError;let o=Number.isFinite(i.retries)?Math.max(0,i.retries-n):i.retries,s=i.maxRetryTime??1/0,c=dE(n,i);if(fE(r,s)<=0){let e=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:0});throw await i.onFailedAttempt(e),a}let l=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:o>0?c:0}),u=await i.shouldConsumeRetry(l),d=u&&o>0?c:0,f=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:d});if(await i.onFailedAttempt(f),fE(r,s)<=0||fE(r,s)<=0||o<=0||a instanceof TypeError&&!oE(a)||!await i.shouldRetry(f))throw a;let p=fE(r,s);if(p<=0)throw a;if(!u)return i.signal?.throwIfAborted(),!1;let m=Math.min(d,p);return i.signal?.throwIfAborted(),await pE(m,i),i.signal?.throwIfAborted(),!0}async function hE(e,t={}){if(t={...t},sE(t.retries),Object.hasOwn(t,`forever`))throw Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=1/0,t.maxRetryTime??=1/0,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,lE(`onFailedAttempt`,t.onFailedAttempt),lE(`shouldRetry`,t.shouldRetry),lE(`shouldConsumeRetry`,t.shouldConsumeRetry),cE(`factor`,t.factor,{min:0,allowInfinity:!1}),cE(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),cE(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),cE(`maxRetryTime`,t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let n=0,r=0,i=performance.now();for(;!Number.isFinite(t.retries)||r<=t.retries;){n++;try{t.signal?.throwIfAborted();let r=await e(n);return t.signal?.throwIfAborted(),r}catch(e){await mE({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var gE=class{constructor(e,t){if(this.stable=e,this.unstable=t,!this.unstable&&!this.stable)throw Error(`One of stable or unstable values must be supplied`)}get name(){return this.stable?this.stable:this.unstable}get altName(){return this.stable?this.unstable:null}get names(){var e=[this.name],t=this.altName;return t&&e.push(t),e}matches(e){return this.name===e||this.altName===e}findIn(e){var t=void 0;return this.name&&(t=e?.[this.name]),!t&&this.altName&&(t=e?.[this.altName]),t}includedIn(e){var t=!1;return this.name&&(t=e.includes(this.name)),!t&&this.altName&&(t=e.includes(this.altName)),t}},_E=class extends gE{constructor(){super(...arguments),h(this,`preferUnstable`,!1)}setPreferUnstable(e){this.preferUnstable=e}get name(){return this.stable&&!this.preferUnstable?this.stable:this.unstable}},vE=class extends gE{constructor(e,t){if(super(e,t),!this.unstable)throw Error(`Unstable value must be supplied`)}get name(){return this.unstable}get altName(){return this.stable}},yE=new vE(`m.asset`,`org.matrix.msc3488.asset`),bE=new vE(`m.ts`,`org.matrix.msc3488.ts`),xE=new vE(`m.location`,`org.matrix.msc3488.location`),SE=function(e){return e.Read=`m.read`,e.FullyRead=`m.fully_read`,e.ReadPrivate=`m.read.private`,e}({}),CE=`main`;function wE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function TE(e){for(var t=1;t{n.append(e,String(t))}):n.append(e,String(t)))},i;for(var a of Object.entries(e))r();return n}function kE(e,t,n){var r=TE(TE({},n),{},{[t]:n[e]});return delete r[e],r}function T(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];r!=null&&(e=e.replace(n,encodeURIComponent(r)))}return e}function AE(e,t,n){var r;if(n){for(r=e.length-1;r>=0;r--)if(t(e[r],r,e))return e.splice(r,1),!0}else for(r=0;raD(e[0],t[0])),t}function FE(e){return typeof e==`number`&&isFinite(e)}function IE(e){return typeof e==`string`?(0,nE.default)(e.normalize(`NFD`).replace(zE,``)):``}function LE(e){return typeof e==`string`?e.replace(/[\u202d-\u202e]/g,``):``}function RE(e){return IE(e.toLowerCase()).replace(/[\\'!"#$%&()*+,\-./:;<=>?@[\]^_`{|}~\u2000-\u206f\u2e00-\u2e7f]/g,``).toLowerCase()}var zE=/[\u2000-\u200F\u202A-\u202F\u0300-\u036F\uFEFF\u061C\u2800\u2062-\u2063\s]/g;function BE(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function VE(e){return BE(e).replace(/\\\*/g,`.*`).replace(/\?/g,`.`)}function HE(e){return e!=null&&e.endsWith(`/`)?e.slice(0,-1):e}function UE(e,t){return new Promise(n=>{setTimeout(n,e,t)})}function WE(e,t,n){return GE.apply(this,arguments)}function GE(){return GE=C(function*(e,t,n){var r=Date.now();try{return yield n()}finally{var i=Date.now();e.debug(`[Perf]: ${t} took ${i-r}ms`)}}),GE.apply(this,arguments)}function KE(e,t,n){var r=Date.now();try{return n()}finally{var i=Date.now();e.debug(`[Perf]: ${t} took ${i-r}ms`)}}function qE(e){return e==null}function JE(e,t){return YE.apply(this,arguments)}function YE(){return YE=C(function*(e,t){for(var n of e)yield t(yield n)}),YE.apply(this,arguments)}function XE(e){return Promise.resolve(e())}function ZE(e,t){return hE(t=>e(t),{retries:1/0,shouldRetry:t?e=>{var n=e.error;return t(n)}:void 0,factor:2,minTimeout:3e3,maxTimeout:15e3})}var QE=(()=>{for(var e=``,t=32;t<=126;t++)e+=String.fromCharCode(t);return e})();function $E(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:QE;return e.padEnd(t,n[0])}function eD(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:QE,n=BigInt(t.length);if(e<=n)return t[Number(e)-1]??``;var r=e/n,i=Number(e%n)-1;return i<0&&(r-=BigInt(Math.abs(i)),i=Number(n)-1),eD(r,t)+t[i]}function tD(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:QE,n=BigInt(t.length),r=BigInt(0),i=e.length-1,a=BigInt(0);i>=0;i--,a++){var o=e.charCodeAt(i)-t.charCodeAt(0);r+=BigInt(1+o)*n**a}return r}function nD(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:QE,r=Math.max(e.length,t.length),i=tD($E(e,r,n),n),a=tD($E(t,r,n),n),o=(i+a)/BigInt(2);return o===i||o==a?eD(o,n)+n[0]:eD(o,n)}function rD(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:QE;return eD(tD(e,t)+BigInt(1),t)}function iD(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:QE;return eD(tD(e,t)-BigInt(1),t)}function aD(e,t){return et)}function oD(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(var r of Object.entries(t)){var i=x(r,2),a=i[0],o=i[1];if(e[a]instanceof Object&&o){oD(e[a],o);continue}if(o!=null||!n){mD(e,a,o);continue}}return e}function sD(e){return bE.findIn(e.getContent())??-1}function cD(e,t){return sD(t)-sD(e)}function lD(e){return[SE.Read,SE.ReadPrivate].includes(e)}function uD(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(e,t)=>e===t;if(e.size!==t.size)return!1;for(var r of e){var i=x(r,2),a=i[0],o=i[1],s=t.get(a);if(s===void 0||!n(o,s))return!1}return!0}function dD(e){return e instanceof Map?fD(e):Array.isArray(e)?e.map(e=>dD(e)):e}function fD(e){var t=new Map;for(var n of e){var r=x(n,2),i=r[0],a=r[1];t.set(i,dD(a))}return Object.fromEntries(t.entries())}function pD(e){return e===`__proto__`||e===`prototype`||e===`constructor`}function mD(e,t,n){if(pD(t))throw Error(`Trying to modify prototype or constructor`);e[t]=n}function hD(e){return!(pD(e.room_id)||pD(e.sender)||pD(e.event_id))}var gD=class extends Map{constructor(e){super(),this.createDefault=e}getOrCreate(e){return this.has(e)||this.set(e,this.createDefault()),this.get(e)}},_D=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NamespacedMap=void 0;function t(e,t){var r=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!r){if(Array.isArray(e)||(r=n(e))||t&&e&&typeof e.length==`number`){r&&(e=r);var i=0,a=function(){};return{s:a,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:a}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,c;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,c=e},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw c}}}}function n(e,t){if(e){if(typeof e==`string`)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}function r(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.InvalidEventError=void 0;function n(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function f(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}e.InvalidEventError=function(e){a(n,e);var t=o(n);function n(e){return i(this,n),t.call(this,e)}return r(n)}(l(Error))})),yD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensibleEvent=void 0;function t(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function n(e,t){for(var n=0;n{Object.defineProperty(e,"__esModule",{value:!0}),e.isOptionalAString=t,e.isProvided=n;function t(e){return n(e)&&typeof e==`string`}function n(e){return e!=null}})),xD=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.UnstableValue=e.NamespacedValue=void 0;function n(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)}function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}function i(e){var t=s();return function(){var n=c(e),r;if(t){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return a(this,r)}}function a(e,n){if(n&&(t(n)===`object`||typeof n==`function`))return n;if(n!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return o(e)}function o(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function s(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function l(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function u(e,t){for(var n=0;n{Object.defineProperty(e,"__esModule",{value:!0}),e.M_TEXT=e.M_NOTICE=e.M_MESSAGE=e.M_HTML=e.M_EMOTE=void 0;var t=xD();e.M_MESSAGE=new t.UnstableValue(`m.message`,`org.matrix.msc1767.message`),e.M_TEXT=new t.UnstableValue(`m.text`,`org.matrix.msc1767.text`),e.M_HTML=new t.UnstableValue(`m.html`,`org.matrix.msc1767.html`),e.M_EMOTE=new t.UnstableValue(`m.emote`,`org.matrix.msc1767.emote`),e.M_NOTICE=new t.UnstableValue(`m.notice`,`org.matrix.msc1767.notice`)})),CD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isEventTypeSame=t;function t(e,t){if(typeof e==`string`)return typeof t==`string`?t===e:t.matches(e);if(typeof t==`string`)return e.matches(t);var n=t,r=e;return n.matches(r.name)||n.matches(r.altName)}})),wD=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.MessageEvent=void 0;var n=yD(),r=bD(),i=vD(),a=SD(),o=CD();function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function c(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.MessageEvent=function(e){f(n,e);var t=m(n);function n(e){var o;l(this,n),o=t.call(this,e),y(g(o),`text`,void 0),y(g(o),`html`,void 0),y(g(o),`renderings`,void 0);var s=a.M_MESSAGE.findIn(o.wireContent),c=a.M_TEXT.findIn(o.wireContent),u=a.M_HTML.findIn(o.wireContent);if((0,r.isProvided)(s)){if(!Array.isArray(s))throw new i.InvalidEventError(`m.message contents must be an array`);var d=s.find(function(e){return!(0,r.isProvided)(e.mimetype)||e.mimetype===`text/plain`}),f=s.find(function(e){return e.mimetype===`text/html`});if(!d)throw new i.InvalidEventError(`m.message is missing a plain text representation`);o.text=d.body,o.html=f?.body,o.renderings=s}else if((0,r.isOptionalAString)(c))o.text=c,o.html=u,o.renderings=[{body:c,mimetype:`text/plain`}],o.html&&o.renderings.push({body:o.html,mimetype:`text/html`});else throw new i.InvalidEventError(`Missing textual representation for event`);return o}return d(n,[{key:`isEmote`,get:function(){return a.M_EMOTE.matches(this.wireFormat.type)||(0,r.isProvided)(a.M_EMOTE.findIn(this.wireFormat.content))}},{key:`isNotice`,get:function(){return a.M_NOTICE.matches(this.wireFormat.type)||(0,r.isProvided)(a.M_NOTICE.findIn(this.wireFormat.content))}},{key:`isEquivalentTo`,value:function(e){return(0,o.isEventTypeSame)(e,a.M_MESSAGE)}},{key:`serializeMMessageOnly`,value:function(){var e=y({},a.M_MESSAGE.name,this.renderings);if(this.renderings.length===1){var t=this.renderings[0].mimetype;(t===void 0||t===`text/plain`)&&(e=y({},a.M_TEXT.name,this.renderings[0].body))}return e}},{key:`serialize`,value:function(){return{type:`m.room.message`,content:c(c({},this.serializeMMessageOnly()),{},{body:this.text,msgtype:`m.text`,format:this.html?`org.matrix.custom.html`:void 0,formatted_body:this.html??void 0})}}}],[{key:`from`,value:function(e,t){var r;return new n({type:a.M_MESSAGE.name,content:(r={},y(r,a.M_TEXT.name,e),y(r,a.M_HTML.name,t),r)})}}]),n}(n.ExtensibleEvent)})),TD=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.NoticeEvent=void 0;var n=wD(),r=SD(),i=CD();function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function s(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}e.NoticeEvent=function(e){d(n,e);var t=p(n);function n(e){return o(this,n),t.call(this,e)}return c(n,[{key:`isNotice`,get:function(){return!0}},{key:`isEquivalentTo`,value:function(e){return(0,i.isEventTypeSame)(e,r.M_NOTICE)||l(_(n.prototype),`isEquivalentTo`,this).call(this,e)}},{key:`serialize`,value:function(){var e=l(_(n.prototype),`serialize`,this).call(this);return e.content.msgtype=`m.notice`,e}}],[{key:`from`,value:function(e,t){var i;return new n({type:r.M_NOTICE.name,content:(i={},a(i,r.M_TEXT.name,e),a(i,r.M_HTML.name,t),i)})}}]),n}(n.MessageEvent)})),ED=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.EmoteEvent=void 0;var n=wD(),r=SD(),i=CD();function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function s(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}e.EmoteEvent=function(e){d(n,e);var t=p(n);function n(e){return o(this,n),t.call(this,e)}return c(n,[{key:`isEmote`,get:function(){return!0}},{key:`isEquivalentTo`,value:function(e){return(0,i.isEventTypeSame)(e,r.M_EMOTE)||l(_(n.prototype),`isEquivalentTo`,this).call(this,e)}},{key:`serialize`,value:function(){var e=l(_(n.prototype),`serialize`,this).call(this);return e.content.msgtype=`m.emote`,e}}],[{key:`from`,value:function(e,t){var i;return new n({type:r.M_EMOTE.name,content:(i={},a(i,r.M_TEXT.name,e),a(i,r.M_HTML.name,t),i)})}}]),n}(n.MessageEvent)})),DD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LEGACY_M_ROOM_MESSAGE=void 0,e.parseMRoomMessage=l;var t=wD(),n=TD(),r=ED(),i=xD(),a=SD();function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{Object.defineProperty(e,"__esModule",{value:!0}),e.parseMMessage=a;var t=wD(),n=SD(),r=ED(),i=TD();function a(e){return n.M_EMOTE.matches(e.type)?new r.EmoteEvent(e):n.M_NOTICE.matches(e.type)?new i.NoticeEvent(e):new t.MessageEvent(e)}})),kD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.M_POLL_START=e.M_POLL_RESPONSE=e.M_POLL_KIND_UNDISCLOSED=e.M_POLL_KIND_DISCLOSED=e.M_POLL_END=void 0;var t=xD();e.M_POLL_KIND_DISCLOSED=new t.UnstableValue(`m.poll.disclosed`,`org.matrix.msc3381.poll.disclosed`),e.M_POLL_KIND_UNDISCLOSED=new t.UnstableValue(`m.poll.undisclosed`,`org.matrix.msc3381.poll.undisclosed`),e.M_POLL_START=new t.UnstableValue(`m.poll.start`,`org.matrix.msc3381.poll.start`),e.M_POLL_RESPONSE=new t.UnstableValue(`m.poll.response`,`org.matrix.msc3381.poll.response`),e.M_POLL_END=new t.UnstableValue(`m.poll.end`,`org.matrix.msc3381.poll.end`)})),AD=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollStartEvent=e.PollAnswerSubevent=void 0;var n=kD(),r=wD(),i=SD(),a=vD(),o=xD(),s=CD(),c=yD();function l(e){return p(e)||f(e)||d(e)||u()}function u(){throw TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function d(e,t){if(e){if(typeof e==`string`)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}}function f(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function p(e){if(Array.isArray(e))return m(e)}function m(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ne(e){return ne=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},ne(e)}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var re=function(e){b(n,e);var t=S(n);function n(e){var r;_(this,n),r=t.call(this,e),w(ee(r),`id`,void 0);var i=e.content.id;if(!i||typeof i!=`string`)throw new a.InvalidEventError(`Answer ID must be a non-empty string`);return r.id=i,r}return y(n,[{key:`serialize`,value:function(){return{type:`org.matrix.sdk.poll.answer`,content:g({id:this.id},this.serializeMMessageOnly())}}}],[{key:`from`,value:function(e,t){return new n({type:`org.matrix.sdk.poll.answer`,content:w({id:e},i.M_TEXT.name,t)})}}]),n}(r.MessageEvent);e.PollAnswerSubevent=re,e.PollStartEvent=function(e){b(c,e);var t=S(c);function c(e){var i;_(this,c),i=t.call(this,e),w(ee(i),`question`,void 0),w(ee(i),`kind`,void 0),w(ee(i),`rawKind`,void 0),w(ee(i),`maxSelections`,void 0),w(ee(i),`answers`,void 0);var o=n.M_POLL_START.findIn(i.wireContent);if(!o.question)throw new a.InvalidEventError(`A question is required`);if(i.question=new r.MessageEvent({type:`org.matrix.sdk.poll.question`,content:o.question}),i.rawKind=o.kind,n.M_POLL_KIND_DISCLOSED.matches(i.rawKind)?i.kind=n.M_POLL_KIND_DISCLOSED:i.kind=n.M_POLL_KIND_UNDISCLOSED,i.maxSelections=Number.isFinite(o.max_selections)&&o.max_selections>0?o.max_selections:1,!Array.isArray(o.answers))throw new a.InvalidEventError(`Poll answers must be an array`);var s=o.answers.slice(0,20).map(function(e){return new re({type:`org.matrix.sdk.poll.answer`,content:e})});if(s.length<=0)throw new a.InvalidEventError(`No answers available`);return i.answers=s,i}return y(c,[{key:`isEquivalentTo`,value:function(e){return(0,s.isEventTypeSame)(e,n.M_POLL_START)}},{key:`serialize`,value:function(){var e;return{type:n.M_POLL_START.name,content:(e={},w(e,n.M_POLL_START.name,{question:this.question.serialize().content,kind:this.rawKind,max_selections:this.maxSelections,answers:this.answers.map(function(e){return e.serialize().content})}),w(e,i.M_TEXT.name,`${this.question.text} +${this.answers.map(function(e,t){return`${t+1}. ${e.text}`}).join(` +`)}`),e)}}}],[{key:`from`,value:function(e,t,r){var a,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;return new c({type:n.M_POLL_START.name,content:(a={},w(a,i.M_TEXT.name,e),w(a,n.M_POLL_START.name,{question:w({},i.M_TEXT.name,e),kind:r instanceof o.NamespacedValue?r.name:r,max_selections:s,answers:t.map(function(e){return w({id:ae()},i.M_TEXT.name,e)})}),a)})}}]),c}(c.ExtensibleEvent);var ie=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`;function ae(){return l(Array(16)).map(function(){return ie.charAt(Math.floor(Math.random()*ie.length))}).join(``)}})),jD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.REFERENCE_RELATION=void 0,e.REFERENCE_RELATION=new(xD()).NamespacedValue(`m.reference`)})),MD=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollResponseEvent=void 0;var n=yD(),r=kD(),i=vD(),a=jD(),o=CD();function s(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function c(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.PollResponseEvent=function(e){u(n,e);var t=f(n);function n(e){var r;s(this,n),r=t.call(this,e),_(m(r),`internalAnswerIds`,void 0),_(m(r),`internalSpoiled`,void 0),_(m(r),`pollEventId`,void 0);var o=r.wireContent[`m.relates_to`];if(!a.REFERENCE_RELATION.matches(o?.rel_type)||typeof o?.event_id!=`string`)throw new i.InvalidEventError(`Relationship must be a reference to an event`);return r.pollEventId=o.event_id,r.validateAgainst(null),r}return l(n,[{key:`answerIds`,get:function(){return this.internalAnswerIds}},{key:`spoiled`,get:function(){return this.internalSpoiled}},{key:`validateAgainst`,value:function(e){var t=r.M_POLL_RESPONSE.findIn(this.wireContent);if(!Array.isArray(t?.answers)){this.internalSpoiled=!0,this.internalAnswerIds=[];return}var n=t.answers;if(n.some(function(e){return typeof e!=`string`})||n.length===0){this.internalSpoiled=!0,this.internalAnswerIds=[];return}if(e){if(n.some(function(t){return!e.answers.some(function(e){return e.id===t})})){this.internalSpoiled=!0,this.internalAnswerIds=[];return}n=n.slice(0,e.maxSelections)}this.internalAnswerIds=n,this.internalSpoiled=!1}},{key:`isEquivalentTo`,value:function(e){return(0,o.isEventTypeSame)(e,r.M_POLL_RESPONSE)}},{key:`serialize`,value:function(){return{type:r.M_POLL_RESPONSE.name,content:_({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:this.pollEventId}},r.M_POLL_RESPONSE.name,{answers:this.spoiled?void 0:this.answerIds})}}}],[{key:`from`,value:function(e,t){return new n({type:r.M_POLL_RESPONSE.name,content:_({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:t}},r.M_POLL_RESPONSE.name,{answers:e})})}}]),n}(n.ExtensibleEvent)})),ND=s((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollEndEvent=void 0;var n=kD(),r=vD(),i=jD(),a=wD(),o=SD(),s=CD(),c=yD();function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.PollEndEvent=function(e){m(c,e);var t=g(c);function c(e){var n;d(this,c),n=t.call(this,e),x(v(n),`pollEventId`,void 0),x(v(n),`closingMessage`,void 0);var o=n.wireContent[`m.relates_to`];if(!i.REFERENCE_RELATION.matches(o?.rel_type)||typeof o?.event_id!=`string`)throw new r.InvalidEventError(`Relationship must be a reference to an event`);return n.pollEventId=o.event_id,n.closingMessage=new a.MessageEvent(n.wireFormat),n}return p(c,[{key:`isEquivalentTo`,value:function(e){return(0,s.isEventTypeSame)(e,n.M_POLL_END)}},{key:`serialize`,value:function(){return{type:n.M_POLL_END.name,content:u(x({"m.relates_to":{rel_type:i.REFERENCE_RELATION.name,event_id:this.pollEventId}},n.M_POLL_END.name,{}),this.closingMessage.serialize().content)}}}],[{key:`from`,value:function(e,t){var r;return new c({type:n.M_POLL_END.name,content:(r={"m.relates_to":{rel_type:i.REFERENCE_RELATION.name,event_id:e}},x(r,n.M_POLL_END.name,{}),x(r,o.M_TEXT.name,t),r)})}}]),c}(c.ExtensibleEvent)})),PD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.parseMPoll=a;var t=kD(),n=AD(),r=MD(),i=ND();function a(e){return t.M_POLL_START.matches(e.type)?new n.PollStartEvent(e):t.M_POLL_RESPONSE.matches(e.type)?new r.PollResponseEvent(e):t.M_POLL_END.matches(e.type)?new i.PollEndEvent(e):null}})),FD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensibleEvents=void 0;var t=_D(),n=vD(),r=DD(),i=OD(),a=SD(),o=kD(),s=PD();function c(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=l(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){o=!0,s=e},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw s}}}}function l(e,t){if(e){if(typeof e==`string`)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}}function u(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{Object.defineProperty(e,"__esModule",{value:!0})})),LD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LegacyMsgType=void 0,e.isEventLike=r;var t=SD(),n;e.LegacyMsgType=n,(function(e){e.Text=`m.text`,e.Notice=`m.notice`,e.Emote=`m.emote`})(n||(e.LegacyMsgType=n={}));function r(e,r){var i=e.content;return r===n.Text?t.M_MESSAGE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.text`:r===n.Emote?t.M_EMOTE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.emote`:r===n.Notice?t.M_NOTICE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.notice`:!1}})),RD=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=FD();Object.keys(t).forEach(function(n){n==="default"||n==="__esModule"||n in e&&e[n]===t[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=ID();Object.keys(n).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var r=vD();Object.keys(r).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===r[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})});var i=xD();Object.keys(i).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===i[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return i[t]}})});var a=_D();Object.keys(a).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===a[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return a[t]}})});var o=bD();Object.keys(o).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===o[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var s=LD();Object.keys(s).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===s[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})});var c=CD();Object.keys(c).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===c[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})});var l=DD();Object.keys(l).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===l[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}})});var u=OD();Object.keys(u).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===u[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var d=PD();Object.keys(d).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===d[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return d[t]}})});var f=jD();Object.keys(f).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===f[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})});var p=yD();Object.keys(p).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===p[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var m=SD();Object.keys(m).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===m[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return m[t]}})});var h=wD();Object.keys(h).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===h[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})});var g=ED();Object.keys(g).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===g[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return g[t]}})});var _=TD();Object.keys(_).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===_[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return _[t]}})});var v=kD();Object.keys(v).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===v[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}})});var y=AD();Object.keys(y).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===y[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return y[t]}})});var b=MD();Object.keys(b).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===b[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return b[t]}})});var x=ND();Object.keys(x).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===x[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return x[t]}})})}))(),E=function(e){return e.RoomCanonicalAlias=`m.room.canonical_alias`,e.RoomCreate=`m.room.create`,e.RoomJoinRules=`m.room.join_rules`,e.RoomMember=`m.room.member`,e.RoomThirdPartyInvite=`m.room.third_party_invite`,e.RoomPowerLevels=`m.room.power_levels`,e.RoomName=`m.room.name`,e.RoomTopic=`m.room.topic`,e.RoomAvatar=`m.room.avatar`,e.RoomPinnedEvents=`m.room.pinned_events`,e.RoomEncryption=`m.room.encryption`,e.RoomHistoryVisibility=`m.room.history_visibility`,e.RoomGuestAccess=`m.room.guest_access`,e.RoomServerAcl=`m.room.server_acl`,e.RoomTombstone=`m.room.tombstone`,e.RoomPredecessor=`org.matrix.msc3946.room_predecessor`,e.PolicyRuleUser=`m.policy.rule.user`,e.PolicyRuleRoom=`m.policy.rule.room`,e.PolicyRuleServer=`m.policy.rule.server`,e.SpaceChild=`m.space.child`,e.SpaceParent=`m.space.parent`,e.RoomRedaction=`m.room.redaction`,e.RoomMessage=`m.room.message`,e.RoomMessageEncrypted=`m.room.encrypted`,e.Sticker=`m.sticker`,e.CallInvite=`m.call.invite`,e.CallCandidates=`m.call.candidates`,e.CallAnswer=`m.call.answer`,e.CallHangup=`m.call.hangup`,e.CallReject=`m.call.reject`,e.CallSelectAnswer=`m.call.select_answer`,e.CallNegotiate=`m.call.negotiate`,e.CallSDPStreamMetadataChanged=`m.call.sdp_stream_metadata_changed`,e.CallSDPStreamMetadataChangedPrefix=`org.matrix.call.sdp_stream_metadata_changed`,e.CallReplaces=`m.call.replaces`,e.CallAssertedIdentity=`m.call.asserted_identity`,e.CallAssertedIdentityPrefix=`org.matrix.call.asserted_identity`,e.CallEncryptionKeysPrefix=`io.element.call.encryption_keys`,e.KeyVerificationRequest=`m.key.verification.request`,e.KeyVerificationStart=`m.key.verification.start`,e.KeyVerificationCancel=`m.key.verification.cancel`,e.KeyVerificationMac=`m.key.verification.mac`,e.KeyVerificationDone=`m.key.verification.done`,e.KeyVerificationKey=`m.key.verification.key`,e.KeyVerificationAccept=`m.key.verification.accept`,e.KeyVerificationReady=`m.key.verification.ready`,e.RoomMessageFeedback=`m.room.message.feedback`,e.Reaction=`m.reaction`,e.PollStart=`org.matrix.msc3381.poll.start`,e.Typing=`m.typing`,e.Receipt=`m.receipt`,e.Presence=`m.presence`,e.FullyRead=`m.fully_read`,e.Tag=`m.tag`,e.SpaceOrder=`org.matrix.msc3230.space_order`,e.MarkedUnread=`m.marked_unread`,e.PushRules=`m.push_rules`,e.Direct=`m.direct`,e.IgnoredUserList=`m.ignored_user_list`,e.InvitePermissionConfig=`m.invite_permission_config`,e.RoomKey=`m.room_key`,e.RoomKeyRequest=`m.room_key_request`,e.ForwardedRoomKey=`m.forwarded_room_key`,e.Dummy=`m.dummy`,e.SecretRequest=`m.secret.request`,e.SecretSend=`m.secret.send`,e.GroupCallPrefix=`org.matrix.msc3401.call`,e.GroupCallMemberPrefix=`org.matrix.msc3401.call.member`,e.RTCMembership=`org.matrix.msc4143.rtc.member`,e.CallNotify=`org.matrix.msc4075.call.notify`,e.RTCNotification=`org.matrix.msc4075.rtc.notification`,e.RTCDecline=`org.matrix.msc4310.rtc.decline`,e.RoomPolicy=`org.matrix.msc4284.policy`,e.RetentionPolicy=`m.room.retention`,e.RetentionPolicyUnstable=`org.matrix.msc1763.retention`,e}({}),D=function(e){return e.Annotation=`m.annotation`,e.Replace=`m.replace`,e.Reference=`m.reference`,e.Thread=`m.thread`,e}({}),zD=function(e){return e.Text=`m.text`,e.Emote=`m.emote`,e.Notice=`m.notice`,e.Image=`m.image`,e.File=`m.file`,e.Audio=`m.audio`,e.Location=`m.location`,e.Video=`m.video`,e.KeyVerificationRequest=`m.key.verification.request`,e}({}),BD=`type`,VD=function(e){return e.Space=`m.space`,e.UnstableCall=`org.matrix.msc3417.call`,e.ElementVideo=`io.element.video`,e}({}),HD=`org.matrix.msgid`,UD=new vE(`m.room.purpose`,`org.matrix.msc3088.purpose`),WD=new vE(`m.enabled`,`org.matrix.msc3088.enabled`),GD=new vE(`m.data_tree`,`org.matrix.msc3089.data_tree`),KD=new vE(`m.leaf`,`org.matrix.msc3089.leaf`),qD=new vE(`m.branch`,`org.matrix.msc3089.branch`),JD=new vE(`m.room.marker`,`org.matrix.msc2716.marker`),YD=new vE(`with_rel_types`,`org.matrix.msc3912.with_relations`),XD=new vE(`io.element.functional_members`,`io.element.functional_members`),ZD=new vE(`m.visibility`,`org.matrix.msc3531.visibility`),QD=new vE(`enabled`,`org.matrix.msc3881.enabled`);new vE(`device_id`,`org.matrix.msc3881.device_id`);var $D=new vE(`m.local_notification_settings`,`org.matrix.msc3890.local_notification_settings`),eO=new vE(`thread_id`,`org.matrix.msc4023.thread_id`),tO=new gE(`membership`,`io.element.msc4115.membership`);function nO(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function rO(e,t){if(e==null)return{};var n,r,i=nO(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r{var n=typeof Reflect==`object`?Reflect:null,r=n&&typeof n.apply==`function`?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},i=n&&typeof n.ownKeys==`function`?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function a(e){console&&console.warn&&console.warn(e)}var o=Number.isNaN||function(e){return e!==e};function s(){s.init.call(this)}t.exports=s,t.exports.once=y,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);c=e}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function u(e){return e._maxListeners===void 0?s.defaultMaxListeners:e._maxListeners}s.prototype.getMaxListeners=function(){return u(this)},s.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)r(c,this,t);else for(var l=c.length,u=g(c,l),n=0;n0&&s.length>i&&!s.warned){s.warned=!0;var c=Error(`Possible EventEmitter memory leak detected. `+s.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);c.name=`MaxListenersExceededWarning`,c.emitter=e,c.type=t,c.count=s.length,a(c)}return e}s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}s.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if(l(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():_(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function m(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?v(i):g(i,i.length)}s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h;function h(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]};function g(e,t){for(var n=Array(t),r=0;r1?r-1:0),a=1;ae(...i))).then(()=>o.length>0)})()}listenerCount(e){return super.listenerCount(e)}listeners(e){return super.listeners(e)}off(e,t){return super.off(e,t)}on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}prependListener(e,t){return super.prependListener(e,t)}prependOnceListener(e,t){return super.prependOnceListener(e,t)}removeAllListeners(e){return e===void 0?super.removeAllListeners():super.removeAllListeners(e)}removeListener(e,t){return super.removeListener(e,t)}rawListeners(e){return super.rawListeners(e)}},oO=function(e){return e.DisplayName=`User.displayName`,e.AvatarUrl=`User.avatarUrl`,e.Presence=`User.presence`,e.CurrentlyActive=`User.currentlyActive`,e.LastPresenceTs=`User.lastPresenceTs`,e}({}),sO=class e extends O{constructor(e){super(),this.userId=e,h(this,`modified`,-1),h(this,`displayName`,void 0),h(this,`rawDisplayName`,void 0),h(this,`avatarUrl`,void 0),h(this,`presenceStatusMsg`,void 0),h(this,`presence`,`offline`),h(this,`lastActiveAgo`,0),h(this,`lastPresenceTs`,0),h(this,`currentlyActive`,!1),h(this,`events`,{}),this.displayName=e,this.rawDisplayName=e,this.updateModifiedTime()}static createUser(t,n){var r=new e(t);return n.reEmitter.reEmit(r,[oO.AvatarUrl,oO.DisplayName,oO.Presence,oO.CurrentlyActive,oO.LastPresenceTs]),r}setPresenceEvent(e){if(e.getType()===`m.presence`){var t=this.events.presence===null;this.events.presence=e;var n=[];(e.getContent().presence!==this.presence||t)&&n.push(oO.Presence),e.getContent().avatar_url&&e.getContent().avatar_url!==this.avatarUrl&&n.push(oO.AvatarUrl),e.getContent().displayname&&e.getContent().displayname!==this.displayName&&n.push(oO.DisplayName),e.getContent().currently_active!==void 0&&e.getContent().currently_active!==this.currentlyActive&&n.push(oO.CurrentlyActive),this.presence=e.getContent().presence,n.push(oO.LastPresenceTs),e.getContent().status_msg&&(this.presenceStatusMsg=e.getContent().status_msg),e.getContent().displayname&&(this.displayName=e.getContent().displayname),e.getContent().avatar_url&&(this.avatarUrl=e.getContent().avatar_url),this.lastActiveAgo=e.getContent().last_active_ago,this.lastPresenceTs=Date.now(),this.currentlyActive=e.getContent().currently_active,this.updateModifiedTime();for(var r of n)this.emit(r,e,this)}}setDisplayName(e){var t=this.displayName;this.displayName=e,e!==t&&this.updateModifiedTime()}setRawDisplayName(e){this.rawDisplayName=e}setAvatarUrl(e){var t=this.avatarUrl;this.avatarUrl=e,e!==t&&this.updateModifiedTime()}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}getLastActiveTs(){return this.lastPresenceTs-this.lastActiveAgo}};function cO(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function lO(e){return g(e)||cO(e)||y(e)||b()}function uO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n5&&arguments[5]!==void 0?arguments[5]:!1,o=arguments.length>6?arguments[6]:void 0,s=arguments.length>7?arguments[7]:void 0,c=arguments.length>8?arguments[8]:void 0;if(typeof t!=`string`||!t)return``;if(!t.startsWith(`mxc://`))return a?t:``;var l=lO(t.slice(6).split(`/`)),u=l[0],d=l[1];if(uO(l).slice(2).length>0||!fO(u)||!mO(d))return``;s&&(o=!0);var f,p=n||r||i?`thumbnail`:`download`;f=s?`/_matrix/client/v1/media/${p}`:`/_matrix/media/v3/${p}`;var m=new URL(`${f}/${u}/${d}`,e);return n&&m.searchParams.set(`width`,Math.round(n).toString()),r&&m.searchParams.set(`height`,Math.round(r).toString()),i&&m.searchParams.set(`method`,i),c!==void 0&&m.searchParams.set(`animated`,String(c)),typeof o==`boolean`&&m.searchParams.set(`allow_redirect`,JSON.stringify(o)),m.href}var k=function(e){return e.Ban=`ban`,e.Invite=`invite`,e.Join=`join`,e.Knock=`knock`,e.Leave=`leave`,e}({}),gO=function(e){return e.Membership=`RoomMember.membership`,e.Name=`RoomMember.name`,e.PowerLevel=`RoomMember.powerLevel`,e.Typing=`RoomMember.typing`,e}({}),_O=class extends O{constructor(e,t){super(),this.roomId=e,this.userId=t,h(this,`_isOutOfBand`,!1),h(this,`modified`,-1),h(this,`requestedProfileInfo`,!1),h(this,`typing`,!1),h(this,`name`,void 0),h(this,`rawDisplayName`,void 0),h(this,`powerLevel`,0),h(this,`user`,void 0),h(this,`membership`,void 0),h(this,`disambiguate`,!1),h(this,`events`,{}),this.name=t,this.rawDisplayName=t,this.updateModifiedTime()}markOutOfBand(){this._isOutOfBand=!0}isOutOfBand(){return this._isOutOfBand}setMembershipEvent(e,t){var n=e.getDirectionalContent().displayname??``;if(e.getType()===E.RoomMember){this._isOutOfBand=!1,this.events.member=e;var r=this.membership;this.membership=e.getDirectionalContent().membership,this.membership===void 0&&w.trace(`membership event with membership undefined (forwardLooking: ${e.forwardLooking})!`,e.getContent(),`prevcontent is `,e.getPrevContent()),this.disambiguate=bO(this.userId,n,t);var i=this.name;this.name=xO(this.userId,n,this.disambiguate),this.rawDisplayName=LE(e.getDirectionalContent().displayname??``),(!this.rawDisplayName||!IE(this.rawDisplayName))&&(this.rawDisplayName=this.userId),r!==this.membership&&(this.updateModifiedTime(),this.emit(gO.Membership,e,this,r)),i!==this.name&&(this.updateModifiedTime(),this.emit(gO.Name,e,this,i))}}recalculateDisambiguatedName(e){if(!this.events.member)return!1;var t=this.events.member.getDirectionalContent().displayname??``,n=bO(this.userId,t,e);if(n===this.disambiguate)return!1;this.disambiguate=n;var r=this.name;return this.name=xO(this.userId,t,this.disambiguate),r===this.name?!1:(this.updateModifiedTime(),this.emit(gO.Name,this.events.member,this,r),!0)}setPowerLevel(e,t){var n=this.powerLevel;this.powerLevel=e,n!==this.powerLevel&&(this.updateModifiedTime(),this.emit(gO.PowerLevel,t,this))}setTypingEvent(e){if(e.getType()===`m.typing`){var t=this.typing;this.typing=!1;var n=e.getContent().user_ids;Array.isArray(n)&&(n.indexOf(this.userId)!==-1&&(this.typing=!0),t!==this.typing&&(this.updateModifiedTime(),this.emit(gO.Typing,e,this)))}}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}isKicked(){return this.membership===k.Leave&&this.events.member!==void 0&&this.events.member.getSender()!==this.events.member.getStateKey()}getDMInviter(){if(this.events.member){var e=this.events.member,t=e.getContent(),n=e.getSender();if(t.membership===k.Join&&(t=e.getPrevContent(),n=e.getUnsigned().prev_sender),t.membership===k.Invite&&t.is_direct)return n}}getAvatarUrl(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5?arguments[5]:void 0,o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,s=this.getMxcAvatarUrl();return!s&&!i?null:hO(e,s,t,n,r,a,void 0,o)||null}getMxcAvatarUrl(){if(this.events.member)return this.events.member.getDirectionalContent().avatar_url;if(this.user)return this.user.avatarUrl}},vO=/@.+:.+/,yO=/[\u200E\u200F\u202A-\u202F]/;function bO(e,t,n){if(!t||t===e||!n)return!1;var r=IE(t);return r?!!(vO.test(r)||yO.test(t)||n.getUserIdsWithDisplayName(t).some(t=>t!==e)):!1}function xO(e,t,n){return!t||t===e?e:n?LE(t)+` (`+e+`)`:IE(t)?LE(t):e}var SO=function(e){return e.PrivateChat=`private_chat`,e.TrustedPrivateChat=`trusted_private_chat`,e.PublicChat=`public_chat`,e}({}),CO=function(e){return e.Public=`public`,e.Invite=`invite`,e.Private=`private`,e.Knock=`knock`,e.Restricted=`restricted`,e}({}),wO=function(e){return e.CanJoin=`can_join`,e.Forbidden=`forbidden`,e}({}),TO=function(e){return e.Invited=`invited`,e.Joined=`joined`,e.Shared=`shared`,e.WorldReadable=`world_readable`,e}({});function EO(e){return e!=null}new RD.UnstableValue(`m.message`,`org.matrix.msc1767.message`),new RD.UnstableValue(`m.text`,`org.matrix.msc1767.text`),new RD.UnstableValue(`m.html`,`org.matrix.msc1767.html`),new RD.NamespacedValue(`m.reference`);var DO=new gE(`m.topic`,null);function OO(e,t){return{msgtype:zD.Text,format:`org.matrix.custom.html`,body:e,formatted_body:t}}function kO(e,t){return{msgtype:zD.Notice,format:`org.matrix.custom.html`,body:e,formatted_body:t}}function AO(e,t){return{msgtype:zD.Emote,format:`org.matrix.custom.html`,body:e,formatted_body:t}}function jO(e){return{msgtype:zD.Text,body:e}}function MO(e){return{msgtype:zD.Notice,body:e}}function NO(e){return{msgtype:zD.Emote,body:e}}var PO=(e,t)=>{var n=[];return EO(t)&&n.push({body:t,mimetype:`text/html`}),EO(e)&&n.push({body:e,mimetype:`text/plain`}),{topic:e,[DO.name]:{"m.text":n}}},FO=e=>{var t=e.description,n=e.timeout,r=e.live,i=bE.findIn(e)??void 0;return{description:t,timeout:n,live:r,assetType:yE.findIn(e)?.type,timestamp:i}},IO=e=>{var t=xE.findIn(e),n=bE.findIn(e)??void 0;return{description:t?.description,uri:t?.uri,timestamp:n}},A=function(e){return e.New=`Beacon.new`,e.Update=`Beacon.update`,e.LivenessChange=`Beacon.LivenessChange`,e.Destroy=`Beacon.Destroy`,e.LocationUpdate=`Beacon.LocationUpdate`,e}({}),LO=(e,t,n)=>n>=e&&e+t>=n,RO=e=>`${e.getRoomId()}_${e.getStateKey()}`,zO=class extends O{constructor(e){super(),this.rootEvent=e,h(this,`roomId`,void 0),h(this,`_beaconInfo`,void 0),h(this,`_isLive`,void 0),h(this,`livenessWatchTimeout`,void 0),h(this,`_latestLocationEvent`,void 0),h(this,`clearLatestLocation`,()=>{this._latestLocationEvent=void 0,this.emit(A.LocationUpdate,this.latestLocationState)}),this.roomId=this.rootEvent.getRoomId(),this.setBeaconInfo(this.rootEvent)}get isLive(){return!!this._isLive}get identifier(){return RO(this.rootEvent)}get beaconInfoId(){return this.rootEvent.getId()}get beaconInfoOwner(){return this.rootEvent.getStateKey()}get beaconInfoEventType(){return this.rootEvent.getType()}get beaconInfo(){return this._beaconInfo}get latestLocationState(){return this._latestLocationEvent&&IO(this._latestLocationEvent.getContent())}get latestLocationEvent(){return this._latestLocationEvent}update(e){if(RO(e)!==this.identifier)throw Error(`Invalid updating event`);e.getTs()1&&(this.livenessWatchTimeout=setTimeout(()=>{this.monitorLiveness()},e))}else this.beaconInfo.timestamp>Date.now()&&(this.livenessWatchTimeout=setTimeout(()=>{this.monitorLiveness()},this.beaconInfo.timestamp-Date.now()))}addLocations(e){if(this.isLive){var t=e.filter(e=>{var t=IO(e.getContent());if(!t.uri||!t.timestamp)return!1;var n=t.timestamp;return this._beaconInfo.timestamp&&LO(this._beaconInfo.timestamp,this._beaconInfo.timeout,n)&&(!this.latestLocationState||n>this.latestLocationState.timestamp)}).sort(cD)?.[0];t&&(this._latestLocationEvent=t,this.emit(A.LocationUpdate,this.latestLocationState))}}setBeaconInfo(e){this._beaconInfo=FO(e.getContent()),this.checkLiveness()}checkLiveness(){var e=this.isLive;if(this.beaconInfo){var t=this.beaconInfo.timestamp>Date.now()?this.beaconInfo.timestamp-36e4:this.beaconInfo.timestamp;this._isLive=!!this._beaconInfo.live&&!!t&&LO(t,this._beaconInfo.timeout,Date.now()),e!==this.isLive&&this.emit(A.LivenessChange,this.isLive,this)}}},BO=class{constructor(e){this.target=e,h(this,`reEmitters`,new WeakMap)}reEmit(e,t){var n=this,r=this.reEmitters.get(e);r||(r=new Map,this.reEmitters.set(e,r));var i=function(t){if(r.has(t))return 1;var i=function(){if(!(t===`error`&&n.target.listenerCount(`error`)===0)){var r=[...arguments];n.target.emit(t,...r,e)}};e.on(t,i),r.set(t,i)};for(var a of t)if(i(a))continue}stopReEmitting(e,t){var n=this.reEmitters.get(e);if(n){for(var r of t)e.off(r,n.get(r)),n.delete(r);n.size===0&&this.reEmitters.delete(e)}}},VO=class extends BO{constructor(e){super(e)}reEmit(e,t){super.reEmit(e,t)}stopReEmitting(e,t){super.stopReEmitting(e,t)}},HO=new vE(`m.beacon_info`,`org.matrix.msc3672.beacon_info`),UO=new vE(`m.beacon`,`org.matrix.msc3672.beacon`),WO=[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`];function GO(e){return!WO.includes(e)}var KO=function(e){return e[e.NotStarted=0]=`NotStarted`,e[e.InProgress=1]=`InProgress`,e[e.Finished=2]=`Finished`,e}(KO||{}),j=function(e){return e.Events=`RoomState.events`,e.Members=`RoomState.members`,e.NewMember=`RoomState.newMember`,e.Update=`RoomState.update`,e.BeaconLiveness=`RoomState.BeaconLiveness`,e.Marker=`RoomState.Marker`,e}({}),qO=class e extends O{constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{status:KO.NotStarted};super(),this.roomId=e,this.oobMemberFlags=t,h(this,`reEmitter`,new VO(this)),h(this,`sentinels`,{}),h(this,`displayNameToUserIds`,new Map),h(this,`userIdsToDisplayNames`,{}),h(this,`tokenToInvite`,{}),h(this,`joinedMemberCount`,null),h(this,`summaryJoinedMemberCount`,null),h(this,`invitedMemberCount`,null),h(this,`summaryInvitedMemberCount`,null),h(this,`modified`,-1),h(this,`members`,{}),h(this,`events`,new Map),h(this,`paginationToken`,null),h(this,`beacons`,new Map),h(this,`_liveBeaconIds`,[]),h(this,`getVersionWarning`,!1),this.updateModifiedTime()}getRoomVersion(){var e=this.getStateEvents(E.RoomCreate,``);return e?e.getContent().room_version??`1`:(this.getVersionWarning||=(w.warn(`[getVersion] Room `+this.roomId+` does not have an m.room.create event`),!0),`1`)}getJoinedMemberCount(){return this.summaryJoinedMemberCount===null?(this.joinedMemberCount===null&&(this.joinedMemberCount=this.getMembers().reduce((e,t)=>t.membership===k.Join?e+1:e,0)),this.joinedMemberCount):this.summaryJoinedMemberCount}setJoinedMemberCount(e){this.summaryJoinedMemberCount=e}getInvitedMemberCount(){return this.summaryInvitedMemberCount===null?(this.invitedMemberCount===null&&(this.invitedMemberCount=this.getMembers().reduce((e,t)=>t.membership===k.Invite?e+1:e,0)),this.invitedMemberCount):this.summaryInvitedMemberCount}setInvitedMemberCount(e){this.summaryInvitedMemberCount=e}getMembers(){return Object.values(this.members)}getMembersExcept(e){return this.getMembers().filter(t=>!e.includes(t.userId))}getMember(e){return this.members[e]||null}getSentinelMember(e){if(!e)return null;var t=this.sentinels[e];if(t===void 0){t=new _O(this.roomId,e);var n=this.members[e];n!=null&&n.events.member&&t.setMembershipEvent(n.events.member,this),this.sentinels[e]=t}return t}getStateEvents(e,t){return this.events.has(e)?t===void 0?Array.from(this.events.get(e).values()):this.events.get(e).get(t)||null:t===void 0?[]:null}get hasLiveBeacons(){var e;return!!((e=this.liveBeaconIds)!=null&&e.length)}get liveBeaconIds(){return this._liveBeaconIds}clone(){var t=new e(this.roomId,this.oobMemberFlags),n=this.oobMemberFlags.status;return this.oobMemberFlags.status=KO.NotStarted,Array.from(this.events.values()).forEach(e=>{t.setStateEvents(Array.from(e.values()))}),this.oobMemberFlags.status=n,this.summaryInvitedMemberCount!==null&&t.setInvitedMemberCount(this.getInvitedMemberCount()),this.summaryJoinedMemberCount!==null&&t.setJoinedMemberCount(this.getJoinedMemberCount()),this.oobMemberFlags.status==KO.Finished&&this.getMembers().forEach(e=>{if(e.isOutOfBand()){var n;(n=t.getMember(e.userId))==null||n.markOutOfBand()}}),t}setUnknownStateEvents(e){var t=e.filter(e=>!this.events.has(e.getType())||!this.events.get(e.getType()).has(e.getStateKey()));this.setStateEvents(t)}setStateEvents(e,t){this.updateModifiedTime();var n=new Set,r=new Set;if(e.forEach(e=>{if(!(e.getRoomId()!==this.roomId||!e.isState())){HO.matches(e.getType())&&this.setBeacon(e);var t=this.getStateEventMatching(e);if(this.setStateEvent(e),e.getType()===E.RoomMember){var i=e.getStateKey();r.add(i);var a=e.getContent().displayname??``,o=this.userIdsToDisplayNames[i];if(o){var s=IE(o);s&&n.add(s)}if(a){var c=IE(a);c&&n.add(c)}this.updateDisplayNameCache(i,a),this.updateThirdPartyTokenCache(e)}this.emit(j.Events,e,this,t)}}),this.onBeaconLivenessChange(),e.forEach(e=>{if(!(e.getRoomId()!==this.roomId||!e.isState()))if(e.getType()===E.RoomMember){var n=e.getStateKey();(e.getContent().membership===k.Leave||e.getContent().membership===k.Ban)&&(e.getContent().avatar_url=e.getContent().avatar_url||e.getPrevContent().avatar_url,e.getContent().displayname=e.getContent().displayname||e.getPrevContent().displayname);var r=this.getOrCreateMember(n,e);r.setMembershipEvent(e,this),this.updateMember(r),this.emit(j.Members,e,this,r)}else if(e.getType()===E.RoomPowerLevels){if(e.getStateKey()!==``)return;var i=Object.values(this.members),a=this.getStateEvents(E.RoomCreate,``),o=JO(this.getRoomVersion(),a);i.forEach(t=>{var n=t.getLastModifiedTime();if(a){var r=YO(t.userId,e,o);t.setPowerLevel(r,e)}n!==t.getLastModifiedTime()&&this.emit(j.Members,e,this,t)}),this.sentinels={}}else JD.matches(e.getType())&&this.emit(j.Marker,e,t)}),n.size>0){var i=new Set;for(var a of n)(this.displayNameToUserIds.get(a)??[]).forEach(e=>i.add(e));for(var o of i)if(!r.has(o)){var s=this.members[o];s!=null&&s.events.member&&s.recalculateDisambiguatedName(this)&&this.emit(j.Members,s.events.member,this,s)}}this.emit(j.Update,this)}processBeaconEvents(e,t){var n=this;return C(function*(){if(!(!e.length||!n.beacons.size)){var r=[...n.beacons.values()].reduce((e,t)=>(e[t.beaconInfoId]=t,e),{}),i=(e,t)=>{if(UO.matches(t.getType())){var n=r[e];n&&n.addLocations([t])}},a=function*(e){var n=e.getRelation()?.event_id;if(!n||!r[n]||!UO.matches(e.getType())&&!e.isEncrypted())return{v:void 0};try{yield t.decryptEventIfNeeded(e),i(n,e)}catch{e.isDecryptionFailure()&&e.once($.Decrypted,C(function*(){i(n,e)}))}},o;for(var s of e)if(o=yield*a(s),o)return o.v}})()}getOrCreateMember(e,t){var n=this.members[e];return n||(n=new _O(this.roomId,e),this.members[e]=n,this.emit(j.NewMember,t,this,n)),n}setStateEvent(e){this.events.has(e.getType())||this.events.set(e.getType(),new Map),this.events.get(e.getType()).set(e.getStateKey(),e)}setBeacon(e){var t=RO(e);if(this.beacons.has(t)){var n=this.beacons.get(t);if(e.isRedacted()){n.beaconInfoId===e.getRedactionEvent()?.redacts&&(n.destroy(),this.beacons.delete(t));return}return n.update(e)}if(!e.isRedacted()){var r=new zO(e);this.reEmitter.reEmit(r,[A.New,A.Update,A.Destroy,A.LivenessChange]),this.emit(A.New,e,r),r.on(A.LivenessChange,this.onBeaconLivenessChange.bind(this)),r.on(A.Destroy,this.onBeaconLivenessChange.bind(this)),this.beacons.set(r.identifier,r)}}onBeaconLivenessChange(){this._liveBeaconIds=Array.from(this.beacons.values()).filter(e=>e.isLive).map(e=>e.identifier),this.emit(j.BeaconLiveness,this,this.hasLiveBeacons)}getStateEventMatching(e){return this.events.get(e.getType())?.get(e.getStateKey())??null}updateMember(e){var t=this.getStateEvents(E.RoomCreate,``),n=this.getStateEvents(E.RoomPowerLevels,``);if(n&&t){var r=YO(e.userId,n,JO(this.getRoomVersion(),t));e.setPowerLevel(r,n)}delete this.sentinels[e.userId],this.members[e.userId]=e,this.joinedMemberCount=null,this.invitedMemberCount=null}needsOutOfBandMembers(){return this.oobMemberFlags.status===KO.NotStarted}outOfBandMembersReady(){return this.oobMemberFlags.status===KO.Finished}markOutOfBandMembersStarted(){this.oobMemberFlags.status===KO.NotStarted&&(this.oobMemberFlags.status=KO.InProgress)}markOutOfBandMembersFailed(){this.oobMemberFlags.status===KO.InProgress&&(this.oobMemberFlags.status=KO.NotStarted)}clearOutOfBandMembers(){var e=0;Object.keys(this.members).forEach(t=>{this.members[t].isOutOfBand()&&(++e,delete this.members[t])}),w.log(`LL: RoomState removed ${e} members...`),this.oobMemberFlags.status=KO.NotStarted}setOutOfBandMembers(e){w.log(`LL: RoomState about to set ${e.length} OOB members ...`),this.oobMemberFlags.status===KO.InProgress&&(w.log(`LL: RoomState put in finished state ...`),this.oobMemberFlags.status=KO.Finished,e.forEach(e=>this.setOutOfBandMember(e)),this.emit(j.Update,this))}setOutOfBandMember(e){if(e.getType()===E.RoomMember){var t=e.getStateKey(),n=this.getMember(t);if(!(n&&!n.isOutOfBand())){var r=this.getOrCreateMember(t,e);r.setMembershipEvent(e,this),r.markOutOfBand(),this.updateDisplayNameCache(r.userId,r.name),this.setStateEvent(e),this.updateMember(r),this.emit(j.Members,e,this,r)}}}setTypingEvent(e){Object.values(this.members).forEach(function(t){t.setTypingEvent(e)})}getInviteForThreePidToken(e){return this.tokenToInvite[e]||null}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}getUserIdsWithDisplayName(e){return this.displayNameToUserIds.get(IE(e))??[]}maySendRedactionForEvent(e,t){var n=this.getMember(t);return!n||n.membership===k.Leave||e.status||e.isRedacted()||!this.maySendEvent(E.RoomRedaction,t)?!1:e.getSender()===t?!0:this.hasSufficientPowerLevelFor(`redact`,n.powerLevel)}hasSufficientPowerLevelFor(e,t){var n=this.getStateEvents(E.RoomPowerLevels,``),r={};n&&(r=n.getContent());var i=50;return FE(r[e])&&(i=r[e]),t>=i}maySendMessage(e){return this.maySendEventOfType(E.RoomMessage,e,!1)}maySendEvent(e,t){return this.maySendEventOfType(e,t,!1)}mayClientSendStateEvent(e,t){return t.isGuest()||!t.credentials.userId?!1:this.maySendStateEvent(e,t.credentials.userId)}maySendStateEvent(e,t){return this.maySendEventOfType(e,t,!0)}maySendEventOfType(e,t,n){var r=this.getStateEvents(E.RoomPowerLevels,``),i,a={},o=0,s=0;r&&(i=r.getContent(),a=i.events||{},o=Number.isSafeInteger(i.state_default)?i.state_default:50,Number.isSafeInteger(i.events_default)&&(s=i.events_default));var c=n?o:s;return Number.isSafeInteger(a[e])&&(c=a[e]),(this.getMember(t)?.powerLevel??0)>=c}mayTriggerNotifOfType(e,t){var n=this.getMember(t);if(!n)return!1;var r=this.getStateEvents(E.RoomPowerLevels,``),i=50;return r&&r.getContent()&&r.getContent().notifications&&FE(r.getContent().notifications[e])&&(i=r.getContent().notifications[e]),n.powerLevel>=i}getJoinRule(){return(this.getStateEvents(E.RoomJoinRules,``)?.getContent()??{}).join_rule||CO.Invite}getHistoryVisibility(){return(this.getStateEvents(E.RoomHistoryVisibility,``)?.getContent()??{}).history_visibility||TO.Shared}getGuestAccess(){return(this.getStateEvents(E.RoomGuestAccess,``)?.getContent()??{}).guest_access||wO.Forbidden}findPredecessor(){if(arguments.length>0&&arguments[0]!==void 0&&arguments[0]){var e=this.getStateEvents(E.RoomPredecessor,``);if(e){var t=e.getContent(),n=t.predecessor_room_id,r=t.last_known_event_id;typeof r!=`string`&&(r=void 0);var i=t.via_servers;if(Array.isArray(i)||(i=void 0),typeof n==`string`)return{roomId:n,eventId:r,viaServers:i}}}var a=this.getStateEvents(E.RoomCreate,``);if(a){var o=a.getContent().predecessor;if(o){var s=o.room_id;if(typeof s==`string`){var c=o.event_id;return(typeof c!=`string`||c===``)&&(c=void 0),{roomId:s,eventId:c}}}}return null}updateThirdPartyTokenCache(e){if(e.getContent().third_party_invite){var t=(e.getContent().third_party_invite.signed||{}).token;t&&this.getStateEvents(E.RoomThirdPartyInvite,t)&&(this.tokenToInvite[t]=e)}}updateDisplayNameCache(e,t){var n=this.userIdsToDisplayNames[e];if(delete this.userIdsToDisplayNames[e],n){var r=IE(n),i=this.displayNameToUserIds.get(r);if(i){var a=i.filter(t=>t!==e);this.displayNameToUserIds.set(r,a)}}this.userIdsToDisplayNames[e]=t;var o=t&&IE(t);if(o){var s=this.displayNameToUserIds.get(o)??[];s.push(e),this.displayNameToUserIds.set(o,s)}}};function JO(e,t){var n=new Set;if(GO(e)&&t){var r=t.getSender();r&&n.add(r);var i=t.getDirectionalContent().additional_creators;Array.isArray(i)&&i.forEach(e=>n.add(e))}return n}function YO(e,t,n){if(n.has(e))return 1/0;var r=t.getDirectionalContent(),i=r.users||{};return i[e]!==void 0&&Number.isInteger(i[e])?i[e]:r.users_default===void 0?0:r.users_default}var M=function(e){return e.Backward=`b`,e.Forward=`f`,e}({}),N=class e{static setEventMetadata(e,t,n){e.setMetadata(t,n)}constructor(e){this.eventTimelineSet=e,h(this,`roomId`,void 0),h(this,`name`,void 0),h(this,`events`,[]),h(this,`baseIndex`,0),h(this,`startState`,void 0),h(this,`endState`,void 0),h(this,`startToken`,null),h(this,`endToken`,null),h(this,`prevTimeline`,null),h(this,`nextTimeline`,null),h(this,`paginationRequests`,{[M.Backward]:null,[M.Forward]:null}),this.roomId=e.room?.roomId??null,this.roomId&&(this.startState=new qO(this.roomId),this.endState=new qO(this.roomId)),this.paginationRequests={b:null,f:null},this.name=this.roomId+`:`+new Date().toISOString()}initialiseState(e){var t,n,r=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}).timelineWasEmpty;if(this.events.length>0)throw Error(`Cannot initialise state after events are added`);(t=this.startState)==null||t.setStateEvents(e,{timelineWasEmpty:r}),(n=this.endState)==null||n.setStateEvents(e,{timelineWasEmpty:r})}forkLive(t){var n=this.getState(t),r=new e(this.eventTimelineSet);return r.startState=n?.clone(),r.endState=n,this.endState=n?.clone(),r}fork(t){var n=this.getState(t),r=new e(this.eventTimelineSet);return r.startState=n?.clone(),r.endState=n?.clone(),r}getRoomId(){return this.roomId}getFilter(){return this.eventTimelineSet.getFilter()}getTimelineSet(){return this.eventTimelineSet}getBaseIndex(){return this.baseIndex}getEvents(){return this.events}getState(t){if(t==e.BACKWARDS)return this.startState;if(t==e.FORWARDS)return this.endState;throw Error(`Invalid direction '`+t+`'`)}getPaginationToken(e){return this.roomId?this.getState(e).paginationToken:e===M.Backward?this.startToken:this.endToken}setPaginationToken(e,t){this.roomId?this.getState(t).paginationToken=e:t===M.Backward?this.startToken=e:this.endToken=e}getNeighbouringTimeline(t){if(t==e.BACKWARDS)return this.prevTimeline;if(t==e.FORWARDS)return this.nextTimeline;throw Error(`Invalid direction '`+t+`'`)}setNeighbouringTimeline(t,n){if(this.getNeighbouringTimeline(n))throw Error(`timeline already has a neighbouring timeline - cannot reset neighbour (direction: `+n+`)`);if(n==e.BACKWARDS)this.prevTimeline=t;else if(n==e.FORWARDS)this.nextTimeline=t;else throw Error(`Invalid direction '`+n+`'`);this.setPaginationToken(null,n)}addEvent(t,n){var r=n.toStartOfTimeline,i=n.roomState,a=n.timelineWasEmpty,o=n.addToState;i||=r?this.startState:this.endState;var s=this.getTimelineSet();if(s.room&&(e.setEventMetadata(t,i,r),o&&t.isState()&&s.room.getUnfilteredTimelineSet()===s)){var c;(c=i)==null||c.setStateEvents([t],{timelineWasEmpty:a}),(!t.sender||t.getType()===E.RoomMember&&!r)&&e.setEventMetadata(t,i,r)}var l=r?0:this.events.length;this.events.splice(l,0,t),r&&this.baseIndex++}insertEvent(t,n,r,i){var a=this.getTimelineSet();a.room&&(e.setEventMetadata(t,r,!1),i&&t.isState()&&a.room.getUnfilteredTimelineSet()===a&&(r.setStateEvents([t],{}),(!t.sender||t.getType()===E.RoomMember)&&e.setEventMetadata(t,r,!1))),this.events.splice(n,0,t)}removeEvent(e){for(var t=this.events.length-1;t>=0;t--){var n=this.events[t];if(n.getId()==e)return this.events.splice(t,1),t2&&arguments[2]!==void 0?arguments[2]:[]].includes(e)},QO=class extends O{constructor(e,t,n,r){var i;super(),i=this,this.relationType=e,this.eventType=t,this.altEventTypes=r,h(this,`relationEventIds`,new Set),h(this,`relations`,new Set),h(this,`annotationsByKey`,{}),h(this,`annotationsBySender`,{}),h(this,`sortedAnnotationsByKey`,[]),h(this,`targetEvent`,null),h(this,`creationEmitted`,!1),h(this,`replacementUpdateId`,0),h(this,`client`,void 0),h(this,`onEventStatus`,(e,t)=>{if(!e.isSending()){e.removeListener($.Status,this.onEventStatus);return}t===P.CANCELLED&&(e.removeListener($.Status,this.onEventStatus),this.removeEvent(e))}),h(this,`onBeforeRedaction`,function(){var e=C(function*(e){i.relations.has(e)&&(i.relations.delete(e),i.relationType===D.Annotation?i.removeAnnotationFromAggregation(e):i.relationType===D.Replace&&(yield i.updateTargetEventReplacement()),e.removeListener($.BeforeRedaction,i.onBeforeRedaction),i.emit(XO.Redaction,e))});return function(t){return e.apply(this,arguments)}}()),this.client=n instanceof RA?n.client:n}addEvent(e){var t=this;return C(function*(){if(!t.relationEventIds.has(e.getId())){var n=e.getRelation();if(!n){w.error(`Event must have relation info`);return}var r=n.rel_type,i=e.getType();if(t.relationType!==r||!ZO(i,t.eventType,t.altEventTypes)){w.error(`Event relation info doesn't match this container`);return}e.isSending()&&e.on($.Status,t.onEventStatus),t.relations.add(e),t.relationEventIds.add(e.getId()),t.relationType===D.Annotation?t.addAnnotationToAggregation(e):t.relationType===D.Replace&&(yield t.updateTargetEventReplacement()),e.on($.BeforeRedaction,t.onBeforeRedaction),t.emit(XO.Add,e),t.maybeEmitCreated()}})()}removeEvent(e){var t=this;return C(function*(){t.relations.has(e)&&(t.relations.delete(e),t.relationType===D.Annotation?t.removeAnnotationFromAggregation(e):t.relationType===D.Replace&&(yield t.updateTargetEventReplacement()),t.emit(XO.Remove,e))})()}getRelations(){return[...this.relations]}addAnnotationToAggregation(e){var t=(e.getRelation()??{}).key;if(t){var n=this.annotationsByKey[t];n||(n=this.annotationsByKey[t]=new Set,this.sortedAnnotationsByKey.push([t,n])),n.add(e),this.sortedAnnotationsByKey.sort((e,t)=>{var n=e[1];return t[1].size-n.size});var r=e.getSender(),i=this.annotationsBySender[r];i||=this.annotationsBySender[r]=new Set,i.add(e)}}removeAnnotationFromAggregation(e){var t=(e.getRelation()??{}).key;if(t){var n=this.annotationsByKey[t];n&&(n.delete(e),this.sortedAnnotationsByKey.sort((e,t)=>{var n=e[1];return t[1].size-n.size}));var r=e.getSender(),i=this.annotationsBySender[r];i&&i.delete(e)}}getSortedAnnotationsByKey(){return this.relationType===D.Annotation?this.sortedAnnotationsByKey:null}getAnnotationsBySender(){return this.relationType===D.Annotation?this.annotationsBySender:null}getLastReplacement(){var e=this;return C(function*(){if(e.relationType!==D.Replace||!e.targetEvent)return null;var t=e.targetEvent.getServerAggregatedRelation(D.Replace)?.origin_server_ts,n=e.getRelations().reduce((n,r)=>r.getSender()!==e.targetEvent.getSender()||t&&t>r.getTs()||n&&n.getTs()>r.getTs()?n:r,null);return n!=null&&n.shouldAttemptDecryption()&&e.client.getCrypto()?yield n.attemptDecryption(e.client.getCrypto()):n!=null&&n.isBeingDecrypted()&&(yield n.getDecryptionPromise()),n})()}setTargetEvent(e){var t=this;return C(function*(){t.targetEvent||(t.targetEvent=e,t.relationType===D.Replace&&(yield t.updateTargetEventReplacement()),t.maybeEmitCreated())})()}updateTargetEventReplacement(){var e=this;return C(function*(){if(!(!e.targetEvent||e.targetEvent.isState())){var t=e.targetEvent,n=++e.replacementUpdateId,r=yield e.getLastReplacement();n!==e.replacementUpdateId||e.targetEvent!==t||!r&&!t.replacingEvent()||t.makeReplaced(r??void 0)}})()}maybeEmitCreated(){this.creationEmitted||!this.targetEvent||!this.relations.size||(this.creationEmitted=!0,this.targetEvent.emit($.RelationsCreated,this.relationType,this.eventType))}},$O=class{constructor(e,t){this.client=e,this.room=t,h(this,`relations`,new Map)}getChildEventsForEvent(e,t,n){var r;return(r=this.relations.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getAllChildEventsForEvent(e){var t=this.relations.get(e)??new Map,n=[];for(var r of t.values())for(var i of r.values())n.push(...i.getRelations());return n}aggregateParentEvent(e){var t=this.relations.get(e.getId());if(t)for(var n of t.values())for(var r of n.values())r.setTargetEvent(e)}aggregateChildEvent(e,t){if(!(e.isRedacted()||e.status===P.CANCELLED)){var n=e.getRelation();if(n){var r=()=>{if(e.isDecryptionFailure()){e.once($.Decrypted,r);return}this.aggregateChildEvent(e,t)};if(e.isBeingDecrypted()||e.shouldAttemptDecryption()){e.once($.Decrypted,r);return}var i=n.event_id,a=n.rel_type,o=e.getType(),s=this.relations.get(i);s||(s=new Map,this.relations.set(i,s));var c=s.get(a);c||(c=new Map,s.set(a,c));var l=c.get(o);if(!l){l=new QO(a,o,this.client),c.set(o,l);var u=this.room??t?.room,d=t?.findEventById(i)??u?.findEventById(i)??u?.getPendingEvent(i);d&&l.setTargetEvent(d)}l.addEvent(e)}}}},ek=w.log.bind(w),tk=function(e){return e.Ignore=`ignore`,e.Replace=`replace`,e}({}),nk=class extends O{constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;super(),this.room=e,this.thread=r,this.threadListType=i,h(this,`relations`,void 0),h(this,`timelineSupport`,void 0),h(this,`displayPendingEvents`,void 0),h(this,`liveTimeline`,void 0),h(this,`timelines`,void 0),h(this,`_eventIdToTimeline`,new Map),h(this,`filter`,void 0),this.timelineSupport=!!t.timelineSupport,this.liveTimeline=new N(this),this.displayPendingEvents=t.pendingEvents!==!1,this.timelines=[this.liveTimeline],this._eventIdToTimeline=new Map,this.filter=t.filter,this.relations=this.room?.relations??new $O(e?.client??n)}getTimelines(){return this.timelines}getFilter(){return this.filter}setFilter(e){this.filter=e}getPendingEvents(){return!this.room||!this.displayPendingEvents?[]:this.room.getPendingEvents()}getLiveTimeline(){return this.liveTimeline}setLiveTimeline(e){this.liveTimeline=e}eventIdToTimeline(e){return this._eventIdToTimeline.get(e)}replaceEventId(e,t){var n=this._eventIdToTimeline.get(e);n&&(this._eventIdToTimeline.delete(e),this._eventIdToTimeline.set(t,n))}resetLiveTimeline(e,t){var n=!this.timelineSupport||!t,r=this.liveTimeline,i=n?r.forkLive(N.FORWARDS):r.fork(N.FORWARDS);n?(this.timelines=[i],this._eventIdToTimeline=new Map):this.timelines.push(i),t&&r.setPaginationToken(t,N.FORWARDS),i.setPaginationToken(e??null,N.BACKWARDS),this.liveTimeline=i,this.emit(z.TimelineReset,this.room,this,n)}getTimelineForEvent(e){if(e==null)return null;var t=this._eventIdToTimeline.get(e);return t===void 0?null:t}findEventById(e){var t=this.getTimelineForEvent(e);if(t)return t.getEvents().find(function(t){return t.getId()==e})}addTimeline(){if(!this.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);var e=new N(this);return this.timelines.push(e),e}addEventsToTimeline(e,t,n,r,i){if(!r)throw Error(`'timeline' not specified for EventTimelineSet.addEventsToTimeline`);if(!t&&r==this.liveTimeline)throw Error(`EventTimelineSet.addEventsToTimeline cannot be used for adding events to the live timeline - use Room.addLiveEvents instead`);if(!(this.filter&&(e=this.filter.filterRoomTimeline(e),!e.length))){var a=t?N.BACKWARDS:N.FORWARDS,o=t?N.FORWARDS:N.BACKWARDS,s=!1,c=!1;for(var l of e){var u=l.getId(),d=this._eventIdToTimeline.get(u);if(!d){this.addEventToTimeline(l,r,{toStartOfTimeline:t,addToState:n}),c=!0,s=!0;continue}if(c=!1,d==r){ek(`Event `+u+` already in timeline `+r);continue}var f=r.getNeighbouringTimeline(a);if(f){ek(d==f?`Event `+u+` in neighbouring timeline - switching to `+d:`Event `+u+` already in a different timeline `+d),r=d;continue}w.info(`Already have timeline for `+u+` - joining timeline `+r+` to `+d);var p=d===this.liveTimeline,m=r===this.liveTimeline,h=a===N.BACKWARDS&&p,g=a===N.FORWARDS&&m;if(h||g){h&&w.warn(`Refusing to set a preceding existingTimeLine on our timeline as the existingTimeLine is live (`+d+`)`),g&&w.warn(`Refusing to set our preceding timeline on a existingTimeLine as our timeline is live (`+r+`)`);continue}r.setNeighbouringTimeline(d,a),d.setNeighbouringTimeline(r,o),r=d,s=!0}if(c||!s){if(a===N.FORWARDS&&r===this.liveTimeline){w.warn({lastEventWasNew:c,didUpdate:s}),w.warn(`Refusing to set forwards pagination token of live timeline ${r} to ${i}`);return}r.setPaginationToken(i??null,a)}}}addLiveEvent(e,t){var n=t.duplicateStrategy,r=t.fromCache,i=t.roomState,a=t.timelineWasEmpty,o=t.addToState;if(!(this.filter&&!this.filter.filterRoomTimeline([e]).length)){var s=this._eventIdToTimeline.get(e.getId());if(s){if(n===tk.Replace){ek(`EventTimelineSet.addLiveEvent: replacing duplicate event `+e.getId());for(var c=s.getEvents(),l=0;le.getTs());l++);t.insertEvent(e,l,n,r),this._eventIdToTimeline.set(i,t);var u={timeline:t,liveEvent:!1};this.emit(z.Timeline,e,this.room,!1,!1,u)}handleRemoteEcho(e,t,n){var r=this._eventIdToTimeline.get(t);r?(this._eventIdToTimeline.delete(t),this._eventIdToTimeline.set(n,r)):(!this.filter||this.filter.filterRoomTimeline([e]).length)&&this.addEventToTimeline(e,this.liveTimeline,{toStartOfTimeline:!1,addToState:!1})}removeEvent(e){var t=this._eventIdToTimeline.get(e);if(!t)return null;var n=t.removeEvent(e);if(n){this._eventIdToTimeline.delete(e);var r={timeline:t};this.emit(z.Timeline,n,this.room,void 0,!0,r)}return n}compareEventOrdering(e,t){if(e==t)return 0;var n=this._eventIdToTimeline.get(e),r=this._eventIdToTimeline.get(t);if(n===void 0||r===void 0)return null;if(n===r){for(var i=void 0,a=void 0,o=n.getEvents(),s=0;s0)}for(var u=n;u;){if(u===r)return-1;u=u.getNeighbouringTimeline(N.FORWARDS)}for(u=n;u;){if(u===r)return 1;u=u.getNeighbouringTimeline(N.BACKWARDS)}return null}canContain(e){if(!this.room)throw Error("Cannot call `EventTimelineSet::canContain without a `room` set. Set the room when creating the EventTimelineSet to call this method.");var t=this.room.eventShouldLiveIn(e),n=t.threadId,r=t.shouldLiveInRoom,i=t.shouldLiveInThread;return this.thread?this.thread.id===n:(!r&&!i&&w.warn(`EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=${this.room?.roomId} eventId=${e.getId()} threadId=${e.threadRootId}`),r)}},P=function(e){return e.NOT_SENT=`not_sent`,e.ENCRYPTING=`encrypting`,e.SENDING=`sending`,e.QUEUED=`queued`,e.SENT=`sent`,e.CANCELLED=`cancelled`,e}({}),rk=class{constructor(e,t){this.roomId=e}},ik=new _E(`unread_thread_notifications`,`org.matrix.msc3773.unread_thread_notifications`);function ak(e,t){if(t.endsWith(`*`)){var n=t.slice(0,-1);return e.slice(0,n.length)===n}else return e===t}var ok=class{constructor(e,t){this.filterJson=e,this.userId=t}check(e){var t,n=e.getUnsigned()?.[`m.relations`]||{},r=Object.keys(n),i=[];return this.userId&&n!=null&&(t=n[Q.name])!=null&&t.current_user_participated&&i.push(this.userId),this.checkFields(e.getRoomId(),e.getSender(),e.getType(),e.getContent()?e.getContent().url!==void 0:!1,r,i)}toJSON(){return Object.fromEntries(Object.entries({types:this.filterJson.types,not_types:this.filterJson.not_types,rooms:this.filterJson.rooms,not_rooms:this.filterJson.not_rooms,senders:this.filterJson.senders,not_senders:this.filterJson.not_senders,contains_url:this.filterJson.contains_url,[wI.name]:this.filterJson[wI.name],[TI.name]:this.filterJson[TI.name]}).filter(e=>{var t=x(e,2);return t[0],t[1]}))}checkFields(e,t,n,r,i,a){var o={rooms:function(t){return e===t},senders:function(e){return t===e},types:function(e){return ak(n,e)}};for(var s in o){var c=o[s],l=`not_`+s,u=this.filterJson[l];if(u!=null&&u.some(c))return!1;var d=this.filterJson[s];if(d&&!d.some(c))return!1}var f=this.filterJson.contains_url;if(f!==void 0&&f!==r)return!1;var p=this.filterJson[TI.name];if(p!==void 0&&!this.arrayMatchesFilter(p,i))return!1;var m=this.filterJson[wI.name];return!(m!==void 0&&!this.arrayMatchesFilter(m,a))}arrayMatchesFilter(e,t){return t.length>0&&e.every(e=>t.includes(e))}filter(e){return e.filter(this.check,this)}limit(){return this.filterJson.limit===void 0?10:this.filterJson.limit}};function sk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ck(e){for(var t=1;t3&&arguments[3]!==void 0?arguments[3]:!1;return new MI({content:{[t.getId()]:{[n]:{[e]:pk({ts:t.getTs()},!r&&{thread_id:hI(t)})}}},type:E.Receipt,room_id:t.getRoomId()})}var hk=0,gk=1,_k=class extends O{constructor(){super(...arguments),h(this,`receipts`,new gD(()=>new Map)),h(this,`receiptCacheByEventId`,new Map)}getReadReceiptForUserId(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:SE.Read,r=x(this.receipts.get(n)?.get(e)??[null,null],2),i=r[0],a=r[1];return t?i:a??i}compareReceipts(e,t){return this.getUnfilteredTimelineSet().compareEventOrdering(e.eventId,t.eventId)??e.data.ts-t.data.ts}getEventReadUpTo(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=this.getLatestReceipt(e,t);return n&&this.receiptPointsAtConsistentEvent(n)?n.eventId:null}receiptPointsAtConsistentEvent(e){var t,n=this.findEventById(e.eventId);if(!n)return!1;if(!((t=e.data)!=null&&t.thread_id))return!0;if(e.data.thread_id===`main`){if(gI(n))return!0}else if(n.threadRootId===e.data.thread_id)return!0;return w.warn(`Ignoring receipt because its thread_id (${e.data.thread_id}) disagrees with the thread root (${n.threadRootId}) of the referenced event (event ID = ${e.eventId})`),!1}getLatestReceipt(e,t){var n=this.getReadReceiptForUserId(e,t,SE.Read),r=this.getReadReceiptForUserId(e,t,SE.ReadPrivate),i;return n!=null&&n.eventId&&r!=null&&r.eventId&&(i=this.compareReceipts(n,r)),i?(i<0?r:n)??null:r??n??null}addReceiptToStructure(e,t,n,r,i){var a=this.receipts.getOrCreate(t),o=a.get(n);o||(o=[null,null],a.set(n,o));var s=o[hk];i&&(s=o[gk]??o[hk]);var c={eventId:e,data:r};if(!(s&&this.compareReceipts(s,c)>=0)){var l=i?o[hk]:c,u=i?c:o[gk],d=null;l&&u&&(d=this.getUnfilteredTimelineSet().compareEventOrdering(l.eventId,u.eventId));var f=d===null||d<0,p=o[gk]??o[hk];if(i&&f?o[gk]=c:i||(o[hk]=c,f||(o[gk]=null)),p!==(o[gk]??o[hk])){if(p&&this.receiptCacheByEventId.get(p.eventId)){var m=p.eventId;this.receiptCacheByEventId.set(m,this.receiptCacheByEventId.get(m).filter(e=>e.type!==t||e.userId!==n)),this.receiptCacheByEventId.get(m).length<1&&this.receiptCacheByEventId.delete(m)}this.receiptCacheByEventId.get(e)||this.receiptCacheByEventId.set(e,[]),this.receiptCacheByEventId.get(e).push({userId:n,type:t,data:r})}}}getReceiptsForEvent(e){return this.receiptCacheByEventId.get(e.getId())||[]}fixupNotifications(e){var t=this.getReadReceiptForUserId(e,!1),n=this.timeline[this.timeline.length-1];n&&t?.eventId===n.getId()&&e===n.getSender()&&(this.setUnread(R.Total,0),this.setUnread(R.Highlight,0))}addLocalEchoReceipt(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;this.addReceipt(mk(e,t,n,r),!0)}getUsersReadUpTo(e){return this.getReceiptsForEvent(e).filter(function(e){return lD(e.type)}).map(function(e){return e.userId})}};new RD.UnstableValue(`m.poll.disclosed`,`org.matrix.msc3381.poll.disclosed`),new RD.UnstableValue(`m.poll.undisclosed`,`org.matrix.msc3381.poll.undisclosed`),new RD.UnstableValue(`m.poll.start`,`org.matrix.msc3381.poll.start`);var vk=new RD.UnstableValue(`m.poll.response`,`org.matrix.msc3381.poll.response`),yk=new RD.UnstableValue(`m.poll.end`,`org.matrix.msc3381.poll.end`),bk=function(e){return e.New=`Poll.new`,e.End=`Poll.end`,e.Update=`Poll.update`,e.Responses=`Poll.Responses`,e.Destroy=`Poll.Destroy`,e.UndecryptableRelations=`Poll.UndecryptableRelations`,e}({}),xk=(e,t)=>({responseEvents:e.filter(e=>{if(!e.isDecryptionFailure())return vk.matches(e.getType())&&e.getTs()<=t})}),Sk=class extends O{constructor(e,t,n){if(super(),this.rootEvent=e,this.matrixClient=t,this.room=n,h(this,`roomId`,void 0),h(this,`pollEvent`,void 0),h(this,`_isFetchingResponses`,!1),h(this,`relationsNextBatch`,void 0),h(this,`responses`,null),h(this,`endEvent`,void 0),h(this,`undecryptableRelationEventIds`,new Set),h(this,`countUndecryptableEvents`,e=>{var t=e.filter(e=>e.isDecryptionFailure()).map(e=>e.getId()),n=this.undecryptableRelationsCount;this.undecryptableRelationEventIds=new Set([...this.undecryptableRelationEventIds,...t]),this.undecryptableRelationsCount!==n&&this.emit(bk.UndecryptableRelations,this.undecryptableRelationsCount)}),!this.rootEvent.getRoomId()||!this.rootEvent.getId())throw Error(`Invalid poll start event.`);this.roomId=this.rootEvent.getRoomId(),this.pollEvent=this.rootEvent.unstableExtensibleEvent}get pollId(){return this.rootEvent.getId()}get endEventId(){return this.endEvent?.getId()}get isEnded(){return!!this.endEvent}get isFetchingResponses(){return this._isFetchingResponses}get undecryptableRelationsCount(){return this.undecryptableRelationEventIds.size}getResponses(){var e=this;return C(function*(){return e.responses||e.isFetchingResponses||(yield e.fetchResponses()),e.responses})()}onNewRelation(e){if(yk.matches(e.getType())&&this.validateEndEvent(e)&&(this.endEvent=e,this.refilterResponsesOnEnd(),this.emit(bk.End)),this.responses){var t=this.endEvent?.getTs()||2**53-1,n=xk([e],t).responseEvents;this.countUndecryptableEvents([e]),n.length&&(n.forEach(e=>{this.responses.addEvent(e)}),this.emit(bk.Responses,this.responses))}}fetchResponses(){var e=this;return C(function*(){e._isFetchingResponses=!0;var t=yield e.matrixClient.relations(e.roomId,e.rootEvent.getId(),`m.reference`,void 0,{from:e.relationsNextBatch||void 0});yield Promise.all(t.events.map(t=>e.matrixClient.decryptEventIfNeeded(t)));var n=e.responses||new QO(`m.reference`,vk.name,e.matrixClient,[vk.altName]),r=t.events.find(e=>yk.matches(e.getType()));e.validateEndEvent(r)&&(e.endEvent=r,e.refilterResponsesOnEnd(),e.emit(bk.End));var i=e.endEvent?.getTs()||2**53-1;xk(t.events,i).responseEvents.forEach(e=>{n.addEvent(e)}),e.relationsNextBatch=t.nextBatch??void 0,e.responses=n,e.countUndecryptableEvents(t.events),e.relationsNextBatch?e.fetchResponses():e._isFetchingResponses=!1,e.emit(bk.Responses,e.responses)})()}refilterResponsesOnEnd(){if(this.responses){var e=this.endEvent?.getTs()||2**53-1;this.responses.getRelations().forEach(t=>{if(t.getTs()>e){var n;(n=this.responses)==null||n.removeEvent(t)}}),this.emit(bk.Responses,this.responses)}}validateEndEvent(e){if(!e||this.endEvent&&this.endEvent.getTs(){var t=e.getType();return RD.M_POLL_START.matches(t)||vk.matches(t)||yk.matches(t)},wk=class{constructor(e){h(this,`room`,void 0),h(this,`threadedReceipts`,void 0),h(this,`unthreadedReceipts`,void 0),h(this,`danglingReceipts`,void 0),h(this,`onTimelineEvent`,e=>{var t=e.getId();t&&this.danglingReceipts.remove(t)?.forEach(e=>{e.receipt.thread_id?this.threadedReceipts.set(e.receipt.thread_id,e.eventId,e.receiptType,e.userId,e.receipt.ts,e.synthetic):this.unthreadedReceipts.set(t,e.receiptType,e.userId,e.receipt.ts,e.synthetic)})}),this.room=e,this.threadedReceipts=new kk(e),this.unthreadedReceipts=new Ok(e),this.danglingReceipts=new Ak,e.on(z.Timeline,this.onTimelineEvent)}add(e,t){for(var n of Object.entries(e)){var r=x(n,2),i=r[0],a=r[1];for(var o of Object.entries(a)){var s=x(o,2),c=s[0],l=s[1];for(var u of Object.entries(l)){var d=x(u,2),f=d[0],p=d[1];this.room.findEventById(i)?p.thread_id?this.threadedReceipts.set(p.thread_id,i,c,f,p.ts,t):this.unthreadedReceipts.set(i,c,f,p.ts,t):this.danglingReceipts.add(new Ek(i,c,f,p,t))}}}}hasUserReadEvent(e,t){var n=this.unthreadedReceipts.get(e);if(n&&Mk(n.eventId,t,this.room))return!0;var r=this.room.findEventById(t);if(!r)return w.warn(`hasUserReadEvent event ID ${t} not found in room ${this.room.roomId}: this shouldn't happen!`),!1;var i=hI(r),a=this.threadedReceipts.get(i,e);return!!(a&&Mk(a.eventId,t,this.room)||this.userSentLatestEventInThread(i,e))}userSentLatestEventInThread(e,t){var n=e===`main`?this.room.getLiveTimeline().getEvents():this.room.getThread(e)?.timeline;return!!(n&&n.length>0&&n[n.length-1].getSender()===t)}},Tk=class{constructor(e,t,n){this.eventId=e,this.receiptType=t,this.ts=n}},Ek=class{constructor(e,t,n,r,i){this.eventId=e,this.receiptType=t,this.userId=n,this.receipt=r,this.synthetic=i}},Dk=class{constructor(e){h(this,`room`,void 0),h(this,`real`,void 0),h(this,`synthetic`,void 0),this.room=e,this.real=void 0,this.synthetic=void 0}set(e,t){e?this.synthetic=t:this.real=t,this.synthetic&&this.real&&Mk(this.real.eventId,this.synthetic.eventId,this.room)&&(this.synthetic=void 0)}get(){return this.synthetic??this.real}getByType(e){return e?this.synthetic:this.real}},Ok=class{constructor(e){h(this,`room`,void 0),h(this,`data`,void 0),this.room=e,this.data=new Map}set(e,t,n,r,i){var a=jk(this.data,n,()=>new Dk(this.room)),o=a.getByType(i);o&&Nk(o.eventId,e,this.room)||a.set(i,new Tk(e,t,r))}get(e){return this.data.get(e)?.get()}},kk=class{constructor(e){h(this,`room`,void 0),h(this,`data`,void 0),this.room=e,this.data=new Map}set(e,t,n,r,i,a){jk(this.data,e,()=>new Ok(this.room)).set(t,n,r,i,a)}get(e,t){return this.data.get(e)?.get(t)}},Ak=class{constructor(){h(this,`data`,new Map)}add(e){jk(this.data,e.eventId,()=>[]).push(e)}remove(e){var t=this.data.get(e);return this.data.delete(e),t}};function jk(e,t,n){var r=e.get(t);if(r)return r;var i=n();return e.set(t,i),i}function Mk(e,t,n){var r=n.compareEventOrdering(e,t);return r!==null&&r>=0}function Nk(e,t,n){var r=n.compareEventOrdering(e,t);return r!==null&&r>0}function Pk(e,t,n){var r=e.findEventById(t),i=e.findEventById(n);if(!r||!i)return null;var a=gI(r),o=gI(i);return a&&o?Fk(e,t,n,r,i):Ik(t,n,r,i)}function Fk(e,t,n,r,i){var a=e.getUnfilteredTimelineSet(),o=a.compareEventOrdering(t,n);return o===null?a.getTimelineForEvent(t)===a.getLiveTimeline()?1:a.getTimelineForEvent(n)===a.getLiveTimeline()?-1:Lk(r,i):o}function Ik(e,t,n,r){var i=hI(n),a=hI(r),o=n.getThread();return o&&i===a?o.timelineSet.compareEventOrdering(e,t):Lk(n,r)}function Lk(e,t){var n=e.getTs(),r=t.getTs();return nr)}var Rk=360*60*1e3,zk=30*1e3,Bk=class extends O{constructor(e,t,n){var r;super(),r=this,this.logger=e,this.http=t,this.name=n,h(this,`cached`,void 0),h(this,`retryTimeout`,void 0),h(this,`refreshTimeout`,void 0),h(this,`poll`,C(function*(){r.logger.debug(`Checking capabilites`);try{var e=r.cached;yield r.fetch(),r.clearTimeouts(),r.refreshTimeout=globalThis.setTimeout(r.poll,Rk),r.logger.debug(`Fetched new server ${r.name}`),r.cached&&!NE(e,r.cached)&&r.emit(`update`,r.cached)}catch(e){r.clearTimeouts();var t=Math.floor(zk+Math.random()*5e3);r.retryTimeout=globalThis.setTimeout(r.poll,t),r.logger.warn(`Failed to refresh ${r.name}: retrying in ${t}ms`,e)}}))}start(){this.poll().then()}stop(){this.clearTimeouts()}getCached(){return this.cached}clearTimeouts(){this.refreshTimeout&&=(clearInterval(this.refreshTimeout),void 0),this.retryTimeout&&=(clearTimeout(this.retryTimeout),void 0)}},F=function(e){return e.Get=`GET`,e.Put=`PUT`,e.Post=`POST`,e.Delete=`DELETE`,e.Options=`OPTIONS`,e.Head=`HEAD`,e.Patch=`PATCH`,e}({});function Vk(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hk(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,a=e.error||`Unknown message`;t&&(a=`[${t}] ${a}`),n&&(a=`${a} (${n})`),super(`MatrixError: ${a}`,t,i),this.url=n,this.event=r,h(this,`errcode`,void 0),h(this,`error`,void 0),h(this,`data`,void 0),this.errcode=e.errcode,this.error=e.error,this.name=e.errcode||`Unknown error code`,this.data=e}isRateLimitError(){return this.errcode===`M_LIMIT_EXCEEDED`||(this.errcode===`M_UNKNOWN`||this.errcode===void 0)&&super.isRateLimitError()}getRetryAfterMs(){var e=super.getRetryAfterMs();if(e!==null)return e;if(this.errcode===`M_LIMIT_EXCEEDED`&&`retry_after_ms`in this.data){if(!Number.isInteger(this.data.retry_after_ms))throw Error(`retry_after_ms is not an integer`);return this.data.retry_after_ms}return null}asWidgetApiErrorData(){var e={};if(this.httpHeaders)for(var t of this.httpHeaders){var n=x(t,2),r=n[0];e[r]=n[1]}return{http_status:this.httpStatus??400,http_headers:e,url:this.url??``,response:Hk({errcode:this.errcode??`M_UNKNOWN`,error:this.data.error??`Unknown message`},this.data)}}static fromWidgetApiErrorData(t){return new e(t.response,t.http_status,t.url,void 0,new Headers(t.http_headers))}};function Wk(e,t){if(!(e instanceof Uk)||!e.isRateLimitError())return t;try{return e.getRetryAfterMs()??t}catch{return t}}var Gk=class extends Error{constructor(e,t){super(e+(t?`: ${t.message}`:``))}get name(){return`ConnectionError`}},Kk=class extends Error{constructor(e){super(e?.message??``)}get name(){return`TokenRefreshError`}},qk=class extends Error{constructor(e){super(e?.message??``)}get name(){return`TokenRefreshLogoutError`}},Jk=new gE(null,`ORG.MATRIX.MSC4387_SAFETY`),Yk=class extends I{constructor(){super(...arguments),h(this,`harms`,void 0),h(this,`expiry`,void 0);var e=arguments.length<=0?void 0:arguments[0];this.harms=new Set(e&&`harms`in e&&Array.isArray(e.harms)?e.harms:[]),this.message=`${super.message} (${[...this.harms].join(`, `)})`,e&&`expiry`in e&&typeof e.expiry==`number`&&(this.expiry=new Date(e.expiry))}},Xk=function(e){return e.SessionLoggedOut=`Session.logged_out`,e.NoConsent=`no_consent`,e}({}),Zk=s((e=>{ +/*! +* content-type +* Copyright(c) 2015 Douglas Christopher Wilson +* MIT Licensed +*/ +Object.defineProperty(e,"__esModule",{value:!0}),e.parse=n;let t=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function n(e,n){let s=e.length,c=a(e,0,s),l=c;c=i(e,c,s);let u=o(e,l,c);return{type:e.slice(l,u).toLowerCase(),parameters:n?.parameters===!1?new t:r(e,c,s)}}function r(e,n,r){let s=new t;parameter:for(;nt;){let t=e.charCodeAt(n-1);if(t!==32&&t!==9)break;n--}return n}}))();function Qk(e){var t=new AbortController;return setTimeout(()=>{t.abort()},e),t.signal}function $k(e){var t=new AbortController;function n(){for(var t of e)t.removeEventListener(`abort`,r)}function r(){t.abort(),n()}for(var i of e){if(i.aborted){r();break}i.addEventListener(`abort`,r)}return{signal:t.signal,cleanup:n}}function eA(e,t){var n=tA(e)?new Headers(e.getAllResponseHeaders().trim().split(/[\r\n]+/).map(e=>{var t=e.indexOf(`:`);return[e.substring(0,t),e.substring(t+1)]})):e.headers,r;try{r=nA(n)}catch(e){return e}if(r?.type===`application/json`&&t){var i=JSON.parse(t);return i.errcode&&Jk.matches(i.errcode)?new Yk(i,e.status,tA(e)?e.responseURL:e.url,void 0,n):new I(i,e.status,tA(e)?e.responseURL:e.url,void 0,n)}return r?.type===`text/plain`?new Uk(`Server returned ${e.status} error: ${t}`,e.status,n):new Uk(`Server returned ${e.status} error`,e.status,n)}function tA(e){return`getResponseHeader`in e}function nA(e){var t=e.get(`Content-Type`);return t===null?null:(0,Zk.parse)(t)}function rA(e,t){return iA.apply(this,arguments)}function iA(){return iA=C(function*(e,t){for(var n=0,r=null;n0){var i=1e3*2**n;w.log(`network operation failed ${n} times, retrying in ${i}ms...`),yield UE(i)}return yield t()}catch(e){if(e instanceof Gk)n+=1,r=e;else throw e}throw r}),iA.apply(this,arguments)}function aA(e,t,n){return t>4||e instanceof Gk&&!n||e.httpStatus&&Math.floor(e.httpStatus/100)===4&&e.httpStatus!==429||e.name===`AbortError`||e.name===`M_TOO_LARGE`?-1:Wk(e,1e3*2**t)}var oA=function(e){return e.Success=`success`,e.Failure=`failure`,e.Logout=`logout`,e}({}),sA=500,cA=60*1e3,lA=class{constructor(e){this.opts=e,h(this,`tokenRefreshPromise`,void 0),h(this,`latestTokenRefreshExpiry`,void 0)}prepareForRequest(){var e=this;return C(function*(){return yield e.refreshIfNeeded(),{accessToken:e.opts.accessToken,refreshToken:e.opts.refreshToken,expiry:e.latestTokenRefreshExpiry}})()}refreshIfNeeded(){var e=this;return C(function*(){if(e.tokenRefreshPromise)return e.tokenRefreshPromise;e.latestTokenRefreshExpiry&&e.latestTokenRefreshExpiry.getTime()-Date.now()<=sA&&(yield e._handleUnknownToken())})()}handleUnknownToken(e,t){var n=this;return C(function*(){return n._handleUnknownToken(e,t)})()}_handleUnknownToken(e,t){var n=this;return C(function*(){if(e!=null&&e.expiry&&e.expiry.getTime()-Date.now()>=cA)return oA.Logout;if(!e||e?.accessToken===n.opts.accessToken){n.tokenRefreshPromise??=n.doTokenRefresh(t);try{return yield n.tokenRefreshPromise}finally{n.tokenRefreshPromise=void 0}}return oA.Success})()}doTokenRefresh(e){var t=this;return C(function*(){if(!t.opts.refreshToken||!t.opts.tokenRefreshFunction){var n;return(n=t.opts.logger)==null||n.error(`Unable to refresh token - no refresh token or refresh function`),oA.Logout}e&&e>1&&(yield UE(1e3*Math.min(32,2**e)));try{var r,i;(r=t.opts.logger)==null||r.debug(`Attempting to refresh token`);var a=yield t.opts.tokenRefreshFunction(t.opts.refreshToken),o=a.accessToken,s=a.refreshToken,c=a.expiry;return t.opts.accessToken=o,t.opts.refreshToken=s,t.latestTokenRefreshExpiry=c,(i=t.opts.logger)==null||i.debug(`... token refresh complete, new token expiry:`,c),oA.Success}catch(e){var l;if(e instanceof qk||e instanceof I){var u;return(u=t.opts.logger)==null||u.error(`Failed to refresh token`,e),oA.Logout}return(l=t.opts.logger)==null||l.warn(`Failed to refresh token`,e),oA.Failure}})()}};function uA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function dA(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{};return this.doAuthedRequest(1,e,t,n,r,i)}doAuthedRequest(e,t,n,r,i){var a=arguments,o=this;return C(function*(){var s=a.length>5&&a[5]!==void 0?a[5]:{},c=ME(s);c.abortSignal=s.abortSignal;var l=yield o.tokenRefresher.prepareForRequest();l.accessToken&&(o.opts.useAuthorizationHeader?(c.headers||={},c.headers.Authorization||(c.headers.Authorization=`Bearer ${l.accessToken}`),r.access_token&&delete r.access_token):r.access_token||=l.accessToken);try{return yield o.request(t,n,r,i,c)}catch(a){if(!(a instanceof I))throw a;if(a.errcode===`M_UNKNOWN_TOKEN`){var u=yield o.tokenRefresher.handleUnknownToken(l,e);if(u===oA.Success)return o.doAuthedRequest(e+1,t,n,r,i,s);if(u===oA.Failure)throw new Kk(a);c!=null&&c.inhibitLogoutEmit||o.eventEmitter.emit(Xk.SessionLoggedOut,a)}else a.errcode==`M_CONSENT_NOT_GIVEN`&&o.eventEmitter.emit(Xk.NoConsent,a.message,a.data.consent_uri);throw a}})()}request(e,t,n,r,i){var a=this.getUrl(t,n,i?.prefix,i?.baseUrl);return this.requestOtherUrl(e,a,r,i)}requestOtherUrl(e,t,n){var r=arguments,i=this;return C(function*(){var a,o,s=r.length>3&&r[3]!==void 0?r[3]:{};if(s.json!==void 0&&s.rawResponseBody!==void 0)throw Error("Invalid call to `FetchHttpApi` sets both `opts.json` and `opts.rawResponseBody`");var c=i.sanitizeUrlForLogs(t);(a=i.opts.logger)==null||a.debug(`FetchHttpApi: --> ${e} ${c}`);var l=Object.assign({},s.headers||{}),u=!s.rawResponseBody&&s.json!==!1;u&&(l.Accept||=`application/json`);var d=s.localTimeoutMs??i.opts.localTimeoutMs,f=s.keepAlive??!1,p=[i.abortController.signal];d!==void 0&&p.push(Qk(d)),s.abortSignal&&p.push(s.abortSignal);var m;s.json!==!1&&(n==null||(o=n.constructor)==null?void 0:o.name)===Object.name?(m=JSON.stringify(n),l[`Content-Type`]||=`application/json`):m=n;var h=$k(p),g=h.signal,_=h.cleanup,v=`Authorization`in l?void 0:`no-cache`,y,b=Date.now();try{var x;y=yield i.fetch(t,{signal:g,method:e,body:m,headers:l,mode:`cors`,redirect:`follow`,referrer:``,referrerPolicy:`no-referrer`,cache:v,credentials:`omit`,keepalive:f,priority:s.priority}),(x=i.opts.logger)==null||x.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-b}ms ${y.status}]`)}catch(t){var S;throw(S=i.opts.logger)==null||S.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-b}ms ${t}]`),t.name===`AbortError`?t:new Gk(`fetch failed`,t)}finally{_()}if(!y.ok)throw eA(y,yield y.text());return s.rawResponseBody?yield y.blob():u?yield y.json():yield y.text()})()}sanitizeUrlForLogs(e){try{var t=typeof e==`string`?new URL(e):e,n=new URLSearchParams;for(var r of t.searchParams.keys())n.append(r,`xxx`);var i=n.toString(),a=i?`?${i}`:``;return t.origin+t.pathname+a}catch{return`??`}}getUrl(e,t,n,r){var i=r??this.opts.baseUrl,a=i.endsWith(`/`)?i.slice(0,-1):i,o=new URL(a+(n??this.opts.prefix)+e);return(this.opts.extraParams||t)&&OE(dA(dA({},this.opts.extraParams),t),o.searchParams),o}},L=function(e){return e.V1=`/_matrix/client/v1`,e.V3=`/_matrix/client/v3`,e.Unstable=`/_matrix/client/unstable`,e}({}),pA=function(e){return e.V2=`/_matrix/identity/v2`,e}({}),mA=function(e){return e.V1=`/_matrix/media/v1`,e.V3=`/_matrix/media/v3`,e}({}),hA=1e3,gA=0,_A,vA=[];function yA(e,t){var n=[...arguments].slice(2);t||=0,t<0&&(t=0);var r=Date.now()+t,i=gA++,a={runAt:r,func:e,params:n,key:i},o=CA(vA,function(e){return e.runAt-r});return vA.splice(o,0,a),xA(),i}function bA(e){if(vA.length!==0){var t;for(t=0;te)break;var r=vA.shift();r.key,t.push(r)}xA();for(var i of t)try{i.func.apply(globalThis,i.params)}catch(e){w.error(`Uncaught exception in callback function`,e)}}function CA(e,t){for(var n=0,r=e.length;n>1;t(e[i])>0?r=i:n=i+1}return n}var wA=class extends fA{constructor(){super(...arguments),h(this,`uploads`,[])}uploadContent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.includeFilename??!0,r=t.abortController??new AbortController,i=(t.type??e.type)||`application/octet-stream`,a=t.name??e.name,o={loaded:0,total:0,abortController:r},s=Promise.withResolvers();if(globalThis.XMLHttpRequest){var c=new globalThis.XMLHttpRequest,l=function(){c.abort(),s.reject(Error(`Timeout`))},u=yA(l,3e4);c.onreadystatechange=function(){switch(c.readyState){case globalThis.XMLHttpRequest.DONE:bA(u);try{if(c.status===0)throw new DOMException(c.statusText,`AbortError`);if(!c.responseText)throw Error(`No response body.`);c.status>=400?s.reject(eA(c,c.responseText)):s.resolve(JSON.parse(c.responseText))}catch(e){if(e.name===`AbortError`){s.reject(e);return}s.reject(new Gk(`request failed`,e))}break}},c.upload.onprogress=e=>{var n;bA(u),o.loaded=e.loaded,o.total=e.total,u=yA(l,3e4),(n=t.progressHandler)==null||n.call(t,{loaded:e.loaded,total:e.total})};var d=this.getUrl(`/upload`,void 0,mA.V3);n&&a&&d.searchParams.set(`filename`,encodeURIComponent(a)),!this.opts.useAuthorizationHeader&&this.opts.accessToken&&d.searchParams.set(`access_token`,encodeURIComponent(this.opts.accessToken)),c.open(F.Post,d.href),this.opts.useAuthorizationHeader&&this.opts.accessToken&&c.setRequestHeader(`Authorization`,`Bearer `+this.opts.accessToken),c.setRequestHeader(`Content-Type`,i),c.send(e),r.signal.addEventListener(`abort`,()=>{c.abort()})}else{var f={};n&&a&&(f.filename=a);var p={"Content-Type":i};this.authedRequest(F.Post,`/upload`,f,e,{prefix:mA.V3,headers:p,abortSignal:r.signal}).then(s.resolve,s.reject)}return o.promise=s.promise.finally(()=>{AE(this.uploads,e=>e===o)}),r.signal.addEventListener(`abort`,()=>{AE(this.uploads,e=>e===o),s.reject(new DOMException(`Aborted`,`AbortError`))}),this.uploads.push(o),o.promise}cancelUpload(e){var t=this.uploads.find(t=>t.promise===e);return t?(t.abortController.abort(),!0):!1}getCurrentUploads(){return this.uploads}getContentUri(){return{base:this.opts.baseUrl,path:mA.V3+`/upload`,params:{access_token:this.opts.accessToken}}}},TA=function(e){return e.Stable=`stable`,e.Unstable=`unstable`,e}({}),EA=class extends Bk{constructor(e,t){var n;super(e,t,`server capabilities`),n=this,h(this,`fetch`,C(function*(){var e=yield n.http.authedRequest(F.Get,`/capabilities`);return n.cached=e.capabilities,n.cached}))}};function DA(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var e=Date.now(),t=[];this.nextStickyEventExpiryTs=2**53-1;for(var n of this.stickyEventsMap.entries()){var r=x(n,2),i=r[0];for(var a of r[1]){var o=x(a,2),s=o[0],c=lO(o[1]),l=c[0],u=DA(c).slice(1);e>=l.unstableStickyExpiresAt?(OA.debug(`Expiring sticky event`,l.getId()),t.push(l),this.stickyEventsMap.get(i).delete(s)):(this.stickyEventsMap.get(i).set(s,[l,...u.filter(t=>t.unstableStickyExpiresAt<=e)]),this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,l.unstableStickyExpiresAt))}this.stickyEventsMap.get(i)?.size===0&&this.stickyEventsMap.delete(i)}for(var d of this.unkeyedStickyEvents)e>=d.unstableStickyExpiresAt?(OA.debug(`Expiring sticky event`,d.getId()),this.unkeyedStickyEvents.delete(d),t.push(d)):this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,d.unstableStickyExpiresAt);t.length&&this.emit(kA.Update,[],[],t),this.scheduleStickyTimer()})}static sortStickyEvent(e,t){if(t.getTs()!==e.getTs())return t.getTs()-e.getTs();if((t.getId()??``)>(e.getId()??``))return 1;throw Error(`Comparing two sticky events with the same event ID is not allowed.`)}static stickyMapKey(e,t){return`${e}${t}`}*getStickyEvents(){yield*this.unkeyedStickyEvents;for(var e of this.stickyEventsMap.values())for(var t of e.values())yield t[0]}getKeyedStickyEvent(t,n,r){var i;return AA(t),(i=this.stickyEventsMap.get(n))==null||(i=i.get(e.stickyMapKey(r,t)))==null?void 0:i[0]}getUnkeyedStickyEvent(e,t){return[...this.unkeyedStickyEvents].filter(n=>n.getType()===t&&n.getSender()===e)}addStickyEvent(t){var n,r=t.getContent().msc4354_sticky_key;if(typeof r!=`string`&&r!==void 0)throw Error(`${t.getId()} is missing msc4354_sticky_key`);if(t.unstableStickyExpiresAt===void 0)throw Error(`${t.getId()} is missing msc4354_sticky.duration_ms`);var i=t.getSender(),a=t.getType();if(AA(i),t.unstableStickyExpiresAt<=Date.now())return OA.info(`ignored sticky event with older expiration time than current time`,r),{added:!1};if(!i.startsWith(`@`))throw Error(`Expected sender to start with @`);var o=t;if(r===void 0)return this.unkeyedStickyEvents.add(o),this.nextStickyEventExpiryTs=Math.min(t.unstableStickyExpiresAt,this.nextStickyEventExpiryTs),this.scheduleStickyTimer(),{added:!0};var s=e.stickyMapKey(r,i),c=[o,...this.stickyEventsMap.get(a)?.get(s)??[]].sort(e.sortStickyEvent);return this.stickyEventsMap.has(a)||this.stickyEventsMap.set(a,new Map),(n=this.stickyEventsMap.get(a))==null||n.set(s,c),this.nextStickyEventExpiryTs=Math.min(o.unstableStickyExpiresAt,this.nextStickyEventExpiryTs),this.scheduleStickyTimer(),{added:c[0]===o,prevEvent:c?.[1]}}addStickyEvents(e){var t=[],n=[];for(var r of e)try{var i=this.addStickyEvent(r);i.added&&(i.prevEvent?n.push({current:r,previous:i.prevEvent}):t.push(r))}catch(e){OA.warn(`ignored invalid sticky event`,e)}(t.length||n.length)&&this.emit(kA.Update,t,n,[]),this.scheduleStickyTimer()}scheduleStickyTimer(){this.stickyEventTimer&&=(clearTimeout(this.stickyEventTimer),void 0),this.nextStickyEventExpiryTs!==2**53-1&&(this.stickyEventTimer=setTimeout(this.cleanExpiredStickyEvents,this.nextStickyEventExpiryTs-Date.now()))}handleRedaction(t){var n=typeof t==`string`?t:t.getId();for(var r of this.unkeyedStickyEvents)if(r.getId()===n){this.unkeyedStickyEvents.delete(r),this.emit(kA.Update,[],[],[r]);return}if(typeof t!=`string`&&!t.isRedacted()){var i,a=t.getContent().msc4354_sticky_key;if(typeof a!=`string`&&a!==void 0)return;var o=t.getType(),s=t.getSender();AA(s);var c=this.stickyEventsMap.get(o);if(!c)return;var l=e.stickyMapKey(a,s),u=lO(c.get(l)??[]),d=u[0],f=DA(u).slice(1);if(!d)return;OA.debug(`Redaction for ${n} under sticky key ${a}`);var p=f.filter(e=>!e.isRedacted()).sort(e.sortStickyEvent);(i=this.stickyEventsMap.get(o))==null||i.set(l,p),p.length?this.emit(kA.Update,[],[{previous:d,current:p[0]}],[]):(c.delete(l),c.size===0&&this.stickyEventsMap.delete(o),this.emit(kA.Update,[],[],[d]));return}for(var m of this.stickyEventsMap.values())for(var h of m.values()){var g=x(h,1)[0];if(g.getId()===n)return this.handleRedaction(g)}}clear(){this.stickyEventsMap.clear(),this.nextStickyEventExpiryTs=2**53-1,this.scheduleStickyTimer()}},MA=new vE(`m.room.retention`,`org.matrix.msc1763.retention`),NA=class{constructor(e,t,n){var r=this;this.room=e,this.retentionService=t,this.store=n,h(this,`maxRetention`,null),h(this,`retentionTimeout`,void 0),h(this,`logger`,void 0),h(this,`handleRetentionUpdate`,C(function*(){var e=r.maxRetention!==null;try{yield r.recalculateRetention(r.room.currentState)}catch(e){r.logger.warn(`Failed to recalculate retention policy`,e);return}e!==(r.maxRetention!==null)&&(r.logger.info(`retention recalculated to be`,r.maxRetention),r.maxRetention?r.room.on(z.Timeline,r.timelineUpdated):r.room.off(z.Timeline,r.timelineUpdated))})),h(this,`recalculateRetention`,function(){var e=C(function*(e){var t,n,i,a=e.getStateEvents(MA.name).find(e=>e.getStateKey()===``),o=e.getStateEvents(MA.altName).find(e=>e.getStateKey()===``),s=r.retentionService.getCached(),c=s==null||(t=s.policies)==null?void 0:t[r.room.roomId],l=a?.getContent()??o?.getContent(),u=c??l??(s==null||(n=s.policies)==null?void 0:n[`*`]);if(!u){r.maxRetention=null;return}var d=!c&&l,f=u.max_lifetime;if(!f&&d){var p;if(f=s==null||(p=s.limits)==null||(p=p.max_lifetime)==null?void 0:p.min,!f){r.maxRetention=null;return}}if(typeof f!=`number`)throw Error(`max_lifetime must be a number, got "${f}"`);if(f<0||!Number.isInteger(f))throw Error(`max_lifetime must be >= 0, got ${f}`);r.maxRetention=f,d&&s!=null&&(i=s.limits)!=null&&i.max_lifetime&&(r.maxRetention=Math.max(r.maxRetention,s.limits.max_lifetime.min??0),r.maxRetention=Math.min(r.maxRetention,s.limits.max_lifetime.max??2**53-1)),r.processTimeline()});return function(t){return e.apply(this,arguments)}}()),h(this,`timelineUpdated`,()=>{this.logger.info(`timelineUpdated`),this.scheduleTimelineCheck(200)}),h(this,`scheduleTimelineCheck`,e=>{this.retentionTimeout&&clearTimeout(this.retentionTimeout),this.retentionTimeout=setTimeout(()=>{this.processTimeline(),this.retentionTimeout=void 0},e)}),this.logger=w.getChild(`RetentionPolicy ${e.roomId}`),e.on(j.Events,e=>{e.getStateKey()!==``||e.getType()!==`org.matrix.msc1763.retention`&&e.getType()!==`m.room.retention`||this.handleRetentionUpdate()}),this.retentionService.on(`update`,()=>{this.logger.info(`Got global retention policy update!`),this.handleRetentionUpdate()}),this.handleRetentionUpdate()}shouldEventBeRetained(e){if(!this.maxRetention)return!0;var t=Date.now()-this.maxRetention;return e.getTs()>t}processTimeline(){if(this.maxRetention){this.logger.info(`Running processTimeline`);var e=Date.now()-this.maxRetention,t=this.room.getLiveTimeline().getEvents().filter(e=>e.getStateKey()===void 0&&!e.isRedacted()&&e.getType()!==`m.room.redaction`),n=t.filter(t=>t.getTs()t.getTs()>=e).sort((e,t)=>e.getTs()-t.getTs()),1)[0];if(r){var i=r.getTs()+this.maxRetention-Date.now();this.logger.info(`Next expiry scheduled for ${i}`),this.scheduleTimelineCheck(i)}if(n.length===0){this.logger.info(`Found no expired events`);return}this.logger.info(`Found ${n.length} expired events`);for(var a of n)this.room.tryApplyRedaction(new MI({type:E.RoomRedaction,sender:a.getSender(),event_id:`$synthetic_redaction`,room_id:this.room.roomId,redacts:a.getId(),content:{reason:`Retention policy`},origin_server_ts:Date.now(),unsigned:{}}));this.store.removeEventsFromRoom(this.room.roomId,n.map(e=>e.getId())).catch(e=>{this.logger.warn(`Failed to remove events from store`,e)})}}};function PA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FA(e){for(var t=1;t3&&arguments[3]!==void 0?arguments[3]:{};super(),r=this,this.roomId=e,this.client=t,this.myUserId=n,this.opts=a,h(this,`reEmitter`,void 0),h(this,`txnToEvent`,new Map),h(this,`notificationCounts`,{}),h(this,`bumpStamp`,void 0),h(this,`threadNotifications`,new Map),h(this,`cachedThreadReadReceipts`,new Map),h(this,`oldestThreadedReceiptTs`,1/0),h(this,`unthreadedReceipts`,new Map),h(this,`timelineSets`,void 0),h(this,`polls`,new Map),h(this,`threadsTimelineSets`,[]),h(this,`filteredTimelineSets`,{}),h(this,`timelineNeedsRefresh`,!1),h(this,`pendingEventList`,void 0),h(this,`blacklistUnverifiedDevices`,void 0),h(this,`selfMembership`,void 0),h(this,`heroes`,null),h(this,`getTypeWarning`,!1),h(this,`membersPromise`,void 0),h(this,`name`,void 0),h(this,`normalizedName`,void 0),h(this,`tags`,{}),h(this,`accountData`,new Map),h(this,`summary`,null),h(this,`oldState`,void 0),h(this,`currentState`,void 0),h(this,`relations`,void 0),h(this,`threads`,new Map),h(this,`visibilityEvents`,new Map),h(this,`roomReceipts`,new wk(this)),h(this,`stickyEvents`,new jA),h(this,`retention`,void 0),h(this,`threadTimelineSetsPromise`,null),h(this,`threadsReady`,!1),h(this,`updateThreadRootEvents`,(e,t,n)=>{e.length&&(this.updateThreadRootEvent(this.threadsTimelineSets?.[0],e,t,n),e.hasCurrentUserParticipated&&this.updateThreadRootEvent(this.threadsTimelineSets?.[1],e,t,n))}),h(this,`updateThreadRootEvent`,(e,t,n,r)=>{e&&t.rootEvent&&(r&&e.removeEvent(t.id),SI.hasServerSideSupport?e.addLiveEvent(t.rootEvent,{duplicateStrategy:tk.Replace,fromCache:!1,roomState:this.currentState,addToState:!1}):e.addEventToTimeline(t.rootEvent,e.getLiveTimeline(),{toStartOfTimeline:n,addToState:!1}))}),h(this,`tryApplyRedaction`,e=>{if(e.isRedaction()){var t=e.event.redacts,n=t?this.findEventById(t):void 0;if(t)try{this.stickyEvents.handleRedaction(n||t)}catch(e){w.error(`Failed to handle redaction for sticky event`,e)}n&&this.applyEventAsRedaction(e,n)}else if(e.getType()===E.RoomMember){var r=e.getContent().membership;if(r!==k.Ban&&!(r===k.Leave&&e.getStateKey()!==e.getSender())||e.getContent()[`org.matrix.msc4293.redact_events`]!==!0||!this.getLiveTimeline().getState(M.Forward).maySendRedactionForEvent(e,e.getSender()))return;for(var i of this.getTimelineSets().map(e=>e.getTimelines()).reduce((e,t)=>(e.push(...t),e),[]).map(t=>t.getEvents().filter(t=>t.getSender()===e.getStateKey())).reduce((e,t)=>(e.push(...t),t),[]))this.applyEventAsRedaction(e,i)}}),this.setMaxListeners(100),this.reEmitter=new VO(this),a.pendingEventOrdering=a.pendingEventOrdering||oI.Chronological,this.name=e,this.normalizedName=e,this.relations=new $O(this.client,this),this.on(z.Receipt,this.onReceipt),this.reEmitter.reEmit(this.stickyEvents,[kA.Update]),this.timelineSets=[new nk(this,a)],this.reEmitter.reEmit(this.getUnfilteredTimelineSet(),[z.Timeline,z.TimelineReset]),this.fixUpLegacyTimelineFields(),this.opts.pendingEventOrdering===oI.Detached&&(this.pendingEventList=[],this.client.store.getPendingEvents(this.roomId).then(e=>{var n=this.client.getEventMapper({decrypt:!1});e.forEach(function(){var e=C(function*(e){var i=n(e);yield t.decryptEventIfNeeded(i),i.setStatus(P.NOT_SENT),r.addPendingEvent(i,i.getTxnId())});return function(t){return e.apply(this,arguments)}}())})),this.opts.lazyLoadMembers?this.membersPromise=void 0:this.membersPromise=Promise.resolve(!1),(i=this.client)!=null&&i._unstable_shouldApplyMessageRetention&&(this.retention=new NA(this,t.retentionPolicyService,t.store))}createThreadsTimelineSets(){var e=this;return C(function*(){var t;if(e.threadTimelineSetsPromise)return e.threadTimelineSetsPromise;if((t=e.client)!=null&&t.supportsThreads())try{e.threadTimelineSetsPromise=Promise.all([e.createThreadTimelineSet(),e.createThreadTimelineSet(EI.My)]);var n=yield e.threadTimelineSetsPromise;return e.threadsTimelineSets[0]=n[0],e.threadsTimelineSets[1]=n[1],n}catch{return e.threadTimelineSetsPromise=null,null}return null})()}decryptCriticalEvents(){var e=this;return C(function*(){if(e.client.getCrypto()){var t=e.getEventReadUpTo(e.client.getUserId(),!0),n=e.getLiveTimeline().getEvents(),r=n.findIndex(e=>e.event.event_id===t),i=n.slice(r).reverse().map(t=>e.client.decryptEventIfNeeded(t));yield Promise.allSettled(i)}})()}decryptAllEvents(){var e=this;return C(function*(){if(e.client.getCrypto()){var t=e.getUnfilteredTimelineSet().getLiveTimeline().getEvents().slice(0).reverse().map(t=>e.client.decryptEventIfNeeded(t));yield Promise.allSettled(t)}})()}getCreator(){return this.currentState.getStateEvents(E.RoomCreate,``)?.getSender()??null}getVersion(){return this.currentState.getRoomVersion()}getRecommendedVersion(){var e=this;return C(function*(){var t={};try{t=yield e.client.getCapabilities()}catch{}var n=t[`m.room_versions`];if(!n){n={default:`10`,available:{}};for(var r of IA)n.available[r]=TA.Stable}var i=e.checkVersionAgainstCapability(n);if(i.urgent&&i.needsUpgrade){w.warn(`Refreshing room version capability because the server looks to be supporting a newer room version we don't know about.`);try{t=yield e.client.fetchCapabilities()}catch(e){w.warn(`Failed to refresh room version capabilities`,e)}if(n=t[`m.room_versions`],n)i=e.checkVersionAgainstCapability(n);else return w.warn(`No room version capability - assuming upgrade required.`),i}return i})()}checkVersionAgainstCapability(e){var t=this.getVersion();w.log(`[${this.roomId}] Current version: ${t}`),w.log(`[${this.roomId}] Version capability: `,e);var n={version:t,needsUpgrade:!1,urgent:!1};return t===e.default||Object.keys(e.available).filter(t=>e.available[t]===`stable`).includes(t)?n:(n.version=e.default,n.needsUpgrade=!0,n.urgent=!!this.getVersion().match(/^[0-9]+[0-9.]*$/g),n.urgent?w.warn(`URGENT upgrade required on ${this.roomId}`):w.warn(`Non-urgent upgrade required on ${this.roomId}`),n)}userMayUpgradeRoom(e){return this.currentState.maySendStateEvent(E.RoomTombstone,e)}getPendingEvents(){if(!this.pendingEventList)throw Error(`Cannot call getPendingEvents with pendingEventOrdering == `+this.opts.pendingEventOrdering);return this.pendingEventList}removePendingEvent(e){if(!this.pendingEventList)throw Error(`Cannot call removePendingEvent with pendingEventOrdering == `+this.opts.pendingEventOrdering);var t=AE(this.pendingEventList,function(t){return t.getId()==e},!1);return this.savePendingEvents(),t}hasPendingEvent(e){return this.pendingEventList?.some(t=>t.getId()===e)??!1}getPendingEvent(e){return this.pendingEventList?.find(t=>t.getId()===e)??null}getLiveTimeline(){return this.getUnfilteredTimelineSet().getLiveTimeline()}get timeline(){return this.getLiveTimeline().getEvents()}getLastActiveTimestamp(){var e=this.getLiveTimeline().getEvents();return e.length?e[e.length-1].getTs():-(2**53-1)}getLastLiveEvent(){var e=this.getLiveTimeline().getEvents(),t=e[e.length-1],n=this.getLastThread();if(!n)return t;var r=n.events[n.events.length-1];return(t?.getTs()??0)>(r?.getTs()??0)?t:r}getLastThread(){return this.getThreads().reduce((e,t)=>{if(!e)return t;var n=t.events[t.events.length-1],r=e.events[e.events.length-1];return(n?.getTs()??0)>=(r?.getTs()??0)?t:e},void 0)}getMyMembership(){return this.selfMembership??k.Leave}getDMInviter(){var e=this.getMember(this.myUserId);if(e)return e.getDMInviter();if(this.selfMembership===k.Invite&&this.getInvitedAndJoinedMemberCount()===2){var t;return(t=this.heroes)==null||(t=t[0])==null?void 0:t.userId}}guessDMUserId(){var e=this.getMember(this.myUserId);if(e){var t=e.getDMInviter();if(t)return t}if(Array.isArray(this.heroes)&&this.heroes.length)return this.heroes[0].userId;var n=this.currentState.getMembers().find(e=>e.userId!==this.myUserId);return n?n.userId:this.myUserId}getFunctionalMembers(){var e=this.currentState.getStateEvents(XD.name,``);return Array.isArray(e?.getContent().service_members)?e.getContent().service_members:[]}getAvatarFallbackMember(){var e=this.getFunctionalMembers(),t=0;if(this.getMembers().forEach(n=>{n.membership!==`join`&&n.membership!==`invite`||e.includes(n.userId)||t++}),!(t>2)){var n=this.heroes?.filter(t=>!e.includes(t.userId)),r=Array.isArray(n)&&n.length;if(r){for(var i of n)if(i.fromMSC4186){var a=new _O(this.roomId,i.userId);return a.setMembershipEvent(new MI({event_id:`$`+this.roomId+i.userId+new Date().getTime(),type:E.RoomMember,state_key:i.userId,content:{displayname:i.displayName,avatar_url:i.avatarUrl}})),a}else{var o=this.getMember(i.userId);if(o)return o}var s=n.map(e=>this.getMember(e.userId)).find(e=>!!e);if(s)return s}var c=this.getMembers()?.filter(t=>!e.includes(t.userId));if(c.length<=2){var l=c.find(e=>e.userId!==this.myUserId);if(l)return l}if(r){var u=n.map(e=>this.client.getUser(e.userId)).find(e=>!!e);if(u){var d=new _O(this.roomId,u.userId);return d.user=u,d}}}}updateMyMembership(e){var t=this.selfMembership;this.selfMembership=e,t!==e&&(e===k.Leave&&this.cleanupAfterLeaving(),this.emit(z.MyMembership,this,e,t))}loadMembersFromServer(){var e=this;return C(function*(){var t=e.client.store.getSyncToken();return(yield e.client.members(e.roomId,void 0,k.Leave,t??void 0)).chunk})()}loadMembers(){var e=this;return C(function*(){var t=!1,n=yield e.client.store.getOutOfBandMembers(e.roomId);return(n===null||e.hasEncryptionStateEvent())&&(t=!0,n=yield e.loadMembersFromServer(),w.log(`LL: got ${n.length} members from server for room ${e.roomId}`)),{memberEvents:n.filter(hD).map(e.client.getEventMapper()),fromServer:t}})()}membersLoaded(){return this.opts.lazyLoadMembers?this.currentState.outOfBandMembersReady():!0}loadMembersIfNeeded(){if(this.membersPromise)return this.membersPromise;this.currentState.markOutOfBandMembersStarted();var e=this.loadMembers().then(e=>(this.currentState.setOutOfBandMembers(e.memberEvents),this.recalculate(),e.fromServer)).catch(e=>{throw this.membersPromise=void 0,this.currentState.markOutOfBandMembersFailed(),e});return e.then(e=>{if(e){var t=this.currentState.getMembers().filter(e=>e.isOutOfBand()).map(e=>e.events.member?.event);return w.log(`LL: telling store to write ${t.length} members for room ${this.roomId}`),this.client.store.setOutOfBandMembers(this.roomId,t).catch(e=>{w.log(`LL: storing OOB room members failed, oh well`,e)})}}).catch(e=>{w.error(e)}),this.membersPromise=e,this.membersPromise}clearLoadedMembersIfNeeded(){var e=this;return C(function*(){e.opts.lazyLoadMembers&&e.membersPromise&&(yield e.loadMembersIfNeeded(),yield e.client.store.clearOutOfBandMembers(e.roomId),e.currentState.clearOutOfBandMembers(),e.membersPromise=void 0)})()}cleanupAfterLeaving(){this.clearLoadedMembersIfNeeded().catch(e=>{w.error(`error after clearing loaded members from room ${this.roomId} after leaving`),w.log(e)})}refreshLiveTimeline(){var e=this;return C(function*(){var t=e.getLiveTimeline(),n=t.getPaginationToken(N.FORWARDS),r=t.getPaginationToken(N.BACKWARDS),i=t.getEvents(),a=i[i.length-1];w.log(`[refreshLiveTimeline for ${e.roomId}] at mostRecentEventInTimeline=${a&&a.getId()} liveTimelineBefore=${t.toString()} forwardPaginationToken=${n} backwardPaginationToken=${r}`);var o=e.getUnfilteredTimelineSet(),s=null;a?(e.resetLiveTimeline(null,null),e.emit(z.TimelineRefresh,e,o),s=yield e.client.getEventTimeline(o,a.getId())):s=yield e.client.getLatestTimeline(o);var c=o.getLiveTimeline();!c||c.getPaginationToken(M.Forward)===null&&c.getPaginationToken(M.Backward)===null&&c.getEvents().length===0?(w.log(`[refreshLiveTimeline for ${e.roomId}] using our new live timeline`),s.setPaginationToken(n,N.FORWARDS),o.setLiveTimeline(s),e.fixUpLegacyTimelineFields()):w.log(`[refreshLiveTimeline for ${e.roomId}] \`/sync\` or some other request beat us to creating a new live timeline after we reset it. We'll use that instead since any events in the scrollback from this timeline will include the history.`),e.setTimelineNeedsRefresh(!1),e.emit(z.TimelineRefresh,e,o)})()}resetLiveTimeline(e,t){for(var n of this.timelineSets)n.resetLiveTimeline(e??void 0,t??void 0);for(var r of this.threads.values())r.resetLiveTimeline(e,t);this.fixUpLegacyTimelineFields()}fixUpLegacyTimelineFields(){var e=this.oldState,t=this.currentState;this.oldState=this.getLiveTimeline().getState(N.BACKWARDS),this.currentState=this.getLiveTimeline().getState(N.FORWARDS),e!==this.oldState&&this.emit(z.OldStateUpdated,this,e,this.oldState),t!==this.currentState&&(this.emit(z.CurrentStateUpdated,this,t,this.currentState),this.reEmitter.stopReEmitting(t,[j.Events,j.Members,j.NewMember,j.Update,j.Marker,A.New,A.Update,A.Destroy,A.LivenessChange]),this.reEmitter.reEmit(this.currentState,[j.Events,j.Members,j.NewMember,j.Update,j.Marker,A.New,A.Update,A.Destroy,A.LivenessChange]))}onReceipt(e){this.hasEncryptionStateEvent()&&this.clearNotificationsOnReceipt(e)}clearNotificationsOnReceipt(e){var t=[],n=!1,r=e.getContent();for(var i of Object.values(r))for(var a of Object.entries(i)){var o=x(a,2),s=o[0],c=o[1];if(lD(s)&&c)for(var l of Object.entries(c)){var u=x(l,2),d=u[0],f=u[1];if(!(!f||typeof f!=`object`)){var p=f;d===this.client.getUserId()&&(p.thread_id===void 0?n=!0:typeof p.thread_id==`string`&&t.push(p.thread_id))}}}n&&(t=this.getThreads().filter(e=>this.getThreadUnreadNotificationCount(e.id,R.Total)>0||this.getThreadUnreadNotificationCount(e.id,R.Highlight)>0).map(e=>e.id),t.push(`main`));for(var m of t){var h=20,g=m===`main`?this.getLiveTimeline():this.getThread(m)?.liveTimeline;if(!g){w.warn(`Couldn't find timeline for thread ID ${m} in room ${this.roomId}`);continue}for(var _=g.getEvents(),v=0,y=_.length-1;y>=0;y--){var b;if(y===_.length-h)return;var S=_[y];if(this.hasUserReadEvent(this.client.getUserId(),S.getId()))break;var C=this.client.getPushActionsForEvent(S);v+=C!=null&&(b=C.tweaks)!=null&&b.highlight?1:0}m===`main`?this.setUnreadNotificationCount(R.Highlight,v):this.setThreadUnreadNotificationCount(m,R.Highlight,v)}}getTimelineSets(){return this.timelineSets}getUnfilteredTimelineSet(){return this.timelineSets[0]}getTimelineForEvent(e){var t=this.findEventById(e),n=this.findThreadForEvent(t);return n?n.timelineSet.getTimelineForEvent(e):this.getUnfilteredTimelineSet().getTimelineForEvent(e)}addTimeline(){return this.getUnfilteredTimelineSet().addTimeline()}setTimelineNeedsRefresh(e){this.timelineNeedsRefresh=e}getTimelineNeedsRefresh(){return this.timelineNeedsRefresh}findEventById(e){var t=this.getUnfilteredTimelineSet().findEventById(e);if(!t){for(var n=this.getThreads(),r=0;r0&&arguments[0]!==void 0?arguments[0]:R.Total,t=this.getRoomUnreadNotificationCount(e);for(var n of this.threadNotifications.values())t+=n[e]??0;return t}getUnreadCountForEventContext(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:R.Total,t=arguments.length>1?arguments[1]:void 0;return(t.threadRootId&&!t.isThreadRoot?this.getThreadUnreadNotificationCount(t.threadRootId,e):this.getRoomUnreadNotificationCount(e))??0}getRoomUnreadNotificationCount(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:R.Total;return this.notificationCounts[e]??0}getThreadUnreadNotificationCount(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:R.Total;return this.threadNotifications.get(e)?.[t]??0}hasThreadUnreadNotification(){for(var e of this.threadNotifications.values())if((e.highlight??0)>0||(e.total??0)>0)return!0;return!1}setThreadUnreadNotificationCount(e,t,n){var r=FA({highlight:this.threadNotifications.get(e)?.highlight,total:this.threadNotifications.get(e)?.total},{[t]:n});this.threadNotifications.set(e,r),this.emit(z.UnreadNotifications,r,e)}get threadsAggregateNotificationType(){var e=null;for(var t of this.threadNotifications.values()){if((t.highlight??0)>0)return R.Highlight;(t.total??0)>0&&!e&&(e=R.Total)}return e}resetThreadUnreadNotificationCountFromSync(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=this.hasEncryptionStateEvent();for(var n of this.threadNotifications){var r=x(n,2),i=r[0],a=r[1];e.includes(i)||(a.total=0,t||(a.highlight=0))}this.emit(z.UnreadNotifications)}setBumpStamp(e){this.bumpStamp=e}getBumpStamp(){return this.bumpStamp}setUnreadNotificationCount(e,t){this.notificationCounts[e]=t,this.emit(z.UnreadNotifications,this.notificationCounts)}setUnread(e,t){return this.setUnreadNotificationCount(e,t)}setSummary(e){var t=e[`m.heroes`]?.map(e=>({userId:e,fromMSC4186:!1})),n=e[`m.joined_member_count`],r=e[`m.invited_member_count`];Number.isInteger(n)&&this.currentState.setJoinedMemberCount(n),Number.isInteger(r)&&this.currentState.setInvitedMemberCount(r),Array.isArray(t)&&(this.heroes=t.filter(e=>e.userId!=this.myUserId)),this.emit(z.Summary,e)}setMSC4186SummaryData(e,t,n){e&&(this.heroes=e.filter(e=>e.user_id!==this.myUserId).map(e=>({userId:e.user_id,displayName:e.displayname,avatarUrl:e.avatar_url,fromMSC4186:!0}))),t!==void 0&&Number.isInteger(t)&&this.currentState.setJoinedMemberCount(t),n!==void 0&&Number.isInteger(n)&&this.currentState.setInvitedMemberCount(n),this.emit(z.Summary,{"m.heroes":this.heroes?this.heroes.map(e=>e.userId):[],"m.joined_member_count":t,"m.invited_member_count":n})}setBlacklistUnverifiedDevices(e){this.blacklistUnverifiedDevices=e}getBlacklistUnverifiedDevices(){return this.blacklistUnverifiedDevices===void 0?null:this.blacklistUnverifiedDevices}getAvatarUrl(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,o=this.getMxcAvatarUrl();return!o&&!i?null:o?hO(e,o,t,n,r,void 0,void 0,a):null}getMxcAvatarUrl(){var e=this.currentState.getStateEvents(E.RoomAvatar,``)?.getContent().url;return e&&typeof e==`string`?e:null}getCanonicalAlias(){var e=this.currentState.getStateEvents(E.RoomCanonicalAlias,``)?.getContent().alias;return e&&typeof e==`string`?e:null}getAltAliases(){var e=this.currentState.getStateEvents(E.RoomCanonicalAlias,``)?.getContent().alt_aliases;return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}addEventsToTimeline(e,t,n,r,i){e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),r.getTimelineSet().addEventsToTimeline(e,t,n,r,i)}getThread(e){return this.threads.get(e)??null}getThreads(){return Array.from(this.threads.values())}getMember(e){return this.currentState.getMember(e)}getMembers(){return this.currentState.getMembers()}getJoinedMembers(){return this.getMembersWithMembership(k.Join)}getJoinedMemberCount(){return this.currentState.getJoinedMemberCount()}getInvitedMemberCount(){return this.currentState.getInvitedMemberCount()}getInvitedAndJoinedMemberCount(){return this.getInvitedMemberCount()+this.getJoinedMemberCount()}getMembersWithMembership(e){return this.currentState.getMembers().filter(function(t){return t.membership===e})}getEncryptionTargetMembers(){var e=this;return C(function*(){yield e.loadMembersIfNeeded();var t=e.getMembersWithMembership(k.Join);return e.shouldEncryptForInvitedMembers()&&(t=t.concat(e.getMembersWithMembership(k.Invite))),t})()}shouldEncryptForInvitedMembers(){var e,t=this.currentState.getStateEvents(E.RoomHistoryVisibility,``);return(t==null||(e=t.getContent())==null?void 0:e.history_visibility)!==`joined`}getDefaultRoomName(e){return this.calculateRoomName(e,!0)}hasMembershipState(e,t){var n=this.getMember(e);return n?n.membership===t:!1}getOrCreateFilteredTimelineSet(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.prepopulateTimeline,r=n===void 0?!0:n,i=t.useSyncEvents,a=i===void 0?!0:i,o=t.pendingEvents,s=o===void 0?!0:o;if(this.filteredTimelineSets[e.filterId])return this.filteredTimelineSets[e.filterId];var c=Object.assign({filter:e,pendingEvents:s},this.opts),l=new nk(this,c);this.reEmitter.reEmit(l,[z.Timeline,z.TimelineReset]),a&&(this.filteredTimelineSets[e.filterId]=l,this.timelineSets.push(l));var u=this.getLiveTimeline();if(r){u.getEvents().forEach(function(e){l.addLiveEvent(e,{addToState:!1})});for(var d=u;d.getNeighbouringTimeline(N.BACKWARDS);)d=d.getNeighbouringTimeline(N.BACKWARDS);l.getLiveTimeline().setPaginationToken(d.getPaginationToken(N.BACKWARDS),N.BACKWARDS)}else if(a){var f=u.getPaginationToken(M.Forward);l.getLiveTimeline().setPaginationToken(f,M.Backward)}return l}getThreadListFilter(){var e=arguments,t=this;return C(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:EI.All,r=t.client.getUserId(),i=new dk(r),a={room:{timeline:{[TI.name]:[Q.name]}}};return n===EI.My&&(a.room.timeline[wI.name]=[r]),i.setDefinition(a),i.filterId=yield t.client.getOrCreateFilter(`THREAD_PANEL_${t.roomId}_${n}`,i),i})()}createThreadTimelineSet(e){var t=this;return C(function*(){var n;if(SI.hasServerSideListSupport)n=new nk(t,FA(FA({},t.opts),{},{pendingEvents:!1}),void 0,void 0,e??EI.All),t.reEmitter.reEmit(n,[z.Timeline,z.TimelineReset]);else if(SI.hasServerSideSupport){var r=yield t.getThreadListFilter(e);n=t.getOrCreateFilteredTimelineSet(r,{prepopulateTimeline:!1,useSyncEvents:!1,pendingEvents:!1})}else n=new nk(t,{pendingEvents:!1}),Array.from(t.threads).forEach(r=>{var i=x(r,2)[1];if(i.length!==0){var a=i.timeline.some(e=>e.getSender()===t.client.getUserId());(e!==EI.My||a)&&n.getLiveTimeline().addEvent(i.rootEvent,{toStartOfTimeline:!1,addToState:!1})}});return n})()}processThreadRoots(e,t){if(this.client.supportsThreads())for(var n of e)N.setEventMetadata(n,this.currentState,t),this.getThread(n.getId())||this.createThread(n.getId(),n,[],t)}fetchRoomThreads(){var e=this;return C(function*(){if(!(e.threadsReady||!e.client.supportsThreads())){if(SI.hasServerSideListSupport)yield Promise.all([e.fetchRoomThreadList(EI.All),e.fetchRoomThreadList(EI.My)]);else{var t=yield e.getThreadListFilter(),n=(yield e.client.createMessagesRequest(e.roomId,``,2**53-1,M.Backward,t)).chunk;if(!n.length)return;var r=n.map(e.client.getEventMapper()).sort((e,t)=>{var n=e.getServerAggregatedRelation(Q.name),r=t.getServerAggregatedRelation(Q.name);return n.latest_event.origin_server_ts-r.latest_event.origin_server_ts}),i,a=e.getLiveTimeline().getState(N.FORWARDS);for(var o of r){var s,c={duplicateStrategy:tk.Ignore,fromCache:!1,addToState:!1,roomState:a};(s=e.threadsTimelineSets[0])==null||s.addLiveEvent(o,c);var l=o.getServerAggregatedRelation(Q.name);if(l!=null&&l.current_user_participated){var u;(u=e.threadsTimelineSets[1])==null||u.addLiveEvent(o,c),i=o}}e.processThreadRoots(r,!0),e.client.decryptEventIfNeeded(r[r.length-1]),i&&e.client.decryptEventIfNeeded(i)}e.on(yI.NewReply,e.onThreadReply),e.on(yI.Update,e.onThreadUpdate),e.on(yI.Delete,e.onThreadDelete),e.threadsReady=!0}})()}processPollEvents(e){var t=this;return C(function*(){for(var n of e)try{if(!n.isEncrypted()&&!Ck(n))continue;yield t.client.decryptEventIfNeeded(n),t.processPollEvent(n)}catch(e){w.warn(`Error processing poll event`,n.getId(),e)}})()}processPollEvent(e){var t=this;return C(function*(){if(e.isDecryptionFailure()){e.once($.Decrypted,e=>{t.processPollEvent(e)});return}if(RD.M_POLL_START.matches(e.getType())){try{var n=new Sk(e,t.client,t);t.polls.set(e.getId(),n),t.emit(bk.New,n),e.once($.BeforeRedaction,e=>{t.polls.delete(e.getId())})}catch{}return}var r=e.relationEventId;r&&t.polls.has(r)&&t.polls.get(r)?.onNewRelation(e)})()}fetchRoomThreadList(e){var t=this;return C(function*(){if(t.client.supportsThreads()&&t.threadsTimelineSets.length!==0){var n=e===EI.My?t.threadsTimelineSets[1]:t.threadsTimelineSets[0],r=yield t.client.createThreadListMessagesRequest(t.roomId,null,void 0,M.Backward,n.threadListType,n.getFilter()),i=r.chunk,a=r.end;if(n.getLiveTimeline().setPaginationToken(a??null,M.Backward),i.length){var o=i.map(t.client.getEventMapper());t.processThreadRoots(o,!0);var s=t.getLiveTimeline().getState(N.FORWARDS);for(var c of o)n.addLiveEvent(c,{duplicateStrategy:tk.Replace,fromCache:!1,roomState:s,addToState:!1})}}})()}onThreadUpdate(e){this.updateThreadRootEvents(e,!1,!1)}onThreadReply(e){this.updateThreadRootEvents(e,!1,!0)}onThreadDelete(e){var t;this.threads.delete(e.id);var n=this.getTimelineForEvent(e.id),r=n==null||(t=n.getEvents())==null?void 0:t.find(t=>t.getId()===e.id);r?e.clearEventMetadata(r):w.debug(`onThreadDelete: Could not find root event in room timeline`);for(var i of this.threadsTimelineSets)i.removeEvent(e.id)}removeFilteredTimelineSet(e){var t=this.filteredTimelineSets[e.filterId];delete this.filteredTimelineSets[e.filterId];var n=this.timelineSets.indexOf(t);n>-1&&this.timelineSets.splice(n,1)}eventShouldLiveIn(e,t,n){var r;if(!((r=this.client)!=null&&r.supportsThreads()))return{shouldLiveInRoom:!0,shouldLiveInThread:!1};if(e.isThreadRoot||n!=null&&n.has(e.getId()))return{shouldLiveInRoom:!0,shouldLiveInThread:!0,threadId:e.getId()};var i=e.isRelation(Q.name),a=e.getAssociatedId(),o=e.threadRootId;if(a&&!i&&(o===a||n!=null&&n.has(a)))return{shouldLiveInRoom:!0,shouldLiveInThread:!1};var s;return a&&(s=this.findEventById(a)??t?.find(e=>e.getId()===a)),s&&!i?this.eventShouldLiveIn(s,t,n):o==null?!a||e.replyEventId?{shouldLiveInRoom:!0,shouldLiveInThread:!1}:{shouldLiveInRoom:!1,shouldLiveInThread:!1}:{shouldLiveInRoom:!1,shouldLiveInThread:!0,threadId:o}}findThreadForEvent(e){if(!e)return null;var t=this.eventShouldLiveIn(e).threadId;return t?this.getThread(t):null}addThreadedEvents(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=this.getThread(e);if(r)r.addEvents(t,n);else{var i=this.findEventById(e)??t.find(t=>t.getId()===e);this.createThread(e,i,t,n)}}processThreadedEvents(e,t){e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),e.forEach(this.tryApplyRedaction);var n={};for(var r of e){var i,a=this.eventShouldLiveIn(r),o=a.threadId;a.shouldLiveInThread&&!n[o]&&(n[o]=[]),(i=n[o])==null||i.push(r)}Object.entries(n).map(e=>{var n=x(e,2),r=n[0],i=n[1];return this.addThreadedEvents(r,i,t)})}createThread(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0;if(this.threads.has(e))return this.threads.get(e);if(t){var i=this.relations.getAllChildEventsForEvent(t.getId());i!=null&&i.length&&(n=n.concat(i.filter(e=>!e.isRelation(D.Replace))))}var a=new SI(e,t,{room:this,client:this.client,pendingEventOrdering:this.opts.pendingEventOrdering,receipts:this.cachedThreadReadReceipts.get(e)??[]});return this.reEmitter.reEmit(a,[yI.Delete,yI.Update,yI.NewReply,z.Timeline,z.TimelineReset]),this.cachedThreadReadReceipts.delete(e),this.threads.set(a.id,a),a.addEvents(n,!1),this.threadsReady&&a.initialEventsFetched&&this.updateThreadRootEvents(a,r,!1),this.emit(yI.New,a,r),a}applyEventAsRedaction(e,t){var n=t.threadRootId;t.makeRedacted(e,this),t.isState()&&this.currentState.getStateEvents(t.getType(),t.getStateKey())?.getId()===t.getId()&&this.currentState.setStateEvents([t]),this.emit(z.Redaction,e,this,n),this.visibilityEvents.delete(t.getId()),t.isVisibilityEvent()&&this.redactVisibilityChangeEvent(e)}processLiveEvent(e){if(this.tryApplyRedaction(e),e.isVisibilityEvent()&&this.applyNewVisibilityEvent(e),this.applyPendingVisibilityEvents(e),!e.getUnsigned().transaction_id&&e.getSender()===this.myUserId)for(var t of this.txnToEvent){var n=x(t,2),r=n[0];if(n[1].getId()===e.getId()){w.debug(`processLiveEvent: found sent event without txn ID: `,r,e.getId());var i=e.getUnsigned();i.transaction_id=r,e.setUnsigned(i);break}}}addLiveEvent(e,t){var n=t.duplicateStrategy,r=t.timelineWasEmpty,i=t.fromCache,a=t.addToState;for(var o of this.timelineSets)o.addLiveEvent(e,{duplicateStrategy:n,fromCache:i,timelineWasEmpty:r,addToState:a});e.sender&&e.getType()!==E.RoomRedaction&&this.addReceipt(mk(e.sender.userId,e,SE.Read),!0)}addPendingEvent(e,t){if(e.status!==P.SENDING&&e.status!==P.NOT_SENT)throw Error(`addPendingEvent called on an event with status `+e.status);if(this.txnToEvent.get(t))throw Error(`addPendingEvent called on an event with known txnId `+t);if(N.setEventMetadata(e,this.getLiveTimeline().getState(N.FORWARDS),!1),this.txnToEvent.set(t,e),this.pendingEventList){if(this.pendingEventList.some(e=>e.status===P.NOT_SENT)&&(w.warn(`Setting event as NOT_SENT due to messages in the same state`),e.setStatus(P.NOT_SENT)),this.pendingEventList.push(e),this.savePendingEvents(),e.isRelation()&&this.aggregateNonLiveRelation(e),e.isRedaction()){var n=e.event.redacts,r=this.pendingEventList.find(e=>e.getId()===n);!r&&n&&(r=this.findEventById(n)),r&&(r.markLocallyRedacted(e),this.emit(z.Redaction,e,this,r.threadRootId))}}else for(var i of this.timelineSets)i.getFilter()?i.getFilter().filterRoomTimeline([e]).length&&i.addEventToTimeline(e,i.getLiveTimeline(),{toStartOfTimeline:!1,addToState:!1}):i.addEventToTimeline(e,i.getLiveTimeline(),{toStartOfTimeline:!1,addToState:!1});this.emit(z.LocalEchoUpdated,e,this)}savePendingEvents(){if(this.pendingEventList){var e=this.pendingEventList.map(e=>FA(FA({},e.event),{},{txn_id:e.getTxnId()})).filter(e=>{var t=e.type===E.RoomMessageEncrypted,n=this.hasEncryptionStateEvent();return t||!n});this.client.store.setPendingEvents(this.roomId,e)}}aggregateNonLiveRelation(e){this.relations.aggregateChildEvent(e)}getEventForTxnId(e){return this.txnToEvent.get(e)}handleRemoteEcho(e,t){var n=t.getId(),r=e.getId(),i=t.status;w.debug(`Got remote echo for event ${n} -> ${r} old status ${i}`),this.txnToEvent.delete(e.getUnsigned().transaction_id),this.pendingEventList&&this.removePendingEvent(n),t.handleRemoteEcho(e.event);var a=this.eventShouldLiveIn(e),o=a.shouldLiveInRoom,s=a.threadId,c=s?this.getThread(s):null;if(c?.setEventMetadata(t),c?.timelineSet.handleRemoteEcho(t,n,r),o)for(var l of this.timelineSets)l.handleRemoteEcho(t,n,r);this.emit(z.LocalEchoUpdated,t,this,n,i)}updatePendingEvent(e,t,n){if(w.log(`setting pendingEvent status to ${t} in ${e.getRoomId()} event ID ${e.getId()} -> ${n}`),t==P.SENT&&!n)throw Error(`updatePendingEvent called with status=SENT, but no new event id`);if(t==P.SENT&&this.getTimelineForEvent(n)){var r=this.findEventById(n);if(!r?.getUnsigned().transaction_id&&r){var i=r.getUnsigned();i.transaction_id=e.getTxnId(),r.setUnsigned(i),this.removeEvent(r.getId()),this.handleRemoteEcho(r,e)}return}var a=e.status,o=e.getId();if(!a)throw Error(`updatePendingEventStatus called on an event which is not a local echo.`);var s=zA[a];if(!(s!=null&&s.includes(t)))throw Error(`Invalid EventStatus transition ${a}->${t}`);if(e.setStatus(t),t==P.SENT){e.replaceLocalEventId(n);var c=this.eventShouldLiveIn(e),l=c.shouldLiveInRoom,u=c.threadId,d=u?this.getThread(u):void 0;if(d?.setEventMetadata(e),d?.timelineSet.replaceEventId(o,n),l)for(var f of this.timelineSets)f.replaceEventId(o,n)}else if(t==P.CANCELLED){if(this.pendingEventList){var p=this.getPendingEvent(o);this.removePendingEvent(o),p!=null&&p.isRedaction()&&this.revertRedactionLocalEcho(p)}this.removeEvent(o)}this.savePendingEvents(),this.emit(z.LocalEchoUpdated,e,this,o,a)}revertRedactionLocalEcho(e){var t=e.event.redacts;if(t){var n=this.getUnfilteredTimelineSet().findEventById(t);n&&(n.unmarkLocallyRedacted(),this.emit(z.RedactionCancelled,e,this),n.isRelation()&&this.aggregateNonLiveRelation(n))}}assertTimelineSetsAreLive(){for(var e=0;en.retention?.shouldEventBeRetained(e)??!0),n.assertTimelineSetsAreLive();var c=n.findThreadRoots(e),l={},u={duplicateStrategy:r,fromCache:i,timelineWasEmpty:o,addToState:s},d=[...e];for(var f of e){var p;if(n.processLiveEvent(f),f.getUnsigned().transaction_id){var m=n.txnToEvent.get(f.getUnsigned().transaction_id);if(m){n.handleRemoteEcho(f,m);continue}}var h=n.eventShouldLiveIn(f,d,c),g=h.shouldLiveInRoom,_=h.shouldLiveInThread,v=h.threadId,y=v===void 0?``:v;if(!_&&!g&&f.isRelation())try{var b=new MI(yield n.client.fetchRoomEvent(n.roomId,f.relationEventId));if(d.push(b),b.threadRootId){c.add(b.threadRootId);var S=f.getUnsigned();S[eO.name]=b.threadRootId,f.setUnsigned(S)}var C=n.eventShouldLiveIn(f,d,c);g=C.shouldLiveInRoom,_=C.shouldLiveInThread;var ee=C.threadId;y=ee===void 0?``:ee}catch(e){w.error(`Failed to load parent event of unhandled relation`,e)}_&&!l[y]&&(l[y]=[]),(p=l[y])==null||p.push(f),g?n.addLiveEvent(f,u):!_&&f.isRelation()&&n.relations.aggregateChildEvent(f)}Object.entries(l).forEach(e=>{var t=x(e,2),r=t[0],i=t[1];n.addThreadedEvents(r,i,!1)})})()}partitionThreadedEvents(e){var t=0,n=1,r=2;if(this.client.supportsThreads()){var i=this.findThreadRoots(e);return e.reduce((a,o)=>{var s=this.eventShouldLiveIn(o,e,i),c=s.shouldLiveInRoom,l=s.shouldLiveInThread,u=s.threadId;return c&&a[t].push(o),l&&(o.setThreadId(u??``),a[n].push(o)),!l&&!c&&a[r].push(o),a},[[],[],[]])}else return[e,[],[]]}findThreadRoots(e){var t=new Set;for(var n of e){var r=n.threadRootId;r!=null&&t.add(r)}return t}addReceipt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=e.getContent();this.roomReceipts.add(n,t),Object.keys(n).forEach(e=>{Object.keys(n[e]).forEach(r=>{Object.keys(n[e][r]).forEach(i=>{var a=n[e][r][i],o=!a.thread_id||a.thread_id===`main`,s=o?this:this.threads.get(a.thread_id??``);if(s){if(s.addReceiptToStructure(e,r,i,a,t),!t&&this.client.isInitialSyncComplete()&&i===this.client.getUserId()){var c=s.timeline[s.timeline.length-1];c&&e===c.getId()&&i===c.getSender()&&(s.setUnread(R.Total,0),s.setUnread(R.Highlight,0))}}else this.cachedThreadReadReceipts.set(a.thread_id,[...this.cachedThreadReadReceipts.get(a.thread_id)??[],{eventId:e,receiptType:r,userId:i,receipt:a,synthetic:t}]);i===this.client.getUserId()&&!o&&a.ts(this.unthreadedReceipts.get(i)?.ts??0)&&this.unthreadedReceipts.set(i,a)})})}),this.emit(z.Receipt,e,this)}addEphemeralEvents(e){for(var t of e)t.getType()===E.Typing?this.currentState.setTypingEvent(t):t.getType()===E.Receipt&&this.addReceipt(t)}removeEvents(e){for(var t of e)this.removeEvent(t)}removeEvent(e){var t=!1;for(var n of this.timelineSets){var r=n.removeEvent(e);r&&(r.isRedaction()&&this.revertRedactionLocalEcho(r),t=!0)}return t}recalculate(){var e=this.currentState.getStateEvents(E.RoomMember,this.myUserId);if(e){var t=e.getContent().membership;this.updateMyMembership(t),t===k.Invite&&(e.getUnsigned().invite_room_state||[]).forEach(e=>{this.currentState.getStateEvents(e.type,e.state_key)||this.currentState.setStateEvents([new MI({type:e.type,state_key:e.state_key,content:e.content,event_id:`$fake`+Date.now(),room_id:this.roomId,sender:this.myUserId})])})}var n=this.name;this.name=this.calculateRoomName(this.myUserId),this.normalizedName=RE(this.name),this.summary=new rk(this.roomId,{title:this.name}),n!==this.name&&this.emit(z.Name,this)}addTags(e){this.tags=e.getContent().tags||{},this.emit(z.Tags,e,this)}addAccountData(e){for(var t of e){t.getType()===`m.tag`&&this.addTags(t);var n=t.getType(),r=this.accountData.get(n);this.accountData.set(n,t),this.emit(z.AccountData,t,this,r)}}getAccountData(e){return this.accountData.get(e)}_unstable_getStickyEvents(){return this.stickyEvents.getStickyEvents()}_unstable_getKeyedStickyEvent(e,t,n){return this.stickyEvents.getKeyedStickyEvent(e,t,n)}_unstable_getUnkeyedStickyEvent(e,t){return this.stickyEvents.getUnkeyedStickyEvent(e,t)}_unstable_addStickyEvents(e){return e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),this.stickyEvents.addStickyEvents(e)}maySendMessage(){return this.getMyMembership()===k.Join&&(this.hasEncryptionStateEvent()?this.currentState.maySendEvent(E.RoomMessageEncrypted,this.myUserId):this.currentState.maySendEvent(E.RoomMessage,this.myUserId))}canInvite(e){var t=this.getMyMembership()===k.Join,n=this.currentState.getStateEvents(E.RoomPowerLevels,``),r=n&&n.getContent(),i=this.getMember(e);return r&&i&&r.invite>i.powerLevel&&(t=!1),t}getJoinRule(){return this.currentState.getJoinRule()}getHistoryVisibility(){return this.currentState.getHistoryVisibility()}getGuestAccess(){return this.currentState.getGuestAccess()}getType(){var e=this.currentState.getStateEvents(E.RoomCreate,``);if(!e){this.getTypeWarning||=(w.warn(`[getType] Room `+this.roomId+` does not have an m.room.create event`),!0);return}return e.getContent()[BD]}isSpaceRoom(){return this.getType()===VD.Space}isCallRoom(){return this.getType()===VD.UnstableCall}isElementVideoRoom(){return this.getType()===VD.ElementVideo}findPredecessor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.getLiveTimeline().getState(N.FORWARDS);return t?t.findPredecessor(e):null}roomNameGenerator(e){if(this.client.roomNameGenerator){var t=this.client.roomNameGenerator(this.roomId,e);if(t!==null)return t}switch(e.type){case BA.Actual:return e.name;case BA.Generated:switch(e.subtype){case`Inviting`:return`Inviting ${VA(e.names,e.count)}`;default:return VA(e.names,e.count)}case BA.EmptyRoom:return e.oldName?`Empty room (was ${e.oldName})`:`Empty room`}}calculateRoomName(e){if(!(arguments.length>1&&arguments[1]!==void 0&&arguments[1])){var t=this.currentState.getStateEvents(E.RoomName,``)?.getContent().name;if(t&&typeof t==`string`)return this.roomNameGenerator({type:BA.Actual,name:t})}var n=this.getCanonicalAlias();if(n)return this.roomNameGenerator({type:BA.Actual,name:n});var r=this.currentState.getJoinedMemberCount()+this.currentState.getInvitedMemberCount()-1,i=this.getFunctionalMembers(),a=[];if(this.heroes)this.heroes.forEach(e=>{if(i.includes(e.userId)){r--;return}if(e.displayName)a.push(e.displayName);else{var t=this.getMember(e.userId);a.push(t?t.name:e.userId)}});else{var o=this.currentState.getMembers().filter(t=>t.userId!==e&&(t.membership===k.Invite||t.membership===k.Join));o=o.filter(e=>{var t=e.userId;return i.includes(t)?(r--,!1):!0});var s=new Intl.Collator;o.sort((e,t)=>s.compare(e.userId,t.userId)),o=o.slice(0,5),a=o.map(e=>e.name)}if(r)return this.roomNameGenerator({type:BA.Generated,names:a,count:r});if(this.getMyMembership()==k.Join){var c=this.currentState.getStateEvents(E.RoomThirdPartyInvite);if(c!=null&&c.length){var l=c.map(e=>e.getContent().display_name);return this.roomNameGenerator({type:BA.Generated,subtype:`Inviting`,names:l,count:l.length+1})}}var u=a;u.length||(u=this.currentState.getMembers().filter(t=>t.userId!==e&&t.membership!==k.Invite&&t.membership!==k.Join).map(e=>e.name));var d;return u.length&&(d=this.roomNameGenerator({type:BA.Generated,names:u,count:u.length+1})),this.roomNameGenerator({type:BA.EmptyRoom,oldName:d})}applyNewVisibilityEvent(e){var t=e.asVisibilityChange();if(t){var n=e.getSender();if(n&&(ZD.name&&this.currentState.maySendStateEvent(ZD.name,n)||ZD.altName&&this.currentState.maySendStateEvent(ZD.altName,n))){var r=this.visibilityEvents.get(t.eventId);if(r){for(var i=r.length-1,a=Math.max(0,r.length-LA);i>=a&&!(r[i].getTs()t.getId()===e.getId());if(r!==-1&&(n.splice(r,1),r===n.length)){var i=this.findEventById(t);if(!i)return;if(r===0)this.visibilityEvents.delete(t),i.applyVisibilityEvent();else{var a=n[n.length-1].asVisibilityChange();if(!a)throw Error(`at this stage, visibility changes should be well-formed`);i.applyVisibilityEvent(a)}}}}applyPendingVisibilityEvents(e){var t=this.visibilityEvents.get(e.getId());if(!(!t||t.length==0)){var n=t[t.length-1],r=n.asVisibilityChange();r&&(r.visible,!(n.getTs()this.getThreadUnreadNotificationCount(e.id,R.Total)>0))t.fixupNotifications(e)}compareEventOrdering(e,t){return Pk(this,e,t)}hasEncryptionStateEvent(){return!!this.getLiveTimeline().getState(N.FORWARDS)?.getStateEvents(E.RoomEncryption,``)}},zA={[P.ENCRYPTING]:[P.SENDING,P.NOT_SENT,P.CANCELLED],[P.SENDING]:[P.ENCRYPTING,P.QUEUED,P.NOT_SENT,P.SENT],[P.QUEUED]:[P.SENDING,P.NOT_SENT,P.CANCELLED],[P.SENT]:[],[P.NOT_SENT]:[P.SENDING,P.QUEUED,P.CANCELLED],[P.CANCELLED]:[]},BA=function(e){return e[e.EmptyRoom=0]=`EmptyRoom`,e[e.Generated=1]=`Generated`,e[e.Actual=2]=`Actual`,e}({});function VA(e,t){var n=t-1;return e.length?e.length===1&&n<=1?e[0]:e.length===2&&n<=2?`${e[0]} and ${e[1]}`:n>1?`${e[0]} and ${n} others`:`${e[0]} and 1 other`:`Empty room`}var HA=function(e){return e[e.Stable=0]=`Stable`,e[e.Unstable=1]=`Unstable`,e[e.Unsupported=2]=`Unsupported`,e}({}),UA=function(e){return e.Thread=`Thread`,e.ThreadUnreadNotifications=`ThreadUnreadNotifications`,e.LoginTokenRequest=`LoginTokenRequest`,e.RelationBasedRedactions=`RelationBasedRedactions`,e.AccountDataDeletion=`AccountDataDeletion`,e.RelationsRecursion=`RelationsRecursion`,e.IntentionalMentions=`IntentionalMentions`,e}({}),WA={[UA.Thread]:{unstablePrefixes:[`org.matrix.msc3440`],matrixVersion:`v1.3`},[UA.ThreadUnreadNotifications]:{unstablePrefixes:[`org.matrix.msc3771`,`org.matrix.msc3773`],matrixVersion:`v1.4`},[UA.LoginTokenRequest]:{unstablePrefixes:[`org.matrix.msc3882`]},[UA.RelationBasedRedactions]:{unstablePrefixes:[`org.matrix.msc3912`]},[UA.AccountDataDeletion]:{unstablePrefixes:[`org.matrix.msc3391`]},[UA.RelationsRecursion]:{unstablePrefixes:[`org.matrix.msc3981`],matrixVersion:`v1.10`},[UA.IntentionalMentions]:{unstablePrefixes:[`org.matrix.msc3952_intentional_mentions`],matrixVersion:`v1.7`}};function GA(e){return KA.apply(this,arguments)}function KA(){return KA=C(function*(e){var t=new Map;for(var n of Object.entries(WA)){var r=x(n,2),i=r[0],a=r[1],o=e.versions?.includes(a.matrixVersion||``)??!1,s=a.unstablePrefixes?.every(t=>e.unstable_features?.[t]===!0)??!1;o?t.set(i,HA.Stable):s?t.set(i,HA.Unstable):t.set(i,HA.Unsupported)}return t}),KA.apply(this,arguments)}function qA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function JA(e){for(var t=1;t!1},e)}var nj=class{constructor(e,t,n){var r=this;this.client=e,h(this,`opts`,void 0),h(this,`syncOpts`,void 0),h(this,`_peekRoom`,null),h(this,`currentSyncRequest`,void 0),h(this,`abortController`,void 0),h(this,`syncState`,null),h(this,`syncStateData`,void 0),h(this,`catchingUp`,!1),h(this,`running`,!1),h(this,`keepAliveTimer`,void 0),h(this,`connectionReturnedResolvers`,void 0),h(this,`notifEvents`,[]),h(this,`failedSyncCount`,0),h(this,`storeIsInvalid`,!1),h(this,`presence`,void 0),h(this,`getPushRules`,C(function*(){try{r.syncOpts.logger.debug(`Getting push rules...`);var e=yield r.client.getPushRules();r.syncOpts.logger.debug(`Got push rules`),r.client.pushRules=e}catch(e){return r.syncOpts.logger.error(`Getting push rules failed`,e),r.shouldAbortSync(e)?void 0:(r.syncOpts.logger.debug(`Waiting for saved sync before retrying push rules...`),yield r.recoverFromSyncStartupError(r.savedSyncPromise,e),r.getPushRules())}})),h(this,`buildDefaultFilter`,()=>{var e=new dk(this.client.credentials.userId);return this.client.canSupport.get(UA.ThreadUnreadNotifications)!==HA.Unsupported&&e.setUnreadThreadNotifications(!0),e}),h(this,`prepareSyncFilterLazyLoading`,()=>{this.syncOpts.logger.debug(`Prepare lazy loading for sync...`),this.client.isGuest()&&(this.opts.lazyLoadMembers=!1),this.opts.lazyLoadMembers&&(this.syncOpts.logger.debug(`Enabling lazy load on sync filter...`),this.opts.filter||(this.opts.filter=this.buildDefaultFilter()),this.opts.filter.setLazyLoadMembers(!0))}),h(this,`prepareSyncFilterUserProfiles`,C(function*(){var e;(e=r.opts.unstableMSC4429SyncUserProfileFields)!=null&&e.length&&(r.syncOpts.logger.debug(`Enabling EXPERIMENTAL user profiles on sync filter...`),r.opts.filter||(r.opts.filter=r.buildDefaultFilter()),r.opts.filter.setUnstableMSC4429SyncUserProfiles(r.opts.unstableMSC4429SyncUserProfileFields,yield r.client.doesServerSupportUnstableFeature(`org.matrix.msc4429.stable`)))})),h(this,`storeClientOptions`,C(function*(){try{r.syncOpts.logger.debug(`Storing client options...`),yield r.client.storeClientOptions(),r.syncOpts.logger.debug(`Stored client options`)}catch(e){throw r.syncOpts.logger.error(`Storing client options failed`,e),e}})),h(this,`getFilter`,C(function*(){r.syncOpts.logger.debug(`Getting filter...`);var e=r.opts.filter?r.opts.filter:r.buildDefaultFilter(),t;try{t=yield r.client.getOrCreateFilter(QA(r.client.credentials.userId),e)}catch(e){return r.syncOpts.logger.error(`Getting filter failed`,e),r.shouldAbortSync(e)?{}:(r.syncOpts.logger.debug(`Waiting for saved sync before retrying filter...`),yield r.recoverFromSyncStartupError(r.savedSyncPromise,e),r.getFilter())}return{filter:e,filterId:t}})),h(this,`savedSyncPromise`,void 0),h(this,`onOnline`,()=>{this.syncOpts.logger.debug(`Browser thinks we are back online`),this.startKeepAlives(0)}),this.opts=ej(t),this.syncOpts=tj(n),e.getNotifTimelineSet()&&e.reEmitter.reEmit(e.getNotifTimelineSet(),[z.Timeline,z.TimelineReset])}createRoom(e){var t=rj(this.client,e,this.opts);return t.on(j.Marker,(e,n)=>{this.onMarkerStateEvent(t,e,n)}),t}onMarkerStateEvent(e,t){if((arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).timelineWasEmpty){this.syncOpts.logger.debug(`MarkerState: Ignoring markerEventId=${t.getId()} in roomId=${e.roomId} because the timeline was empty before the marker arrived which means there is nothing to refresh.`);return}ZA.includes(e.getVersion())||t.getSender()===e.getCreator()?(this.syncOpts.logger.debug(`MarkerState: Timeline needs to be refreshed because a new markerEventId=${t.getId()} was sent in roomId=${e.roomId}`),e.setTimelineNeedsRefresh(!0),e.emit(z.HistoryImportedWithinTimeline,t,e)):this.syncOpts.logger.debug(`MarkerState: Ignoring markerEventId=${t.getId()} in roomId=${e.roomId} because MSC2716 is not supported in the room version or for any room version, the marker wasn't sent by the room creator.`)}syncLeftRooms(){var e=this;return C(function*(){var t,n=e.client,r=new dk(e.client.credentials.userId);r.setTimelineLimit(1),r.setIncludeLeaveRooms(!0);var i=e.opts.pollTimeout+YA,a={timeout:0,filter:yield n.getOrCreateFilter(QA(n.credentials.userId,`LEFT_ROOMS`),r),"org.matrix.msc4222.use_state_after":!0},o=yield n.http.authedRequest(F.Get,`/sync`,a,void 0,{localTimeoutMs:i}),s=[];return(t=o.rooms)!=null&&t.leave&&(s=e.mapSyncResponseToRoomArray(o.rooms.leave)),(yield Promise.all(s.map(function(){var t=C(function*(t){var r=t.room;if(t.isBrandNewRoom){t.timeline=t.timeline||{prev_batch:null,events:[]},r.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,N.BACKWARDS);var i=(yield e.mapAndInjectRoomEvents(t)).timelineEvents;return r.recalculate(),n.store.storeRoom(r),n.emit(Z.Room,r),e.processEventsForNotifs(r,i),r}});return function(e){return t.apply(this,arguments)}}()))).filter(Boolean)})()}peek(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20;if(this._peekRoom?.roomId===e)return Promise.resolve(this._peekRoom);var n=this.client;return this._peekRoom=this.createRoom(e),this.client.roomInitialSync(e,t).then(t=>{if(this._peekRoom?.roomId!==e)throw Error(`Peeking aborted`);t.messages=t.messages||{chunk:[]},t.messages.chunk=t.messages.chunk||[],t.state=t.state||[];var r=ME(t.state).map(n.getEventMapper()),i=t.state.map(n.getEventMapper()),a=t.messages.chunk.map(n.getEventMapper());return Array.isArray(t.presence)&&t.presence.map(n.getEventMapper()).forEach(function(e){var t=n.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=sO.createUser(e.getContent().user_id,n),t.setPresenceEvent(e),n.store.storeUser(t)),n.emit(Z.Event,e)}),t.messages.start&&(this._peekRoom.oldState.paginationToken=t.messages.start),this._peekRoom.oldState.setStateEvents(r),this._peekRoom.currentState.setStateEvents(i),this.resolveInvites(this._peekRoom),this._peekRoom.recalculate(),this._peekRoom.addEventsToTimeline(a.reverse(),!0,!0,this._peekRoom.getLiveTimeline(),t.messages.start),n.store.storeRoom(this._peekRoom),n.emit(Z.Room,this._peekRoom),this.peekPoll(this._peekRoom),this._peekRoom})}stopPeeking(){this._peekRoom=null}peekPoll(e,t){var n=this;if(this._peekRoom!==e){this.syncOpts.logger.debug(`Stopped peeking in room %s`,e.roomId);return}this.client.http.authedRequest(F.Get,`/events`,{room_id:e.roomId,timeout:`30000`,from:t},void 0,{localTimeoutMs:50*1e3,abortSignal:this.abortController?.signal}).then(function(){var t=C(function*(t){if(n._peekRoom!==e){n.syncOpts.logger.debug(`Stopped peeking in room %s`,e.roomId);return}t.chunk.filter(function(e){return e.type===`m.presence`}).map(n.client.getEventMapper()).forEach(e=>{var t=n.client.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=sO.createUser(e.getContent().user_id,n.client),t.setPresenceEvent(e),n.client.store.storeUser(t)),n.client.emit(Z.Event,e)});var r=t.chunk.filter(function(t){return t.room_id===e.roomId&&t.event_id}).map(n.client.getEventMapper());yield e.addLiveEvents(r,{addToState:!0}),n.peekPoll(e,t.end)});return function(e){return t.apply(this,arguments)}}(),n=>{this.syncOpts.logger.error(`[%s] Peek poll failed: %s`,e.roomId,n),setTimeout(()=>{this.peekPoll(e,t)},30*1e3)})}getSyncState(){return this.syncState}getSyncStateData(){return this.syncStateData??null}recoverFromSyncStartupError(e,t){var n=this;return C(function*(){yield e;var r=n.startKeepAlives();n.updateSyncState(B.Error,{error:t}),yield r})()}shouldAbortSync(e){return e.errcode===`M_UNKNOWN_TOKEN`?(this.syncOpts.logger.warn(`Token no longer valid - assuming logout`),this.stop(),this.updateSyncState(B.Error,{error:e}),!0):!1}sync(){var e=this;return C(function*(){var t,n;if(e.running=!0,e.abortController=new AbortController,(t=globalThis.window)==null||(n=t.addEventListener)==null||n.call(t,`online`,e.onOnline,!1),e.client.isGuest())return e.doSync({});e.syncOpts.logger.debug(`Getting saved sync token...`);var r=e.client.store.getSavedSyncToken().then(t=>(e.syncOpts.logger.debug(`Got saved sync token`),t));e.savedSyncPromise=e.client.store.getSavedSync().then(t=>{if(e.syncOpts.logger.debug(`Got reply from saved sync, exists? ${!!t}`),t)return e.syncFromCache(t)}).catch(t=>{e.syncOpts.logger.error(`Getting saved sync failed`,t)}),yield e.getPushRules(),e.prepareSyncFilterLazyLoading(),yield e.prepareSyncFilterUserProfiles(),yield e.storeClientOptions();var i=yield e.getFilter(),a=i.filterId,o=i.filter;if(o){if(e.client.resetNotifTimelineSet(),!e.currentSyncRequest){var s=a,c=yield r;if(c)e.syncOpts.logger.debug(`Sending first sync request...`);else{e.syncOpts.logger.debug(`Sending initial sync request...`);var l=e.buildDefaultFilter();l.setDefinition(o.getDefinition()),l.setTimelineLimit(e.opts.initialSyncLimit),s=JSON.stringify(l.getDefinition())}e.currentSyncRequest=e.doSyncRequest({filter:s},c)}return e.syncOpts.logger.debug(`Waiting for saved sync before starting sync processing...`),yield e.savedSyncPromise,e.doSync({filter:a})}})()}stop(){var e,t,n;this.syncOpts.logger.debug(`SyncApi.stop`),(e=globalThis.window)==null||(t=e.removeEventListener)==null||t.call(e,`online`,this.onOnline,!1),this.running=!1,(n=this.abortController)==null||n.abort(),this.keepAliveTimer&&=(clearTimeout(this.keepAliveTimer),void 0)}retryImmediately(){return this.connectionReturnedResolvers?(this.startKeepAlives(0),!0):!1}syncFromCache(e){var t=this;return C(function*(){t.syncOpts.logger.debug(`sync(): not doing HTTP hit, instead returning stored /sync data`);var n=e.nextBatch;t.client.store.setSyncToken(n);var r={nextSyncToken:n,catchingUp:!1,fromCache:!0},i={next_batch:n,rooms:e.roomsData,account_data:{events:e.accountData}};try{yield t.processSyncResponse(r,i)}catch(e){t.syncOpts.logger.error(`Error processing cached sync`,e)}t.storeIsInvalid||t.updateSyncState(B.Prepared,r)})()}doSync(e){var t=this;return C(function*(){for(;t.running;){var n=t.client.store.getSyncToken(),r=void 0;try{t.currentSyncRequest||=t.doSyncRequest(e,n),r=yield t.currentSyncRequest}catch(e){if(yield t.onSyncError(e))return;continue}finally{t.currentSyncRequest=void 0}t.client.store.setSyncToken(r.next_batch),t.failedSyncCount=0;var i={oldSyncToken:n??void 0,nextSyncToken:r.next_batch,catchingUp:t.catchingUp};try{yield t.processSyncResponse(i,r)}catch(e){t.syncOpts.logger.error(`Caught /sync error`,e),t.client.emit(Z.SyncUnexpectedError,e)}yield t.client.store.setSyncData(r),i.catchingUp=t.catchingUp,e.hasSyncedBefore||=(t.updateSyncState(B.Prepared,i),!0),t.syncOpts.cryptoCallbacks&&(yield t.syncOpts.cryptoCallbacks.onSyncCompleted(i)),t.updateSyncState(B.Syncing,i),t.client.store.wantsSave()&&(yield t.client.store.save())}t.running||(t.syncOpts.logger.debug(`Sync no longer running: exiting.`),t.connectionReturnedResolvers&&=(t.connectionReturnedResolvers.reject(),void 0),t.updateSyncState(B.Stopped))})()}doSyncRequest(e,t){var n=this.getSyncParams(e,t);return this.client.http.authedRequest(F.Get,`/sync`,n,void 0,{localTimeoutMs:n.timeout+YA,abortSignal:this.abortController?.signal})}getSyncParams(e,t){var n=this.opts.pollTimeout;(this.getSyncState()!==B.Syncing||this.catchingUp)&&(this.catchingUp=!0,n=0);var r=e.filter;this.client.isGuest()&&!r&&(r=this.getGuestFilter());var i={filter:r,timeout:n,"org.matrix.msc4222.use_state_after":!0};return this.opts.disablePresence?i.set_presence=$A.Offline:this.presence!==void 0&&(i.set_presence=this.presence),t?i.since=t:i._cacheBuster=Date.now(),[B.Reconnecting,B.Error].includes(this.getSyncState())&&(i.timeout=0),i}setPresence(e){this.presence=e}onSyncError(e){var t=this;return C(function*(){if(!t.running)return t.syncOpts.logger.debug(`Sync no longer running: exiting`),t.connectionReturnedResolvers&&=(t.connectionReturnedResolvers.reject(),void 0),t.updateSyncState(B.Stopped),!0;if(t.syncOpts.logger.error(`/sync error %s`,e),t.shouldAbortSync(e))return!0;t.failedSyncCount++,t.syncOpts.logger.debug(`Number of consecutive failed sync requests:`,t.failedSyncCount),t.syncOpts.logger.debug(`Starting keep-alive`);var n=t.startKeepAlives();return t.currentSyncRequest=void 0,t.updateSyncState(t.failedSyncCount>=XA?B.Error:B.Reconnecting,{error:e}),(yield n)&&t.getSyncState()===B.Error&&t.updateSyncState(B.Catchup,{catchingUp:!0}),!1})()}processSyncResponse(e,t){var n=this;return C(function*(){var r=n.client;if(Array.isArray(t.presence?.events)&&t.presence.events.filter(hD).map(r.getEventMapper()).forEach(function(e){var t=r.store.getUser(e.getSender());t?t.setPresenceEvent(e):(t=sO.createUser(e.getSender(),r),t.setPresenceEvent(e),r.store.storeUser(t)),r.emit(Z.Event,e)}),Array.isArray(t.account_data?.events)){var i=t.account_data.events.filter(hD).map(r.getEventMapper()),a=i.reduce((e,t)=>(e[t.getType()]=r.store.getAccountData(t.getType()),e),{});r.store.storeAccountDataEvents(i),i.forEach(function(e){if(e.getType()===E.PushRules){var t=e.getContent();r.setPushRules(t)}var n=a[e.getType()];return r.emit(Z.AccountData,e,n),e})}var o=t.users??t[`org.matrix.msc4429.users`];if(typeof o==`object`&&o){var s=[],c=new Map;for(var l of Object.entries(o)){var u=x(l,2),d=u[0],f=u[1];if(w.info(`Storing user profile ${d}`,f),f.profile_updates){var p=yield r.store.getUserProfile(d);c.set(d,JA(JA({},p),f.profile_updates))}else f.profile_updates===null&&s.push(d)}s.length&&(yield r.store.removeUserProfiles(s)),c.size&&(yield r.store.storeUserProfiles(c));for(var m of Object.entries(o)){var h=x(m,2),g=h[0],_=h[1];r.emit(Z.UserProfileUpdate,g,_.profile_updates??null)}}if(t.to_device&&Array.isArray(t.to_device.events)&&t.to_device.events.length>0){var v=t.to_device.events.filter(hD);ij(n.syncOpts.cryptoCallbacks?yield n.syncOpts.cryptoCallbacks.preprocessToDeviceMessages(v):v.map(e=>({message:e,encryptionInfo:null})),r)}else n.catchingUp=!1;var y=[],b=[],S=[],ee=[];t.rooms&&(t.rooms.invite&&(y=n.mapSyncResponseToRoomArray(t.rooms.invite)),t.rooms.join&&(b=n.mapSyncResponseToRoomArray(t.rooms.join)),t.rooms.leave&&(S=n.mapSyncResponseToRoomArray(t.rooms.leave)),t.rooms.knock&&(ee=n.mapSyncResponseToRoomArray(t.rooms.knock))),n.notifEvents=[],yield Promise.all(y.map(function(){var e=C(function*(e){var t=e.room,i=n.mapSyncEventsFormat(e.invite_state,t);yield n.injectRoomEvents(t,i,void 0),e.isBrandNewRoom?(t.recalculate(),r.store.storeRoom(t),r.emit(Z.Room,t)):t.recalculate(),i.forEach(function(e){r.emit(Z.Event,e)})});return function(t){return e.apply(this,arguments)}}())),yield Promise.all(b.map(function(){var t=C(function*(t){var i=t.room,a=n.mapSyncEventsFormat(t.state,i),o=n.mapSyncEventsFormat(t[`org.matrix.msc4222.state_after`],i),s=n.mapSyncEventsFormat(t.timeline,i,!1),c=n.mapSyncEventsFormat(t.ephemeral),l=n.mapSyncEventsFormat(t.account_data),u=n.mapSyncEventsFormat(t.msc4354_sticky),d=t[`org.matrix.msc4222.state_after`]?o:a.concat(s),f=n.isRoomEncrypted(i,d);t.unread_notifications&&((!f||t.unread_notifications.notification_count===0)&&i.setUnreadNotificationCount(R.Total,t.unread_notifications.notification_count??0),(!f||i.getUnreadNotificationCount(R.Highlight)<=0)&&i.setUnreadNotificationCount(R.Highlight,t.unread_notifications.highlight_count??0));var p=t[ik.name]??t[ik.altName];if(p){i.resetThreadUnreadNotificationCountFromSync(Object.keys(p));for(var m of Object.entries(p)){var h=x(m,2),g=h[0],_=h[1];(!f||_.notification_count===0)&&i.setThreadUnreadNotificationCount(g,R.Total,_.notification_count??0);var v=i.getThreadUnreadNotificationCount(g,R.Highlight)<=0;(!f||f&&v)&&i.setThreadUnreadNotificationCount(g,R.Highlight,_.highlight_count??0)}}else i.resetThreadUnreadNotificationCountFromSync();if(t.timeline=t.timeline||{},t.isBrandNewRoom)t.timeline.prev_batch!==null&&i.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,N.BACKWARDS);else if(t.timeline.limited){for(var y=!0,b=s.length-1;b>=0;b--){var S=s[b].getId();if(i.getTimelineForEvent(S)){n.syncOpts.logger.debug(`Already have event ${S} in limited sync - not resetting`),y=!1,s.splice(0,b);break}}y&&(i.resetLiveTimeline(t.timeline.prev_batch,n.syncOpts.canResetEntireTimeline(i.roomId)?null:e.oldSyncToken??null),r.resetNotifTimelineSet())}if(n.syncOpts.cryptoCallbacks)for(var C of d)C.isState()&&C.getType()===E.RoomEncryption&&C.getStateKey()===``&&(yield n.syncOpts.cryptoCallbacks.onCryptoEvent(i,C));for(var ee of s.filter(e=>e.isState()))yield n.client.decryptEventIfNeeded(ee);try{`org.matrix.msc4222.state_after`in t?yield n.injectRoomEvents(i,void 0,o,s,e.fromCache):yield n.injectRoomEvents(i,a,void 0,s,e.fromCache)}catch(e){n.syncOpts.logger.error(`Failed to process events on room ${i.roomId}:`,e)}t.summary&&i.setSummary(t.summary),i.addEphemeralEvents(c),i.addAccountData(l);var te=u.concat(s.filter(e=>e.unstableStickyInfo!==void 0));i._unstable_addStickyEvents(te),i.recalculate(),t.isBrandNewRoom&&(r.store.storeRoom(i),r.emit(Z.Room,i)),n.processEventsForNotifs(i,s);var ne=e=>r.emit(Z.Event,e);a.forEach(ne),s.forEach(ne),c.forEach(ne),l.forEach(ne),u.filter(e=>!s.some(t=>t.getId()===e.getId())).forEach(ne),i.decryptCriticalEvents()});return function(e){return t.apply(this,arguments)}}())),yield Promise.all(S.map(function(){var e=C(function*(e){var t=e.room,i=yield n.mapAndInjectRoomEvents(e),a=i.timelineEvents,o=i.stateEvents,s=i.stateAfterEvents,c=n.mapSyncEventsFormat(e.account_data);t.addAccountData(c),t.recalculate(),e.isBrandNewRoom&&(r.store.storeRoom(t),r.emit(Z.Room,t)),n.processEventsForNotifs(t,a),o?.forEach(function(e){r.emit(Z.Event,e)}),s?.forEach(function(e){r.emit(Z.Event,e)}),a.forEach(function(e){r.emit(Z.Event,e)}),c.forEach(function(e){r.emit(Z.Event,e)})});return function(t){return e.apply(this,arguments)}}())),yield Promise.all(ee.map(function(){var e=C(function*(e){var t=e.room,i=n.mapSyncEventsFormat(e.knock_state,t);yield n.injectRoomEvents(t,i,void 0),e.isBrandNewRoom?(t.recalculate(),r.store.storeRoom(t),r.emit(Z.Room,t)):t.recalculate(),i.forEach(function(e){r.emit(Z.Event,e)})});return function(t){return e.apply(this,arguments)}}())),e.oldSyncToken&&n.notifEvents.length&&(n.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),n.notifEvents.forEach(function(e){var t;(t=r.getNotifTimelineSet())==null||t.addLiveEvent(e,{addToState:!0})})),t.device_lists&&n.syncOpts.cryptoCallbacks&&(yield n.syncOpts.cryptoCallbacks.processDeviceLists(t.device_lists)),yield n.syncOpts.cryptoCallbacks?.processKeyCounts(t.device_one_time_keys_count,t.device_unused_fallback_key_types??t[`org.matrix.msc2732.device_unused_fallback_key_types`])})()}startKeepAlives(e){return e===void 0&&(e=2e3+Math.floor(Math.random()*5e3)),this.keepAliveTimer!==null&&clearTimeout(this.keepAliveTimer),e>0?this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this),e):this.pokeKeepAlive(),this.connectionReturnedResolvers||=Promise.withResolvers(),this.connectionReturnedResolvers.promise}pokeKeepAlive(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!this.running){clearTimeout(this.keepAliveTimer),this.connectionReturnedResolvers&&=(this.connectionReturnedResolvers.reject(`SyncApi.stop() was called`),void 0);return}var t=()=>{clearTimeout(this.keepAliveTimer),this.connectionReturnedResolvers&&=(this.connectionReturnedResolvers.resolve(e),void 0)};this.client.http.request(F.Get,`/_matrix/client/versions`,void 0,void 0,{prefix:``,localTimeoutMs:15*1e3,abortSignal:this.abortController?.signal}).then(()=>{t()},n=>{n.httpStatus==400||n.httpStatus==404?this.keepAliveTimer=setTimeout(t,2e3):(e=!0,this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this,e),5e3+Math.floor(Math.random()*5e3)),this.updateSyncState(B.Error,{error:n}))})}mapSyncResponseToRoomArray(e){var t=this.client;return Object.keys(e).filter(e=>!pD(e)).map(n=>{var r=t.store.getRoom(n),i=!1;return r||(r=this.createRoom(n),i=!0),JA(JA({},e[n]),{},{room:r,isBrandNewRoom:i})})}mapSyncEventsFormat(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!Array.isArray(e.events))return[];var r=this.client.getEventMapper({decrypt:n});return e.events.filter(hD).map(function(e){return t&&(e.room_id=t.roomId),r(e)})}resolveInvites(e){if(!(!e||!this.opts.resolveInvitesToProfiles)){var t=this.client;e.getMembersWithMembership(k.Invite).forEach(function(n){if(!n.requestedProfileInfo){n.requestedProfileInfo=!0;var r=t.getUser(n.userId);(r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId)).then(function(t){var r=n.events.member;r?.getContent().membership===k.Invite&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))},function(e){})}})}}findEncryptionEvent(e){return e?.find(e=>e.getType()===E.RoomEncryption&&e.getStateKey()===``)}isRoomEncrypted(e,t){return e.hasEncryptionStateEvent()||!!this.findEncryptionEvent(t)}mapAndInjectRoomEvents(e){var t=this;return C(function*(){var n=t.mapSyncEventsFormat(e.state,e.room),r=t.mapSyncEventsFormat(e[`org.matrix.msc4222.state_after`],e.room),i=t.mapSyncEventsFormat(e.timeline,e.room);return`org.matrix.msc4222.state_after`in e?yield t.injectRoomEvents(e.room,void 0,r,i):yield t.injectRoomEvents(e.room,n,void 0,i),{timelineEvents:i,stateEvents:n,stateAfterEvents:r}})()}injectRoomEvents(e,t,n,r){var i=arguments,a=this;return C(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:!1,s=n??t,c=e.getLiveTimeline(),l=c.getEvents().length==0;if(l){for(var u of s)a.client.getPushActionsForEvent(u);c.initialiseState(s,{timelineWasEmpty:l})}a.resolveInvites(e),e.recalculate(),l||(e.oldState.setStateEvents(s),e.currentState.setStateEvents(s)),yield e.addLiveEvents(r||[],{fromCache:o,timelineWasEmpty:l,addToState:n===void 0}),a.client.processBeaconEvents(e,r)})()}processEventsForNotifs(e,t){if(this.client.getNotifTimelineSet())for(var n of t){var r,i=this.client.getPushActionsForEvent(n);i!=null&&i.notify&&(r=i.tweaks)!=null&&r.highlight&&this.notifEvents.push(n)}}getGuestFilter(){return`{}`}updateSyncState(e,t){var n=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(Z.Sync,this.syncState,n,t)}};function rj(e,t,n){var r=e.timelineSupport,i=new RA(t,e,e.getUserId(),{lazyLoadMembers:n.lazyLoadMembers,pendingEventOrdering:n.pendingEventOrdering,timelineSupport:r});return e.reEmitter.reEmit(i,[z.Name,z.Redaction,z.RedactionCancelled,z.Receipt,z.Tags,z.LocalEchoUpdated,z.AccountData,z.MyMembership,z.Timeline,z.TimelineReset,j.Events,j.Members,j.NewMember,j.Update,A.New,A.Update,A.Destroy,A.LivenessChange]),i.on(j.NewMember,(t,n,r)=>{r.user=e.getUser(r.userId)??void 0,e.reEmitter.reEmit(r,[gO.Name,gO.Typing,gO.PowerLevel,gO.Membership])}),i}function ij(e,t){var n=[];e.map(e=>{if(e.message.type===`m.key.verification.cancel`){var t=e.message.content.transaction_id;t&&n.push(t)}return e}).forEach(function(e){var r=e.message,i=r.content,a=new MI(Object.assign({},r));if(r.type===`m.key.verification.start`||r.type===`m.key.verification.request`){var o=i.transaction_id;n.includes(o)&&a.flagCancelled()}e.encryptionInfo&&a.makeEncrypted(E.RoomMessageEncrypted,{ciphertext:``},e.encryptionInfo.senderCurve25519KeyBase64,``),t.emit(Z.ToDeviceEvent,a),t.emit(Z.ReceivedToDeviceMessage,e)})}var aj=class{constructor(){h(this,`accountData`,new Map),h(this,`fromToken`,null)}isNewlyCreated(){return Promise.resolve(!0)}getSyncToken(){return this.fromToken}setSyncToken(e){this.fromToken=e}storeRoom(e){}getRoom(e){return null}getRooms(){return[]}removeRoom(e){}getRoomSummaries(){return[]}storeUser(e){}getUser(e){return null}getUsers(){return[]}scrollback(e,t){return[]}setUserCreator(e){}storeEvents(e,t,n,r){}storeFilter(e){}getFilter(e,t){return null}getFilterIdByName(e){return null}setFilterIdByName(e,t){}storeAccountDataEvents(e){}getAccountData(e){}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(){return Promise.resolve()}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return Promise.resolve()}getOutOfBandMembers(){return Promise.resolve(null)}setOutOfBandMembers(e,t){return Promise.resolve()}clearOutOfBandMembers(){return Promise.resolve()}getClientOptions(){return Promise.resolve(void 0)}storeClientOptions(e){return Promise.resolve()}getPendingEvents(e){return C(function*(){return[]})()}setPendingEvents(e,t){return Promise.resolve()}saveToDeviceBatches(e){return C(function*(){return Promise.resolve()})()}getOldestToDeviceBatch(){return Promise.resolve(null)}removeToDeviceBatch(e){return C(function*(){return Promise.resolve()})()}getUserProfile(){return C(function*(){})()}storeUserProfiles(){return C(function*(){})()}removeUserProfiles(){return C(function*(){})()}destroy(){return C(function*(){})()}removeEventsFromRoom(e,t){return C(function*(){})()}},oj=s(((e,t)=>{var n=t.exports={v:[{name:`version`,reg:/^(\d*)$/}],o:[{name:`origin`,reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:[`username`,`sessionId`,`sessionVersion`,`netType`,`ipVer`,`address`],format:`%s %s %d %s IP%d %s`}],s:[{name:`name`}],i:[{name:`description`}],u:[{name:`uri`}],e:[{name:`email`}],p:[{name:`phone`}],z:[{name:`timezones`}],r:[{name:`repeats`}],t:[{name:`timing`,reg:/^(\d*) (\d*)/,names:[`start`,`stop`],format:`%d %d`}],c:[{name:`connection`,reg:/^IN IP(\d) (\S*)/,names:[`version`,`ip`],format:`IN IP%d %s`}],b:[{push:`bandwidth`,reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:[`type`,`limit`],format:`%s:%s`}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:[`type`,`port`,`protocol`,`payloads`],format:`%s %d %s %s`}],a:[{push:`rtp`,reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:[`payload`,`codec`,`rate`,`encoding`],format:function(e){return e.encoding?`rtpmap:%d %s/%s/%s`:e.rate?`rtpmap:%d %s/%s`:`rtpmap:%d %s`}},{push:`fmtp`,reg:/^fmtp:(\d*) ([\S| ]*)/,names:[`payload`,`config`],format:`fmtp:%d %s`},{name:`control`,reg:/^control:(.*)/,format:`control:%s`},{name:`rtcp`,reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:[`port`,`netType`,`ipVer`,`address`],format:function(e){return e.address==null?`rtcp:%d`:`rtcp:%d %s IP%d %s`}},{push:`rtcpFbTrrInt`,reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:[`payload`,`value`],format:`rtcp-fb:%s trr-int %d`},{push:`rtcpFb`,reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:[`payload`,`type`,`subtype`],format:function(e){return e.subtype==null?`rtcp-fb:%s %s`:`rtcp-fb:%s %s %s`}},{push:`ext`,reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:[`value`,`direction`,`encrypt-uri`,`uri`,`config`],format:function(e){return`extmap:%d`+(e.direction?`/%s`:`%v`)+(e[`encrypt-uri`]?` %s`:`%v`)+` %s`+(e.config?` %s`:``)}},{name:`extmapAllowMixed`,reg:/^(extmap-allow-mixed)/},{push:`crypto`,reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:[`id`,`suite`,`config`,`sessionConfig`],format:function(e){return e.sessionConfig==null?`crypto:%d %s %s`:`crypto:%d %s %s %s`}},{name:`setup`,reg:/^setup:(\w*)/,format:`setup:%s`},{name:`connectionType`,reg:/^connection:(new|existing)/,format:`connection:%s`},{name:`mid`,reg:/^mid:([^\s]*)/,format:`mid:%s`},{push:`msid`,reg:/^msid:([\w-]+)(?: ([\w-]+))?/,names:[`id`,`appdata`],format:`msid:%s %s`},{name:`ptime`,reg:/^ptime:(\d*(?:\.\d*)*)/,format:`ptime:%d`},{name:`maxptime`,reg:/^maxptime:(\d*(?:\.\d*)*)/,format:`maxptime:%d`},{name:`direction`,reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:`icelite`,reg:/^(ice-lite)/},{name:`iceUfrag`,reg:/^ice-ufrag:(\S*)/,format:`ice-ufrag:%s`},{name:`icePwd`,reg:/^ice-pwd:(\S*)/,format:`ice-pwd:%s`},{name:`fingerprint`,reg:/^fingerprint:(\S*) (\S*)/,names:[`type`,`hash`],format:`fingerprint:%s %s`},{push:`candidates`,reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:[`foundation`,`component`,`transport`,`priority`,`ip`,`port`,`type`,`raddr`,`rport`,`tcptype`,`generation`,`network-id`,`network-cost`],format:function(e){var t=`candidate:%s %d %s %d %s %d typ %s`;return t+=e.raddr==null?`%v%v`:` raddr %s rport %d`,t+=e.tcptype==null?`%v`:` tcptype %s`,e.generation!=null&&(t+=` generation %d`),t+=e[`network-id`]==null?`%v`:` network-id %d`,t+=e[`network-cost`]==null?`%v`:` network-cost %d`,t}},{name:`endOfCandidates`,reg:/^(end-of-candidates)/},{name:`remoteCandidates`,reg:/^remote-candidates:(.*)/,format:`remote-candidates:%s`},{name:`iceOptions`,reg:/^ice-options:(\S*)/,format:`ice-options:%s`},{push:`ssrcs`,reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:[`id`,`attribute`,`value`],format:function(e){var t=`ssrc:%d`;return e.attribute!=null&&(t+=` %s`,e.value!=null&&(t+=`:%s`)),t}},{push:`ssrcGroups`,reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:[`semantics`,`ssrcs`],format:`ssrc-group:%s %s`},{name:`msidSemantic`,reg:/^msid-semantic:\s?(\w*) (\S*)/,names:[`semantic`,`token`],format:`msid-semantic: %s %s`},{push:`groups`,reg:/^group:(\w*) (.*)/,names:[`type`,`mids`],format:`group:%s %s`},{name:`rtcpMux`,reg:/^(rtcp-mux)/},{name:`rtcpRsize`,reg:/^(rtcp-rsize)/},{name:`sctpmap`,reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:[`sctpmapNumber`,`app`,`maxMessageSize`],format:function(e){return e.maxMessageSize==null?`sctpmap:%s %s`:`sctpmap:%s %s %s`}},{name:`xGoogleFlag`,reg:/^x-google-flag:([^\s]*)/,format:`x-google-flag:%s`},{push:`rids`,reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:[`id`,`direction`,`params`],format:function(e){return e.params?`rid:%s %s %s`:`rid:%s %s`}},{push:`imageattrs`,reg:RegExp(`^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?`),names:[`pt`,`dir1`,`attrs1`,`dir2`,`attrs2`],format:function(e){return`imageattr:%s %s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast`,reg:RegExp(`^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$`),names:[`dir1`,`list1`,`dir2`,`list2`],format:function(e){return`simulcast:%s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast_03`,reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:[`value`],format:`simulcast: %s`},{name:`framerate`,reg:/^framerate:(\d+(?:$|\.\d+))/,format:`framerate:%s`},{name:`sourceFilter`,reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:[`filterMode`,`netType`,`addressTypes`,`destAddress`,`srcList`],format:`source-filter: %s %s %s %s %s`},{name:`bundleOnly`,reg:/^(bundle-only)/},{name:`label`,reg:/^label:(.+)/,format:`label:%s`},{name:`sctpPort`,reg:/^sctp-port:(\d+)$/,format:`sctp-port:%s`},{name:`maxMessageSize`,reg:/^max-message-size:(\d+)$/,format:`max-message-size:%s`},{push:`tsRefClocks`,reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:[`clksrc`,`clksrcExt`],format:function(e){return`ts-refclk:%s`+(e.clksrcExt==null?``:`=%s`)}},{name:`mediaClk`,reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:[`id`,`mediaClockName`,`mediaClockValue`,`rateNumerator`,`rateDenominator`],format:function(e){var t=`mediaclk:`;return t+=e.id==null?`%v%s`:`id=%s %s`,t+=e.mediaClockValue==null?``:`=%s`,t+=e.rateNumerator==null?``:` rate=%s`,t+=e.rateDenominator==null?``:`/%s`,t}},{name:`keywords`,reg:/^keywds:(.+)$/,format:`keywds:%s`},{name:`content`,reg:/^content:(.+)/,format:`content:%s`},{name:`bfcpFloorCtrl`,reg:/^floorctrl:(c-only|s-only|c-s)/,format:`floorctrl:%s`},{name:`bfcpConfId`,reg:/^confid:(\d+)/,format:`confid:%s`},{name:`bfcpUserId`,reg:/^userid:(\d+)/,format:`userid:%s`},{name:`bfcpFloorId`,reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:[`id`,`mStream`],format:`floorid:%s mstrm:%s`},{push:`invalid`,names:[`value`]}]};Object.keys(n).forEach(function(e){n[e].forEach(function(e){e.reg||=/(.*)/,e.format||=`%s`})})})),sj=s((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,r,i){if(i&&!r)n[i]=t(e[1]);else for(var a=0;a1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(` `).map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],r=e.split(` `).map(t),i=0;i{var n=oj(),r=/%[sdv%]/g,i=function(e){var t=1,n=arguments,i=n.length;return e.replace(r,function(e){if(t>=i)return e;var r=n[t];switch(t+=1,e){case`%%`:return`%`;case`%s`:return String(r);case`%d`:return Number(r);case`%v`:return``}})},a=function(e,t,n){var r=t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format,a=[e+`=`+r];if(t.names)for(var o=0;o{var t=sj(),n=cj();oj(),e.write=n,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList}))();function uj(e,t){if(typeof e.toBase64==`function`)return e.toBase64(t);var n=btoa(e.reduce((e,t)=>e+String.fromCharCode(t),``));return t.omitPadding&&(n=n.replace(/={1,2}$/,``)),t.alphabet===`base64url`&&(n=n.replace(/\+/g,`-`).replace(/\//g,`_`)),n}function dj(e){return uj(e,{alphabet:`base64`,omitPadding:!1})}function fj(e){return uj(e,{alphabet:`base64`,omitPadding:!0})}function pj(e){return uj(e,{alphabet:`base64url`,omitPadding:!0})}function mj(e,t){return typeof Uint8Array.fromBase64==`function`?Uint8Array.fromBase64(e,t):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function hj(e){return mj(e.replace(/-/g,`+`).replace(/_/g,`/`),{alphabet:`base64`,lastChunkHandling:`loose`})}var gj=`abcdefghijklmnopqrstuvwxyz`,_j=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`,vj=`0123456789`;function yj(e){return bj(e,_j+gj+vj)}function bj(e,t){if(t.length<2||t.length>256)throw Error(`Character set must be between 2 and 256 characters long`);if(e<1||e>32768)throw Error(`Requested random string length must be between 1 and 32768`);for(var n=256-256%t.length,r=new Uint8Array(Math.floor(e*1.3)),i=r.length,a=[];a.length(Sj===null&&(Sj=new AudioContext),Cj++,Sj),Tj=()=>{if(Cj--,Cj===0){var e;(e=Sj)==null||e.close(),Sj=null}},Ej=200,Dj=8,Oj=function(e){return e.NewStream=`new_stream`,e.MuteStateChanged=`mute_state_changed`,e.LocalVolumeChanged=`local_volume_changed`,e.VolumeChanged=`volume_changed`,e.ConnectedChanged=`connected_changed`,e.Speaking=`speaking`,e.Disposed=`disposed`,e}({}),kj=class e extends O{constructor(e){super(),h(this,`stream`,void 0),h(this,`sdpMetadataStreamId`,void 0),h(this,`userId`,void 0),h(this,`deviceId`,void 0),h(this,`purpose`,void 0),h(this,`speakingVolumeSamples`,void 0),h(this,`client`,void 0),h(this,`call`,void 0),h(this,`roomId`,void 0),h(this,`audioMuted`,void 0),h(this,`videoMuted`,void 0),h(this,`localVolume`,1),h(this,`measuringVolumeActivity`,!1),h(this,`audioContext`,void 0),h(this,`analyser`,void 0),h(this,`frequencyBinCount`,void 0),h(this,`speakingThreshold`,-60),h(this,`speaking`,!1),h(this,`volumeLooperTimeout`,void 0),h(this,`_disposed`,!1),h(this,`_connected`,!1),h(this,`onAddTrack`,()=>{this.emit(Oj.NewStream,this.stream)}),h(this,`onCallState`,e=>{e===W.Connected?this.connected=!0:e===W.Connecting&&(this.connected=!1)}),h(this,`volumeLooper`,()=>{if(this.analyser&&this.measuringVolumeActivity){this.analyser.getFloatFrequencyData(this.frequencyBinCount);var e=-1/0;for(var t of this.frequencyBinCount)t>e&&(e=t);this.speakingVolumeSamples.shift(),this.speakingVolumeSamples.push(e),this.emit(Oj.VolumeChanged,e);var n=!1;for(var r of this.speakingVolumeSamples)if(r>this.speakingThreshold){n=!0;break}this.speaking!==n&&(this.speaking=n,this.emit(Oj.Speaking,this.speaking)),this.volumeLooperTimeout=setTimeout(this.volumeLooper,Ej)}}),this.client=e.client,this.call=e.call,this.roomId=e.roomId,this.userId=e.userId,this.deviceId=e.deviceId,this.purpose=e.purpose,this.audioMuted=e.audioMuted,this.videoMuted=e.videoMuted,this.speakingVolumeSamples=Array(Dj).fill(-1/0),this.sdpMetadataStreamId=e.stream.id,this.updateStream(null,e.stream),this.stream=e.stream,this.hasAudioTrack&&this.initVolumeMeasuring(),e.call&&(e.call.addListener(K.State,this.onCallState),this.onCallState(e.call.state))}get connected(){return this.isLocal()||this._connected}set connected(e){this._connected=e,this.emit(Oj.ConnectedChanged,this.connected)}get hasAudioTrack(){return this.stream.getAudioTracks().length>0}updateStream(e,t){if(t!==e){var n=this.measuringVolumeActivity;e&&(e.removeEventListener(`addtrack`,this.onAddTrack),this.measureVolumeActivity(!1)),this.stream=t,t.addEventListener(`addtrack`,this.onAddTrack),this.hasAudioTrack?(this.initVolumeMeasuring(),n&&this.measureVolumeActivity(!0)):this.measureVolumeActivity(!1),this.emit(Oj.NewStream,this.stream)}}initVolumeMeasuring(){this.hasAudioTrack&&(this.audioContext||=wj(),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=512,this.analyser.smoothingTimeConstant=.1,this.audioContext.createMediaStreamSource(this.stream).connect(this.analyser),this.frequencyBinCount=new Float32Array(this.analyser.frequencyBinCount))}getMember(){return this.client.getRoom(this.roomId)?.getMember(this.userId)??null}isLocal(){return this.userId===this.client.getUserId()&&(this.deviceId===void 0||this.deviceId===this.client.getDeviceId())}isAudioMuted(){return this.stream.getAudioTracks().length===0||this.audioMuted}isVideoMuted(){return this.stream.getVideoTracks().length===0||this.videoMuted}isSpeaking(){return this.speaking}setNewStream(e){this.updateStream(this.stream,e)}setAudioVideoMuted(e,t){e!==null&&(this.audioMuted!==e&&this.speakingVolumeSamples.fill(-1/0),this.audioMuted=e),t!==null&&(this.videoMuted=t),this.emit(Oj.MuteStateChanged,this.audioMuted,this.videoMuted)}measureVolumeActivity(e){if(e){if(!this.analyser||!this.frequencyBinCount||!this.hasAudioTrack)return;this.measuringVolumeActivity=!0,this.volumeLooper()}else this.measuringVolumeActivity=!1,this.speakingVolumeSamples.fill(-1/0),this.emit(Oj.VolumeChanged,-1/0)}setSpeakingThreshold(e){this.speakingThreshold=e}clone(){var t=this.client.getMediaHandler(),n=this.stream.clone();return w.log(`CallFeed clone() cloning stream (originalStreamId=${this.stream.id}, newStreamId${n.id})`),this.purpose===V.Usermedia?t.userMediaStreams.push(n):t.screensharingStreams.push(n),new e({client:this.client,roomId:this.roomId,userId:this.userId,deviceId:this.deviceId,stream:n,purpose:this.purpose,audioMuted:this.audioMuted,videoMuted:this.videoMuted})}dispose(){var e,t;clearTimeout(this.volumeLooperTimeout),(e=this.stream)==null||e.removeEventListener(`addtrack`,this.onAddTrack),(t=this.call)==null||t.removeListener(K.State,this.onCallState),this.audioContext&&(this.audioContext=void 0,this.analyser=void 0,Tj()),this._disposed=!0,this.emit(Oj.Disposed)}get disposed(){return this._disposed}set disposed(e){this._disposed=e}getLocalVolume(){return this.localVolume}setLocalVolume(e){this.localVolume=e,this.emit(Oj.LocalVolumeChanged,e)}},Aj=3e3,jj=function(e){return e.Incoming=`Call.incoming`,e}({}),Mj=class{constructor(e){h(this,`calls`,void 0),h(this,`callEventBuffer`,void 0),h(this,`nextSeqByCall`,new Map),h(this,`toDeviceEventBuffers`,new Map),h(this,`client`,void 0),h(this,`candidateEventsByCall`,void 0),h(this,`eventBufferPromiseChain`,void 0),h(this,`onSync`,()=>{var e=this.callEventBuffer;this.callEventBuffer=[],this.eventBufferPromiseChain?this.eventBufferPromiseChain=this.eventBufferPromiseChain.then(()=>this.evaluateEventBuffer(e)):this.eventBufferPromiseChain=this.evaluateEventBuffer(e)}),h(this,`onRoomTimeline`,e=>{this.callEventBuffer.push(e)}),h(this,`onToDeviceEvent`,e=>{var t=e.getContent();if(!t.call_id){this.callEventBuffer.push(e);return}if(this.nextSeqByCall.has(t.call_id)||this.nextSeqByCall.set(t.call_id,0),t.seq===void 0){this.callEventBuffer.push(e);return}var n=this.nextSeqByCall.get(t.call_id)||0;if(t.seq!==n){this.toDeviceEventBuffers.has(t.call_id)||this.toDeviceEventBuffers.set(t.call_id,[]);var r=this.toDeviceEventBuffers.get(t.call_id),i=r.findIndex(e=>e.getContent().seq>t.seq);i===-1?r.push(e):r.splice(i,0,e)}else{var a=t.call_id;this.callEventBuffer.push(e),this.nextSeqByCall.set(a,t.seq+1);for(var o=this.toDeviceEventBuffers.get(a),s=o&&o.shift();s&&s.getContent().seq===this.nextSeqByCall.get(a);)this.callEventBuffer.push(s),this.nextSeqByCall.set(a,s.getContent().seq+1),s=o.shift()}}),this.client=e,this.calls=new Map,this.callEventBuffer=[],this.candidateEventsByCall=new Map}start(){this.client.on(Z.Sync,this.onSync),this.client.on(z.Timeline,this.onRoomTimeline),this.client.on(Z.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.removeListener(Z.Sync,this.onSync),this.client.removeListener(z.Timeline,this.onRoomTimeline),this.client.removeListener(Z.ToDeviceEvent,this.onToDeviceEvent)}evaluateEventBuffer(e){var t=this;return C(function*(){yield Promise.all(e.map(e=>t.client.decryptEventIfNeeded(e)));var n=e.filter(e=>{var t=e.getType();return t.startsWith(`m.call.`)||t.startsWith(`org.matrix.call.`)}),r=new Set;for(var i of n){var a=i.getType();(a===E.CallAnswer||a===E.CallHangup)&&r.add(i.getContent().call_id)}for(var o of n){var s=o.getType(),c=o.getContent().call_id;if(!(s===E.CallInvite&&r.has(c)))try{yield t.handleCallEvent(o)}catch(e){w.error(`CallEventHandler evaluateEventBuffer() caught exception handling call event`,e)}}})()}handleCallEvent(e){var t=this;return C(function*(){var n;t.client.emit(Z.ReceivedVoipEvent,e);var r=e.getContent(),i=e.getRoomId()||((n=t.client.groupCallEventHandler.getGroupCallById(r.conf_id))==null||(n=n.room)==null?void 0:n.roomId),a=r.conf_id,o=e.getType(),s=e.getSender(),c=r.call_id?t.calls.get(r.call_id):void 0,l,u;if(a){if(u=t.client.groupCallEventHandler.getGroupCallById(a),!u){w.warn(`CallEventHandler handleCallEvent() could not find a group call - ignoring event (groupCallId=${a}, type=${o})`);return}if(l=r.device_id,!l){w.warn(`CallEventHandler handleCallEvent() could not find a device id - ignoring event (senderId=${s})`),u.emit(H.Error,new sM(s));return}if(r.dest_session_id!==t.client.getSessionId()){w.warn(`CallEventHandler handleCallEvent() call event does not match current session id - ignoring`);return}}var d=s===t.client.credentials.userId&&(l===void 0||l===t.client.getDeviceId());if(i){if(o===E.CallInvite){if(d||e.getLocalAge()>r.lifetime-Aj||c&&c.state===W.Ended||(c&&w.warn(`CallEventHandler handleCallEvent() already has a call but got an invite - clobbering (callId=${r.call_id})`),r.invitee&&r.invitee!==t.client.getUserId()))return;var f=(t.client.getTurnServersExpiry()??0)-Date.now();if(w.info(`CallEventHandler handleCallEvent() current turn creds expire in `+f+` ms`),c=OM(t.client,i,{forceTURN:t.client.forceTURN,opponentDeviceId:l,groupCallId:a,opponentSessionId:r.sender_session_id})??void 0,!c){w.log(`CallEventHandler handleCallEvent() this client does not support WebRTC (callId=${r.call_id})`);return}c.callId=r.call_id;var p=u?.getGroupCallStats();p&&c.initStats(p);try{yield c.initWithInvite(e)}catch(e){if(e instanceof xM)if(e.code===aM.UnknownDevice){var m;(m=u)==null||m.emit(H.Error,e)}else w.error(e)}if(t.calls.set(c.callId,c),t.candidateEventsByCall.get(c.callId))for(var h of t.candidateEventsByCall.get(c.callId))c.onRemoteIceCandidatesReceived(h);var g;for(var _ of t.calls.values()){var v=[W.WaitLocalMedia,W.CreateOffer,W.InviteSent].includes(_.state);if(c.roomId===_.roomId&&_.direction===mM.Outbound&&c.getOpponentMember()?.userId===_.invitee&&v){g=_;break}}g?g.callId>c.callId?(w.log(`CallEventHandler handleCallEvent() detected glare - answering incoming call and canceling outgoing call (incomingId=${c.callId}, outgoingId=${g.callId})`),g.replacedBy(c)):(w.log(`CallEventHandler handleCallEvent() detected glare - hanging up incoming call (incomingId=${c.callId}, outgoingId=${g.callId})`),c.hangup(q.Replaced,!0)):t.client.emit(jj.Incoming,c);return}else if(o===E.CallCandidates){if(d)return;c?c.onRemoteIceCandidatesReceived(e):(t.candidateEventsByCall.has(r.call_id)||t.candidateEventsByCall.set(r.call_id,[]),t.candidateEventsByCall.get(r.call_id).push(e));return}else if([E.CallHangup,E.CallReject].includes(o)){c?c.state!==W.Ended&&(o===E.CallHangup?c.onHangupReceived(r):c.onRejectReceived(r),c.state===W.Ended&&t.calls.delete(r.call_id)):(c=OM(t.client,i,{opponentDeviceId:l,opponentSessionId:r.sender_session_id})??void 0,c&&(c.callId=r.call_id,c.initWithHangup(e),t.calls.set(r.call_id,c)));return}if(!c||!c.hasPeerConnection){w.info(`CallEventHandler handleCallEvent() discarding possible call event as we don't have a call (type=${o})`);return}if(e.getContent().party_id!==c.ourPartyId)switch(o){case E.CallAnswer:d?c.state===W.Ringing&&c.onAnsweredElsewhere(r):c.onAnswerReceived(e);break;case E.CallSelectAnswer:c.onSelectAnswerReceived(e);break;case E.CallNegotiate:c.onNegotiateReceived(e);break;case E.CallAssertedIdentity:case E.CallAssertedIdentityPrefix:c.onAssertedIdentityReceived(e);break;case E.CallSDPStreamMetadataChanged:case E.CallSDPStreamMetadataChangedPrefix:c.onSDPStreamMetadataChangedReceived(e);break}}})()}},Nj=function(e){return e.Incoming=`GroupCall.incoming`,e.Outgoing=`GroupCall.outgoing`,e.Ended=`GroupCall.ended`,e.Participants=`GroupCall.participants`,e}({}),Pj=class{constructor(e){this.client=e,h(this,`groupCalls`,new Map),h(this,`roomDeferreds`,new Map),h(this,`onRoomsChanged`,e=>{this.createGroupCallForRoom(e)}),h(this,`onRoomStateChanged`,(e,t)=>{if(e.getType()===E.GroupCallPrefix){var n=e.getStateKey(),r=e.getContent(),i=this.groupCalls.get(t.roomId);!i&&!r[`m.terminated`]&&!e.isRedacted()?this.createGroupCallFromRoomStateEvent(e):i&&i.groupCallId===n?r[`m.terminated`]||e.isRedacted()?i.terminate(!1):r[`m.type`]!==i.type&&w.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support changing type (roomId=${t.roomId})`):i&&i.groupCallId!==n&&w.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support multiple calls (roomId=${t.roomId})`)}})}start(){var e=this;return C(function*(){e.client.getSyncState()!==B.Syncing&&(w.debug(`GroupCallEventHandler start() waiting for client to start syncing`),yield new Promise(t=>{var n=()=>{if(e.client.getSyncState()===B.Syncing)return e.client.off(Z.Sync,n),t()};e.client.on(Z.Sync,n)}));for(var t of e.client.getRooms())e.createGroupCallForRoom(t);e.client.on(Z.Room,e.onRoomsChanged),e.client.on(j.Events,e.onRoomStateChanged)})()}stop(){this.client.removeListener(Z.Room,this.onRoomsChanged),this.client.removeListener(j.Events,this.onRoomStateChanged)}getRoomDeferred(e){var t=this.roomDeferreds.get(e);if(t===void 0){var n;t={prom:new Promise(e=>{n=e})},t.resolve=n,this.roomDeferreds.set(e,t)}return t}waitUntilRoomReadyForGroupCalls(e){return this.getRoomDeferred(e).prom}getGroupCallById(e){return[...this.groupCalls.values()].find(t=>t.groupCallId===e)}createGroupCallForRoom(e){var t=e.currentState.getStateEvents(E.GroupCallPrefix);for(var n of t.sort((e,t)=>t.getTs()-e.getTs()))if(!(n.getContent()[`m.terminated`]||n.isRedacted())){w.debug(`GroupCallEventHandler createGroupCallForRoom() choosing group call from possible calls (stateKey=${n.getStateKey()}, ts=${n.getTs()}, roomId=${e.roomId}, numOfPossibleCalls=${t.length})`),this.createGroupCallFromRoomStateEvent(n);break}this.getRoomDeferred(e.roomId).resolve()}createGroupCallFromRoomStateEvent(e){var t=e.getRoomId(),n=e.getContent(),r=this.client.getRoom(t);if(!r){w.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() couldn't find room for call (roomId=${t})`);return}var i=e.getStateKey(),a=n[`m.type`];if(!Object.values(nM).includes(a)){w.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() received invalid call type (type=${a}, roomId=${t})`);return}var o=n[`m.intent`];if(!Object.values(tM).includes(o)){w.warn(`Received invalid group call intent (type=${a}, roomId=${t})`);return}var s=!!n[`io.element.ptt`],c;if(n!=null&&n.dataChannelsEnabled&&n!=null&&n.dataChannelOptions){var l=n.dataChannelOptions;c={ordered:l.ordered,maxPacketLifeTime:l.maxPacketLifeTime,maxRetransmits:l.maxRetransmits,protocol:l.protocol}}var u=new uM(this.client,r,a,s,o,i,n?.dataChannelsEnabled||this.client.isVoipWithNoMediaAllowed,c,this.client.isVoipWithNoMediaAllowed,this.client.useLivekitForGroupCalls,n[`io.element.livekit_service_url`]);return this.groupCalls.set(r.roomId,u),this.client.emit(Nj.Incoming,u),u}},Fj=class{constructor(){h(this,`bandwidth`,{}),h(this,`bitrate`,{}),h(this,`packetLoss`,{}),h(this,`transport`,[])}},Ij=class{static buildBandwidthReport(e){var t=e.availableIncomingBitrate,n=e.availableOutgoingBitrate;return{download:t?Math.round(t/1e3):0,upload:n?Math.round(n/1e3):0}}},Lj=class{static buildReport(e,t,n,r){var i=e?.get(t.localCandidateId),a=e?.get(t.remoteCandidateId);if(a&&i){var o=`${a.ip===void 0?a.address:a.ip}:${a.port}`,s=`${i.ip===void 0?i.address:i.ip}:${i.port}`,c=a.protocol;n.some(e=>e.ip===o&&e.type===c&&e.localIp===s)||n.push({ip:o,type:c,localIp:s,isFocus:r,localCandidateType:i.candidateType,remoteCandidateType:a.candidateType,networkType:i.networkType,rtt:t.currentRoundTripTime?t.currentRoundTripTime*1e3:NaN})}return n}},Rj=class{constructor(){h(this,`ssrcToMid`,{local:new Map,remote:new Map})}findMidBySsrc(e,t){var n;return this.ssrcToMid[t].forEach((t,r)=>{if(t.find(t=>t==e)){n=r;return}}),n}parse(e,t){var n=(0,lj.parse)(e),r=new Map;n.media.forEach(e=>{if(e.mid&&e.type===`video`||e.type===`audio`){var t,n=[];(t=e.ssrcs)==null||t.forEach(e=>{e.attribute===`cname`&&n.push(`${e.id}`)}),r.set(`${e.mid}`,n)}}),this.ssrcToMid[t]=r}getSsrcToMidMap(e){return this.ssrcToMid[e]}},zj=class{constructor(e){this.pc=e}getLocalTracks(e){return this.pc.getTransceivers().filter(e=>e.currentDirection===`sendonly`||e.currentDirection===`sendrecv`).filter(e=>e.sender!==null).map(e=>e.sender).map(e=>e.track).filter(t=>t!==null&&t.kind===e)}getTackById(e){return this.pc.getTransceivers().map(t=>{if(t?.sender.track!==null&&t.sender.track.id===e)return t.sender.track;if(t?.receiver.track!==null&&t.receiver.track.id===e)return t.receiver.track}).find(e=>e!==void 0)}getLocalTrackIdByMid(e){var t,n=this.pc.getTransceivers().find(t=>t.mid===e);return n==null||(t=n.sender)==null||(t=t.track)==null?void 0:t.id}getRemoteTrackIdByMid(e){var t,n=this.pc.getTransceivers().find(t=>t.mid===e);return n==null||(t=n.receiver)==null||(t=t.track)==null?void 0:t.id}getActiveSimulcastStreams(){return 3}getTransceiverByTrackId(e){return this.pc.getTransceivers().find(t=>t.receiver.track.id===e||t.sender.track!==null&&t.sender.track.id===e)}},Bj=class{constructor(e,t,n){this.trackId=e,this.type=t,this.kind=n,h(this,`loss`,{packetsTotal:0,packetsLost:0,isDownloadStream:!1}),h(this,`bitrate`,{download:0,upload:0}),h(this,`resolution`,{width:-1,height:-1}),h(this,`audioConcealment`,{concealedAudio:0,totalAudioDuration:0}),h(this,`framerate`,0),h(this,`jitter`,0),h(this,`codec`,``),h(this,`isAlive`,!0),h(this,`isMuted`,!1),h(this,`isEnabled`,!0)}getType(){return this.type}setLoss(e){this.loss=e}getLoss(){return this.loss}setResolution(e){this.resolution=e}getResolution(){return this.resolution}setFramerate(e){this.framerate=e}getFramerate(){return this.framerate}setBitrate(e){this.bitrate=e}getBitrate(){return this.bitrate}setCodec(e){return this.codec=e,!0}getCodec(){return this.codec}resetBitrate(){this.bitrate={download:0,upload:0}}set alive(e){this.isAlive=e}get alive(){return this.isAlive}set muted(e){this.isMuted=e}get muted(){return this.isMuted}set enabled(e){this.isEnabled=e}get enabled(){return this.isEnabled}setJitter(e){this.jitter=e}getJitter(){return this.jitter}setAudioConcealment(e,t){this.audioConcealment.concealedAudio=e,this.audioConcealment.totalAudioDuration=t}getAudioConcealment(){return this.audioConcealment}},Vj=class{constructor(e,t){this.mediaSsrcHandler=e,this.mediaTrackHandler=t,h(this,`track2stats`,new Map)}findTrack2Stats(e,t){var n;if(e.trackIdentifier)n=e.trackIdentifier;else if(e.mid)n=t===`remote`?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid);else if(e.ssrc){if(!this.mediaSsrcHandler.findMidBySsrc(e.ssrc,t))return;n=t===`remote`?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid)}if(n){var r=this.track2stats.get(n);if(!r){var i=this.mediaTrackHandler.getTackById(n);if(i!==void 0){var a=i.kind===`audio`?i.kind:`video`;r=new Bj(n,t,a),this.track2stats.set(n,r)}else return}return r}}findLocalVideoTrackStats(e){if(this.mediaTrackHandler.getLocalTracks(`video`).length!==0)return this.findTrack2Stats(e,`local`)}getTrack2stats(){return this.track2stats}findTransceiverByTrackId(e){return this.mediaTrackHandler.getTransceiverByTrackId(e)}},Hj=class{static getNonNegativeValue(e){var t=e;return typeof t!=`number`&&(t=Number(t)),isNaN(t)?0:Math.max(0,t)}},Uj=class e{static buildFramerateResolution(e,t){var n={height:t.frameHeight,width:t.frameWidth},r=t.framesPerSecond;n.height&&n.width&&e.setResolution(n),e.setFramerate(Math.round(r||0))}static calculateSimulcastFramerate(e,t,n,r){var i=e.getFramerate();if(!i){if(n){var a=t.timestamp-n.timestamp;a>0&&t.framesSent&&(i=(t.framesSent-n.framesSent)/a*1e3)}if(!i)return}i=r?Math.round(i/r):0,e.setFramerate(i)}static buildCodec(e,t,n){var r=e?.get(n.codecId);if(r){var i=r.mimeType.split(`/`)[1];i&&t.setCodec(i)}}static buildBitrateReceived(t,n,r){t.setBitrate({download:e.calculateBitrate(n.bytesReceived,r.bytesReceived,n.timestamp,r.timestamp),upload:0})}static buildBitrateSend(e,t,n){e.setBitrate({download:0,upload:this.calculateBitrate(t.bytesSent,n.bytesSent,t.timestamp,n.timestamp)})}static buildPacketsLost(e,t,n){var r=t.type===`outbound-rtp`?`packetsSent`:`packetsReceived`,i=t[r];(!i||i<0)&&(i=0);var a=Hj.getNonNegativeValue(n[r]),o=Math.max(0,i-a),s=Hj.getNonNegativeValue(t.packetsLost),c=Hj.getNonNegativeValue(n.packetsLost),l=Math.max(0,s-c);e.setLoss({packetsTotal:o+l,packetsLost:l,isDownloadStream:t.type!==`outbound-rtp`})}static calculateBitrate(e,t,n,r){var i=Hj.getNonNegativeValue(e),a=Hj.getNonNegativeValue(t),o=Math.max(0,i-a),s=n-r,c=0;return s>0&&(c=Math.round(o*8/s)),c}static setTrackStatsState(e,t){var n;if(t===void 0){e.alive=!1;return}var r=e.getType()===`remote`?t.receiver.track:t==null||(n=t.sender)==null?void 0:n.track;if(r==null){e.alive=!1;return}if(r.readyState===`ended`){e.alive=!1;return}e.muted=r.muted,e.enabled=r.enabled,e.alive=!0}static buildTrackSummary(e){var t={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},n={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},r=e.filter(e=>e.getType()===`remote`),i=r.filter(e=>e.kind===`audio`);return r.forEach(e=>{var r=e.kind===`video`?t:n;r.count++,e.alive&&e.muted&&r.muted++,r.maxJitter0&&(r.concealedAudio+=e.getAudioConcealment()?.concealedAudio,r.totalAudio+=e.getAudioConcealment()?.totalAudioDuration)}),{audioTrackSummary:n,videoTrackSummary:t}}static buildJitter(e,t){if(t.type===`inbound-rtp`){var n=t?.jitter;if(n!==void 0){var r=Hj.getNonNegativeValue(n);e.setJitter(Math.round(r*1e3))}else e.setJitter(-1)}}static buildAudioConcealment(e,t){if(t.type===`inbound-rtp`){var n=1e3*t?.totalSamplesDuration/t?.totalSamplesReceived*t?.concealedSamples,r=1e3*t?.totalSamplesDuration;e.setAudioConcealment(n,r)}}},Wj=class e{static build(t){var n={},r={download:0,upload:0},i={download:0,upload:0},a=0,o=0,s={local:new Map,remote:new Map},c={local:new Map,remote:new Map},l={local:new Map,remote:new Map},u=new Map,d=new Map,f=0,p=0,m=0,h=0,g=0,_=0;for(var v of t){var y=x(v,2),b=y[0],S=y[1],C=S.getLoss(),ee=C.isDownloadStream?`download`:`upload`;if(r[ee]+=C.packetsTotal,i[ee]+=C.packetsLost,a+=S.getBitrate().download,o+=S.getBitrate().upload,S.kind===`audio`){var te=S.getAudioConcealment();g+=te.concealedAudio,_+=te.totalAudioDuration,f+=S.getBitrate().download,p+=S.getBitrate().upload}else m+=S.getBitrate().download,h+=S.getBitrate().upload;s[S.getType()].set(b,S.getResolution()),c[S.getType()].set(b,S.getFramerate()),l[S.getType()].set(b,S.getCodec()),S.getType()===`remote`&&(u.set(b,S.getJitter()),S.kind===`audio`&&d.set(b,S.getAudioConcealment())),S.resetBitrate()}return n.bitrate={upload:o,download:a},n.bitrate.audio={upload:p,download:f},n.bitrate.video={upload:h,download:m},n.packetLoss={total:e.calculatePacketLoss(i.download+i.upload,r.download+r.upload),download:e.calculatePacketLoss(i.download,r.download),upload:e.calculatePacketLoss(i.upload,r.upload)},n.audioConcealment=d,n.totalAudioConcealment={concealedAudio:g,totalAudioDuration:_},n.framerate=c,n.resolution=s,n.codec=l,n.jitter=u,n}static calculatePacketLoss(e,t){return!t||t<=0||!e||e<=0?0:Math.round(e/t*100)}},Gj=class e{static buildCallFeedReport(t,n,r){var i=r.getTransceivers(),a=[];return i.forEach(t=>{var n,r=(n=t.sender)!=null&&n.track?e.buildTrackStats(t.sender.track,`sender`):null,i=e.buildTrackStats(t.receiver.track,`receiver`);a.push({mid:t.mid==null?`null`:t.mid,direction:t.direction,currentDirection:t.currentDirection==null?`null`:t.currentDirection,sender:r,receiver:i})}),{callId:t,opponentMemberId:n,transceiver:a,callFeeds:[]}}static buildTrackStats(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`--`,n=e.getSettings()?.deviceId,r=e.getConstraints()?.deviceId;return{id:e.id,kind:e.kind,settingDeviceId:n??`unknown`,constrainDeviceId:r??`unknown`,muted:e.muted,enabled:e.enabled,readyState:e.readyState,label:t}}static expandCallFeedReport(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`unknown`;return n.forEach(n=>{var i=n.stream.getAudioTracks(),a=n.stream.getVideoTracks(),o=i.length>0?e.buildTrackStats(n.stream.getAudioTracks()[0],n.purpose):null,s=a.length>0?e.buildTrackStats(n.stream.getVideoTracks()[0],n.purpose):null,c={stream:n.stream.id,type:n.isLocal()?`local`:`remote`,audio:o,video:s,purpose:n.purpose,prefix:r,isVideoMuted:n.isVideoMuted(),isAudioMuted:n.isAudioMuted()};t.callFeeds.push(c)}),t}};function Kj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qj(e){for(var t=1;t4&&arguments[4]!==void 0?arguments[4]:!0;this.callId=e,this.opponentMemberId=t,this.pc=n,this.emitter=r,this.isFocus=i,h(this,`isActive`,!0),h(this,`previousStatsReport`,void 0),h(this,`currentStatsReport`,void 0),h(this,`connectionStats`,new Fj),h(this,`trackStats`,void 0),n.addEventListener(`signalingstatechange`,this.onSignalStateChange.bind(this)),this.trackStats=new Vj(new Rj,new zj(n))}processStats(e,t){var n=this;return C(function*(){var r={isFirstCollection:n.previousStatsReport===void 0,receivedMedia:0,receivedAudioMedia:0,receivedVideoMedia:0,audioTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0},videoTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0}};if(n.isActive){var i=n.pc.getStats();if(typeof i?.then==`function`)return i.then(i=>{n.currentStatsReport=typeof i?.result==`function`?i.result():i;try{n.processStatsReport(e,t)}catch(e){return n.handleError(e),r}n.previousStatsReport=n.currentStatsReport,r.receivedMedia=n.connectionStats.bitrate.download,r.receivedAudioMedia=n.connectionStats.bitrate.audio?.download||0,r.receivedVideoMedia=n.connectionStats.bitrate.video?.download||0;var a=Uj.buildTrackSummary(Array.from(n.trackStats.getTrack2stats().values()));return qj(qj({},r),{},{audioTrackSummary:a.audioTrackSummary,videoTrackSummary:a.videoTrackSummary})}).catch(e=>(n.handleError(e),r));n.isActive=!1}return Promise.resolve(r)})()}processStatsReport(e,t){var n,r=new Map;r.callId=this.callId,r.opponentMemberId=this.opponentMemberId,(n=this.currentStatsReport)==null||n.forEach(e=>{var t=this.previousStatsReport?this.previousStatsReport.get(e.id):null;if(e.type===`candidate-pair`&&e.nominated&&e.state===`succeeded`)this.connectionStats.bandwidth=Ij.buildBandwidthReport(e),this.connectionStats.transport=Lj.buildReport(this.currentStatsReport,e,this.connectionStats.transport,this.isFocus);else if(e.type===`inbound-rtp`||e.type===`outbound-rtp`){var n=this.trackStats.findTrack2Stats(e,e.type===`inbound-rtp`?`remote`:`local`);if(!n)return;if(t&&Uj.buildPacketsLost(n,e,t),e.type===`inbound-rtp`){Uj.buildFramerateResolution(n,e),t&&Uj.buildBitrateReceived(n,e,t);var i=this.trackStats.findTransceiverByTrackId(n.trackId);Uj.setTrackStatsState(n,i),Uj.buildJitter(n,e),Uj.buildAudioConcealment(n,e)}else t&&(r.set(n.trackId,Hj.getNonNegativeValue(e.bytesSent)),Uj.buildBitrateSend(n,e,t));Uj.buildCodec(this.currentStatsReport,n,e)}else if(e.type===`track`&&e.kind===`video`&&!e.remoteSource){var a=this.trackStats.findLocalVideoTrackStats(e);if(!a)return;Uj.buildFramerateResolution(a,e),Uj.calculateSimulcastFramerate(a,e,t,this.trackStats.mediaTrackHandler.getActiveSimulcastStreams())}}),this.emitter.emitByteSendReport(r),this.emitter.emitCallFeedReport(Gj.buildCallFeedReport(this.callId,this.opponentMemberId,this.pc)),this.processAndEmitConnectionStatsReport()}setActive(e){this.isActive=e}getActive(){return this.isActive}handleError(e){this.isActive=!1,w.warn(`CallStatsReportGatherer ${this.callId} processStatsReport fails and set to inactive ${e}`)}processAndEmitConnectionStatsReport(){var e=Wj.build(this.trackStats.getTrack2stats());e.callId=this.callId,e.opponentMemberId=this.opponentMemberId,this.connectionStats.bandwidth=e.bandwidth,this.connectionStats.bitrate=e.bitrate,this.connectionStats.packetLoss=e.packetLoss,this.emitter.emitConnectionStatsReport(qj(qj({},e),{},{transport:this.connectionStats.transport})),this.connectionStats.transport=[]}stopProcessingStats(){}onSignalStateChange(){this.pc.signalingState===`stable`&&(this.pc.currentRemoteDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentRemoteDescription.sdp,`remote`),this.pc.currentLocalDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentLocalDescription.sdp,`local`))}setOpponentMemberId(e){this.opponentMemberId=e}},Yj=function(e){return e.CONNECTION_STATS=`StatsReport.connection_stats`,e.CALL_FEED_REPORT=`StatsReport.call_feed_report`,e.BYTE_SENT_STATS=`StatsReport.byte_sent_stats`,e.SUMMARY_STATS=`StatsReport.summary_stats`,e}({}),Xj=class extends O{emitByteSendReport(e){this.emit(Yj.BYTE_SENT_STATS,e)}emitConnectionStatsReport(e){this.emit(Yj.CONNECTION_STATS,e)}emitCallFeedReport(e){this.emit(Yj.CALL_FEED_REPORT,e)}emitSummaryStatsReport(e){this.emit(Yj.SUMMARY_STATS,e)}},Zj=class{constructor(e){this.emitter=e}build(e){var t=e.filter(e=>!e.isFirstCollection),n=t.length,r=e.length;if(n!==0){var i={receivedAudio:0,receivedVideo:0,receivedMedia:0,concealedAudio:0,totalAudio:0},a=0,o=0;t.forEach(e=>{this.countTrackListReceivedMedia(i,e),this.countConcealedAudio(i,e),a=this.buildMaxJitter(a,e),o=this.buildMaxPacketLoss(o,e)});var s=5,c={percentageReceivedMedia:Number((i.receivedMedia/n).toFixed(s)),percentageReceivedVideoMedia:Number((i.receivedVideo/n).toFixed(s)),percentageReceivedAudioMedia:Number((i.receivedAudio/n).toFixed(s)),maxJitter:a,maxPacketLoss:o,percentageConcealedAudio:Number(i.totalAudio>0?(i.concealedAudio/i.totalAudio).toFixed(s):0),peerConnections:r};this.emitter.emitSummaryStatsReport(c)}}static extendSummaryReport(e,t){var n=[],r=[];for(var i of t){r.push(i);for(var a of i[1])n.push(a)}e.opponentDevicesInCall=Math.max(0,n.length-1),e.opponentUsersInCall=Math.max(0,r.length-1),e.diffDevicesToPeerConnections=Math.max(0,n.length-1)-e.peerConnections,e.ratioPeerConnectionToDevices=Math.max(0,n.length-1)==0?0:e.peerConnections/(n.length-1)}countTrackListReceivedMedia(e,t){var n=!1,r=!1;(t.receivedAudioMedia>0||t.audioTrackSummary.count===0)&&(e.receivedAudio++,n=!0),(t.receivedVideoMedia>0||t.videoTrackSummary.count===0||t.videoTrackSummary.muted>0&&t.videoTrackSummary.muted===t.videoTrackSummary.count)&&(e.receivedVideo++,r=!0),r&&n&&e.receivedMedia++}buildMaxJitter(e,t){return e2&&arguments[2]!==void 0?arguments[2]:1e4;this.groupCallId=e,this.userId=t,this.interval=n,h(this,`timer`,void 0),h(this,`gatherers`,new Map),h(this,`reports`,new Xj),h(this,`summaryStatsReportGatherer`,new Zj(this.reports))}start(){this.timer===void 0&&this.interval>0&&(this.timer=setInterval(()=>{this.processStats()},this.interval))}stop(){this.timer!==void 0&&(clearInterval(this.timer),this.gatherers.forEach(e=>e.stopProcessingStats()))}hasStatsReportGatherer(e){return this.gatherers.has(e)}addStatsReportGatherer(e,t,n){return this.hasStatsReportGatherer(e)?!1:(this.gatherers.set(e,new Jj(e,t,n,this.reports)),!0)}removeStatsReportGatherer(e){return this.gatherers.delete(e)}getStatsReportGatherer(e){return this.hasStatsReportGatherer(e)?this.gatherers.get(e):void 0}updateOpponentMember(e,t){var n;(n=this.getStatsReportGatherer(e))==null||n.setOpponentMemberId(t)}processStats(){var e=[];this.gatherers.forEach(t=>{e.push(t.processStats(this.groupCallId,this.userId))}),Promise.all(e).then(e=>this.summaryStatsReportGatherer.build(e)).catch(e=>{w.error(`Could not build summary stats report`,e)})}setInterval(e){this.interval=e}};function $j(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eM(e){for(var t=1;t9&&arguments[9]!==void 0?arguments[9]:!1,u=arguments.length>10?arguments[10]:void 0;super(),this.client=e,this.room=t,this.type=n,this.isPtt=r,this.intent=i,this.dataChannelsEnabled=o,this.dataChannelOptions=s,this.useLivekit=l,h(this,`activeSpeakerInterval`,1e3),h(this,`retryCallInterval`,5e3),h(this,`participantTimeout`,1e3*15),h(this,`pttMaxTransmitTime`,1e3*20),h(this,`activeSpeaker`,void 0),h(this,`localCallFeed`,void 0),h(this,`localScreenshareFeed`,void 0),h(this,`localDesktopCapturerSourceId`,void 0),h(this,`userMediaFeeds`,[]),h(this,`screenshareFeeds`,[]),h(this,`groupCallId`,void 0),h(this,`allowCallWithoutVideoAndAudio`,void 0),h(this,`calls`,new Map),h(this,`callHandlers`,new Map),h(this,`activeSpeakerLoopInterval`,void 0),h(this,`retryCallLoopInterval`,void 0),h(this,`retryCallCounts`,new Map),h(this,`reEmitter`,void 0),h(this,`transmitTimer`,null),h(this,`participantsExpirationTimer`,null),h(this,`resendMemberStateTimer`,null),h(this,`initWithAudioMuted`,!1),h(this,`initWithVideoMuted`,!1),h(this,`initCallFeedPromise`,void 0),h(this,`_livekitServiceURL`,void 0),h(this,`stats`,void 0),h(this,`statsCollectIntervalTime`,0),h(this,`onConnectionStats`,e=>{this.emit(iM.ConnectionStats,{report:e})}),h(this,`onByteSentStats`,e=>{this.emit(iM.ByteSentStats,{report:e})}),h(this,`onSummaryStats`,e=>{Zj.extendSummaryReport(e,this.participants),this.emit(iM.SummaryStats,{report:e})}),h(this,`onCallFeedReport`,e=>{this.localCallFeed&&(e=Gj.expandCallFeedReport(e,[this.localCallFeed],`from-local-feed`));var t=[];this.forEachCall(n=>{n.callId===e.callId&&n.getFeeds().forEach(e=>t.push(e))}),e=Gj.expandCallFeedReport(e,t,`from-call-feed`),this.emit(iM.CallFeedStats,{report:e})}),h(this,`_state`,U.LocalCallFeedUninitialized),h(this,`_participants`,new Map),h(this,`_creationTs`,null),h(this,`_enteredViaAnotherSession`,!1),h(this,`onIncomingCall`,e=>{if(e.roomId===this.room.roomId){if(e.state!==W.Ringing){w.warn(`GroupCall ${this.groupCallId} onIncomingCall() incoming call no longer in ringing state - ignoring`);return}if(!e.groupCallId||e.groupCallId!==this.groupCallId){w.log(`GroupCall ${this.groupCallId} onIncomingCall() ignored because it doesn't match the current group call`),e.reject();return}var t=e.getOpponentMember()?.userId;if(t===void 0){w.warn(`GroupCall ${this.groupCallId} onIncomingCall() incoming call with no member - ignoring`);return}if(this.useLivekit){w.info(`Received incoming call whilst in signaling-only mode! Ignoring.`);return}var n=this.calls.get(t)??new Map,r=n.get(e.getOpponentDeviceId());if(r?.callId!==e.callId){w.log(`GroupCall ${this.groupCallId} onIncomingCall() incoming call (userId=${t}, callId=${e.callId})`),r&&r.hangup(q.Replaced,!1),n.set(e.getOpponentDeviceId(),e),this.calls.set(t,n),this.initCall(e);var i=this.getLocalFeeds().map(e=>e.clone());if(!this.callExpected(e))for(var a of i)EM(a.stream.getAudioTracks(),!1),EM(a.stream.getVideoTracks(),!1);e.answerWithCallFeeds(i),this.emit(H.CallsChanged,this.calls)}}}),h(this,`onRetryCallLoop`,()=>{var e=!1;for(var t of this.participants){var n=x(t,2),r=n[0].userId,i=n[1],a=this.calls.get(r),o=this.retryCallCounts.get(r);for(var s of i){var c=x(s,2),l=c[0],u=c[1],d=a?.get(l),f=o?.get(l)??0;d?.getOpponentSessionId()!==u.sessionId&&this.wantsOutgoingCall(r,l)&&f<3&&(o===void 0&&(o=new Map,this.retryCallCounts.set(r,o)),o.set(l,f+1),e=!0)}}e&&this.placeOutgoingCalls()}),h(this,`onCallFeedsChanged`,e=>{var t=lM(e),n=e.getOpponentDeviceId();if(!t)throw Error(`Cannot change call feeds without user id`);var r=this.getUserMediaFeed(t,n),i=e.remoteUsermediaFeed,a=i!==r;if(this.calls.get(t)?.get(n)?.callId===e.callId){a&&(!r&&i?this.addUserMediaFeed(i):r&&i?this.replaceUserMediaFeed(r,i):r&&!i&&this.removeUserMediaFeed(r));var o=this.getScreenshareFeed(t,n),s=e.remoteScreensharingFeed;s!==o&&(!o&&s?this.addScreenshareFeed(s):o&&s?this.replaceScreenshareFeed(o,s):o&&!s&&this.removeScreenshareFeed(o))}}),h(this,`onCallStateChanged`,(e,t,n)=>{if(t!==W.Ended){var r=this.localCallFeed.isAudioMuted();e.localUsermediaStream&&e.isMicrophoneMuted()!==r&&e.setMicrophoneMuted(r);var i=this.localCallFeed.isVideoMuted();e.localUsermediaStream&&e.isLocalVideoMuted()!==i&&e.setLocalVideoMuted(i);var a=e.getOpponentMember()?.userId;if(t===W.Connected&&a){var o=this.retryCallCounts.get(a);o?.delete(e.getOpponentDeviceId()),o?.size===0&&this.retryCallCounts.delete(a)}}}),h(this,`onCallHangup`,e=>{if(e.hangupReason!==q.Replaced){var t=e.getOpponentMember()?.userId??this.room.getMember(e.invitee).userId,n=this.calls.get(t);n?.get(e.getOpponentDeviceId())===e&&(this.disposeCall(e,e.hangupReason),n.delete(e.getOpponentDeviceId()),n.size===0&&this.calls.delete(t),this.emit(H.CallsChanged,this.calls))}}),h(this,`onCallReplaced`,(e,t)=>{var n=e.getOpponentMember().userId,r=this.calls.get(n);r===void 0&&(r=new Map,this.calls.set(n,r)),e.hangup(q.Replaced,!1),this.initCall(t),r.set(e.getOpponentDeviceId(),t),this.emit(H.CallsChanged,this.calls)}),h(this,`onActiveSpeakerLoop`,()=>{var e=void 0,t=void 0;for(var n of this.userMediaFeeds)if(!(n.isLocal()&&this.userMediaFeeds.length>1)){var r=n.speakingVolumeSamples.reduce((e,t)=>e+Math.max(t,-60))/n.speakingVolumeSamples.length;(!e||r>e)&&(e=r,t=n)}t&&this.activeSpeaker!==t&&e&&e>-60&&(this.activeSpeaker=t,this.emit(H.ActiveSpeakerChanged,this.activeSpeaker))}),h(this,`onRoomState`,()=>this.updateParticipants()),h(this,`onParticipantsChanged`,()=>{this.forEachCall(e=>{var t=this.callExpected(e);for(var n of e.getLocalFeeds())EM(n.stream.getAudioTracks(),!n.isAudioMuted()&&t),EM(n.stream.getVideoTracks(),!n.isVideoMuted()&&t)}),this.state===U.Entered&&!this.useLivekit&&this.placeOutgoingCalls()}),h(this,`onStateChanged`,(e,t)=>{(e===U.Entered||t===U.Entered||e===U.Ended)&&(this.updateParticipants(),this.updateMemberState().catch(e=>w.error(`GroupCall ${this.groupCallId} onStateChanged() failed to update member state devices"`,e)))}),h(this,`onLocalFeedsChanged`,()=>{this.state===U.Entered&&this.updateMemberState().catch(e=>w.error(`GroupCall ${this.groupCallId} onLocalFeedsChanged() failed to update member state feeds`,e))}),this.reEmitter=new BO(this),this.groupCallId=a??SM(),this._livekitServiceURL=u,this.creationTs=t.currentState.getStateEvents(E.GroupCallPrefix,this.groupCallId)?.getTs()??null,this.updateParticipants(),t.on(j.Update,this.onRoomState),this.on(H.ParticipantsChanged,this.onParticipantsChanged),this.on(H.GroupCallStateChanged,this.onStateChanged),this.on(H.LocalScreenshareStateChanged,this.onLocalFeedsChanged),this.allowCallWithoutVideoAndAudio=!!c}create(){var e=this;return C(function*(){return e.creationTs=Date.now(),e.client.groupCallEventHandler.groupCalls.set(e.room.roomId,e),e.client.emit(Nj.Outgoing,e),yield e.sendCallStateEvent(),e})()}sendCallStateEvent(){var e=this;return C(function*(){var t={"m.intent":e.intent,"m.type":e.type,"io.element.ptt":e.isPtt,dataChannelsEnabled:e.dataChannelsEnabled,dataChannelOptions:e.dataChannelsEnabled?e.dataChannelOptions:void 0};e.livekitServiceURL&&(t[`io.element.livekit_service_url`]=e.livekitServiceURL),yield e.client.sendStateEvent(e.room.roomId,E.GroupCallPrefix,t,e.groupCallId)})()}get livekitServiceURL(){return this._livekitServiceURL}updateLivekitServiceURL(e){return this._livekitServiceURL=e,this.sendCallStateEvent()}get state(){return this._state}set state(e){var t=this._state;e!==t&&(this._state=e,this.emit(H.GroupCallStateChanged,e,t))}get participants(){return this._participants}set participants(e){var t=this._participants,n=(e,t)=>e.sessionId===t.sessionId&&e.screensharing===t.screensharing;uD(e,t,(e,t)=>uD(e,t,n))||(this._participants=e,this.emit(H.ParticipantsChanged,e))}get creationTs(){return this._creationTs}set creationTs(e){this._creationTs=e}get enteredViaAnotherSession(){return this._enteredViaAnotherSession}set enteredViaAnotherSession(e){this._enteredViaAnotherSession=e,this.updateParticipants()}forEachCall(e){for(var t of this.calls.values())for(var n of t.values())e(n)}getLocalFeeds(){var e=[];return this.localCallFeed&&e.push(this.localCallFeed),this.localScreenshareFeed&&e.push(this.localScreenshareFeed),e}hasLocalParticipant(){return this.participants.get(this.room.getMember(this.client.getUserId()))?.has(this.client.getDeviceId())??!1}callExpected(e){var t=lM(e),n=t===null?null:this.room.getMember(t),r=e.getOpponentDeviceId();return n!==null&&r!==void 0&&this.participants.get(n)?.get(r)!==void 0}initLocalCallFeed(){var e=this;return C(function*(){if(e.useLivekit){w.info(`Livekit group call: not starting local call feed.`);return}if(e.state!==U.LocalCallFeedUninitialized)throw Error(`Cannot initialize local call feed in the "${e.state}" state.`);if(e.state=U.InitializingLocalCallFeed,e.initCallFeedPromise)return e.initCallFeedPromise;try{e.initCallFeedPromise=e.initLocalCallFeedInternal(),yield e.initCallFeedPromise}finally{e.initCallFeedPromise=void 0}})()}initLocalCallFeedInternal(){var e=this;return C(function*(){w.log(`GroupCall ${e.groupCallId} initLocalCallFeedInternal() running`);var t;try{t=yield e.client.getMediaHandler().getUserMediaStream(!0,e.type===nM.Video)}catch(n){if(e.allowCallWithoutVideoAndAudio)t=new MediaStream;else throw e.state=U.LocalCallFeedUninitialized,n}if(e._state!==U.InitializingLocalCallFeed)throw e.client.getMediaHandler().stopUserMediaStream(t),Error(`Group call disposed while gathering media stream`);var n=new kj({client:e.client,roomId:e.room.roomId,userId:e.client.getUserId(),deviceId:e.client.getDeviceId(),stream:t,purpose:V.Usermedia,audioMuted:e.initWithAudioMuted||t.getAudioTracks().length===0||e.isPtt,videoMuted:e.initWithVideoMuted||t.getVideoTracks().length===0});EM(t.getAudioTracks(),!n.isAudioMuted()),EM(t.getVideoTracks(),!n.isVideoMuted()),e.localCallFeed=n,e.addUserMediaFeed(n),e.state=U.LocalCallFeedInitialized})()}updateLocalUsermediaStream(e){var t=this;return C(function*(){if(t.localCallFeed){var n=t.localCallFeed.stream;t.localCallFeed.setNewStream(e);var r=t.localCallFeed.isAudioMuted(),i=t.localCallFeed.isVideoMuted();w.log(`GroupCall ${t.groupCallId} updateLocalUsermediaStream() (oldStreamId=${n.id}, newStreamId=${e.id}, micShouldBeMuted=${r}, vidShouldBeMuted=${i})`),EM(e.getAudioTracks(),!r),EM(e.getVideoTracks(),!i),t.client.getMediaHandler().stopUserMediaStream(n)}})()}enter(){var e=this;return C(function*(){if(e.state===U.LocalCallFeedUninitialized)yield e.initLocalCallFeed();else if(e.state!==U.LocalCallFeedInitialized)throw Error(`Cannot enter call in the "${e.state}" state`);w.log(`GroupCall ${e.groupCallId} enter() running`),e.state=U.Entered,e.client.on(jj.Incoming,e.onIncomingCall);for(var t of e.client.callEventHandler.calls.values())e.onIncomingCall(t);e.useLivekit||(e.retryCallLoopInterval=setInterval(e.onRetryCallLoop,e.retryCallInterval),e.activeSpeaker=void 0,e.onActiveSpeakerLoop(),e.activeSpeakerLoopInterval=setInterval(e.onActiveSpeakerLoop,e.activeSpeakerInterval))})()}dispose(){var e;this.localCallFeed&&=(this.removeUserMediaFeed(this.localCallFeed),void 0),this.localScreenshareFeed&&(this.client.getMediaHandler().stopScreensharingStream(this.localScreenshareFeed.stream),this.removeScreenshareFeed(this.localScreenshareFeed),this.localScreenshareFeed=void 0,this.localDesktopCapturerSourceId=void 0),this.client.getMediaHandler().stopAllStreams(),this.transmitTimer!==null&&(clearTimeout(this.transmitTimer),this.transmitTimer=null),this.retryCallLoopInterval!==void 0&&(clearInterval(this.retryCallLoopInterval),this.retryCallLoopInterval=void 0),this.participantsExpirationTimer!==null&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null),this.state===U.Entered&&(this.forEachCall(e=>e.hangup(q.UserHangup,!1)),this.activeSpeaker=void 0,clearInterval(this.activeSpeakerLoopInterval),this.retryCallCounts.clear(),clearInterval(this.retryCallLoopInterval),this.client.removeListener(jj.Incoming,this.onIncomingCall),(e=this.stats)==null||e.stop())}leave(){this.dispose(),this.state=U.LocalCallFeedUninitialized}terminate(){var e=arguments,t=this;return C(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:!0;if(t.dispose(),t.room.off(j.Update,t.onRoomState),t.client.groupCallEventHandler.groupCalls.delete(t.room.roomId),t.client.emit(Nj.Ended,t),t.state=U.Ended,n){var r=t.room.currentState.getStateEvents(E.GroupCallPrefix,t.groupCallId);yield t.client.sendStateEvent(t.room.roomId,E.GroupCallPrefix,eM(eM({},r.getContent()),{},{"m.terminated":rM.CallEnded}),t.groupCallId)}})()}isLocalVideoMuted(){return this.localCallFeed?this.localCallFeed.isVideoMuted():!0}isMicrophoneMuted(){return this.localCallFeed?this.localCallFeed.isAudioMuted():!0}setMicrophoneMuted(e){var t=this;return C(function*(){if(!e&&!(yield t.client.getMediaHandler().hasAudioDevice()))return!1;var n=!e&&t.isPtt;t.isPtt&&(!e&&t.isMicrophoneMuted()?t.transmitTimer=setTimeout(()=>{t.setMicrophoneMuted(!0)},t.pttMaxTransmitTime):e&&!t.isMicrophoneMuted()&&(t.transmitTimer!==null&&clearTimeout(t.transmitTimer),t.transmitTimer=null)),t.forEachCall(t=>t.localUsermediaFeed?.setAudioVideoMuted(e,null));var r=function(){var e=C(function*(){var e=[];t.forEachCall(t=>e.push(t.sendMetadataUpdate())),yield Promise.all(e).catch(e=>w.info(`GroupCall ${t.groupCallId} setMicrophoneMuted() failed to send some metadata updates`,e))});return function(){return e.apply(this,arguments)}}();if(n&&(yield r()),t.localCallFeed){if(w.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() (streamId=${t.localCallFeed.stream.id}, muted=${e})`),!(yield t.checkAudioPermissionIfNecessary(e)))return!1;t.localCallFeed.setAudioVideoMuted(e,null),EM(t.localCallFeed.stream.getAudioTracks(),!e)}else w.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no stream muted (muted=${e})`),t.initWithAudioMuted=e;return t.forEachCall(n=>EM(n.localUsermediaFeed.stream.getAudioTracks(),!e&&t.callExpected(n))),t.emit(H.LocalMuteStateChanged,e,t.isLocalVideoMuted()),n||(yield r()),!0})()}checkAudioPermissionIfNecessary(e){var t=this;return C(function*(){try{if(!e&&t.localCallFeed&&!t.localCallFeed.hasAudioTrack&&(yield t.client.getMediaHandler().getUserMediaStream(!0,!t.localCallFeed.isVideoMuted()))?.getTracks().length===0)return w.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no device to receive local stream, muted=${e}`),!1}catch{return w.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no device or permission to receive local stream, muted=${e}`),!1}return!0})()}setLocalVideoMuted(e){var t=this;return C(function*(){if(!e&&!(yield t.client.getMediaHandler().hasVideoDevice()))return!1;if(t.localCallFeed){w.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() (stream=${t.localCallFeed.stream.id}, muted=${e})`);try{var n=yield t.client.getMediaHandler().getUserMediaStream(!0,!e);yield t.updateLocalUsermediaStream(n),t.localCallFeed.setAudioVideoMuted(null,e),EM(t.localCallFeed.stream.getVideoTracks(),!e)}catch{return w.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() no device or permission to receive local stream, muted=${e}`),!1}}else w.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() no stream muted (muted=${e})`),t.initWithVideoMuted=e;var r=[];return t.forEachCall(t=>r.push(t.setLocalVideoMuted(e))),yield Promise.all(r),t.forEachCall(n=>EM(n.localUsermediaFeed.stream.getVideoTracks(),!e&&t.callExpected(n))),t.emit(H.LocalMuteStateChanged,t.isMicrophoneMuted(),e),!0})()}setScreensharingEnabled(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};if(e===n.isScreensharing())return e;if(e)try{w.log(`GroupCall ${n.groupCallId} setScreensharingEnabled() is asking for screensharing permissions`);var i=yield n.client.getMediaHandler().getScreensharingStream(r),a=function*(e){var t=()=>{n.setScreensharingEnabled(!1),e.removeEventListener(`ended`,t)};e.addEventListener(`ended`,t)};for(var o of i.getTracks())yield*a(o);return w.log(`GroupCall ${n.groupCallId} setScreensharingEnabled() granted screensharing permissions. Setting screensharing enabled on all calls`),n.localDesktopCapturerSourceId=r.desktopCapturerSourceId,n.localScreenshareFeed=new kj({client:n.client,roomId:n.room.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId(),stream:i,purpose:V.Screenshare,audioMuted:!1,videoMuted:!1}),n.addScreenshareFeed(n.localScreenshareFeed),n.emit(H.LocalScreenshareStateChanged,!0,n.localScreenshareFeed,n.localDesktopCapturerSourceId),n.forEachCall(e=>e.pushLocalFeed(n.localScreenshareFeed.clone())),!0}catch(e){if(r.throwOnFail)throw e;return w.error(`GroupCall ${n.groupCallId} setScreensharingEnabled() enabling screensharing error`,e),n.emit(H.Error,new oM(aM.NoUserMedia,`Failed to get screen-sharing stream: `,e)),!1}else return n.forEachCall(e=>{e.localScreensharingFeed&&e.removeLocalFeed(e.localScreensharingFeed)}),n.client.getMediaHandler().stopScreensharingStream(n.localScreenshareFeed.stream),n.removeScreenshareFeed(n.localScreenshareFeed),n.localScreenshareFeed=void 0,n.localDesktopCapturerSourceId=void 0,n.emit(H.LocalScreenshareStateChanged,!1,void 0,void 0),!1})()}isScreensharing(){return!!this.localScreenshareFeed}wantsOutgoingCall(e,t){var n=this.client.getUserId(),r=this.client.getDeviceId();return e>=n&&(e!==n||t>r)}placeOutgoingCalls(){var e=this,t=!1,n=function(){r=x(i,2);var n=r[0].userId,a=r[1],o=e.calls.get(n)??new Map,s=function(){c=x(l,2);var r=c[0],i=c[1],a=o.get(r);if(a?.getOpponentSessionId()!==i.sessionId&&e.wantsOutgoingCall(n,r)){t=!0,a!==void 0&&(w.debug(`GroupCall ${e.groupCallId} placeOutgoingCalls() replacing call (userId=${n}, deviceId=${r}, callId=${a.callId})`),a.hangup(q.NewSession,!1));var s=OM(e.client,e.room.roomId,{invitee:n,opponentDeviceId:r,opponentSessionId:i.sessionId,groupCallId:e.groupCallId});s===null?(w.error(`GroupCall ${e.groupCallId} placeOutgoingCalls() failed to create call (userId=${n}, device=${r})`),o.delete(r)):(e.initCall(s),o.set(r,s),w.debug(`GroupCall ${e.groupCallId} placeOutgoingCalls() placing call (userId=${n}, deviceId=${r}, sessionId=${i.sessionId})`),s.placeCallWithCallFeeds(e.getLocalFeeds().map(e=>e.clone()),i.screensharing).then(()=>{e.dataChannelsEnabled&&s.createDataChannel(`datachannel`,e.dataChannelOptions)}).catch(t=>{w.warn(`GroupCall ${e.groupCallId} placeOutgoingCalls() failed to place call (userId=${n})`,t),t instanceof xM&&t.code===aM.UnknownDevice?e.emit(H.Error,t):e.emit(H.Error,new oM(aM.PlaceCallFailed,`Failed to place call to ${n}`)),s.hangup(q.SignallingFailed,!1),o.get(r)===s&&o.delete(r)}))}},c;for(var l of a)s();o.size>0?e.calls.set(n,o):e.calls.delete(n)},r;for(var i of this.participants)n();t&&this.emit(H.CallsChanged,this.calls)}getMemberStateEvents(e){return e===void 0?this.room.currentState.getStateEvents(E.GroupCallMemberPrefix):this.room.currentState.getStateEvents(E.GroupCallMemberPrefix,e)}initCall(e){var t=lM(e);if(!t)throw Error(`Cannot init call without user id`);var n=()=>this.onCallFeedsChanged(e),r=(t,n)=>this.onCallStateChanged(e,t,n),i=this.onCallHangup,a=t=>this.onCallReplaced(e,t),o=this.callHandlers.get(t);o===void 0&&(o=new Map,this.callHandlers.set(t,o)),o.set(e.getOpponentDeviceId(),{onCallFeedsChanged:n,onCallStateChanged:r,onCallHangup:i,onCallReplaced:a}),e.on(K.FeedsChanged,n),e.on(K.State,r),e.on(K.Hangup,i),e.on(K.Replaced,a),e.isPtt=this.isPtt,this.reEmitter.reEmit(e,Object.values(K)),e.initStats(this.getGroupCallStats()),n()}disposeCall(e,t){var n=lM(e),r=e.getOpponentDeviceId();if(!n)throw Error(`Cannot dispose call without user id`);var i=this.callHandlers.get(n),a=i.get(r),o=a.onCallFeedsChanged,s=a.onCallStateChanged,c=a.onCallHangup,l=a.onCallReplaced;if(e.removeListener(K.FeedsChanged,o),e.removeListener(K.State,s),e.removeListener(K.Hangup,c),e.removeListener(K.Replaced,l),i.delete(n),i.size===0&&this.callHandlers.delete(n),e.hangupReason!==q.Replaced){var u=this.getUserMediaFeed(n,r);u&&this.removeUserMediaFeed(u);var d=this.getScreenshareFeed(n,r);d&&this.removeScreenshareFeed(d)}}getUserMediaFeed(e,t){return this.userMediaFeeds.find(n=>n.userId===e&&n.deviceId===t)}addUserMediaFeed(e){this.userMediaFeeds.push(e),e.measureVolumeActivity(!0),this.emit(H.UserMediaFeedsChanged,this.userMediaFeeds)}replaceUserMediaFeed(e,t){var n=this.userMediaFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(n===-1)throw Error(`Couldn't find user media feed to replace`);this.userMediaFeeds.splice(n,1,t),e.dispose(),t.measureVolumeActivity(!0),this.emit(H.UserMediaFeedsChanged,this.userMediaFeeds)}removeUserMediaFeed(e){var t=this.userMediaFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(t===-1)throw Error(`Couldn't find user media feed to remove`);this.userMediaFeeds.splice(t,1),e.dispose(),this.emit(H.UserMediaFeedsChanged,this.userMediaFeeds),this.activeSpeaker===e&&(this.activeSpeaker=this.userMediaFeeds[0],this.emit(H.ActiveSpeakerChanged,this.activeSpeaker))}getScreenshareFeed(e,t){return this.screenshareFeeds.find(n=>n.userId===e&&n.deviceId===t)}addScreenshareFeed(e){this.screenshareFeeds.push(e),this.emit(H.ScreenshareFeedsChanged,this.screenshareFeeds)}replaceScreenshareFeed(e,t){var n=this.screenshareFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(n===-1)throw Error(`Couldn't find screenshare feed to replace`);this.screenshareFeeds.splice(n,1,t),e.dispose(),this.emit(H.ScreenshareFeedsChanged,this.screenshareFeeds)}removeScreenshareFeed(e){var t=this.screenshareFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(t===-1)throw Error(`Couldn't find screenshare feed to remove`);this.screenshareFeeds.splice(t,1),e.dispose(),this.emit(H.ScreenshareFeedsChanged,this.screenshareFeeds)}updateParticipants(){var e=this.room.getMember(this.client.getSafeUserId());if(!e){w.warn(`GroupCall ${this.groupCallId} updateParticipants() tried to update participants before local room member is available`);return}if(this.participantsExpirationTimer!==null&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null),this.state===U.Ended){this.participants=new Map;return}var t=new Map,n=Date.now(),r=this.state===U.Entered||this.enteredViaAnotherSession,i=1/0;for(var a of this.getMemberStateEvents()){var o=this.room.getMember(a.getStateKey()),s=a.getContent(),c=(Array.isArray(s[`m.calls`])?s[`m.calls`]:[]).find(e=>e[`m.call_id`]===this.groupCallId),l=(Array.isArray(c?.[`m.devices`])?c[`m.devices`]:[]).filter(e=>typeof e.device_id==`string`&&typeof e.session_id==`string`&&typeof e.expires_ts==`number`&&e.expires_ts>n&&Array.isArray(e.feeds));if(!r&&o?.userId===this.client.getUserId()&&(l=l.filter(e=>e.device_id!==this.client.getDeviceId())),l.length>0&&o?.membership===k.Join){var u=new Map;t.set(o,u);for(var d of l)u.set(d.device_id,{sessionId:d.session_id,screensharing:d.feeds.some(e=>e.purpose===V.Screenshare)}),d.expires_tse.purpose===V.Screenshare)})}this.participants=t,i<1/0&&(this.participantsExpirationTimer=setTimeout(()=>this.updateParticipants(),i-n))}updateDevices(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1,i=Date.now(),a=n.client.getUserId(),o=n.getMemberStateEvents(a)?.getContent()??{},s=Array.isArray(o[`m.calls`])?o[`m.calls`]:[],c=null,l=[];for(var u of s)u[`m.call_id`]===n.groupCallId?c=u:l.push(u);c===null&&(c={});var d=e((Array.isArray(c[`m.devices`])?c[`m.devices`]:[]).filter(e=>typeof e.device_id==`string`&&typeof e.session_id==`string`&&typeof e.expires_ts==`number`&&e.expires_ts>i&&Array.isArray(e.feeds)));if(d!==null){var f=[...l];d.length>0&&f.push(eM(eM({},c),{},{"m.call_id":n.groupCallId,"m.devices":d}));var p={"m.calls":f};yield n.client.sendStateEvent(n.room.roomId,E.GroupCallMemberPrefix,p,a,{keepAlive:r})}})()}addDeviceToMemberState(){var e=this;return C(function*(){yield e.updateDevices(t=>[...t.filter(t=>t.device_id!==e.client.getDeviceId()),{device_id:e.client.getDeviceId(),session_id:e.client.getSessionId(),expires_ts:Date.now()+cM,feeds:e.getLocalFeeds().map(e=>({purpose:e.purpose}))}])})()}updateMemberState(){var e=this;return C(function*(){e.resendMemberStateTimer!==null&&(clearInterval(e.resendMemberStateTimer),e.resendMemberStateTimer=null),e.state===U.Entered?(yield e.addDeviceToMemberState(),e.resendMemberStateTimer=setInterval(C(function*(){w.log(`GroupCall ${e.groupCallId} updateMemberState() resending call member state"`);try{yield e.addDeviceToMemberState()}catch(t){w.error(`GroupCall ${e.groupCallId} updateMemberState() failed to resend call member state`,t)}}),cM*3/4)):yield e.updateDevices(t=>t.filter(t=>t.device_id!==e.client.getDeviceId()),!0)})()}cleanMemberState(){var e=this;return C(function*(){var t=(yield e.client.getDevices()).devices,n=new Map(t.map(e=>[e.device_id,e]));yield e.updateDevices(t=>{var r=t.filter(t=>n.get(t.device_id)?.last_seen_ts!==void 0&&!(t.device_id===e.client.getDeviceId()&&e.state!==U.Entered&&!e.enteredViaAnotherSession));return r.length===t.length?null:r})})()}getGroupCallStats(){if(this.stats===void 0){var e=this.client.getUserId()||`unknown`;this.stats=new Qj(this.groupCallId,e,this.statsCollectIntervalTime),this.stats.reports.on(Yj.CONNECTION_STATS,this.onConnectionStats),this.stats.reports.on(Yj.BYTE_SENT_STATS,this.onByteSentStats),this.stats.reports.on(Yj.SUMMARY_STATS,this.onSummaryStats),this.stats.reports.on(Yj.CALL_FEED_REPORT,this.onCallFeedReport)}return this.stats}setGroupCallStatsInterval(e){this.statsCollectIntervalTime=e,this.stats!==void 0&&(this.stats.stop(),this.stats.setInterval(e),e>0&&this.stats.start())}};function dM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fM(e){for(var t=1;t{if(e.candidate){if(this.candidatesEnded&&w.warn(`Call ${this.callId} gotLocalIceCandidate() got candidate after candidates have ended!`),w.debug(`Call ${this.callId} got local ICE ${e.candidate.sdpMid} ${e.candidate.candidate}`),this.callHasEnded())return;e.candidate.candidate===``?this.queueCandidate(null):this.queueCandidate(e.candidate)}}),h(this,`onIceGatheringStateChange`,e=>{w.debug(`Call ${this.callId} onIceGatheringStateChange() ice gathering state changed to ${this.peerConn.iceGatheringState}`),this.peerConn?.iceGatheringState===`complete`&&(this.queueCandidate(null),w.debug(`Call ${this.callId} onIceGatheringStateChange() ice gathering state complete, set candidates have ended`))}),h(this,`getLocalOfferFailed`,e=>{w.error(`Call ${this.callId} getLocalOfferFailed() running`,e),this.emit(K.Error,new xM(q.LocalOfferFailed,`Failed to get local offer!`,e),this),this.terminate(G.Local,q.LocalOfferFailed,!1)}),h(this,`getUserMediaFailed`,e=>{if(this.successor){this.successor.getUserMediaFailed(e);return}w.warn(`Call ${this.callId} getUserMediaFailed() failed to get user media - ending call`,e),this.emit(K.Error,new xM(q.NoUserMedia,`Couldn't start capturing media! Is your microphone set up and does this app have permission?`,e),this),this.terminate(G.Local,q.NoUserMedia,!1)}),h(this,`placeCallFailed`,e=>{if(this.successor){this.successor.placeCallFailed(e);return}w.warn(`Call ${this.callId} placeCallWithCallFeeds() failed - ending call`,e),this.emit(K.Error,new xM(q.IceFailed,`Couldn't start call! Invalid ICE server configuration.`,e),this),this.terminate(G.Local,q.IceFailed,!1)}),h(this,`onIceConnectionStateChanged`,()=>{if(!this.callHasEnded()){if(w.debug(`Call ${this.callId} onIceConnectionStateChanged() running (state=${this.peerConn?.iceConnectionState}, conn=${this.peerConn?.connectionState})`),[`connected`,`completed`].includes(this.peerConn?.iceConnectionState??``))clearTimeout(this.iceDisconnectedTimeout),this.iceDisconnectedTimeout=void 0,this.iceReconnectionTimeOut&&clearTimeout(this.iceReconnectionTimeOut),this.state=W.Connected,!this.callLengthInterval&&!this.callStartTime&&(this.callStartTime=Date.now(),this.callLengthInterval=setInterval(()=>{this.emit(K.LengthChanged,Math.round((Date.now()-this.callStartTime)/1e3),this)},vM));else if(this.peerConn?.iceConnectionState==`failed`){var e;this.candidatesEnded=!1,(e=this.peerConn)!=null&&e.restartIce?(this.candidatesEnded=!1,w.debug(`Call ${this.callId} onIceConnectionStateChanged() ice restart (state=${this.peerConn?.iceConnectionState})`),this.peerConn.restartIce()):(w.info(`Call ${this.callId} onIceConnectionStateChanged() hanging up call (ICE failed and no ICE restart method)`),this.hangup(q.IceFailed,!1))}else this.peerConn?.iceConnectionState==`disconnected`&&(this.candidatesEnded=!1,this.iceReconnectionTimeOut=setTimeout(()=>{var e;w.info(`Call ${this.callId} onIceConnectionStateChanged() ICE restarting because of ICE disconnected, (state=${this.peerConn?.iceConnectionState}, conn=${this.peerConn?.connectionState})`),(e=this.peerConn)!=null&&e.restartIce&&(this.candidatesEnded=!1,this.peerConn.restartIce()),this.iceReconnectionTimeOut=void 0},bM),this.iceDisconnectedTimeout=setTimeout(()=>{w.info(`Call ${this.callId} onIceConnectionStateChanged() hanging up call (ICE disconnected for too long)`),this.hangup(q.IceFailed,!1)},yM),this.state=W.Connecting);if(this.isPtt&&[`failed`,`disconnected`].includes(this.peerConn.iceConnectionState))for(var t of this.getRemoteFeeds())t.setAudioVideoMuted(!0,!0)}}),h(this,`onSignallingStateChanged`,()=>{w.debug(`Call ${this.callId} onSignallingStateChanged() running (state=${this.peerConn?.signalingState})`)}),h(this,`onTrack`,e=>{if(e.streams.length===0){w.warn(`Call ${this.callId} onTrack() called with streamless track streamless (kind=${e.track.kind})`);return}var t=e.streams[0];if(this.pushRemoteFeed(t),!this.removeTrackListeners.has(t)){var n=()=>{t.getTracks().length===0&&(w.info(`Call ${this.callId} onTrack() removing track (streamId=${t.id})`),this.deleteFeedByStream(t),t.removeEventListener(`removetrack`,n),this.removeTrackListeners.delete(t))};t.addEventListener(`removetrack`,n),this.removeTrackListeners.set(t,n)}}),h(this,`onDataChannel`,e=>{this.emit(K.DataChannel,e.channel,this)}),h(this,`onNegotiationNeeded`,C(function*(){if(w.info(`Call ${t.callId} onNegotiationNeeded() negotiation is needed!`),t.state!==W.CreateOffer&&t.opponentVersion===0){w.info(`Call ${t.callId} onNegotiationNeeded() opponent does not support renegotiation: ignoring negotiationneeded event`);return}t.queueGotLocalOffer()})),h(this,`onHangupReceived`,e=>{w.debug(`Call ${this.callId} onHangupReceived() running`),this.partyIdMatches(e)||this.state===W.Ringing?this.terminate(G.Remote,e.reason||q.UserHangup,!0):w.info(`Call ${this.callId} onHangupReceived() ignoring message from party ID ${e.party_id}: our partner is ${this.opponentPartyId}`)}),h(this,`onRejectReceived`,e=>{w.debug(`Call ${this.callId} onRejectReceived() running`),[W.InviteSent,W.Ringing].includes(this.state)||this.state===W.Fledgling&&this.direction===mM.Inbound?this.terminate(G.Remote,e.reason||q.UserHangup,!0):w.debug(`Call ${this.callId} onRejectReceived() called in wrong state (state=${this.state})`)}),h(this,`onAnsweredElsewhere`,e=>{w.debug(`Call ${this.callId} onAnsweredElsewhere() running`),this.terminate(G.Remote,q.AnsweredElsewhere,!0)}),this.roomId=e.roomId,this.invitee=e.invitee,this.client=e.client,!this.client.deviceId)throw Error(`Client must have a device ID to start calls`);this.forceTURN=e.forceTURN??!1,this.ourPartyId=this.client.deviceId,this.opponentDeviceId=e.opponentDeviceId,this.opponentSessionId=e.opponentSessionId,this.groupCallId=e.groupCallId,this.turnServers=e.turnServers||[],this.turnServers.length===0&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:[gM]});for(var n of this.turnServers)jE(n,[`urls`]);this.callId=SM(),this.isOnlyDataChannelAllowed=this.client.isVoipWithNoMediaAllowed}placeVoiceCall(){var e=this;return C(function*(){yield e.placeCall(!0,!1)})()}placeVideoCall(){var e=this;return C(function*(){yield e.placeCall(!0,!0)})()}createDataChannel(e,t){var n=this.peerConn.createDataChannel(e,t);return this.emit(K.DataChannel,n,this),n}getOpponentMember(){return this.opponentMember}getOpponentDeviceId(){return this.opponentDeviceId}getOpponentSessionId(){return this.opponentSessionId}opponentCanBeTransferred(){return!!(this.opponentCaps&&this.opponentCaps[`m.call.transferee`])}opponentSupportsDTMF(){return!!(this.opponentCaps&&this.opponentCaps[`m.call.dtmf`])}getRemoteAssertedIdentity(){return this.remoteAssertedIdentity}get state(){return this._state}set state(e){var t=this._state;this._state=e,this.emit(K.State,e,t,this)}get type(){return this.hasUserMediaVideoSender||this.hasRemoteUserMediaVideoTrack?pM.Video:pM.Voice}get hasLocalUserMediaVideoTrack(){var e;return!!((e=this.localUsermediaStream)!=null&&e.getVideoTracks().length)}get hasRemoteUserMediaVideoTrack(){return this.getRemoteFeeds().some(e=>e.purpose===V.Usermedia&&e.stream?.getVideoTracks().length)}get hasLocalUserMediaAudioTrack(){var e;return!!((e=this.localUsermediaStream)!=null&&e.getAudioTracks().length)}get hasRemoteUserMediaAudioTrack(){return this.getRemoteFeeds().some(e=>{var t;return e.purpose===V.Usermedia&&!!((t=e.stream)!=null&&t.getAudioTracks().length)})}get hasUserMediaAudioSender(){return!!this.transceivers.get(wM(V.Usermedia,`audio`))?.sender}get hasUserMediaVideoSender(){return!!this.transceivers.get(wM(V.Usermedia,`video`))?.sender}get localUsermediaFeed(){return this.getLocalFeeds().find(e=>e.purpose===V.Usermedia)}get localScreensharingFeed(){return this.getLocalFeeds().find(e=>e.purpose===V.Screenshare)}get localUsermediaStream(){return this.localUsermediaFeed?.stream}get localScreensharingStream(){return this.localScreensharingFeed?.stream}get remoteUsermediaFeed(){return this.getRemoteFeeds().find(e=>e.purpose===V.Usermedia)}get remoteScreensharingFeed(){return this.getRemoteFeeds().find(e=>e.purpose===V.Screenshare)}get remoteUsermediaStream(){return this.remoteUsermediaFeed?.stream}get remoteScreensharingStream(){return this.remoteScreensharingFeed?.stream}getFeedByStreamId(e){return this.getFeeds().find(t=>t.stream.id===e)}getFeeds(){return this.feeds}getLocalFeeds(){return this.feeds.filter(e=>e.isLocal())}getRemoteFeeds(){return this.feeds.filter(e=>!e.isLocal())}initOpponentCrypto(){var e=this;return C(function*(){if(e.opponentDeviceId&&e.client.getUseE2eForGroupCall()){if(!e.client.getCrypto()){e.hasOpponentDeviceInfo=!0;return}var t=e.invitee||e.getOpponentMember()?.userId;throw t?(e.hasOpponentDeviceInfo=!1,new sM(t)):Error(`Couldn't find opponent user ID to init crypto`)}})()}getLocalSDPStreamMetadata(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t={};for(var n of this.getLocalFeeds())e&&(n.sdpMetadataStreamId=n.stream.id),t[n.sdpMetadataStreamId]={purpose:n.purpose,audio_muted:n.isAudioMuted(),video_muted:n.isVideoMuted()};return t}noIncomingFeeds(){return!this.feeds.some(e=>!e.isLocal())}pushRemoteFeed(e){if(!this.opponentSupportsSDPStreamMetadata()){this.pushRemoteFeedWithoutMetadata(e);return}var t=this.getOpponentMember().userId,n=this.remoteSDPStreamMetadata[e.id].purpose,r=this.remoteSDPStreamMetadata[e.id].audio_muted,i=this.remoteSDPStreamMetadata[e.id].video_muted;if(!n){w.warn(`Call ${this.callId} pushRemoteFeed() ignoring stream because we didn't get any metadata about it (streamId=${e.id})`);return}if(this.getFeedByStreamId(e.id)){w.warn(`Call ${this.callId} pushRemoteFeed() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.feeds.push(new kj({client:this.client,call:this,roomId:this.roomId,userId:t,deviceId:this.getOpponentDeviceId(),stream:e,purpose:n,audioMuted:r,videoMuted:i})),this.emit(K.FeedsChanged,this.feeds,this),w.info(`Call ${this.callId} pushRemoteFeed() pushed stream (streamId=${e.id}, active=${e.active}, purpose=${n})`)}pushRemoteFeedWithoutMetadata(e){var t=this.getOpponentMember().userId,n=V.Usermedia,r=this.feeds.find(e=>!e.isLocal())?.stream;if(r&&e.id!==r.id){w.warn(`Call ${this.callId} pushRemoteFeedWithoutMetadata() ignoring new stream because we already have stream (streamId=${e.id})`);return}if(this.getFeedByStreamId(e.id)){w.warn(`Call ${this.callId} pushRemoteFeedWithoutMetadata() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.feeds.push(new kj({client:this.client,call:this,roomId:this.roomId,audioMuted:!1,videoMuted:!1,userId:t,deviceId:this.getOpponentDeviceId(),stream:e,purpose:n})),this.emit(K.FeedsChanged,this.feeds,this),w.info(`Call ${this.callId} pushRemoteFeedWithoutMetadata() pushed stream (streamId=${e.id}, active=${e.active})`)}pushNewLocalFeed(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=this.client.getUserId();if(EM(e.getAudioTracks(),!0),EM(e.getVideoTracks(),!0),this.getFeedByStreamId(e.id)){w.warn(`Call ${this.callId} pushNewLocalFeed() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.pushLocalFeed(new kj({client:this.client,roomId:this.roomId,audioMuted:!1,videoMuted:!1,userId:r,deviceId:this.getOpponentDeviceId(),stream:e,purpose:t}),n)}pushLocalFeed(e){var t=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(this.feeds.some(t=>e.stream.id===t.stream.id)){w.info(`Call ${this.callId} pushLocalFeed() ignoring duplicate local stream (streamId=${e.stream.id})`);return}if(this.feeds.push(e),n){var r=function(){w.info(`Call ${t.callId} pushLocalFeed() adding track to peer connection (id=${i.id}, kind=${i.kind}, streamId=${e.stream.id}, streamPurpose=${e.purpose}, enabled=${i.enabled})`);var n=wM(e.purpose,i.kind);if(t.transceivers.has(n)){var r=t.transceivers.get(n);r.sender.replaceTrack(i),r.direction=r.direction===`inactive`?`sendonly`:`sendrecv`}else{var a=t.peerConn.addTrack(i,e.stream),o=t.peerConn.getTransceivers().find(e=>e.sender===a);o?t.transceivers.set(n,o):w.warn(`Call ${t.callId} pushLocalFeed() didn't find a matching transceiver after adding track!`)}};for(var i of e.stream.getTracks())r()}w.info(`Call ${this.callId} pushLocalFeed() pushed stream (id=${e.stream.id}, active=${e.stream.active}, purpose=${e.purpose})`),this.emit(K.FeedsChanged,this.feeds,this)}removeLocalFeed(e){for(var t of[wM(e.purpose,`audio`),wM(e.purpose,`video`)])if(this.transceivers.has(t)){var n=this.transceivers.get(t);n.sender&&this.peerConn.removeTrack(n.sender)}e.purpose===V.Screenshare&&this.client.getMediaHandler().stopScreensharingStream(e.stream),this.deleteFeed(e)}deleteAllFeeds(){for(var e of this.feeds)(!e.isLocal()||!this.groupCallId)&&e.dispose();this.feeds=[],this.emit(K.FeedsChanged,this.feeds,this)}deleteFeedByStream(e){var t=this.getFeedByStreamId(e.id);if(!t){w.warn(`Call ${this.callId} deleteFeedByStream() didn't find the feed to delete (streamId=${e.id})`);return}this.deleteFeed(t)}deleteFeed(e){e.dispose(),this.feeds.splice(this.feeds.indexOf(e),1),this.emit(K.FeedsChanged,this.feeds,this)}getCurrentCallStats(){var e=this;return C(function*(){return e.callHasEnded()?e.callStatsAtEnd:e.collectCallStats()})()}collectCallStats(){var e=this;return C(function*(){if(e.peerConn){var t=yield e.peerConn.getStats(),n=[];return t.forEach(e=>{n.push(e)}),n}})()}initWithInvite(e){var t=this;return C(function*(){var n=e.getContent();t.direction=mM.Inbound,(yield t.client.checkTurnServers())||w.warn(`Call ${t.callId} initWithInvite() failed to get TURN credentials! Proceeding with call anyway...`);var r=xj.findIn(n);r?t.updateRemoteSDPStreamMetadata(r):w.debug(`Call ${t.callId} initWithInvite() did not get any SDPStreamMetadata! Can not send/receive multiple streams`),t.peerConn=t.createPeerConnection(),t.emit(K.PeerConnectionCreated,t.peerConn,t),t.chooseOpponent(e),yield t.initOpponentCrypto();try{yield t.peerConn.setRemoteDescription(n.offer),w.debug(`Call ${t.callId} initWithInvite() set remote description: ${n.offer.type}`),yield t.addBufferedIceCandidates()}catch(e){w.debug(`Call ${t.callId} initWithInvite() failed to set remote description`,e),t.terminate(G.Local,q.SetRemoteDescription,!1);return}var i=t.feeds.find(e=>!e.isLocal())?.stream;if(!t.isOnlyDataChannelAllowed&&(!i||i.getTracks().length===0)){w.error(`Call ${t.callId} initWithInvite() no remote stream or no tracks after setting remote description!`),t.terminate(G.Local,q.SetRemoteDescription,!1);return}if(t.state=W.Ringing,e.getLocalAge()){var a=setTimeout(()=>{if(t.state==W.Ringing){var e;w.debug(`Call ${t.callId} initWithInvite() invite has expired. Hanging up.`),t.hangupParty=G.Remote,t.state=W.Ended,t.stopAllMedia(),t.peerConn.signalingState!=`closed`&&t.peerConn.close(),(e=t.stats)==null||e.removeStatsReportGatherer(t.callId),t.emit(K.Hangup,t)}},n.lifetime-e.getLocalAge()),o=e=>{e!==W.Ringing&&(clearTimeout(a),t.off(K.State,o))};t.on(K.State,o)}})()}initWithHangup(e){this.state=W.Ended}shouldAnswerWithMediaType(e,t,n){return e&&!t?(w.warn(`Call ${this.callId} shouldAnswerWithMediaType() unable to answer with ${n} because the other side isn't sending it either.`),!1):!qE(e)&&e!==t&&!this.opponentSupportsSDPStreamMetadata()?(w.warn(`Call ${this.callId} shouldAnswerWithMediaType() unable to answer with ${n}=${e} because the other side doesn't support it. Answering with ${n}=${t}.`),t):e??t}answer(e,t){var n=this;return C(function*(){if(!n.inviteOrAnswerSent){if(e===!1&&t===!1)throw Error(`You CANNOT answer a call without media`);if(!n.localUsermediaStream&&!n.waitForLocalAVStream){var r=n.state,i=n.shouldAnswerWithMediaType(e,n.hasRemoteUserMediaAudioTrack,`audio`),a=n.shouldAnswerWithMediaType(t,n.hasRemoteUserMediaVideoTrack,`video`);n.state=W.WaitLocalMedia,n.waitForLocalAVStream=!0;try{var o=yield n.client.getMediaHandler().getUserMediaStream(i,a);n.waitForLocalAVStream=!1;var s=[new kj({client:n.client,roomId:n.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId()??void 0,stream:o,purpose:V.Usermedia,audioMuted:!1,videoMuted:!1})];n.localScreensharingFeed&&s.push(n.localScreensharingFeed),n.answerWithCallFeeds(s)}catch(e){if(a)w.warn(`Call ${n.callId} answer() failed to getUserMedia(), trying to getUserMedia() without video`),n.state=r,n.waitForLocalAVStream=!1,yield n.answer(i,!1);else{n.getUserMediaFailed(e);return}}}else n.waitForLocalAVStream&&(n.state=W.WaitLocalMedia)}})()}answerWithCallFeeds(e){this.inviteOrAnswerSent||this.queueGotCallFeedsForAnswer(e)}replacedBy(e){w.debug(`Call ${this.callId} replacedBy() running (newCallId=${e.callId})`),this.state===W.WaitLocalMedia?(w.debug(`Call ${this.callId} replacedBy() telling new call to wait for local media (newCallId=${e.callId})`),e.waitForLocalAVStream=!0):[W.CreateOffer,W.InviteSent].includes(this.state)&&(e.direction===mM.Outbound?e.queueGotCallFeedsForAnswer([]):(w.debug(`Call ${this.callId} replacedBy() handing local stream to new call(newCallId=${e.callId})`),e.queueGotCallFeedsForAnswer(this.getLocalFeeds().map(e=>e.clone())))),this.successor=e,this.emit(K.Replaced,e,this),this.hangup(q.Replaced,!0)}hangup(e,t){if(!this.callHasEnded()&&(w.debug(`Call ${this.callId} hangup() ending call (reason=${e})`),this.terminate(G.Local,e,!t),![W.Fledgling,W.WaitLocalMedia].includes(this.state))){var n={};(this.opponentVersion&&this.opponentVersion!==0||e!==q.UserHangup)&&(n.reason=e),this.sendVoipEvent(E.CallHangup,n)}}reject(){if(this.state!==W.Ringing)throw Error(`Call must be in 'ringing' state to reject!`);if(this.opponentVersion===0){w.info(`Call ${this.callId} reject() opponent version is less than 1: sending hangup instead of reject (opponentVersion=${this.opponentVersion})`),this.hangup(q.UserHangup,!0);return}w.debug(`Rejecting call: `+this.callId),this.terminate(G.Local,q.UserHangup,!0),this.sendVoipEvent(E.CallReject,{})}upgradeCall(e,t){var n=this;return C(function*(){if(!(!e&&!t)&&n.opponentSupportsSDPStreamMetadata())try{w.debug(`Call ${n.callId} upgradeCall() upgrading call (audio=${e}, video=${t})`);var r=e||n.hasLocalUserMediaAudioTrack,i=t||n.hasLocalUserMediaVideoTrack,a=yield n.client.getMediaHandler().getUserMediaStream(r,i,!1);yield n.updateLocalUsermediaStream(a,e,t)}catch(e){w.error(`Call ${n.callId} upgradeCall() failed to upgrade the call`,e),n.emit(K.Error,new xM(q.NoUserMedia,`Failed to get camera access: `,e),n)}})()}opponentSupportsSDPStreamMetadata(){return!!this.remoteSDPStreamMetadata}isScreensharing(){return!!this.localScreensharingStream}setScreensharingEnabled(e,t){var n=this;return C(function*(){if(e&&n.isScreensharing())return w.warn(`Call ${n.callId} setScreensharingEnabled() there is already a screensharing stream - there is nothing to do!`),!0;if(!e&&!n.isScreensharing())return w.warn(`Call ${n.callId} setScreensharingEnabled() there already isn't a screensharing stream - there is nothing to do!`),!1;if(!n.opponentSupportsSDPStreamMetadata())return n.setScreensharingEnabledWithoutMetadataSupport(e,t);if(w.debug(`Call ${n.callId} setScreensharingEnabled() running (enabled=${e})`),e)try{var r=yield n.client.getMediaHandler().getScreensharingStream(t);return r?(n.pushNewLocalFeed(r,V.Screenshare),!0):!1}catch(e){return w.error(`Call ${n.callId} setScreensharingEnabled() failed to get screen-sharing stream:`,e),!1}else{for(var i of[n.transceivers.get(wM(V.Screenshare,`audio`)),n.transceivers.get(wM(V.Screenshare,`video`))])i&&i.sender&&n.peerConn.removeTrack(i.sender);return n.client.getMediaHandler().stopScreensharingStream(n.localScreensharingStream),n.deleteFeedByStream(n.localScreensharingStream),!1}})()}setScreensharingEnabledWithoutMetadataSupport(e,t){var n=this;return C(function*(){if(w.debug(`Call ${n.callId} setScreensharingEnabledWithoutMetadataSupport() running (enabled=${e})`),e)try{var r=yield n.client.getMediaHandler().getScreensharingStream(t);if(!r)return!1;var i=r.getTracks().find(e=>e.kind===`video`);return(n.transceivers.get(wM(V.Usermedia,`video`))?.sender)?.replaceTrack(i??null),n.pushNewLocalFeed(r,V.Screenshare,!1),!0}catch(e){return w.error(`Call ${n.callId} setScreensharingEnabledWithoutMetadataSupport() failed to get screen-sharing stream:`,e),!1}else{var a=n.localUsermediaStream?.getTracks().find(e=>e.kind===`video`);return(n.transceivers.get(wM(V.Usermedia,`video`))?.sender)?.replaceTrack(a??null),n.client.getMediaHandler().stopScreensharingStream(n.localScreensharingStream),n.deleteFeedByStream(n.localScreensharingStream),!1}})()}updateLocalUsermediaStream(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1,i=t.length>2&&t[2]!==void 0?t[2]:!1,a=n.localUsermediaFeed,o=r||!a.isAudioMuted()&&!n.remoteOnHold,s=i||!a.isVideoMuted()&&!n.remoteOnHold;w.log(`Call ${n.callId} updateLocalUsermediaStream() running (streamId=${e.id}, audio=${o}, video=${s})`),EM(e.getAudioTracks(),o),EM(e.getVideoTracks(),s);for(var c of n.localUsermediaStream.getTracks())n.localUsermediaStream.removeTrack(c),c.stop();for(var l of e.getTracks())n.localUsermediaStream.addTrack(l);var u=function*(){var t=wM(V.Usermedia,d.kind),r=n.transceivers.get(t),i=r?.sender,o=!1;if(i)try{w.info(`Call ${n.callId} updateLocalUsermediaStream() replacing track (id=${d.id}, kind=${d.kind}, streamId=${e.id}, streamPurpose=${a.purpose})`),yield i.replaceTrack(d),r.direction=r.direction===`inactive`?`sendonly`:`sendrecv`,o=!0}catch(e){w.warn(`Call ${n.callId} updateLocalUsermediaStream() replaceTrack failed: adding new transceiver instead`,e)}if(!o){w.info(`Call ${n.callId} updateLocalUsermediaStream() adding track to peer connection (id=${d.id}, kind=${d.kind}, streamId=${e.id}, streamPurpose=${a.purpose})`);var s=n.peerConn.addTrack(d,n.localUsermediaStream),c=n.peerConn.getTransceivers().find(e=>e.sender===s);c?n.transceivers.set(t,c):w.warn(`Call ${n.callId} updateLocalUsermediaStream() couldn't find matching transceiver for newly added track!`)}};for(var d of e.getTracks())yield*u()})()}setLocalVideoMuted(e){var t=this;return C(function*(){var n;if(w.log(`Call ${t.callId} setLocalVideoMuted() running ${e}`),!e&&t.stopVideoTrackTimer!==void 0&&(clearTimeout(t.stopVideoTrackTimer),t.stopVideoTrackTimer=void 0),!(yield t.client.getMediaHandler().hasVideoDevice()))return t.isLocalVideoMuted();if(!t.hasUserMediaVideoSender&&!e){var r;return(r=t.localUsermediaFeed)==null||r.setAudioVideoMuted(null,e),yield t.upgradeCall(!1,!0),t.isLocalVideoMuted()}if(!e&&t.localUsermediaStream.getVideoTracks().length===0){var i=yield t.client.getMediaHandler().getUserMediaStream(!0,!0);yield t.updateLocalUsermediaStream(i)}return(n=t.localUsermediaFeed)==null||n.setAudioVideoMuted(null,e),t.updateMuteStatus(),yield t.sendMetadataUpdate(),e&&(t.stopVideoTrackTimer=setTimeout(()=>{for(var e of t.localUsermediaStream.getVideoTracks())e.stop(),t.localUsermediaStream.removeTrack(e)},120)),t.isLocalVideoMuted()})()}isLocalVideoMuted(){return this.localUsermediaFeed?.isVideoMuted()??!1}setMicrophoneMuted(e){var t=this;return C(function*(){var n;return w.log(`Call ${t.callId} setMicrophoneMuted() running ${e}`),(yield t.client.getMediaHandler().hasAudioDevice())?!e&&(!t.hasUserMediaAudioSender||!t.hasLocalUserMediaAudioTrack)?(yield t.upgradeCall(!0,!1),t.isMicrophoneMuted()):((n=t.localUsermediaFeed)==null||n.setAudioVideoMuted(e,null),t.updateMuteStatus(),yield t.sendMetadataUpdate(),t.isMicrophoneMuted()):t.isMicrophoneMuted()})()}isMicrophoneMuted(){return this.localUsermediaFeed?.isAudioMuted()??!1}isRemoteOnHold(){return this.remoteOnHold}setRemoteOnHold(e){if(this.isRemoteOnHold()!==e){this.remoteOnHold=e;for(var t of this.peerConn.getTransceivers())t.direction=e?`sendonly`:`sendrecv`;this.updateMuteStatus(),this.sendMetadataUpdate(),this.emit(K.RemoteHoldUnhold,this.remoteOnHold,this)}}isLocalOnHold(){if(this.state!==W.Connected)return!1;var e=!0;for(var t of this.peerConn.getTransceivers())[`inactive`,`recvonly`].includes(t.currentDirection)||(e=!1);return e}sendDtmfDigit(e){for(var t of this.peerConn.getSenders())if(t.track?.kind===`audio`&&t.dtmf){t.dtmf.insertDTMF(e);return}throw Error(`Unable to find a track to send DTMF on`)}updateMuteStatus(){var e=this.isMicrophoneMuted()||this.remoteOnHold,t=this.isLocalVideoMuted()||this.remoteOnHold;w.log(`Call ${this.callId} updateMuteStatus stream ${this.localUsermediaStream.id} micShouldBeMuted ${e} vidShouldBeMuted ${t}`),EM(this.localUsermediaStream.getAudioTracks(),!e),EM(this.localUsermediaStream.getVideoTracks(),!t)}sendMetadataUpdate(){var e=this;return C(function*(){yield e.sendVoipEvent(E.CallSDPStreamMetadataChanged,{[xj.name]:e.getLocalSDPStreamMetadata()})})()}gotCallFeedsForInvite(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.successor){this.successor.queueGotCallFeedsForAnswer(e);return}if(this.callHasEnded()){this.stopAllMedia();return}for(var n of e)this.pushLocalFeed(n);t&&this.peerConn.addTransceiver(`video`,{direction:`recvonly`}),this.state=W.CreateOffer,w.debug(`Call ${this.callId} gotUserMediaForInvite() run`)}sendAnswer(){var e=this;return C(function*(){var t={answer:{sdp:e.peerConn.localDescription.sdp,type:e.peerConn.localDescription.type},[xj.name]:e.getLocalSDPStreamMetadata(!0)};t.capabilities={"m.call.transferee":e.client.supportsCallTransfer,"m.call.dtmf":!1};var n=e.discardDuplicateCandidates();w.info(`Call ${e.callId} sendAnswer() discarding ${n} candidates that will be sent in answer`);try{yield e.sendVoipEvent(E.CallAnswer,t),e.inviteOrAnswerSent=!0}catch(t){e.state=W.Ringing,t instanceof I&&t.event&&e.client.cancelPendingEvent(t.event);var r=q.SendAnswer,i=`Failed to send answer`;throw t.name==`UnknownDeviceError`&&(r=q.UnknownDevices,i=`Unknown devices present in the room`),e.emit(K.Error,new xM(r,i,t),e),t}e.sendCandidateQueue()})()}queueGotCallFeedsForAnswer(e){this.responsePromiseChain?this.responsePromiseChain=this.responsePromiseChain.then(()=>this.gotCallFeedsForAnswer(e)):this.responsePromiseChain=this.gotCallFeedsForAnswer(e)}mungeSdp(e,t){var n=(0,lj.parse)(e.sdp);n.media.forEach(e=>{var n=new Map,r=new Map;for(var i of e.rtp)n.set(i.payload,i.codec),r.set(i.codec,i.payload);for(var a of t)if(a.mediaType===e.type){if(!r.has(a.codec)){w.info(`Call ${this.callId} mungeSdp() ignoring SDP modifications for ${a.codec} as it's not present.`);continue}var o=[];a.enableDtx!==void 0&&o.push(`usedtx=${a.enableDtx?`1`:`0`}`),a.maxAverageBitrate!==void 0&&o.push(`maxaveragebitrate=${a.maxAverageBitrate}`);var s=!1;for(var c of e.fmtp)n.get(c.payload)===a.codec&&(s=!0,c.config+=`;`+o.join(`;`));s||e.fmtp.push({payload:r.get(a.codec),config:o.join(`;`)})}}),e.sdp=(0,lj.write)(n)}createOffer(){var e=this;return C(function*(){var t=yield e.peerConn.createOffer();return e.mungeSdp(t,CM(e.isPtt)),t})()}createAnswer(){var e=this;return C(function*(){var t=yield e.peerConn.createAnswer();return e.mungeSdp(t,CM(e.isPtt)),t})()}gotCallFeedsForAnswer(e){var t=this;return C(function*(){if(!t.callHasEnded()){t.waitForLocalAVStream=!1;for(var n of e)t.pushLocalFeed(n);t.state=W.CreateAnswer;var r;try{t.getRidOfRTXCodecs(),r=yield t.createAnswer()}catch(e){w.debug(`Call ${t.callId} gotCallFeedsForAnswer() failed to create answer: `,e),t.terminate(G.Local,q.CreateAnswer,!0);return}try{if(yield t.peerConn.setLocalDescription(r),t.callHasEnded()||(t.state=W.Connecting,yield new Promise(e=>{setTimeout(e,200)}),t.callHasEnded()))return;t.sendAnswer()}catch(e){w.debug(`Call ${t.callId} gotCallFeedsForAnswer() error setting local description!`,e),t.terminate(G.Local,q.SetLocalDescription,!0);return}}})()}onRemoteIceCandidatesReceived(e){var t=this;return C(function*(){if(!t.callHasEnded()){var n=e.getContent(),r=n.candidates;if(!r){w.info(`Call ${t.callId} onRemoteIceCandidatesReceived() ignoring candidates event with no candidates!`);return}var i=n.version===0?null:n.party_id||null;if(t.opponentPartyId===void 0){if(i){w.info(`Call ${t.callId} onRemoteIceCandidatesReceived() buffering ${r.length} candidates until we pick an opponent`);var a=t.remoteCandidateBuffer.get(i)||[];a.push(...r),t.remoteCandidateBuffer.set(i,a)}return}if(!t.partyIdMatches(n)){w.info(`Call ${t.callId} onRemoteIceCandidatesReceived() ignoring candidates from party ID ${n.party_id}: we have chosen party ID ${t.opponentPartyId}`);return}yield t.addIceCandidates(r)}})()}onAnswerReceived(e){var t=this;return C(function*(){var n=e.getContent();if(w.debug(`Call ${t.callId} onAnswerReceived() running (hangupParty=${n.party_id})`),t.callHasEnded()){w.debug(`Call ${t.callId} onAnswerReceived() ignoring answer because call has ended`);return}if(t.opponentPartyId!==void 0){w.info(`Call ${t.callId} onAnswerReceived() ignoring answer from party ID ${n.party_id}: we already have an answer/reject from ${t.opponentPartyId}`);return}t.chooseOpponent(e),yield t.addBufferedIceCandidates(),t.state=W.Connecting;var r=xj.findIn(n);r?t.updateRemoteSDPStreamMetadata(r):w.warn(`Call ${t.callId} onAnswerReceived() did not get any SDPStreamMetadata! Can not send/receive multiple streams`);try{t.isSettingRemoteAnswerPending=!0,yield t.peerConn.setRemoteDescription(n.answer),t.isSettingRemoteAnswerPending=!1,w.debug(`Call ${t.callId} onAnswerReceived() set remote description: ${n.answer.type}`)}catch(e){t.isSettingRemoteAnswerPending=!1,w.debug(`Call ${t.callId} onAnswerReceived() failed to set remote description`,e),t.terminate(G.Local,q.SetRemoteDescription,!1);return}if(t.opponentPartyId!==null)try{yield t.sendVoipEvent(E.CallSelectAnswer,{selected_party_id:t.opponentPartyId})}catch(e){w.warn(`Call ${t.callId} onAnswerReceived() failed to send select_answer event`,e)}})()}onSelectAnswerReceived(e){var t=this;return C(function*(){if(t.direction!==mM.Inbound){w.warn(`Call ${t.callId} onSelectAnswerReceived() got select_answer for an outbound call: ignoring`);return}var n=e.getContent().selected_party_id;if(n==null){w.warn(`Call ${t.callId} onSelectAnswerReceived() got nonsensical select_answer with null/undefined selected_party_id: ignoring`);return}n!==t.ourPartyId&&(w.info(`Call ${t.callId} onSelectAnswerReceived() got select_answer for party ID ${n}: we are party ID ${t.ourPartyId}.`),yield t.terminate(G.Remote,q.AnsweredElsewhere,!0))})()}onNegotiateReceived(e){var t=this;return C(function*(){var n=e.getContent(),r=n.description;if(!r||!r.sdp||!r.type){w.info(`Call ${t.callId} onNegotiateReceived() ignoring invalid m.call.negotiate event`);return}var i=t.direction===mM.Inbound,a=!t.makingOffer&&(t.peerConn.signalingState===`stable`||t.isSettingRemoteAnswerPending),o=r.type===`offer`&&!a;if(t.ignoreOffer=!i&&o,t.ignoreOffer){w.info(`Call ${t.callId} onNegotiateReceived() ignoring colliding negotiate event because we're impolite`);return}var s=t.isLocalOnHold(),c=xj.findIn(n);c?t.updateRemoteSDPStreamMetadata(c):w.warn(`Call ${t.callId} onNegotiateReceived() received negotiation event without SDPStreamMetadata!`);try{if(t.isSettingRemoteAnswerPending=r.type==`answer`,yield t.peerConn.setRemoteDescription(r),t.isSettingRemoteAnswerPending=!1,w.debug(`Call ${t.callId} onNegotiateReceived() set remote description: ${r.type}`),r.type===`offer`){var l;try{t.getRidOfRTXCodecs(),l=yield t.createAnswer()}catch(e){w.debug(`Call ${t.callId} onNegotiateReceived() failed to create answer: `,e),t.terminate(G.Local,q.CreateAnswer,!0);return}yield t.peerConn.setLocalDescription(l),w.debug(`Call ${t.callId} onNegotiateReceived() create an answer`),t.sendVoipEvent(E.CallNegotiate,{lifetime:_M,description:t.peerConn.localDescription?.toJSON(),[xj.name]:t.getLocalSDPStreamMetadata(!0)})}}catch(e){t.isSettingRemoteAnswerPending=!1,w.warn(`Call ${t.callId} onNegotiateReceived() failed to complete negotiation`,e)}var u=t.isLocalOnHold();s!==u&&(t.emit(K.LocalHoldUnhold,u,t),t.emit(K.HoldUnhold,u))})()}updateRemoteSDPStreamMetadata(e){this.remoteSDPStreamMetadata=oD(this.remoteSDPStreamMetadata||{},e,!0);for(var t of this.getRemoteFeeds()){var n=t.stream.id,r=this.remoteSDPStreamMetadata[n];t.setAudioVideoMuted(r?.audio_muted,r?.video_muted),t.purpose=this.remoteSDPStreamMetadata[n]?.purpose}}onSDPStreamMetadataChangedReceived(e){var t=e.getContent(),n=xj.findIn(t);n&&this.updateRemoteSDPStreamMetadata(n)}onAssertedIdentityReceived(e){var t=this;return C(function*(){var n=e.getContent();n.asserted_identity&&(t.remoteAssertedIdentity={id:n.asserted_identity.id,displayName:n.asserted_identity.display_name},t.emit(K.AssertedIdentityChanged,t))})()}callHasEnded(){return this.state===W.Ended}queueGotLocalOffer(){this.responsePromiseChain?this.responsePromiseChain=this.responsePromiseChain.then(()=>this.wrappedGotLocalOffer()):this.responsePromiseChain=this.wrappedGotLocalOffer()}wrappedGotLocalOffer(){var e=this;return C(function*(){e.makingOffer=!0;try{yield e.gotLocalOffer()}catch(t){e.getLocalOfferFailed(t);return}finally{e.makingOffer=!1}})()}gotLocalOffer(){var e=this;return C(function*(){if(w.debug(`Call ${e.callId} gotLocalOffer() running`),e.callHasEnded()){w.debug(`Call ${e.callId} gotLocalOffer() ignoring newly created offer because the call has ended"`);return}var t;try{e.getRidOfRTXCodecs(),t=yield e.createOffer()}catch(t){w.debug(`Call ${e.callId} gotLocalOffer() failed to create offer: `,t),e.terminate(G.Local,q.CreateOffer,!0);return}try{yield e.peerConn.setLocalDescription(t)}catch(t){w.debug(`Call ${e.callId} gotLocalOffer() error setting local description!`,t),e.terminate(G.Local,q.SetLocalDescription,!0);return}if(e.peerConn.iceGatheringState===`gathering`&&(yield new Promise(e=>{setTimeout(e,200)})),!e.callHasEnded()){var n=e.state===W.CreateOffer?E.CallInvite:E.CallNegotiate,r={lifetime:_M};n===E.CallInvite&&e.invitee&&(r.invitee=e.invitee),e.state===W.CreateOffer?r.offer=e.peerConn.localDescription?.toJSON():r.description=e.peerConn.localDescription?.toJSON(),r.capabilities={"m.call.transferee":e.client.supportsCallTransfer,"m.call.dtmf":!1},r[xj.name]=e.getLocalSDPStreamMetadata(!0);var i=e.discardDuplicateCandidates();w.info(`Call ${e.callId} gotLocalOffer() discarding ${i} candidates that will be sent in offer`);try{yield e.sendVoipEvent(n,r)}catch(t){w.error(`Call ${e.callId} gotLocalOffer() failed to send invite`,t),t instanceof I&&t.event&&e.client.cancelPendingEvent(t.event);var a=q.SignallingFailed,o=`Signalling failed`;e.state===W.CreateOffer&&(a=q.SendInvite,o=`Failed to send invite`),t.name==`UnknownDeviceError`&&(a=q.UnknownDevices,o=`Unknown devices present in the room`),e.emit(K.Error,new xM(a,o,t),e),e.terminate(G.Local,a,!1);return}e.sendCandidateQueue(),e.state===W.CreateOffer&&(e.inviteOrAnswerSent=!0,e.state=W.InviteSent,e.inviteTimeout=setTimeout(()=>{e.inviteTimeout=void 0,e.state===W.InviteSent&&e.hangup(q.InviteTimeout,!1)},_M))}})()}getRidOfRTXCodecs(){if(!(!RTCRtpReceiver.getCapabilities||!RTCRtpSender.getCapabilities)){var e=this.transceivers.get(wM(V.Screenshare,`video`));if(!(!e||!e.setCodecPreferences)){var t=RTCRtpReceiver.getCapabilities(`video`).codecs,n=RTCRtpSender.getCapabilities(`video`).codecs,r=[];for(var i of[...t,...n])if(i.mimeType!==`video/rtx`){r.push(i);try{e.setCodecPreferences(r)}catch(e){w.info(`Working around buggy WebRTC impl: claimed to support codec but threw when setting codec preferences`,i,e),r.pop()}}}}}sendVoipEvent(e,t){var n=this;return C(function*(){var r=fM(fM({},t),{},{version:hM,call_id:n.callId,party_id:n.ourPartyId,conf_id:n.groupCallId});if(n.opponentDeviceId){var i=n.toDeviceSeq++,a=fM(fM({},r),{},{device_id:n.client.deviceId,sender_session_id:n.client.getSessionId(),dest_session_id:n.opponentSessionId,seq:i,[HD]:globalThis.crypto.randomUUID()});n.emit(K.SendVoipEvent,{type:`toDevice`,eventType:e,userId:n.invitee||n.getOpponentMember()?.userId,opponentDeviceId:n.opponentDeviceId,content:a},n);var o=n.invitee||n.getOpponentMember().userId;if(n.client.getUseE2eForGroupCall()){if(!n.hasOpponentDeviceInfo){w.warn(`Call ${n.callId} sendVoipEvent() failed: we do not have opponentDeviceInfo`);return}throw Error(`Unimplemented`)}else yield n.client.sendToDevice(e,new Map([[o,new Map([[n.opponentDeviceId,a]])]]))}else n.emit(K.SendVoipEvent,{type:`sendEvent`,eventType:e,roomId:n.roomId,content:r,userId:n.invitee||n.getOpponentMember()?.userId},n),yield n.client.sendEvent(n.roomId,e,r)})()}queueCandidate(e){if(e?this.candidateSendQueue.push(e):this.candidatesEnded=!0,!(this.state===W.Ringing||!this.inviteOrAnswerSent)){var t=this.direction===mM.Inbound?500:2e3;this.candidateSendTries===0&&setTimeout(()=>{this.sendCandidateQueue()},t)}}discardDuplicateCandidates(){for(var e=0,t=[],n=0;ne.toJSON())};e.candidatesEnded&&n.candidates.push({candidate:``}),w.debug(`Call ${e.callId} sendCandidateQueue() attempting to send ${t.length} candidates`);try{yield e.sendVoipEvent(E.CallCandidates,n),e.candidateSendTries=0,e.sendCandidateQueue()}catch(n){if(n instanceof I&&n.event&&e.client.cancelPendingEvent(n.event),e.candidateSendQueue.push(...t),e.candidateSendTries>5){w.debug(`Call ${e.callId} sendCandidateQueue() failed to send candidates on attempt ${e.candidateSendTries}. Giving up on this call.`,n);var r=q.SignallingFailed;e.emit(K.Error,new xM(r,`Signalling failed`,n),e),e.hangup(r,!1);return}var i=500*2**e.candidateSendTries;++e.candidateSendTries,w.debug(`Call ${e.callId} sendCandidateQueue() failed to send candidates. Retrying in ${i}ms`,n),setTimeout(()=>{e.sendCandidateQueue()},i)}}})()}placeCall(e,t){var n=this;return C(function*(){if(!e)throw Error(`You CANNOT start a call without audio`);n.state=W.WaitLocalMedia;var r;try{var i=yield n.client.getMediaHandler().getUserMediaStream(e,t);EM(i.getAudioTracks(),!0),EM(i.getVideoTracks(),!0),r=new kj({client:n.client,roomId:n.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId()??void 0,stream:i,purpose:V.Usermedia,audioMuted:!1,videoMuted:!1})}catch(e){n.getUserMediaFailed(e);return}try{yield n.placeCallWithCallFeeds([r])}catch(e){n.placeCallFailed(e);return}})()}placeCallWithCallFeeds(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1;n.checkForErrorListener(),n.direction=mM.Outbound,yield n.initOpponentCrypto(),n.client.callEventHandler.calls.set(n.callId,n),(yield n.client.checkTurnServers())||w.warn(`Call ${n.callId} placeCallWithCallFeeds() failed to get TURN credentials! Proceeding with call anyway...`),n.peerConn=n.createPeerConnection(),n.emit(K.PeerConnectionCreated,n.peerConn,n),n.gotCallFeedsForInvite(e,r)})()}createPeerConnection(){var e,t=new window.RTCPeerConnection({iceTransportPolicy:this.forceTURN?`relay`:void 0,iceServers:this.turnServers.length?this.turnServers:void 0,iceCandidatePoolSize:this.client.iceCandidatePoolSize,bundlePolicy:`max-bundle`});t.addEventListener(`iceconnectionstatechange`,this.onIceConnectionStateChanged),t.addEventListener(`signalingstatechange`,this.onSignallingStateChanged),t.addEventListener(`icecandidate`,this.gotLocalIceCandidate),t.addEventListener(`icegatheringstatechange`,this.onIceGatheringStateChange),t.addEventListener(`track`,this.onTrack),t.addEventListener(`negotiationneeded`,this.onNegotiationNeeded),t.addEventListener(`datachannel`,this.onDataChannel);var n=this.getOpponentMember(),r=n?n.userId:`unknown`;return(e=this.stats)==null||e.addStatsReportGatherer(this.callId,r,t),t}partyIdMatches(e){return(e.version===0?null:e.party_id||null)===this.opponentPartyId}chooseOpponent(e){var t=e.getContent();if(w.debug(`Call ${this.callId} chooseOpponent() running (partyId=${t.party_id})`),this.opponentVersion=t.version,this.opponentVersion===0?this.opponentPartyId=null:this.opponentPartyId=t.party_id||null,this.opponentCaps=t.capabilities||{},this.opponentMember=this.client.getRoom(this.roomId).getMember(e.getSender())??void 0,this.opponentMember){var n;(n=this.stats)==null||n.updateOpponentMember(this.callId,this.opponentMember.userId)}}addBufferedIceCandidates(){var e=this;return C(function*(){var t=e.remoteCandidateBuffer.get(e.opponentPartyId);t&&(w.info(`Call ${e.callId} addBufferedIceCandidates() adding ${t.length} buffered candidates for opponent ${e.opponentPartyId}`),yield e.addIceCandidates(t)),e.remoteCandidateBuffer.clear()})()}addIceCandidates(e){var t=this;return C(function*(){for(var n of e){(n.sdpMid===null||n.sdpMid===void 0)&&(n.sdpMLineIndex===null||n.sdpMLineIndex===void 0)?w.debug(`Call ${t.callId} addIceCandidates() got remote ICE end-of-candidates`):w.debug(`Call ${t.callId} addIceCandidates() got remote ICE candidate (sdpMid=${n.sdpMid}, candidate=${n.candidate})`);try{yield t.peerConn.addIceCandidate(n)}catch(e){t.ignoreOffer?w.debug(`Call ${t.callId} addIceCandidates() failed to add remote ICE candidate because ignoring offer`,e):w.info(`Call ${t.callId} addIceCandidates() failed to add remote ICE candidate`,e)}}})()}get hasPeerConnection(){return!!this.peerConn}initStats(e){arguments.length>1&&arguments[1]!==void 0&&arguments[1],this.stats=e,this.stats.start()}};function EM(e,t){for(var n of e)n.enabled=t}function DM(){if(typeof window>`u`||typeof document>`u`)return!1;try{if(!(window.RTCPeerConnection??window.RTCSessionDescription??window.RTCIceCandidate??navigator.mediaDevices))return w.error(`WebRTC is not supported in this browser / environment`),!1}catch(e){return w.error(`Exception thrown when trying to access WebRTC`,e),!1}return!0}function OM(e,t,n){if(!DM())return null;var r=n?n.forceTURN:!1,i=new TM({client:e,roomId:t,invitee:n?.invitee,turnServers:e.getTurnServers(),forceTURN:e.forceTURN||r,opponentDeviceId:n?.opponentDeviceId,opponentSessionId:n?.opponentSessionId,groupCallId:n?.groupCallId});return e.reEmitter.reEmit(i,Object.values(K)),i}var kM=function(e){return e.DontNotify=`dont_notify`,e.Notify=`notify`,e.Coalesce=`coalesce`,e}({}),AM=function(e){return e.Highlight=`highlight`,e.Sound=`sound`,e}({}),jM=function(e){return e.EventMatch=`event_match`,e.EventPropertyIs=`event_property_is`,e.EventPropertyContains=`event_property_contains`,e.ContainsDisplayName=`contains_display_name`,e.RoomMemberCount=`room_member_count`,e.SenderNotificationPermission=`sender_notification_permission`,e.CallStarted=`call_started`,e.CallStartedPrefix=`org.matrix.msc3914.call_started`,e}({}),MM=function(e){return e.Override=`override`,e.ContentSpecific=`content`,e.RoomSpecific=`room`,e.SenderSpecific=`sender`,e.Underride=`underride`,e}({}),NM=function(e){return e.Master=`.m.rule.master`,e.IsUserMention=`.m.rule.is_user_mention`,e.IsRoomMention=`.m.rule.is_room_mention`,e.ContainsDisplayName=`.m.rule.contains_display_name`,e.ContainsUserName=`.m.rule.contains_user_name`,e.AtRoomNotification=`.m.rule.roomnotif`,e.DM=`.m.rule.room_one_to_one`,e.EncryptedDM=`.m.rule.encrypted_room_one_to_one`,e.Message=`.m.rule.message`,e.EncryptedMessage=`.m.rule.encrypted`,e.InviteToSelf=`.m.rule.invite_for_me`,e.MemberEvent=`.m.rule.member_event`,e.IncomingCall=`.m.rule.call`,e.SuppressNotices=`.m.rule.suppress_notices`,e.Tombstone=`.m.rule.tombstone`,e.PollStart=`.m.rule.poll_start`,e.PollStartUnstable=`.org.matrix.msc3930.rule.poll_start`,e.PollEnd=`.m.rule.poll_end`,e.PollEndUnstable=`.org.matrix.msc3930.rule.poll_end`,e.PollStartOneToOne=`.m.rule.poll_start_one_to_one`,e.PollStartOneToOneUnstable=`.org.matrix.msc3930.rule.poll_start_one_to_one`,e.PollEndOneToOne=`.m.rule.poll_end_one_to_one`,e.PollEndOneToOneUnstable=`.org.matrix.msc3930.rule.poll_end_one_to_one`,e}({});function PM(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FM(e){for(var t=1;te.default),o=n.filter(e=>!e.default);function s(n){n===RM?l.push(...o):n in r?(e.warn(`Adding default global ${t} push rule ${n}`),l.push(r[n])):e.warn(`Missing default global ${t} push rule ${n}`)}var c=0,l=[];for(var u of a){var d=i.indexOf(u.rule_id);if(d===-1){l.push(u);continue}for(;d>c;){var f=i[c];s(f),c+=1}l.push(u),c+=1}for(var p of i.slice(c))s(p);return l}var UM=class e{constructor(e){this.client=e,h(this,`parsedKeys`,new Map)}static actionListToActionsObject(e){var t={notify:!1,tweaks:{}};for(var n of e)n===kM.Notify?t.notify=!0:typeof n==`object`&&(n.value===void 0&&(n.value=!0),t.tweaks[n.set_tweak]=n.value);return t}static rewriteDefaultRules(e,t){arguments.length>2&&arguments[2]!==void 0&&arguments[2];var n=JSON.parse(JSON.stringify(t));return n||={},n.global||={},n.global.override||(n.global.override=[]),n.global.underride||(n.global.underride=[]),n.global.override=HM(e,MM.Override,n.global.override,LM,zM),n.global.underride=HM(e,MM.Underride,n.global.underride,BM,VM),n}static getPushRuleGlobRegex(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`i`,i=x(n?[`(?<=^|\\W)`,`(?=\\W|$)`]:[`^`,`$`],2),a=i[0],o=i[1],s=`${n}-${r}-${t}`;return e.cachedGlobToRegex[s]||(e.cachedGlobToRegex[s]=RegExp(a+`(`+VE(t)+`)`+o,r)),e.cachedGlobToRegex[s]}updateCachedPushRuleKeys(t){t||={},t.global||={},t.global.override||(t.global.override=[]),t.global.room||(t.global.room=[]),t.global.sender||(t.global.sender=[]),t.global.underride||(t.global.underride=[]);var n=new Set(this.parsedKeys.keys());for(var r of[t.global.override,t.global.room,t.global.sender,t.global.underride])for(var i of r)if(i.conditions)for(var a of i.conditions)a.kind===jM.EventMatch&&(n.delete(a.key),this.parsedKeys.set(a.key,e.partsForDottedKey(a.key)));n.forEach(e=>this.parsedKeys.delete(e))}matchingRuleFromKindSet(e,t){for(var n of IM){var r=t[n];if(r){for(var i of r)if(i.enabled){var a=this.templateRuleToRaw(n,i);if(a&&this.ruleMatchesEvent(a,e))return FM(FM({},i),{},{kind:n})}}}return null}templateRuleToRaw(e,t){var n={rule_id:t.rule_id,actions:t.actions,conditions:[]};switch(e){case MM.Underride:case MM.Override:n.conditions=t.conditions;break;case MM.RoomSpecific:if(!t.rule_id)return null;n.conditions.push({kind:jM.EventMatch,key:`room_id`,value:t.rule_id});break;case MM.SenderSpecific:if(!t.rule_id)return null;n.conditions.push({kind:jM.EventMatch,key:`user_id`,value:t.rule_id});break;case MM.ContentSpecific:if(!t.pattern)return null;n.conditions.push({kind:jM.EventMatch,key:`content.body`,pattern:t.pattern});break}return n}eventFulfillsCondition(e,t){switch(e.kind){case jM.EventMatch:return this.eventFulfillsEventMatchCondition(e,t);case jM.EventPropertyIs:return this.eventFulfillsEventPropertyIsCondition(e,t);case jM.EventPropertyContains:return this.eventFulfillsEventPropertyContains(e,t);case jM.ContainsDisplayName:return this.eventFulfillsDisplayNameCondition(e,t);case jM.RoomMemberCount:return this.eventFulfillsRoomMemberCountCondition(e,t);case jM.SenderNotificationPermission:return this.eventFulfillsSenderNotifPermCondition(e,t);case jM.CallStarted:case jM.CallStartedPrefix:return this.eventFulfillsCallStartedCondition(e,t)}return!1}eventFulfillsSenderNotifPermCondition(e,t){var n=e.key;if(!n)return!1;var r=this.client.getRoom(t.getRoomId());return r!=null&&r.currentState?r.currentState.mayTriggerNotifOfType(n,t.getSender()):!1}eventFulfillsRoomMemberCountCondition(e,t){if(!e.is)return!1;var n=this.client.getRoom(t.getRoomId());if(!n||!n.currentState||!n.currentState.members)return!1;var r=n.currentState.getJoinedMemberCount(),i=e.is.match(/^([=<>]*)(\d*)$/);if(!i)return!1;var a=i[1],o=parseInt(i[2]);if(isNaN(o))return!1;switch(a){case``:case`==`:return r==o;case`<`:return r`:return r>o;case`<=`:return r<=o;case`>=`:return r>=o;default:return!1}}eventFulfillsDisplayNameCondition(e,t){var n,r=t.getContent();if(t.isEncrypted()&&t.getClearContent()&&(r=t.getClearContent()),!r||!r.body||typeof r.body!=`string`)return!1;var i=this.client.getRoom(t.getRoomId()),a=i==null||(n=i.currentState)==null?void 0:n.getMember(this.client.credentials.userId);if(!a)return!1;var o=a.name,s=RegExp(`(^|\\W)`+BE(o)+`(\\W|$)`,`i`);return r.body.search(s)>-1}eventFulfillsEventMatchCondition(t,n){if(!t.key)return!1;var r=this.valueForDottedKey(t.key,n);if(typeof r!=`string`)return!1;if(t.value)return t.value===r;if(typeof t.pattern!=`string`)return!1;var i=e.getPushRuleGlobRegex(t.pattern,t.key===`content.body`);return!!r.match(i)}eventFulfillsEventPropertyIsCondition(e,t){return!e.key||e.value===void 0?!1:e.value===this.valueForDottedKey(e.key,t)}eventFulfillsEventPropertyContains(e,t){if(!e.key||e.value===void 0)return!1;var n=this.valueForDottedKey(e.key,t);return Array.isArray(n)?n.includes(e.value):!1}eventFulfillsCallStartedCondition(e,t){return[`m.ring`,`m.prompt`].includes(t.getContent()[`m.intent`])&&!(`m.terminated`in t.getContent())&&(t.getPrevContent()[`m.terminated`]!==t.getContent()[`m.terminated`]||NE(t.getPrevContent(),{}))}static partsForDottedKey(e){var t=[],n=``,r=!1;for(var i of e){if(r){i===`\\`||i===`.`?n+=i:n+=`\\`+i,r=!1;continue}i==`.`?(t.push(n),n=``):i==`\\`?r=!0:n+=i}return r&&(n+=`\\`),t.push(n),t}valueForDottedKey(t,n){var r=this.parsedKeys.get(t);r===void 0&&(r=e.partsForDottedKey(t),this.parsedKeys.set(t,r));var i,a=r[0],o=0;for(a===`content`?(i=n.getContent(),++o):a===`type`?(i=n.getType(),++o):i=n.event;o!this.eventFulfillsCondition(e,t)))}actionsForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules).actions||{}}actionsAndRuleForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules)}getPushRuleById(e){return this.getPushRuleAndKindById(e)?.rule??null}getPushRuleAndKindById(e){for(var t of[`global`])if(this.client.pushRules?.[t]!==void 0){for(var n of IM)if(this.client.pushRules[t][n]!==void 0){for(var r of this.client.pushRules[t][n])if(r.rule_id===e)return{rule:r,kind:n}}}return null}};h(UM,`cachedGlobToRegex`,{});var WM=[`v1.1`,`v1.2`,`v1.3`,`v1.4`,`v1.5`,`v1.6`,`v1.7`,`v1.8`,`v1.9`,`v1.10`,`v1.11`,`v1.12`,`v1.13`];WM[0],WM[WM.length-1];var GM=function(e){return e.SUCCESS=`SUCCESS`,e.IGNORE=`IGNORE`,e.PROMPT=`PROMPT`,e.FAIL_PROMPT=`FAIL_PROMPT`,e.FAIL_ERROR=`FAIL_ERROR`,e}({}),KM=function(e){return e.Invalid=`Invalid homeserver discovery response`,e.GenericFailure=`Failed to get autodiscovery configuration from server`,e.InvalidHsBaseUrl=`Invalid base_url for m.homeserver`,e.InvalidHomeserver=`Homeserver URL does not appear to be a valid Matrix homeserver`,e.InvalidIsBaseUrl=`Invalid base_url for m.identity_server`,e.InvalidIdentityServer=`Identity server URL does not appear to be a valid identity server`,e.InvalidIs=`Invalid identity server discovery response`,e.MissingWellknown=`No .well-known JSON file found`,e.InvalidJson=`Invalid JSON`,e.UnsupportedHomeserverSpecVersion=`The homeserver does not meet the version requirements`,e}({}),qM=class e{static fromDiscoveryConfig(t){var n=this;return C(function*(){var r={"m.homeserver":{state:e.FAIL_ERROR,error:e.ERROR_INVALID,base_url:null},"m.identity_server":{state:e.PROMPT,error:null,base_url:null}};if(!(t!=null&&t[`m.homeserver`]))return w.error(`No m.homeserver key in config`),r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID,Promise.resolve(r);if(!t[`m.homeserver`].base_url)return w.error(`No m.homeserver base_url in config`),r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID_HS_BASE_URL,Promise.resolve(r);var i=n.sanitizeWellKnownUrl(t[`m.homeserver`].base_url);if(!i)return w.error(`Invalid base_url for m.homeserver`),r[`m.homeserver`].error=e.ERROR_INVALID_HS_BASE_URL,Promise.resolve(r);var a=yield n.fetchWellKnownObject(`${i}/_matrix/client/versions`);if(!a||!Array.isArray(a.raw?.versions))return w.error(`Invalid /versions response`),r[`m.homeserver`].error=e.ERROR_INVALID_HOMESERVER,r[`m.homeserver`].base_url=i,Promise.resolve(r);var o=new Set(a.raw.versions),s=!1;for(var c of WM)if(o.has(c)){s=!0;break}if(!s)return w.error(`Homeserver does not meet version requirements`),r[`m.homeserver`].error=e.ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION,r[`m.homeserver`].base_url=i,Promise.resolve(r);r[`m.homeserver`]={state:e.SUCCESS,error:null,base_url:i};var l=``;if(t[`m.identity_server`]){var u={"m.homeserver":r[`m.homeserver`],"m.identity_server":{state:e.FAIL_PROMPT,error:e.ERROR_INVALID_IS,base_url:null}};if(l=n.sanitizeWellKnownUrl(t[`m.identity_server`].base_url),!l)return w.error(`Invalid base_url for m.identity_server`),u[`m.identity_server`].error=e.ERROR_INVALID_IS_BASE_URL,Promise.resolve(u);var d=yield n.fetchWellKnownObject(`${l}/_matrix/identity/v2`);if(!(d!=null&&d.raw)||d.action!==GM.SUCCESS)return w.error(`Invalid /v2 response`),u[`m.identity_server`].error=e.ERROR_INVALID_IDENTITY_SERVER,u[`m.identity_server`].base_url=l,Promise.resolve(u)}return l&&l.toString().length>0&&(r[`m.identity_server`]={state:e.SUCCESS,error:null,base_url:l}),Object.keys(t).forEach(e=>{if(e===`m.homeserver`||e===`m.identity_server`){var n=[`error`,`state`,`base_url`];for(var i of Object.keys(t[e]))n.includes(i)||(r[e][i]=t[e][i])}else r[e]=t[e]}),Promise.resolve(r)})()}static findClientConfig(t){var n=this;return C(function*(){if(!t||typeof t!=`string`||t.length===0)throw Error(`'domain' must be a string of non-zero length`);var r={"m.homeserver":{state:e.FAIL_ERROR,error:e.ERROR_INVALID,base_url:null},"m.identity_server":{state:e.PROMPT,error:null,base_url:null}},i=t.includes(`://`)?t:`https://${t}`,a=yield n.fetchWellKnownObject(`${i}/.well-known/matrix/client`);return!a||a.action!==GM.SUCCESS?(w.error(`No response or error when parsing .well-known`),a.reason&&w.error(a.reason),a.action===GM.IGNORE?r[`m.homeserver`]={state:e.PROMPT,error:null,base_url:null}:(r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID),Promise.resolve(r)):e.fromDiscoveryConfig(a.raw)})()}static getRawClientConfig(e){var t=this;return C(function*(){if(!e||typeof e!=`string`||e.length===0)throw Error(`'domain' must be a string of non-zero length`);var n=yield t.fetchWellKnownObject(`https://${e}/.well-known/matrix/client`);return n?n.raw??{}:{}})()}static sanitizeWellKnownUrl(e){if(!e)return!1;try{var t,n;try{n=new URL(e)}catch(e){w.error(`Could not parse url`,e)}if(!((t=n)!=null&&t.hostname)||n.protocol!==`http:`&&n.protocol!==`https:`)return!1;var r=n.port?`:${n.port}`:``,i=n.pathname?n.pathname:``,a=`${n.protocol}//${n.hostname}${r}${i}`;return a.endsWith(`/`)&&(a=a.substring(0,a.length-1)),a}catch(e){return w.error(e),!1}}static fetch(e,t){return this.fetchFn?this.fetchFn(e,t):globalThis.fetch(e,t)}static setFetchFn(t){e.fetchFn=t}static fetchWellKnownObject(t){return C(function*(){var n;try{if(n=yield e.fetch(t,{method:F.Get,signal:Qk(5e3)}),n.status===404)return{raw:{},action:GM.IGNORE,reason:e.ERROR_MISSING_WELLKNOWN};if(n.status!==200)return{raw:{},action:GM.FAIL_PROMPT,reason:`General failure`}}catch(e){var r=e,i=``;return typeof r==`object`&&(i=r?.message),{error:r,raw:{},action:GM.FAIL_PROMPT,reason:i||`General failure`}}try{return{raw:yield n.json(),action:GM.SUCCESS}}catch(t){var a=t;return{error:a,raw:{},action:GM.FAIL_PROMPT,reason:a?.name===`SyntaxError`?e.ERROR_INVALID_JSON:e.ERROR_INVALID}}})()}};h(qM,`ERROR_INVALID`,KM.Invalid),h(qM,`ERROR_GENERIC_FAILURE`,KM.GenericFailure),h(qM,`ERROR_INVALID_HS_BASE_URL`,KM.InvalidHsBaseUrl),h(qM,`ERROR_INVALID_HOMESERVER`,KM.InvalidHomeserver),h(qM,`ERROR_INVALID_IS_BASE_URL`,KM.InvalidIsBaseUrl),h(qM,`ERROR_INVALID_IDENTITY_SERVER`,KM.InvalidIdentityServer),h(qM,`ERROR_INVALID_IS`,KM.InvalidIs),h(qM,`ERROR_MISSING_WELLKNOWN`,KM.MissingWellknown),h(qM,`ERROR_INVALID_JSON`,KM.InvalidJson),h(qM,`ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION`,KM.UnsupportedHomeserverSpecVersion),h(qM,`ALL_ERRORS`,Object.keys(KM)),h(qM,`FAIL_ERROR`,GM.FAIL_ERROR),h(qM,`FAIL_PROMPT`,GM.FAIL_PROMPT),h(qM,`PROMPT`,GM.PROMPT),h(qM,`SUCCESS`,GM.SUCCESS),h(qM,`fetchFn`,void 0);var JM=function(e){return e.IS=`SERVICE_TYPE_IS`,e.IM=`SERVICE_TYPE_IM`,e}({}),YM=class{constructor(e){this.ourEvent=e,h(this,`timeline`,void 0),h(this,`ourEventIndex`,0),h(this,`paginateTokens`,{[M.Backward]:null,[M.Forward]:null}),this.timeline=[e]}getEvent(){return this.timeline[this.ourEventIndex]}getTimeline(){return this.timeline}getOurEventIndex(){return this.ourEventIndex}getPaginateToken(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return this.paginateTokens[e?M.Backward:M.Forward]}setPaginateToken(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.paginateTokens[t?M.Backward:M.Forward]=e??null}addEvents(e){arguments.length>1&&arguments[1]!==void 0&&arguments[1]?(this.timeline=e.concat(this.timeline),this.ourEventIndex+=e.length):this.timeline=this.timeline.concat(e)}},XM=class e{static fromJson(t,n){var r=t.context||{},i=(r.events_before||[]).map(n),a=(r.events_after||[]).map(n),o=new YM(n(t.result)),s=o.ourEvent.threadRootId;return i=i.filter(e=>e.threadRootId===s),a=a.filter(e=>e.threadRootId===s),o.setPaginateToken(r.start,!0),o.addEvents(i,!0),o.addEvents(a,!1),o.setPaginateToken(r.end,!1),new e(t.rank,o)}constructor(e,t){this.rank=e,this.context=t}};function ZM(e){return`parent_delay_id`in e&&typeof e.parent_delay_id!=`string`?!1:`delay`in e&&typeof e.delay!=`number`?!0:`delay`in e||`parent_delay_id`in e}var QM=function(e){return e.Cancel=`cancel`,e.Restart=`restart`,e.Send=`send`,e}({});function $M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function eN(e){for(var t=1;te.replacingEventId()===a.getId()),i){var o=e.directory.getFile(i.getId());if(o)t.push(o),a=i;else break}while(i);return t})()}};function aN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oN(e){for(var t=1;t{var t;return!((t=e.getContent())!=null&&t.via)}):!0}setName(e){var t=this;return C(function*(){yield t.client.sendStateEvent(t.roomId,E.RoomName,{name:e},``)})()}invite(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!0,i=[n.retryInvite(e)];r&&i.push(...n.getDirectories().map(t=>t.invite(e,r))),yield Promise.all(i)})()}retryInvite(e){var t=this;return C(function*(){yield ZE(()=>t.client.invite(t.roomId,e),e=>!(e instanceof I&&e.errcode===`M_FORBIDDEN`))})()}setPermissions(e,t){var n=this;return C(function*(){var r=n.room.currentState.getStateEvents(E.RoomPowerLevels,``);if(Array.isArray(r))throw Error(`Unexpected return type for power levels`);var i=r?.getContent()||{},a=i.users_default||0,o=i.events_default||50,s=i.events?.[E.RoomPowerLevels]||100,c=i.users||{};switch(t){case cN.Viewer:c[e]=a;break;case cN.Editor:c[e]=o;break;case cN.Owner:c[e]=s;break;default:throw Error(`Invalid role: `+t)}i.users=c,yield n.client.sendStateEvent(n.roomId,E.RoomPowerLevels,i,``)})()}getPermissions(e){var t=this.room.currentState.getStateEvents(E.RoomPowerLevels,``);if(Array.isArray(t))throw Error(`Unexpected return type for power levels`);var n=t?.getContent()||{},r=n.users_default||0,i=n.events_default||50,a=n.events?.[E.RoomPowerLevels]||100,o=n.users?.[e]||r;return o>=a?cN.Owner:o>=i?cN.Editor:cN.Viewer}createDirectory(e){var t=this;return C(function*(){var n=yield t.client.unstableCreateFileTree(e);return yield t.client.sendStateEvent(t.roomId,E.SpaceChild,{via:[t.client.getDomain()]},n.roomId),yield t.client.sendStateEvent(n.roomId,E.SpaceParent,{via:[t.client.getDomain()]},t.roomId),n})()}getDirectories(){var e=[];for(var t of this.room.currentState.getStateEvents(E.SpaceChild))try{var n=t.getStateKey();if(n){var r=this.client.unstableGetFileTreeSpace(n);r&&e.push(r)}}catch(e){w.warn(`Unable to create tree space instance for listing. Are we joined?`,e)}return e}getDirectory(e){return this.getDirectories().find(t=>t.roomId===e)}delete(){var e=this;return C(function*(){for(var t of e.getDirectories())yield t.delete();var n=[k.Invite,k.Knock,k.Join];for(var r of e.room.currentState.getStateEvents(E.RoomMember))if(r.getStateKey()!==e.client.getUserId()&&n.includes(r.getContent().membership)){var i=r.getStateKey();if(!i)throw Error(`State key not found for branch`);yield e.client.kick(e.roomId,i,`Room deleted`)}yield e.client.leave(e.roomId)})()}getOrderedChildren(e){var t=e.map(e=>({roomId:e.getStateKey(),order:e.getContent().order})).filter(e=>e.roomId);return t.sort((e,t)=>{if(e.order&&!t.order)return-1;if(!e.order&&t.order)return 1;if(!e.order&&!t.order){var n=this.client.getRoom(e.roomId),r=this.client.getRoom(t.roomId);if(!n||!r)return aD(e.roomId,t.roomId);var i=n.currentState.getStateEvents(E.RoomCreate,``)?.getTs()??0,a=r.currentState.getStateEvents(E.RoomCreate,``)?.getTs()??0;return i===a?aD(e.roomId,t.roomId):i-a}else return aD(e.order,t.order)}),t}getParentRoom(){var e=this.room.currentState.getStateEvents(E.SpaceParent)[0];if(!e)throw Error(`Expected to have a parent in a non-top level space`);var t=e.getStateKey();if(!t)throw Error(`No state key found for parent`);var n=this.client.getRoom(t);if(!n)throw Error(`Unable to locate room for parent`);return n}getOrder(){if(this.isTopLevel)return-1;var e=this.getParentRoom().currentState.getStateEvents(E.SpaceChild);return this.getOrderedChildren(e).findIndex(e=>e.roomId===this.roomId)}setOrder(e){var t=this;return C(function*(){if(t.isTopLevel)throw Error(`Cannot set order of top level spaces currently`);var n=t.getParentRoom(),r=n.currentState.getStateEvents(E.SpaceChild),i=t.getOrderedChildren(r);e=Math.max(Math.min(e,i.length-1),0);var a=t.getOrder()e.isActive)}listAllFiles(){return(this.room.currentState.getStateEvents(qD.name)??[]).map(e=>new iN(this.client,e,this))}},uN=function(e){return e.Recent=`recent`,e.Rank=`rank`,e}({}),dN=function(e){return e.LocalStreamsChanged=`local_streams_changed`,e}({}),fN=class extends O{constructor(e){super(),this.client=e,h(this,`audioInput`,void 0),h(this,`audioSettings`,void 0),h(this,`videoInput`,void 0),h(this,`localUserMediaStream`,void 0),h(this,`userMediaStreams`,[]),h(this,`screensharingStreams`,[]),h(this,`getMediaStreamPromise`,void 0)}restoreMediaSettings(e,t){this.audioInput=e,this.videoInput=t}setAudioInput(e){var t=this;return C(function*(){w.info(`MediaHandler setAudioInput() running (deviceId=${e})`),t.audioInput!==e&&(t.audioInput=e,yield t.updateLocalUsermediaStreams())})()}setAudioSettings(e){var t=this;return C(function*(){w.info(`MediaHandler setAudioSettings() running (opts=${JSON.stringify(e)})`),t.audioSettings=Object.assign({},e),yield t.updateLocalUsermediaStreams()})()}setVideoInput(e){var t=this;return C(function*(){w.info(`MediaHandler setVideoInput() running (deviceId=${e})`),t.videoInput!==e&&(t.videoInput=e,yield t.updateLocalUsermediaStreams())})()}setMediaInputs(e,t){var n=this;return C(function*(){w.log(`MediaHandler setMediaInputs() running (audioInput: ${e} videoInput: ${t})`),n.audioInput=e,n.videoInput=t,yield n.updateLocalUsermediaStreams()})()}updateLocalUsermediaStreams(){var e=this;return C(function*(){if(e.userMediaStreams.length!==0){var t=new Map;for(var n of e.client.callEventHandler.calls.values())t.set(n.callId,{audio:n.hasLocalUserMediaAudioTrack,video:n.hasLocalUserMediaVideoTrack});for(var r of e.userMediaStreams){w.log(`MediaHandler updateLocalUsermediaStreams() stopping all tracks (streamId=${r.id})`);for(var i of r.getTracks())i.stop()}e.userMediaStreams=[],e.localUserMediaStream=void 0;for(var a of e.client.callEventHandler.calls.values())if(!(a.callHasEnded()||!t.has(a.callId))){var o=t.get(a.callId),s=o.audio,c=o.video;w.log(`MediaHandler updateLocalUsermediaStreams() calling getUserMediaStream() (callId=${a.callId})`);var l=yield e.getUserMediaStream(s,c);a.callHasEnded()||(yield a.updateLocalUsermediaStream(l))}for(var u of e.client.groupCallEventHandler.groupCalls.values())if(u.localCallFeed){w.log(`MediaHandler updateLocalUsermediaStreams() calling getUserMediaStream() (groupCallId=${u.groupCallId})`);var d=yield e.getUserMediaStream(!0,u.type===nM.Video);u.state!==U.Ended&&(yield u.updateLocalUsermediaStream(d))}e.emit(dN.LocalStreamsChanged)}})()}hasAudioDevice(){return C(function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`).length>0}catch(e){return w.log(`MediaHandler hasAudioDevice() calling navigator.mediaDevices.enumerateDevices with error`,e),!1}})()}hasVideoDevice(){return C(function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`videoinput`).length>0}catch(e){return w.log(`MediaHandler hasVideoDevice() calling navigator.mediaDevices.enumerateDevices with error`,e),!1}})()}getUserMediaStream(e,t){var n=arguments,r=this;return C(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:!0;return r.getMediaStreamPromise?r.getMediaStreamPromise=r.getMediaStreamPromise.then(()=>r.getUserMediaStreamInternal(e,t,i)):r.getMediaStreamPromise=r.getUserMediaStreamInternal(e,t,i),r.getMediaStreamPromise})()}getUserMediaStreamInternal(e,t,n){var r=this;return C(function*(){var i=e&&(yield r.hasAudioDevice()),a=t&&(yield r.hasVideoDevice()),o,s=!0;if(r.localUserMediaStream){var c,l;i!==r.localUserMediaStream.getAudioTracks().length>0&&(s=!1),a!==r.localUserMediaStream.getVideoTracks().length>0&&(s=!1),i&&((c=r.localUserMediaStream.getAudioTracks()[0])==null||(c=c.getSettings())==null?void 0:c.deviceId)!==r.audioInput&&(s=!1),a&&((l=r.localUserMediaStream.getVideoTracks()[0])==null||(l=l.getSettings())==null?void 0:l.deviceId)!==r.videoInput&&(s=!1)}else s=!1;if(s){if(o=r.localUserMediaStream.clone(),w.log(`MediaHandler getUserMediaStreamInternal() cloning (oldStreamId=${r.localUserMediaStream?.id} newStreamId=${o.id} shouldRequestAudio=${i} shouldRequestVideo=${a})`),!i)for(var u of o.getAudioTracks())o.removeTrack(u);if(!a)for(var d of o.getVideoTracks())o.removeTrack(d)}else{var f;try{f=r.getUserMediaContraints(i,a,!0),o=yield navigator.mediaDevices.getUserMedia(f)}catch(e){w.warn(`MediaHandler getUserMediaStreamInternal() error (e=${e}), retrying without exact deviceId`),f=r.getUserMediaContraints(i,a,!1),o=yield navigator.mediaDevices.getUserMedia(f)}w.log(`MediaHandler getUserMediaStreamInternal() calling getUserMediaStream (streamId=${o.id}, shouldRequestAudio=${i}, shouldRequestVideo=${a}, constraints=${JSON.stringify(f)})`);for(var p of o.getTracks()){var m=p.getSettings();p.kind===`audio`?r.audioInput=m.deviceId:p.kind===`video`&&(r.videoInput=m.deviceId)}n&&(r.localUserMediaStream=o)}return n&&r.userMediaStreams.push(o),r.emit(dN.LocalStreamsChanged),o})()}stopUserMediaStream(e){w.log(`MediaHandler stopUserMediaStream() stopping (streamId=${e.id})`);for(var t of e.getTracks())t.stop();var n=this.userMediaStreams.indexOf(e);if(n!==-1&&(w.debug(`MediaHandler stopUserMediaStream() splicing usermedia stream out stream array (streamId=${e.id})`,e.id),this.userMediaStreams.splice(n,1)),this.emit(dN.LocalStreamsChanged),this.localUserMediaStream===e)this.localUserMediaStream=void 0;else for(var r of e.getTracks()){var i;if((i=this.localUserMediaStream)!=null&&i.getTrackById(r.id)){this.stopUserMediaStream(this.localUserMediaStream);break}}}getScreensharingStream(){var e=arguments,t=this;return C(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:{},r=e.length>1&&e[1]!==void 0?e[1]:!0,i;if(t.screensharingStreams.length===0){var a=t.getScreenshareContraints(n);n.desktopCapturerSourceId?(w.debug(`MediaHandler getScreensharingStream() calling getUserMedia() (opts=${JSON.stringify(n)})`),i=yield navigator.mediaDevices.getUserMedia(a)):(w.debug(`MediaHandler getScreensharingStream() calling getDisplayMedia() (opts=${JSON.stringify(n)})`),i=yield navigator.mediaDevices.getDisplayMedia(a))}else{var o=t.screensharingStreams[t.screensharingStreams.length-1];w.log(`MediaHandler getScreensharingStream() cloning (streamId=${o.id})`),i=o.clone()}return r&&t.screensharingStreams.push(i),t.emit(dN.LocalStreamsChanged),i})()}stopScreensharingStream(e){w.debug(`MediaHandler stopScreensharingStream() stopping stream (streamId=${e.id})`);for(var t of e.getTracks())t.stop();var n=this.screensharingStreams.indexOf(e);n!==-1&&(w.debug(`MediaHandler stopScreensharingStream() splicing stream out (streamId=${e.id})`),this.screensharingStreams.splice(n,1)),this.emit(dN.LocalStreamsChanged)}stopAllStreams(){for(var e of this.userMediaStreams){w.log(`MediaHandler stopAllStreams() stopping (streamId=${e.id})`);for(var t of e.getTracks())t.stop()}for(var n of this.screensharingStreams)for(var r of n.getTracks())r.stop();this.userMediaStreams=[],this.screensharingStreams=[],this.localUserMediaStream=void 0,this.emit(dN.LocalStreamsChanged)}getUserMediaContraints(e,t,n){var r=!!navigator.webkitGetUserMedia,i=n?`exact`:`ideal`,a={};this.audioInput&&(a.deviceId={[i]:this.audioInput}),this.audioSettings&&(a.autoGainControl={ideal:this.audioSettings.autoGainControl},a.echoCancellation={ideal:this.audioSettings.echoCancellation},a.noiseSuppression={ideal:this.audioSettings.noiseSuppression});var o={width:r?{exact:640}:{ideal:640},height:r?{exact:360}:{ideal:360}};return this.videoInput&&(o.deviceId={[i]:this.videoInput}),{audio:e?a:!1,video:t?o:!1}}getScreenshareContraints(e){var t=e.desktopCapturerSourceId,n=e.audio;return t?{audio:n??!1,video:{mandatory:{chromeMediaSource:`desktop`,chromeMediaSourceId:t}}}:{audio:n??!1,video:!0}}},pN=function(e){return e.RequestFinished=`FINISHED`,e.Complete=`COMPLETE`,e}({}),mN=function(e){return e.PreProcess=`ExtState.PreProcess`,e.PostProcess=`ExtState.PostProcess`,e}({}),hN=function(e){return e.RoomData=`SlidingSync.RoomData`,e.Lifecycle=`SlidingSync.Lifecycle`,e}({}),gN=3,_N=class{constructor(e){this.crypto=e}name(){return`e2ee`}when(){return mN.PreProcess}onRequest(e){var t=this;return C(function*(){return e&&(w.log(`ExtensionE2EE: invalidating all device lists due to missing 'pos'`),yield t.crypto.markAllTrackedUsersAsDirty()),{enabled:!0}})()}onResponse(e){var t=this;return C(function*(){e.device_lists&&(yield t.crypto.processDeviceLists(e.device_lists)),yield t.crypto.processKeyCounts(e.device_one_time_keys_count,e.device_unused_fallback_key_types||e[`org.matrix.msc2732.device_unused_fallback_key_types`]),t.crypto.onSyncCompleted({})})()}},vN=class{constructor(e,t){this.client=e,this.cryptoCallbacks=t,h(this,`nextBatch`,null)}name(){return`to_device`}when(){return mN.PreProcess}onRequest(e){var t=this;return C(function*(){return{since:t.nextBatch===null?void 0:t.nextBatch,limit:100,enabled:!0}})()}onResponse(e){var t=this;return C(function*(){var n=e.events||[];ij(t.cryptoCallbacks?yield t.cryptoCallbacks.preprocessToDeviceMessages(n):n.map(e=>({message:e,encryptionInfo:null})),t.client),t.nextBatch=e.next_batch})()}},yN=class{constructor(e){this.client=e}name(){return`account_data`}when(){return mN.PostProcess}onRequest(e){return C(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return C(function*(){for(var n in e.global&&e.global.length>0&&t.processGlobalAccountData(e.global),e.rooms){var r=wN(t.client,n,e.rooms[n]),i=t.client.getRoom(n);if(!i){w.warn(`got account data for room but room doesn't exist on client:`,n);continue}i.addAccountData(r),r.forEach(e=>{t.client.emit(Z.Event,e)})}})()}processGlobalAccountData(e){var t=wN(this.client,void 0,e),n=t.reduce((e,t)=>(e[t.getType()]=this.client.store.getAccountData(t.getType()),e),{});this.client.store.storeAccountDataEvents(t),t.forEach(e=>{if(e.getType()===E.PushRules){var t=e.getContent();this.client.setPushRules(t)}var r=n[e.getType()];return this.client.emit(Z.AccountData,e,r),e})}},bN=class{constructor(e){this.client=e}name(){return`typing`}when(){return mN.PostProcess}onRequest(e){return C(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return C(function*(){if(e!=null&&e.rooms)for(var n in e.rooms)TN(t.client,n,[e.rooms[n]])})()}},xN=class{constructor(e){this.client=e}name(){return`receipts`}when(){return mN.PostProcess}onRequest(e){return C(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return C(function*(){if(e!=null&&e.rooms)for(var n in e.rooms)TN(t.client,n,[e.rooms[n]])})()}},SN=class{constructor(e,t,n,r){this.slidingSync=e,this.client=t,h(this,`opts`,void 0),h(this,`syncOpts`,void 0),h(this,`syncState`,null),h(this,`syncStateData`,void 0),h(this,`lastPos`,null),h(this,`failCount`,0),h(this,`notifEvents`,[]),this.opts=ej(n),this.syncOpts=tj(r),t.getNotifTimelineSet()&&t.reEmitter.reEmit(t.getNotifTimelineSet(),[z.Timeline,z.TimelineReset]),this.slidingSync.on(hN.Lifecycle,this.onLifecycle.bind(this)),this.slidingSync.on(hN.RoomData,this.onRoomData.bind(this));var i=[new vN(this.client,this.syncOpts.cryptoCallbacks),new yN(this.client),new bN(this.client),new xN(this.client)];this.syncOpts.cryptoCallbacks&&i.push(new _N(this.syncOpts.cryptoCallbacks)),i.forEach(e=>{this.slidingSync.registerExtension(e)})}onRoomData(e,t){var n=this;return C(function*(){var r=n.client.store.getRoom(e);if(!r){if(!t.initial){n.syncOpts.logger.debug(`initial flag not set but no stored room exists for room `,e,t);return}r=rj(n.client,e,n.opts)}yield n.processRoomData(n.client,r,t)})()}onLifecycle(e,t,n){switch(n&&this.syncOpts.logger.debug(`onLifecycle`,e,n),e){case pN.Complete:if(this.purgeNotifications(),!t)break;this.lastPos||this.updateSyncState(B.Prepared,{oldSyncToken:void 0,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.updateSyncState(B.Syncing,{oldSyncToken:this.lastPos,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.lastPos=t.pos;break;case pN.RequestFinished:if(n){if(this.failCount+=1,this.updateSyncState(this.failCount>gN?B.Error:B.Reconnecting,{error:new I(n)}),this.shouldAbortSync(new I(n)))return}else this.failCount=0,this.syncOpts.logger.debug(`SlidingSyncState.RequestFinished with ${Object.keys(t?.rooms||[]).length} rooms`);break}}syncLeftRooms(){return C(function*(){return[]})()}peek(e){return C(function*(){return null})()}stopPeeking(){}setPresence(e){}getSyncState(){return this.syncState}getSyncStateData(){return this.syncStateData??null}createRoom(e){var t=this.client.timelineSupport,n=new RA(e,this.client,this.client.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:t});return this.client.reEmitter.reEmit(n,[z.Name,z.Redaction,z.RedactionCancelled,z.Receipt,z.Tags,z.LocalEchoUpdated,z.AccountData,z.MyMembership,z.Timeline,z.TimelineReset]),this.registerStateListeners(n),n}registerStateListeners(e){this.client.reEmitter.reEmit(e.currentState,[j.Events,j.Members,j.NewMember,j.Update]),e.currentState.on(j.NewMember,(e,t,n)=>{n.user=this.client.getUser(n.userId)??void 0,this.client.reEmitter.reEmit(n,[gO.Name,gO.Typing,gO.PowerLevel,gO.Membership])})}shouldAbortSync(e){return e.errcode===`M_UNKNOWN_TOKEN`?(this.syncOpts.logger.warn(`Token no longer valid - assuming logout`),this.stop(),this.updateSyncState(B.Error,{error:e}),!0):!1}processRoomData(e,t,n){var r=this;return C(function*(){n=CN(e,t.roomId,n);var i=wN(r.client,t.roomId,n.required_state),a=wN(r.client,t.roomId,n.timeline,!1),o=[];if(n.limited||n.initial){var s=new Set;t.getLiveTimeline().getEvents().forEach(e=>{s.add(e.getId())});for(var c=[],l=[],u=!1,d=a.length-1;d>=0;d--){var f=a[d];if(s.has(f.getId())){u=!0;continue}u?c.push(f):l.unshift(f)}a=l,c.length>0&&t.addEventsToTimeline(c,!0,!1,t.getLiveTimeline(),n.prev_batch)}var p=t.hasEncryptionStateEvent();if(n.notification_count!=null&&t.setUnreadNotificationCount(R.Total,n.notification_count),n.highlight_count!=null&&(!p||p&&t.getUnreadNotificationCount(R.Highlight)<=0)&&t.setUnreadNotificationCount(R.Highlight,n.highlight_count),n.bump_stamp&&t.setBumpStamp(n.bump_stamp),Number.isInteger(n.invited_count)&&t.currentState.setInvitedMemberCount(n.invited_count),Number.isInteger(n.joined_count)&&t.currentState.setJoinedMemberCount(n.joined_count),n.invite_state){var m=wN(r.client,t.roomId,n.invite_state);yield r.injectRoomEvents(t,m),n.initial&&(t.recalculate(),r.client.store.storeRoom(t),r.client.emit(Z.Room,t)),m.forEach(e=>{r.client.emit(Z.Event,e)});return}n.limited&&t.getLiveTimeline().setPaginationToken(n.prev_batch??null,N.BACKWARDS),yield r.injectRoomEvents(t,i,a,n.num_live),t.addEphemeralEvents(o),t.updateMyMembership(k.Join),t.setMSC4186SummaryData(n.heroes,n.joined_count,n.invited_count),t.recalculate(),n.initial&&(e.store.storeRoom(t),e.emit(Z.Room,t)),r.addNotifications(a);var h=function(){var n=C(function*(n){e.emit(Z.Event,n),n.isState()&&n.getType()==E.RoomEncryption&&r.syncOpts.cryptoCallbacks&&(yield r.syncOpts.cryptoCallbacks.onCryptoEvent(t,n))});return function(e){return n.apply(this,arguments)}}();yield JE(i,h),yield JE(a,h),o.forEach(function(t){e.emit(Z.Event,t)}),t.decryptCriticalEvents()})()}injectRoomEvents(e,t){var n=arguments,r=this;return C(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:[],a=n.length>3&&n[3]!==void 0?n[3]:0,o=e.getLiveTimeline(),s=o.getEvents().length==0;if(s){for(var c of t)r.client.getPushActionsForEvent(c);o.initialiseState(t)}s||(e.oldState.setStateEvents(t),e.currentState.setStateEvents(t));var l=[];a>0&&(l=i.slice(-1*a),i=i.slice(0,-1*l.length)),yield e.addLiveEvents(i,{fromCache:!0,addToState:!1}),l.length>0&&(yield e.addLiveEvents(l,{fromCache:!1,addToState:!1})),e.recalculate(),r.resolveInvites(e)})()}resolveInvites(e){if(!(!e||!this.opts.resolveInvitesToProfiles)){var t=this.client;e.getMembersWithMembership(k.Invite).forEach(function(n){if(!n.requestedProfileInfo){n.requestedProfileInfo=!0;var r=t.getUser(n.userId);(r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId)).then(function(t){var r=n.events.member;r.getContent().membership===k.Invite&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))},function(e){})}})}}retryImmediately(){return!0}sync(){var e=this;return C(function*(){for(e.syncOpts.logger.debug(`Sliding sync init loop`);!e.client.isGuest();)try{e.syncOpts.logger.debug(`Getting push rules...`);var t=yield e.client.getPushRules();e.syncOpts.logger.debug(`Got push rules`),e.client.pushRules=t;break}catch(t){if(e.syncOpts.logger.error(`Getting push rules failed`,t),e.shouldAbortSync(t))return}yield e.slidingSync.start()})()}stop(){this.syncOpts.logger.debug(`SyncApi.stop`),this.slidingSync.stop()}updateSyncState(e,t){var n=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(Z.Sync,this.syncState,n,t)}addNotifications(e){if(this.client.getNotifTimelineSet())for(var t of e){var n=this.client.getPushActionsForEvent(t);n&&n.notify&&n.tweaks&&n.tweaks.highlight&&this.notifEvents.push(t)}}purgeNotifications(){this.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),this.notifEvents.forEach(e=>{var t;(t=this.client.getNotifTimelineSet())==null||t.addLiveEvent(e,{addToState:!1})}),this.notifEvents=[]}};function CN(e,t,n){if(!n.name)return n;for(var r of n.required_state)if(r.type===E.RoomName&&r.state_key===``)return r.content={name:n.name},n;return n.required_state.push({event_id:`$fake-sliding-sync-name-event-`+t,state_key:``,type:E.RoomName,content:{name:n.name},sender:e.getUserId(),origin_server_ts:new Date().getTime()}),n}function wN(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=e.getEventMapper({decrypt:r});return n.map(function(e){return e.room_id=t,i(e)})}function TN(e,t,n){var r=wN(e,t,n),i=e.getRoom(t);if(!i){w.warn(`got ephemeral events for room but room doesn't exist on client:`,t);return}i.addEphemeralEvents(r),r.forEach(t=>{e.emit(Z.Event,t)})}var EN=!1,DN=class e{static RETRY_BACKOFF_RATELIMIT(e,t,n){return aA(n,t,!1)}static QUEUE_MESSAGES(e){return e.getType()===E.RoomMessage||e.hasAssociation()?`message`:null}constructor(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.RETRY_BACKOFF_RATELIMIT,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.QUEUE_MESSAGES;this.retryAlgorithm=t,this.queueAlgorithm=n,h(this,`queues`,{}),h(this,`activeQueues`,[]),h(this,`procFn`,null),h(this,`processQueue`,e=>{var t=this.peekNextEvent(e);if(!t){this.disableQueue(e);return}ON(`Queue '%s' has %s pending events`,e,this.queues[e].length),Promise.resolve().then(()=>this.procFn(t.event)).then(n=>{this.removeNextEvent(e),ON(`Queue '%s' sent event %s`,e,t.event.getId()),t.resolvers.resolve(n),this.processQueue(e)},n=>{t.attempts+=1;var r=this.retryAlgorithm(t.event,t.attempts,n);ON(`retry(%s) err=%s event_id=%s waitTime=%s`,t.attempts,n,t.event.getId(),r),r===-1?(w.info(`Queue '%s' giving up on event %s`,e,t.event.getId()),this.clearQueue(e,n)):setTimeout(this.processQueue,r,e)})})}getQueueForEvent(e){var t=this.queueAlgorithm(e);return!t||!this.queues[t]?null:this.queues[t].map(function(e){return e.event})}removeEventFromQueue(e){var t=this.queueAlgorithm(e);if(!t||!this.queues[t])return!1;var n=!1;return AE(this.queues[t],t=>t.event.getId()===e.getId()?(n=!0,!0):!1),n}setProcessFunction(e){this.procFn=e,this.startProcessingQueues()}queueEvent(e){var t=this.queueAlgorithm(e);if(!t)return null;this.queues[t]||(this.queues[t]=[]);var n=Promise.withResolvers();return this.queues[t].push({event:e,resolvers:n,attempts:0}),ON(`Queue algorithm dumped event %s into queue '%s'`,e.getId(),t),this.startProcessingQueues(),n.promise}startProcessingQueues(){this.procFn&&Object.keys(this.queues).filter(e=>this.activeQueues.indexOf(e)===-1&&this.queues[e].length>0).forEach(e=>{this.activeQueues.push(e),ON(`Spinning up queue: '%s'`,e),this.processQueue(e)})}disableQueue(e){var t=this.activeQueues.indexOf(e);t>=0&&this.activeQueues.splice(t,1),w.info(`Stopping queue '%s' as it is now empty`,e)}clearQueue(e,t){w.info(`clearing queue '%s'`,e);for(var n;n=this.removeNextEvent(e);)n.resolvers.reject(t);this.disableQueue(e)}peekNextEvent(e){var t=this.queues[e];if(Array.isArray(t))return t[0]}removeNextEvent(e){var t=this.queues[e];if(Array.isArray(t))return t.shift()}};function ON(){EN&&w.log(...arguments)}var kN=20,AN=class{constructor(e,t){var n=this;this.client=e,this.logger=t,h(this,`sending`,!1),h(this,`running`,!0),h(this,`retryTimeout`,null),h(this,`retryAttempts`,0),h(this,`sendQueue`,C(function*(){if(n.retryTimeout!==null&&clearTimeout(n.retryTimeout),n.retryTimeout=null,!(n.sending||!n.running)){n.logger.debug(`Attempting to send queued to-device messages`),n.sending=!0;var e;try{for(;n.running&&(e=yield n.client.store.getOldestToDeviceBatch(),e!==null);)yield n.sendBatch(e),yield n.client.store.removeToDeviceBatch(e.id),n.retryAttempts=0;if(!n.running)return;n.logger.debug(`All queued to-device messages sent`)}catch(r){++n.retryAttempts;var t=DN.RETRY_BACKOFF_RATELIMIT(null,n.retryAttempts,r);if(t===-1){Math.floor(r.httpStatus/100)===4?(n.logger.error(`Fatal error when sending to-device message - dropping to-device batch!`,r),yield n.client.store.removeToDeviceBatch(e.id)):n.logger.info(`Automatic retry limit reached for to-device messages.`);return}n.logger.info(`Failed to send batch of to-device messages. Will retry in ${t}ms`,r),n.retryTimeout=setTimeout(n.sendQueue,t)}finally{n.sending=!1}}})),h(this,`onResumedSync`,(e,t)=>{e===B.Syncing&&t!==B.Syncing&&(this.logger.info(`Resuming queue after resumed sync`),this.sendQueue())})}start(){this.running=!0,this.sendQueue(),this.client.on(Z.Sync,this.onResumedSync)}stop(){this.running=!1,this.retryTimeout!==null&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.client.removeListener(Z.Sync,this.onResumedSync)}queueBatch(e){var t=this;return C(function*(){for(var n=[],r=0;r`${e.userId}/${e.deviceId} (msgid ${e.payload[HD]})`);t.logger.info(`Enqueuing batch of to-device messages. type=${e.eventType} txnid=${i.txnId}`,a)}yield t.client.store.saveToDeviceBatches(n),t.sendQueue()})()}sendBatch(e){var t=this;return C(function*(){var n=new gD(()=>new Map);for(var r of e.batch)n.getOrCreate(r.userId).set(r.deviceId,r.payload);t.logger.info(`Sending batch of ${e.batch.length} to-device messages with ID ${e.id} and txnId ${e.txnId}`),yield t.client.sendToDevice(e.eventType,n,e.txnId)})()}},jN=new RD.UnstableValue(`m.policies`,`org.matrix.msc3847.policies`),MN=new RD.UnstableValue(`m.ignore.invites`,`org.matrix.msc3847.ignore.invites`),NN=function(e){return e.Ban=`m.ban`,e}({}),PN=function(e){return e.User=`m.policy.user`,e.Room=`m.policy.room`,e.Server=`m.policy.server`,e}({}),FN={[PN.User]:E.PolicyRuleUser,[PN.Room]:E.PolicyRuleRoom,[PN.Server]:E.PolicyRuleServer},IN=class{constructor(e){this.client=e}addRule(e,t,n){var r=this;return C(function*(){var i=yield r.getOrCreateTargetRoom();return(yield r.client.sendStateEvent(i.roomId,FN[e],{entity:t,reason:n,recommendation:NN.Ban})).event_id})()}removeRule(e){var t=this;return C(function*(){yield t.client.redactEvent(e.getRoomId(),e.getId())})()}addSource(e){var t=this;return C(function*(){yield t.client.joinRoom(e);var n=(yield t.getOrCreateSourceRooms()).map(e=>e.roomId);return n.includes(e)?!1:(n.push(e),yield t.withIgnoreInvitesPolicies(e=>{e.sources=n}),!0)})()}getRuleForInvite(e){var t=this;return C(function*(){var n=e.sender,r=e.roomId,i=yield t.getOrCreateSourceRooms(),a=n.split(`:`)[1],o=r.split(`:`)[1];for(var s of i){var c=s.getUnfilteredTimelineSet().getLiveTimeline().getState(N.FORWARDS);for(var l of[{scope:PN.Room,entities:[r]},{scope:PN.User,entities:[n]},{scope:PN.Server,entities:[a,o]}]){var u=l.scope,d=l.entities;for(var f of c.getStateEvents(FN[u])){var p=f.getContent();if(p?.recommendation==NN.Ban){var m=p?.entity;if(m){var h=void 0;try{h=new RegExp(VE(m))}catch{continue}for(var g of d)if(g&&h.test(g))return f}}}}}return null})()}getOrCreateTargetRoom(){var e=this;return C(function*(){var t=e.getIgnoreInvitesPolicies().target;if(typeof t!=`string`&&(t=null),t){var n=e.client.getRoom(t);if(n)return n;t=null}return t=(yield e.client.createRoom({name:`Individual Policy Room`,preset:SO.PrivateChat})).room_id,yield e.withIgnoreInvitesPolicies(e=>{e.target=t}),e.client.getRoom(t)})()}getOrCreateSourceRooms(){var e=this;return C(function*(){var t=e.getIgnoreInvitesPolicies().sources,n=!1;Array.isArray(t)||(n=!0,t=[]);var r=t.filter(e=>typeof e==`string`).map(t=>e.client.getRoom(t)).filter(e=>!!e);if(r.length!=t.length&&(n=!0),r.length==0){var i=yield e.getOrCreateTargetRoom();n=!0,r=[i]}return n&&(yield e.withIgnoreInvitesPolicies(e=>{e.sources=t})),r})()}getIgnoreInvitesPolicies(){return this.getPoliciesAndIgnoreInvitesPolicies().ignoreInvitesPolicies}withIgnoreInvitesPolicies(e){var t=this;return C(function*(){var n=t.getPoliciesAndIgnoreInvitesPolicies(),r=n.policies,i=n.ignoreInvitesPolicies;e(i),r[MN.name]=i,yield t.client.setAccountData(jN.name,r)})()}getPoliciesAndIgnoreInvitesPolicies(){var e={};for(var t of[jN.name,jN.altName])if(t){var n=this.client.getAccountData(t)?.getContent();if(n){e=n;break}}var r={},i=!1;for(var a of[MN.name,MN.altName])if(a){var o=e[a];if(o&&typeof o==`object`){r=o,i=!0;break}}return i||(e[MN.name]=r),{policies:e,ignoreInvitesPolicies:r}}},LN=`matrix-js-sdk`,RN=function(e){return e.Change=`change`,e}({}),zN=function(e){return e[e.Unsent=1]=`Unsent`,e[e.Requested=2]=`Requested`,e[e.Ready=3]=`Ready`,e[e.Started=4]=`Started`,e[e.Cancelled=5]=`Cancelled`,e[e.Done=6]=`Done`,e}({}),BN=function(e){return e.Cancel=`cancel`,e.ShowSas=`show_sas`,e.ShowReciprocateQr=`show_reciprocate_qr`,e}({});function VN(e){if(e.length>=255)throw TypeError(`Alphabet too long`);let t=new Uint8Array(256);for(let e=0;e>>0,u=new Uint8Array(l);for(;s!==c;){let e=t[s],r=0;for(let t=l-1;(e!==0||r>>0,u[t]=e%n>>>0,e=e/n>>>0;if(e!==0)throw Error(`Non-zero carry`);o=r,s++}let d=l-o;for(;d!==l&&u[d]===0;)d++;let f=r.repeat(i);for(;d>>0,l=new Uint8Array(c);for(;a255)return;let i=t[r];if(i===255)return;let o=0;for(let e=c-1;(i!==0||o>>0,l[e]=i%256>>>0,i=i/256>>>0;if(i!==0)throw Error(`Non-zero carry`);s=o,a++}let u=c-s;for(;u!==c&&l[u]===0;)u++;let d=new Uint8Array(o+(c-u)),f=o;for(;u!==c;)d[f++]=l[u++];return d}function c(e){let t=s(e);if(t)return t;throw Error(`Non-base`+n+` character`)}return{encode:o,decodeUnsafe:s,decode:c}}var HN=VN(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`),UN=[139,1];function WN(e){var t=new Uint8Array(UN.length+e.length+1);t.set(UN,0),t.set(e,UN.length);for(var n=0,r=0;r3&&arguments[3]!==void 0?arguments[3]:GN;if(!globalThis.crypto.subtle||!TextEncoder)throw Error(`Password-based backup is not available on this platform`);var i=yield globalThis.crypto.subtle.importKey(`raw`,new TextEncoder().encode(e),{name:`PBKDF2`},!1,[`deriveBits`]),a=yield globalThis.crypto.subtle.deriveBits({name:`PBKDF2`,salt:new TextEncoder().encode(t),iterations:n,hash:`SHA-512`},i,r);return new Uint8Array(a)}),qN.apply(this,arguments)}var JN=function(e){return e.UserTrustStatusChanged=`userTrustStatusChanged`,e.KeyBackupStatus=`crypto.keyBackupStatus`,e.KeyBackupFailed=`crypto.keyBackupFailed`,e.KeyBackupSessionsRemaining=`crypto.keyBackupSessionsRemaining`,e.KeyBackupDecryptionKeyCached=`crypto.keyBackupDecryptionKeyCached`,e.VerificationRequestReceived=`crypto.verificationRequestReceived`,e.WillUpdateDevices=`crypto.willUpdateDevices`,e.DevicesUpdated=`crypto.devicesUpdated`,e.KeysChanged=`crossSigning.keysChanged`,e.LegacyCryptoStoreMigrationProgress=`crypto.legacyCryptoStoreMigrationProgress`,e.DehydratedDeviceCreated=`dehydration.DehydratedDeviceCreated`,e.DehydratedDeviceUploaded=`dehydration.DehydratedDeviceUploaded`,e.RehydrationStarted=`dehydration.RehydrationStarted`,e.RehydrationProgress=`dehydration.RehydrationProgress`,e.RehydrationCompleted=`dehydration.RehydrationCompleted`,e.RehydrationError=`dehydration.RehydrationError`,e.DehydrationKeyCached=`dehydration.DehydrationKeyCached`,e.DehydratedDeviceRotationError=`dehydration.DehydratedDeviceRotationError`,e}({}),YN=function(e){return e.MEGOLM_UNKNOWN_INBOUND_SESSION_ID=`MEGOLM_UNKNOWN_INBOUND_SESSION_ID`,e.MEGOLM_KEY_WITHHELD=`MEGOLM_KEY_WITHHELD`,e.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE=`MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE`,e.OLM_UNKNOWN_MESSAGE_INDEX=`OLM_UNKNOWN_MESSAGE_INDEX`,e.HISTORICAL_MESSAGE_NO_KEY_BACKUP=`HISTORICAL_MESSAGE_NO_KEY_BACKUP`,e.HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED=`HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED`,e.HISTORICAL_MESSAGE_WORKING_BACKUP=`HISTORICAL_MESSAGE_WORKING_BACKUP`,e.HISTORICAL_MESSAGE_USER_NOT_JOINED=`HISTORICAL_MESSAGE_USER_NOT_JOINED`,e.SENDER_IDENTITY_PREVIOUSLY_VERIFIED=`SENDER_IDENTITY_PREVIOUSLY_VERIFIED`,e.UNSIGNED_SENDER_DEVICE=`UNSIGNED_SENDER_DEVICE`,e.UNKNOWN_SENDER_DEVICE=`UNKNOWN_SENDER_DEVICE`,e.UNKNOWN_ERROR=`UNKNOWN_ERROR`,e}({}),XN=function(e){return e[e.AllDevicesIsolationMode=0]=`AllDevicesIsolationMode`,e[e.OnlySignedDevicesIsolationMode=1]=`OnlySignedDevicesIsolationMode`,e}({}),ZN=class{constructor(e){this.errorOnVerifiedUserProblems=e,h(this,`kind`,XN.AllDevicesIsolationMode)}},QN=class{constructor(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;this.crossSigningVerified=e,this.crossSigningVerifiedBefore=t,h(this,`known`,void 0),h(this,`needsUserApproval`,void 0),this.known=n,this.needsUserApproval=r}isVerified(){return this.isCrossSigningVerified()}isCrossSigningVerified(){return this.crossSigningVerified}wasCrossSigningVerified(){return this.crossSigningVerifiedBefore}isTofu(){return!1}},$N=class{constructor(e){h(this,`signedByOwner`,void 0),h(this,`crossSigningVerified`,void 0),h(this,`tofu`,void 0),h(this,`localVerified`,void 0),h(this,`trustCrossSignedDevices`,void 0),this.signedByOwner=e.signedByOwner??!1,this.crossSigningVerified=e.crossSigningVerified??!1,this.tofu=e.tofu??!1,this.localVerified=e.localVerified??!1,this.trustCrossSignedDevices=e.trustCrossSignedDevices??!1}isVerified(){return this.localVerified||this.trustCrossSignedDevices&&this.crossSigningVerified}},eP=function(e){return e.Fetch=`fetch`,e.LoadKeys=`load_keys`,e}({}),tP=function(e){return e.Master=`master`,e.SelfSigning=`self_signing`,e.UserSigning=`user_signing`,e}({}),nP=function(e){return e[e.NONE=0]=`NONE`,e[e.GREY=1]=`GREY`,e[e.RED=2]=`RED`,e}({}),rP=function(e){return e[e.UNKNOWN=0]=`UNKNOWN`,e[e.UNVERIFIED_IDENTITY=1]=`UNVERIFIED_IDENTITY`,e[e.UNSIGNED_DEVICE=2]=`UNSIGNED_DEVICE`,e[e.UNKNOWN_DEVICE=3]=`UNKNOWN_DEVICE`,e[e.AUTHENTICITY_NOT_GUARANTEED=4]=`AUTHENTICITY_NOT_GUARANTEED`,e[e.MISMATCHED_SENDER_KEY=5]=`MISMATCHED_SENDER_KEY`,e[e.SENT_IN_CLEAR=6]=`SENT_IN_CLEAR`,e[e.VERIFICATION_VIOLATION=7]=`VERIFICATION_VIOLATION`,e[e.MISMATCHED_SENDER=8]=`MISMATCHED_SENDER`,e}({}),iP=class extends Error{constructor(e){super(e),this.name=`DecryptionKeyDoesNotMatchError`}},aP=new Uint8Array(8);function oP(e,t){return sP.apply(this,arguments)}function sP(){return sP=C(function*(e,t){var n=yield globalThis.crypto.subtle.importKey(`raw`,e,{name:`HKDF`},!1,[`deriveBits`]),r=yield globalThis.crypto.subtle.deriveBits({name:`HKDF`,salt:aP,info:new TextEncoder().encode(t),hash:`SHA-256`},n,512),i=r.slice(0,32),a=r.slice(32),o=globalThis.crypto.subtle.importKey(`raw`,i,{name:`AES-CTR`},!1,[`encrypt`,`decrypt`]),s=globalThis.crypto.subtle.importKey(`raw`,a,{name:`HMAC`,hash:{name:`SHA-256`}},!1,[`sign`,`verify`]);return Promise.all([o,s])}),sP.apply(this,arguments)}function cP(e,t,n,r){return lP.apply(this,arguments)}function lP(){return lP=C(function*(e,t,n,r){var i;r?i=hj(r):(i=new Uint8Array(16),globalThis.crypto.getRandomValues(i),i[8]&=127);var a=x(yield oP(t,n),2),o=a[0],s=a[1],c=new TextEncoder().encode(e),l=yield globalThis.crypto.subtle.encrypt({name:`AES-CTR`,counter:i,length:64},o,c),u=yield globalThis.crypto.subtle.sign({name:`HMAC`},s,l);return{iv:dj(i),ciphertext:dj(new Uint8Array(l)),mac:dj(new Uint8Array(u))}}),lP.apply(this,arguments)}function uP(e,t,n){return dP.apply(this,arguments)}function dP(){return dP=C(function*(e,t,n){var r=x(yield oP(t,n),2),i=r[0],a=r[1],o=hj(e.ciphertext);if(!(yield globalThis.crypto.subtle.verify({name:`HMAC`},a,hj(e.mac),o)))throw Error(`Error decrypting secret ${n}: bad MAC`);var s=yield globalThis.crypto.subtle.decrypt({name:`AES-CTR`,counter:hj(e.iv),length:64},i,o);return new TextDecoder().decode(new Uint8Array(s))}),dP.apply(this,arguments)}var fP=`m.secret_storage.v1.aes-hmac-sha2`,pP=class{constructor(e,t){this.accountDataAdapter=e,this.callbacks=t}getDefaultKeyId(){var e=this;return C(function*(){var t=yield e.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.default_key`);return t?t.key??null:null})()}setDefaultKeyId(e){return new Promise((t,n)=>{var r=n=>{if(n.getType()===`m.secret_storage.default_key`){var i=n.getContent();(e===null?Object.keys(i).length===0:i.key===e)&&(this.accountDataAdapter.removeListener(Z.AccountData,r),t())}};this.accountDataAdapter.on(Z.AccountData,r);var i=e===null?{}:{key:e};this.accountDataAdapter.setAccountData(`m.secret_storage.default_key`,i).catch(e=>{this.accountDataAdapter.removeListener(Z.AccountData,r),n(e)})})}addKey(e,t,n){var r=this;return C(function*(){if(e!==`m.secret_storage.v1.aes-hmac-sha2`)throw Error(`Unknown key algorithm ${e}`);var i={algorithm:e};t.name&&(i.name=t.name),t.passphrase&&(i.passphrase=t.passphrase);var a=yield gP(t.key),o=a.iv,s=a.mac;if(i.iv=o,i.mac=s,!n)do n=yj(32);while(yield r.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${n}`));return yield r.accountDataAdapter.setAccountData(`m.secret_storage.key.${n}`,i),{keyId:n,keyInfo:i}})()}getKey(e){var t=this;return C(function*(){if(e||=yield t.getDefaultKeyId(),!e)return null;var n=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${e}`);return n?[e,n]:null})()}hasKey(e){var t=this;return C(function*(){return!!(yield t.getKey(e))})()}checkKey(e,t){return C(function*(){if(t.algorithm===`m.secret_storage.v1.aes-hmac-sha2`)if(t.mac){var n=(yield gP(e,t.iv)).mac;return mP(t.mac)===mP(n)}else return!0;else throw Error(`Unknown algorithm`)})()}store(e,t,n){var r=this;return C(function*(){if(t===null){yield r.accountDataAdapter.setAccountData(e,{});return}var i={};if(!n){var a=yield r.getDefaultKeyId();if(!a)throw Error(`No keys specified and no default key present`);n=[a]}if(n.length===0)throw Error(`Zero keys given to encrypt with!`);for(var o of n){var s=yield r.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${o}`);if(!s)throw Error(`Unknown key: `+o);if(s.algorithm===`m.secret_storage.v1.aes-hmac-sha2`){var c={[o]:s};i[o]=yield x(yield r.getSecretStorageKey(c,e),2)[1].encrypt(t)}else w.warn(`unknown algorithm for secret storage key `+o+`: `+s.algorithm)}yield r.accountDataAdapter.setAccountData(e,{encrypted:i})})()}get(e){var t=this;return C(function*(){var n=yield t.accountDataAdapter.getAccountDataFromServer(e);if(n){if(!n.encrypted)throw Error(`Content is not encrypted!`);var r={};for(var i of Object.keys(n.encrypted)){var a=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${i}`),o=n.encrypted[i];a?.algorithm===`m.secret_storage.v1.aes-hmac-sha2`&&o.iv&&o.ciphertext&&o.mac&&(r[i]=a)}if(Object.keys(r).length===0)throw Error(`Could not decrypt ${e} because none of the keys it is encrypted with are for a supported algorithm`);var s=x(yield t.getSecretStorageKey(r,e),2),c=s[0],l=s[1],u=n.encrypted[c];return l.decrypt(u)}})()}isStored(e){var t=this;return C(function*(){var n=yield t.accountDataAdapter.getAccountDataFromServer(e);if(!(n!=null&&n.encrypted))return null;var r={};for(var i of Object.keys(n.encrypted)){var a=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${i}`);if(a){var o=n.encrypted[i];a.algorithm===`m.secret_storage.v1.aes-hmac-sha2`&&o.iv&&o.ciphertext&&o.mac&&(r[i]=a)}}return Object.keys(r).length?r:null})()}getSecretStorageKey(e,t){var n=this;return C(function*(){if(!n.callbacks.getSecretStorageKey)throw Error(`No getSecretStorageKey callback supplied`);var r=yield n.callbacks.getSecretStorageKey({keys:e},t);if(!r)throw Error(`getSecretStorageKey callback returned falsey`);if(r.length<2)throw Error(`getSecretStorageKey callback returned invalid data`);var i=x(r,2),a=i[0],o=i[1];if(!e[a])throw Error(`App returned unknown key from getSecretStorageKey!`);if(e[a].algorithm===`m.secret_storage.v1.aes-hmac-sha2`)return[a,{encrypt:function(e){return cP(e,o,t)},decrypt:function(e){return uP(e,o,t)}}];throw Error(`Unknown key type: `+e[a].algorithm)})()}};function mP(e){for(var t=e.length;t>=1&&e.charCodeAt(t-1)==61;)t--;return te.length)&&(t=e.length);for(var n=0,r=Array(t);nt.creationTS?!0:(this.tsBuffer.get(n).set(t.keyIndex,t.creationTS),!1)}};function bP(e){var t=lO(e.split(`#`)),n=t[0],r=t[1];if(vP(t).slice(2).length)throw Error(`MatrixRTC Slot IDs *must* only contain two components seperated by one '#'. Additional '#' characters detected.`);return{application:n,id:r}}function xP(e){return`${e.application}#${e.id}`}var SP=class extends AggregateError{constructor(e,t){super(t,`Does not match ${e}: +${t.join(` +`)}`),this.type=e}},CP=e=>{var t=` - `,n=[];if(typeof e.device_id!=`string`&&n.push(t+`device_id must be string`),typeof e.call_id!=`string`&&n.push(t+`call_id must be string`),typeof e.application!=`string`&&n.push(t+`application must be a string`),e.focus_active===void 0&&n.push(t+`focus_active has an invalid type`),typeof e.focus_active?.type!=`string`&&n.push(t+`focus_active.type must be a string`),e.foci_preferred!==void 0&&!(Array.isArray(e.foci_preferred)&&e.foci_preferred.every(e=>typeof e==`object`&&!!e&&typeof e.type==`string`))&&n.push(t+`foci_preferred must be an array of transport objects`),e.created_ts!==void 0&&typeof e.created_ts!=`number`&&n.push(t+`created_ts must be number`),e.scope!==void 0&&typeof e.scope!=`string`&&n.push(t+`scope must be string`),e[`m.call.intent`]!==void 0&&typeof e[`m.call.intent`]!=`string`&&n.push(t+`m.call.intent must be a string`),n.length)throw new SP(`SessionMembership`,n);return!0};function wP(e){return TP.apply(this,arguments)}function TP(){return TP=C(function*(e){if(!globalThis.crypto.subtle)throw Error(`Crypto.subtle is not available: insecure context?`);var t=new TextEncoder().encode(e),n=yield globalThis.crypto.subtle.digest(`SHA-256`,t);return new Uint8Array(n)}),TP.apply(this,arguments)}var EP=(e,t)=>{var n,r=[],i=` - `,a=`${e==null||(n=e.application)==null?void 0:n.type}#`;if(typeof e.slot_id!=`string`)r.push(i+`slot_id must be string`);else if(!e.slot_id.startsWith(a))r.push(i+`slot_id must start with ${a}`);else try{bP(e.slot_id)}catch(e){r.push(i+`slot_id was badly formed${e instanceof Error?`: ${e.message}`:``}`)}if(typeof e.member!=`object`||e.member===null?r.push(i+`member must be an object`):(typeof e.member.user_id==`string`?vO.test(e.member.user_id)?e.member.user_id!==t&&r.push(i+`member.user_id must match the sender`):r.push(i+`member.user_id must be a valid mxid`):r.push(i+`member.user_id must be string`),typeof e.member.device_id!=`string`&&r.push(i+`member.device_id must be string`),typeof e.member.id!=`string`&&r.push(i+`member.id must be string`)),typeof e.application!=`object`||e.application===null?r.push(i+`application must be an object`):typeof e.application.type==`string`?e.application.type.includes(`#`)&&r.push(i+`application.type must not include "#"`):r.push(i+`application.type must be a string`),e.rtc_transports===void 0||!Array.isArray(e.rtc_transports))r.push(i+`rtc_transports must be an array`);else for(var o of e.rtc_transports)if(typeof o!=`object`||!o||typeof o.type!=`string`){r.push(i+`rtc_transports entries must be objects with a string type`);break}if(e.versions===void 0||!Array.isArray(e.versions)?r.push(i+`versions must be an array`):e.versions.every(e=>typeof e==`string`)||r.push(i+`versions must be an array of strings`),(e.sticky_key??e.msc4354_sticky_key)===void 0&&r.push(i+`sticky_key or msc4354_sticky_key must be a defined`),e.sticky_key!==void 0&&typeof e.sticky_key!=`string`&&r.push(i+`sticky_key must be a string`),e.msc4354_sticky_key!==void 0&&typeof e.msc4354_sticky_key!=`string`&&r.push(i+`msc4354_sticky_key must be a string`),e.sticky_key!==void 0&&e.msc4354_sticky_key!==void 0&&e.sticky_key!==e.msc4354_sticky_key&&r.push(i+`sticky_key and msc4354_sticky_key must be equal if both are defined`),e[`m.relates_to`]!==void 0){var s=e[`m.relates_to`];typeof s!=`object`||!s?r.push(i+`m.relates_to must be an object if provided`):(typeof s.event_id!=`string`&&r.push(i+`m.relates_to.event_id must be a string`),s.rel_type!==`m.reference`&&r.push(i+`m.relates_to.rel_type must be m.reference`))}if(r.length)throw new SP(`RtcMembership`,r);return!0};function DP(e,t,n){return OP.apply(this,arguments)}function OP(){return OP=C(function*(e,t,n){return fj(yield wP(JSON.stringify([e,t,n])))}),OP.apply(this,arguments)}var kP=1e3*60*60*4,J=function(e){return e.RTC=`rtc`,e.Session=`session`,e}(J||{}),AP=class e{static membershipDataFromMatrixEvent(e){var t=e.getSender(),n=e.getType(),r=e.getContent();if(t===void 0)throw Error(`matrixEvent is missing sender field`);try{if(n===E.RTCMembership&&EP(r,t))return{kind:J.RTC,data:r};if(n===E.GroupCallMemberPrefix&&CP(r))return{kind:J.Session,data:r};throw Error(`'${n} is not a known call membership type`)}catch(e){throw e instanceof SP&&w.debug(`CallMembership.MatrixRTCMembershipParseError provided invalid data`,r),e}}static parseFromEvent(t){var n=this;return C(function*(){var r=n.membershipDataFromMatrixEvent(t);return new e(t,r,r.kind===J.RTC?yield DP(r.data.member.user_id,r.data.member.device_id,r.data.member.id):`${t.getSender()}:${r.data.device_id}`)})()}static equal(e,t){return NE(e?.membershipData,t?.membershipData)}constructor(e,t,n){this.matrixEvent=e,this.membershipData=t,this.rtcBackendIdentity=n,h(this,`logger`,void 0),h(this,`matrixEventData`,void 0);var r=e.getId(),i=e.getSender();if(r===void 0)throw Error(`parentEvent is missing eventId field`);if(i===void 0)throw Error(`parentEvent is missing sender field`);this.logger=w.getChild(`[CallMembership ${i}:${this.deviceId}]`),this.matrixEventData={eventId:r,sender:i}}get sender(){return this.userId}get userId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return n.member.user_id;case J.Session:default:return this.matrixEventData.sender}}get eventId(){return this.matrixEventData.eventId}get slotId(){var e,t=this.membershipData,n=t.kind,r=t.data;if(r.application===`m.call`)switch(n){case J.RTC:return r.slot_id;case J.Session:default:var i=[r.application,r.call_id],a=i[0],o=i[1],s;if(o===``){var c;s=`ROOM`,(c=this.logger)==null||c.info(`use slotId compat hack emptyString -> ROOM`)}else s=o;return xP({application:a,id:s})}switch((e=this.logger)==null||e.info(`NOT using slotId compat hack emptyString -> ROOM`),n){case J.RTC:return r.slot_id;case J.Session:default:return xP({application:r.application,id:r.call_id})}}get deviceId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return n.member.device_id;case J.Session:default:return n.device_id}}get callIntent(){var e=this.applicationData[`m.call.intent`];if(typeof e==`string`)return e;this.logger.warn(`RTC membership has invalid m.call.intent`)}get slotDescription(){var e=this.membershipData,t=e.kind,n=e.data;if(t===J.RTC){var r=n.slot_id.slice(`${n.application.type}#`.length);return{application:n.application.type,id:r}}return bP(this.slotId)}get application(){return this.applicationData.type}get applicationData(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return n.application;case J.Session:default:return{type:n.application,"m.call.intent":n[`m.call.intent`]}}}get scope(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return;case J.Session:default:return n.scope}}get memberId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case`rtc`:return n.member.id;case`session`:return n.membershipID??`${this.matrixEventData.sender}:${n.device_id}`;default:throw Error(`Not possible to get memberID without knowing the membership event kind`)}}get membershipID(){return this.memberId}createdTs(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return this.matrixEvent.getTs();case J.Session:default:return n.created_ts??this.matrixEvent.getTs()}}getAbsoluteExpiry(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return;case J.Session:default:return this.createdTs()+(n.expires??kP)}}getMsUntilExpiry(){if(this.membershipData.kind===J.Session){var e=this.getAbsoluteExpiry();if(e)return e-Date.now()}}isExpired(){switch(this.membershipData.kind){case J.RTC:return!1;case J.Session:default:return this.getMsUntilExpiry()<=0}}getTransport(t){var n=this.membershipData,r=n.kind,i=n.data;switch(r){case J.RTC:return i.rtc_transports[0];case J.Session:switch(i.focus_active.focus_selection){case`oldest_membership`:if(e.equal(this,t))return i.foci_preferred[0];if(t!==void 0)return t.getTransport(t);break;case`multi_sfu`:return i.foci_preferred[0];default:return}break;default:return}}get transports(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case J.RTC:return n.rtc_transports;case J.Session:default:return n.foci_preferred}}},jP=function(e){return e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Unknown=`Unknown`,e}({}),MP=(e,t,n)=>e.sender===t&&e.deviceId===n,NP=class{constructor(e,t){this.membershipLoopHandler=e,h(this,`logger`,void 0),h(this,`running`,!1),h(this,`wakeup`,e=>{this.logger.error("Cannot call wakeup before calling `startWithJoin()`")}),h(this,`_actions`,[]),this.logger=(t??w).getChild(`[NewMembershipActionScheduler]`)}get actions(){return this._actions}startWithJoin(){var e=this;return C(function*(){if(e.running){e.logger.error(`Cannot call startWithJoin() on NewMembershipActionScheduler while already running`);return}e.running=!0,e._actions=[{ts:Date.now(),type:Y.SendDelayedEvent}];try{for(var t=function*(){e._actions.sort((e,t)=>e.ts-t.ts);var t=e._actions[0],n=void 0,r=new Promise(t=>{e.wakeup=e=>{n=e,t()}});t.ts>Date.now()&&(yield Promise.race([r,UE(t.ts-Date.now())]));var i={};if(!n){e.logger.debug(`Current MembershipManager processing: ${t.type} +Queue:`,e._actions,` +Date.now: "${Date.now()}`);try{i=yield e.membershipLoopHandler(t.type)}catch(e){throw Error(`The MembershipManager shut down because of the end condition: ${e}`,{cause:e})}}e._actions.splice(0,1);var a=n??i;`replace`in a?e._actions=a.replace:`insert`in a&&e._actions.push(...a.insert)};e._actions.length>0;)yield*t()}finally{e.running=!1}e.logger.debug(`Leave MembershipManager ActionScheduler loop (no more actions)`)})()}initiateJoin(){var e;(e=this.wakeup)==null||e.call(this,{replace:[{ts:Date.now(),type:Y.SendDelayedEvent}]})}initiateLeave(){var e;(e=this.wakeup)==null||e.call(this,{replace:[{ts:Date.now(),type:Y.SendScheduledDelayedLeaveEvent}]})}},PP=function(e){return e.TooNew=`TOO_NEW`,e}({}),FP=class extends Error{constructor(e){var t=`Crypto store is invalid because ${e}, please stop the client, delete all data and start the client again`;super(t),this.reason=e,this.name=`InvalidCryptoStoreError`}};h(FP,`TOO_NEW`,PP.TooNew);var IP=class extends Error{constructor(){super(`MatrixClient has been stopped`)}},LP=class extends Error{constructor(e,t){super(e),this.clientEndpoint=t,this.name=`UnsupportedDelayedEventsEndpointError`}},RP=class extends Error{constructor(e,t){super(e),this.clientEndpoint=t,this.name=`UnsupportedStickyEventsEndpointError`}},zP=function(e){return e.StatusChanged=`StatusChanged`,e.ProbablyLeft=`ProbablyLeft`,e.DelayIdChanged=`DelayIdChanged`,e}({}),BP=e=>e.type===`livekit`&&`livekit_service_url`in e;function VP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HP(e){for(var t=1;t{this.logger.error(`MembershipManager stopped because: `,e),r?.(e)}).finally(()=>{if(this.activated=!1,this.oldStatus&&this.oldStatus!==this.status&&this.emit(zP.StatusChanged,this.oldStatus,this.status),!this.scheduler.running){var e;(e=this.leavePromiseResolvers)==null||e.resolve(!0),this.leavePromiseResolvers=void 0}})}leave(e){return this.scheduler.running?(this.leavePromiseResolvers||(this.leavePromiseResolvers=Promise.withResolvers(),this.activated=!1,this.scheduler.initiateLeave(),e&&setTimeout(()=>this.leavePromiseResolvers?.resolve(!1),e)),this.leavePromiseResolvers.promise):(this.logger.warn(`Called MembershipManager.leave() even though the MembershipManager is not running`),Promise.resolve(!0))}onRTCSessionMemberUpdate(e){if(!this.isActivated())return Promise.resolve();if(this._ownMembership=e.find(e=>MP(e,this.userId,this.deviceId)),!this._ownMembership){var t=[Y.SendDelayedEvent,Y.SendJoinEvent];this.logger.warn(`Missing own membership: force re-join`),this.state.hasMemberStateEvent=!1,this.scheduler.actions.some(e=>t.includes(e.type))?this.logger.error("tried adding another `SendDelayedEvent` actions even though we already have one in the Queue\nActionQueueOnMemberUpdate:",this.scheduler.actions):this.scheduler.initiateJoin()}return Promise.resolve()}updateCallIntent(e){var t=this;return C(function*(){if(!t.activated||!t.ownMembership)throw Error(`You cannot update your intent before joining the call`);t.ownMembership.callIntent!==e&&(t.callIntent=e,yield t.sendJoinEvent())})()}constructor(t,n,r,i,a){super(),this.joinConfig=t,this.room=n,this.client=r,this.slotDescription=i,h(this,`activated`,!1),h(this,`logger`,void 0),h(this,`callIntent`,void 0),h(this,`leavePromiseResolvers`,void 0),h(this,`_ownMembership`,void 0),h(this,`oldStatus`,void 0),h(this,`scheduler`,void 0),h(this,`state`,void 0),h(this,`deviceId`,void 0),h(this,`userId`,void 0),h(this,`stateKey`,void 0),h(this,`rtcTransport`,void 0),h(this,`fociPreferred`,void 0),h(this,`delayedLeaveEventDelayMsOverride`,void 0),h(this,`clientSendDelayedDisconnectMembership`,()=>this.client._unstable_sendDelayedStateEvent(this.room.roomId,{delay:this.delayedLeaveEventDelayMs},E.GroupCallMemberPrefix,{},this.stateKey)),h(this,`clientSendMembership`,e=>this.client.sendStateEvent(this.room.roomId,E.GroupCallMemberPrefix,e,this.stateKey)),this.logger=(a??w).getChild(`[MembershipManager]`);var o=[this.client.getUserId(),this.client.getDeviceId()],s=o[0],c=o[1];if(s===null)throw Error(`Missing userId in client`);if(c===null)throw Error(`Missing deviceId in client`);this.deviceId=c,this.userId=s,this.stateKey=this.makeMembershipStateKey(s,c),this.state=e.defaultState,this.callIntent=t?.callIntent,this.scheduler=new NP(e=>(this.oldStatus&&(this.logger.debug(`MembershipManager applied action changes. Status: ${this.oldStatus} -> ${this.status}`),this.oldStatus!==this.status&&this.emit(zP.StatusChanged,this.oldStatus,this.status)),this.oldStatus=this.status,this.logger.debug(`MembershipManager before processing action. status=${this.oldStatus}`),this.membershipLoopHandler(e)),this.logger)}get ownMembership(){return this._ownMembership}static get defaultState(){return{hasMemberStateEvent:!1,delayId:void 0,startTime:0,rateLimitRetries:new Map,networkErrorRetries:new Map,expireUpdateIterations:1,probablyLeft:!1}}get networkErrorRetryMs(){return this.joinConfig?.networkErrorRetryMs??3e3}get membershipEventExpiryMs(){return this.joinConfig?.membershipEventExpiryMs??kP}get membershipEventExpiryHeadroomMs(){return this.joinConfig?.membershipEventExpiryHeadroomMs??5e3}computeNextExpiryActionTs(e){return this.state.startTime+Math.min(this.membershipEventExpiryMs,UP)*e-this.membershipEventExpiryHeadroomMs}get delayedLeaveEventDelayMs(){return this.delayedLeaveEventDelayMsOverride??this.joinConfig?.delayedLeaveEventDelayMs??8e3}get delayedLeaveEventRestartMs(){return this.joinConfig?.delayedLeaveEventRestartMs??5e3}get maximumRateLimitRetryCount(){return this.joinConfig?.maximumRateLimitRetryCount??10}get maximumNetworkErrorRetryCount(){return this.joinConfig?.maximumNetworkErrorRetryCount??10}get delayedLeaveEventRestartLocalTimeoutMs(){return this.joinConfig?.delayedLeaveEventRestartLocalTimeoutMs??2e3}membershipLoopHandler(e){var t=this;return C(function*(){switch(e){case Y.SendDelayedEvent:return t.state.delayId?t.cancelKnownDelayIdBeforeSendDelayedEvent(t.state.delayId):t.sendOrResendDelayedLeaveEvent();case Y.RestartDelayedEvent:return t.state.delayId?t.restartDelayedEvent(t.state.delayId):WP(Y.SendDelayedEvent);case Y.SendScheduledDelayedLeaveEvent:return t.state.hasMemberStateEvent?t.state.delayId?t.sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(t.state.delayId):WP(Y.SendLeaveEvent):{replace:[]};case Y.SendJoinEvent:return t.sendJoinEvent();case Y.UpdateExpiry:return t.updateExpiryOnJoinedEvent();case Y.SendLeaveEvent:return t.state.hasMemberStateEvent?t.sendFallbackLeaveEvent():{replace:[]}}})()}sendOrResendDelayedLeaveEvent(){var e=this;return C(function*(){return yield e.clientSendDelayedDisconnectMembership().then(t=>(e.state.expectedServerDelayLeaveTs=Date.now()+e.delayedLeaveEventDelayMs,e.setAndEmitProbablyLeft(!1),e.resetRateLimitCounter(Y.SendDelayedEvent),e.setAndEmitDelayId(t.delay_id),e.state.hasMemberStateEvent?WP(Y.RestartDelayedEvent,e.delayedLeaveEventRestartMs):WP(Y.SendJoinEvent))).catch(t=>{var n=Y.SendDelayedEvent;if(e.manageMaxDelayExceededSituation(t))return WP(n);var r=e.actionUpdateFromErrors(t,n,`_unstable_sendDelayedStateEvent`);if(r)return r;if(e.state.hasMemberStateEvent){if(e.isUnsupportedDelayedEndpoint(t))return{};throw Error(`Could not send delayed event, even though delayed events are supported. `+t)}else return e.isUnsupportedDelayedEndpoint(t)?e.logger.info(`Not using delayed event because the endpoint is not supported`):e.logger.info(`Not using delayed event because: `+t),WP(Y.SendJoinEvent)})})()}cancelKnownDelayIdBeforeSendDelayedEvent(e){var t=this;return C(function*(){return yield t.client._unstable_cancelScheduledDelayedEvent(e).then(()=>(t.setAndEmitDelayId(void 0),t.resetRateLimitCounter(Y.SendDelayedEvent),GP(Y.SendDelayedEvent))).catch(e=>{var n=Y.SendDelayedEvent,r=t.actionUpdateFromErrors(e,n,`cancelScheduledDelayedEvent`);if(r)return r;if(t.isNotFoundError(e))return t.setAndEmitDelayId(void 0),GP(n);if(t.isUnsupportedDelayedEndpoint(e))return GP(Y.SendJoinEvent);throw Error(`We failed to cancel a delayed event where we already had a delay id with an error we cannot automatically handle`)})})()}setAndEmitProbablyLeft(e){this.state.probablyLeft!==e&&(this.state.probablyLeft=e,this.emit(zP.ProbablyLeft,this.state.probablyLeft))}setAndEmitDelayId(e){this.state.delayId!==e&&(this.state.delayId=e,this.emit(zP.DelayIdChanged,this.state.delayId))}restartDelayedEvent(e){var t=this;return C(function*(){var n=t.state.expectedServerDelayLeaveTs?t.state.expectedServerDelayLeaveTs-Date.now():void 0,r=new Promise((e,r)=>{setTimeout(()=>{r(new uE(`Restart delayed event timed out before the HS responded`))},n!==void 0&&!t.state.probablyLeft?Math.min(t.delayedLeaveEventRestartLocalTimeoutMs,n):t.delayedLeaveEventRestartLocalTimeoutMs)});return yield Promise.race([t.client._unstable_restartScheduledDelayedEvent(e),r]).then(()=>(t.state.expectedServerDelayLeaveTs=Date.now()+t.delayedLeaveEventDelayMs,t.resetRateLimitCounter(Y.RestartDelayedEvent),t.setAndEmitProbablyLeft(!1),WP(Y.RestartDelayedEvent,t.delayedLeaveEventRestartMs))).catch(e=>{t.state.expectedServerDelayLeaveTs&&t.state.expectedServerDelayLeaveTs<=Date.now()&&t.setAndEmitProbablyLeft(!0);var n=Y.RestartDelayedEvent;if(t.isNotFoundError(e))return t.setAndEmitDelayId(void 0),WP(Y.SendDelayedEvent);if(t.isUnsupportedDelayedEndpoint(e))return{};var r=t.actionUpdateFromErrors(e,n,`restartScheduledDelayedEvent`);if(r)return r;throw Error(`Could not restart delayed event, even though delayed events are supported. `+e)})})()}sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(e){var t=this;return C(function*(){return yield t.client._unstable_sendScheduledDelayedEvent(e).then(()=>(t.state.hasMemberStateEvent=!1,t.setAndEmitDelayId(void 0),t.resetRateLimitCounter(Y.SendScheduledDelayedLeaveEvent),{replace:[]})).catch(e=>{var n=Y.SendLeaveEvent;return t.isUnsupportedDelayedEndpoint(e)?{}:t.isNotFoundError(e)?(t.setAndEmitDelayId(void 0),WP(n)):t.actionUpdateFromErrors(e,n,`sendScheduledDelayedEvent`)||(t.logger.warn(`Encountered unexpected error during SendScheduledDelayedLeaveEvent. Falling back to SendLeaveEvent`,e),WP(n))})})()}sendJoinEvent(){var e=this;return C(function*(){return yield e.clientSendMembership(e.makeMyMembership(e.membershipEventExpiryMs)).then(()=>(e.setAndEmitProbablyLeft(!1),e.state.startTime=Date.now(),e.state.expireUpdateIterations=1,e.state.hasMemberStateEvent=!0,e.resetRateLimitCounter(Y.SendJoinEvent),{replace:[...e.scheduler.actions.filter(e=>e.type!==Y.UpdateExpiry&&e.type!==Y.SendJoinEvent),{ts:Date.now(),type:Y.RestartDelayedEvent},{ts:e.computeNextExpiryActionTs(e.state.expireUpdateIterations),type:Y.UpdateExpiry}]})).catch(t=>{var n=e.actionUpdateFromErrors(t,Y.SendJoinEvent,`sendStateEvent`);if(n)return n;throw t})})()}updateExpiryOnJoinedEvent(){var e=this;return C(function*(){var t=e.state.expireUpdateIterations+1;return yield e.clientSendMembership(e.makeMyMembership(e.membershipEventExpiryMs*t)).then(()=>(e.resetRateLimitCounter(Y.UpdateExpiry),e.state.expireUpdateIterations=t,{insert:[{ts:e.computeNextExpiryActionTs(t),type:Y.UpdateExpiry}]})).catch(t=>{var n=e.actionUpdateFromErrors(t,Y.UpdateExpiry,`sendStateEvent`);if(n)return n;throw t})})()}sendFallbackLeaveEvent(){var e=this;return C(function*(){return yield e.clientSendMembership({}).then(()=>(e.resetRateLimitCounter(Y.SendLeaveEvent),e.state.hasMemberStateEvent=!1,{replace:[]})).catch(t=>{var n=e.actionUpdateFromErrors(t,Y.SendLeaveEvent,`sendStateEvent`);if(n)return n;throw t})})()}makeMembershipStateKey(e,t){var n=this.slotDescription.application,r=`${e}_${t}_${n}${n===`m.call`&&this.slotDescription.id===`ROOM`?``:this.slotDescription.id}`;return/^org\.matrix\.msc(3757|3779)\b/.exec(this.room.getVersion())?r:`_${r}`}makeMyMembership(e){var t=this.ownMembership,n=this.slotDescription.application===`m.call`&&this.slotDescription.id===`ROOM`,r=this.rtcTransport===void 0?{focus_active:{type:`livekit`,focus_selection:`oldest_membership`},foci_preferred:this.fociPreferred??[]}:{focus_active:{type:`livekit`,focus_selection:`multi_sfu`},foci_preferred:[this.rtcTransport,...this.fociPreferred??[]]};return HP(HP({application:this.slotDescription.application,call_id:n?``:this.slotDescription.id,scope:`m.room`,device_id:this.deviceId,membershipID:`${this.userId}:${this.deviceId}`,expires:e,"m.call.intent":this.callIntent},r),t===void 0?void 0:{created_ts:t.createdTs()})}isNotFoundError(e){return e instanceof I&&e.errcode===`M_NOT_FOUND`}manageMaxDelayExceededSituation(e){if(e instanceof I&&e.errcode===`M_UNKNOWN`&&e.data[`org.matrix.msc4140.errcode`]===`M_MAX_DELAY_EXCEEDED`){var t=e.data[`org.matrix.msc4140.max_delay`];return typeof t==`number`&&this.delayedLeaveEventDelayMs>t&&(this.delayedLeaveEventDelayMsOverride=t),this.logger.warn(`Retry sending delayed disconnection event due to server timeout limitations:`,e),!0}return!1}actionUpdateFromErrors(e,t,n){var r=this.actionUpdateFromRateLimitError(e,n,t);if(r)return r;var i=this.actionUpdateFromNetworkErrorRetry(e,t);if(i)return i}actionUpdateFromRateLimitError(e,t,n){if((e instanceof Uk||e instanceof I)&&e.isRateLimitError()){var r=this.state.rateLimitRetries.get(n)??0;if(r=500&&e.httpStatus<600)this.logger.warn(`Server error while sending event, retrying in `+r+` `+i,e);else return;if(ne.type);if((t.includes(Y.RestartDelayedEvent)||t.includes(Y.SendDelayedEvent)&&this.state.hasMemberStateEvent)&&t.includes(Y.UpdateExpiry))return jP.Connected}else if(e.length===3){var n=e.map(e=>e.type);if(n.filter(e=>e===Y.RestartDelayedEvent).length===2&&n.includes(Y.UpdateExpiry))return jP.Connected}return this.scheduler.running?(this.logger.error(`MembershipManager has an unknown state. Actions: `,e),jP.Unknown):jP.Disconnected}get probablyLeft(){return this.state.probablyLeft}get delayId(){return this.state.delayId}},qP=class e extends KP{constructor(e,t,n,r,i,a){super(e,t,n,r,a),this.clientWithSticky=n,this.memberId=i,h(this,`clientSendDelayedDisconnectMembership`,()=>this.clientWithSticky._unstable_sendStickyDelayedEvent(this.room.roomId,UP,{delay:this.delayedLeaveEventDelayMs},null,E.RTCMembership,{msc4354_sticky_key:this.memberId})),h(this,`clientSendMembership`,e=>this.clientWithSticky._unstable_sendStickyEvent(this.room.roomId,UP,null,E.RTCMembership,HP(HP({},e),{},{msc4354_sticky_key:this.memberId})))}actionUpdateFromErrors(t,n,r){return super.actionUpdateFromErrors(t,n,e.nameMap.get(r)??`unknown`)}makeMyMembership(){var e=this.ownMembership,t=BP(this.rtcTransport)?this.rtcTransport:void 0,n=e!=null&&e.eventId?{"m.relation":{rel_type:D.Reference,event_id:e?.eventId}}:{};return HP({application:HP({type:this.slotDescription.application},this.callIntent?{"m.call.intent":this.callIntent}:{}),slot_id:xP(this.slotDescription),rtc_transports:t?[{type:t.type,livekit_service_url:t.livekit_service_url}]:[],member:{device_id:this.deviceId,user_id:this.userId,id:this.memberId},versions:[]},n)}};h(qP,`nameMap`,new Map([[`sendStateEvent`,`_unstable_sendStickyEvent`],[`sendDelayedStateEvent`,`_unstable_sendStickyDelayedEvent`]]));var JP=function(e){return e.ReceivedKeys=`received_keys`,e.NotSupportedError=`not_supported_error`,e}({}),YP=class{constructor(e,t,n,r,i,a){this.ownMembership=e,this.getMemberships=t,this.transport=n,this.onEncryptionKeysChanged=r,h(this,`manageMediaKeys`,!1),h(this,`useHashedRtcBackendIdentity`,!1),h(this,`ownRtcBackendIdentityCache`,void 0),h(this,`participantKeyRings`,new Map),h(this,`outboundSession`,null),h(this,`currentKeyDistributionPromise`,null),h(this,`useKeyDelay`,5e3),h(this,`keyRotationGracePeriodMs`,1e4),h(this,`needToEnsureKeyAgain`,!1),h(this,`keyBuffer`,new yP),h(this,`logger`,void 0),h(this,`rtcIdentityProvider`,void 0),h(this,`keysWithoutMatchingRTCMembership`,[]),h(this,`onNewKeyReceived`,(e,t,n,r)=>{var i;if(!this.manageMediaKeys){var a;(a=this.logger)==null||a.warn(`Received key over transport ${e.userId}:${e.deviceId} at index ${n} but media keys are disabled`);return}(i=this.logger)==null||i.debug(`Received key over transport ${e.userId}:${e.deviceId} at index ${n}`);var o={key:hj(t),membership:e,keyIndex:n,creationTS:r};if(!this.keyBuffer.isOutdated(e,o))this.addKeyToParticipant(o.key,o.keyIndex,o.membership);else{var s;(s=this.logger)==null||s.info(`Received an out of order key for ${e.userId}:${e.deviceId}, dropping it`)}}),this.logger=i?.getChild(`[EncryptionManager]`),this.rtcIdentityProvider=a??DP}getOwnRtcBackendIdentity(){var e=this;return C(function*(){if(e.ownRtcBackendIdentityCache)return e.ownRtcBackendIdentityCache;if(e.useHashedRtcBackendIdentity){var t,n=e.ownMembership,r=n.userId,i=n.deviceId,a=n.memberId;(t=e.logger)==null||t.info(`Computing RTC backend identity for ${r}:${i}:${a} (SHOULD ONLY BE CALLED ONCE)`),e.ownRtcBackendIdentityCache=yield e.rtcIdentityProvider(r,i,a)}else e.ownRtcBackendIdentityCache=`${e.ownMembership.userId}:${e.ownMembership.deviceId}`;return e.ownRtcBackendIdentityCache})()}getEncryptionKeys(){return new Map(this.participantKeyRings)}checkKeysWithoutMatchingRTCMembership(){var e=this.keysWithoutMatchingRTCMembership;this.keysWithoutMatchingRTCMembership=[],e.forEach(e=>{this.addKeyToParticipant(e.key,e.keyIndex,e.membership)})}addKeyToParticipant(e,t,n){var r=this.getMemberships().find(e=>e.userId===n.userId&&e.deviceId===n.deviceId);if(!r){var i;(i=this.logger)==null||i.info(`No matching RTC membership for key from ${n.userId}:${n.deviceId}, delaying key addition`),this.keysWithoutMatchingRTCMembership.push({key:e,keyIndex:t,membership:n});return}this.addKeyToParticipantWithBackendIdentity(e,t,n,r.rtcBackendIdentity)}addKeyToParticipantWithBackendIdentity(e,t,n,r){var i=_P(n);this.participantKeyRings.has(i)||this.participantKeyRings.set(i,[]),this.participantKeyRings.get(i).push({key:e,keyIndex:t,membership:n,rtcBackendIdentity:r}),this.onEncryptionKeysChanged(e,t,n,r)}join(e){var t;this.manageMediaKeys=e?.manageMediaKeys??!0,this.useHashedRtcBackendIdentity=e?.unstableSendStickyEvents??!1,this.useKeyDelay=e?.useKeyDelay??1e3,this.keyRotationGracePeriodMs=e?.keyRotationGracePeriodMs??1e4,this.transport.on(JP.ReceivedKeys,this.onNewKeyReceived),this.getOwnRtcBackendIdentity(),(t=this.logger)==null||t.info(`Joining room`),this.transport.start()}leave(){this.transport.off(JP.ReceivedKeys,this.onNewKeyReceived),this.transport.stop(),this.participantKeyRings.clear()}ensureKeyDistribution(){if(this.manageMediaKeys)if(this.currentKeyDistributionPromise==null){var e;(e=this.logger)==null||e.debug(`No active rollout, start a new one`),this.currentKeyDistributionPromise=this.rolloutOutboundKey().then(()=>{var e;if((e=this.logger)==null||e.debug(`Rollout completed`),this.currentKeyDistributionPromise=null,this.needToEnsureKeyAgain){var t;(t=this.logger)==null||t.debug(`New Rollout needed`),this.needToEnsureKeyAgain=!1,this.ensureKeyDistribution()}})}else{var t;(t=this.logger)==null||t.debug(`Rollout in progress, a new rollout will be started after the current one`),this.needToEnsureKeyAgain=!0}}onMembershipsUpdate(){var e;arguments.length>0&&arguments[0]!==void 0&&arguments[0],(e=this.logger)==null||e.trace(`onMembershipsUpdate`),this.ensureKeyDistribution(),this.checkKeysWithoutMatchingRTCMembership()}rolloutOutboundKey(){var e=this;return C(function*(){if(e.outboundSession==null){var t={key:e.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:0};e.outboundSession=t,e.addKeyToParticipantWithBackendIdentity(t.key,t.keyId,e.ownMembership,yield e.getOwnRtcBackendIdentity())}var n=e.getMemberships().filter(e=>e.sender!=null).map(e=>({userId:e.sender,deviceId:e.deviceId,membershipTs:e.createdTs()})),r=e.outboundSession?.sharedWith??[];r=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs!=t.membershipTs));var i=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),a=n.filter(e=>!r.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),o=[],s,c=!1;if(i.length>0){var l=e.createNewOutboundSession();c=!0,o=n,s=l}else if(a.length>0){var u=Date.now()-e.outboundSession.creationTS;if(u`${e.userId}:${e.deviceId}`).join(`,`)}`),c){var g,_;(g=e.logger)==null||g.trace(`Delay Rollout for key:${s.keyId}...`),yield UE(e.useKeyDelay),(_=e.logger)==null||_.trace(`...Delayed rollout of index:${s.keyId} `),e.addKeyToParticipantWithBackendIdentity(s.key,s.keyId,e.ownMembership,yield e.getOwnRtcBackendIdentity())}}catch(t){var v;(v=e.logger)==null||v.error(`Failed to rollout key`,t)}})()}createNewOutboundSession(){var e,t={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:this.nextKeyIndex()};return(e=this.logger)==null||e.info(`creating new outbound key index:${t.keyId}`),this.outboundSession=t,t}nextKeyIndex(){return this.outboundSession?(this.outboundSession.keyId+1)%256:0}generateRandomKey(){var e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),e}},XP=class extends Error{constructor(e){super(e)}get name(){return`NotSupportedError`}},ZP=class extends O{setParentLogger(e){this.logger=e.getChild(`[ToDeviceKeyTransport]`)}constructor(e,t,n,r,i){super(),this.membership=e,this.roomId=t,this.client=n,this.statistics=r,h(this,`logger`,w),h(this,`onToDeviceEvent`,e=>{if(e.getType()===E.CallEncryptionKeysPrefix){var t=this.getValidEventContent(e);t&&e.getSender()&&this.receiveCallKeyEvent(e.getSender(),t)}}),this.setParentLogger(i??w)}start(){this.client.on(Z.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.off(Z.ToDeviceEvent,this.onToDeviceEvent)}sendKey(e,t,n){var r=this;return C(function*(){var i={keys:{index:t,key:e},room_id:r.roomId,member:{claimed_device_id:r.membership.deviceId,id:r.membership.memberId},session:{call_id:``,application:`m.call`,scope:`m.room`},sent_ts:Date.now()},a=n.map(e=>({userId:e.userId,deviceId:e.deviceId})).filter(e=>!(e.userId==r.membership.userId&&e.deviceId==r.membership.deviceId));a.length>0?(yield r.client.encryptAndSendToDevice(E.CallEncryptionKeysPrefix,a,i).catch(e=>{var t=e.message;if(t.includes(`unknown variant`)&&t.includes(`send_to_device`)||t.includes(`not supported`))throw new XP(`The widget driver does not support to-device encryption`)}),r.statistics.counters.roomEventEncryptionKeysSent+=1):r.logger.warn(`No targets found for sending key`)})()}receiveCallKeyEvent(e,t){this.statistics.counters.roomEventEncryptionKeysReceived+=1;var n=Date.now(),r=n-(typeof t.sent_ts==`number`?t.sent_ts:n);this.statistics.totals.roomEventEncryptionKeysReceivedTotalAge+=r;var i=`${e}:${t.member.claimed_device_id}`;this.emit(JP.ReceivedKeys,{userId:e,deviceId:t.member.claimed_device_id,memberId:t.member.id??i},t.keys.key,t.keys.index,n)}getValidEventContent(e){var t=e.getContent(),n=t.room_id;if(!n){this.logger.warn(`Malformed Event: invalid call encryption keys event, no roomId`);return}if(n!==this.roomId){this.logger.warn(`Malformed Event: Mismatch roomId`);return}if(!t.keys||!t.keys.key||typeof t.keys.index!=`number`){this.logger.warn(`Malformed Event: Missing keys field`);return}if(!t.member||!t.member.claimed_device_id){this.logger.warn(`Malformed Event: Missing claimed_device_id`);return}return t}};function QP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $P(e){for(var t=1;t2&&n[2]!==void 0?n[2]:tF,i=w.getChild(`[MatrixRTCSession ${e.roomId} ${t.application}#${t.id}]`),a=yield rF(e,sF(e,r,i),t,i);return a.sort((e,t)=>e.createdTs()-t.createdTs()),a.length>1&&i.debug(`Call memberships in room ${e.roomId}, in order: `,a.map(e=>[e.createdTs(),e.userId])),a})()}static sessionForSlot(t,n,r,i){return new e(t,n,r,i)}get room(){return this.roomSubset}constructor(t,n,r,i){var a;super(),a=this,this.client=t,this.roomSubset=n,this.slotDescription=r,this.calculateMembershipsOpts=i,h(this,`membershipManager`,void 0),h(this,`encryptionManager`,void 0),h(this,`joinConfig`,void 0),h(this,`logger`,void 0),h(this,`pendingNotificationToSend`,void 0),h(this,`expiryTimeout`,void 0),h(this,`memberships`,[]),h(this,`initialMembershipCalculated`,void 0),h(this,`membershipNeedsRecalculation`,!1),h(this,`statistics`,{counters:{roomEventEncryptionKeysSent:0,roomEventEncryptionKeysReceived:0},totals:{roomEventEncryptionKeysReceivedTotalAge:0}}),h(this,`reEmitter`,new VO(this)),h(this,`onRoomMemberUpdate`,()=>{this.ensureRecalculateSessionMembers()}),h(this,`onStickyEventUpdate`,(e,t,n)=>{[...e,...n,...t.flatMap(e=>[e.current,e.previous])].some(e=>e.getType()===E.RTCMembership)&&this.ensureRecalculateSessionMembers()}),h(this,`_onRTCSessionMemberUpdate`,C(function*(){yield a.recalculateSessionMembers()})),h(this,`recalculateSessionMembersPromise`,Promise.resolve()),h(this,`recalculateSessionMembers`,C(function*(){var t;a.membershipNeedsRecalculation=!1;var n=a.memberships;if(a.memberships=yield e.sessionMembershipsForSlot(a.room,a.slotDescription,a.calculateMembershipsOpts),n.length!=a.memberships.length||n.some((e,t)=>!AP.equal(e,a.memberships[t]))){var r;a.logger.info(`Memberships for call in room ${a.roomSubset.roomId} have changed: emitting (${a.memberships.length} members)`),KE(a.logger,`emit MatrixRTCSessionEvent.MembershipsChanged`,()=>{a.emit(eF.MembershipsChanged,n,a.memberships)}),(r=a.membershipManager)==null||r.onRTCSessionMemberUpdate(a.memberships);var i=a.membershipManager?.ownMembership;if(a.pendingNotificationToSend&&i&&n.length===0){var o;i.eventId&&(o=a.joinConfig)!=null&&o.notificationType?a.sendCallNotify(i.eventId,a.joinConfig.notificationType,i.callIntent):a.logger.warn(`Own membership eventId is undefined, cannot send call notification`)}a.memberships.length>0&&(a.pendingNotificationToSend=void 0)}else a.logger.debug(`No membership changes detected for room ${a.roomSubset.roomId}`);(t=a.encryptionManager)==null||t.onMembershipsUpdate(n),a.setExpiryTimer()})),this.logger=w.getChild(`[MatrixRTCSession ${n.roomId} ${r.application}#${r.id}]`),this.roomSubset.on(j.Members,this.onRoomMemberUpdate),this.roomSubset.on(kA.Update,this.onStickyEventUpdate),this.initialMembershipCalculated=this.ensureRecalculateSessionMembers(),this.setExpiryTimer()}isJoined(){return this.membershipManager?.isJoined()??!1}stop(){var e=this;return C(function*(){yield e.membershipManager?.leave(1e3),e.expiryTimeout&&=(clearTimeout(e.expiryTimeout),void 0),e.roomSubset.off(j.Members,e.onRoomMemberUpdate),e.roomSubset.off(kA.Update,e.onStickyEventUpdate)})()}joinRTCSession(e,t,n,r){if(this.isJoined()){this.logger.info(`Already joined to session in room ${this.roomSubset.roomId}: ignoring join call`);return}else{this.membershipManager=r!=null&&r.unstableSendStickyEvents?new qP(r,this.roomSubset,this.client,this.slotDescription,e.memberId,this.logger):new KP(r,this.roomSubset,this.client,this.slotDescription,this.logger),this.reEmitter.reEmit(this.membershipManager,[zP.ProbablyLeft,zP.StatusChanged,zP.DelayIdChanged]);var i=[this.roomSubset,this.client,this.statistics],a=i[0],o=i[1],s=i[2],c=new ZP(e,a.roomId,o,s);this.encryptionManager=new YP(e,()=>this.memberships,c,(e,t,n,r)=>{this.emit(eF.EncryptionKeyChanged,e,t,n,r)},this.logger)}this.joinConfig=r,this.pendingNotificationToSend=this.joinConfig?.notificationType,this.membershipManager.join(t,n,e=>{this.logger.error(`MembershipManager encountered an unrecoverable error: `,e),this.emit(eF.MembershipManagerError,e),this.emit(eF.JoinStateChanged,this.isJoined())}),this.encryptionManager.join(r),this.emit(eF.JoinStateChanged,!0)}joinRoomSession(e,t,n){var r=this.client.getUserId(),i=this.client.getDeviceId(),a=`${r}:${i}`;this.joinRTCSession({userId:r,deviceId:i,memberId:a},e,t,n)}leaveRoomSession(){var e=arguments,t=this;return C(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:void 0;if(!t.isJoined())return t.logger.info(`Not joined to session in room ${t.roomSubset.roomId}: ignoring leave call`),!1;t.logger.info(`Leaving call session in room ${t.roomSubset.roomId}`),t.encryptionManager.leave();var r=t.membershipManager.leave(n);return t.emit(eF.JoinStateChanged,!1),yield r})()}getFocusInUse(){var e=this.getOldestMembership();return e?.getTransport(e)}getOldestMembership(){return this.memberships[0]}getConsensusCallIntent(){var e=this.memberships.find(e=>!!e.callIntent)?.callIntent;if(e&&this.memberships.every(t=>!t.callIntent||t.callIntent===e))return e}updateCallIntent(e){var t=this;return C(function*(){if(!t.membershipManager?.ownMembership)throw Error(`Not connected yet`);yield t.membershipManager?.updateCallIntent(e)})()}reemitEncryptionKeys(){var e;(e=this.encryptionManager)==null||e.getEncryptionKeys().forEach((e,t)=>{e.forEach(e=>{this.emit(eF.EncryptionKeyChanged,e.key,e.keyIndex,e.membership,e.rtcBackendIdentity)})})}setExpiryTimer(){this.expiryTimeout&&=(clearTimeout(this.expiryTimeout),void 0);var e;for(var t of this.memberships){var n=t.getMsUntilExpiry();n!==void 0&&(e===void 0||nvoid this.ensureRecalculateSessionMembers(),e))}sendCallNotify(e,t,n){var r=this;(function(){var i=C(function*(){var i={"m.mentions":{user_ids:[],room:!0},notification_type:t,"m.relates_to":{event_id:e,rel_type:D.Reference},sender_ts:Date.now(),lifetime:3e4};return n&&(i[`m.call.intent`]=n),{response:yield r.client.sendEvent(r.roomSubset.roomId,E.RTCNotification,i),content:i}});return function(){return i.apply(this,arguments)}})()().then(e=>{var t=$P($P({},e.response),e.content);this.emit(eF.DidSendCallNotification,t)}).catch(e=>{var t=x(e,2),n=t[0],r=t[1];return this.logger.error(`Failed to send call notification`,n,r)})}ensureRecalculateSessionMembers(){return this.membershipNeedsRecalculation?this.recalculateSessionMembersPromise:(this.membershipNeedsRecalculation=!0,this.recalculateSessionMembersPromise=this.recalculateSessionMembersPromise.then(()=>this.recalculateSessionMembers(),()=>this.recalculateSessionMembers()),this.recalculateSessionMembersPromise)}};function rF(e,t,n,r){return iF.apply(this,arguments)}function iF(){return iF=C(function*(e,t,n,r){var i=[];for(var a of t)if(aF(a.getContent(),r))try{var o=yield AP.parseFromEvent(a);oF(o,e,n,r)&&i.push(o)}catch(e){r.warn(`Couldn't construct call membership: `,e)}return i}),iF.apply(this,arguments)}function aF(e,t){var n=Object.keys(e).filter(e=>e!==`msc4354_sticky_key`).length;return n===0?!1:n>1&&`application`in e?!0:(n===1&&`memberships`in e,!1)}function oF(e,t,n,r){return e.slotDescription.id===n.id?e.isExpired()?(r.info(`Ignoring expired device membership ${e.userId}/${e.deviceId}`),!1):t.hasMembershipState(e.userId??``,k.Join)?!0:(r.info(`Ignoring membership of user ${e.userId} who is not in the room.`),!1):(r.info(`Ignoring membership of user ${e.userId} for a different slot. Theirs: ${JSON.stringify(e.slotDescription)}, Expected: ${JSON.stringify(n)}`),!1)}function sF(e,t,n){var r=t.listenForStickyEvents,i=t.listenForMemberStateEvents,a=[];if(r&&(a=[...e._unstable_getStickyEvents()].filter(e=>e.getType()===E.RTCMembership)),i){var o=e.getLiveTimeline().getState(N.FORWARDS);if(!o)return n.warn(`Couldn't get state for room `+e.roomId+`using empty membership array`),[];var s=o.getStateEvents(E.GroupCallMemberPrefix);a=a.concat(s.filter(e=>!a.some(t=>t.getContent().msc4354_sticky_key===e.getStateKey())))}return a}var cF=function(e){return e.SessionStarted=`session_started`,e.SessionEnded=`session_ended`,e}({}),lF=class extends O{constructor(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{application:`m.call`,id:`ROOM`};super(),this.client=t,this.slotDescription=n,h(this,`roomSessions`,new Map),h(this,`logger`,void 0),h(this,`onRoom`,e=>{this.refreshRoom(e)}),h(this,`onEvent`,e=>{if(e.unstableStickyExpiresAt&&e.getType()===E.RTCMembership){var t=this.client.getRoom(e.getRoomId());t&&this.refreshRoom(t)}}),h(this,`onRoomState`,e=>{if(e.getType()===E.GroupCallMemberPrefix){var t=this.client.getRoom(e.getRoomId());if(!t){this.logger.error(`Got room state event for unknown room ${e.getRoomId()}!`);return}this.refreshRoom(t)}}),this.logger=e.getChild(`[MatrixRTCSessionManager ${xP(n)}]`)}start(){for(var e of(t=this.client.getRooms())??[]){var t,n=nF.sessionForSlot(this.client,e,this.slotDescription);n.memberships.length>0&&this.roomSessions.set(e.roomId,n)}this.client.on(Z.Room,this.onRoom),this.client.on(Z.Event,this.onEvent),this.client.on(j.Events,this.onRoomState)}stop(){for(var e of this.roomSessions.values())e.stop();this.roomSessions.clear(),this.client.off(Z.Room,this.onRoom),this.client.off(Z.Event,this.onEvent),this.client.off(j.Events,this.onRoomState)}getActiveRoomSession(e){return this.roomSessions.get(e.roomId)}getRoomSession(e){return this.roomSessions.has(e.roomId)||this.roomSessions.set(e.roomId,nF.sessionForSlot(this.client,e,this.slotDescription)),this.roomSessions.get(e.roomId)}refreshRoom(e){var t=this;return C(function*(){var n=!t.roomSessions.has(e.roomId),r=t.getRoomSession(e),i=r.memberships.length>0&&!n;yield r._onRTCSessionMemberUpdate().catch(n=>{t.logger.error(`Error updating RTC session members for ${e.roomId}: ${n}`)});var a=r.memberships.length>0;i&&!a?(t.logger.trace(`Session ended for ${e.roomId} (${r.memberships.length} members)`),t.emit(cF.SessionEnded,e.roomId,t.roomSessions.get(e.roomId))):!i&&a&&(t.logger.trace(`Session started for ${e.roomId} (${r.memberships.length} members)`),t.emit(cF.SessionStarted,e.roomId,t.roomSessions.get(e.roomId)))})()}};function uF(e){return t=>{var n,r;return((n=t.content)==null||(n=n[`m.relates_to`])==null?void 0:n.event_id)!==e||((r=t.content)==null||(r=r[`m.relates_to`])==null?void 0:r.rel_type)===Q.name}}var dF=class extends Error{};dF.prototype.name=`InvalidTokenError`;function fF(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function pF(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`base64 string is not of the correct length`)}try{return fF(t)}catch{return atob(t)}}function mF(e,t){if(typeof e!=`string`)throw new dF(`Invalid token specified: must be a string`);t||={};let n=t.header===!0?0:1,r=e.split(`.`)[n];if(typeof r!=`string`)throw new dF(`Invalid token specified: missing part #${n+1}`);let i;try{i=pF(r)}catch(e){throw new dF(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new dF(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var hF={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},gF,_F,vF=(e=>(e[e.NONE=0]=`NONE`,e[e.ERROR=1]=`ERROR`,e[e.WARN=2]=`WARN`,e[e.INFO=3]=`INFO`,e[e.DEBUG=4]=`DEBUG`,e))(vF||{});(e=>{function t(){gF=3,_F=hF}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);gF=e}e.setLevel=n;function r(e){_F=e}e.setLogger=r})(vF||={});var yF=class e{constructor(e){this._name=e}debug(...t){gF>=4&&_F.debug(e._format(this._name,this._method),...t)}info(...t){gF>=3&&_F.info(e._format(this._name,this._method),...t)}warn(...t){gF>=2&&_F.warn(e._format(this._name,this._method),...t)}error(...t){gF>=1&&_F.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){let t=Object.create(this);return t._method=e,t.debug(`begin`),t}static createStatic(t,n){let r=new e(`${t}.${n}`);return r.debug(`begin`),r}static _format(e,t){let n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(t,...n){gF>=4&&_F.debug(e._format(t),...n)}static info(t,...n){gF>=3&&_F.info(e._format(t),...n)}static warn(t,...n){gF>=2&&_F.warn(e._format(t),...n)}static error(t,...n){gF>=1&&_F.error(e._format(t),...n)}};vF.reset();var bF=class{static decode(e){try{return mF(e)}catch(e){throw yF.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${wF.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${wF.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign({name:`ECDSA`,hash:{name:`SHA-256`}},n,new TextEncoder().encode(r));return`${r}.${wF.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${wF.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${wF.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${wF.encodeBase64Url(new Uint8Array(i))}`}},xF=`10000000-1000-4000-8000-100000000000`,SF=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),CF=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return xF.replace(/[018]/g,t=>(t^e._randomWord()&15>>t/4).toString(16)).replace(/-/g,``)}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw Error(`Crypto.subtle is available only in secure contexts (HTTPS).`);try{let t=new TextEncoder().encode(e);return SF(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw yF.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return SF(new TextEncoder().encode([e,t].join(`:`)))}static async hash(e,t){let n=new TextEncoder().encode(t),r=await crypto.subtle.digest(e,n);return new Uint8Array(r)}static async customCalculateJwkThumbprint(t){let n;switch(t.kty){case`RSA`:n={e:t.e,kty:t.kty,n:t.n};break;case`EC`:n={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case`OKP`:n={crv:t.crv,kty:t.kty,x:t.x};break;case`oct`:n={crv:t.k,kty:t.kty};break;default:throw Error(`Unknown jwk type`)}let r=await e.hash(`SHA-256`,JSON.stringify(n));return e.encodeBase64Url(r)}static async generateDPoPProof({url:t,accessToken:n,httpMethod:r,keyPair:i,nonce:a}){let o,s,c={jti:window.crypto.randomUUID(),htm:r??`GET`,htu:t,iat:Math.floor(Date.now()/1e3)};n&&(o=await e.hash(`SHA-256`,n),s=e.encodeBase64Url(o),c.ath=s),a&&(c.nonce=a);try{let e=await crypto.subtle.exportKey(`jwk`,i.publicKey),t={alg:`ES256`,typ:`dpop+jwt`,jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await bF.generateSignedJwt(t,c,i.privateKey)}catch(e){throw e instanceof TypeError?Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{let n=await crypto.subtle.exportKey(`jwk`,t.publicKey);return await e.customCalculateJwkThumbprint(n)}catch(e){throw e instanceof TypeError?Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`,`verify`])}static async generateClientAssertionJwt(t,n,r,i=`HS256`){let a=Math.floor(Date.now()/1e3),o={alg:i,typ:`JWT`},s={iss:t,sub:t,aud:r,jti:e.generateUUIDv4(),exp:a+300,iat:a},c={HS256:`SHA-256`,HS384:`SHA-384`,HS512:`SHA-512`}[i];if(!c)throw Error(`Unsupported algorithm: ${i}. Supported algorithms are: HS256, HS384, HS512`);let l=new TextEncoder,u=await crypto.subtle.importKey(`raw`,l.encode(n),{name:`HMAC`,hash:c},!1,[`sign`]);return await bF.generateSignedJwtWithHmac(o,s,u)}};CF.encodeBase64Url=e=>SF(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var wF=CF,TF=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new yF(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){let t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug(`raise:`,...e);for(let t of this._callbacks)await t(...e)}},EF=class e extends TF{constructor(){super(...arguments),this._logger=new yF(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{let t=this._expiration-e.getEpochTime();this._logger.debug(`timer completes in`,t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){let n=this._logger.create(`init`);t=Math.max(Math.floor(t),1);let r=e.getEpochTime()+t;if(this.expiration===r&&this._timerHandle){n.debug(`skipping since already initialized for expiration at`,this.expiration);return}this.cancel(),n.debug(`using duration`,t),this._expiration=r;let i=Math.min(t,5);this._timerHandle=setInterval(this._callback,i*1e3)}get expiration(){return this._expiration}cancel(){this._logger.create(`cancel`),this._timerHandle&&=(clearInterval(this._timerHandle),null)}},DF=`;`,OF=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw yF.error(`ErrorResponse`,`No error passed`),Error(`No error passed`);this.error=e.error,this.error_description=e.error_description??null,this.error_uri=e.error_uri??null,this.state=e.userState,this.session_state=e.session_state??null,this.url_state=e.url_state}},kF=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},AF=class{constructor(){this._logger=new yF(`InMemoryWebStorage`),this._data={}}clear(){this._logger.create(`clear`),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},jF=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},MF=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new yF(`JsonService`),this._contentTypes=[],this._contentTypes.push(...e,`application/json`),t&&this._contentTypes.push(`application/jwt`)}async fetchWithTimeout(e,t={}){let{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);let i=new AbortController,a=setTimeout(()=>i.abort(),n*1e3);try{return await fetch(e,{...t,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new kF(`Network timed out`):e}finally{clearTimeout(a)}}async getJson(e,{token:t,credentials:n,timeoutInSeconds:r}={}){let i=this._logger.create(`getJson`),a={Accept:this._contentTypes.join(`, `)};t&&(i.debug(`token passed, setting Authorization header`),a.Authorization=`Bearer `+t),this._appendExtraHeaders(a);let o;try{i.debug(`url:`,e),o=await this.fetchWithTimeout(e,{method:`GET`,headers:a,timeoutInSeconds:r,credentials:n})}catch(e){throw i.error(`Network Error`),e}i.debug(`HTTP response received, status`,o.status);let s=o.headers.get(`Content-Type`);if(s&&!this._contentTypes.find(e=>s.startsWith(e))&&i.throw(Error(`Invalid response Content-Type: ${s??`undefined`}, from URL: ${e}`)),o.ok&&this._jwtHandler&&s?.startsWith(`application/jwt`))return await this._jwtHandler(await o.text());let c;try{c=await o.json()}catch(e){throw i.error(`Error parsing JSON response`,e),o.ok?e:Error(`${o.statusText} (${o.status})`)}if(!o.ok)throw i.error(`Error from server:`,c),c.error?new OF(c):Error(`${o.statusText} (${o.status}): ${JSON.stringify(c)}`);return c}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:i,extraHeaders:a}){let o=this._logger.create(`postForm`),s={Accept:this._contentTypes.join(`, `),"Content-Type":`application/x-www-form-urlencoded`,...a};n!==void 0&&(s.Authorization=`Basic `+n),this._appendExtraHeaders(s);let c;try{o.debug(`url:`,e),c=await this.fetchWithTimeout(e,{method:`POST`,headers:s,body:t,timeoutInSeconds:r,credentials:i})}catch(e){throw o.error(`Network error`),e}o.debug(`HTTP response received, status`,c.status);let l=c.headers.get(`Content-Type`);if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw Error(`Invalid response Content-Type: ${l??`undefined`}, from URL: ${e}`);let u=await c.text(),d={};if(u)try{d=JSON.parse(u)}catch(e){throw o.error(`Error parsing JSON response`,e),c.ok?e:Error(`${c.statusText} (${c.status})`)}if(!c.ok)throw o.error(`Error from server:`,d),c.headers.has(`dpop-nonce`)?new jF(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new OF(d,t):Error(`${c.statusText} (${c.status}): ${JSON.stringify(d)}`);return d}_appendExtraHeaders(e){let t=this._logger.create(`appendExtraHeaders`),n=Object.keys(this._extraHeaders),r=[`accept`,`content-type`],i=[`authorization`];n.length!==0&&n.forEach(n=>{if(r.includes(n.toLocaleLowerCase())){t.warn(`Protected header could not be set`,n,r);return}if(i.includes(n.toLocaleLowerCase())&&Object.keys(e).includes(n)){t.warn(`Header could not be overridden`,n,i);return}let a=typeof this._extraHeaders[n]==`function`?this._extraHeaders[n]():this._extraHeaders[n];a&&a!==``&&(e[n]=a)})}},NF=class{constructor(e){this._settings=e,this._logger=new yF(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new MF([`application/jwk-set+json`],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug(`using signingKeys from settings`),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug(`using metadata from settings`),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug(`using fetchRequestCredentials from settings`),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){let e=this._logger.create(`getMetadata`);if(this._metadata)return e.debug(`using cached values`),this._metadata;if(!this._metadataUrl)throw e.throw(Error(`No authority or metadataUrl configured on settings`)),null;e.debug(`getting metadata from`,this._metadataUrl);let t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug(`merging remote JSON with seed metadata`),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty(`issuer`)}getAuthorizationEndpoint(){return this._getMetadataProperty(`authorization_endpoint`)}getUserInfoEndpoint(){return this._getMetadataProperty(`userinfo_endpoint`)}getTokenEndpoint(e=!0){return this._getMetadataProperty(`token_endpoint`,e)}getCheckSessionIframe(){return this._getMetadataProperty(`check_session_iframe`,!0)}getEndSessionEndpoint(){return this._getMetadataProperty(`end_session_endpoint`,!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty(`revocation_endpoint`,e)}getKeysEndpoint(e=!0){return this._getMetadataProperty(`jwks_uri`,e)}async _getMetadataProperty(e,t=!1){let n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug(`resolved`),r[e]===void 0){if(t===!0){n.warn(`Metadata does not contain optional property`);return}n.throw(Error(`Metadata does not contain property `+e))}return r[e]}async getSigningKeys(){let e=this._logger.create(`getSigningKeys`);if(this._signingKeys)return e.debug(`returning signingKeys from cache`),this._signingKeys;let t=await this.getKeysEndpoint(!1);e.debug(`got jwks_uri`,t);let n=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug(`got key set`,n),!Array.isArray(n.keys))throw e.throw(Error(`Missing keys on keyset`)),null;return this._signingKeys=n.keys,this._signingKeys}},PF=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new yF(`WebStorageStateStore`),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){return this._logger.create(`get('${e}')`),e=this._prefix+e,await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;let t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create(`getAllKeys`);let e=await this._store.length,t=[];for(let n=0;n0?this.created=e.created:this.created=EF.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new yF(`State`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return yF.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=yF.createStatic(`State`,`clearStaleState`),i=EF.getEpochTime()-n,a=await t.getAllKeys();r.debug(`got keys`,a);for(let n=0;nS.searchParams.append(`resource`,e));for(let[e,t]of Object.entries({response_mode:c,...b,...h}))t!=null&&S.searchParams.append(e,t.toString());return new e({url:S.href,state:x})}};HF._logger=new yF(`SigninRequest`);var UF=function(e){return e.NotSupported=`OIDC authentication not supported`,e.Misconfigured=`OIDC is misconfigured`,e.General=`Something went wrong with OIDC discovery`,e.OpSupport=`Configured OIDC OP does not support required functions`,e.DynamicRegistrationNotSupported=`Dynamic registration not supported`,e.DynamicRegistrationFailed=`Dynamic registration failed`,e.DynamicRegistrationInvalid=`Dynamic registration invalid response`,e.CodeExchangeFailed=`Failed to exchange code for token`,e.InvalidBearerTokenResponse=`Invalid bearer token response`,e.InvalidIdToken=`Invalid ID token`,e.MissingOrInvalidStoredState=`State required to finish logging in is not found in storage.`,e}({}),WF=e=>!!e&&typeof e==`object`&&!Array.isArray(e),GF=(e,t)=>!e[t]||!KF(e,t)?(w.error(`Missing or invalid property: ${t}`),!1):!0,KF=(e,t)=>e[t]&&typeof e[t]!=`string`?(w.error(`Invalid property: ${t}`),!1):!0,qF=(e,t)=>e[t]&&(!Array.isArray(e[t])||!e[t].every(e=>typeof e==`string`))?(w.error(`Invalid property: ${t}`),!1):!0,JF=(e,t,n)=>{var r=e[t];return!r||!Array.isArray(r)||!r.includes(n)?(w.error(`Invalid property: ${t}. ${n} is required.`),!1):!0},YF=e=>{if(!WF(e))throw w.error(`Issuer configuration not found or malformed`),Error(UF.OpSupport);if(![GF(e,`issuer`),GF(e,`authorization_endpoint`),GF(e,`token_endpoint`),GF(e,`revocation_endpoint`),KF(e,`registration_endpoint`),KF(e,`account_management_uri`),KF(e,`device_authorization_endpoint`),qF(e,`account_management_actions_supported`),JF(e,`response_types_supported`,`code`),JF(e,`grant_types_supported`,XF.AuthorizationCode),JF(e,`code_challenge_methods_supported`,`S256`),qF(e,`prompt_values_supported`)].some(e=>!e))return e;throw w.error(`Issuer configuration not valid`),Error(UF.OpSupport)},XF=function(e){return e.AuthorizationCode=`authorization_code`,e.RefreshToken=`refresh_token`,e.DeviceAuthorization=`urn:ietf:params:oauth:grant-type:device_code`,e}({});XF.DeviceAuthorization;function ZF(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function QF(e){for(var t=1;t{this.isInitialSyncComplete()&&(DM()&&(this.callEventHandler.start(),this.groupCallEventHandler.start()),this.off(Z.Sync,this.startCallEventHandler))}),h(this,`startMatrixRTC`,()=>{this.isInitialSyncComplete()&&(this.matrixRTC.start(),this.off(Z.Sync,this.startMatrixRTC))}),h(this,`fixupRoomNotifications`,()=>{if(this.isInitialSyncComplete()){for(var e of(this.getRooms()??[]).filter(e=>e.getUnreadNotificationCount(R.Total)>0)){var t=this.getSafeUserId();e.fixupNotifications(t)}this.off(Z.Sync,this.fixupRoomNotifications)}}),this.logger=e.logger??w,e.baseUrl=HE(e.baseUrl),e.idBaseUrl=HE(e.idBaseUrl),this.baseUrl=e.baseUrl,this.idBaseUrl=e.idBaseUrl,this.identityServer=e.identityServer,this.usingExternalCrypto=e.usingExternalCrypto??!1,this.store=e.store||new aj,this.deviceId=e.deviceId||null,this.sessionId=yj(10);var n=e.userId||null;this.credentials={userId:n},this.http=new wA(this,{fetchFn:e.fetchFn,baseUrl:e.baseUrl,idBaseUrl:e.idBaseUrl,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenRefreshFunction:e.tokenRefreshFunction,prefix:L.V3,onlyData:!0,extraParams:e.queryParams,localTimeoutMs:e.localTimeoutMs,useAuthorizationHeader:e.useAuthorizationHeader,logger:this.logger}),e.pickleKey&&(this.legacyPickleKey=e.pickleKey),this.useLivekitForGroupCalls=!!e.useLivekitForGroupCalls,this.scheduler=e.scheduler,this.scheduler&&this.scheduler.setProcessFunction(function(){var e=C(function*(e){var n=t.getRoom(e.getRoomId());e.status!==P.SENDING&&t.updatePendingEventStatus(n,e,P.SENDING);var r=yield t.sendEventHttpRequest(e);return n&&n.updatePendingEvent(e,P.SENT,r.event_id),r});return function(t){return e.apply(this,arguments)}}()),this.disableVoip=e.disableVoip??!1,!this.disableVoip&&DM()&&(this.callEventHandler=new Mj(this),this.groupCallEventHandler=new Pj(this),this.canSupportVoip=!0,this.on(Z.Sync,this.startCallEventHandler)),this.matrixRTC=new lF(this.logger,this),this.serverCapabilitiesService=new EA(this.logger,this.http),this.retentionPolicyService=new tI(this.logger,this.http),this._unstable_shouldApplyMessageRetention=e.unstableMSC1763Retention??!1,this.on(Z.Sync,this.fixupRoomNotifications),this.timelineSupport=!!e.timelineSupport,this.legacyCryptoStore=e.cryptoStore,this.verificationMethods=e.verificationMethods,this.cryptoCallbacks=e.cryptoCallbacks||{},this.enableEncryptedStateEvents=e.enableEncryptedStateEvents??!1,this.forceTURN=e.forceTURN||!1,this.iceCandidatePoolSize=e.iceCandidatePoolSize===void 0?0:e.iceCandidatePoolSize,this.supportsCallTransfer=e.supportsCallTransfer||!1,this.fallbackICEServerAllowed=e.fallbackICEServerAllowed||!1,this.isVoipWithNoMediaAllowed=e.isVoipWithNoMediaAllowed||!1,e.useE2eForGroupCall!==void 0&&(this.useE2eForGroupCall=e.useE2eForGroupCall),this.livekitServiceURL=e.livekitServiceURL,this.roomNameGenerator=e.roomNameGenerator,this.toDeviceMessageQueue=new AN(this,this.logger),this.on($.Decrypted,e=>{mI(this,e)}),this.ignoredInvites=new IN(this),this._secretStorage=new pP(this,e.cryptoCallbacks??{}),this.setMaxListeners(0)}set store(e){this._store=e,this._store.setUserCreator(e=>sO.createUser(e,this))}get store(){return this._store}startClient(e){var t=this;return C(function*(){if(!t.clientRunning){t.clientRunning=!0,t.on(Z.Sync,t.startMatrixRTC);var n=t.getUserId();n&&t.store.storeUser(new sO(n)),t.supportsVoip()&&(t.checkTurnServersIntervalID=setInterval(()=>{t.checkTurnServers()},aI),t.checkTurnServers()),t.syncApi&&(t.logger.error(`Still have sync object whilst not running: stopping old one`),t.syncApi.stop());try{yield t.getVersions();var r=yield t.doesServerSupportThread(),i=r.threads,a=r.list,o=r.fwdPagination;SI.setServerSideSupport(i),SI.setServerSideListSupport(a),SI.setServerSideFwdPaginationSupport(o)}catch(e){t.logger.error(`Can't fetch server versions, continuing to initialise sync, this will be retried later`,e)}if(t.clientOpts=e??{},t.clientOpts.slidingSync?t.syncApi=new SN(t.clientOpts.slidingSync,t,t.clientOpts,t.buildSyncApiOptions()):t.syncApi=new nj(t,t.clientOpts,t.buildSyncApiOptions()),t.syncApi.sync().catch(e=>t.logger.info(`Sync startup aborted with an error:`,e)),t.clientOpts.clientWellKnownPollPeriod!==void 0&&(t.clientWellKnownIntervalID=setInterval(()=>{t.fetchClientWellKnown()},1e3*t.clientOpts.clientWellKnownPollPeriod),t.fetchClientWellKnown()),t.toDeviceMessageQueue.start(),t.serverCapabilitiesService.start(),t._unstable_shouldApplyMessageRetention){var s;(s=t.retentionPolicyService)==null||s.start()}}})()}buildSyncApiOptions(){return{cryptoCallbacks:this.cryptoBackend,canResetEntireTimeline:e=>this.canResetTimelineCallback?this.canResetTimelineCallback(e):!1,logger:this.logger.getChild(`sync`)}}stopClient(){var e,t,n,r,i;(e=this.cryptoBackend)==null||e.stop(),this.off(Z.Sync,this.startMatrixRTC),this.clientRunning&&(this.logger.debug(`stopping MatrixClient`),this.clientRunning=!1,(t=this.syncApi)==null||t.stop(),this.syncApi=void 0,(n=this.peekSync)==null||n.stopPeeking(),(r=this.callEventHandler)==null||r.stop(),(i=this.groupCallEventHandler)==null||i.stop(),this.callEventHandler=void 0,this.groupCallEventHandler=void 0,globalThis.clearInterval(this.checkTurnServersIntervalID),this.checkTurnServersIntervalID=void 0,this.clientWellKnownIntervalID!==void 0&&globalThis.clearInterval(this.clientWellKnownIntervalID),this.toDeviceMessageQueue.stop(),this.matrixRTC.stop(),this.serverCapabilitiesService.stop())}clearStores(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.clientRunning)throw Error(`Cannot clear stores while client is running`);var n=[];n.push(this.store.deleteAllData()),this.legacyCryptoStore&&n.push(this.legacyCryptoStore.deleteAllData());var r=function(){var n=C(function*(){var n;try{if(n=globalThis.indexedDB,!n)return}catch{return}var r=function*(t){yield new Promise((r,i)=>{e.logger.info(`Removing IndexedDB instance ${t}`);var a=n.deleteDatabase(t);a.onsuccess=n=>{e.logger.info(`Removed IndexedDB instance ${t}`),r(0)},a.onerror=n=>{e.logger.warn(`Failed to remove IndexedDB instance ${t}:`,n),r(0)},a.onblocked=n=>{e.logger.info(`cannot yet remove IndexedDB instance ${t}`)}})};for(var i of[`${(a=t.cryptoDatabasePrefix)??LN}::matrix-sdk-crypto`,`${(o=t.cryptoDatabasePrefix)??LN}::matrix-sdk-crypto-meta`]){var a,o;yield*r(i)}});return function(){return n.apply(this,arguments)}}();return n.push(r()),Promise.all(n).then()}getUserId(){return this.credentials?.userId??null}getSafeUserId(){var e=this.getUserId();if(!e)throw Error(`Expected logged in user but found none.`);return e}getDomain(){var e;return(e=this.credentials)!=null&&e.userId?this.credentials.userId.replace(/^.*?:/,``):null}getUserIdLocalpart(){var e;return((e=this.credentials)==null||(e=e.userId)==null?void 0:e.split(`:`)[0].substring(1))??null}getDeviceId(){return this.deviceId}getSessionId(){return this.sessionId}supportsVoip(){return!this.disableVoip&&this.canSupportVoip}getMediaHandler(){return this.mediaHandler}setForceTURN(e){this.forceTURN=e}setSupportsCallTransfer(e){this.supportsCallTransfer=e}getUseE2eForGroupCall(){return this.useE2eForGroupCall}createCall(e){return OM(this,e)}createGroupCall(e,t,n,r,i,a){var o=this;return C(function*(){if(o.getGroupCallForRoom(e))throw Error(`${e} already has an existing group call`);var s=o.getRoom(e);if(!s)throw Error(`Cannot find room ${e}`);return new uM(o,s,t,n,r,void 0,i||o.isVoipWithNoMediaAllowed,a,o.isVoipWithNoMediaAllowed,o.useLivekitForGroupCalls,o.livekitServiceURL).create()})()}getLivekitServiceURL(){return this.livekitServiceURL}setLivekitServiceURL(e){this.livekitServiceURL=e}waitUntilRoomReadyForGroupCalls(e){return this.groupCallEventHandler.waitUntilRoomReadyForGroupCalls(e)}getGroupCallForRoom(e){return this.groupCallEventHandler.groupCalls.get(e)||null}getSyncState(){return this.syncApi?.getSyncState()??null}getSyncStateData(){return this.syncApi?this.syncApi.getSyncStateData():null}isInitialSyncComplete(){var e=this.getSyncState();return e?e===B.Prepared||e===B.Syncing:!1}isGuest(){return this.isGuestAccount}setGuest(e){this.isGuestAccount=e}getScheduler(){return this.scheduler}retryImmediately(){return this.toDeviceMessageQueue.sendQueue(),this.syncApi?.retryImmediately()??!1}getNotifTimelineSet(){return this.notifTimelineSet}setNotifTimelineSet(e){this.notifTimelineSet=e}getCapabilities(){var e=this;return C(function*(){return e.serverCapabilitiesService.getCached()||e.serverCapabilitiesService.fetch()})()}getCachedCapabilities(){return this.serverCapabilitiesService.getCached()}fetchCapabilities(){return this.serverCapabilitiesService.fetch()}initRustCrypto(){var e=arguments,t=this;return C(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:{};if(t.cryptoBackend){t.logger.warn(`Attempt to re-initialise e2e encryption on MatrixClient`);return}var r=t.getUserId();if(r===null)throw Error(`Cannot enable encryption on MatrixClient with unknown userId: ensure userId is passed in createClient().`);var i=t.getDeviceId();if(i===null)throw Error(`Cannot enable encryption on MatrixClient with unknown deviceId: ensure deviceId is passed in createClient().`);t.logger.debug(`Downloading Rust crypto library`);var a=yield(yield import(`./rust-crypto-CmJ_6CQ8.js`)).initRustCrypto({logger:t.logger,http:t.http,userId:r,deviceId:i,secretStorage:t.secretStorage,cryptoCallbacks:t.cryptoCallbacks,storePrefix:n.useIndexedDB===!1?null:n.cryptoDatabasePrefix??LN,storeKey:n.storageKey,storePassphrase:n.storagePassword,legacyCryptoStore:t.legacyCryptoStore,legacyPickleKey:t.legacyPickleKey??`DEFAULT_KEY`,legacyMigrationProgressListener:(e,n)=>{t.emit(JN.LegacyCryptoStoreMigrationProgress,e,n)},enableEncryptedStateEvents:t.enableEncryptedStateEvents});a.setSupportedVerificationMethods(t.verificationMethods),t.cryptoBackend=a,t.on(gO.Membership,a.onRoomMembership.bind(a)),t.on(j.Events,a.onRoomStateEvent.bind(a)),t.on(Z.Event,e=>{a.onLiveEventFromSync(e)}),t.reEmitter.reEmit(a,[JN.VerificationRequestReceived,JN.UserTrustStatusChanged,JN.KeyBackupStatus,JN.KeyBackupSessionsRemaining,JN.KeyBackupFailed,JN.KeyBackupDecryptionKeyCached,JN.KeysChanged,JN.DevicesUpdated,JN.WillUpdateDevices,JN.DehydratedDeviceCreated,JN.DehydratedDeviceUploaded,JN.RehydrationStarted,JN.RehydrationProgress,JN.RehydrationCompleted,JN.RehydrationError,JN.DehydrationKeyCached,JN.DehydratedDeviceRotationError])})()}get secretStorage(){return this._secretStorage}getCrypto(){return this.cryptoBackend}isRoomEncrypted(e){var t=this.getRoom(e);return t?t.hasEncryptionStateEvent():!1}isKeyBackupKeyStored(){return Promise.resolve(this.secretStorage.isStored(`m.megolm_backup.v1`))}makeKeyBackupPath(e,t,n){return{path:t===void 0?e===void 0?`/room_keys/keys`:T(`/room_keys/keys/$roomId`,{$roomId:e}):T(`/room_keys/keys/$roomId/$sessionId`,{$roomId:e,$sessionId:t}),queryData:n===void 0?void 0:{version:n}}}deleteKeysFromBackup(e,t,n){var r=this;return C(function*(){var i=r.makeKeyBackupPath(e,t,n);yield r.http.authedRequest(F.Delete,i.path,i.queryData,void 0,{prefix:L.V3})})()}getMediaConfig(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=e?`/media/config`:`/config`;return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:e?L.V1:mA.V3})}getRoom(e){return e?this.store.getRoom(e):null}getRooms(){return this.store.getRooms()}getVisibleRooms(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.store.getRooms(),n=new Set(t);for(var r of n)for(var i of this.findPredecessorRooms(r,!0,e))n.delete(i);return Array.from(n)}getUser(e){return this.store.getUser(e)}getUsers(){return this.store.getUsers()}setAccountData(e,t){var n=this;return C(function*(){if(!n.clientRunning)return n.logger.warn("Calling `setAccountData` before the client is started: `getAccountData` may return inconsistent results."),yield rA(5,()=>n.setAccountDataRaw(e,t));var r=n.store.getAccountData(e);if(r&&NE(r.event.content,t))return{};var i=Promise.withResolvers();function a(t){t.getType()===e&&i.resolve()}n.addListener(Z.AccountData,a);try{var o=yield rA(5,()=>n.setAccountDataRaw(e,t));return yield i.promise,o}finally{n.removeListener(Z.AccountData,a)}})()}setAccountDataRaw(e,t){var n=T(`/user/$userId/account_data/$type`,{$userId:this.credentials.userId,$type:e});return this.http.authedRequest(F.Put,n,void 0,t)}getAccountData(e){return this.store.getAccountData(e)}getAccountDataFromServer(e){var t=this;return C(function*(){if(t.isInitialSyncComplete()){var n=t.store.getAccountData(e);return n?n.getContent():null}var r=T(`/user/$userId/account_data/$type`,{$userId:t.credentials.userId,$type:e});try{return yield t.http.authedRequest(F.Get,r)}catch(e){if(e.data?.errcode===`M_NOT_FOUND`)return null;throw e}})()}deleteAccountData(e){var t=this;return C(function*(){var n=t.canSupport.get(UA.AccountDataDeletion);if(n===HA.Unsupported){yield t.setAccountData(e,{});return}var r=T(`/user/$userId/account_data/$type`,{$userId:t.getSafeUserId(),$type:e}),i=n===HA.Unstable?{prefix:`/_matrix/client/unstable/org.matrix.msc3391`}:void 0;return yield t.http.authedRequest(F.Delete,r,void 0,void 0,i)})()}getIgnoredUsers(){var e=this.getAccountData(E.IgnoredUserList);return e!=null&&e.getContent().ignored_users?Object.keys(e.getContent().ignored_users):[]}setIgnoredUsers(e){var t={ignored_users:{}};return e.forEach(e=>{t.ignored_users[e]={}}),this.setAccountData(E.IgnoredUserList,t)}isUserIgnored(e){return this.getIgnoredUsers().includes(e)}joinRoom(e){var t=arguments,n=this;return C(function*(){var r,i=t.length>1&&t[1]!==void 0?t[1]:{},a=n.getRoom(e),o=a?.getMember(n.getSafeUserId()),s=o?.membership,c=s==k.Invite?(o==null||(r=o.events.member)==null?void 0:r.getSender())??null:null;if(n.logger.debug(`joinRoom[${e}]: preJoinMembership=${s}, inviter=${c}, opts=${JSON.stringify(i)}`),s==k.Join)return a;var l=Promise.resolve();if(i.inviteSignUrl){var u=new URL(i.inviteSignUrl);u.searchParams.set(`mxid`,n.credentials.userId),l=n.http.requestOtherUrl(F.Post,u)}var d={};i.viaServers&&(d.via=d.server_name=i.viaServers.slice(0,3));var f={},p=yield l;p&&(f.third_party_signed=p);var m=T(`/join/$roomid`,{$roomid:e}),h=(yield n.http.authedRequest(F.Post,m,d,f)).room_id;c&&n.cryptoBackend&&(yield n.cryptoBackend.markRoomAsPendingKeyBundle(h,c),yield n.cryptoBackend.maybeAcceptKeyBundle(h,c));var g=n.getRoom(h);return g!=null&&g.hasMembershipState(n.credentials.userId,k.Join)?g:new nj(n,n.clientOpts,n.buildSyncApiOptions()).createRoom(h)})()}knockRoom(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=this.getRoom(e);if(n!=null&&n.hasMembershipState(this.credentials.userId,k.Knock))return Promise.resolve({room_id:n.roomId});var r=T(`/knock/$roomIdOrAlias`,{$roomIdOrAlias:e}),i={};if(t.viaServers){var a=Array.isArray(t.viaServers)?t.viaServers.slice(0,3):[t.viaServers];i.server_name=a,i.via=a}var o={};return t.reason&&(o.reason=t.reason),this.http.authedRequest(F.Post,r,i,o)}resendEvent(e,t){return this.toDeviceMessageQueue.sendQueue(),this.updatePendingEventStatus(t,e,P.SENDING),this.encryptAndSendEvent(t,e)}cancelPendingEvent(e){if(![P.QUEUED,P.NOT_SENT,P.ENCRYPTING].includes(e.status))throw Error(`cannot cancel an event with status `+e.status);e.status===P.ENCRYPTING?this.eventsBeingEncrypted.delete(e.getId()):this.scheduler&&e.status===P.QUEUED&&this.scheduler.removeEventFromQueue(e);var t=this.getRoom(e.getRoomId());this.updatePendingEventStatus(t,e,P.CANCELLED)}setRoomName(e,t){return this.sendStateEvent(e,E.RoomName,{name:t})}setRoomTopic(e,t,n){var r=PO(t,n);return this.sendStateEvent(e,E.RoomTopic,r)}getRoomTags(e){var t=T(`/user/$userId/rooms/$roomId/tags`,{$userId:this.credentials.userId,$roomId:e});return this.http.authedRequest(F.Get,t)}setRoomTag(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=T(`/user/$userId/rooms/$roomId/tags/$tag`,{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(F.Put,r,void 0,n)}deleteRoomTag(e,t){var n=T(`/user/$userId/rooms/$roomId/tags/$tag`,{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(F.Delete,n)}setRoomAccountData(e,t,n){var r=T(`/user/$userId/rooms/$roomId/account_data/$type`,{$userId:this.credentials.userId,$roomId:e,$type:t});return this.http.authedRequest(F.Put,r,void 0,n)}setPowerLevel(e,t,n){var r=this;return C(function*(){var i,a;if(r.clientRunning&&r.isInitialSyncComplete()){var o;a=(o=r.getRoom(e))==null||(o=o.currentState)==null||(o=o.getStateEvents(E.RoomPowerLevels,``))==null?void 0:o.getContent()}if(!a)try{a=yield r.getStateEvent(e,E.RoomPowerLevels,``)}catch(e){if(e instanceof I&&e.errcode===`M_NOT_FOUND`)a={};else throw e}a=ME(a),(i=a)!=null&&i.users||(a.users={});for(var s of Array.isArray(t)?t:[t])n==null?delete a.users[s]:a.users[s]=n;return r.sendStateEvent(e,E.RoomPowerLevels,a,``)})()}unstable_createLiveBeacon(e,t){var n=this;return C(function*(){return n.unstable_setLiveBeacon(e,t)})()}unstable_setLiveBeacon(e,t){var n=this;return C(function*(){return n.sendStateEvent(e,HO.name,t,n.getUserId())})()}sendEvent(e,t,n,r,i){var a,o,s,c;return!(t!=null&&t.startsWith(dI))&&t!==null?(c=r,s=n,o=t,a=null):(c=i,s=r,o=n,a=t),this.addThreadRelationIfNeeded(s,a,e),this.sendCompleteEvent({roomId:e,threadId:a,eventObject:{type:o,content:s},txnId:c})}addThreadRelationIfNeeded(e,t,n){var r;if(t&&!((r=e[`m.relates_to`])!=null&&r.rel_type)){var i,a=!!((i=e[`m.relates_to`])!=null&&i[`m.in_reply_to`]);e[`m.relates_to`]=X(X({},e[`m.relates_to`]),{},{rel_type:Q.name,event_id:t,is_falling_back:!a});var o=this.getRoom(n)?.getThread(t);o&&!a&&(e[`m.relates_to`][`m.in_reply_to`]={event_id:o.lastReply(e=>e.isRelation(Q.name)&&!e.status)?.getId()??t})}}sendCompleteEvent(e){var t=e.roomId,n=e.threadId,r=e.eventObject,i=e.delayOpts,a=e.queryDict,o=e.txnId;o||=this.makeTxnId();var s=new MI(Object.assign(r,{event_id:`~`+t+`:`+o,user_id:this.credentials.userId,sender:this.credentials.userId,room_id:t,origin_server_ts:new Date().getTime()})),c=this.getRoom(t),l=n?c?.getThread(n):void 0;l&&s.setThread(l),i||(this.reEmitter.reEmit(s,[$.Replaced,$.VisibilityChange]),c?.reEmitter.reEmit(s,[$.BeforeRedaction]));var u=s.getAssociatedId();if(u!=null&&u.startsWith(`~`)){var d=c?.getPendingEvents().find(e=>e.getId()===u);d?.once($.LocalEventIdReplaced,()=>{s.updateAssociatedId(d.getId())})}var f=s.getType();return this.logger.debug(`sendEvent of type ${f} in ${t} with txnId ${o}${i?` (delayed event)`:``}${a?` query params: `+JSON.stringify(a):``}`),s.setTxnId(o),s.setStatus(P.SENDING),i?this.encryptAndSendEvent(c,s,i,a):(c?.addPendingEvent(s,o),s.status===P.NOT_SENT?Promise.reject(Error(`Event blocked by other events not yet sent`)):this.encryptAndSendEvent(c,s,a))}encryptAndSendEvent(e,t,n,r){var i=this;return C(function*(){var a=r;if(n&&ZM(n))return i.sendEventHttpRequest(t,n,a);a||=n;try{var o;i.eventsBeingEncrypted.add(t.getId());try{yield i.encryptEventIfNeeded(t,e??void 0)}finally{o=!i.eventsBeingEncrypted.delete(t.getId())}if(o)return{};t.status===P.ENCRYPTING&&i.updatePendingEventStatus(e,t,P.SENDING);var s=null;return i.scheduler&&(s=i.scheduler.queueEvent(t),s&&i.scheduler.getQueueForEvent(t).length>1&&i.updatePendingEventStatus(e,t,P.QUEUED)),s||(s=i.sendEventHttpRequest(t,a),e&&(s=s.then(n=>(e.updatePendingEvent(t,P.SENT,n.event_id),n)))),yield s}catch(n){i.logger.error(`Error sending event`,n);try{t.error=n,i.updatePendingEventStatus(e,t,P.NOT_SENT)}catch(e){i.logger.error(`Exception in error handler!`,e)}throw n instanceof I&&(n.event=t),n}})()}encryptEventIfNeeded(e,t){var n=this;return C(function*(){if(t&&(yield n.shouldEncryptEventForRoom(e,t))&&!(!n.cryptoBackend&&n.usingExternalCrypto)){if(!n.cryptoBackend)throw Error(`This room is configured to use encryption, but your client does not support encryption.`);n.updatePendingEventStatus(t,e,P.ENCRYPTING),yield n.cryptoBackend.encryptEvent(e,t)}})()}shouldEncryptEventForRoom(e,t){var n=this;return C(function*(){return e.isEncrypted()||e.getType()===E.Reaction||e.isRedaction()?!1:!!(t.hasEncryptionStateEvent()||(yield n.cryptoBackend?.isEncryptionEnabledInRoom(t.roomId)))})()}getEncryptedIfNeededEventType(e,t){var n;return t===E.Reaction?t:(n=this.getRoom(e))!=null&&n.hasEncryptionStateEvent()?E.RoomMessageEncrypted:t}updatePendingEventStatus(e,t,n){e?e.updatePendingEvent(t,n):t.setStatus(n)}sendEventHttpRequest(e,t,n){var r=e.getTxnId();r||(r=this.makeTxnId(),e.setTxnId(r));var i={$roomId:e.getRoomId(),$eventType:e.getWireType(),$stateKey:e.getStateKey(),$txnId:r},a;if(e.isState()){var o=`/rooms/$roomId/state/$eventType`;e.getStateKey()&&e.getStateKey().length>0&&(o=`/rooms/$roomId/state/$eventType/$stateKey`),a=T(o,i)}else a=e.isRedaction()&&e.event.redacts?T(`/rooms/$roomId/redact/$redactsEventId/$txnId`,X({$redactsEventId:e.event.redacts},i)):T(`/rooms/$roomId/send/$eventType/$txnId`,i);var s=t&&ZM(t)?t:void 0,c=s?n:t,l=e.getWireContent();return s?this.http.authedRequest(F.Put,a,X(X({},pI(s)),c),l):this.http.authedRequest(F.Put,a,c,l).then(t=>(this.logger.debug(`Event sent to ${e.getRoomId()} with event id ${t.event_id}`),t))}redactEvent(e,t,n,r,i){var a;(a=n)!=null&&a.startsWith(dI)||(i=r,r=n,n=t,t=null);var o={reason:i?.reason};if(i?.with_rel_types!==void 0){if(this.canSupport.get(UA.RelationBasedRedactions)===HA.Unsupported)throw Error(`Server does not support relation based redactions roomId ${e} eventId ${n} txnId: ${r} threadId ${t}`);var s=this.canSupport.get(UA.RelationBasedRedactions)===HA.Stable?YD.stable:YD.unstable;o[s]=i.with_rel_types}return this.sendCompleteEvent({roomId:e,threadId:t,eventObject:{type:E.RoomRedaction,content:o,redacts:n},txnId:r})}sendMessage(e,t,n,r){typeof t!=`string`&&t!==null&&(r=n,n=t,t=null);var i=E.RoomMessage,a=n;return this.sendEvent(e,t,i,a,r)}sendTextMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=jO(n);return this.sendMessage(e,t,a,r)}sendNotice(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=MO(n);return this.sendMessage(e,t,a,r)}sendEmoteMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=NO(n);return this.sendMessage(e,t,a,r)}sendImageMessage(e,t,n,r){var i,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`Image`;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(a=r||`Image`,r=n,n=t,t=null);var o={msgtype:zD.Image,url:n,info:r,body:a};return this.sendMessage(e,t,o)}sendStickerMessage(e,t,n,r){var i,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`Sticker`;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(a=r||`Sticker`,r=n,n=t,t=null);var o={url:n,info:r,body:a};return this.sendEvent(e,t,E.Sticker,o)}sendHtmlMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=OO(n,r);return this.sendMessage(e,t,a)}sendHtmlNotice(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=kO(n,r);return this.sendMessage(e,t,a)}sendHtmlEmote(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(dI))&&t!==null&&(r=n,n=t,t=null);var a=AO(n,r);return this.sendMessage(e,t,a)}_unstable_sendDelayedEvent(e,t,n,r,i,a){var o=this;return C(function*(){if(!(yield o.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`sendDelayedEvent`);return o.addThreadRelationIfNeeded(i,n,e),o.sendCompleteEvent({roomId:e,threadId:n,eventObject:{type:r,content:i},delayOpts:t,txnId:a})})()}_unstable_sendStickyDelayedEvent(e,t,n,r,i,a,o){var s=this;return C(function*(){if(!(yield s.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`getDelayedEvents`);if(!(yield s.doesServerSupportUnstableFeature(`org.matrix.msc4354`)))throw new RP(`Server does not support the sticky events`,`sendStickyEvent`);return s.addThreadRelationIfNeeded(a,r,e),s.sendCompleteEvent({roomId:e,threadId:r,eventObject:{type:i,content:a},queryDict:{"org.matrix.msc4354.sticky_duration_ms":t},delayOpts:n,txnId:o})})()}_unstable_sendDelayedStateEvent(e,t,n,r){var i=arguments,a=this;return C(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:``,s=i.length>5&&i[5]!==void 0?i[5]:{};if(!(yield a.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`sendDelayedStateEvent`);var c={$roomId:e,$eventType:n,$stateKey:o},l=T(`/rooms/$roomId/state/$eventType`,c);return o!==void 0&&(l=T(l+`/$stateKey`,c)),a.http.authedRequest(F.Put,l,pI(t),r,s)})()}_unstable_sendStickyEvent(e,t,n,r,i,a){var o=this;return C(function*(){if(!(yield o.doesServerSupportUnstableFeature(`org.matrix.msc4354`)))throw new RP(`Server does not support the sticky events`,`sendStickyEvent`);return o.addThreadRelationIfNeeded(i,n,e),o.sendCompleteEvent({roomId:e,threadId:n,eventObject:{type:r,content:i},queryDict:{"org.matrix.msc4354.sticky_duration_ms":t},txnId:a})})()}_unstable_getDelayedEvents(e,t,n){var r=this;return C(function*(){if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`getDelayedEvents`);var i={from:n,status:e,delay_id:t};return yield r.http.authedRequest(F.Get,`/delayed_events`,i,void 0,{prefix:`${L.Unstable}/${uI}`})})()}_unstable_updateDelayedEvent(e,t){var n=arguments,r=this;return C(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{};if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`updateDelayedEvent`);return yield r.updateScheduledDelayedEventWithActionInBody(e,t,i)})()}_unstable_cancelScheduledDelayedEvent(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,QM.Cancel,r)})()}_unstable_restartScheduledDelayedEvent(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,QM.Restart,r)})()}_unstable_sendScheduledDelayedEvent(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,QM.Send,r)})()}updateScheduledDelayedEvent(e,t){var n=arguments,r=this;return C(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{};if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new LP(`Server does not support the delayed events API`,`${t}ScheduledDelayedEvent`);try{var a=T(`/delayed_events/$delayId/$action`,{$delayId:e,$action:t});return yield r.http.authedRequest(F.Post,a,void 0,void 0,X(X({},i),{},{prefix:`${L.Unstable}/${uI}`}))}catch(n){if(n instanceof I&&n.errcode===`M_UNRECOGNIZED`)return yield r.updateScheduledDelayedEventWithActionInBody(e,t,i);throw n}})()}updateScheduledDelayedEventWithActionInBody(e,t){var n=arguments,r=this;return C(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{},a=T(`/delayed_events/$delayId`,{$delayId:e}),o={action:t};try{return yield r.http.request(F.Post,a,void 0,o,X(X({},i),{},{prefix:`${L.Unstable}/${uI}`}))}catch(e){if(e instanceof I&&e.errcode===`M_MISSING_TOKEN`)return yield r.http.authedRequest(F.Post,a,void 0,o,X(X({},i),{},{prefix:`${L.Unstable}/${uI}`}));throw e}})()}sendReceipt(e,t,n){var r=arguments,i=this;return C(function*(){var a=r.length>3&&r[3]!==void 0?r[3]:!1;if(i.isGuest())return Promise.resolve({});var o=T(`/rooms/$roomId/receipt/$receiptType/$eventId`,{$roomId:e.getRoomId(),$receiptType:t,$eventId:e.getId()}),s=!a&&i.supportsThreads()?X(X({},n),{},{thread_id:hI(e)}):n,c=i.http.authedRequest(F.Post,o,void 0,s||{}),l=i.getRoom(e.getRoomId());return l&&i.credentials.userId&&l.addLocalEchoReceipt(i.credentials.userId,e,t,a),c})()}sendReadReceipt(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:SE.Read,i=t.length>2&&t[2]!==void 0?t[2]:!1;if(e){var a=e.getId(),o=n.getRoom(e.getRoomId());if(o!=null&&o.hasPendingEvent(a))throw Error(`Cannot set read receipt to a pending event (${a})`);return n.sendReceipt(e,r,{},i)}})()}setRoomReadMarkers(e,t,n,r){var i=this;return C(function*(){var a=i.getRoom(e);if(a!=null&&a.hasPendingEvent(t))throw Error(`Cannot set read marker to a pending event (${t})`);var o;if(n){if(o=n.getId(),a!=null&&a.hasPendingEvent(o))throw Error(`Cannot set read receipt to a pending event (${o})`);a?.addLocalEchoReceipt(i.credentials.userId,n,SE.Read)}var s;if(r){if(s=r.getId(),a!=null&&a.hasPendingEvent(s))throw Error(`Cannot set read receipt to a pending event (${s})`);a?.addLocalEchoReceipt(i.credentials.userId,r,SE.ReadPrivate)}return yield i.setRoomReadMarkersHttpRequest(e,t,o,s)})()}sendRtcDecline(e,t){return this.sendEvent(e,E.RTCDecline,{"m.relates_to":{event_id:t,rel_type:D.Reference}})}getUrlPreview(e,t){var n=this;return C(function*(){t=Math.floor(t/6e4)*6e4;var r=new URL(e);r.hash=``,e=r.toString();var i=t+`_`+e;if(i in n.urlPreviewCache)return n.urlPreviewCache[i];var a=yield n.isVersionSupported(`v1.11`),o=n.http.authedRequest(F.Get,a?`/media/preview_url`:`/preview_url`,{url:e,ts:t.toString()},void 0,{prefix:a?L.V1:mA.V3,priority:`low`});return n.urlPreviewCache[i]=o,o})()}sendTyping(e,t,n){if(this.isGuest())return Promise.resolve({});var r=T(`/rooms/$roomId/typing/$userId`,{$roomId:e,$userId:this.getUserId()}),i={typing:t};return t&&(i.timeout=n||2e4),this.http.authedRequest(F.Put,r,void 0,i)}getRoomUpgradeHistory(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=this.getRoom(e);if(!r)return[];var i=this.findPredecessorRooms(r,t,n),a=this.findSuccessorRooms(r,t,n);return[...i,r,...a]}findPredecessorRooms(e,t,n){for(var r=[],i=new Set([e.roomId]),a=e.findPredecessor(n)?.roomId;a!==null;){if(a){if(i.has(a))break;i.add(a)}var o=this.getRoom(a);if(o===null)break;if(t){var s=o.currentState.getStateEvents(E.RoomTombstone,``);if(!s||s.getContent().replacement_room!==e.roomId)break}r.splice(0,0,o),e=o,a=e.findPredecessor(n)?.roomId}return r}findSuccessorRooms(e,t,n){for(var r=[],i=e.currentState.getStateEvents(E.RoomTombstone,``);i;){var a=this.getRoom(i.getContent().replacement_room);if(!a||a.roomId===e.roomId)break;if(t){var o=a.findPredecessor(n)?.roomId;if(!o||o!==e.roomId)break}if(r.push(a),new Set(r.map(e=>e.roomId)).size2&&n[2]!==void 0?n[2]:{};typeof i!=`object`&&(i={reason:i});var a=r.getRoom(e)?.getHistoryVisibility()??TO.Shared;return[TO.Invited,TO.Joined].includes(a)?r.logger.debug(`Not sharing message history as the room history visibility is currently unshared`):yield r.cryptoBackend?.shareRoomHistoryWithUser(e,t),yield r.membershipChange(e,t,k.Invite,i.reason)})()}inviteByEmail(e,t){return this.inviteByThreePid(e,`email`,t)}inviteByThreePid(e,t,n){var r=this;return C(function*(){var i,a=T(`/rooms/$roomId/invite`,{$roomId:e}),o=r.getIdentityServerUrl(!0);if(!o)return Promise.reject(new I({error:`No supplied identity server URL`,errcode:`ORG.MATRIX.JSSDK_MISSING_PARAM`}));var s={id_server:o,medium:t,address:n};if((i=r.identityServer)!=null&&i.getAccessToken){var c=yield r.identityServer.getAccessToken();c&&(s.id_access_token=c)}return r.http.authedRequest(F.Post,a,void 0,s)})()}leave(e){return this.membershipChange(e,void 0,k.Leave)}leaveRoomChain(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this.getRoomUpgradeHistory(e,!0),r=n;if(!t){r=[];for(var i of n)if(r.push(i),i.roomId===e)break}var a={},o=[],s=e=>this.leave(e).then(()=>{delete a[e]}).catch(t=>{a[e]=t});for(var c of r)o.push(s(c.roomId));return Promise.all(o).then(()=>a)}ban(e,t,n){return this.membershipChange(e,t,k.Ban,n)}forget(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!0,i=T(`/rooms/$room_id/forget`,{$room_id:e}),a=yield n.http.authedRequest(F.Post,i);return r&&(n.store.removeRoom(e),n.emit(Z.DeleteRoom,e)),a})()}unban(e,t){var n=T(`/rooms/$roomId/unban`,{$roomId:e}),r={user_id:t};return this.http.authedRequest(F.Post,n,void 0,r)}kick(e,t,n){var r=T(`/rooms/$roomId/kick`,{$roomId:e}),i={user_id:t,reason:n};return this.http.authedRequest(F.Post,r,void 0,i)}membershipChange(e,t,n,r){var i=T(`/rooms/$room_id/$membership`,{$room_id:e,$membership:n});return this.http.authedRequest(F.Post,i,void 0,{user_id:t,reason:r})}getPushActionsForEvent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!e.getPushActions()||t){var n=this.pushProcessor.actionsAndRuleForEvent(e),r=n.actions,i=n.rule;e.setPushDetails(r,i)}return e.getPushActions()}getPushDetailsForEvent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!e.getPushDetails()||t){var n=this.pushProcessor.actionsAndRuleForEvent(e),r=n.actions,i=n.rule;e.setPushDetails(r,i)}return e.getPushDetails()}setProfileInfo(e,t){var n=T(`/profile/$userId/$info`,{$userId:this.credentials.userId,$info:e});return this.http.authedRequest(F.Put,n,void 0,t)}setDisplayName(e){var t=this;return C(function*(){var n=yield t.setProfileInfo(`displayname`,{displayname:e}),r=t.getUser(t.getUserId());return r&&(r.displayName=e,r.emit(oO.DisplayName,r.events.presence,r)),n})()}setAvatarUrl(e){var t=this;return C(function*(){var n=yield t.setProfileInfo(`avatar_url`,{avatar_url:e}),r=t.getUser(t.getUserId());return r&&(r.avatarUrl=e,r.emit(oO.AvatarUrl,r.events.presence,r)),n})()}mxcUrlToHttp(e,t,n,r,i,a,o){return hO(this.baseUrl,e,t,n,r,i,a,o)}setSyncPresence(e){var t=this;return C(function*(){var n;(n=t.syncApi)==null||n.setPresence(e)})()}setPresence(e){var t=this;return C(function*(){var n=T(`/presence/$userId/status`,{$userId:t.credentials.userId});if([`offline`,`online`,`unavailable`].indexOf(e.presence)===-1)throw Error(`Bad presence value: `+e.presence);yield t.http.authedRequest(F.Put,n,void 0,e)})()}getPresence(e){var t=T(`/presence/$userId/status`,{$userId:e});return this.http.authedRequest(F.Get,t)}scrollback(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:30,n=0,r=this.ongoingScrollbacks[e.roomId]||{};if(r.promise)return r.promise;if(r.errorTs){var i=Date.now()-r.errorTs;n=Math.max(iI-i,0)}if(e.oldState.paginationToken===null)return Promise.resolve(e);var a=this.store.scrollback(e,t).length;if(a===t)return Promise.resolve(e);t-=a;var o=new Promise((r,i)=>{UE(n).then(()=>this.createMessagesRequest(e.roomId,e.oldState.paginationToken,t,M.Backward)).then(t=>{var n=t.chunk.map(this.getEventMapper());if(t.state){var i=t.state.map(this.getEventMapper());e.currentState.setUnknownStateEvents(i)}var a=x(e.partitionThreadedEvents(n),3),o=a[0],s=a[1],c=a[2];this.processAggregatedTimelineEvents(e,o),e.addEventsToTimeline(o,!0,!0,e.getLiveTimeline()),this.processThreadEvents(e,s,!0),c.forEach(t=>e.relations.aggregateChildEvent(t)),e.oldState.paginationToken=t.end??null,t.chunk.length===0&&(e.oldState.paginationToken=null),this.store.storeEvents(e,n,t.end??null,!0),delete this.ongoingScrollbacks[e.roomId],r(e)}).catch(t=>{this.ongoingScrollbacks[e.roomId]={errorTs:Date.now()},i(t)})});return r={promise:o},this.ongoingScrollbacks[e.roomId]=r,o}getEventMapper(e){return tN(this,e||{})}getEventContext(e,t){var n=this;return C(function*(){var r,i=T(`/rooms/$roomId/context/$eventId`,{$roomId:e,$eventId:t}),a={limit:`0`};(r=n.clientOpts)!=null&&r.lazyLoadMembers&&(a.filter=JSON.stringify(dk.LAZY_LOADING_MESSAGES_FILTER));var o=yield n.http.authedRequest(F.Get,i,a);if(o.event)return{start:o.start,end:o.end,event:o.event,events_after:o.events_after??[],events_before:o.events_before??[],state:o.state??[]};throw Error(`'event' not in '/context' result - homeserver too old?`)})()}getEventTimeline(e,t){var n=this;return C(function*(){if(!n.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);if(!(e!=null&&e.room))throw Error(`getEventTimeline only supports room timelines`);if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);if(e.thread&&n.supportsThreads())return(yield n.getThreadTimeline(e,t))??null;var r=yield n.getEventContext(e.room.roomId,t);if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);var i=n.getEventMapper(),a=i(r.event);if(a.isRelation(Q.name))return n.logger.warn(`Tried loading a regular timeline at the position of a thread event`),null;var o=[...r.events_after.reverse().map(i),a,...r.events_before.map(i)],s=e.getTimelineForEvent(o[0].getId());s?s.getState(N.BACKWARDS).setUnknownStateEvents(r.state.map(i)):(s=e.addTimeline(),s.initialiseState(r.state.map(i)),s.getState(N.FORWARDS).paginationToken=r.end??null);var c=x(e.room.partitionThreadedEvents(o),3),l=c[0],u=c[1],d=c[2];return e.addEventsToTimeline(l,!0,!1,s,r.start),n.processThreadEvents(e.room,u,!0),n.processAggregatedTimelineEvents(e.room,l),d.forEach(t=>e.relations.aggregateChildEvent(t)),e.getTimelineForEvent(t)??e.room.findThreadForEvent(a)?.liveTimeline??s})()}getThreadTimeline(e,t){var n=this;return C(function*(){if(!n.supportsThreads())throw Error(`could not get thread timeline: no client support`);if(!e.room)throw Error(`could not get thread timeline: not a room timeline`);if(!e.thread)throw Error(`could not get thread timeline: not a thread timeline`);var r=yield n.getEventContext(e.room.roomId,t),i=n.getEventMapper(),a=i(r.event);if(e.canContain(a)){var o=n.canSupport.get(UA.RelationsRecursion)!==HA.Unsupported;if(SI.hasServerSideSupport)if(SI.hasServerSideFwdPaginationSupport){if(!e.thread)throw Error(`could not get thread timeline: not a thread timeline`);var s=e.thread,c=yield n.fetchRelations(e.room.roomId,s.id,null,null,{dir:M.Backward,from:r.start,recurse:o||void 0}),l=yield n.fetchRelations(e.room.roomId,s.id,null,null,{dir:M.Forward,from:r.end,recurse:o||void 0}),u=[...l.chunk.reverse().filter(uF(s.id)).map(i),a,...c.chunk.filter(uF(s.id)).map(i)];for(var d of u)yield e.thread?.processEvent(d);var f=e.getTimelineForEvent(a.getId());if(f?f.getState(N.BACKWARDS).setUnknownStateEvents(r.state.map(i)):(f=e.addTimeline(),f.initialiseState(r.state.map(i))),e.addEventsToTimeline(u,!0,!1,f,l.next_batch),!c.next_batch){var p=yield n.fetchRoomEvent(e.room.roomId,s.id);e.addEventsToTimeline([i(p)],!0,!1,f,null)}return f.setPaginationToken(c.next_batch??null,M.Backward),f.setPaginationToken(l.next_batch??null,M.Forward),n.processAggregatedTimelineEvents(e.room,u),e.getTimelineForEvent(t)??f}else{for(var m=e.thread,h=yield n.fetchRelations(e.room.roomId,m.id,Q.name,null,{dir:M.Backward,from:r.start,recurse:o||void 0}),g=[],_=r.end;_;){var v=yield n.fetchRelations(e.room.roomId,m.id,Q.name,null,{dir:M.Forward,from:_,recurse:o||void 0});_=v.next_batch,g.push(...v.chunk)}var y=[...g.reverse().map(i),a,...h.chunk.map(i)];for(var b of y)yield e.thread?.processEvent(b);var x=e.getLiveTimeline();if(x.getState(N.BACKWARDS).setUnknownStateEvents(r.state.map(i)),e.addEventsToTimeline(y,!0,!1,x,null),!h.next_batch){var S=yield n.fetchRoomEvent(e.room.roomId,m.id);e.addEventsToTimeline([i(S)],!0,!1,x,null)}return x.setPaginationToken(h.next_batch??null,M.Backward),x.setPaginationToken(null,M.Forward),n.processAggregatedTimelineEvents(e.room,y),x}}})()}getLatestTimeline(e){var t=this;return C(function*(){if(!t.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);if(!e.room)throw Error(`getLatestTimeline only supports room timelines`);var n;if(e.threadListType!==null)n=(yield t.createThreadListMessagesRequest(e.room.roomId,null,1,M.Backward,e.threadListType,e.getFilter())).chunk?.[0];else if(e.thread&&SI.hasServerSideSupport){var r=t.canSupport.get(UA.RelationsRecursion)!==HA.Unsupported;n=(yield t.fetchRelations(e.room.roomId,e.thread.id,Q.name,null,{dir:M.Backward,limit:1,recurse:r||void 0})).chunk?.[0]}else{var i,a=T(`/rooms/$roomId/messages`,{$roomId:e.room.roomId}),o={dir:`b`};(i=t.clientOpts)!=null&&i.lazyLoadMembers&&(o.filter=JSON.stringify(dk.LAZY_LOADING_MESSAGES_FILTER)),n=(yield t.http.authedRequest(F.Get,a,o)).chunk?.[0]}if(!n)throw Error(`No message returned when trying to construct getLatestTimeline`);return t.getEventTimeline(e,n.event_id)})()}createMessagesRequest(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:30,i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,o=T(`/rooms/$roomId/messages`,{$roomId:e}),s={limit:r.toString(),dir:i};t&&(s.from=t);var c=null;return(n=this.clientOpts)!=null&&n.lazyLoadMembers&&(c=Object.assign({},dk.LAZY_LOADING_MESSAGES_FILTER)),a&&(c||={},Object.assign(c,a.getRoomTimelineFilterComponent()?.toJSON())),c&&(s.filter=JSON.stringify(c)),this.http.authedRequest(F.Get,o,s)}createThreadListMessagesRequest(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:30,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:M.Backward,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:EI.All,o=arguments.length>5?arguments[5]:void 0,s=T(`/rooms/$roomId/threads`,{$roomId:e}),c={limit:r.toString(),dir:i,include:DI(a)};t&&(c.from=t);var l={};(n=this.clientOpts)!=null&&n.lazyLoadMembers&&(l=X({},dk.LAZY_LOADING_MESSAGES_FILTER)),o&&(l=X(X({},l),o.getRoomTimelineFilterComponent()?.toJSON())),Object.keys(l).length&&(c.filter=JSON.stringify(l));var u={prefix:SI.hasServerSideListSupport===bI.Stable?L.V1:`/_matrix/client/unstable/org.matrix.msc3856`};return this.http.authedRequest(F.Get,s,c,void 0,u).then(e=>X(X({},e),{},{chunk:e.chunk?.reverse(),start:e.prev_batch,end:e.next_batch}))}paginateEventTimeline(e,t){var n=this,r=e.getTimelineSet()===this.notifTimelineSet,i=this.getRoom(e.getRoomId()),a=e.getTimelineSet().threadListType,o=e.getTimelineSet().thread;t||={};var s=t.backwards||!1;if(r&&!s)throw Error(`paginateNotifTimeline can only paginate backwards`);var c=s?N.BACKWARDS:N.FORWARDS,l=e.getPaginationToken(c),u=e.paginationRequests[c];if(u)return u;var d,f,p;if(r)d=`/notifications`,f={limit:(t.limit??30).toString(),only:`highlight`},l&&l!==`end`&&(f.from=l),p=this.http.authedRequest(F.Get,d,f).then(function(){var t=C(function*(t){var r=t.next_token,i=[];t.notifications=t.notifications.filter(hD);for(var a=0;a{e.paginationRequests[c]=null}),e.paginationRequests[c]=p;else if(a!==null){if(!i)throw Error(`Unknown room `+e.getRoomId());if(!SI.hasServerSideFwdPaginationSupport&&c===M.Forward)throw Error(`Cannot paginate threads forwards without server-side support for MSC 3715`);p=this.createThreadListMessagesRequest(e.getRoomId(),l,t.limit,c,a,e.getFilter()).then(t=>{if(t.state){var n=e.getState(c),r=t.state.filter(hD).map(this.getEventMapper());n.setUnknownStateEvents(r)}var a=t.end,o=t.chunk.filter(hD).map(this.getEventMapper());return e.getTimelineSet().addEventsToTimeline(o,s,!1,e,a),this.processAggregatedTimelineEvents(i,o),this.processThreadRoots(i,o,s),s&&t.end==t.start&&e.setPaginationToken(null,c),t.end!==t.start}).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=p}else if(o){var m=this.getRoom(e.getRoomId()??void 0);if(!m)throw Error(`Unknown room `+e.getRoomId());var h=this.canSupport.get(UA.RelationsRecursion)!==HA.Unsupported;p=this.fetchRelations(e.getRoomId()??``,o.id,null,null,{dir:c,limit:t.limit,from:l??void 0,recurse:h||void 0}).then(function(){var t=C(function*(t){var r=n.getEventMapper(),i=t.chunk.filter(hD).filter(uF(o.id)).map(r);for(var a of i.slice().reverse()){yield o?.processEvent(a);var l=a.getSender();(!s||o?.getEventReadUpTo(l)===null)&&m.addLocalEchoReceipt(l,a,SE.Read)}var u=t.next_batch,d=e.getTimelineSet();if(d.addEventsToTimeline(i,s,!1,e,u??null),!u&&s){var f=o.rootEvent??r(yield n.fetchRoomEvent(e.getRoomId()??``,o.id));d.addEventsToTimeline([f],!0,!1,e,null)}return n.processAggregatedTimelineEvents(d.room,i),s&&!u&&e.setPaginationToken(null,c),!!u});return function(e){return t.apply(this,arguments)}}()).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=p}else{if(!i)throw Error(`Unknown room `+e.getRoomId());p=this.createMessagesRequest(e.getRoomId(),l,t.limit,c,e.getFilter()).then(t=>{if(t.state){var n=e.getState(c),r=t.state.filter(hD).map(this.getEventMapper());n.setUnknownStateEvents(r)}var a=t.end,o=t.chunk.filter(hD).map(this.getEventMapper()),l=e.getTimelineSet(),u=x(i.partitionThreadedEvents(o),3),d=u[0],f=u[2];l.addEventsToTimeline(d,s,!1,e,a),this.processAggregatedTimelineEvents(i,d),this.processThreadRoots(i,d.filter(e=>e.getServerAggregatedRelation(Q.name)),!1),f.forEach(e=>i.relations.aggregateChildEvent(e));var p=t.end===void 0||t.end===t.start;return s&&p&&e.setPaginationToken(null,c),!p}).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=p}return p}resetNotifTimelineSet(){this.notifTimelineSet&&this.notifTimelineSet.resetLiveTimeline(`end`)}peekInRoom(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20;return(t=this.peekSync)==null||t.stopPeeking(),this.peekSync=new nj(this,this.clientOpts,this.buildSyncApiOptions()),this.peekSync.peek(e,n)}stopPeeking(){this.peekSync&&=(this.peekSync.stopPeeking(),null)}setGuestAccess(e,t){var n=this.sendStateEvent(e,E.RoomGuestAccess,{guest_access:t.allowJoin?wO.CanJoin:wO.Forbidden},``),r=Promise.resolve();return t.allowRead&&(r=this.sendStateEvent(e,E.RoomHistoryVisibility,{history_visibility:TO.WorldReadable},``)),Promise.all([r,n]).then()}requestRegisterEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/register/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestRegisterMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/register/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestAdd3pidEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/account/3pid/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestAdd3pidMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/account/3pid/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestPasswordEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/account/password/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestPasswordMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/account/password/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestTokenFromEndpoint(e,t){var n=this;return C(function*(){var r=Object.assign({},t);return n.http.request(F.Post,e,void 0,r)})()}getRoomPushRule(e,t){if(this.pushRules){var n;return(n=this.pushRules[e])==null||(n=n.room)==null?void 0:n.find(e=>e.rule_id===t)}else throw Error(`SyncApi.sync() must be done before accessing to push rules.`)}setRoomMutePushRule(e,t,n){var r,i=!1,a=this.getRoomPushRule(e,t);if(a!=null&&a.actions.includes(kM.DontNotify)&&(i=!0),!n)i&&(r=this.deletePushRule(e,MM.RoomSpecific,a.rule_id));else if(!a)r=this.addPushRule(e,MM.RoomSpecific,t,{actions:[kM.DontNotify]});else if(!i){var o=Promise.withResolvers();this.deletePushRule(e,MM.RoomSpecific,a.rule_id).then(()=>{this.addPushRule(e,MM.RoomSpecific,t,{actions:[kM.DontNotify]}).then(()=>{o.resolve()}).catch(e=>{o.reject(e)})}).catch(e=>{o.reject(e)}),r=o.promise}if(r)return new Promise((e,t)=>{r.then(()=>{this.getPushRules().then(t=>{this.pushRules=t,e()}).catch(e=>{t(e)})}).catch(e=>{this.getPushRules().then(n=>{this.pushRules=n,t(e)}).catch(n=>{t(e)})})})}searchMessageText(e){var t={search_term:e.query};return`keys`in e&&(t.keys=e.keys),this.search({body:{search_categories:{room_events:t}}})}searchRoomEvents(e){var t={search_categories:{room_events:{search_term:e.term,filter:e.filter,order_by:uN.Recent,event_context:{before_limit:1,after_limit:1,include_profile:!0}}}},n={_query:t,results:[],highlights:[]};return this.search({body:t}).then(e=>this.processRoomEventsSearch(n,e))}backPaginateRoomEventsSearch(e){if(!e.next_batch)return Promise.reject(Error(`Cannot backpaginate event search any further`));if(e.pendingRequest)return e.pendingRequest;var t={body:e._query,next_batch:e.next_batch},n=this.search(t,e.abortSignal).then(t=>this.processRoomEventsSearch(e,t)).finally(()=>{e.pendingRequest=void 0});return e.pendingRequest=n,n}processRoomEventsSearch(e,t){var n=t.search_categories.room_events;e.count=n.count,e.next_batch=n.next_batch;var r=new Set(n.highlights);e.highlights.forEach(e=>{r.add(e)}),e.highlights=Array.from(r);for(var i=this.getEventMapper(),a=n.results?.length??0,o=0;o{this.logger.debug(`Marking success of sync left room request`),this.syncedLeftRooms=!0}).finally(()=>{this.syncLeftRoomsPromise=void 0}),this.syncLeftRoomsPromise}createFilter(e){var t=T(`/user/$userId/filter`,{$userId:this.credentials.userId});return this.http.authedRequest(F.Post,t,void 0,e).then(t=>{var n=dk.fromJson(this.credentials.userId,t.filter_id,e);return this.store.storeFilter(n),n})}getFilter(e,t,n){if(n){var r=this.store.getFilter(e,t);if(r)return Promise.resolve(r)}var i=T(`/user/$userId/filter/$filterId`,{$userId:e,$filterId:t});return this.http.authedRequest(F.Get,i).then(n=>{var r=dk.fromJson(e,t,n);return this.store.storeFilter(r),r})}getOrCreateFilter(e,t){var n=this;return C(function*(){var r=n.store.getFilterIdByName(e),i;if(r){try{var a=yield n.getFilter(n.credentials.userId,r,!0);a&&NE(a.getDefinition(),t.getDefinition())&&(i=r)}catch(e){if(e.errcode!==`M_UNKNOWN`&&e.errcode!==`M_NOT_FOUND`)throw e}i||n.store.setFilterIdByName(e,void 0)}if(i)return i;var o=yield n.createFilter(t.getDefinition());return n.store.setFilterIdByName(e,o.filterId),o.filterId})()}getOpenIdToken(){var e=T(`/user/$userId/openid/request_token`,{$userId:this.credentials.userId});return this.http.authedRequest(F.Post,e,void 0,{})}turnServer(){return this.http.authedRequest(F.Get,`/voip/turnServer`)}getTurnServers(){return this.turnServers||[]}getTurnServersExpiry(){return this.turnServersExpiry}get pollingTurnServers(){return this.checkTurnServersIntervalID!==void 0}checkTurnServers(){var e=this;return C(function*(){if(e.supportsVoip()){var t=!1,n=e.turnServersExpiry-Date.now();if(n>aI)e.logger.debug(`TURN creds are valid for another `+n+` ms: not fetching new ones.`),t=!0;else{e.logger.debug(`Fetching new TURN credentials`);try{var r=yield e.turnServer();r.uris&&(e.logger.debug(`Got TURN URIs: `+r.uris+` refresh in `+r.ttl+` secs`),e.turnServers=[{urls:r.uris,username:r.username,credential:r.password}],e.turnServersExpiry=Date.now()+r.ttl*1e3,t=!0,e.emit(Z.TurnServers,e.turnServers))}catch(t){e.logger.error(`Failed to get TURN URIs`,t),t.httpStatus===403?(e.logger.info(`TURN access unavailable for this account: stopping credentials checks`),e.checkTurnServersIntervalID!==null&&globalThis.clearInterval(e.checkTurnServersIntervalID),e.checkTurnServersIntervalID=void 0,e.emit(Z.TurnServersError,t,!0)):e.emit(Z.TurnServersError,t,!1)}}return t}})()}setFallbackICEServerAllowed(e){this.fallbackICEServerAllowed=e}isFallbackICEServerAllowed(){return this.fallbackICEServerAllowed}isSynapseAdministrator(){var e=T(`/_synapse/admin/v1/users/$userId/admin`,{$userId:this.getUserId()});return this.http.authedRequest(F.Get,e,void 0,void 0,{prefix:``}).then(e=>e.admin)}whoisSynapseUser(e){var t=T(`/_synapse/admin/v1/whois/$userId`,{$userId:e});return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:``})}deactivateSynapseUser(e){var t=T(`/_synapse/admin/v1/deactivate/$userId`,{$userId:e});return this.http.authedRequest(F.Post,t,void 0,void 0,{prefix:``})}fetchClientWellKnown(){var e=this;return C(function*(){e.clientWellKnownPromise=qM.getRawClientConfig(e.getDomain()??void 0),e.clientWellKnown=yield e.clientWellKnownPromise,e.emit(Z.ClientWellKnown,e.clientWellKnown)})()}getClientWellKnown(){return this.clientWellKnown}waitForClientWellKnown(){if(!this.clientRunning)throw Error(`Client is not running`);return this.clientWellKnownPromise}storeClientOptions(){var e=[`boolean`,`string`,`number`],t=Object.entries(this.clientOpts).filter(t=>{var n=x(t,2);n[0];var r=n[1];return e.includes(typeof r)}).reduce((e,t)=>{var n=x(t,2),r=n[0];return e[r]=n[1],e},{});return this.store.storeClientOptions(t)}_unstable_getSharedRooms(e){var t=this;return C(function*(){var n=yield t.doesServerSupportUnstableFeature(sI),r=yield t.doesServerSupportUnstableFeature(cI),i=yield t.doesServerSupportUnstableFeature(lI);if(!n&&!r&&!i)throw Error(`Server does not support the Mutual Rooms API`);var a,o;i?(a=`/uk.half-shot.msc2666/user/mutual_rooms`,o={user_id:e}):(a=T(`/uk.half-shot.msc2666/user/${r?`mutual_rooms`:`shared_rooms`}/\$userId`,{$userId:e}),o={});var s=[],c=null;do{var l={};c!=null&&i&&(l.batch_token=c);var u=yield t.http.authedRequest(F.Get,a,X(X({},o),l),void 0,{prefix:L.Unstable});s.push(...u.joined),c=u.next_batch_token===void 0?null:u.next_batch_token}while(c!=null);return s})()}_unstable_getRTCTransports(){var e=this;return C(function*(){return(yield e.http.authedRequest(F.Get,`/rtc/transports`,void 0,void 0,{prefix:`${L.Unstable}/org.matrix.msc4143`})).rtc_transports})()}getVersions(){var e=this;return C(function*(){return e.serverVersionsPromise?e.serverVersionsPromise:(e.serverVersionsPromise=e.http.authedRequest(F.Get,`/_matrix/client/versions`,void 0,void 0,{prefix:``}).catch(t=>{throw e.serverVersionsPromise=void 0,t}),e.canSupport=yield GA(yield e.serverVersionsPromise),e.serverVersionsPromise)})()}isVersionSupported(e){var t=this;return C(function*(){var n=(yield t.getVersions()).versions;return n&&n.includes(e)})()}doesServerSupportUnstableFeature(e){var t=this;return C(function*(){var n=yield t.getVersions();if(!n)return!1;var r=n.unstable_features;return r&&!!r[e]})()}doesServerForceEncryptionForPreset(e){var t=this;return C(function*(){var n=yield t.getVersions();if(!n)return!1;var r=n.unstable_features,i=e.includes(`_chat`)?e.substring(0,e.indexOf(`_chat`)):e;return r&&!!r[`io.element.e2ee_forced.${i}`]})()}doesServerSupportThread(){var e=this;return C(function*(){if(yield e.isVersionSupported(`v1.4`))return{threads:bI.Stable,list:bI.Stable,fwdPagination:bI.Stable};try{var t=x(yield Promise.all([e.doesServerSupportUnstableFeature(`org.matrix.msc3440`),e.doesServerSupportUnstableFeature(`org.matrix.msc3440.stable`),e.doesServerSupportUnstableFeature(`org.matrix.msc3856`),e.doesServerSupportUnstableFeature(`org.matrix.msc3856.stable`),e.doesServerSupportUnstableFeature(`org.matrix.msc3715`),e.doesServerSupportUnstableFeature(`org.matrix.msc3715.stable`)]),6),n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5];return{threads:xI(r,n),list:xI(a,i),fwdPagination:xI(s,o)}}catch{return{threads:bI.None,list:bI.None,fwdPagination:bI.None}}})()}hasLazyLoadMembersEnabled(){var e;return!!((e=this.clientOpts)!=null&&e.lazyLoadMembers)}setCanResetTimelineCallback(e){this.canResetTimelineCallback=e}getCanResetTimelineCallback(){return this.canResetTimelineCallback}relations(e,t,n,r){var i=arguments,a=this;return C(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:{dir:M.Backward},s=r?a.getEncryptedIfNeededEventType(e,r):null,c=x(yield Promise.all([a.fetchRoomEvent(e,t),a.fetchRelations(e,t,n,s,o)]),2),l=c[0],u=c[1],d=a.getEventMapper(),f=l?d(l):void 0,p=u.chunk.map(d);if(s===E.RoomMessageEncrypted){var m=f?p.concat(f):p;yield Promise.all(m.map(e=>a.decryptEventIfNeeded(e))),r!==null&&(p=p.filter(e=>e.getType()===r))}return f&&n===D.Replace&&(p=p.filter(e=>e.getSender()===f.getSender())),{originalEvent:f??null,events:p,nextBatch:u.next_batch??null,prevBatch:u.prev_batch??null}})()}generateClientSecret(){return yj(32)}decryptEventIfNeeded(e,t){return e.isState()&&!this.enableEncryptedStateEvents?Promise.resolve():(e.shouldAttemptDecryption()&&this.getCrypto()&&e.attemptDecryption(this.cryptoBackend,t),e.isBeingDecrypted()?e.getDecryptionPromise():Promise.resolve())}termsUrlForService(e,t){switch(e){case JM.IS:return this.http.getUrl(`/terms`,void 0,pA.V2,t);case JM.IM:return this.http.getUrl(`/terms`,void 0,`/_matrix/integrations/v1`,t);default:throw Error(`Unsupported service type`)}}getHomeserverUrl(){return this.baseUrl}getIdentityServerUrl(){var e,t;return arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&((e=this.idBaseUrl)!=null&&e.startsWith(`http://`)||(t=this.idBaseUrl)!=null&&t.startsWith(`https://`))?this.idBaseUrl.split(`://`)[1]:this.idBaseUrl}setIdentityServerUrl(e){this.idBaseUrl=HE(e),this.http.setIdBaseUrl(this.idBaseUrl)}getAccessToken(){return this.http.opts.accessToken||null}getRefreshToken(){return this.http.opts.refreshToken??null}setAccessToken(e){this.http.opts.accessToken=e,this.serverVersionsPromise=void 0}isLoggedIn(){return this.http.opts.accessToken!==void 0}makeTxnId(){return`m`+new Date().getTime()+`.`+ this.txnCtr++}isUsernameAvailable(e){return this.http.authedRequest(F.Get,`/register/available`,{username:e}).then(e=>e.available).catch(e=>e.errcode===`M_USER_IN_USE`?!1:Promise.reject(e))}register(e,t,n,r,i,a,o){n&&(r.session=n);var s={auth:r,refresh_token:!0};return e!=null&&(s.username=e),t!=null&&(s.password=t),a!=null&&(s.guest_access_token=a),o!=null&&(s.inhibit_login=o),this.registerRequest(s)}registerGuest(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).body;return this.registerRequest(e||{},`guest`)}registerRequest(e,t){var n={};return t&&(n.kind=t),this.http.request(F.Post,`/register`,n,e)}refreshToken(e){var t=t=>this.http.authedRequest(F.Post,`/refresh`,void 0,{refresh_token:e},{prefix:t,inhibitLogoutEmit:!0});return t(L.V3).catch(e=>{if(e.errcode===`M_UNRECOGNIZED`)return t(L.V1);throw e})}loginFlows(){return this.http.request(F.Get,`/login`)}login(e,t){return this.loginRequest(X(X({},t),{},{type:e})).then(e=>(e.access_token&&e.user_id&&(this.http.opts.accessToken=e.access_token,this.credentials={userId:e.user_id}),e))}loginWithPassword(e,t){return this.login(`m.login.password`,{user:e,password:t})}getCasLoginUrl(e){return this.getSsoLoginUrl(e,`cas`)}getSsoLoginUrl(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`sso`,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=`/login/`+t+`/redirect`;n&&(i+=`/`+n);var a={redirectUrl:e,[fI.stable]:r,[fI.unstable]:r};return this.http.getUrl(i,a).href}loginWithToken(e){return this.login(`m.login.token`,{token:e})}loginRequest(e){var t=this;return C(function*(){return yield t.http.authedRequest(F.Post,`/login`,void 0,e)})()}logout(){var e=arguments,t=this;return C(function*(){return e.length>0&&e[0]!==void 0&&e[0]&&(t.stopClient(),t.http.abort()),t.http.authedRequest(F.Post,`/logout`)})()}deactivateAccount(e,t){var n={};return e&&(n.auth=e),t!==void 0&&(n.erase=t),this.http.authedRequest(F.Post,`/account/deactivate`,void 0,n)}requestLoginToken(e){var t=this;return C(function*(){var n={auth:e};return t.http.authedRequest(F.Post,`/login/get_token`,void 0,n,{prefix:L.V1})})()}getFallbackAuthUrl(e,t){var n=T(`/auth/$loginType/fallback/web`,{$loginType:e});return this.http.getUrl(n,{session:t}).href}createRoom(e){var t=this;return C(function*(){var n,r=(e.invite_3pid||[]).filter(e=>!e.id_access_token);if(r.length>0&&(n=t.identityServer)!=null&&n.getAccessToken){var i=yield t.identityServer.getAccessToken();if(i)for(var a of r)a.id_access_token=i}return t.http.authedRequest(F.Post,`/createRoom`,void 0,e)})()}fetchRelations(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{dir:M.Backward};SI.hasServerSideFwdPaginationSupport===bI.Experimental&&(i=kE(`dir`,`org.matrix.msc3715.dir`,i)),this.canSupport.get(UA.RelationsRecursion)===HA.Unstable&&(i=kE(`recurse`,`org.matrix.msc3981.recurse`,i));var a=OE(i),o=`/rooms/$roomId/relations/$eventId`;n===null?r!==null&&(this.logger.warn(`eventType: ${r} ignored when fetching + relations as relationType is null`),r=null):(o+=`/$relationType`,r!==null&&(o+=`/$eventType`));var s=T(o+`?`+a,{$roomId:e,$eventId:t,$relationType:n,$eventType:r});return this.http.authedRequest(F.Get,s,void 0,void 0,{prefix:L.V1})}roomState(e){var t=T(`/rooms/$roomId/state`,{$roomId:e});return this.http.authedRequest(F.Get,t)}fetchRoomEvent(e,t){var n=T(`/rooms/$roomId/event/$eventId`,{$roomId:e,$eventId:t});return this.http.authedRequest(F.Get,n)}members(e,t,n,r){var i={};t&&(i.membership=t),n&&(i.not_membership=n),r&&(i.at=r);var a=T(`/rooms/$roomId/members?`+OE(i),{$roomId:e});return this.http.authedRequest(F.Get,a)}upgradeRoom(e,t,n){var r=T(`/rooms/$roomId/upgrade`,{$roomId:e});return this.http.authedRequest(F.Post,r,void 0,{new_version:t,additional_creators:n})}getStateEvent(e,t,n){var r={$roomId:e,$eventType:t,$stateKey:n},i=T(`/rooms/$roomId/state/$eventType`,r);return n!==void 0&&(i=T(i+`/$stateKey`,r)),this.http.authedRequest(F.Get,i)}sendStateEvent(e,t,n){var r=arguments,i=this;return C(function*(){var a=r.length>3&&r[3]!==void 0?r[3]:``,o=r.length>4&&r[4]!==void 0?r[4]:{},s=i.getRoom(e),c=new MI({room_id:e,type:t,state_key:a,content:n});yield i.encryptStateEventIfNeeded(c,s??void 0);var l={$roomId:e,$eventType:c.getWireType(),$stateKey:c.getWireStateKey()},u=T(`/rooms/$roomId/state/$eventType`,l);return a!==void 0&&(u=T(u+`/$stateKey`,l)),i.http.authedRequest(F.Put,u,void 0,c.getWireContent(),o)})()}encryptStateEventIfNeeded(e,t){var n=this;return C(function*(){if(n.enableEncryptedStateEvents&&t&&!(!n.cryptoBackend&&n.usingExternalCrypto)){if(!n.cryptoBackend)throw Error(`This room is configured to use encryption, but your client does not support encryption.`);(yield n.shouldEncryptEventForRoom(e,t))&&(yield n.cryptoBackend.isStateEncryptionEnabledInRoom(t.roomId))&&([`m.room.create`,`m.room.member`,`m.room.join_rules`,`m.room.power_levels`,`m.room.third_party_invite`,`m.room.history_visibility`,`m.room.guest_access`,`m.room.encryption`].includes(e.getType())||(yield n.cryptoBackend.encryptEvent(e,t)))}})()}roomInitialSync(e,t){var n=T(`/rooms/$roomId/initialSync`,{$roomId:e});return this.http.authedRequest(F.Get,n,{limit:t?.toString()??`30`})}setRoomReadMarkersHttpRequest(e,t,n,r){var i=this;return C(function*(){var a=T(`/rooms/$roomId/read_markers`,{$roomId:e}),o={[SE.FullyRead]:t,[SE.Read]:n};return((yield i.doesServerSupportUnstableFeature(`org.matrix.msc2285.stable`))||(yield i.isVersionSupported(`v1.4`)))&&(o[SE.ReadPrivate]=r),i.http.authedRequest(F.Post,a,void 0,o)})()}getJoinedRooms(){var e=T(`/joined_rooms`,{});return this.http.authedRequest(F.Get,e)}getJoinedRoomMembers(e){var t=T(`/rooms/$roomId/joined_members`,{$roomId:e});return this.http.authedRequest(F.Get,t)}publicRooms(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.server,n=e.limit,r=e.since,i=rO(e,nI);if(Object.keys(i).length===0){var a={server:t,limit:n,since:r};return this.http.authedRequest(F.Get,`/publicRooms`,a)}else{var o={server:t},s=X({limit:n,since:r},i);return this.http.authedRequest(F.Post,`/publicRooms`,o,s)}}createAlias(e,t){var n=T(`/directory/room/$alias`,{$alias:e}),r={room_id:t};return this.http.authedRequest(F.Put,n,void 0,r)}deleteAlias(e){var t=T(`/directory/room/$alias`,{$alias:e});return this.http.authedRequest(F.Delete,t)}getLocalAliases(e){var t=T(`/rooms/$roomId/aliases`,{$roomId:e}),n=L.V3;return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:n})}getRoomIdForAlias(e){var t=T(`/directory/room/$alias`,{$alias:e});return this.http.authedRequest(F.Get,t)}getRoomDirectoryVisibility(e){var t=T(`/directory/list/room/$roomId`,{$roomId:e});return this.http.authedRequest(F.Get,t)}setRoomDirectoryVisibility(e,t){var n=T(`/directory/list/room/$roomId`,{$roomId:e});return this.http.authedRequest(F.Put,n,void 0,{visibility:t})}searchUserDirectory(e){var t=e.term,n=e.limit,r={search_term:t};return n!==void 0&&(r.limit=n),this.http.authedRequest(F.Post,`/user_directory/search`,void 0,r)}uploadContent(e,t){return this.http.uploadContent(e,t)}cancelUpload(e){return this.http.cancelUpload(e)}getCurrentUploads(){return this.http.getCurrentUploads()}getProfileInfo(e,t){var n=t?T(`/profile/$userId/$info`,{$userId:e,$info:t}):T(`/profile/$userId`,{$userId:e});return this.http.authedRequest(F.Get,n)}doesServerSupportExtendedProfiles(){var e=this;return C(function*(){return(yield e.isVersionSupported(`v1.16`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133.stable`))})()}getExtendedProfileRequestPrefix(){var e=this;return C(function*(){return(yield e.isVersionSupported(`v1.16`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133.stable`))?L.V3:`/_matrix/client/unstable/uk.tcpip.msc4133`})()}getExtendedProfile(e){var t=this;return C(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);return t.http.authedRequest(F.Get,T(`/profile/$userId`,{$userId:e}),void 0,void 0,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}getExtendedProfileProperty(e,t){var n=this;return C(function*(){if(!(yield n.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var r=yield n.store.getUserProfile(e);if(r?.[t]!==void 0)return r[t];var i=yield n.http.authedRequest(F.Get,T(`/profile/$userId/$key`,{$userId:e,$key:t}),void 0,void 0,{prefix:yield n.getExtendedProfileRequestPrefix()});return yield n.store.storeUserProfiles(new Map([[e,i]])),i[t]})()}setExtendedProfileProperty(e,t){var n=this;return C(function*(){if(!(yield n.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var r=n.getUserId();yield n.http.authedRequest(F.Put,T(`/profile/$userId/$key`,{$userId:r,$key:e}),void 0,{[e]:t},{prefix:yield n.getExtendedProfileRequestPrefix()})})()}deleteExtendedProfileProperty(e){var t=this;return C(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();yield t.http.authedRequest(F.Delete,T(`/profile/$userId/$key`,{$userId:n,$key:e}),void 0,void 0,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}patchExtendedProfile(e){var t=this;return C(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();return t.http.authedRequest(F.Patch,T(`/profile/$userId`,{$userId:n}),{},e,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}setExtendedProfile(e){var t=this;return C(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();yield t.http.authedRequest(F.Put,T(`/profile/$userId`,{$userId:n}),{},e,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}getThreePids(){return this.http.authedRequest(F.Get,`/account/3pid`)}addThreePidOnly(e){var t=this;return C(function*(){return t.http.authedRequest(F.Post,`/account/3pid/add`,void 0,e)})()}bindThreePid(e){var t=this;return C(function*(){return t.http.authedRequest(F.Post,`/account/3pid/bind`,void 0,e)})()}unbindThreePid(e,t){var n=this;return C(function*(){var r=`/account/3pid/unbind`,i={medium:e,address:t,id_server:n.getIdentityServerUrl(!0)};return n.http.authedRequest(F.Post,r,void 0,i)})()}deleteThreePid(e,t){return this.http.authedRequest(F.Post,`/account/3pid/delete`,void 0,{medium:e,address:t})}setPassword(e,t,n){var r=`/account/password`,i={auth:e,new_password:t,logout_devices:n};return this.http.authedRequest(F.Post,r,void 0,i)}getDevices(){return this.http.authedRequest(F.Get,`/devices`)}getDevice(e){var t=T(`/devices/$device_id`,{$device_id:e});return this.http.authedRequest(F.Get,t)}setDeviceDetails(e,t){var n=T(`/devices/$device_id`,{$device_id:e});return this.http.authedRequest(F.Put,n,void 0,t)}deleteDevice(e,t){var n=T(`/devices/$device_id`,{$device_id:e}),r={};return t&&(r.auth=t),this.http.authedRequest(F.Delete,n,void 0,r)}deleteMultipleDevices(e,t){var n={devices:e};return t&&(n.auth=t),this.http.authedRequest(F.Post,`/delete_devices`,void 0,n)}getPushers(){var e=this;return C(function*(){var t=yield e.http.authedRequest(F.Get,`/pushers`);return(yield e.doesServerSupportUnstableFeature(`org.matrix.msc3881`))||(t.pushers=t.pushers.map(e=>(e.hasOwnProperty(QD.name)||(e[QD.name]=!0),e))),t})()}setPusher(e){return this.http.authedRequest(F.Post,`/pushers/set`,void 0,e)}removePusher(e,t){var n=`/pushers/set`,r={pushkey:e,app_id:t,kind:null};return this.http.authedRequest(F.Post,n,void 0,r)}setLocalNotificationSettings(e,t){var n=`${$D.name}.${e}`;return this.setAccountData(n,t)}getPushRules(){return this.http.authedRequest(F.Get,`/pushrules/`).then(e=>(this.setPushRules(e),this.pushRules))}setPushRules(e){this.pushRules=UM.rewriteDefaultRules(this.logger,e,this.getUserId()),this.pushProcessor.updateCachedPushRuleKeys(this.pushRules)}addPushRule(e,t,n,r){var i=T(`/pushrules/`+e+`/$kind/$ruleId`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,r)}deletePushRule(e,t,n){var r=T(`/pushrules/`+e+`/$kind/$ruleId`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Delete,r)}setPushRuleEnabled(e,t,n,r){var i=T(`/pushrules/`+e+`/$kind/$ruleId/enabled`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,{enabled:r})}setPushRuleActions(e,t,n,r){var i=T(`/pushrules/`+e+`/$kind/$ruleId/actions`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,{actions:r})}search(e,t){var n=e.body,r=e.next_batch,i={};return r&&(i.next_batch=r),this.http.authedRequest(F.Post,`/search`,i,n,{abortSignal:t})}uploadKeysRequest(e,t){return this.http.authedRequest(F.Post,`/keys/upload`,void 0,e)}uploadKeySignatures(e){return this.http.authedRequest(F.Post,`/keys/signatures/upload`,void 0,e)}downloadKeysForUsers(e){var t=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}).token,n={device_keys:{}};return t!==void 0&&(n.token=t),e.forEach(e=>{n.device_keys[e]=[]}),this.http.authedRequest(F.Post,`/keys/query`,void 0,n)}claimOneTimeKeys(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`signed_curve25519`,n=arguments.length>2?arguments[2]:void 0,r={};t===void 0&&(t=`signed_curve25519`);for(var i of e){var a=x(i,2),o=a[0],s=a[1],c=r[o]||{};mD(r,o,c),mD(c,s,t)}var l={one_time_keys:r};return n&&(l.timeout=n),this.http.authedRequest(F.Post,`/keys/claim`,void 0,l)}getKeyChanges(e,t){var n={from:e,to:t};return this.http.authedRequest(F.Get,`/keys/changes`,n)}uploadDeviceSigningKeys(e,t){var n=Object.assign({},t);return e&&Object.assign(n,{auth:e}),this.http.authedRequest(F.Post,`/keys/device_signing/upload`,void 0,n,{prefix:L.Unstable})}registerWithIdentityServer(e){if(!this.idBaseUrl)throw Error(`No identity server base URL set`);var t=this.http.getUrl(`/account/register`,void 0,pA.V2,this.idBaseUrl);return this.http.requestOtherUrl(F.Post,t,e)}requestEmailToken(e,t,n,r,i){var a={client_secret:t,email:e,send_attempt:n?.toString()};return r&&(a.next_link=r),this.http.idServerRequest(F.Post,`/validate/email/requestToken`,a,pA.V2,i)}requestMsisdnToken(e,t,n,r,i,a){var o={client_secret:n,country:e,phone_number:t,send_attempt:r?.toString()};return i&&(o.next_link=i),this.http.idServerRequest(F.Post,`/validate/msisdn/requestToken`,o,pA.V2,a)}submitMsisdnToken(e,t,n,r){var i={sid:e,client_secret:t,token:n};return this.http.idServerRequest(F.Post,`/validate/msisdn/submitToken`,i,pA.V2,r??void 0)}submitMsisdnTokenOtherUrl(e,t,n,r){var i={sid:t,client_secret:n,token:r};return this.http.requestOtherUrl(F.Post,e,i)}getIdentityHashDetails(e){return this.http.idServerRequest(F.Get,`/hash_details`,void 0,pA.V2,e)}identityHashedLookup(e,t){var n=this;return C(function*(){var r={},i=yield n.getIdentityHashDetails(t);if(!i||!i.lookup_pepper||!i.algorithms)throw Error(`Unsupported identity server: bad response`);r.pepper=i.lookup_pepper;var a={};if(i.algorithms.includes(`sha256`))r.addresses=yield Promise.all(e.map(function(){var e=C(function*(e){var t=pj(yield wP(`${e[0].toLowerCase()} ${e[1].toLowerCase()} ${r.pepper}`));return a[t]=e[0],t});return function(t){return e.apply(this,arguments)}}())),r.algorithm=`sha256`;else if(i.algorithms.includes(`none`))r.addresses=e.map(e=>{var t=`${e[0].toLowerCase()} ${e[1].toLowerCase()}`;return a[t]=e[0],t}),r.algorithm=`none`;else throw Error(`Unsupported identity server: unknown hash algorithm`);var o=yield n.http.idServerRequest(F.Post,`/lookup`,r,pA.V2,t);if(!(o!=null&&o.mappings))return[];var s=[];for(var c of Object.keys(o.mappings)){var l=o.mappings[c],u=a[c];if(!u)throw Error(`Identity server returned more results than expected`);s.push({address:u,mxid:l})}return s})()}lookupThreePid(e,t,n){var r=this;return C(function*(){var i=(yield r.identityHashedLookup([[t,e]],n)).find(e=>e.address===t);return i?{address:t,medium:e,mxid:i.mxid}:{}})()}bulkLookupThreePids(e,t){var n=this;return C(function*(){var r=yield n.identityHashedLookup(e.map(e=>[e[1],e[0]]),t),i=[],a=function*(t){var n=e.find(e=>e[1]===t.address);if(!n)throw Error(`Identity sever returned unexpected results`);i.push([n[0],t.address,t.mxid])};for(var o of r)yield*a(o);return{threepids:i}})()}getIdentityAccount(e){return this.http.idServerRequest(F.Get,`/account`,void 0,pA.V2,e)}sendToDevice(e,t,n){var r=T(`/sendToDevice/$eventType/$txnId`,{$eventType:e,$txnId:n||this.makeTxnId()}),i={messages:fD(t)},a=new Map;for(var o of t){var s=x(o,2),c=s[0],l=s[1];a.set(c,Array.from(l.keys()))}return this.logger.debug(`PUT ${r}`,a),this.http.authedRequest(F.Put,r,void 0,i)}encryptAndSendToDevice(e,t,n){var r=this;return C(function*(){if(!r.cryptoBackend)throw Error(`Cannot encrypt to device event, your client does not support encryption.`);var i=yield r.cryptoBackend.encryptToDeviceMessages(e,t,n);yield r.queueToDevice(i)})()}queueToDevice(e){return this.toDeviceMessageQueue.queueBatch(e)}getThirdpartyProtocols(){return this.http.authedRequest(F.Get,`/thirdparty/protocols`).then(e=>{if(!e||typeof e!=`object`)throw Error(`/thirdparty/protocols did not return an object: ${e}`);return e})}getThirdpartyLocation(e,t){var n=T(`/thirdparty/location/$protocol`,{$protocol:e});return this.http.authedRequest(F.Get,n,t)}getThirdpartyUser(e,t){var n=T(`/thirdparty/user/$protocol`,{$protocol:e});return this.http.authedRequest(F.Get,n,t)}getTerms(e,t){var n=this.termsUrlForService(e,t);return this.http.requestOtherUrl(F.Get,n)}agreeToTerms(e,t,n,r){var i=this.termsUrlForService(e,t),a={Authorization:`Bearer `+n};return this.http.requestOtherUrl(F.Post,i,{user_accepts:r},{headers:a})}reportEvent(e,t,n,r){var i=T(`/rooms/$roomId/report/$eventId`,{$roomId:e,$eventId:t});return this.http.authedRequest(F.Post,i,void 0,{score:n,reason:r})}reportRoom(e,t){var n=T(`/rooms/$roomId/report`,{$roomId:e});return this.http.authedRequest(F.Post,n,void 0,{reason:t})}getRoomHierarchy(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=arguments.length>4?arguments[4]:void 0,a=T(`/rooms/$roomId/hierarchy`,{$roomId:e}),o={suggested_only:String(r),max_depth:n?.toString(),from:i,limit:t?.toString()};return this.http.authedRequest(F.Get,a,o,void 0,{prefix:L.V1}).catch(e=>{if(e.errcode===`M_UNRECOGNIZED`)return this.http.authedRequest(F.Get,a,o,void 0,{prefix:`/_matrix/client/unstable/org.matrix.msc2946`});throw e})}unstableCreateFileTree(e){var t=this;return C(function*(){var n=(yield t.createRoom({name:e,preset:SO.PrivateChat,power_level_content_override:X(X({},sN),{},{users:{[t.getUserId()]:100}}),creation_content:{[BD]:VD.Space},initial_state:[{type:UD.name,state_key:GD.name,content:{[WD.name]:!0}},{type:E.RoomEncryption,state_key:``,content:{algorithm:`m.megolm.v1.aes-sha2`}}]})).room_id;return new lN(t,n)})()}unstableGetFileTreeSpace(e){var t,n=this.getRoom(e);if(n?.getMyMembership()!==k.Join)return null;var r=n.currentState.getStateEvents(E.RoomCreate,``),i=n.currentState.getStateEvents(UD.name,GD.name);if(!r)throw Error(`Expected single room create event`);return!(i!=null&&(t=i.getContent())!=null&&t[WD.name])||r.getContent()?.type!==VD.Space?null:new lN(this,e)}slidingSync(e,t,n){var r={};e.pos&&(r.pos=e.pos,delete e.pos),e.timeout&&(r.timeout=e.timeout,delete e.timeout);var i=e.clientTimeout;return delete e.clientTimeout,this.http.authedRequest(F.Post,`/sync`,r,e,{prefix:`/_matrix/client/unstable/org.matrix.simplified_msc3575`,baseUrl:t,localTimeoutMs:i,abortSignal:n})}supportsThreads(){return this.clientOpts?.threadSupport||!1}supportsIntentionalMentions(){return this.canSupport.get(UA.IntentionalMentions)!==HA.Unsupported}getRoomSummary(e,t){var n=this;return C(function*(){var r={prefix:`/_matrix/client/unstable/im.nheko.summary`};try{var i=T(`/summary/$roomid`,{$roomid:e});return yield n.http.authedRequest(F.Get,i,{via:t},void 0,r)}catch(i){if(i instanceof I&&i.errcode===`M_UNRECOGNIZED`){var a=T(`/rooms/$roomid/summary`,{$roomid:e});return yield n.http.authedRequest(F.Get,a,{via:t},void 0,r)}else throw i}})()}processThreadEvents(e,t,n){e.processThreadedEvents(t,n)}processThreadRoots(e,t,n){this.supportsThreads()&&e.processThreadRoots(t,n)}processBeaconEvents(e,t){this.processAggregatedTimelineEvents(e,t)}processAggregatedTimelineEvents(e,t){t!=null&&t.length&&e&&(e.currentState.processBeaconEvents(t,this),e.processPollEvents(t))}whoami(){var e=this;return C(function*(){return e.http.authedRequest(F.Get,`/account/whoami`)})()}timestampToEvent(e,t,n){var r=this;return C(function*(){var i=T(`/rooms/$roomId/timestamp_to_event`,{$roomId:e}),a={ts:t.toString(),dir:n};try{return yield r.http.authedRequest(F.Get,i,a,void 0,{prefix:L.V1})}catch(e){if(e.errcode===`M_UNRECOGNIZED`&&(e.httpStatus===400||e.httpStatus===404||e.httpStatus===405))return yield r.http.authedRequest(F.Get,i,a,void 0,{prefix:`/_matrix/client/unstable/org.matrix.msc3030`});throw e}})()}getAuthMetadata(){var e=this;return C(function*(){var t;try{var n=yield e.isVersionSupported(`v1.15`);t=yield e.http.request(F.Get,`/auth_metadata`,void 0,void 0,{prefix:n?L.V1:L.Unstable+`/org.matrix.msc2965`})}catch(t){if(t instanceof I&&t.errcode===`M_UNRECOGNIZED`){var r=(yield e.http.request(F.Get,`/auth_issuer`,void 0,void 0,{prefix:L.Unstable+`/org.matrix.msc2965`})).issuer;return $F(r)}throw t}return eI(t)})()}},`RESTORE_BACKUP_ERROR_BAD_KEY`,`RESTORE_BACKUP_ERROR_BAD_KEY`);function pI(e){return Object.fromEntries(Object.entries(e).map(e=>{var t=x(e,2),n=t[0],r=t[1];return[`${uI}.${n}`,r]}))}function mI(e,t){var n,r=e.getUserId(),i=t.getId(),a=e.getRoom(t.getRoomId());if(!(!a||!r||!i)){if(!a.findEventById(i)){w.info(`Decrypted event ${t.getId()} is not in room ${a.roomId}: ignoring`);return}var o=!!t.threadRootId&&!t.isThreadRoot,s;if(o){var c=a.getThread(t.threadRootId);s=c?c.hasUserReadEvent(r,i):!0}else s=a.hasUserReadEvent(r,i);if(!s){var l=e.getPushActionsForEvent(t,!0);if(l!=null&&(n=l.tweaks)!=null&&n.highlight){var u=a.getUnreadCountForEventContext(R.Highlight,t)+1;o?a.setThreadUnreadNotificationCount(t.threadRootId,R.Highlight,u):a.setUnreadNotificationCount(R.Highlight,u)}if(l!=null&&l.notify){var d=a.getUnreadCountForEventContext(R.Total,t)+1;o?a.setThreadUnreadNotificationCount(t.threadRootId,R.Total,d):a.setUnreadNotificationCount(R.Total,d)}}}}function hI(e){return gI(e)?CE:e.threadRootId}function gI(e){return!e.threadRootId||e.isThreadRoot?!0:e.isRelation()?e.isRelation(Q.name)?!1:e.relationEventId===e.threadRootId:(w.warn(`Event is not a relation or a thread root, but still has a threadRootId! id=${e.getId()}`),!0)}function _I(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function vI(e){for(var t=1;t{e!=null&&e.isRelation(Q.name)&&this.room.eventShouldLiveIn(e).threadId===this.id&&e.getId()!==this.id&&!t.status&&(this.replyCount--,this.updatePendingReplyCount(),this.emit(yI.Update,this))}),h(this,`onRedaction`,function(){var e=C(function*(e,t,n){if(n===i.id)if(i.replyCount<=0){for(var r of i.timeline)i.clearEventMetadata(r);i.lastEvent=i.rootEvent,i._currentUserParticipated=!1,i.emit(yI.Delete,i)}else i.lastEvent?.getId()===e.getAssociatedId()&&(yield i.processRootEventPromise,i.processRootEventPromise=void 0),yield i.updateThreadMetadata()});return function(t,n,r){return e.apply(this,arguments)}}()),h(this,`onTimelineEvent`,(e,t,n)=>{if(!n){var r=e.getSender();r&&t&&this.shouldSendLocalEchoReceipt(r,e)&&t.addLocalEchoReceipt(r,e,SE.Read),e.getId()!==this.id&&e.isRelation(Q.name)&&this.replyCount++}this.onEcho(e,n??!1)}),h(this,`onLocalEcho`,e=>{this.onEcho(e,!1)}),h(this,`onEcho`,function(){var e=C(function*(e,t){e.threadRootId===i.id&&i.lastEvent!==e&&(yield i.updateThreadMetadata(),e.isRelation(Q.name)&&(t||(i.lastEvent=void 0,i.emit(yI.NewReply,i,e))))});return function(t,n){return e.apply(this,arguments)}}()),this.setMaxListeners(1e3),!(r!=null&&r.room))throw Error(`element-web#22141: A thread requires a room in order to function`);this.room=r.room,this.client=r.client,this.pendingEventOrdering=r.pendingEventOrdering??oI.Chronological,this.timelineSet=new nk(this.room,{timelineSupport:!0,pendingEvents:!0},this.client,this),this.reEmitter=new VO(this),this.reEmitter.reEmit(this.timelineSet,[z.Timeline,z.TimelineReset]),this.room.on($.BeforeRedaction,this.onBeforeRedaction),this.room.on(z.Redaction,this.onRedaction),this.room.on(z.LocalEchoUpdated,this.onLocalEcho),this.room.on(z.TimelineReset,this.onTimelineReset),this.timelineSet.on(z.Timeline,this.onTimelineEvent),this.processReceipts(r.receipts),this.updateThreadMetadata(),this.setEventMetadata(this.rootEvent)}fetchRootEvent(){var e=this;return C(function*(){try{var t=yield e.client.fetchRoomEvent(e.roomId,e.id);e.rootEvent=e.client.getEventMapper()(t)}catch(e){w.error(`Failed to fetch thread root to construct thread with`,e)}yield e.processEvent(e.rootEvent)})()}static setServerSideSupport(t){e.hasServerSideSupport=t,t!==bI.Stable&&(wI.setPreferUnstable(!0),TI.setPreferUnstable(!0),Q.setPreferUnstable(!0))}static setServerSideListSupport(t){e.hasServerSideListSupport=t}static setServerSideFwdPaginationSupport(t){e.hasServerSideFwdPaginationSupport=t}shouldSendLocalEchoReceipt(e,t){if((this.client.canSupport.get(UA.RelationsRecursion)??HA.Unsupported)===HA.Unsupported){var n=this.getReadReceiptForUserId(e)?.eventId;if(n){var r=this.findEventById(n);if(r&&r.getTs()>t.getTs())return!1}}return!0}get roomState(){return this.room.getLiveTimeline().getState(N.FORWARDS)}addEventToTimeline(e,t){this.findEventById(e.getId())||this.timelineSet.addEventToTimeline(e,this.liveTimeline,{toStartOfTimeline:t,fromCache:!1,roomState:this.roomState,addToState:!1})}insertEventIntoTimeline(e){var t=e.getId();t&&(this.findEventById(t)||this.timelineSet.insertEventIntoTimeline(e,this.liveTimeline,this.roomState,!1))}addEvents(e,t){e.forEach(e=>this.addEvent(e,t,!1)),this.updateThreadMetadata()}addEvent(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;this.setEventMetadata(t);var i=this.lastReply(),a=!i||t.localTimestamp>=i.localTimestamp;if(!e.hasServerSideSupport)this.addEventToTimeline(t,n),this.client.decryptEventIfNeeded(t);else if(t.isRelation(D.Annotation)||t.isRelation(D.Replace)){this.addRelatedThreadEvent(t,n);return}else !n&&a?(this.addEventToTimeline(t,!1),this.fetchEditsWhereNeeded(t)):n?this.addEventToTimeline(t,n):this.insertEventIntoTimeline(t);t.getId()!==this.id&&t.isRelation(Q.name)&&!n&&a&&(this.lastEvent=void 0),r&&(this.emit(yI.NewReply,this,t),this.updateThreadMetadata())}addRelatedThreadEvent(e,t){if(this.initialEventsFetched)(this.client.canSupport.get(UA.RelationsRecursion)??HA.Unsupported)===HA.Unsupported?this.insertEventIntoTimeline(e):this.addEventToTimeline(e,t);else{var n;if((n=this.replayEvents)==null||n.push(e),e.isRelation(D.Annotation)){var r;(r=this.timelineSet.relations)==null||r.aggregateChildEvent(e,this.timelineSet)}}}processEvent(e){var t=this;return C(function*(){e&&(t.setEventMetadata(e),yield t.fetchEditsWhereNeeded(e))})()}processReceipts(){for(var e of arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]){var t=e.eventId,n=e.receiptType,r=e.userId,i=e.receipt,a=e.synthetic;this.addReceiptToStructure(t,n,r,i,a)}}getRootEventBundledRelationship(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.rootEvent)?.getServerAggregatedRelation(Q.name)}processRootEvent(){var t=this;return C(function*(){var n=t.getRootEventBundledRelationship();e.hasServerSideSupport&&n&&(t.replyCount=n.count,t._currentUserParticipated=!!n.current_user_participated,t.lastEvent=t.client.getEventMapper()(vI(vI({},n.latest_event),{},{room_id:t.roomId})),t.updatePendingReplyCount(),yield t.processEvent(t.lastEvent))})()}updatePendingReplyCount(){var e=(this.pendingEventOrdering===oI.Detached?this.room.getPendingEvents():this.events).filter(e=>e.threadRootId===this.id&&e.isRelation(Q.name)&&e.status!==null&&e.getId()!==this.lastEvent?.getId());this.lastPendingEvent=e.length?e[e.length-1]:void 0,this.pendingReplyCount=e.length}resetLiveTimeline(e,t){var n=this;return C(function*(){var r=n.liveTimeline;n.timelineSet.resetLiveTimeline(e??void 0,t??void 0);var i=n.liveTimeline,a,o;e&&(a=(yield n.client.createMessagesRequest(n.roomId,e,1,M.Forward)).end),t&&(o=(yield n.client.createMessagesRequest(n.roomId,t,1,M.Backward)).start),t&&r.getPaginationToken(M.Forward)===t&&r.setPaginationToken(o??null,M.Forward),e&&i.getPaginationToken(M.Backward)===e&&i.setPaginationToken(a??null,M.Backward)})()}updateThreadFromRootEvent(){var t=this;return C(function*(){e.hasServerSideSupport&&(!t.initialEventsFetched&&!t.lastEvent&&(yield t.processRootEvent()),yield t.fetchRootEvent()),yield t.processRootEvent()})()}updateThreadMetadata(){var e=this;return C(function*(){if(e.updatePendingReplyCount(),e.processRootEventPromise||=e.updateThreadFromRootEvent(),yield e.processRootEventPromise,!e.initialEventsFetched)if(e.initalEventFetchProm)yield e.initalEventFetchProm;else try{e.timelineSet.resetLiveTimeline(),e.replyCount===0&&e.rootEvent?(e.timelineSet.addEventsToTimeline([e.rootEvent],!0,!1,e.liveTimeline,null),e.liveTimeline.setPaginationToken(null,M.Backward)):(e.initalEventFetchProm=e.client.paginateEventTimeline(e.liveTimeline,{backwards:!0}),yield e.initalEventFetchProm),e.initialEventsFetched=!0;for(var t of e.replayEvents)e.addEvent(t,!1);e.replayEvents=null,e.emit(z.TimelineReset,e.room,e.timelineSet,!0)}catch(t){w.error(`Failed to load start of newly created thread: `,t),e.initialEventsFetched=!1}e.emit(yI.Update,e)})()}fetchEditsWhereNeeded(){var e=arguments,t=this;return C(function*(){if((t.client.canSupport.get(UA.RelationsRecursion)??HA.Unsupported)===HA.Unsupported){for(var n=e.length,r=Array(n),i=0;i0&&arguments[0]!==void 0?arguments[0]:e=>e.isRelation(Q.name),t=this.timeline.length-1;t>=0;t--){var n=this.timeline[t];if(e(n))return n}return null}get roomId(){return this.room.roomId}get length(){return this.replyCount+this.pendingReplyCount}get replyToEvent(){return this.lastPendingEvent??this.lastEvent??this.lastReply()}get timeline(){return this.events}get events(){return this.liveTimeline.getEvents()}has(e){return this.timelineSet.findEventById(e)instanceof MI}get hasCurrentUserParticipated(){return this._currentUserParticipated}get liveTimeline(){return this.timelineSet.getLiveTimeline()}getUnfilteredTimelineSet(){return this.timelineSet}addReceipt(e,t){throw Error(`Unsupported function on the thread model`)}getEventReadUpTo(e,t){var n=e===this.client.getUserId(),r=this.timeline[this.timeline.length-1];if(n&&r){var i=r.getTs()=0;--c){var l,u=this.timeline[c];if(u.getId()===o)return o;if(u.getTs()e+`: `+t[e]).join(`, `)),n+=`]`,n}var AI=Object.freeze({visible:!0}),jI=36e5,$=function(e){return e.Decrypted=`Event.decrypted`,e.BeforeRedaction=`Event.beforeRedaction`,e.VisibilityChange=`Event.visibilityChange`,e.LocalEventIdReplaced=`Event.localEventIdReplaced`,e.Status=`Event.status`,e.Replaced=`Event.replaced`,e.RelationsCreated=`Event.relationsCreated`,e.SentinelUpdated=`Event.sentinelUpdated`,e}({}),MI=class e extends O{setMetadata(e,t){var n,r,i=this.isState()&&this.getType()===E.RoomMember&&this.getSender()===this.getStateKey(),a=!1;if(i||!((n=this.sender)!=null&&(n=n.events)!=null&&n.member)){var o=e.getSentinelMember(this.getSender());o!==this.sender&&(a=!0),this.sender=o}if(i||!((r=this.target)!=null&&(r=r.events)!=null&&r.member)&&this.getType()===E.RoomMember){var s=e.getSentinelMember(this.getStateKey());s!==this.target&&(a=!0),this.target=s}this.isState()&&t&&(this.forwardLooking=!1),a&&this.emit($.SentinelUpdated)}constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.event=e,h(this,`pushDetails`,{}),h(this,`_replacingEvent`,null),h(this,`_localRedactionEvent`,null),h(this,`_isCancelled`,!1),h(this,`clearEvent`,void 0),h(this,`visibility`,AI),h(this,`_hasCachedExtEv`,!1),h(this,`_cachedExtEv`,void 0),h(this,`_decryptionFailureReason`,null),h(this,`senderCurve25519Key`,null),h(this,`claimedEd25519Key`,null),h(this,`keyForwardedBy`,void 0),h(this,`decryptionPromise`,null),h(this,`retryDecryption`,!1),h(this,`txnId`,void 0),h(this,`thread`,void 0),h(this,`threadId`,void 0),h(this,`localTimestamp`,void 0),h(this,`sender`,null),h(this,`target`,null),h(this,`status`,null),h(this,`error`,null),h(this,`forwardLooking`,!0),h(this,`reEmitter`,void 0),h(this,`unstableStickyExpiresAt`,void 0),[`state_key`,`type`,`sender`,`room_id`,`membership`].forEach(t=>{typeof e[t]==`string`&&(e[t]=DE(e[t]))}),[`membership`,`avatar_url`,`displayname`].forEach(t=>{typeof e.content?.[t]==`string`&&(e.content[t]=DE(e.content[t]))}),[`rel_type`].forEach(t=>{var n;typeof((n=e.content)==null||(n=n[`m.relates_to`])==null?void 0:n[t])==`string`&&(e.content[`m.relates_to`][t]=DE(e.content[`m.relates_to`][t]))}),this.txnId=e.txn_id;var t=this.getAge(),n=Date.now();this.localTimestamp=t===void 0?this.getTs()??n:n-t,this.reEmitter=new VO(this),this.unstableStickyInfo&&(this.unstableStickyInfo.duration_ttl_ms?this.unstableStickyExpiresAt=n+this.unstableStickyInfo.duration_ttl_ms:this.unstableStickyExpiresAt=Math.min(n,this.getTs())+this.unstableStickyInfo.duration_ms)}get unstableExtensibleEvent(){return this._hasCachedExtEv||(this._cachedExtEv=RD.ExtensibleEvents.parse(this.getEffectiveEvent())??void 0),this._cachedExtEv}invalidateExtensibleEvent(){this._hasCachedExtEv=!1}getEffectiveEvent(){var e=Object.assign({},this.getContent());if(this.getWireType()===E.RoomMessageEncrypted)for(var t of Object.entries(this.getWireContent())){var n=x(t,2),r=n[0],i=n[1];[`algorithm`,`ciphertext`,`device_id`,`sender_key`,`session_id`].includes(r)||e[r]===void 0&&(e[r]=i)}return Object.assign({},this.event,this.clearEvent,{content:e})}getId(){return this.event.event_id}getSender(){return this.event.sender}getType(){return this.clearEvent?this.clearEvent.type:this.event.type}getWireType(){return this.event.type}getRoomId(){return this.event.room_id}getTs(){return this.event.origin_server_ts}getDate(){return this.event.origin_server_ts?new Date(this.event.origin_server_ts):null}getDetails(){var e=this.getRoomId();return e?`id=${this.getId()} type=${this.getWireType()} sender=${this.getSender()} room=${e} ts=${this.getDate()?.toISOString()}`:`msgid=${this.getContent()[HD]} type=${this.getWireType()} sender=${this.getSender()}`}getOriginalContent(){return this._localRedactionEvent?{}:this.clearEvent?this.clearEvent.content??{}:this.event.content??{}}getContent(){return this._localRedactionEvent?{}:this._replacingEvent?this._replacingEvent.getContent()[`m.new_content`]??{}:this.getOriginalContent()}getWireContent(){return this.event.content||{}}get threadRootId(){if(!this.isState()){var e=this.getWireContent()?.[`m.relates_to`];if(e?.rel_type===Q.name)return e.event_id;if(this.thread)return this.thread.id;if(this.threadId!==void 0)return this.threadId;var t=this.getUnsigned();if(typeof t[eO.name]==`string`)return t[eO.name]}}get isThreadRoot(){return this.isState()?!1:!!this.getServerAggregatedRelation(Q.name)||this.threadRootId===this.getId()}get replyEventId(){var e;return(e=this.getWireContent()[`m.relates_to`])==null||(e=e[`m.in_reply_to`])==null?void 0:e.event_id}get relationEventId(){var e;return(e=this.getWireContent())==null||(e=e[`m.relates_to`])==null?void 0:e.event_id}getPrevContent(){return this.getUnsigned().prev_content||{}}getDirectionalContent(){return this.forwardLooking?this.getContent():this.getPrevContent()}getAge(){return this.getUnsigned().age}getLocalAge(){return Date.now()-this.localTimestamp}getStateKey(){return this.clearEvent?this.clearEvent.state_key:this.event.state_key}getWireStateKey(){return this.event.state_key}isState(){return this.event.state_key!==void 0}getMembershipAtEvent(){var e=this.getUnsigned();return tO.findIn(e)}makeEncrypted(e,t,n,r){this.clearEvent={type:this.event.type,content:this.event.content,state_key:this.event.state_key},this.event.type=e,this.event.content=t,this.senderCurve25519Key=n,this.claimedEd25519Key=r,this.isState()&&(this.event.state_key=`${this.clearEvent.type}:${this.clearEvent.state_key}`)}isBeingDecrypted(){return this.decryptionPromise!=null}getDecryptionPromise(){return this.decryptionPromise}isDecryptionFailure(){return this._decryptionFailureReason!==null}get decryptionFailureReason(){return this._decryptionFailureReason}shouldAttemptDecryption(){return!(this.isRedacted()||this.isBeingDecrypted()||this.clearEvent||!this.isEncrypted())}attemptDecryption(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};if(!n.isEncrypted())throw Error(`Attempt to decrypt event which isn't encrypted`);if(n.clearEvent&&!n.isDecryptionFailure())throw Error(`Attempt to decrypt event which has already been decrypted`);return n.decryptionPromise?(w.log(`Event ${n.getId()} already being decrypted; queueing a retry`),n.retryDecryption=!0,n.decryptionPromise):(n.decryptionPromise=n.decryptionLoop(e,r),n.decryptionPromise)})()}getKeyRequestRecipients(e){return[{userId:e,deviceId:`*`}]}decryptionLoop(e){var t=arguments,n=this;return C(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};for(yield Promise.resolve();;){n.retryDecryption=!1;var i=void 0;try{var a=yield e.decryptEvent(n);r.isRetry===!0&&w.info(`Decrypted event on retry (${n.getDetails()})`),n.setClearData(a),n._decryptionFailureReason=null}catch(e){var o=e instanceof OI?e.detailedString:String(e);if(i=e,n.retryDecryption){w.log(`Error decrypting event (${n.getDetails()}), but retrying: ${o}`);continue}w.warn(`Error decrypting event (${n.getDetails()}): ${o}`),n.setClearDataForDecryptionFailure(String(e)),n._decryptionFailureReason=e instanceof OI?e.code:YN.UNKNOWN_ERROR}n.decryptionPromise=null,n.retryDecryption=!1,n.setPushDetails(),r.emit!==!1&&n.emit($.Decrypted,n,i);return}})()}setClearData(e){this.clearEvent=e.clearEvent,this.senderCurve25519Key=e.senderCurve25519Key??null,this.claimedEd25519Key=e.claimedEd25519Key??null,this.keyForwardedBy=e.keyForwardedBy,this.invalidateExtensibleEvent()}setClearDataForDecryptionFailure(e){this.clearEvent={type:E.RoomMessage,content:{msgtype:`m.bad.encrypted`,body:`** Unable to decrypt: ${e} **`}},this.senderCurve25519Key=null,this.claimedEd25519Key=null,this.invalidateExtensibleEvent()}getClearContent(){return this.clearEvent?this.clearEvent.content:null}isEncrypted(){return this.event.type===E.RoomMessageEncrypted}getSenderKey(){return this.senderCurve25519Key}getKeysClaimed(){return this.claimedEd25519Key?{ed25519:this.claimedEd25519Key}:{}}getClaimedEd25519Key(){return this.claimedEd25519Key}getForwardingCurve25519KeyChain(){return[]}isKeySourceUntrusted(){return!1}getKeyForwardingUser(){return this.keyForwardedBy}getUnsigned(){return this.event.unsigned||{}}setUnsigned(e){this.event.unsigned=e}unmarkLocallyRedacted(){var e=this._localRedactionEvent;return this._localRedactionEvent=null,this.event.unsigned&&(this.event.unsigned.redacted_because=void 0),!!e}markLocallyRedacted(e){this._localRedactionEvent||(this.emit($.BeforeRedaction,this,e),this._localRedactionEvent=e,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event)}applyVisibilityEvent(e){var t=e?.visible??!0,n=e?.reason??null,r=!1;this.visibility.visible===t?!this.visibility.visible&&this.visibility.reason!==n&&(r=!0):r=!0,r&&(t?this.visibility=AI:this.visibility=Object.freeze({visible:!1,reason:n}),this.emit($.VisibilityChange,this,t))}messageVisibility(){return this.visibility}makeRedacted(e,t){if(!e.event)throw Error(`invalid redactionEvent in makeRedacted`);for(var n in this._localRedactionEvent=null,this.emit($.BeforeRedaction,this,e),this._replacingEvent=null,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event,this.event)this.event.hasOwnProperty(n)&&!NI.has(n)&&delete this.event[n];this.isEncrypted()&&(this.clearEvent=void 0);var r=this.getType()in PI?PI[this.getType()]:{},i=this.getContent();for(var a in i)i.hasOwnProperty(a)&&!r[a]&&delete i[a];!this.isThreadRoot&&this.threadRootId&&this.threadRootId!==this.getId()&&(this.moveAllRelatedToMainTimeline(t),e.moveToMainTimeline(t)),this.invalidateExtensibleEvent()}moveAllRelatedToMainTimeline(e){var t=this.thread;if(this.moveToMainTimeline(e),t)for(var n of t.events)n.getRelation()?.event_id===this.getId()&&n.moveAllRelatedToMainTimeline(e)}moveToMainTimeline(e){var t;(t=this.thread)==null||t.timelineSet.removeEvent(this.getId()),this.setThread(void 0);var n=e.getLiveTimeline();n.getTimelineSet().insertEventIntoTimeline(this,n,n.getState(N.FORWARDS),!1)}isRedacted(){return!!this.getUnsigned().redacted_because}isRedaction(){return this.getType()===E.RoomRedaction}asVisibilityChange(){if(!ZD.matches(this.getType()))return null;var e=this.getRelation();if(!e||e.rel_type!=`m.reference`)return null;var t=e.event_id;if(!t)return null;var n=this.getWireContent(),r=!!n.visible,i=n.reason;return i&&typeof i!=`string`?null:{visible:r,reason:i,eventId:t}}isVisibilityEvent(){return ZD.matches(this.getType())}getRedactionEvent(){var e,t;return this.isRedacted()?(e=this.clearEvent)!=null&&e.unsigned?this.clearEvent?.unsigned.redacted_because??null:(t=this.event.unsigned)!=null&&t.redacted_because?this.event.unsigned.redacted_because:{}:null}getPushActions(){return this.pushDetails.actions||null}getPushDetails(){return this.pushDetails}setPushDetails(e,t){this.pushDetails={actions:e,rule:t}}handleRemoteEcho(e){var t=this.getUnsigned(),n=this.getId();this.event=e,t.redacted_because&&(this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=t.redacted_because),this.setStatus(null),this.getId()!==n&&this.emit($.LocalEventIdReplaced,this),this.localTimestamp=Date.now()-(this.getAge()??0)}isSending(){return!!this.status}setStatus(e){this.status=e,this.emit($.Status,this,e)}replaceLocalEventId(e){this.event.event_id=e,this.emit($.LocalEventIdReplaced,this)}isRelation(e){var t=this.getWireContent()?.[`m.relates_to`];return this.isState()&&t!=null&&t.rel_type&&[D.Replace,D.Thread].includes(t.rel_type)?!1:!!(t!=null&&t.rel_type&&t.event_id&&(!e||t.rel_type===e))}getRelation(){return this.isRelation()?this.getWireContent()[`m.relates_to`]??null:null}makeReplaced(e){this.isRedacted()&&e||this.isState()||this._replacingEvent!==e&&(this._replacingEvent=e??null,this.emit($.Replaced,this),this.invalidateExtensibleEvent())}getAssociatedStatus(){return this._replacingEvent?this._replacingEvent.status:this._localRedactionEvent?this._localRedactionEvent.status:this.status}getServerAggregatedRelation(e){return this.getUnsigned()[`m.relations`]?.[e]}replacingEventId(){var e=this.getServerAggregatedRelation(D.Replace);if(e)return e.event_id;if(this._replacingEvent)return this._replacingEvent.getId()}replacingEvent(){return this._replacingEvent}replacingEventDate(){var e=this.getServerAggregatedRelation(D.Replace);if(e){var t=e.origin_server_ts;if(Number.isFinite(t))return new Date(t)}else if(this._replacingEvent)return this._replacingEvent.getDate()??void 0}localRedactionEvent(){return this._localRedactionEvent}getAssociatedId(){var e=this.getRelation();if(this.replyEventId)return this.replyEventId;if(e)return e.event_id;if(this.isRedaction())return this.event.redacts}hasAssociation(){return!!this.getAssociatedId()}updateAssociatedId(e){var t=this.getRelation();t?t.event_id=e:this.isRedaction()&&(this.event.redacts=e)}flagCancelled(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this._isCancelled=e}isCancelled(){return this._isCancelled}toSnapshot(){var t=new e(JSON.parse(JSON.stringify(this.event)));for(var n of Object.entries(this)){var r=x(n,2),i=r[0],a=r[1];i!==`event`&&(t[i]=a)}return t}isEquivalentTo(e){if(!e)return!1;if(e===this)return!0;var t=PE(this.event),n=PE(e.event);return JSON.stringify(t)===JSON.stringify(n)}toJSON(){var e=this.getEffectiveEvent();return this.isEncrypted()?{decrypted:e,encrypted:this.event}:e}setTxnId(e){this.txnId=e}getTxnId(){return this.txnId}setThread(e){this.isState()||(this.thread&&this.reEmitter.stopReEmitting(this.thread,[yI.Update]),this.thread=e,this.setThreadId(e?.id),e&&this.reEmitter.reEmit(e,[yI.Update]))}getThread(){return this.thread}setThreadId(e){this.threadId=e}get unstableStickyInfo(){var e;if((e=this.event.msc4354_sticky)!=null&&e.duration_ms)return{duration_ms:Math.min(jI,this.event.msc4354_sticky.duration_ms),duration_ttl_ms:this.event.unsigned?.msc4354_sticky_duration_ttl_ms}}},NI=new Set([`event_id`,`type`,`room_id`,`user_id`,`sender`,`state_key`,`prev_state`,`content`,`unsigned`,`origin_server_ts`]),PI={[E.RoomMember]:{membership:1},[E.RoomJoinRules]:{join_rule:1},[E.RoomPowerLevels]:{ban:1,events:1,events_default:1,kick:1,redact:1,state_default:1,users:1,users_default:1}},FI=class{constructor(){h(this,`unthreadedReadReceipts`,new Map),h(this,`threadedReadReceipts`,new gD(()=>new Map))}setUnthreaded(e,t){this.unthreadedReadReceipts.set(e,t)}setThreaded(e,t,n){this.threadedReadReceipts.getOrCreate(e).set(t,n)}allUnthreaded(){return this.unthreadedReadReceipts.entries()}*allThreaded(){for(var e of this.threadedReadReceipts.values())for(var t of e.entries())yield t}consumeEphemeralEvents(e){e?.forEach(e=>{e.type!==E.Receipt||!e.content||Object.keys(e.content).forEach(t=>{Object.entries(e.content[t]).forEach(n=>{var r=x(n,2),i=r[0],a=r[1];if(lD(i))for(var o of Object.keys(a)){var s=e.content[t][i][o],c={data:e.content[t][i][o],type:i,eventId:t};s.thread_id?this.setThreaded(s.thread_id,o,c):this.setUnthreaded(o,c)}})})})}buildAccumulatedReceiptEvent(e){var t={type:E.Receipt,room_id:e,content:{}},n=new gD(()=>new gD(()=>new Map));for(var r of this.allUnthreaded()){var i=x(r,2),a=i[0],o=i[1];n.getOrCreate(o.eventId).getOrCreate(o.type).set(a,o.data)}for(var s of this.allThreaded()){var c=x(s,2),l=c[0],u=c[1];n.getOrCreate(u.eventId).getOrCreate(u.type).set(l,u.data)}return t.content=fD(n),n.size>0?t:null}},II=function(e){return e.Invite=`invite`,e.Leave=`leave`,e.Join=`join`,e.Knock=`knock`,e}({});function LI(e){return`_localTs`in e&&e._localTs!==void 0}var RI=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.opts=e,h(this,`accountData`,{}),h(this,`inviteRooms`,{}),h(this,`knockRooms`,{}),h(this,`joinRooms`,{}),h(this,`nextBatch`,null),this.opts.maxTimelineEntries=this.opts.maxTimelineEntries||50}accumulate(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.accumulateRooms(e,t),this.accumulateAccountData(e),this.nextBatch=e.next_batch}accumulateAccountData(e){!e.account_data||!e.account_data.events||e.account_data.events.forEach(e=>{this.accountData[e.type]=e})}accumulateRooms(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach(n=>{this.accumulateRoom(n,II.Invite,e.rooms.invite[n],t)}),e.rooms.join&&Object.keys(e.rooms.join).forEach(n=>{this.accumulateRoom(n,II.Join,e.rooms.join[n],t)}),e.rooms.leave&&Object.keys(e.rooms.leave).forEach(n=>{this.accumulateRoom(n,II.Leave,e.rooms.leave[n],t)}),e.rooms.knock&&Object.keys(e.rooms.knock).forEach(n=>{this.accumulateRoom(n,II.Knock,e.rooms.knock[n],t)}))}accumulateRoom(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;switch(t){case II.Invite:this.knockRooms[e]&&delete this.knockRooms[e],this.accumulateInviteState(e,n);break;case II.Knock:this.accumulateKnockState(e,n);break;case II.Join:this.knockRooms[e]?delete this.knockRooms[e]:this.inviteRooms[e]&&delete this.inviteRooms[e],this.accumulateJoinState(e,n,r);break;case II.Leave:this.knockRooms[e]?delete this.knockRooms[e]:this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:w.error(`Unknown cateogory: `,t)}}accumulateInviteState(e,t){if(!(!t.invite_state||!t.invite_state.events)){if(!this.inviteRooms[e]){this.inviteRooms[e]={invite_state:t.invite_state};return}var n=this.inviteRooms[e];t.invite_state.events.forEach(e=>{for(var t=!1,r=0;r{for(var t=!1,r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,s=Date.now();this.joinRooms[e]||(this.joinRooms[e]={_currentState:Object.create(null),_timeline:[],_accountData:Object.create(null),_unreadNotifications:{},_unreadThreadNotifications:{},_summary:{},_receipts:new FI,_stickyEvents:[]});var c=this.joinRooms[e];if(t.account_data&&t.account_data.events&&t.account_data.events.forEach(e=>{c._accountData[e.type]=e}),t.unread_notifications&&(c._unreadNotifications=t.unread_notifications),c._unreadThreadNotifications=t[ik.stable]??t[ik.unstable]??void 0,t.summary){var l=`m.heroes`,u=`m.invited_member_count`,d=`m.joined_member_count`,f=c._summary,p=t.summary;f[l]=p[l]??f[l],f[d]=p[d]??f[d],f[u]=p[u]??f[u]}if(c._receipts.consumeEphemeralEvents(t.ephemeral?.events),t.timeline&&t.timeline.limited&&(c._timeline=[]),(n=t.state)==null||(n=n.events)==null||n.forEach(e=>{zI(c._currentState,e)}),(r=t[`org.matrix.msc4222.state_after`])==null||(r=r.events)==null||r.forEach(e=>{zI(c._currentState,e)}),(i=t.timeline)==null||(i=i.events)==null||i.forEach((e,n)=>{t[`org.matrix.msc4222.state_after`]||zI(c._currentState,e);var r;if(o)r=e;else{r=Object.assign({},e),r.unsigned!==void 0&&(r.unsigned=Object.assign({},r.unsigned));var i=e.unsigned?.age;i!==void 0&&(r._localTs=Date.now()-i)}c._timeline.push({event:r,token:n===0?t.timeline.prev_batch??null:null})}),c._stickyEvents=c._stickyEvents.filter(e=>e.expiresTs>s),(a=t.msc4354_sticky)!=null&&a.events&&(c._stickyEvents=c._stickyEvents.concat(t.msc4354_sticky.events.map(e=>({event:e,expiresTs:Math.min(e.msc4354_sticky.duration_ms,jI)+Math.min(e.origin_server_ts,s)})))),c._timeline.length>this.opts.maxTimelineEntries){for(var m=c._timeline.length-this.opts.maxTimelineEntries;m0&&arguments[0]!==void 0?arguments[0]:!1,t={join:{},invite:{},knock:{},leave:{}};Object.keys(this.inviteRooms).forEach(e=>{t.invite[e]=this.inviteRooms[e]}),Object.keys(this.knockRooms).forEach(e=>{t.knock[e]=this.knockRooms[e]}),Object.keys(this.joinRooms).forEach(n=>{var r,i=this.joinRooms[n],a={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},"org.matrix.msc4222.state_after":{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:i._unreadNotifications,unread_thread_notifications:i._unreadThreadNotifications,summary:i._summary,msc4354_sticky:(r=i._stickyEvents)!=null&&r.length?{events:i._stickyEvents.map(e=>e.event)}:void 0};Object.keys(i._accountData).forEach(e=>{a.account_data.events.push(i._accountData[e])});var o=i._receipts.buildAccumulatedReceiptEvent(n);o&&a.ephemeral.events.push(o),i._timeline.forEach(t=>{if(!a.timeline.prev_batch){if(!t.token)return;a.timeline.prev_batch=t.token}var n;!e&&LI(t.event)?(n=Object.assign({},t.event),n.unsigned!==void 0&&(n.unsigned=Object.assign({},n.unsigned)),delete n._localTs,n.unsigned=n.unsigned||{},n.unsigned.age=Date.now()-t.event._localTs):n=t.event,a.timeline.events.push(n)});for(var s=Object.create(null),c=a.timeline.events.length-1;c>=0;c--){var l=a.timeline.events[c];if(!(l.state_key===null||l.state_key===void 0)){var u=ME(l);u.unsigned&&(u.unsigned.prev_content&&(u.content=u.unsigned.prev_content),u.unsigned.prev_sender&&(u.sender=u.unsigned.prev_sender)),zI(s,u)}}Object.keys(i._currentState).forEach(e=>{Object.keys(i._currentState[e]).forEach(t=>{var n=i._currentState[e][t];a[`org.matrix.msc4222.state_after`].events.push(n),s[e]&&s[e][t]&&(n=s[e][t]),a.state.events.push(n)})}),t.join[n]=a});var n=[];return Object.keys(this.accountData).forEach(e=>{n.push(this.accountData[e])}),{nextBatch:this.nextBatch,roomsData:t,accountData:n}}getNextBatchToken(){return this.nextBatch}removeEventsFromRoom(e,t){this.joinRooms[e]._timeline=this.joinRooms[e]._timeline.filter(e=>!t.includes(e.event.event_id)),this.joinRooms[e]._stickyEvents=this.joinRooms[e]._stickyEvents.filter(e=>!t.includes(e.event.event_id))}};function zI(e,t){t.state_key===null||t.state_key===void 0||!t.type||(e[t.type]||(e[t.type]=Object.create(null)),e[t.type][t.state_key]=t)}function BI(e,t){return new Promise((n,r)=>{var i=!0,a=e.open(t);a.onupgradeneeded=()=>{i=!1},a.onblocked=()=>r(a.error),a.onsuccess=()=>{a.result.close(),i||e.deleteDatabase(t),n(i)},a.onerror=()=>r(a.error)})}var VI=[e=>{e.createObjectStore(`users`,{keyPath:[`userId`]}),e.createObjectStore(`accountData`,{keyPath:[`type`]}),e.createObjectStore(`sync`,{keyPath:[`clobber`]})},e=>{e.createObjectStore(`oob_membership_events`,{keyPath:[`room_id`,`state_key`]}).createIndex(`room`,`room_id`)},e=>{e.createObjectStore(`client_options`,{keyPath:[`clobber`]})},e=>{e.createObjectStore(`to_device_queue`,{autoIncrement:!0})},e=>{e.createObjectStore(`user_profile`,{keyPath:[`userId`]})}],HI=VI.length;function UI(e,t,n){var r=e.openCursor(t);return new Promise((t,i)=>{var a=[];r.onerror=()=>{i(Error(`selectQuery failed for ${e.name}`,{cause:r.error}))},r.onsuccess=()=>{var e=r.result;if(!e){t(a);return}a.push(n(e)),e.continue()}})}function WI(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(){n(e.error)}})}function GI(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(){n(e.error)}})}function KI(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e),e.onerror=e=>n(e)})}function qI(e){return GI(e).then(t=>e.result)}var JI=class{static exists(e,t){return t=`matrix-js-sdk:`+(t||`default`),BI(e,t)}constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`;this.indexedDB=e,h(this,`dbName`,void 0),h(this,`syncAccumulator`,void 0),h(this,`db`,void 0),h(this,`disconnected`,!0),h(this,`_isNewlyCreated`,!1),h(this,`syncToDatabasePromise`,void 0),h(this,`pendingUserPresenceData`,[]),this.dbName=`matrix-js-sdk:`+t,this.syncAccumulator=new RI}connect(e){var t=this;if(!this.disconnected)return w.log(`LocalIndexedDBStoreBackend.connect: already connected or connecting`),Promise.resolve();this.disconnected=!1,w.log(`LocalIndexedDBStoreBackend.connect: connecting...`);var n=this.indexedDB.open(this.dbName,HI);return n.onupgradeneeded=e=>{var t=n.result,r=e.oldVersion;w.log(`LocalIndexedDBStoreBackend.connect: upgrading from ${r}`),r<1&&(this._isNewlyCreated=!0),VI.forEach((e,n)=>{r<=n&&e(t)})},n.onblocked=()=>{w.log(`can't yet open LocalIndexedDBStoreBackend because it is open elsewhere`)},w.log(`LocalIndexedDBStoreBackend.connect: awaiting connection...`),GI(n).then(C(function*(){w.log(`LocalIndexedDBStoreBackend.connect: connected`),t.db=n.result,t.db.onversionchange=()=>{var e;(e=t.db)==null||e.close(),t.disconnected=!0,t.db=void 0},t.db.onclose=()=>{t.disconnected=!0,t.db=void 0,e?.()},yield t.init()}))}isNewlyCreated(){return Promise.resolve(this._isNewlyCreated)}init(){return Promise.all([this.loadAccountData(),this.loadSyncData()]).then(e=>{var t=x(e,2),n=t[0],r=t[1];w.log(`LocalIndexedDBStoreBackend: loaded initial data`),this.syncAccumulator.accumulate({next_batch:r.nextBatch,rooms:r.roomsData,account_data:{events:n}},!0)})}getOutOfBandMembers(e){return new Promise((t,n)=>{var r=this.db.transaction([`oob_membership_events`],`readonly`).objectStore(`oob_membership_events`).index(`room`),i=IDBKeyRange.only(e),a=r.openCursor(i),o=[],s=!1;a.onsuccess=()=>{var e=a.result;if(!e)return!o.length&&!s?t(null):t(o);var n=e.value;n.oob_written?s=!0:o.push(n),e.continue()},a.onerror=e=>{n(e)}}).then(t=>(w.log(`LL: got ${t?.length} membershipEvents from storage for room ${e} ...`),t))}setOutOfBandMembers(e,t){var n=this;return C(function*(){w.log(`LL: backend about to store ${t.length} members for ${e}`);var r=n.db.transaction([`oob_membership_events`],`readwrite`),i=r.objectStore(`oob_membership_events`);t.forEach(e=>{i.put(e)});var a={room_id:e,oob_written:!0,state_key:0};i.put(a),yield WI(r),w.log(`LL: backend done storing for ${e}!`)})()}clearOutOfBandMembers(e){var t=this;return C(function*(){var n=t.db.transaction([`oob_membership_events`],`readonly`).objectStore(`oob_membership_events`).index(`room`),r=IDBKeyRange.only(e),i=qI(n.openKeyCursor(r,`next`)).then(e=>(e?.primaryKey)[1]),a=qI(n.openKeyCursor(r,`prev`)).then(e=>(e?.primaryKey)[1]),o=x(yield Promise.all([i,a]),2),s=o[0],c=o[1],l=t.db.transaction([`oob_membership_events`],`readwrite`).objectStore(`oob_membership_events`),u=IDBKeyRange.bound([e,s],[e,c]);w.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,s],[e,c]),yield KI(l.delete(u))})()}clearDatabase(){return new Promise(e=>{var t;w.log(`Removing indexeddb instance: ${this.dbName}`),(t=this.db)==null||t.close();var n=this.indexedDB.deleteDatabase(this.dbName);n.onblocked=()=>{w.log(`can't yet delete indexeddb ${this.dbName} because it is open elsewhere`)},n.onerror=()=>{w.warn(`unable to delete js-sdk store indexeddb: ${n.error?.name}`),e()},n.onsuccess=()=>{w.log(`Removed indexeddb instance: ${this.dbName}`),e()}})}getSavedSync(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=this.syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve(ME(t)):Promise.resolve(t):Promise.resolve(null)}getNextBatchToken(){return Promise.resolve(this.syncAccumulator.getNextBatchToken())}setSyncData(e){return Promise.resolve().then(()=>{this.syncAccumulator.accumulate(e)})}syncToDatabase(e){var t=this;return C(function*(){return t.syncToDatabasePromise?(w.warn(`Skipping syncToDatabase() as persist already in flight`),t.pendingUserPresenceData.push(...e),t.syncToDatabasePromise):(e.unshift(...t.pendingUserPresenceData),t.syncToDatabasePromise=t.doSyncToDatabase(e),t.syncToDatabasePromise)})()}doSyncToDatabase(e){var t=this;return C(function*(){try{var n=t.syncAccumulator.getJSON(!0);yield Promise.all([t.persistUserPresenceEvents(e),t.persistAccountData(n.accountData),t.persistSyncData(n.nextBatch,n.roomsData)])}finally{t.syncToDatabasePromise=void 0}})()}persistSyncData(e,t){return w.log(`Persisting sync data up to`,e),XE(()=>{var n=this.db.transaction([`sync`],`readwrite`);return n.objectStore(`sync`).put({clobber:`-`,nextBatch:e,roomsData:t}),WI(n).then(()=>{w.log(`Persisted sync data up to`,e)})})}persistAccountData(e){return XE(()=>{var t=this.db.transaction([`accountData`],`readwrite`),n=t.objectStore(`accountData`);for(var r of e)n.put(r);return WI(t).then()})}persistUserPresenceEvents(e){return XE(()=>{var t=this.db.transaction([`users`],`readwrite`),n=t.objectStore(`users`);for(var r of e)n.put({userId:r[0],event:r[1]});return WI(t).then()})}getUserPresenceEvents(){return XE(()=>UI(this.db.transaction([`users`],`readonly`).objectStore(`users`),void 0,e=>[e.value.userId,e.value.event]))}loadAccountData(){return w.log(`LocalIndexedDBStoreBackend: loading account data...`),XE(()=>UI(this.db.transaction([`accountData`],`readonly`).objectStore(`accountData`),void 0,e=>e.value).then(e=>(w.log(`LocalIndexedDBStoreBackend: loaded account data`),e)))}loadSyncData(){return w.log(`LocalIndexedDBStoreBackend: loading sync data...`),XE(()=>UI(this.db.transaction([`sync`],`readonly`).objectStore(`sync`),void 0,e=>e.value).then(e=>(w.log(`LocalIndexedDBStoreBackend: loaded sync data`),e.length>1&&w.warn(`loadSyncData: More than 1 sync row found.`),e.length>0?e[0]:{})))}getClientOptions(){return Promise.resolve().then(()=>UI(this.db.transaction([`client_options`],`readonly`).objectStore(`client_options`),void 0,e=>e.value?.options).then(e=>e[0]))}storeClientOptions(e){var t=this;return C(function*(){var n=t.db.transaction([`client_options`],`readwrite`);n.objectStore(`client_options`).put({clobber:`-`,options:e}),yield WI(n)})()}saveToDeviceBatches(e){var t=this;return C(function*(){var n=t.db.transaction([`to_device_queue`],`readwrite`),r=n.objectStore(`to_device_queue`);for(var i of e)r.add(i);yield WI(n)})()}getOldestToDeviceBatch(){var e=this;return C(function*(){var t=yield qI(e.db.transaction([`to_device_queue`],`readonly`).objectStore(`to_device_queue`).openCursor());if(!t)return null;var n=t.value;return{id:t.key,txnId:n.txnId,eventType:n.eventType,batch:n.batch}})()}removeToDeviceBatch(e){var t=this;return C(function*(){var n=t.db.transaction([`to_device_queue`],`readwrite`);n.objectStore(`to_device_queue`).delete(e),yield WI(n)})()}getUserProfile(e){var t=this;return C(function*(){return Promise.resolve().then(()=>UI(t.db.transaction([`user_profile`],`readonly`).objectStore(`user_profile`),[e],e=>e.value?.profile).then(e=>e[0]))})()}storeUserProfiles(e){var t=this;return C(function*(){var n=t.db.transaction([`user_profile`],`readwrite`),r=n.objectStore(`user_profile`);for(var i of e.entries()){var a=x(i,2),o=a[0],s=a[1];r.put({profile:s,userId:o})}yield WI(n)})()}removeUserProfiles(e){var t=this;return C(function*(){var n=t.db.transaction([`user_profile`],`readwrite`),r=n.objectStore(`user_profile`);for(var i of e)r.delete([i]);yield WI(n)})()}removeEventsFromRoom(e,t){var n=this;return C(function*(){try{n.syncAccumulator.removeEventsFromRoom(e,t);var r=n.syncAccumulator.getJSON(!0);yield Promise.all([n.persistSyncData(r.nextBatch,r.roomsData)])}finally{n.syncToDatabasePromise=void 0}})()}destroy(){var e=this;return C(function*(){var t;(t=e.db)==null||t.close()})()}};const YI=new class{constructor(e){this.postMessage=e,h(this,`backend`,void 0),h(this,`onClose`,()=>{this.postMessage.call(null,{command:`closed`})}),h(this,`onMessage`,e=>{var t=e.data,n;switch(t.command){case`setupWorker`:this.backend=new JI(indexedDB,t.args[0]),n=Promise.resolve();break;case`connect`:n=this.backend?.connect(this.onClose);break;case`isNewlyCreated`:n=this.backend?.isNewlyCreated();break;case`clearDatabase`:n=this.backend?.clearDatabase();break;case`getSavedSync`:n=this.backend?.getSavedSync(!1);break;case`setSyncData`:n=this.backend?.setSyncData(t.args[0]);break;case`syncToDatabase`:n=this.backend?.syncToDatabase(t.args[0]);break;case`getUserPresenceEvents`:n=this.backend?.getUserPresenceEvents();break;case`getNextBatchToken`:n=this.backend?.getNextBatchToken();break;case`getOutOfBandMembers`:n=this.backend?.getOutOfBandMembers(t.args[0]);break;case`clearOutOfBandMembers`:n=this.backend?.clearOutOfBandMembers(t.args[0]);break;case`setOutOfBandMembers`:n=this.backend?.setOutOfBandMembers(t.args[0],t.args[1]);break;case`getClientOptions`:n=this.backend?.getClientOptions();break;case`storeClientOptions`:n=this.backend?.storeClientOptions(t.args[0]);break;case`saveToDeviceBatches`:n=this.backend?.saveToDeviceBatches(t.args[0]);break;case`getOldestToDeviceBatch`:n=this.backend?.getOldestToDeviceBatch();break;case`removeToDeviceBatch`:n=this.backend?.removeToDeviceBatch(t.args[0]);break;case`getUserProfile`:n=this.backend?.getUserProfile(t.args[0]);break;case`storeUserProfiles`:n=this.backend?.storeUserProfiles(t.args[0]);break;case`removeUserProfiles`:n=this.backend?.removeUserProfiles(t.args[0]);break}if(n===void 0){this.postMessage({command:`cmd_fail`,seq:t.seq,error:`Unrecognised command`});return}n.then(e=>{this.postMessage.call(null,{command:`cmd_success`,seq:t.seq,result:e})},e=>{w.error(`Error running command: `+t.command,e),this.postMessage.call(null,{command:`cmd_fail`,seq:t.seq,error:{message:e.message,name:e.name}})})})}}(self.postMessage);self.onmessage=YI.onMessage;export{I as A,gD as B,RN as C,dj as D,hj as E,hO as F,re as G,WE as H,O as I,x as J,w as K,E as L,VO as M,TO as N,L as O,k as P,u as Q,zD as R,zN as S,yj as T,mD as U,T as V,UE as W,s as X,h as Y,c as Z,eP as _,FP as a,KN as b,uP as c,YN as d,iP as f,rP as g,nP as h,IP as i,F as j,aA as k,ZN as l,$N as m,$ as n,PP as o,XN as p,C as q,OI as r,fP as s,BI as t,tP as u,QN as v,BN as w,WN as x,JN as y,HD as z}; +//# sourceMappingURL=IndexedDBWorker-D6PiCwZY.js.map \ No newline at end of file diff --git a/features/call/impl/src/main/assets/element-call/assets/baduntss-Ca1ZuBEK.ogg b/features/call/impl/src/main/assets/element-call/assets/baduntss-Ca1ZuBEK.ogg new file mode 100644 index 0000000000..390bbce04e Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/baduntss-Ca1ZuBEK.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/baduntss-DOe0oFuS.mp3 b/features/call/impl/src/main/assets/element-call/assets/baduntss-DOe0oFuS.mp3 new file mode 100644 index 0000000000..4dd5abb9e2 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/baduntss-DOe0oFuS.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/bg-app-DAq9XYqx.json b/features/call/impl/src/main/assets/element-call/assets/bg-app-DAq9XYqx.json new file mode 100644 index 0000000000..c01e65c7a6 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/bg-app-DAq9XYqx.json @@ -0,0 +1,76 @@ +{ + "a11y": { + "user_menu": "Потребителско меню" + }, + "action": { + "close": "Затвори", + "copy_link": "Копиране на връзката", + "go": "Напред", + "invite": "Покана", + "no": "Не", + "register": "Регистрация", + "remove": "Премахни", + "sign_in": "Влез", + "sign_out": "Излез", + "submit": "Израти" + }, + "analytics_notice": "Когато участвате в тази бета, вие съгласявате се с събирането на анонимни данни, които използваме, за да подобрим продукта. Повечето информация за данните, които следим, можете да намерите в нашата <2>Политика за поверителност и нашата <6>Политика за бисквитки.", + "call_ended_view": { + "create_account_button": "Създай акаунт", + "create_account_prompt": "<0>Защо не настройте парола за да запазите акаунта си?<1>Ще можете да запазите името и аватара си за бъдещи разговори", + "feedback_done": "<0>Благодаря за обратната връзка!", + "headline": "{{displayName}}, разговорът Ви приключи.", + "not_now_button": "Не сега, върни се на началния екран", + "survey_prompt": "Как мина?" + }, + "common": { + "audio": "Звук", + "avatar": "Аватар", + "display_name": "Име/псевдоним", + "encrypted": "Шифровано", + "home": "Начало", + "loading": "Зареждане…", + "password": "Парола", + "profile": "Профил", + "settings": "Настройки", + "unencrypted": "Нешифровано", + "username": "Потребителско име", + "video": "Видео" + }, + "join_existing_call_modal": { + "join_button": "Да, присъедини се", + "text": "Този разговор вече съществува, искате ли да се присъедините?", + "title": "Присъединяване към съществуващ разговор?" + }, + "layout_spotlight_label": "Прожектор", + "lobby": { + "join_button": "Влез в разговора" + }, + "logging_in": "Влизане…", + "login_auth_links": "<0>Създайте акаунт или <2>Влезте като гост", + "login_title": "Влез", + "rageshake_request_modal": { + "body": "Друг потребител в този разговор има проблем. За да диагностицираме този проблем по-добре ни се иска да съберем debug логове.", + "title": "Заявка за debug логове" + }, + "rageshake_send_logs": "Изпратете debug логове", + "rageshake_sending": "Изпращане…", + "recaptcha_dismissed": "Recaptcha отхвърлена", + "recaptcha_not_loaded": "Recaptcha не е заредена", + "register": { + "passwords_must_match": "Паролите не съвпадат", + "registering": "Регистриране…" + }, + "register_auth_links": "<0>Вече имате акаунт?<1><0>Влезте с него или <2>Влезте като гост", + "register_confirm_password_label": "Потвърди паролата", + "return_home_button": "Връщане на началния екран", + "screenshare_button_label": "Сподели екрана", + "settings": { + "developer_tab_title": "Разработчик", + "feedback_tab_h4": "Изпрати обратна връзка", + "feedback_tab_send_logs_label": "Включи debug логове" + }, + "unauthenticated_view_body": "Все още не сте регистрирани? <2>Създайте акаунт", + "unauthenticated_view_login_button": "Влезте в акаунта си", + "version": "Версия: {{version}}" +} diff --git a/features/call/impl/src/main/assets/element-call/assets/call_declined-1jWRbd4p.mp3 b/features/call/impl/src/main/assets/element-call/assets/call_declined-1jWRbd4p.mp3 new file mode 100644 index 0000000000..0d0c233599 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/call_declined-1jWRbd4p.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/call_declined-C6gHsCGH.ogg b/features/call/impl/src/main/assets/element-call/assets/call_declined-C6gHsCGH.ogg new file mode 100644 index 0000000000..458fcd2641 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/call_declined-C6gHsCGH.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/call_timeout-BCxXxRD8.mp3 b/features/call/impl/src/main/assets/element-call/assets/call_timeout-BCxXxRD8.mp3 new file mode 100644 index 0000000000..373c0b6510 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/call_timeout-BCxXxRD8.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/call_timeout-DPKAj6sz.ogg b/features/call/impl/src/main/assets/element-call/assets/call_timeout-DPKAj6sz.ogg new file mode 100644 index 0000000000..ca303b90b8 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/call_timeout-DPKAj6sz.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/cat-4r_NkDcK.ogg b/features/call/impl/src/main/assets/element-call/assets/cat-4r_NkDcK.ogg new file mode 100644 index 0000000000..c018262778 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/cat-4r_NkDcK.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/cat-Dd8bv_2W.mp3 b/features/call/impl/src/main/assets/element-call/assets/cat-Dd8bv_2W.mp3 new file mode 100644 index 0000000000..526e5fe287 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/cat-Dd8bv_2W.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/chunk-Cyuzqnbw.js b/features/call/impl/src/main/assets/element-call/assets/chunk-Cyuzqnbw.js new file mode 100644 index 0000000000..18f4f0a2f1 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/chunk-Cyuzqnbw.js @@ -0,0 +1 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);export{u as a,d as i,o as n,c as r,s as t}; \ No newline at end of file diff --git a/features/call/impl/src/main/assets/element-call/assets/clap-AxCMZLTd.ogg b/features/call/impl/src/main/assets/element-call/assets/clap-AxCMZLTd.ogg new file mode 100644 index 0000000000..1736392398 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/clap-AxCMZLTd.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/clap-Dxm5qGyl.mp3 b/features/call/impl/src/main/assets/element-call/assets/clap-Dxm5qGyl.mp3 new file mode 100644 index 0000000000..680a60f760 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/clap-Dxm5qGyl.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/crickets-CcwrRdbq.mp3 b/features/call/impl/src/main/assets/element-call/assets/crickets-CcwrRdbq.mp3 new file mode 100644 index 0000000000..584f0d557e Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/crickets-CcwrRdbq.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/crickets-DUJdcuUa.ogg b/features/call/impl/src/main/assets/element-call/assets/crickets-DUJdcuUa.ogg new file mode 100644 index 0000000000..86b7e3148b Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/crickets-DUJdcuUa.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/cs-app-BkaepkXG.json b/features/call/impl/src/main/assets/element-call/assets/cs-app-BkaepkXG.json new file mode 100644 index 0000000000..7583779cd2 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/cs-app-BkaepkXG.json @@ -0,0 +1,252 @@ +{ + "a11y": { + "user_menu": "Uživatelské menu" + }, + "action": { + "close": "Zavřít", + "copy_link": "Kopírovat odkaz", + "edit": "Upravit", + "go": "Přejít", + "invite": "Pozvat", + "lower_hand": "Snížení ruky", + "no": "Ne", + "pick_reaction": "Vybrat reakci", + "raise_hand": "Zvednutí ruky", + "register": "Registrace", + "remove": "Odstranit", + "show_less": "Zobrazit méně", + "show_more": "Zobrazit více", + "sign_in": "Přihlásit se", + "sign_out": "Odhlásit se", + "submit": "Odeslat", + "upload_file": "Nahrát soubor" + }, + "analytics_notice": "Účastí v této beta verzi souhlasíte se shromažďováním anonymních údajů, které používáme ke zlepšování produktu. Více informací o tom, které údaje sledujeme, najdete v našich <2>Zásadách ochrany osobních údajů a <6>Zásadách používání souborů cookie.", + "call_ended_view": { + "create_account_button": "Vytvořit účet", + "create_account_prompt": "<0>Proč neskončit nastavením hesla, abyste mohli účet použít znovu?<1>Budete si moci nechat své jméno a nastavit si avatar pro budoucí hovory ", + "feedback_done": "<0>Děkujeme za vaši zpětnou vazbu! ", + "feedback_prompt": "<0>Rádi si vyslechneme vaši zpětnou vazbu, abychom mohli vaše prostředí vylepšit. ", + "headline": "{{displayName}}, váš hovor skončil.", + "not_now_button": "Teď ne, vrátit se na domovskou obrazovku", + "reconnect_button": "Znovu připojit", + "survey_prompt": "Jak to probíhalo?" + }, + "call_name": "Název hovoru", + "common": { + "analytics": "Analytika", + "audio": "Zvuk", + "avatar": "Avatar", + "back": "Zpět", + "display_name": "Zobrazované jméno", + "encrypted": "Šifrováno", + "home": "Domov", + "loading": "Načítání…", + "next": "Další", + "options": "Možnosti", + "password": "Heslo", + "preferences": "Předvolby", + "profile": "Profil", + "reaction": "Reakce", + "reactions": "Reakce", + "reconnecting": "Opětovné spojení...", + "settings": "Nastavení", + "unencrypted": "Nešifrováno", + "username": "Uživatelské jméno", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Zobrazit možnost sluchátek pro iPhone na všech platformách", + "crypto_version": "Kryptografická verze: {{version}}", + "custom_livekit_url": { + "current_url": "Aktuálně nastaveno na: ", + "from_config": "Aktuálně není nastaveno žádné přepsání. Používá se URL z well-known nebo konfigurace.", + "label": "Vlastní Livekit-url", + "reset": "Resetovat přepsání", + "save": "Uložit", + "saving": "Ukládání..." + }, + "debug_tile_layout_label": "Ladění rozložení dlaždic", + "device_id": "ID zařízení: {{id}}", + "duplicate_tiles_label": "Počet dalších kopií dlaždic na účastníka", + "environment_variables": "Proměnné prostředí", + "hostname": "Název hostitele: {{hostname}}", + "livekit_server_info": "Informace o serveru LiveKit", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrixRTCMode": { + "Comptibility": { + "description": "Kompatibilní s domovskými servery, které nepodporují přilnavé události (ale všechny ostatní EC klienti jsou v0.17.0 nebo novější)", + "label": "Kompatibilita: stavové události a více SFU" + }, + "Legacy": { + "description": "Kompatibilní se starými verzemi EC, které nepodporují multi SFU", + "label": "Zastaralé: stavové události a nejstarší členské SFU" + }, + "Matrix_2_0": { + "description": "Kompatibilní pouze s domovskými servery podporujícími přilnavé události a všemi klienty EC v0.17.0 nebo novějšími.", + "label": "Matrix 2.0: přilnavé události a multi SFU" + }, + "title": "Režim MatrixRTC" + }, + "matrix_id": "Matrix ID: {{id}}", + "mute_all_audio": "Ztlumit všechny zvuky (účastníci, reakce, zvuky připojení)", + "show_connection_stats": "Zobrazit statistiky připojení", + "url_params": "Parametry URL" + }, + "disconnected_banner": "Připojení k serveru bylo ztraceno.", + "error": { + "call_is_not_supported": "Volání není podporováno", + "call_not_found": "Volání nebylo nalezeno", + "call_not_found_description": "<0>Zdá se, že tento odkaz nepatří k žádnému existujícímu hovoru. Zkontrolujte, zda máte správný odkaz, nebo<2> vytvořte nový.", + "connection_lost": "Spojení ztraceno", + "connection_lost_description": "Hovor byl přerušen.", + "e2ee_unsupported": "Nekompatibilní prohlížeč", + "e2ee_unsupported_description": "Váš webový prohlížeč nepodporuje šifrované hovory. Mezi podporované prohlížeče patří Chrome, Safari a Firefox 117+.", + "generic": "Něco se pokazilo.", + "generic_description": "Odeslání protokolů ladění nám pomůže vystopovat problém.", + "insufficient_capacity": "Nedostatečná kapacita", + "insufficient_capacity_description": "Server dosáhl své maximální kapacity a v tuto chvíli se nemůžete připojit k hovoru. Zkuste to později nebo se obraťte na správce serveru, pokud problém přetrvává.", + "matrix_rtc_transport_missing": "Server není nakonfigurován pro práci s {{brand}}. Obraťte se na správce serveru (Doména: {{domain}}, Kód chyby: {{ errorCode }}).", + "open_elsewhere": "Otevřeno na jiné kartě", + "open_elsewhere_description": "{{brand}} byl otevřen v jiné záložce. Pokud to nezní správně, zkuste stránku znovu načíst.", + "room_creation_restricted": "Nepodařilo se vytvořit hovor", + "room_creation_restricted_description": "Vytváření hovorů může být omezeno pouze na oprávněné uživatele. Zkuste to znovu později nebo se obraťte na správce serveru, pokud problém přetrvává.", + "unexpected_ec_error": "Došlo k neočekávané chybě (<0>Error Code: <1>{{ errorCode }}). Obraťte se prosím na správce serveru." + }, + "group_call_loader": { + "banned_body": "Byl jste vykázán z místnosti.", + "banned_heading": "Zabanován", + "call_ended_body": "Byl jste vyřazen z hovoru.", + "call_ended_heading": "Hovor ukončen", + "knock_reject_body": "Vaše žádost o připojení byla zamítnuta.", + "knock_reject_heading": "Přístup odepřen", + "reason": "Důvod" + }, + "handset": { + "overlay_back_button": "Zpět do režimu reproduktoru", + "overlay_description": "Funguje pouze při používání aplikace", + "overlay_title": "Režim sluchátka" + }, + "hangup_button_label": "Ukončit hovor", + "header_label": "Domov Element Call", + "header_participants_label": "Účastníci", + "invite_modal": { + "link_copied_toast": "Odkaz zkopírován do schránky", + "title": "Pozvat na tento hovor" + }, + "join_existing_call_modal": { + "join_button": "Ano, připojit se", + "text": "Tento hovor již existuje, chcete se připojit?", + "title": "Připojit se k existujícimu hovoru?" + }, + "layout_grid_label": "Mřížka", + "layout_spotlight_label": "Soustředěný mód", + "lobby": { + "ask_to_join": "Žádost o připojení k hovoru", + "join_as_guest": "Připojte se jako host", + "join_button": "Připojit se k hovoru", + "leave_button": "Zpět na poslední", + "waiting_for_invite": "Žádost odeslána! Čekáme na povolení k připojení..." + }, + "log_in": "Přihlášení", + "logging_in": "Přihlašování se…", + "login_auth_links": "<0>Vytvořit účet Or <2>Jako host", + "login_auth_links_prompt": "Ještě nejste zaregistrováni?", + "login_subheading": "Chcete-li pokračovat na Element", + "login_title": "Přihlášení", + "microphone_off": "Mikrofon vypnutý", + "microphone_on": "Mikrofon zapnutý", + "mute_microphone_button_label": "Ztlumit mikrofon", + "participant_count_one": "{{count, number}}", + "participant_count_few": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR kód", + "rageshake_button_error_caption": "Znovu zkusit odeslat protokoly", + "rageshake_request_modal": { + "body": "Jiný uživatel v tomto hovoru má problémy. Abychom mohli diagnostikovat problém, rádi bychom shromáždili protokoly ladění.", + "title": "Žádost o protokoly ladění" + }, + "rageshake_send_logs": "Poslat ladící záznam", + "rageshake_sending": "Posílání…", + "rageshake_sending_logs": "Posílání ladícího záznamu…", + "rageshake_sent": "Díky!", + "recaptcha_dismissed": "Recaptcha byla zamítnuta", + "recaptcha_not_loaded": "Recaptcha se nenačetla", + "recaptcha_ssla_caption": "Tato stránka je chráněna ReCAPTCHA a platí zde <2>Ochrana osobních údajů a <6>Podmínky služby od Google.<9>Kliknutím na \"Registrovat\" souhlasíte s naší <12>Licenční smlouvou na software a služby (SSLA)", + "register": { + "passwords_must_match": "Hesla se musí shodovat", + "registering": "Registrování…" + }, + "register_auth_links": "<0>Už máte účet?<1><0>Přihlásit se Or <2>Jako host", + "register_confirm_password_label": "Potvrdit heslo", + "register_heading": "Vytvořte si účet", + "return_home_button": "Vrátit se na domácí obrazovku", + "room_auth_view_continue_button": "Pokračovat", + "room_auth_view_ssla_caption": "Kliknutím na „Připojit se k hovoru nyní“ souhlasíte s naší <2>Licenční smlouvou o softwaru a službách (SSLA) ", + "screenshare_button_label": "Sdílet obrazovku", + "settings": { + "audio_tab": { + "effect_volume_description": "Upravit hlasitost přehrávání reakcí a efektů zvednutých rukou.", + "effect_volume_label": "Hlasitost zvukového efektu" + }, + "background_blur_header": "Pozadí", + "background_blur_label": "Rozostřit pozadí videa", + "blur_not_supported_by_browser": "(Toto zařízení nepodporuje rozostření pozadí.)", + "developer_tab_title": "Vývojář", + "devices": { + "camera": "Fotoaparát", + "camera_numbered": "Fotoaparát {{n}}", + "change_device_button": "Změnit zvukové zařízení", + "default": "Výchozí", + "default_named": "Výchozí <2> ({{name}}) ", + "handset": "Sluchátko", + "loudspeaker": "Reproduktor", + "microphone": "Mikrofon", + "microphone_numbered": "Mikrofon {{n}}", + "speaker": "Reproduktor", + "speaker_numbered": "Reproduktor {{n}}" + }, + "feedback_tab_body": "Pokud se potýkáte s problémy nebo byste nám jen chtěli poskytnout zpětnou vazbu, pošlete nám prosím krátký popis níže.", + "feedback_tab_description_label": "Vaše zpětná vazba", + "feedback_tab_h4": "Dát feedback", + "feedback_tab_send_logs_label": "Zahrnout ladící záznamy", + "feedback_tab_thank_you": "Děkujeme, obdrželi jsme vaši zpětnou vazbu!", + "feedback_tab_title": "Zpětná vazba", + "opt_in_description": "<0><1>Souhlas můžete odvolat zrušením zaškrtnutí tohoto políčka. Pokud jste právě v hovoru, toto nastavení se projeví po jeho skončení.", + "preferences_tab": { + "developer_mode_label": "Vývojářský režim", + "developer_mode_label_description": "Povolte vývojářský režim a zobrazte kartu nastavení vývojáře.", + "introduction": "Zde můžete nakonfigurovat další možnosti pro lepší zážitek.", + "reactions_play_sound_description": "Přehrát zvukový efekt, když někdo odešle reakci do hovoru.", + "reactions_play_sound_label": "Přehrát reakční zvuky", + "reactions_show_description": "Zobrazit animaci, když někdo pošle reakci.", + "reactions_show_label": "Zobrazit reakce", + "show_hand_raised_timer_description": "Zobrazit časovač, když účastník zvedne ruku", + "show_hand_raised_timer_label": "Zobrazit dobu trvání zvednutí ruky" + } + }, + "star_rating_input_label_one": "{{count}} hvězdička", + "star_rating_input_label_few": "{{count}} hvězdičky", + "star_rating_input_label_other": "{{count}} hvězdiček", + "start_new_call": "Zahájit nový hovor", + "start_video_button_label": "Spustit video", + "stop_screenshare_button_label": "Sdílení obrazovky", + "stop_video_button_label": "Zastavit video", + "submitting": "Odeslání...", + "switch_camera": "Přepnout kameru", + "unauthenticated_view_body": "Nejste registrovaní? <2>Vytvořit účet", + "unauthenticated_view_login_button": "Přihlásit se ke svému účtu", + "unauthenticated_view_ssla_caption": "Kliknutím na tlačítko \"Přejít\" souhlasíte s naší <2>Licenční smlouvou na software a služby (SSLA)", + "unmute_microphone_button_label": "Zrušit ztlumení mikrofonu", + "version": "{{productName}}verze: {{version}}", + "video_tile": { + "always_show": "Vždy zobrazit", + "camera_starting": "Načítání videa...", + "collapse": "Sbalit", + "expand": "Rozbalit", + "mute_for_me": "Pro mě ztlumit", + "muted_for_me": "Pro mě ztlumené", + "volume": "Hlasitost", + "waiting_for_media": "Čekání na média..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/da-app-iQlZZR67.json b/features/call/impl/src/main/assets/element-call/assets/da-app-iQlZZR67.json new file mode 100644 index 0000000000..3197323322 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/da-app-iQlZZR67.json @@ -0,0 +1,226 @@ +{ + "a11y": { + "user_menu": "Brugermenu" + }, + "action": { + "close": "Luk", + "copy_link": "Kopiér link", + "edit": "Rediger", + "go": "Gå", + "invite": "Invitér", + "lower_hand": "Sænk hånd", + "no": "Nej", + "pick_reaction": "Vælg reaktion", + "raise_hand": "Ræk hånden op", + "register": "Registrér", + "remove": "Fjern", + "show_less": "Vis mindre", + "show_more": "Vis mere", + "sign_in": "Log ind", + "sign_out": "Log ud", + "submit": "Indsend", + "upload_file": "Upload fil" + }, + "analytics_notice": "Ved at deltage i denne beta giver du samtykke til indsamling af anonyme data, som vi bruger til at forbedre produktet. Du kan finde flere oplysninger om, hvilke data vi sporer, i vores <2>fortrolighedspolitik og vores <6>cookiepolitik.", + "call_ended_view": { + "create_account_button": "Opret konto", + "create_account_prompt": "<0>Hvorfor ikke afslutte med at oprette en adgangskode for at beholde din konto? <1>Du kan beholde dit navn og indstille en avatar til brug ved fremtidige opkald ", + "feedback_done": "<0>Tak for din feedback! ", + "feedback_prompt": "<0>Vi vil meget gerne høre din feedback, så vi kan forbedre din oplevelse.", + "headline": "{{displayName}}, dit opkald er afsluttet.", + "not_now_button": "Ikke nu, vend tilbage til startskærmen", + "reconnect_button": "Tilslut igen", + "survey_prompt": "Hvordan gik det?" + }, + "call_name": "Navn på opkald", + "common": { + "analytics": "Analyse-værktøj", + "audio": "Lyd", + "avatar": "Avatar", + "back": "Tilbage", + "display_name": "Vist navn", + "encrypted": "Krypteret", + "home": "Hjem", + "loading": "Indlæser...", + "next": "Næste", + "options": "Valgmuligheder", + "password": "Adgangskode", + "preferences": "Foretrukne", + "profile": "Profil", + "reaction": "Reaktion", + "reactions": "Reaktioner", + "reconnecting": "Genopretter forbindelse…", + "settings": "Indstillinger", + "unencrypted": "Ikke krypteret", + "username": "Brugernavn", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Vis mulighed for iPhone-høretelefon på alle platforme", + "crypto_version": "Krypto-version: {{version}}", + "debug_tile_layout_label": "Fejlfinding af fliselayout", + "device_id": "Enheds-id: {{id}}", + "duplicate_tiles_label": "Antal ekstra flisekopier pr. deltager", + "environment_variables": "Miljøvariabler", + "hostname": "Værtsnavn: {{hostname}}", + "livekit_server_info": "LiveKit Serverinfo", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrix_id": "Matrix ID: {{id}}", + "mute_all_audio": "Slå al lyd fra (deltagere, reaktioner, deltagelseslyde)", + "show_connection_stats": "Vis forbindelsesstatistik", + "url_params": "URL-parametre" + }, + "disconnected_banner": "Forbindelsen til serveren er gået tabt.", + "error": { + "call_is_not_supported": "Opkald er ikke understøttet", + "call_not_found": "Opkald ikke fundet", + "call_not_found_description": "<0>Det link ser ikke ud til at høre til et eksisterende opkald. Tjek at du har det rigtige link, eller <2> opret et nyt.", + "connection_lost": "Forbindelsen gik tabt", + "connection_lost_description": "Du blev afbrudt fra opkaldet.", + "e2ee_unsupported": "Inkompatibel browser", + "e2ee_unsupported_description": "Din webbrowser understøtter ikke krypterede opkald. Understøttede browsere inkluderer Chrome, Safari og Firefox 117+.", + "generic": "Noget gik galt", + "generic_description": "Indsendelse af fejlfindingslogfiler hjælper os med at spore problemet.", + "insufficient_capacity": "Utilstrækkelig kapacitet", + "insufficient_capacity_description": "Serveren har nået sin maksimale kapacitet, og du kan ikke deltage i opkaldet på dette tidspunkt. Prøv igen senere, eller kontakt din serveradministrator, hvis problemet fortsætter.", + "open_elsewhere": "Åbnet i en anden fane", + "open_elsewhere_description": "{{brand}} er blevet åbnet i en anden fane. Hvis det ikke lyder rigtigt, kan du prøve at genindlæse siden.", + "room_creation_restricted": "Kunne ikke oprette opkald", + "room_creation_restricted_description": "Oprettelse af opkald er muligvis begrænset til autoriserede brugere. Prøv igen senere, eller kontakt din serveradministrator, hvis problemet fortsætter.", + "unexpected_ec_error": "Der opstod en uventet fejl (<0>Fejlkode: <1> {{ errorCode }}). Kontakt venligst din serveradministrator." + }, + "group_call_loader": { + "banned_body": "Du er blevet spærret fra rummet.", + "banned_heading": "Spærret", + "call_ended_body": "Du er blevet fjernet fra opkaldet.", + "call_ended_heading": "Opkaldet afsluttet", + "knock_reject_body": "Din anmodning om at deltage blev afvist.", + "knock_reject_heading": "Adgang nægtet", + "reason": "Årsag: {{reason}}" + }, + "handset": { + "overlay_back_button": "Tilbage til højttalertilstand", + "overlay_description": "Virker kun, når du bruger appen", + "overlay_title": "Telefon-højtaler" + }, + "hangup_button_label": "Afslut opkald", + "header_label": "Element Ring hjem", + "header_participants_label": "Deltagere", + "invite_modal": { + "link_copied_toast": "Link kopieret til udklipsholder", + "title": "Inviter til dette opkald" + }, + "join_existing_call_modal": { + "join_button": "Ja, deltag i opkald", + "text": "Dette opkald findes allerede, vil du være med?", + "title": "Deltag i eksisterende opkald?" + }, + "layout_grid_label": "Gitter", + "layout_spotlight_label": "Spotlys", + "lobby": { + "ask_to_join": "Anmod om at deltage i opkaldet", + "join_as_guest": "Deltag som gæst", + "join_button": "Deltag i opkald", + "leave_button": "Tilbage til seneste", + "waiting_for_invite": "Anmodning sendt! Venter på tilladelse til at deltage..." + }, + "log_in": "Log ind", + "logging_in": "Logger ind...", + "login_auth_links": "<0>Opret en konto eller <2> få adgang som gæst ", + "login_auth_links_prompt": "Ikke registreret endnu?", + "login_subheading": "For at fortsætte til Element", + "login_title": "Login", + "microphone_off": "Mikrofon slukket", + "microphone_on": "Mikrofon tændt", + "mute_microphone_button_label": "Slå mikrofonen fra", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR-kode", + "rageshake_button_error_caption": "Prøv at sende logfiler igen", + "rageshake_request_modal": { + "body": "En anden bruger på dette opkald har et problem. For bedre at kunne diagnosticere sådanne problemer, vil vi gerne indsamle en fejlfindingslog.", + "title": "Anmodning om fejlfindingslogfil" + }, + "rageshake_send_logs": "Send fejlfindingslogfiler", + "rageshake_sending": "Sender...", + "rageshake_sending_logs": "Afsendelse af fejlfindingslogfiler...", + "rageshake_sent": "Tak!", + "recaptcha_dismissed": "Recaptcha afvist", + "recaptcha_not_loaded": "Recaptcha ikke indlæst", + "recaptcha_ssla_caption": "Dette websted er beskyttet af ReCAPTCHA og Googles <2>Privatlivspolitik og <6>Servicevilkår gælder.<9>Ved at klikke på \"Registrer\" accepterer du vores <12>Software og Services Licensaftale (SSLA)", + "register": { + "passwords_must_match": "Adgangskoderne skal være identiske", + "registering": "Registrering..." + }, + "register_auth_links": "<0>Har du allerede en konto? <1><0>Log ind eller <2> få adgang som gæst ", + "register_confirm_password_label": "Bekræft adgangskode", + "register_heading": "Opret din konto", + "return_home_button": "Vend tilbage til startskærmen", + "room_auth_view_continue_button": "Fortsæt", + "room_auth_view_ssla_caption": "Ved at klikke på „Deltag i opkald nu“ accepterer du vores <2> Software og Services Licensaftale (SSLA) ", + "screenshare_button_label": "Del din skærm", + "settings": { + "audio_tab": { + "effect_volume_description": "Juster den lydstyrke som reaktioner og håndsoprækninger afspilles med.", + "effect_volume_label": "Lydstyrke for lydeffekter" + }, + "background_blur_header": "Baggrund", + "background_blur_label": "Gør videoens baggrund sløret", + "blur_not_supported_by_browser": "(Baggrundssløring understøttes ikke af denne enhed.)", + "developer_tab_title": "Udvikler", + "devices": { + "camera": "Kamera", + "camera_numbered": "Kamera {{n}}", + "change_device_button": "Skift lydenhed", + "default": "Standard", + "default_named": "Standard <2>({{name}})", + "handset": "Telefon", + "loudspeaker": "Højttaler", + "microphone": "Mikrofon", + "microphone_numbered": "Mikrofon {{n}}", + "speaker": "Højttaler", + "speaker_numbered": "Højttaler {{n}}" + }, + "feedback_tab_body": "Hvis du oplever problemer eller bare gerne vil give feedback, kan du sende os en kort beskrivelse herunder.", + "feedback_tab_description_label": "Din tilbagemelding", + "feedback_tab_h4": "Indsend feedback", + "feedback_tab_send_logs_label": "Medtag fejlfindingslogfiler", + "feedback_tab_thank_you": "Tak, vi har modtaget din feedback!", + "feedback_tab_title": "Feedback", + "opt_in_description": "<0><1>Du kan trække dit samtykke tilbage ved at fjerne markeringen i dette felt. Hvis du i øjeblikket er i gang med et opkald, træder denne indstilling i kraft ved afslutningen af opkaldet.", + "preferences_tab": { + "developer_mode_label": "Udviklertilstand", + "developer_mode_label_description": "Aktivér udviklertilstand og vis fanen udviklerindstillinger.", + "introduction": "Her kan du konfigurere ekstra muligheder for en forbedret oplevelse.", + "reactions_play_sound_description": "Afspil en lydeffekt, når nogen sender en reaktion i et opkald.", + "reactions_play_sound_label": "Afspil reaktionslyde", + "reactions_show_description": "Vis en animation, når nogen sender en reaktion.", + "reactions_show_label": "Vis reaktioner", + "show_hand_raised_timer_description": "Vis en timer, når en deltager rækker hånden", + "show_hand_raised_timer_label": "Vis varighed af håndsoprækning" + } + }, + "star_rating_input_label_one": "{{count}} stjerne", + "star_rating_input_label_other": "{{count}} stjerner", + "start_new_call": "Start nyt opkald", + "start_video_button_label": "Start video", + "stop_screenshare_button_label": "Skærmen bliver delt", + "stop_video_button_label": "Stop video", + "submitting": "Indsender...", + "switch_camera": "Skift kamera", + "unauthenticated_view_body": "Ikke registreret endnu? <2>Opret en konto ", + "unauthenticated_view_login_button": "Log ind på din konto", + "unauthenticated_view_ssla_caption": "Ved at klikke på \"Start\" accepterer du vores <2>Software og Services Licensaftale (SSLA)", + "unmute_microphone_button_label": "Slå mikrofonen til", + "version": "{{productName}} version: {{version}}", + "video_tile": { + "always_show": "Vis altid", + "camera_starting": "Indlæser video", + "collapse": "Fold sammen", + "expand": "Udvid", + "mute_for_me": "Slå lyden fra for mig", + "muted_for_me": "Dæmpet for mig", + "volume": "Lydstyrke", + "waiting_for_media": "Venter på medier..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/de-app-By5SLAZF.json b/features/call/impl/src/main/assets/element-call/assets/de-app-By5SLAZF.json new file mode 100644 index 0000000000..32ee930cdf --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/de-app-By5SLAZF.json @@ -0,0 +1,257 @@ +{ + "a11y": { + "user_menu": "Benutzermenü" + }, + "action": { + "close": "Schließen", + "copy_link": "Link kopieren", + "edit": "Bearbeiten", + "go": "Los geht’s", + "invite": "Einladen", + "lower_hand": "Handmeldung zurücknehmen", + "no": "Nein", + "pick_reaction": "Reaktion auswählen", + "raise_hand": "Handmeldung", + "register": "Registrieren", + "remove": "Entfernen", + "show_less": "Weniger anzeigen", + "show_more": "Mehr anzeigen", + "sign_in": "Anmelden", + "sign_out": "Abmelden", + "submit": "Absenden", + "upload_file": "Datei hochladen" + }, + "analytics_notice": "Mit der Teilnahme an der Beta akzeptierst du die Sammlung von anonymen Daten, die wir zur Verbesserung des Produkts verwenden. Weitere Informationen zu den von uns erhobenen Daten findest du in unserer <2>Datenschutzerklärung und unseren <6>Cookie-Richtlinien.", + "call_ended_view": { + "create_account_button": "Konto erstellen", + "create_account_prompt": "<0>Warum vergibst du nicht abschließend ein Passwort, um dein Konto zu erhalten?<1>Du kannst deinen Namen behalten und ein Profilbild für zukünftige Anrufe festlegen.", + "feedback_done": "<0>Danke für deine Rückmeldung!", + "feedback_prompt": "<0>Wir würden uns freuen, deine Rückmeldung zu hören, um deine Erfahrung verbessern zu können.", + "headline": "{{displayName}}, dein Anruf wurde beendet.", + "not_now_button": "Nicht jetzt, zurück zur Startseite", + "reconnect_button": "Erneut verbinden", + "survey_prompt": "Wie ist es gelaufen?" + }, + "call_name": "Name des Anrufs", + "common": { + "analytics": "Analyse", + "audio": "Audio", + "avatar": "Profilbild", + "back": "Zurück", + "display_name": "Anzeigename", + "encrypted": "Verschlüsselt", + "home": "Startseite", + "loading": "Lade …", + "next": "Weiter", + "options": "Optionen", + "password": "Passwort", + "preferences": "Einstellungen", + "profile": "Profil", + "reaction": "Reaktion", + "reactions": "Reaktionen", + "reconnecting": "Verbindung wird wiederhergestellt...", + "settings": "Einstellungen", + "unencrypted": "Nicht verschlüsselt", + "username": "Benutzername", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "iPhone-Ohrhörer-Option auf allen Plattformen anzeigen", + "crypto_version": "Krypto-Version: {{version}}", + "custom_livekit_url": { + "current_url": "Derzeit eingestellt auf: ", + "from_config": "Derzeit ist keine spezielle (benutzerdefinierte) URL eingestellt. Daher wird automatisch die URL verwendet, die entweder via „.well-known“ oder in der Webbrowser-Konfiguration („config“) hinterlegt ist.", + "label": "Benutzerdefinierte Livekit-URL", + "reset": "Zurücksetzen der benutzerdefinierten URL", + "save": "Speichern", + "saving": "Speichern..." + }, + "debug_tile_layout_label": "Kachel-Layout debuggen", + "device_id": "Geräte-ID: {{id}}", + "duplicate_tiles_label": "Anzahl zusätzlicher Kachelkopien pro Teilnehmer", + "environment_variables": "Umgebungsvariablen", + "hostname": "Hostname: {{hostname}}", + "livekit_server_info": "LiveKit-Server Informationen", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrixRTCMode": { + "Comptibility": { + "description": "Kompatibel mit Homeservern ohne Sticky Events Support, wobei alle beteiligten Element Call Clients v0.17.0 oder neuer sein müssen.", + "label": "Kompatibilität: State Events & Multi-SFU" + }, + "Legacy": { + "description": "Kompatibel mit älteren Versionen von Element Call, welche Multi-SFU nicht unterstützen", + "label": "Legacy: State Events und \"Oldest Membership\" SFU" + }, + "Matrix_2_0": { + "description": "Nur mit Homeservern kompatibel, die Sticky Events unterstützen, wobei alle beteiligten Element Call Clients Version v0.17.0 oder neuer sein müssen.", + "label": "Matrix 2.0: Sticky Events und Multi-SFU" + }, + "title": "MatrixRTC Modus" + }, + "matrix_id": "Matrix-ID: {{id}}", + "mute_all_audio": "Stummschalten aller Audiosignale (Teilnehmer, Reaktionen, Beitrittsgeräusche)", + "show_connection_stats": "Verbindungsstatistiken anzeigen", + "url_params": "URL-Parameter" + }, + "disconnected_banner": "Die Verbindung zum Server wurde getrennt.", + "error": { + "call_is_not_supported": "Anrufe werden nicht unterstützt", + "call_not_found": "Anruf nicht gefunden", + "call_not_found_description": "<0>Dieser Link scheint zu keinem bestehenden Anruf zu gehören. Es sollte geprüft werden, ob der Link korrekt ist, oder <2>ein neuer erstellt werden.", + "connection_lost": "Verbindung verloren", + "connection_lost_description": "Ihre Verbindung zum Anruf wurde unterbrochen.", + "e2ee_unsupported": "Inkompatibler Browser", + "e2ee_unsupported_description": "Ihr Webbrowser unterstützt keine verschlüsselten Anrufe. Zu den unterstützten Browsern gehören Chrome, Safari und Firefox 117+.", + "failed_to_start_livekit": "LiveKit-Verbindung konnte nicht hergestellt werden", + "generic": "Etwas ist schief gelaufen", + "generic_description": "Durch das Senden von Debugprotokollen können wir das Problem leichter eingrenzen.", + "insufficient_capacity": "Unzureichende Kapazität", + "insufficient_capacity_description": "Der Server hat seine maximale Kapazität erreicht, daher ist ein Beitritt zum Anruf derzeit nicht möglich. Bitte später erneut versuchen oder den Serveradministrator kontaktieren, falls das Problem weiterhin besteht.", + "matrix_rtc_transport_missing": "Der Server ist nicht für die Verwendung mit {{brand}} konfiguriert. Bitte den Server Admin kontaktieren (Domain: {{domain}}, Fehlercode: {{ errorCode }}).", + "membership_manager": "Fehler im MatrixRTC Mitgliedschaftsmanager", + "membership_manager_description": "Der MatrixRTC Mitgliedschaftsmanager wurde unerwartet aufgrund fehlgeschlagener Netzwerkanfragen beendet.", + "no_matrix_2_authorization_service": "Der Autorisierungsdienst des Medien Servers (SFU) ist veraltet.", + "open_elsewhere": "In einem anderen Tab geöffnet", + "open_elsewhere_description": "{{brand}} wurde in einem anderen Tab geöffnet. Wenn das nicht richtig klingt, versuche, die Seite neu zu laden.", + "room_creation_restricted": "Anruf konnte nicht erstellt werden", + "room_creation_restricted_description": "Das Erstellen von Anrufen ist nur für autorisierte Nutzer möglich. Versuche es später erneut oder kontaktiere deinen Serveradministrator, falls das Problem weiterhin besteht.", + "unexpected_ec_error": "Ein unerwarteter Fehler ist aufgetreten (<0>Fehlercode: <1>{{ errorCode }}). Bitte den Serveradministrator kontaktieren." + }, + "group_call_loader": { + "banned_body": "Du wurdest aus dem Raum verbannt.", + "banned_heading": "Verbannt", + "call_ended_body": "Du wurdest aus dem Anruf entfernt.", + "call_ended_heading": "Anruf beendet", + "knock_reject_body": "Die Teilnahmeanfrage wurde abgelehnt.", + "knock_reject_heading": "Zugriff verweigert", + "reason": "Grund: {{reason}}" + }, + "handset": { + "overlay_back_button": "Zurück zum Lautsprechermodus", + "overlay_description": "Nur wenn App im Vordergrund nutzbar", + "overlay_title": "Ohrhörer Modus" + }, + "hangup_button_label": "Anruf beenden", + "header_label": "Element Call-Startseite", + "header_participants_label": "Teilnehmende", + "invite_modal": { + "link_copied_toast": "Link in Zwischenablage kopiert", + "title": "Zu diesem Anruf einladen" + }, + "join_existing_call_modal": { + "join_button": "Ja, Anruf beitreten", + "text": "Dieser Aufruf existiert bereits, möchtest Du teilnehmen?", + "title": "An bestehendem Anruf teilnehmen?" + }, + "layout_grid_label": "Raster", + "layout_spotlight_label": "Fokus", + "lobby": { + "ask_to_join": "Teilnahmeanfrage senden", + "join_as_guest": "Als Gast beitreten", + "join_button": "Anruf beitreten", + "leave_button": "Zurück zu kürzlichen Anrufen", + "waiting_for_invite": "Anfrage gesendet! Warten auf Teilnahmefreigabe …" + }, + "log_in": "Anmelden", + "logging_in": "Anmelden …", + "login_auth_links": "<0>Konto erstellen Oder <2>Als Gast betreten", + "login_auth_links_prompt": "Noch nicht registriert?", + "login_subheading": "Weiter zu Element", + "login_title": "Anmelden", + "microphone_off": "Mikrofon aus", + "microphone_on": "Mikrofon an", + "mute_microphone_button_label": "Mikrofon stumm schalten", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR-Code", + "rageshake_button_error_caption": "Protokolle erneut senden", + "rageshake_request_modal": { + "body": "Ein anderer Benutzer dieses Anrufs hat ein Problem. Um es besser diagnostizieren zu können, würden wir gerne ein Debug-Protokoll erstellen.", + "title": "Debug-Log Anfrage" + }, + "rageshake_send_logs": "Debug-Logs senden", + "rageshake_sending": "Senden …", + "rageshake_sending_logs": "Sende Debug-Protokolle …", + "rageshake_sent": "Danke!", + "recaptcha_dismissed": "Recaptcha abgelehnt", + "recaptcha_not_loaded": "Recaptcha nicht geladen", + "recaptcha_ssla_caption": "Diese Website wird durch ReCAPTCHA geschützt, und es gelten die Google <2>Datenschutzbestimmungen sowie die <6>Nutzungsbedingungen.<9> Durch das Klicken auf \"Registrieren\" wird der <12>Software- und Dienstleistungslizenzvereinbarung (SSLA) zugestimmt.", + "register": { + "passwords_must_match": "Passwörter müssen übereinstimmen", + "registering": "Registrierung …" + }, + "register_auth_links": "<0>Du hast bereits ein Konto?<1><0>Anmelden Oder <2>Als Gast betreten", + "register_confirm_password_label": "Passwort bestätigen", + "register_heading": "Erstelle Dein Konto", + "return_home_button": "Zurück zur Startseite", + "room_auth_view_continue_button": "Weiter", + "room_auth_view_ssla_caption": "Durch das Klicken auf \"Anruf jetzt beitreten\" wird dem <2>Software and Services License Agreement (SSLA) zugestimmt.", + "screenshare_button_label": "Bildschirm teilen", + "settings": { + "audio_tab": { + "effect_volume_description": "Lautstärke anpassen, mit der Reaktionen und Handmeldungen abgespielt werden.", + "effect_volume_label": "Lautstärke der Soundeffekte" + }, + "background_blur_header": "Hintergrund", + "background_blur_label": "Unschärfeeffekt für den Hintergrund aktivieren", + "blur_not_supported_by_browser": "(Hintergrundunschärfe wird von diesem Gerät nicht unterstützt.)", + "developer_tab_title": "Entwickler", + "devices": { + "camera": "Kamera", + "camera_numbered": "Kamera {{n}}", + "change_device_button": "Audiogerät wechseln", + "default": "Standard", + "default_named": "Standard<2> ({{name}} )", + "handset": "Ohrhörer", + "loudspeaker": "Lautsprecher", + "microphone": "Mikrofon", + "microphone_numbered": "Mikrofon{{n}}", + "speaker": "Lautsprecher", + "speaker_numbered": "Lautsprecher{{n}}" + }, + "feedback_tab_body": "Falls du auf Probleme stößt oder einfach nur eine Rückmeldung geben möchtest, sende uns bitte eine kurze Beschreibung.", + "feedback_tab_description_label": "Deine Rückmeldung", + "feedback_tab_h4": "Rückmeldung geben", + "feedback_tab_send_logs_label": "Debug-Protokolle anhängen", + "feedback_tab_thank_you": "Danke, wir haben deine Rückmeldung erhalten!", + "feedback_tab_title": "Rückmeldung", + "opt_in_description": "<0><1>Du kannst deine Zustimmung durch Abwählen dieses Kästchens zurückziehen. Falls du dich aktuell in einem Anruf befindest, wird diese Einstellung nach dem Ende des Anrufs wirksam.", + "preferences_tab": { + "developer_mode_label": "Entwickler-Modus", + "developer_mode_label_description": "Aktiviere den Entwicklermodus und zeige Entwicklereinstellungen an.", + "introduction": "Hier können zusätzliche Optionen für individuelle Anforderungen eingestellt werden.", + "reactions_play_sound_description": "Spiele einen Soundeffekt ab, wenn jemand eine Reaktion auf einen Anruf sendet.", + "reactions_play_sound_label": "Reaktionstöne abspielen", + "reactions_show_description": "Zeige eine Animation, wenn jemand eine Reaktion sendet.", + "reactions_show_label": "Reaktionen anzeigen", + "show_hand_raised_timer_description": "Einen Timer zur Handmeldung anzeigen", + "show_hand_raised_timer_label": "Dauer der Handmeldung anzeigen" + } + }, + "star_rating_input_label_one": "{{count}} Stern", + "star_rating_input_label_other": "{{count}} Sterne", + "start_new_call": "Neuen Anruf beginnen", + "start_video_button_label": "Video aktivieren", + "stop_screenshare_button_label": "Bildschirm wird geteilt", + "stop_video_button_label": "Video deaktivieren", + "submitting": "Sende …", + "switch_camera": "Kamera wechseln", + "unauthenticated_view_body": "Noch nicht registriert? <2>Konto erstellen", + "unauthenticated_view_login_button": "Melde dich mit deinem Konto an", + "unauthenticated_view_ssla_caption": "Durch das Klicken auf \"Weiter\" wird dem <2>Software and Services License Agreement (SSLA) zugestimmt.", + "unmute_microphone_button_label": "Mikrofon einschalten", + "version": "{{productName}} Version: {{version}}", + "video_tile": { + "always_show": "Immer anzeigen", + "call_ended": "Anruf beendet", + "calling": "Anruf…", + "camera_starting": "Video wird geladen...", + "collapse": "Minimieren", + "expand": "Erweitern", + "mute_for_me": "Für mich stumm schalten", + "muted_for_me": "Für mich stumm geschaltet", + "screen_share_volume": "Lautstärke der Bildschirmfreigabe", + "volume": "Lautstärke", + "waiting_for_media": "Warten auf Medien..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/deer-91r1Gyrx.mp3 b/features/call/impl/src/main/assets/element-call/assets/deer-91r1Gyrx.mp3 new file mode 100644 index 0000000000..dd06c58cbe Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/deer-91r1Gyrx.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/deer-DPSlVch4.ogg b/features/call/impl/src/main/assets/element-call/assets/deer-DPSlVch4.ogg new file mode 100644 index 0000000000..36a746f8fb Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/deer-DPSlVch4.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/dog-BoQdnF-w.mp3 b/features/call/impl/src/main/assets/element-call/assets/dog-BoQdnF-w.mp3 new file mode 100644 index 0000000000..298bb9e1dd Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/dog-BoQdnF-w.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/dog-CxIWtkNX.ogg b/features/call/impl/src/main/assets/element-call/assets/dog-CxIWtkNX.ogg new file mode 100644 index 0000000000..ecee07d97b Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/dog-CxIWtkNX.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/el-app-Dc8cBnf0.json b/features/call/impl/src/main/assets/element-call/assets/el-app-Dc8cBnf0.json new file mode 100644 index 0000000000..d9fb33f940 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/el-app-Dc8cBnf0.json @@ -0,0 +1,115 @@ +{ + "a11y": { + "user_menu": "Μενού χρήστη" + }, + "action": { + "close": "Κλείσιμο", + "copy_link": "Αντιγραφή συνδέσμου", + "edit": "Επεξεργασία", + "go": "Μετάβαση", + "invite": "Πρόσκληση", + "lower_hand": "Κατεβάστε το χέρι", + "no": "Όχι", + "pick_reaction": "Επιλέξτε αντίδραση", + "raise_hand": "Σηκώστε το χέρι", + "register": "Εγγραφή", + "remove": "Αφαίρεση", + "show_less": "Εμφάνιση λιγότερων", + "show_more": "Εμφάνιση περισσότερων", + "sign_in": "Σύνδεση", + "sign_out": "Αποσύνδεση", + "submit": "Υποβολή", + "upload_file": "Μεταφόρτωση αρχείου" + }, + "analytics_notice": "Συμμετέχοντας σε αυτή τη δοκιμαστική έκδοση, συναινείτε στη συλλογή ανώνυμων δεδομένων, τα οποία χρησιμοποιούμε για τη βελτίωση του προϊόντος. Μπορείτε να βρείτε περισσότερες πληροφορίες σχετικά με το ποια δεδομένα καταγράφουμε στην <2>Πολιτική απορρήτου και στην <6>Πολιτική cookies.", + "call_ended_view": { + "create_account_button": "Δημιουργία λογαριασμού", + "create_account_prompt": "<0>Γιατί να μην ολοκληρώσετε με τη δημιουργία ενός κωδικού πρόσβασης για τη διατήρηση του λογαριασμού σας;<1>Θα μπορείτε να διατηρήσετε το όνομά σας και να ορίσετε ένα avatar για χρήση σε μελλοντικές κλήσεις.", + "feedback_done": "<0>Ευχαριστώ για τα σχόλιά σας!", + "feedback_prompt": "<0>Θα θέλαμε να ακούσουμε τα σχόλιά σας ώστε να βελτιώσουμε την εμπειρία σας.", + "headline": "{{displayName}}, η κλήση σας τερματίστηκε.", + "not_now_button": "Όχι τώρα, επιστροφή στην αρχική οθόνη", + "reconnect_button": "Επανασύνδεση", + "survey_prompt": "Πώς σας φάνηκε;" + }, + "call_name": "Όνομα κλήσης", + "common": { + "analytics": "Δεδομένα ανάλυσης", + "audio": "Ήχος", + "avatar": "Εικόνα Προφίλ", + "back": "Πίσω", + "display_name": "Εμφανιζόμενο όνομα", + "encrypted": "Κρυπτογραφημένο", + "home": "Αρχική", + "loading": "Φόρτωση…", + "next": "Επόμενο", + "options": "Επιλογές", + "password": "Κωδικός", + "preferences": "Προτιμήσεις", + "profile": "Προφίλ", + "reaction": "Αντίδραση", + "reactions": "Αντιδράσεις", + "settings": "Ρυθμίσεις", + "unencrypted": "Μη κρυπτογραφημένο", + "username": "Όνομα χρήστη", + "video": "Βίντεο" + }, + "developer_mode": { + "crypto_version": "Έκδοση κρυπτογράφησης: {{version}}", + "debug_tile_layout_label": "Διάταξη πλακιδίων εντοπισμού σφαλμάτων", + "device_id": "Αναγνωριστικό συσκευής: {{id}}", + "duplicate_tiles_label": "Αριθμός επιπλέον αντιγράφων πλακιδίων ανά συμμετέχοντα", + "environment_variables": "Μεταβλητές περιβάλλοντος", + "hostname": "Όνομα κεντρικού υπολογιστή: {{hostname}}", + "livekit_server_info": "Πληροφορίες διακομιστή LiveKit", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrix_id": "Αναγνωριστικό Matrix: {{id}}", + "show_connection_stats": "Εμφάνιση στατιστικών σύνδεσης", + "url_params": "Παράμετροι URL" + }, + "header_label": "Element Κεντρική Οθόνη Κλήσεων", + "join_existing_call_modal": { + "join_button": "Ναι, συμμετοχή στην κλήση", + "text": "Αυτή η κλήση υπάρχει ήδη, θα θέλατε να συμμετάσχετε;", + "title": "Συμμετοχή στην υπάρχουσα κλήση;" + }, + "lobby": { + "join_button": "Συμμετοχή στην κλήση" + }, + "logging_in": "Σύνδεση…", + "login_auth_links": "<0>Δημιουργήστε λογαριασμό Ή <2>Συμμετέχετε ως επισκέπτης", + "login_title": "Σύνδεση", + "rageshake_request_modal": { + "body": "Ένας άλλος χρήστης σε αυτή την κλήση έχει ένα πρόβλημα. Για την καλύτερη διάγνωση αυτών των προβλημάτων θα θέλαμε να συλλέξουμε ένα αρχείο καταγραφής σφαλμάτων.", + "title": "Αίτημα αρχείου καταγραφής" + }, + "rageshake_send_logs": "Αποστολή αρχείων καταγραφής", + "rageshake_sending": "Αποστολή…", + "rageshake_sending_logs": "Αποστολή αρχείων καταγραφής…", + "recaptcha_dismissed": "Το recaptcha απορρίφθηκε", + "recaptcha_not_loaded": "Το Recaptcha δεν φορτώθηκε", + "register": { + "passwords_must_match": "Οι κωδικοί πρέπει να ταιριάζουν", + "registering": "Εγγραφή…" + }, + "register_auth_links": "<0>Έχετε ήδη λογαριασμό;<1><0>Συνδεθείτε Ή <2>Συμμετέχετε ως επισκέπτης", + "register_confirm_password_label": "Επιβεβαίωση κωδικού", + "return_home_button": "Επιστροφή στην αρχική οθόνη", + "screenshare_button_label": "Κοινή χρήση οθόνης", + "settings": { + "developer_tab_title": "Προγραμματιστής", + "feedback_tab_body": "Εάν αντιμετωπίζετε προβλήματα ή απλά θέλετε να μας δώσετε κάποια σχόλια, παρακαλούμε στείλτε μας μια σύντομη περιγραφή παρακάτω.", + "feedback_tab_description_label": "Τα σχόλιά σας", + "feedback_tab_h4": "Υποβάλετε σχόλια", + "feedback_tab_send_logs_label": "Να συμπεριληφθούν αρχεία καταγραφής", + "feedback_tab_thank_you": "Ευχαριστούμε, λάβαμε τα σχόλιά σας!", + "feedback_tab_title": "Ανατροφοδότηση", + "opt_in_description": "<0><1>Μπορείτε να ανακαλέσετε τη συγκατάθεσή σας αποεπιλέγοντας αυτό το πλαίσιο. Εάν βρίσκεστε σε κλήση, η ρύθμιση αυτή θα τεθεί σε ισχύ στο τέλος της." + }, + "star_rating_input_label_one": "{{count}} αστέρι", + "star_rating_input_label_other": "{{count}} αστέρια", + "submitting": "Υποβολή…", + "unauthenticated_view_body": "Δεν έχετε εγγραφεί ακόμα; <2>Δημιουργήστε λογαριασμό", + "unauthenticated_view_login_button": "Συνδεθείτε στον λογαριασμό σας", + "version": "Έκδοση: {{version}}" +} diff --git a/features/call/impl/src/main/assets/element-call/assets/en-app-DyeX0etE.json b/features/call/impl/src/main/assets/element-call/assets/en-app-DyeX0etE.json new file mode 100644 index 0000000000..8656502cfb --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/en-app-DyeX0etE.json @@ -0,0 +1,266 @@ +{ + "a11y": { + "user_menu": "User menu" + }, + "action": { + "blur_background": "Blur background", + "close": "Close", + "copy_link": "Copy link", + "edit": "Edit", + "go": "Go", + "invite": "Invite", + "lower_hand": "Lower hand", + "no": "No", + "pick_reaction": "Pick reaction", + "raise_hand": "Raise hand", + "register": "Register", + "remove": "Remove", + "show_less": "Show less", + "show_more": "Show more", + "sign_in": "Sign in", + "sign_out": "Sign out", + "submit": "Submit", + "upload_file": "Upload file" + }, + "analytics_notice": "By participating in this beta, you consent to the collection of anonymous data, which we use to improve the product. You can find more information about which data we track in our <2>Privacy Policy and our <6>Cookie Policy.", + "call_ended_view": { + "create_account_button": "Create account", + "create_account_prompt": "<0>Why not finish by setting up a password to keep your account?<1>You'll be able to keep your name and set an avatar for use on future calls", + "feedback_done": "<0>Thanks for your feedback!", + "feedback_prompt": "<0>We'd love to hear your feedback so we can improve your experience.", + "headline": "{{displayName}}, your call has ended.", + "not_now_button": "Not now, return to home screen", + "reconnect_button": "Reconnect", + "survey_prompt": "How did it go?" + }, + "call_name": "Name of call", + "common": { + "analytics": "Analytics", + "audio": "Audio", + "avatar": "Avatar", + "back": "Back", + "display_name": "Display name", + "encrypted": "Encrypted", + "home": "Home", + "loading": "Loading…", + "next": "Next", + "options": "Options", + "password": "Password", + "preferences": "Preferences", + "profile": "Profile", + "reaction": "Reaction", + "reactions": "Reactions", + "reconnecting": "Reconnecting…", + "settings": "Settings", + "unencrypted": "Not encrypted", + "username": "Username", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Show iPhone earpiece option on all platforms", + "crypto_version": "Crypto version: {{version}}", + "custom_livekit_url": { + "current_url": "Currently set to: ", + "from_config": "Currently, no overwrite is set. Url from well-known or config is used.", + "label": "Custom Livekit-url", + "reset": "Reset overwrite", + "save": "Save", + "saving": "Saving..." + }, + "debug_tile_layout_label": "Debug tile layout", + "device_id": "Device ID: {{id}}", + "duplicate_tiles_label": "Number of additional tile copies per participant", + "environment_variables": "Environment variables", + "hostname": "Hostname: {{hostname}}", + "livekit_server_info": "LiveKit Server Info", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrix_id": "Matrix ID: {{id}}", + "matrixRTCMode": { + "Comptibility": { + "description": "Compatible with homeservers that do not support sticky events (but all other EC clients are v0.17.0 or later)", + "label": "Compatibility: state events & multi SFU" + }, + "Legacy": { + "description": "Compatible with old versions of EC that do not support multi SFU", + "label": "Legacy: state events & oldest membership SFU" + }, + "Matrix_2_0": { + "description": "Compatible only with homservers supporting sticky events and all EC clients v0.17.0 or later", + "label": "Matrix 2.0: sticky events & multi SFU" + }, + "title": "MatrixRTC mode" + }, + "mute_all_audio": "Mute all audio (participants, reactions, join sounds)", + "show_connection_stats": "Show connection statistics", + "url_params": "URL parameters" + }, + "disconnected_banner": "Connectivity to the server has been lost.", + "error": { + "call_is_not_supported": "Call is not supported", + "call_not_found": "Call not found", + "call_not_found_description": "<0>That link doesn't appear to belong to any existing call. Check that you have the right link, or <2>create a new one.", + "connection_lost": "Connection lost", + "connection_lost_description": "You were disconnected from the call.", + "e2ee_unsupported": "Incompatible browser", + "e2ee_unsupported_description": "Your web browser does not support encrypted calls. Supported browsers include Chrome, Safari, and Firefox 117+.", + "failed_to_start_livekit": "Failed to start Livekit connection", + "generic": "Something went wrong", + "generic_description": "Submitting debug logs will help us track down the problem.", + "insufficient_capacity": "Insufficient capacity", + "insufficient_capacity_description": "The server has reached its maximum capacity and you cannot join the call at this time. Try again later, or contact your server admin if the problem persists.", + "livekit_connection_error": "Failed to connect to Livekit server", + "livekit_connection_error_description": "An error occurred while connecting to the Livekit server (<1>Reason: <2>{{ reason }}).", + "matrix_rtc_transport_missing": "The server is not configured to work with {{brand}}. Please contact your server admin (Domain: {{domain}}, Error Code: {{ errorCode }}).", + "membership_manager": "Membership Manager Error", + "membership_manager_description": "The Membership Manager had to shut down. This is caused by many consecutive failed network requests.", + "no_matrix_2_authorization_service": "The authorization service for your media server (SFU) is out of date.", + "open_elsewhere": "Opened in another tab", + "open_elsewhere_description": "{{brand}} has been opened in another tab. If that doesn't sound right, try reloading the page.", + "peer_connection_timeout": "Connection timeout", + "peer_connection_timeout_description": "Connection to the media server timed out. Try switching to a different network or disabling your VPN. If the problem persists, see our <0>troubleshooting guide or contact your server administrator.", + "room_creation_restricted": "Failed to create call", + "room_creation_restricted_description": "Call creation might be restricted to authorized users only. Try again later, or contact your server admin if the problem persists.", + "sticky_events_required": "Homeserver does not support Matrix 2.0 calls", + "sticky_events_required_description": "This deployment is configured to use Matrix 2.0 call mode, but the homeserver does not advertise support for sticky events (MSC4354). Ask your server admin to upgrade, or switch the deployment to a compatible mode.", + "unexpected_ec_error": "An unexpected error occurred (<0>Error Code: <1>{{ errorCode }}). Please contact your server admin." + }, + "group_call_loader": { + "banned_body": "You have been banned from the room.", + "banned_heading": "Banned", + "call_ended_body": "You have been removed from the call.", + "call_ended_heading": "Call ended", + "knock_reject_body": "Your request to join was declined.", + "knock_reject_heading": "Access denied", + "reason": "Reason: {{reason}}" + }, + "handset": { + "overlay_back_button": "Back to Speaker Mode", + "overlay_description": "Only works while using app", + "overlay_title": "Handset Mode" + }, + "hangup_button_label": "End call", + "header_label": "Element Call Home", + "header_participants_label": "Participants", + "invite_modal": { + "link_copied_toast": "Link copied to clipboard", + "title": "Invite to this call" + }, + "join_existing_call_modal": { + "join_button": "Yes, join call", + "text": "This call already exists, would you like to join?", + "title": "Join existing call?" + }, + "layout_grid_label": "Grid", + "layout_spotlight_label": "Spotlight", + "layout_switch_label": "Layout", + "lobby": { + "ask_to_join": "Request to join call", + "join_as_guest": "Join as guest", + "join_button": "Join call", + "leave_button": "Back to recents", + "waiting_for_invite": "Request sent! Waiting for permission to join…" + }, + "log_in": "Log In", + "logging_in": "Logging in…", + "login_auth_links": "<0>Create an account Or <2>Access as a guest", + "login_auth_links_prompt": "Not registered yet?", + "login_subheading": "To continue to Element", + "login_title": "Login", + "microphone_off": "Microphone off", + "microphone_on": "Microphone on", + "mute_microphone_button_label": "Mute microphone", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR Code", + "rageshake_button_error_caption": "Retry sending logs", + "rageshake_request_modal": { + "body": "Another user on this call is having an issue. In order to better diagnose these issues we'd like to collect a debug log.", + "title": "Debug log request" + }, + "rageshake_send_logs": "Send debug logs", + "rageshake_sending": "Sending…", + "rageshake_sending_logs": "Sending debug logs…", + "rageshake_sent": "Thanks!", + "recaptcha_dismissed": "Recaptcha dismissed", + "recaptcha_not_loaded": "Recaptcha not loaded", + "recaptcha_ssla_caption": "This site is protected by ReCAPTCHA and the Google <2>Privacy Policy and <6>Terms of Service apply.<9>By clicking \"Register\", you agree to our <12>Software and Services License Agreement (SSLA)", + "register": { + "passwords_must_match": "Passwords must match", + "registering": "Registering…" + }, + "register_auth_links": "<0>Already have an account?<1><0>Log in Or <2>Access as a guest", + "register_confirm_password_label": "Confirm password", + "register_heading": "Create your account", + "return_home_button": "Return to home screen", + "room_auth_view_continue_button": "Continue", + "room_auth_view_ssla_caption": "By clicking \"Join call now\", you agree to our <2>Software and Services License Agreement (SSLA)", + "screenshare_button_label": "Share screen", + "settings": { + "audio_tab": { + "effect_volume_description": "Adjust the volume at which reactions and hand raised effects play.", + "effect_volume_label": "Sound effect volume" + }, + "background_blur_header": "Background", + "background_blur_label": "Blur the background of the video", + "blur_not_supported_by_browser": "(Background blur is not supported by this device.)", + "developer_tab_title": "Developer", + "devices": { + "camera": "Camera", + "camera_numbered": "Camera {{n}}", + "change_device_button": "Change audio device", + "default": "Default", + "default_named": "Default <2>({{name}})", + "handset": "Handset", + "loudspeaker": "Loudspeaker", + "microphone": "Microphone", + "microphone_numbered": "Microphone {{n}}", + "speaker": "Speaker", + "speaker_numbered": "Speaker {{n}}" + }, + "feedback_tab_body": "If you are experiencing issues or simply would like to provide some feedback, please send us a short description below.", + "feedback_tab_description_label": "Your feedback", + "feedback_tab_h4": "Submit feedback", + "feedback_tab_send_logs_label": "Include debug logs", + "feedback_tab_thank_you": "Thanks, we received your feedback!", + "feedback_tab_title": "Feedback", + "opt_in_description": "<0><1>You may withdraw consent by unchecking this box. If you are currently in a call, this setting will take effect at the end of the call.", + "preferences_tab": { + "developer_mode_label": "Developer mode", + "developer_mode_label_description": "Enable developer mode and show developer settings tab.", + "introduction": "Here you can configure extra options for an improved experience.", + "reactions_play_sound_description": "Play a sound effect when anyone sends a reaction into a call.", + "reactions_play_sound_label": "Play reaction sounds", + "reactions_show_description": "Show an animation when anyone sends a reaction.", + "reactions_show_label": "Show reactions", + "show_hand_raised_timer_description": "Show a timer when a participant raises their hand", + "show_hand_raised_timer_label": "Show hand raise duration" + } + }, + "star_rating_input_label_one": "{{count}} star", + "star_rating_input_label_other": "{{count}} stars", + "start_new_call": "Start new call", + "start_video_button_label": "Start video", + "stop_screenshare_button_label": "Sharing screen", + "stop_video_button_label": "Stop video", + "submitting": "Submitting…", + "switch_camera": "Switch camera", + "technical_details": "Technical details", + "unauthenticated_view_body": "Not registered yet? <2>Create an account", + "unauthenticated_view_login_button": "Login to your account", + "unauthenticated_view_ssla_caption": "By clicking \"Go\", you agree to our <2>Software and Services License Agreement (SSLA)", + "unmute_microphone_button_label": "Unmute microphone", + "version": "{{productName}} version: {{version}}", + "video_tile": { + "always_show": "Always show", + "call_ended": "Call ended", + "calling": "Calling…", + "camera_starting": "Video loading...", + "collapse": "Collapse", + "expand": "Expand", + "mute_for_me": "Mute for me", + "muted_for_me": "Muted for me", + "screen_share_volume": "Screen share volume", + "volume": "Volume", + "waiting_for_media": "Waiting for media..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/es-app-B756SCHe.json b/features/call/impl/src/main/assets/element-call/assets/es-app-B756SCHe.json new file mode 100644 index 0000000000..d92dd2af59 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/es-app-B756SCHe.json @@ -0,0 +1,254 @@ +{ + "a11y": { + "user_menu": "Menú de usuario" + }, + "action": { + "close": "Cerrar", + "copy_link": "Copiar vínculo", + "edit": "Editar", + "go": "Comenzar", + "invite": "Invitar", + "lower_hand": "Bajar mano", + "no": "No", + "pick_reaction": "Elige reacción", + "raise_hand": "Levantar la mano", + "register": "Registrarse", + "remove": "Eliminar", + "show_less": "Mostrar menos", + "show_more": "Mostrar más", + "sign_in": "Iniciar sesión", + "sign_out": "Cerrar sesión", + "submit": "Enviar", + "upload_file": "Cargar archivo" + }, + "analytics_notice": "Al participar en esta beta, consientes a la recogida de datos anónimos, los cuales usaremos para mejorar el producto. Puedes encontrar más información sobre que datos recogemos en nuestra <2>Política de privacidad y en nuestra <5>Política sobre Cookies.", + "call_ended_view": { + "create_account_button": "Crear cuenta", + "create_account_prompt": "<0>¿Por qué no mantienes tu cuenta estableciendo una contraseña?<1>Podrás mantener tu nombre y establecer un avatar para usarlo en futuras llamadas", + "feedback_done": "<0>¡Gracias por tus comentarios!", + "feedback_prompt": "<0>Nos encantaría conocer tu opinión para que podamos mejorar tu experiencia", + "headline": "{{displayName}}, tu llamada ha finalizado.", + "not_now_button": "Ahora no, volver a la pantalla de inicio", + "reconnect_button": "Reconnectar", + "survey_prompt": "¿Cómo ha ido?" + }, + "call_name": "Nombre de la llamada", + "common": { + "analytics": "Analíticas", + "audio": "Audio", + "avatar": "Avatar", + "back": "Regresar", + "display_name": "Nombre a mostrar", + "encrypted": "Cifrado", + "home": "Inicio", + "loading": "Cargando…", + "next": "Próximo", + "options": "Opciones", + "password": "Contraseña", + "preferences": "Preferencias", + "profile": "Perfil", + "reaction": "Reacción", + "reactions": "Reacciones", + "reconnecting": "Reconectando…", + "settings": "Ajustes", + "unencrypted": "Sin cifrar", + "username": "Nombre de usuario", + "video": "Vídeo" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Mostrar la opción de auricular del iPhone en todas las plataformas", + "crypto_version": "Versión criptográfica: {{version}}", + "custom_livekit_url": { + "current_url": "Actualmente configurado: ", + "from_config": "Actualmente, no hay ninguna sobrescritura configurada. Se utiliza la URL de well-known o config.", + "label": "URL personalizada de Livekit", + "reset": "Restablecer sobrescritura", + "save": "Guardar", + "saving": "Guardando..." + }, + "debug_tile_layout_label": "Depurar diseño de mosaicos", + "device_id": "ID del dispositivo: {{id}}", + "duplicate_tiles_label": "Número de copias adicionales de fichas por participante", + "environment_variables": "Variables de entorno", + "hostname": "Nombre del Host: {{hostname}}", + "livekit_server_info": "Información servidor LiveKit", + "livekit_sfu": "LiveKit SFU:{{url}}", + "matrixRTCMode": { + "Comptibility": { + "description": "Compatible con servidores privados que no admiten eventos persistentes (pero todos los demás clientes de EC son v0.17.0 o posteriores)", + "label": "Compatibilidad: eventos de estado y SFU múltiple" + }, + "Legacy": { + "description": "Compatible con versiones antiguas de EC que no admiten SFU múltiple.", + "label": "Legado: eventos estatales y membresía más antigua SFU" + }, + "Matrix_2_0": { + "description": "Compatible solo con servidores domésticos que admiten eventos persistentes y todos los clientes EC v0.17.0 o posterior", + "label": "Matrix 2.0: eventos persistentes y SFU múltiple" + }, + "title": "Modo MatrixRTC" + }, + "matrix_id": "Matrix ID: {{id}}", + "mute_all_audio": "Silenciar todo el audio (participantes, reacciones, sonidos de unirse)", + "show_connection_stats": "Mostrar estadísticas de conexión", + "url_params": "Parámetros URL" + }, + "disconnected_banner": "Se perdió la conectividad con el servidor.", + "error": { + "call_is_not_supported": "La llamada no es compatible", + "call_not_found": "Llamada no encontrada", + "call_not_found_description": "<0>Ese enlace no parece pertenecer a ninguna llamada existente. Comprueba que tienes el enlace correcto o <2>crea uno nuevo.", + "connection_lost": "Conexión interrumpida", + "connection_lost_description": "Se cortadó la llamada.", + "e2ee_unsupported": "Navegador incompatible", + "e2ee_unsupported_description": "Tu navegador web no admite llamadas cifradas. Los navegadores compatibles son Chrome, Safari y Firefox 117+.", + "failed_to_start_livekit": "No se ha podido iniciar la conexión Livekit.", + "generic": "Algo salió mal", + "generic_description": "Enviar registros de depuración nos ayudará a localizar el problema.", + "insufficient_capacity": "Capacidad insuficiente", + "insufficient_capacity_description": "El servidor ha alcanzado su capacidad máxima y no puedes unirte a la llamada en el momento. Inténtalo más tarde o contacta el administrador del servidor si el problema persiste.", + "matrix_rtc_transport_missing": "El servidor no está configurado para trabajar con{{brand}} . Por favor, póngase en contacto con el administrador de su servidor (Dominio:{{domain}} Código de error:{{ errorCode }} ).", + "membership_manager": "Error del administrador de miembros", + "membership_manager_description": "El Administrador de Membresías tuvo que cerrarse debido a numerosas solicitudes de red fallidas consecutivas.", + "no_matrix_2_authorization_service": "El servicio de autorización de su servidor multimedia (SFU) está desactualizado.", + "open_elsewhere": "Abierto en otra pestaña", + "open_elsewhere_description": "{{brand}}Se ha abierto en otra pestaña. Si no suena bien, intenta recargar la página.", + "room_creation_restricted": "Falló crear llamada", + "room_creation_restricted_description": "La creación de llamadas podría estar restringida solo a usuarios autorizados. Inténtelo de nuevo más tarde o póngase en contacto con el administrador del servidor si el problema persiste.", + "unexpected_ec_error": "Se produjo un error inesperado (<0> Código de error:<1>{{ errorCode }} ) Por favor, contacta el administrador de su servidor." + }, + "group_call_loader": { + "banned_body": "Has sido expulsado de la sala.", + "banned_heading": "Bloqueado", + "call_ended_body": "Te han retirado de la llamada.", + "call_ended_heading": "Llamada finalizada", + "knock_reject_body": "Su solicitud para unirse fue rechazada.", + "knock_reject_heading": "Acceso denegado", + "reason": "Razón:{{reason}}" + }, + "handset": { + "overlay_back_button": "Volver al modo altavoz", + "overlay_description": "Solo funciona mientras se utiliza la aplicación.", + "overlay_title": "Modo teléfono" + }, + "hangup_button_label": "Finalizar llamada", + "header_label": "Inicio de Element Call", + "header_participants_label": "Participantes", + "invite_modal": { + "link_copied_toast": "Enlace copiado al portapapeles", + "title": "Invita a esta llamada" + }, + "join_existing_call_modal": { + "join_button": "Si, unirse a la llamada", + "text": "Esta llamada ya existe, ¿te gustaría unirte?", + "title": "¿Unirse a llamada existente?" + }, + "layout_grid_label": "Grilla", + "layout_spotlight_label": "Foco", + "lobby": { + "ask_to_join": "Solicitar unirse a la llamada", + "join_as_guest": "Unirse como invitado", + "join_button": "Unirse a la llamada", + "leave_button": "Volver a recientes", + "waiting_for_invite": "¡Solicitud enviada! Esperando permiso para unir..." + }, + "log_in": "Iniciar sesión", + "logging_in": "Iniciando sesión…", + "login_auth_links": "<0>Crear una cuenta o <2>Acceder como invitado", + "login_auth_links_prompt": "¿Aún no se ha registrado?", + "login_subheading": "Continuar a Element", + "login_title": "Iniciar sesión", + "microphone_off": "Micrófono desactivado", + "microphone_on": "Micrófono activado", + "mute_microphone_button_label": "Silenciar micrófono", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "CÓDIGO QR", + "rageshake_button_error_caption": "Reintentar enviar registros", + "rageshake_request_modal": { + "body": "Otro usuario en esta llamada está teniendo problemas. Para diagnosticar estos problemas nos gustaría recopilar un registro de depuración.", + "title": "Petición de registros de depuración" + }, + "rageshake_send_logs": "Enviar registros de depuración", + "rageshake_sending": "Enviando…", + "rageshake_sending_logs": "Enviando registros de depuración…", + "rageshake_sent": "¡Gracias!", + "recaptcha_dismissed": "Recaptcha cancelado", + "recaptcha_not_loaded": "No se ha cargado el Recaptcha", + "recaptcha_ssla_caption": "Este sitio está protegido por ReCAPTCHA y se aplican las <2> política de privacidad y<6> Condiciones de serviciode Google aplican.<9> Al hacer clic en \"Registrarse\", se acepta nuestros <12> Acuerdo de licencia de software y servicios (SSLA)", + "register": { + "passwords_must_match": "Las contraseñas deben coincidir", + "registering": "Registrando…" + }, + "register_auth_links": "<0>¿Ya tienes una cuenta?<1><0>Iniciar sesión o <2>Acceder como invitado", + "register_confirm_password_label": "Confirmar contraseña", + "register_heading": "Crear tu cuenta", + "return_home_button": "Volver a la pantalla de inicio", + "room_auth_view_continue_button": "Continuar", + "room_auth_view_ssla_caption": "Al hacer clic en \"Unirse a la llamada ahora\", acepta nuestros<2> Acuerdo de licencia de software y servicios (SSLA)", + "screenshare_button_label": "Compartir pantalla", + "settings": { + "audio_tab": { + "effect_volume_description": "Ajusta el volumen al que se reproducen las reacciones y los efectos de subir la mano.", + "effect_volume_label": "Volumen de efectos de sonido" + }, + "background_blur_header": "Fondo", + "background_blur_label": "Desenfocar el fondo del vídeo", + "blur_not_supported_by_browser": "(El desenfoque de fondo no esta sopportado de este dispositivo).", + "developer_tab_title": "Desarrollador", + "devices": { + "camera": "Cámara", + "camera_numbered": "Cámara {{n}}", + "change_device_button": "Cambiar dispositivo de audio", + "default": "Por defecto", + "default_named": "Por defecto<2> ({{name}})", + "handset": "Dispositivo", + "loudspeaker": "Altavoz", + "microphone": "Micrófono", + "microphone_numbered": "Micrófono {{n}}", + "speaker": "Altavoz", + "speaker_numbered": "Altavoz {{n}}" + }, + "feedback_tab_body": "Si tienes algún problema o simplemente quieres darnos tu opinión, por favor envíanos una breve descripción.", + "feedback_tab_description_label": "Tus comentarios", + "feedback_tab_h4": "Enviar comentarios", + "feedback_tab_send_logs_label": "Incluir registros de depuración", + "feedback_tab_thank_you": "¡Gracias, hemos recibido tus comentarios!", + "feedback_tab_title": "Danos tu opinión", + "opt_in_description": "<0><1>Puedes retirar tu consentimiento desmarcando esta casilla. Si estás en una llamada, este ajuste se aplicará al final de esta.", + "preferences_tab": { + "developer_mode_label": "Modo desarrollador", + "developer_mode_label_description": "Activa el modo de desarrollador y muestra la pestaña de configuración de desarrollador.", + "introduction": "Aquí puedes configurar opciones adicionales para una experiencia mejorada.", + "reactions_play_sound_description": "Reproduce un sonido cuando alguien envíe una reacción en una llamada.", + "reactions_play_sound_label": "Reproduce sonidos de reacción", + "reactions_show_description": "Muestra una animación cuando alguien envíe una reacción.", + "reactions_show_label": "Mostrar reacciones", + "show_hand_raised_timer_description": "Mostrar un temporizador cuando un participante levante la mano", + "show_hand_raised_timer_label": "Mostrar la duración de la subida de la mano" + } + }, + "star_rating_input_label_one": "{{count}} estrella", + "star_rating_input_label_other": "{{count}} estrellas", + "start_new_call": "Iniciar nueva llamada", + "start_video_button_label": "Iniciar vídeo", + "stop_screenshare_button_label": "Compartiendo pantalla", + "stop_video_button_label": "Parar vídeo", + "submitting": "Enviando…", + "switch_camera": "Cambiar cámara", + "unauthenticated_view_body": "¿No estás registrado todavía? <2>Crear una cuenta", + "unauthenticated_view_login_button": "Iniciar sesión en tu cuenta", + "unauthenticated_view_ssla_caption": "Al hacer clic en «Continuar», aceptas nuestro Acuerdo de licencia de software y servicios (SSLA) de <2>.", + "unmute_microphone_button_label": "Activar micrófono", + "version": "Versión: {{version}}", + "video_tile": { + "always_show": "Mostrar siempre", + "camera_starting": "Cargando video...", + "collapse": "Colapsar", + "expand": "Expandir", + "mute_for_me": "Silenciar para mí", + "muted_for_me": "Silenciado para mí", + "volume": "Volumen", + "waiting_for_media": "Esperando medios..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/et-app-CvIQgPPg.json b/features/call/impl/src/main/assets/element-call/assets/et-app-CvIQgPPg.json new file mode 100644 index 0000000000..7bd2b369b6 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/et-app-CvIQgPPg.json @@ -0,0 +1,241 @@ +{ + "a11y": { + "user_menu": "Kasutajamenüü" + }, + "action": { + "close": "Sulge", + "copy_link": "Kopeeri link", + "edit": "Muuda", + "go": "Jätka", + "invite": "Kutsu", + "lower_hand": "Lase käsi alla", + "no": "Ei", + "pick_reaction": "Vali reaktsioon", + "raise_hand": "Anna käega märku", + "register": "Registreeru", + "remove": "Eemalda", + "show_less": "Näita vähem", + "show_more": "Näita rohkem", + "sign_in": "Logi sisse", + "sign_out": "Logi välja", + "submit": "Saada", + "upload_file": "Laadi fail üles" + }, + "analytics_notice": "Nõustudes selle beetaversiooni kasutamisega, sa nõustud ka toote arendamiseks kasutatavate anonüümsete andmete kogumisega. Täpsemat teavet kogutavate andmete kohta leiad meie <2>Privaatsuspoliitikast ja meie <6>Küpsiste kasutamise reeglitest.", + "call_ended_view": { + "create_account_button": "Loo konto", + "create_account_prompt": "<0>Kas soovid salasõna seadistada ja sellega oma kasutajakonto alles jätta?<1>Nii saad säilitada oma nime ja määrata profiilipildi, mida saad kasutada tulevastes kõnedes", + "feedback_done": "<0>Täname Sind tagasiside eest!", + "feedback_prompt": "<0>Meie rakenduse paremaks muutmiseks me hea meelega ootame Sinu arvamusi.", + "headline": "{{displayName}}, sinu kõne on lõppenud.", + "not_now_button": "Mitte praegu, mine tagasi avalehele", + "reconnect_button": "Ühenda uuesti", + "survey_prompt": "Kuidas sujus?" + }, + "call_name": "Kõne nimi", + "common": { + "analytics": "Analüütika", + "audio": "Heli", + "avatar": "Tunnuspilt", + "back": "Tagasi", + "display_name": "Kuvatav nimi", + "encrypted": "Krüptitud", + "home": "Kodu", + "loading": "Laadimine …", + "next": "Edasi", + "options": "Valikud", + "password": "Salasõna", + "preferences": "Eelistused", + "profile": "Profiil", + "reaction": "Reaktsioon", + "reactions": "Reageerimised", + "reconnecting": "Ühendan uuesti…", + "settings": "Seadistused", + "unencrypted": "Krüptimata", + "username": "Kasutajanimi", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Näita iPhone'i kuulari valikut kõikidel platvormidel", + "crypto_version": "Krüptoteekide versioon: {{version}}", + "custom_livekit_url": { + "current_url": "Hetkel määratud olekuks: ", + "from_config": "Hetkel on ülekirjutamine määratlemata. Kasutusel on võrguaadress „well-known“-failist või seadistustest.", + "label": "Sisu määratud Livekit-url", + "reset": "Lähtesta ülekirjutamine", + "save": "Salvesta", + "saving": "Salvestan..." + }, + "debug_tile_layout_label": "Meediapaanide paigutus", + "device_id": "Seadme tunnus: {{id}}", + "duplicate_tiles_label": "Täiendavaid vaadete koopiaid osaleja kohta", + "environment_variables": "Keskkonnamuutujad", + "hostname": "Hosti nimi: {{hostname}}", + "livekit_server_info": "LiveKiti serveri teave", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrixRTCMode": { + "title": "MatrixRTC režiim" + }, + "matrix_id": "Matrixi kasutajatunnus: {{id}}", + "mute_all_audio": "Summuta kõik helid (osalejad, regeerimised, liitumise helid)", + "show_connection_stats": "Näita ühenduse statistikat", + "url_params": "Võrguaadressi parameetrid" + }, + "disconnected_banner": "Võrguühendus serveriga on katkenud.", + "error": { + "call_is_not_supported": "Kõne pole toetatud", + "call_not_found": "Kõnet ei leidu", + "call_not_found_description": "<0>See link ei tundu olema seotud ühegi olemasoleva kõnega. Kontrolli, et sul on õige link või <2>loo uus.", + "connection_lost": "Ühendus on katkenud", + "connection_lost_description": "Sinu ühendus selle kõnega on katkenud.", + "e2ee_unsupported": "Mitteühilduv brauser", + "e2ee_unsupported_description": "Sinu veebibrauser ei toeta krüptitud kõnesid. Toimivad veebibrauserid on Chrome, Safari, ja Firefox 117+.", + "failed_to_start_livekit": "Ei õnnestunud käivitada Livekiti ühendust", + "generic": "Midagi läks valesti", + "generic_description": "Silumis- ja vealogide saatmine võib aidata meid vea põhjuseni jõuda.", + "insufficient_capacity": "Mittepiisav jõudlus", + "insufficient_capacity_description": "Serveri jõudluse ülempiir on hetkel ületatud ja sa ei saa hetkel selle kõnega liituda. Proovi hiljem uuesti või kui probleem kestab kauem, siis võta ühendust serveri haldajaga.", + "matrix_rtc_transport_missing": "See server pole seadistatud töötama rakendusega {{brand}}. Palun võta ühendust serveri halduriga (domeen: {{domain}}, veakood: {{ errorCode }}).", + "membership_manager": "Viga liikmelisuse haldamisel", + "membership_manager_description": "Liikmelisuse haldur pidi oma töö lõpetama. Selle põhjuseks olid paljud järjestikused ebaõnnestunud võrgupäringud.", + "open_elsewhere": "Avatud teisel vahekaardil", + "open_elsewhere_description": "{{brand}} on avatud teisel vahekaardil. Kui see ei tundu olema õige, proovi selle lehe uuesti laadimist.", + "room_creation_restricted": "Kõne loomine ei õnnestunud", + "room_creation_restricted_description": "Kõne loomine võib olla lubatud ainult volitatud kasutajatele. Proovi hiljem uuesti või probleemi püsimisel võta ühendust oma serveri haldajaga.", + "unexpected_ec_error": "Tekkis ootamatu viga (<0>Veakood: <1>{{ errorCode }}). Palun võta ühendust serveri haldajaga." + }, + "group_call_loader": { + "banned_body": "Sa oled saanud selles jututoas suhtluskeelu", + "banned_heading": "Suhtluskeeld", + "call_ended_body": "Sa oled sellest kõnest eemaldatud.", + "call_ended_heading": "Kõne lõppes", + "knock_reject_body": "Jututoa liikmed ei nõustunud sinu liitumispalvega.", + "knock_reject_heading": "Liitumine pole lubatud", + "reason": "Põhjus" + }, + "handset": { + "overlay_back_button": "Tagasi esineja vaatesse", + "overlay_description": "See toimib vaid rakenduse kasutamise ajal", + "overlay_title": "Telefonirežiim" + }, + "hangup_button_label": "Lõpeta kõne", + "header_label": "Avaleht: Element Call", + "header_participants_label": "Osalejad", + "invite_modal": { + "link_copied_toast": "Link on kopeeritud lõikelauale", + "title": "Kutsu liituma selle kõnaga" + }, + "join_existing_call_modal": { + "join_button": "Jah, liitu kõnega", + "text": "See kõne on juba olemas, kas soovid liituda?", + "title": "Liitu juba käimasoleva kõnega?" + }, + "layout_grid_label": "Ruudustik", + "layout_spotlight_label": "Rambivalgus", + "lobby": { + "ask_to_join": "Küsi võimalust liituda kõnega", + "join_as_guest": "Liitu külalisena", + "join_button": "Liitu kõnega", + "leave_button": "Tagasi hiljutiste kõnede juurde", + "waiting_for_invite": "Päring on saadetud" + }, + "log_in": "Logi sisse", + "logging_in": "Logime sisse…", + "login_auth_links": "<0>Loo konto või <2>Sisene külalisena", + "login_auth_links_prompt": "Sa pole veel registreerunud?", + "login_subheading": "Jätka rakenduses Element", + "login_title": "Sisselogimine", + "microphone_off": "Mikrofon ei tööta", + "microphone_on": "Mikrofon töötab", + "mute_microphone_button_label": "Summuta mikrofon", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR-kood", + "rageshake_button_error_caption": "Proovi uuesti logisid saata", + "rageshake_request_modal": { + "body": "Ühel teisel selles kõnes osalejal on lahenduse kasutamisel tekkinud probleem ning selle põhjuse leidmiseks me sooviksime koguda silumislogisid.", + "title": "Veaotsingulogi päring" + }, + "rageshake_send_logs": "Saada veaotsingulogid", + "rageshake_sending": "Saatmine…", + "rageshake_sending_logs": "Veaotsingulogide saatmine…", + "rageshake_sent": "Tänud!", + "recaptcha_dismissed": "Robotilõks on vahele jäetud", + "recaptcha_not_loaded": "Robotilõks pole laetud", + "recaptcha_ssla_caption": "Selle saidi kaitsmiseks on kasutusel ReCAPTCHA ning rakenduvad Google'i <2>Privaatusreeglid ja <6>Kasutustingimused.<9>Klõpsides „Registreeru“ nõustud sa meie <12>Tarkvara ja teenuste litsentseerimise lepinguga (Software and Services License Agreement - SSLA)", + "register": { + "passwords_must_match": "Salasõnad ei klapi", + "registering": "Registreerimine…" + }, + "register_auth_links": "<0>On sul juba konto?<1><0>Logi sisse või <2>Logi sisse külalisena", + "register_confirm_password_label": "Kinnita salasõna", + "register_heading": "Loo omale konto", + "return_home_button": "Tagasi avalehele", + "room_auth_view_continue_button": "Jätka", + "room_auth_view_ssla_caption": "Klõpsides „Liitu kõnega“ nõustud sa meie <2>Tarkvara ja teenuste litsentseerimise lepinguga (Software and Services License Agreement - SSLA)", + "screenshare_button_label": "Jaga ekraani", + "settings": { + "audio_tab": { + "effect_volume_description": "Häälesta helivaljust, mida kasutatakse käe tõstmisel ja regeerimisel", + "effect_volume_label": "Efektide helivajlus" + }, + "background_blur_header": "Taust", + "background_blur_label": "Hägusta video taust", + "blur_not_supported_by_browser": "(Tausta hägustamine pole selles seadmes toetatud.)", + "developer_tab_title": "Arendaja", + "devices": { + "camera": "Kaamera", + "camera_numbered": "Kaamera {{n}}", + "change_device_button": "Muuda heliseadet", + "default": "Vaikimisi", + "default_named": "Vaikimisi <2>({{name}})", + "handset": "Telefon", + "loudspeaker": "Valjuhääldi", + "microphone": "Mikrofon", + "microphone_numbered": "Mikrofon {{n}}", + "speaker": "Kõlar", + "speaker_numbered": "Kõlar {{n}}" + }, + "feedback_tab_body": "Kui selle rakenduse kasutamisel tekib sul probleeme või lihtsalt soovid oma arvamust avaldada, siis palun täida alljärgnev lühike kirjeldus.", + "feedback_tab_description_label": "Sinu tagasiside", + "feedback_tab_h4": "Jaga tagasisidet", + "feedback_tab_send_logs_label": "Lisa veatuvastuslogid", + "feedback_tab_thank_you": "Tänud, me oleme sinu tagasiside kätte saanud!", + "feedback_tab_title": "Tagasiside", + "opt_in_description": "<0><1>Sa võid selle valiku eelmaldamisega alati oma nõusoleku tagasi võtta. Kui sul parasjagu on kõne pooleli, siis seadistuste muudatus jõustub pärast kõne lõppu.", + "preferences_tab": { + "developer_mode_label": "Arendajate režiim", + "developer_mode_label_description": "Kasuta arendusrežiimi ja näita asjakohaseid seadistusi.", + "introduction": "Parema kasutuskogemuse nimel saad siin seadistada täiendavaid eelistusi.", + "reactions_play_sound_description": "Kui keegi lisab käimasolevale kõnele reaktsiooni, siis täienda seda heliefektiga.", + "reactions_play_sound_label": "Lisa reageerimistele heli", + "reactions_show_description": "Näita reageerimisi", + "reactions_show_label": "Kui keegi reageerib, siis näita seda animatsioonina", + "show_hand_raised_timer_description": "Kui osaleja annab käetõstmisega märku, siis kuva ka kestuse taimer", + "show_hand_raised_timer_label": "Näita käega märkuandmise kestust" + } + }, + "star_rating_input_label_one": "{{count}} tärn", + "star_rating_input_label_other": "{{count}} tärni", + "start_new_call": "Algata uus kõne", + "start_video_button_label": "Lülita videovoog sisse", + "stop_screenshare_button_label": "Ekraanivaade on jagamisel", + "stop_video_button_label": "Peata videovoog", + "submitting": "Saadan…", + "switch_camera": "Vaheta kaamerat", + "unauthenticated_view_body": "Sa pole veel registreerunud? <2>Loo kasutajakonto", + "unauthenticated_view_login_button": "Logi oma kontosse sisse", + "unauthenticated_view_ssla_caption": "Klõpsides „Jätka“ nõustud sa meie <2>Tarkvara ja teenuste litsentseerimise lepinguga (Software and Services License Agreement - SSLA)", + "unmute_microphone_button_label": "Lülita mikrofon sisse", + "version": "{{productName}}, versioon: {{version}}", + "video_tile": { + "always_show": "Näita alati", + "camera_starting": "Video on laadimisel...", + "collapse": "Näita vähem", + "expand": "Näita rohkem", + "mute_for_me": "Summuta minu jaoks", + "muted_for_me": "Minule summutatud", + "volume": "Helivaljus", + "waiting_for_media": "Ootame kuni meedia on olemas..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/fi-app-CuX1oDoW.json b/features/call/impl/src/main/assets/element-call/assets/fi-app-CuX1oDoW.json new file mode 100644 index 0000000000..ff6c8a9560 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/fi-app-CuX1oDoW.json @@ -0,0 +1,257 @@ +{ + "a11y": { + "user_menu": "Käyttäjävalikko" + }, + "action": { + "close": "Sulje", + "copy_link": "Kopioi linkki", + "edit": "Muokkaa", + "go": "Siirry", + "invite": "Kutsu", + "lower_hand": "Laske käsi", + "no": "Ei", + "pick_reaction": "Valitse reaktio", + "raise_hand": "Nosta käsi", + "register": "Rekisteröidy", + "remove": "Poista", + "show_less": "Näytä vähemmän", + "show_more": "Näytä lisää", + "sign_in": "Kirjaudu sisään", + "sign_out": "Kirjaudu ulos", + "submit": "Lähetä", + "upload_file": "Lähetä tiedosto" + }, + "analytics_notice": "Osallistumalla tähän betaan hyväksyt nimettömien tietojen keräämisen, joita käytämme tuotteen parantamiseen. Löydät lisätietoa siitä, mitä tietoja seuraamme meidän <2> Tietosuojakäytännöstä ja <6>Evästekäytännöstä .", + "call_ended_view": { + "create_account_button": "Luo tili", + "create_account_prompt": "<0>Miksi et viimeistelisi määrittämällä salasanaa tilisi säilyttämiseksi?<1>Voit säilyttää nimesi ja asettaa avatarin käytettäväksi tulevissa puheluissa", + "feedback_done": "<0>Kiitos palautteestasi!", + "feedback_prompt": "<0>Haluaisimme kuulla palautteesi, jotta voimme parantaa käyttökokemustasi.", + "headline": "{{displayName}}, puhelusi on päättynyt.", + "not_now_button": "Ei nyt, palaa aloitusnäyttöön", + "reconnect_button": "Yhdistä uudelleen", + "survey_prompt": "Miten se meni?" + }, + "call_name": "Puhelun nimi", + "common": { + "analytics": "Analytiikka", + "audio": "Ääni", + "avatar": "Avatar", + "back": "Takaisin", + "display_name": "Näyttönimi", + "encrypted": "Salattu", + "home": "Etusivu", + "loading": "Ladataan...", + "next": "Seuraava", + "options": "Vaihtoehdot", + "password": "Salasana", + "preferences": "Asetukset", + "profile": "Profiili", + "reaction": "Reaktio", + "reactions": "Reaktiot", + "reconnecting": "Yhdistetään uudelleen...", + "settings": "Asetukset", + "unencrypted": "Ei salattu", + "username": "Käyttäjänimi", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Näytä iPhone korvakaiutinvaihtoehto kaikilla alustoilla", + "crypto_version": "Kryptoversio: {{version}}", + "custom_livekit_url": { + "current_url": "Tällä hetkellä asetettu: ", + "from_config": "Tällä hetkellä ei ole asetettu päällekirjoitusta. Käytetään URL-osoitetta well-known tiedostosta tai konfiguraatiosta.", + "label": "Mukautettu Livekit-url", + "reset": "Palauta päällekirjoitus", + "save": "Tallenna", + "saving": "Tallennetaan..." + }, + "debug_tile_layout_label": "Laattojen asettelun vianmääritys", + "device_id": "Laitteen tunnus: {{id}}", + "duplicate_tiles_label": "Lisälaattakopioiden määrä osallistujaa kohti", + "environment_variables": "Ympäristömuuttujat", + "hostname": "Isäntänimi: {{hostname}}", + "livekit_server_info": "LiveKit-palvelimen tiedot", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrixRTCMode": { + "Comptibility": { + "description": "Yhteensopiva kotipalvelimien kanssa, jotka eivät tue tarttuvia tapahtumia (mutta kaikki muut EC-sovellukset ovat v0.17.0 tai uudempia)", + "label": "Yhteensopivuus: tilatapahtumat ja useat SFU:t" + }, + "Legacy": { + "description": "Yhteensopiva vanhempien EC-versioiden kanssa, jotka eivät tue useita SFU:ita", + "label": "Vanha: tilatapahtumat ja vanhimman jäsenen SFU" + }, + "Matrix_2_0": { + "description": "Yhteensopiva vain tarttuvia tapahtumia tukevien kotipalvelimien ja kaikkien EC-sovelluksien v0.17.0 tai uudempien kanssa", + "label": "Matrix 2.0: tarttuvat tapahtumat ja useat SFU:t" + }, + "title": "MatrixRTC-tila" + }, + "matrix_id": "Matrix tunnus: {{id}}", + "mute_all_audio": "Mykistä kaikki ääni (osallistujat, reaktiot, liittymisäänet)", + "show_connection_stats": "Näytä yhteystilastot", + "url_params": "URL-parametrit" + }, + "disconnected_banner": "Yhteys palvelimeen on katkennut.", + "error": { + "call_is_not_supported": "Puhelua ei tueta", + "call_not_found": "Puhelua ei löydy", + "call_not_found_description": "<0>Kyseinen linkki ei näytä kuuluvan mihinkään olemassa olevaan puheluun. Tarkista, että sinulla on oikea linkki, tai <2>luo uusi linkki.", + "connection_lost": "Yhteys katkesi", + "connection_lost_description": "Sinut katkaistiin puhelusta.", + "e2ee_unsupported": "Yhteensopimaton selain", + "e2ee_unsupported_description": "Verkkoselaimesi ei tue salattuja puheluita. Tuettuja selaimia ovat Chrome, Safari ja Firefox 117+.", + "failed_to_start_livekit": "Livekit-yhteyden muodostaminen epäonnistui.", + "generic": "Jokin meni pieleen", + "generic_description": "Vianmäärityslokien lähettäminen auttaa meitä jäljittämään ongelman.", + "insufficient_capacity": "Riittämätön kapasiteetti", + "insufficient_capacity_description": "Palvelin on saavuttanut maksimikapasiteettinsa, etkä voi liittyä puheluun tällä hetkellä. Yritä myöhemmin uudelleen tai ota yhteyttä palvelimen ylläpitäjään, jos ongelma jatkuu.", + "matrix_rtc_transport_missing": "Palvelinta ei ole määritetty toimimaan {{brand}} -sovelluksen kanssa. Ota yhteyttä palvelimen ylläpitäjään (Verkkotunnus: {{domain}}, Virhekoodi: {{ errorCode }}).", + "membership_manager": "Jäsenyydenhallinnan virhe", + "membership_manager_description": "Jäsenyyshallinta jouduttiin sulkemaan. Tämä johtui useista peräkkäisistä epäonnistuneista verkkopyynnöistä.", + "no_matrix_2_authorization_service": "Mediapalvelimesi (SFU) valtuutuspalvelu on vanhentunut.", + "open_elsewhere": "Avattu toisessa välilehdessä", + "open_elsewhere_description": "{{brand}} on avattu toisessa välilehdessä. Jos tämä ei kuulosta oikealta, yritä ladata sivu uudelleen.", + "room_creation_restricted": "Puhelun luominen epäonnistui", + "room_creation_restricted_description": "Puheluiden luominen saattaa olla rajoitettu vain valtuutetuille käyttäjille. Yritä myöhemmin uudelleen tai ota yhteyttä palvelimen ylläpitäjään, jos ongelma jatkuu.", + "unexpected_ec_error": "Tapahtui odottamaton virhe (<0>Virhekoodi: <1>{{ errorCode }}). Ota yhteyttä palvelimen ylläpitäjään." + }, + "group_call_loader": { + "banned_body": "Sinulle on annettu porttikielto huoneesta.", + "banned_heading": "Kielletty", + "call_ended_body": "Sinut on poistettu puhelusta.", + "call_ended_heading": "Puhelu päättyi", + "knock_reject_body": "Liittymispyyntösi hylättiin.", + "knock_reject_heading": "Pääsy kielletty", + "reason": "Syy: {{reason}}" + }, + "handset": { + "overlay_back_button": "Takaisin kaiutintilaan", + "overlay_description": "Toimii vain sovellusta käytettäessä", + "overlay_title": "Luuritila" + }, + "hangup_button_label": "Lopeta puhelu", + "header_label": "Element Call Etusivu", + "header_participants_label": "Osallistujat", + "invite_modal": { + "link_copied_toast": "Linkki kopioitu leikepöydälle", + "title": "Kutsu tähän puheluun" + }, + "join_existing_call_modal": { + "join_button": "Kyllä, liity puheluun", + "text": "Tämä puhelu on jo olemassa, haluatko liittyä siihen?", + "title": "Liity olemassa olevaan puheluun?" + }, + "layout_grid_label": "Ruudukko", + "layout_spotlight_label": "Valokeila", + "lobby": { + "ask_to_join": "Pyydä liittymistä puheluun", + "join_as_guest": "Liity vieraana", + "join_button": "Liity puheluun", + "leave_button": "Takaisin viimeisimpiin puheluihin", + "waiting_for_invite": "Pyyntö lähetetty! Odotetaan lupaa liittyä…" + }, + "log_in": "Kirjaudu sisään", + "logging_in": "Kirjaudutaan sisään…", + "login_auth_links": "<0>Luo tili tai <2>Käytä vieraana", + "login_auth_links_prompt": "Etkö ole vielä rekisteröitynyt?", + "login_subheading": "Jatkaaksesi Elementiin", + "login_title": "Kirjaudu sisään", + "microphone_off": "Mikrofoni pois päältä", + "microphone_on": "Mikrofoni päällä", + "mute_microphone_button_label": "Mykistä mikrofoni", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "QR-koodi", + "rageshake_button_error_caption": "Yritä uudelleen lokien lähettämistä", + "rageshake_request_modal": { + "body": "Toisella käyttäjällä tässä puhelussa on ongelma. Jotta voimme diagnosoida nämä ongelmat paremmin, haluaisimme kerätä virheenkorjauslokin.", + "title": "Virheenkorjauslokipyyntö" + }, + "rageshake_send_logs": "Lähetä virheenkorjauslokit", + "rageshake_sending": "Lähetetään…", + "rageshake_sending_logs": "Lähetetään virheenkorjauslokeja…", + "rageshake_sent": "Kiitos!", + "recaptcha_dismissed": "Recaptcha hylätty", + "recaptcha_not_loaded": "Recaptcha ei ole ladattu", + "recaptcha_ssla_caption": "Tämä sivusto on suojattu ReCAPTCHA:lla, ja siihen sovelletaan Googlen <2>Tietosuojakäytäntöä ja <6>Palveluehtoja.<9>Klikkaamalla \"Rekisteröidy\" hyväksyt <12>ohjelmisto- ja palvelulisenssisopimuksen (SSLA)", + "register": { + "passwords_must_match": "Salasanojen on täsmättävä", + "registering": "Rekisteröidään…" + }, + "register_auth_links": "<0>Onko sinulla jo tili?<1><0>Kirjaudu sisään tai <2>Käytä vieraana", + "register_confirm_password_label": "Vahvista salasana", + "register_heading": "Luo tilisi", + "return_home_button": "Palaa aloitusnäyttöön", + "room_auth_view_continue_button": "Jatka", + "room_auth_view_ssla_caption": "Klikkaamalla \"Liity puheluun nyt\" hyväksyt <2>ohjelmisto- ja palvelulisenssisopimuksen (SSLA)", + "screenshare_button_label": "Jaa näyttö", + "settings": { + "audio_tab": { + "effect_volume_description": "Säädä äänenvoimakkuutta, jolla reaktioiden ja käden nostojen ääniefektit toistetaan.", + "effect_volume_label": "Ääniefektien äänenvoimakkuus" + }, + "background_blur_header": "Tausta", + "background_blur_label": "Sumenna videon tausta", + "blur_not_supported_by_browser": "(Tämä laite ei tue taustan sumennusta.)", + "developer_tab_title": "Kehittäjä", + "devices": { + "camera": "Kamera", + "camera_numbered": "Kamera {{n}}", + "change_device_button": "Vaihda äänilaite", + "default": "Oletus", + "default_named": "Oletus <2>({{name}})", + "handset": "Luuri", + "loudspeaker": "Kaiutin", + "microphone": "Mikrofoni", + "microphone_numbered": "Mikrofoni {{n}}", + "speaker": "Kaiutin", + "speaker_numbered": "Kaiutin {{n}}" + }, + "feedback_tab_body": "Jos sinulla on ongelmia tai haluat vain antaa palautetta, lähetä meille lyhyt kuvaus alla.", + "feedback_tab_description_label": "Palautteesi", + "feedback_tab_h4": "Lähetä palautetta", + "feedback_tab_send_logs_label": "Sisällytä virheenkorjauslokit", + "feedback_tab_thank_you": "Kiitos, saimme palautteesi!", + "feedback_tab_title": "Palaute", + "opt_in_description": "<0><1>Voit peruuttaa suostumuksesi poistamalla tämän ruudun valinnan. Jos puhelu on käynnissä, tämä asetus tulee voimaan puhelun lopussa.", + "preferences_tab": { + "developer_mode_label": "Kehittäjätila", + "developer_mode_label_description": "Ota kehittäjätila käyttöön ja näytä kehittäjäasetukset-välilehti.", + "introduction": "Täällä voit määrittää lisävaihtoehtoja parempaa käyttökokemusta varten.", + "reactions_play_sound_description": "Toista äänitefekti, kun joku lähettää reaktion puheluun.", + "reactions_play_sound_label": "Toista reaktioäänet", + "reactions_show_description": "Näytä animaatio, kun joku lähettää reaktion.", + "reactions_show_label": "Näytä reaktiot", + "show_hand_raised_timer_description": "Näytä ajastin, kun osallistuja nostaa kätensä", + "show_hand_raised_timer_label": "Näytä kädennoston kesto" + } + }, + "star_rating_input_label_one": "{{count}} tähti", + "star_rating_input_label_other": "{{count}} tähteä", + "start_new_call": "Aloita uusi puhelu", + "start_video_button_label": "Aloita video", + "stop_screenshare_button_label": "Jaetaan näyttöä", + "stop_video_button_label": "Lopeta video", + "submitting": "Lähetetään…", + "switch_camera": "Vaihda kameraa", + "unauthenticated_view_body": "Etkö ole vielä rekisteröitynyt? <2>Luo tili", + "unauthenticated_view_login_button": "Kirjaudu tilillesi", + "unauthenticated_view_ssla_caption": "Klikkaamalla \"Siirry\" hyväksyt <2>ohjelmisto- ja palvelulisenssisopimuksen (SSLA)", + "unmute_microphone_button_label": "Poista mikrofonin mykistys", + "version": "{{productName}} versio: {{version}}", + "video_tile": { + "always_show": "Näytä aina", + "call_ended": "Puhelu päättyi", + "calling": "Soitetaan…", + "camera_starting": "Videota ladataan...", + "collapse": "Supista", + "expand": "Laajenna", + "mute_for_me": "Mykistä minulle", + "muted_for_me": "Mykistetty minulle", + "screen_share_volume": "Näytönjaon äänenvoimakkuus", + "volume": "Äänenvoimakkuus", + "waiting_for_media": "Odotetaan mediaa..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/fr-app-C6NsW7ET.json b/features/call/impl/src/main/assets/element-call/assets/fr-app-C6NsW7ET.json new file mode 100644 index 0000000000..647214b071 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/fr-app-C6NsW7ET.json @@ -0,0 +1,191 @@ +{ + "a11y": { + "user_menu": "Menu utilisateur" + }, + "action": { + "close": "Fermer", + "copy_link": "Copier le lien", + "edit": "Modifier", + "go": "Commencer", + "invite": "Inviter", + "lower_hand": "Baisser la main", + "no": "Non", + "pick_reaction": "Choisir une réaction", + "raise_hand": "Lever la main", + "register": "S’enregistrer", + "remove": "Supprimer", + "show_less": "Afficher moins", + "show_more": "Afficher plus", + "sign_in": "Connexion", + "sign_out": "Déconnexion", + "submit": "Envoyer", + "upload_file": "Téléverser un fichier" + }, + "analytics_notice": "En participant à cette beta, vous consentez à la collecte de données anonymes, qui seront utilisées pour améliorer le produit. Vous trouverez plus d’informations sur les données collectées dans notre <2>Politique de vie privée et notre <5>Politique de cookies.", + "call_ended_view": { + "create_account_button": "Créer un compte", + "create_account_prompt": "<0>Pourquoi ne pas créer un mot de passe pour conserver votre compte ?<1>Vous pourrez garder votre nom et définir un avatar pour vos futurs appels", + "feedback_done": "<0>Merci pour votre commentaire !", + "feedback_prompt": "<0>Nous aimerions avoir vos commentaires afin que nous puissions améliorer votre expérience.", + "headline": "{{displayName}}, votre appel est terminé.", + "not_now_button": "Pas maintenant, retourner à l’accueil", + "reconnect_button": "Se reconnecter", + "survey_prompt": "Comment cela s’est-il passé ?" + }, + "call_name": "Nom de l’appel", + "common": { + "analytics": "Statistiques d'utilisation", + "audio": "Audio", + "avatar": "Avatar", + "back": "Retour", + "display_name": "Nom d’affichage", + "encrypted": "Chiffré", + "home": "Accueil", + "loading": "Chargement…", + "next": "Suivant", + "options": "Options", + "password": "Mot de passe", + "preferences": "Préférences", + "profile": "Profil", + "reaction": "Réaction", + "reactions": "Réactions", + "reconnecting": "Reconnexion", + "settings": "Paramètres", + "unencrypted": "Non chiffré", + "username": "Nom d’utilisateur", + "video": "Vidéo" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Afficher l'option écouteur iPhone sur toutes les plateformes", + "crypto_version": "Version crypto: {{version}}", + "debug_tile_layout_label": "Disposition des tuiles de débogage", + "device_id": "Id. de l'appareil", + "duplicate_tiles_label": "Nombre de copies de tuiles supplémentaires par participant", + "environment_variables": "Variables d'environnement", + "hostname": "Nom d'hôte: {{hostname}}", + "livekit_server_info": "Info du serveur LiveKit", + "livekit_sfu": "LiveKit SFU: {{url}}", + "matrix_id": "ID Matrix: {{id}}", + "mute_all_audio": "Couper tous les sons (participants, réactions, sons de participation)", + "show_connection_stats": "Afficher les statistiques de connexion", + "url_params": "Paramètres d'URL" + }, + "disconnected_banner": "La connexion avec le serveur a été perdue.", + "error": { + "call_is_not_supported": "L'appel n'est pas pris en charge", + "call_not_found": "Appel non trouvé", + "call_not_found_description": "<0>Ce ne correspond à aucun appel existant. Vérifier que vous avez le bon lien, ou <1>créer un nouveau.", + "connection_lost": "Connexion perdue", + "connection_lost_description": "Vous avez été déconnecté de l’appel", + "e2ee_unsupported": "Moteur de recherche incompatible", + "generic": "Un problème est survenu", + "insufficient_capacity": "Capacité insuffisante", + "insufficient_capacity_description": "Le serveur a atteint sa capacité maximale et vous ne pouvez pas rejoindre l'appel pour le moment. Veuillez réessayer plus tard ou contacter l'administrateur du serveur si le problème persiste.", + "unexpected_ec_error": "Une erreur inattendue s'est produite (<0>Code d'erreur : <1>{{ errorCode }}). Veuillez contacter l'administrateur de votre serveur." + }, + "group_call_loader": { + "banned_body": "Vous avez été banni du salon.", + "banned_heading": "Banni", + "call_ended_body": "Vous avez été retiré de l’appel.", + "call_ended_heading": "Appel terminé", + "knock_reject_body": "Les membres du salon ont refusé votre demande de participation.", + "knock_reject_heading": "Non autorisé à rejoindre", + "reason": "Motif" + }, + "hangup_button_label": "Terminer l’appel", + "header_label": "Accueil Element Call", + "header_participants_label": "Participants", + "invite_modal": { + "link_copied_toast": "Lien copié dans le presse-papier", + "title": "Inviter dans cet appel" + }, + "join_existing_call_modal": { + "join_button": "Oui, rejoindre l’appel", + "text": "Cet appel existe déjà, voulez-vous le rejoindre ?", + "title": "Rejoindre un appel existant ?" + }, + "layout_grid_label": "Grille", + "layout_spotlight_label": "Premier plan", + "lobby": { + "ask_to_join": "Demandez à rejoindre l'appel", + "join_as_guest": "Rejoindre en tant qu'invité", + "join_button": "Rejoindre l’appel", + "leave_button": "Revenir à l’historique des appels", + "waiting_for_invite": "Demande envoyée" + }, + "log_in": "Se connecter", + "logging_in": "Connexion…", + "login_auth_links": "<0>Créer un compte Or <2>Accès invité", + "login_auth_links_prompt": "Pas encore inscrit?", + "login_subheading": "Pour continuer vers Element", + "login_title": "Connexion", + "microphone_off": "Microphone éteint", + "microphone_on": "Microphone allumé", + "mute_microphone_button_label": "Couper le microphone", + "participant_count_one": "{{count, number}}", + "participant_count_other": "{{count, number}}", + "qr_code": "Code QR", + "rageshake_button_error_caption": "Réessayer d’envoyer les journaux", + "rageshake_request_modal": { + "body": "Un autre utilisateur dans cet appel a un problème. Pour nous permettre de résoudre le problème, nous aimerions récupérer un journal de débogage.", + "title": "Demande d’un journal de débogage" + }, + "rageshake_send_logs": "Envoyer les journaux de débogage", + "rageshake_sending": "Envoi…", + "rageshake_sending_logs": "Envoi des journaux de débogage…", + "rageshake_sent": "Merci !", + "recaptcha_dismissed": "Recaptcha refusé", + "recaptcha_not_loaded": "Recaptcha non chargé", + "register": { + "passwords_must_match": "Les mots de passe doivent correspondre", + "registering": "Enregistrement…" + }, + "register_auth_links": "<0>Vous avez déjà un compte ?<1><0>Se connecter Ou <2>Accès invité", + "register_confirm_password_label": "Confirmer le mot de passe", + "register_heading": "Créer votre compte", + "return_home_button": "Retour à l’accueil", + "room_auth_view_continue_button": "Continuer", + "screenshare_button_label": "Partage d’écran", + "settings": { + "audio_tab": { + "effect_volume_description": "Régler le volume des effets de réactions et de mains levées.", + "effect_volume_label": "Volume des effets sonores" + }, + "background_blur_label": "Flouter l'arrière-plan de la vidéo", + "blur_not_supported_by_browser": "(Le flou d'arrière-plan n'est pas pris en charge par cet appareil.)", + "developer_tab_title": "Développeur", + "devices": { + "speaker_numbered": "Haut-parleur {{n}}" + }, + "feedback_tab_body": "Si vous rencontrez des problèmes, ou vous voulez simplement faire un commentaire, faites-en une courte description ci-dessous.", + "feedback_tab_description_label": "Votre commentaire", + "feedback_tab_h4": "Envoyer un commentaire", + "feedback_tab_send_logs_label": "Inclure les journaux de débogage", + "feedback_tab_thank_you": "Merci, nous avons reçu vos commentaires !", + "feedback_tab_title": "Commentaires", + "opt_in_description": "<0><1>Vous pouvez retirer votre consentement en décochant cette case. Si vous êtes actuellement en communication, ce paramètre prendra effet à la fin de l’appel.", + "preferences_tab": { + "reactions_play_sound_label": "Jouer le son des réactions", + "reactions_show_label": "Afficher les réactions", + "show_hand_raised_timer_label": "Afficher la durée de la main levée" + } + }, + "star_rating_input_label_one": "{{count}} favori", + "star_rating_input_label_other": "{{count}} favoris", + "start_new_call": "Démarrer un nouvel appel", + "start_video_button_label": "Démarrer la vidéo", + "stop_screenshare_button_label": "L’écran est partagé", + "stop_video_button_label": "Arrêter la vidéo", + "submitting": "Envoi…", + "unauthenticated_view_body": "Pas encore de compte ? <2>En créer un", + "unauthenticated_view_login_button": "Connectez vous à votre compte", + "unmute_microphone_button_label": "Allumer le microphone", + "version": "Version : {{version}}", + "video_tile": { + "always_show": "Toujours afficher", + "collapse": "Réduire", + "expand": "Développer", + "mute_for_me": "Muet pour moi", + "volume": "Volume" + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/generic-BBbS3Wph.ogg b/features/call/impl/src/main/assets/element-call/assets/generic-BBbS3Wph.ogg new file mode 100644 index 0000000000..6c9470fa0b Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/generic-BBbS3Wph.ogg differ diff --git a/features/call/impl/src/main/assets/element-call/assets/generic-BFeSb6fL.mp3 b/features/call/impl/src/main/assets/element-call/assets/generic-BFeSb6fL.mp3 new file mode 100644 index 0000000000..71d80c709e Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/generic-BFeSb6fL.mp3 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/id-app-BNhxp6fD.json b/features/call/impl/src/main/assets/element-call/assets/id-app-BNhxp6fD.json new file mode 100644 index 0000000000..e9ba9491b5 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/id-app-BNhxp6fD.json @@ -0,0 +1,224 @@ +{ + "a11y": { + "user_menu": "Menu pengguna" + }, + "action": { + "close": "Tutup", + "copy_link": "Salin tautan", + "edit": "Sunting", + "go": "Bergabung", + "invite": "Undang", + "lower_hand": "Turunkan tangan", + "no": "Tidak", + "pick_reaction": "Pilih reaksi", + "raise_hand": "Angkat tangan", + "register": "Daftar", + "remove": "Hapus", + "show_less": "Tampilkan lebih sedikit", + "show_more": "Tampilkan lebih banyak", + "sign_in": "Masuk", + "sign_out": "Keluar", + "submit": "Kirim", + "upload_file": "Unggah berkas" + }, + "analytics_notice": "Dengan bergabung dalam beta ini, Anda mengizinkan kami untuk mengumpulkan data anonim, yang kami gunakan untuk meningkatkan produk ini. Anda dapat mempelajari lebih lanjut tentang data apa yang kami lacak dalam <2>Kebijakan Privasi dan <6>Kebijakan Kuki kami.", + "call_ended_view": { + "create_account_button": "Buat akun", + "create_account_prompt": "<0>Kenapa tidak selesaikan dengan mengatur sebuah kata sandi untuk menjaga akun Anda?<1>Anda akan dapat tetap menggunakan nama Anda dan atur sebuah avatar untuk digunakan dalam panggilan di masa mendatang", + "feedback_done": "<0>Terima kasih atas masukan Anda!", + "feedback_prompt": "<0>Kami ingin mendengar masukan Anda supaya kami bisa meningkatkan pengalaman Anda.", + "headline": "{{displayName}}, panggilan Anda telah berakhir.", + "not_now_button": "Tidak sekarang, kembali ke layar beranda", + "reconnect_button": "Hubungkan ulang", + "survey_prompt": "Bagaimana rasanya?" + }, + "call_name": "Nama panggilan", + "common": { + "analytics": "Analitik", + "audio": "Audio", + "avatar": "Avatar", + "back": "Kembali", + "display_name": "Nama tampilan", + "encrypted": "Terenkripsi", + "home": "Beranda", + "loading": "Memuat…", + "next": "Berikutnya", + "options": "Opsi", + "password": "Kata sandi", + "preferences": "Preferensi", + "profile": "Profil", + "reaction": "Reaksi", + "reactions": "Reaksi", + "reconnecting": "Menghubungkan kembali…", + "settings": "Pengaturan", + "unencrypted": "Tidak terenkripsi", + "username": "Nama pengguna", + "video": "Video" + }, + "developer_mode": { + "always_show_iphone_earpiece": "Tampilkan opsi lubang suara iPhone di semua platform", + "crypto_version": "Versi kripto: {{version}}", + "debug_tile_layout_label": "Awakutu tata letak ubin", + "device_id": "ID perangkat: {{id}}", + "duplicate_tiles_label": "Jumlah salinan ubin tambahan per peserta", + "environment_variables": "Variabel lingkungan", + "hostname": "Nama hos: {{hostname}}", + "livekit_server_info": "Info Server LiveKit", + "livekit_sfu": "SFU LiveKit: {{url}}", + "matrix_id": "ID Matrix: {{id}}", + "mute_all_audio": "Bisukan semua audio (suara peserta, reaksi, bergabung)", + "show_connection_stats": "Tampilkan statistik koneksi", + "url_params": "Parameter URL" + }, + "disconnected_banner": "Koneksi ke server telah hilang.", + "error": { + "call_is_not_supported": "Panggilan tidak didukung", + "call_not_found": "Panggilan tidak ditemukan", + "call_not_found_description": "<0>Tautan itu tampaknya bukan milik panggilan yang ada. Periksa apakah Anda memiliki tautan yang tepat, atau <2> buat yang baru. ", + "connection_lost": "Koneksi terputus", + "connection_lost_description": "Anda terputus dari panggilan.", + "e2ee_unsupported": "Peramban tidak kompatibel", + "e2ee_unsupported_description": "Peramban web Anda tidak mendukung panggilan terenkripsi. Peramban yang didukung meliputi Chrome, Safari, dan Firefox 117+.", + "generic": "Ada yang salah", + "generic_description": "Mengirimkan log awakutu akan membantu kami melacak masalah.", + "insufficient_capacity": "Kapasitas tidak mencukupi", + "insufficient_capacity_description": "Server telah mencapai kapasitas maksimum dan Anda tidak dapat bergabung dalam panggilan saat ini. Coba lagi nanti, atau hubungi admin server Anda jika masalah masih berlanjut.", + "open_elsewhere": "Dibuka di tab lain", + "open_elsewhere_description": "{{brand}} telah dibuka di tab lain. Jika sepertinya tidak benar, coba muat ulang halaman.", + "room_creation_restricted": "Gagal membuat panggilan", + "room_creation_restricted_description": "Pembuatan panggilan mungkin hanya terbatas untuk pengguna yang diizinkan. Coba lagi nanti, atau hubungi admin server Anda jika masalah berlanjut.", + "unexpected_ec_error": "Terjadi kesalahan tak terduga (<0> Kode Kesalahan:<1>{{ errorCode }}). Silakan hubungi admin server Anda." + }, + "group_call_loader": { + "banned_body": "Anda telah dilarang dari ruangan.", + "banned_heading": "Dilarang", + "call_ended_body": "Anda telah dikeluarkan dari panggilan.", + "call_ended_heading": "Panggilan berakhir", + "knock_reject_body": "Permintaan Anda untuk bergabung ditolak.", + "knock_reject_heading": "Akses ditolak", + "reason": "Alasan: {{reason}}" + }, + "handset": { + "overlay_back_button": "Kembali ke Mode Pembicara", + "overlay_description": "Hanya berfungsi saat menggunakan aplikasi", + "overlay_title": "Mode Ponsel" + }, + "hangup_button_label": "Akhiri panggilan", + "header_label": "Beranda Element Call", + "header_participants_label": "Peserta", + "invite_modal": { + "link_copied_toast": "Tautan disalin ke papan klip", + "title": "Undang ke panggilan ini" + }, + "join_existing_call_modal": { + "join_button": "Ya, bergabung ke panggilan", + "text": "Panggilan ini sudah ada, apakah Anda ingin bergabung?", + "title": "Bergabung ke panggilan yang sudah ada?" + }, + "layout_grid_label": "Kisi", + "layout_spotlight_label": "Sorotan", + "lobby": { + "ask_to_join": "Permintaan untuk bergabung dalam panggilan", + "join_as_guest": "Bergabung sebagai tamu", + "join_button": "Bergabung ke panggilan", + "leave_button": "Kembali ke terkini", + "waiting_for_invite": "Permintaan terkirim! Menunggu izin untuk bergabung…" + }, + "log_in": "Masuk", + "logging_in": "Memasuki…", + "login_auth_links": "<0>Buat akun Atau <2>Akses sebagai tamu", + "login_auth_links_prompt": "Belum terdaftar?", + "login_subheading": "Untuk melanjutkan ke Element", + "login_title": "Masuk", + "microphone_off": "Mikrofon dimatikan", + "microphone_on": "Mikrofon dinyalakan", + "mute_microphone_button_label": "Matikan mikrofon", + "participant_count_other": "{{count, number}}", + "qr_code": "Kode QR", + "rageshake_button_error_caption": "Kirim ulang catatan", + "rageshake_request_modal": { + "body": "Pengguna yang lain di panggilan ini sedang mengalami masalah. Supaya dapat mendiagnosa masalah ini, kami ingin mengumpulkan sebuah catatan pengawakutuan.", + "title": "Permintaan catatan pengawakutuan" + }, + "rageshake_send_logs": "Kirim catatan pengawakutuan", + "rageshake_sending": "Mengirimkan…", + "rageshake_sending_logs": "Mengirimkan catatan pengawakutuan…", + "rageshake_sent": "Terima kasih!", + "recaptcha_dismissed": "Recaptcha ditutup", + "recaptcha_not_loaded": "Recaptcha tidak dimuat", + "recaptcha_ssla_caption": "Situs ini dilindungi oleh ReCAPTCHA dan <2>Kebijakan Privasi dan <6>Ketentuan Layanan Google berlaku.<9>Dengan mengeklik \"Daftar\", Anda menyetujui <12>Perjanjian Lisensi Perangkat Lunak dan Layanan (SSLA) kami", + "register": { + "passwords_must_match": "Kata sandi harus cocok", + "registering": "Mendaftarkan…" + }, + "register_auth_links": "<0>Sudah punya akun?<1><0>Masuk Atau <2>Akses sebagai tamu", + "register_confirm_password_label": "Konfirmasi kata sandi", + "register_heading": "Buat akun Anda", + "return_home_button": "Kembali ke layar beranda", + "room_auth_view_continue_button": "Lanjutkan", + "room_auth_view_ssla_caption": "Dengan mengeklik “Gabung panggilan sekarang”, Anda menyetujui <2>Perjanjian Lisensi Perangkat Lunak dan Layanan (SSLA) kami", + "screenshare_button_label": "Bagikan layar", + "settings": { + "audio_tab": { + "effect_volume_description": "Sesuaikan volume saat reaksi dan efek tangan terangkat diputar.", + "effect_volume_label": "Volume efek suara" + }, + "background_blur_header": "Latar belakang", + "background_blur_label": "Buramkan latar belakang video", + "blur_not_supported_by_browser": "(Pemburaman latar belakang tidak didukung oleh perangkat ini.)", + "developer_tab_title": "Pengembang", + "devices": { + "camera": "Kamera", + "camera_numbered": "Kamera {{n}}", + "change_device_button": "Ubah perangkat audio", + "default": "Bawaan", + "default_named": "Bawaan <2>({{name}})", + "handset": "Ponsel", + "loudspeaker": "Pengeras suara", + "microphone": "Mikrofon", + "microphone_numbered": "Mikrofon {{n}}", + "speaker": "Speaker", + "speaker_numbered": "Speaker {{n}}" + }, + "feedback_tab_body": "Jika Anda mengalami masalah atau hanya ingin memberikan masukan, silakan kirimkan kami deskripsi pendek di bawah.", + "feedback_tab_description_label": "Masukan Anda", + "feedback_tab_h4": "Kirim masukan", + "feedback_tab_send_logs_label": "Termasuk catatan pengawakutuan", + "feedback_tab_thank_you": "Terima kasih, kami telah menerima masukan Anda!", + "feedback_tab_title": "Masukan", + "opt_in_description": "<0><1>Anda dapat mengurungkan kembali izin dengan mencentang kotak ini. Jika Anda saat ini dalam panggilan, pengaturan ini akan diterapkan di akhir panggilan.", + "preferences_tab": { + "developer_mode_label": "Mode pengembang", + "developer_mode_label_description": "Aktifkan mode pengembang dan tampilkan tab pengaturan pengembang.", + "introduction": "Di sini Anda dapat mengonfigurasi opsi tambahan untuk pengalaman yang lebih baik.", + "reactions_play_sound_description": "Mainkan efek suara ketika seseorang mengirim reaksi ke panggilan.", + "reactions_play_sound_label": "Putar suara reaksi", + "reactions_show_description": "Tampilkan animasi ketika ada yang mengirimkan reaksi.", + "reactions_show_label": "Tampilkan reaksi", + "show_hand_raised_timer_description": "Tampilkan pengatur waktu saat peserta mengangkat tangannya", + "show_hand_raised_timer_label": "Tampilkan durasi angkat tangan" + } + }, + "star_rating_input_label_other": "{{count}} bintang", + "start_new_call": "Mulai panggilan baru", + "start_video_button_label": "Nyalakan video", + "stop_screenshare_button_label": "Berbagi layar", + "stop_video_button_label": "Matikan video", + "submitting": "Mengirim…", + "switch_camera": "Ganti kamera", + "unauthenticated_view_body": "Belum terdaftar? <2>Buat sebuah akun", + "unauthenticated_view_login_button": "Masuk ke akun Anda", + "unauthenticated_view_ssla_caption": "Dengan mengeklik \"Go\", Anda menyetujui <2>Perjanjian Lisensi Perangkat Lunak dan Layanan (SSLA) kami", + "unmute_microphone_button_label": "Nyalakan mikrofon", + "version": "Versi {{productName}}: {{version}}", + "video_tile": { + "always_show": "Selalu tampilkan", + "camera_starting": "Memuat video...", + "collapse": "Tutup", + "expand": "Buka", + "mute_for_me": "Bisukan untuk saya", + "muted_for_me": "Dibisukan untuk saya", + "volume": "Volume", + "waiting_for_media": "Menunggu media..." + } +} diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 new file mode 100644 index 0000000000..a5ef8233e0 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-DTZQ6lD6.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-HYADljCo.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-HYADljCo.woff new file mode 100644 index 0000000000..a9265cdc2c Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-400-normal-HYADljCo.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 new file mode 100644 index 0000000000..0f59953923 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-ByjKuJjN.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff new file mode 100644 index 0000000000..dce63b9888 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-700-normal-DzgUY3Rl.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 new file mode 100644 index 0000000000..5e8826e176 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-BaHVOdFB.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff new file mode 100644 index 0000000000..80ea0b2a83 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-400-normal-yvPjCxxx.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 new file mode 100644 index 0000000000..d6dc47d041 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff new file mode 100644 index 0000000000..1f244bc42a Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-latin-ext-700-normal-Dlt-daqV.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff new file mode 100644 index 0000000000..088f45b564 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-ByiM2lek.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 new file mode 100644 index 0000000000..e21871137a Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-400-normal-DfC_iMic.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff new file mode 100644 index 0000000000..c63d60ca4d Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DLCFFAUf.woff differ diff --git a/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 new file mode 100644 index 0000000000..152104ba33 Binary files /dev/null and b/features/call/impl/src/main/assets/element-call/assets/inconsolata-vietnamese-700-normal-DuasYmn8.woff2 differ diff --git a/features/call/impl/src/main/assets/element-call/assets/index-CHo0PPro.css b/features/call/impl/src/main/assets/element-call/assets/index-CHo0PPro.css new file mode 100644 index 0000000000..2bc361e61e --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/index-CHo0PPro.css @@ -0,0 +1 @@ +@import "https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@400;700&display=swap";@layer normalize{html{-webkit-text-size-adjust:100%;line-height:1.15}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner{border-style:none;padding:0}[type=button]::-moz-focus-inner{border-style:none;padding:0}[type=reset]::-moz-focus-inner{border-style:none;padding:0}[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring{outline:1px dotted buttontext}[type=button]:-moz-focusring{outline:1px dotted buttontext}[type=reset]:-moz-focusring{outline:1px dotted buttontext}[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button{height:auto}[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template,[hidden]{display:none}}@layer compound-legacy{h1,h2,h3,h4,h5,h6,p,a{margin-top:0}h1{font-size:32px;font-weight:600;font-size:var(--font-size-headline)}h2{font-size:24px;font-weight:600;font-size:var(--font-size-title)}h3{font-size:18px;font-weight:600;font-size:var(--font-size-subtitle)}h4{font-size:15px;font-weight:600;font-size:var(--font-size-body)}h1,h2,h3{line-height:1.2}p{font-size:15px;font-size:var(--font-size-body);line-height:24px;line-height:var(--font-size-title)}hr{border:none;border-top:1px solid var(--cpd-color-border-interactive-secondary);width:calc(100% - 24px);color:var(--cpd-color-border-interactive-secondary);text-align:center;height:5px;font-size:15px;font-weight:600;font-size:var(--font-size-body);margin:0 12px;line-height:24px;overflow:visible}summary{font-size:15px;font-size:var(--font-size-body)}details>:not(summary){margin-left:15px;margin-left:var(--font-size-body)}details[open]>summary{margin-bottom:15px;margin-bottom:var(--font-size-body)}}@layer compound{@layer cpd-semantic,custom,cpd-base;@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue),local(HelveticaNeue);font-style:normal;font-weight:400;font-display:swap;ascent-override:91.2883%;descent-override:22.7301%;line-gap-override:0%;size-adjust:106.12%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI),local(SegoeUI);font-style:normal;font-weight:400;font-display:swap;ascent-override:89.9412%;descent-override:22.3946%;size-adjust:107.709%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Regular),local(Roboto-Regular);font-style:normal;font-weight:400;font-display:swap;ascent-override:90.2384%;descent-override:22.4686%;size-adjust:107.355%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Regular),local(Ubuntu-Regular);font-style:normal;font-weight:400;font-display:swap;ascent-override:92.3027%;descent-override:22.9826%;line-gap-override:0%;size-adjust:104.954%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans Regular),local(FiraSans-Regular);font-style:normal;font-weight:400;font-display:swap;ascent-override:92.9112%;descent-override:23.1342%;size-adjust:104.266%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans Regular),local(NotoSans-Regular);font-style:normal;font-weight:400;font-display:swap;ascent-override:96.1571%;descent-override:23.9423%;size-adjust:100.747%}@font-face{font-family:Inter Fallback\: Arial;src:local(Arial),local(ArialMT);font-style:normal;font-weight:400;font-display:swap;ascent-override:90.4365%;descent-override:22.518%;line-gap-override:0%;size-adjust:107.119%}@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue Italic),local(HelveticaNeue-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:90.3285%;descent-override:22.4911%;line-gap-override:0%;size-adjust:107.248%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI Italic),local(SegoeUI-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:87.4238%;descent-override:21.7678%;size-adjust:110.811%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Italic),local(Roboto-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:87.2269%;descent-override:21.7188%;size-adjust:111.061%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Italic),local(Ubuntu-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:88.7154%;descent-override:22.0894%;line-gap-override:0%;size-adjust:109.197%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans Italic),local(FiraSans-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:91.3366%;descent-override:22.7421%;size-adjust:106.064%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans Italic),local(NotoSans-Italic);font-style:italic;font-weight:400;font-display:swap;ascent-override:90.1268%;descent-override:22.4409%;size-adjust:107.487%}@font-face{font-family:Inter Fallback\: Arial;src:local(Arial Italic),local(Arial-ItalicMT);font-style:italic;font-weight:400;font-display:swap;ascent-override:89.885%;descent-override:22.3806%;line-gap-override:0%;size-adjust:107.777%}@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue Medium),local(HelveticaNeue-Medium);font-style:normal;font-weight:500;font-display:swap;ascent-override:93.3765%;descent-override:23.25%;line-gap-override:0%;size-adjust:103.747%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI Semibold),local(SegoeUI-Semibold);font-style:normal;font-weight:500;font-display:swap;ascent-override:91.8744%;descent-override:22.876%;size-adjust:105.443%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Medium),local(Roboto-Medium);font-style:normal;font-weight:500;font-display:swap;ascent-override:90.1094%;descent-override:22.4365%;size-adjust:107.508%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Medium),local(Ubuntu-Medium);font-style:normal;font-weight:500;font-display:swap;ascent-override:93.5773%;descent-override:23.3%;line-gap-override:0%;size-adjust:103.524%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans Medium),local(FiraSans-Medium);font-style:normal;font-weight:500;font-display:swap;ascent-override:92.1717%;descent-override:22.95%;size-adjust:105.103%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans Medium),local(NotoSans-Medium);font-style:normal;font-weight:500;font-display:swap;ascent-override:96.7903%;descent-override:24.1%;size-adjust:100.088%}@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue Medium Italic),local(HelveticaNeue-MediumItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:92.8129%;descent-override:23.1097%;line-gap-override:0%;size-adjust:104.377%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI Semibold Italic),local(SegoeUI-SemiboldItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:90.3452%;descent-override:22.4952%;line-gap-override:0%;size-adjust:107.228%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Medium Italic),local(Roboto-MediumItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:87.0316%;descent-override:21.6702%;size-adjust:111.31%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Medium Italic),local(Ubuntu-MediumItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:90.6173%;descent-override:22.563%;line-gap-override:0%;size-adjust:106.906%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans Medium Italic),local(FiraSans-MediumItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:90.2181%;descent-override:22.4636%;size-adjust:107.379%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans Medium Italic),local(NotoSans-MediumItalic);font-style:italic;font-weight:500;font-display:swap;ascent-override:91.0165%;descent-override:22.6624%;size-adjust:106.437%}@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue Bold),local(HelveticaNeue-Bold);font-style:normal;font-weight:600;font-display:swap;ascent-override:95.4228%;descent-override:23.7595%;line-gap-override:0%;size-adjust:101.522%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI Bold),local(SegoeUI-Bold);font-style:normal;font-weight:600;font-display:swap;ascent-override:94.4483%;descent-override:23.5169%;size-adjust:102.569%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Bold),local(Roboto-Bold);font-style:normal;font-weight:600;font-display:swap;ascent-override:89.886%;descent-override:22.3809%;size-adjust:107.775%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Bold),local(Ubuntu-Bold);font-style:normal;font-weight:600;font-display:swap;ascent-override:95.4228%;descent-override:23.7595%;line-gap-override:0%;size-adjust:101.522%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans SemiBold),local(FiraSans-SemiBold);font-style:normal;font-weight:600;font-display:swap;ascent-override:91.2481%;descent-override:22.72%;size-adjust:106.167%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans SemiBold),local(NotoSans-SemiBold);font-style:normal;font-weight:600;font-display:swap;ascent-override:97.8084%;descent-override:24.3535%;size-adjust:99.0457%}@font-face{font-family:Inter Fallback\: Arial;src:local(Arial Bold),local(Arial-BoldMT);font-style:normal;font-weight:600;font-display:swap;ascent-override:95.419%;descent-override:23.7586%;line-gap-override:0%;size-adjust:101.526%}@font-face{font-family:Inter Fallback\: Helvetica Neue;src:local(Helvetica Neue Bold Italic),local(HelveticaNeue-BoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:94.9556%;descent-override:23.6432%;line-gap-override:0%;size-adjust:102.021%}@font-face{font-family:Inter Fallback\: Segoe UI;src:local(Segoe UI Bold Italic),local(SegoeUI-BoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:93.4049%;descent-override:23.2571%;size-adjust:103.715%}@font-face{font-family:Inter Fallback\: Roboto;src:local(Roboto Bold Italic),local(Roboto-BoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:86.7537%;descent-override:21.601%;size-adjust:111.667%}@font-face{font-family:Inter Fallback\: Ubuntu;src:local(Ubuntu Bold Italic),local(Ubuntu-BoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:92.3893%;descent-override:23.0042%;line-gap-override:0%;size-adjust:104.855%}@font-face{font-family:Inter Fallback\: Fira Sans;src:local(Fira Sans SemiBold Italic),local(FiraSans-SemiBoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:89.2306%;descent-override:22.2177%;size-adjust:108.567%}@font-face{font-family:Inter Fallback\: Noto Sans;src:local(Noto Sans SemiBold Italic),local(NotoSans-SemiBoldItalic);font-style:italic;font-weight:600;font-display:swap;ascent-override:91.9944%;descent-override:22.9059%;size-adjust:105.305%}@font-face{font-family:Inter Fallback\: Arial;src:local(Arial Bold Italic),local(Arial-BoldItalicMT);font-style:italic;font-weight:600;font-display:swap;ascent-override:94.7544%;descent-override:23.5931%;line-gap-override:0%;size-adjust:102.238%}@media screen{@layer cpd-base{:root,[class*=cpd-theme-]{--cpd-space-scale:4px;--cpd-space-0x:0;--cpd-space-6x:24px;--cpd-space-10x:40px;--cpd-space-11x:44px;--cpd-space-12x:48px;--cpd-space-16x:64px;--cpd-space-36x:144px;--cpd-space-56x:224px;--cpd-border-width-1:1px;--cpd-border-width-2:2px;--cpd-border-width-4:4px;--cpd-border-width-0-5:.5px;--cpd-font-family-sans:Inter, "Inter Fallback: Helvetica Neue", "Inter Fallback: Segoe UI", "Inter Fallback: Roboto", "Inter Fallback: Ubuntu", "Inter Fallback: Fira Sans", "Inter Fallback: Noto Sans", "Inter Fallback: Arial", "Helvetica Neue", "Segoe UI", Roboto, Ubuntu, "Fira Sans", "Noto Sans", Arial, sans-serif;--cpd-font-family-mono:Inconsolata, ui-monospace, monospace;--cpd-font-weight-regular:400;--cpd-font-weight-medium:500;--cpd-font-weight-semibold:600;--cpd-font-line-height-minimum:1;--cpd-font-line-height-tight:1.25;--cpd-font-line-height-regular:1.5;--cpd-font-size-body-xs:.6875rem;--cpd-font-size-body-sm:.8125rem;--cpd-font-size-body-md:.9375rem;--cpd-font-size-body-lg:1.0625rem;--cpd-font-size-heading-sm:1.25rem;--cpd-font-size-heading-md:1.5rem;--cpd-font-size-heading-lg:1.75rem;--cpd-font-size-heading-xl:2rem;--cpd-font-size-root:1rem;--cpd-font-letter-spacing-body-xs:.0048em;--cpd-font-letter-spacing-body-sm:-.0031em;--cpd-font-letter-spacing-body-md:-.0088em;--cpd-font-letter-spacing-body-lg:-.0128em;--cpd-font-letter-spacing-heading-sm:-.0166em;--cpd-font-letter-spacing-heading-md:-.0195em;--cpd-font-letter-spacing-heading-lg:-.0209em;--cpd-font-letter-spacing-heading-xl:-.0216em;--cpd-space-0-5x:2px;--cpd-space-1x:var(--cpd-space-scale);--cpd-space-1-5x:6px;--cpd-space-2x:8px;--cpd-space-3x:12px;--cpd-space-4x:16px;--cpd-space-5x:20px;--cpd-space-7x:28px;--cpd-space-8x:32px;--cpd-space-9x:36px;--cpd-space-13x:52px;--cpd-space-14x:56px;--cpd-space-15x:60px;--cpd-space-20x:80px;--cpd-space-24x:96px;--cpd-space-28x:112px;--cpd-space-32x:128px;--cpd-space-40x:160px;--cpd-space-48x:192px;--cpd-space-64x:256px;--cpd-font-body-xs-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-body-xs)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-xs-medium:var(--cpd-font-weight-medium) var(--cpd-font-size-body-xs)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-xs-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-body-xs)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-sm-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-body-sm)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-sm-medium:var(--cpd-font-weight-medium) var(--cpd-font-size-body-sm)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-sm-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-body-sm)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-md-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-body-md)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-md-medium:var(--cpd-font-weight-medium) var(--cpd-font-size-body-md)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-md-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-body-md)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-lg-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-body-lg)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-lg-medium:var(--cpd-font-weight-medium) var(--cpd-font-size-body-lg)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-body-lg-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-body-lg)/var(--cpd-font-line-height-regular) var(--cpd-font-family-sans);--cpd-font-heading-sm-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-heading-sm)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-sm-medium:var(--cpd-font-weight-medium) var(--cpd-font-size-heading-sm)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-sm-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-heading-sm)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-md-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-heading-md)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-md-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-heading-md)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-lg-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-heading-lg)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-lg-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-heading-lg)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-xl-regular:var(--cpd-font-weight-regular) var(--cpd-font-size-heading-xl)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans);--cpd-font-heading-xl-semibold:var(--cpd-font-weight-semibold) var(--cpd-font-size-heading-xl)/var(--cpd-font-line-height-tight) var(--cpd-font-family-sans)}.cpd-theme-light.cpd-theme-light{--cpd-color-theme-bg:#fff;--cpd-color-gray-100:#fbfcfd;--cpd-color-gray-200:#f7f9fa;--cpd-color-gray-300:#f0f2f5;--cpd-color-gray-400:#e1e6ec;--cpd-color-gray-500:#cdd3da;--cpd-color-gray-600:#bdc4cc;--cpd-color-gray-700:#a6adb7;--cpd-color-gray-800:#818a95;--cpd-color-gray-900:#656d77;--cpd-color-gray-1000:#595e67;--cpd-color-gray-1100:#4c5158;--cpd-color-gray-1200:#3c4045;--cpd-color-gray-1300:#2b2d32;--cpd-color-gray-1400:#1b1d22;--cpd-color-red-100:#fffaf9;--cpd-color-red-200:#fff7f6;--cpd-color-red-300:#ffefec;--cpd-color-red-400:#ffdfda;--cpd-color-red-500:#ffc5bc;--cpd-color-red-600:#ffafa5;--cpd-color-red-700:#ff8c81;--cpd-color-red-800:#ff3d3d;--cpd-color-red-900:#d51928;--cpd-color-red-1000:#bc0f22;--cpd-color-red-1100:#a4041d;--cpd-color-red-1200:#850006;--cpd-color-red-1300:#620000;--cpd-color-red-1400:#450000;--cpd-color-orange-100:#fffaf7;--cpd-color-orange-200:#fff6ef;--cpd-color-orange-300:#ffefe4;--cpd-color-orange-400:#ffdfc8;--cpd-color-orange-500:#ffc8a1;--cpd-color-orange-600:#fdb37c;--cpd-color-orange-700:#f89440;--cpd-color-orange-800:#dc6700;--cpd-color-orange-900:#bc4500;--cpd-color-orange-1000:#ac3300;--cpd-color-orange-1100:#9b2200;--cpd-color-orange-1200:#850000;--cpd-color-orange-1300:#620000;--cpd-color-orange-1400:#450000;--cpd-color-yellow-100:#fffcf0;--cpd-color-yellow-200:#fff8e0;--cpd-color-yellow-300:#fff2c1;--cpd-color-yellow-400:#ffe484;--cpd-color-yellow-500:#fbce00;--cpd-color-yellow-600:#f1bd00;--cpd-color-yellow-700:#dea200;--cpd-color-yellow-800:#be7a00;--cpd-color-yellow-900:#9f5b00;--cpd-color-yellow-1000:#8f4d00;--cpd-color-yellow-1100:#803f00;--cpd-color-yellow-1200:#692e00;--cpd-color-yellow-1300:#541a00;--cpd-color-yellow-1400:#410600;--cpd-color-lime-100:#f8fdf6;--cpd-color-lime-200:#f1fcee;--cpd-color-lime-300:#e0f8d9;--cpd-color-lime-400:#c8f1ba;--cpd-color-lime-500:#99e57e;--cpd-color-lime-600:#76db4c;--cpd-color-lime-700:#54c424;--cpd-color-lime-800:#359d18;--cpd-color-lime-900:#197d0c;--cpd-color-lime-1000:#006e00;--cpd-color-lime-1100:#005f00;--cpd-color-lime-1200:#004b00;--cpd-color-lime-1300:#003600;--cpd-color-lime-1400:#002400;--cpd-color-green-100:#f8fdfb;--cpd-color-green-200:#f1fbf6;--cpd-color-green-300:#e3f7ed;--cpd-color-green-400:#c6eedb;--cpd-color-green-500:#98e1c1;--cpd-color-green-600:#71d7ae;--cpd-color-green-700:#0bc491;--cpd-color-green-800:#009b78;--cpd-color-green-900:#007a61;--cpd-color-green-1000:#006b52;--cpd-color-green-1100:#005c45;--cpd-color-green-1200:#004933;--cpd-color-green-1300:#003420;--cpd-color-green-1400:#002311;--cpd-color-cyan-100:#f8fdfd;--cpd-color-cyan-200:#f1fafb;--cpd-color-cyan-300:#e3f5f8;--cpd-color-cyan-400:#c7ecf0;--cpd-color-cyan-500:#9bdde5;--cpd-color-cyan-600:#76d1dd;--cpd-color-cyan-700:#15becf;--cpd-color-cyan-800:#0094c0;--cpd-color-cyan-900:#0072ac;--cpd-color-cyan-1000:#00629c;--cpd-color-cyan-1100:#00548c;--cpd-color-cyan-1200:#004077;--cpd-color-cyan-1300:#002b61;--cpd-color-cyan-1400:#00194f;--cpd-color-blue-100:#f9fcff;--cpd-color-blue-200:#f4f8ff;--cpd-color-blue-300:#e9f2ff;--cpd-color-blue-400:#d8e7fe;--cpd-color-blue-500:#bad5fc;--cpd-color-blue-600:#a3c6fa;--cpd-color-blue-700:#7eaff6;--cpd-color-blue-800:#4088ee;--cpd-color-blue-900:#0467dd;--cpd-color-blue-1000:#0558c7;--cpd-color-blue-1100:#064ab1;--cpd-color-blue-1200:#043894;--cpd-color-blue-1300:#012478;--cpd-color-blue-1400:#000e65;--cpd-color-purple-100:#fbfbff;--cpd-color-purple-200:#f8f7ff;--cpd-color-purple-300:#f1efff;--cpd-color-purple-400:#e6e2ff;--cpd-color-purple-500:#d4cdff;--cpd-color-purple-600:#c5bbff;--cpd-color-purple-700:#b1a0ff;--cpd-color-purple-800:#9271fd;--cpd-color-purple-900:#7a47f1;--cpd-color-purple-1000:#6b37de;--cpd-color-purple-1100:#5d26cd;--cpd-color-purple-1200:#4c05b5;--cpd-color-purple-1300:#33008d;--cpd-color-purple-1400:#200066;--cpd-color-fuchsia-100:#fefafe;--cpd-color-fuchsia-200:#fcf5fd;--cpd-color-fuchsia-300:#faeefb;--cpd-color-fuchsia-400:#f6dff7;--cpd-color-fuchsia-500:#edc6f0;--cpd-color-fuchsia-600:#e7b2ea;--cpd-color-fuchsia-700:#db93e1;--cpd-color-fuchsia-800:#c85ed1;--cpd-color-fuchsia-900:#ad33bd;--cpd-color-fuchsia-1000:#972aaa;--cpd-color-fuchsia-1100:#822198;--cpd-color-fuchsia-1200:#671481;--cpd-color-fuchsia-1300:#4e0068;--cpd-color-fuchsia-1400:#34004c;--cpd-color-pink-100:#fffafb;--cpd-color-pink-200:#fff5f7;--cpd-color-pink-300:#ffecf0;--cpd-color-pink-400:#ffdee5;--cpd-color-pink-500:#ffc2cf;--cpd-color-pink-600:#ffadc0;--cpd-color-pink-700:#ff88a6;--cpd-color-pink-800:#f7407d;--cpd-color-pink-900:#d20c65;--cpd-color-pink-1000:#b80a5b;--cpd-color-pink-1100:#9f0850;--cpd-color-pink-1200:#7e0642;--cpd-color-pink-1300:#5f002b;--cpd-color-pink-1400:#430017;--cpd-color-alpha-gray-100:#36699b05;--cpd-color-alpha-gray-200:#3668810a;--cpd-color-alpha-gray-300:#0526570f;--cpd-color-alpha-gray-400:#052e611f;--cpd-color-alpha-gray-500:#05244833;--cpd-color-alpha-gray-600:#011d3c42;--cpd-color-alpha-gray-700:#01153259;--cpd-color-alpha-gray-800:#03152b80;--cpd-color-alpha-gray-900:#0310219c;--cpd-color-alpha-gray-1000:#030c1ba8;--cpd-color-alpha-gray-1100:#030b16b5;--cpd-color-alpha-gray-1200:#02070dc4;--cpd-color-alpha-gray-1300:#03050cd6;--cpd-color-alpha-gray-1400:#020408e6;--cpd-color-alpha-red-100:#ff593808;--cpd-color-alpha-red-200:#ff391f0a;--cpd-color-alpha-red-300:#ff381414;--cpd-color-alpha-red-400:#ff2b0a26;--cpd-color-alpha-red-500:#ff260545;--cpd-color-alpha-red-600:#ff22055c;--cpd-color-alpha-red-700:#ff1a0580;--cpd-color-alpha-red-800:#ff0505c4;--cpd-color-alpha-red-900:#cf0213e8;--cpd-color-alpha-red-1000:#bb0217f2;--cpd-color-alpha-red-1100:#a2011cfc;--cpd-color-alpha-red-1200:#850007;--cpd-color-alpha-red-1300:#610000;--cpd-color-alpha-red-1400:#470000;--cpd-color-alpha-orange-100:#ff81380a;--cpd-color-alpha-orange-200:#ff7d1a12;--cpd-color-alpha-orange-300:#ff6c0a1c;--cpd-color-alpha-orange-400:#ff6d0538;--cpd-color-alpha-orange-500:#ff6a005e;--cpd-color-alpha-orange-600:#fc6f0385;--cpd-color-alpha-orange-700:#f56e00bf;--cpd-color-alpha-orange-800:#db6600;--cpd-color-alpha-orange-900:#bd4500;--cpd-color-alpha-orange-1000:#ad3400;--cpd-color-alpha-orange-1100:#992100;--cpd-color-alpha-orange-1200:#850000;--cpd-color-alpha-orange-1300:#610000;--cpd-color-alpha-orange-1400:#470000;--cpd-color-alpha-yellow-100:#ffcd050f;--cpd-color-alpha-yellow-200:#ffc70f21;--cpd-color-alpha-yellow-300:#ffc90540;--cpd-color-alpha-yellow-400:#ffc9057d;--cpd-color-alpha-yellow-500:#facc00;--cpd-color-alpha-yellow-600:#f0bc00;--cpd-color-alpha-yellow-700:#e0a500;--cpd-color-alpha-yellow-800:#bd7b00;--cpd-color-alpha-yellow-900:#9e5a00;--cpd-color-alpha-yellow-1000:#8f4c00;--cpd-color-alpha-yellow-1100:#804000;--cpd-color-alpha-yellow-1200:#6b2e00;--cpd-color-alpha-yellow-1300:#571b00;--cpd-color-alpha-yellow-1400:#420700;--cpd-color-alpha-lime-100:#4fcd1d0a;--cpd-color-alpha-lime-200:#38d40c12;--cpd-color-alpha-lime-300:#2ecf0226;--cpd-color-alpha-lime-400:#3ace0947;--cpd-color-alpha-lime-500:#37ca0282;--cpd-color-alpha-lime-600:#40ce03b5;--cpd-color-alpha-lime-700:#39bd00db;--cpd-color-alpha-lime-800:#209301e8;--cpd-color-alpha-lime-900:#107902f5;--cpd-color-alpha-lime-1000:#007000;--cpd-color-alpha-lime-1100:#006100;--cpd-color-alpha-lime-1200:#004d00;--cpd-color-alpha-lime-1300:#003800;--cpd-color-alpha-lime-1400:#002400;--cpd-color-alpha-green-100:#16bb7908;--cpd-color-alpha-green-200:#16bb690f;--cpd-color-alpha-green-300:#00b85c1c;--cpd-color-alpha-green-400:#07b6613b;--cpd-color-alpha-green-500:#04b96a69;--cpd-color-alpha-green-600:#01b76e8f;--cpd-color-alpha-green-700:#01c18af5;--cpd-color-alpha-green-800:#009975;--cpd-color-alpha-green-900:#007a62;--cpd-color-alpha-green-1000:#006b52;--cpd-color-alpha-green-1100:#005c45;--cpd-color-alpha-green-1200:#004732;--cpd-color-alpha-green-1300:#00331f;--cpd-color-alpha-green-1400:#002411;--cpd-color-alpha-cyan-100:#16bbbb08;--cpd-color-alpha-cyan-200:#16abbb0f;--cpd-color-alpha-cyan-300:#00a8c21c;--cpd-color-alpha-cyan-400:#00aabd38;--cpd-color-alpha-cyan-500:#05abbd66;--cpd-color-alpha-cyan-600:#01aac18a;--cpd-color-alpha-cyan-700:#01b7cbeb;--cpd-color-alpha-cyan-800:#0095c2;--cpd-color-alpha-cyan-900:#0074ad;--cpd-color-alpha-cyan-1000:#00649e;--cpd-color-alpha-cyan-1100:#00568f;--cpd-color-alpha-cyan-1200:#003f75;--cpd-color-alpha-cyan-1300:#002c61;--cpd-color-alpha-cyan-1400:#001a52;--cpd-color-alpha-blue-100:#389cff08;--cpd-color-alpha-blue-200:#2474ff0d;--cpd-color-alpha-blue-300:#0a70ff17;--cpd-color-alpha-blue-400:#0b6af929;--cpd-color-alpha-blue-500:#096cf647;--cpd-color-alpha-blue-600:#0663ef5e;--cpd-color-alpha-blue-700:#0264ed82;--cpd-color-alpha-blue-800:#0062ebbf;--cpd-color-alpha-blue-900:#0165dffc;--cpd-color-alpha-blue-1000:#0256c5fc;--cpd-color-alpha-blue-1100:#0148b2fa;--cpd-color-alpha-blue-1200:#013693fc;--cpd-color-alpha-blue-1300:#012579;--cpd-color-alpha-blue-1400:#000e66;--cpd-color-alpha-purple-100:#3838ff05;--cpd-color-alpha-purple-200:#5338ff0a;--cpd-color-alpha-purple-300:#381aff12;--cpd-color-alpha-purple-400:#2f0fff1f;--cpd-color-alpha-purple-500:#2605ff33;--cpd-color-alpha-purple-600:#2b05ff45;--cpd-color-alpha-purple-700:#3305ff61;--cpd-color-alpha-purple-800:#3b01f98f;--cpd-color-alpha-purple-900:#4902edba;--cpd-color-alpha-purple-1000:#4502d4c9;--cpd-color-alpha-purple-1100:#4303c4db;--cpd-color-alpha-purple-1200:#4a02b6fc;--cpd-color-alpha-purple-1300:#34008f;--cpd-color-alpha-purple-1400:#200066;--cpd-color-alpha-fuchsia-100:#cc05cc05;--cpd-color-alpha-fuchsia-200:#b505cc0a;--cpd-color-alpha-fuchsia-300:#b60cc612;--cpd-color-alpha-fuchsia-400:#bd09c321;--cpd-color-alpha-fuchsia-500:#b407c03b;--cpd-color-alpha-fuchsia-600:#b207bb4f;--cpd-color-alpha-fuchsia-700:#aa04b96e;--cpd-color-alpha-fuchsia-800:#ab03baa3;--cpd-color-alpha-fuchsia-900:#9900adcc;--cpd-color-alpha-fuchsia-1000:#820198d6;--cpd-color-alpha-fuchsia-1100:#73038ce0;--cpd-color-alpha-fuchsia-1200:#5d0279ed;--cpd-color-alpha-fuchsia-1300:#4d0066;--cpd-color-alpha-fuchsia-1400:#34004d;--cpd-color-alpha-pink-100:#ff053705;--cpd-color-alpha-pink-200:#ff05370a;--cpd-color-alpha-pink-300:#ff144714;--cpd-color-alpha-pink-400:#ff003721;--cpd-color-alpha-pink-500:#ff00373d;--cpd-color-alpha-pink-600:#ff053f54;--cpd-color-alpha-pink-700:#ff004078;--cpd-color-alpha-pink-800:#f50052bf;--cpd-color-alpha-pink-900:#cf025ef5;--cpd-color-alpha-pink-1000:#b60256f7;--cpd-color-alpha-pink-1100:#9e004cf7;--cpd-color-alpha-pink-1200:#79013dfa;--cpd-color-alpha-pink-1300:#61002c;--cpd-color-alpha-pink-1400:#420017;--cpd-color-transparent:#0000}}@layer cpd-semantic{:root,[class*=cpd-theme-]{--cpd-color-text-primary:var(--cpd-color-gray-1400);--cpd-color-text-secondary:var(--cpd-color-gray-900);--cpd-color-text-disabled:var(--cpd-color-gray-800);--cpd-color-text-action-primary:var(--cpd-color-gray-1400);--cpd-color-text-action-accent:var(--cpd-color-green-900);--cpd-color-text-link-external:var(--cpd-color-blue-1100);--cpd-color-text-critical-primary:var(--cpd-color-red-900);--cpd-color-text-success-primary:var(--cpd-color-green-900);--cpd-color-text-info-primary:var(--cpd-color-blue-1100);--cpd-color-text-on-solid-primary:var(--cpd-color-theme-bg);--cpd-color-text-decorative-1:var(--cpd-color-lime-1100);--cpd-color-text-decorative-2:var(--cpd-color-cyan-1100);--cpd-color-text-decorative-3:var(--cpd-color-fuchsia-1100);--cpd-color-text-decorative-4:var(--cpd-color-purple-1100);--cpd-color-text-decorative-5:var(--cpd-color-pink-1100);--cpd-color-text-decorative-6:var(--cpd-color-orange-1100);--cpd-color-text-badge-accent:var(--cpd-color-green-1100);--cpd-color-text-badge-info:var(--cpd-color-blue-1100);--cpd-color-bg-subtle-primary:var(--cpd-color-gray-400);--cpd-color-bg-subtle-secondary:var(--cpd-color-gray-300);--cpd-color-bg-canvas-default:var(--cpd-color-theme-bg);--cpd-color-bg-canvas-disabled:var(--cpd-color-gray-200);--cpd-color-bg-action-primary-rest:var(--cpd-color-gray-1400);--cpd-color-bg-action-primary-hovered:var(--cpd-color-gray-1200);--cpd-color-bg-action-primary-pressed:var(--cpd-color-gray-1100);--cpd-color-bg-action-primary-disabled:var(--cpd-color-gray-700);--cpd-color-bg-action-secondary-rest:var(--cpd-color-theme-bg);--cpd-color-bg-action-secondary-hovered:var(--cpd-color-alpha-gray-200);--cpd-color-bg-action-secondary-pressed:var(--cpd-color-alpha-gray-300);--cpd-color-bg-action-tertiary-rest:var(--cpd-color-theme-bg);--cpd-color-bg-action-tertiary-hovered:var(--cpd-color-gray-300);--cpd-color-bg-action-tertiary-selected:var(--cpd-color-gray-400);--cpd-color-bg-critical-primary:var(--cpd-color-red-900);--cpd-color-bg-critical-hovered:var(--cpd-color-red-1000);--cpd-color-bg-critical-subtle:var(--cpd-color-red-200);--cpd-color-bg-critical-subtle-hovered:var(--cpd-color-red-300);--cpd-color-bg-success-subtle:var(--cpd-color-green-200);--cpd-color-bg-info-subtle:var(--cpd-color-blue-200);--cpd-color-bg-decorative-1:var(--cpd-color-lime-300);--cpd-color-bg-decorative-2:var(--cpd-color-cyan-300);--cpd-color-bg-decorative-3:var(--cpd-color-fuchsia-300);--cpd-color-bg-decorative-4:var(--cpd-color-purple-300);--cpd-color-bg-decorative-5:var(--cpd-color-pink-300);--cpd-color-bg-decorative-6:var(--cpd-color-orange-300);--cpd-color-bg-accent-rest:var(--cpd-color-green-900);--cpd-color-bg-accent-hovered:var(--cpd-color-green-1000);--cpd-color-bg-accent-pressed:var(--cpd-color-green-1100);--cpd-color-bg-accent-selected:var(--cpd-color-alpha-green-300);--cpd-color-bg-badge-accent:var(--cpd-color-green-400);--cpd-color-bg-badge-info:var(--cpd-color-blue-400);--cpd-color-bg-badge-default:var(--cpd-color-theme-bg);--cpd-color-bg-badge-primary:var(--cpd-color-gray-1400);--cpd-color-bg-badge-secondary:var(--cpd-color-gray-400);--cpd-color-bg-badge-critical:var(--cpd-color-red-300);--cpd-color-border-disabled:var(--cpd-color-gray-500);--cpd-color-border-focused:var(--cpd-color-blue-900);--cpd-color-border-interactive-primary:var(--cpd-color-gray-800);--cpd-color-border-interactive-secondary:var(--cpd-color-gray-600);--cpd-color-border-interactive-hovered:var(--cpd-color-gray-1100);--cpd-color-border-critical-primary:var(--cpd-color-red-900);--cpd-color-border-critical-hovered:var(--cpd-color-red-1000);--cpd-color-border-critical-subtle:var(--cpd-color-red-500);--cpd-color-border-success-subtle:var(--cpd-color-green-500);--cpd-color-border-info-subtle:var(--cpd-color-blue-700);--cpd-color-border-accent-subtle:var(--cpd-color-green-700);--cpd-color-border-accent-primary:var(--cpd-color-green-900);--cpd-color-icon-primary:var(--cpd-color-gray-1400);--cpd-color-icon-secondary:var(--cpd-color-gray-900);--cpd-color-icon-tertiary:var(--cpd-color-gray-800);--cpd-color-icon-quaternary:var(--cpd-color-gray-700);--cpd-color-icon-disabled:var(--cpd-color-gray-700);--cpd-color-icon-primary-alpha:var(--cpd-color-alpha-gray-1400);--cpd-color-icon-secondary-alpha:var(--cpd-color-alpha-gray-900);--cpd-color-icon-tertiary-alpha:var(--cpd-color-alpha-gray-800);--cpd-color-icon-quaternary-alpha:var(--cpd-color-alpha-gray-700);--cpd-color-icon-accent-tertiary:var(--cpd-color-green-800);--cpd-color-icon-accent-primary:var(--cpd-color-green-900);--cpd-color-icon-critical-primary:var(--cpd-color-red-900);--cpd-color-icon-success-primary:var(--cpd-color-green-900);--cpd-color-icon-info-primary:var(--cpd-color-blue-1100);--cpd-color-icon-on-solid-primary:var(--cpd-color-theme-bg);--cpd-color-gradient-subtle-stop1:var(--cpd-color-alpha-green-500);--cpd-color-gradient-subtle-stop2:var(--cpd-color-alpha-green-400);--cpd-color-gradient-subtle-stop3:var(--cpd-color-alpha-green-300);--cpd-color-gradient-subtle-stop4:var(--cpd-color-alpha-green-200);--cpd-color-gradient-subtle-stop5:var(--cpd-color-alpha-green-100);--cpd-color-gradient-subtle-stop6:var(--cpd-color-transparent);--cpd-color-gradient-info-stop1:var(--cpd-color-blue-200);--cpd-color-gradient-info-stop2:var(--cpd-color-theme-bg);--cpd-color-gradient-critical-stop1:var(--cpd-color-red-200);--cpd-color-gradient-critical-stop2:var(--cpd-color-theme-bg);--cpd-color-separator-primary:var(--cpd-color-gray-400);--cpd-color-separator-secondary:var(--cpd-color-gray-300);--cpd-color-gradient-subtle-linear:linear-gradient(180deg, var(--cpd-color-gradient-subtle-stop1) 0%, var(--cpd-color-gradient-subtle-stop2) 20%, var(--cpd-color-gradient-subtle-stop3) 40%, var(--cpd-color-gradient-subtle-stop4) 60%, var(--cpd-color-gradient-subtle-stop5) 80%, var(--cpd-color-gradient-subtle-stop6) 100%);--cpd-color-gradient-info-linear:linear-gradient(180deg, var(--cpd-color-gradient-info-stop1) 0%, var(--cpd-color-gradient-info-stop2) 100%);--cpd-color-gradient-critical-linear:linear-gradient(180deg, var(--cpd-color-gradient-critical-stop1) 0%, var(--cpd-color-gradient-critical-stop2) 100%)}}}@media screen and (prefers-color-scheme:light){@layer cpd-base{:root{--cpd-color-theme-bg:#fff;--cpd-color-gray-100:#fbfcfd;--cpd-color-gray-200:#f7f9fa;--cpd-color-gray-300:#f0f2f5;--cpd-color-gray-400:#e1e6ec;--cpd-color-gray-500:#cdd3da;--cpd-color-gray-600:#bdc4cc;--cpd-color-gray-700:#a6adb7;--cpd-color-gray-800:#818a95;--cpd-color-gray-900:#656d77;--cpd-color-gray-1000:#595e67;--cpd-color-gray-1100:#4c5158;--cpd-color-gray-1200:#3c4045;--cpd-color-gray-1300:#2b2d32;--cpd-color-gray-1400:#1b1d22;--cpd-color-red-100:#fffaf9;--cpd-color-red-200:#fff7f6;--cpd-color-red-300:#ffefec;--cpd-color-red-400:#ffdfda;--cpd-color-red-500:#ffc5bc;--cpd-color-red-600:#ffafa5;--cpd-color-red-700:#ff8c81;--cpd-color-red-800:#ff3d3d;--cpd-color-red-900:#d51928;--cpd-color-red-1000:#bc0f22;--cpd-color-red-1100:#a4041d;--cpd-color-red-1200:#850006;--cpd-color-red-1300:#620000;--cpd-color-red-1400:#450000;--cpd-color-orange-100:#fffaf7;--cpd-color-orange-200:#fff6ef;--cpd-color-orange-300:#ffefe4;--cpd-color-orange-400:#ffdfc8;--cpd-color-orange-500:#ffc8a1;--cpd-color-orange-600:#fdb37c;--cpd-color-orange-700:#f89440;--cpd-color-orange-800:#dc6700;--cpd-color-orange-900:#bc4500;--cpd-color-orange-1000:#ac3300;--cpd-color-orange-1100:#9b2200;--cpd-color-orange-1200:#850000;--cpd-color-orange-1300:#620000;--cpd-color-orange-1400:#450000;--cpd-color-yellow-100:#fffcf0;--cpd-color-yellow-200:#fff8e0;--cpd-color-yellow-300:#fff2c1;--cpd-color-yellow-400:#ffe484;--cpd-color-yellow-500:#fbce00;--cpd-color-yellow-600:#f1bd00;--cpd-color-yellow-700:#dea200;--cpd-color-yellow-800:#be7a00;--cpd-color-yellow-900:#9f5b00;--cpd-color-yellow-1000:#8f4d00;--cpd-color-yellow-1100:#803f00;--cpd-color-yellow-1200:#692e00;--cpd-color-yellow-1300:#541a00;--cpd-color-yellow-1400:#410600;--cpd-color-lime-100:#f8fdf6;--cpd-color-lime-200:#f1fcee;--cpd-color-lime-300:#e0f8d9;--cpd-color-lime-400:#c8f1ba;--cpd-color-lime-500:#99e57e;--cpd-color-lime-600:#76db4c;--cpd-color-lime-700:#54c424;--cpd-color-lime-800:#359d18;--cpd-color-lime-900:#197d0c;--cpd-color-lime-1000:#006e00;--cpd-color-lime-1100:#005f00;--cpd-color-lime-1200:#004b00;--cpd-color-lime-1300:#003600;--cpd-color-lime-1400:#002400;--cpd-color-green-100:#f8fdfb;--cpd-color-green-200:#f1fbf6;--cpd-color-green-300:#e3f7ed;--cpd-color-green-400:#c6eedb;--cpd-color-green-500:#98e1c1;--cpd-color-green-600:#71d7ae;--cpd-color-green-700:#0bc491;--cpd-color-green-800:#009b78;--cpd-color-green-900:#007a61;--cpd-color-green-1000:#006b52;--cpd-color-green-1100:#005c45;--cpd-color-green-1200:#004933;--cpd-color-green-1300:#003420;--cpd-color-green-1400:#002311;--cpd-color-cyan-100:#f8fdfd;--cpd-color-cyan-200:#f1fafb;--cpd-color-cyan-300:#e3f5f8;--cpd-color-cyan-400:#c7ecf0;--cpd-color-cyan-500:#9bdde5;--cpd-color-cyan-600:#76d1dd;--cpd-color-cyan-700:#15becf;--cpd-color-cyan-800:#0094c0;--cpd-color-cyan-900:#0072ac;--cpd-color-cyan-1000:#00629c;--cpd-color-cyan-1100:#00548c;--cpd-color-cyan-1200:#004077;--cpd-color-cyan-1300:#002b61;--cpd-color-cyan-1400:#00194f;--cpd-color-blue-100:#f9fcff;--cpd-color-blue-200:#f4f8ff;--cpd-color-blue-300:#e9f2ff;--cpd-color-blue-400:#d8e7fe;--cpd-color-blue-500:#bad5fc;--cpd-color-blue-600:#a3c6fa;--cpd-color-blue-700:#7eaff6;--cpd-color-blue-800:#4088ee;--cpd-color-blue-900:#0467dd;--cpd-color-blue-1000:#0558c7;--cpd-color-blue-1100:#064ab1;--cpd-color-blue-1200:#043894;--cpd-color-blue-1300:#012478;--cpd-color-blue-1400:#000e65;--cpd-color-purple-100:#fbfbff;--cpd-color-purple-200:#f8f7ff;--cpd-color-purple-300:#f1efff;--cpd-color-purple-400:#e6e2ff;--cpd-color-purple-500:#d4cdff;--cpd-color-purple-600:#c5bbff;--cpd-color-purple-700:#b1a0ff;--cpd-color-purple-800:#9271fd;--cpd-color-purple-900:#7a47f1;--cpd-color-purple-1000:#6b37de;--cpd-color-purple-1100:#5d26cd;--cpd-color-purple-1200:#4c05b5;--cpd-color-purple-1300:#33008d;--cpd-color-purple-1400:#200066;--cpd-color-fuchsia-100:#fefafe;--cpd-color-fuchsia-200:#fcf5fd;--cpd-color-fuchsia-300:#faeefb;--cpd-color-fuchsia-400:#f6dff7;--cpd-color-fuchsia-500:#edc6f0;--cpd-color-fuchsia-600:#e7b2ea;--cpd-color-fuchsia-700:#db93e1;--cpd-color-fuchsia-800:#c85ed1;--cpd-color-fuchsia-900:#ad33bd;--cpd-color-fuchsia-1000:#972aaa;--cpd-color-fuchsia-1100:#822198;--cpd-color-fuchsia-1200:#671481;--cpd-color-fuchsia-1300:#4e0068;--cpd-color-fuchsia-1400:#34004c;--cpd-color-pink-100:#fffafb;--cpd-color-pink-200:#fff5f7;--cpd-color-pink-300:#ffecf0;--cpd-color-pink-400:#ffdee5;--cpd-color-pink-500:#ffc2cf;--cpd-color-pink-600:#ffadc0;--cpd-color-pink-700:#ff88a6;--cpd-color-pink-800:#f7407d;--cpd-color-pink-900:#d20c65;--cpd-color-pink-1000:#b80a5b;--cpd-color-pink-1100:#9f0850;--cpd-color-pink-1200:#7e0642;--cpd-color-pink-1300:#5f002b;--cpd-color-pink-1400:#430017;--cpd-color-alpha-gray-100:#36699b05;--cpd-color-alpha-gray-200:#3668810a;--cpd-color-alpha-gray-300:#0526570f;--cpd-color-alpha-gray-400:#052e611f;--cpd-color-alpha-gray-500:#05244833;--cpd-color-alpha-gray-600:#011d3c42;--cpd-color-alpha-gray-700:#01153259;--cpd-color-alpha-gray-800:#03152b80;--cpd-color-alpha-gray-900:#0310219c;--cpd-color-alpha-gray-1000:#030c1ba8;--cpd-color-alpha-gray-1100:#030b16b5;--cpd-color-alpha-gray-1200:#02070dc4;--cpd-color-alpha-gray-1300:#03050cd6;--cpd-color-alpha-gray-1400:#020408e6;--cpd-color-alpha-red-100:#ff593808;--cpd-color-alpha-red-200:#ff391f0a;--cpd-color-alpha-red-300:#ff381414;--cpd-color-alpha-red-400:#ff2b0a26;--cpd-color-alpha-red-500:#ff260545;--cpd-color-alpha-red-600:#ff22055c;--cpd-color-alpha-red-700:#ff1a0580;--cpd-color-alpha-red-800:#ff0505c4;--cpd-color-alpha-red-900:#cf0213e8;--cpd-color-alpha-red-1000:#bb0217f2;--cpd-color-alpha-red-1100:#a2011cfc;--cpd-color-alpha-red-1200:#850007;--cpd-color-alpha-red-1300:#610000;--cpd-color-alpha-red-1400:#470000;--cpd-color-alpha-orange-100:#ff81380a;--cpd-color-alpha-orange-200:#ff7d1a12;--cpd-color-alpha-orange-300:#ff6c0a1c;--cpd-color-alpha-orange-400:#ff6d0538;--cpd-color-alpha-orange-500:#ff6a005e;--cpd-color-alpha-orange-600:#fc6f0385;--cpd-color-alpha-orange-700:#f56e00bf;--cpd-color-alpha-orange-800:#db6600;--cpd-color-alpha-orange-900:#bd4500;--cpd-color-alpha-orange-1000:#ad3400;--cpd-color-alpha-orange-1100:#992100;--cpd-color-alpha-orange-1200:#850000;--cpd-color-alpha-orange-1300:#610000;--cpd-color-alpha-orange-1400:#470000;--cpd-color-alpha-yellow-100:#ffcd050f;--cpd-color-alpha-yellow-200:#ffc70f21;--cpd-color-alpha-yellow-300:#ffc90540;--cpd-color-alpha-yellow-400:#ffc9057d;--cpd-color-alpha-yellow-500:#facc00;--cpd-color-alpha-yellow-600:#f0bc00;--cpd-color-alpha-yellow-700:#e0a500;--cpd-color-alpha-yellow-800:#bd7b00;--cpd-color-alpha-yellow-900:#9e5a00;--cpd-color-alpha-yellow-1000:#8f4c00;--cpd-color-alpha-yellow-1100:#804000;--cpd-color-alpha-yellow-1200:#6b2e00;--cpd-color-alpha-yellow-1300:#571b00;--cpd-color-alpha-yellow-1400:#420700;--cpd-color-alpha-lime-100:#4fcd1d0a;--cpd-color-alpha-lime-200:#38d40c12;--cpd-color-alpha-lime-300:#2ecf0226;--cpd-color-alpha-lime-400:#3ace0947;--cpd-color-alpha-lime-500:#37ca0282;--cpd-color-alpha-lime-600:#40ce03b5;--cpd-color-alpha-lime-700:#39bd00db;--cpd-color-alpha-lime-800:#209301e8;--cpd-color-alpha-lime-900:#107902f5;--cpd-color-alpha-lime-1000:#007000;--cpd-color-alpha-lime-1100:#006100;--cpd-color-alpha-lime-1200:#004d00;--cpd-color-alpha-lime-1300:#003800;--cpd-color-alpha-lime-1400:#002400;--cpd-color-alpha-green-100:#16bb7908;--cpd-color-alpha-green-200:#16bb690f;--cpd-color-alpha-green-300:#00b85c1c;--cpd-color-alpha-green-400:#07b6613b;--cpd-color-alpha-green-500:#04b96a69;--cpd-color-alpha-green-600:#01b76e8f;--cpd-color-alpha-green-700:#01c18af5;--cpd-color-alpha-green-800:#009975;--cpd-color-alpha-green-900:#007a62;--cpd-color-alpha-green-1000:#006b52;--cpd-color-alpha-green-1100:#005c45;--cpd-color-alpha-green-1200:#004732;--cpd-color-alpha-green-1300:#00331f;--cpd-color-alpha-green-1400:#002411;--cpd-color-alpha-cyan-100:#16bbbb08;--cpd-color-alpha-cyan-200:#16abbb0f;--cpd-color-alpha-cyan-300:#00a8c21c;--cpd-color-alpha-cyan-400:#00aabd38;--cpd-color-alpha-cyan-500:#05abbd66;--cpd-color-alpha-cyan-600:#01aac18a;--cpd-color-alpha-cyan-700:#01b7cbeb;--cpd-color-alpha-cyan-800:#0095c2;--cpd-color-alpha-cyan-900:#0074ad;--cpd-color-alpha-cyan-1000:#00649e;--cpd-color-alpha-cyan-1100:#00568f;--cpd-color-alpha-cyan-1200:#003f75;--cpd-color-alpha-cyan-1300:#002c61;--cpd-color-alpha-cyan-1400:#001a52;--cpd-color-alpha-blue-100:#389cff08;--cpd-color-alpha-blue-200:#2474ff0d;--cpd-color-alpha-blue-300:#0a70ff17;--cpd-color-alpha-blue-400:#0b6af929;--cpd-color-alpha-blue-500:#096cf647;--cpd-color-alpha-blue-600:#0663ef5e;--cpd-color-alpha-blue-700:#0264ed82;--cpd-color-alpha-blue-800:#0062ebbf;--cpd-color-alpha-blue-900:#0165dffc;--cpd-color-alpha-blue-1000:#0256c5fc;--cpd-color-alpha-blue-1100:#0148b2fa;--cpd-color-alpha-blue-1200:#013693fc;--cpd-color-alpha-blue-1300:#012579;--cpd-color-alpha-blue-1400:#000e66;--cpd-color-alpha-purple-100:#3838ff05;--cpd-color-alpha-purple-200:#5338ff0a;--cpd-color-alpha-purple-300:#381aff12;--cpd-color-alpha-purple-400:#2f0fff1f;--cpd-color-alpha-purple-500:#2605ff33;--cpd-color-alpha-purple-600:#2b05ff45;--cpd-color-alpha-purple-700:#3305ff61;--cpd-color-alpha-purple-800:#3b01f98f;--cpd-color-alpha-purple-900:#4902edba;--cpd-color-alpha-purple-1000:#4502d4c9;--cpd-color-alpha-purple-1100:#4303c4db;--cpd-color-alpha-purple-1200:#4a02b6fc;--cpd-color-alpha-purple-1300:#34008f;--cpd-color-alpha-purple-1400:#200066;--cpd-color-alpha-fuchsia-100:#cc05cc05;--cpd-color-alpha-fuchsia-200:#b505cc0a;--cpd-color-alpha-fuchsia-300:#b60cc612;--cpd-color-alpha-fuchsia-400:#bd09c321;--cpd-color-alpha-fuchsia-500:#b407c03b;--cpd-color-alpha-fuchsia-600:#b207bb4f;--cpd-color-alpha-fuchsia-700:#aa04b96e;--cpd-color-alpha-fuchsia-800:#ab03baa3;--cpd-color-alpha-fuchsia-900:#9900adcc;--cpd-color-alpha-fuchsia-1000:#820198d6;--cpd-color-alpha-fuchsia-1100:#73038ce0;--cpd-color-alpha-fuchsia-1200:#5d0279ed;--cpd-color-alpha-fuchsia-1300:#4d0066;--cpd-color-alpha-fuchsia-1400:#34004d;--cpd-color-alpha-pink-100:#ff053705;--cpd-color-alpha-pink-200:#ff05370a;--cpd-color-alpha-pink-300:#ff144714;--cpd-color-alpha-pink-400:#ff003721;--cpd-color-alpha-pink-500:#ff00373d;--cpd-color-alpha-pink-600:#ff053f54;--cpd-color-alpha-pink-700:#ff004078;--cpd-color-alpha-pink-800:#f50052bf;--cpd-color-alpha-pink-900:#cf025ef5;--cpd-color-alpha-pink-1000:#b60256f7;--cpd-color-alpha-pink-1100:#9e004cf7;--cpd-color-alpha-pink-1200:#79013dfa;--cpd-color-alpha-pink-1300:#61002c;--cpd-color-alpha-pink-1400:#420017;--cpd-color-transparent:#0000}}}@media screen{@layer cpd-semantic{.cpd-theme-light.cpd-theme-light{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-theme-bg);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-gray-300);--cpd-color-gradient-action-stop1:var(--cpd-color-green-500);--cpd-color-gradient-action-stop2:var(--cpd-color-green-700);--cpd-color-gradient-action-stop3:var(--cpd-color-green-900);--cpd-color-gradient-action-stop4:var(--cpd-color-green-1100);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen and (prefers-color-scheme:light){@layer cpd-semantic{:root{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-theme-bg);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-gray-300);--cpd-color-gradient-action-stop1:var(--cpd-color-green-500);--cpd-color-gradient-action-stop2:var(--cpd-color-green-700);--cpd-color-gradient-action-stop3:var(--cpd-color-green-900);--cpd-color-gradient-action-stop4:var(--cpd-color-green-1100);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen{@layer cpd-base{.cpd-theme-light-hc.cpd-theme-light-hc{--cpd-color-theme-bg:#fff;--cpd-color-gray-100:#f7f9fa;--cpd-color-gray-200:#f0f2f5;--cpd-color-gray-300:#e1e6ec;--cpd-color-gray-400:#d7dce3;--cpd-color-gray-500:#bdc4cc;--cpd-color-gray-600:#a6adb7;--cpd-color-gray-700:#878f9b;--cpd-color-gray-800:#6c737e;--cpd-color-gray-900:#474a51;--cpd-color-gray-1000:#3f4248;--cpd-color-gray-1100:#35383d;--cpd-color-gray-1200:#2d3034;--cpd-color-gray-1300:#1f2126;--cpd-color-gray-1400:#1a1c21;--cpd-color-red-100:#fff7f6;--cpd-color-red-200:#ffefec;--cpd-color-red-300:#ffdfda;--cpd-color-red-400:#ffd1ca;--cpd-color-red-500:#ffafa5;--cpd-color-red-600:#ff8c81;--cpd-color-red-700:#ff4e49;--cpd-color-red-800:#e11e2a;--cpd-color-red-900:#99001a;--cpd-color-red-1000:#8b000c;--cpd-color-red-1100:#700;--cpd-color-red-1200:#670000;--cpd-color-red-1300:#4c0000;--cpd-color-red-1400:#420000;--cpd-color-orange-100:#fff6ef;--cpd-color-orange-200:#ffefe4;--cpd-color-orange-300:#ffdfc8;--cpd-color-orange-400:#ffd4b5;--cpd-color-orange-500:#fdb37c;--cpd-color-orange-600:#f89440;--cpd-color-orange-700:#e26e00;--cpd-color-orange-800:#c44d00;--cpd-color-orange-900:#931700;--cpd-color-orange-1000:#890800;--cpd-color-orange-1100:#700;--cpd-color-orange-1200:#670000;--cpd-color-orange-1300:#4c0000;--cpd-color-orange-1400:#420000;--cpd-color-yellow-100:#fff8e0;--cpd-color-yellow-200:#fff2c1;--cpd-color-yellow-300:#ffe484;--cpd-color-yellow-400:#ffda49;--cpd-color-yellow-500:#f1bd00;--cpd-color-yellow-600:#dea200;--cpd-color-yellow-700:#c38100;--cpd-color-yellow-800:#a76300;--cpd-color-yellow-900:#773800;--cpd-color-yellow-1000:#6e3100;--cpd-color-yellow-1100:#612600;--cpd-color-yellow-1200:#571d00;--cpd-color-yellow-1300:#450c00;--cpd-color-yellow-1400:#3f0500;--cpd-color-lime-100:#f1fcee;--cpd-color-lime-200:#e0f8d9;--cpd-color-lime-300:#c8f1ba;--cpd-color-lime-400:#afeb9b;--cpd-color-lime-500:#76db4c;--cpd-color-lime-600:#54c424;--cpd-color-lime-700:#3aa31a;--cpd-color-lime-800:#1f850f;--cpd-color-lime-900:#005700;--cpd-color-lime-1000:#004f00;--cpd-color-lime-1100:#004200;--cpd-color-lime-1200:#003900;--cpd-color-lime-1300:#002900;--cpd-color-lime-1400:#020;--cpd-color-green-100:#f1fbf6;--cpd-color-green-200:#e3f7ed;--cpd-color-green-300:#c6eedb;--cpd-color-green-400:#afe8ce;--cpd-color-green-500:#71d7ae;--cpd-color-green-600:#0bc491;--cpd-color-green-700:#00a27c;--cpd-color-green-800:#008268;--cpd-color-green-900:#00553d;--cpd-color-green-1000:#004d36;--cpd-color-green-1100:#00402b;--cpd-color-green-1200:#003723;--cpd-color-green-1300:#002715;--cpd-color-green-1400:#00210f;--cpd-color-cyan-100:#f1fafb;--cpd-color-cyan-200:#e3f5f8;--cpd-color-cyan-300:#c7ecf0;--cpd-color-cyan-400:#b1e4eb;--cpd-color-cyan-500:#76d1dd;--cpd-color-cyan-600:#15becf;--cpd-color-cyan-700:#009ac3;--cpd-color-cyan-800:#007ab3;--cpd-color-cyan-900:#004c84;--cpd-color-cyan-1000:#00447b;--cpd-color-cyan-1100:#00376e;--cpd-color-cyan-1200:#002e64;--cpd-color-cyan-1300:#001e53;--cpd-color-cyan-1400:#00174d;--cpd-color-blue-100:#f4f8ff;--cpd-color-blue-200:#e9f2ff;--cpd-color-blue-300:#d8e7fe;--cpd-color-blue-400:#c8ddfd;--cpd-color-blue-500:#a3c6fa;--cpd-color-blue-600:#7eaff6;--cpd-color-blue-700:#4a8ef0;--cpd-color-blue-800:#046ee8;--cpd-color-blue-900:#0543a7;--cpd-color-blue-1000:#053b9a;--cpd-color-blue-1100:#043088;--cpd-color-blue-1200:#03277b;--cpd-color-blue-1300:#001569;--cpd-color-blue-1400:#000c63;--cpd-color-purple-100:#f8f7ff;--cpd-color-purple-200:#f1efff;--cpd-color-purple-300:#e6e2ff;--cpd-color-purple-400:#ddd8ff;--cpd-color-purple-500:#c5bbff;--cpd-color-purple-600:#b1a0ff;--cpd-color-purple-700:#9778fe;--cpd-color-purple-800:#824ef9;--cpd-color-purple-900:#571cc4;--cpd-color-purple-1000:#4f0dba;--cpd-color-purple-1100:#4200a6;--cpd-color-purple-1200:#360094;--cpd-color-purple-1300:#240070;--cpd-color-purple-1400:#1f0062;--cpd-color-fuchsia-100:#fcf5fd;--cpd-color-fuchsia-200:#faeefb;--cpd-color-fuchsia-300:#f6dff7;--cpd-color-fuchsia-400:#f1d2f3;--cpd-color-fuchsia-500:#e7b2ea;--cpd-color-fuchsia-600:#db93e1;--cpd-color-fuchsia-700:#cb68d4;--cpd-color-fuchsia-800:#b937c6;--cpd-color-fuchsia-900:#781c90;--cpd-color-fuchsia-1000:#6c1785;--cpd-color-fuchsia-1100:#5c0f76;--cpd-color-fuchsia-1200:#52026c;--cpd-color-fuchsia-1300:#3b0053;--cpd-color-fuchsia-1400:#32004a;--cpd-color-pink-100:#fff5f7;--cpd-color-pink-200:#ffecf0;--cpd-color-pink-300:#ffdee5;--cpd-color-pink-400:#ffd0da;--cpd-color-pink-500:#ffadc0;--cpd-color-pink-600:#ff88a6;--cpd-color-pink-700:#f94e84;--cpd-color-pink-800:#e00c6a;--cpd-color-pink-900:#92084b;--cpd-color-pink-1000:#840745;--cpd-color-pink-1100:#72003a;--cpd-color-pink-1200:#64002f;--cpd-color-pink-1300:#4a001c;--cpd-color-pink-1400:#410015;--cpd-color-alpha-gray-100:#3668810a;--cpd-color-alpha-gray-200:#0526570f;--cpd-color-alpha-gray-300:#052e611f;--cpd-color-alpha-gray-400:#05255129;--cpd-color-alpha-gray-500:#011d3c42;--cpd-color-alpha-gray-600:#01153259;--cpd-color-alpha-gray-700:#05152e7a;--cpd-color-alpha-gray-800:#020e2294;--cpd-color-alpha-gray-900:#030711ba;--cpd-color-alpha-gray-1000:#02060dc2;--cpd-color-alpha-gray-1100:#03060ccc;--cpd-color-alpha-gray-1200:#020509d4;--cpd-color-alpha-gray-1300:#00040ae0;--cpd-color-alpha-gray-1400:#010309e6;--cpd-color-alpha-red-100:#ff391f0a;--cpd-color-alpha-red-200:#ff381414;--cpd-color-alpha-red-300:#ff2b0a26;--cpd-color-alpha-red-400:#ff260536;--cpd-color-alpha-red-500:#ff22055c;--cpd-color-alpha-red-600:#ff1a0580;--cpd-color-alpha-red-700:#ff0900b8;--cpd-color-alpha-red-800:#de0211e3;--cpd-color-alpha-red-900:#99001a;--cpd-color-alpha-red-1000:#8a000b;--cpd-color-alpha-red-1100:#750000;--cpd-color-alpha-red-1200:#600;--cpd-color-alpha-red-1300:#4d0000;--cpd-color-alpha-red-1400:#420000;--cpd-color-alpha-orange-100:#ff7d1a12;--cpd-color-alpha-orange-200:#ff6c0a1c;--cpd-color-alpha-orange-300:#ff6d0538;--cpd-color-alpha-orange-400:#ff700a4d;--cpd-color-alpha-orange-500:#fc6f0385;--cpd-color-alpha-orange-600:#f56e00bf;--cpd-color-alpha-orange-700:#e06c00;--cpd-color-alpha-orange-800:#c24e00;--cpd-color-alpha-orange-900:#941600;--cpd-color-alpha-orange-1000:#8a0900;--cpd-color-alpha-orange-1100:#750000;--cpd-color-alpha-orange-1200:#600;--cpd-color-alpha-orange-1300:#4d0000;--cpd-color-alpha-orange-1400:#420000;--cpd-color-alpha-yellow-100:#ffc70f21;--cpd-color-alpha-yellow-200:#ffc90540;--cpd-color-alpha-yellow-300:#ffc9057d;--cpd-color-alpha-yellow-400:#ffcc00b8;--cpd-color-alpha-yellow-500:#f0bc00;--cpd-color-alpha-yellow-600:#e0a500;--cpd-color-alpha-yellow-700:#c28100;--cpd-color-alpha-yellow-800:#a86500;--cpd-color-alpha-yellow-900:#753700;--cpd-color-alpha-yellow-1000:#703200;--cpd-color-alpha-yellow-1100:#612700;--cpd-color-alpha-yellow-1200:#571d00;--cpd-color-alpha-yellow-1300:#470c00;--cpd-color-alpha-yellow-1400:#3d0500;--cpd-color-alpha-lime-100:#38d40c12;--cpd-color-alpha-lime-200:#2ecf0226;--cpd-color-alpha-lime-300:#3ace0947;--cpd-color-alpha-lime-400:#37cc0566;--cpd-color-alpha-lime-500:#40ce03b5;--cpd-color-alpha-lime-600:#39bd00db;--cpd-color-alpha-lime-700:#249801e6;--cpd-color-alpha-lime-800:#127e02f2;--cpd-color-alpha-lime-900:#005700;--cpd-color-alpha-lime-1000:#005200;--cpd-color-alpha-lime-1100:#004200;--cpd-color-alpha-lime-1200:#003800;--cpd-color-alpha-lime-1300:#002900;--cpd-color-alpha-lime-1400:#002400;--cpd-color-alpha-green-100:#16bb690f;--cpd-color-alpha-green-200:#00b85c1c;--cpd-color-alpha-green-300:#07b6613b;--cpd-color-alpha-green-400:#05b86752;--cpd-color-alpha-green-500:#01b76e8f;--cpd-color-alpha-green-600:#01c18af5;--cpd-color-alpha-green-700:#00a37d;--cpd-color-alpha-green-800:#00856a;--cpd-color-alpha-green-900:#00573e;--cpd-color-alpha-green-1000:#004d36;--cpd-color-alpha-green-1100:#00422c;--cpd-color-alpha-green-1200:#003824;--cpd-color-alpha-green-1300:#002916;--cpd-color-alpha-green-1400:#002410;--cpd-color-alpha-cyan-100:#16abbb0f;--cpd-color-alpha-cyan-200:#00a8c21c;--cpd-color-alpha-cyan-300:#00aabd38;--cpd-color-alpha-cyan-400:#03a9bf4f;--cpd-color-alpha-cyan-500:#01aac18a;--cpd-color-alpha-cyan-600:#01b7cbeb;--cpd-color-alpha-cyan-700:#0098c2;--cpd-color-alpha-cyan-800:#007ab3;--cpd-color-alpha-cyan-900:#004d85;--cpd-color-alpha-cyan-1000:#00437a;--cpd-color-alpha-cyan-1100:#003870;--cpd-color-alpha-cyan-1200:#003066;--cpd-color-alpha-cyan-1300:#001e52;--cpd-color-alpha-cyan-1400:#00174d;--cpd-color-alpha-blue-100:#2474ff0d;--cpd-color-alpha-blue-200:#0a70ff17;--cpd-color-alpha-blue-300:#0b6af929;--cpd-color-alpha-blue-400:#0565f538;--cpd-color-alpha-blue-500:#0663ef5e;--cpd-color-alpha-blue-600:#0264ed82;--cpd-color-alpha-blue-700:#0062ebb5;--cpd-color-alpha-blue-800:#016ee9fc;--cpd-color-alpha-blue-900:#0241a7fc;--cpd-color-alpha-blue-1000:#023997fc;--cpd-color-alpha-blue-1100:#012e89fc;--cpd-color-alpha-blue-1200:#00257afc;--cpd-color-alpha-blue-1300:#00156b;--cpd-color-alpha-blue-1400:#000b61;--cpd-color-alpha-purple-100:#5338ff0a;--cpd-color-alpha-purple-200:#381aff12;--cpd-color-alpha-purple-300:#2f0fff1f;--cpd-color-alpha-purple-400:#2b0aff29;--cpd-color-alpha-purple-500:#2b05ff45;--cpd-color-alpha-purple-600:#3305ff61;--cpd-color-alpha-purple-700:#3c00ff87;--cpd-color-alpha-purple-800:#4c02f7b3;--cpd-color-alpha-purple-900:#4503bfe6;--cpd-color-alpha-purple-1000:#4600b8f2;--cpd-color-alpha-purple-1100:#4300a8;--cpd-color-alpha-purple-1200:#360094;--cpd-color-alpha-purple-1300:#240070;--cpd-color-alpha-purple-1400:#1f0061;--cpd-color-alpha-fuchsia-100:#b505cc0a;--cpd-color-alpha-fuchsia-200:#b60cc612;--cpd-color-alpha-fuchsia-300:#bd09c321;--cpd-color-alpha-fuchsia-400:#b105bd2e;--cpd-color-alpha-fuchsia-500:#b207bb4f;--cpd-color-alpha-fuchsia-600:#aa04b96e;--cpd-color-alpha-fuchsia-700:#ab03ba99;--cpd-color-alpha-fuchsia-800:#a402b6c9;--cpd-color-alpha-fuchsia-900:#6a0387e6;--cpd-color-alpha-fuchsia-1000:#5e007ae8;--cpd-color-alpha-fuchsia-1100:#53026ff2;--cpd-color-alpha-fuchsia-1200:#53026e;--cpd-color-alpha-fuchsia-1300:#3a0052;--cpd-color-alpha-fuchsia-1400:#34004d;--cpd-color-alpha-pink-100:#ff05370a;--cpd-color-alpha-pink-200:#ff144714;--cpd-color-alpha-pink-300:#ff003721;--cpd-color-alpha-pink-400:#ff0a3f30;--cpd-color-alpha-pink-500:#ff053f54;--cpd-color-alpha-pink-600:#ff004078;--cpd-color-alpha-pink-700:#f70250b3;--cpd-color-alpha-pink-800:#de0265f5;--cpd-color-alpha-pink-900:#8f0045f7;--cpd-color-alpha-pink-1000:#830242fa;--cpd-color-alpha-pink-1100:#70003a;--cpd-color-alpha-pink-1200:#660030;--cpd-color-alpha-pink-1300:#4d001d;--cpd-color-alpha-pink-1400:#420015;--cpd-color-transparent:#0000}}}@media screen and (prefers-color-scheme:light) and (prefers-contrast:more){@layer cpd-base{:root{--cpd-color-theme-bg:#fff;--cpd-color-gray-100:#f7f9fa;--cpd-color-gray-200:#f0f2f5;--cpd-color-gray-300:#e1e6ec;--cpd-color-gray-400:#d7dce3;--cpd-color-gray-500:#bdc4cc;--cpd-color-gray-600:#a6adb7;--cpd-color-gray-700:#878f9b;--cpd-color-gray-800:#6c737e;--cpd-color-gray-900:#474a51;--cpd-color-gray-1000:#3f4248;--cpd-color-gray-1100:#35383d;--cpd-color-gray-1200:#2d3034;--cpd-color-gray-1300:#1f2126;--cpd-color-gray-1400:#1a1c21;--cpd-color-red-100:#fff7f6;--cpd-color-red-200:#ffefec;--cpd-color-red-300:#ffdfda;--cpd-color-red-400:#ffd1ca;--cpd-color-red-500:#ffafa5;--cpd-color-red-600:#ff8c81;--cpd-color-red-700:#ff4e49;--cpd-color-red-800:#e11e2a;--cpd-color-red-900:#99001a;--cpd-color-red-1000:#8b000c;--cpd-color-red-1100:#700;--cpd-color-red-1200:#670000;--cpd-color-red-1300:#4c0000;--cpd-color-red-1400:#420000;--cpd-color-orange-100:#fff6ef;--cpd-color-orange-200:#ffefe4;--cpd-color-orange-300:#ffdfc8;--cpd-color-orange-400:#ffd4b5;--cpd-color-orange-500:#fdb37c;--cpd-color-orange-600:#f89440;--cpd-color-orange-700:#e26e00;--cpd-color-orange-800:#c44d00;--cpd-color-orange-900:#931700;--cpd-color-orange-1000:#890800;--cpd-color-orange-1100:#700;--cpd-color-orange-1200:#670000;--cpd-color-orange-1300:#4c0000;--cpd-color-orange-1400:#420000;--cpd-color-yellow-100:#fff8e0;--cpd-color-yellow-200:#fff2c1;--cpd-color-yellow-300:#ffe484;--cpd-color-yellow-400:#ffda49;--cpd-color-yellow-500:#f1bd00;--cpd-color-yellow-600:#dea200;--cpd-color-yellow-700:#c38100;--cpd-color-yellow-800:#a76300;--cpd-color-yellow-900:#773800;--cpd-color-yellow-1000:#6e3100;--cpd-color-yellow-1100:#612600;--cpd-color-yellow-1200:#571d00;--cpd-color-yellow-1300:#450c00;--cpd-color-yellow-1400:#3f0500;--cpd-color-lime-100:#f1fcee;--cpd-color-lime-200:#e0f8d9;--cpd-color-lime-300:#c8f1ba;--cpd-color-lime-400:#afeb9b;--cpd-color-lime-500:#76db4c;--cpd-color-lime-600:#54c424;--cpd-color-lime-700:#3aa31a;--cpd-color-lime-800:#1f850f;--cpd-color-lime-900:#005700;--cpd-color-lime-1000:#004f00;--cpd-color-lime-1100:#004200;--cpd-color-lime-1200:#003900;--cpd-color-lime-1300:#002900;--cpd-color-lime-1400:#020;--cpd-color-green-100:#f1fbf6;--cpd-color-green-200:#e3f7ed;--cpd-color-green-300:#c6eedb;--cpd-color-green-400:#afe8ce;--cpd-color-green-500:#71d7ae;--cpd-color-green-600:#0bc491;--cpd-color-green-700:#00a27c;--cpd-color-green-800:#008268;--cpd-color-green-900:#00553d;--cpd-color-green-1000:#004d36;--cpd-color-green-1100:#00402b;--cpd-color-green-1200:#003723;--cpd-color-green-1300:#002715;--cpd-color-green-1400:#00210f;--cpd-color-cyan-100:#f1fafb;--cpd-color-cyan-200:#e3f5f8;--cpd-color-cyan-300:#c7ecf0;--cpd-color-cyan-400:#b1e4eb;--cpd-color-cyan-500:#76d1dd;--cpd-color-cyan-600:#15becf;--cpd-color-cyan-700:#009ac3;--cpd-color-cyan-800:#007ab3;--cpd-color-cyan-900:#004c84;--cpd-color-cyan-1000:#00447b;--cpd-color-cyan-1100:#00376e;--cpd-color-cyan-1200:#002e64;--cpd-color-cyan-1300:#001e53;--cpd-color-cyan-1400:#00174d;--cpd-color-blue-100:#f4f8ff;--cpd-color-blue-200:#e9f2ff;--cpd-color-blue-300:#d8e7fe;--cpd-color-blue-400:#c8ddfd;--cpd-color-blue-500:#a3c6fa;--cpd-color-blue-600:#7eaff6;--cpd-color-blue-700:#4a8ef0;--cpd-color-blue-800:#046ee8;--cpd-color-blue-900:#0543a7;--cpd-color-blue-1000:#053b9a;--cpd-color-blue-1100:#043088;--cpd-color-blue-1200:#03277b;--cpd-color-blue-1300:#001569;--cpd-color-blue-1400:#000c63;--cpd-color-purple-100:#f8f7ff;--cpd-color-purple-200:#f1efff;--cpd-color-purple-300:#e6e2ff;--cpd-color-purple-400:#ddd8ff;--cpd-color-purple-500:#c5bbff;--cpd-color-purple-600:#b1a0ff;--cpd-color-purple-700:#9778fe;--cpd-color-purple-800:#824ef9;--cpd-color-purple-900:#571cc4;--cpd-color-purple-1000:#4f0dba;--cpd-color-purple-1100:#4200a6;--cpd-color-purple-1200:#360094;--cpd-color-purple-1300:#240070;--cpd-color-purple-1400:#1f0062;--cpd-color-fuchsia-100:#fcf5fd;--cpd-color-fuchsia-200:#faeefb;--cpd-color-fuchsia-300:#f6dff7;--cpd-color-fuchsia-400:#f1d2f3;--cpd-color-fuchsia-500:#e7b2ea;--cpd-color-fuchsia-600:#db93e1;--cpd-color-fuchsia-700:#cb68d4;--cpd-color-fuchsia-800:#b937c6;--cpd-color-fuchsia-900:#781c90;--cpd-color-fuchsia-1000:#6c1785;--cpd-color-fuchsia-1100:#5c0f76;--cpd-color-fuchsia-1200:#52026c;--cpd-color-fuchsia-1300:#3b0053;--cpd-color-fuchsia-1400:#32004a;--cpd-color-pink-100:#fff5f7;--cpd-color-pink-200:#ffecf0;--cpd-color-pink-300:#ffdee5;--cpd-color-pink-400:#ffd0da;--cpd-color-pink-500:#ffadc0;--cpd-color-pink-600:#ff88a6;--cpd-color-pink-700:#f94e84;--cpd-color-pink-800:#e00c6a;--cpd-color-pink-900:#92084b;--cpd-color-pink-1000:#840745;--cpd-color-pink-1100:#72003a;--cpd-color-pink-1200:#64002f;--cpd-color-pink-1300:#4a001c;--cpd-color-pink-1400:#410015;--cpd-color-alpha-gray-100:#3668810a;--cpd-color-alpha-gray-200:#0526570f;--cpd-color-alpha-gray-300:#052e611f;--cpd-color-alpha-gray-400:#05255129;--cpd-color-alpha-gray-500:#011d3c42;--cpd-color-alpha-gray-600:#01153259;--cpd-color-alpha-gray-700:#05152e7a;--cpd-color-alpha-gray-800:#020e2294;--cpd-color-alpha-gray-900:#030711ba;--cpd-color-alpha-gray-1000:#02060dc2;--cpd-color-alpha-gray-1100:#03060ccc;--cpd-color-alpha-gray-1200:#020509d4;--cpd-color-alpha-gray-1300:#00040ae0;--cpd-color-alpha-gray-1400:#010309e6;--cpd-color-alpha-red-100:#ff391f0a;--cpd-color-alpha-red-200:#ff381414;--cpd-color-alpha-red-300:#ff2b0a26;--cpd-color-alpha-red-400:#ff260536;--cpd-color-alpha-red-500:#ff22055c;--cpd-color-alpha-red-600:#ff1a0580;--cpd-color-alpha-red-700:#ff0900b8;--cpd-color-alpha-red-800:#de0211e3;--cpd-color-alpha-red-900:#99001a;--cpd-color-alpha-red-1000:#8a000b;--cpd-color-alpha-red-1100:#750000;--cpd-color-alpha-red-1200:#600;--cpd-color-alpha-red-1300:#4d0000;--cpd-color-alpha-red-1400:#420000;--cpd-color-alpha-orange-100:#ff7d1a12;--cpd-color-alpha-orange-200:#ff6c0a1c;--cpd-color-alpha-orange-300:#ff6d0538;--cpd-color-alpha-orange-400:#ff700a4d;--cpd-color-alpha-orange-500:#fc6f0385;--cpd-color-alpha-orange-600:#f56e00bf;--cpd-color-alpha-orange-700:#e06c00;--cpd-color-alpha-orange-800:#c24e00;--cpd-color-alpha-orange-900:#941600;--cpd-color-alpha-orange-1000:#8a0900;--cpd-color-alpha-orange-1100:#750000;--cpd-color-alpha-orange-1200:#600;--cpd-color-alpha-orange-1300:#4d0000;--cpd-color-alpha-orange-1400:#420000;--cpd-color-alpha-yellow-100:#ffc70f21;--cpd-color-alpha-yellow-200:#ffc90540;--cpd-color-alpha-yellow-300:#ffc9057d;--cpd-color-alpha-yellow-400:#ffcc00b8;--cpd-color-alpha-yellow-500:#f0bc00;--cpd-color-alpha-yellow-600:#e0a500;--cpd-color-alpha-yellow-700:#c28100;--cpd-color-alpha-yellow-800:#a86500;--cpd-color-alpha-yellow-900:#753700;--cpd-color-alpha-yellow-1000:#703200;--cpd-color-alpha-yellow-1100:#612700;--cpd-color-alpha-yellow-1200:#571d00;--cpd-color-alpha-yellow-1300:#470c00;--cpd-color-alpha-yellow-1400:#3d0500;--cpd-color-alpha-lime-100:#38d40c12;--cpd-color-alpha-lime-200:#2ecf0226;--cpd-color-alpha-lime-300:#3ace0947;--cpd-color-alpha-lime-400:#37cc0566;--cpd-color-alpha-lime-500:#40ce03b5;--cpd-color-alpha-lime-600:#39bd00db;--cpd-color-alpha-lime-700:#249801e6;--cpd-color-alpha-lime-800:#127e02f2;--cpd-color-alpha-lime-900:#005700;--cpd-color-alpha-lime-1000:#005200;--cpd-color-alpha-lime-1100:#004200;--cpd-color-alpha-lime-1200:#003800;--cpd-color-alpha-lime-1300:#002900;--cpd-color-alpha-lime-1400:#002400;--cpd-color-alpha-green-100:#16bb690f;--cpd-color-alpha-green-200:#00b85c1c;--cpd-color-alpha-green-300:#07b6613b;--cpd-color-alpha-green-400:#05b86752;--cpd-color-alpha-green-500:#01b76e8f;--cpd-color-alpha-green-600:#01c18af5;--cpd-color-alpha-green-700:#00a37d;--cpd-color-alpha-green-800:#00856a;--cpd-color-alpha-green-900:#00573e;--cpd-color-alpha-green-1000:#004d36;--cpd-color-alpha-green-1100:#00422c;--cpd-color-alpha-green-1200:#003824;--cpd-color-alpha-green-1300:#002916;--cpd-color-alpha-green-1400:#002410;--cpd-color-alpha-cyan-100:#16abbb0f;--cpd-color-alpha-cyan-200:#00a8c21c;--cpd-color-alpha-cyan-300:#00aabd38;--cpd-color-alpha-cyan-400:#03a9bf4f;--cpd-color-alpha-cyan-500:#01aac18a;--cpd-color-alpha-cyan-600:#01b7cbeb;--cpd-color-alpha-cyan-700:#0098c2;--cpd-color-alpha-cyan-800:#007ab3;--cpd-color-alpha-cyan-900:#004d85;--cpd-color-alpha-cyan-1000:#00437a;--cpd-color-alpha-cyan-1100:#003870;--cpd-color-alpha-cyan-1200:#003066;--cpd-color-alpha-cyan-1300:#001e52;--cpd-color-alpha-cyan-1400:#00174d;--cpd-color-alpha-blue-100:#2474ff0d;--cpd-color-alpha-blue-200:#0a70ff17;--cpd-color-alpha-blue-300:#0b6af929;--cpd-color-alpha-blue-400:#0565f538;--cpd-color-alpha-blue-500:#0663ef5e;--cpd-color-alpha-blue-600:#0264ed82;--cpd-color-alpha-blue-700:#0062ebb5;--cpd-color-alpha-blue-800:#016ee9fc;--cpd-color-alpha-blue-900:#0241a7fc;--cpd-color-alpha-blue-1000:#023997fc;--cpd-color-alpha-blue-1100:#012e89fc;--cpd-color-alpha-blue-1200:#00257afc;--cpd-color-alpha-blue-1300:#00156b;--cpd-color-alpha-blue-1400:#000b61;--cpd-color-alpha-purple-100:#5338ff0a;--cpd-color-alpha-purple-200:#381aff12;--cpd-color-alpha-purple-300:#2f0fff1f;--cpd-color-alpha-purple-400:#2b0aff29;--cpd-color-alpha-purple-500:#2b05ff45;--cpd-color-alpha-purple-600:#3305ff61;--cpd-color-alpha-purple-700:#3c00ff87;--cpd-color-alpha-purple-800:#4c02f7b3;--cpd-color-alpha-purple-900:#4503bfe6;--cpd-color-alpha-purple-1000:#4600b8f2;--cpd-color-alpha-purple-1100:#4300a8;--cpd-color-alpha-purple-1200:#360094;--cpd-color-alpha-purple-1300:#240070;--cpd-color-alpha-purple-1400:#1f0061;--cpd-color-alpha-fuchsia-100:#b505cc0a;--cpd-color-alpha-fuchsia-200:#b60cc612;--cpd-color-alpha-fuchsia-300:#bd09c321;--cpd-color-alpha-fuchsia-400:#b105bd2e;--cpd-color-alpha-fuchsia-500:#b207bb4f;--cpd-color-alpha-fuchsia-600:#aa04b96e;--cpd-color-alpha-fuchsia-700:#ab03ba99;--cpd-color-alpha-fuchsia-800:#a402b6c9;--cpd-color-alpha-fuchsia-900:#6a0387e6;--cpd-color-alpha-fuchsia-1000:#5e007ae8;--cpd-color-alpha-fuchsia-1100:#53026ff2;--cpd-color-alpha-fuchsia-1200:#53026e;--cpd-color-alpha-fuchsia-1300:#3a0052;--cpd-color-alpha-fuchsia-1400:#34004d;--cpd-color-alpha-pink-100:#ff05370a;--cpd-color-alpha-pink-200:#ff144714;--cpd-color-alpha-pink-300:#ff003721;--cpd-color-alpha-pink-400:#ff0a3f30;--cpd-color-alpha-pink-500:#ff053f54;--cpd-color-alpha-pink-600:#ff004078;--cpd-color-alpha-pink-700:#f70250b3;--cpd-color-alpha-pink-800:#de0265f5;--cpd-color-alpha-pink-900:#8f0045f7;--cpd-color-alpha-pink-1000:#830242fa;--cpd-color-alpha-pink-1100:#70003a;--cpd-color-alpha-pink-1200:#660030;--cpd-color-alpha-pink-1300:#4d001d;--cpd-color-alpha-pink-1400:#420015;--cpd-color-transparent:#0000}}}@media screen{@layer cpd-semantic{.cpd-theme-light-hc.cpd-theme-light-hc{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-theme-bg);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-gray-300);--cpd-color-gradient-action-stop1:var(--cpd-color-green-500);--cpd-color-gradient-action-stop2:var(--cpd-color-green-700);--cpd-color-gradient-action-stop3:var(--cpd-color-green-900);--cpd-color-gradient-action-stop4:var(--cpd-color-green-1100);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen and (prefers-color-scheme:light) and (prefers-contrast:more){@layer cpd-semantic{:root{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-theme-bg);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-gray-300);--cpd-color-gradient-action-stop1:var(--cpd-color-green-500);--cpd-color-gradient-action-stop2:var(--cpd-color-green-700);--cpd-color-gradient-action-stop3:var(--cpd-color-green-900);--cpd-color-gradient-action-stop4:var(--cpd-color-green-1100);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen{@layer cpd-base{.cpd-theme-dark.cpd-theme-dark{--cpd-color-theme-bg:#101317;--cpd-color-gray-100:#14171b;--cpd-color-gray-200:#181a1f;--cpd-color-gray-300:#1d1f24;--cpd-color-gray-400:#26282d;--cpd-color-gray-500:#323539;--cpd-color-gray-600:#3c3f44;--cpd-color-gray-700:#4a4f55;--cpd-color-gray-800:#656c76;--cpd-color-gray-900:#808994;--cpd-color-gray-1000:#9199a4;--cpd-color-gray-1100:#a3aab4;--cpd-color-gray-1200:#bdc3cc;--cpd-color-gray-1300:#d9dee4;--cpd-color-gray-1400:#ebeef2;--cpd-color-red-100:#370000;--cpd-color-red-200:#3e0000;--cpd-color-red-300:#470000;--cpd-color-red-400:#590000;--cpd-color-red-500:#710000;--cpd-color-red-600:#830009;--cpd-color-red-700:#9f0d1e;--cpd-color-red-800:#d1212a;--cpd-color-red-900:#fd3e3c;--cpd-color-red-1000:#ff665d;--cpd-color-red-1100:#ff877c;--cpd-color-red-1200:#ffaea4;--cpd-color-red-1300:#ffd4cd;--cpd-color-red-1400:#ffe9e6;--cpd-color-orange-100:#380000;--cpd-color-orange-200:#3c0000;--cpd-color-orange-300:#470000;--cpd-color-orange-400:#580000;--cpd-color-orange-500:#710000;--cpd-color-orange-600:#830500;--cpd-color-orange-700:#972206;--cpd-color-orange-800:#b94607;--cpd-color-orange-900:#da670d;--cpd-color-orange-1000:#eb7a12;--cpd-color-orange-1100:#f6913d;--cpd-color-orange-1200:#fbb37e;--cpd-color-orange-1300:#ffd5b9;--cpd-color-orange-1400:#ffeadb;--cpd-color-yellow-100:#360000;--cpd-color-yellow-200:#3a0300;--cpd-color-yellow-300:#410900;--cpd-color-yellow-400:#4c1400;--cpd-color-yellow-500:#5c2400;--cpd-color-yellow-600:#682e03;--cpd-color-yellow-700:#7c3e02;--cpd-color-yellow-800:#9d5b00;--cpd-color-yellow-900:#bc7a00;--cpd-color-yellow-1000:#cc8c00;--cpd-color-yellow-1100:#db9f00;--cpd-color-yellow-1200:#efbb0b;--cpd-color-yellow-1300:#fedb58;--cpd-color-yellow-1400:#ffedb1;--cpd-color-lime-100:#001b00;--cpd-color-lime-200:#002000;--cpd-color-lime-300:#002600;--cpd-color-lime-400:#003000;--cpd-color-lime-500:#003e00;--cpd-color-lime-600:#004a00;--cpd-color-lime-700:#005c00;--cpd-color-lime-800:#1d7c13;--cpd-color-lime-900:#389b20;--cpd-color-lime-1000:#47ad26;--cpd-color-lime-1100:#56c02c;--cpd-color-lime-1200:#77d94f;--cpd-color-lime-1300:#b6eca3;--cpd-color-lime-1400:#daf6d0;--cpd-color-green-100:#001c0b;--cpd-color-green-200:#001f0e;--cpd-color-green-300:#002513;--cpd-color-green-400:#002e1b;--cpd-color-green-500:#003d29;--cpd-color-green-600:#004832;--cpd-color-green-700:#005a43;--cpd-color-green-800:#007a62;--cpd-color-green-900:#129a78;--cpd-color-green-1000:#17ac84;--cpd-color-green-1100:#1fc090;--cpd-color-green-1200:#72d5ae;--cpd-color-green-1300:#b5e8d1;--cpd-color-green-1400:#d9f4e7;--cpd-color-cyan-100:#014;--cpd-color-cyan-200:#001448;--cpd-color-cyan-300:#001b4e;--cpd-color-cyan-400:#002559;--cpd-color-cyan-500:#003468;--cpd-color-cyan-600:#003f75;--cpd-color-cyan-700:#005188;--cpd-color-cyan-800:#0271aa;--cpd-color-cyan-900:#0093be;--cpd-color-cyan-1000:#02a7c6;--cpd-color-cyan-1100:#21bacd;--cpd-color-cyan-1200:#78d0dc;--cpd-color-cyan-1300:#b8e5eb;--cpd-color-cyan-1400:#dbf2f5;--cpd-color-blue-100:#00055a;--cpd-color-blue-200:#00095d;--cpd-color-blue-300:#001264;--cpd-color-blue-400:#001e6f;--cpd-color-blue-500:#062d80;--cpd-color-blue-600:#083891;--cpd-color-blue-700:#0b49ab;--cpd-color-blue-800:#0e67d9;--cpd-color-blue-900:#4187eb;--cpd-color-blue-1000:#5e99f0;--cpd-color-blue-1100:#7aacf4;--cpd-color-blue-1200:#a1c4f8;--cpd-color-blue-1300:#cbdffc;--cpd-color-blue-1400:#e4eefe;--cpd-color-purple-100:#1a0055;--cpd-color-purple-200:#1c005a;--cpd-color-purple-300:#22006a;--cpd-color-purple-400:#2c0080;--cpd-color-purple-500:#3d009e;--cpd-color-purple-600:#4a0db1;--cpd-color-purple-700:#5a27c6;--cpd-color-purple-800:#7849ec;--cpd-color-purple-900:#9171f9;--cpd-color-purple-1000:#9e87fc;--cpd-color-purple-1100:#ad9cfe;--cpd-color-purple-1200:#c4baff;--cpd-color-purple-1300:#dedaff;--cpd-color-purple-1400:#eeebff;--cpd-color-fuchsia-100:#28003d;--cpd-color-fuchsia-200:#2e0044;--cpd-color-fuchsia-300:#37004e;--cpd-color-fuchsia-400:#46005e;--cpd-color-fuchsia-500:#560f6f;--cpd-color-fuchsia-600:#65177d;--cpd-color-fuchsia-700:#7d2394;--cpd-color-fuchsia-800:#aa36ba;--cpd-color-fuchsia-900:#c560cf;--cpd-color-fuchsia-1000:#cf78d7;--cpd-color-fuchsia-1100:#d991de;--cpd-color-fuchsia-1200:#e5b1e9;--cpd-color-fuchsia-1300:#f1d4f3;--cpd-color-fuchsia-1400:#f8e9f9;--cpd-color-pink-100:#37000f;--cpd-color-pink-200:#3c0012;--cpd-color-pink-300:#450018;--cpd-color-pink-400:#550024;--cpd-color-pink-500:#6d0036;--cpd-color-pink-600:#7c0c41;--cpd-color-pink-700:#99114f;--cpd-color-pink-800:#ce1865;--cpd-color-pink-900:#f4427d;--cpd-color-pink-1000:#fa658f;--cpd-color-pink-1100:#fe84a2;--cpd-color-pink-1200:#ffabbe;--cpd-color-pink-1300:#ffd2dc;--cpd-color-pink-1400:#ffe8ed;--cpd-color-alpha-gray-100:#d8dbdf05;--cpd-color-alpha-gray-200:#d9c3df0a;--cpd-color-alpha-gray-300:#e9dbf00f;--cpd-color-alpha-gray-400:#ede7f41a;--cpd-color-alpha-gray-500:#f4f7fa26;--cpd-color-alpha-gray-600:#eceff833;--cpd-color-alpha-gray-700:#e7f1fd45;--cpd-color-alpha-gray-800:#e0edff69;--cpd-color-alpha-gray-900:#e1effe8a;--cpd-color-alpha-gray-1000:#e1eefe9c;--cpd-color-alpha-gray-1100:#e7f0fead;--cpd-color-alpha-gray-1200:#edf4fcc9;--cpd-color-alpha-gray-1300:#f2f7fde3;--cpd-color-alpha-gray-1400:#f6f9fef2;--cpd-color-alpha-red-100:#380000;--cpd-color-alpha-red-200:#3d0000;--cpd-color-alpha-red-300:#470000;--cpd-color-alpha-red-400:#5c0000;--cpd-color-alpha-red-500:#700000;--cpd-color-alpha-red-600:#850009;--cpd-color-alpha-red-700:#fe0b2499;--cpd-color-alpha-red-800:#fe2530cf;--cpd-color-alpha-red-900:#fd3d3a;--cpd-color-alpha-red-1000:#ff645c;--cpd-color-alpha-red-1100:#ff857a;--cpd-color-alpha-red-1200:#ffaea3;--cpd-color-alpha-red-1300:#ffd3cc;--cpd-color-alpha-red-1400:#ffe8e6;--cpd-color-alpha-orange-100:#380000;--cpd-color-alpha-orange-200:#3d0000;--cpd-color-alpha-orange-300:#470000;--cpd-color-alpha-orange-400:#570000;--cpd-color-alpha-orange-500:#700000;--cpd-color-alpha-orange-600:#850400;--cpd-color-alpha-orange-700:#c72800bd;--cpd-color-alpha-orange-800:#ff5900b5;--cpd-color-alpha-orange-900:#fe740bd9;--cpd-color-alpha-orange-1000:#fe8310eb;--cpd-color-alpha-orange-1100:#fd953ff7;--cpd-color-alpha-orange-1200:#fdb781fc;--cpd-color-alpha-orange-1300:#ffd4b8;--cpd-color-alpha-orange-1400:#ffeadb;--cpd-color-alpha-yellow-100:#380000;--cpd-color-alpha-yellow-200:#380300;--cpd-color-alpha-yellow-300:#420900;--cpd-color-alpha-yellow-400:#4d1400;--cpd-color-alpha-yellow-500:#5c2300;--cpd-color-alpha-yellow-600:#753300de;--cpd-color-alpha-yellow-700:#854200eb;--cpd-color-alpha-yellow-800:#9e5c00;--cpd-color-alpha-yellow-900:#bd7b00;--cpd-color-alpha-yellow-1000:#cc8b00;--cpd-color-alpha-yellow-1100:#dba100;--cpd-color-alpha-yellow-1200:#fdc50df0;--cpd-color-alpha-yellow-1300:#feda58;--cpd-color-alpha-yellow-1400:#ffedb3;--cpd-color-alpha-lime-100:#001a00;--cpd-color-alpha-lime-200:#001f00;--cpd-color-alpha-lime-300:#002900;--cpd-color-alpha-lime-400:#002e00;--cpd-color-alpha-lime-500:#003d00;--cpd-color-alpha-lime-600:#004d00;--cpd-color-alpha-lime-700:#005c00;--cpd-color-alpha-lime-800:#2dfd0d73;--cpd-color-alpha-lime-900:#54fd2694;--cpd-color-alpha-lime-1000:#60fc2ca8;--cpd-color-alpha-lime-1100:#71fd35bd;--cpd-color-alpha-lime-1200:#8dff5cd6;--cpd-color-alpha-lime-1300:#c3ffadeb;--cpd-color-alpha-lime-1400:#e1fdd8f7;--cpd-color-alpha-green-100:#001f0c;--cpd-color-alpha-green-200:#001f0e;--cpd-color-alpha-green-300:#002412;--cpd-color-alpha-green-400:#002e1b;--cpd-color-alpha-green-500:#003d29;--cpd-color-alpha-green-600:#004732;--cpd-color-alpha-green-700:#005c45;--cpd-color-alpha-green-800:#007a62;--cpd-color-alpha-green-900:#12fdbe94;--cpd-color-alpha-green-1000:#1bfebda6;--cpd-color-alpha-green-1100:#26fdbcbd;--cpd-color-alpha-green-1200:#86fdced4;--cpd-color-alpha-green-1300:#c4fde2e8;--cpd-color-alpha-green-1400:#e2fdf1f5;--cpd-color-alpha-cyan-100:#001142;--cpd-color-alpha-cyan-200:#001447;--cpd-color-alpha-cyan-300:#001b4d;--cpd-color-alpha-cyan-400:#00265c;--cpd-color-alpha-cyan-500:#036;--cpd-color-alpha-cyan-600:#003f75;--cpd-color-alpha-cyan-700:#00538a;--cpd-color-alpha-cyan-800:#007ebde0;--cpd-color-alpha-cyan-900:#0091bd;--cpd-color-alpha-cyan-1000:#00bfe0e0;--cpd-color-alpha-cyan-1100:#26e7fdc9;--cpd-color-alpha-cyan-1200:#8af1ffd9;--cpd-color-alpha-cyan-1300:#c9f7fdeb;--cpd-color-alpha-cyan-1400:#e1fbfef5;--cpd-color-alpha-blue-100:#00055c;--cpd-color-alpha-blue-200:#00095c;--cpd-color-alpha-blue-300:#001366;--cpd-color-alpha-blue-400:#001e70;--cpd-color-alpha-blue-500:#003cbda1;--cpd-color-alpha-blue-600:#015afe87;--cpd-color-alpha-blue-700:#0665fea3;--cpd-color-alpha-blue-800:#1077fed6;--cpd-color-alpha-blue-900:#4491fdeb;--cpd-color-alpha-blue-1000:#62a0fef0;--cpd-color-alpha-blue-1100:#7cb2fdf5;--cpd-color-alpha-blue-1200:#a3c8fff7;--cpd-color-alpha-blue-1300:#cde1fefc;--cpd-color-alpha-blue-1400:#e6effe;--cpd-color-alpha-purple-100:#1a0057;--cpd-color-alpha-purple-200:#1d005c;--cpd-color-alpha-purple-300:#22006b;--cpd-color-alpha-purple-400:#2d0080;--cpd-color-alpha-purple-500:#3d009e;--cpd-color-alpha-purple-600:#690dfdab;--cpd-color-alpha-purple-700:#712bfdc2;--cpd-color-alpha-purple-800:#7f4cffeb;--cpd-color-alpha-purple-900:#9271fefa;--cpd-color-alpha-purple-1000:#a28bfefc;--cpd-color-alpha-purple-1100:#ab9afe;--cpd-color-alpha-purple-1200:#c7bdff;--cpd-color-alpha-purple-1300:#dfdbff;--cpd-color-alpha-purple-1400:#eeebff;--cpd-color-alpha-fuchsia-100:#28003d;--cpd-color-alpha-fuchsia-200:#2d0042;--cpd-color-alpha-fuchsia-300:#36004d;--cpd-color-alpha-fuchsia-400:#45005c;--cpd-color-alpha-fuchsia-500:#ca0aff61;--cpd-color-alpha-fuchsia-600:#d21fff70;--cpd-color-alpha-fuchsia-700:#d82ffe8a;--cpd-color-alpha-fuchsia-800:#eb44fdb5;--cpd-color-alpha-fuchsia-900:#f172fdcc;--cpd-color-alpha-fuchsia-1000:#f790fed4;--cpd-color-alpha-fuchsia-1100:#faa4fedb;--cpd-color-alpha-fuchsia-1200:#fac3fee8;--cpd-color-alpha-fuchsia-1300:#fde0fff2;--cpd-color-alpha-fuchsia-1400:#fdecfefa;--cpd-color-alpha-pink-100:#38000f;--cpd-color-alpha-pink-200:#3d0012;--cpd-color-alpha-pink-300:#470019;--cpd-color-alpha-pink-400:#570024;--cpd-color-alpha-pink-500:#6b0036;--cpd-color-alpha-pink-600:#fb047375;--cpd-color-alpha-pink-700:#fd127794;--cpd-color-alpha-pink-800:#fe1b79cc;--cpd-color-alpha-pink-900:#fe4382f5;--cpd-color-alpha-pink-1000:#ff6691fa;--cpd-color-alpha-pink-1100:#fe86a4;--cpd-color-alpha-pink-1200:#ffadc0;--cpd-color-alpha-pink-1300:#ffd1db;--cpd-color-alpha-pink-1400:#ffebef;--cpd-color-transparent:#0000}}}@media screen and (prefers-color-scheme:dark){@layer cpd-base{:root{--cpd-color-theme-bg:#101317;--cpd-color-gray-100:#14171b;--cpd-color-gray-200:#181a1f;--cpd-color-gray-300:#1d1f24;--cpd-color-gray-400:#26282d;--cpd-color-gray-500:#323539;--cpd-color-gray-600:#3c3f44;--cpd-color-gray-700:#4a4f55;--cpd-color-gray-800:#656c76;--cpd-color-gray-900:#808994;--cpd-color-gray-1000:#9199a4;--cpd-color-gray-1100:#a3aab4;--cpd-color-gray-1200:#bdc3cc;--cpd-color-gray-1300:#d9dee4;--cpd-color-gray-1400:#ebeef2;--cpd-color-red-100:#370000;--cpd-color-red-200:#3e0000;--cpd-color-red-300:#470000;--cpd-color-red-400:#590000;--cpd-color-red-500:#710000;--cpd-color-red-600:#830009;--cpd-color-red-700:#9f0d1e;--cpd-color-red-800:#d1212a;--cpd-color-red-900:#fd3e3c;--cpd-color-red-1000:#ff665d;--cpd-color-red-1100:#ff877c;--cpd-color-red-1200:#ffaea4;--cpd-color-red-1300:#ffd4cd;--cpd-color-red-1400:#ffe9e6;--cpd-color-orange-100:#380000;--cpd-color-orange-200:#3c0000;--cpd-color-orange-300:#470000;--cpd-color-orange-400:#580000;--cpd-color-orange-500:#710000;--cpd-color-orange-600:#830500;--cpd-color-orange-700:#972206;--cpd-color-orange-800:#b94607;--cpd-color-orange-900:#da670d;--cpd-color-orange-1000:#eb7a12;--cpd-color-orange-1100:#f6913d;--cpd-color-orange-1200:#fbb37e;--cpd-color-orange-1300:#ffd5b9;--cpd-color-orange-1400:#ffeadb;--cpd-color-yellow-100:#360000;--cpd-color-yellow-200:#3a0300;--cpd-color-yellow-300:#410900;--cpd-color-yellow-400:#4c1400;--cpd-color-yellow-500:#5c2400;--cpd-color-yellow-600:#682e03;--cpd-color-yellow-700:#7c3e02;--cpd-color-yellow-800:#9d5b00;--cpd-color-yellow-900:#bc7a00;--cpd-color-yellow-1000:#cc8c00;--cpd-color-yellow-1100:#db9f00;--cpd-color-yellow-1200:#efbb0b;--cpd-color-yellow-1300:#fedb58;--cpd-color-yellow-1400:#ffedb1;--cpd-color-lime-100:#001b00;--cpd-color-lime-200:#002000;--cpd-color-lime-300:#002600;--cpd-color-lime-400:#003000;--cpd-color-lime-500:#003e00;--cpd-color-lime-600:#004a00;--cpd-color-lime-700:#005c00;--cpd-color-lime-800:#1d7c13;--cpd-color-lime-900:#389b20;--cpd-color-lime-1000:#47ad26;--cpd-color-lime-1100:#56c02c;--cpd-color-lime-1200:#77d94f;--cpd-color-lime-1300:#b6eca3;--cpd-color-lime-1400:#daf6d0;--cpd-color-green-100:#001c0b;--cpd-color-green-200:#001f0e;--cpd-color-green-300:#002513;--cpd-color-green-400:#002e1b;--cpd-color-green-500:#003d29;--cpd-color-green-600:#004832;--cpd-color-green-700:#005a43;--cpd-color-green-800:#007a62;--cpd-color-green-900:#129a78;--cpd-color-green-1000:#17ac84;--cpd-color-green-1100:#1fc090;--cpd-color-green-1200:#72d5ae;--cpd-color-green-1300:#b5e8d1;--cpd-color-green-1400:#d9f4e7;--cpd-color-cyan-100:#014;--cpd-color-cyan-200:#001448;--cpd-color-cyan-300:#001b4e;--cpd-color-cyan-400:#002559;--cpd-color-cyan-500:#003468;--cpd-color-cyan-600:#003f75;--cpd-color-cyan-700:#005188;--cpd-color-cyan-800:#0271aa;--cpd-color-cyan-900:#0093be;--cpd-color-cyan-1000:#02a7c6;--cpd-color-cyan-1100:#21bacd;--cpd-color-cyan-1200:#78d0dc;--cpd-color-cyan-1300:#b8e5eb;--cpd-color-cyan-1400:#dbf2f5;--cpd-color-blue-100:#00055a;--cpd-color-blue-200:#00095d;--cpd-color-blue-300:#001264;--cpd-color-blue-400:#001e6f;--cpd-color-blue-500:#062d80;--cpd-color-blue-600:#083891;--cpd-color-blue-700:#0b49ab;--cpd-color-blue-800:#0e67d9;--cpd-color-blue-900:#4187eb;--cpd-color-blue-1000:#5e99f0;--cpd-color-blue-1100:#7aacf4;--cpd-color-blue-1200:#a1c4f8;--cpd-color-blue-1300:#cbdffc;--cpd-color-blue-1400:#e4eefe;--cpd-color-purple-100:#1a0055;--cpd-color-purple-200:#1c005a;--cpd-color-purple-300:#22006a;--cpd-color-purple-400:#2c0080;--cpd-color-purple-500:#3d009e;--cpd-color-purple-600:#4a0db1;--cpd-color-purple-700:#5a27c6;--cpd-color-purple-800:#7849ec;--cpd-color-purple-900:#9171f9;--cpd-color-purple-1000:#9e87fc;--cpd-color-purple-1100:#ad9cfe;--cpd-color-purple-1200:#c4baff;--cpd-color-purple-1300:#dedaff;--cpd-color-purple-1400:#eeebff;--cpd-color-fuchsia-100:#28003d;--cpd-color-fuchsia-200:#2e0044;--cpd-color-fuchsia-300:#37004e;--cpd-color-fuchsia-400:#46005e;--cpd-color-fuchsia-500:#560f6f;--cpd-color-fuchsia-600:#65177d;--cpd-color-fuchsia-700:#7d2394;--cpd-color-fuchsia-800:#aa36ba;--cpd-color-fuchsia-900:#c560cf;--cpd-color-fuchsia-1000:#cf78d7;--cpd-color-fuchsia-1100:#d991de;--cpd-color-fuchsia-1200:#e5b1e9;--cpd-color-fuchsia-1300:#f1d4f3;--cpd-color-fuchsia-1400:#f8e9f9;--cpd-color-pink-100:#37000f;--cpd-color-pink-200:#3c0012;--cpd-color-pink-300:#450018;--cpd-color-pink-400:#550024;--cpd-color-pink-500:#6d0036;--cpd-color-pink-600:#7c0c41;--cpd-color-pink-700:#99114f;--cpd-color-pink-800:#ce1865;--cpd-color-pink-900:#f4427d;--cpd-color-pink-1000:#fa658f;--cpd-color-pink-1100:#fe84a2;--cpd-color-pink-1200:#ffabbe;--cpd-color-pink-1300:#ffd2dc;--cpd-color-pink-1400:#ffe8ed;--cpd-color-alpha-gray-100:#d8dbdf05;--cpd-color-alpha-gray-200:#d9c3df0a;--cpd-color-alpha-gray-300:#e9dbf00f;--cpd-color-alpha-gray-400:#ede7f41a;--cpd-color-alpha-gray-500:#f4f7fa26;--cpd-color-alpha-gray-600:#eceff833;--cpd-color-alpha-gray-700:#e7f1fd45;--cpd-color-alpha-gray-800:#e0edff69;--cpd-color-alpha-gray-900:#e1effe8a;--cpd-color-alpha-gray-1000:#e1eefe9c;--cpd-color-alpha-gray-1100:#e7f0fead;--cpd-color-alpha-gray-1200:#edf4fcc9;--cpd-color-alpha-gray-1300:#f2f7fde3;--cpd-color-alpha-gray-1400:#f6f9fef2;--cpd-color-alpha-red-100:#380000;--cpd-color-alpha-red-200:#3d0000;--cpd-color-alpha-red-300:#470000;--cpd-color-alpha-red-400:#5c0000;--cpd-color-alpha-red-500:#700000;--cpd-color-alpha-red-600:#850009;--cpd-color-alpha-red-700:#fe0b2499;--cpd-color-alpha-red-800:#fe2530cf;--cpd-color-alpha-red-900:#fd3d3a;--cpd-color-alpha-red-1000:#ff645c;--cpd-color-alpha-red-1100:#ff857a;--cpd-color-alpha-red-1200:#ffaea3;--cpd-color-alpha-red-1300:#ffd3cc;--cpd-color-alpha-red-1400:#ffe8e6;--cpd-color-alpha-orange-100:#380000;--cpd-color-alpha-orange-200:#3d0000;--cpd-color-alpha-orange-300:#470000;--cpd-color-alpha-orange-400:#570000;--cpd-color-alpha-orange-500:#700000;--cpd-color-alpha-orange-600:#850400;--cpd-color-alpha-orange-700:#c72800bd;--cpd-color-alpha-orange-800:#ff5900b5;--cpd-color-alpha-orange-900:#fe740bd9;--cpd-color-alpha-orange-1000:#fe8310eb;--cpd-color-alpha-orange-1100:#fd953ff7;--cpd-color-alpha-orange-1200:#fdb781fc;--cpd-color-alpha-orange-1300:#ffd4b8;--cpd-color-alpha-orange-1400:#ffeadb;--cpd-color-alpha-yellow-100:#380000;--cpd-color-alpha-yellow-200:#380300;--cpd-color-alpha-yellow-300:#420900;--cpd-color-alpha-yellow-400:#4d1400;--cpd-color-alpha-yellow-500:#5c2300;--cpd-color-alpha-yellow-600:#753300de;--cpd-color-alpha-yellow-700:#854200eb;--cpd-color-alpha-yellow-800:#9e5c00;--cpd-color-alpha-yellow-900:#bd7b00;--cpd-color-alpha-yellow-1000:#cc8b00;--cpd-color-alpha-yellow-1100:#dba100;--cpd-color-alpha-yellow-1200:#fdc50df0;--cpd-color-alpha-yellow-1300:#feda58;--cpd-color-alpha-yellow-1400:#ffedb3;--cpd-color-alpha-lime-100:#001a00;--cpd-color-alpha-lime-200:#001f00;--cpd-color-alpha-lime-300:#002900;--cpd-color-alpha-lime-400:#002e00;--cpd-color-alpha-lime-500:#003d00;--cpd-color-alpha-lime-600:#004d00;--cpd-color-alpha-lime-700:#005c00;--cpd-color-alpha-lime-800:#2dfd0d73;--cpd-color-alpha-lime-900:#54fd2694;--cpd-color-alpha-lime-1000:#60fc2ca8;--cpd-color-alpha-lime-1100:#71fd35bd;--cpd-color-alpha-lime-1200:#8dff5cd6;--cpd-color-alpha-lime-1300:#c3ffadeb;--cpd-color-alpha-lime-1400:#e1fdd8f7;--cpd-color-alpha-green-100:#001f0c;--cpd-color-alpha-green-200:#001f0e;--cpd-color-alpha-green-300:#002412;--cpd-color-alpha-green-400:#002e1b;--cpd-color-alpha-green-500:#003d29;--cpd-color-alpha-green-600:#004732;--cpd-color-alpha-green-700:#005c45;--cpd-color-alpha-green-800:#007a62;--cpd-color-alpha-green-900:#12fdbe94;--cpd-color-alpha-green-1000:#1bfebda6;--cpd-color-alpha-green-1100:#26fdbcbd;--cpd-color-alpha-green-1200:#86fdced4;--cpd-color-alpha-green-1300:#c4fde2e8;--cpd-color-alpha-green-1400:#e2fdf1f5;--cpd-color-alpha-cyan-100:#001142;--cpd-color-alpha-cyan-200:#001447;--cpd-color-alpha-cyan-300:#001b4d;--cpd-color-alpha-cyan-400:#00265c;--cpd-color-alpha-cyan-500:#036;--cpd-color-alpha-cyan-600:#003f75;--cpd-color-alpha-cyan-700:#00538a;--cpd-color-alpha-cyan-800:#007ebde0;--cpd-color-alpha-cyan-900:#0091bd;--cpd-color-alpha-cyan-1000:#00bfe0e0;--cpd-color-alpha-cyan-1100:#26e7fdc9;--cpd-color-alpha-cyan-1200:#8af1ffd9;--cpd-color-alpha-cyan-1300:#c9f7fdeb;--cpd-color-alpha-cyan-1400:#e1fbfef5;--cpd-color-alpha-blue-100:#00055c;--cpd-color-alpha-blue-200:#00095c;--cpd-color-alpha-blue-300:#001366;--cpd-color-alpha-blue-400:#001e70;--cpd-color-alpha-blue-500:#003cbda1;--cpd-color-alpha-blue-600:#015afe87;--cpd-color-alpha-blue-700:#0665fea3;--cpd-color-alpha-blue-800:#1077fed6;--cpd-color-alpha-blue-900:#4491fdeb;--cpd-color-alpha-blue-1000:#62a0fef0;--cpd-color-alpha-blue-1100:#7cb2fdf5;--cpd-color-alpha-blue-1200:#a3c8fff7;--cpd-color-alpha-blue-1300:#cde1fefc;--cpd-color-alpha-blue-1400:#e6effe;--cpd-color-alpha-purple-100:#1a0057;--cpd-color-alpha-purple-200:#1d005c;--cpd-color-alpha-purple-300:#22006b;--cpd-color-alpha-purple-400:#2d0080;--cpd-color-alpha-purple-500:#3d009e;--cpd-color-alpha-purple-600:#690dfdab;--cpd-color-alpha-purple-700:#712bfdc2;--cpd-color-alpha-purple-800:#7f4cffeb;--cpd-color-alpha-purple-900:#9271fefa;--cpd-color-alpha-purple-1000:#a28bfefc;--cpd-color-alpha-purple-1100:#ab9afe;--cpd-color-alpha-purple-1200:#c7bdff;--cpd-color-alpha-purple-1300:#dfdbff;--cpd-color-alpha-purple-1400:#eeebff;--cpd-color-alpha-fuchsia-100:#28003d;--cpd-color-alpha-fuchsia-200:#2d0042;--cpd-color-alpha-fuchsia-300:#36004d;--cpd-color-alpha-fuchsia-400:#45005c;--cpd-color-alpha-fuchsia-500:#ca0aff61;--cpd-color-alpha-fuchsia-600:#d21fff70;--cpd-color-alpha-fuchsia-700:#d82ffe8a;--cpd-color-alpha-fuchsia-800:#eb44fdb5;--cpd-color-alpha-fuchsia-900:#f172fdcc;--cpd-color-alpha-fuchsia-1000:#f790fed4;--cpd-color-alpha-fuchsia-1100:#faa4fedb;--cpd-color-alpha-fuchsia-1200:#fac3fee8;--cpd-color-alpha-fuchsia-1300:#fde0fff2;--cpd-color-alpha-fuchsia-1400:#fdecfefa;--cpd-color-alpha-pink-100:#38000f;--cpd-color-alpha-pink-200:#3d0012;--cpd-color-alpha-pink-300:#470019;--cpd-color-alpha-pink-400:#570024;--cpd-color-alpha-pink-500:#6b0036;--cpd-color-alpha-pink-600:#fb047375;--cpd-color-alpha-pink-700:#fd127794;--cpd-color-alpha-pink-800:#fe1b79cc;--cpd-color-alpha-pink-900:#fe4382f5;--cpd-color-alpha-pink-1000:#ff6691fa;--cpd-color-alpha-pink-1100:#fe86a4;--cpd-color-alpha-pink-1200:#ffadc0;--cpd-color-alpha-pink-1300:#ffd1db;--cpd-color-alpha-pink-1400:#ffebef;--cpd-color-transparent:#0000}}}@media screen{@layer cpd-semantic{.cpd-theme-dark.cpd-theme-dark{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-gray-300);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-theme-bg);--cpd-color-gradient-action-stop1:var(--cpd-color-green-1100);--cpd-color-gradient-action-stop2:var(--cpd-color-green-900);--cpd-color-gradient-action-stop3:var(--cpd-color-green-700);--cpd-color-gradient-action-stop4:var(--cpd-color-green-500);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen and (prefers-color-scheme:dark){@layer cpd-semantic{:root{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-gray-300);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-theme-bg);--cpd-color-gradient-action-stop1:var(--cpd-color-green-1100);--cpd-color-gradient-action-stop2:var(--cpd-color-green-900);--cpd-color-gradient-action-stop3:var(--cpd-color-green-700);--cpd-color-gradient-action-stop4:var(--cpd-color-green-500);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen{@layer cpd-base{.cpd-theme-dark-hc.cpd-theme-dark-hc{--cpd-color-theme-bg:#101317;--cpd-color-gray-100:#181a1f;--cpd-color-gray-200:#1d1f24;--cpd-color-gray-300:#26282d;--cpd-color-gray-400:#2b2e33;--cpd-color-gray-500:#3c3f44;--cpd-color-gray-600:#4a4f55;--cpd-color-gray-700:#606770;--cpd-color-gray-800:#79818d;--cpd-color-gray-900:#acb4bd;--cpd-color-gray-1000:#b8bfc7;--cpd-color-gray-1100:#c8ced5;--cpd-color-gray-1200:#d5dae1;--cpd-color-gray-1300:#ebeef2;--cpd-color-gray-1400:#f2f5f7;--cpd-color-red-100:#3e0000;--cpd-color-red-200:#470000;--cpd-color-red-300:#590000;--cpd-color-red-400:#640000;--cpd-color-red-500:#830009;--cpd-color-red-600:#9f0d1e;--cpd-color-red-700:#c81e28;--cpd-color-red-800:#f52f33;--cpd-color-red-900:#ff968c;--cpd-color-red-1000:#ffa79d;--cpd-color-red-1100:#ffbdb5;--cpd-color-red-1200:#ffcfc8;--cpd-color-red-1300:#ffe9e6;--cpd-color-red-1400:#fff2ef;--cpd-color-orange-100:#3c0000;--cpd-color-orange-200:#470000;--cpd-color-orange-300:#580000;--cpd-color-orange-400:#650000;--cpd-color-orange-500:#830500;--cpd-color-orange-600:#972206;--cpd-color-orange-700:#b44007;--cpd-color-orange-800:#d15f0b;--cpd-color-orange-900:#f89d58;--cpd-color-orange-1000:#faad73;--cpd-color-orange-1100:#fdc197;--cpd-color-orange-1200:#fed0b1;--cpd-color-orange-1300:#ffeadb;--cpd-color-orange-1400:#fff2ea;--cpd-color-yellow-100:#3a0300;--cpd-color-yellow-200:#410900;--cpd-color-yellow-300:#4c1400;--cpd-color-yellow-400:#541d00;--cpd-color-yellow-500:#682e03;--cpd-color-yellow-600:#7c3e02;--cpd-color-yellow-700:#985600;--cpd-color-yellow-800:#b47200;--cpd-color-yellow-900:#e3aa00;--cpd-color-yellow-1000:#ebb607;--cpd-color-yellow-1100:#f7c816;--cpd-color-yellow-1200:#fed632;--cpd-color-yellow-1300:#ffedb1;--cpd-color-yellow-1400:#fff4d0;--cpd-color-lime-100:#002000;--cpd-color-lime-200:#002600;--cpd-color-lime-300:#003000;--cpd-color-lime-400:#003700;--cpd-color-lime-500:#004a00;--cpd-color-lime-600:#005c00;--cpd-color-lime-700:#187611;--cpd-color-lime-800:#31941d;--cpd-color-lime-900:#5eca2f;--cpd-color-lime-1000:#6ad639;--cpd-color-lime-1100:#92e175;--cpd-color-lime-1200:#afe99a;--cpd-color-lime-1300:#daf6d0;--cpd-color-lime-1400:#e9f9e3;--cpd-color-green-100:#001f0e;--cpd-color-green-200:#002513;--cpd-color-green-300:#002e1b;--cpd-color-green-400:#003622;--cpd-color-green-500:#004832;--cpd-color-green-600:#005a43;--cpd-color-green-700:#00745c;--cpd-color-green-800:#109173;--cpd-color-green-900:#37c998;--cpd-color-green-1000:#61d2a6;--cpd-color-green-1100:#8fddbc;--cpd-color-green-1200:#ace6cc;--cpd-color-green-1300:#d9f4e7;--cpd-color-green-1400:#e9f8f1;--cpd-color-cyan-100:#001448;--cpd-color-cyan-200:#001b4e;--cpd-color-cyan-300:#002559;--cpd-color-cyan-400:#002d61;--cpd-color-cyan-500:#003f75;--cpd-color-cyan-600:#005188;--cpd-color-cyan-700:#006ca4;--cpd-color-cyan-800:#008aba;--cpd-color-cyan-900:#46c3d2;--cpd-color-cyan-1000:#6bccd9;--cpd-color-cyan-1100:#93d9e2;--cpd-color-cyan-1200:#afe2e9;--cpd-color-cyan-1300:#dbf2f5;--cpd-color-cyan-1400:#eaf7f9;--cpd-color-blue-100:#00095d;--cpd-color-blue-200:#001264;--cpd-color-blue-300:#001e6f;--cpd-color-blue-400:#032677;--cpd-color-blue-500:#083891;--cpd-color-blue-600:#0b49ab;--cpd-color-blue-700:#0e61d1;--cpd-color-blue-800:#337fe9;--cpd-color-blue-900:#89b5f6;--cpd-color-blue-1000:#9ac0f8;--cpd-color-blue-1100:#b2cffa;--cpd-color-blue-1200:#c5dbfc;--cpd-color-blue-1300:#e4eefe;--cpd-color-blue-1400:#eff5fe;--cpd-color-purple-100:#1c005a;--cpd-color-purple-200:#22006a;--cpd-color-purple-300:#2c0080;--cpd-color-purple-400:#350090;--cpd-color-purple-500:#4a0db1;--cpd-color-purple-600:#5a27c6;--cpd-color-purple-700:#7343e6;--cpd-color-purple-800:#8b66f8;--cpd-color-purple-900:#b6a7ff;--cpd-color-purple-1000:#c0b5ff;--cpd-color-purple-1100:#cec7ff;--cpd-color-purple-1200:#dad5ff;--cpd-color-purple-1300:#eeebff;--cpd-color-purple-1400:#f5f3ff;--cpd-color-fuchsia-100:#2e0044;--cpd-color-fuchsia-200:#37004e;--cpd-color-fuchsia-300:#46005e;--cpd-color-fuchsia-400:#4f0368;--cpd-color-fuchsia-500:#65177d;--cpd-color-fuchsia-600:#7d2394;--cpd-color-fuchsia-700:#a233b3;--cpd-color-fuchsia-800:#c153cb;--cpd-color-fuchsia-900:#dd9de3;--cpd-color-fuchsia-1000:#e3abe7;--cpd-color-fuchsia-1100:#eac0ed;--cpd-color-fuchsia-1200:#f0cff2;--cpd-color-fuchsia-1300:#f8e9f9;--cpd-color-fuchsia-1400:#fbf1fb;--cpd-color-pink-100:#3c0012;--cpd-color-pink-200:#450018;--cpd-color-pink-300:#550024;--cpd-color-pink-400:#61002d;--cpd-color-pink-500:#7c0c41;--cpd-color-pink-600:#99114f;--cpd-color-pink-700:#c51761;--cpd-color-pink-800:#f12c75;--cpd-color-pink-900:#ff92ac;--cpd-color-pink-1000:#ffa4b9;--cpd-color-pink-1100:#ffbbca;--cpd-color-pink-1200:#ffccd7;--cpd-color-pink-1300:#ffe8ed;--cpd-color-pink-1400:#fff1f4;--cpd-color-alpha-gray-100:#d9c3df0a;--cpd-color-alpha-gray-200:#e9dbf00f;--cpd-color-alpha-gray-300:#ede7f41a;--cpd-color-alpha-gray-400:#e1e4ef21;--cpd-color-alpha-gray-500:#eceff833;--cpd-color-alpha-gray-600:#e7f1fd45;--cpd-color-alpha-gray-700:#dfebfb63;--cpd-color-alpha-gray-800:#dceafe82;--cpd-color-alpha-gray-900:#ecf4feb8;--cpd-color-alpha-gray-1000:#f0f7ffc2;--cpd-color-alpha-gray-1100:#f0f7ffd1;--cpd-color-alpha-gray-1200:#f1f6fde0;--cpd-color-alpha-gray-1300:#f6f9fef2;--cpd-color-alpha-gray-1400:#fbfdfef7;--cpd-color-alpha-red-100:#3d0000;--cpd-color-alpha-red-200:#470000;--cpd-color-alpha-red-300:#5c0000;--cpd-color-alpha-red-400:#600;--cpd-color-alpha-red-500:#850009;--cpd-color-alpha-red-600:#fe0b2499;--cpd-color-alpha-red-700:#ff242fc4;--cpd-color-alpha-red-800:#ff2e31f5;--cpd-color-alpha-red-900:#ff988f;--cpd-color-alpha-red-1000:#ffa89e;--cpd-color-alpha-red-1100:#ffbfb8;--cpd-color-alpha-red-1200:#ffcec7;--cpd-color-alpha-red-1300:#ffe8e6;--cpd-color-alpha-red-1400:#fff3f0;--cpd-color-alpha-orange-100:#3d0000;--cpd-color-alpha-orange-200:#470000;--cpd-color-alpha-orange-300:#570000;--cpd-color-alpha-orange-400:#600;--cpd-color-alpha-orange-500:#850400;--cpd-color-alpha-orange-600:#c72800bd;--cpd-color-alpha-orange-700:#fa5300b3;--cpd-color-alpha-orange-800:#fe7206cf;--cpd-color-alpha-orange-900:#fda058fa;--cpd-color-alpha-orange-1000:#ffb175fa;--cpd-color-alpha-orange-1100:#fdc196;--cpd-color-alpha-orange-1200:#fed1b3;--cpd-color-alpha-orange-1300:#ffeadb;--cpd-color-alpha-orange-1400:#fff2eb;--cpd-color-alpha-yellow-100:#380300;--cpd-color-alpha-yellow-200:#420900;--cpd-color-alpha-yellow-300:#4d1400;--cpd-color-alpha-yellow-400:#571e00;--cpd-color-alpha-yellow-500:#753300de;--cpd-color-alpha-yellow-600:#854200eb;--cpd-color-alpha-yellow-700:#995700;--cpd-color-alpha-yellow-800:#b37100;--cpd-color-alpha-yellow-900:#e6ac00;--cpd-color-alpha-yellow-1000:#fec406eb;--cpd-color-alpha-yellow-1100:#fecf16f7;--cpd-color-alpha-yellow-1200:#fed634;--cpd-color-alpha-yellow-1300:#ffedb3;--cpd-color-alpha-yellow-1400:#fff4d1;--cpd-color-alpha-lime-100:#001f00;--cpd-color-alpha-lime-200:#002900;--cpd-color-alpha-lime-300:#002e00;--cpd-color-alpha-lime-400:#003800;--cpd-color-alpha-lime-500:#004d00;--cpd-color-alpha-lime-600:#005c00;--cpd-color-alpha-lime-700:#23ff0a6b;--cpd-color-alpha-lime-800:#4dfe258c;--cpd-color-alpha-lime-900:#74fe34c7;--cpd-color-alpha-lime-1000:#7bfe3ed4;--cpd-color-alpha-lime-1100:#a4fd81e0;--cpd-color-alpha-lime-1200:#c1fea9e8;--cpd-color-alpha-lime-1300:#e1fdd8f7;--cpd-color-alpha-lime-1400:#edfee7fa;--cpd-color-alpha-green-100:#001f0e;--cpd-color-alpha-green-200:#002412;--cpd-color-alpha-green-300:#002e1b;--cpd-color-alpha-green-400:#003824;--cpd-color-alpha-green-500:#004732;--cpd-color-alpha-green-600:#005c45;--cpd-color-alpha-green-700:#00755e;--cpd-color-alpha-green-800:#12fdc28a;--cpd-color-alpha-green-900:#40fcbac7;--cpd-color-alpha-green-1000:#75ffc8cf;--cpd-color-alpha-green-1100:#a4fed7db;--cpd-color-alpha-green-1200:#bffde1e6;--cpd-color-alpha-green-1300:#e2fdf1f5;--cpd-color-alpha-green-1400:#edfdf5fa;--cpd-color-alpha-cyan-100:#001447;--cpd-color-alpha-cyan-200:#001b4d;--cpd-color-alpha-cyan-300:#00265c;--cpd-color-alpha-cyan-400:#002d61;--cpd-color-alpha-cyan-500:#003f75;--cpd-color-alpha-cyan-600:#00538a;--cpd-color-alpha-cyan-700:#006da3;--cpd-color-alpha-cyan-800:#008ebd;--cpd-color-alpha-cyan-900:#52edfecf;--cpd-color-alpha-cyan-1000:#7beffed6;--cpd-color-alpha-cyan-1100:#a4f4fee0;--cpd-color-alpha-cyan-1200:#bef5fee8;--cpd-color-alpha-cyan-1300:#e1fbfef5;--cpd-color-alpha-cyan-1400:#f1fdfefa;--cpd-color-alpha-blue-100:#00095c;--cpd-color-alpha-blue-200:#001366;--cpd-color-alpha-blue-300:#001e70;--cpd-color-alpha-blue-400:#002b8fd1;--cpd-color-alpha-blue-500:#015afe87;--cpd-color-alpha-blue-600:#0665fea3;--cpd-color-alpha-blue-700:#0d71fdcf;--cpd-color-alpha-blue-800:#3488fee8;--cpd-color-alpha-blue-900:#8bb9fdf7;--cpd-color-alpha-blue-1000:#9ec5fff7;--cpd-color-alpha-blue-1100:#b8d4fffa;--cpd-color-alpha-blue-1200:#c8defefc;--cpd-color-alpha-blue-1300:#e6effe;--cpd-color-alpha-blue-1400:#f1f6fe;--cpd-color-alpha-purple-100:#1d005c;--cpd-color-alpha-purple-200:#22006b;--cpd-color-alpha-purple-300:#2d0080;--cpd-color-alpha-purple-400:#34008f;--cpd-color-alpha-purple-500:#690dfdab;--cpd-color-alpha-purple-600:#712bfdc2;--cpd-color-alpha-purple-700:#7f49fde6;--cpd-color-alpha-purple-800:#906bfff7;--cpd-color-alpha-purple-900:#b7a8ff;--cpd-color-alpha-purple-1000:#c2b8ff;--cpd-color-alpha-purple-1100:#cec7ff;--cpd-color-alpha-purple-1200:#dbd6ff;--cpd-color-alpha-purple-1300:#eeebff;--cpd-color-alpha-purple-1400:#f7f5ff;--cpd-color-alpha-fuchsia-100:#2d0042;--cpd-color-alpha-fuchsia-200:#36004d;--cpd-color-alpha-fuchsia-300:#45005c;--cpd-color-alpha-fuchsia-400:#5a0075d9;--cpd-color-alpha-fuchsia-500:#d21fff70;--cpd-color-alpha-fuchsia-600:#d82ffe8a;--cpd-color-alpha-fuchsia-700:#e640fcad;--cpd-color-alpha-fuchsia-800:#f467fec7;--cpd-color-alpha-fuchsia-900:#f9b3ffe0;--cpd-color-alpha-fuchsia-1000:#fabefee6;--cpd-color-alpha-fuchsia-1100:#facefded;--cpd-color-alpha-fuchsia-1200:#fcd7fef2;--cpd-color-alpha-fuchsia-1300:#fdecfefa;--cpd-color-alpha-fuchsia-1400:#fdf2fdfc;--cpd-color-alpha-pink-100:#3d0012;--cpd-color-alpha-pink-200:#470019;--cpd-color-alpha-pink-300:#570024;--cpd-color-alpha-pink-400:#61002d;--cpd-color-alpha-pink-500:#fb047375;--cpd-color-alpha-pink-600:#fd127794;--cpd-color-alpha-pink-700:#fe1b79c2;--cpd-color-alpha-pink-800:#fd2b78f2;--cpd-color-alpha-pink-900:#ff94ad;--cpd-color-alpha-pink-1000:#ffa3b9;--cpd-color-alpha-pink-1100:#ffbdcb;--cpd-color-alpha-pink-1200:#ffccd7;--cpd-color-alpha-pink-1300:#ffebef;--cpd-color-alpha-pink-1400:#fff0f3;--cpd-color-transparent:#0000}}}@media screen and (prefers-color-scheme:dark) and (prefers-contrast:more){@layer cpd-base{:root{--cpd-color-theme-bg:#101317;--cpd-color-gray-100:#181a1f;--cpd-color-gray-200:#1d1f24;--cpd-color-gray-300:#26282d;--cpd-color-gray-400:#2b2e33;--cpd-color-gray-500:#3c3f44;--cpd-color-gray-600:#4a4f55;--cpd-color-gray-700:#606770;--cpd-color-gray-800:#79818d;--cpd-color-gray-900:#acb4bd;--cpd-color-gray-1000:#b8bfc7;--cpd-color-gray-1100:#c8ced5;--cpd-color-gray-1200:#d5dae1;--cpd-color-gray-1300:#ebeef2;--cpd-color-gray-1400:#f2f5f7;--cpd-color-red-100:#3e0000;--cpd-color-red-200:#470000;--cpd-color-red-300:#590000;--cpd-color-red-400:#640000;--cpd-color-red-500:#830009;--cpd-color-red-600:#9f0d1e;--cpd-color-red-700:#c81e28;--cpd-color-red-800:#f52f33;--cpd-color-red-900:#ff968c;--cpd-color-red-1000:#ffa79d;--cpd-color-red-1100:#ffbdb5;--cpd-color-red-1200:#ffcfc8;--cpd-color-red-1300:#ffe9e6;--cpd-color-red-1400:#fff2ef;--cpd-color-orange-100:#3c0000;--cpd-color-orange-200:#470000;--cpd-color-orange-300:#580000;--cpd-color-orange-400:#650000;--cpd-color-orange-500:#830500;--cpd-color-orange-600:#972206;--cpd-color-orange-700:#b44007;--cpd-color-orange-800:#d15f0b;--cpd-color-orange-900:#f89d58;--cpd-color-orange-1000:#faad73;--cpd-color-orange-1100:#fdc197;--cpd-color-orange-1200:#fed0b1;--cpd-color-orange-1300:#ffeadb;--cpd-color-orange-1400:#fff2ea;--cpd-color-yellow-100:#3a0300;--cpd-color-yellow-200:#410900;--cpd-color-yellow-300:#4c1400;--cpd-color-yellow-400:#541d00;--cpd-color-yellow-500:#682e03;--cpd-color-yellow-600:#7c3e02;--cpd-color-yellow-700:#985600;--cpd-color-yellow-800:#b47200;--cpd-color-yellow-900:#e3aa00;--cpd-color-yellow-1000:#ebb607;--cpd-color-yellow-1100:#f7c816;--cpd-color-yellow-1200:#fed632;--cpd-color-yellow-1300:#ffedb1;--cpd-color-yellow-1400:#fff4d0;--cpd-color-lime-100:#002000;--cpd-color-lime-200:#002600;--cpd-color-lime-300:#003000;--cpd-color-lime-400:#003700;--cpd-color-lime-500:#004a00;--cpd-color-lime-600:#005c00;--cpd-color-lime-700:#187611;--cpd-color-lime-800:#31941d;--cpd-color-lime-900:#5eca2f;--cpd-color-lime-1000:#6ad639;--cpd-color-lime-1100:#92e175;--cpd-color-lime-1200:#afe99a;--cpd-color-lime-1300:#daf6d0;--cpd-color-lime-1400:#e9f9e3;--cpd-color-green-100:#001f0e;--cpd-color-green-200:#002513;--cpd-color-green-300:#002e1b;--cpd-color-green-400:#003622;--cpd-color-green-500:#004832;--cpd-color-green-600:#005a43;--cpd-color-green-700:#00745c;--cpd-color-green-800:#109173;--cpd-color-green-900:#37c998;--cpd-color-green-1000:#61d2a6;--cpd-color-green-1100:#8fddbc;--cpd-color-green-1200:#ace6cc;--cpd-color-green-1300:#d9f4e7;--cpd-color-green-1400:#e9f8f1;--cpd-color-cyan-100:#001448;--cpd-color-cyan-200:#001b4e;--cpd-color-cyan-300:#002559;--cpd-color-cyan-400:#002d61;--cpd-color-cyan-500:#003f75;--cpd-color-cyan-600:#005188;--cpd-color-cyan-700:#006ca4;--cpd-color-cyan-800:#008aba;--cpd-color-cyan-900:#46c3d2;--cpd-color-cyan-1000:#6bccd9;--cpd-color-cyan-1100:#93d9e2;--cpd-color-cyan-1200:#afe2e9;--cpd-color-cyan-1300:#dbf2f5;--cpd-color-cyan-1400:#eaf7f9;--cpd-color-blue-100:#00095d;--cpd-color-blue-200:#001264;--cpd-color-blue-300:#001e6f;--cpd-color-blue-400:#032677;--cpd-color-blue-500:#083891;--cpd-color-blue-600:#0b49ab;--cpd-color-blue-700:#0e61d1;--cpd-color-blue-800:#337fe9;--cpd-color-blue-900:#89b5f6;--cpd-color-blue-1000:#9ac0f8;--cpd-color-blue-1100:#b2cffa;--cpd-color-blue-1200:#c5dbfc;--cpd-color-blue-1300:#e4eefe;--cpd-color-blue-1400:#eff5fe;--cpd-color-purple-100:#1c005a;--cpd-color-purple-200:#22006a;--cpd-color-purple-300:#2c0080;--cpd-color-purple-400:#350090;--cpd-color-purple-500:#4a0db1;--cpd-color-purple-600:#5a27c6;--cpd-color-purple-700:#7343e6;--cpd-color-purple-800:#8b66f8;--cpd-color-purple-900:#b6a7ff;--cpd-color-purple-1000:#c0b5ff;--cpd-color-purple-1100:#cec7ff;--cpd-color-purple-1200:#dad5ff;--cpd-color-purple-1300:#eeebff;--cpd-color-purple-1400:#f5f3ff;--cpd-color-fuchsia-100:#2e0044;--cpd-color-fuchsia-200:#37004e;--cpd-color-fuchsia-300:#46005e;--cpd-color-fuchsia-400:#4f0368;--cpd-color-fuchsia-500:#65177d;--cpd-color-fuchsia-600:#7d2394;--cpd-color-fuchsia-700:#a233b3;--cpd-color-fuchsia-800:#c153cb;--cpd-color-fuchsia-900:#dd9de3;--cpd-color-fuchsia-1000:#e3abe7;--cpd-color-fuchsia-1100:#eac0ed;--cpd-color-fuchsia-1200:#f0cff2;--cpd-color-fuchsia-1300:#f8e9f9;--cpd-color-fuchsia-1400:#fbf1fb;--cpd-color-pink-100:#3c0012;--cpd-color-pink-200:#450018;--cpd-color-pink-300:#550024;--cpd-color-pink-400:#61002d;--cpd-color-pink-500:#7c0c41;--cpd-color-pink-600:#99114f;--cpd-color-pink-700:#c51761;--cpd-color-pink-800:#f12c75;--cpd-color-pink-900:#ff92ac;--cpd-color-pink-1000:#ffa4b9;--cpd-color-pink-1100:#ffbbca;--cpd-color-pink-1200:#ffccd7;--cpd-color-pink-1300:#ffe8ed;--cpd-color-pink-1400:#fff1f4;--cpd-color-alpha-gray-100:#d9c3df0a;--cpd-color-alpha-gray-200:#e9dbf00f;--cpd-color-alpha-gray-300:#ede7f41a;--cpd-color-alpha-gray-400:#e1e4ef21;--cpd-color-alpha-gray-500:#eceff833;--cpd-color-alpha-gray-600:#e7f1fd45;--cpd-color-alpha-gray-700:#dfebfb63;--cpd-color-alpha-gray-800:#dceafe82;--cpd-color-alpha-gray-900:#ecf4feb8;--cpd-color-alpha-gray-1000:#f0f7ffc2;--cpd-color-alpha-gray-1100:#f0f7ffd1;--cpd-color-alpha-gray-1200:#f1f6fde0;--cpd-color-alpha-gray-1300:#f6f9fef2;--cpd-color-alpha-gray-1400:#fbfdfef7;--cpd-color-alpha-red-100:#3d0000;--cpd-color-alpha-red-200:#470000;--cpd-color-alpha-red-300:#5c0000;--cpd-color-alpha-red-400:#600;--cpd-color-alpha-red-500:#850009;--cpd-color-alpha-red-600:#fe0b2499;--cpd-color-alpha-red-700:#ff242fc4;--cpd-color-alpha-red-800:#ff2e31f5;--cpd-color-alpha-red-900:#ff988f;--cpd-color-alpha-red-1000:#ffa89e;--cpd-color-alpha-red-1100:#ffbfb8;--cpd-color-alpha-red-1200:#ffcec7;--cpd-color-alpha-red-1300:#ffe8e6;--cpd-color-alpha-red-1400:#fff3f0;--cpd-color-alpha-orange-100:#3d0000;--cpd-color-alpha-orange-200:#470000;--cpd-color-alpha-orange-300:#570000;--cpd-color-alpha-orange-400:#600;--cpd-color-alpha-orange-500:#850400;--cpd-color-alpha-orange-600:#c72800bd;--cpd-color-alpha-orange-700:#fa5300b3;--cpd-color-alpha-orange-800:#fe7206cf;--cpd-color-alpha-orange-900:#fda058fa;--cpd-color-alpha-orange-1000:#ffb175fa;--cpd-color-alpha-orange-1100:#fdc196;--cpd-color-alpha-orange-1200:#fed1b3;--cpd-color-alpha-orange-1300:#ffeadb;--cpd-color-alpha-orange-1400:#fff2eb;--cpd-color-alpha-yellow-100:#380300;--cpd-color-alpha-yellow-200:#420900;--cpd-color-alpha-yellow-300:#4d1400;--cpd-color-alpha-yellow-400:#571e00;--cpd-color-alpha-yellow-500:#753300de;--cpd-color-alpha-yellow-600:#854200eb;--cpd-color-alpha-yellow-700:#995700;--cpd-color-alpha-yellow-800:#b37100;--cpd-color-alpha-yellow-900:#e6ac00;--cpd-color-alpha-yellow-1000:#fec406eb;--cpd-color-alpha-yellow-1100:#fecf16f7;--cpd-color-alpha-yellow-1200:#fed634;--cpd-color-alpha-yellow-1300:#ffedb3;--cpd-color-alpha-yellow-1400:#fff4d1;--cpd-color-alpha-lime-100:#001f00;--cpd-color-alpha-lime-200:#002900;--cpd-color-alpha-lime-300:#002e00;--cpd-color-alpha-lime-400:#003800;--cpd-color-alpha-lime-500:#004d00;--cpd-color-alpha-lime-600:#005c00;--cpd-color-alpha-lime-700:#23ff0a6b;--cpd-color-alpha-lime-800:#4dfe258c;--cpd-color-alpha-lime-900:#74fe34c7;--cpd-color-alpha-lime-1000:#7bfe3ed4;--cpd-color-alpha-lime-1100:#a4fd81e0;--cpd-color-alpha-lime-1200:#c1fea9e8;--cpd-color-alpha-lime-1300:#e1fdd8f7;--cpd-color-alpha-lime-1400:#edfee7fa;--cpd-color-alpha-green-100:#001f0e;--cpd-color-alpha-green-200:#002412;--cpd-color-alpha-green-300:#002e1b;--cpd-color-alpha-green-400:#003824;--cpd-color-alpha-green-500:#004732;--cpd-color-alpha-green-600:#005c45;--cpd-color-alpha-green-700:#00755e;--cpd-color-alpha-green-800:#12fdc28a;--cpd-color-alpha-green-900:#40fcbac7;--cpd-color-alpha-green-1000:#75ffc8cf;--cpd-color-alpha-green-1100:#a4fed7db;--cpd-color-alpha-green-1200:#bffde1e6;--cpd-color-alpha-green-1300:#e2fdf1f5;--cpd-color-alpha-green-1400:#edfdf5fa;--cpd-color-alpha-cyan-100:#001447;--cpd-color-alpha-cyan-200:#001b4d;--cpd-color-alpha-cyan-300:#00265c;--cpd-color-alpha-cyan-400:#002d61;--cpd-color-alpha-cyan-500:#003f75;--cpd-color-alpha-cyan-600:#00538a;--cpd-color-alpha-cyan-700:#006da3;--cpd-color-alpha-cyan-800:#008ebd;--cpd-color-alpha-cyan-900:#52edfecf;--cpd-color-alpha-cyan-1000:#7beffed6;--cpd-color-alpha-cyan-1100:#a4f4fee0;--cpd-color-alpha-cyan-1200:#bef5fee8;--cpd-color-alpha-cyan-1300:#e1fbfef5;--cpd-color-alpha-cyan-1400:#f1fdfefa;--cpd-color-alpha-blue-100:#00095c;--cpd-color-alpha-blue-200:#001366;--cpd-color-alpha-blue-300:#001e70;--cpd-color-alpha-blue-400:#002b8fd1;--cpd-color-alpha-blue-500:#015afe87;--cpd-color-alpha-blue-600:#0665fea3;--cpd-color-alpha-blue-700:#0d71fdcf;--cpd-color-alpha-blue-800:#3488fee8;--cpd-color-alpha-blue-900:#8bb9fdf7;--cpd-color-alpha-blue-1000:#9ec5fff7;--cpd-color-alpha-blue-1100:#b8d4fffa;--cpd-color-alpha-blue-1200:#c8defefc;--cpd-color-alpha-blue-1300:#e6effe;--cpd-color-alpha-blue-1400:#f1f6fe;--cpd-color-alpha-purple-100:#1d005c;--cpd-color-alpha-purple-200:#22006b;--cpd-color-alpha-purple-300:#2d0080;--cpd-color-alpha-purple-400:#34008f;--cpd-color-alpha-purple-500:#690dfdab;--cpd-color-alpha-purple-600:#712bfdc2;--cpd-color-alpha-purple-700:#7f49fde6;--cpd-color-alpha-purple-800:#906bfff7;--cpd-color-alpha-purple-900:#b7a8ff;--cpd-color-alpha-purple-1000:#c2b8ff;--cpd-color-alpha-purple-1100:#cec7ff;--cpd-color-alpha-purple-1200:#dbd6ff;--cpd-color-alpha-purple-1300:#eeebff;--cpd-color-alpha-purple-1400:#f7f5ff;--cpd-color-alpha-fuchsia-100:#2d0042;--cpd-color-alpha-fuchsia-200:#36004d;--cpd-color-alpha-fuchsia-300:#45005c;--cpd-color-alpha-fuchsia-400:#5a0075d9;--cpd-color-alpha-fuchsia-500:#d21fff70;--cpd-color-alpha-fuchsia-600:#d82ffe8a;--cpd-color-alpha-fuchsia-700:#e640fcad;--cpd-color-alpha-fuchsia-800:#f467fec7;--cpd-color-alpha-fuchsia-900:#f9b3ffe0;--cpd-color-alpha-fuchsia-1000:#fabefee6;--cpd-color-alpha-fuchsia-1100:#facefded;--cpd-color-alpha-fuchsia-1200:#fcd7fef2;--cpd-color-alpha-fuchsia-1300:#fdecfefa;--cpd-color-alpha-fuchsia-1400:#fdf2fdfc;--cpd-color-alpha-pink-100:#3d0012;--cpd-color-alpha-pink-200:#470019;--cpd-color-alpha-pink-300:#570024;--cpd-color-alpha-pink-400:#61002d;--cpd-color-alpha-pink-500:#fb047375;--cpd-color-alpha-pink-600:#fd127794;--cpd-color-alpha-pink-700:#fe1b79c2;--cpd-color-alpha-pink-800:#fd2b78f2;--cpd-color-alpha-pink-900:#ff94ad;--cpd-color-alpha-pink-1000:#ffa3b9;--cpd-color-alpha-pink-1100:#ffbdcb;--cpd-color-alpha-pink-1200:#ffccd7;--cpd-color-alpha-pink-1300:#ffebef;--cpd-color-alpha-pink-1400:#fff0f3;--cpd-color-transparent:#0000}}}@media screen{@layer cpd-semantic{.cpd-theme-dark-hc.cpd-theme-dark-hc{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-gray-300);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-theme-bg);--cpd-color-gradient-action-stop1:var(--cpd-color-green-1100);--cpd-color-gradient-action-stop2:var(--cpd-color-green-900);--cpd-color-gradient-action-stop3:var(--cpd-color-green-700);--cpd-color-gradient-action-stop4:var(--cpd-color-green-500);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}@media screen and (prefers-color-scheme:dark) and (prefers-contrast:more){@layer cpd-semantic{:root{--cpd-color-bg-canvas-default-level-1:var(--cpd-color-gray-300);--cpd-color-bg-subtle-secondary-level-0:var(--cpd-color-theme-bg);--cpd-color-gradient-action-stop1:var(--cpd-color-green-1100);--cpd-color-gradient-action-stop2:var(--cpd-color-green-900);--cpd-color-gradient-action-stop3:var(--cpd-color-green-700);--cpd-color-gradient-action-stop4:var(--cpd-color-green-500);--cpd-color-gradient-action-linear:linear-gradient(180deg, var(--cpd-color-gradient-action-stop1) 0%, var(--cpd-color-gradient-action-stop2) 33%, var(--cpd-color-gradient-action-stop3) 66%, var(--cpd-color-gradient-action-stop4) 100%)}}}}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-ext-400-normal-BQZuk6qB.woff2)format("woff2"),url(./inter-cyrillic-ext-400-normal-DQukG94-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-cyrillic-400-normal-obahsSVq.woff2)format("woff2"),url(./inter-cyrillic-400-normal-HOLc17fK.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-ext-400-normal-DGGRlc-M.woff2)format("woff2"),url(./inter-greek-ext-400-normal-KugGGMne.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-greek-400-normal-B4URO6DV.woff2)format("woff2"),url(./inter-greek-400-normal-q2sYcFCs.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-vietnamese-400-normal-DMkecbls.woff2)format("woff2"),url(./inter-vietnamese-400-normal-Bbgyi5SW.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-ext-400-normal-C1nco2VV.woff2)format("woff2"),url(./inter-latin-ext-400-normal-77YHD8bZ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(./inter-latin-400-normal-C38fXH4l.woff2)format("woff2"),url(./inter-latin-400-normal-CyCys3Eg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-ext-500-normal-B0yAr1jD.woff2)format("woff2"),url(./inter-cyrillic-ext-500-normal-BmqWE9Dz.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-cyrillic-500-normal-BasfLYem.woff2)format("woff2"),url(./inter-cyrillic-500-normal-CxZf_p3X.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-ext-500-normal-C4iEst2y.woff2)format("woff2"),url(./inter-greek-ext-500-normal-2j5mBUwD.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-greek-500-normal-BIZE56-Y.woff2)format("woff2"),url(./inter-greek-500-normal-Xzm54t5V.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-vietnamese-500-normal-DOriooB6.woff2)format("woff2"),url(./inter-vietnamese-500-normal-mJboJaSs.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-ext-500-normal-CV4jyFjo.woff2)format("woff2"),url(./inter-latin-ext-500-normal-BxGbmqWO.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(./inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(./inter-latin-500-normal-BL9OpVg8.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-ext-600-normal-Dfes3d0z.woff2)format("woff2"),url(./inter-cyrillic-ext-600-normal-Bcila6Z-.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-cyrillic-600-normal-CWCymEST.woff2)format("woff2"),url(./inter-cyrillic-600-normal-4D_pXhcN.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-ext-600-normal-DRtmH8MT.woff2)format("woff2"),url(./inter-greek-ext-600-normal-B8X0CLgF.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-greek-600-normal-plRanbMR.woff2)format("woff2"),url(./inter-greek-600-normal-BZpKdvQh.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-vietnamese-600-normal-Cc8MFFhd.woff2)format("woff2"),url(./inter-vietnamese-600-normal-BuLX-rYi.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-ext-600-normal-D2bJ5OIk.woff2)format("woff2"),url(./inter-latin-ext-600-normal-CIVaiw4L.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(./inter-latin-600-normal-LgqL8muc.woff2)format("woff2"),url(./inter-latin-600-normal-CiBQ2DWP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-ext-700-normal-BjwYoWNd.woff2)format("woff2"),url(./inter-cyrillic-ext-700-normal-LO58E6JB.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-cyrillic-700-normal-CjBOestx.woff2)format("woff2"),url(./inter-cyrillic-700-normal-DrXBdSj3.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-ext-700-normal-qfdV9bQt.woff2)format("woff2"),url(./inter-greek-ext-700-normal-BoQ6DsYi.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-greek-700-normal-C3JjAnD8.woff2)format("woff2"),url(./inter-greek-700-normal-BUv2fZ6O.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-vietnamese-700-normal-DlLaEgI2.woff2)format("woff2"),url(./inter-vietnamese-700-normal-BZaoP0fm.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-ext-700-normal-Ca8adRJv.woff2)format("woff2"),url(./inter-latin-ext-700-normal-TidjK2hL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(./inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(./inter-latin-700-normal-BLAVimhd.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-vietnamese-400-normal-DfC_iMic.woff2)format("woff2"),url(./inconsolata-vietnamese-400-normal-ByiM2lek.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-ext-400-normal-BaHVOdFB.woff2)format("woff2"),url(./inconsolata-latin-ext-400-normal-yvPjCxxx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:400;src:url(./inconsolata-latin-400-normal-DTZQ6lD6.woff2)format("woff2"),url(./inconsolata-latin-400-normal-HYADljCo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-vietnamese-700-normal-DuasYmn8.woff2)format("woff2"),url(./inconsolata-vietnamese-700-normal-DLCFFAUf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-ext-700-normal-D0Kpgs_9.woff2)format("woff2"),url(./inconsolata-latin-ext-700-normal-Dlt-daqV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inconsolata;font-style:normal;font-display:swap;font-weight:700;src:url(./inconsolata-latin-700-normal-ByjKuJjN.woff2)format("woff2"),url(./inconsolata-latin-700-normal-DzgUY3Rl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer compound.components{._pill_187tn_8{font:var(--cpd-font-body-xs-semibold);color:var(--cpd-color-text-on-solid-primary);background-color:var(--cpd-color-icon-success-primary);padding:0 var(--cpd-space-2x);border-radius:38px;align-items:center;block-size:20px;display:inline-flex}@media (forced-colors:active){._pill_187tn_8{outline:1px solid #0000}}._unread_cti0f_8{justify-content:center;inline-size:20px;display:flex}._unread_cti0f_8 div{background-color:var(--cpd-color-icon-secondary);border-radius:100%;block-size:8px;inline-size:8px}@media (forced-colors:active){._unread_cti0f_8 div{outline:1px solid #0000}}._unread-counter_1147r_8{font:var(--cpd-font-body-xs-semibold);color:var(--cpd-color-text-on-solid-primary);background-color:var(--cpd-color-icon-success-primary);block-size:20px;min-inline-size:20px;padding:0 var(--cpd-space-1-5x);box-sizing:border-box;border-radius:38px;justify-content:center;align-items:center;display:inline-flex}@media (forced-colors:active){._unread-counter_1147r_8{outline:1px solid #0000}}._alert_zx76t_10{justify-content:start;align-items:start;gap:var(--cpd-space-3x);padding:var(--cpd-space-4x);border:1px solid;border-radius:8px;display:flex;container:alert/inline-size}._alert_zx76t_10[data-type=success]{background-color:var(--cpd-color-green-200);border-color:var(--cpd-color-green-500)}._alert_zx76t_10[data-type=critical]{background-color:var(--cpd-color-red-200);border-color:var(--cpd-color-red-500)}._alert_zx76t_10[data-type=info]{background-color:var(--cpd-color-blue-200);border-color:var(--cpd-color-blue-500)}._content_zx76t_37{gap:var(--cpd-space-3x);flex-direction:row;flex:1;display:flex}._text-content_zx76t_44{flex:1 1 0}[data-type=success] :is(._title_zx76t_48,._icon_zx76t_48){color:var(--cpd-color-green-900)}[data-type=critical] :is(._title_zx76t_48,._icon_zx76t_48){color:var(--cpd-color-red-900)}[data-type=info] :is(._title_zx76t_48,._icon_zx76t_48){color:var(--cpd-color-blue-900)}._alert_zx76t_10 p{margin:0}._actions_zx76t_64{gap:var(--cpd-space-1x);flex-direction:row;flex:0;align-self:center;display:flex}._icon_zx76t_48{flex-shrink:0}@container alert (width<=600px){._content_zx76t_37{flex-wrap:wrap}._text-content_zx76t_44{flex:1 0 100%}}._icon-button_1215g_8{--cpd-icon-button-indicator-border-size:calc(var(--cpd-icon-button-size) * .0625);inline-size:var(--cpd-icon-button-size);block-size:var(--cpd-icon-button-size);padding:calc(var(--cpd-icon-button-size) * .125);aspect-ratio:1;appearance:none;cursor:pointer;background:0 0;border:0;border-radius:50%;line-height:0;position:relative}._icon-button_1215g_8[data-kind=primary] *{color:var(--cpd-color-icon-secondary)}._icon-button_1215g_8[data-kind=secondary]{background:var(--cpd-color-bg-subtle-secondary)}._icon-button_1215g_8[data-kind=secondary] *{color:var(--cpd-color-icon-secondary)}._no-background_1215g_42[data-kind=secondary]{background:0 0}._icon-button_1215g_8[aria-disabled=true]{cursor:not-allowed}._icon-button_1215g_8[aria-disabled=true] *{color:var(--cpd-color-icon-disabled)}@media (hover){._icon-button_1215g_8:not([aria-disabled=true]):hover{background:var(--cpd-color-bg-subtle-primary)}._icon-button_1215g_8:not([aria-disabled=true]):hover *{color:var(--cpd-color-icon-primary)}}._icon-button_1215g_8:not([aria-disabled=true]):active{background:var(--cpd-color-bg-subtle-primary)}._icon-button_1215g_8:not([aria-disabled=true]):active *{color:var(--cpd-color-icon-primary)}@media (hover){._icon-button_1215g_8:not([aria-disabled=true])[data-indicator]:hover:before{border:var(--cpd-icon-button-indicator-border-size) solid var(--cpd-color-bg-subtle-primary);inset-block-start:0;inset-inline-end:0}}._icon-button_1215g_8:not([aria-disabled=true])[data-indicator]:active:before{border:var(--cpd-icon-button-indicator-border-size) solid var(--cpd-color-bg-subtle-primary);inset-block-start:0;inset-inline-end:0}@media (hover){._icon-button_1215g_8:not([aria-disabled=true])._destructive_1215g_95:hover{background:var(--cpd-color-bg-critical-subtle-hovered);outline:1px solid var(--cpd-color-border-critical-subtle)}}._icon-button_1215g_8:not([aria-disabled=true])._destructive_1215g_95 *{color:var(--cpd-color-icon-critical-primary)}._indicator-icon_147l5_17{inline-size:var(--cpd-icon-button-size);block-size:var(--cpd-icon-button-size);aspect-ratio:1;color:var(--cpd-color-icon-tertiary);position:relative}._indicator-icon_147l5_17 svg{block-size:100%;inline-size:100%}._indicator-icon_147l5_17[data-indicator] svg{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20fill='none'%20version='1.1'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m0%200v24h24v-16.359a6%206%200%200%201-2%200.35938%206%206%200%200%201-6-6%206%206%200%200%201%200.35938-2h-16.359z'%20fill='%23000'%20stroke-width='0'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20fill='none'%20version='1.1'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='m0%200v24h24v-16.359a6%206%200%200%201-2%200.35938%206%206%200%200%201-6-6%206%206%200%200%201%200.35938-2h-16.359z'%20fill='%23000'%20stroke-width='0'/%3e%3c/svg%3e");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}._indicator-icon_147l5_17[data-indicator]:before{content:"";box-sizing:border-box;--background-color:var(--cpd-color-icon-primary);background-color:var(--background-color);border-radius:50%;block-size:33.333%;inline-size:33.3333%;position:absolute;inset-block-start:-8.3333%;inset-inline-end:-8.3333%}._indicator-icon_147l5_17[data-indicator=success]:before{--background-color:var(--cpd-color-icon-success-primary)}._indicator-icon_147l5_17[data-indicator=critical]:before{--background-color:var(--cpd-color-icon-critical-primary)}@media (forced-colors:active){._indicator-icon_147l5_17[data-indicator]:before{border:1px solid var(--background-color)}}._tooltip_1nqnq_8{font:var(--cpd-font-body-xs-medium);padding:var(--cpd-space-1-5x) var(--cpd-space-3x);background:var(--cpd-color-alpha-gray-1400);color:var(--cpd-color-text-on-solid-primary);text-align:center;cursor:pointer;border-radius:4px;flex-direction:column;align-items:center;display:flex}._tooltip_1nqnq_8._invisible_1nqnq_21{clip-path:inset(50%);pointer-events:none}._caption_1nqnq_28{font-weight:var(--cpd-font-weight-regular);color:var(--cpd-color-text-secondary)}._arrow_1nqnq_33{fill:var(--cpd-color-alpha-gray-1400)}@media (forced-colors:active){._tooltip_1nqnq_8:not(._invisible_1nqnq_21){outline:1px solid #0000}}._font-body-xs-regular_6v6n8_12{letter-spacing:var(--cpd-font-letter-spacing-body-xs);font:var(--cpd-font-body-xs-regular)}._font-body-xs-semibold_6v6n8_17{letter-spacing:var(--cpd-font-letter-spacing-body-xs);font:var(--cpd-font-body-xs-semibold)}._font-body-xs-medium_6v6n8_22{letter-spacing:var(--cpd-font-letter-spacing-body-xs);font:var(--cpd-font-body-xs-medium)}._font-body-sm-regular_6v6n8_31{letter-spacing:var(--cpd-font-letter-spacing-body-sm);font:var(--cpd-font-body-sm-regular)}._font-body-sm-semibold_6v6n8_36{letter-spacing:var(--cpd-font-letter-spacing-body-sm);font:var(--cpd-font-body-sm-semibold)}._font-body-sm-medium_6v6n8_41{letter-spacing:var(--cpd-font-letter-spacing-body-sm);font:var(--cpd-font-body-sm-medium)}._font-body-md-regular_6v6n8_50{letter-spacing:var(--cpd-font-letter-spacing-body-md);font:var(--cpd-font-body-md-regular)}._font-body-md-semibold_6v6n8_55{letter-spacing:var(--cpd-font-letter-spacing-body-md);font:var(--cpd-font-body-md-semibold)}._font-body-md-medium_6v6n8_60{letter-spacing:var(--cpd-font-letter-spacing-body-md);font:var(--cpd-font-body-md-medium)}._font-body-lg-regular_6v6n8_69{letter-spacing:var(--cpd-font-letter-spacing-body-lg);font:var(--cpd-font-body-lg-regular)}._font-body-lg-semibold_6v6n8_74{letter-spacing:var(--cpd-font-letter-spacing-body-lg);font:var(--cpd-font-body-lg-semibold)}._font-body-lg-medium_6v6n8_79{letter-spacing:var(--cpd-font-letter-spacing-body-lg);font:var(--cpd-font-body-lg-medium)}._font-heading-sm-regular_6v6n8_88{letter-spacing:var(--cpd-font-letter-spacing-heading-sm);font:var(--cpd-font-heading-sm-regular)}._font-heading-sm-semibold_6v6n8_93{letter-spacing:var(--cpd-font-letter-spacing-heading-sm);font:var(--cpd-font-heading-sm-semibold)}._font-heading-sm-medium_6v6n8_98{letter-spacing:var(--cpd-font-letter-spacing-heading-sm);font:var(--cpd-font-heading-sm-medium)}._font-heading-md-regular_6v6n8_107{letter-spacing:var(--cpd-font-letter-spacing-heading-md);font:var(--cpd-font-heading-md-regular)}._font-heading-md-semibold_6v6n8_112{letter-spacing:var(--cpd-font-letter-spacing-heading-md);font:var(--cpd-font-heading-md-semibold)}._font-heading-lg-regular_6v6n8_121{letter-spacing:var(--cpd-font-letter-spacing-heading-lg);font:var(--cpd-font-heading-lg-regular)}._font-heading-lg-semibold_6v6n8_126{letter-spacing:var(--cpd-font-letter-spacing-heading-lg);font:var(--cpd-font-heading-lg-semibold)}._font-heading-xl-regular_6v6n8_135{letter-spacing:var(--cpd-font-letter-spacing-heading-xl);font:var(--cpd-font-heading-xl-regular)}._font-heading-xl-semibold_6v6n8_140{letter-spacing:var(--cpd-font-letter-spacing-heading-xl);font:var(--cpd-font-heading-xl-semibold)}._typography_6v6n8_153{-webkit-font-feature-settings:"kern" 1, "liga" 1, "calt" 1;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;-webkit-font-feature-settings:var(--cpd-font-feature-settings);font-feature-settings:var(--cpd-font-feature-settings)}._avatar_va14e_8{box-sizing:border-box;line-height:calc(var(--cpd-avatar-size) - 2px);text-align:center;font-size:min(calc(var(--cpd-avatar-size) * .5625), 60px);text-transform:uppercase;speak:none;font-family:var(--cpd-font-family-sans);-webkit-user-select:none;user-select:none;background:var(--cpd-color-bg-canvas-default);font-weight:700;display:inline-block;overflow:hidden}button._avatar_va14e_8{appearance:none;cursor:pointer;border:0;padding:0}button._avatar_va14e_8:disabled{cursor:not-allowed}._avatar_va14e_8,._image_va14e_43{aspect-ratio:1;inline-size:var(--cpd-avatar-size);border-radius:var(--cpd-avatar-radius)}._image_va14e_43{-o-object-fit:cover;object-fit:cover;overflow:hidden}button._avatar-imageless_va14e_55,._avatar-imageless_va14e_55{background:var(--cpd-avatar-bg);color:var(--cpd-avatar-color);border:1px solid var(--cpd-avatar-bg)}._avatar_va14e_8[data-color]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-1);--cpd-avatar-color:var(--cpd-color-text-decorative-1)}._avatar_va14e_8[data-color="2"]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-2);--cpd-avatar-color:var(--cpd-color-text-decorative-2)}._avatar_va14e_8[data-color="3"]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-3);--cpd-avatar-color:var(--cpd-color-text-decorative-3)}._avatar_va14e_8[data-color="4"]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-4);--cpd-avatar-color:var(--cpd-color-text-decorative-4)}._avatar_va14e_8[data-color="5"]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-5);--cpd-avatar-color:var(--cpd-color-text-decorative-5)}._avatar_va14e_8[data-color="6"]{--cpd-avatar-bg:var(--cpd-color-bg-decorative-6);--cpd-avatar-color:var(--cpd-color-text-decorative-6)}._avatar_va14e_8[data-type=round]{--cpd-avatar-radius:50%}._avatar_va14e_8[data-type=square]{--cpd-avatar-radius:25%}._stacked-avatars_va14e_109:after{content:"";clear:both;display:table}._stacked-avatars_va14e_109 ._avatar_va14e_8{float:inline-start}._stacked-avatars_va14e_109 ._avatar_va14e_8:not(:last-child){clip-path:url(#cpdAvatarClip)}._stacked-avatars_va14e_109>:not(:first-child){-webkit-margin-start:calc(var(--cpd-avatar-size) * -.4);margin-inline-start:calc(var(--cpd-avatar-size) * -.4)}._clip-path_va14e_128{position:fixed;inset-inline-start:-9999px}._badge_10dml_8{gap:var(--cpd-space-1x);padding:var(--cpd-space-1x) var(--cpd-space-3x);box-sizing:border-box;border-radius:9999px;align-items:center;min-block-size:28px;display:inline-flex}._has-icon_10dml_18{-webkit-padding-start:var(--cpd-space-2x);padding-inline-start:var(--cpd-space-2x)}._badge_10dml_8[data-kind=default]{border:1px solid var(--cpd-color-border-interactive-secondary);padding-block:calc(var(--cpd-space-1x) - 1px);color:var(--cpd-color-text-primary);outline:none}._badge_10dml_8[data-kind=default] svg{color:var(--cpd-color-icon-primary)}._badge_10dml_8[data-kind=grey]{background:var(--cpd-color-bg-badge-secondary);color:var(--cpd-color-text-primary)}._badge_10dml_8[data-kind=grey] svg{color:var(--cpd-color-icon-primary)}._badge_10dml_8[data-kind=on-solid]{background:var(--cpd-color-bg-badge-primary);color:var(--cpd-color-text-on-solid-primary)}._badge_10dml_8[data-kind=on-solid] svg{color:var(--cpd-color-icon-on-solid-primary)}._badge_10dml_8[data-kind=blue]{background:var(--cpd-color-bg-badge-info);color:var(--cpd-color-text-badge-info)}._badge_10dml_8[data-kind=blue] svg{color:var(--cpd-color-icon-info-primary)}._badge_10dml_8[data-kind=green]{background:var(--cpd-color-bg-badge-accent);color:var(--cpd-color-text-badge-accent)}._badge_10dml_8[data-kind=green] svg{color:var(--cpd-color-icon-accent-primary)}._badge_10dml_8[data-kind=red]{background:var(--cpd-color-bg-badge-critical);color:var(--cpd-color-text-critical-primary)}._badge_10dml_8[data-kind=red] svg{color:var(--cpd-color-icon-critical-primary)}@media (forced-colors:active){._badge_10dml_8{outline:1px solid #0000}}._breadcrumb_t96w3_8{align-items:center;gap:var(--cpd-space-3x);-webkit-padding-after:var(--cpd-space-3x);block-size:40px;-webkit-border-after:1px solid var(--cpd-color-alpha-gray-400);border-block-end:1px solid var(--cpd-color-alpha-gray-400);box-sizing:border-box;padding-block-end:var(--cpd-space-3x);display:flex}._breadcrumb_t96w3_8 ._pages_t96w3_17{gap:var(--cpd-space-1x);margin:0;padding:0;list-style-type:"";display:flex}._breadcrumb_t96w3_8 ._pages_t96w3_17 a{cursor:pointer}._breadcrumb_t96w3_8 ._pages_t96w3_17 ._last-page_t96w3_30{font:var(--cpd-font-body-sm-regular);color:var(--cpd-color-text-secondary)}._breadcrumb_t96w3_8 ._pages_t96w3_17 li+li:before{-webkit-border-end:1px solid var(--cpd-color-text-secondary);border-inline-end:1px solid var(--cpd-color-text-secondary);block-size:var(--cpd-space-3x);content:"";margin:0 .3em 0 .25em;display:inline-block;transform:rotate(15deg)}._breadcrumb_t96w3_8 ._pages_t96w3_17 :last-child span{-webkit-padding-start:var(--cpd-space-1x);padding-inline-start:var(--cpd-space-1x)}._link_k9ljz_8{color:var(--cpd-color-text-primary);font-weight:var(--cpd-font-weight-medium);border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);padding-inline:.25rem;text-decoration:underline;display:inline-block}._link_k9ljz_8[data-kind=primary]{color:var(--cpd-color-text-primary)}._link_k9ljz_8[data-kind=critical]{color:var(--cpd-color-text-critical-primary)}@media (hover){._link_k9ljz_8[data-kind=primary]:hover{background:var(--cpd-color-gray-300)}._link_k9ljz_8[data-kind=critical]:hover{background:var(--cpd-color-red-300)}}._link_k9ljz_8:active{color:var(--cpd-color-text-on-solid-primary)}._link_k9ljz_8[data-kind=primary]:active{background:var(--cpd-color-text-primary)}._link_k9ljz_8[data-kind=critical]:active{background:var(--cpd-color-text-critical-primary)}._link_k9ljz_8[data-size=md]{font-size:var(--cpd-font-size-body-md)}._link_k9ljz_8[data-size=sm]{font-size:var(--cpd-font-size-body-sm)}._button_1nw83_8{border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);cursor:pointer;appearance:none;justify-content:center;align-items:center;gap:var(--cpd-space-2x);box-sizing:border-box;font:var(--cpd-font-body-md-semibold);transition-property:color,background-color,border-color;transition-duration:.1s;display:flex}a._button_1nw83_8{inline-size:max-content;text-decoration:none}._button_1nw83_8>svg{transition:color .1s}._button_1nw83_8[aria-disabled=true]{cursor:not-allowed;pointer-events:all!important;color:var(--cpd-color-text-disabled)!important}._button_1nw83_8[aria-disabled=true]>svg{color:var(--cpd-color-icon-disabled)!important}._button_1nw83_8[data-size=lg]{padding-block:var(--cpd-space-2x);padding-inline:var(--cpd-space-8x);min-block-size:var(--cpd-space-12x)}._button_1nw83_8[data-size=lg]._icon-only_1nw83_53{padding-inline:var(--cpd-space-2x);block-size:var(--cpd-space-12x);inline-size:var(--cpd-space-12x)}._button_1nw83_8[data-size=lg]._has-icon_1nw83_60:not(._icon-only_1nw83_53){-webkit-padding-start:var(--cpd-space-7x);padding-inline-start:var(--cpd-space-7x)}._button_1nw83_8[data-size=md]{padding-block:var(--cpd-space-1x);padding-inline:var(--cpd-space-5x);min-block-size:var(--cpd-space-9x)}._button_1nw83_8[data-size=md]._icon-only_1nw83_53{padding-inline:var(--cpd-space-1x);block-size:var(--cpd-space-9x);inline-size:var(--cpd-space-9x)}._button_1nw83_8[data-size=md]._has-icon_1nw83_60:not(._icon-only_1nw83_53){-webkit-padding-start:var(--cpd-space-4x);padding-inline-start:var(--cpd-space-4x)}._button_1nw83_8[data-kind=primary]{color:var(--cpd-color-text-on-solid-primary);background:var(--cpd-color-bg-action-primary-rest);border-width:0}._button_1nw83_8[data-kind=primary]>svg{color:var(--cpd-color-icon-on-solid-primary)}@media (hover){._button_1nw83_8[data-kind=primary]:hover{background:var(--cpd-color-bg-action-primary-hovered)}}._button_1nw83_8[data-kind=primary]:active,._button_1nw83_8[data-kind=primary][aria-expanded=true]{background:var(--cpd-color-bg-action-primary-pressed)}._button_1nw83_8[data-kind=primary][aria-disabled=true]{background:var(--cpd-color-bg-subtle-primary)!important}._button_1nw83_8[data-kind=primary]._destructive_1nw83_110{background:var(--cpd-color-bg-critical-primary)}@media (hover){._button_1nw83_8[data-kind=primary]._destructive_1nw83_110:hover{background:var(--cpd-color-bg-critical-hovered)}}._button_1nw83_8[data-kind=primary]._destructive_1nw83_110:active,._button_1nw83_8[data-kind=primary]._destructive_1nw83_110[aria-expanded=true]{background:var(--cpd-color-red-1100)}._button_1nw83_8[data-kind=secondary]{border:1px solid var(--cpd-color-border-interactive-secondary);color:var(--cpd-color-text-primary);background:var(--cpd-color-bg-canvas-default)}._button_1nw83_8[data-kind=secondary]>svg{color:var(--cpd-color-icon-primary)}@media (hover){._button_1nw83_8[data-kind=secondary]:hover{border-color:var(--cpd-color-border-interactive-hovered);background:var(--cpd-color-bg-subtle-secondary)}}._button_1nw83_8[data-kind=secondary]:active,._button_1nw83_8[data-kind=secondary][aria-expanded=true]{border-color:var(--cpd-color-border-interactive-hovered);background:var(--cpd-color-bg-subtle-primary)}._button_1nw83_8[data-kind=secondary][aria-disabled=true]{border-color:var(--cpd-color-border-interactive-secondary)!important;background:var(--cpd-color-bg-subtle-secondary)!important}._button_1nw83_8[data-kind=secondary]._destructive_1nw83_110{border-color:var(--cpd-color-border-critical-subtle);color:var(--cpd-color-text-critical-primary)}._button_1nw83_8[data-kind=secondary]._destructive_1nw83_110>svg{color:var(--cpd-color-icon-critical-primary)}@media (hover){._button_1nw83_8[data-kind=secondary]._destructive_1nw83_110:hover{border-color:var(--cpd-color-border-critical-hovered);background:var(--cpd-color-bg-critical-subtle)}}._button_1nw83_8[data-kind=secondary]._destructive_1nw83_110:active,._button_1nw83_8[data-kind=secondary]._destructive_1nw83_110[aria-expanded=true]{border-color:var(--cpd-color-border-critical-hovered);background:var(--cpd-color-bg-critical-subtle-hovered)}._button_1nw83_8[data-kind=tertiary]{color:var(--cpd-color-text-primary);background:0 0;border:none;text-decoration:underline}@media (hover){._button_1nw83_8[data-kind=tertiary]:hover{background:var(--cpd-color-bg-subtle-secondary)}}._button_1nw83_8[data-kind=tertiary]:active,._button_1nw83_8[data-kind=tertiary][aria-expanded=true]{background:var(--cpd-color-bg-subtle-primary)}._button_1nw83_8[data-kind=tertiary][aria-disabled=true]{color:var(--cpd-color-text-disabled);background:0 0!important}._button_1nw83_8[data-kind=tertiary]._destructive_1nw83_110{color:var(--cpd-color-text-critical-primary)}@media (hover){._button_1nw83_8[data-kind=tertiary]._destructive_1nw83_110:hover{background:var(--cpd-color-bg-critical-subtle)}}._button_1nw83_8[data-kind=tertiary]._destructive_1nw83_110:active,._button_1nw83_8[data-kind=tertiary]._destructive_1nw83_110[aria-expanded=true]{background:var(--cpd-color-bg-critical-subtle-hovered)}@media (forced-colors:active){._button_1nw83_8[data-kind=primary]{outline:1px solid #0000}}._chat-filter_5qdp0_8{font:var(--cpd-font-body-sm-medium);color:var(--cpd-color-text-primary);border:var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);cursor:pointer;padding:var(--cpd-space-1x) var(--cpd-space-2x);background-color:#0000;border-radius:99px;justify-content:center;align-items:center;display:flex}@media (hover){._chat-filter_5qdp0_8:hover{border-color:var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-subtle-primary)}}._chat-filter_5qdp0_8[aria-selected=true]{border-color:var(--cpd-color-bg-action-primary-rest);background:var(--cpd-color-bg-action-primary-rest);color:var(--cpd-color-text-on-solid-primary)}._container_z8zo1_8{flex-direction:column;display:flex}._container_z8zo1_8 label{font:var(--cpd-font-body-md-medium);-webkit-margin-after:var(--cpd-space-1x);margin-block-end:var(--cpd-space-1x)}._container_z8zo1_8 button{border:1px solid var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-canvas-default);inline-size:100%;padding:var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-3x) var(--cpd-space-4x);box-sizing:border-box;color:var(--cpd-color-text-primary);font:var(--cpd-font-body-md-regular);cursor:pointer;justify-content:space-between;align-items:center;gap:var(--cpd-space-4x);border-radius:.5rem;display:flex}@media (prefers-reduced-motion:no-preference){._container_z8zo1_8 button svg{transition:transform .1s linear}}._container_z8zo1_8 button[aria-expanded=true] svg{transform:rotate(180deg)}._container_z8zo1_8 button._placeholder_z8zo1_49{color:var(--cpd-color-text-secondary)}._container_z8zo1_8 ._border_z8zo1_53{-webkit-border-start:1px solid var(--cpd-color-border-interactive-secondary);border-inline-start:1px solid var(--cpd-color-border-interactive-secondary);-webkit-border-end:1px solid var(--cpd-color-border-interactive-secondary);border-inline-end:1px solid var(--cpd-color-border-interactive-secondary);block-size:var(--cpd-space-1x);-webkit-margin-before:calc(var(--cpd-space-1x) * -1);box-sizing:border-box;margin-block-start:calc(var(--cpd-space-1x) * -1);display:none}._container_z8zo1_8 ._content_z8zo1_62{display:none;position:relative}._container_z8zo1_8 ._content_z8zo1_62 ul{background:var(--cpd-color-bg-canvas-default);border:1px solid var(--cpd-color-border-interactive-secondary);-webkit-border-before:0;box-sizing:border-box;-webkit-padding-after:var(--cpd-space-4x);inline-size:100%;cursor:pointer;border-block-start:0;border-end-end-radius:var(--cpd-space-4x);border-end-start-radius:var(--cpd-space-4x);margin:0;padding:0;padding-block-end:var(--cpd-space-4x);display:block;position:absolute;box-shadow:0 4px 24px #1b1d221a}._container_z8zo1_8 ._content_z8zo1_62 ul li{font:var(--cpd-font-body-md-medium);padding:var(--cpd-space-3x) var(--cpd-space-4x);-webkit-border-after:1px solid var(--cpd-color-gray-300);border-block-end:1px solid var(--cpd-color-gray-300);color:var(--cpd-color-text-secondary);justify-content:space-between;align-items:center;gap:var(--cpd-space-4x);list-style-type:"";display:flex}@media (hover){._container_z8zo1_8 ._content_z8zo1_62 ul li:hover{background:var(--cpd-color-gray-200)}}._container_z8zo1_8 ._content_z8zo1_62 ul li[aria-selected=true]{color:var(--cpd-color-text-primary);background:var(--cpd-color-gray-300)}._container_z8zo1_8 ._open_z8zo1_110{display:block}._container_z8zo1_8 ._help_z8zo1_114{font:var(--cpd-font-body-sm-regular);color:var(--cpd-color-text-secondary)}._container_z8zo1_8 ._error_z8zo1_119{font:var(--cpd-font-body-sm-medium);color:var(--cpd-color-text-critical-primary);gap:var(--cpd-space-2x);display:flex}._container_z8zo1_8 ._error_z8zo1_119,._container_z8zo1_8 ._help_z8zo1_114{-webkit-margin-before:var(--cpd-space-2x);margin-block-start:var(--cpd-space-2x)}._container_z8zo1_8[aria-invalid=true] label{color:var(--cpd-color-text-critical-primary)}._container_z8zo1_8[aria-invalid=true] button{border-color:var(--cpd-color-text-critical-primary)}._container_1s836_8{display:inline-flex;position:relative}._control_1s836_13{flex:1;min-inline-size:0;-webkit-padding-end:var(--cpd-space-12x)!important;padding-inline-end:var(--cpd-space-12x)!important}._action_1s836_24{all:unset;color:var(--cpd-color-icon-secondary);cursor:pointer;inset-block:var(--cpd-space-2x);padding:var(--cpd-space-1x);background-color:#0000;border-radius:50%;position:absolute;inset-inline-end:var(--cpd-space-2x);overflow:visible}._action_1s836_24>svg{inline-size:var(--cpd-space-6x);block-size:var(--cpd-space-6x)}@media (hover){._action_1s836_24:hover{color:var(--cpd-color-icon-primary);background-color:var(--cpd-color-bg-subtle-secondary)}}._action_1s836_24:focus-visible{outline:2px solid var(--cpd-color-border-focused);outline-offset:1px}._control_1s836_13[disabled]+._action_1s836_24{pointer-events:none;color:var(--cpd-color-text-disabled)}._control_1s836_13[readonly]+._action_1s836_24{pointer-events:none;color:var(--cpd-color-text-secondary)}._control_d83jn_10{border:1px solid var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-canvas-default);padding:var(--cpd-space-3x) var(--cpd-space-4x);box-sizing:border-box;-webkit-font-feature-settings:"calt" 0;font-feature-settings:"calt" 0;border-radius:.5rem}@media (hover){._control_d83jn_10:hover{border-color:var(--cpd-color-border-interactive-hovered);box-shadow:0 1.2px 2.4px #00000026}}._control_d83jn_10:active{border-color:var(--cpd-color-border-interactive-hovered)}._control_d83jn_10:focus{outline:2px solid var(--cpd-color-border-focused);border-color:#0000}._control_d83jn_10[data-invalid]{border-color:var(--cpd-color-text-critical-primary)}._control_d83jn_10:disabled{-webkit-box-shadow:none;box-shadow:none;background:var(--cpd-color-bg-canvas-disabled);border-color:var(--cpd-color-border-disabled);color:var(--cpd-color-text-disabled);cursor:not-allowed}._control_d83jn_10[readonly]{-webkit-box-shadow:none;box-shadow:none;background:var(--cpd-color-bg-subtle-secondary);border-color:var(--cpd-color-bg-subtle-secondary);color:var(--cpd-color-text-secondary)}._control_d83jn_10._enable-ligatures_d83jn_63{-webkit-font-feature-settings:"kern" 1, "liga" 1, "calt" 1;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;-webkit-font-feature-settings:var(--cpd-font-feature-settings);font-feature-settings:var(--cpd-font-feature-settings)}._container_153f2_10{--size:20px;inline-size:20px;inline-size:var(--size);block-size:20px;block-size:var(--size);display:grid}._input_153f2_18,._ui_153f2_19{box-sizing:border-box;inline-size:var(--size);block-size:var(--size);grid-area:1/1}._input_153f2_18{opacity:0;cursor:pointer;margin:0}._ui_153f2_19{pointer-events:none;border:1px solid;border-color:var(--cpd-color-border-interactive-primary);border-radius:4px}._ui_153f2_19 svg{inline-size:var(--size);block-size:var(--size);color:#0000;margin:-1px}._input_153f2_18:checked+._ui_153f2_19{background-color:var(--cpd-color-bg-accent-rest);border-color:var(--cpd-color-bg-accent-rest)}._input_153f2_18:checked+._ui_153f2_19 svg{color:var(--cpd-color-icon-on-solid-primary)}._input_153f2_18:focus-visible+._ui_153f2_19{outline:2px solid var(--cpd-color-border-focused);outline-offset:1px}._input_153f2_18[disabled]{cursor:not-allowed}._input_153f2_18[disabled]+._ui_153f2_19{border-color:var(--cpd-color-border-disabled);background:var(--cpd-color-bg-canvas-disabled)}._input_153f2_18[readonly]{pointer-events:none}._input_153f2_18[readonly]+._ui_153f2_19{border-color:var(--cpd-color-border-interactive-secondary);background:var(--cpd-color-bg-subtle-secondary)}._input_153f2_18[disabled]:checked+._ui_153f2_19{border-color:var(--cpd-color-bg-action-primary-disabled);background:var(--cpd-color-bg-action-primary-disabled)}._input_153f2_18[readonly]:checked+._ui_153f2_19 svg{color:var(--cpd-color-icon-secondary)}@media (hover){._input_153f2_18:not([disabled],[readonly],:checked):hover+._ui_153f2_19{border-color:var(--cpd-color-bg-accent-hovered);box-shadow:0 1.2px 2.4px #00000026}._input_153f2_18:not([disabled],[readonly],:checked):hover+._ui_153f2_19 svg{color:var(--cpd-color-icon-quaternary)}._input_153f2_18:not([disabled],[readonly]):checked:hover+._ui_153f2_19{border-color:var(--cpd-color-bg-accent-hovered);background:var(--cpd-color-bg-accent-hovered)}._input_153f2_18[data-invalid]:not([disabled],[readonly]):checked:hover+._ui_153f2_19{border-color:var(--cpd-color-bg-critical-hovered);background:var(--cpd-color-bg-critical-hovered)}}._input_153f2_18[data-invalid]:not([disabled],:checked,[readonly])+._ui_153f2_19{border-color:var(--cpd-color-border-critical-primary)}._input_153f2_18[data-invalid]:not([disabled],[readonly]):checked+._ui_153f2_19{background-color:var(--cpd-color-bg-critical-primary);border-color:var(--cpd-color-bg-critical-primary)}._controls_17lij_8{gap:15px;display:flex}._controls_17lij_8>input{flex:1;min-inline-size:0}._button-group_17lij_18{align-items:center;gap:var(--cpd-space-2x);display:flex;inset-block-start:var(--cpd-space-1x)}._root_1o4d9_17{gap:var(--cpd-space-5x);flex-direction:column;display:flex}._field_1o4d9_27{gap:var(--cpd-space-1x);flex-direction:column;display:flex}._inline-field_1o4d9_33{gap:var(--cpd-space-3x);flex-direction:row;display:flex}._inline-field-body_1o4d9_39{flex-direction:column;flex:1;display:flex}._inline-field-control_1o4d9_45{block-size:calc(var(--cpd-font-size-body-md) * var(--cpd-font-line-height-regular));align-items:center;display:flex}._label_1o4d9_60{font:var(--cpd-font-body-md-medium);letter-spacing:var(--cpd-font-letter-spacing-body-md)}._label_1o4d9_60[for]{cursor:pointer}._label_1o4d9_60[data-invalid]{color:var(--cpd-color-text-critical-primary)}._label_1o4d9_60:has(~* input[disabled]){color:var(--cpd-color-text-disabled);cursor:not-allowed}._label_1o4d9_60:has(~input[disabled]){color:var(--cpd-color-text-disabled);cursor:not-allowed}._inline-field-control_1o4d9_45:has(input[disabled])~._inline-field-body_1o4d9_39 ._label_1o4d9_60{color:var(--cpd-color-text-disabled);cursor:not-allowed}._message_1o4d9_86{font:var(--cpd-font-body-sm-regular);letter-spacing:var(--cpd-font-letter-spacing-body-sm);-webkit-margin-before:var(--cpd-space-1x);margin-block-start:var(--cpd-space-1x)}._help-message_1o4d9_92{color:var(--cpd-color-text-secondary)}._error-message_1o4d9_96{color:var(--cpd-color-text-critical-primary)}._success-message_1o4d9_100{color:var(--cpd-color-text-success-primary)}input[disabled]~._message_1o4d9_86{color:var(--cpd-color-text-disabled)}:has(input[disabled])~._message_1o4d9_86{color:var(--cpd-color-text-disabled)}._inline-field-control_1o4d9_45:has(input[disabled])~._inline-field-body_1o4d9_39 ._message_1o4d9_86{color:var(--cpd-color-text-disabled)}._message_1o4d9_86>svg{vertical-align:bottom;-webkit-margin-end:var(--cpd-space-2x);block-size:calc(1em * var(--cpd-font-line-height-regular));inline-size:calc(1em * var(--cpd-font-line-height-regular));margin-inline-end:var(--cpd-space-2x);display:inline-block}@keyframes _spin_1855a_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._icon_1855a_18{color:var(--cpd-color-icon-secondary);justify-content:center;align-items:center;block-size:100%;inline-size:100%;display:inline-flex}@media (prefers-reduced-motion:no-preference){._icon_1855a_18{animation:1s linear infinite _spin_1855a_1}}._container_17qhw_10{--gap:var(--cpd-space-3x);--digit-size:var(--cpd-space-10x);--digit-height:var(--cpd-space-12x);gap:var(--gap);flex-direction:row;inline-size:fit-content;display:flex;position:relative}._control_17qhw_25{all:unset;font-family:var(--cpd-font-family-mono), ui-monospace, monospace;letter-spacing:calc(var(--gap) + var(--digit-size) - 1ch);font-weight:700;line-height:var(--digit-height);-webkit-padding-start:calc(var(--cpd-space-10x) / 2 - (1ch / 2));-webkit-margin-end:calc(-1 * (var(--cpd-space-10x) + var(--cpd-space-3x)));margin-inline-end:calc(-1 * (var(--cpd-space-10x) + var(--cpd-space-3x)));padding-inline-start:calc(var(--cpd-space-10x) / 2 - (1ch / 2));position:absolute;inset:0}._digit_17qhw_49{box-sizing:border-box;inline-size:var(--cpd-space-10x);block-size:var(--cpd-space-12x);border:1px solid var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-canvas-default);padding:var(--cpd-space-3x) var(--cpd-space-4x);border-radius:.5rem}@media (hover){._control_17qhw_25:hover~._digit_17qhw_49{border-color:var(--cpd-color-border-interactive-hovered);box-shadow:0 1.2px 2.4px #00000026}}._control_17qhw_25:disabled{color:var(--cpd-color-text-disabled);cursor:not-allowed}._control_17qhw_25:disabled~._digit_17qhw_49{-webkit-box-shadow:none;box-shadow:none;background:var(--cpd-color-bg-canvas-disabled);border-color:var(--cpd-color-border-disabled)}._control_17qhw_25[readonly]{color:var(--cpd-color-text-secondary)}._control_17qhw_25[readonly]~._digit_17qhw_49{-webkit-box-shadow:none;box-shadow:none;background:var(--cpd-color-bg-subtle-secondary);border-color:var(--cpd-color-bg-subtle-secondary)}._control_17qhw_25[data-invalid]~._digit_17qhw_49{border-color:var(--cpd-color-text-critical-primary)}._control_17qhw_25:focus~._digit_17qhw_49:not([data-filled]){outline:2px solid var(--cpd-color-border-focused);border-color:#0000}._digit_17qhw_49[data-selected]{border-color:var(--cpd-color-border-focused);background-color:var(--cpd-color-bg-info-subtle)}._container_1ug7n_10{--size:20px;inline-size:20px;inline-size:var(--size);block-size:20px;block-size:var(--size);display:grid}._input_1ug7n_18,._ui_1ug7n_19{box-sizing:border-box;inline-size:var(--size);block-size:var(--size);grid-area:1/1}._input_1ug7n_18{opacity:0;cursor:pointer;margin:0}._ui_1ug7n_19{pointer-events:none;border:1px solid;border-color:var(--cpd-color-border-interactive-primary);border-radius:50%;justify-content:center;align-items:center;display:flex}._ui_1ug7n_19:after{content:"";box-sizing:border-box;color:#0000;background:0 0;border:1px solid #0000;border-radius:50%;block-size:6px;inline-size:6px}._input_1ug7n_18:checked+._ui_1ug7n_19{background-color:var(--cpd-color-bg-accent-rest);border-color:var(--cpd-color-bg-accent-rest);color:inherit}._input_1ug7n_18:checked+._ui_1ug7n_19:after{background:var(--cpd-color-icon-on-solid-primary);border-color:var(--cpd-color-icon-on-solid-primary);color:inherit}._input_1ug7n_18:focus-visible+._ui_1ug7n_19{outline:2px solid var(--cpd-color-border-focused);outline-offset:1px}._input_1ug7n_18[readonly]{pointer-events:none}._input_1ug7n_18[readonly]+._ui_1ug7n_19{border-color:var(--cpd-color-border-interactive-secondary);background:var(--cpd-color-bg-subtle-secondary)}._input_1ug7n_18[disabled]{cursor:not-allowed}._input_1ug7n_18[disabled]+._ui_1ug7n_19{border-color:var(--cpd-color-border-disabled);background:var(--cpd-color-bg-canvas-disabled)}._input_1ug7n_18[disabled]:checked+._ui_1ug7n_19{border-color:var(--cpd-color-bg-action-primary-disabled);background:var(--cpd-color-bg-action-primary-disabled)}._input_1ug7n_18[readonly]:checked+._ui_1ug7n_19:after{background-color:var(--cpd-color-icon-secondary);border-color:var(--cpd-color-icon-secondary);color:inherit}@media (hover){._input_1ug7n_18:not([disabled],[readonly],:checked):hover+._ui_1ug7n_19{border-color:var(--cpd-color-bg-accent-hovered);box-shadow:0 1.2px 2.4px #00000026}._input_1ug7n_18:not([disabled],[readonly],:checked):hover+._ui_1ug7n_19:after{background:var(--cpd-color-icon-quaternary);border-color:var(--cpd-color-icon-quaternary);color:inherit}._input_1ug7n_18:not([disabled],[readonly]):checked:hover+._ui_1ug7n_19{border-color:var(--cpd-color-bg-accent-hovered);background:var(--cpd-color-bg-accent-hovered)}._input_1ug7n_18[data-invalid]:not([disabled],[readonly]):checked:hover+._ui_1ug7n_19{border-color:var(--cpd-color-bg-critical-hovered);background:var(--cpd-color-bg-critical-hovered)}}._input_1ug7n_18[data-invalid]:not([disabled],[readonly],:checked)+._ui_1ug7n_19{border-color:var(--cpd-color-border-critical-primary)}._input_1ug7n_18[data-invalid]:not([disabled],[readonly]):checked+._ui_1ug7n_19{background-color:var(--cpd-color-bg-critical-primary);border-color:var(--cpd-color-bg-critical-primary)}._container_udcm8_10{box-sizing:border-box;block-size:1.25rem;inline-size:2.25rem;display:grid}._container_udcm8_10>*{inline-size:inherit;block-size:inherit;-webkit-box-sizing:inherit;box-sizing:inherit;grid-area:1/1}._container_udcm8_10>._input_udcm8_24{opacity:0;cursor:pointer;margin:0}._container_udcm8_10>._input_udcm8_24[disabled]{cursor:not-allowed}._ui_udcm8_34{pointer-events:none;border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);border:1px solid var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-canvas-default);padding:1px;transition-property:background-color,border-color;transition-duration:.2s;transition-timing-function:ease-in-out;position:relative}._input_udcm8_24:checked+._ui_udcm8_34{background:var(--cpd-color-bg-accent-rest);border-color:var(--cpd-color-bg-accent-rest)}._ui_udcm8_34:after{--dot-color:var(--cpd-color-icon-secondary);content:"";aspect-ratio:1;background:var(--dot-color);border:1px solid var(--dot-color);box-sizing:border-box;border-radius:50%;block-size:100%;transition-property:background-color,transform;transition-duration:.2s;transition-timing-function:ease-in-out;display:block;transform:translate(0)}._input_udcm8_24:focus-visible+._ui_udcm8_34{outline:2px solid var(--cpd-color-border-focused);outline-offset:1px}:checked+._ui_udcm8_34:after{--dot-color:var(--cpd-color-icon-on-solid-primary);transform:translate(100%)}@media (hover){:checked:not([disabled]):hover+._ui_udcm8_34{background:var(--cpd-color-bg-accent-hovered);border-color:var(--cpd-color-bg-accent-hovered)}}:checked:active+._ui_udcm8_34{background:var(--cpd-color-bg-accent-hovered);border-color:var(--cpd-color-bg-accent-hovered)}._input_udcm8_24[readonly]{pointer-events:none}._input_udcm8_24[readonly]+._ui_udcm8_34{border-color:var(--cpd-color-border-interactive-secondary);background:var(--cpd-color-bg-subtle-secondary)}._input_udcm8_24[readonly]+._ui_udcm8_34:after{--dot-color:var(--cpd-color-icon-secondary)}._input_udcm8_24[disabled]+._ui_udcm8_34{border-color:var(--cpd-color-border-disabled);background:var(--cpd-color-bg-canvas-disabled)}._input_udcm8_24[disabled]+._ui_udcm8_34:after{--dot-color:var(--cpd-color-bg-action-primary-disabled)}._input_udcm8_24[readonly]:checked+._ui_udcm8_34{border-color:var(--cpd-color-icon-secondary);background:var(--cpd-color-icon-secondary)}._input_udcm8_24[readonly]:checked+._ui_udcm8_34:after{--dot-color:var(--cpd-color-icon-on-solid-primary)}._input_udcm8_24[disabled]:checked+._ui_udcm8_34{background:var(--cpd-color-bg-action-primary-disabled);border-color:var(--cpd-color-bg-action-primary-disabled)}._input_udcm8_24[disabled]:checked+._ui_udcm8_34:after{--dot-color:var(--cpd-color-icon-on-solid-primary)}@media (hover){._input_udcm8_24:not(:checked,[disabled],[readonly]):hover+._ui_udcm8_34{border-color:var(--cpd-color-border-interactive-hovered);box-shadow:0 1.2px 2.4px #00000026}}._input_udcm8_24:not(:checked,[disabled],[readonly]):active+._ui_udcm8_34{border-color:var(--cpd-color-border-interactive-hovered)}._glass_sepwu_8{border-radius:var(--cpd-space-9x);padding:var(--cpd-space-3x);outline:var(--cpd-border-width-1) solid var(--cpd-color-alpha-gray-400);outline-offset:calc(-1 * var(--cpd-border-width-1));background:var(--cpd-color-alpha-gray-400);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}._glass_sepwu_8>:first-child{border-radius:var(--cpd-space-6x);block-size:100%;inline-size:100%}._big-icon_1ssbv_8{padding:var(--cpd-space-4x);border-radius:var(--cpd-space-2x);display:inline-flex}._big-icon_1ssbv_8>svg{block-size:32px;inline-size:32px}._big-icon_1ssbv_8[data-size=md]{padding:var(--cpd-space-3x)}._big-icon_1ssbv_8[data-size=sm]{padding:var(--cpd-space-3x)}._big-icon_1ssbv_8[data-size=sm]>svg{block-size:24px;inline-size:24px}._big-icon_1ssbv_8[data-kind=primary]{background-color:var(--cpd-color-bg-subtle-secondary);color:var(--cpd-color-icon-primary)}._big-icon_1ssbv_8[data-kind=critical]{background-color:var(--cpd-color-bg-critical-subtle);color:var(--cpd-color-icon-critical-primary)}._big-icon_1ssbv_8[data-kind=success]{background-color:var(--cpd-color-bg-success-subtle);color:var(--cpd-color-icon-success-primary)}@media (forced-colors:active){._big-icon_1ssbv_8{outline:1px solid #0000}}._item_bym9p_8{grid-template:"icon label ." auto "empty1 label empty2" auto / auto auto minmax( var(--cpd-space-2x), 1fr);padding-block:var(--cpd-space-2x);padding-inline:var(--cpd-space-4x);box-sizing:border-box;inline-size:100%;min-inline-size:200px;color:var(--cpd-color-text-secondary);background:var(--cpd-color-bg-action-secondary-rest);place-items:center end;display:grid}._item_bym9p_8._interactive_bym9p_26,._item_bym9p_8[data-state]{cursor:pointer}._item_bym9p_8._no-label_bym9p_31{grid-template:"icon."/auto 1fr}._label_bym9p_35{-webkit-margin-end:var(--cpd-space-4x);text-align:start;word-break:break-word;grid-area:label;margin-inline-end:var(--cpd-space-4x)}._item_bym9p_8._no-icon_bym9p_42{grid-template:"label."/auto 1fr}._item_bym9p_8._no-icon_bym9p_42 ._label_bym9p_35{min-block-size:24px}._icon_bym9p_51{-webkit-margin-end:var(--cpd-space-3x);grid-area:icon;margin-inline-end:var(--cpd-space-3x)}._item_bym9p_8._no-label_bym9p_31 ._icon_bym9p_51{-webkit-margin-end:var(--cpd-space-4x);margin-inline-end:var(--cpd-space-4x)}._nav-hint_bym9p_60{flex-shrink:0;display:none}button._item_bym9p_8{appearance:none;border:none}._item_bym9p_8[data-kind=primary]>._label_bym9p_35{color:var(--cpd-color-text-primary)}._item_bym9p_8[data-kind=primary]>._icon_bym9p_51{color:var(--cpd-color-icon-primary)}._item_bym9p_8[data-kind=primary]>._nav-hint_bym9p_60{color:var(--cpd-color-icon-tertiary)}._item_bym9p_8[data-kind=critical]>._label_bym9p_35{color:var(--cpd-color-text-critical-primary)}._item_bym9p_8[data-kind=critical]>._icon_bym9p_51,._item_bym9p_8[data-kind=critical]>._nav-hint_bym9p_60{color:var(--cpd-color-icon-critical-primary)}._item_bym9p_8[data-state]>._nav-hint_bym9p_60{display:inline;display:initial}._item_bym9p_8[data-state]>._nav-hint_bym9p_60~*{display:none}._item_bym9p_8[data-state=open][data-kind=primary]{background:var(--cpd-color-bg-action-secondary-hovered)}._item_bym9p_8[data-state=open][data-kind=critical]{background:var(--cpd-color-bg-critical-subtle)}@media (hover){._item_bym9p_8._interactive_bym9p_26[data-kind=primary]:hover,._item_bym9p_8[data-state][data-kind=primary]:hover{background:var(--cpd-color-bg-action-secondary-hovered)}._item_bym9p_8._interactive_bym9p_26[data-kind=critical]:hover,._item_bym9p_8[data-state][data-kind=critical]:hover{background:var(--cpd-color-bg-critical-subtle)}._item_bym9p_8._interactive_bym9p_26:hover>._nav-hint_bym9p_60{display:inline;display:initial}._item_bym9p_8._interactive_bym9p_26:hover>._nav-hint_bym9p_60~*{display:none}}._item_bym9p_8._interactive_bym9p_26[data-kind=primary]:active,._item_bym9p_8[data-state][data-kind=primary]:active{background:var(--cpd-color-bg-action-secondary-pressed)}._item_bym9p_8._interactive_bym9p_26[data-kind=critical]:active,._item_bym9p_8[data-state][data-kind=critical]:active{background:var(--cpd-color-bg-critical-subtle-hovered)}._item_bym9p_8[data-kind]._disabled_bym9p_140{pointer-events:none}._item_bym9p_8[data-kind]._disabled_bym9p_140>._label_bym9p_35,._item_bym9p_8[data-kind]._disabled_bym9p_140>._icon_bym9p_51,._item_bym9p_8[data-kind]._disabled_bym9p_140>._nav-hint_bym9p_60{color:var(--cpd-color-text-disabled)}._bg_610zp_8{background:#030c1b87;position:fixed;inset:0}._drawer_610zp_17{background:var(--cpd-color-bg-canvas-default);--border-radius:28px;--handle-block-size:4px;--handle-inline-size:32px;--handle-inset-block-start:var(--cpd-space-4x);--handle-inset-block-end:0px;--content-inset-block-start:calc(var(--handle-inset-block-start) + var(--handle-block-size) + var(--handle-inset-block-end));border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);flex-direction:column;padding-inline:max(0px,50% - 260px);display:flex;position:fixed;inset-block-end:0;inset-inline:0}._drawer_610zp_17[data-platform=ios]{--border-radius:10px;--handle-block-size:5px;--handle-inline-size:36px;--handle-inset-block-start:var(--cpd-space-1-5x);--handle-inset-block-end:1px}._body_610zp_51{gap:var(--cpd-space-2x);padding-block:calc(var(--content-inset-block-start) + var(--cpd-space-6x)) var(--cpd-space-12x);contain:paint;scrollbar-width:none;--cpd-separator-spacing:0;--cpd-separator-inset:var(--cpd-space-4x);border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);flex-direction:column;display:flex;overflow:auto}._body_610zp_51:before{content:"";block-size:var(--handle-block-size);inset-inline:calc((100% - var(--handle-inline-size)) / 2);background:var(--cpd-color-icon-secondary);border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);position:absolute;inset-block-start:var(--handle-inset-block-start)}._menu_1kl3y_8{border-radius:var(--cpd-space-3x);background:var(--cpd-color-bg-canvas-default);outline-offset:calc(-1 * var(--cpd-border-width-1));gap:var(--cpd-space-1x);inline-size:fit-content;max-inline-size:320px;padding-block:var(--cpd-space-5x) var(--cpd-space-4x);--cpd-separator-spacing:0;--cpd-separator-inset:var(--cpd-space-4x);flex-direction:column;display:flex;box-shadow:0 4px 24px #0000001a;outline:var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary)!important}@keyframes _slide-in_1kl3y_1{0%{opacity:0;-webkit-transform:translate(0, var(--cpd-space-3x));transform:translate(0, var(--cpd-space-3x))}}._menu_1kl3y_8[data-state=open]{animation:.18s _slide-in_1kl3y_1}@keyframes _fade-in_1kl3y_1{0%{opacity:0}}@keyframes _fade-out_1kl3y_1{to{opacity:0}}@media (prefers-reduced-motion){._menu_1kl3y_8[data-state=open]{animation-name:_fade-in_1kl3y_1}._menu_1kl3y_8[data-state=closed]{animation-name:_fade-out_1kl3y_1}}._title_1kl3y_65{-webkit-margin-before:0!important;margin-block-start:0!important}._menu-title_1sgvx_8{color:var(--cpd-color-text-secondary);padding-inline:var(--cpd-space-4x);-webkit-padding-after:calc(var(--cpd-space-2x) - var(--cpd-border-width-1));-webkit-border-after:var(--cpd-border-width-1) solid var(--cpd-color-gray-400);border-block-end:var(--cpd-border-width-1) solid var(--cpd-color-gray-400);margin-block:var(--cpd-space-2x);padding-block-end:calc(var(--cpd-space-2x) - var(--cpd-border-width-1))}._nav-bar_pmal2_8{-webkit-border-after:var(--cpd-border-width-1) solid var(--cpd-color-gray-400);border-block-end:var(--cpd-border-width-1) solid var(--cpd-color-gray-400);margin:var(--cpd-space-6x) 0;padding:0}._nav-bar-items_pmal2_14{justify-content:flex-start;align-items:center;gap:var(--cpd-space-3x);flex-direction:row;margin:0;padding:0;list-style-type:"";display:flex}._nav-tab_pmal2_25{padding:var(--cpd-space-4x) 0;position:relative}._nav-tab_pmal2_25:before{content:"";border-radius:9999px 9999px 0 0;border-radius:var(--cpd-radius-pill-effect) var(--cpd-radius-pill-effect) 0 0;background-color:var(--cpd-color-bg-action-primary-rest);block-size:0;position:absolute;inset-block-end:0;inset-inline:0}@media (prefers-reduced-motion:no-preference){._nav-tab_pmal2_25:before{transition:height .1s ease-in-out}}._nav-tab_pmal2_25[data-current]:before{block-size:var(--cpd-border-width-4)}._nav-item_pmal2_50{padding-block:var(--cpd-space-1x);padding-inline:var(--cpd-space-2x);border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);cursor:pointer;appearance:none;justify-content:center;align-items:center;gap:var(--cpd-space-2x);box-sizing:border-box;font:var(--cpd-font-body-md-medium);color:var(--cpd-color-text-secondary);background:0 0;border:0;text-decoration:none;display:flex}@media (hover){._nav-item_pmal2_50:not([disabled]):hover{color:var(--cpd-color-text-primary);background-color:var(--cpd-color-bg-subtle-secondary)}}._nav-item_pmal2_50:focus-visible{outline:var(--cpd-color-border-focused) var(--cpd-border-width-2) solid}._nav-item_pmal2_50:not([disabled]):active{color:var(--cpd-color-text-primary);background-color:var(--cpd-color-bg-subtle-primary)}._nav-item_pmal2_50[aria-current],._nav-item_pmal2_50[aria-selected=true]{color:var(--cpd-color-text-primary)}._nav-item_pmal2_50[disabled]{cursor:not-allowed;color:var(--cpd-color-text-disabled);pointer-events:all!important}@media (forced-colors:active){._nav-tab_pmal2_25[data-current]:before{outline:1px solid #0000}}._header_14jk4_8{align-items:center;gap:var(--cpd-space-2x);flex-direction:column;max-inline-size:480px;display:flex}._header_14jk4_8[data-size=md] ._icon_14jk4_16{-webkit-margin-after:var(--cpd-space-2x);margin-block-end:var(--cpd-space-2x)}._header_14jk4_8[data-size=lg] ._icon_14jk4_16{-webkit-margin-after:var(--cpd-space-4x);margin-block-end:var(--cpd-space-4x)}._header_14jk4_8>h1{text-align:center;margin:0}._header_14jk4_8>p{color:var(--cpd-color-text-secondary);text-align:center;margin:0}._header_14jk4_8[data-size=md]>p{font:var(--cpd-font-body-md-regular)}._header_14jk4_8[dat-size=lg]>p{font:var(--cpd-font-body-lg-regular)}._progress-bar_1kvi5_8{background-color:var(--cpd-color-gray-200);border:1px solid var(--cpd-color-gray-400);border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);position:relative;overflow:hidden}._progress-bar_1kvi5_8[data-size=sm]{block-size:var(--cpd-space-2x)}._progress-bar_1kvi5_8[data-size=lg]{block-size:var(--cpd-space-4x)}._progress-bar-container_1kvi5_24{gap:var(--cpd-space-1x);--cpd-progress-bar-main:var(--cpd-color-text-secondary);--cpd-progress-bar-muted:var(--cpd-color-gray-800);flex-direction:column;display:flex}._progress-bar-container_1kvi5_24[data-tint=green]{--cpd-progress-bar-main:var(--cpd-color-text-success-primary);--cpd-progress-bar-muted:var(--cpd-color-green-800)}._progress-bar-container_1kvi5_24[data-tint=lime]{--cpd-progress-bar-main:var(--cpd-color-lime-900);--cpd-progress-bar-muted:var(--cpd-color-lime-800)}._progress-bar-container_1kvi5_24[data-tint=orange]{--cpd-progress-bar-main:var(--cpd-color-orange-900);--cpd-progress-bar-muted:var(--cpd-color-orange-800)}._progress-bar-container_1kvi5_24[data-tint=red]{--cpd-progress-bar-main:var(--cpd-color-text-critical-primary);--cpd-progress-bar-muted:var(--cpd-color-red-800)}._progress-bar-label_1kvi5_53{font:var(--cpd-font-body-sm-medium);letter-spacing:var(--cpd-font-letter-spacing-body-sm);color:var(--cpd-progress-bar-main)}._progress-bar-indicator_1kvi5_59{position:absolute;inset:0}@media (prefers-reduced-motion:no-preference){._progress-bar-indicator_1kvi5_59{transition:transform .2s ease-in-out}}._progress-bar-indicator_1kvi5_59{background-image:linear-gradient(135deg, var(--cpd-progress-bar-muted) 0%, var(--cpd-progress-bar-muted) 25%, var(--cpd-progress-bar-main) 25%, var(--cpd-progress-bar-main) 50%, var(--cpd-progress-bar-muted) 50%, var(--cpd-progress-bar-muted) 75%, var(--cpd-progress-bar-main) 75%, var(--cpd-progress-bar-main) 100%, var(--cpd-progress-bar-muted) 100%);background-size:5.6569px 5.6569px}@media (forced-colors:active){._progress-bar-indicator_1kvi5_59{outline:1px solid #0000}}._content_16f2y_8{border-radius:var(--cpd-space-3x);background:var(--cpd-color-bg-action-primary-rest);max-inline-size:320px;padding:var(--cpd-space-5x) var(--cpd-space-6x);grid-column-gap:var(--cpd-space-6x);-webkit-column-gap:var(--cpd-space-6x);-moz-column-gap:var(--cpd-space-6x);align-items:center;column-gap:var(--cpd-space-6x);grid-template:"header button""description button";display:grid;box-shadow:0 4px 24px #0000001a}._header_16f2y_37{color:var(--cpd-color-text-on-solid-primary);grid-area:header;margin:0}._description_16f2y_43{color:var(--cpd-color-gray-500);grid-area:description}._button_16f2y_48{color:var(--cpd-color-bg-subtle-secondary);grid-area:button}._arrow_16f2y_53{fill:var(--cpd-color-bg-action-primary-rest)}@media (forced-colors:active){._content_16f2y_8{outline:1px solid #0000}}._search_1lktl_8{border:1px solid var(--cpd-color-border-interactive-secondary);box-sizing:border-box;block-size:36px;color:var(--cpd-color-text-primary);padding:var(--cpd-space-1-5x) var(--cpd-space-3x);border-radius:9999px;align-items:center;display:flex;gap:var(--cpd-space-2x)!important;flex-direction:row!important}@media (hover){._search_1lktl_8:hover{border-color:var(--cpd-color-border-interactive-hovered)}}._search_1lktl_8:active{border-color:var(--cpd-color-border-interactive-hovered)}._search_1lktl_8:focus-within{border-color:currentColor}._icon_1lktl_37{color:var(--cpd-color-icon-secondary);flex-shrink:0}@media (hover){._search_1lktl_8:hover ._icon_1lktl_37{color:var(--cpd-color-icon-primary)}}._search_1lktl_8:active ._icon_1lktl_37{color:var(--cpd-color-icon-primary)}._input_1lktl_52{background:inherit;border:0;outline:0;flex:1;min-inline-size:0}._input_1lktl_52::-webkit-input-placeholder{color:var(--cpd-color-text-secondary)}._input_1lktl_52::placeholder{color:var(--cpd-color-text-secondary)}._input_1lktl_52:-ms-placeholder-shown{color:var(--cpd-color-text-secondary)}._input_1lktl_52::placeholder{color:var(--cpd-color-text-secondary)}._input_1lktl_52:focus::-webkit-input-placeholder{color:var(--cpd-color-text-secondary)}._input_1lktl_52:focus::placeholder{color:var(--cpd-color-text-secondary)}._input_1lktl_52:focus:-ms-placeholder-shown{color:var(--cpd-color-text-secondary)}._input_1lktl_52:focus::placeholder{color:var(--cpd-color-text-secondary)}@media (hover){._search_1lktl_8:hover ._input_1lktl_52::-webkit-input-placeholder{color:var(--cpd-color-text-secondary)}._search_1lktl_8:hover ._input_1lktl_52::placeholder{color:var(--cpd-color-text-secondary)}._search_1lktl_8:hover ._input_1lktl_52:-ms-placeholder-shown{color:var(--cpd-color-text-secondary)}._search_1lktl_8:hover ._input_1lktl_52::placeholder{color:var(--cpd-color-text-secondary)}}._separator_13qwf_8{--cpd-separator-color:var(--cpd-color-separator-primary);--cpd-separator-size:1px;background-color:var(--cpd-separator-color)}._separator_13qwf_8[data-kind=secondary]{--cpd-separator-color:var(--cpd-color-separator-secondary)}._separator_13qwf_8[data-kind=section]{--cpd-separator-size:2px}._separator_13qwf_8[data-orientation=horizontal]{margin-block:var(--cpd-separator-spacing);margin-inline:0;margin-inline:var(--cpd-separator-inset);block-size:var(--cpd-separator-size)}._separator_13qwf_8[data-orientation=vertical]{margin-inline:var(--cpd-separator-spacing);margin-block:0;margin-block:var(--cpd-separator-inset);inline-size:var(--cpd-separator-size)}@media (forced-colors:active){._separator_13qwf_8{outline:1px solid #0000}}._toggle_13rnk_9[data-size=lg]{--cpd-switch-button-size:44px;--cpd-switch-icon-size:24px}._toggle_13rnk_9[data-size=md]{--cpd-switch-button-size:32px;--cpd-switch-icon-size:20px}._toggle_13rnk_9{padding:var(--cpd-space-0-5x);border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-bg-canvas-default);border:1px solid var(--cpd-color-border-interactive-secondary);inline-size:fit-content;display:flex;position:relative}@media (forced-colors){._toggle_13rnk_9{border:1px solid}}._toggle_13rnk_9 svg{pointer-events:none;color:var(--cpd-color-icon-primary);inline-size:var(--cpd-switch-icon-size);block-size:var(--cpd-switch-icon-size);-webkit-margin-before:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);margin-block-start:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);transition:color .1s;display:block;position:absolute}._toggle_13rnk_9 svg:nth-child(2){-webkit-margin-start:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);margin-inline-start:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);inset-inline-start:var(--cpd-space-0-5x)}._toggle_13rnk_9 svg:nth-child(4){-webkit-margin-end:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);margin-inline-end:calc((var(--cpd-switch-button-size) - var(--cpd-switch-icon-size)) / 2);inset-inline-end:var(--cpd-space-0-5x)}._toggle_13rnk_9 input{appearance:none;block-size:var(--cpd-switch-button-size);inline-size:var(--cpd-switch-button-size);cursor:pointer;border-radius:9999px;border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-bg-action-secondary-rest);border:1px solid var(--cpd-color-border-interactive-secondary);margin:0;transition:background-color .1s;box-shadow:0 1.2px 2.4px #00000026}._toggle_13rnk_9 input:first-child{-webkit-margin-end:5px;margin-inline-end:5px}@media (hover:hover){._toggle_13rnk_9 input:hover{border-color:var(--cpd-color-border-interactive-primary);background:var(--cpd-color-bg-action-secondary-hovered);-webkit-box-shadow:none;box-shadow:none}._toggle_13rnk_9 input:checked:hover{background:var(--cpd-color-bg-action-primary-hovered)}}._toggle_13rnk_9 input:active{background:var(--cpd-color-bg-action-secondary-pressed);-webkit-box-shadow:none;box-shadow:none}._toggle_13rnk_9 input:checked{border:none;border:initial;background:var(--cpd-color-bg-action-primary-rest)}@media (forced-colors){._toggle_13rnk_9 input:checked{border:3px solid}}._toggle_13rnk_9 input:checked+svg{color:var(--cpd-color-icon-on-solid-primary)}._toggle_13rnk_9 input:checked:active{background:var(--cpd-color-bg-action-primary-pressed)}._toast-container_1ysb3_8{background-color:var(--cpd-color-bg-action-primary-rest);inline-size:fit-content;color:var(--cpd-color-text-on-solid-primary);padding:var(--cpd-space-2x) var(--cpd-space-4x);align-items:center;gap:var(--cpd-space-2x);border-radius:99px;flex-wrap:nowrap;display:flex}@media (forced-colors:active){._toast-container_1ysb3_8{outline:1px solid #0000}}._icon_1ysb3_26{flex-shrink:0}._has-close_1ysb3_30{gap:var(--cpd-space-3x)}._content_1ysb3_34{align-items:flex-start;gap:var(--cpd-space-2x);flex-wrap:nowrap;display:flex}._close_1ysb3_41{align-self:flex-start;padding:var(--cpd-space-0-5x)!important}._close_1ysb3_41:not(:hover,:focus-visible) *{color:var(--cpd-color-icon-on-solid-primary)!important}._visual-list_6zpfn_8{gap:var(--cpd-space-1x);border-radius:var(--cpd-space-3x);flex-direction:column;margin:0;padding:0;list-style-type:"";display:flex;overflow:hidden}@media (forced-colors:active){._visual-list_6zpfn_8{outline:1px solid #0000}}._visual-list-item_1nc1y_8{gap:var(--cpd-space-3x);padding:var(--cpd-space-3x) var(--cpd-space-4x);background-color:var(--cpd-color-bg-subtle-secondary);font:var(--cpd-font-body-md-medium);align-items:center;display:flex}._visual-list-item-icon_1nc1y_17{color:var(--cpd-color-icon-secondary);flex-shrink:0}._visual-list-item-icon-success_1nc1y_22{color:var(--cpd-color-icon-success-primary)}._visual-list-item-icon-destructive_1nc1y_26{color:var(--cpd-color-icon-critical-primary)}@media (forced-colors:active){._visual-list-item_1nc1y_8{outline:1px solid #0000}}:root{--cpd-radius-pill-effect:9999px;--cpd-icon-button-size:var(--cpd-space-8x);--cpd-avatar-size:var(--cpd-space-16x);--cpd-font-feature-settings:"kern" 1, "liga" 1, "calt" 1;--cpd-separator-spacing:var(--cpd-space-2x);--cpd-separator-inset:0}html,body,input{font:var(--cpd-font-body-md-regular);color:var(--cpd-color-text-primary);-webkit-font-feature-settings:"kern" 1, "liga" 1, "calt" 1;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;-webkit-font-feature-settings:var(--cpd-font-feature-settings);font-feature-settings:var(--cpd-font-feature-settings)}html,body{block-size:100%;font-size:var(--cpd-font-size-root)}body{background:var(--cpd-color-bg-canvas-default)}}:root{--font-scale:1;--font-size-micro:calc(10px * var(--font-scale));--font-size-caption:calc(12px * var(--font-scale));--font-size-body:calc(15px * var(--font-scale));--font-size-subtitle:calc(18px * var(--font-scale));--font-size-title:calc(24px * var(--font-scale));--font-size-headline:calc(32px * var(--font-scale));--stopgap-color-on-solid-accent:var(--cpd-color-bg-canvas-default);--stopgap-background-85:#ffffffd9;--stopgap-bgColor3:#444;--cpd-color-border-accent:var(--cpd-color-green-800);--content-inset-left:calc(env(safe-area-inset-left) + min(var(--cpd-space-24x), max(var(--cpd-space-4x), calc((100vw - 900px) / 3))));--content-inset-right:calc(env(safe-area-inset-right) + min(var(--cpd-space-24x), max(var(--cpd-space-4x), calc((100vw - 900px) / 3))));--small-drop-shadow:0px 1.2px 2.4px 0px #00000026;--big-drop-shadow:0px 0px 24px 0px #1b1d221a;--subtle-drop-shadow:0px 1px 2px 0px #1018280d;--background-gradient:url("data:image/svg+xml,%3csvg%20width='1440'%20height='800'%20viewBox='0%200%201440%20800'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20filter='url(%23filter0_f_4162_80259)'%3e%3cpath%20d='M-37.0486%20666.028C267.76%20138.867%20944.304%20-46.1945%201477.05%20260.929'%20stroke='url(%23paint0_linear_4162_80259)'%20stroke-width='192'%20stroke-linecap='round'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_f_4162_80259'%20x='-333.118'%20y='-183.694'%20width='2106.24'%20height='1145.68'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='BackgroundImageFix'%20result='shape'/%3e%3cfeGaussianBlur%20stdDeviation='100'%20result='effect1_foregroundBlur_4162_80259'/%3e%3c/filter%3e%3clinearGradient%20id='paint0_linear_4162_80259'%20x1='1255.31'%20y1='320.254'%20x2='184.899'%20y2='607.497'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2300C59E'/%3e%3cstop%20offset='0.75'%20stop-color='%230044A5'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e");--call-view-overlay-layer:1;--call-view-header-footer-layer:2}:root,[class*=cpd-theme-]{--video-tile-background:var(--cpd-color-bg-subtle-secondary)}.cpd-theme-dark{--cpd-color-border-accent:var(--cpd-color-green-1100);--stopgap-color-on-solid-accent:var(--cpd-color-text-primary);--stopgap-background-85:#101317d9}body{background-color:var(--cpd-color-bg-canvas-default);color:var(--cpd-color-text-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;background-position:50%;background-repeat:no-repeat;background-size:calc(max(1440px,100vw)) calc(max(800px,100vh));margin:0}.no-scroll-body{width:100%;position:fixed}.no-theme{opacity:0}html,body,#root{height:100%!important}#root{isolation:isolate;flex-direction:column;display:flex}body[data-platform=android]{--cpd-font-family-sans:"Roboto", "Noto", "Inter", sans-serif}body[data-platform=ios]{--cpd-font-family-sans:-apple-system, BlinkMacSystemFont, "Inter", sans-serif}#root>[data-overlay-container]{height:100%;position:relative}button:-moz-focusring{outline:auto}[type=button]:-moz-focusring{outline:auto}[type=reset]:-moz-focusring{outline:auto}[type=submit]:-moz-focusring{outline:auto}:root{--blap-font-sans:"Hanken Grotesk", "Inter", system-ui, sans-serif;--blap-font-mono:"JetBrains Mono", "Inconsolata", monospace;--cpd-font-family-sans:var(--blap-font-sans);--cpd-font-family-mono:var(--blap-font-mono);--blap-accent:#7c66e0;--cpd-color-green-100:#18151f;--cpd-color-green-200:#1e1a2b;--cpd-color-green-300:#271f3d;--cpd-color-green-400:#322852;--cpd-color-green-500:#3f3469;--cpd-color-green-600:#4f4185;--cpd-color-green-700:#6253a8;--cpd-color-green-800:#6f5ecb;--cpd-color-green-900:#7c66e0;--cpd-color-green-1000:#8b78e8;--cpd-color-green-1100:#9d8bec;--cpd-color-green-1200:#b3a5f1;--cpd-color-green-1300:#ccc1f6;--cpd-color-green-1400:#e2dbfb;--video-tile-background:#1a1922;--cpd-color-text-action-accent:var(--blap-accent)!important;--cpd-color-icon-accent-primary:var(--blap-accent)!important;--cpd-color-icon-accent-tertiary:#9580ea!important;--cpd-color-bg-action-primary-rest:var(--blap-accent)!important;--cpd-color-bg-action-primary-hovered:#8b78e8!important;--cpd-color-bg-action-primary-pressed:#6e58d0!important;--cpd-color-border-interactive-primary:var(--blap-accent)!important;--cpd-avatar-radius:30%!important;--cpd-color-bg-canvas-default:#201e29!important;--cpd-color-bg-subtle-primary:#26242f!important;--cpd-color-bg-subtle-secondary:#1a1922!important}body{font-family:Hanken Grotesk,Inter,system-ui,sans-serif;font-family:var(--blap-font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}._header_4cz8q_8{-webkit-user-select:none;user-select:none;padding-left:var(--content-inset-left);padding-right:var(--content-inset-right);padding-top:env(safe-area-inset-top);flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}._nav_4cz8q_20{white-space:nowrap;flex:1;align-items:center;height:80px;display:flex}._headerLogo_4cz8q_28{color:var(--cpd-color-text-primary);align-items:center;text-decoration:none;display:none}._leftNav_4cz8q_35._hideMobile_4cz8q_35{display:none}._leftNav_4cz8q_35>*{margin-right:12px}._leftNav_4cz8q_35 h3{margin:0}._rightNav_4cz8q_47{justify-content:flex-end}._rightNav_4cz8q_47>*{margin-right:24px}._rightNav_4cz8q_47._hideMobile_4cz8q_35{display:none}._nav_4cz8q_20>:last-child{margin-right:0}._roomHeaderInfo_4cz8q_63{grid-column-gap:var(--cpd-space-4x);-webkit-column-gap:var(--cpd-space-4x);-moz-column-gap:var(--cpd-space-4x);column-gap:var(--cpd-space-4x);grid-template-rows:1fr auto;grid-template-columns:auto auto;display:grid}._roomHeaderInfo_4cz8q_63[data-size=sm]{grid-template-areas:"avatar name"".participants"}._roomHeaderInfo_4cz8q_63[data-size=lg]{grid-template-areas:"avatar name""avatar participants"}._roomAvatar_4cz8q_78{grid-area:avatar;align-self:flex-start}._nameLine_4cz8q_83{align-items:center;gap:var(--cpd-space-1x);flex-grow:1;grid-area:name;min-width:0;display:flex}._nameLine_4cz8q_83>h1{text-overflow:ellipsis;margin:0;overflow:hidden}._nameLine_4cz8q_83>svg{flex-shrink:0}._participantsLine_4cz8q_102{color:var(--cpd-color-text-secondary);align-items:center;gap:var(--cpd-space-1-5x);grid-area:participants;display:flex}@media (width>=800px){._headerLogo_4cz8q_28,._leftNav_4cz8q_35._hideMobile_4cz8q_35,._rightNav_4cz8q_47._hideMobile_4cz8q_35{display:flex}._leftNav_4cz8q_35 h3{font-size:var(--font-size-subtitle)}}._lock_zf62g_8{padding:var(--cpd-space-1x);border-radius:var(--cpd-radius-pill-effect);display:block}._lock_zf62g_8[data-encrypted=true]{color:var(--cpd-color-icon-success-primary)}._lock_zf62g_8[data-encrypted=false]{color:var(--cpd-color-icon-secondary)}@media (hover:hover){._lock_zf62g_8:hover{background:var(--cpd-color-bg-subtle-primary)}}._banner_sye6n_8{background-color:var(--cpd-color-bg-subtle-primary);vertical-align:middle;font-size:var(--font-size-body);text-align:center;z-index:1;width:calc(100% - 58px);padding:29px;position:absolute;top:76px}._page_fvtgn_8{flex-direction:column;min-height:100%;display:flex;position:relative;overflow:hidden}._header_fvtgn_16{padding:76px 65px}._container_fvtgn_20{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}._content_fvtgn_28{flex-direction:column;justify-content:center;align-items:center;max-width:660px;padding:0 65px;display:flex}._content_fvtgn_28>*{margin-top:0;margin-bottom:32px}._content_fvtgn_28>:last-child{margin-bottom:0}._wideButton_fvtgn_47{width:291px}._sendLogsSection_fvtgn_52{height:50px}._rageshakeControl_65ekp_8{text-align:center;vertical-align:middle;height:50px}._error_hm0w3_1{align-items:center;gap:var(--cpd-space-2x);flex-direction:column;max-inline-size:480px;display:flex}._icon_hm0w3_9{-webkit-margin-after:var(--cpd-space-4x);margin-block-end:var(--cpd-space-4x)}._error_hm0w3_1>h1{text-align:center;margin:0}._error_hm0w3_1>p{font:var(--cpd-font-body-lg-regular);color:var(--cpd-color-text-secondary);text-align:center}._technicalDetails_hm0w3_24{margin-top:var(--cpd-space-1x)}._technicalDetailsSummary_hm0w3_28{cursor:pointer;font-weight:700}._technicalDetailsPre_hm0w3_33{margin-top:var(--cpd-space-2x);padding:var(--cpd-space-2x);background-color:var(--cpd-color-bg-subtle-secondary);font-size:var(--cpd-font-size-body-sm);white-space:pre-wrap;overflow:auto}._endCall_1veit_8>svg{color:var(--stopgap-color-on-solid-accent)}._blapLeave_1veit_14{gap:var(--cpd-space-2x);padding-inline:var(--cpd-space-4x);white-space:nowrap;flex:none}._rotate_1veit_21>svg{animation:1s linear infinite _spin_1veit_1}@keyframes _spin_1veit_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._footer_14d9m_8{z-index:var(--call-view-header-footer-layer);grid-gap:var(--cpd-space-3x);align-items:center;gap:var(--cpd-space-3x);padding-left:calc(env(safe-area-inset-left) + var(--cpd-space-6x));padding-right:calc(env(safe-area-inset-right) + var(--cpd-space-6x));padding-block:var(--cpd-space-10x) calc(env(safe-area-inset-bottom) + var(--cpd-space-10x));background:linear-gradient(180deg, #0000 0%, var(--cpd-color-bg-canvas-default) 100%);grid-template-columns:1fr auto 1fr;grid-template-areas:".buttons layout";display:grid;position:sticky;inset-block-end:0}._footer_14d9m_8._hidden_14d9m_29{display:none}._footer_14d9m_8._overlay_14d9m_33{opacity:1;transition:opacity .15s}._footer_14d9m_8._overlay_14d9m_33._hidden_14d9m_29{opacity:0;pointer-events:none;display:grid;position:absolute;inset-block-end:0;inset-inline:0}._footer_14d9m_8._overlay_14d9m_33:has(:focus-visible){opacity:1;pointer-events:initial}._settingsLogoContainer_14d9m_56{align-items:center;gap:var(--cpd-space-4x);flex-flow:row;display:flex}._logo_14d9m_64{justify-self:start;align-items:center;gap:var(--cpd-space-2x);-webkit-padding-start:var(--cpd-space-1x);padding-inline-start:var(--cpd-space-1x);display:flex}._buttons_14d9m_72{justify-self:center;gap:var(--cpd-space-3x);justify-content:center;row-gap:var(--cpd-space-2x);flex-wrap:wrap;grid-area:buttons;display:flex}._layout_14d9m_84{grid-area:layout;justify-self:end}@media (width<=750px){._logo_14d9m_64{display:none}}._settingsOnlyShowNarrow_14d9m_96{display:none}._settingsOnlyShowWide_14d9m_99{display:inherit}@media (width<=500px){._footer_14d9m_8{grid-template-areas:"buttons buttons buttons"}._settingsOnlyShowNarrow_14d9m_96{display:inherit}._settingsOnlyShowWide_14d9m_99,._settingsLogoContainer_14d9m_56{display:none}._layout_14d9m_84{display:none!important}}@media (height<=800px){._footer_14d9m_8{padding-block:var(--cpd-space-8x) calc(env(safe-area-inset-bottom) + var(--cpd-space-8x))}}@media (height<=400px){._footer_14d9m_8{padding-block:var(--cpd-space-4x) calc(env(safe-area-inset-bottom) + var(--cpd-space-4x))}}@media (width<=370px){@media (height<=400px){._footer_14d9m_8{-webkit-padding-before:var(--cpd-space-3x);-webkit-padding-after:calc(env(safe-area-inset-bottom) + var(--cpd-space-2x));padding-block-start:var(--cpd-space-3x);padding-block-end:calc(env(safe-area-inset-bottom) + var(--cpd-space-2x))}}}@media (width>=800px){._buttons_14d9m_72{gap:var(--cpd-space-4x)}}._external_jhjdf_8{color:inherit}._raisedButton_unw54_1>svg{color:var(--cpd-color-icon-on-solid-primary)}._reactionPopupMenu_unw54_5{--reaction-button-padding:10px;--reaction-button-fontsize:20px;--reaction-button-gap:var(--cpd-separator-spacing);width:fit-content;display:flex}@media (width<=420px){._reactionPopupMenu_unw54_5{--reaction-button-padding:8px;--reaction-button-fontsize:16px;--reaction-button-gap:6px}}div._reactionPopupMenuRoot_unw54_21._reactionPopupMenuModal_unw54_21{--overlay-top:82vh;width:fit-content}div._reactionPopupMenuRoot_unw54_21{--inset-inline:30em}._reactionPopupMenuRoot_unw54_21>div{width:fit-content;max-width:100vw}div._reactionPopupMenuRoot_unw54_21._reactionPopupMenuModal_unw54_21>div>div{padding-inline:var(--cpd-space-6x);padding-block:var(--cpd-space-6x)}._reactionPopupMenu_unw54_5 section{flex:1;max-width:fit-content;height:fit-content}._reactionPopupMenu_unw54_5 section._reactionsMenuSection_unw54_47{flex:auto;margin:auto 0}._reactionsMenu_unw54_47{gap:var(--reaction-button-gap);max-height:calc(((var(--reaction-button-fontsize) + var(--cpd-separator-spacing)) * 2) * 3);max-width:calc(((var(--reaction-button-fontsize) + var(--cpd-separator-spacing)) * 2) * 5);justify-content:start;-webkit-box-align:auto;-ms-flex-align:auto;align-items:auto;flex-flow:wrap;flex-grow:1;align-content:start;width:fit-content;margin:0;padding:0;list-style:none;display:flex;overflow:hidden auto}._reactionsMenu_unw54_47>*{flex:none}._reactionButton_unw54_81{padding:var(--reaction-button-padding);border-radius:var(--cpd-radius-pill-effect);font-size:var(--reaction-button-fontsize);min-block-size:unset;aspect-ratio:1;border:none;height:100%}._verticalSeperator_unw54_91{background-color:var(--cpd-color-gray-800);width:2px;height:auto;margin-left:var(--cpd-separator-spacing);margin-right:var(--cpd-separator-spacing)}._alert_unw54_99{margin-bottom:var(--cpd-space-3x);height:2.5em;animation:.2s _grow-in_unw54_1}@keyframes _grow-in_unw54_1{0%{height:0}to{height:2.5em}}._modal_lmgdq_8{--inset-inline:520px;flex-direction:column;display:flex}._dialog_lmgdq_14{box-sizing:border-box;max-block-size:600px;inline-size:580px;max-inline-size:90%}._content_lmgdq_21{flex-direction:column;flex-grow:1;display:flex;overflow:hidden}._dialog_lmgdq_14 ._content_lmgdq_21{background:var(--cpd-color-bg-canvas-default)}._drawer_lmgdq_32 ._content_lmgdq_21{overflow:auto}._drawer_lmgdq_32{background:var(--cpd-color-bg-canvas-default);inset-block-end:0;inset-inline:max(0px, calc((100% - var(--inset-inline)) / 2));--border-radius:28px;--handle-block-size:4px;--handle-inline-size:32px;--handle-inset-block-start:var(--cpd-space-4x);--handle-inset-block-end:var(--cpd-space-4x);border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);max-block-size:90%}body[data-platform=ios] ._drawer_lmgdq_32{--border-radius:10px;--handle-block-size:5px;--handle-inline-size:36px;--handle-inset-block-start:var(--cpd-space-1-5x);--handle-inset-block-end:calc(var(--cpd-space-1x) / 4)}._close_lmgdq_59{cursor:pointer;color:var(--cpd-color-icon-secondary);border-radius:var(--cpd-radius-pill-effect);padding:var(--cpd-space-1x);background:var(--cpd-color-bg-subtle-secondary);border:none}._close_lmgdq_59 svg{display:block}@media (hover:hover){._close_lmgdq_59:hover{background:var(--cpd-color-bg-subtle-primary);color:var(--cpd-color-icon-primary)}}._close_lmgdq_59:active{background:var(--cpd-color-bg-subtle-primary);color:var(--cpd-color-icon-primary)}._header_lmgdq_84{background:var(--cpd-color-bg-subtle-secondary);display:grid}._dialog_lmgdq_14 ._header_lmgdq_84{-webkit-padding-before:var(--cpd-space-4x);grid-template-columns:var(--cpd-space-10x) 1fr minmax(var(--cpd-space-6x), auto) var(--cpd-space-4x);grid-template-rows:auto minmax(var(--cpd-space-4x), auto);grid-template-areas:".title close.""tabs tabs tabs tabs";align-items:center;padding-block-start:var(--cpd-space-4x)}._dialog_lmgdq_14 ._header_lmgdq_84 h2{grid-area:title;margin:0}._drawer_lmgdq_32 ._header_lmgdq_84{grid-template-areas:"tabs";position:relative}._close_lmgdq_59{grid-area:close}._body_lmgdq_114{flex-grow:1}._dialog_lmgdq_14 ._body_lmgdq_114{padding-inline:var(--cpd-space-10x);padding-block:var(--cpd-space-10x) var(--cpd-space-12x);overflow:auto}._drawer_lmgdq_32 ._body_lmgdq_114{padding-inline:var(--cpd-space-4x);padding-block:var(--cpd-space-9x) var(--cpd-space-10x)}._modal_lmgdq_8._tabbed_lmgdq_129 ._body_lmgdq_114{-webkit-padding-before:0;padding-block-start:0}._handle_lmgdq_133{content:"";block-size:var(--handle-block-size);inset-inline:calc((100% - var(--handle-inline-size)) / 2);background:var(--cpd-color-icon-secondary);border-radius:var(--cpd-radius-pill-effect);position:absolute;inset-block-start:var(--handle-inset-block-start)}._bg_180k3_8{background:#030c1b87;position:fixed;inset:0}@keyframes _fade-in_180k3_1{0%{opacity:0}to{opacity:1}}._bg_180k3_8._animate_180k3_23[data-state=open]{animation:.2s _fade-in_180k3_1}@keyframes _fade-out_180k3_1{0%{opacity:1}to{opacity:0}}._bg_180k3_8._animate_180k3_23[data-state=closed]{opacity:0;pointer-events:none;animation:.13s _fade-out_180k3_1}._overlay_180k3_42{position:fixed}._overlay_180k3_42._animate_180k3_23{--overlay-top:50%;top:50%;left:50%;top:var(--overlay-top);transform:translate(-50%,-50%)}@keyframes _zoom-in_180k3_1{0%{opacity:0;transform:translate(-50%,-50%)scale(.8)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes _zoom-out_180k3_1{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.8)}}._overlay_180k3_42._animate_180k3_23[data-state=open]{animation:.2s _zoom-in_180k3_1}._overlay_180k3_42._animate_180k3_23[data-state=closed]{animation:.13s _zoom-out_180k3_1}@media (prefers-reduced-motion){._overlay_180k3_42._animate_180k3_23[data-state=open]{animation-name:_fade-in_180k3_1}._overlay_180k3_42._animate_180k3_23[data-state=closed]{animation-name:_fade-out_180k3_1}}._settingsModal_1dkeq_8{block-size:550px}._settingsModal_1dkeq_8 p{color:var(--cpd-color-text-secondary)}._fieldRowText_1dkeq_16{margin-bottom:0}._volumeSlider_1dkeq_20{margin-top:var(--cpd-space-2x)}._volumeSlider_1dkeq_20>label{margin-bottom:var(--cpd-space-1x);display:block}._volumeSlider_1dkeq_20>span{max-width:20em}._volumeSlider_1dkeq_20>p{color:var(--cpd-color-text-secondary)}._tabContainer_1nnp9_8{flex-direction:column;min-height:100%;display:flex}._tabList_1nnp9_14{scrollbar-width:none;-ms-overflow-style:none;max-width:100%;overflow-y:auto}._tabList_1nnp9_14::-webkit-scrollbar{background:0 0;width:0}._fieldRow_iwncy_8{align-items:center;margin-bottom:32px;display:flex}._field_iwncy_8{flex:1;min-width:0;display:flex;position:relative}._fieldRow_iwncy_8._rightAlign_iwncy_21{justify-content:flex-end}._fieldRow_iwncy_8>*{margin-right:24px}._fieldRow_iwncy_8>:last-child{margin-right:0}._inputField_iwncy_33{border:1px solid var(--cpd-color-border-interactive-primary);border-radius:4px;transition:border-color .25s}._inputField_iwncy_33 input,._inputField_iwncy_33 textarea{font-weight:400;font-size:var(--font-size-body);color:var(--cpd-color-text-primary);background-color:var(--cpd-color-bg-canvas-default);border:none;border-radius:4px;flex:1;min-width:0;padding:12px 9px 10px}._inputField_iwncy_33._disabled_iwncy_52 input,._inputField_iwncy_33._disabled_iwncy_52 textarea,._inputField_iwncy_33._disabled_iwncy_52 span{color:var(--cpd-color-text-disabled)}._inputField_iwncy_33 span{padding:11px 9px}._inputField_iwncy_33 span:first-child{padding-right:0}._inputField_iwncy_33 input::-webkit-input-placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 textarea::-webkit-input-placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 input::-moz-placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 textarea::-moz-placeholder{color:#0000;transition:color .25s ease-in}:is(._inputField_iwncy_33 input:-ms-placeholder-shown,._inputField_iwncy_33 textarea:-ms-placeholder-shown){color:#0000;transition:color .25s ease-in}:is(._inputField_iwncy_33 input:placeholder-shown,._inputField_iwncy_33 textarea:placeholder-shown){color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 input::-moz-placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 textarea::-moz-placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 input::placeholder,._inputField_iwncy_33 textarea::placeholder{color:#0000;transition:color .25s ease-in}._inputField_iwncy_33 input:placeholder-shown:focus::-webkit-input-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:placeholder-shown:focus::-webkit-input-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:placeholder-shown:focus::-moz-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:placeholder-shown:focus::-moz-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}:is(._inputField_iwncy_33 input:placeholder-shown:focus:-ms-placeholder-shown,._inputField_iwncy_33 textarea:placeholder-shown:focus:-ms-placeholder-shown){color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}:is(._inputField_iwncy_33 input:placeholder-shown:focus:placeholder-shown,._inputField_iwncy_33 textarea:placeholder-shown:focus:placeholder-shown){color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:placeholder-shown:focus::-moz-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:placeholder-shown:focus::-moz-placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:-moz-placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:-moz-placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:-ms-placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:-ms-placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 textarea:placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 input:placeholder-shown:focus::placeholder,._inputField_iwncy_33 textarea:placeholder-shown:focus::placeholder{color:var(--cpd-color-text-placeholder);transition:color .25s ease-in .1s}._inputField_iwncy_33 label{color:var(--cpd-color-text-secondary);font-size:var(--font-size-body);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background-color:#0000;max-width:calc(100% - 20px);margin:9px 8px;padding:2px;transition:font-size .25s ease-out .1s,color .25s ease-out .1s,top .25s ease-out .1s,background-color .25s ease-out .1s;position:absolute;top:0;left:0;overflow:hidden}._inputField_iwncy_33:focus-within{border-color:var(--cpd-color-text-link-external)}._inputField_iwncy_33 input:focus,._inputField_iwncy_33 textarea:focus{outline:0}:is(._inputField_iwncy_33 input:not(:placeholder-shown)+label,._inputField_iwncy_33 textarea:not(:placeholder-shown)+label),:is(._inputField_iwncy_33 input:not(:placeholder-shown)+label,._inputField_iwncy_33 textarea:not(:placeholder-shown)+label),._inputField_iwncy_33 input:focus+label,._inputField_iwncy_33 input:not(:placeholder-shown)+label,._inputField_iwncy_33._prefix_iwncy_110 input+label,._inputField_iwncy_33 textarea:focus+label,._inputField_iwncy_33 textarea:not(:placeholder-shown)+label,._inputField_iwncy_33._prefix_iwncy_110 textarea+label{background-color:var(--cpd-color-bg-canvas-default);font-size:var(--font-size-micro);pointer-events:auto;padding:0 2px;transition:font-size .25s ease-out,color .25s ease-out,top .25s ease-out,background-color .25s ease-out;top:-13px}._inputField_iwncy_33 input:focus+label,._inputField_iwncy_33 textarea:focus+label{color:var(--cpd-color-border-focused)}._checkboxField_iwncy_131{flex-wrap:wrap;align-items:flex-start;display:flex}._checkboxField_iwncy_131 label{font-size:var(--font-size-body);flex-grow:1;align-items:center;line-height:24px;display:flex}._checkboxField_iwncy_131 input{appearance:none;outline:0;margin:0;padding:0}._checkbox_iwncy_131{box-sizing:border-box;border:1.5px solid #b9bec680;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;margin-right:10px;display:inline-flex;position:relative}._checkboxField_iwncy_131._disabled_iwncy_52,._checkboxField_iwncy_131._disabled_iwncy_52 ._description_iwncy_168{color:var(--cpd-color-text-disabled)}._checkboxField_iwncy_131._disabled_iwncy_52 ._checkbox_iwncy_131{border-color:var(--cpd-color-border-disabled)}._checkbox_iwncy_131 svg{display:none}._checkbox_iwncy_131 svg *{stroke:var(--stopgap-color-on-solid-accent)}._checkboxField_iwncy_131 input[type=checkbox]:checked+label>._checkbox_iwncy_131{background:var(--cpd-color-text-action-accent);border-color:var(--cpd-color-text-action-accent)}._checkboxField_iwncy_131 input[type=checkbox]:checked+label>._checkbox_iwncy_131 svg{display:flex}._checkboxField_iwncy_131:focus-within ._checkbox_iwncy_131{border:1.5px solid var(--cpd-color-text-link-external)!important}._errorMessage_iwncy_197{font-size:var(--font-size-caption);color:var(--cpd-color-text-critical-primary);margin:0;font-weight:600}._description_iwncy_168{color:var(--cpd-color-text-secondary);width:100%;margin-left:26px}._description_iwncy_168._noLabel_iwncy_210{margin-top:-20px}._avatarInputField_1ep5q_8{margin-bottom:8px;position:relative}._avatar_1ep5q_8{display:block}._fileInput_1ep5q_17{display:none}._edit_1ep5q_21{border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-bg-canvas-default);padding:2px;position:absolute;inset-block-end:-2px;inset-inline-end:-2px}._edit_1ep5q_21 button{min-block-size:0;block-size:var(--cpd-space-7x);inline-size:var(--cpd-space-7x);padding:var(--cpd-space-1x)}._content_gj715_8{width:100%;max-width:350px;margin-left:auto;margin-right:auto}._avatarFieldRow_gj715_15{justify-content:center}._feedback_19yh9_8 textarea{border-radius:8px;height:75px}._feedback_19yh9_8{border-radius:8px}._slider_15go1_8{align-items:center;display:flex;position:relative}._track_15go1_14{border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-bg-subtle-primary);height:var(--cpd-space-2x);outline:var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-primary);outline-offset:calc(-1 * var(--cpd-border-width-1));cursor:pointer;flex-grow:1;transition:outline-color .15s}._track_15go1_14[data-disabled]{cursor:auto;cursor:initial;outline-color:var(--cpd-color-border-disabled)}._highlight_15go1_31{background:var(--cpd-color-bg-action-primary-rest);border-radius:var(--cpd-radius-pill-effect);block-size:100%;transition:background-color .15s;position:absolute}._highlight_15go1_31[data-disabled]{background:var(--cpd-color-bg-action-primary-disabled)}._handle_15go1_43{block-size:var(--cpd-space-4x);inline-size:var(--cpd-space-4x);border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-bg-action-primary-rest);-webkit-box-shadow:0 0 0 2px var(--cpd-color-bg-canvas-default);box-shadow:0 0 0 2px var(--cpd-color-bg-canvas-default);cursor:pointer;transition:background-color .15s;display:block}._handle_15go1_43[data-disabled]{cursor:auto;cursor:initial;background:var(--cpd-color-bg-action-primary-disabled)}._selection_1akwb_1{gap:0}._title_1akwb_5{color:var(--cpd-color-text-secondary);margin-block:var(--cpd-space-3x) 0}._separator_1akwb_10{margin-block:6px var(--cpd-space-4x)}._options_1akwb_14{gap:var(--cpd-space-4x);flex-direction:column;display:flex}._secondary_1akwb_20{color:var(--cpd-color-text-secondary)}pre{font-size:var(--font-size-micro)}._livekit_room_box_pjiap_12{border:3px solid var(--cpd-color-bg-subtle-secondary);border-radius:var(--cpd-space-8x);padding:var(--cpd-space-4x);margin-bottom:var(--cpd-space-4x);margin-top:var(--cpd-space-4x)}._livekit_room_box_pjiap_12 li{font-size:var(--font-size-micro)}._menuIcon_t5z8t_8{flex-shrink:0;width:24px;height:24px}._userButton_t5z8t_15{appearance:none;cursor:pointer;background:0 0;border:none;margin:0}._userButton_t5z8t_15 svg *{fill:var(--cpd-color-icon-primary)}._buttons_1arp2_8{margin-bottom:0}._form_jcuzc_8{flex-direction:column;display:flex}._footer_106jg_8{flex-direction:column;align-items:center;padding:28px;display:flex}._footer_106jg_8 p{margin-bottom:0}._footer_106jg_8 ._mobileLoginLink_106jg_19{margin-bottom:24px;display:flex}._form_106jg_24{justify-content:center;max-width:360px;padding:0 24px}._form_106jg_24>*+*{margin-bottom:24px}@media (width>=800px){._mobileLoginLink_106jg_19{display:none}}._notice_106jg_40{color:var(--cpd-color-text-secondary)}._container_dwllg_8{flex-direction:column;justify-content:space-between;min-height:100%;display:flex}._main_dwllg_15{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}._logo_dwllg_23{margin-bottom:54px;display:flex}._headline_dwllg_28{margin-bottom:40px}@media (width>=800px){._logo_dwllg_23{display:none}}._form_1vjc2_8{justify-content:center;width:calc(100% - 48px);max-width:409px;margin-bottom:72px;padding:0 24px}._fieldRow_1vjc2_16{margin-bottom:24px}._fieldRow_1vjc2_16:last-child{margin-bottom:0}._button_1vjc2_24{padding:0 24px}._recentCallsTitle_1vjc2_28{margin-bottom:32px}._notice_1vjc2_32{color:var(--cpd-color-text-secondary)}._callTileSpacer_l4ywf_8,._callTile_l4ywf_8{width:329px}._callTileSpacer_l4ywf_8{height:0}._callTile_l4ywf_8{background-color:var(--cpd-color-bg-subtle-secondary);box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:8px;height:95px;padding:12px;position:relative;overflow:hidden}._callTileLink_l4ywf_28{align-items:center;width:100%;height:100%;text-decoration:none;display:flex}._avatar_l4ywf_36{flex-shrink:0}._callInfo_l4ywf_40{color:var(--cpd-color-text-primary);flex-direction:column;flex:1;min-width:0;padding:0 16px;display:flex}._callInfo_l4ywf_40>*{margin-bottom:0}._callName_l4ywf_53{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._facePile_l4ywf_59{margin-top:8px}._callList_l4ywf_63{flex-wrap:wrap;justify-content:center;gap:24px;width:calc(100% - 48px);max-width:1059px;margin-bottom:24px;padding:0 24px;display:flex}._disabled_l4ywf_74{cursor:not-allowed;opacity:.8}._logo_1gx2r_8{max-width:300px;height:auto;margin:80px 0}._container_1gx2r_14{flex-direction:column;align-items:center;height:100%;padding:0 20px;display:flex}._content_1gx2r_22{flex-direction:column;width:100%;max-width:400px;min-height:100%;display:flex}._formContainer_1gx2r_30{flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;display:flex}._formContainer_1gx2r_30 h2,._formContainer_1gx2r_30 h4{margin-top:0}._formContainer_1gx2r_30 h4{font-weight:400;font-size:var(--font-size-subtitle);margin-bottom:0}._formContainer_1gx2r_30 form{width:100%;margin-top:32px}._formContainer_1gx2r_30 button{width:100%;height:48px;font-size:var(--font-size-body);font-weight:600}._authLinks_1gx2r_62{font-size:var(--font-size-body);flex-direction:column;justify-content:flex-end;align-items:center;margin-bottom:100px;display:flex}._form_1wfyo_8{justify-content:center;max-width:360px;padding:0 24px}._form_1wfyo_8>*+*{margin-bottom:24px}._headline_1wfyo_18{text-align:center;margin-bottom:60px}._callEndedContent_1wfyo_23{text-align:center;max-width:360px}._callEndedContent_1wfyo_23 h3{margin-bottom:32px}._callEndedButton_1wfyo_32{width:100%;margin-top:54px}._container_1wfyo_37{flex-direction:column;justify-content:space-between;align-items:center;min-height:calc(100% - 64px);display:flex}._main_1wfyo_45{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}._logo_1wfyo_53{margin-bottom:54px;display:flex}._headline_1wfyo_18{margin-bottom:40px}._footer_1wfyo_62{margin-bottom:44px}@media (width>=800px){._logo_1wfyo_53{display:none}._container_1wfyo_37{min-height:calc(100% - 76px)}}._inRoom_15f4n_8{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden auto}._header_15f4n_17{z-index:var(--call-view-header-footer-layer);background:linear-gradient(0deg, #0000 0%, var(--cpd-color-bg-canvas-default) 100%);flex-shrink:0;position:sticky;inset-block-start:0}._header_15f4n_17._hidden_15f4n_29{display:none}._header_15f4n_17._overlay_15f4n_33{opacity:1;transition:opacity .15s}._header_15f4n_17._overlay_15f4n_33._hidden_15f4n_29{opacity:0;pointer-events:none;display:flex;position:absolute;inset-block-start:0;inset-inline:0}._header_15f4n_17._overlay_15f4n_33:has(:focus-visible){opacity:1;pointer-events:initial}._header_15f4n_17._filler_15f4n_56{block-size:var(--cpd-space-6x);background:0 0}@media (width<=320px){._invite_15f4n_62{display:none}}._fixedGrid_15f4n_67{align-self:center;inline-size:100%;position:absolute}._scrollingGrid_15f4n_73{flex-grow:1;align-self:center;inline-size:100%;position:relative}._fixedGrid_15f4n_67,._scrollingGrid_15f4n_73{pointer-events:none}._fixedGrid_15f4n_67>:not(:first-child),._scrollingGrid_15f4n_73>:not(:first-child){pointer-events:initial}._tile_15f4n_92{position:absolute;inset-block-start:0}._tile_15f4n_92._maximised_15f4n_97{flex-grow:1;position:relative}._content_1cy0f_8{justify-content:center;align-items:center;gap:var(--cpd-space-6x);flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}._wait_1cy0f_19{color:var(--cpd-color-text-primary)!important;background-color:var(--cpd-color-bg-canvas-default)!important}@supports (color:lab(from red l 1 1% / calc(alpha + 0.1))){._wait_1cy0f_19{background-color:rgb(from var(--cpd-color-bg-canvas-default) r g b / .5)!important}}._wait_1cy0f_19>svg{color:var(--cpd-color-theme-primary)!important}@media (width<=500px){._join_1cy0f_32{width:100%}}@media (height>=650px){._content_1cy0f_8{gap:var(--cpd-space-10x)}}._loading_14w06_8{opacity:.5;color:var(--cpd-color-text-primary);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._preview_1mrho_8{margin-left:var(--content-inset-left);margin-right:var(--content-inset-right);border-radius:var(--cpd-space-4x);block-size:50vh;min-block-size:0;position:relative;overflow:hidden}._preview_1mrho_8>video{-o-object-fit:cover;object-fit:cover;background-color:var(--video-tile-background);width:100%;height:100%}video._mirror_1mrho_25{transform:scaleX(-1)}._preview_1mrho_8 ._cameraStarting_1mrho_29{top:var(--cpd-space-10x);color:var(--cpd-color-text-secondary);justify-content:center;display:flex;position:absolute;bottom:0;left:0;right:0}._avatarContainer_1mrho_40{background-color:var(--video-tile-background);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}._buttonBar_1mrho_52{height:calc(30 * var(--cpd-space-1x));justify-content:center;align-items:center;gap:var(--cpd-space-4x);background:linear-gradient(180deg, #0000 0%, var(--cpd-color-bg-canvas-default) 100%);display:flex;position:absolute;bottom:0;left:0;right:0}@media (aspect-ratio>=1){._preview_1mrho_8>video{aspect-ratio:16/9}}@media (width<=550px){._preview_1mrho_8{block-size:100%;border-radius:0;width:100%;margin-inline:0}._buttonBar_1mrho_52{padding-left:var(--content-inset-left);padding-right:var(--content-inset-right)}}._container_vp01j_8{background-color:var(--cpd-color-bg-subtle-secondary);border-radius:32px;flex-direction:row;align-items:center;transition:background-color .2s ease-in-out;display:flex}._containerOpen_vp01j_16{background-color:var(--cpd-color-bg-action-primary-pressed)}._chevronIconOpen_vp01j_19>svg{color:var(--cpd-color-icon-on-solid-primary)}._menuButton_vp01j_22{width:40px;background-color:#0000!important}._itemIcon_vp01j_26{color:var(--cpd-color-text-secondary)}._rotate_vp01j_30{animation:1.5s linear infinite _spinner_vp01j_1}@keyframes _spinner_vp01j_1{to{transform:rotate(360deg)}}._headline_aeppr_8{text-align:center;white-space:pre-wrap;overflow-wrap:break-word;margin-bottom:60px}._callEndedContent_aeppr_15{text-align:center;max-width:450px}._callEndedContent_aeppr_15 p{font-size:var(--font-size-subtitle)}._callEndedContent_aeppr_15 h3{margin-bottom:32px}._disconnectedButtons_aeppr_26{grid-gap:50px;gap:50px;display:grid}._rageshakeButton_aeppr_31{grid-column:2}._callEndedButton_aeppr_35{margin:54px auto auto}._submitButton_aeppr_40{width:100%;margin-top:54px;margin-left:30px;margin-right:30px!important}._container_aeppr_47{flex-direction:column;justify-content:space-between;align-items:center;min-height:calc(100% - 64px);display:flex}._main_aeppr_55{padding-left:var(--content-inset-left);padding-right:var(--content-inset-right);flex-direction:column;flex:1;align-items:center;display:flex}._logo_aeppr_64{margin-bottom:54px;display:flex}._headline_aeppr_8{margin-bottom:40px}._footer_aeppr_73{margin-bottom:44px}@media (width>=800px){._logo_aeppr_64{display:none}._container_aeppr_47{min-height:calc(100% - 76px)}._main_aeppr_55{justify-content:center}}._starIcon_1m09w_8{cursor:pointer}._starRating_1m09w_12{flex:1;justify-content:center;display:flex}._inputContainer_1m09w_18{display:inline-block}._hideElement_1m09w_22{clip-path:content-box;border:0;width:1px;height:0;margin:-1px;padding:0;display:inline-block;overflow:hidden}._tile_j7scl_8{--media-view-border-radius:var(--cpd-space-4x);--hover-space-margin:var(--cpd-space-1x);outline:var(--cpd-border-width-2) solid #0000;-webkit-box-shadow:var(--draggable-shadow);box-shadow:var(--draggable-shadow);transition:outline-color .15s}._tile_j7scl_8:before{content:"";z-index:-1;opacity:0;inset:calc(-1 * var(--cpd-border-width-4));border-radius:var(--cpd-space-5x);background-blend-mode:overlay, normal;transition:opacity .15s;position:absolute}._tile_j7scl_8._speaking_j7scl_29{outline:var(--cpd-border-width-1) solid var(--cpd-color-bg-canvas-default)!important}._tile_j7scl_8._speaking_j7scl_29:before{opacity:1;background:linear-gradient(119deg,#0d5cbdb3 0%,#0dbda8b3 100%),linear-gradient(#0d5cbde6 0%,#0dbda8e6 100%)}._tile_j7scl_8._handRaised_j7scl_49{outline:var(--cpd-border-width-2) solid var(--cpd-color-bg-canvas-default)!important}._tile_j7scl_8._handRaised_j7scl_49:before{background:linear-gradient(119deg, var(--cpd-color-yellow-1200) 0%, var(--cpd-color-yellow-900) 100%), linear-gradient(180deg, var(--cpd-color-yellow-1200) 0%, var(--cpd-color-yellow-900) 100%);opacity:1}@media (hover:hover){._tile_j7scl_8:hover{outline:var(--cpd-border-width-2) solid var(--cpd-color-border-interactive-hovered)}}._tile_j7scl_8._edgeToEdge_j7scl_76{--media-view-border-radius:0}._muteIcon_j7scl_80[data-muted=true]{color:var(--cpd-color-icon-secondary)}._muteIcon_j7scl_80[data-muted=false]{color:var(--cpd-color-icon-primary)}._volumeSlider_j7scl_88{width:100%}._tile_j7scl_8 ._switchCamera_j7scl_92{opacity:1;background:var(--cpd-color-bg-action-secondary-rest);border:1px solid var(--cpd-color-border-interactive-secondary)}._tile_j7scl_8 ._switchCamera_j7scl_92>svg{color:var(--cpd-color-icon-primary)}@media (hover){._tile_j7scl_8 ._switchCamera_j7scl_92:hover{background:var(--cpd-color-bg-subtle-secondary);border-color:var(--cpd-color-border-interactive-hovered)}}._tile_j7scl_8 ._switchCamera_j7scl_92:active{background:var(--cpd-color-bg-subtle-primary);border-color:var(--cpd-color-border-interactive-hovered)}._media_yelmg_8{border-radius:var(--media-view-border-radius);margin:var(--hover-space-margin);grid-template-areas:"content";place-items:stretch stretch;display:grid;container:mediaView/size}._media_yelmg_8 video{-o-object-fit:contain;object-fit:contain;background-color:var(--video-tile-background);block-size:100%;inline-size:100%;transform:translate(0)}._media_yelmg_8._mirror_yelmg_30 video{transform:scaleX(-1)}._media_yelmg_8[data-video-fit=cover] video{-o-object-fit:cover;object-fit:cover}._media_yelmg_8[data-video-fit=contain] video{-o-object-fit:contain;object-fit:contain}._bg_yelmg_42{background-color:var(--video-tile-background);border-radius:inherit;contain:strict;grid-area:content;block-size:100%;inline-size:100%}._avatar_yelmg_51{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}._translucent_yelmg_59{opacity:.5;mix-blend-mode:multiply}@container mediaView (width>0){._avatar_yelmg_51{block-size:50cqmin;inline-size:50cqmin}}._avatar_yelmg_51>img{block-size:100%!important;inline-size:100%!important}._fg_yelmg_81{--fg-inset:var(--media-view-fg-inset,calc(var(--media-view-border-radius) - var(--cpd-space-3x)));padding:var(--fg-inset);grid-gap:var(--cpd-space-1x);gap:var(--cpd-space-1x);contain:strict;grid-template:"status reactions"1fr"nameTag button"/1fr auto;grid-area:content;place-items:start;transition:padding .3s;display:grid}@media (prefers-reduced-motion){._fg_yelmg_81{transition:none}}._nameTag_yelmg_104{padding:var(--cpd-space-1x);padding-block:var(--cpd-space-1x);color:var(--cpd-color-text-primary);background-color:var(--cpd-color-bg-canvas-default);border-radius:var(--cpd-radius-pill-effect);-webkit-user-select:none;user-select:none;-webkit-box-shadow:var(--small-drop-shadow);box-shadow:var(--small-drop-shadow);box-sizing:border-box;grid-area:nameTag;place-self:end start;align-items:center;max-inline-size:100%;display:flex;overflow:hidden}._status_yelmg_121{color:var(--cpd-color-text-primary);-ms-flex-wrap:none;flex-wrap:none;-webkit-user-select:none;user-select:none;-webkit-margin-before:calc(var(--cpd-space-3x) - var(--fg-inset));-webkit-margin-start:calc(var(--cpd-space-4x) - var(--fg-inset));grid-area:status;align-items:center;gap:3px;margin-block-start:calc(var(--cpd-space-3x) - var(--fg-inset));margin-inline-start:calc(var(--cpd-space-4x) - var(--fg-inset));display:flex;overflow:hidden}._status_yelmg_121 svg{color:var(--cpd-color-icon-tertiary)}._reactions_yelmg_138{place-self:start end;gap:var(--cpd-space-1x);grid-area:reactions;display:flex}._nameTag_yelmg_104>svg,._nameTag_yelmg_104>span{flex-shrink:0}._nameTag_yelmg_104>._name_yelmg_104{text-overflow:ellipsis;white-space:nowrap;padding-inline:var(--cpd-space-2x);flex-shrink:1;overflow:hidden}._errorIcon_yelmg_158{color:var(--cpd-color-icon-critical-primary);display:block}._fg_yelmg_81>button{appearance:none;border-radius:var(--cpd-radius-pill-effect);padding:var(--cpd-space-1x);background:var(--cpd-color-bg-action-primary-rest);-webkit-box-shadow:var(--small-drop-shadow);box-shadow:var(--small-drop-shadow);cursor:pointer;opacity:0;border:none;transition:opacity .15s,background-color .1s}._fg_yelmg_81>button[data-enabled=true],._fg_yelmg_81>button[data-state=open]{opacity:1}._fg_yelmg_81:has(:focus-visible)>button{opacity:1}@media (hover){._fg_yelmg_81:hover>button{opacity:1}._fg_yelmg_81>button:hover{background:var(--cpd-color-bg-action-primary-hovered)}}._fg_yelmg_81>button:active,._fg_yelmg_81>button[data-state=open]{background:var(--cpd-color-bg-action-primary-pressed)}._fg_yelmg_81>button>svg{color:var(--cpd-color-icon-on-solid-primary);display:block}._fg_yelmg_81>button:first-of-type{grid-area:button;place-self:end}._reactionIndicatorWidget_1ob49_1{border-radius:var(--cpd-radius-pill-effect);-webkit-box-shadow:0 0 var(--cpd-space-2x) #00000040;box-shadow:0 0 var(--cpd-space-2x) #00000040;color:var(--cpd-color-text-on-solid-primary);background:var(--cpd-color-icon-secondary-alpha);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);outline:var(--cpd-border-width-1) solid var(--cpd-color-alpha-gray-400);outline-offset:calc(-1 * var(--cpd-border-width-1));display:flex}._reactionIndicatorWidget_1ob49_1>p{padding:none;width:3em;padding-right:var(--cpd-space-2x);margin-top:auto;margin-bottom:auto;margin-left:calc(var(--cpd-space-2x) * -1)}._reactionIndicatorWidgetLarge_1ob49_21>p{padding:var(--cpd-space-2x);padding-right:var(--cpd-space-4x);margin-left:0;padding-left:0}._reactionLarge_1ob49_28{margin:var(--cpd-space-2x);padding:var(--cpd-space-4x);padding-block:var(--cpd-space-4x)}._reaction_1ob49_1{margin:var(--cpd-space-1x);border-radius:var(--cpd-radius-pill-effect);-webkit-user-select:none;user-select:none;box-sizing:border-box;max-inline-size:100%;max-width:fit-content;padding:var(--cpd-space-1x);padding-block:var(--cpd-space-1x);align-items:center;display:flex;overflow:hidden}._reaction_1ob49_1>span{width:var(--cpd-space-6x);height:var(--cpd-space-6x);text-align:center;font-size:1.2em;line-height:1.2;display:inline-block}._reactionLarge_1ob49_28>span{width:30px;height:30px;font-size:25px}._modal_13thw_8 pre{font-size:var(--font-size-micro)}._statsPill_13thw_12{border-radius:var(--media-view-border-radius);flex-direction:column;grid-area:none;align-items:flex-start;position:absolute;top:0;left:0}._grid_19qx5_8{contain:layout style}._slot_19qx5_12{contain:strict}._tile_6d525_8._draggable_6d525_8{cursor:-webkit-grab;cursor:grab;--draggable-shadow:var(--big-drop-shadow)}._tile_6d525_8._draggable_6d525_8:active{cursor:-webkit-grabbing;cursor:grabbing}._contents_1k4mk_8{border-radius:var(--cpd-space-6x);block-size:100%;inline-size:100%;-webkit-box-shadow:var(--draggable-shadow);box-shadow:var(--draggable-shadow);contain:strict;scrollbar-width:none;-ms-scroll-snap-type:inline mandatory;scroll-snap-type:inline mandatory;scroll-snap-stop:always;display:flex;overflow:auto hidden}._tile_1k4mk_26._maximised_1k4mk_26 ._contents_1k4mk_8{border-radius:0}._item_1k4mk_30{--media-view-fg-inset:10px;flex-shrink:0;flex-basis:100%;height:100%}._maximised_1k4mk_26 ._item_1k4mk_30{--media-view-fg-inset:calc(var(--call-view-safe-area-inset-top,0px) + 10px) calc(env(safe-area-inset-right) + 10px) calc(var(--call-view-safe-area-inset-bottom,0px) + 10px) calc(env(safe-area-inset-left) + 10px)}._item_1k4mk_30._snap_1k4mk_45{scroll-snap-align:start}._advance_1k4mk_49{appearance:none;cursor:pointer;opacity:0;padding:calc(var(--cpd-space-3x) - var(--cpd-border-width-1));border:var(--cpd-border-width-1) solid var(--cpd-color-border-interactive-secondary);border-radius:var(--cpd-radius-pill-effect);background:var(--cpd-color-alpha-gray-1400);-webkit-box-shadow:var(--small-drop-shadow);box-shadow:var(--small-drop-shadow);z-index:1;transition-property:opacity,background-color,border-color;transition-duration:.1s;position:absolute;top:50%;transform:translateY(-50%)}._advance_1k4mk_49>svg{color:var(--cpd-color-icon-on-solid-primary);display:block}@media (hover){._advance_1k4mk_49:hover{border-color:var(--cpd-color-bg-action-primary-hovered);background:var(--cpd-color-bg-action-primary-hovered)}}._advance_1k4mk_49:active{border-color:var(--cpd-color-bg-action-primary-pressed);background:var(--cpd-color-bg-action-primary-pressed)}._back_1k4mk_85{inset-inline-start:var(--cpd-space-1x)}._next_1k4mk_89{inset-inline-end:var(--cpd-space-1x)}._expand_1k4mk_93{appearance:none;cursor:pointer;padding:var(--cpd-space-2x);border-radius:var(--cpd-radius-pill-effect);background:rgba(from var(--cpd-color-gray-100) r g b / .6);-webkit-box-shadow:var(--small-drop-shadow);box-shadow:var(--small-drop-shadow);z-index:1;--inset:6px;inset-block-end:6px;inset-block-end:var(--inset);inset-inline-end:6px;border:none;transition:opacity .15s,background-color .1s;inset-inline-end:var(--inset)}._bottomRightButtons_1k4mk_110{gap:var(--cpd-space-2x);z-index:1;display:flex;position:absolute;inset-block-end:var(--cpd-space-1x);inset-inline-end:var(--cpd-space-1x)}._volumeSlider_1k4mk_119{width:100%;min-width:172px}._volumeMenuItem_1k4mk_125:hover{cursor:default;background:0 0}._volumeMenuItem_1k4mk_125{gap:var(--cpd-space-3x)}._menuMuteButton_1k4mk_134{appearance:none;cursor:pointer;background:0 0;border:none;padding:0;display:flex}._menuMuteButton_1k4mk_134>svg{color:var(--cpd-color-icon-primary)}._expand_1k4mk_93>svg{color:var(--cpd-color-icon-primary);display:block}@media (hover){._expand_1k4mk_93:hover{background:var(--cpd-color-gray-400)}}._expand_1k4mk_93:active,._expand_1k4mk_93[data-state=open]{background:var(--cpd-color-gray-100)}@media (hover){._tile_1k4mk_26 button{opacity:0}._tile_1k4mk_26:hover button{opacity:1}}:is(._tile_1k4mk_26:has(:focus-visible)>div>button,._tile_1k4mk_26>div:has([data-state=open])>button){opacity:1}._indicators_1k4mk_178{gap:var(--cpd-space-2x);opacity:0;justify-content:start;width:100%;transition:opacity .15s;display:flex;position:absolute;inset-block-end:calc(-1 * var(--cpd-space-6x));inset-inline-start:0}._indicators_1k4mk_178._show_1k4mk_190{opacity:1}._maximised_1k4mk_26 ._indicators_1k4mk_178{justify-content:center;inset-block-end:calc(-1 * var(--cpd-space-4x) - 2px)}._indicators_1k4mk_178>._item_1k4mk_30{flex-basis:32px;block-size:2px;transition:background-color .15s}._indicators_1k4mk_178>._item_1k4mk_30[data-visible=false]{background:var(--cpd-color-alpha-gray-600)}._indicators_1k4mk_178>._item_1k4mk_30[data-visible=true]{background:var(--cpd-color-gray-1400)}._fixed_1s6z9_8,._scrolling_1s6z9_9{block-size:100%}._scrolling_1s6z9_9{place-content:center;gap:var(--gap);flex-wrap:wrap;display:flex}._scrolling_1s6z9_9>._slot_1s6z9_21{width:var(--width);height:var(--height)}._fixed_1s6z9_8{position:relative}._fixed_1s6z9_8>._slot_1s6z9_21{block-size:233px;inline-size:404px;inset:0 calc(env(safe-area-inset-right) + var(--cpd-space-3x)) 0 calc(env(safe-area-inset-left) + var(--cpd-space-3x));position:absolute}._fixed_1s6z9_8>._slot_1s6z9_21[data-block-alignment=start]{inset-block-end:unset}._fixed_1s6z9_8>._slot_1s6z9_21[data-block-alignment=end]{inset-block-start:unset}._fixed_1s6z9_8>._slot_1s6z9_21[data-inline-alignment=start]{inset-inline-end:unset}._fixed_1s6z9_8>._slot_1s6z9_21[data-inline-alignment=end]{inset-inline-start:unset}._layer_8fl2k_8{place-items:center;block-size:100%;display:grid}._container_8fl2k_14{position:relative}._local_8fl2k_18{block-size:135px;inline-size:180px;position:absolute;inset:0}._slot_8fl2k_25[data-block-alignment=start]{inset-block-end:unset}._slot_8fl2k_25[data-block-alignment=end]{inset-block-start:unset}._slot_8fl2k_25[data-inline-alignment=start]{inset-inline-end:unset}._slot_8fl2k_25[data-inline-alignment=end]{inset-inline-start:unset}._layer_n6kt5_8{block-size:100%}._spotlight_n6kt5_12{block-size:100%;inline-size:100%}._pip_n6kt5_17{inset:var(--cpd-space-4x);position:absolute}._pip_n6kt5_17[data-size=sm]{block-size:132px;inline-size:88px}._pip_n6kt5_17[data-size=lg]{block-size:210px;inline-size:140px}._pip_n6kt5_17[data-block-alignment=start]{inset-block-end:unset}._pip_n6kt5_17[data-block-alignment=end]{inset-block-start:unset}._pip_n6kt5_17[data-inline-alignment=start]{inset-inline-end:unset}._pip_n6kt5_17[data-inline-alignment=end]{inset-inline-start:unset}._layer_yki99_8{block-size:100%}._spotlight_yki99_12{block-size:100%;inline-size:100%}._pip_yki99_17{block-size:160px;inline-size:135px;inset:calc(env(safe-area-inset-top) + var(--cpd-space-4x)) var(--content-inset-right) calc(env(safe-area-inset-bottom) + var(--cpd-space-4x)) var(--content-inset-left);position:absolute}@media (width>=600px){._pip_yki99_17{block-size:135px;inline-size:180px}}._pip_yki99_17[data-block-alignment=start]{inset-block-end:unset}._pip_yki99_17[data-block-alignment=end]{inset-block-start:unset}._pip_yki99_17[data-inline-alignment=start]{inset-inline-end:unset}._pip_yki99_17[data-inline-alignment=end]{inset-inline-start:unset}._layer_jsvx2_8{--gap:20px;grid-gap:20px;grid-gap:var(--gap);gap:20px;gap:var(--gap);--grid-slot-width:180px;grid-template-columns:1fr 180px;grid-template-columns:1fr var(--grid-slot-width);grid-template-rows:minmax(1fr, auto);block-size:100%;padding-inline:20px;padding-inline:var(--gap);display:grid}._spotlight_jsvx2_19{place-items:center;display:grid;container:spotlight/size}@container spotlight (width>0){._spotlight_jsvx2_19>._slot_jsvx2_28{block-size:min(100cqb,75cqi);inline-size:min(100cqi,188.889cqb)}}._grid_jsvx2_34{gap:var(--gap);flex-wrap:wrap;place-content:center;display:flex}._grid_jsvx2_34>._slot_jsvx2_28{block-size:135px;inline-size:180px}._layer_28fss_15{--gap:var(--cpd-space-4x,16px);--blap-strip-height:108px;grid-gap:16px;grid-gap:var(--gap);gap:16px;gap:var(--gap);grid-template-rows:minmax(0,1fr) 108px;grid-template-rows:minmax(0, 1fr) var(--blap-strip-height);block-size:100%;padding:16px;padding:var(--gap);box-sizing:border-box;display:grid}._spotlight_28fss_26{place-items:center;min-block-size:0;display:grid;container:spotlight/size}._spotlight_28fss_26._withIndicators_28fss_33{-webkit-margin-after:0;margin-block-end:0}@container spotlight (width>0){._spotlight_28fss_26>._slot_28fss_40{block-size:min(100cqb,75cqi);inline-size:min(100cqi,188.889cqb)}}._grid_28fss_46{gap:var(--gap);-webkit-box-pack:safe center;-ms-flex-pack:safe center;flex-wrap:nowrap;justify-content:safe center;align-items:center;min-inline-size:0;display:flex;overflow:auto hidden}._grid_28fss_46>._slot_28fss_40{inline-size:calc(var(--blap-strip-height) * 16 / 9);block-size:var(--blap-strip-height);flex:none}._container_1ux8r_1{z-index:2;pointer-events:none;width:100vw;height:100vh;display:inline;position:absolute;top:0;left:0}._reaction_1ux8r_12{width:fit-content;font-size:32pt;animation-name:_reaction-up_1ux8r_1;animation-duration:4s;position:relative;top:80vh}@keyframes _reaction-up_1ux8r_1{0%{opacity:1;top:80vh;translate:0;scale:2}to{opacity:0;top:0;scale:1}}@media (prefers-reduced-motion){@keyframes _reaction-up-reduced_1ux8r_1{0%{opacity:1}to{opacity:0}}._reaction_1ux8r_12{font-size:48pt;animation-name:_reaction-up-reduced_1ux8r_1;top:calc(24pt - 50vh);left:calc(50vw - 24pt)!important}}._overlay_kh5c3_1{z-index:var(--call-view-overlay-layer);justify-content:center;align-items:center;gap:var(--cpd-space-2x);flex-direction:column;transition:opacity .2s;display:flex;position:fixed;inset:0}._overlay_kh5c3_1[data-show=true]{opacity:1}._overlay_kh5c3_1[data-show=false]{opacity:0;pointer-events:none;transition-duration:.13s}._overlay_kh5c3_1:before{content:"";z-index:-1;background:var(--cpd-color-bg-canvas-default);opacity:.94;position:absolute;inset:0}._icon_kh5c3_32{-webkit-margin-after:var(--cpd-space-4x);background:var(--cpd-color-alpha-gray-600);color:var(--cpd-color-icon-primary);margin-block-end:var(--cpd-space-4x)}._overlay_kh5c3_1>h2{text-align:center;margin:0}._overlay_kh5c3_1>p{text-align:center}._spacer_kh5c3_47{min-height:var(--cpd-space-32x)}._bar_1lobl_1{flex-shrink:0;position:relative}._bar_1lobl_1:before{content:"";z-index:var(--call-view-header-footer-layer);background:linear-gradient(0deg, #0000 0%, var(--cpd-color-bg-canvas-default) 100%);position:absolute;inset-block:-24px;inset-inline:0}._bar_1lobl_1>header{block-size:64px;z-index:var(--call-view-header-footer-layer);position:sticky;inset-block-start:0;inset-inline:0}._bar_1lobl_1 svg path{fill:var(--cpd-color-icon-primary)}._bar_1lobl_1>header>h1{text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}._toast_z5w27_8{color:var(--cpd-color-text-on-solid-primary);background:var(--cpd-color-alpha-gray-1200);padding-inline:var(--cpd-space-3x);padding-block:var(--cpd-space-1x);border-radius:var(--cpd-radius-pill-effect);-webkit-box-shadow:var(--small-drop-shadow);box-shadow:var(--small-drop-shadow);align-items:center;gap:var(--cpd-space-1x);border:none;display:flex}._toast_z5w27_8>h3{margin:0}._toast_z5w27_8>svg{color:var(--cpd-color-icon-on-solid-primary);-webkit-margin-end:calc(-1 * var(--cpd-space-1x));flex-shrink:0;margin-inline-end:calc(-1 * var(--cpd-space-1x))}._url_1ibuh_8{text-align:center;color:var(--cpd-color-text-secondary);-webkit-margin-after:var(--cpd-space-8x);overflow-wrap:break-word;margin-block-end:var(--cpd-space-8x)}._button_1ibuh_15{width:100%}._qrCode_1ibuh_19{justify-content:center;display:flex}._qrCode_1ibuh_19 img{-webkit-margin-after:var(--cpd-space-8x);margin-block-end:var(--cpd-space-8x)}._qrCode_h54ia_8 img{-ms-interpolation-mode:nearest-neighbor;max-width:100%;image-rendering:-webkit-optimize-contrast;image-rendering:pixelated;border-radius:var(--cpd-space-4x)} diff --git a/features/call/impl/src/main/assets/element-call/assets/index-DEXf5-_B.js b/features/call/impl/src/main/assets/element-call/assets/index-DEXf5-_B.js new file mode 100644 index 0000000000..9ff4ed6ac6 --- /dev/null +++ b/features/call/impl/src/main/assets/element-call/assets/index-DEXf5-_B.js @@ -0,0 +1,289 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./rust-crypto-Du_AIXzO.js","./chunk-Cyuzqnbw.js","./polyfill-force-Drs1XZir.js"])))=>i.map(i=>d[i]); +import{a as e,i as t,n,r,t as i}from"./chunk-Cyuzqnbw.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function a(e){if(Array.isArray(e))return e}function o(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function s(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`l`,default:()=>eee,m:()=>`rn`,µ:()=>`μ`,Æ:()=>`AE`,Ç:()=>`C̦`,Ð:()=>`D̵`,Ø:()=>`O̸`,æ:()=>`ae`,ç:()=>`c̦`,ð:()=>wt,ö:()=>`ة`,ø:()=>`o̸`,Đ:()=>`D̵`,đ:()=>`d̵`,Ě:()=>`Ĕ`,ě:()=>`ĕ`,Ħ:()=>`H̵`,ħ:()=>`h̵`,ı:()=>`i`,IJ:()=>`lJ`,ij:()=>`ij`,Ŀ:()=>`l·`,ŀ:()=>`l·`,Ł:()=>`L̸`,ł:()=>`l̸`,ņ:()=>`ɲ`,ʼn:()=>`'n`,Ő:()=>`Ö`,Œ:()=>`OE`,œ:()=>`oe`,ţ:()=>`ƫ`,Ŧ:()=>`T̵`,ŧ:()=>`t̵`,ſ:()=>`f`,ƀ:()=>`b̵`,Ɓ:()=>`'B`,Ƃ:()=>`b̄`,ƃ:()=>`b̄`,Ƅ:()=>`b`,Ƈ:()=>`C'`,Ɖ:()=>`D̵`,Ɗ:()=>`'D`,ƌ:()=>`d̄`,ƍ:()=>`g`,Ƒ:()=>`F̦`,ƒ:()=>`f̦`,Ɠ:()=>`G'`,Ɩ:()=>`l`,Ɨ:()=>`l̵`,Ƙ:()=>`K'`,ƙ:()=>`k̔`,ƚ:()=>`l̵`,Ɲ:()=>`N̦`,ƞ:()=>`n̩`,Ɵ:()=>`O̵`,Ơ:()=>`O'`,ơ:()=>`o'`,Ƥ:()=>`'P`,ƥ:()=>`p̔`,Ʀ:()=>`R`,Ƨ:()=>`2`,Ƭ:()=>`'T`,ƭ:()=>`t̔`,Ʈ:()=>`T̨`,Ƴ:()=>`'Y`,ƴ:()=>`y̔`,Ƶ:()=>`Z̵`,ƶ:()=>`z̵`,Ʒ:()=>`3`,ƻ:()=>`2̵`,Ƽ:()=>`5`,ƽ:()=>`s`,ƿ:()=>`þ`,ǀ:()=>`l`,ǁ:()=>`ll`,ǃ:()=>`!`,DŽ:()=>`DŽ`,Dž:()=>`Dž`,dž:()=>`dž`,LJ:()=>`LJ`,Lj:()=>`Lj`,lj:()=>`lj`,NJ:()=>`NJ`,Nj:()=>`Nj`,nj:()=>`nj`,Ǎ:()=>`Ă`,ǎ:()=>`ă`,Ǐ:()=>`Ĭ`,ǐ:()=>`ĭ`,Ǒ:()=>`Ŏ`,ǒ:()=>`ŏ`,Ǔ:()=>`Ŭ`,ǔ:()=>`ŭ`,Ǥ:()=>`G̵`,ǥ:()=>`g̵`,Ǧ:()=>`Ğ`,ǧ:()=>`ğ`,DZ:()=>`DZ`,Dz:()=>`Dz`,dz:()=>`dz`,ǵ:()=>`ģ`,Ǿ:()=>Wt,Ț:()=>`Ţ`,ț:()=>`ƫ`,Ȝ:()=>`3`,Ȣ:()=>`8`,ȣ:()=>`8`,Ȥ:()=>`Z̦`,ȥ:()=>`z̦`,Ȧ:()=>`Å`,ȧ:()=>`å`,ȼ:()=>`c̸`,Ⱦ:()=>`T̸`,Ɂ:()=>`?`,Ʉ:()=>`U̵`,Ɇ:()=>`E̸`,ɇ:()=>`e̸`,Ɉ:()=>`J̵`,ɉ:()=>`j̵`,ɍ:()=>`r̵`,Ɏ:()=>`Y̵`,ɏ:()=>`y̵`,ɑ:()=>`a`,ɓ:()=>`b̔`,ɖ:()=>`d̨`,ɗ:()=>`d̔`,ə:()=>`ǝ`,ɚ:()=>Ft,ɛ:()=>`ꞓ`,ɠ:()=>`g̔`,ɡ:()=>`g`,ɣ:()=>`y`,ɦ:()=>`h̔`,ɨ:()=>`i̵`,ɩ:()=>`i`,ɪ:()=>`i`,ɫ:()=>`l̴`,ɭ:()=>`l̨`,ɮ:()=>`lȝ`,ɯ:()=>`w`,ɱ:()=>$t,ɳ:()=>`n̨`,ɵ:()=>`o̵`,ɶ:()=>Gt,ɼ:()=>`r̩`,ɽ:()=>`r̨`,ʂ:()=>`s̨`,ʋ:()=>`u`,ʏ:()=>`y`,ʐ:()=>`z̨`,ʒ:()=>`ȝ`,ʔ:()=>`?`,ʠ:()=>`q̔`,ʣ:()=>`dz`,ʤ:()=>`dȝ`,ʥ:()=>`dʑ`,ʦ:()=>`ts`,ʧ:()=>`tʃ`,ʨ:()=>`tɕ`,ʩ:()=>`fŋ`,ʪ:()=>`ls`,ʫ:()=>`lz`,ʳ:()=>`ᣴ`,ʹ:()=>`'`,ʺ:()=>`''`,ʻ:()=>`'`,ʼ:()=>`'`,ʽ:()=>`'`,ʾ:()=>`'`,ʿ:()=>`ՙ`,ˆ:()=>`^`,ˈ:()=>`'`,ˊ:()=>`'`,ˋ:()=>`'`,ː:()=>`:`,ˡ:()=>`ᣳ`,ˢ:()=>`ᣵ`,ˤ:()=>`ˁ`,ˮ:()=>`''`,Ͱ:()=>`Ⱶ`,ʹ:()=>`'`,Ͷ:()=>`И`,ͷ:()=>`ᴎ`,ͺ:()=>`i`,ͻ:()=>`ɔ`,ͽ:()=>`ꜿ`,Ϳ:()=>`J`,Α:()=>`A`,Β:()=>`B`,Ε:()=>`E`,Ζ:()=>`Z`,Η:()=>`H`,Θ:()=>`O̵`,Ι:()=>`l`,Κ:()=>`K`,Λ:()=>`Ʌ`,Μ:()=>`M`,Ν:()=>`N`,Ο:()=>`O`,Ρ:()=>`P`,Σ:()=>`Ʃ`,Τ:()=>`T`,Υ:()=>`Y`,Χ:()=>`X`,α:()=>`a`,β:()=>`ß`,γ:()=>`y`,δ:()=>`ẟ`,ε:()=>`ꞓ`,η:()=>`n̩`,θ:()=>`O̵`,ι:()=>`i`,κ:()=>`ĸ`,ν:()=>`v`,ο:()=>`o`,ρ:()=>`p`,σ:()=>`o`,τ:()=>`ᴛ`,υ:()=>`u`,φ:()=>`ɸ`,ϐ:()=>`ß`,ϑ:()=>`O̵`,ϒ:()=>`Y`,ϕ:()=>`ɸ`,ϖ:()=>`π`,ϛ:()=>`ς`,Ϝ:()=>`F`,Ϩ:()=>`2`,ϩ:()=>`ƨ`,ϰ:()=>`ĸ`,ϱ:()=>`p`,ϲ:()=>`c`,ϳ:()=>`j`,ϴ:()=>`O̵`,ϵ:()=>`ꞓ`,Ϸ:()=>`Þ`,ϸ:()=>`þ`,Ϲ:()=>`C`,Ϻ:()=>`M`,Ͻ:()=>`Ɔ`,Ͽ:()=>`Ꜿ`,Є:()=>`Ꞓ`,Ѕ:()=>`S`,І:()=>`l`,Ј:()=>`J`,А:()=>`A`,Б:()=>`b̄`,В:()=>`B`,Г:()=>`Γ`,Е:()=>`E`,З:()=>`3`,Й:()=>`Ѝ`,К:()=>`K`,Л:()=>`Ʌ`,М:()=>`M`,Н:()=>`H`,О:()=>`O`,П:()=>`Π`,Р:()=>`P`,С:()=>`C`,Т:()=>`T`,У:()=>`Y`,Ф:()=>`Φ`,Х:()=>`X`,Ы:()=>`bl`,Ь:()=>`b`,Ю:()=>`lO`,а:()=>`a`,б:()=>`6`,в:()=>`ʙ`,г:()=>`r`,е:()=>`e`,з:()=>`ɜ`,и:()=>`ᴎ`,к:()=>`ĸ`,м:()=>`ʍ`,н:()=>`ʜ`,о:()=>`o`,п:()=>`π`,р:()=>`p`,с:()=>`c`,т:()=>`ᴛ`,у:()=>`y`,ф:()=>`ɸ`,х:()=>`x`,ъ:()=>`ˉb`,ы:()=>`ƅi`,ь:()=>`ƅ`,я:()=>`ᴙ`,є:()=>`ꞓ`,ѕ:()=>`s`,і:()=>`i`,ј:()=>`j`,ћ:()=>`h̵`,ѝ:()=>`й`,ѡ:()=>`w`,Ѣ:()=>`b̵`,ѣ:()=>`b̵`,Ѱ:()=>`Ψ`,ѱ:()=>`ψ`,Ѳ:()=>`O̵`,ѳ:()=>`o̵`,Ѵ:()=>`V`,ѵ:()=>`v`,Ѽ:()=>bn,ѽ:()=>ln,Ҋ:()=>_n,ҋ:()=>vn,Ҍ:()=>`b̵`,ҍ:()=>`b̵`,Ґ:()=>`Γ'`,ґ:()=>`r'`,Ғ:()=>dn,ғ:()=>`r̵`,Җ:()=>gn,җ:()=>hn,Ҙ:()=>`3̦`,ҙ:()=>Rt,Қ:()=>`K̩`,қ:()=>Zt,Ҟ:()=>`K̵`,ҟ:()=>Qt,Ң:()=>`H̩`,ң:()=>zt,Ҫ:()=>`C̦`,ҫ:()=>`c̦`,Ҭ:()=>`T̩`,ҭ:()=>nn,Ү:()=>`Y`,ү:()=>`y`,Ұ:()=>`Y̵`,ұ:()=>`y̵`,Ҳ:()=>`X̩`,һ:()=>`h`,ҽ:()=>`e`,Ҿ:()=>Sn,ҿ:()=>`ę`,Ӏ:()=>`l`,Ӆ:()=>sn,ӆ:()=>yn,Ӈ:()=>`H̦`,ӈ:()=>Vt,Ӊ:()=>`H̦`,ӊ:()=>Bt,Ӌ:()=>`Ҷ`,ӌ:()=>`ҷ`,Ӎ:()=>`M̦`,ӎ:()=>un,ӏ:()=>`i`,Ӕ:()=>`AE`,ӕ:()=>`ae`,Ә:()=>`Ə`,ә:()=>`ǝ`,Ӡ:()=>`3`,ӡ:()=>`ȝ`,Ө:()=>`O̵`,ө:()=>`o̵`,ԁ:()=>`d`,Ԋ:()=>`Ƕ`,Ԍ:()=>`G`,ԍ:()=>`ɢ`,Ԑ:()=>`Ɛ`,ԑ:()=>`ꞓ`,ԛ:()=>`q`,Ԝ:()=>`W`,ԝ:()=>`w`,Ի:()=>`ኮ`,Մ:()=>`ሆ`,Պ:()=>`ጣ`,Ռ:()=>`ቡ`,Ս:()=>`U`,Տ:()=>`S`,Փ:()=>`Φ`,Օ:()=>`O`,ա:()=>`w`,գ:()=>`q`,զ:()=>`q`,ծ:()=>`ẟ`,հ:()=>`h`,յ:()=>`ȷ`,ո:()=>`n`,պ:()=>`ɰ`,ռ:()=>`n`,ս:()=>`u`,ց:()=>`g`,ք:()=>`f`,օ:()=>`o`,և:()=>Cn,ו:()=>`l`,ט:()=>`v`,י:()=>`'`,ן:()=>`l`,ס:()=>`o`,װ:()=>`ll`,ױ:()=>`l'`,ײ:()=>`''`,أ:()=>`lٴ`,ؤ:()=>Ru,إ:()=>`lٕ`,ئ:()=>Od,ا:()=>`l`,ث:()=>od,ش:()=>Bi,ؽ:()=>Cd,ؿ:()=>vd,ه:()=>`o`,ي:()=>`ى`,ٮ:()=>`ى`,ٯ:()=>`ڡ`,ٲ:()=>`lٴ`,ٳ:()=>`lٕ`,ٵ:()=>`lٴ`,ٶ:()=>Vu,ٷ:()=>Hu,ٸ:()=>Nd,ٹ:()=>Gu,پ:()=>td,ځ:()=>Jr,څ:()=>qr,ڈ:()=>gi,ڋ:()=>Ti,ڎ:()=>yi,ڑ:()=>Ei,ڒ:()=>Mi,ژ:()=>ki,ڞ:()=>io,ڟ:()=>Go,ڤ:()=>Ys,ڧ:()=>`ف`,ڨ:()=>ec,ک:()=>`ك`,ڪ:()=>`ك`,ڭ:()=>hc,ڴ:()=>Hc,ڵ:()=>Wc,ڷ:()=>Uc,ں:()=>`ى`,ڻ:()=>Xu,ڽ:()=>gd,ھ:()=>`o`,ہ:()=>`o`,ۂ:()=>`ۀ`,ۃ:()=>`ة`,ۆ:()=>ku,ۇ:()=>Eu,ۈ:()=>Fu,ۉ:()=>Mu,ۋ:()=>Cu,ی:()=>`ى`,ێ:()=>xd,ې:()=>`ٻ`,ۑ:()=>_d,ے:()=>`ى`,ە:()=>`o`,ۮ:()=>Si,ۯ:()=>Pi,ۿ:()=>`ô`,ݑ:()=>jn,ݖ:()=>bd,ݢ:()=>`ڬ`,ݣ:()=>bc,ݧ:()=>`ݔ`,ݨ:()=>Yl,ݩ:()=>Xl,ݬ:()=>Fi,ݱ:()=>zi,ݲ:()=>Yr,ݾ:()=>Zi,ߊ:()=>`l`,ߴ:()=>`'`,ߵ:()=>`'`,ߺ:()=>`_`,ࢡ:()=>Nn,ࢤ:()=>tc,ࢧ:()=>Tl,ࢨ:()=>wd,ࢩ:()=>`ݔ`,ࢮ:()=>Ci,ࢯ:()=>ao,ࢰ:()=>`گ`,ࢱ:()=>`و`,ࢲ:()=>Ri,ࢶ:()=>Mn,ࢷ:()=>yd,ࢹ:()=>Ni,ࢺ:()=>Sd,ࢻ:()=>`ڡ`,ࢼ:()=>`ڡ`,ࢽ:()=>`ى`,ऄ:()=>tp,आ:()=>Zf,ई:()=>op,ऍ:()=>rp,ऎ:()=>ip,ऐ:()=>ap,ऑ:()=>np,ऒ:()=>Qf,ओ:()=>$f,औ:()=>ep,ॽ:()=>`?`,আ:()=>sp,ৠ:()=>cp,ৡ:()=>lp,ਆ:()=>fp,ਇ:()=>hp,ਈ:()=>gp,ਉ:()=>up,ਊ:()=>dp,ਏ:()=>_p,ਐ:()=>pp,ਔ:()=>mp,આ:()=>vp,ઍ:()=>Sp,એ:()=>Cp,ઐ:()=>wp,ઑ:()=>yp,ઓ:()=>bp,ઔ:()=>xp,ઽ:()=>`ऽ`,ଆ:()=>Tp,ଠ:()=>`O`,ஊ:()=>Ep,ஜ:()=>`ஐ`,ர:()=>`ஈ`,ఓ:()=>Np,ఔ:()=>jp,ఠ:()=>Rp,ఢ:()=>Fp,థ:()=>Ip,భ:()=>Lp,మ:()=>Vp,ష:()=>zp,హ:()=>Bp,ౠ:()=>kp,ౡ:()=>Ap,ಅ:()=>`అ`,ಆ:()=>`ఆ`,ಇ:()=>`ఇ`,ಒ:()=>`ఒ`,ಓ:()=>Pp,ಔ:()=>Mp,ಜ:()=>`జ`,ಞ:()=>`ఞ`,ಣ:()=>`ణ`,ಯ:()=>`య`,ಱ:()=>`ఱ`,ಲ:()=>`ల`,ೡ:()=>Hp,ഈ:()=>Up,ഉ:()=>`உ`,ഊ:()=>Dp,ഌ:()=>qp,ഐ:()=>Wp,ഓ:()=>Gp,ഔ:()=>Kp,ങ:()=>Jp,ജ:()=>`ஐ`,ഠ:()=>`o`,ണ:()=>`ண`,റ:()=>`ര`,ഴ:()=>`ழ`,ശ:()=>`ஶ`,ഺ:()=>Op,ൎ:()=>`ॱ`,ൟ:()=>Jt,ൡ:()=>`ഞ`,ൻ:()=>Yp,ർ:()=>Xp,ฃ:()=>`ข`,ซ:()=>`ช`,ฏ:()=>`ฎ`,ด:()=>`ค`,ต:()=>`ค`,ท:()=>`ฑ`,ม:()=>`ฆ`,ฦ:()=>`ภ`,ำ:()=>sm,แ:()=>cm,ๅ:()=>`า`,ຈ:()=>`จ`,ຍ:()=>`ย`,ບ:()=>`บ`,ປ:()=>`ป`,ຝ:()=>`ฝ`,ພ:()=>`พ`,ຟ:()=>`ฟ`,ຳ:()=>dm,ໜ:()=>lm,ໝ:()=>um,ༀ:()=>fm,ཪ:()=>`ར`,က:()=>mm,တ:()=>Yt,ဝ:()=>`o`,ဟ:()=>_m,ဩ:()=>bm,ဪ:()=>xm,ၥ:()=>`၁`,ၦ:()=>gm,ၯ:()=>vm,ၰ:()=>hm,ၾ:()=>ym,ႁ:()=>pm,Ⴀ:()=>`Ꞇ`,ყ:()=>`y`,ჳ:()=>`ȝ`,ჿ:()=>`o`,ᄁ:()=>kg,ᄄ:()=>p_,ᄈ:()=>fy,ᄊ:()=>sb,ᄍ:()=>Xb,ᄓ:()=>Hg,ᄔ:()=>Wg,ᄕ:()=>qg,ᄖ:()=>Zg,ᄗ:()=>d_,ᄘ:()=>L_,ᄙ:()=>W_,ᄚ:()=>Cv,ᄛ:()=>mv,ᄜ:()=>Vv,ᄝ:()=>Yv,ᄞ:()=>ry,ᄟ:()=>ay,ᄠ:()=>oy,ᄡ:()=>_y,ᄢ:()=>by,ᄣ:()=>Sy,ᄤ:()=>Ty,ᄥ:()=>Ey,ᄦ:()=>Dy,ᄧ:()=>My,ᄨ:()=>Fy,ᄩ:()=>Ry,ᄪ:()=>By,ᄫ:()=>ky,ᄬ:()=>hy,ᄭ:()=>Wy,ᄮ:()=>qy,ᄯ:()=>Yy,ᄰ:()=>Qy,ᄱ:()=>eb,ᄲ:()=>nb,ᄳ:()=>ab,ᄴ:()=>pb,ᄵ:()=>mb,ᄶ:()=>hb,ᄷ:()=>vb,ᄸ:()=>bb,ᄹ:()=>xb,ᄺ:()=>Cb,ᄻ:()=>Tv,ᄽ:()=>vx,ᄿ:()=>yx,ᅁ:()=>Tb,ᅂ:()=>Ob,ᅃ:()=>Ab,ᅄ:()=>jb,ᅅ:()=>Mb,ᅆ:()=>Wb,ᅇ:()=>Fb,ᅈ:()=>Rb,ᅉ:()=>zb,ᅊ:()=>Vb,ᅋ:()=>Hb,ᅍ:()=>Yb,ᅏ:()=>wx,ᅑ:()=>Tx,ᅒ:()=>ex,ᅓ:()=>tx,ᅖ:()=>rx,ᅗ:()=>ox,ᅘ:()=>gx,ᅚ:()=>Ng,ᅛ:()=>Qg,ᅜ:()=>t_,ᅝ:()=>o_,ᅞ:()=>__,ᅢ:()=>Ax,ᅤ:()=>Fx,ᅦ:()=>Bx,ᅨ:()=>Gx,ᅪ:()=>qx,ᅫ:()=>Yx,ᅬ:()=>oS,ᅯ:()=>xS,ᅰ:()=>wS,ᅱ:()=>kS,ᅳ:()=>`ー`,ᅴ:()=>jt,ᅵ:()=>`丨`,ᅶ:()=>Ox,ᅷ:()=>kx,ᅸ:()=>Mx,ᅹ:()=>Nx,ᅺ:()=>Rx,ᅻ:()=>zx,ᅼ:()=>Lx,ᅽ:()=>Ux,ᅾ:()=>Wx,ᅿ:()=>$x,ᆀ:()=>eS,ᆁ:()=>nS,ᆂ:()=>rS,ᆃ:()=>aS,ᆄ:()=>uS,ᆅ:()=>pS,ᆆ:()=>fS,ᆇ:()=>gS,ᆈ:()=>_S,ᆉ:()=>yS,ᆊ:()=>bS,ᆋ:()=>CS,ᆌ:()=>DS,ᆍ:()=>OS,ᆎ:()=>MS,ᆏ:()=>PS,ᆐ:()=>FS,ᆑ:()=>IS,ᆒ:()=>RS,ᆓ:()=>VS,ᆔ:()=>HS,ᆕ:()=>At,ᆖ:()=>Tt,ᆗ:()=>Nt,ᆘ:()=>vC,ᆙ:()=>yC,ᆚ:()=>wC,ᆛ:()=>DC,ᆜ:()=>_C,ᆝ:()=>kC,ᆟ:()=>GS,ᆠ:()=>qS,ᆡ:()=>YS,ᆢ:()=>JS,ᆣ:()=>Dx,ᆤ:()=>Px,ᆥ:()=>Hx,ᆦ:()=>Zx,ᆧ:()=>Qx,ᆨ:()=>`ᄀ`,ᆩ:()=>jg,ᆪ:()=>Ig,ᆫ:()=>`ᄂ`,ᆬ:()=>n_,ᆭ:()=>s_,ᆮ:()=>`ᄃ`,ᆯ:()=>`ᄅ`,ᆰ:()=>A_,ᆱ:()=>J_,ᆲ:()=>ev,ᆳ:()=>dv,ᆴ:()=>yv,ᆵ:()=>xv,ᆶ:()=>Ev,ᆷ:()=>`ᄆ`,ᆸ:()=>`ᄇ`,ᆹ:()=>yy,ᆺ:()=>`ᄉ`,ᆻ:()=>lb,ᆼ:()=>`ᄋ`,ᆽ:()=>`ᄌ`,ᆾ:()=>`ᄎ`,ᆿ:()=>`ᄏ`,ᇀ:()=>`ᄐ`,ᇁ:()=>`ᄑ`,ᇂ:()=>`ᄒ`,ᇃ:()=>Pg,ᇄ:()=>Rg,ᇅ:()=>Ug,ᇆ:()=>Yg,ᇇ:()=>$g,ᇈ:()=>l_,ᇉ:()=>a_,ᇊ:()=>f_,ᇋ:()=>v_,ᇌ:()=>P_,ᇍ:()=>R_,ᇎ:()=>B_,ᇏ:()=>U_,ᇐ:()=>G_,ᇑ:()=>X_,ᇒ:()=>Z_,ᇓ:()=>iv,ᇔ:()=>lv,ᇕ:()=>sv,ᇖ:()=>pv,ᇗ:()=>Ov,ᇘ:()=>vv,ᇙ:()=>jv,ᇚ:()=>Fv,ᇛ:()=>zv,ᇜ:()=>Uv,ᇝ:()=>Kv,ᇞ:()=>Jv,ᇟ:()=>ty,ᇠ:()=>$v,ᇡ:()=>ey,ᇢ:()=>Zv,ᇣ:()=>ly,ᇤ:()=>Vy,ᇥ:()=>Uy,ᇦ:()=>jy,ᇧ:()=>Ky,ᇨ:()=>Zy,ᇩ:()=>$y,ᇪ:()=>ib,ᇫ:()=>`ᅀ`,ᇬ:()=>Eb,ᇭ:()=>Db,ᇮ:()=>Lb,ᇯ:()=>Bb,ᇰ:()=>`ᅌ`,ᇱ:()=>Nb,ᇲ:()=>Gb,ᇳ:()=>ix,ᇴ:()=>cx,ᇵ:()=>dx,ᇶ:()=>fx,ᇷ:()=>px,ᇸ:()=>mx,ᇹ:()=>`ᅙ`,ᇺ:()=>Mg,ᇻ:()=>Fg,ᇼ:()=>zg,ᇽ:()=>Bg,ᇾ:()=>Vg,ᇿ:()=>Kg,ሀ:()=>`U`,ሣ:()=>`ɰ`,ቀ:()=>`Φ`,በ:()=>`Ո`,ኔ:()=>`ձ`,ዐ:()=>`O`,Ꭰ:()=>`D`,Ꭱ:()=>`R`,Ꭲ:()=>`T`,Ꭴ:()=>`O'`,Ꭵ:()=>`i`,Ꭸ:()=>`Ⱶ`,Ꭹ:()=>`Y`,Ꭺ:()=>`A`,Ꭻ:()=>`J`,Ꭼ:()=>`E`,Ꭾ:()=>`?`,Ꮀ:()=>`Ⱶ`,Ꮁ:()=>`Γ`,Ꮃ:()=>`W`,Ꮇ:()=>`M`,Ꮋ:()=>`H`,Ꮍ:()=>`Y`,Ꮎ:()=>`O̵`,Ꮏ:()=>`ƫ`,Ꮐ:()=>`G`,Ꮒ:()=>`h`,Ꮓ:()=>`Z`,Ꮗ:()=>`Ѡ`,Ꮛ:()=>`Ɛ`,Ꮜ:()=>`U̵`,Ꮞ:()=>`4`,Ꮟ:()=>`b`,Ꮢ:()=>`R`,Ꮤ:()=>`W`,Ꮥ:()=>`S`,Ꮩ:()=>`V`,Ꮪ:()=>`S`,Ꮮ:()=>`L`,Ꮯ:()=>`C`,Ꮲ:()=>`P`,Ꮶ:()=>`K`,Ꮷ:()=>`d`,Ꮻ:()=>`O̵`,Ꮾ:()=>`6`,Ᏸ:()=>`ß`,Ᏺ:()=>`h̔`,Ᏻ:()=>`G`,Ᏼ:()=>`B`,ᏻ:()=>`ɢ`,ᏼ:()=>`ʙ`,ᐃ:()=>`Δ`,ᐌ:()=>A,ᐍ:()=>Sm,ᐎ:()=>te,ᐏ:()=>pn,ᐐ:()=>j,ᐑ:()=>wm,ᐒ:()=>re,ᐓ:()=>Tm,ᐔ:()=>ie,ᐕ:()=>Dm,ᐗ:()=>ae,ᐘ:()=>Om,ᐙ:()=>oe,ᐚ:()=>Am,ᐧ:()=>`·`,ᐫ:()=>Cm,ᐬ:()=>mn,ᐭ:()=>Em,ᐮ:()=>km,ᐯ:()=>`V`,ᐱ:()=>`Ʌ`,ᐳ:()=>`>`,ᐷ:()=>`·>`,ᐸ:()=>`<`,ᐺ:()=>`·V`,ᐻ:()=>`V·`,ᐼ:()=>k,ᐽ:()=>cn,ᐾ:()=>se,ᐿ:()=>Mm,ᑀ:()=>`·>`,ᑁ:()=>`>·`,ᑂ:()=>ce,ᑃ:()=>Nm,ᑄ:()=>`·<`,ᑅ:()=>`<·`,ᑆ:()=>le,ᑇ:()=>Pm,ᑊ:()=>`'`,ᑌ:()=>`U`,ᑎ:()=>`Ո`,ᑔ:()=>de,ᑗ:()=>`·U`,ᑘ:()=>`U·`,ᑙ:()=>ne,ᑚ:()=>On,ᑛ:()=>ue,ᑜ:()=>Fm,ᑝ:()=>fe,ᑞ:()=>Im,ᑟ:()=>pe,ᑠ:()=>Rm,ᑡ:()=>me,ᑢ:()=>zm,ᑣ:()=>he,ᑤ:()=>Vm,ᑧ:()=>`U'`,ᑨ:()=>`Ո'`,ᑩ:()=>Lm,ᑪ:()=>Bm,ᑭ:()=>`P`,ᑯ:()=>`d`,ᑲ:()=>`b`,ᑳ:()=>`ḃ`,ᑴ:()=>ge,ᑵ:()=>Hm,ᑶ:()=>`·P`,ᑷ:()=>`p·`,ᑸ:()=>_e,ᑹ:()=>Wm,ᑺ:()=>`·d`,ᑻ:()=>`d·`,ᑼ:()=>ve,ᑽ:()=>Gm,ᑾ:()=>`·b`,ᑿ:()=>`b·`,ᒀ:()=>O,ᒁ:()=>Pt,ᒅ:()=>Um,ᒆ:()=>`P'`,ᒇ:()=>`d'`,ᒈ:()=>`b'`,ᒍ:()=>`J`,ᒒ:()=>ye,ᒓ:()=>Km,ᒔ:()=>be,ᒕ:()=>qm,ᒖ:()=>xe,ᒗ:()=>Jm,ᒘ:()=>`·J`,ᒙ:()=>`J·`,ᒚ:()=>Se,ᒛ:()=>Ym,ᒜ:()=>Ce,ᒝ:()=>Xm,ᒞ:()=>we,ᒟ:()=>Zm,ᒥ:()=>`Γ`,ᒪ:()=>`L`,ᒬ:()=>Te,ᒭ:()=>Qm,ᒮ:()=>ee,ᒯ:()=>fn,ᒰ:()=>Ee,ᒱ:()=>$m,ᒲ:()=>De,ᒳ:()=>eh,ᒴ:()=>Oe,ᒵ:()=>th,ᒶ:()=>`·L`,ᒷ:()=>`l·`,ᒸ:()=>ke,ᒹ:()=>nh,ᒿ:()=>`2`,ᓉ:()=>Ae,ᓊ:()=>rh,ᓋ:()=>Fe,ᓌ:()=>ch,ᓍ:()=>Ie,ᓎ:()=>lh,ᓑ:()=>`ᐡ`,ᓜ:()=>Le,ᓝ:()=>uh,ᓞ:()=>Re,ᓟ:()=>dh,ᓠ:()=>ze,ᓡ:()=>fh,ᓢ:()=>Be,ᓣ:()=>ph,ᓤ:()=>Ve,ᓥ:()=>mh,ᓦ:()=>He,ᓧ:()=>hh,ᓨ:()=>Ue,ᓩ:()=>gh,ᓶ:()=>We,ᓷ:()=>_h,ᓸ:()=>Ge,ᓹ:()=>vh,ᓺ:()=>Ke,ᓻ:()=>yh,ᓼ:()=>qe,ᓽ:()=>bh,ᓾ:()=>Je,ᓿ:()=>xh,ᔀ:()=>Ye,ᔁ:()=>Sh,ᔂ:()=>Xe,ᔃ:()=>Ch,ᔌ:()=>wh,ᔍ:()=>Eh,ᔎ:()=>Th,ᔏ:()=>Dh,ᔗ:()=>Ze,ᔘ:()=>Oh,ᔙ:()=>Qe,ᔚ:()=>kh,ᔛ:()=>$e,ᔜ:()=>Ah,ᔝ:()=>et,ᔞ:()=>jh,ᔟ:()=>tt,ᔠ:()=>Mh,ᔡ:()=>nt,ᔢ:()=>Nh,ᔣ:()=>rt,ᔤ:()=>Ph,ᔯ:()=>`·4`,ᔰ:()=>`4·`,ᔱ:()=>it,ᔲ:()=>Fh,ᔳ:()=>at,ᔴ:()=>Ih,ᔵ:()=>ot,ᔶ:()=>Lh,ᔷ:()=>st,ᔸ:()=>Rh,ᔹ:()=>ct,ᔺ:()=>zh,ᔻ:()=>lt,ᔼ:()=>Bh,ᕀ:()=>`ᐩ`,ᕁ:()=>`x`,ᕎ:()=>gt,ᕏ:()=>Hh,ᕛ:()=>_t,ᕜ:()=>Qh,ᕨ:()=>vt,ᕩ:()=>tg,ᕷ:()=>`ẟ`,ᕼ:()=>`H`,ᕽ:()=>`x`,ᕾ:()=>Jh,ᕿ:()=>Kh,ᖀ:()=>Yh,ᖁ:()=>Gh,ᖂ:()=>Xh,ᖃ:()=>Uh,ᖄ:()=>Wh,ᖅ:()=>Zh,ᖇ:()=>`R`,ᖎ:()=>og,ᖏ:()=>sg,ᖐ:()=>cg,ᖑ:()=>ig,ᖒ:()=>lg,ᖓ:()=>ug,ᖔ:()=>dg,ᖯ:()=>`b`,ᖴ:()=>`F`,ᖵ:()=>`Ⅎ`,ᖷ:()=>`ꟻ`,ᗄ:()=>`Ɐ`,ᗅ:()=>`A`,ᗞ:()=>`D`,ᗪ:()=>`D`,ᗯ:()=>`Ѡ`,ᗰ:()=>`M`,ᗷ:()=>`B`,ᘂ:()=>`ᒐ`,ᘃ:()=>`ᒉ`,ᘄ:()=>`ᓓ`,ᘇ:()=>`ᓚ`,ᘢ:()=>`ᕃ`,ᘣ:()=>`ᕆ`,ᘤ:()=>`ᕊ`,ᘮ:()=>`Ʊ`,ᘯ:()=>`Ω`,ᘴ:()=>`Ʊ`,ᘵ:()=>`Ω`,ᙯ:()=>qh,ᙰ:()=>ag,ᙱ:()=>pg,ᙲ:()=>mg,ᙳ:()=>fg,ᙴ:()=>hg,ᙵ:()=>gg,ᙶ:()=>_g,ᙷ:()=>yg,ᙸ:()=>bg,ᙹ:()=>xg,ᙺ:()=>Sg,ᙻ:()=>Cg,ᙼ:()=>wg,ᙽ:()=>Tg,ᚲ:()=>`<`,ᚷ:()=>`X`,ᛁ:()=>`l`,ᛂ:()=>`ᚽ`,ᛌ:()=>`'`,ᛕ:()=>`K`,ᛖ:()=>`M`,ᛘ:()=>`Ψ`,ᛡ:()=>`ᚼ`,ᛰ:()=>`Φ`,ឣ:()=>`អ`,ᡕ:()=>`ᠵ`,ᢖ:()=>`ᡜ`,ᢳ:()=>yt,ᢶ:()=>bt,ᢹ:()=>xt,ᣂ:()=>St,ᣆ:()=>je,ᣇ:()=>ih,ᣈ:()=>Me,ᣉ:()=>ah,ᣊ:()=>Ne,ᣋ:()=>oh,ᣌ:()=>Pe,ᣍ:()=>sh,ᣎ:()=>ut,ᣏ:()=>dt,ᣐ:()=>ft,ᣑ:()=>pt,ᣒ:()=>mt,ᣓ:()=>ht,ᣛ:()=>`ᣵ`,ᣜ:()=>Og,ᣝ:()=>jm,ᣠ:()=>Vh,ᣣ:()=>$h,ᣤ:()=>eg,ᣥ:()=>ng,ᣨ:()=>rg,ᣪ:()=>vg,ᣭ:()=>xn,ᣰ:()=>Eg,ᣲ:()=>Dg,ᴄ:()=>`c`,ᴈ:()=>`ɜ`,ᴋ:()=>`ĸ`,ᴍ:()=>`ʍ`,ᴏ:()=>`o`,ᴐ:()=>`ɔ`,ᴑ:()=>`o`,ᴔ:()=>`ǝo`,ᴜ:()=>`u`,ᴠ:()=>`v`,ᴡ:()=>`w`,ᴢ:()=>`z`,ᴤ:()=>`ƨ`,ᴦ:()=>`r`,ᴧ:()=>`ʌ`,ᴨ:()=>`π`,ᴩ:()=>`ᴘ`,ᴫ:()=>`л`,ᴾ:()=>`ᣖ`,ᵒ:()=>`º`,ᵫ:()=>`ue`,ᵮ:()=>`f̴`,ᵯ:()=>en,ᵰ:()=>`n̴`,ᵲ:()=>`r̴`,ᵳ:()=>tn,ᵴ:()=>`s̴`,ᵵ:()=>`t̴`,ᵶ:()=>`z̴`,ᵸ:()=>`ᴴ`,ᵻ:()=>`i̵`,ᵼ:()=>`i̵`,ᵽ:()=>`p̵`,ᵾ:()=>`u̵`,ᵿ:()=>rn,ᶃ:()=>`g`,ᶌ:()=>`y`,ᶐ:()=>`ɋ`,ᶟ:()=>`ᵋ`,ᶢ:()=>`ᵍ`,ᶺ:()=>`ᣔ`,ᶻ:()=>`ᙆ`,ṃ:()=>`ꭑ`,ẚ:()=>`ả`,ẝ:()=>`f`,ỿ:()=>`y`,ώ:()=>`ῴ`,ι:()=>`i`,ῶ:()=>`Ꮿ`,ℂ:()=>`C`,ℇ:()=>`Ɛ`,ℊ:()=>`g`,ℋ:()=>`H`,ℌ:()=>`H`,ℍ:()=>`H`,ℎ:()=>`h`,ℏ:()=>`h̵`,ℐ:()=>`l`,ℑ:()=>`l`,ℒ:()=>`L`,ℓ:()=>`l`,ℕ:()=>`N`,ℙ:()=>`P`,ℚ:()=>`Q`,ℛ:()=>`R`,ℜ:()=>`R`,ℝ:()=>`R`,ℤ:()=>`Z`,Ω:()=>`Ω`,ℨ:()=>`Z`,K:()=>`K`,ℬ:()=>`B`,ℭ:()=>`C`,℮:()=>`e`,ℯ:()=>`e`,ℰ:()=>`E`,ℱ:()=>`F`,ℳ:()=>`M`,ℴ:()=>`o`,ℵ:()=>`א`,ℶ:()=>`ב`,ℷ:()=>`ג`,ℸ:()=>`ד`,ℹ:()=>`i`,ℼ:()=>`π`,ℽ:()=>`y`,ℾ:()=>`Γ`,ℿ:()=>`Π`,ⅅ:()=>`D`,ⅆ:()=>`d`,ⅇ:()=>`e`,ⅈ:()=>`i`,ⅉ:()=>`j`,Ⅰ:()=>`l`,Ⅱ:()=>`ll`,Ⅲ:()=>`lll`,Ⅳ:()=>`lV`,Ⅴ:()=>`V`,Ⅵ:()=>`Vl`,Ⅶ:()=>`Vll`,Ⅷ:()=>on,Ⅸ:()=>`lX`,Ⅹ:()=>`X`,Ⅺ:()=>`Xl`,Ⅻ:()=>`Xll`,Ⅼ:()=>`L`,Ⅽ:()=>`C`,Ⅾ:()=>`D`,Ⅿ:()=>`M`,ⅰ:()=>`i`,ⅱ:()=>`ii`,ⅲ:()=>`iii`,ⅳ:()=>`iv`,ⅴ:()=>`v`,ⅵ:()=>`vi`,ⅶ:()=>`vii`,ⅷ:()=>an,ⅸ:()=>`ix`,ⅹ:()=>`x`,ⅺ:()=>`xi`,ⅻ:()=>`xii`,ⅼ:()=>`l`,ⅽ:()=>`c`,ⅾ:()=>`d`,ⅿ:()=>`rn`,Ↄ:()=>`Ɔ`,ↄ:()=>`ɔ`,Ⱨ:()=>`H̩`,Ⱪ:()=>`K̩`,Ⲅ:()=>`Γ`,ⲅ:()=>`r`,Ⲇ:()=>`Δ`,Ⲉ:()=>`Ꞓ`,ⲉ:()=>`ꞓ`,Ⲏ:()=>`H`,Ⲓ:()=>`l`,Ⲕ:()=>`K`,ⲕ:()=>`ĸ`,Ⲗ:()=>`λ`,Ⲙ:()=>`M`,Ⲛ:()=>`N`,Ⲟ:()=>`O`,ⲟ:()=>`o`,Ⲡ:()=>`Π`,Ⲣ:()=>`P`,ⲣ:()=>`p`,Ⲥ:()=>`C`,ⲥ:()=>`c`,Ⲧ:()=>`T`,Ⲩ:()=>`Y`,Ⲫ:()=>`Φ`,ⲫ:()=>`ɸ`,Ⲭ:()=>`X`,ⲭ:()=>`χ`,Ⲯ:()=>`Ψ`,ⲱ:()=>`ω`,Ⲵ:()=>`<·`,Ⲻ:()=>`-`,Ⲽ:()=>`Ш`,ⲽ:()=>`ш`,Ⳇ:()=>`/`,Ⳋ:()=>`9`,Ⳍ:()=>`3`,ⳍ:()=>`ȝ`,Ⳑ:()=>`L`,ⳑ:()=>`ʟ`,Ⳓ:()=>`6`,Ⳝ:()=>`Ϭ`,ⳤ:()=>`ϗ`,ⴱ:()=>`O̵`,ⴷ:()=>`Ʌ`,ⴸ:()=>`V`,ⴹ:()=>`E`,ⴺ:()=>`Ǝ`,ⵁ:()=>`O̸`,ⵈ:()=>D,ⵉ:()=>`Ʃ`,ⵏ:()=>`l`,ⵑ:()=>`!`,ⵔ:()=>`O`,ⵕ:()=>`Q`,ⵙ:()=>`ʘ`,ⵝ:()=>`X`,ⵠ:()=>`Δ`,ⵣ:()=>`ᛯ`,〇:()=>`O`,〳:()=>`/`,〸:()=>`十`,〹:()=>`卄`,〺:()=>`卅`,く:()=>`❬`,゛:()=>`゙`,゜:()=>`゚`,イ:()=>`亻`,エ:()=>`工`,カ:()=>`力`,タ:()=>`夕`,ト:()=>`卜`,ニ:()=>`二`,ノ:()=>`/`,ハ:()=>`八`,ヘ:()=>`へ`,ロ:()=>`口`,ㄱ:()=>`ᄀ`,ㄲ:()=>Ag,ㄳ:()=>Lg,ㄴ:()=>`ᄂ`,ㄵ:()=>r_,ㄶ:()=>c_,ㄷ:()=>`ᄃ`,ㄸ:()=>m_,ㄹ:()=>`ᄅ`,ㄺ:()=>j_,ㄻ:()=>Y_,ㄼ:()=>tv,ㄽ:()=>fv,ㄾ:()=>bv,ㄿ:()=>Sv,ㅀ:()=>wv,ㅁ:()=>`ᄆ`,ㅂ:()=>`ᄇ`,ㅃ:()=>py,ㅄ:()=>vy,ㅅ:()=>`ᄉ`,ㅆ:()=>cb,ㅇ:()=>`ᄋ`,ㅈ:()=>`ᄌ`,ㅉ:()=>Zb,ㅊ:()=>`ᄎ`,ㅋ:()=>`ᄏ`,ㅌ:()=>`ᄐ`,ㅍ:()=>`ᄑ`,ㅎ:()=>`ᄒ`,ㅏ:()=>`ᅡ`,ㅐ:()=>jx,ㅑ:()=>`ᅣ`,ㅒ:()=>Ix,ㅓ:()=>`ᅥ`,ㅔ:()=>Vx,ㅕ:()=>`ᅧ`,ㅖ:()=>Kx,ㅗ:()=>`ᅩ`,ㅘ:()=>Jx,ㅙ:()=>Xx,ㅚ:()=>sS,ㅛ:()=>`ᅭ`,ㅜ:()=>`ᅮ`,ㅝ:()=>SS,ㅞ:()=>TS,ㅟ:()=>AS,ㅠ:()=>`ᅲ`,ㅡ:()=>`ー`,ㅢ:()=>Mt,ㅣ:()=>`丨`,ㅤ:()=>`ᅠ`,ㅥ:()=>Gg,ㅦ:()=>Jg,ㅧ:()=>e_,ㅨ:()=>u_,ㅩ:()=>F_,ㅪ:()=>V_,ㅫ:()=>av,ㅬ:()=>kv,ㅭ:()=>Mv,ㅮ:()=>Hv,ㅯ:()=>qv,ㅰ:()=>ny,ㅱ:()=>Xv,ㅲ:()=>iy,ㅳ:()=>sy,ㅴ:()=>xy,ㅵ:()=>Cy,ㅶ:()=>Ny,ㅷ:()=>zy,ㅸ:()=>Ay,ㅹ:()=>gy,ㅺ:()=>Gy,ㅻ:()=>Jy,ㅼ:()=>Xy,ㅽ:()=>rb,ㅾ:()=>gb,ㅿ:()=>`ᅀ`,ㆀ:()=>Ib,ㆁ:()=>`ᅌ`,ㆂ:()=>Pb,ㆃ:()=>Kb,ㆄ:()=>sx,ㆅ:()=>_x,ㆆ:()=>`ᅙ`,ㆇ:()=>dS,ㆈ:()=>mS,ㆉ:()=>vS,ㆊ:()=>LS,ㆋ:()=>zS,ㆌ:()=>US,ㆍ:()=>`ᆞ`,ㆎ:()=>XS,㦳:()=>`㘽`,䎛:()=>`㖈`,䐠:()=>`㬻`,一:()=>`ー`,丶:()=>`\\`,丿:()=>`/`,倂:()=>`併`,值:()=>`値`,啟:()=>`啓`,囗:()=>`口`,填:()=>`塡`,士:()=>`土`,壿:()=>`墫`,嬀:()=>`媯`,帲:()=>`帡`,幐:()=>`㬺`,戸:()=>`戶`,搉:()=>`㩁`,晣:()=>`䀿`,晩:()=>`晚`,曶:()=>`㫚`,朦:()=>`䑃`,柿:()=>`杮`,槩:()=>`㮣`,樧:()=>`榝`,潙:()=>`溈`,硏:()=>`研`,絶:()=>`絕`,肦:()=>`朌`,胊:()=>`朐`,胐:()=>`朏`,胶:()=>`㬵`,脁:()=>`朓`,脧:()=>`朘`,腁:()=>`胼`,膧:()=>`朣`,蔿:()=>`蒍`,虁:()=>`蘷`,訞:()=>`䚶`,詽:()=>`訮`,讏:()=>`讆`,豣:()=>`豜`,趆:()=>`赿`,跺:()=>`跥`,躛:()=>`躗`,輧:()=>`軿`,郞:()=>`郎`,鎮:()=>`鎭`,隸:()=>`隷`,鹃:()=>`鹂`,黒:()=>`黑`,鿃:()=>`䀹`,ꓐ:()=>`B`,ꓑ:()=>`P`,ꓒ:()=>`d`,ꓓ:()=>`D`,ꓔ:()=>`T`,ꓖ:()=>`G`,ꓗ:()=>`K`,ꓙ:()=>`J`,ꓚ:()=>`C`,ꓛ:()=>`Ɔ`,ꓜ:()=>`Z`,ꓝ:()=>`F`,ꓞ:()=>`Ⅎ`,ꓟ:()=>`M`,ꓠ:()=>`N`,ꓡ:()=>`L`,ꓢ:()=>`S`,ꓣ:()=>`R`,ꓥ:()=>`Ʌ`,ꓦ:()=>`V`,ꓧ:()=>`H`,ꓪ:()=>`W`,ꓫ:()=>`X`,ꓬ:()=>`Y`,ꓭ:()=>`ᙠ`,ꓮ:()=>`A`,ꓯ:()=>`Ɐ`,ꓰ:()=>`E`,ꓱ:()=>`Ǝ`,ꓲ:()=>`l`,ꓳ:()=>`O`,ꓴ:()=>`U`,ꓵ:()=>`Ո`,ꓷ:()=>`ᗡ`,ꓸ:()=>`.`,ꓹ:()=>`,`,ꓺ:()=>`..`,ꓻ:()=>`.,`,ꓽ:()=>`:`,Ꙅ:()=>`2`,ꙅ:()=>`ƨ`,ꙇ:()=>`i`,ꙍ:()=>`ω`,Ꙑ:()=>`Ъl`,ꙑ:()=>Ct,Ꙩ:()=>`ʘ`,ꚕ:()=>`h̔`,Ꚙ:()=>`OO`,ꚙ:()=>`oo`,Ꚛ:()=>uC,ꚡ:()=>`И`,ꚰ:()=>`ᚹ`,ꚱ:()=>`Ⱶ`,ꛍ:()=>`ʡ`,ꛎ:()=>`Ʌ`,ꛛ:()=>`Π`,ꛟ:()=>`V`,ꛫ:()=>`?`,ꛯ:()=>`2`,Ꜩ:()=>`T3`,ꜩ:()=>`tȝ`,ꜱ:()=>`s`,Ꜳ:()=>`AA`,ꜳ:()=>`aa`,Ꜵ:()=>`AO`,ꜵ:()=>`ao`,Ꜷ:()=>`AU`,ꜷ:()=>`au`,Ꜹ:()=>`AV`,ꜹ:()=>`av`,Ꜻ:()=>`AV`,ꜻ:()=>`av`,Ꜽ:()=>`AY`,ꜽ:()=>`ay`,Ꝁ:()=>`K̵`,Ꝋ:()=>`O̵`,ꝋ:()=>`o̵`,Ꝏ:()=>`OO`,ꝏ:()=>`oo`,Ꝛ:()=>`2`,ꝡ:()=>`w̦`,Ꝫ:()=>`3`,ꝫ:()=>`ȝ`,Ꝯ:()=>`9`,ꝷ:()=>`tf`,ꝸ:()=>`&`,ꝺ:()=>`Ꝺ`,ꞌ:()=>`'`,ꞏ:()=>`·`,ꞕ:()=>`ꜧ`,Ꞙ:()=>`F`,ꞙ:()=>`f`,Ꞛ:()=>fC,ꞛ:()=>dC,ꞝ:()=>`ʚ`,Ꞟ:()=>`ꓤ`,ꞟ:()=>`u`,Ɜ:()=>`3`,Ʇ:()=>`ꓕ`,Ʝ:()=>`J`,Ꭓ:()=>`X`,Ꞵ:()=>`B`,ꞵ:()=>`ß`,Ꞷ:()=>`Ꙍ`,ꞷ:()=>`ω`,ꟷ:()=>`ー`,ꥠ:()=>y_,ꥡ:()=>b_,ꥢ:()=>S_,ꥣ:()=>T_,ꥤ:()=>k_,ꥥ:()=>M_,ꥦ:()=>z_,ꥧ:()=>H_,ꥨ:()=>q_,ꥩ:()=>$_,ꥪ:()=>rv,ꥫ:()=>ov,ꥬ:()=>uv,ꥭ:()=>gv,ꥮ:()=>_v,ꥯ:()=>Pv,ꥰ:()=>Rv,ꥱ:()=>Gv,ꥲ:()=>Oy,ꥳ:()=>Ly,ꥴ:()=>Hy,ꥵ:()=>fb,ꥶ:()=>kb,ꥷ:()=>Ub,ꥸ:()=>$b,ꥹ:()=>nx,ꥺ:()=>ux,ꥻ:()=>hx,ꥼ:()=>Ex,ꦒ:()=>`ⰿ`,ꦣ:()=>`ꦝ`,ꧏ:()=>`٢`,ꬲ:()=>`e`,ꬵ:()=>`f`,ꬽ:()=>`o`,ꬾ:()=>`o̸`,ꬿ:()=>Xt,ꭁ:()=>It,ꭂ:()=>Lt,ꭇ:()=>`r`,ꭈ:()=>`r`,ꭍ:()=>`ʃ`,ꭎ:()=>`u`,ꭒ:()=>`u`,ꭓ:()=>`χ`,ꭕ:()=>`χ`,ꭚ:()=>`y`,ꭠ:()=>`љ`,ꭢ:()=>`ɔe`,ꭣ:()=>`uo`,ꭰ:()=>`ᴅ`,ꭱ:()=>`ʀ`,ꭲ:()=>`ᴛ`,ꭴ:()=>`ơ`,ꭵ:()=>`i`,ꭺ:()=>`ᴀ`,ꭻ:()=>`ᴊ`,ꭼ:()=>`ᴇ`,ꭾ:()=>`ɂ`,ꮀ:()=>`ⱶ`,ꮁ:()=>`r`,ꮃ:()=>`w`,ꮇ:()=>`ʍ`,ꮋ:()=>`ʜ`,ꮎ:()=>`o̵`,ꮐ:()=>`ɢ`,ꮓ:()=>`z`,ꮛ:()=>`ꞓ`,ꮜ:()=>`u̵`,ꮟ:()=>`ƅ`,ꮢ:()=>`ʀ`,ꮩ:()=>`v`,ꮪ:()=>`s`,ꮮ:()=>`ʟ`,ꮯ:()=>`c`,ꮲ:()=>`ᴘ`,ꮶ:()=>`ĸ`,ꮻ:()=>`o̵`,ힰ:()=>tS,ힱ:()=>iS,ힲ:()=>cS,ힳ:()=>lS,ힴ:()=>hS,ힵ:()=>ES,ힶ:()=>jS,ힷ:()=>NS,ힸ:()=>BS,ힹ:()=>Et,ힺ:()=>Dt,ힻ:()=>Ot,ힼ:()=>kt,ힽ:()=>bC,ힾ:()=>xC,ힿ:()=>SC,ퟀ:()=>CC,ퟁ:()=>TC,ퟂ:()=>EC,ퟃ:()=>OC,ퟄ:()=>AC,ퟅ:()=>WS,ퟆ:()=>KS,ퟋ:()=>Xg,ퟌ:()=>i_,ퟍ:()=>h_,ퟎ:()=>g_,ퟏ:()=>x_,ퟐ:()=>C_,ퟑ:()=>w_,ퟒ:()=>E_,ퟓ:()=>D_,ퟔ:()=>O_,ퟕ:()=>N_,ퟖ:()=>I_,ퟗ:()=>K_,ퟘ:()=>Q_,ퟙ:()=>nv,ퟚ:()=>cv,ퟛ:()=>Av,ퟜ:()=>Nv,ퟝ:()=>hv,ퟞ:()=>Iv,ퟟ:()=>Lv,ퟠ:()=>Bv,ퟡ:()=>Wv,ퟢ:()=>Qv,ퟣ:()=>cy,ퟤ:()=>uy,ퟥ:()=>dy,ퟦ:()=>my,ퟧ:()=>wy,ퟨ:()=>Py,ퟩ:()=>Iy,ퟪ:()=>tb,ퟫ:()=>ob,ퟬ:()=>ub,ퟭ:()=>db,ퟮ:()=>wb,ퟯ:()=>_b,ퟰ:()=>yb,ퟱ:()=>Sb,ퟲ:()=>Dv,ퟳ:()=>bx,ퟴ:()=>xx,ퟵ:()=>Sx,ퟶ:()=>Cx,ퟷ:()=>qb,ퟸ:()=>Jb,ퟹ:()=>Qb,ퟺ:()=>ax,ퟻ:()=>lx,豈:()=>`豈`,更:()=>`更`,車:()=>`車`,賈:()=>`賈`,滑:()=>`滑`,串:()=>`串`,句:()=>`句`,龜:()=>`龜`,龜:()=>`龜`,契:()=>`契`,金:()=>`金`,喇:()=>`喇`,奈:()=>`奈`,懶:()=>`懶`,癩:()=>`癩`,羅:()=>`羅`,蘿:()=>`蘿`,螺:()=>`螺`,裸:()=>`裸`,邏:()=>`邏`,樂:()=>`樂`,洛:()=>`洛`,烙:()=>`烙`,珞:()=>`珞`,落:()=>`落`,酪:()=>`酪`,駱:()=>`駱`,亂:()=>`亂`,卵:()=>`卵`,欄:()=>`欄`,爛:()=>`爛`,蘭:()=>`蘭`,鸞:()=>`鸞`,嵐:()=>`嵐`,濫:()=>`濫`,藍:()=>`藍`,襤:()=>`襤`,拉:()=>`拉`,臘:()=>`臘`,蠟:()=>`蠟`,廊:()=>`廊`,朗:()=>`朗`,浪:()=>`浪`,狼:()=>`狼`,郎:()=>`郎`,來:()=>`來`,冷:()=>`冷`,勞:()=>`勞`,擄:()=>`擄`,櫓:()=>`櫓`,爐:()=>`爐`,盧:()=>`盧`,老:()=>`老`,蘆:()=>`蘆`,虜:()=>`虜`,路:()=>`路`,露:()=>`露`,魯:()=>`魯`,鷺:()=>`鷺`,碌:()=>`碌`,祿:()=>`祿`,綠:()=>`綠`,菉:()=>`菉`,錄:()=>`錄`,鹿:()=>`鹿`,論:()=>`論`,壟:()=>`壟`,弄:()=>`弄`,籠:()=>`籠`,聾:()=>`聾`,牢:()=>`牢`,磊:()=>`磊`,賂:()=>`賂`,雷:()=>`雷`,壘:()=>`壘`,屢:()=>`屢`,樓:()=>`樓`,淚:()=>`淚`,漏:()=>`漏`,累:()=>`累`,縷:()=>`縷`,陋:()=>`陋`,勒:()=>`勒`,肋:()=>`肋`,凜:()=>`凜`,凌:()=>`凌`,稜:()=>`稜`,綾:()=>`綾`,菱:()=>`菱`,陵:()=>`陵`,讀:()=>`讀`,拏:()=>`拏`,樂:()=>`樂`,諾:()=>`諾`,丹:()=>`丹`,寧:()=>`寧`,怒:()=>`怒`,率:()=>`率`,異:()=>`異`,北:()=>`北`,磻:()=>`磻`,便:()=>`便`,復:()=>`復`,不:()=>`不`,泌:()=>`泌`,數:()=>`數`,索:()=>`索`,參:()=>`參`,塞:()=>`塞`,省:()=>`省`,葉:()=>`葉`,說:()=>`說`,殺:()=>`殺`,辰:()=>`辰`,沈:()=>`沈`,拾:()=>`拾`,若:()=>`若`,掠:()=>`掠`,略:()=>`略`,亮:()=>`亮`,兩:()=>`兩`,凉:()=>`凉`,梁:()=>`梁`,糧:()=>`糧`,良:()=>`良`,諒:()=>`諒`,量:()=>`量`,勵:()=>`勵`,呂:()=>`呂`,女:()=>`女`,廬:()=>`廬`,旅:()=>`旅`,濾:()=>`濾`,礪:()=>`礪`,閭:()=>`閭`,驪:()=>`驪`,麗:()=>`麗`,黎:()=>`黎`,力:()=>`力`,曆:()=>`曆`,歷:()=>`歷`,轢:()=>`轢`,年:()=>`年`,憐:()=>`憐`,戀:()=>`戀`,撚:()=>`撚`,漣:()=>`漣`,煉:()=>`煉`,璉:()=>`璉`,秊:()=>`秊`,練:()=>`練`,聯:()=>`聯`,輦:()=>`輦`,蓮:()=>`蓮`,連:()=>`連`,鍊:()=>`鍊`,列:()=>`列`,劣:()=>`劣`,咽:()=>`咽`,烈:()=>`烈`,裂:()=>`裂`,說:()=>`說`,廉:()=>`廉`,念:()=>`念`,捻:()=>`捻`,殮:()=>`殮`,簾:()=>`簾`,獵:()=>`獵`,令:()=>`令`,囹:()=>`囹`,寧:()=>`寧`,嶺:()=>`嶺`,怜:()=>`怜`,玲:()=>`玲`,瑩:()=>`瑩`,羚:()=>`羚`,聆:()=>`聆`,鈴:()=>`鈴`,零:()=>`零`,靈:()=>`靈`,領:()=>`領`,例:()=>`例`,禮:()=>`禮`,醴:()=>`醴`,隸:()=>`隷`,惡:()=>`惡`,了:()=>`了`,僚:()=>`僚`,寮:()=>`寮`,尿:()=>`尿`,料:()=>`料`,樂:()=>`樂`,燎:()=>`燎`,療:()=>`療`,蓼:()=>`蓼`,遼:()=>`遼`,龍:()=>`龍`,暈:()=>`暈`,阮:()=>`阮`,劉:()=>`劉`,杻:()=>`杻`,柳:()=>`柳`,流:()=>`流`,溜:()=>`溜`,琉:()=>`琉`,留:()=>`留`,硫:()=>`硫`,紐:()=>`紐`,類:()=>`類`,六:()=>`六`,戮:()=>`戮`,陸:()=>`陸`,倫:()=>`倫`,崙:()=>`崙`,淪:()=>`淪`,輪:()=>`輪`,律:()=>`律`,慄:()=>`慄`,栗:()=>`栗`,率:()=>`率`,隆:()=>`隆`,利:()=>`利`,吏:()=>`吏`,履:()=>`履`,易:()=>`易`,李:()=>`李`,梨:()=>`梨`,泥:()=>`泥`,理:()=>`理`,痢:()=>`痢`,罹:()=>`罹`,裏:()=>`裏`,裡:()=>`裡`,里:()=>`里`,離:()=>`離`,匿:()=>`匿`,溺:()=>`溺`,吝:()=>`吝`,燐:()=>`燐`,璘:()=>`璘`,藺:()=>`藺`,隣:()=>`隣`,鱗:()=>`鱗`,麟:()=>`麟`,林:()=>`林`,淋:()=>`淋`,臨:()=>`臨`,立:()=>`立`,笠:()=>`笠`,粒:()=>`粒`,狀:()=>`狀`,炙:()=>`炙`,識:()=>`識`,什:()=>`什`,茶:()=>`茶`,刺:()=>`刺`,切:()=>`切`,度:()=>`度`,拓:()=>`拓`,糖:()=>`糖`,宅:()=>`宅`,洞:()=>`洞`,暴:()=>`暴`,輻:()=>`輻`,行:()=>`行`,降:()=>`降`,見:()=>`見`,廓:()=>`廓`,兀:()=>`兀`,嗀:()=>`嗀`,塚:()=>`塚`,晴:()=>`晴`,凞:()=>`凞`,猪:()=>`猪`,益:()=>`益`,礼:()=>`礼`,神:()=>`神`,祥:()=>`祥`,福:()=>`福`,靖:()=>`靖`,精:()=>`精`,羽:()=>`羽`,蘒:()=>`蘒`,諸:()=>`諸`,逸:()=>`逸`,都:()=>`都`,飯:()=>`飯`,飼:()=>`飼`,館:()=>`館`,鶴:()=>`鶴`,郞:()=>`郎`,隷:()=>`隷`,侮:()=>`侮`,僧:()=>`僧`,免:()=>`免`,勉:()=>`勉`,勤:()=>`勤`,卑:()=>`卑`,喝:()=>`喝`,嘆:()=>`嘆`,器:()=>`器`,塀:()=>`塀`,墨:()=>`墨`,層:()=>`層`,屮:()=>`屮`,悔:()=>`悔`,慨:()=>`慨`,憎:()=>`憎`,懲:()=>`懲`,敏:()=>`敏`,既:()=>`既`,暑:()=>`暑`,梅:()=>`梅`,海:()=>`海`,渚:()=>`渚`,漢:()=>`漢`,煮:()=>`煮`,爫:()=>`爫`,琢:()=>`琢`,碑:()=>`碑`,社:()=>`社`,祉:()=>`祉`,祈:()=>`祈`,祐:()=>`祐`,祖:()=>`祖`,祝:()=>`祝`,禍:()=>`禍`,禎:()=>`禎`,穀:()=>`穀`,突:()=>`突`,節:()=>`節`,練:()=>`練`,縉:()=>`縉`,繁:()=>`繁`,署:()=>`署`,者:()=>`者`,臭:()=>`臭`,艹:()=>`艹`,艹:()=>`艹`,著:()=>`著`,褐:()=>`褐`,視:()=>`視`,謁:()=>`謁`,謹:()=>`謹`,賓:()=>`賓`,贈:()=>`贈`,辶:()=>`辶`,逸:()=>`逸`,難:()=>`難`,響:()=>`響`,頻:()=>`頻`,恵:()=>`恵`,𤋮:()=>xw,舘:()=>`舘`,並:()=>`並`,况:()=>`况`,全:()=>`全`,侀:()=>`侀`,充:()=>`充`,冀:()=>`冀`,勇:()=>`勇`,勺:()=>`勺`,喝:()=>`喝`,啕:()=>`啕`,喙:()=>`喙`,嗢:()=>`嗢`,塚:()=>`塚`,墳:()=>`墳`,奄:()=>`奄`,奔:()=>`奔`,婢:()=>`婢`,嬨:()=>`嬨`,廒:()=>`廒`,廙:()=>`廙`,彩:()=>`彩`,徭:()=>`徭`,惘:()=>`惘`,慎:()=>`慎`,愈:()=>`愈`,憎:()=>`憎`,慠:()=>`慠`,懲:()=>`懲`,戴:()=>`戴`,揄:()=>`揄`,搜:()=>`搜`,摒:()=>`摒`,敖:()=>`敖`,晴:()=>`晴`,朗:()=>`朗`,望:()=>`望`,杖:()=>`杖`,歹:()=>`歹`,殺:()=>`殺`,流:()=>`流`,滛:()=>`滛`,滋:()=>`滋`,漢:()=>`漢`,瀞:()=>`瀞`,煮:()=>`煮`,瞧:()=>`瞧`,爵:()=>`爵`,犯:()=>`犯`,猪:()=>`猪`,瑱:()=>`瑱`,甆:()=>`甆`,画:()=>`画`,瘝:()=>`瘝`,瘟:()=>`瘟`,益:()=>`益`,盛:()=>`盛`,直:()=>`直`,睊:()=>`睊`,着:()=>`着`,磌:()=>`磌`,窱:()=>`窱`,節:()=>`節`,类:()=>`类`,絛:()=>`絛`,練:()=>`練`,缾:()=>`缾`,者:()=>`者`,荒:()=>`荒`,華:()=>`華`,蝹:()=>`蝹`,襁:()=>`襁`,覆:()=>`覆`,視:()=>`視`,調:()=>`調`,諸:()=>`諸`,請:()=>`請`,謁:()=>`謁`,諾:()=>`諾`,諭:()=>`諭`,謹:()=>`謹`,變:()=>`變`,贈:()=>`贈`,輸:()=>`輸`,遲:()=>`遲`,醙:()=>`醙`,鉶:()=>`鉶`,陼:()=>`陼`,難:()=>`難`,靖:()=>`靖`,韛:()=>`韛`,響:()=>`響`,頋:()=>`頋`,頻:()=>`頻`,鬒:()=>`鬒`,龜:()=>`龜`,𢡊:()=>ew,𢡄:()=>$C,𣏕:()=>lw,㮝:()=>`㮝`,䀘:()=>`䀘`,䀹:()=>`䀹`,𥉉:()=>Fw,𥳐:()=>Gw,𧻓:()=>hT,齃:()=>`齃`,龎:()=>`龎`,ff:()=>`ff`,fi:()=>`fi`,fl:()=>`fl`,ffi:()=>`ffi`,ffl:()=>`ffl`,st:()=>`st`,ﬓ:()=>Dn,ﬔ:()=>wn,ﬕ:()=>Tn,ﬖ:()=>kn,ﬗ:()=>En,ﬠ:()=>`ע`,ﬡ:()=>`א`,ﬢ:()=>`ד`,ﬣ:()=>`ה`,ﬤ:()=>`כ`,ﬥ:()=>`ל`,ﬦ:()=>`ם`,ﬧ:()=>`ר`,ﬨ:()=>`ת`,שׂ:()=>`שׁ`,שּׂ:()=>`שּׁ`,אָ:()=>`אַ`,אּ:()=>`אַ`,יּ:()=>`יִ`,שּ:()=>`שׁ`,ﭏ:()=>An,ﭐ:()=>`ٱ`,ﭑ:()=>`ٱ`,ﭒ:()=>`ٻ`,ﭓ:()=>`ٻ`,ﭔ:()=>`ٻ`,ﭕ:()=>`ٻ`,ﭖ:()=>ad,ﭗ:()=>id,ﭘ:()=>nd,ﭙ:()=>rd,ﭚ:()=>`ڀ`,ﭛ:()=>`ڀ`,ﭜ:()=>`ڀ`,ﭝ:()=>`ڀ`,ﭞ:()=>`ٺ`,ﭟ:()=>`ٺ`,ﭠ:()=>`ٺ`,ﭡ:()=>`ٺ`,ﭢ:()=>`ٿ`,ﭣ:()=>`ٿ`,ﭤ:()=>`ٿ`,ﭥ:()=>`ٿ`,ﭦ:()=>Yu,ﭧ:()=>Ju,ﭨ:()=>Ku,ﭩ:()=>qu,ﭪ:()=>$s,ﭫ:()=>Qs,ﭬ:()=>Xs,ﭭ:()=>Zs,ﭮ:()=>`ڦ`,ﭯ:()=>`ڦ`,ﭰ:()=>`ڦ`,ﭱ:()=>`ڦ`,ﭲ:()=>`ڄ`,ﭳ:()=>`ڄ`,ﭴ:()=>`ڄ`,ﭵ:()=>`ڄ`,ﭶ:()=>`ڃ`,ﭷ:()=>`ڃ`,ﭸ:()=>`ڃ`,ﭹ:()=>`ڃ`,ﭺ:()=>`چ`,ﭻ:()=>`چ`,ﭼ:()=>`چ`,ﭽ:()=>`چ`,ﭾ:()=>`ڇ`,ﭿ:()=>`ڇ`,ﮀ:()=>`ڇ`,ﮁ:()=>`ڇ`,ﮂ:()=>`ڍ`,ﮃ:()=>`ڍ`,ﮄ:()=>`ڌ`,ﮅ:()=>`ڌ`,ﮆ:()=>xi,ﮇ:()=>bi,ﮈ:()=>vi,ﮉ:()=>_i,ﮊ:()=>ji,ﮋ:()=>Ai,ﮌ:()=>Oi,ﮍ:()=>Di,ﮎ:()=>`ك`,ﮏ:()=>`ك`,ﮐ:()=>`ك`,ﮑ:()=>`ك`,ﮒ:()=>`گ`,ﮓ:()=>`گ`,ﮔ:()=>`گ`,ﮕ:()=>`گ`,ﮖ:()=>`ڳ`,ﮗ:()=>`ڳ`,ﮘ:()=>`ڳ`,ﮙ:()=>`ڳ`,ﮚ:()=>`ڱ`,ﮛ:()=>`ڱ`,ﮜ:()=>`ڱ`,ﮝ:()=>`ڱ`,ﮞ:()=>`ى`,ﮟ:()=>`ى`,ﮠ:()=>ed,ﮡ:()=>$u,ﮢ:()=>Zu,ﮣ:()=>Qu,ﮤ:()=>`ۀ`,ﮥ:()=>`ۀ`,ﮦ:()=>`o`,ﮧ:()=>`o`,ﮨ:()=>`o`,ﮩ:()=>`o`,ﮪ:()=>`o`,ﮫ:()=>`o`,ﮬ:()=>`o`,ﮭ:()=>`o`,ﮮ:()=>`ى`,ﮯ:()=>`ى`,ﮰ:()=>`ۓ`,ﮱ:()=>`ۓ`,ﯓ:()=>yc,ﯔ:()=>vc,ﯕ:()=>gc,ﯖ:()=>_c,ﯗ:()=>Ou,ﯘ:()=>Du,ﯙ:()=>ju,ﯚ:()=>Au,ﯛ:()=>Lu,ﯜ:()=>Iu,ﯝ:()=>Uu,ﯞ:()=>Tu,ﯟ:()=>wu,ﯠ:()=>`ۅ`,ﯡ:()=>`ۅ`,ﯢ:()=>Pu,ﯣ:()=>Nu,ﯤ:()=>`ٻ`,ﯥ:()=>`ٻ`,ﯦ:()=>`ٻ`,ﯧ:()=>`ٻ`,ﯨ:()=>`ى`,ﯩ:()=>`ى`,ﯪ:()=>Fd,ﯫ:()=>Pd,ﯬ:()=>zd,ﯭ:()=>Rd,ﯮ:()=>nf,ﯯ:()=>tf,ﯰ:()=>af,ﯱ:()=>rf,ﯲ:()=>sf,ﯳ:()=>of,ﯴ:()=>lf,ﯵ:()=>cf,ﯶ:()=>Hd,ﯷ:()=>Vd,ﯸ:()=>Bd,ﯹ:()=>pf,ﯺ:()=>df,ﯻ:()=>uf,ﯼ:()=>`ى`,ﯽ:()=>`ى`,ﯾ:()=>`ى`,ﯿ:()=>`ى`,ﰀ:()=>Wd,ﰁ:()=>Kd,ﰂ:()=>$d,ﰃ:()=>mf,ﰄ:()=>gf,ﰅ:()=>Fn,ﰆ:()=>Ln,ﰇ:()=>Bn,ﰈ:()=>Yn,ﰉ:()=>Qn,ﰊ:()=>er,ﰋ:()=>nr,ﰌ:()=>sr,ﰍ:()=>fr,ﰎ:()=>xr,ﰏ:()=>kr,ﰐ:()=>jr,ﰑ:()=>yf,ﰒ:()=>Lf,ﰓ:()=>Jf,ﰔ:()=>Xf,ﰕ:()=>Nr,ﰖ:()=>Rr,ﰗ:()=>Zr,ﰘ:()=>ei,ﰙ:()=>ci,ﰚ:()=>li,ﰛ:()=>di,ﰜ:()=>na,ﰝ:()=>fa,ﰞ:()=>Ca,ﰟ:()=>Ia,ﰠ:()=>so,ﰡ:()=>bo,ﰢ:()=>Oo,ﰣ:()=>Ao,ﰤ:()=>Po,ﰥ:()=>Bo,ﰦ:()=>qo,ﰧ:()=>Xo,ﰨ:()=>ss,ﰩ:()=>ls,ﰪ:()=>ms,ﰫ:()=>ws,ﰬ:()=>Es,ﰭ:()=>Fs,ﰮ:()=>Ls,ﰯ:()=>zs,ﰰ:()=>Us,ﰱ:()=>Ks,ﰲ:()=>Js,ﰳ:()=>rc,ﰴ:()=>oc,ﰵ:()=>fc,ﰶ:()=>mc,ﰷ:()=>`كl`,ﰸ:()=>Sc,ﰹ:()=>wc,ﰺ:()=>Ec,ﰻ:()=>Ac,ﰼ:()=>Pc,ﰽ:()=>zc,ﰾ:()=>Vc,ﰿ:()=>Qc,ﱀ:()=>al,ﱁ:()=>dl,ﱂ:()=>_l,ﱃ:()=>Sl,ﱄ:()=>wl,ﱅ:()=>Dl,ﱆ:()=>Nl,ﱇ:()=>zl,ﱈ:()=>Gl,ﱉ:()=>ql,ﱊ:()=>Jl,ﱋ:()=>Hn,ﱌ:()=>iu,ﱍ:()=>lu,ﱎ:()=>hu,ﱏ:()=>bu,ﱐ:()=>Su,ﱑ:()=>`oج`,ﱒ:()=>`oم`,ﱓ:()=>`oى`,ﱔ:()=>`oى`,ﱕ:()=>vf,ﱖ:()=>Sf,ﱗ:()=>Tf,ﱘ:()=>Nf,ﱙ:()=>Wf,ﱚ:()=>Kf,ﱛ:()=>wi,ﱜ:()=>Ii,ﱝ:()=>Ed,ﱞ:()=>v,ﱟ:()=>y,ﱠ:()=>x,ﱡ:()=>C,ﱢ:()=>T,ﱣ:()=>E,ﱤ:()=>Jd,ﱥ:()=>Yd,ﱦ:()=>Qd,ﱧ:()=>ef,ﱨ:()=>ff,ﱩ:()=>hf,ﱪ:()=>Wn,ﱫ:()=>Gn,ﱬ:()=>Jn,ﱭ:()=>Xn,ﱮ:()=>Zn,ﱯ:()=>$n,ﱰ:()=>gr,ﱱ:()=>_r,ﱲ:()=>br,ﱳ:()=>Dr,ﱴ:()=>Or,ﱵ:()=>Ar,ﱶ:()=>Df,ﱷ:()=>kf,ﱸ:()=>If,ﱹ:()=>Hf,ﱺ:()=>qf,ﱻ:()=>Yf,ﱼ:()=>Gs,ﱽ:()=>qs,ﱾ:()=>dc,ﱿ:()=>pc,ﲀ:()=>`كl`,ﲁ:()=>kc,ﲂ:()=>Nc,ﲃ:()=>Rc,ﲄ:()=>Bc,ﲅ:()=>gl,ﲆ:()=>xl,ﲇ:()=>Cl,ﲈ:()=>`مl`,ﲉ:()=>Wl,ﲊ:()=>uu,ﲋ:()=>du,ﲌ:()=>mu,ﲍ:()=>vu,ﲎ:()=>yu,ﲏ:()=>xu,ﲐ:()=>Td,ﲑ:()=>Ef,ﲒ:()=>Of,ﲓ:()=>Mf,ﲔ:()=>Vf,ﲕ:()=>Uf,ﲖ:()=>Gf,ﲗ:()=>Ud,ﲘ:()=>Gd,ﲙ:()=>qd,ﲚ:()=>Xd,ﲛ:()=>Id,ﲜ:()=>Pn,ﲝ:()=>In,ﲞ:()=>zn,ﲟ:()=>Kn,ﲠ:()=>`بo`,ﲡ:()=>tr,ﲢ:()=>or,ﲣ:()=>dr,ﲤ:()=>vr,ﲥ:()=>`تo`,ﲦ:()=>Pf,ﲧ:()=>Mr,ﲨ:()=>Lr,ﲩ:()=>Xr,ﲪ:()=>$r,ﲫ:()=>si,ﲬ:()=>ui,ﲭ:()=>ea,ﲮ:()=>ua,ﲯ:()=>xa,ﲰ:()=>Pa,ﲱ:()=>oo,ﲲ:()=>fo,ﲳ:()=>yo,ﲴ:()=>Do,ﲵ:()=>ko,ﲶ:()=>No,ﲷ:()=>zo,ﲸ:()=>Ko,ﲹ:()=>as,ﲺ:()=>cs,ﲻ:()=>ps,ﲼ:()=>Cs,ﲽ:()=>Ts,ﲾ:()=>Ps,ﲿ:()=>Is,ﳀ:()=>Rs,ﳁ:()=>Hs,ﳂ:()=>nc,ﳃ:()=>ac,ﳄ:()=>xc,ﳅ:()=>Cc,ﳆ:()=>Tc,ﳇ:()=>Dc,ﳈ:()=>jc,ﳉ:()=>Zc,ﳊ:()=>il,ﳋ:()=>ul,ﳌ:()=>ml,ﳍ:()=>`لo`,ﳎ:()=>El,ﳏ:()=>Ml,ﳐ:()=>Rl,ﳑ:()=>Ul,ﳒ:()=>Vn,ﳓ:()=>ru,ﳔ:()=>cu,ﳕ:()=>fu,ﳖ:()=>`نo`,ﳗ:()=>`oج`,ﳘ:()=>`oم`,ﳙ:()=>`oٰ`,ﳚ:()=>_f,ﳛ:()=>xf,ﳜ:()=>wf,ﳝ:()=>Af,ﳞ:()=>`ىo`,ﳟ:()=>Zd,ﳠ:()=>Ld,ﳡ:()=>qn,ﳢ:()=>`بo`,ﳣ:()=>yr,ﳤ:()=>`تo`,ﳥ:()=>Ff,ﳦ:()=>Dd,ﳧ:()=>Fa,ﳨ:()=>`سo`,ﳩ:()=>Ra,ﳪ:()=>$i,ﳫ:()=>Oc,ﳬ:()=>Mc,ﳭ:()=>hl,ﳮ:()=>pu,ﳯ:()=>`نo`,ﳰ:()=>jf,ﳱ:()=>`ىo`,ﳲ:()=>b,ﳳ:()=>S,ﳴ:()=>w,ﳵ:()=>ns,ﳶ:()=>is,ﳷ:()=>bs,ﳸ:()=>Ss,ﳹ:()=>js,ﳺ:()=>Ns,ﳻ:()=>Za,ﳼ:()=>$a,ﳽ:()=>to,ﳾ:()=>ro,ﳿ:()=>ii,ﴀ:()=>oi,ﴁ:()=>Wr,ﴂ:()=>Kr,ﴃ:()=>pi,ﴄ:()=>hi,ﴅ:()=>wo,ﴆ:()=>Eo,ﴇ:()=>Ho,ﴈ:()=>Wo,ﴉ:()=>oa,ﴊ:()=>ga,ﴋ:()=>Da,ﴌ:()=>Ba,ﴍ:()=>Na,ﴎ:()=>ja,ﴏ:()=>mo,ﴐ:()=>Ro,ﴑ:()=>ts,ﴒ:()=>rs,ﴓ:()=>ys,ﴔ:()=>xs,ﴕ:()=>As,ﴖ:()=>Ms,ﴗ:()=>Xa,ﴘ:()=>Qa,ﴙ:()=>eo,ﴚ:()=>no,ﴛ:()=>ri,ﴜ:()=>ai,ﴝ:()=>Ur,ﴞ:()=>Gr,ﴟ:()=>fi,ﴠ:()=>mi,ﴡ:()=>Co,ﴢ:()=>To,ﴣ:()=>Vo,ﴤ:()=>Uo,ﴥ:()=>aa,ﴦ:()=>ha,ﴧ:()=>Ea,ﴨ:()=>za,ﴩ:()=>Ma,ﴪ:()=>Aa,ﴫ:()=>po,ﴬ:()=>Lo,ﴭ:()=>ra,ﴮ:()=>pa,ﴯ:()=>wa,ﴰ:()=>La,ﴱ:()=>`سo`,ﴲ:()=>Qi,ﴳ:()=>Jo,ﴴ:()=>ta,ﴵ:()=>da,ﴶ:()=>Sa,ﴷ:()=>ia,ﴸ:()=>ma,ﴹ:()=>Ta,ﴺ:()=>Yo,ﴻ:()=>os,ﴼ:()=>`l̋`,ﴽ:()=>`l̋`,ﵐ:()=>rr,ﵑ:()=>lr,ﵒ:()=>cr,ﵓ:()=>ur,ﵔ:()=>pr,ﵕ:()=>Sr,ﵖ:()=>Cr,ﵗ:()=>wr,ﵘ:()=>Br,ﵙ:()=>zr,ﵚ:()=>ni,ﵛ:()=>ti,ﵜ:()=>_a,ﵝ:()=>sa,ﵞ:()=>ca,ﵟ:()=>Ua,ﵠ:()=>Ha,ﵡ:()=>Va,ﵢ:()=>qa,ﵣ:()=>Ka,ﵤ:()=>lo,ﵥ:()=>co,ﵦ:()=>So,ﵧ:()=>ya,ﵨ:()=>va,ﵩ:()=>la,ﵪ:()=>Ga,ﵫ:()=>Wa,ﵬ:()=>Ya,ﵭ:()=>Ja,ﵮ:()=>jo,ﵯ:()=>Io,ﵰ:()=>Fo,ﵱ:()=>Qo,ﵲ:()=>Zo,ﵳ:()=>$o,ﵴ:()=>es,ﵵ:()=>ds,ﵶ:()=>gs,ﵷ:()=>hs,ﵸ:()=>_s,ﵹ:()=>Ds,ﵺ:()=>ks,ﵻ:()=>Os,ﵼ:()=>Vs,ﵽ:()=>Bs,ﵾ:()=>cc,ﵿ:()=>lc,ﶀ:()=>sl,ﶁ:()=>ll,ﶂ:()=>cl,ﶃ:()=>$c,ﶄ:()=>el,ﶅ:()=>pl,ﶆ:()=>fl,ﶇ:()=>yl,ﶈ:()=>vl,ﶉ:()=>Pl,ﶊ:()=>Fl,ﶋ:()=>Ll,ﶌ:()=>Ol,ﶍ:()=>Al,ﶎ:()=>Bl,ﶏ:()=>Vl,ﶒ:()=>kl,ﶓ:()=>Kt,ﶔ:()=>qt,ﶕ:()=>au,ﶖ:()=>ou,ﶗ:()=>eu,ﶘ:()=>$l,ﶙ:()=>tu,ﶚ:()=>_u,ﶛ:()=>gu,ﶜ:()=>zf,ﶝ:()=>Rf,ﶞ:()=>Un,ﶟ:()=>ar,ﶠ:()=>ir,ﶡ:()=>hr,ﶢ:()=>mr,ﶣ:()=>Er,ﶤ:()=>Tr,ﶥ:()=>Hr,ﶦ:()=>Pr,ﶧ:()=>Vr,ﶨ:()=>Oa,ﶩ:()=>uo,ﶪ:()=>ba,ﶫ:()=>Mo,ﶬ:()=>rl,ﶭ:()=>bl,ﶮ:()=>Cf,ﶯ:()=>bf,ﶰ:()=>Bf,ﶱ:()=>Kl,ﶲ:()=>uc,ﶳ:()=>su,ﶴ:()=>sc,ﶵ:()=>ol,ﶶ:()=>vs,ﶷ:()=>Lc,ﶸ:()=>Zl,ﶹ:()=>Hl,ﶺ:()=>tl,ﶻ:()=>Ic,ﶼ:()=>nl,ﶽ:()=>Ql,ﶾ:()=>Fr,ﶿ:()=>Qr,ﷀ:()=>jl,ﷁ:()=>Ws,ﷂ:()=>Rn,ﷃ:()=>Fc,ﷄ:()=>us,ﷅ:()=>xo,ﷆ:()=>ka,ﷇ:()=>nu,ﷰ:()=>_o,ﷱ:()=>ic,ﷲ:()=>Ut,ﷳ:()=>Ht,ﷴ:()=>Il,ﷵ:()=>ho,ﷶ:()=>Li,ﷷ:()=>fs,ﷸ:()=>Wu,ﷹ:()=>go,ﷺ:()=>vo,ﷻ:()=>Ir,ﺀ:()=>`ء`,ﺁ:()=>`آ`,ﺂ:()=>`آ`,ﺃ:()=>`lٴ`,ﺄ:()=>`lٴ`,ﺅ:()=>Bu,ﺆ:()=>zu,ﺇ:()=>`lٕ`,ﺈ:()=>`lٕ`,ﺉ:()=>Md,ﺊ:()=>jd,ﺋ:()=>kd,ﺌ:()=>Ad,ﺍ:()=>`l`,ﺎ:()=>`l`,ﺏ:()=>`ب`,ﺐ:()=>`ب`,ﺑ:()=>`ب`,ﺒ:()=>`ب`,ﺓ:()=>`ة`,ﺔ:()=>`ة`,ﺕ:()=>`ت`,ﺖ:()=>`ت`,ﺗ:()=>`ت`,ﺘ:()=>`ت`,ﺙ:()=>hd,ﺚ:()=>md,ﺛ:()=>fd,ﺜ:()=>pd,ﺝ:()=>`ج`,ﺞ:()=>`ج`,ﺟ:()=>`ج`,ﺠ:()=>`ج`,ﺡ:()=>`ح`,ﺢ:()=>`ح`,ﺣ:()=>`ح`,ﺤ:()=>`ح`,ﺥ:()=>`خ`,ﺦ:()=>`خ`,ﺧ:()=>`خ`,ﺨ:()=>`خ`,ﺩ:()=>`د`,ﺪ:()=>`د`,ﺫ:()=>`ذ`,ﺬ:()=>`ذ`,ﺭ:()=>`ر`,ﺮ:()=>`ر`,ﺯ:()=>`ز`,ﺰ:()=>`ز`,ﺱ:()=>`س`,ﺲ:()=>`س`,ﺳ:()=>`س`,ﺴ:()=>`س`,ﺵ:()=>Xi,ﺶ:()=>Yi,ﺷ:()=>qi,ﺸ:()=>Ji,ﺹ:()=>`ص`,ﺺ:()=>`ص`,ﺻ:()=>`ص`,ﺼ:()=>`ص`,ﺽ:()=>`ض`,ﺾ:()=>`ض`,ﺿ:()=>`ض`,ﻀ:()=>`ض`,ﻁ:()=>`ط`,ﻂ:()=>`ط`,ﻃ:()=>`ط`,ﻄ:()=>`ط`,ﻅ:()=>`ظ`,ﻆ:()=>`ظ`,ﻇ:()=>`ظ`,ﻈ:()=>`ظ`,ﻉ:()=>`ع`,ﻊ:()=>`ع`,ﻋ:()=>`ع`,ﻌ:()=>`ع`,ﻍ:()=>`غ`,ﻎ:()=>`غ`,ﻏ:()=>`غ`,ﻐ:()=>`غ`,ﻑ:()=>`ف`,ﻒ:()=>`ف`,ﻓ:()=>`ف`,ﻔ:()=>`ف`,ﻕ:()=>`ق`,ﻖ:()=>`ق`,ﻗ:()=>`ق`,ﻘ:()=>`ق`,ﻙ:()=>`ك`,ﻚ:()=>`ك`,ﻛ:()=>`ك`,ﻜ:()=>`ك`,ﻝ:()=>`ل`,ﻞ:()=>`ل`,ﻟ:()=>`ل`,ﻠ:()=>`ل`,ﻡ:()=>`م`,ﻢ:()=>`م`,ﻣ:()=>`م`,ﻤ:()=>`م`,ﻥ:()=>`ن`,ﻦ:()=>`ن`,ﻧ:()=>`ن`,ﻨ:()=>`ن`,ﻩ:()=>`o`,ﻪ:()=>`o`,ﻫ:()=>`o`,ﻬ:()=>`o`,ﻭ:()=>`و`,ﻮ:()=>`و`,ﻯ:()=>`ى`,ﻰ:()=>`ى`,ﻱ:()=>`ى`,ﻲ:()=>`ى`,ﻳ:()=>`ى`,ﻴ:()=>`ى`,ﻵ:()=>Xc,ﻶ:()=>Yc,ﻷ:()=>Jc,ﻸ:()=>qc,ﻹ:()=>Kc,ﻺ:()=>Gc,ﻻ:()=>`لl`,ﻼ:()=>`لl`,A:()=>`A`,B:()=>`B`,C:()=>`C`,E:()=>`E`,H:()=>`H`,I:()=>`l`,J:()=>`J`,K:()=>`K`,M:()=>`M`,N:()=>`N`,O:()=>`O`,P:()=>`P`,S:()=>`S`,T:()=>`T`,X:()=>`X`,Y:()=>`Y`,Z:()=>`Z`,a:()=>`a`,c:()=>`c`,e:()=>`e`,g:()=>`g`,h:()=>`h`,i:()=>`i`,j:()=>`j`,l:()=>`l`,o:()=>`o`,p:()=>`p`,s:()=>`s`,v:()=>`v`,x:()=>`x`,y:()=>`y`,𐊂:()=>`B`,𐊅:()=>`Δ`,𐊆:()=>`E`,𐊇:()=>`F`,𐊊:()=>`l`,𐊍:()=>`Ʌ`,𐊐:()=>`X`,𐊒:()=>`O`,𐊔:()=>`ᛜ`,𐊕:()=>`P`,𐊖:()=>`S`,𐊗:()=>`T`,𐊛:()=>`+`,𐊠:()=>`A`,𐊡:()=>`B`,𐊢:()=>`C`,𐊣:()=>`Δ`,𐊥:()=>`F`,𐊫:()=>`O`,𐊭:()=>`Ϙ`,𐊰:()=>`M`,𐊱:()=>`T`,𐊲:()=>`Y`,𐊳:()=>`Φ`,𐊴:()=>`X`,𐊵:()=>`Ψ`,𐊶:()=>`Ω`,𐊸:()=>`ⵀ`,𐋏:()=>`H`,𐌁:()=>`B`,𐌂:()=>`C`,𐌉:()=>`l`,𐌑:()=>`M`,𐌒:()=>`Ϙ`,𐌕:()=>`T`,𐌗:()=>`X`,𐌚:()=>`8`,𐌟:()=>`*`,𐏑:()=>pC,𐏓:()=>mC,𐐁:()=>`Ɛ`,𐐄:()=>`O`,𐐑:()=>`ꓶ`,𐐕:()=>`C`,𐐛:()=>`L`,𐐟:()=>`Ɒ`,𐐠:()=>`S`,𐐣:()=>`Ɔ`,𐐥:()=>`И`,𐐩:()=>`ꞓ`,𐐪:()=>`ʚ`,𐐬:()=>`o`,𐐽:()=>`c`,𐐿:()=>`ɷ`,𐑂:()=>`ɞ`,𐑃:()=>`ʟ`,𐑈:()=>`s`,𐑋:()=>`ɔ`,𐑍:()=>`ᴎ`,𐒰:()=>`Ʌ`,𐒴:()=>`R`,𐒼:()=>`Ӄ`,𐓂:()=>`O`,𐓃:()=>`ʘ`,𐓄:()=>`Þ`,𐓍:()=>`Ћ`,𐓎:()=>`U`,𐓐:()=>`ᛦ`,𐓑:()=>`Ψ`,𐓒:()=>`7`,𐓘:()=>`ʌ`,𐓛:()=>`λ`,𐓪:()=>`o`,𐓫:()=>`ꙩ`,𐓶:()=>`u`,𐓹:()=>`ψ`,𐔓:()=>`N`,𐔖:()=>`O`,𐔘:()=>`K`,𐔜:()=>`C`,𐔝:()=>`V`,𐔥:()=>`F`,𐔦:()=>`L`,𐔧:()=>`X`,𑇜:()=>`ꣻ`,𑐓:()=>Zp,𑐙:()=>Qp,𑐤:()=>$p,𑐪:()=>em,𑐭:()=>tm,𑐯:()=>nm,𑒒:()=>`ঘ`,𑒔:()=>`চ`,𑒖:()=>`জ`,𑒘:()=>`ঞ`,𑒙:()=>`ট`,𑒛:()=>`ড`,𑒝:()=>`ল`,𑒞:()=>`ত`,𑒟:()=>`থ`,𑒠:()=>`দ`,𑒡:()=>`ধ`,𑒢:()=>`ন`,𑒣:()=>`প`,𑒧:()=>`ম`,𑒨:()=>`য`,𑒩:()=>`ব`,𑒪:()=>`ণ`,𑒫:()=>`র`,𑒭:()=>`ষ`,𑒮:()=>`স`,𑓄:()=>`ঽ`,𑓅:()=>`ẇ`,𑗘:()=>rm,𑗙:()=>im,𑗚:()=>am,𑗛:()=>om,𑜀:()=>`rn`,𑜆:()=>`v`,𑜊:()=>`w`,𑜎:()=>`w`,𑜏:()=>`w`,𑢠:()=>`V`,𑢢:()=>`F`,𑢣:()=>`L`,𑢤:()=>`Y`,𑢦:()=>`E`,𑢨:()=>`∇`,𑢩:()=>`Z`,𑢬:()=>`9`,𑢮:()=>`E`,𑢯:()=>`4`,𑢲:()=>`L`,𑢵:()=>`O`,𑢷:()=>`ᛜ`,𑢸:()=>`U`,𑢻:()=>`5`,𑢼:()=>`T`,𑣀:()=>`v`,𑣁:()=>`s`,𑣂:()=>`F`,𑣃:()=>`i`,𑣄:()=>`z`,𑣆:()=>`7`,𑣈:()=>`o`,𑣊:()=>`3`,𑣌:()=>`9`,𑣎:()=>`ꞓ`,𑣕:()=>`6`,𑣖:()=>`9`,𑣗:()=>`o`,𑣘:()=>`u`,𑣜:()=>`y`,𑫦:()=>ZS,𑫧:()=>tC,𑫨:()=>QS,𑫩:()=>$S,𑫪:()=>eC,𑫬:()=>sC,𑫭:()=>cC,𑫮:()=>lC,𑫴:()=>nC,𑫵:()=>oC,𑫶:()=>rC,𑫷:()=>iC,𑫸:()=>aC,𒀸:()=>hC,𓋹:()=>gC,𖼇:()=>`Γ`,𖼈:()=>`V`,𖼊:()=>`T`,𖼖:()=>`L`,𖼚:()=>`Δ`,𖼜:()=>`Ꙙ`,𖼦:()=>`ꓶ`,𖼨:()=>`l`,𖼭:()=>`Ɛ`,𖼵:()=>`R`,𖼺:()=>`S`,𖼻:()=>`3`,𖼽:()=>`Ʌ`,𖼿:()=>`>`,𖽀:()=>`A`,𖽂:()=>`U`,𖽃:()=>`Y`,𝐀:()=>`A`,𝐁:()=>`B`,𝐂:()=>`C`,𝐃:()=>`D`,𝐄:()=>`E`,𝐅:()=>`F`,𝐆:()=>`G`,𝐇:()=>`H`,𝐈:()=>`l`,𝐉:()=>`J`,𝐊:()=>`K`,𝐋:()=>`L`,𝐌:()=>`M`,𝐍:()=>`N`,𝐎:()=>`O`,𝐏:()=>`P`,𝐐:()=>`Q`,𝐑:()=>`R`,𝐒:()=>`S`,𝐓:()=>`T`,𝐔:()=>`U`,𝐕:()=>`V`,𝐖:()=>`W`,𝐗:()=>`X`,𝐘:()=>`Y`,𝐙:()=>`Z`,𝐚:()=>`a`,𝐛:()=>`b`,𝐜:()=>`c`,𝐝:()=>`d`,𝐞:()=>`e`,𝐟:()=>`f`,𝐠:()=>`g`,𝐡:()=>`h`,𝐢:()=>`i`,𝐣:()=>`j`,𝐤:()=>`k`,𝐥:()=>`l`,𝐦:()=>`rn`,𝐧:()=>`n`,𝐨:()=>`o`,𝐩:()=>`p`,𝐪:()=>`q`,𝐫:()=>`r`,𝐬:()=>`s`,𝐭:()=>`t`,𝐮:()=>`u`,𝐯:()=>`v`,𝐰:()=>`w`,𝐱:()=>`x`,𝐲:()=>`y`,𝐳:()=>`z`,𝐴:()=>`A`,𝐵:()=>`B`,𝐶:()=>`C`,𝐷:()=>`D`,𝐸:()=>`E`,𝐹:()=>`F`,𝐺:()=>`G`,𝐻:()=>`H`,𝐼:()=>`l`,𝐽:()=>`J`,𝐾:()=>`K`,𝐿:()=>`L`,𝑀:()=>`M`,𝑁:()=>`N`,𝑂:()=>`O`,𝑃:()=>`P`,𝑄:()=>`Q`,𝑅:()=>`R`,𝑆:()=>`S`,𝑇:()=>`T`,𝑈:()=>`U`,𝑉:()=>`V`,𝑊:()=>`W`,𝑋:()=>`X`,𝑌:()=>`Y`,𝑍:()=>`Z`,𝑎:()=>`a`,𝑏:()=>`b`,𝑐:()=>`c`,𝑑:()=>`d`,𝑒:()=>`e`,𝑓:()=>`f`,𝑔:()=>`g`,𝑖:()=>`i`,𝑗:()=>`j`,𝑘:()=>`k`,𝑙:()=>`l`,𝑚:()=>`rn`,𝑛:()=>`n`,𝑜:()=>`o`,𝑝:()=>`p`,𝑞:()=>`q`,𝑟:()=>`r`,𝑠:()=>`s`,𝑡:()=>`t`,𝑢:()=>`u`,𝑣:()=>`v`,𝑤:()=>`w`,𝑥:()=>`x`,𝑦:()=>`y`,𝑧:()=>`z`,𝑨:()=>`A`,𝑩:()=>`B`,𝑪:()=>`C`,𝑫:()=>`D`,𝑬:()=>`E`,𝑭:()=>`F`,𝑮:()=>`G`,𝑯:()=>`H`,𝑰:()=>`l`,𝑱:()=>`J`,𝑲:()=>`K`,𝑳:()=>`L`,𝑴:()=>`M`,𝑵:()=>`N`,𝑶:()=>`O`,𝑷:()=>`P`,𝑸:()=>`Q`,𝑹:()=>`R`,𝑺:()=>`S`,𝑻:()=>`T`,𝑼:()=>`U`,𝑽:()=>`V`,𝑾:()=>`W`,𝑿:()=>`X`,𝒀:()=>`Y`,𝒁:()=>`Z`,𝒂:()=>`a`,𝒃:()=>`b`,𝒄:()=>`c`,𝒅:()=>`d`,𝒆:()=>`e`,𝒇:()=>`f`,𝒈:()=>`g`,𝒉:()=>`h`,𝒊:()=>`i`,𝒋:()=>`j`,𝒌:()=>`k`,𝒍:()=>`l`,𝒎:()=>`rn`,𝒏:()=>`n`,𝒐:()=>`o`,𝒑:()=>`p`,𝒒:()=>`q`,𝒓:()=>`r`,𝒔:()=>`s`,𝒕:()=>`t`,𝒖:()=>`u`,𝒗:()=>`v`,𝒘:()=>`w`,𝒙:()=>`x`,𝒚:()=>`y`,𝒛:()=>`z`,𝒜:()=>`A`,𝒞:()=>`C`,𝒟:()=>`D`,𝒢:()=>`G`,𝒥:()=>`J`,𝒦:()=>`K`,𝒩:()=>`N`,𝒪:()=>`O`,𝒫:()=>`P`,𝒬:()=>`Q`,𝒮:()=>`S`,𝒯:()=>`T`,𝒰:()=>`U`,𝒱:()=>`V`,𝒲:()=>`W`,𝒳:()=>`X`,𝒴:()=>`Y`,𝒵:()=>`Z`,𝒶:()=>`a`,𝒷:()=>`b`,𝒸:()=>`c`,𝒹:()=>`d`,𝒻:()=>`f`,𝒽:()=>`h`,𝒾:()=>`i`,𝒿:()=>`j`,𝓀:()=>`k`,𝓁:()=>`l`,𝓂:()=>`rn`,𝓃:()=>`n`,𝓅:()=>`p`,𝓆:()=>`q`,𝓇:()=>`r`,𝓈:()=>`s`,𝓉:()=>`t`,𝓊:()=>`u`,𝓋:()=>`v`,𝓌:()=>`w`,𝓍:()=>`x`,𝓎:()=>`y`,𝓏:()=>`z`,𝓐:()=>`A`,𝓑:()=>`B`,𝓒:()=>`C`,𝓓:()=>`D`,𝓔:()=>`E`,𝓕:()=>`F`,𝓖:()=>`G`,𝓗:()=>`H`,𝓘:()=>`l`,𝓙:()=>`J`,𝓚:()=>`K`,𝓛:()=>`L`,𝓜:()=>`M`,𝓝:()=>`N`,𝓞:()=>`O`,𝓟:()=>`P`,𝓠:()=>`Q`,𝓡:()=>`R`,𝓢:()=>`S`,𝓣:()=>`T`,𝓤:()=>`U`,𝓥:()=>`V`,𝓦:()=>`W`,𝓧:()=>`X`,𝓨:()=>`Y`,𝓩:()=>`Z`,𝓪:()=>`a`,𝓫:()=>`b`,𝓬:()=>`c`,𝓭:()=>`d`,𝓮:()=>`e`,𝓯:()=>`f`,𝓰:()=>`g`,𝓱:()=>`h`,𝓲:()=>`i`,𝓳:()=>`j`,𝓴:()=>`k`,𝓵:()=>`l`,𝓶:()=>`rn`,𝓷:()=>`n`,𝓸:()=>`o`,𝓹:()=>`p`,𝓺:()=>`q`,𝓻:()=>`r`,𝓼:()=>`s`,𝓽:()=>`t`,𝓾:()=>`u`,𝓿:()=>`v`,𝔀:()=>`w`,𝔁:()=>`x`,𝔂:()=>`y`,𝔃:()=>`z`,𝔄:()=>`A`,𝔅:()=>`B`,𝔇:()=>`D`,𝔈:()=>`E`,𝔉:()=>`F`,𝔊:()=>`G`,𝔍:()=>`J`,𝔎:()=>`K`,𝔏:()=>`L`,𝔐:()=>`M`,𝔑:()=>`N`,𝔒:()=>`O`,𝔓:()=>`P`,𝔔:()=>`Q`,𝔖:()=>`S`,𝔗:()=>`T`,𝔘:()=>`U`,𝔙:()=>`V`,𝔚:()=>`W`,𝔛:()=>`X`,𝔜:()=>`Y`,𝔞:()=>`a`,𝔟:()=>`b`,𝔠:()=>`c`,𝔡:()=>`d`,𝔢:()=>`e`,𝔣:()=>`f`,𝔤:()=>`g`,𝔥:()=>`h`,𝔦:()=>`i`,𝔧:()=>`j`,𝔨:()=>`k`,𝔩:()=>`l`,𝔪:()=>`rn`,𝔫:()=>`n`,𝔬:()=>`o`,𝔭:()=>`p`,𝔮:()=>`q`,𝔯:()=>`r`,𝔰:()=>`s`,𝔱:()=>`t`,𝔲:()=>`u`,𝔳:()=>`v`,𝔴:()=>`w`,𝔵:()=>`x`,𝔶:()=>`y`,𝔷:()=>`z`,𝔸:()=>`A`,𝔹:()=>`B`,𝔻:()=>`D`,𝔼:()=>`E`,𝔽:()=>`F`,𝔾:()=>`G`,𝕀:()=>`l`,𝕁:()=>`J`,𝕂:()=>`K`,𝕃:()=>`L`,𝕄:()=>`M`,𝕆:()=>`O`,𝕊:()=>`S`,𝕋:()=>`T`,𝕌:()=>`U`,𝕍:()=>`V`,𝕎:()=>`W`,𝕏:()=>`X`,𝕐:()=>`Y`,𝕒:()=>`a`,𝕓:()=>`b`,𝕔:()=>`c`,𝕕:()=>`d`,𝕖:()=>`e`,𝕗:()=>`f`,𝕘:()=>`g`,𝕙:()=>`h`,𝕚:()=>`i`,𝕛:()=>`j`,𝕜:()=>`k`,𝕝:()=>`l`,𝕞:()=>`rn`,𝕟:()=>`n`,𝕠:()=>`o`,𝕡:()=>`p`,𝕢:()=>`q`,𝕣:()=>`r`,𝕤:()=>`s`,𝕥:()=>`t`,𝕦:()=>`u`,𝕧:()=>`v`,𝕨:()=>`w`,𝕩:()=>`x`,𝕪:()=>`y`,𝕫:()=>`z`,𝕬:()=>`A`,𝕭:()=>`B`,𝕮:()=>`C`,𝕯:()=>`D`,𝕰:()=>`E`,𝕱:()=>`F`,𝕲:()=>`G`,𝕳:()=>`H`,𝕴:()=>`l`,𝕵:()=>`J`,𝕶:()=>`K`,𝕷:()=>`L`,𝕸:()=>`M`,𝕹:()=>`N`,𝕺:()=>`O`,𝕻:()=>`P`,𝕼:()=>`Q`,𝕽:()=>`R`,𝕾:()=>`S`,𝕿:()=>`T`,𝖀:()=>`U`,𝖁:()=>`V`,𝖂:()=>`W`,𝖃:()=>`X`,𝖄:()=>`Y`,𝖅:()=>`Z`,𝖆:()=>`a`,𝖇:()=>`b`,𝖈:()=>`c`,𝖉:()=>`d`,𝖊:()=>`e`,𝖋:()=>`f`,𝖌:()=>`g`,𝖍:()=>`h`,𝖎:()=>`i`,𝖏:()=>`j`,𝖐:()=>`k`,𝖑:()=>`l`,𝖒:()=>`rn`,𝖓:()=>`n`,𝖔:()=>`o`,𝖕:()=>`p`,𝖖:()=>`q`,𝖗:()=>`r`,𝖘:()=>`s`,𝖙:()=>`t`,𝖚:()=>`u`,𝖛:()=>`v`,𝖜:()=>`w`,𝖝:()=>`x`,𝖞:()=>`y`,𝖟:()=>`z`,𝖠:()=>`A`,𝖡:()=>`B`,𝖢:()=>`C`,𝖣:()=>`D`,𝖤:()=>`E`,𝖥:()=>`F`,𝖦:()=>`G`,𝖧:()=>`H`,𝖨:()=>`l`,𝖩:()=>`J`,𝖪:()=>`K`,𝖫:()=>`L`,𝖬:()=>`M`,𝖭:()=>`N`,𝖮:()=>`O`,𝖯:()=>`P`,𝖰:()=>`Q`,𝖱:()=>`R`,𝖲:()=>`S`,𝖳:()=>`T`,𝖴:()=>`U`,𝖵:()=>`V`,𝖶:()=>`W`,𝖷:()=>`X`,𝖸:()=>`Y`,𝖹:()=>`Z`,𝖺:()=>`a`,𝖻:()=>`b`,𝖼:()=>`c`,𝖽:()=>`d`,𝖾:()=>`e`,𝖿:()=>`f`,𝗀:()=>`g`,𝗁:()=>`h`,𝗂:()=>`i`,𝗃:()=>`j`,𝗄:()=>`k`,𝗅:()=>`l`,𝗆:()=>`rn`,𝗇:()=>`n`,𝗈:()=>`o`,𝗉:()=>`p`,𝗊:()=>`q`,𝗋:()=>`r`,𝗌:()=>`s`,𝗍:()=>`t`,𝗎:()=>`u`,𝗏:()=>`v`,𝗐:()=>`w`,𝗑:()=>`x`,𝗒:()=>`y`,𝗓:()=>`z`,𝗔:()=>`A`,𝗕:()=>`B`,𝗖:()=>`C`,𝗗:()=>`D`,𝗘:()=>`E`,𝗙:()=>`F`,𝗚:()=>`G`,𝗛:()=>`H`,𝗜:()=>`l`,𝗝:()=>`J`,𝗞:()=>`K`,𝗟:()=>`L`,𝗠:()=>`M`,𝗡:()=>`N`,𝗢:()=>`O`,𝗣:()=>`P`,𝗤:()=>`Q`,𝗥:()=>`R`,𝗦:()=>`S`,𝗧:()=>`T`,𝗨:()=>`U`,𝗩:()=>`V`,𝗪:()=>`W`,𝗫:()=>`X`,𝗬:()=>`Y`,𝗭:()=>`Z`,𝗮:()=>`a`,𝗯:()=>`b`,𝗰:()=>`c`,𝗱:()=>`d`,𝗲:()=>`e`,𝗳:()=>`f`,𝗴:()=>`g`,𝗵:()=>`h`,𝗶:()=>`i`,𝗷:()=>`j`,𝗸:()=>`k`,𝗹:()=>`l`,𝗺:()=>`rn`,𝗻:()=>`n`,𝗼:()=>`o`,𝗽:()=>`p`,𝗾:()=>`q`,𝗿:()=>`r`,𝘀:()=>`s`,𝘁:()=>`t`,𝘂:()=>`u`,𝘃:()=>`v`,𝘄:()=>`w`,𝘅:()=>`x`,𝘆:()=>`y`,𝘇:()=>`z`,𝘈:()=>`A`,𝘉:()=>`B`,𝘊:()=>`C`,𝘋:()=>`D`,𝘌:()=>`E`,𝘍:()=>`F`,𝘎:()=>`G`,𝘏:()=>`H`,𝘐:()=>`l`,𝘑:()=>`J`,𝘒:()=>`K`,𝘓:()=>`L`,𝘔:()=>`M`,𝘕:()=>`N`,𝘖:()=>`O`,𝘗:()=>`P`,𝘘:()=>`Q`,𝘙:()=>`R`,𝘚:()=>`S`,𝘛:()=>`T`,𝘜:()=>`U`,𝘝:()=>`V`,𝘞:()=>`W`,𝘟:()=>`X`,𝘠:()=>`Y`,𝘡:()=>`Z`,𝘢:()=>`a`,𝘣:()=>`b`,𝘤:()=>`c`,𝘥:()=>`d`,𝘦:()=>`e`,𝘧:()=>`f`,𝘨:()=>`g`,𝘩:()=>`h`,𝘪:()=>`i`,𝘫:()=>`j`,𝘬:()=>`k`,𝘭:()=>`l`,𝘮:()=>`rn`,𝘯:()=>`n`,𝘰:()=>`o`,𝘱:()=>`p`,𝘲:()=>`q`,𝘳:()=>`r`,𝘴:()=>`s`,𝘵:()=>`t`,𝘶:()=>`u`,𝘷:()=>`v`,𝘸:()=>`w`,𝘹:()=>`x`,𝘺:()=>`y`,𝘻:()=>`z`,𝘼:()=>`A`,𝘽:()=>`B`,𝘾:()=>`C`,𝘿:()=>`D`,𝙀:()=>`E`,𝙁:()=>`F`,𝙂:()=>`G`,𝙃:()=>`H`,𝙄:()=>`l`,𝙅:()=>`J`,𝙆:()=>`K`,𝙇:()=>`L`,𝙈:()=>`M`,𝙉:()=>`N`,𝙊:()=>`O`,𝙋:()=>`P`,𝙌:()=>`Q`,𝙍:()=>`R`,𝙎:()=>`S`,𝙏:()=>`T`,𝙐:()=>`U`,𝙑:()=>`V`,𝙒:()=>`W`,𝙓:()=>`X`,𝙔:()=>`Y`,𝙕:()=>`Z`,𝙖:()=>`a`,𝙗:()=>`b`,𝙘:()=>`c`,𝙙:()=>`d`,𝙚:()=>`e`,𝙛:()=>`f`,𝙜:()=>`g`,𝙝:()=>`h`,𝙞:()=>`i`,𝙟:()=>`j`,𝙠:()=>`k`,𝙡:()=>`l`,𝙢:()=>`rn`,𝙣:()=>`n`,𝙤:()=>`o`,𝙥:()=>`p`,𝙦:()=>`q`,𝙧:()=>`r`,𝙨:()=>`s`,𝙩:()=>`t`,𝙪:()=>`u`,𝙫:()=>`v`,𝙬:()=>`w`,𝙭:()=>`x`,𝙮:()=>`y`,𝙯:()=>`z`,𝙰:()=>`A`,𝙱:()=>`B`,𝙲:()=>`C`,𝙳:()=>`D`,𝙴:()=>`E`,𝙵:()=>`F`,𝙶:()=>`G`,𝙷:()=>`H`,𝙸:()=>`l`,𝙹:()=>`J`,𝙺:()=>`K`,𝙻:()=>`L`,𝙼:()=>`M`,𝙽:()=>`N`,𝙾:()=>`O`,𝙿:()=>`P`,𝚀:()=>`Q`,𝚁:()=>`R`,𝚂:()=>`S`,𝚃:()=>`T`,𝚄:()=>`U`,𝚅:()=>`V`,𝚆:()=>`W`,𝚇:()=>`X`,𝚈:()=>`Y`,𝚉:()=>`Z`,𝚊:()=>`a`,𝚋:()=>`b`,𝚌:()=>`c`,𝚍:()=>`d`,𝚎:()=>`e`,𝚏:()=>`f`,𝚐:()=>`g`,𝚑:()=>`h`,𝚒:()=>`i`,𝚓:()=>`j`,𝚔:()=>`k`,𝚕:()=>`l`,𝚖:()=>`rn`,𝚗:()=>`n`,𝚘:()=>`o`,𝚙:()=>`p`,𝚚:()=>`q`,𝚛:()=>`r`,𝚜:()=>`s`,𝚝:()=>`t`,𝚞:()=>`u`,𝚟:()=>`v`,𝚠:()=>`w`,𝚡:()=>`x`,𝚢:()=>`y`,𝚣:()=>`z`,𝚤:()=>`i`,𝚥:()=>`ȷ`,𝚨:()=>`A`,𝚩:()=>`B`,𝚪:()=>`Γ`,𝚫:()=>`Δ`,𝚬:()=>`E`,𝚭:()=>`Z`,𝚮:()=>`H`,𝚯:()=>`O̵`,𝚰:()=>`l`,𝚱:()=>`K`,𝚲:()=>`Ʌ`,𝚳:()=>`M`,𝚴:()=>`N`,𝚵:()=>`Ξ`,𝚶:()=>`O`,𝚷:()=>`Π`,𝚸:()=>`P`,𝚹:()=>`O̵`,𝚺:()=>`Ʃ`,𝚻:()=>`T`,𝚼:()=>`Y`,𝚽:()=>`Φ`,𝚾:()=>`X`,𝚿:()=>`Ψ`,𝛀:()=>`Ω`,𝛂:()=>`a`,𝛃:()=>`ß`,𝛄:()=>`y`,𝛅:()=>`ẟ`,𝛆:()=>`ꞓ`,𝛇:()=>`ζ`,𝛈:()=>`n̩`,𝛉:()=>`O̵`,𝛊:()=>`i`,𝛋:()=>`ĸ`,𝛌:()=>`λ`,𝛍:()=>`μ`,𝛎:()=>`v`,𝛏:()=>`ξ`,𝛐:()=>`o`,𝛑:()=>`π`,𝛒:()=>`p`,𝛓:()=>`ς`,𝛔:()=>`o`,𝛕:()=>`ᴛ`,𝛖:()=>`u`,𝛗:()=>`ɸ`,𝛘:()=>`χ`,𝛙:()=>`ψ`,𝛚:()=>`ω`,𝛜:()=>`ꞓ`,𝛝:()=>`O̵`,𝛞:()=>`ĸ`,𝛟:()=>`ɸ`,𝛠:()=>`p`,𝛡:()=>`π`,𝛢:()=>`A`,𝛣:()=>`B`,𝛤:()=>`Γ`,𝛥:()=>`Δ`,𝛦:()=>`E`,𝛧:()=>`Z`,𝛨:()=>`H`,𝛩:()=>`O̵`,𝛪:()=>`l`,𝛫:()=>`K`,𝛬:()=>`Ʌ`,𝛭:()=>`M`,𝛮:()=>`N`,𝛯:()=>`Ξ`,𝛰:()=>`O`,𝛱:()=>`Π`,𝛲:()=>`P`,𝛳:()=>`O̵`,𝛴:()=>`Ʃ`,𝛵:()=>`T`,𝛶:()=>`Y`,𝛷:()=>`Φ`,𝛸:()=>`X`,𝛹:()=>`Ψ`,𝛺:()=>`Ω`,𝛼:()=>`a`,𝛽:()=>`ß`,𝛾:()=>`y`,𝛿:()=>`ẟ`,𝜀:()=>`ꞓ`,𝜁:()=>`ζ`,𝜂:()=>`n̩`,𝜃:()=>`O̵`,𝜄:()=>`i`,𝜅:()=>`ĸ`,𝜆:()=>`λ`,𝜇:()=>`μ`,𝜈:()=>`v`,𝜉:()=>`ξ`,𝜊:()=>`o`,𝜋:()=>`π`,𝜌:()=>`p`,𝜍:()=>`ς`,𝜎:()=>`o`,𝜏:()=>`ᴛ`,𝜐:()=>`u`,𝜑:()=>`ɸ`,𝜒:()=>`χ`,𝜓:()=>`ψ`,𝜔:()=>`ω`,𝜖:()=>`ꞓ`,𝜗:()=>`O̵`,𝜘:()=>`ĸ`,𝜙:()=>`ɸ`,𝜚:()=>`p`,𝜛:()=>`π`,𝜜:()=>`A`,𝜝:()=>`B`,𝜞:()=>`Γ`,𝜟:()=>`Δ`,𝜠:()=>`E`,𝜡:()=>`Z`,𝜢:()=>`H`,𝜣:()=>`O̵`,𝜤:()=>`l`,𝜥:()=>`K`,𝜦:()=>`Ʌ`,𝜧:()=>`M`,𝜨:()=>`N`,𝜩:()=>`Ξ`,𝜪:()=>`O`,𝜫:()=>`Π`,𝜬:()=>`P`,𝜭:()=>`O̵`,𝜮:()=>`Ʃ`,𝜯:()=>`T`,𝜰:()=>`Y`,𝜱:()=>`Φ`,𝜲:()=>`X`,𝜳:()=>`Ψ`,𝜴:()=>`Ω`,𝜶:()=>`a`,𝜷:()=>`ß`,𝜸:()=>`y`,𝜹:()=>`ẟ`,𝜺:()=>`ꞓ`,𝜻:()=>`ζ`,𝜼:()=>`n̩`,𝜽:()=>`O̵`,𝜾:()=>`i`,𝜿:()=>`ĸ`,𝝀:()=>`λ`,𝝁:()=>`μ`,𝝂:()=>`v`,𝝃:()=>`ξ`,𝝄:()=>`o`,𝝅:()=>`π`,𝝆:()=>`p`,𝝇:()=>`ς`,𝝈:()=>`o`,𝝉:()=>`ᴛ`,𝝊:()=>`u`,𝝋:()=>`ɸ`,𝝌:()=>`χ`,𝝍:()=>`ψ`,𝝎:()=>`ω`,𝝐:()=>`ꞓ`,𝝑:()=>`O̵`,𝝒:()=>`ĸ`,𝝓:()=>`ɸ`,𝝔:()=>`p`,𝝕:()=>`π`,𝝖:()=>`A`,𝝗:()=>`B`,𝝘:()=>`Γ`,𝝙:()=>`Δ`,𝝚:()=>`E`,𝝛:()=>`Z`,𝝜:()=>`H`,𝝝:()=>`O̵`,𝝞:()=>`l`,𝝟:()=>`K`,𝝠:()=>`Ʌ`,𝝡:()=>`M`,𝝢:()=>`N`,𝝣:()=>`Ξ`,𝝤:()=>`O`,𝝥:()=>`Π`,𝝦:()=>`P`,𝝧:()=>`O̵`,𝝨:()=>`Ʃ`,𝝩:()=>`T`,𝝪:()=>`Y`,𝝫:()=>`Φ`,𝝬:()=>`X`,𝝭:()=>`Ψ`,𝝮:()=>`Ω`,𝝰:()=>`a`,𝝱:()=>`ß`,𝝲:()=>`y`,𝝳:()=>`ẟ`,𝝴:()=>`ꞓ`,𝝵:()=>`ζ`,𝝶:()=>`n̩`,𝝷:()=>`O̵`,𝝸:()=>`i`,𝝹:()=>`ĸ`,𝝺:()=>`λ`,𝝻:()=>`μ`,𝝼:()=>`v`,𝝽:()=>`ξ`,𝝾:()=>`o`,𝝿:()=>`π`,𝞀:()=>`p`,𝞁:()=>`ς`,𝞂:()=>`o`,𝞃:()=>`ᴛ`,𝞄:()=>`u`,𝞅:()=>`ɸ`,𝞆:()=>`χ`,𝞇:()=>`ψ`,𝞈:()=>`ω`,𝞊:()=>`ꞓ`,𝞋:()=>`O̵`,𝞌:()=>`ĸ`,𝞍:()=>`ɸ`,𝞎:()=>`p`,𝞏:()=>`π`,𝞐:()=>`A`,𝞑:()=>`B`,𝞒:()=>`Γ`,𝞓:()=>`Δ`,𝞔:()=>`E`,𝞕:()=>`Z`,𝞖:()=>`H`,𝞗:()=>`O̵`,𝞘:()=>`l`,𝞙:()=>`K`,𝞚:()=>`Ʌ`,𝞛:()=>`M`,𝞜:()=>`N`,𝞝:()=>`Ξ`,𝞞:()=>`O`,𝞟:()=>`Π`,𝞠:()=>`P`,𝞡:()=>`O̵`,𝞢:()=>`Ʃ`,𝞣:()=>`T`,𝞤:()=>`Y`,𝞥:()=>`Φ`,𝞦:()=>`X`,𝞧:()=>`Ψ`,𝞨:()=>`Ω`,𝞪:()=>`a`,𝞫:()=>`ß`,𝞬:()=>`y`,𝞭:()=>`ẟ`,𝞮:()=>`ꞓ`,𝞯:()=>`ζ`,𝞰:()=>`n̩`,𝞱:()=>`O̵`,𝞲:()=>`i`,𝞳:()=>`ĸ`,𝞴:()=>`λ`,𝞵:()=>`μ`,𝞶:()=>`v`,𝞷:()=>`ξ`,𝞸:()=>`o`,𝞹:()=>`π`,𝞺:()=>`p`,𝞻:()=>`ς`,𝞼:()=>`o`,𝞽:()=>`ᴛ`,𝞾:()=>`u`,𝞿:()=>`ɸ`,𝟀:()=>`χ`,𝟁:()=>`ψ`,𝟂:()=>`ω`,𝟄:()=>`ꞓ`,𝟅:()=>`O̵`,𝟆:()=>`ĸ`,𝟇:()=>`ɸ`,𝟈:()=>`p`,𝟉:()=>`π`,𝟊:()=>`F`,𝟋:()=>`ϝ`,𞸀:()=>`l`,𞸁:()=>`ب`,𞸂:()=>`ج`,𞸃:()=>`د`,𞸅:()=>`و`,𞸆:()=>`ز`,𞸇:()=>`ح`,𞸈:()=>`ط`,𞸉:()=>`ى`,𞸊:()=>`ك`,𞸋:()=>`ل`,𞸌:()=>`م`,𞸍:()=>`ن`,𞸎:()=>`س`,𞸏:()=>`ع`,𞸐:()=>`ف`,𞸑:()=>`ص`,𞸒:()=>`ق`,𞸓:()=>`ر`,𞸔:()=>Vi,𞸕:()=>`ت`,𞸖:()=>sd,𞸗:()=>`خ`,𞸘:()=>`ذ`,𞸙:()=>`ض`,𞸚:()=>`ظ`,𞸛:()=>`غ`,𞸜:()=>`ى`,𞸝:()=>`ى`,𞸞:()=>`ڡ`,𞸟:()=>`ڡ`,𞸡:()=>`ب`,𞸢:()=>`ج`,𞸤:()=>`o`,𞸧:()=>`ح`,𞸩:()=>`ى`,𞸪:()=>`ك`,𞸫:()=>`ل`,𞸬:()=>`م`,𞸭:()=>`ن`,𞸮:()=>`س`,𞸯:()=>`ع`,𞸰:()=>`ف`,𞸱:()=>`ص`,𞸲:()=>`ق`,𞸴:()=>Hi,𞸵:()=>`ت`,𞸶:()=>cd,𞸷:()=>`خ`,𞸹:()=>`ض`,𞸻:()=>`غ`,𞹂:()=>`ج`,𞹇:()=>`ح`,𞹉:()=>`ى`,𞹋:()=>`ل`,𞹍:()=>`ن`,𞹎:()=>`س`,𞹏:()=>`ع`,𞹑:()=>`ص`,𞹒:()=>`ق`,𞹔:()=>Ui,𞹗:()=>`خ`,𞹙:()=>`ض`,𞹛:()=>`غ`,𞹝:()=>`ى`,𞹟:()=>`ڡ`,𞹡:()=>`ب`,𞹢:()=>`ج`,𞹤:()=>`o`,𞹧:()=>`ح`,𞹨:()=>`ط`,𞹩:()=>`ى`,𞹪:()=>`ك`,𞹬:()=>`م`,𞹭:()=>`ن`,𞹮:()=>`س`,𞹯:()=>`ع`,𞹰:()=>`ف`,𞹱:()=>`ص`,𞹲:()=>`ق`,𞹴:()=>Wi,𞹵:()=>`ت`,𞹶:()=>ld,𞹷:()=>`خ`,𞹹:()=>`ض`,𞹺:()=>`ظ`,𞹻:()=>`غ`,𞹼:()=>`ى`,𞹾:()=>`ڡ`,𞺀:()=>`l`,𞺁:()=>`ب`,𞺂:()=>`ج`,𞺃:()=>`د`,𞺄:()=>`o`,𞺅:()=>`و`,𞺆:()=>`ز`,𞺇:()=>`ح`,𞺈:()=>`ط`,𞺉:()=>`ى`,𞺋:()=>`ل`,𞺌:()=>`م`,𞺍:()=>`ن`,𞺎:()=>`س`,𞺏:()=>`ع`,𞺐:()=>`ف`,𞺑:()=>`ص`,𞺒:()=>`ق`,𞺓:()=>`ر`,𞺔:()=>Gi,𞺕:()=>`ت`,𞺖:()=>ud,𞺗:()=>`خ`,𞺘:()=>`ذ`,𞺙:()=>`ض`,𞺚:()=>`ظ`,𞺛:()=>`غ`,𞺡:()=>`ب`,𞺢:()=>`ج`,𞺣:()=>`د`,𞺥:()=>`و`,𞺦:()=>`ز`,𞺧:()=>`ح`,𞺨:()=>`ط`,𞺩:()=>`ى`,𞺫:()=>`ل`,𞺬:()=>`م`,𞺭:()=>`ن`,𞺮:()=>`س`,𞺯:()=>`ع`,𞺰:()=>`ف`,𞺱:()=>`ص`,𞺲:()=>`ق`,𞺳:()=>`ر`,𞺴:()=>Ki,𞺵:()=>`ت`,𞺶:()=>dd,𞺷:()=>`خ`,𞺸:()=>`ذ`,𞺹:()=>`ض`,𞺺:()=>`ظ`,𞺻:()=>`غ`,𡿨:()=>`❬`,丽:()=>`丽`,丸:()=>`丸`,乁:()=>`乁`,𠄢:()=>jC,你:()=>`你`,侮:()=>`侮`,侻:()=>`侻`,倂:()=>`併`,偺:()=>`偺`,備:()=>`備`,僧:()=>`僧`,像:()=>`像`,㒞:()=>`㒞`,𠘺:()=>FC,免:()=>`免`,兔:()=>`兔`,兤:()=>`兤`,具:()=>`具`,𠔜:()=>MC,㒹:()=>`㒹`,內:()=>`內`,再:()=>`再`,𠕋:()=>PC,冗:()=>`冗`,冤:()=>`冤`,仌:()=>`仌`,冬:()=>`冬`,况:()=>`况`,𩇟:()=>CT,凵:()=>`凵`,刃:()=>`刃`,㓟:()=>`㓟`,刻:()=>`刻`,剆:()=>`剆`,割:()=>`割`,剷:()=>`剷`,㔕:()=>`㔕`,勇:()=>`勇`,勉:()=>`勉`,勤:()=>`勤`,勺:()=>`勺`,包:()=>`包`,匆:()=>`匆`,北:()=>`北`,卉:()=>`卉`,卑:()=>`卑`,博:()=>`博`,即:()=>`即`,卽:()=>`卽`,卿:()=>`卿`,卿:()=>`卿`,卿:()=>`卿`,𠨬:()=>RC,灰:()=>`灰`,及:()=>`及`,叟:()=>`叟`,𠭣:()=>zC,叫:()=>`叫`,叱:()=>`叱`,吆:()=>`吆`,咞:()=>`咞`,吸:()=>`吸`,呈:()=>`呈`,周:()=>`周`,咢:()=>`咢`,哶:()=>`哶`,唐:()=>`唐`,啓:()=>`啓`,啣:()=>`啣`,善:()=>`善`,善:()=>`善`,喙:()=>`喙`,喫:()=>`喫`,喳:()=>`喳`,嗂:()=>`嗂`,圖:()=>`圖`,嘆:()=>`嘆`,圗:()=>`圗`,噑:()=>`噑`,噴:()=>`噴`,切:()=>`切`,壮:()=>`壮`,城:()=>`城`,埴:()=>`埴`,堍:()=>`堍`,型:()=>`型`,堲:()=>`堲`,報:()=>`報`,墬:()=>`墬`,𡓤:()=>BC,売:()=>`売`,壷:()=>`壷`,夆:()=>`夆`,多:()=>`多`,夢:()=>`夢`,奢:()=>`奢`,𡚨:()=>VC,𡛪:()=>HC,姬:()=>`姬`,娛:()=>`娛`,娧:()=>`娧`,姘:()=>`姘`,婦:()=>`婦`,㛮:()=>`㛮`,㛼:()=>`㛼`,嬈:()=>`嬈`,嬾:()=>`嬾`,嬾:()=>`嬾`,𡧈:()=>UC,寃:()=>`寃`,寘:()=>`寘`,寧:()=>`寧`,寳:()=>`寳`,𡬘:()=>WC,寿:()=>`寿`,将:()=>`将`,当:()=>`当`,尢:()=>`尢`,㞁:()=>`㞁`,屠:()=>`屠`,屮:()=>`屮`,峀:()=>`峀`,岍:()=>`岍`,𡷤:()=>KC,嵃:()=>`嵃`,𡷦:()=>qC,嵮:()=>`嵮`,嵫:()=>`嵫`,嵼:()=>`嵼`,巡:()=>`巡`,巢:()=>`巢`,㠯:()=>`㠯`,巽:()=>`巽`,帨:()=>`帨`,帽:()=>`帽`,幩:()=>`幩`,㡢:()=>`㡢`,𢆃:()=>JC,㡼:()=>`㡼`,庰:()=>`庰`,庳:()=>`庳`,庶:()=>`庶`,廊:()=>`廊`,𪎒:()=>NT,廾:()=>`廾`,𢌱:()=>XC,𢌱:()=>ZC,舁:()=>`舁`,弢:()=>`弢`,弢:()=>`弢`,㣇:()=>`㣇`,𣊸:()=>iw,𦇚:()=>qw,形:()=>`形`,彫:()=>`彫`,㣣:()=>`㣣`,徚:()=>`徚`,忍:()=>`忍`,志:()=>`志`,忹:()=>`忹`,悁:()=>`悁`,㤺:()=>`㤺`,㤜:()=>`㤜`,悔:()=>`悔`,𢛔:()=>QC,惇:()=>`惇`,慈:()=>`慈`,慌:()=>`慌`,慎:()=>`慎`,慌:()=>`慌`,慺:()=>`慺`,憎:()=>`憎`,憲:()=>`憲`,憤:()=>`憤`,憯:()=>`憯`,懞:()=>`懞`,懲:()=>`懲`,懶:()=>`懶`,成:()=>`成`,戛:()=>`戛`,扝:()=>`扝`,抱:()=>`抱`,拔:()=>`拔`,捐:()=>`捐`,𢬌:()=>tw,挽:()=>`挽`,拼:()=>`拼`,捨:()=>`捨`,掃:()=>`掃`,揤:()=>`揤`,𢯱:()=>nw,搢:()=>`搢`,揅:()=>`揅`,掩:()=>`掩`,㨮:()=>`㨮`,摩:()=>`摩`,摾:()=>`摾`,撝:()=>`撝`,摷:()=>`摷`,㩬:()=>`㩬`,敏:()=>`敏`,敬:()=>`敬`,𣀊:()=>rw,旣:()=>`旣`,書:()=>`書`,晉:()=>`晉`,㬙:()=>`㬙`,暑:()=>`暑`,㬈:()=>`㬈`,㫤:()=>`㫤`,冒:()=>`冒`,冕:()=>`冕`,最:()=>`最`,暜:()=>`暜`,肭:()=>`肭`,䏙:()=>`䏙`,朗:()=>`朗`,望:()=>`望`,朡:()=>`朡`,杞:()=>`杞`,杓:()=>`杓`,𣏃:()=>cw,㭉:()=>`㭉`,柺:()=>`柺`,枅:()=>`枅`,桒:()=>`桒`,梅:()=>`梅`,𣑭:()=>uw,梎:()=>`梎`,栟:()=>`栟`,椔:()=>`椔`,㮝:()=>`㮝`,楂:()=>`楂`,榣:()=>`榣`,槪:()=>`槪`,檨:()=>`檨`,𣚣:()=>dw,櫛:()=>`櫛`,㰘:()=>`㰘`,次:()=>`次`,𣢧:()=>fw,歔:()=>`歔`,㱎:()=>`㱎`,歲:()=>`歲`,殟:()=>`殟`,殺:()=>`殺`,殻:()=>`殻`,𣪍:()=>pw,𡴋:()=>GC,𣫺:()=>mw,汎:()=>`汎`,𣲼:()=>hw,沿:()=>`沿`,泍:()=>`泍`,汧:()=>`汧`,洖:()=>`洖`,派:()=>`派`,海:()=>`海`,流:()=>`流`,浩:()=>`浩`,浸:()=>`浸`,涅:()=>`涅`,𣴞:()=>gw,洴:()=>`洴`,港:()=>`港`,湮:()=>`湮`,㴳:()=>`㴳`,滋:()=>`滋`,滇:()=>`滇`,𣻑:()=>_w,淹:()=>`淹`,潮:()=>`潮`,𣽞:()=>vw,𣾎:()=>yw,濆:()=>`濆`,瀹:()=>`瀹`,瀞:()=>`瀞`,瀛:()=>`瀛`,㶖:()=>`㶖`,灊:()=>`灊`,災:()=>`災`,灷:()=>`灷`,炭:()=>`炭`,𠔥:()=>NC,煅:()=>`煅`,𤉣:()=>bw,熜:()=>`熜`,𤎫:()=>Sw,爨:()=>`爨`,爵:()=>`爵`,牐:()=>`牐`,𤘈:()=>Cw,犀:()=>`犀`,犕:()=>`犕`,𤜵:()=>ww,𤠔:()=>Tw,獺:()=>`獺`,王:()=>`王`,㺬:()=>`㺬`,玥:()=>`玥`,㺸:()=>`㺸`,㺸:()=>`㺸`,瑇:()=>`瑇`,瑜:()=>`瑜`,瑱:()=>`瑱`,璅:()=>`璅`,瓊:()=>`瓊`,㼛:()=>`㼛`,甤:()=>`甤`,𤰶:()=>Ew,甾:()=>`甾`,𤲒:()=>Dw,異:()=>`異`,𢆟:()=>YC,瘐:()=>`瘐`,𤾡:()=>Ow,𤾸:()=>kw,𥁄:()=>Aw,㿼:()=>`㿼`,䀈:()=>`䀈`,直:()=>`直`,𥃳:()=>Mw,𥃲:()=>jw,𥄙:()=>Nw,𥄳:()=>Pw,眞:()=>`眞`,真:()=>`真`,真:()=>`真`,睊:()=>`睊`,䀹:()=>`䀹`,瞋:()=>`瞋`,䁆:()=>`䁆`,䂖:()=>`䂖`,𥐝:()=>Iw,硎:()=>`硎`,碌:()=>`碌`,磌:()=>`磌`,䃣:()=>`䃣`,𥘦:()=>Lw,祖:()=>`祖`,𥚚:()=>Rw,𥛅:()=>zw,福:()=>`福`,秫:()=>`秫`,䄯:()=>`䄯`,穀:()=>`穀`,穊:()=>`穊`,穏:()=>`穏`,𥥼:()=>Bw,𥪧:()=>Vw,𥪧:()=>Hw,竮:()=>`竮`,䈂:()=>`䈂`,𥮫:()=>Uw,篆:()=>`篆`,築:()=>`築`,䈧:()=>`䈧`,𥲀:()=>Ww,糒:()=>`糒`,䊠:()=>`䊠`,糨:()=>`糨`,糣:()=>`糣`,紀:()=>`紀`,𥾆:()=>Kw,絣:()=>`絣`,䌁:()=>`䌁`,緇:()=>`緇`,縂:()=>`縂`,繅:()=>`繅`,䌴:()=>`䌴`,𦈨:()=>Jw,𦉇:()=>Yw,䍙:()=>`䍙`,𦋙:()=>Xw,罺:()=>`罺`,𦌾:()=>Zw,羕:()=>`羕`,翺:()=>`翺`,者:()=>`者`,𦓚:()=>Qw,𦔣:()=>$w,聠:()=>`聠`,𦖨:()=>eT,聰:()=>`聰`,𣍟:()=>aw,䏕:()=>`䏕`,育:()=>`育`,脃:()=>`脃`,䐋:()=>`䐋`,脾:()=>`脾`,媵:()=>`媵`,𦞧:()=>tT,𦞵:()=>nT,𣎓:()=>ow,𣎜:()=>sw,舁:()=>`舁`,舄:()=>`舄`,辞:()=>`辞`,䑫:()=>`䑫`,芑:()=>`芑`,芋:()=>`芋`,芝:()=>`芝`,劳:()=>`劳`,花:()=>`花`,芳:()=>`芳`,芽:()=>`芽`,苦:()=>`苦`,𦬼:()=>rT,若:()=>`若`,茝:()=>`茝`,荣:()=>`荣`,莭:()=>`莭`,茣:()=>`茣`,莽:()=>`莽`,菧:()=>`菧`,著:()=>`著`,荓:()=>`荓`,菊:()=>`菊`,菌:()=>`菌`,菜:()=>`菜`,𦰶:()=>iT,𦵫:()=>oT,𦳕:()=>aT,䔫:()=>`䔫`,蓱:()=>`蓱`,蓳:()=>`蓳`,蔖:()=>`蔖`,𧏊:()=>uT,蕤:()=>`蕤`,𦼬:()=>sT,䕝:()=>`䕝`,䕡:()=>`䕡`,𦾱:()=>cT,𧃒:()=>lT,䕫:()=>`䕫`,虐:()=>`虐`,虜:()=>`虜`,虧:()=>`虧`,虩:()=>`虩`,蚩:()=>`蚩`,蚈:()=>`蚈`,蜎:()=>`蜎`,蛢:()=>`蛢`,蝹:()=>`蝹`,蜨:()=>`蜨`,蝫:()=>`蝫`,螆:()=>`螆`,䗗:()=>`䗗`,蟡:()=>`蟡`,蠁:()=>`蠁`,䗹:()=>`䗹`,衠:()=>`衠`,衣:()=>`衣`,𧙧:()=>dT,裗:()=>`裗`,裞:()=>`裞`,䘵:()=>`䘵`,裺:()=>`裺`,㒻:()=>`㒻`,𧢮:()=>fT,𧥦:()=>pT,䚾:()=>`䚾`,䛇:()=>`䛇`,誠:()=>`誠`,諭:()=>`諭`,變:()=>`變`,豕:()=>`豕`,𧲨:()=>mT,貫:()=>`貫`,賁:()=>`賁`,贛:()=>`贛`,起:()=>`起`,𧼯:()=>gT,𠠄:()=>IC,跋:()=>`跋`,趼:()=>`趼`,跰:()=>`跰`,𠣞:()=>LC,軔:()=>`軔`,輸:()=>`輸`,𨗒:()=>_T,𨗭:()=>vT,邔:()=>`邔`,郱:()=>`郱`,鄑:()=>`鄑`,𨜮:()=>yT,鄛:()=>`鄛`,鈸:()=>`鈸`,鋗:()=>`鋗`,鋘:()=>`鋘`,鉼:()=>`鉼`,鏹:()=>`鏹`,鐕:()=>`鐕`,𨯺:()=>bT,開:()=>`開`,䦕:()=>`䦕`,閷:()=>`閷`,𨵷:()=>xT,䧦:()=>`䧦`,雃:()=>`雃`,嶲:()=>`嶲`,霣:()=>`霣`,𩅅:()=>ST,𩈚:()=>wT,䩮:()=>`䩮`,䩶:()=>`䩶`,韠:()=>`韠`,𩐊:()=>TT,䪲:()=>`䪲`,𩒖:()=>ET,頋:()=>`頋`,頋:()=>`頋`,頩:()=>`頩`,𩖶:()=>DT,飢:()=>`飢`,䬳:()=>`䬳`,餩:()=>`餩`,馧:()=>`馧`,駂:()=>`駂`,駾:()=>`駾`,䯎:()=>`䯎`,𩬰:()=>OT,鬒:()=>`鬒`,鱀:()=>`鱀`,鳽:()=>`鳽`,䳎:()=>`䳎`,䳭:()=>`䳭`,鵧:()=>`鵧`,𪃎:()=>kT,䳸:()=>`䳸`,𪄅:()=>AT,𪈎:()=>jT,𪊑:()=>MT,麻:()=>`麻`,䵖:()=>`䵖`,黹:()=>`黹`,黾:()=>`黾`,鼅:()=>`鼅`,鼏:()=>`鼏`,鼖:()=>`鼖`,鼻:()=>`鼻`,𪘀:()=>PT}),v,y,b,x,S,C,w,T,E,D,O,k,ee,te,ne,A,j,re,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne,Pe,Fe,Ie,Le,Re,ze,Be,Ve,He,Ue,We,Ge,Ke,qe,Je,Ye,Xe,Ze,Qe,$e,et,tt,nt,rt,it,at,ot,st,ct,lt,ut,dt,ft,pt,mt,ht,gt,_t,vt,yt,bt,xt,St,Ct,wt,Tt,Et,Dt,Ot,kt,At,jt,Mt,Nt,Pt,Ft,It,Lt,Rt,zt,Bt,Vt,Ht,Ut,Wt,Gt,Kt,qt,Jt,Yt,Xt,Zt,Qt,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,An,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,Kn,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,bi,xi,Si,Ci,wi,Ti,Ei,Di,Oi,ki,Ai,ji,Mi,Ni,Pi,Fi,Ii,Li,Ri,zi,Bi,Vi,Hi,Ui,Wi,Gi,Ki,qi,Ji,Yi,Xi,Zi,Qi,$i,ea,ta,na,ra,ia,aa,oa,sa,ca,la,ua,da,fa,pa,ma,ha,ga,_a,va,ya,ba,xa,Sa,Ca,wa,Ta,Ea,Da,Oa,ka,Aa,ja,Ma,Na,Pa,Fa,Ia,La,Ra,za,Ba,Va,Ha,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo,to,no,ro,io,ao,oo,so,co,lo,uo,fo,po,mo,ho,go,_o,vo,yo,bo,xo,So,Co,wo,To,Eo,Do,Oo,ko,Ao,jo,Mo,No,Po,Fo,Io,Lo,Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo,Jo,Yo,Xo,Zo,Qo,$o,es,ts,ns,rs,is,as,os,ss,cs,ls,us,ds,fs,ps,ms,hs,gs,_s,vs,ys,bs,xs,Ss,Cs,ws,Ts,Es,Ds,Os,ks,As,js,Ms,Ns,Ps,Fs,Is,Ls,Rs,zs,Bs,Vs,Hs,Us,Ws,Gs,Ks,qs,Js,Ys,Xs,Zs,Qs,$s,ec,tc,nc,rc,ic,ac,oc,sc,cc,lc,uc,dc,fc,pc,mc,hc,gc,_c,vc,yc,bc,xc,Sc,Cc,wc,Tc,Ec,Dc,Oc,kc,Ac,jc,Mc,Nc,Pc,Fc,Ic,Lc,Rc,zc,Bc,Vc,Hc,Uc,Wc,Gc,Kc,qc,Jc,Yc,Xc,Zc,Qc,$c,el,tl,nl,rl,il,al,ol,sl,cl,ll,ul,dl,fl,pl,ml,hl,gl,_l,vl,yl,bl,xl,Sl,Cl,wl,Tl,El,Dl,Ol,kl,Al,jl,Ml,Nl,Pl,Fl,Il,Ll,Rl,zl,Bl,Vl,Hl,Ul,Wl,Gl,Kl,ql,Jl,Yl,Xl,Zl,Ql,$l,eu,tu,nu,ru,iu,au,ou,su,cu,lu,uu,du,fu,pu,mu,hu,gu,_u,vu,yu,bu,xu,Su,Cu,wu,Tu,Eu,Du,Ou,ku,Au,ju,Mu,Nu,Pu,Fu,Iu,Lu,Ru,zu,Bu,Vu,Hu,Uu,Wu,Gu,Ku,qu,Ju,Yu,Xu,Zu,Qu,$u,ed,td,nd,rd,id,ad,od,sd,cd,ld,ud,dd,fd,pd,md,hd,gd,_d,vd,yd,bd,xd,Sd,Cd,wd,Td,Ed,Dd,Od,kd,Ad,jd,Md,Nd,Pd,Fd,Id,Ld,Rd,zd,Bd,Vd,Hd,Ud,Wd,Gd,Kd,qd,Jd,Yd,Xd,Zd,Qd,$d,ef,tf,nf,rf,af,of,sf,cf,lf,uf,df,ff,pf,mf,hf,gf,_f,vf,yf,bf,xf,Sf,Cf,wf,Tf,Ef,Df,Of,kf,Af,jf,Mf,Nf,Pf,Ff,If,Lf,Rf,zf,Bf,Vf,Hf,Uf,Wf,Gf,Kf,qf,Jf,Yf,Xf,Zf,Qf,$f,ep,tp,np,rp,ip,ap,op,sp,cp,lp,up,dp,fp,pp,mp,hp,gp,_p,vp,yp,bp,xp,Sp,Cp,wp,Tp,Ep,Dp,Op,kp,Ap,jp,Mp,Np,Pp,Fp,Ip,Lp,Rp,zp,Bp,Vp,Hp,Up,Wp,Gp,Kp,qp,Jp,Yp,Xp,Zp,Qp,$p,em,tm,nm,rm,im,am,om,sm,cm,lm,um,dm,fm,pm,mm,hm,gm,_m,vm,ym,bm,xm,Sm,Cm,wm,Tm,Em,Dm,Om,km,Am,jm,Mm,Nm,Pm,Fm,Im,Lm,Rm,zm,Bm,Vm,Hm,Um,Wm,Gm,Km,qm,Jm,Ym,Xm,Zm,Qm,$m,eh,th,nh,rh,ih,ah,oh,sh,ch,lh,uh,dh,fh,ph,mh,hh,gh,_h,vh,yh,bh,xh,Sh,Ch,wh,Th,Eh,Dh,Oh,kh,Ah,jh,Mh,Nh,Ph,Fh,Ih,Lh,Rh,zh,Bh,Vh,Hh,Uh,Wh,Gh,Kh,qh,Jh,Yh,Xh,Zh,Qh,$h,eg,tg,ng,rg,ig,ag,og,sg,cg,lg,ug,dg,fg,pg,mg,hg,gg,_g,vg,yg,bg,xg,Sg,Cg,wg,Tg,Eg,Dg,Og,kg,Ag,jg,Mg,Ng,Pg,Fg,Ig,Lg,Rg,zg,Bg,Vg,Hg,Ug,Wg,Gg,Kg,qg,Jg,Yg,Xg,Zg,Qg,$g,e_,t_,n_,r_,i_,a_,o_,s_,c_,l_,u_,d_,f_,p_,m_,h_,g_,__,v_,y_,b_,x_,S_,C_,w_,T_,E_,D_,O_,k_,A_,j_,M_,N_,P_,F_,I_,L_,R_,z_,B_,V_,H_,U_,W_,G_,K_,q_,J_,Y_,X_,Z_,Q_,$_,ev,tv,nv,rv,iv,av,ov,sv,cv,lv,uv,dv,fv,pv,mv,hv,gv,_v,vv,yv,bv,xv,Sv,Cv,wv,Tv,Ev,Dv,Ov,kv,Av,jv,Mv,Nv,Pv,Fv,Iv,Lv,Rv,zv,Bv,Vv,Hv,Uv,Wv,Gv,Kv,qv,Jv,Yv,Xv,Zv,Qv,$v,ey,ty,ny,ry,iy,ay,oy,sy,cy,ly,uy,dy,fy,py,my,hy,gy,_y,vy,yy,by,xy,Sy,Cy,wy,Ty,Ey,Dy,Oy,ky,Ay,jy,My,Ny,Py,Fy,Iy,Ly,Ry,zy,By,Vy,Hy,Uy,Wy,Gy,Ky,qy,Jy,Yy,Xy,Zy,Qy,$y,eb,tb,nb,rb,ib,ab,ob,sb,cb,lb,ub,db,fb,pb,mb,hb,gb,_b,vb,yb,bb,xb,Sb,Cb,wb,Tb,Eb,Db,Ob,kb,Ab,jb,Mb,Nb,Pb,Fb,Ib,Lb,Rb,zb,Bb,Vb,Hb,Ub,Wb,Gb,Kb,qb,Jb,Yb,Xb,Zb,Qb,$b,ex,tx,nx,rx,ix,ax,ox,sx,cx,lx,ux,dx,fx,px,mx,hx,gx,_x,vx,yx,bx,xx,Sx,Cx,wx,Tx,Ex,Dx,Ox,kx,Ax,jx,Mx,Nx,Px,Fx,Ix,Lx,Rx,zx,Bx,Vx,Hx,Ux,Wx,Gx,Kx,qx,Jx,Yx,Xx,Zx,Qx,$x,eS,tS,nS,rS,iS,aS,oS,sS,cS,lS,uS,dS,fS,pS,mS,hS,gS,_S,vS,yS,bS,xS,SS,CS,wS,TS,ES,DS,OS,kS,AS,jS,MS,NS,PS,FS,IS,LS,RS,zS,BS,VS,HS,US,WS,GS,KS,qS,JS,YS,XS,ZS,QS,$S,eC,tC,nC,rC,iC,aC,oC,sC,cC,lC,uC,dC,fC,pC,mC,hC,gC,_C,vC,yC,bC,xC,SC,CC,wC,TC,EC,DC,OC,kC,AC,jC,MC,NC,PC,FC,IC,LC,RC,zC,BC,VC,HC,UC,WC,GC,KC,qC,JC,YC,XC,ZC,QC,$C,ew,tw,nw,rw,iw,aw,ow,sw,cw,lw,uw,dw,fw,pw,mw,hw,gw,_w,vw,yw,bw,xw,Sw,Cw,ww,Tw,Ew,Dw,Ow,kw,Aw,jw,Mw,Nw,Pw,Fw,Iw,Lw,Rw,zw,Bw,Vw,Hw,Uw,Ww,Gw,Kw,qw,Jw,Yw,Xw,Zw,Qw,$w,eT,tT,nT,rT,iT,aT,oT,sT,cT,lT,uT,dT,fT,pT,mT,hT,gT,_T,vT,yT,bT,xT,ST,CT,wT,TT,ET,DT,OT,kT,AT,jT,MT,NT,PT,eee,tee=n((()=>{v=`ﹲّ`,y=`ﹴّ`,b=`ﹷّ`,x=`ﹶّ`,S=`ﹹّ`,C=`ﹸّ`,w=`ﹻّ`,T=`ﹺّ`,E=`ﹼٰ`,D=`···`,O=`·ḃ`,k=`·Ʌ`,ee=`·Γ`,te=`·Δ`,ne=`·Ո`,A=`·ᐁ`,j=`·ᐄ`,re=`·ᐅ`,ie=`·ᐆ`,ae=`·ᐊ`,oe=`·ᐋ`,se=`·ᐲ`,ce=`·ᐴ`,le=`·ᐹ`,ue=`·ᑏ`,de=`·ᑐ`,fe=`·ᑐ`,pe=`·ᑑ`,me=`·ᑕ`,he=`·ᑖ`,ge=`·ᑫ`,_e=`·ᑮ`,ve=`·ᑰ`,ye=`·ᒉ`,be=`·ᒋ`,xe=`·ᒌ`,Se=`·ᒎ`,Ce=`·ᒐ`,we=`·ᒑ`,Te=`·ᒣ`,Ee=`·ᒦ`,De=`·ᒧ`,Oe=`·ᒨ`,ke=`·ᒫ`,Ae=`·ᓀ`,je=`·ᓂ`,Me=`·ᓃ`,Ne=`·ᓄ`,Pe=`·ᓅ`,Fe=`·ᓇ`,Ie=`·ᓈ`,Le=`·ᓓ`,Re=`·ᓕ`,ze=`·ᓖ`,Be=`·ᓗ`,Ve=`·ᓘ`,He=`·ᓚ`,Ue=`·ᓛ`,We=`·ᓭ`,Ge=`·ᓯ`,Ke=`·ᓰ`,qe=`·ᓱ`,Je=`·ᓲ`,Ye=`·ᓴ`,Xe=`·ᓵ`,Ze=`·ᔐ`,Qe=`·ᔑ`,$e=`·ᔒ`,et=`·ᔓ`,tt=`·ᔔ`,nt=`·ᔕ`,rt=`·ᔖ`,it=`·ᔨ`,at=`·ᔩ`,ot=`·ᔪ`,st=`·ᔫ`,ct=`·ᔭ`,lt=`·ᔮ`,ut=`·ᕃ`,dt=`·ᕆ`,ft=`·ᕇ`,pt=`·ᕈ`,mt=`·ᕉ`,ht=`·ᕋ`,gt=`·ᕌ`,_t=`·ᕚ`,vt=`·ᕧ`,yt=`·ᢱ`,bt=`·ᢴ`,xt=`·ᢸ`,St=`·ᣀ`,Ct=`ˉbi`,wt=`∂̵`,Tt=`ーー`,Et=`ーᅡ`,Dt=`ーᅥ`,Ot=`ーᅥ丨`,kt=`ーᅩ`,At=`ーᅮ`,jt=`ー丨`,Mt=`ー丨`,Nt=`ー丨ᅮ`,Pt=`ḃ·`,Ft=`ǝ˞`,It=`ǝo̸`,Lt=`ǝo̵`,Rt=`ɜ̦`,zt=`ʜ̩`,Bt=`ʜ̦`,Vt=`ʜ̦`,Ht=`lكبر`,Ut=`lللّٰo`,Wt=`Ó̸`,Gt=`oᴇ`,Kt=`oمج`,qt=`oمم`,Jt=`oരo`,Yt=`oာ`,Xt=`ɔ̸`,Zt=`ĸ̩`,Qt=`ĸ̵`,$t=`rn̦`,en=`rn̴`,tn=`ɾ̴`,nn=`ᴛ̩`,rn=`ʊ̵`,an=`viii`,on=`Vlll`,sn=`Ʌ̦`,cn=`Ʌ·`,ln=`w҆҇`,un=`ʍ̦`,dn=`Γ̵`,fn=`Γ·`,pn=`Δ·`,mn=`Δᐠ`,hn=`ж̩`,gn=`Ж̩`,_n=`Ѝ̦`,vn=`й̦`,yn=`л̦`,bn=`Ѡ҆҇`,xn=`Ѡ·`,Sn=`Ҽ̨`,Cn=`եւ`,wn=`մե`,Tn=`մի`,En=`մխ`,Dn=`մն`,On=`Ո·`,kn=`վն`,An=`אל`,jn=`بۛ`,Mn=`بۢ`,Nn=`بٔ`,Pn=`بج`,Fn=`بج`,In=`بح`,Ln=`بح`,Rn=`بحى`,zn=`بخ`,Bn=`بخ`,Vn=`بخ`,Hn=`بخ`,Un=`بخى`,Wn=`بر`,Gn=`بز`,Kn=`بم`,qn=`بم`,Jn=`بم`,Yn=`بم`,Xn=`بن`,Zn=`بى`,Qn=`بى`,$n=`بى`,er=`بى`,tr=`تج`,nr=`تج`,rr=`تجم`,ir=`تجى`,ar=`تجى`,or=`تح`,sr=`تح`,cr=`تحج`,lr=`تحج`,ur=`تحم`,dr=`تخ`,fr=`تخ`,pr=`تخم`,mr=`تخى`,hr=`تخى`,gr=`تر`,_r=`تز`,vr=`تم`,yr=`تم`,br=`تم`,xr=`تم`,Sr=`تمج`,Cr=`تمح`,wr=`تمخ`,Tr=`تمى`,Er=`تمى`,Dr=`تن`,Or=`تى`,kr=`تى`,Ar=`تى`,jr=`تى`,Mr=`جح`,Nr=`جح`,Pr=`جحى`,Fr=`جحى`,Ir=`جل جلlلo`,Lr=`جم`,Rr=`جم`,zr=`جمح`,Br=`جمح`,Vr=`جمى`,Hr=`جمى`,Ur=`جى`,Wr=`جى`,Gr=`جى`,Kr=`جى`,qr=`حۛ`,Jr=`حٔ`,Yr=`حٔ`,Xr=`حج`,Zr=`حج`,Qr=`حجى`,$r=`حم`,ei=`حم`,ti=`حمى`,ni=`حمى`,ri=`حى`,ii=`حى`,ai=`حى`,oi=`حى`,si=`خج`,ci=`خج`,li=`خح`,ui=`خم`,di=`خم`,fi=`خى`,pi=`خى`,mi=`خى`,hi=`خى`,gi=`دؕ`,_i=`دؕ`,vi=`دؕ`,yi=`دۛ`,bi=`دۛ`,xi=`دۛ`,Si=`د̂`,Ci=`د̤̣`,wi=`ذٰ`,Ti=`ڊؕ`,Ei=`رؕ`,Di=`رؕ`,Oi=`رؕ`,ki=`رۛ`,Ai=`رۛ`,ji=`رۛ`,Mi=`ر̆`,Ni=`ر̆̇`,Pi=`ر̂`,Fi=`رٔ`,Ii=`رٰ`,Li=`رسول`,Ri=`ز̂`,zi=`ڗؕ`,Bi=`سۛ`,Vi=`سۛ`,Hi=`سۛ`,Ui=`سۛ`,Wi=`سۛ`,Gi=`سۛ`,Ki=`سۛ`,qi=`سۛ`,Ji=`سۛ`,Yi=`سۛ`,Xi=`سۛ`,Zi=`س̂`,Qi=`سۛo`,$i=`سۛo`,ea=`سج`,ta=`سج`,na=`سج`,ra=`سۛج`,ia=`سۛج`,aa=`سۛج`,oa=`سۛج`,sa=`سجح`,ca=`سجى`,la=`سۛجى`,ua=`سح`,da=`سح`,fa=`سح`,pa=`سۛح`,ma=`سۛح`,ha=`سۛح`,ga=`سۛح`,_a=`سحج`,va=`سۛحم`,ya=`سۛحم`,ba=`سۛحى`,xa=`سخ`,Sa=`سخ`,Ca=`سخ`,wa=`سۛخ`,Ta=`سۛخ`,Ea=`سۛخ`,Da=`سۛخ`,Oa=`سخى`,ka=`سخى`,Aa=`سر`,ja=`سر`,Ma=`سۛر`,Na=`سۛر`,Pa=`سم`,Fa=`سم`,Ia=`سم`,La=`سۛم`,Ra=`سۛم`,za=`سۛم`,Ba=`سۛم`,Va=`سمج`,Ha=`سمح`,Ua=`سمح`,Wa=`سۛمخ`,Ga=`سۛمخ`,Ka=`سمم`,qa=`سمم`,Ja=`سۛمم`,Ya=`سۛمم`,Xa=`سى`,Za=`سى`,Qa=`سى`,$a=`سى`,eo=`سۛى`,to=`سۛى`,no=`سۛى`,ro=`سۛى`,io=`صۛ`,ao=`ص̤̣`,oo=`صح`,so=`صح`,co=`صحح`,lo=`صحح`,uo=`صحى`,fo=`صخ`,po=`صر`,mo=`صر`,ho=`صلعم`,go=`صلى`,_o=`صلى`,vo=`صلى lللo علىo وسلم`,yo=`صم`,bo=`صم`,xo=`صمم`,So=`صمم`,Co=`صى`,wo=`صى`,To=`صى`,Eo=`صى`,Do=`ضج`,Oo=`ضج`,ko=`ضح`,Ao=`ضح`,jo=`ضحى`,Mo=`ضحى`,No=`ضخ`,Po=`ضخ`,Fo=`ضخم`,Io=`ضخم`,Lo=`ضر`,Ro=`ضر`,zo=`ضم`,Bo=`ضم`,Vo=`ضى`,Ho=`ضى`,Uo=`ضى`,Wo=`ضى`,Go=`طۛ`,Ko=`طح`,qo=`طح`,Jo=`طم`,Yo=`طم`,Xo=`طم`,Zo=`طمح`,Qo=`طمح`,$o=`طمم`,es=`طمى`,ts=`طى`,ns=`طى`,rs=`طى`,is=`طى`,as=`ظم`,os=`ظم`,ss=`ظم`,cs=`عج`,ls=`عج`,us=`عجم`,ds=`عجم`,fs=`علىo`,ps=`عم`,ms=`عم`,hs=`عمم`,gs=`عمم`,_s=`عمى`,vs=`عمى`,ys=`عى`,bs=`عى`,xs=`عى`,Ss=`عى`,Cs=`غج`,ws=`غج`,Ts=`غم`,Es=`غم`,Ds=`غمم`,Os=`غمى`,ks=`غمى`,As=`غى`,js=`غى`,Ms=`غى`,Ns=`غى`,Ps=`فج`,Fs=`فج`,Is=`فح`,Ls=`فح`,Rs=`فخ`,zs=`فخ`,Bs=`فخم`,Vs=`فخم`,Hs=`فم`,Us=`فم`,Ws=`فمى`,Gs=`فى`,Ks=`فى`,qs=`فى`,Js=`فى`,Ys=`ڡۛ`,Xs=`ڡۛ`,Zs=`ڡۛ`,Qs=`ڡۛ`,$s=`ڡۛ`,ec=`ڡۛ`,tc=`ڢۛ`,nc=`قح`,rc=`قح`,ic=`قلى`,ac=`قم`,oc=`قم`,sc=`قمح`,cc=`قمح`,lc=`قمم`,uc=`قمى`,dc=`قى`,fc=`قى`,pc=`قى`,mc=`قى`,hc=`كۛ`,gc=`كۛ`,_c=`كۛ`,vc=`كۛ`,yc=`كۛ`,bc=`كۛ`,xc=`كج`,Sc=`كج`,Cc=`كح`,wc=`كح`,Tc=`كخ`,Ec=`كخ`,Dc=`كل`,Oc=`كل`,kc=`كل`,Ac=`كل`,jc=`كم`,Mc=`كم`,Nc=`كم`,Pc=`كم`,Fc=`كمم`,Ic=`كمم`,Lc=`كمى`,Rc=`كى`,zc=`كى`,Bc=`كى`,Vc=`كى`,Hc=`گۛ`,Uc=`لۛ`,Wc=`ل̆`,Gc=`لlٕ`,Kc=`لlٕ`,qc=`لlٴ`,Jc=`لlٴ`,Yc=`لآ`,Xc=`لآ`,Zc=`لج`,Qc=`لج`,$c=`لجج`,el=`لجج`,tl=`لجم`,nl=`لجم`,rl=`لجى`,il=`لح`,al=`لح`,ol=`لحم`,sl=`لحم`,cl=`لحى`,ll=`لحى`,ul=`لخ`,dl=`لخ`,fl=`لخم`,pl=`لخم`,ml=`لم`,hl=`لم`,gl=`لم`,_l=`لم`,vl=`لمح`,yl=`لمح`,bl=`لمى`,xl=`لى`,Sl=`لى`,Cl=`لى`,wl=`لى`,Tl=`مۛ`,El=`مج`,Dl=`مج`,Ol=`مجح`,kl=`مجخ`,Al=`مجم`,jl=`مجى`,Ml=`مح`,Nl=`مح`,Pl=`محج`,Fl=`محم`,Il=`محمد`,Ll=`محى`,Rl=`مخ`,zl=`مخ`,Bl=`مخج`,Vl=`مخم`,Hl=`مخى`,Ul=`مم`,Wl=`مم`,Gl=`مم`,Kl=`ممى`,ql=`مى`,Jl=`مى`,Yl=`نؕ`,Xl=`ن̆`,Zl=`نجح`,Ql=`نجح`,$l=`نجم`,eu=`نجم`,tu=`نجى`,nu=`نجى`,ru=`نح`,iu=`نح`,au=`نحم`,ou=`نحى`,su=`نحى`,cu=`نخ`,lu=`نخ`,uu=`نر`,du=`نز`,fu=`نم`,pu=`نم`,mu=`نم`,hu=`نم`,gu=`نمى`,_u=`نمى`,vu=`نن`,yu=`نى`,bu=`نى`,xu=`نى`,Su=`نى`,Cu=`وۛ`,wu=`وۛ`,Tu=`وۛ`,Eu=`و̓`,Du=`و̓`,Ou=`و̓`,ku=`و̆`,Au=`و̆`,ju=`و̆`,Mu=`و̂`,Nu=`و̂`,Pu=`و̂`,Fu=`وٰ`,Iu=`وٰ`,Lu=`وٰ`,Ru=`وٴ`,zu=`وٴ`,Bu=`وٴ`,Vu=`وٴ`,Hu=`و̓ٴ`,Uu=`و̓ٴ`,Wu=`وسلم`,Gu=`ىؕ`,Ku=`ىؕ`,qu=`ىؕ`,Ju=`ىؕ`,Yu=`ىؕ`,Xu=`ىؕ`,Zu=`ىؕ`,Qu=`ىؕ`,$u=`ىؕ`,ed=`ىؕ`,td=`ىۛ`,nd=`ىۛ`,rd=`ىۛ`,id=`ىۛ`,ad=`ىۛ`,od=`ىۛ`,sd=`ىۛ`,cd=`ىۛ`,ld=`ىۛ`,ud=`ىۛ`,dd=`ىۛ`,fd=`ىۛ`,pd=`ىۛ`,md=`ىۛ`,hd=`ىۛ`,gd=`ىۛ`,_d=`ىۛ`,vd=`ىۛ`,yd=`ىۛۢ`,bd=`ى̆`,xd=`ى̆`,Sd=`ى̆̇`,Cd=`ى̂`,wd=`ىٔ`,Td=`ىٰ`,Ed=`ىٰ`,Dd=`ىۛo`,Od=`ىٴ`,kd=`ىٴ`,Ad=`ىٴ`,jd=`ىٴ`,Md=`ىٴ`,Nd=`ىٴ`,Pd=`ىٴl`,Fd=`ىٴl`,Id=`ىٴo`,Ld=`ىٴo`,Rd=`ىٴo`,zd=`ىٴo`,Bd=`ىٴٻ`,Vd=`ىٴٻ`,Hd=`ىٴٻ`,Ud=`ىٴج`,Wd=`ىٴج`,Gd=`ىٴح`,Kd=`ىٴح`,qd=`ىٴخ`,Jd=`ىٴر`,Yd=`ىٴز`,Xd=`ىٴم`,Zd=`ىٴم`,Qd=`ىٴم`,$d=`ىٴم`,ef=`ىٴن`,tf=`ىٴو`,nf=`ىٴو`,rf=`ىٴو̓`,af=`ىٴو̓`,of=`ىٴو̆`,sf=`ىٴو̆`,cf=`ىٴوٰ`,lf=`ىٴوٰ`,uf=`ىٴى`,df=`ىٴى`,ff=`ىٴى`,pf=`ىٴى`,mf=`ىٴى`,hf=`ىٴى`,gf=`ىٴى`,_f=`ىج`,vf=`ىج`,yf=`ىۛج`,bf=`ىجى`,xf=`ىح`,Sf=`ىح`,Cf=`ىحى`,wf=`ىخ`,Tf=`ىخ`,Ef=`ىر`,Df=`ىۛر`,Of=`ىز`,kf=`ىۛز`,Af=`ىم`,jf=`ىم`,Mf=`ىم`,Nf=`ىم`,Pf=`ىۛم`,Ff=`ىۛم`,If=`ىۛم`,Lf=`ىۛم`,Rf=`ىمم`,zf=`ىمم`,Bf=`ىمى`,Vf=`ىن`,Hf=`ىۛن`,Uf=`ىى`,Wf=`ىى`,Gf=`ىى`,Kf=`ىى`,qf=`ىۛى`,Jf=`ىۛى`,Yf=`ىۛى`,Xf=`ىۛى`,Zf=`अा`,Qf=`अाॆ`,$f=`अाे`,ep=`अाै`,tp=`अॆ`,np=`अॉ`,rp=`एॅ`,ip=`एॆ`,ap=`एे`,op=`र्इ`,sp=`অা`,cp=`ঋৃ`,lp=`ঋৃ`,up=`ੳੁ`,dp=`ੳੂ`,fp=`ਅਾ`,pp=`ਅੈ`,mp=`ਅੌ`,hp=`ੲਿ`,gp=`ੲੀ`,_p=`ੲੇ`,vp=`અા`,yp=`અાૅ`,bp=`અાે`,xp=`અાૈ`,Sp=`અૅ`,Cp=`અે`,wp=`અૈ`,Tp=`ଅା`,Ep=`உள`,Dp=`உൗ`,Op=`டி`,kp=`ఋా`,Ap=`ఌా`,jp=`ఒౌ`,Mp=`ఒౌ`,Np=`ఒౕ`,Pp=`ఒౕ`,Fp=`డ̣`,Ip=`ధּ`,Lp=`బ̣`,Rp=`రּ`,zp=`వ̣`,Bp=`వా`,Vp=`వు`,Hp=`ಌಾ`,Up=`ഇൗ`,Wp=`എെ`,Gp=`ഒാ`,Kp=`ഒൗ`,qp=`നു`,Jp=`നു`,Yp=`ന്`,Xp=`ര്`,Zp=`𑐴𑑂𑐒`,Qp=`𑐴𑑂𑐘`,$p=`𑐴𑑂𑐣`,em=`𑐴𑑂𑐩`,tm=`𑐴𑑂𑐬`,nm=`𑐴𑑂𑐮`,rm=`𑖂`,im=`𑖂`,am=`𑖃`,om=`𑖄`,sm=`̊า`,cm=`เเ`,lm=`ຫນ`,um=`ຫມ`,dm=`̊າ`,fm=`ཨོཾ`,pm=`ဂှ`,mm=`ဂာ`,hm=`ဃှ`,gm=`ပှ`,_m=`ပာ`,vm=`ပာှ`,ym=`ၽှ`,bm=`သြ`,xm=`သြော်`,Sm=`ᐁ·`,Cm=`ᐁᐠ`,wm=`ᐄ·`,Tm=`ᐅ·`,Em=`ᐅᐠ`,Dm=`ᐆ·`,Om=`ᐊ·`,km=`ᐊᐠ`,Am=`ᐋ·`,jm=`ᐞᣟ`,Mm=`ᐲ·`,Nm=`ᐴ·`,Pm=`ᐹ·`,Fm=`ᑏ·`,Im=`ᑐ·`,Lm=`ᑐ'`,Rm=`ᑑ·`,zm=`ᑕ·`,Bm=`ᑕ'`,Vm=`ᑖ·`,Hm=`ᑫ·`,Um=`ᑫ'`,Wm=`ᑮ·`,Gm=`ᑰ·`,Km=`ᒉ·`,qm=`ᒋ·`,Jm=`ᒌ·`,Ym=`ᒎ·`,Xm=`ᒐ·`,Zm=`ᒑ·`,Qm=`ᒣ·`,$m=`ᒦ·`,eh=`ᒧ·`,th=`ᒨ·`,nh=`ᒫ·`,rh=`ᓀ·`,ih=`ᓂ·`,ah=`ᓃ·`,oh=`ᓄ·`,sh=`ᓅ·`,ch=`ᓇ·`,lh=`ᓈ·`,uh=`ᓓ·`,dh=`ᓕ·`,fh=`ᓖ·`,ph=`ᓗ·`,mh=`ᓘ·`,hh=`ᓚ·`,gh=`ᓛ·`,_h=`ᓭ·`,vh=`ᓯ·`,yh=`ᓰ·`,bh=`ᓱ·`,xh=`ᓲ·`,Sh=`ᓴ·`,Ch=`ᓵ·`,wh=`ᔋ<`,Th=`ᔋb`,Eh=`ᔋᑕ`,Dh=`ᔋᒐ`,Oh=`ᔐ·`,kh=`ᔑ·`,Ah=`ᔒ·`,jh=`ᔓ·`,Mh=`ᔔ·`,Nh=`ᔕ·`,Ph=`ᔖ·`,Fh=`ᔨ·`,Ih=`ᔩ·`,Lh=`ᔪ·`,Rh=`ᔫ·`,zh=`ᔭ·`,Bh=`ᔮ·`,Vh=`ᕃ·`,Hh=`ᕌ·`,Uh=`ᕐb`,Wh=`ᕐḃ`,Gh=`ᕐd`,Kh=`ᕐP`,qh=`ᕐᑫ`,Jh=`ᕐᑬ`,Yh=`ᕐᑮ`,Xh=`ᕐᑰ`,Zh=`ᕐᒃ`,Qh=`ᕚ·`,$h=`ᕞ·`,eg=`ᕦ·`,tg=`ᕧ·`,ng=`ᕫ·`,rg=`ᖆ·`,ig=`ᖕJ`,ag=`ᖕᒉ`,og=`ᖕᒊ`,sg=`ᖕᒋ`,cg=`ᖕᒌ`,lg=`ᖕᒎ`,ug=`ᖕᒐ`,dg=`ᖕᒑ`,fg=`ᖖJ`,pg=`ᖖᒋ`,mg=`ᖖᒌ`,hg=`ᖖᒎ`,gg=`ᖖᒐ`,_g=`ᖖᒑ`,vg=`ᖗ·`,yg=`ᖧ·`,bg=`ᖨ·`,xg=`ᖩ·`,Sg=`ᖪ·`,Cg=`ᖫ·`,wg=`ᖬ·`,Tg=`ᖭ·`,Eg=`ᗴ·`,Dg=`ᘛ·`,Og=`ᣟᐞ`,kg=`ᄀᄀ`,Ag=`ᄀᄀ`,jg=`ᄀᄀ`,Mg=`ᄀᄂ`,Ng=`ᄀᄃ`,Pg=`ᄀᄅ`,Fg=`ᄀᄇ`,Ig=`ᄀᄉ`,Lg=`ᄀᄉ`,Rg=`ᄀᄉᄀ`,zg=`ᄀᄎ`,Bg=`ᄀᄏ`,Vg=`ᄀᄒ`,Hg=`ᄂᄀ`,Ug=`ᄂᄀ`,Wg=`ᄂᄂ`,Gg=`ᄂᄂ`,Kg=`ᄂᄂ`,qg=`ᄂᄃ`,Jg=`ᄂᄃ`,Yg=`ᄂᄃ`,Xg=`ᄂᄅ`,Zg=`ᄂᄇ`,Qg=`ᄂᄉ`,$g=`ᄂᄉ`,e_=`ᄂᄉ`,t_=`ᄂᄌ`,n_=`ᄂᄌ`,r_=`ᄂᄌ`,i_=`ᄂᄎ`,a_=`ᄂᄐ`,o_=`ᄂᄒ`,s_=`ᄂᄒ`,c_=`ᄂᄒ`,l_=`ᄂᅀ`,u_=`ᄂᅀ`,d_=`ᄃᄀ`,f_=`ᄃᄀ`,p_=`ᄃᄃ`,m_=`ᄃᄃ`,h_=`ᄃᄃ`,g_=`ᄃᄃᄇ`,__=`ᄃᄅ`,v_=`ᄃᄅ`,y_=`ᄃᄆ`,b_=`ᄃᄇ`,x_=`ᄃᄇ`,S_=`ᄃᄉ`,C_=`ᄃᄉ`,w_=`ᄃᄉᄀ`,T_=`ᄃᄌ`,E_=`ᄃᄌ`,D_=`ᄃᄎ`,O_=`ᄃᄐ`,k_=`ᄅᄀ`,A_=`ᄅᄀ`,j_=`ᄅᄀ`,M_=`ᄅᄀᄀ`,N_=`ᄅᄀᄀ`,P_=`ᄅᄀᄉ`,F_=`ᄅᄀᄉ`,I_=`ᄅᄀᄒ`,L_=`ᄅᄂ`,R_=`ᄅᄂ`,z_=`ᄅᄃ`,B_=`ᄅᄃ`,V_=`ᄅᄃ`,H_=`ᄅᄃᄃ`,U_=`ᄅᄃᄒ`,W_=`ᄅᄅ`,G_=`ᄅᄅ`,K_=`ᄅᄅᄏ`,q_=`ᄅᄆ`,J_=`ᄅᄆ`,Y_=`ᄅᄆ`,X_=`ᄅᄆᄀ`,Z_=`ᄅᄆᄉ`,Q_=`ᄅᄆᄒ`,$_=`ᄅᄇ`,ev=`ᄅᄇ`,tv=`ᄅᄇ`,nv=`ᄅᄇᄃ`,rv=`ᄅᄇᄇ`,iv=`ᄅᄇᄉ`,av=`ᄅᄇᄉ`,ov=`ᄅᄇᄋ`,sv=`ᄅᄇᄋ`,cv=`ᄅᄇᄑ`,lv=`ᄅᄇᄒ`,uv=`ᄅᄉ`,dv=`ᄅᄉ`,fv=`ᄅᄉ`,pv=`ᄅᄉᄉ`,mv=`ᄅᄋ`,hv=`ᄅᄋ`,gv=`ᄅᄌ`,_v=`ᄅᄏ`,vv=`ᄅᄏ`,yv=`ᄅᄐ`,bv=`ᄅᄐ`,xv=`ᄅᄑ`,Sv=`ᄅᄑ`,Cv=`ᄅᄒ`,wv=`ᄅᄒ`,Tv=`ᄅᄒ`,Ev=`ᄅᄒ`,Dv=`ᄅᄒ`,Ov=`ᄅᅀ`,kv=`ᄅᅀ`,Av=`ᄅᅌ`,jv=`ᄅᅙ`,Mv=`ᄅᅙ`,Nv=`ᄅᅙᄒ`,Pv=`ᄆᄀ`,Fv=`ᄆᄀ`,Iv=`ᄆᄂ`,Lv=`ᄆᄂᄂ`,Rv=`ᄆᄃ`,zv=`ᄆᄅ`,Bv=`ᄆᄆ`,Vv=`ᄆᄇ`,Hv=`ᄆᄇ`,Uv=`ᄆᄇ`,Wv=`ᄆᄇᄉ`,Gv=`ᄆᄉ`,Kv=`ᄆᄉ`,qv=`ᄆᄉ`,Jv=`ᄆᄉᄉ`,Yv=`ᄆᄋ`,Xv=`ᄆᄋ`,Zv=`ᄆᄋ`,Qv=`ᄆᄌ`,$v=`ᄆᄎ`,ey=`ᄆᄒ`,ty=`ᄆᅀ`,ny=`ᄆᅀ`,ry=`ᄇᄀ`,iy=`ᄇᄀ`,ay=`ᄇᄂ`,oy=`ᄇᄃ`,sy=`ᄇᄃ`,cy=`ᄇᄃ`,ly=`ᄇᄅ`,uy=`ᄇᄅᄑ`,dy=`ᄇᄆ`,fy=`ᄇᄇ`,py=`ᄇᄇ`,my=`ᄇᄇ`,hy=`ᄇᄇᄋ`,gy=`ᄇᄇᄋ`,_y=`ᄇᄉ`,vy=`ᄇᄉ`,yy=`ᄇᄉ`,by=`ᄇᄉᄀ`,xy=`ᄇᄉᄀ`,Sy=`ᄇᄉᄃ`,Cy=`ᄇᄉᄃ`,wy=`ᄇᄉᄃ`,Ty=`ᄇᄉᄇ`,Ey=`ᄇᄉᄉ`,Dy=`ᄇᄉᄌ`,Oy=`ᄇᄉᄐ`,ky=`ᄇᄋ`,Ay=`ᄇᄋ`,jy=`ᄇᄋ`,My=`ᄇᄌ`,Ny=`ᄇᄌ`,Py=`ᄇᄌ`,Fy=`ᄇᄎ`,Iy=`ᄇᄎ`,Ly=`ᄇᄏ`,Ry=`ᄇᄐ`,zy=`ᄇᄐ`,By=`ᄇᄑ`,Vy=`ᄇᄑ`,Hy=`ᄇᄒ`,Uy=`ᄇᄒ`,Wy=`ᄉᄀ`,Gy=`ᄉᄀ`,Ky=`ᄉᄀ`,qy=`ᄉᄂ`,Jy=`ᄉᄂ`,Yy=`ᄉᄃ`,Xy=`ᄉᄃ`,Zy=`ᄉᄃ`,Qy=`ᄉᄅ`,$y=`ᄉᄅ`,eb=`ᄉᄆ`,tb=`ᄉᄆ`,nb=`ᄉᄇ`,rb=`ᄉᄇ`,ib=`ᄉᄇ`,ab=`ᄉᄇᄀ`,ob=`ᄉᄇᄋ`,sb=`ᄉᄉ`,cb=`ᄉᄉ`,lb=`ᄉᄉ`,ub=`ᄉᄉᄀ`,db=`ᄉᄉᄃ`,fb=`ᄉᄉᄇ`,pb=`ᄉᄉᄉ`,mb=`ᄉᄋ`,hb=`ᄉᄌ`,gb=`ᄉᄌ`,_b=`ᄉᄌ`,vb=`ᄉᄎ`,yb=`ᄉᄎ`,bb=`ᄉᄏ`,xb=`ᄉᄐ`,Sb=`ᄉᄐ`,Cb=`ᄉᄑ`,wb=`ᄉᅀ`,Tb=`ᄋᄀ`,Eb=`ᄋᄀ`,Db=`ᄋᄀᄀ`,Ob=`ᄋᄃ`,kb=`ᄋᄅ`,Ab=`ᄋᄆ`,jb=`ᄋᄇ`,Mb=`ᄋᄉ`,Nb=`ᄋᄉ`,Pb=`ᄋᄉ`,Fb=`ᄋᄋ`,Ib=`ᄋᄋ`,Lb=`ᄋᄋ`,Rb=`ᄋᄌ`,zb=`ᄋᄎ`,Bb=`ᄋᄏ`,Vb=`ᄋᄐ`,Hb=`ᄋᄑ`,Ub=`ᄋᄒ`,Wb=`ᄋᅀ`,Gb=`ᄋᅀ`,Kb=`ᄋᅀ`,qb=`ᄌᄇ`,Jb=`ᄌᄇᄇ`,Yb=`ᄌᄋ`,Xb=`ᄌᄌ`,Zb=`ᄌᄌ`,Qb=`ᄌᄌ`,$b=`ᄌᄌᄒ`,ex=`ᄎᄏ`,tx=`ᄎᄒ`,nx=`ᄐᄐ`,rx=`ᄑᄇ`,ix=`ᄑᄇ`,ax=`ᄑᄉ`,ox=`ᄑᄋ`,sx=`ᄑᄋ`,cx=`ᄑᄋ`,lx=`ᄑᄐ`,ux=`ᄑᄒ`,dx=`ᄒᄂ`,fx=`ᄒᄅ`,px=`ᄒᄆ`,mx=`ᄒᄇ`,hx=`ᄒᄉ`,gx=`ᄒᄒ`,_x=`ᄒᄒ`,vx=`ᄼᄼ`,yx=`ᄾᄾ`,bx=`ᅀᄇ`,xx=`ᅀᄇᄋ`,Sx=`ᅌᄆ`,Cx=`ᅌᄒ`,wx=`ᅎᅎ`,Tx=`ᅐᅐ`,Ex=`ᅙᅙ`,Dx=`ᅡー`,Ox=`ᅡᅩ`,kx=`ᅡᅮ`,Ax=`ᅡ丨`,jx=`ᅡ丨`,Mx=`ᅣᅩ`,Nx=`ᅣᅭ`,Px=`ᅣᅮ`,Fx=`ᅣ丨`,Ix=`ᅣ丨`,Lx=`ᅥー`,Rx=`ᅥᅩ`,zx=`ᅥᅮ`,Bx=`ᅥ丨`,Vx=`ᅥ丨`,Hx=`ᅧᅣ`,Ux=`ᅧᅩ`,Wx=`ᅧᅮ`,Gx=`ᅧ丨`,Kx=`ᅧ丨`,qx=`ᅩᅡ`,Jx=`ᅩᅡ`,Yx=`ᅩᅡ丨`,Xx=`ᅩᅡ丨`,Zx=`ᅩᅣ`,Qx=`ᅩᅣ丨`,$x=`ᅩᅥ`,eS=`ᅩᅥ丨`,tS=`ᅩᅧ`,nS=`ᅩᅧ丨`,rS=`ᅩᅩ`,iS=`ᅩᅩ丨`,aS=`ᅩᅮ`,oS=`ᅩ丨`,sS=`ᅩ丨`,cS=`ᅭᅡ`,lS=`ᅭᅡ丨`,uS=`ᅭᅣ`,dS=`ᅭᅣ`,fS=`ᅭᅣ`,pS=`ᅭᅣ丨`,mS=`ᅭᅣ丨`,hS=`ᅭᅥ`,gS=`ᅭᅩ`,_S=`ᅭ丨`,vS=`ᅭ丨`,yS=`ᅮᅡ`,bS=`ᅮᅡ丨`,xS=`ᅮᅥ`,SS=`ᅮᅥ`,CS=`ᅮᅥー`,wS=`ᅮᅥ丨`,TS=`ᅮᅥ丨`,ES=`ᅮᅧ`,DS=`ᅮᅧ丨`,OS=`ᅮᅮ`,kS=`ᅮ丨`,AS=`ᅮ丨`,jS=`ᅮ丨丨`,MS=`ᅲᅡ`,NS=`ᅲᅡ丨`,PS=`ᅲᅥ`,FS=`ᅲᅥ丨`,IS=`ᅲᅧ`,LS=`ᅲᅧ`,RS=`ᅲᅧ丨`,zS=`ᅲᅧ丨`,BS=`ᅲᅩ`,VS=`ᅲᅮ`,HS=`ᅲ丨`,US=`ᅲ丨`,WS=`ᆞᅡ`,GS=`ᆞᅥ`,KS=`ᆞᅥ丨`,qS=`ᆞᅮ`,JS=`ᆞᆞ`,YS=`ᆞ丨`,XS=`ᆞ丨`,ZS=`𑫥𑫯`,QS=`𑫥𑫥`,$S=`𑫥𑫥𑫯`,eC=`𑫥𑫥𑫰`,tC=`𑫥𑫰`,nC=`𑫳𑫯`,rC=`𑫳𑫳`,iC=`𑫳𑫳𑫯`,aC=`𑫳𑫳𑫰`,oC=`𑫳𑫰`,sC=`𑫫𑫯`,cC=`𑫫𑫫`,lC=`𑫫𑫫𑫯`,uC=`𐊨`,dC=`𐐺`,fC=`𐐒`,pC=`𐎂`,mC=`𐎓`,hC=`𐎚`,gC=`𐦞`,_C=`丨ー`,vC=`丨ᅡ`,yC=`丨ᅣ`,bC=`丨ᅣᅩ`,xC=`丨ᅣ丨`,SC=`丨ᅧ`,CC=`丨ᅧ丨`,wC=`丨ᅩ`,TC=`丨ᅩ丨`,EC=`丨ᅭ`,DC=`丨ᅮ`,OC=`丨ᅲ`,kC=`丨ᆞ`,AC=`丨丨`,jC=`𠄢`,MC=`𠔜`,NC=`𠔥`,PC=`𠕋`,FC=`𠘺`,IC=`𠠄`,LC=`𠣞`,RC=`𠨬`,zC=`𠭣`,BC=`𡓤`,VC=`𡚨`,HC=`𡛪`,UC=`𡧈`,WC=`𡬘`,GC=`𡴋`,KC=`𡷤`,qC=`𡷦`,JC=`𢆃`,YC=`𢆟`,XC=`𢌱`,ZC=`𢌱`,QC=`𢛔`,$C=`𢡄`,ew=`𢡊`,tw=`𢬌`,nw=`𢯱`,rw=`𣀊`,iw=`𣊸`,aw=`𣍟`,ow=`𣎓`,sw=`𣎜`,cw=`𣏃`,lw=`𣏕`,uw=`𣑭`,dw=`𣚣`,fw=`𣢧`,pw=`𣪍`,mw=`𣫺`,hw=`𣲼`,gw=`𣴞`,_w=`𣻑`,vw=`𣽞`,yw=`𣾎`,bw=`𤉣`,xw=`𤋮`,Sw=`𤎫`,Cw=`𤘈`,ww=`𤜵`,Tw=`𤠔`,Ew=`𤰶`,Dw=`𤲒`,Ow=`𤾡`,kw=`𤾸`,Aw=`𥁄`,jw=`𥃲`,Mw=`𥃳`,Nw=`𥄙`,Pw=`𥄳`,Fw=`𥉉`,Iw=`𥐝`,Lw=`𥘦`,Rw=`𥚚`,zw=`𥛅`,Bw=`𥥼`,Vw=`𥪧`,Hw=`𥪧`,Uw=`𥮫`,Ww=`𥲀`,Gw=`𥳐`,Kw=`𥾆`,qw=`𦇚`,Jw=`𦈨`,Yw=`𦉇`,Xw=`𦋙`,Zw=`𦌾`,Qw=`𦓚`,$w=`𦔣`,eT=`𦖨`,tT=`𦞧`,nT=`𦞵`,rT=`𦬼`,iT=`𦰶`,aT=`𦳕`,oT=`𦵫`,sT=`𦼬`,cT=`𦾱`,lT=`𧃒`,uT=`𧏊`,dT=`𧙧`,fT=`𧢮`,pT=`𧥦`,mT=`𧲨`,hT=`𧻓`,gT=`𧼯`,_T=`𨗒`,vT=`𨗭`,yT=`𨜮`,bT=`𨯺`,xT=`𨵷`,ST=`𩅅`,CT=`𩇟`,wT=`𩈚`,TT=`𩐊`,ET=`𩒖`,DT=`𩖶`,OT=`𩬰`,kT=`𪃎`,AT=`𪄅`,jT=`𪈎`,MT=`𪊑`,NT=`𪎒`,PT=`𪘀`,eee={0:`O`,1:`l`,"֭":`֖`,"֮":`֘`,"֨":`֙`,"֤":`֚`,"᪴":`ۛ`,"⃛":`ۛ`,"ؙ":`̓`,"ࣳ":`̓`,"̓":`̓`,"̕":`̓`,"ُ":`̓`,"ٝ":`̔`,"֜":`́`,"֝":`́`,"ؘ":`́`,"݇":`́`,"́":`́`,"॔":`́`,"َ":`́`,"̀":`̀`,"॓":`̀`,"̌":`̆`,"꙼":`̆`,"٘":`̆`,"ٚ":`̆`,"ͮ":`̆`,"ۨ":`̆̇`,"̐":`̆̇`,"ँ":`̆̇`,"ঁ":`̆̇`,"ઁ":`̆̇`,"ଁ":`̆̇`,"ఀ":`̆̇`,"ಁ":`̆̇`,"ഁ":`̆̇`,"𑒿":`̆̇`,"᳐":`̂`,"̑":`̂`,"ٛ":`̂`,"߮":`̂`,"꛰":`̂`,"֯":`̊`,"۟":`̊`,"៓":`̊`,"゚":`̊`,"ْ":`̊`,"ஂ":`̊`,"ံ":`̊`,"ំ":`̊`,"𑌀":`̊`,"ํ":`̊`,"ໍ":`̊`,"ͦ":`̊`,"ⷪ":`̊`,"࣫":`̈`,"߳":`̈`,"ً":`̋`,"ࣰ":`̋`,"͂":`̃`,"ٓ":`̃`,"ׄ":`̇`,"۬":`̇`,"݀":`̇`,"࣪":`̇`,"݁":`̇`,"͘":`̇`,"ֹ":`̇`,"ֺ":`̇`,"ׂ":`̇`,"ׁ":`̇`,"߭":`̇`,"ं":`̇`,"ਂ":`̇`,"ં":`̇`,"்":`̇`,"̷":`̸`,"᪷":`̨`,"̢":`̨`,"ͅ":`̨`,"᳒":`̄`,"̅":`̄`,"ٙ":`̄`,"߫":`̄`,"꛱":`̄`,"᳚":`̎`,"ٗ":`̒`,"͗":`͐`,"ࣿ":`͐`,"ࣸ":`͐`,"ऀ":`͒`,"᳭":`̖`,"᳜":`̩`,"ٖ":`̩`,"᳕":`̫`,"͇":`̳`,"ࣹ":`͔`,"ࣺ":`͕`,゛:`゙`,゜:`゚`,"̶":`̵`,"〬":`̉`,"ׅ":`̣`,"࣭":`̣`,"᳝":`̣`,"ִ":`̣`,"ٜ":`̣`,"़":`̣`,"়":`̣`,"਼":`̣`,"઼":`̣`,"଼":`̣`,"𑇊":`̣`,"𑓃":`̣`,"𐨺":`̣`,"࣮":`̤`,"᳞":`̤`,"༷":`̥`,"〭":`̥`,"̧":`̦`,"̡":`̦`,"̹":`̦`,"᳙":`̭`,"᳘":`̮`,"॒":`̱`,"̠":`̱`,"ࣱ":`ٌ`,"ࣨ":`ٌ`,"ࣥ":`ٌ`,ﱞ:v,"ࣲ":`ٍ`,ﱟ:y,ﳲ:b,ﱠ:x,ﳳ:S,ﱡ:C,"ؚ":`ِ`,"̗":`ِ`,ﳴ:w,ﱢ:T,ﱣ:E,"ٟ":`ٕ`,"̍":`ٰ`,"݂":`ܼ`,"ਃ":`ঃ`,"ః":`ঃ`,"ಃ":`ঃ`,"ഃ":`ঃ`,"ඃ":`ঃ`,"း":`ঃ`,"𑓁":`ঃ`,"់":`่`,"່":`่`,"້":`้`,"໊":`๊`,"໋":`๋`,"꙯":`⃩`,"\u2028":` `,"\u2029":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `," ":` `,"\xA0":` `," ":` `," ":` `,ߺ:`_`,"﹍":`_`,"﹎":`_`,"﹏":`_`,"‐":`-`,"‑":`-`,"‒":`-`,"–":`-`,"﹘":`-`,"۔":`-`,"⁃":`-`,"˗":`-`,"−":`-`,"➖":`-`,Ⲻ:`-`,"⨩":`-̓`,"⸚":`-̈`,"﬩":`-̇`,"∸":`-̇`,"⨪":`-̣`,"꓾":`-.`,"~":`〜`,"؍":`,`,"٫":`,`,"‚":`,`,"¸":`,`,ꓹ:`,`,"⸲":`،`,"٬":`،`,";":`;`,"⸵":`؛`,"ः":`:`,"ઃ":`:`,":":`:`,"։":`:`,"܃":`:`,"܄":`:`,"᛬":`:`,"︰":`:`,"᠃":`:`,"᠉":`:`,"⁚":`:`,"׃":`:`,"˸":`:`,"꞉":`:`,"∶":`:`,ː:`:`,ꓽ:`:`,"⩴":`::=`,"⧴":`:→`,"!":`!`,ǃ:`!`,ⵑ:`!`,"‼":`!!`,"⁉":`!?`,ʔ:`?`,Ɂ:`?`,ॽ:`?`,Ꭾ:`?`,ꛫ:`?`,"⁈":`?!`,"⁇":`??`,"⸮":`؟`,"𝅭":`.`,"․":`.`,"܁":`.`,"܂":`.`,"꘎":`.`,"𐩐":`.`,"٠":`.`,"۰":`.`,ꓸ:`.`,ꓻ:`.,`,"‥":`..`,ꓺ:`..`,"…":`...`,"꛴":`꛳꛳`,"・":`·`,"・":`·`,"᛫":`·`,"·":`·`,"⸱":`·`,"𐄁":`·`,"•":`·`,"‧":`·`,"∙":`·`,"⋅":`·`,ꞏ:`·`,ᐧ:`·`,"⋯":`···`,ⵈ:D,ᑄ:`·<`,"⋗":`·>`,ᐷ:`·>`,ᑀ:`·>`,ᔯ:`·4`,ᑾ:`·b`,ᒀ:O,ᑺ:`·d`,ᒘ:`·J`,ᒶ:`·L`,ᑶ:`·P`,ᑗ:`·U`,ᐺ:`·V`,ᐼ:k,ᒮ:ee,ᐎ:te,ᑙ:ne,ᐌ:A,ᐐ:j,ᐒ:re,ᐔ:ie,ᐗ:ae,ᐙ:oe,ᐾ:se,ᑂ:ce,ᑆ:le,ᑛ:ue,ᑔ:de,ᑝ:fe,ᑟ:pe,ᑡ:me,ᑣ:he,ᑴ:ge,ᑸ:_e,ᑼ:ve,ᒒ:ye,ᒔ:be,ᒖ:xe,ᒚ:Se,ᒜ:Ce,ᒞ:we,ᒬ:Te,ᒰ:Ee,ᒲ:De,ᒴ:Oe,ᒸ:ke,ᓉ:Ae,ᣆ:je,ᣈ:Me,ᣊ:Ne,ᣌ:Pe,ᓋ:Fe,ᓍ:Ie,ᓜ:Le,ᓞ:Re,ᓠ:ze,ᓢ:Be,ᓤ:Ve,ᓦ:He,ᓨ:Ue,ᓶ:We,ᓸ:Ge,ᓺ:Ke,ᓼ:qe,ᓾ:Je,ᔀ:Ye,ᔂ:Xe,ᔗ:Ze,ᔙ:Qe,ᔛ:$e,ᔝ:et,ᔟ:tt,ᔡ:nt,ᔣ:rt,ᔱ:it,ᔳ:at,ᔵ:ot,ᔷ:st,ᔹ:ct,ᔻ:lt,ᣎ:ut,ᣏ:dt,ᣐ:ft,ᣑ:pt,ᣒ:mt,ᣓ:ht,ᕎ:gt,ᕛ:_t,ᕨ:vt,ᢳ:yt,ᢶ:bt,ᢹ:xt,ᣂ:St,"꠰":`।`,"॥":`।।`,"᰼":`᰻᰻`,"။":`၊၊`,"᪩":`᪨᪨`,"᪫":`᪪᪨`,"᭟":`᭞᭞`,"𐩗":`𐩖𐩖`,"𑑌":`𑑋𑑋`,"𑙂":`𑙁𑙁`,"𑱂":`𑱁𑱁`,"᱿":`᱾᱾`,"՝":`'`,"'":`'`,"‘":`'`,"’":`'`,"‛":`'`,"′":`'`,"‵":`'`,"՚":`'`,"׳":`'`,"`":`'`,"`":`'`,"`":`'`,"´":`'`,"΄":`'`,"´":`'`,"᾽":`'`,"᾿":`'`,"῾":`'`,ʹ:`'`,ʹ:`'`,ˈ:`'`,ˊ:`'`,ˋ:`'`,"˴":`'`,ʻ:`'`,ʽ:`'`,ʼ:`'`,ʾ:`'`,ꞌ:`'`,י:`'`,ߴ:`'`,ߵ:`'`,ᑊ:`'`,ᛌ:`'`,"𖽑":`'`,"𖽒":`'`,"᳓":`''`,'"':`''`,""":`''`,"“":`''`,"”":`''`,"‟":`''`,"″":`''`,"‶":`''`,"〃":`''`,"״":`''`,"˝":`''`,ʺ:`''`,"˶":`''`,ˮ:`''`,ײ:`''`,"‴":`'''`,"‷":`'''`,"⁗":`''''`,Ɓ:`'B`,Ɗ:`'D`,ʼn:`'n`,Ƥ:`'P`,Ƭ:`'T`,Ƴ:`'Y`,"[":`(`,"❨":`(`,"❲":`(`,"〔":`(`,"﴾":`(`,"⸨":`((`,"㈠":`(ー)`,"⑵":`(2)`,"⒇":`(2O)`,"⑶":`(3)`,"⑷":`(4)`,"⑸":`(5)`,"⑹":`(6)`,"⑺":`(7)`,"⑻":`(8)`,"⑼":`(9)`,"⒜":`(a)`,"🄐":`(A)`,"⒝":`(b)`,"🄑":`(B)`,"⒞":`(c)`,"🄒":`(C)`,"⒟":`(d)`,"🄓":`(D)`,"⒠":`(e)`,"🄔":`(E)`,"⒡":`(f)`,"🄕":`(F)`,"⒢":`(g)`,"🄖":`(G)`,"⒣":`(h)`,"🄗":`(H)`,"⒤":`(i)`,"⒥":`(j)`,"🄙":`(J)`,"⒦":`(k)`,"🄚":`(K)`,"⑴":`(l)`,"🄘":`(l)`,"⒧":`(l)`,"🄛":`(L)`,"⑿":`(l2)`,"⒀":`(l3)`,"⒁":`(l4)`,"⒂":`(l5)`,"⒃":`(l6)`,"⒄":`(l7)`,"⒅":`(l8)`,"⒆":`(l9)`,"⑾":`(ll)`,"⑽":`(lO)`,"🄜":`(M)`,"⒩":`(n)`,"🄝":`(N)`,"⒪":`(o)`,"🄞":`(O)`,"⒫":`(p)`,"🄟":`(P)`,"⒬":`(q)`,"🄠":`(Q)`,"⒭":`(r)`,"🄡":`(R)`,"⒨":`(rn)`,"⒮":`(s)`,"🄢":`(S)`,"🄪":`(S)`,"⒯":`(t)`,"🄣":`(T)`,"⒰":`(u)`,"🄤":`(U)`,"⒱":`(v)`,"🄥":`(V)`,"⒲":`(w)`,"🄦":`(W)`,"⒳":`(x)`,"🄧":`(X)`,"⒴":`(y)`,"🄨":`(Y)`,"⒵":`(z)`,"🄩":`(Z)`,"㈀":`(ᄀ)`,"㈎":`(가)`,"㈁":`(ᄂ)`,"㈏":`(나)`,"㈂":`(ᄃ)`,"㈐":`(다)`,"㈃":`(ᄅ)`,"㈑":`(라)`,"㈄":`(ᄆ)`,"㈒":`(마)`,"㈅":`(ᄇ)`,"㈓":`(바)`,"㈆":`(ᄉ)`,"㈔":`(사)`,"㈇":`(ᄋ)`,"㈕":`(아)`,"㈝":`(오전)`,"㈞":`(오후)`,"㈈":`(ᄌ)`,"㈖":`(자)`,"㈜":`(주)`,"㈉":`(ᄎ)`,"㈗":`(차)`,"㈊":`(ᄏ)`,"㈘":`(카)`,"㈋":`(ᄐ)`,"㈙":`(타)`,"㈌":`(ᄑ)`,"㈚":`(파)`,"㈍":`(ᄒ)`,"㈛":`(하)`,"㈦":`(七)`,"㈢":`(三)`,"🉁":`(三)`,"㈨":`(九)`,"㈡":`(二)`,"🉂":`(二)`,"㈤":`(五)`,"㈹":`(代)`,"㈽":`(企)`,"㉁":`(休)`,"㈧":`(八)`,"㈥":`(六)`,"㈸":`(労)`,"🉇":`(勝)`,"㈩":`(十)`,"㈿":`(協)`,"㈴":`(名)`,"㈺":`(呼)`,"㈣":`(四)`,"㈯":`(土)`,"㈻":`(学)`,"🉃":`(安)`,"🉅":`(打)`,"🉈":`(敗)`,"㈰":`(日)`,"㈪":`(月)`,"㈲":`(有)`,"㈭":`(木)`,"🉀":`(本)`,"㈱":`(株)`,"㈬":`(水)`,"㈫":`(火)`,"🉄":`(点)`,"㈵":`(特)`,"🉆":`(盗)`,"㈼":`(監)`,"㈳":`(社)`,"㈷":`(祝)`,"㉀":`(祭)`,"㉂":`(自)`,"㉃":`(至)`,"㈶":`(財)`,"㈾":`(資)`,"㈮":`(金)`,"]":`)`,"❩":`)`,"❳":`)`,"〕":`)`,"﴿":`)`,"⸩":`))`,"❴":`{`,"𝄔":`{`,"❵":`}`,"〚":`⟦`,"〛":`⟧`,"⟨":`❬`,"〈":`❬`,"〈":`❬`,"㇛":`❬`,く:`❬`,𡿨:`❬`,"⟩":`❭`,"〉":`❭`,"〉":`❭`,"^":`︿`,"⸿":`¶`,"⁎":`*`,"٭":`*`,"∗":`*`,𐌟:`*`,"᜵":`/`,"⁁":`/`,"∕":`/`,"⁄":`/`,"╱":`/`,"⟋":`/`,"⧸":`/`,"𝈺":`/`,"㇓":`/`,〳:`/`,Ⳇ:`/`,ノ:`/`,丿:`/`,"⼃":`/`,"⧶":`/̄`,"⫽":`//`,"⫻":`///`,"\":`\\`,"﹨":`\\`,"∖":`\\`,"⟍":`\\`,"⧵":`\\`,"⧹":`\\`,"𝈏":`\\`,"𝈻":`\\`,"㇔":`\\`,丶:`\\`,"⼂":`\\`,"⳹":`\\\\`,"⑊":`\\\\`,"⟈":`\\ᑕ`,ꝸ:`&`,"૰":`॰`,"𑂻":`॰`,"𑇇":`॰`,"⚬":`॰`,"𑇛":`꣼`,"៙":`๏`,"៕":`๚`,"៚":`๛`,"༌":`་`,"༎":`།།`,"˄":`^`,ˆ:`^`,"꙾":`ˇ`,"˘":`ˇ`,"‾":`ˉ`,"﹉":`ˉ`,"﹊":`ˉ`,"﹋":`ˉ`,"﹌":`ˉ`,"¯":`ˉ`," ̄":`ˉ`,"▔":`ˉ`,ъ:`ˉb`,ꙑ:Ct,"͵":`ˏ`,"˻":`˪`,"꜖":`˪`,"꜔":`˫`,"。":`˳`,"⸰":`°`,"˚":`°`,"∘":`°`,"○":`°`,"◦":`°`,"⍜":`°̲`,"⍤":`°̈`,"℃":`°C`,"℉":`°F`,"௵":`௳`,"༛":`༚༚`,"༟":`༚༝`,"࿎":`༝༚`,"༞":`༝༝`,"Ⓒ":`©`,"Ⓡ":`®`,"Ⓟ":`℗`,"𝈛":`⅄`,"⯬":`↞`,"⯭":`↟`,"⯮":`↠`,"⯯":`↡`,"↵":`↲`,"⥥":`⇃⇂`,"⥯":`⇃ᛚ`,"𝛛":`∂`,"𝜕":`∂`,"𝝏":`∂`,"𝞉":`∂`,"𝟃":`∂`,"𞣌":`∂`,"𞣍":`∂̵`,ð:wt,"⌀":`∅`,"𝛁":`∇`,"𝛻":`∇`,"𝜵":`∇`,"𝝯":`∇`,"𝞩":`∇`,𑢨:`∇`,"⍢":`∇̈`,"⍫":`∇̴`,"█":`∎`,"■":`∎`,"⨿":`∐`,"᛭":`+`,"➕":`+`,𐊛:`+`,"⨣":`+̂`,"⨢":`+̊`,"⨤":`+̃`,"∔":`+̇`,"⨥":`+̣`,"⨦":`+̰`,"⨧":`+₂`,"➗":`÷`,"‹":`<`,"❮":`<`,"˂":`<`,"𝈶":`<`,ᐸ:`<`,ᚲ:`<`,"⋖":`<·`,Ⲵ:`<·`,ᑅ:`<·`,"≪":`<<`,"⋘":`<<<`,"᐀":`=`,"⹀":`=`,"゠":`=`,"꓿":`=`,"≚":`=̆`,"≙":`=̂`,"≗":`=̊`,"≐":`=̇`,"≑":`=̣̇`,"⩮":`=⃰`,"⩵":`==`,"⩶":`===`,"≞":`=ͫ`,"›":`>`,"❯":`>`,"˃":`>`,"𝈷":`>`,ᐳ:`>`,𖼿:`>`,ᑁ:`>·`,"⪥":`><`,"≫":`>>`,"⨠":`>>`,"⋙":`>>>`,"⁓":`~`,"˜":`~`,"῀":`~`,"∼":`~`,"⍨":`~̈`,"⸞":`~̇`,"⩪":`~̇`,"⸟":`~̣`,"𞣈":`∠`,"⋀":`∧`,"∯":`∮∮`,"∰":`∮∮∮`,"⸫":`∴`,"⸪":`∵`,"⸬":`∷`,"𑇞":`≈`,"♎":`≏`,"🝞":`≏`,"≣":`≡`,"⨃":`⊍`,"⨄":`⊎`,"𝈸":`⊏`,"𝈹":`⊐`,"⨅":`⊓`,"⨆":`⊔`,"⨂":`⊗`,"⍟":`⊛`,"🝱":`⊠`,"🝕":`⊡`,"◁":`⊲`,"▷":`⊳`,"⍣":`⋆̈`,"︴":`⌇`,"◠":`⌒`,"⨽":`⌙`,"⌥":`⌤`,"⧇":`⌻`,"◎":`⌾`,"⦾":`⌾`,"⧅":`⍂`,"⦰":`⍉`,"⏃":`⍋`,"⏂":`⍎`,"⏁":`⍕`,"⏆":`⍭`,"☸":`⎈`,"︵":`⏜`,"︶":`⏝`,"︷":`⏞`,"︸":`⏟`,"︹":`⏠`,"︺":`⏡`,"▱":`⏥`,"⏼":`⏻`,"︱":`│`,"|":`│`,"┃":`│`,"┏":`┌`,"┣":`├`,"▐":`▌`,"▗":`▖`,"▝":`▘`,"☐":`□`,"■":`▪`,"▸":`▶`,"►":`▶`,"⳩":`☧`,"🜊":`☩`,"🌒":`☽`,"🌙":`☽`,"⏾":`☾`,"🌘":`☾`,"⧙":`⦚`,"🜺":`⧟`,"⨾":`⨟`,"𐆠":`⳨`,"♩":`𝅘𝅥`,"♪":`𝅘𝅥𝅮`,"⓪":`🄍`,"↺":`🄎`,"˙":`ॱ`,ൎ:`ॱ`,"-":`ー`,"—":`ー`,"―":`ー`,"─":`ー`,"━":`ー`,"㇐":`ー`,ꟷ:`ー`,ᅳ:`ー`,ㅡ:`ー`,一:`ー`,"⼀":`ー`,ᆖ:Tt,ힹ:Et,ힺ:Dt,ힻ:Ot,ힼ:kt,ᆕ:At,ᅴ:jt,ㅢ:Mt,ᆗ:Nt,"🄏":`$⃠`,"₤":`£`,"〒":`₸`,"〶":`₸`,"᭜":`᭐`,"꧆":`꧐`,"𑓑":`১`,"೧":`౧`,ၥ:`၁`,"①":`➀`,"⑩":`➉`,"⏨":`₁₀`,"𝟐":`2`,"𝟚":`2`,"𝟤":`2`,"𝟮":`2`,"𝟸":`2`,"🯲":`2`,Ꝛ:`2`,Ƨ:`2`,Ϩ:`2`,Ꙅ:`2`,ᒿ:`2`,ꛯ:`2`,ꧏ:`٢`,"۲":`٢`,"૨":`२`,"𑓒":`২`,"೨":`౨`,"②":`➁`,ƻ:`2̵`,"🄃":`2,`,"⒉":`2.`,"㏵":`22日`,"㍮":`22点`,"㏶":`23日`,"㍯":`23点`,"㏷":`24日`,"㍰":`24点`,"㏸":`25日`,"㏹":`26日`,"㏺":`27日`,"㏻":`28日`,"㏼":`29日`,"㏴":`2l日`,"㍭":`2l点`,"⒛":`2O.`,"㏳":`2O日`,"㍬":`2O点`,"෩":`෨ා`,"෯":`෨ී`,"㏡":`2日`,"㋁":`2月`,"㍚":`2点`,"𝈆":`3`,"𝟑":`3`,"𝟛":`3`,"𝟥":`3`,"𝟯":`3`,"𝟹":`3`,"🯳":`3`,Ɜ:`3`,Ȝ:`3`,Ʒ:`3`,Ꝫ:`3`,Ⳍ:`3`,З:`3`,Ӡ:`3`,𖼻:`3`,𑣊:`3`,"۳":`٣`,"𞣉":`٣`,"૩":`३`,"③":`➂`,Ҙ:`3̦`,"🄄":`3,`,"⒊":`3.`,"㏾":`3l日`,"㏽":`3O日`,"㏢":`3日`,"㋂":`3月`,"㍛":`3点`,"𝟒":`4`,"𝟜":`4`,"𝟦":`4`,"𝟰":`4`,"𝟺":`4`,"🯴":`4`,Ꮞ:`4`,𑢯:`4`,"۴":`٤`,"૪":`४`,"④":`➃`,"🄅":`4,`,"⒋":`4.`,ᔰ:`4·`,"㏣":`4日`,"㋃":`4月`,"㍜":`4点`,"𝟓":`5`,"𝟝":`5`,"𝟧":`5`,"𝟱":`5`,"𝟻":`5`,"🯵":`5`,Ƽ:`5`,𑢻:`5`,"⑤":`➄`,"🄆":`5,`,"⒌":`5.`,"㏤":`5日`,"㋄":`5月`,"㍝":`5点`,"𝟔":`6`,"𝟞":`6`,"𝟨":`6`,"𝟲":`6`,"𝟼":`6`,"🯶":`6`,Ⳓ:`6`,б:`6`,Ꮾ:`6`,𑣕:`6`,"۶":`٦`,"𑓖":`৬`,"⑥":`➅`,"🄇":`6,`,"⒍":`6.`,"㏥":`6日`,"㋅":`6月`,"㍞":`6点`,"𝈒":`7`,"𝟕":`7`,"𝟟":`7`,"𝟩":`7`,"𝟳":`7`,"𝟽":`7`,"🯷":`7`,𐓒:`7`,𑣆:`7`,"⑦":`➆`,"🄈":`7,`,"⒎":`7.`,"㏦":`7日`,"㋆":`7月`,"㍟":`7点`,"ଃ":`8`,"৪":`8`,"੪":`8`,"𞣋":`8`,"𝟖":`8`,"𝟠":`8`,"𝟪":`8`,"𝟴":`8`,"𝟾":`8`,"🯸":`8`,ȣ:`8`,Ȣ:`8`,𐌚:`8`,"૮":`८`,"⑧":`➇`,"🄉":`8,`,"⒏":`8.`,"㏧":`8日`,"㋇":`8月`,"㍠":`8点`,"੧":`9`,"୨":`9`,"৭":`9`,"൭":`9`,"𝟗":`9`,"𝟡":`9`,"𝟫":`9`,"𝟵":`9`,"𝟿":`9`,"🯹":`9`,Ꝯ:`9`,Ⳋ:`9`,𑣌:`9`,𑢬:`9`,𑣖:`9`,"१":`٩`,"𑣤":`٩`,"۹":`٩`,"೯":`౯`,"⑨":`➈`,"🄊":`9,`,"⒐":`9.`,"㏨":`9日`,"㋈":`9月`,"㍡":`9点`,"⍺":`a`,a:`a`,𝐚:`a`,𝑎:`a`,𝒂:`a`,𝒶:`a`,𝓪:`a`,𝔞:`a`,𝕒:`a`,𝖆:`a`,𝖺:`a`,𝗮:`a`,𝘢:`a`,𝙖:`a`,𝚊:`a`,ɑ:`a`,α:`a`,𝛂:`a`,𝛼:`a`,𝜶:`a`,𝝰:`a`,𝞪:`a`,а:`a`,"ⷶ":`ͣ`,A:`A`,𝐀:`A`,𝐴:`A`,𝑨:`A`,𝒜:`A`,𝓐:`A`,𝔄:`A`,𝔸:`A`,𝕬:`A`,𝖠:`A`,𝗔:`A`,𝘈:`A`,𝘼:`A`,𝙰:`A`,Α:`A`,𝚨:`A`,𝛢:`A`,𝜜:`A`,𝝖:`A`,𝞐:`A`,А:`A`,Ꭺ:`A`,ᗅ:`A`,ꓮ:`A`,𖽀:`A`,𐊠:`A`,"⍶":`a̲`,ǎ:`ă`,Ǎ:`Ă`,ȧ:`å`,Ȧ:`Å`,ẚ:`ả`,"℀":`a/c`,"℁":`a/s`,ꜳ:`aa`,Ꜳ:`AA`,æ:`ae`,ӕ:`ae`,Æ:`AE`,Ӕ:`AE`,ꜵ:`ao`,Ꜵ:`AO`,"🜇":`AR`,ꜷ:`au`,Ꜷ:`AU`,ꜹ:`av`,ꜻ:`av`,Ꜹ:`AV`,Ꜻ:`AV`,ꜽ:`ay`,Ꜽ:`AY`,ꭺ:`ᴀ`,"∀":`Ɐ`,"𝈗":`Ɐ`,ᗄ:`Ɐ`,ꓯ:`Ɐ`,𐐟:`Ɒ`,𝐛:`b`,𝑏:`b`,𝒃:`b`,𝒷:`b`,𝓫:`b`,𝔟:`b`,𝕓:`b`,𝖇:`b`,𝖻:`b`,𝗯:`b`,𝘣:`b`,𝙗:`b`,𝚋:`b`,Ƅ:`b`,Ь:`b`,Ꮟ:`b`,ᑲ:`b`,ᖯ:`b`,B:`B`,ℬ:`B`,𝐁:`B`,𝐵:`B`,𝑩:`B`,𝓑:`B`,𝔅:`B`,𝔹:`B`,𝕭:`B`,𝖡:`B`,𝗕:`B`,𝘉:`B`,𝘽:`B`,𝙱:`B`,Ꞵ:`B`,Β:`B`,𝚩:`B`,𝛣:`B`,𝜝:`B`,𝝗:`B`,𝞑:`B`,В:`B`,Ᏼ:`B`,ᗷ:`B`,ꓐ:`B`,𐊂:`B`,𐊡:`B`,𐌁:`B`,ɓ:`b̔`,ᑳ:`ḃ`,ƃ:`b̄`,Ƃ:`b̄`,Б:`b̄`,ƀ:`b̵`,ҍ:`b̵`,Ҍ:`b̵`,ѣ:`b̵`,Ѣ:`b̵`,ᑿ:`b·`,ᒁ:Pt,ᒈ:`b'`,Ы:`bl`,в:`ʙ`,ᏼ:`ʙ`,c:`c`,ⅽ:`c`,𝐜:`c`,𝑐:`c`,𝒄:`c`,𝒸:`c`,𝓬:`c`,𝔠:`c`,𝕔:`c`,𝖈:`c`,𝖼:`c`,𝗰:`c`,𝘤:`c`,𝙘:`c`,𝚌:`c`,ᴄ:`c`,ϲ:`c`,ⲥ:`c`,с:`c`,ꮯ:`c`,𐐽:`c`,"ⷭ":`ͨ`,"🝌":`C`,"𑣲":`C`,"𑣩":`C`,C:`C`,Ⅽ:`C`,ℂ:`C`,ℭ:`C`,𝐂:`C`,𝐶:`C`,𝑪:`C`,𝒞:`C`,𝓒:`C`,𝕮:`C`,𝖢:`C`,𝗖:`C`,𝘊:`C`,𝘾:`C`,𝙲:`C`,Ϲ:`C`,Ⲥ:`C`,С:`C`,Ꮯ:`C`,ꓚ:`C`,𐊢:`C`,𐌂:`C`,𐐕:`C`,𐔜:`C`,"¢":`c̸`,ȼ:`c̸`,"₡":`C⃫`,"🅮":`C⃠`,ç:`c̦`,ҫ:`c̦`,Ç:`C̦`,Ҫ:`C̦`,Ƈ:`C'`,"℅":`c/o`,"℆":`c/u`,"🅭":`㏄ ⃝`,"⋴":`ꞓ`,ɛ:`ꞓ`,ε:`ꞓ`,ϵ:`ꞓ`,𝛆:`ꞓ`,𝛜:`ꞓ`,𝜀:`ꞓ`,𝜖:`ꞓ`,𝜺:`ꞓ`,𝝐:`ꞓ`,𝝴:`ꞓ`,𝞊:`ꞓ`,𝞮:`ꞓ`,𝟄:`ꞓ`,ⲉ:`ꞓ`,є:`ꞓ`,ԑ:`ꞓ`,ꮛ:`ꞓ`,𑣎:`ꞓ`,𐐩:`ꞓ`,"€":`Ꞓ`,Ⲉ:`Ꞓ`,Є:`Ꞓ`,"⍷":`ꞓ̲`,ͽ:`ꜿ`,Ͽ:`Ꜿ`,ⅾ:`d`,ⅆ:`d`,𝐝:`d`,𝑑:`d`,𝒅:`d`,𝒹:`d`,𝓭:`d`,𝔡:`d`,𝕕:`d`,𝖉:`d`,𝖽:`d`,𝗱:`d`,𝘥:`d`,𝙙:`d`,𝚍:`d`,ԁ:`d`,Ꮷ:`d`,ᑯ:`d`,ꓒ:`d`,Ⅾ:`D`,ⅅ:`D`,𝐃:`D`,𝐷:`D`,𝑫:`D`,𝒟:`D`,𝓓:`D`,𝔇:`D`,𝔻:`D`,𝕯:`D`,𝖣:`D`,𝗗:`D`,𝘋:`D`,𝘿:`D`,𝙳:`D`,Ꭰ:`D`,ᗞ:`D`,ᗪ:`D`,ꓓ:`D`,ɗ:`d̔`,ɖ:`d̨`,ƌ:`d̄`,đ:`d̵`,Đ:`D̵`,Ð:`D̵`,Ɖ:`D̵`,"₫":`ḏ̵`,ꝺ:`Ꝺ`,ᑻ:`d·`,ᒇ:`d'`,ʤ:`dȝ`,dz:`dz`,ʣ:`dz`,Dz:`Dz`,DZ:`DZ`,dž:`dž`,Dž:`Dž`,DŽ:`DŽ`,ʥ:`dʑ`,ꭰ:`ᴅ`,"⸹":`ẟ`,δ:`ẟ`,𝛅:`ẟ`,𝛿:`ẟ`,𝜹:`ẟ`,𝝳:`ẟ`,𝞭:`ẟ`,ծ:`ẟ`,ᕷ:`ẟ`,℮:`e`,e:`e`,ℯ:`e`,ⅇ:`e`,𝐞:`e`,𝑒:`e`,𝒆:`e`,𝓮:`e`,𝔢:`e`,𝕖:`e`,𝖊:`e`,𝖾:`e`,𝗲:`e`,𝘦:`e`,𝙚:`e`,𝚎:`e`,ꬲ:`e`,е:`e`,ҽ:`e`,"ⷷ":`ͤ`,"⋿":`E`,E:`E`,ℰ:`E`,𝐄:`E`,𝐸:`E`,𝑬:`E`,𝓔:`E`,𝔈:`E`,𝔼:`E`,𝕰:`E`,𝖤:`E`,𝗘:`E`,𝘌:`E`,𝙀:`E`,𝙴:`E`,Ε:`E`,𝚬:`E`,𝛦:`E`,𝜠:`E`,𝝚:`E`,𝞔:`E`,Е:`E`,ⴹ:`E`,Ꭼ:`E`,ꓰ:`E`,𑢦:`E`,𑢮:`E`,𐊆:`E`,ě:`ĕ`,Ě:`Ĕ`,ɇ:`e̸`,Ɇ:`E̸`,ҿ:`ę`,ꭼ:`ᴇ`,ə:`ǝ`,ә:`ǝ`,"∃":`Ǝ`,ⴺ:`Ǝ`,ꓱ:`Ǝ`,ɚ:Ft,ᴔ:`ǝo`,ꭁ:It,ꭂ:Lt,Ә:`Ə`,"𝈡":`Ɛ`,ℇ:`Ɛ`,Ԑ:`Ɛ`,Ꮛ:`Ɛ`,𖼭:`Ɛ`,𐐁:`Ɛ`,ᶟ:`ᵋ`,ᴈ:`ɜ`,з:`ɜ`,ҙ:Rt,𐑂:`ɞ`,ꞝ:`ʚ`,𐐪:`ʚ`,𝐟:`f`,𝑓:`f`,𝒇:`f`,𝒻:`f`,𝓯:`f`,𝔣:`f`,𝕗:`f`,𝖋:`f`,𝖿:`f`,𝗳:`f`,𝘧:`f`,𝙛:`f`,𝚏:`f`,ꬵ:`f`,ꞙ:`f`,ſ:`f`,ẝ:`f`,ք:`f`,"𝈓":`F`,ℱ:`F`,𝐅:`F`,𝐹:`F`,𝑭:`F`,𝓕:`F`,𝔉:`F`,𝔽:`F`,𝕱:`F`,𝖥:`F`,𝗙:`F`,𝘍:`F`,𝙁:`F`,𝙵:`F`,Ꞙ:`F`,Ϝ:`F`,𝟊:`F`,ᖴ:`F`,ꓝ:`F`,𑣂:`F`,𑢢:`F`,𐊇:`F`,𐊥:`F`,𐔥:`F`,ƒ:`f̦`,Ƒ:`F̦`,ᵮ:`f̴`,"℻":`FAX`,ff:`ff`,ffi:`ffi`,ffl:`ffl`,fi:`fi`,fl:`fl`,ʩ:`fŋ`,ᖵ:`Ⅎ`,ꓞ:`Ⅎ`,"𝈰":`ꟻ`,ᖷ:`ꟻ`,g:`g`,ℊ:`g`,𝐠:`g`,𝑔:`g`,𝒈:`g`,𝓰:`g`,𝔤:`g`,𝕘:`g`,𝖌:`g`,𝗀:`g`,𝗴:`g`,𝘨:`g`,𝙜:`g`,𝚐:`g`,ɡ:`g`,ᶃ:`g`,ƍ:`g`,ց:`g`,𝐆:`G`,𝐺:`G`,𝑮:`G`,𝒢:`G`,𝓖:`G`,𝔊:`G`,𝔾:`G`,𝕲:`G`,𝖦:`G`,𝗚:`G`,𝘎:`G`,𝙂:`G`,𝙶:`G`,Ԍ:`G`,Ꮐ:`G`,Ᏻ:`G`,ꓖ:`G`,ᶢ:`ᵍ`,ɠ:`g̔`,ǧ:`ğ`,Ǧ:`Ğ`,ǵ:`ģ`,ǥ:`g̵`,Ǥ:`G̵`,Ɠ:`G'`,ԍ:`ɢ`,ꮐ:`ɢ`,ᏻ:`ɢ`,h:`h`,ℎ:`h`,𝐡:`h`,𝒉:`h`,𝒽:`h`,𝓱:`h`,𝔥:`h`,𝕙:`h`,𝖍:`h`,𝗁:`h`,𝗵:`h`,𝘩:`h`,𝙝:`h`,𝚑:`h`,һ:`h`,հ:`h`,Ꮒ:`h`,H:`H`,ℋ:`H`,ℌ:`H`,ℍ:`H`,𝐇:`H`,𝐻:`H`,𝑯:`H`,𝓗:`H`,𝕳:`H`,𝖧:`H`,𝗛:`H`,𝘏:`H`,𝙃:`H`,𝙷:`H`,Η:`H`,𝚮:`H`,𝛨:`H`,𝜢:`H`,𝝜:`H`,𝞖:`H`,Ⲏ:`H`,Н:`H`,Ꮋ:`H`,ᕼ:`H`,ꓧ:`H`,𐋏:`H`,ᵸ:`ᴴ`,ɦ:`h̔`,ꚕ:`h̔`,Ᏺ:`h̔`,Ⱨ:`H̩`,Ң:`H̩`,ħ:`h̵`,ℏ:`h̵`,ћ:`h̵`,Ħ:`H̵`,Ӊ:`H̦`,Ӈ:`H̦`,н:`ʜ`,ꮋ:`ʜ`,ң:zt,ӊ:Bt,ӈ:Vt,Ԋ:`Ƕ`,ꮀ:`ⱶ`,Ͱ:`Ⱶ`,Ꭸ:`Ⱶ`,Ꮀ:`Ⱶ`,ꚱ:`Ⱶ`,ꞕ:`ꜧ`,"˛":`i`,"⍳":`i`,i:`i`,ⅰ:`i`,ℹ:`i`,ⅈ:`i`,𝐢:`i`,𝑖:`i`,𝒊:`i`,𝒾:`i`,𝓲:`i`,𝔦:`i`,𝕚:`i`,𝖎:`i`,𝗂:`i`,𝗶:`i`,𝘪:`i`,𝙞:`i`,𝚒:`i`,ı:`i`,𝚤:`i`,ɪ:`i`,ɩ:`i`,ι:`i`,ι:`i`,ͺ:`i`,𝛊:`i`,𝜄:`i`,𝜾:`i`,𝝸:`i`,𝞲:`i`,і:`i`,ꙇ:`i`,ӏ:`i`,ꭵ:`i`,Ꭵ:`i`,𑣃:`i`,"ⓛ":`Ⓘ`,"⍸":`i̲`,ǐ:`ĭ`,Ǐ:`Ĭ`,ɨ:`i̵`,ᵻ:`i̵`,ᵼ:`i̵`,ⅱ:`ii`,ⅲ:`iii`,ij:`ij`,ⅳ:`iv`,ⅸ:`ix`,j:`j`,ⅉ:`j`,𝐣:`j`,𝑗:`j`,𝒋:`j`,𝒿:`j`,𝓳:`j`,𝔧:`j`,𝕛:`j`,𝖏:`j`,𝗃:`j`,𝗷:`j`,𝘫:`j`,𝙟:`j`,𝚓:`j`,ϳ:`j`,ј:`j`,J:`J`,𝐉:`J`,𝐽:`J`,𝑱:`J`,𝒥:`J`,𝓙:`J`,𝔍:`J`,𝕁:`J`,𝕵:`J`,𝖩:`J`,𝗝:`J`,𝘑:`J`,𝙅:`J`,𝙹:`J`,Ʝ:`J`,Ϳ:`J`,Ј:`J`,Ꭻ:`J`,ᒍ:`J`,ꓙ:`J`,ɉ:`j̵`,Ɉ:`J̵`,ᒙ:`J·`,𝚥:`ȷ`,յ:`ȷ`,ꭻ:`ᴊ`,𝐤:`k`,𝑘:`k`,𝒌:`k`,𝓀:`k`,𝓴:`k`,𝔨:`k`,𝕜:`k`,𝖐:`k`,𝗄:`k`,𝗸:`k`,𝘬:`k`,𝙠:`k`,𝚔:`k`,K:`K`,K:`K`,𝐊:`K`,𝐾:`K`,𝑲:`K`,𝒦:`K`,𝓚:`K`,𝔎:`K`,𝕂:`K`,𝕶:`K`,𝖪:`K`,𝗞:`K`,𝘒:`K`,𝙆:`K`,𝙺:`K`,Κ:`K`,𝚱:`K`,𝛫:`K`,𝜥:`K`,𝝟:`K`,𝞙:`K`,Ⲕ:`K`,К:`K`,Ꮶ:`K`,ᛕ:`K`,ꓗ:`K`,𐔘:`K`,ƙ:`k̔`,Ⱪ:`K̩`,Қ:`K̩`,"₭":`K̵`,Ꝁ:`K̵`,Ҟ:`K̵`,Ƙ:`K'`,"׀":`l`,"|":`l`,"∣":`l`,"⏽":`l`,"│":`l`,"١":`l`,"۱":`l`,"𐌠":`l`,"𞣇":`l`,"𝟏":`l`,"𝟙":`l`,"𝟣":`l`,"𝟭":`l`,"𝟷":`l`,"🯱":`l`,I:`l`,I:`l`,Ⅰ:`l`,ℐ:`l`,ℑ:`l`,𝐈:`l`,𝐼:`l`,𝑰:`l`,𝓘:`l`,𝕀:`l`,𝕴:`l`,𝖨:`l`,𝗜:`l`,𝘐:`l`,𝙄:`l`,𝙸:`l`,Ɩ:`l`,l:`l`,ⅼ:`l`,ℓ:`l`,𝐥:`l`,𝑙:`l`,𝒍:`l`,𝓁:`l`,𝓵:`l`,𝔩:`l`,𝕝:`l`,𝖑:`l`,𝗅:`l`,𝗹:`l`,𝘭:`l`,𝙡:`l`,𝚕:`l`,ǀ:`l`,Ι:`l`,𝚰:`l`,𝛪:`l`,𝜤:`l`,𝝞:`l`,𝞘:`l`,Ⲓ:`l`,І:`l`,Ӏ:`l`,ו:`l`,ן:`l`,ا:`l`,𞸀:`l`,𞺀:`l`,ﺎ:`l`,ﺍ:`l`,ߊ:`l`,ⵏ:`l`,ᛁ:`l`,ꓲ:`l`,𖼨:`l`,𐊊:`l`,𐌉:`l`,"𝈪":`L`,Ⅼ:`L`,ℒ:`L`,𝐋:`L`,𝐿:`L`,𝑳:`L`,𝓛:`L`,𝔏:`L`,𝕃:`L`,𝕷:`L`,𝖫:`L`,𝗟:`L`,𝘓:`L`,𝙇:`L`,𝙻:`L`,Ⳑ:`L`,Ꮮ:`L`,ᒪ:`L`,ꓡ:`L`,𖼖:`L`,𑢣:`L`,𑢲:`L`,𐐛:`L`,𐔦:`L`,ﴼ:`l̋`,ﴽ:`l̋`,ł:`l̸`,Ł:`L̸`,ɭ:`l̨`,Ɨ:`l̵`,ƚ:`l̵`,ɫ:`l̴`,إ:`lٕ`,ﺈ:`lٕ`,ﺇ:`lٕ`,ٳ:`lٕ`,ŀ:`l·`,Ŀ:`l·`,ᒷ:`l·`,"🄂":`l,`,"⒈":`l.`,ױ:`l'`,"⒓":`l2.`,"㏫":`l2日`,"㋋":`l2月`,"㍤":`l2点`,"⒔":`l3.`,"㏬":`l3日`,"㍥":`l3点`,"⒕":`l4.`,"㏭":`l4日`,"㍦":`l4点`,"⒖":`l5.`,"㏮":`l5日`,"㍧":`l5点`,"⒗":`l6.`,"㏯":`l6日`,"㍨":`l6点`,"⒘":`l7.`,"㏰":`l7日`,"㍩":`l7点`,"⒙":`l8.`,"㏱":`l8日`,"㍪":`l8点`,"⒚":`l9.`,"㏲":`l9日`,"㍫":`l9点`,lj:`lj`,IJ:`lJ`,Lj:`Lj`,LJ:`LJ`,"‖":`ll`,"∥":`ll`,Ⅱ:`ll`,ǁ:`ll`,װ:`ll`,"𐆙":`l̵l̵`,"⒒":`ll.`,Ⅲ:`lll`,"𐆘":`l̵l̵S̵`,"㏪":`ll日`,"㋊":`ll月`,"㍣":`ll点`,Ю:`lO`,"⒑":`lO.`,"㏩":`lO日`,"㋉":`lO月`,"㍢":`lO点`,ʪ:`ls`,"₶":`lt`,Ⅳ:`lV`,Ⅸ:`lX`,ɮ:`lȝ`,ʫ:`lz`,أ:`lٴ`,ﺄ:`lٴ`,ﺃ:`lٴ`,ٲ:`lٴ`,ٵ:`lٴ`,ﷳ:Ht,ﷲ:Ut,"㏠":`l日`,"㋀":`l月`,"㍙":`l点`,ⳑ:`ʟ`,ꮮ:`ʟ`,𐑃:`ʟ`,M:`M`,Ⅿ:`M`,ℳ:`M`,𝐌:`M`,𝑀:`M`,𝑴:`M`,𝓜:`M`,𝔐:`M`,𝕄:`M`,𝕸:`M`,𝖬:`M`,𝗠:`M`,𝘔:`M`,𝙈:`M`,𝙼:`M`,Μ:`M`,𝚳:`M`,𝛭:`M`,𝜧:`M`,𝝡:`M`,𝞛:`M`,Ϻ:`M`,Ⲙ:`M`,М:`M`,Ꮇ:`M`,ᗰ:`M`,ᛖ:`M`,ꓟ:`M`,𐊰:`M`,𐌑:`M`,Ӎ:`M̦`,"🝫":`MB`,"ⷨ":`ᷟ`,𝐧:`n`,𝑛:`n`,𝒏:`n`,𝓃:`n`,𝓷:`n`,𝔫:`n`,𝕟:`n`,𝖓:`n`,𝗇:`n`,𝗻:`n`,𝘯:`n`,𝙣:`n`,𝚗:`n`,ո:`n`,ռ:`n`,N:`N`,ℕ:`N`,𝐍:`N`,𝑁:`N`,𝑵:`N`,𝒩:`N`,𝓝:`N`,𝔑:`N`,𝕹:`N`,𝖭:`N`,𝗡:`N`,𝘕:`N`,𝙉:`N`,𝙽:`N`,Ν:`N`,𝚴:`N`,𝛮:`N`,𝜨:`N`,𝝢:`N`,𝞜:`N`,Ⲛ:`N`,ꓠ:`N`,𐔓:`N`,"𐆎":`N̊`,ɳ:`n̨`,ƞ:`n̩`,η:`n̩`,𝛈:`n̩`,𝜂:`n̩`,𝜼:`n̩`,𝝶:`n̩`,𝞰:`n̩`,Ɲ:`N̦`,ᵰ:`n̴`,nj:`nj`,Nj:`Nj`,NJ:`NJ`,"№":`No`,ͷ:`ᴎ`,и:`ᴎ`,𐑍:`ᴎ`,ņ:`ɲ`,"ం":`o`,"ಂ":`o`,"ം":`o`,"ං":`o`,"०":`o`,"੦":`o`,"૦":`o`,"௦":`o`,"౦":`o`,"೦":`o`,"൦":`o`,"๐":`o`,"໐":`o`,"၀":`o`,"٥":`o`,"۵":`o`,o:`o`,ℴ:`o`,𝐨:`o`,𝑜:`o`,𝒐:`o`,𝓸:`o`,𝔬:`o`,𝕠:`o`,𝖔:`o`,𝗈:`o`,𝗼:`o`,𝘰:`o`,𝙤:`o`,𝚘:`o`,ᴏ:`o`,ᴑ:`o`,ꬽ:`o`,ο:`o`,𝛐:`o`,𝜊:`o`,𝝄:`o`,𝝾:`o`,𝞸:`o`,σ:`o`,𝛔:`o`,𝜎:`o`,𝝈:`o`,𝞂:`o`,𝞼:`o`,ⲟ:`o`,о:`o`,ჿ:`o`,օ:`o`,ס:`o`,ه:`o`,𞸤:`o`,𞹤:`o`,𞺄:`o`,ﻫ:`o`,ﻬ:`o`,ﻪ:`o`,ﻩ:`o`,ھ:`o`,ﮬ:`o`,ﮭ:`o`,ﮫ:`o`,ﮪ:`o`,ہ:`o`,ﮨ:`o`,ﮩ:`o`,ﮧ:`o`,ﮦ:`o`,ە:`o`,ഠ:`o`,ဝ:`o`,𐓪:`o`,𑣈:`o`,𑣗:`o`,𐐬:`o`,"߀":`O`,"০":`O`,"୦":`O`,〇:`O`,"𑓐":`O`,"𑣠":`O`,"𝟎":`O`,"𝟘":`O`,"𝟢":`O`,"𝟬":`O`,"𝟶":`O`,"🯰":`O`,O:`O`,𝐎:`O`,𝑂:`O`,𝑶:`O`,𝒪:`O`,𝓞:`O`,𝔒:`O`,𝕆:`O`,𝕺:`O`,𝖮:`O`,𝗢:`O`,𝘖:`O`,𝙊:`O`,𝙾:`O`,Ο:`O`,𝚶:`O`,𝛰:`O`,𝜪:`O`,𝝤:`O`,𝞞:`O`,Ⲟ:`O`,О:`O`,Օ:`O`,ⵔ:`O`,ዐ:`O`,ଠ:`O`,𐓂:`O`,ꓳ:`O`,𑢵:`O`,𐊒:`O`,𐊫:`O`,𐐄:`O`,𐔖:`O`,"⁰":`º`,ᵒ:`º`,ǒ:`ŏ`,Ǒ:`Ŏ`,ۿ:`ô`,Ő:`Ö`,ø:`o̸`,ꬾ:`o̸`,Ø:`O̸`,ⵁ:`O̸`,Ǿ:Wt,ɵ:`o̵`,ꝋ:`o̵`,ө:`o̵`,ѳ:`o̵`,ꮎ:`o̵`,ꮻ:`o̵`,"⊖":`O̵`,"⊝":`O̵`,"⍬":`O̵`,"𝈚":`O̵`,"🜔":`O̵`,Ɵ:`O̵`,Ꝋ:`O̵`,θ:`O̵`,ϑ:`O̵`,𝛉:`O̵`,𝛝:`O̵`,𝜃:`O̵`,𝜗:`O̵`,𝜽:`O̵`,𝝑:`O̵`,𝝷:`O̵`,𝞋:`O̵`,𝞱:`O̵`,𝟅:`O̵`,Θ:`O̵`,ϴ:`O̵`,𝚯:`O̵`,𝚹:`O̵`,𝛩:`O̵`,𝛳:`O̵`,𝜣:`O̵`,𝜭:`O̵`,𝝝:`O̵`,𝝧:`O̵`,𝞗:`O̵`,𝞡:`O̵`,Ө:`O̵`,Ѳ:`O̵`,ⴱ:`O̵`,Ꮎ:`O̵`,Ꮻ:`O̵`,ꭴ:`ơ`,ﳙ:`oٰ`,"🄁":`O,`,"🄀":`O.`,ơ:`o'`,Ơ:`O'`,Ꭴ:`O'`,"%":`º/₀`,"٪":`º/₀`,"⁒":`º/₀`,"‰":`º/₀₀`,"؉":`º/₀₀`,"‱":`º/₀₀₀`,"؊":`º/₀₀₀`,œ:`oe`,Œ:`OE`,ɶ:Gt,"∞":`oo`,ꝏ:`oo`,ꚙ:`oo`,Ꝏ:`OO`,Ꚙ:`OO`,ﳗ:`oج`,ﱑ:`oج`,ﳘ:`oم`,ﱒ:`oم`,ﶓ:Kt,ﶔ:qt,ﱓ:`oى`,ﱔ:`oى`,ൟ:Jt,တ:Yt,"㍘":`O点`,ↄ:`ɔ`,ᴐ:`ɔ`,ͻ:`ɔ`,𐑋:`ɔ`,Ↄ:`Ɔ`,Ͻ:`Ɔ`,ꓛ:`Ɔ`,𐐣:`Ɔ`,ꬿ:Xt,ꭢ:`ɔe`,𐐿:`ɷ`,"⍴":`p`,p:`p`,𝐩:`p`,𝑝:`p`,𝒑:`p`,𝓅:`p`,𝓹:`p`,𝔭:`p`,𝕡:`p`,𝖕:`p`,𝗉:`p`,𝗽:`p`,𝘱:`p`,𝙥:`p`,𝚙:`p`,ρ:`p`,ϱ:`p`,𝛒:`p`,𝛠:`p`,𝜌:`p`,𝜚:`p`,𝝆:`p`,𝝔:`p`,𝞀:`p`,𝞎:`p`,𝞺:`p`,𝟈:`p`,ⲣ:`p`,р:`p`,P:`P`,ℙ:`P`,𝐏:`P`,𝑃:`P`,𝑷:`P`,𝒫:`P`,𝓟:`P`,𝔓:`P`,𝕻:`P`,𝖯:`P`,𝗣:`P`,𝘗:`P`,𝙋:`P`,𝙿:`P`,Ρ:`P`,𝚸:`P`,𝛲:`P`,𝜬:`P`,𝝦:`P`,𝞠:`P`,Ⲣ:`P`,Р:`P`,Ꮲ:`P`,ᑭ:`P`,ꓑ:`P`,𐊕:`P`,ƥ:`p̔`,ᵽ:`p̵`,ᑷ:`p·`,ᒆ:`P'`,ᴩ:`ᴘ`,ꮲ:`ᴘ`,φ:`ɸ`,ϕ:`ɸ`,𝛗:`ɸ`,𝛟:`ɸ`,𝜑:`ɸ`,𝜙:`ɸ`,𝝋:`ɸ`,𝝓:`ɸ`,𝞅:`ɸ`,𝞍:`ɸ`,𝞿:`ɸ`,𝟇:`ɸ`,ⲫ:`ɸ`,ф:`ɸ`,𝐪:`q`,𝑞:`q`,𝒒:`q`,𝓆:`q`,𝓺:`q`,𝔮:`q`,𝕢:`q`,𝖖:`q`,𝗊:`q`,𝗾:`q`,𝘲:`q`,𝙦:`q`,𝚚:`q`,ԛ:`q`,գ:`q`,զ:`q`,ℚ:`Q`,𝐐:`Q`,𝑄:`Q`,𝑸:`Q`,𝒬:`Q`,𝓠:`Q`,𝔔:`Q`,𝕼:`Q`,𝖰:`Q`,𝗤:`Q`,𝘘:`Q`,𝙌:`Q`,𝚀:`Q`,ⵕ:`Q`,ʠ:`q̔`,"🜀":`QE`,ᶐ:`ɋ`,ᴋ:`ĸ`,κ:`ĸ`,ϰ:`ĸ`,𝛋:`ĸ`,𝛞:`ĸ`,𝜅:`ĸ`,𝜘:`ĸ`,𝜿:`ĸ`,𝝒:`ĸ`,𝝹:`ĸ`,𝞌:`ĸ`,𝞳:`ĸ`,𝟆:`ĸ`,ⲕ:`ĸ`,к:`ĸ`,ꮶ:`ĸ`,қ:Zt,ҟ:Qt,𝐫:`r`,𝑟:`r`,𝒓:`r`,𝓇:`r`,𝓻:`r`,𝔯:`r`,𝕣:`r`,𝖗:`r`,𝗋:`r`,𝗿:`r`,𝘳:`r`,𝙧:`r`,𝚛:`r`,ꭇ:`r`,ꭈ:`r`,ᴦ:`r`,ⲅ:`r`,г:`r`,ꮁ:`r`,"𝈖":`R`,ℛ:`R`,ℜ:`R`,ℝ:`R`,𝐑:`R`,𝑅:`R`,𝑹:`R`,𝓡:`R`,𝕽:`R`,𝖱:`R`,𝗥:`R`,𝘙:`R`,𝙍:`R`,𝚁:`R`,Ʀ:`R`,Ꭱ:`R`,Ꮢ:`R`,𐒴:`R`,ᖇ:`R`,ꓣ:`R`,𖼵:`R`,ɽ:`r̨`,ɼ:`r̩`,ɍ:`r̵`,ғ:`r̵`,ᵲ:`r̴`,ґ:`r'`,"𑣣":`rn`,m:`rn`,ⅿ:`rn`,𝐦:`rn`,𝑚:`rn`,𝒎:`rn`,𝓂:`rn`,𝓶:`rn`,𝔪:`rn`,𝕞:`rn`,𝖒:`rn`,𝗆:`rn`,𝗺:`rn`,𝘮:`rn`,𝙢:`rn`,𝚖:`rn`,𑜀:`rn`,"₥":`rn̸`,ɱ:$t,ᵯ:en,"₨":`Rs`,ꭱ:`ʀ`,ꮢ:`ʀ`,я:`ᴙ`,ᵳ:tn,"℩":`ɿ`,s:`s`,𝐬:`s`,𝑠:`s`,𝒔:`s`,𝓈:`s`,𝓼:`s`,𝔰:`s`,𝕤:`s`,𝖘:`s`,𝗌:`s`,𝘀:`s`,𝘴:`s`,𝙨:`s`,𝚜:`s`,ꜱ:`s`,ƽ:`s`,ѕ:`s`,ꮪ:`s`,𑣁:`s`,𐑈:`s`,S:`S`,𝐒:`S`,𝑆:`S`,𝑺:`S`,𝒮:`S`,𝓢:`S`,𝔖:`S`,𝕊:`S`,𝕾:`S`,𝖲:`S`,𝗦:`S`,𝘚:`S`,𝙎:`S`,𝚂:`S`,Ѕ:`S`,Տ:`S`,Ꮥ:`S`,Ꮪ:`S`,ꓢ:`S`,𖼺:`S`,𐊖:`S`,𐐠:`S`,ʂ:`s̨`,ᵴ:`s̴`,ꞵ:`ß`,β:`ß`,ϐ:`ß`,𝛃:`ß`,𝛽:`ß`,𝜷:`ß`,𝝱:`ß`,𝞫:`ß`,Ᏸ:`ß`,"🝜":`sss`,st:`st`,"∫":`ʃ`,ꭍ:`ʃ`,"∑":`Ʃ`,"⅀":`Ʃ`,Σ:`Ʃ`,𝚺:`Ʃ`,𝛴:`Ʃ`,𝜮:`Ʃ`,𝝨:`Ʃ`,𝞢:`Ʃ`,ⵉ:`Ʃ`,"∬":`ʃʃ`,"∭":`ʃʃʃ`,"⨌":`ʃʃʃʃ`,𝐭:`t`,𝑡:`t`,𝒕:`t`,𝓉:`t`,𝓽:`t`,𝔱:`t`,𝕥:`t`,𝖙:`t`,𝗍:`t`,𝘁:`t`,𝘵:`t`,𝙩:`t`,𝚝:`t`,"⊤":`T`,"⟙":`T`,"🝨":`T`,T:`T`,𝐓:`T`,𝑇:`T`,𝑻:`T`,𝒯:`T`,𝓣:`T`,𝔗:`T`,𝕋:`T`,𝕿:`T`,𝖳:`T`,𝗧:`T`,𝘛:`T`,𝙏:`T`,𝚃:`T`,Τ:`T`,𝚻:`T`,𝛵:`T`,𝜯:`T`,𝝩:`T`,𝞣:`T`,Ⲧ:`T`,Т:`T`,Ꭲ:`T`,ꓔ:`T`,𖼊:`T`,𑢼:`T`,𐊗:`T`,𐊱:`T`,𐌕:`T`,ƭ:`t̔`,"⍡":`T̈`,Ⱦ:`T̸`,Ț:`Ţ`,Ʈ:`T̨`,Ҭ:`T̩`,"₮":`T⃫`,ŧ:`t̵`,Ŧ:`T̵`,ᵵ:`t̴`,Ⴀ:`Ꞇ`,Ꜩ:`T3`,ʨ:`tɕ`,"℡":`TEL`,ꝷ:`tf`,ʦ:`ts`,ʧ:`tʃ`,ꜩ:`tȝ`,τ:`ᴛ`,𝛕:`ᴛ`,𝜏:`ᴛ`,𝝉:`ᴛ`,𝞃:`ᴛ`,𝞽:`ᴛ`,т:`ᴛ`,ꭲ:`ᴛ`,ҭ:nn,ţ:`ƫ`,ț:`ƫ`,Ꮏ:`ƫ`,𝐮:`u`,𝑢:`u`,𝒖:`u`,𝓊:`u`,𝓾:`u`,𝔲:`u`,𝕦:`u`,𝖚:`u`,𝗎:`u`,𝘂:`u`,𝘶:`u`,𝙪:`u`,𝚞:`u`,ꞟ:`u`,ᴜ:`u`,ꭎ:`u`,ꭒ:`u`,ʋ:`u`,υ:`u`,𝛖:`u`,𝜐:`u`,𝝊:`u`,𝞄:`u`,𝞾:`u`,ս:`u`,𐓶:`u`,𑣘:`u`,"∪":`U`,"⋃":`U`,𝐔:`U`,𝑈:`U`,𝑼:`U`,𝒰:`U`,𝓤:`U`,𝔘:`U`,𝕌:`U`,𝖀:`U`,𝖴:`U`,𝗨:`U`,𝘜:`U`,𝙐:`U`,𝚄:`U`,Ս:`U`,ሀ:`U`,𐓎:`U`,ᑌ:`U`,ꓴ:`U`,𖽂:`U`,𑢸:`U`,ǔ:`ŭ`,Ǔ:`Ŭ`,ᵾ:`u̵`,ꮜ:`u̵`,Ʉ:`U̵`,Ꮜ:`U̵`,ᑘ:`U·`,ᑧ:`U'`,ᵫ:`ue`,ꭣ:`uo`,ṃ:`ꭑ`,պ:`ɰ`,ሣ:`ɰ`,"℧":`Ʊ`,ᘮ:`Ʊ`,ᘴ:`Ʊ`,ᵿ:rn,"∨":`v`,"⋁":`v`,v:`v`,ⅴ:`v`,𝐯:`v`,𝑣:`v`,𝒗:`v`,𝓋:`v`,𝓿:`v`,𝔳:`v`,𝕧:`v`,𝖛:`v`,𝗏:`v`,𝘃:`v`,𝘷:`v`,𝙫:`v`,𝚟:`v`,ᴠ:`v`,ν:`v`,𝛎:`v`,𝜈:`v`,𝝂:`v`,𝝼:`v`,𝞶:`v`,ѵ:`v`,ט:`v`,𑜆:`v`,ꮩ:`v`,𑣀:`v`,"𝈍":`V`,"٧":`V`,"۷":`V`,Ⅴ:`V`,𝐕:`V`,𝑉:`V`,𝑽:`V`,𝒱:`V`,𝓥:`V`,𝔙:`V`,𝕍:`V`,𝖁:`V`,𝖵:`V`,𝗩:`V`,𝘝:`V`,𝙑:`V`,𝚅:`V`,Ѵ:`V`,ⴸ:`V`,Ꮩ:`V`,ᐯ:`V`,ꛟ:`V`,ꓦ:`V`,𖼈:`V`,𑢠:`V`,𐔝:`V`,"𐆗":`V̵`,ᐻ:`V·`,"🝬":`VB`,ⅵ:`vi`,ⅶ:`vii`,ⅷ:an,Ⅵ:`Vl`,Ⅶ:`Vll`,Ⅷ:on,"🜈":`Vᷤ`,ᴧ:`ʌ`,𐓘:`ʌ`,"٨":`Ʌ`,"۸":`Ʌ`,Λ:`Ʌ`,𝚲:`Ʌ`,𝛬:`Ʌ`,𝜦:`Ʌ`,𝝠:`Ʌ`,𝞚:`Ʌ`,Л:`Ʌ`,ⴷ:`Ʌ`,𐒰:`Ʌ`,ᐱ:`Ʌ`,ꛎ:`Ʌ`,ꓥ:`Ʌ`,𖼽:`Ʌ`,𐊍:`Ʌ`,Ӆ:sn,ᐽ:cn,ɯ:`w`,𝐰:`w`,𝑤:`w`,𝒘:`w`,𝓌:`w`,𝔀:`w`,𝔴:`w`,𝕨:`w`,𝖜:`w`,𝗐:`w`,𝘄:`w`,𝘸:`w`,𝙬:`w`,𝚠:`w`,ᴡ:`w`,ѡ:`w`,ԝ:`w`,ա:`w`,𑜊:`w`,𑜎:`w`,𑜏:`w`,ꮃ:`w`,"𑣯":`W`,"𑣦":`W`,𝐖:`W`,𝑊:`W`,𝑾:`W`,𝒲:`W`,𝓦:`W`,𝔚:`W`,𝕎:`W`,𝖂:`W`,𝖶:`W`,𝗪:`W`,𝘞:`W`,𝙒:`W`,𝚆:`W`,Ԝ:`W`,Ꮃ:`W`,Ꮤ:`W`,ꓪ:`W`,ѽ:ln,𑓅:`ẇ`,"₩":`W̵`,ꝡ:`w̦`,ᴍ:`ʍ`,м:`ʍ`,ꮇ:`ʍ`,ӎ:un,"᙮":`x`,"×":`x`,"⤫":`x`,"⤬":`x`,"⨯":`x`,x:`x`,ⅹ:`x`,𝐱:`x`,𝑥:`x`,𝒙:`x`,𝓍:`x`,𝔁:`x`,𝔵:`x`,𝕩:`x`,𝖝:`x`,𝗑:`x`,𝘅:`x`,𝘹:`x`,𝙭:`x`,𝚡:`x`,х:`x`,ᕁ:`x`,ᕽ:`x`,"ⷯ":`ͯ`,"᙭":`X`,"╳":`X`,"𐌢":`X`,"𑣬":`X`,X:`X`,Ⅹ:`X`,𝐗:`X`,𝑋:`X`,𝑿:`X`,𝒳:`X`,𝓧:`X`,𝔛:`X`,𝕏:`X`,𝖃:`X`,𝖷:`X`,𝗫:`X`,𝘟:`X`,𝙓:`X`,𝚇:`X`,Ꭓ:`X`,Χ:`X`,𝚾:`X`,𝛸:`X`,𝜲:`X`,𝝬:`X`,𝞦:`X`,Ⲭ:`X`,Х:`X`,ⵝ:`X`,ᚷ:`X`,ꓫ:`X`,𐊐:`X`,𐊴:`X`,𐌗:`X`,𐔧:`X`,"⨰":`ẋ`,Ҳ:`X̩`,"𐆖":`X̵`,ⅺ:`xi`,ⅻ:`xii`,Ⅺ:`Xl`,Ⅻ:`Xll`,ɣ:`y`,ᶌ:`y`,y:`y`,𝐲:`y`,𝑦:`y`,𝒚:`y`,𝓎:`y`,𝔂:`y`,𝔶:`y`,𝕪:`y`,𝖞:`y`,𝗒:`y`,𝘆:`y`,𝘺:`y`,𝙮:`y`,𝚢:`y`,ʏ:`y`,ỿ:`y`,ꭚ:`y`,γ:`y`,ℽ:`y`,𝛄:`y`,𝛾:`y`,𝜸:`y`,𝝲:`y`,𝞬:`y`,у:`y`,ү:`y`,ყ:`y`,𑣜:`y`,Y:`Y`,𝐘:`Y`,𝑌:`Y`,𝒀:`Y`,𝒴:`Y`,𝓨:`Y`,𝔜:`Y`,𝕐:`Y`,𝖄:`Y`,𝖸:`Y`,𝗬:`Y`,𝘠:`Y`,𝙔:`Y`,𝚈:`Y`,Υ:`Y`,ϒ:`Y`,𝚼:`Y`,𝛶:`Y`,𝜰:`Y`,𝝪:`Y`,𝞤:`Y`,Ⲩ:`Y`,У:`Y`,Ү:`Y`,Ꭹ:`Y`,Ꮍ:`Y`,ꓬ:`Y`,𖽃:`Y`,𑢤:`Y`,𐊲:`Y`,ƴ:`y̔`,ɏ:`y̵`,ұ:`y̵`,"¥":`Y̵`,Ɏ:`Y̵`,Ұ:`Y̵`,ʒ:`ȝ`,ꝫ:`ȝ`,ⳍ:`ȝ`,ӡ:`ȝ`,ჳ:`ȝ`,𝐳:`z`,𝑧:`z`,𝒛:`z`,𝓏:`z`,𝔃:`z`,𝔷:`z`,𝕫:`z`,𝖟:`z`,𝗓:`z`,𝘇:`z`,𝘻:`z`,𝙯:`z`,𝚣:`z`,ᴢ:`z`,ꮓ:`z`,𑣄:`z`,"𐋵":`Z`,"𑣥":`Z`,Z:`Z`,ℤ:`Z`,ℨ:`Z`,𝐙:`Z`,𝑍:`Z`,𝒁:`Z`,𝒵:`Z`,𝓩:`Z`,𝖅:`Z`,𝖹:`Z`,𝗭:`Z`,𝘡:`Z`,𝙕:`Z`,𝚉:`Z`,Ζ:`Z`,𝚭:`Z`,𝛧:`Z`,𝜡:`Z`,𝝛:`Z`,𝞕:`Z`,Ꮓ:`Z`,ꓜ:`Z`,𑢩:`Z`,ʐ:`z̨`,ƶ:`z̵`,Ƶ:`Z̵`,ȥ:`z̦`,Ȥ:`Z̦`,ᵶ:`z̴`,ƿ:`þ`,ϸ:`þ`,Ϸ:`Þ`,𐓄:`Þ`,"⁹":`ꝰ`,ᴤ:`ƨ`,ϩ:`ƨ`,ꙅ:`ƨ`,ь:`ƅ`,ꮟ:`ƅ`,ы:`ƅi`,ꭾ:`ɂ`,ˤ:`ˁ`,ꛍ:`ʡ`,"⊙":`ʘ`,"☉":`ʘ`,"⨀":`ʘ`,Ꙩ:`ʘ`,ⵙ:`ʘ`,𐓃:`ʘ`,ℾ:`Γ`,𝚪:`Γ`,𝛤:`Γ`,𝜞:`Γ`,𝝘:`Γ`,𝞒:`Γ`,Ⲅ:`Γ`,Г:`Γ`,Ꮁ:`Γ`,ᒥ:`Γ`,𖼇:`Γ`,Ғ:dn,ᒯ:fn,Ґ:`Γ'`,"∆":`Δ`,"△":`Δ`,"🜂":`Δ`,𝚫:`Δ`,𝛥:`Δ`,𝜟:`Δ`,𝝙:`Δ`,𝞓:`Δ`,Ⲇ:`Δ`,ⵠ:`Δ`,ᐃ:`Δ`,𖼚:`Δ`,𐊅:`Δ`,𐊣:`Δ`,"⍙":`Δ̲`,ᐏ:pn,ᐬ:mn,𝟋:`ϝ`,𝛇:`ζ`,𝜁:`ζ`,𝜻:`ζ`,𝝵:`ζ`,𝞯:`ζ`,ⳤ:`ϗ`,𝛌:`λ`,𝜆:`λ`,𝝀:`λ`,𝝺:`λ`,𝞴:`λ`,Ⲗ:`λ`,𐓛:`λ`,µ:`μ`,𝛍:`μ`,𝜇:`μ`,𝝁:`μ`,𝝻:`μ`,𝞵:`μ`,𝛏:`ξ`,𝜉:`ξ`,𝝃:`ξ`,𝝽:`ξ`,𝞷:`ξ`,𝚵:`Ξ`,𝛯:`Ξ`,𝜩:`Ξ`,𝝣:`Ξ`,𝞝:`Ξ`,ϖ:`π`,ℼ:`π`,𝛑:`π`,𝛡:`π`,𝜋:`π`,𝜛:`π`,𝝅:`π`,𝝕:`π`,𝝿:`π`,𝞏:`π`,𝞹:`π`,𝟉:`π`,ᴨ:`π`,п:`π`,"∏":`Π`,ℿ:`Π`,𝚷:`Π`,𝛱:`Π`,𝜫:`Π`,𝝥:`Π`,𝞟:`Π`,Ⲡ:`Π`,П:`Π`,ꛛ:`Π`,𐊭:`Ϙ`,𐌒:`Ϙ`,ϛ:`ς`,𝛓:`ς`,𝜍:`ς`,𝝇:`ς`,𝞁:`ς`,𝞻:`ς`,𝚽:`Φ`,𝛷:`Φ`,𝜱:`Φ`,𝝫:`Φ`,𝞥:`Φ`,Ⲫ:`Φ`,Ф:`Φ`,Փ:`Φ`,ቀ:`Φ`,ᛰ:`Φ`,𐊳:`Φ`,ꭓ:`χ`,ꭕ:`χ`,𝛘:`χ`,𝜒:`χ`,𝝌:`χ`,𝞆:`χ`,𝟀:`χ`,ⲭ:`χ`,𝛙:`ψ`,𝜓:`ψ`,𝝍:`ψ`,𝞇:`ψ`,𝟁:`ψ`,ѱ:`ψ`,𐓹:`ψ`,𝚿:`Ψ`,𝛹:`Ψ`,𝜳:`Ψ`,𝝭:`Ψ`,𝞧:`Ψ`,Ⲯ:`Ψ`,Ѱ:`Ψ`,𐓑:`Ψ`,ᛘ:`Ψ`,𐊵:`Ψ`,"⍵":`ω`,ꞷ:`ω`,𝛚:`ω`,𝜔:`ω`,𝝎:`ω`,𝞈:`ω`,𝟂:`ω`,ⲱ:`ω`,ꙍ:`ω`,Ω:`Ω`,𝛀:`Ω`,𝛺:`Ω`,𝜴:`Ω`,𝝮:`Ω`,𝞨:`Ω`,ᘯ:`Ω`,ᘵ:`Ω`,𐊶:`Ω`,"⍹":`ω̲`,ώ:`ῴ`,"☰":`Ⲷ`,Ⳝ:`Ϭ`,җ:hn,Җ:gn,"𝈋":`И`,Ͷ:`И`,ꚡ:`И`,𐐥:`И`,Й:`Ѝ`,Ҋ:_n,ѝ:`й`,ҋ:vn,𐒼:`Ӄ`,ᴫ:`л`,ӆ:yn,ꭠ:`љ`,𐓫:`ꙩ`,"ᷮ":`ⷬ`,𐓍:`Ћ`,"𝈂":`Ӿ`,"𝈢":`Ѡ`,Ꮗ:`Ѡ`,ᗯ:`Ѡ`,Ѽ:bn,ᣭ:xn,Ꞷ:`Ꙍ`,ӌ:`ҷ`,Ӌ:`Ҷ`,Ҿ:Sn,ⲽ:`ш`,Ⲽ:`Ш`,Ꙑ:`Ъl`,"℈":`Э`,"🜁":`Ꙙ`,𖼜:`Ꙙ`,ꦒ:`ⰿ`,և:Cn,ኔ:`ձ`,ﬔ:wn,ﬕ:Tn,ﬗ:En,ﬓ:Dn,"∩":`Ո`,"⋂":`Ո`,"𝉅":`Ո`,በ:`Ո`,ᑎ:`Ո`,ꓵ:`Ո`,ᑚ:On,ᑨ:`Ո'`,ﬖ:kn,"₽":`Ք`,"˓":`ՙ`,ʿ:`ՙ`,ℵ:`א`,ﬡ:`א`,אָ:`אַ`,אּ:`אַ`,ﭏ:An,ℶ:`ב`,ℷ:`ג`,ℸ:`ד`,ﬢ:`ד`,ﬣ:`ה`,יּ:`יִ`,ﬤ:`כ`,ﬥ:`ל`,ﬦ:`ם`,ﬠ:`ע`,ﬧ:`ר`,שׂ:`שׁ`,שּ:`שׁ`,שּׂ:`שּׁ`,ﬨ:`ת`,ﺀ:`ء`,"۽":`ء͈`,ﺂ:`آ`,ﺁ:`آ`,ﭑ:`ٱ`,ﭐ:`ٱ`,𞸁:`ب`,𞸡:`ب`,𞹡:`ب`,𞺁:`ب`,𞺡:`ب`,ﺑ:`ب`,ﺒ:`ب`,ﺐ:`ب`,ﺏ:`ب`,ݑ:jn,ࢶ:Mn,ࢡ:Nn,ﲠ:`بo`,ﳢ:`بo`,ﲜ:Pn,ﰅ:Fn,ﲝ:In,ﰆ:Ln,ﷂ:Rn,ﲞ:zn,ﰇ:Bn,ﳒ:Vn,ﱋ:Hn,ﶞ:Un,ﱪ:Wn,ﱫ:Gn,ﲟ:Kn,ﳡ:qn,ﱬ:Jn,ﰈ:Yn,ﱭ:Xn,ﱮ:Zn,ﰉ:Qn,ﱯ:$n,ﰊ:er,ﭔ:`ٻ`,ﭕ:`ٻ`,ﭓ:`ٻ`,ﭒ:`ٻ`,ې:`ٻ`,ﯦ:`ٻ`,ﯧ:`ٻ`,ﯥ:`ٻ`,ﯤ:`ٻ`,ﭜ:`ڀ`,ﭝ:`ڀ`,ﭛ:`ڀ`,ﭚ:`ڀ`,ࢩ:`ݔ`,ݧ:`ݔ`,"⍥":`ة`,ö:`ة`,ﺔ:`ة`,ﺓ:`ة`,ۃ:`ة`,𞸕:`ت`,𞸵:`ت`,𞹵:`ت`,𞺕:`ت`,𞺵:`ت`,ﺗ:`ت`,ﺘ:`ت`,ﺖ:`ت`,ﺕ:`ت`,ﲥ:`تo`,ﳤ:`تo`,ﲡ:tr,ﰋ:nr,ﵐ:rr,ﶠ:ir,ﶟ:ar,ﲢ:or,ﰌ:sr,ﵒ:cr,ﵑ:lr,ﵓ:ur,ﲣ:dr,ﰍ:fr,ﵔ:pr,ﶢ:mr,ﶡ:hr,ﱰ:gr,ﱱ:_r,ﲤ:vr,ﳣ:yr,ﱲ:br,ﰎ:xr,ﵕ:Sr,ﵖ:Cr,ﵗ:wr,ﶤ:Tr,ﶣ:Er,ﱳ:Dr,ﱴ:Or,ﰏ:kr,ﱵ:Ar,ﰐ:jr,ﭠ:`ٺ`,ﭡ:`ٺ`,ﭟ:`ٺ`,ﭞ:`ٺ`,ﭤ:`ٿ`,ﭥ:`ٿ`,ﭣ:`ٿ`,ﭢ:`ٿ`,𞸂:`ج`,𞸢:`ج`,𞹂:`ج`,𞹢:`ج`,𞺂:`ج`,𞺢:`ج`,ﺟ:`ج`,ﺠ:`ج`,ﺞ:`ج`,ﺝ:`ج`,ﲧ:Mr,ﰕ:Nr,ﶦ:Pr,ﶾ:Fr,ﷻ:Ir,ﲨ:Lr,ﰖ:Rr,ﵙ:zr,ﵘ:Br,ﶧ:Vr,ﶥ:Hr,ﴝ:Ur,ﴁ:Wr,ﴞ:Gr,ﴂ:Kr,ﭸ:`ڃ`,ﭹ:`ڃ`,ﭷ:`ڃ`,ﭶ:`ڃ`,ﭴ:`ڄ`,ﭵ:`ڄ`,ﭳ:`ڄ`,ﭲ:`ڄ`,ﭼ:`چ`,ﭽ:`چ`,ﭻ:`چ`,ﭺ:`چ`,ﮀ:`ڇ`,ﮁ:`ڇ`,ﭿ:`ڇ`,ﭾ:`ڇ`,𞸇:`ح`,𞸧:`ح`,𞹇:`ح`,𞹧:`ح`,𞺇:`ح`,𞺧:`ح`,ﺣ:`ح`,ﺤ:`ح`,ﺢ:`ح`,ﺡ:`ح`,څ:qr,ځ:Jr,ݲ:Yr,ﲩ:Xr,ﰗ:Zr,ﶿ:Qr,ﲪ:$r,ﰘ:ei,ﵛ:ti,ﵚ:ni,ﴛ:ri,ﳿ:ii,ﴜ:ai,ﴀ:oi,𞸗:`خ`,𞸷:`خ`,𞹗:`خ`,𞹷:`خ`,𞺗:`خ`,𞺷:`خ`,ﺧ:`خ`,ﺨ:`خ`,ﺦ:`خ`,ﺥ:`خ`,ﲫ:si,ﰙ:ci,ﰚ:li,ﲬ:ui,ﰛ:di,ﴟ:fi,ﴃ:pi,ﴠ:mi,ﴄ:hi,"𐋡":`د`,𞸃:`د`,𞺃:`د`,𞺣:`د`,ﺪ:`د`,ﺩ:`د`,ڈ:gi,ﮉ:_i,ﮈ:vi,ڎ:yi,ﮇ:bi,ﮆ:xi,ۮ:Si,ࢮ:Ci,𞸘:`ذ`,𞺘:`ذ`,𞺸:`ذ`,ﺬ:`ذ`,ﺫ:`ذ`,ﱛ:wi,ڋ:Ti,ﮅ:`ڌ`,ﮄ:`ڌ`,ﮃ:`ڍ`,ﮂ:`ڍ`,𞸓:`ر`,𞺓:`ر`,𞺳:`ر`,ﺮ:`ر`,ﺭ:`ر`,ڑ:Ei,ﮍ:Di,ﮌ:Oi,ژ:ki,ﮋ:Ai,ﮊ:ji,ڒ:Mi,ࢹ:Ni,ۯ:Pi,ݬ:Fi,ﱜ:Ii,ﷶ:Li,"﷼":`رىlل`,𞸆:`ز`,𞺆:`ز`,𞺦:`ز`,ﺰ:`ز`,ﺯ:`ز`,ࢲ:Ri,ݱ:zi,𞸎:`س`,𞸮:`س`,𞹎:`س`,𞹮:`س`,𞺎:`س`,𞺮:`س`,ﺳ:`س`,ﺴ:`س`,ﺲ:`س`,ﺱ:`س`,ش:Bi,𞸔:Vi,𞸴:Hi,𞹔:Ui,𞹴:Wi,𞺔:Gi,𞺴:Ki,ﺷ:qi,ﺸ:Ji,ﺶ:Yi,ﺵ:Xi,ݾ:Zi,ﴱ:`سo`,ﳨ:`سo`,ﴲ:Qi,ﳪ:$i,ﲭ:ea,ﴴ:ta,ﰜ:na,ﴭ:ra,ﴷ:ia,ﴥ:aa,ﴉ:oa,ﵝ:sa,ﵞ:ca,ﵩ:la,ﲮ:ua,ﴵ:da,ﰝ:fa,ﴮ:pa,ﴸ:ma,ﴦ:ha,ﴊ:ga,ﵜ:_a,ﵨ:va,ﵧ:ya,ﶪ:ba,ﲯ:xa,ﴶ:Sa,ﰞ:Ca,ﴯ:wa,ﴹ:Ta,ﴧ:Ea,ﴋ:Da,ﶨ:Oa,ﷆ:ka,ﴪ:Aa,ﴎ:ja,ﴩ:Ma,ﴍ:Na,ﲰ:Pa,ﳧ:Fa,ﰟ:Ia,ﴰ:La,ﳩ:Ra,ﴨ:za,ﴌ:Ba,ﵡ:Va,ﵠ:Ha,ﵟ:Ua,ﵫ:Wa,ﵪ:Ga,ﵣ:Ka,ﵢ:qa,ﵭ:Ja,ﵬ:Ya,ﴗ:Xa,ﳻ:Za,ﴘ:Qa,ﳼ:$a,ﴙ:eo,ﳽ:to,ﴚ:no,ﳾ:ro,"𐋲":`ص`,𞸑:`ص`,𞸱:`ص`,𞹑:`ص`,𞹱:`ص`,𞺑:`ص`,𞺱:`ص`,ﺻ:`ص`,ﺼ:`ص`,ﺺ:`ص`,ﺹ:`ص`,ڞ:io,ࢯ:ao,ﲱ:oo,ﰠ:so,ﵥ:co,ﵤ:lo,ﶩ:uo,ﲲ:fo,ﴫ:po,ﴏ:mo,ﷵ:ho,ﷹ:go,ﷰ:_o,ﷺ:vo,ﲳ:yo,ﰡ:bo,ﷅ:xo,ﵦ:So,ﴡ:Co,ﴅ:wo,ﴢ:To,ﴆ:Eo,𞸙:`ض`,𞸹:`ض`,𞹙:`ض`,𞹹:`ض`,𞺙:`ض`,𞺹:`ض`,ﺿ:`ض`,ﻀ:`ض`,ﺾ:`ض`,ﺽ:`ض`,ﲴ:Do,ﰢ:Oo,ﲵ:ko,ﰣ:Ao,ﵮ:jo,ﶫ:Mo,ﲶ:No,ﰤ:Po,ﵰ:Fo,ﵯ:Io,ﴬ:Lo,ﴐ:Ro,ﲷ:zo,ﰥ:Bo,ﴣ:Vo,ﴇ:Ho,ﴤ:Uo,ﴈ:Wo,"𐋨":`ط`,𞸈:`ط`,𞹨:`ط`,𞺈:`ط`,𞺨:`ط`,ﻃ:`ط`,ﻄ:`ط`,ﻂ:`ط`,ﻁ:`ط`,ڟ:Go,ﲸ:Ko,ﰦ:qo,ﴳ:Jo,ﴺ:Yo,ﰧ:Xo,ﵲ:Zo,ﵱ:Qo,ﵳ:$o,ﵴ:es,ﴑ:ts,ﳵ:ns,ﴒ:rs,ﳶ:is,𞸚:`ظ`,𞹺:`ظ`,𞺚:`ظ`,𞺺:`ظ`,ﻇ:`ظ`,ﻈ:`ظ`,ﻆ:`ظ`,ﻅ:`ظ`,ﲹ:as,ﴻ:os,ﰨ:ss,"؏":`ع`,𞸏:`ع`,𞸯:`ع`,𞹏:`ع`,𞹯:`ع`,𞺏:`ع`,𞺯:`ع`,ﻋ:`ع`,ﻌ:`ع`,ﻊ:`ع`,ﻉ:`ع`,ﲺ:cs,ﰩ:ls,ﷄ:us,ﵵ:ds,ﷷ:fs,ﲻ:ps,ﰪ:ms,ﵷ:hs,ﵶ:gs,ﵸ:_s,ﶶ:vs,ﴓ:ys,ﳷ:bs,ﴔ:xs,ﳸ:Ss,𞸛:`غ`,𞸻:`غ`,𞹛:`غ`,𞹻:`غ`,𞺛:`غ`,𞺻:`غ`,ﻏ:`غ`,ﻐ:`غ`,ﻎ:`غ`,ﻍ:`غ`,ﲼ:Cs,ﰫ:ws,ﲽ:Ts,ﰬ:Es,ﵹ:Ds,ﵻ:Os,ﵺ:ks,ﴕ:As,ﳹ:js,ﴖ:Ms,ﳺ:Ns,𞸐:`ف`,𞸰:`ف`,𞹰:`ف`,𞺐:`ف`,𞺰:`ف`,ﻓ:`ف`,ﻔ:`ف`,ﻒ:`ف`,ﻑ:`ف`,ڧ:`ف`,ﲾ:Ps,ﰭ:Fs,ﲿ:Is,ﰮ:Ls,ﳀ:Rs,ﰯ:zs,ﵽ:Bs,ﵼ:Vs,ﳁ:Hs,ﰰ:Us,ﷁ:Ws,ﱼ:Gs,ﰱ:Ks,ﱽ:qs,ﰲ:Js,𞸞:`ڡ`,𞹾:`ڡ`,ࢻ:`ڡ`,ٯ:`ڡ`,𞸟:`ڡ`,𞹟:`ڡ`,ࢼ:`ڡ`,ڤ:Ys,ﭬ:Xs,ﭭ:Zs,ﭫ:Qs,ﭪ:$s,ڨ:ec,ࢤ:tc,ﭰ:`ڦ`,ﭱ:`ڦ`,ﭯ:`ڦ`,ﭮ:`ڦ`,𞸒:`ق`,𞸲:`ق`,𞹒:`ق`,𞹲:`ق`,𞺒:`ق`,𞺲:`ق`,ﻗ:`ق`,ﻘ:`ق`,ﻖ:`ق`,ﻕ:`ق`,ﳂ:nc,ﰳ:rc,ﷱ:ic,ﳃ:ac,ﰴ:oc,ﶴ:sc,ﵾ:cc,ﵿ:lc,ﶲ:uc,ﱾ:dc,ﰵ:fc,ﱿ:pc,ﰶ:mc,𞸊:`ك`,𞸪:`ك`,𞹪:`ك`,ﻛ:`ك`,ﻜ:`ك`,ﻚ:`ك`,ﻙ:`ك`,ک:`ك`,ﮐ:`ك`,ﮑ:`ك`,ﮏ:`ك`,ﮎ:`ك`,ڪ:`ك`,ڭ:hc,ﯕ:gc,ﯖ:_c,ﯔ:vc,ﯓ:yc,ݣ:bc,ﲀ:`كl`,ﰷ:`كl`,ﳄ:xc,ﰸ:Sc,ﳅ:Cc,ﰹ:wc,ﳆ:Tc,ﰺ:Ec,ﳇ:Dc,ﳫ:Oc,ﲁ:kc,ﰻ:Ac,ﳈ:jc,ﳬ:Mc,ﲂ:Nc,ﰼ:Pc,ﷃ:Fc,ﶻ:Ic,ﶷ:Lc,ﲃ:Rc,ﰽ:zc,ﲄ:Bc,ﰾ:Vc,ݢ:`ڬ`,ﮔ:`گ`,ﮕ:`گ`,ﮓ:`گ`,ﮒ:`گ`,ࢰ:`گ`,ڴ:Hc,ﮜ:`ڱ`,ﮝ:`ڱ`,ﮛ:`ڱ`,ﮚ:`ڱ`,ﮘ:`ڳ`,ﮙ:`ڳ`,ﮗ:`ڳ`,ﮖ:`ڳ`,𞸋:`ل`,𞸫:`ل`,𞹋:`ل`,𞺋:`ل`,𞺫:`ل`,ﻟ:`ل`,ﻠ:`ل`,ﻞ:`ل`,ﻝ:`ل`,ڷ:Uc,ڵ:Wc,ﻼ:`لl`,ﻻ:`لl`,ﻺ:Gc,ﻹ:Kc,ﻸ:qc,ﻷ:Jc,ﳍ:`لo`,ﻶ:Yc,ﻵ:Xc,ﳉ:Zc,ﰿ:Qc,ﶃ:$c,ﶄ:el,ﶺ:tl,ﶼ:nl,ﶬ:rl,ﳊ:il,ﱀ:al,ﶵ:ol,ﶀ:sl,ﶂ:cl,ﶁ:ll,ﳋ:ul,ﱁ:dl,ﶆ:fl,ﶅ:pl,ﳌ:ml,ﳭ:hl,ﲅ:gl,ﱂ:_l,ﶈ:vl,ﶇ:yl,ﶭ:bl,ﲆ:xl,ﱃ:Sl,ﲇ:Cl,ﱄ:wl,𞸌:`م`,𞸬:`م`,𞹬:`م`,𞺌:`م`,𞺬:`م`,ﻣ:`م`,ﻤ:`م`,ﻢ:`م`,ﻡ:`م`,ࢧ:Tl,"۾":`م͈`,ﲈ:`مl`,ﳎ:El,ﱅ:Dl,ﶌ:Ol,ﶒ:kl,ﶍ:Al,ﷀ:jl,ﳏ:Ml,ﱆ:Nl,ﶉ:Pl,ﶊ:Fl,ﷴ:Il,ﶋ:Ll,ﳐ:Rl,ﱇ:zl,ﶎ:Bl,ﶏ:Vl,ﶹ:Hl,ﳑ:Ul,ﲉ:Wl,ﱈ:Gl,ﶱ:Kl,ﱉ:ql,ﱊ:Jl,𞸍:`ن`,𞸭:`ن`,𞹍:`ن`,𞹭:`ن`,𞺍:`ن`,𞺭:`ن`,ﻧ:`ن`,ﻨ:`ن`,ﻦ:`ن`,ﻥ:`ن`,ݨ:Yl,ݩ:Xl,ﳖ:`نo`,ﳯ:`نo`,ﶸ:Zl,ﶽ:Ql,ﶘ:$l,ﶗ:eu,ﶙ:tu,ﷇ:nu,ﳓ:ru,ﱌ:iu,ﶕ:au,ﶖ:ou,ﶳ:su,ﳔ:cu,ﱍ:lu,ﲊ:uu,ﲋ:du,ﳕ:fu,ﳮ:pu,ﲌ:mu,ﱎ:hu,ﶛ:gu,ﶚ:_u,ﲍ:vu,ﲎ:yu,ﱏ:bu,ﲏ:xu,ﱐ:Su,ۂ:`ۀ`,ﮥ:`ۀ`,ﮤ:`ۀ`,"𐋤":`و`,𞸅:`و`,𞺅:`و`,𞺥:`و`,ﻮ:`و`,ﻭ:`و`,ࢱ:`و`,ۋ:Cu,ﯟ:wu,ﯞ:Tu,ۇ:Eu,ﯘ:Du,ﯗ:Ou,ۆ:ku,ﯚ:Au,ﯙ:ju,ۉ:Mu,ﯣ:Nu,ﯢ:Pu,ۈ:Fu,ﯜ:Iu,ﯛ:Lu,ؤ:Ru,ﺆ:zu,ﺅ:Bu,ٶ:Vu,ٷ:Hu,ﯝ:Uu,ﷸ:Wu,ﯡ:`ۅ`,ﯠ:`ۅ`,ٮ:`ى`,𞸜:`ى`,𞹼:`ى`,ں:`ى`,𞸝:`ى`,𞹝:`ى`,ﮟ:`ى`,ﮞ:`ى`,ࢽ:`ى`,ﯨ:`ى`,ﯩ:`ى`,ﻰ:`ى`,ﻯ:`ى`,ي:`ى`,𞸉:`ى`,𞸩:`ى`,𞹉:`ى`,𞹩:`ى`,𞺉:`ى`,𞺩:`ى`,ﻳ:`ى`,ﻴ:`ى`,ﻲ:`ى`,ﻱ:`ى`,ی:`ى`,ﯾ:`ى`,ﯿ:`ى`,ﯽ:`ى`,ﯼ:`ى`,ے:`ى`,ﮯ:`ى`,ﮮ:`ى`,ٹ:Gu,ﭨ:Ku,ﭩ:qu,ﭧ:Ju,ﭦ:Yu,ڻ:Xu,ﮢ:Zu,ﮣ:Qu,ﮡ:$u,ﮠ:ed,پ:td,ﭘ:nd,ﭙ:rd,ﭗ:id,ﭖ:ad,ث:od,𞸖:sd,𞸶:cd,𞹶:ld,𞺖:ud,𞺶:dd,ﺛ:fd,ﺜ:pd,ﺚ:md,ﺙ:hd,ڽ:gd,ۑ:_d,ؿ:vd,ࢷ:yd,ݖ:bd,ێ:xd,ࢺ:Sd,ؽ:Cd,ࢨ:wd,ﲐ:Td,ﱝ:Ed,ﳞ:`ىo`,ﳱ:`ىo`,ﳦ:Dd,ئ:Od,ﺋ:kd,ﺌ:Ad,ﺊ:jd,ﺉ:Md,ٸ:Nd,ﯫ:Pd,ﯪ:Fd,ﲛ:Id,ﳠ:Ld,ﯭ:Rd,ﯬ:zd,ﯸ:Bd,ﯷ:Vd,ﯶ:Hd,ﲗ:Ud,ﰀ:Wd,ﲘ:Gd,ﰁ:Kd,ﲙ:qd,ﱤ:Jd,ﱥ:Yd,ﲚ:Xd,ﳟ:Zd,ﱦ:Qd,ﰂ:$d,ﱧ:ef,ﯯ:tf,ﯮ:nf,ﯱ:rf,ﯰ:af,ﯳ:of,ﯲ:sf,ﯵ:cf,ﯴ:lf,ﯻ:uf,ﯺ:df,ﱨ:ff,ﯹ:pf,ﰃ:mf,ﱩ:hf,ﰄ:gf,ﳚ:_f,ﱕ:vf,ﰑ:yf,ﶯ:bf,ﳛ:xf,ﱖ:Sf,ﶮ:Cf,ﳜ:wf,ﱗ:Tf,ﲑ:Ef,ﱶ:Df,ﲒ:Of,ﱷ:kf,ﳝ:Af,ﳰ:jf,ﲓ:Mf,ﱘ:Nf,ﲦ:Pf,ﳥ:Ff,ﱸ:If,ﰒ:Lf,ﶝ:Rf,ﶜ:zf,ﶰ:Bf,ﲔ:Vf,ﱹ:Hf,ﲕ:Uf,ﱙ:Wf,ﲖ:Gf,ﱚ:Kf,ﱺ:qf,ﰓ:Jf,ﱻ:Yf,ﰔ:Xf,ﮱ:`ۓ`,ﮰ:`ۓ`,𐊸:`ⵀ`,"⁞":`ⵂ`,"⸽":`ⵂ`,"⦙":`ⵂ`,"︙":`ⵗ`,"⁝":`ⵗ`,"⋮":`ⵗ`,Մ:`ሆ`,Ռ:`ቡ`,Ի:`ኮ`,Պ:`ጣ`,आ:Zf,ऒ:Qf,ओ:$f,औ:ep,ऄ:tp,ऑ:np,ऍ:rp,ऎ:ip,ऐ:ap,ई:op,ઽ:`ऽ`,𑇜:`ꣻ`,"𑇋":`ऺ`,"ુ":`ु`,"ૂ":`ू`,"ੋ":`ॆ`,"੍":`्`,"્":`्`,আ:sp,ৠ:cp,ৡ:lp,𑒒:`ঘ`,𑒔:`চ`,𑒖:`জ`,𑒘:`ঞ`,𑒙:`ট`,𑒛:`ড`,𑒪:`ণ`,𑒞:`ত`,𑒟:`থ`,𑒠:`দ`,𑒡:`ধ`,𑒢:`ন`,𑒣:`প`,𑒩:`ব`,𑒧:`ম`,𑒨:`য`,𑒫:`র`,𑒝:`ল`,𑒭:`ষ`,𑒮:`স`,𑓄:`ঽ`,"𑒰":`া`,"𑒱":`ি`,"𑒹":`ে`,"𑒼":`ো`,"𑒾":`ৌ`,"𑓂":`্`,"𑒽":`ৗ`,ਉ:up,ਊ:dp,ਆ:fp,ਐ:pp,ਔ:mp,ਇ:hp,ਈ:gp,ਏ:_p,આ:vp,ઑ:yp,ઓ:bp,ઔ:xp,ઍ:Sp,એ:Cp,ઐ:wp,ଆ:Tp,"௮":`அ`,ர:`ஈ`,"ா":`ஈ`,"௫":`ஈு`,"௨":`உ`,ഉ:`உ`,ஊ:Ep,ഊ:Dp,"௭":`எ`,"௷":`எவ`,ஜ:`ஐ`,ജ:`ஐ`,"௧":`க`,"௪":`ச`,"௬":`சு`,"௲":`சூ`,ഺ:Op,ണ:`ண`,"௺":`நீ`,"௴":`மீ`,"௰":`ய`,ഴ:`ழ`,"ௗ":`ள`,"ை":`ன`,ശ:`ஶ`,"௸":`ஷ`,"ി":`ி`,"ീ":`ி`,"ொ":`ெஈ`,"ௌ":`ெள`,"ோ":`ேஈ`,ಅ:`అ`,ಆ:`ఆ`,ಇ:`ఇ`,ౠ:kp,ౡ:Ap,ಒ:`ఒ`,ఔ:jp,ಔ:Mp,ఓ:Np,ಓ:Pp,ಜ:`జ`,ಞ:`ఞ`,ఢ:Fp,ಣ:`ణ`,థ:Ip,భ:Lp,ಯ:`య`,ఠ:Rp,ಱ:`ఱ`,ಲ:`ల`,ష:zp,హ:Bp,మ:Vp,"ూ":`ుా`,"ౄ":`ృా`,ೡ:Hp,ഈ:Up,ഐ:Wp,ഓ:Gp,ഔ:Kp,ൡ:`ഞ`,"൫":`ദ്ര`,"൹":`നു`,ഌ:qp,ങ:Jp,"൯":`ന്`,ൻ:Yp,"൬":`ന്ന`,"൚":`ന്മ`,റ:`ര`,"൪":`ര്`,ർ:Xp,"൮":`വ്ര`,"൶":`ഹ്മ`,"ൂ":`ു`,"ൃ":`ു`,"ൈ":`െെ`,"෪":`ජ`,"෫":`ද`,𑐓:Zp,𑐙:Qp,𑐤:$p,𑐪:em,𑐭:tm,𑐯:nm,𑗘:rm,𑗙:im,𑗚:am,𑗛:om,"𑗜":`𑖲`,"𑗝":`𑖳`,ฃ:`ข`,ด:`ค`,ต:`ค`,ม:`ฆ`,ຈ:`จ`,ซ:`ช`,ฏ:`ฎ`,ท:`ฑ`,ບ:`บ`,ປ:`ป`,ຝ:`ฝ`,ພ:`พ`,ຟ:`ฟ`,ฦ:`ภ`,ຍ:`ย`,"។":`ฯ`,ๅ:`า`,ำ:sm,"ិ":`ิ`,"ី":`ี`,"ឹ":`ึ`,"ឺ":`ื`,"ຸ":`ุ`,"ູ":`ู`,แ:cm,ໜ:lm,ໝ:um,ຳ:dm,"༂":`འུྂཿ`,"༃":`འུྂ༔`,ཪ:`ར`,ༀ:fm,"ཷ":`ྲཱྀ`,"ཹ":`ླཱྀ`,"𑲲":`𑲪`,ႁ:pm,က:mm,ၰ:hm,ၦ:gm,ဟ:_m,ၯ:vm,ၾ:ym,ဩ:bm,ဪ:xm,"႞":`ႃ̊`,ឣ:`អ`,"᧐":`ᦞ`,"᧑":`ᦱ`,"᪀":`ᩅ`,"᪐":`ᩅ`,"꩓":`ꨁ`,"꩖":`ꨣ`,"᭒":`ᬍ`,"᭓":`ᬑ`,"᭘":`ᬨ`,ꦣ:`ꦝ`,ᢖ:`ᡜ`,ᡕ:`ᠵ`,ῶ:`Ꮿ`,ᐍ:Sm,ᐫ:Cm,ᐑ:wm,ᐓ:Tm,ᐭ:Em,ᐕ:Dm,ᐘ:Om,ᐮ:km,ᐚ:Am,ᣝ:jm,ᓑ:`ᐡ`,ᕀ:`ᐩ`,ᐿ:Mm,ᑃ:Nm,"⍩":`ᐵ`,ᑇ:Pm,ᑜ:Fm,"⸧":`ᑐ`,"⊃":`ᑐ`,ᑞ:Im,ᑩ:Lm,"⟉":`ᑐ/`,"⫗":`ᑐᑕ`,ᑠ:Rm,"⸦":`ᑕ`,"⊂":`ᑕ`,ᑢ:zm,ᑪ:Bm,ᑤ:Vm,ᑵ:Hm,ᒅ:Um,ᑹ:Wm,ᑽ:Gm,ᘃ:`ᒉ`,ᒓ:Km,ᒕ:qm,ᒗ:Jm,ᒛ:Ym,ᘂ:`ᒐ`,ᒝ:Xm,ᒟ:Zm,ᒭ:Qm,ᒱ:$m,ᒳ:eh,ᒵ:th,ᒹ:nh,ᓊ:rh,ᣇ:ih,ᣉ:ah,ᣋ:oh,ᣍ:sh,ᓌ:ch,ᓎ:lh,ᘄ:`ᓓ`,ᓝ:uh,ᓟ:dh,ᓡ:fh,ᓣ:ph,ᓥ:mh,ᘇ:`ᓚ`,ᓧ:hh,ᓩ:gh,ᓷ:_h,ᓹ:vh,ᓻ:yh,ᓽ:bh,ᓿ:xh,ᔁ:Sh,ᔃ:Ch,ᔌ:wh,ᔎ:Th,ᔍ:Eh,ᔏ:Dh,ᔘ:Oh,ᔚ:kh,ᔜ:Ah,ᔞ:jh,ᔠ:Mh,ᔢ:Nh,ᔤ:Ph,ᔲ:Fh,ᔴ:Ih,ᔶ:Lh,ᔸ:Rh,ᔺ:zh,ᔼ:Bh,ᘢ:`ᕃ`,ᣠ:Vh,ᘣ:`ᕆ`,ᘤ:`ᕊ`,ᕏ:Hh,ᖃ:Uh,ᖄ:Wh,ᖁ:Gh,ᕿ:Kh,ᙯ:qh,ᕾ:Jh,ᖀ:Yh,ᖂ:Xh,ᖅ:Zh,ᕜ:Qh,ᣣ:$h,ᣤ:eg,ᕩ:tg,ᣥ:ng,ᣨ:rg,ᖑ:ig,ᙰ:ag,ᖎ:og,ᖏ:sg,ᖐ:cg,ᖒ:lg,ᖓ:ug,ᖔ:dg,ᙳ:fg,ᙱ:pg,ᙲ:mg,ᙴ:hg,ᙵ:gg,ᙶ:_g,ᣪ:vg,ᙷ:yg,ᙸ:bg,ᙹ:xg,ᙺ:Sg,ᙻ:Cg,ᙼ:wg,ᙽ:Tg,"⪫":`ᗒ`,"⪪":`ᗕ`,ꓷ:`ᗡ`,ᣰ:Eg,ᣲ:Dg,ᶻ:`ᙆ`,ꓭ:`ᙠ`,ᶺ:`ᣔ`,ᴾ:`ᣖ`,ᣜ:Og,ˡ:`ᣳ`,ʳ:`ᣴ`,ˢ:`ᣵ`,ᣛ:`ᣵ`,ꚰ:`ᚹ`,ᛡ:`ᚼ`,"⍿":`ᚽ`,ᛂ:`ᚽ`,"𝈿":`ᛋ`,"↑":`ᛏ`,"↿":`ᛐ`,"⥮":`ᛐ⇂`,"⥣":`ᛐᛚ`,ⵣ:`ᛯ`,"↾":`ᛚ`,"⨡":`ᛚ`,"⋄":`ᛜ`,"◇":`ᛜ`,"◊":`ᛜ`,"♢":`ᛜ`,"🝔":`ᛜ`,𑢷:`ᛜ`,𐊔:`ᛜ`,"⍚":`ᛜ̲`,"⋈":`ᛞ`,"⨝":`ᛞ`,𐓐:`ᛦ`,"↕":`ᛨ`,"𐳼":`𐲂`,"𐳺":`𐲥`,ㄱ:`ᄀ`,ᆨ:`ᄀ`,ᄁ:kg,ㄲ:Ag,ᆩ:jg,ᇺ:Mg,ᅚ:Ng,ᇃ:Pg,ᇻ:Fg,ᆪ:Ig,ㄳ:Lg,ᇄ:Rg,ᇼ:zg,ᇽ:Bg,ᇾ:Vg,ㄴ:`ᄂ`,ᆫ:`ᄂ`,ᄓ:Hg,ᇅ:Ug,ᄔ:Wg,ㅥ:Gg,ᇿ:Kg,ᄕ:qg,ㅦ:Jg,ᇆ:Yg,ퟋ:Xg,ᄖ:Zg,ᅛ:Qg,ᇇ:$g,ㅧ:e_,ᅜ:t_,ᆬ:n_,ㄵ:r_,ퟌ:i_,ᇉ:a_,ᅝ:o_,ᆭ:s_,ㄶ:c_,ᇈ:l_,ㅨ:u_,ㄷ:`ᄃ`,ᆮ:`ᄃ`,ᄗ:d_,ᇊ:f_,ᄄ:p_,ㄸ:m_,ퟍ:h_,ퟎ:g_,ᅞ:__,ᇋ:v_,ꥠ:y_,ꥡ:b_,ퟏ:x_,ꥢ:S_,ퟐ:C_,ퟑ:w_,ꥣ:T_,ퟒ:E_,ퟓ:D_,ퟔ:O_,ㄹ:`ᄅ`,ᆯ:`ᄅ`,ꥤ:k_,ᆰ:A_,ㄺ:j_,ꥥ:M_,ퟕ:N_,ᇌ:P_,ㅩ:F_,ퟖ:I_,ᄘ:L_,ᇍ:R_,ꥦ:z_,ᇎ:B_,ㅪ:V_,ꥧ:H_,ᇏ:U_,ᄙ:W_,ᇐ:G_,ퟗ:K_,ꥨ:q_,ᆱ:J_,ㄻ:Y_,ᇑ:X_,ᇒ:Z_,ퟘ:Q_,ꥩ:$_,ᆲ:ev,ㄼ:tv,ퟙ:nv,ꥪ:rv,ᇓ:iv,ㅫ:av,ꥫ:ov,ᇕ:sv,ퟚ:cv,ᇔ:lv,ꥬ:uv,ᆳ:dv,ㄽ:fv,ᇖ:pv,ᄛ:mv,ퟝ:hv,ꥭ:gv,ꥮ:_v,ᇘ:vv,ᆴ:yv,ㄾ:bv,ᆵ:xv,ㄿ:Sv,ᄚ:Cv,ㅀ:wv,ᄻ:Tv,ᆶ:Ev,ퟲ:Dv,ᇗ:Ov,ㅬ:kv,ퟛ:Av,ᇙ:jv,ㅭ:Mv,ퟜ:Nv,ㅁ:`ᄆ`,ᆷ:`ᄆ`,ꥯ:Pv,ᇚ:Fv,ퟞ:Iv,ퟟ:Lv,ꥰ:Rv,ᇛ:zv,ퟠ:Bv,ᄜ:Vv,ㅮ:Hv,ᇜ:Uv,ퟡ:Wv,ꥱ:Gv,ᇝ:Kv,ㅯ:qv,ᇞ:Jv,ᄝ:Yv,ㅱ:Xv,ᇢ:Zv,ퟢ:Qv,ᇠ:$v,ᇡ:ey,ᇟ:ty,ㅰ:ny,ㅂ:`ᄇ`,ᆸ:`ᄇ`,ᄞ:ry,ㅲ:iy,ᄟ:ay,ᄠ:oy,ㅳ:sy,ퟣ:cy,ᇣ:ly,ퟤ:uy,ퟥ:dy,ᄈ:fy,ㅃ:py,ퟦ:my,ᄬ:hy,ㅹ:gy,ᄡ:_y,ㅄ:vy,ᆹ:yy,ᄢ:by,ㅴ:xy,ᄣ:Sy,ㅵ:Cy,ퟧ:wy,ᄤ:Ty,ᄥ:Ey,ᄦ:Dy,ꥲ:Oy,ᄫ:ky,ㅸ:Ay,ᇦ:jy,ᄧ:My,ㅶ:Ny,ퟨ:Py,ᄨ:Fy,ퟩ:Iy,ꥳ:Ly,ᄩ:Ry,ㅷ:zy,ᄪ:By,ᇤ:Vy,ꥴ:Hy,ᇥ:Uy,ㅅ:`ᄉ`,ᆺ:`ᄉ`,ᄭ:Wy,ㅺ:Gy,ᇧ:Ky,ᄮ:qy,ㅻ:Jy,ᄯ:Yy,ㅼ:Xy,ᇨ:Zy,ᄰ:Qy,ᇩ:$y,ᄱ:eb,ퟪ:tb,ᄲ:nb,ㅽ:rb,ᇪ:ib,ᄳ:ab,ퟫ:ob,ᄊ:sb,ㅆ:cb,ᆻ:lb,ퟬ:ub,ퟭ:db,ꥵ:fb,ᄴ:pb,ᄵ:mb,ᄶ:hb,ㅾ:gb,ퟯ:_b,ᄷ:vb,ퟰ:yb,ᄸ:bb,ᄹ:xb,ퟱ:Sb,ᄺ:Cb,ퟮ:wb,ㅇ:`ᄋ`,ᆼ:`ᄋ`,ᅁ:Tb,ᇬ:Eb,ᇭ:Db,ᅂ:Ob,ꥶ:kb,ᅃ:Ab,ᅄ:jb,ᅅ:Mb,ᇱ:Nb,ㆂ:Pb,ᅇ:Fb,ㆀ:Ib,ᇮ:Lb,ᅈ:Rb,ᅉ:zb,ᇯ:Bb,ᅊ:Vb,ᅋ:Hb,ꥷ:Ub,ᅆ:Wb,ᇲ:Gb,ㆃ:Kb,ㅈ:`ᄌ`,ᆽ:`ᄌ`,ퟷ:qb,ퟸ:Jb,ᅍ:Yb,ᄍ:Xb,ㅉ:Zb,ퟹ:Qb,ꥸ:$b,ㅊ:`ᄎ`,ᆾ:`ᄎ`,ᅒ:ex,ᅓ:tx,ㅋ:`ᄏ`,ᆿ:`ᄏ`,ㅌ:`ᄐ`,ᇀ:`ᄐ`,ꥹ:nx,ㅍ:`ᄑ`,ᇁ:`ᄑ`,ᅖ:rx,ᇳ:ix,ퟺ:ax,ᅗ:ox,ㆄ:sx,ᇴ:cx,ퟻ:lx,ꥺ:ux,ㅎ:`ᄒ`,ᇂ:`ᄒ`,ᇵ:dx,ᇶ:fx,ᇷ:px,ᇸ:mx,ꥻ:hx,ᅘ:gx,ㆅ:_x,ᄽ:vx,ᄿ:yx,ㅿ:`ᅀ`,ᇫ:`ᅀ`,ퟳ:bx,ퟴ:xx,ㆁ:`ᅌ`,ᇰ:`ᅌ`,ퟵ:Sx,ퟶ:Cx,ᅏ:wx,ᅑ:Tx,ㆆ:`ᅙ`,ᇹ:`ᅙ`,ꥼ:Ex,ㅤ:`ᅠ`,ㅏ:`ᅡ`,ᆣ:Dx,ᅶ:Ox,ᅷ:kx,ᅢ:Ax,ㅐ:jx,ㅑ:`ᅣ`,ᅸ:Mx,ᅹ:Nx,ᆤ:Px,ᅤ:Fx,ㅒ:Ix,ㅓ:`ᅥ`,ᅼ:Lx,ᅺ:Rx,ᅻ:zx,ᅦ:Bx,ㅔ:Vx,ㅕ:`ᅧ`,ᆥ:Hx,ᅽ:Ux,ᅾ:Wx,ᅨ:Gx,ㅖ:Kx,ㅗ:`ᅩ`,ᅪ:qx,ㅘ:Jx,ᅫ:Yx,ㅙ:Xx,ᆦ:Zx,ᆧ:Qx,ᅿ:$x,ᆀ:eS,ힰ:tS,ᆁ:nS,ᆂ:rS,ힱ:iS,ᆃ:aS,ᅬ:oS,ㅚ:sS,ㅛ:`ᅭ`,ힲ:cS,ힳ:lS,ᆄ:uS,ㆇ:dS,ᆆ:fS,ᆅ:pS,ㆈ:mS,ힴ:hS,ᆇ:gS,ᆈ:_S,ㆉ:vS,ㅜ:`ᅮ`,ᆉ:yS,ᆊ:bS,ᅯ:xS,ㅝ:SS,ᆋ:CS,ᅰ:wS,ㅞ:TS,ힵ:ES,ᆌ:DS,ᆍ:OS,ᅱ:kS,ㅟ:AS,ힶ:jS,ㅠ:`ᅲ`,ᆎ:MS,ힷ:NS,ᆏ:PS,ᆐ:FS,ᆑ:IS,ㆊ:LS,ᆒ:RS,ㆋ:zS,ힸ:BS,ᆓ:VS,ᆔ:HS,ㆌ:US,ㆍ:`ᆞ`,ퟅ:WS,ᆟ:GS,ퟆ:KS,ᆠ:qS,ᆢ:JS,ᆡ:YS,ㆎ:XS,ヘ:`へ`,"⍁":`〼`,"⧄":`〼`,"꒞":`ꁊ`,"꒬":`ꁐ`,"꒜":`ꃀ`,"꒨":`ꄲ`,"꒿":`ꉙ`,"꒾":`ꊱ`,"꒔":`ꋍ`,"꓀":`ꎫ`,"꓂":`ꎵ`,"꒺":`ꎿ`,"꒰":`ꏂ`,"꒧":`ꑘ`,"⊥":`ꓕ`,"⟂":`ꓕ`,"𝈜":`ꓕ`,Ʇ:`ꓕ`,Ꞟ:`ꓤ`,"⅁":`ꓨ`,"⅂":`ꓶ`,"𝈕":`ꓶ`,"𝈫":`ꓶ`,𖼦:`ꓶ`,𐐑:`ꓶ`,"⅃":`𖼀`,𑫦:ZS,𑫨:QS,𑫩:$S,𑫪:eC,𑫧:tC,𑫴:nC,𑫶:rC,𑫷:iC,𑫸:aC,𑫵:oC,𑫬:sC,𑫭:cC,𑫮:lC,"⊕":`𐊨`,"⨁":`𐊨`,"🜨":`𐊨`,Ꚛ:uC,"▽":`𐊼`,"𝈔":`𐊼`,"🜄":`𐊼`,"⧖":`𐋀`,ꞛ:dC,Ꞛ:fC,"𐒠":`𐒆`,𐏑:pC,𐏓:mC,𒀸:hC,"☥":`𐦞`,𓋹:gC,〹:`卄`,不:`不`,丽:`丽`,並:`並`,"⎜":`丨`,"⎟":`丨`,"⎢":`丨`,"⎥":`丨`,"⎪":`丨`,"⎮":`丨`,"㇑":`丨`,ᅵ:`丨`,ㅣ:`丨`,"⼁":`丨`,ᆜ:_C,ᆘ:vC,ᆙ:yC,ힽ:bC,ힾ:xC,ힿ:SC,ퟀ:CC,ᆚ:wC,ퟁ:TC,ퟂ:EC,ᆛ:DC,ퟃ:OC,ᆝ:kC,ퟄ:AC,串:`串`,丸:`丸`,丹:`丹`,乁:`乁`,"㇠":`乙`,"⼄":`乙`,"㇟":`乚`,"⺃":`乚`,"㇖":`乛`,"⺂":`乛`,"⻲":`亀`,亂:`亂`,"㇚":`亅`,"⼅":`亅`,了:`了`,ニ:`二`,"⼆":`二`,𠄢:jC,"⼇":`亠`,亮:`亮`,"⼈":`人`,イ:`亻`,"⺅":`亻`,什:`什`,仌:`仌`,令:`令`,你:`你`,倂:`併`,倂:`併`,侀:`侀`,來:`來`,例:`例`,侮:`侮`,侮:`侮`,侻:`侻`,便:`便`,值:`値`,倫:`倫`,偺:`偺`,備:`備`,像:`像`,僚:`僚`,僧:`僧`,僧:`僧`,㒞:`㒞`,"⼉":`儿`,兀:`兀`,"⺎":`兀`,充:`充`,免:`免`,免:`免`,兔:`兔`,兤:`兤`,"⼊":`入`,內:`內`,全:`全`,兩:`兩`,ハ:`八`,"⼋":`八`,六:`六`,具:`具`,𠔜:MC,𠔥:NC,冀:`冀`,㒹:`㒹`,"⼌":`冂`,再:`再`,𠕋:PC,冒:`冒`,冕:`冕`,㒻:`㒻`,最:`最`,"⼍":`冖`,冗:`冗`,冤:`冤`,"⼎":`冫`,冬:`冬`,况:`况`,况:`况`,冷:`冷`,凉:`凉`,凌:`凌`,凜:`凜`,凞:`凞`,"⼏":`几`,𠘺:FC,凵:`凵`,"⼐":`凵`,"⼑":`刀`,"⺉":`刂`,刃:`刃`,切:`切`,切:`切`,列:`列`,利:`利`,㓟:`㓟`,刺:`刺`,刻:`刻`,剆:`剆`,割:`割`,剷:`剷`,劉:`劉`,𠠄:IC,カ:`力`,力:`力`,"⼒":`力`,劣:`劣`,㔕:`㔕`,劳:`劳`,勇:`勇`,勇:`勇`,勉:`勉`,勉:`勉`,勒:`勒`,勞:`勞`,勤:`勤`,勤:`勤`,勵:`勵`,"⼓":`勹`,勺:`勺`,勺:`勺`,包:`包`,匆:`匆`,𠣞:LC,"⼔":`匕`,北:`北`,北:`北`,"⼕":`匚`,"⼖":`匸`,匿:`匿`,"⼗":`十`,〸:`十`,〺:`卅`,卉:`卉`,"࿖":`卍`,"࿕":`卐`,卑:`卑`,卑:`卑`,博:`博`,ト:`卜`,"⼘":`卜`,"⼙":`卩`,"⺋":`㔾`,即:`即`,卵:`卵`,卽:`卽`,卿:`卿`,卿:`卿`,卿:`卿`,"⼚":`厂`,𠨬:RC,"⼛":`厶`,參:`參`,"⼜":`又`,及:`及`,叟:`叟`,𠭣:zC,ロ:`口`,"⼝":`口`,囗:`口`,"⼞":`口`,句:`句`,叫:`叫`,叱:`叱`,吆:`吆`,吏:`吏`,吝:`吝`,吸:`吸`,呂:`呂`,呈:`呈`,周:`周`,咞:`咞`,咢:`咢`,咽:`咽`,䎛:`㖈`,哶:`哶`,唐:`唐`,啓:`啓`,啟:`啓`,啕:`啕`,啣:`啣`,善:`善`,善:`善`,喇:`喇`,喙:`喙`,喙:`喙`,喝:`喝`,喝:`喝`,喫:`喫`,喳:`喳`,嗀:`嗀`,嗂:`嗂`,嗢:`嗢`,嘆:`嘆`,嘆:`嘆`,噑:`噑`,噴:`噴`,器:`器`,囹:`囹`,圖:`圖`,圗:`圗`,"⼟":`土`,士:`土`,"⼠":`土`,型:`型`,城:`城`,㦳:`㘽`,埴:`埴`,堍:`堍`,報:`報`,堲:`堲`,塀:`塀`,塚:`塚`,塚:`塚`,塞:`塞`,填:`塡`,壿:`墫`,墬:`墬`,墳:`墳`,壘:`壘`,壟:`壟`,𡓤:BC,壮:`壮`,売:`売`,壷:`壷`,"⼡":`夂`,夆:`夆`,"⼢":`夊`,タ:`夕`,"⼣":`夕`,多:`多`,夢:`夢`,"⼤":`大`,奄:`奄`,奈:`奈`,契:`契`,奔:`奔`,奢:`奢`,女:`女`,"⼥":`女`,𡚨:VC,𡛪:HC,姘:`姘`,姬:`姬`,娛:`娛`,娧:`娧`,婢:`婢`,婦:`婦`,嬀:`媯`,㛮:`㛮`,㛼:`㛼`,媵:`媵`,嬈:`嬈`,嬨:`嬨`,嬾:`嬾`,嬾:`嬾`,"⼦":`子`,"⼧":`宀`,宅:`宅`,𡧈:UC,寃:`寃`,寘:`寘`,寧:`寧`,寧:`寧`,寧:`寧`,寮:`寮`,寳:`寳`,𡬘:WC,"⼨":`寸`,寿:`寿`,将:`将`,"⼩":`小`,尢:`尢`,"⺐":`尢`,"⼪":`尢`,"⺏":`尣`,㞁:`㞁`,"⼫":`尸`,尿:`尿`,屠:`屠`,屢:`屢`,層:`層`,履:`履`,屮:`屮`,屮:`屮`,"⼬":`屮`,𡴋:GC,"⼭":`山`,峀:`峀`,岍:`岍`,𡷤:KC,𡷦:qC,崙:`崙`,嵃:`嵃`,嵐:`嵐`,嵫:`嵫`,嵮:`嵮`,嵼:`嵼`,嶲:`嶲`,嶺:`嶺`,"⼮":`巛`,巢:`巢`,エ:`工`,"⼯":`工`,"⼰":`己`,"⺒":`巳`,㠯:`㠯`,巽:`巽`,"⼱":`巾`,帲:`帡`,帨:`帨`,帽:`帽`,幩:`幩`,㡢:`㡢`,𢆃:JC,"⼲":`干`,年:`年`,𢆟:YC,"⺓":`幺`,"⼳":`幺`,"⼴":`广`,度:`度`,㡼:`㡼`,庰:`庰`,庳:`庳`,庶:`庶`,廊:`廊`,廊:`廊`,廉:`廉`,廒:`廒`,廓:`廓`,廙:`廙`,廬:`廬`,"⼵":`廴`,廾:`廾`,"⼶":`廾`,𢌱:XC,𢌱:ZC,弄:`弄`,"⼷":`弋`,"⼸":`弓`,弢:`弢`,弢:`弢`,"⼹":`彐`,"⺔":`彑`,当:`当`,㣇:`㣇`,"⼺":`彡`,形:`形`,彩:`彩`,彫:`彫`,"⼻":`彳`,律:`律`,㣣:`㣣`,徚:`徚`,復:`復`,徭:`徭`,"⼼":`心`,"⺖":`忄`,"⺗":`㣺`,忍:`忍`,志:`志`,念:`念`,忹:`忹`,怒:`怒`,怜:`怜`,恵:`恵`,㤜:`㤜`,㤺:`㤺`,悁:`悁`,悔:`悔`,悔:`悔`,惇:`惇`,惘:`惘`,惡:`惡`,𢛔:QC,愈:`愈`,慨:`慨`,慄:`慄`,慈:`慈`,慌:`慌`,慌:`慌`,慎:`慎`,慎:`慎`,慠:`慠`,慺:`慺`,憎:`憎`,憎:`憎`,憎:`憎`,憐:`憐`,憤:`憤`,憯:`憯`,憲:`憲`,𢡄:$C,𢡊:ew,懞:`懞`,懲:`懲`,懲:`懲`,懲:`懲`,懶:`懶`,懶:`懶`,戀:`戀`,"⼽":`戈`,成:`成`,戛:`戛`,戮:`戮`,戴:`戴`,"⼾":`戶`,戸:`戶`,"⼿":`手`,"⺘":`扌`,扝:`扝`,抱:`抱`,拉:`拉`,拏:`拏`,拓:`拓`,拔:`拔`,拼:`拼`,拾:`拾`,𢬌:tw,挽:`挽`,捐:`捐`,捨:`捨`,捻:`捻`,掃:`掃`,掠:`掠`,掩:`掩`,揄:`揄`,揤:`揤`,摒:`摒`,𢯱:nw,搜:`搜`,搢:`搢`,揅:`揅`,摩:`摩`,摷:`摷`,摾:`摾`,㨮:`㨮`,搉:`㩁`,撚:`撚`,撝:`撝`,擄:`擄`,㩬:`㩬`,"⽀":`支`,"⽁":`攴`,"⺙":`攵`,敏:`敏`,敏:`敏`,敖:`敖`,敬:`敬`,數:`數`,𣀊:rw,"⽂":`文`,"⻫":`斉`,"⽃":`斗`,料:`料`,"⽄":`斤`,"⽅":`方`,旅:`旅`,"⽆":`无`,"⺛":`旡`,既:`既`,旣:`旣`,"⽇":`日`,易:`易`,曶:`㫚`,㫤:`㫤`,晉:`晉`,晩:`晚`,晴:`晴`,晴:`晴`,暑:`暑`,暑:`暑`,暈:`暈`,㬈:`㬈`,暜:`暜`,暴:`暴`,曆:`曆`,㬙:`㬙`,𣊸:iw,"⽈":`曰`,更:`更`,書:`書`,"⽉":`月`,𣍟:aw,肦:`朌`,胐:`朏`,胊:`朐`,脁:`朓`,胶:`㬵`,朗:`朗`,朗:`朗`,朗:`朗`,脧:`朘`,望:`望`,望:`望`,幐:`㬺`,䐠:`㬻`,𣎓:ow,膧:`朣`,𣎜:sw,"⽊":`木`,李:`李`,杓:`杓`,杖:`杖`,杞:`杞`,𣏃:cw,柿:`杮`,杻:`杻`,枅:`枅`,林:`林`,㭉:`㭉`,𣏕:lw,柳:`柳`,柺:`柺`,栗:`栗`,栟:`栟`,桒:`桒`,𣑭:uw,梁:`梁`,梅:`梅`,梅:`梅`,梎:`梎`,梨:`梨`,椔:`椔`,楂:`楂`,㮝:`㮝`,㮝:`㮝`,槩:`㮣`,樧:`榝`,榣:`榣`,槪:`槪`,樂:`樂`,樂:`樂`,樂:`樂`,樓:`樓`,𣚣:dw,檨:`檨`,櫓:`櫓`,櫛:`櫛`,欄:`欄`,㰘:`㰘`,"⽋":`欠`,次:`次`,𣢧:fw,歔:`歔`,㱎:`㱎`,"⽌":`止`,"⻭":`歯`,歲:`歲`,歷:`歷`,歹:`歹`,"⽍":`歹`,"⺞":`歺`,殟:`殟`,殮:`殮`,"⽎":`殳`,殺:`殺`,殺:`殺`,殺:`殺`,殻:`殻`,𣪍:pw,"⽏":`毋`,"⺟":`母`,𣫺:mw,"⽐":`比`,"⽑":`毛`,"⽒":`氏`,"⺠":`民`,"⽓":`气`,"⽔":`水`,"⺡":`氵`,"⺢":`氺`,汎:`汎`,汧:`汧`,沈:`沈`,沿:`沿`,泌:`泌`,泍:`泍`,泥:`泥`,𣲼:hw,洛:`洛`,洞:`洞`,洴:`洴`,派:`派`,流:`流`,流:`流`,流:`流`,洖:`洖`,浩:`浩`,浪:`浪`,海:`海`,海:`海`,浸:`浸`,涅:`涅`,𣴞:gw,淋:`淋`,淚:`淚`,淪:`淪`,淹:`淹`,渚:`渚`,港:`港`,湮:`湮`,潙:`溈`,滋:`滋`,滋:`滋`,溜:`溜`,溺:`溺`,滇:`滇`,滑:`滑`,滛:`滛`,㴳:`㴳`,漏:`漏`,漢:`漢`,漢:`漢`,漣:`漣`,𣻑:_w,潮:`潮`,𣽞:vw,𣾎:yw,濆:`濆`,濫:`濫`,濾:`濾`,瀛:`瀛`,瀞:`瀞`,瀞:`瀞`,瀹:`瀹`,灊:`灊`,㶖:`㶖`,"⽕":`火`,"⺣":`灬`,灰:`灰`,灷:`灷`,災:`災`,炙:`炙`,炭:`炭`,烈:`烈`,烙:`烙`,煮:`煮`,煮:`煮`,𤉣:bw,煅:`煅`,煉:`煉`,𤋮:xw,熜:`熜`,燎:`燎`,燐:`燐`,𤎫:Sw,爐:`爐`,爛:`爛`,爨:`爨`,"⽖":`爪`,爫:`爫`,"⺤":`爫`,爵:`爵`,爵:`爵`,"⽗":`父`,"⽘":`爻`,"⺦":`丬`,"⽙":`爿`,"⽚":`片`,牐:`牐`,"⽛":`牙`,𤘈:Cw,"⽜":`牛`,牢:`牢`,犀:`犀`,犕:`犕`,"⽝":`犬`,"⺨":`犭`,犯:`犯`,狀:`狀`,𤜵:ww,狼:`狼`,猪:`猪`,猪:`猪`,𤠔:Tw,獵:`獵`,獺:`獺`,"⽞":`玄`,率:`率`,率:`率`,"⽟":`玉`,王:`王`,㺬:`㺬`,玥:`玥`,玲:`玲`,㺸:`㺸`,㺸:`㺸`,珞:`珞`,琉:`琉`,理:`理`,琢:`琢`,瑇:`瑇`,瑜:`瑜`,瑩:`瑩`,瑱:`瑱`,瑱:`瑱`,璅:`璅`,璉:`璉`,璘:`璘`,瓊:`瓊`,"⽠":`瓜`,"⽡":`瓦`,㼛:`㼛`,甆:`甆`,"⽢":`甘`,"⽣":`生`,甤:`甤`,"⽤":`用`,"⽥":`田`,画:`画`,甾:`甾`,𤰶:Ew,留:`留`,略:`略`,異:`異`,異:`異`,𤲒:Dw,"⽦":`疋`,"⽧":`疒`,痢:`痢`,瘐:`瘐`,瘟:`瘟`,瘝:`瘝`,療:`療`,癩:`癩`,"⽨":`癶`,"⽩":`白`,𤾡:Ow,𤾸:kw,"⽪":`皮`,"⽫":`皿`,𥁄:Aw,㿼:`㿼`,益:`益`,益:`益`,盛:`盛`,盧:`盧`,䀈:`䀈`,"⽬":`目`,直:`直`,直:`直`,𥃲:jw,𥃳:Mw,省:`省`,䀘:`䀘`,𥄙:Nw,眞:`眞`,真:`真`,真:`真`,𥄳:Pw,着:`着`,睊:`睊`,睊:`睊`,鿃:`䀹`,䀹:`䀹`,䀹:`䀹`,晣:`䀿`,䁆:`䁆`,瞋:`瞋`,𥉉:Fw,瞧:`瞧`,"⽭":`矛`,"⽮":`矢`,"⽯":`石`,䂖:`䂖`,𥐝:Iw,硏:`研`,硎:`硎`,硫:`硫`,碌:`碌`,碌:`碌`,碑:`碑`,磊:`磊`,磌:`磌`,磌:`磌`,磻:`磻`,䃣:`䃣`,礪:`礪`,"⽰":`示`,"⺭":`礻`,礼:`礼`,社:`社`,祈:`祈`,祉:`祉`,𥘦:Lw,祐:`祐`,祖:`祖`,祖:`祖`,祝:`祝`,神:`神`,祥:`祥`,視:`視`,視:`視`,祿:`祿`,𥚚:Rw,禍:`禍`,禎:`禎`,福:`福`,福:`福`,𥛅:zw,禮:`禮`,"⽱":`禸`,"⽲":`禾`,秊:`秊`,䄯:`䄯`,秫:`秫`,稜:`稜`,穊:`穊`,穀:`穀`,穀:`穀`,穏:`穏`,"⽳":`穴`,突:`突`,𥥼:Bw,窱:`窱`,立:`立`,"⽴":`立`,"⻯":`竜`,𥪧:Vw,𥪧:Hw,竮:`竮`,"⽵":`竹`,笠:`笠`,節:`節`,節:`節`,䈂:`䈂`,𥮫:Uw,篆:`篆`,䈧:`䈧`,築:`築`,𥲀:Ww,𥳐:Gw,簾:`簾`,籠:`籠`,"⽶":`米`,类:`类`,粒:`粒`,精:`精`,糒:`糒`,糖:`糖`,糨:`糨`,䊠:`䊠`,糣:`糣`,糧:`糧`,"⽷":`糸`,"⺯":`糹`,𥾆:Kw,紀:`紀`,紐:`紐`,索:`索`,累:`累`,絶:`絕`,絣:`絣`,絛:`絛`,綠:`綠`,綾:`綾`,緇:`緇`,練:`練`,練:`練`,練:`練`,縂:`縂`,䌁:`䌁`,縉:`縉`,縷:`縷`,繁:`繁`,繅:`繅`,𦇚:qw,䌴:`䌴`,"⽸":`缶`,𦈨:Jw,缾:`缾`,𦉇:Yw,"⽹":`网`,"⺫":`罒`,"⺲":`罒`,"⺱":`罓`,䍙:`䍙`,署:`署`,𦋙:Xw,罹:`罹`,罺:`罺`,羅:`羅`,𦌾:Zw,"⽺":`羊`,羕:`羕`,羚:`羚`,羽:`羽`,"⽻":`羽`,翺:`翺`,老:`老`,"⽼":`老`,"⺹":`耂`,者:`者`,者:`者`,者:`者`,"⽽":`而`,𦓚:Qw,"⽾":`耒`,𦔣:$w,"⽿":`耳`,聆:`聆`,聠:`聠`,𦖨:eT,聯:`聯`,聰:`聰`,聾:`聾`,"⾀":`聿`,"⺺":`肀`,"⾁":`肉`,肋:`肋`,肭:`肭`,育:`育`,䏕:`䏕`,䏙:`䏙`,腁:`胼`,脃:`脃`,脾:`脾`,䐋:`䐋`,朡:`朡`,𦞧:tT,𦞵:nT,朦:`䑃`,臘:`臘`,"⾂":`臣`,臨:`臨`,"⾃":`自`,臭:`臭`,"⾄":`至`,"⾅":`臼`,舁:`舁`,舁:`舁`,舄:`舄`,"⾆":`舌`,舘:`舘`,"⾇":`舛`,"⾈":`舟`,䑫:`䑫`,"⾉":`艮`,良:`良`,"⾊":`色`,"⾋":`艸`,艹:`艹`,艹:`艹`,"⺾":`艹`,"⺿":`艹`,"⻀":`艹`,芋:`芋`,芑:`芑`,芝:`芝`,花:`花`,芳:`芳`,芽:`芽`,若:`若`,若:`若`,苦:`苦`,𦬼:rT,茶:`茶`,荒:`荒`,荣:`荣`,茝:`茝`,茣:`茣`,莽:`莽`,荓:`荓`,菉:`菉`,菊:`菊`,菌:`菌`,菜:`菜`,菧:`菧`,華:`華`,菱:`菱`,著:`著`,著:`著`,𦰶:iT,莭:`莭`,落:`落`,葉:`葉`,蔿:`蒍`,𦳕:aT,𦵫:oT,蓮:`蓮`,蓱:`蓱`,蓳:`蓳`,蓼:`蓼`,蔖:`蔖`,䔫:`䔫`,蕤:`蕤`,𦼬:sT,藍:`藍`,䕝:`䕝`,𦾱:cT,䕡:`䕡`,藺:`藺`,蘆:`蘆`,䕫:`䕫`,蘒:`蘒`,蘭:`蘭`,𧃒:lT,虁:`蘷`,蘿:`蘿`,"⾌":`虍`,"⻁":`虎`,虐:`虐`,虜:`虜`,虜:`虜`,虧:`虧`,虩:`虩`,"⾍":`虫`,蚩:`蚩`,蚈:`蚈`,蛢:`蛢`,蜎:`蜎`,蜨:`蜨`,蝫:`蝫`,蟡:`蟡`,蝹:`蝹`,蝹:`蝹`,螆:`螆`,䗗:`䗗`,𧏊:uT,螺:`螺`,蠁:`蠁`,䗹:`䗹`,蠟:`蠟`,"⾎":`血`,行:`行`,"⾏":`行`,衠:`衠`,衣:`衣`,"⾐":`衣`,"⻂":`衤`,裂:`裂`,𧙧:dT,裏:`裏`,裗:`裗`,裞:`裞`,裡:`裡`,裸:`裸`,裺:`裺`,䘵:`䘵`,褐:`褐`,襁:`襁`,襤:`襤`,"⾑":`襾`,"⻄":`西`,"⻃":`覀`,覆:`覆`,見:`見`,"⾒":`見`,𧢮:fT,"⻅":`见`,"⾓":`角`,"⾔":`言`,𧥦:pT,詽:`訮`,訞:`䚶`,䚾:`䚾`,䛇:`䛇`,誠:`誠`,說:`說`,說:`說`,調:`調`,請:`請`,諒:`諒`,論:`論`,諭:`諭`,諭:`諭`,諸:`諸`,諸:`諸`,諾:`諾`,諾:`諾`,謁:`謁`,謁:`謁`,謹:`謹`,謹:`謹`,識:`識`,讀:`讀`,讏:`讆`,變:`變`,變:`變`,"⻈":`讠`,"⾕":`谷`,"⾖":`豆`,豈:`豈`,豕:`豕`,"⾗":`豕`,豣:`豜`,"⾘":`豸`,𧲨:mT,"⾙":`貝`,貫:`貫`,賁:`賁`,賂:`賂`,賈:`賈`,賓:`賓`,贈:`贈`,贈:`贈`,贛:`贛`,"⻉":`贝`,"⾚":`赤`,"⾛":`走`,起:`起`,趆:`赿`,𧻓:hT,𧼯:gT,"⾜":`足`,跋:`跋`,趼:`趼`,跺:`跥`,路:`路`,跰:`跰`,躛:`躗`,"⾝":`身`,車:`車`,"⾞":`車`,軔:`軔`,輧:`軿`,輦:`輦`,輪:`輪`,輸:`輸`,輸:`輸`,輻:`輻`,轢:`轢`,"⻋":`车`,"⾟":`辛`,辞:`辞`,辰:`辰`,"⾠":`辰`,"⾡":`辵`,辶:`辶`,"⻌":`辶`,"⻍":`辶`,巡:`巡`,連:`連`,逸:`逸`,逸:`逸`,遲:`遲`,遼:`遼`,𨗒:_T,𨗭:vT,邏:`邏`,"⾢":`邑`,邔:`邔`,郎:`郎`,郞:`郎`,郞:`郎`,郱:`郱`,都:`都`,𨜮:yT,鄑:`鄑`,鄛:`鄛`,"⾣":`酉`,酪:`酪`,醙:`醙`,醴:`醴`,"⾤":`釆`,里:`里`,"⾥":`里`,量:`量`,金:`金`,"⾦":`金`,鈴:`鈴`,鈸:`鈸`,鉶:`鉶`,鋗:`鋗`,鋘:`鋘`,鉼:`鉼`,錄:`錄`,鍊:`鍊`,鎮:`鎭`,鏹:`鏹`,鐕:`鐕`,𨯺:bT,"⻐":`钅`,"⻑":`長`,"⾧":`長`,"⻒":`镸`,"⻓":`长`,"⾨":`門`,開:`開`,䦕:`䦕`,閭:`閭`,閷:`閷`,𨵷:xT,"⻔":`门`,"⾩":`阜`,"⻏":`阝`,"⻖":`阝`,阮:`阮`,陋:`陋`,降:`降`,陵:`陵`,陸:`陸`,陼:`陼`,隆:`隆`,隣:`隣`,䧦:`䧦`,"⾪":`隶`,隷:`隷`,隸:`隷`,隸:`隷`,"⾫":`隹`,雃:`雃`,離:`離`,難:`難`,難:`難`,"⾬":`雨`,零:`零`,雷:`雷`,霣:`霣`,𩅅:ST,露:`露`,靈:`靈`,"⾭":`靑`,"⻘":`青`,靖:`靖`,靖:`靖`,𩇟:CT,"⾮":`非`,"⾯":`面`,𩈚:wT,"⾰":`革`,䩮:`䩮`,䩶:`䩶`,"⾱":`韋`,韛:`韛`,韠:`韠`,"⻙":`韦`,"⾲":`韭`,𩐊:TT,"⾳":`音`,響:`響`,響:`響`,"⾴":`頁`,䪲:`䪲`,頋:`頋`,頋:`頋`,頋:`頋`,領:`領`,頩:`頩`,𩒖:ET,頻:`頻`,頻:`頻`,類:`類`,"⻚":`页`,"⾵":`風`,𩖶:DT,"⻛":`风`,"⾶":`飛`,"⻜":`飞`,"⻝":`食`,"⾷":`食`,"⻟":`飠`,飢:`飢`,飯:`飯`,飼:`飼`,䬳:`䬳`,館:`館`,餩:`餩`,"⻠":`饣`,"⾸":`首`,"⾹":`香`,馧:`馧`,"⾺":`馬`,駂:`駂`,駱:`駱`,駾:`駾`,驪:`驪`,"⻢":`马`,"⾻":`骨`,䯎:`䯎`,"⾼":`高`,"⾽":`髟`,𩬰:OT,鬒:`鬒`,鬒:`鬒`,"⾾":`鬥`,"⾿":`鬯`,"⿀":`鬲`,"⿁":`鬼`,"⻤":`鬼`,"⿂":`魚`,魯:`魯`,鱀:`鱀`,鱗:`鱗`,"⻥":`鱼`,"⿃":`鳥`,鳽:`鳽`,䳎:`䳎`,鵧:`鵧`,䳭:`䳭`,𪃎:kT,鶴:`鶴`,𪄅:AT,䳸:`䳸`,鷺:`鷺`,𪈎:jT,鸞:`鸞`,鹃:`鹂`,"⿄":`鹵`,鹿:`鹿`,"⿅":`鹿`,𪊑:MT,麗:`麗`,麟:`麟`,"⿆":`麥`,"⻨":`麦`,麻:`麻`,"⿇":`麻`,𪎒:NT,"⿈":`黃`,"⻩":`黄`,"⿉":`黍`,黎:`黎`,䵖:`䵖`,"⿊":`黑`,黒:`黑`,墨:`墨`,黹:`黹`,"⿋":`黹`,"⿌":`黽`,鼅:`鼅`,黾:`黾`,"⿍":`鼎`,鼏:`鼏`,"⿎":`鼓`,鼖:`鼖`,"⿏":`鼠`,鼻:`鼻`,"⿐":`鼻`,齃:`齃`,"⿑":`齊`,"⻬":`齐`,"⿒":`齒`,𪘀:PT,"⻮":`齿`,龍:`龍`,"⿓":`龍`,龎:`龎`,"⻰":`龙`,龜:`龜`,龜:`龜`,龜:`龜`,"⿔":`龜`,"⻳":`龟`,"⿕":`龠`}})),nee=e(i(((e,n)=>{var r=(tee(),t(_).default);function i(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,`\\$1`)}var a=RegExp(Object.keys(r).map(i).join(`|`),`g`);function o(e){return r[e]}function s(e){return e.replace(a,o)}n.exports=s}))(),1),ree=Object.prototype.toString,iee=e=>ree.call(e)===`[object Error]`,aee=new Set([`network error`,`NetworkError when attempting to fetch resource.`,`The Internet connection appears to be offline.`,`Network request failed`,`fetch failed`,`terminated`,` A network error occurred.`,`Network connection lost`]);function oee(e){if(!(e&&iee(e)&&e.name===`TypeError`&&typeof e.message==`string`))return!1;let{message:t,stack:n}=e;return t===`Load failed`?n===void 0||`__sentry_captured__`in e:t.startsWith(`error sending request for url`)||t===`Failed to fetch`||t.startsWith(`Failed to fetch (`)&&t.endsWith(`)`)?!0:aee.has(t)}function see(e){if(typeof e==`number`){if(e<0)throw TypeError("Expected `retries` to be a non-negative number.");if(Number.isNaN(e))throw TypeError("Expected `retries` to be a valid number or Infinity, got NaN.")}else if(e!==void 0)throw TypeError("Expected `retries` to be a number or Infinity.")}function FT(e,t,{min:n=0,allowInfinity:r=!1}={}){if(t!==void 0){if(typeof t!=`number`||Number.isNaN(t))throw TypeError(`Expected \`${e}\` to be a number${r?` or Infinity`:``}.`);if(!r&&!Number.isFinite(t))throw TypeError(`Expected \`${e}\` to be a finite number.`);if(t{let i=()=>{clearTimeout(a),t.signal?.removeEventListener(`abort`,i),r(t.signal.reason)},a=setTimeout(()=>{t.signal?.removeEventListener(`abort`,i),n()},e);t.unref&&a.unref?.(),t.signal?.addEventListener(`abort`,i,{once:!0})})}async function dee({error:e,attemptNumber:t,retriesConsumed:n,startTime:r,options:i}){let a=e instanceof Error?e:TypeError(`Non-error was thrown: "${e}". You should only throw errors.`);if(a instanceof cee)throw a.originalError;let o=Number.isFinite(i.retries)?Math.max(0,i.retries-n):i.retries,s=i.maxRetryTime??1/0,c=lee(n,i);if(LT(r,s)<=0){let e=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:0});throw await i.onFailedAttempt(e),a}let l=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:o>0?c:0}),u=await i.shouldConsumeRetry(l),d=u&&o>0?c:0,f=Object.freeze({error:a,attemptNumber:t,retriesLeft:o,retriesConsumed:n,retryDelay:d});if(await i.onFailedAttempt(f),LT(r,s)<=0||LT(r,s)<=0||o<=0||a instanceof TypeError&&!oee(a)||!await i.shouldRetry(f))throw a;let p=LT(r,s);if(p<=0)throw a;if(!u)return i.signal?.throwIfAborted(),!1;let m=Math.min(d,p);return i.signal?.throwIfAborted(),await uee(m,i),i.signal?.throwIfAborted(),!0}async function fee(e,t={}){if(t={...t},see(t.retries),Object.hasOwn(t,`forever`))throw Error("The `forever` option is no longer supported. For many use-cases, you can set `retries: Infinity` instead.");t.retries??=10,t.factor??=2,t.minTimeout??=1e3,t.maxTimeout??=1/0,t.maxRetryTime??=1/0,t.randomize??=!1,t.onFailedAttempt??=()=>{},t.shouldRetry??=()=>!0,t.shouldConsumeRetry??=()=>!0,IT(`onFailedAttempt`,t.onFailedAttempt),IT(`shouldRetry`,t.shouldRetry),IT(`shouldConsumeRetry`,t.shouldConsumeRetry),FT(`factor`,t.factor,{min:0,allowInfinity:!1}),FT(`minTimeout`,t.minTimeout,{min:0,allowInfinity:!1}),FT(`maxTimeout`,t.maxTimeout,{min:0,allowInfinity:!0}),FT(`maxRetryTime`,t.maxRetryTime,{min:0,allowInfinity:!0}),t.factor>0||(t.factor=1),t.signal?.throwIfAborted();let n=0,r=0,i=performance.now();for(;!Number.isFinite(t.retries)||r<=t.retries;){n++;try{t.signal?.throwIfAborted();let r=await e(n);return t.signal?.throwIfAborted(),r}catch(e){await dee({error:e,attemptNumber:n,retriesConsumed:r,startTime:i,options:t})&&r++}}throw Error(`Retry attempts exhausted without throwing an error.`)}var RT=class{constructor(e,t){if(this.stable=e,this.unstable=t,!this.unstable&&!this.stable)throw Error(`One of stable or unstable values must be supplied`)}get name(){return this.stable?this.stable:this.unstable}get altName(){return this.stable?this.unstable:null}get names(){var e=[this.name],t=this.altName;return t&&e.push(t),e}matches(e){return this.name===e||this.altName===e}findIn(e){var t=void 0;return this.name&&(t=e?.[this.name]),!t&&this.altName&&(t=e?.[this.altName]),t}includedIn(e){var t=!1;return this.name&&(t=e.includes(this.name)),!t&&this.altName&&(t=e.includes(this.altName)),t}},zT=class extends RT{constructor(){super(...arguments),g(this,`preferUnstable`,!1)}setPreferUnstable(e){this.preferUnstable=e}get name(){return this.stable&&!this.preferUnstable?this.stable:this.unstable}},BT=class extends RT{constructor(e,t){if(super(e,t),!this.unstable)throw Error(`Unstable value must be supplied`)}get name(){return this.unstable}get altName(){return this.stable}},VT=function(e){return e.Self=`m.self`,e.Pin=`m.pin`,e}({}),HT=new BT(`m.asset`,`org.matrix.msc3488.asset`),UT=new BT(`m.ts`,`org.matrix.msc3488.ts`),WT=new BT(`m.location`,`org.matrix.msc3488.location`),GT=function(e){return e.Read=`m.read`,e.FullyRead=`m.fully_read`,e.ReadPrivate=`m.read.private`,e}({}),pee=`main`;function mee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hee(e){for(var t=1;t{n.append(e,String(t))}):n.append(e,String(t)))},i;for(var a of Object.entries(e))r();return n}function gee(e,t,n){var r=hee(hee({},n),{},{[t]:n[e]});return delete r[e],r}function M(e,t){for(var n in t)if(t.hasOwnProperty(n)){var r=t[n];r!=null&&(e=e.replace(n,encodeURIComponent(r)))}return e}function YT(e,t,n){var r;if(n){for(r=e.length-1;r>=0;r--)if(t(e[r],r,e))return e.splice(r,1),!0}else for(r=0;ruE(e[0],t[0])),t}function vee(e){return typeof e==`number`&&isFinite(e)}function $T(e){return typeof e==`string`?(0,nee.default)(e.normalize(`NFD`).replace(bee,``)):``}function eE(e){return typeof e==`string`?e.replace(/[\u202d-\u202e]/g,``):``}function yee(e){return $T(e.toLowerCase()).replace(/[\\'!"#$%&()*+,\-./:;<=>?@[\]^_`{|}~\u2000-\u206f\u2e00-\u2e7f]/g,``).toLowerCase()}var bee=/[\u2000-\u200F\u202A-\u202F\u0300-\u036F\uFEFF\u061C\u2800\u2062-\u2063\s]/g;function xee(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function See(e){return xee(e).replace(/\\\*/g,`.*`).replace(/\?/g,`.`)}function tE(e){return e!=null&&e.endsWith(`/`)?e.slice(0,-1):e}function nE(e,t){return new Promise(n=>{setTimeout(n,e,t)})}function Cee(e,t,n){return rE.apply(this,arguments)}function rE(){return rE=f(function*(e,t,n){var r=Date.now();try{return yield n()}finally{var i=Date.now();e.debug(`[Perf]: ${t} took ${i-r}ms`)}}),rE.apply(this,arguments)}function wee(e,t,n){var r=Date.now();try{return n()}finally{var i=Date.now();e.debug(`[Perf]: ${t} took ${i-r}ms`)}}function Tee(e){return e==null}function Eee(e,t){return iE.apply(this,arguments)}function iE(){return iE=f(function*(e,t){for(var n of e)yield t(yield n)}),iE.apply(this,arguments)}function aE(e){return Promise.resolve(e())}function Dee(e,t){return fee(t=>e(t),{retries:1/0,shouldRetry:t?e=>{var n=e.error;return t(n)}:void 0,factor:2,minTimeout:3e3,maxTimeout:15e3})}var oE=(()=>{for(var e=``,t=32;t<=126;t++)e+=String.fromCharCode(t);return e})();function Oee(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:oE;return e.padEnd(t,n[0])}function sE(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oE,n=BigInt(t.length);if(e<=n)return t[Number(e)-1]??``;var r=e/n,i=Number(e%n)-1;return i<0&&(r-=BigInt(Math.abs(i)),i=Number(n)-1),sE(r,t)+t[i]}function cE(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oE,n=BigInt(t.length),r=BigInt(0),i=e.length-1,a=BigInt(0);i>=0;i--,a++){var o=e.charCodeAt(i)-t.charCodeAt(0);r+=BigInt(1+o)*n**a}return r}function kee(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:oE,r=Math.max(e.length,t.length),i=cE(Oee(e,r,n),n),a=cE(Oee(t,r,n),n),o=(i+a)/BigInt(2);return o===i||o==a?sE(o,n)+n[0]:sE(o,n)}function lE(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oE;return sE(cE(e,t)+BigInt(1),t)}function Aee(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:oE;return sE(cE(e,t)-BigInt(1),t)}function uE(e,t){return et)}function jee(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(var r of Object.entries(t)){var i=u(r,2),a=i[0],o=i[1];if(e[a]instanceof Object&&o){jee(e[a],o);continue}if(o!=null||!n){mE(e,a,o);continue}}return e}function Mee(e){return UT.findIn(e.getContent())??-1}function Nee(e,t){return Mee(t)-Mee(e)}function dE(e){return[GT.Read,GT.ReadPrivate].includes(e)}function Pee(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:(e,t)=>e===t;if(e.size!==t.size)return!1;for(var r of e){var i=u(r,2),a=i[0],o=i[1],s=t.get(a);if(s===void 0||!n(o,s))return!1}return!0}function Fee(e){return e instanceof Map?fE(e):Array.isArray(e)?e.map(e=>Fee(e)):e}function fE(e){var t=new Map;for(var n of e){var r=u(n,2),i=r[0],a=r[1];t.set(i,Fee(a))}return Object.fromEntries(t.entries())}function pE(e){return e===`__proto__`||e===`prototype`||e===`constructor`}function mE(e,t,n){if(pE(t))throw Error(`Trying to modify prototype or constructor`);e[t]=n}function hE(e){return!(pE(e.room_id)||pE(e.sender)||pE(e.event_id))}var gE=class extends Map{constructor(e){super(),this.createDefault=e}getOrCreate(e){return this.has(e)||this.set(e,this.createDefault()),this.get(e)}},_E=`migrationState`,vE=function(e){return e[e.NOT_STARTED=0]=`NOT_STARTED`,e[e.INITIAL_DATA_MIGRATED=1]=`INITIAL_DATA_MIGRATED`,e[e.OLM_SESSIONS_MIGRATED=2]=`OLM_SESSIONS_MIGRATED`,e[e.MEGOLM_SESSIONS_MIGRATED=3]=`MEGOLM_SESSIONS_MIGRATED`,e[e.ROOM_SETTINGS_MIGRATED=4]=`ROOM_SETTINGS_MIGRATED`,e[e.INITIAL_OWN_KEY_QUERY_DONE=5]=`INITIAL_OWN_KEY_QUERY_DONE`,e}({});function Iee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Lee(e){for(var t=1;t=50)return t;return t.length===0?null:t})()}deleteEndToEndSessionsBatch(e){var t=this;return f(function*(){for(var n of e){var r=n.deviceKey,i=n.sessionId,a=t.sessions[r]||{};delete a[i],Object.keys(a).length===0&&delete t.sessions[r]}})()}getEndToEndInboundGroupSession(e,t,n,r){var i=yE(e,t);r(this.inboundGroupSessions[i]||null,this.inboundGroupSessionsWithheld[i]||null)}storeEndToEndInboundGroupSession(e,t,n,r){var i=yE(e,t);this.inboundGroupSessions[i]=n}countEndToEndInboundGroupSessions(){var e=this;return f(function*(){return Object.keys(e.inboundGroupSessions).length})()}getEndToEndInboundGroupSessionsBatch(){var e=this;return f(function*(){var t=[];for(var n of Object.entries(e.inboundGroupSessions)){var r=u(n,2),i=r[0],a=r[1];if(t.push(Lee(Lee({},Ree(i)),{},{sessionData:a,needsBackup:i in e.sessionsNeedingBackup})),t.length>=50)return t}return t.length===0?null:t})()}deleteEndToEndInboundGroupSessionsBatch(e){var t=this;return f(function*(){for(var n of e){var r=n.senderKey,i=n.sessionId,a=yE(r,i);delete t.inboundGroupSessions[a]}})()}getEndToEndRooms(e,t){t(this.rooms)}markSessionsNeedingBackup(e){for(var t of e){var n=yE(t.senderKey,t.sessionId);this.sessionsNeedingBackup[n]=!0}return Promise.resolve()}doTxn(e,t,n){return Promise.resolve(n(null))}};function zee(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function xE(e){return a(e)||zee(e)||c(e)||l()}function Bee(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n5&&arguments[5]!==void 0?arguments[5]:!1,o=arguments.length>6?arguments[6]:void 0,s=arguments.length>7?arguments[7]:void 0,c=arguments.length>8?arguments[8]:void 0;if(typeof t!=`string`||!t)return``;if(!t.startsWith(`mxc://`))return a?t:``;var l=xE(t.slice(6).split(`/`)),u=l[0],d=l[1];if(Bee(l).slice(2).length>0||!Hee(u)||!Wee(d))return``;s&&(o=!0);var f,p=n||r||i?`thumbnail`:`download`;f=s?`/_matrix/client/v1/media/${p}`:`/_matrix/media/v3/${p}`;var m=new URL(`${f}/${u}/${d}`,e);return n&&m.searchParams.set(`width`,Math.round(n).toString()),r&&m.searchParams.set(`height`,Math.round(r).toString()),i&&m.searchParams.set(`method`,i),c!==void 0&&m.searchParams.set(`animated`,String(c)),typeof o==`boolean`&&m.searchParams.set(`allow_redirect`,JSON.stringify(o)),m.href}var CE=e(i(((e,t)=>{(function(e,n){typeof define==`function`&&define.amd?define(n):typeof t==`object`&&t.exports?t.exports=n():e.log=n()})(e,function(){var e=function(){},t=`undefined`,n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),r=[`trace`,`debug`,`info`,`warn`,`error`],i={},a=null;function o(e,t){var n=e[t];if(typeof n.bind==`function`)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch{return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function s(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(r){return r===`debug`&&(r=`log`),typeof console===t?!1:r===`trace`&&n?s:console[r]===void 0?console.log===void 0?e:o(console,`log`):o(console,r)}function l(){for(var n=this.getLevel(),i=0;i=0&&t<=o.levels.SILENT)return t;throw TypeError(`log.setLevel() called with invalid level: `+e)}o.name=e,o.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},o.methodFactory=n||d,o.getLevel=function(){return u??c??s},o.setLevel=function(e,t){return u=g(e),t!==!1&&p(u),l.call(o)},o.setDefaultLevel=function(e){c=g(e),m()||o.setLevel(e,!1)},o.resetLevel=function(){u=null,h(),l.call(o)},o.enableAll=function(e){o.setLevel(o.levels.TRACE,e)},o.disableAll=function(e){o.setLevel(o.levels.SILENT,e)},o.rebuild=function(){if(a!==o&&(s=g(a.getLevel())),l.call(o),a===o)for(var e in i)i[e].rebuild()},s=g(a?a.getLevel():`WARN`);var _=m();_!=null&&(u=g(_)),l.call(o)}a=new f,a.getLogger=function(e){if(typeof e!=`symbol`&&typeof e!=`string`||e===``)throw TypeError(`You must supply a name when creating a logger.`);var t=i[e];return t||=i[e]=new f(e,a.methodFactory),t};var p=typeof window===t?void 0:window.log;return a.noConflict=function(){return typeof window!==t&&window.log===a&&(window.log=p),a},a.getLoggers=function(){return i},a.default=a,a})}))(),1),Gee=`matrix`;CE.default.methodFactory=function(e,t,n){return function(){var t=[...arguments];return this.prefix&&t.unshift(this.prefix),e===`error`||e===`warn`||e===`trace`||e===`info`||e===`debug`?console[e](...t):console.log(...t)}};function Kee(e){var t=Gee+(e===void 0?``:`-${e}`),n=CE.default.getLogger(t);return n.getChild===void 0&&(n.prefix=e,n.getChild=t=>{var r=Kee((e??``)+t);return r.methodFactory=n.methodFactory,r.rebuild(),r},n.setLevel(CE.default.levels.DEBUG,!1)),n}var N=Kee(),qee=class{constructor(e,t){this.parent=e,g(this,`name`,void 0),this.name=t+`:`}trace(){var e=[...arguments];this.parent.trace(this.name,...e)}debug(){var e=[...arguments];this.parent.debug(this.name,...e)}info(){var e=[...arguments];this.parent.info(this.name,...e)}warn(){var e=[...arguments];this.parent.warn(this.name,...e)}error(){var e=[...arguments];this.parent.error(this.name,...e)}},Jee=class e{constructor(e){this.debugInstance=e}trace(){var e=[...arguments];this.debugWithPrefix(`[TRACE]`,...e)}debug(){var e=[...arguments];this.debugWithPrefix(`[DEBUG]`,...e)}info(){var e=[...arguments];this.debugWithPrefix(`[INFO]`,...e)}warn(){var e=[...arguments];this.debugWithPrefix(`[WARN]`,...e)}error(){var e=[...arguments];this.debugWithPrefix(`[ERROR]`,...e)}getChild(t){return new e(this.debugInstance.extend(t))}debugWithPrefix(e){var t,n=[...arguments].slice(1);if(n.length===0)t=``;else if(n[0]instanceof Error){var r=n.shift();t=r.stack||r.message}else t=typeof n[0]==`string`?n.shift():`%O`;this.debugInstance(e+` `+t,...n)}},wE=e(i(((e,t)=>{var n=typeof Reflect==`object`?Reflect:null,r=n&&typeof n.apply==`function`?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)},i=n&&typeof n.ownKeys==`function`?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};function a(e){console&&console.warn&&console.warn(e)}var o=Number.isNaN||function(e){return e!==e};function s(){s.init.call(this)}t.exports=s,t.exports.once=y,s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var c=10;function l(e){if(typeof e!=`function`)throw TypeError(`The "listener" argument must be of type Function. Received type `+typeof e)}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return c},set:function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received `+e+`.`);c=e}}),s.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if(typeof e!=`number`||e<0||o(e))throw RangeError(`The value of "n" is out of range. It must be a non-negative number. Received `+e+`.`);return this._maxListeners=e,this};function u(e){return e._maxListeners===void 0?s.defaultMaxListeners:e._maxListeners}s.prototype.getMaxListeners=function(){return u(this)},s.prototype.emit=function(e){for(var t=[],n=1;n0&&(o=t[0]),o instanceof Error)throw o;var s=Error(`Unhandled error.`+(o?` (`+o.message+`)`:``));throw s.context=o,s}var c=a[e];if(c===void 0)return!1;if(typeof c==`function`)r(c,this,t);else for(var l=c.length,u=g(c,l),n=0;n0&&s.length>i&&!s.warned){s.warned=!0;var c=Error(`Possible EventEmitter memory leak detected. `+s.length+` `+String(t)+` listeners added. Use emitter.setMaxListeners() to increase limit`);c.name=`MaxListenersExceededWarning`,c.emitter=e,c.type=t,c.count=s.length,a(c)}return e}s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)};function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var r={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}s.prototype.once=function(e,t){return l(t),this.on(e,p(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return l(t),this.prependListener(e,p(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,r,i,a,o;if(l(t),r=this._events,r===void 0||(n=r[e],n===void 0))return this;if(n===t||n.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[e],r.removeListener&&this.emit(`removeListener`,e,n.listener||t));else if(typeof n!=`function`){for(i=-1,a=n.length-1;a>=0;a--)if(n[a]===t||n[a].listener===t){o=n[a].listener,i=a;break}if(i<0)return this;i===0?n.shift():_(n,i),n.length===1&&(r[e]=n[0]),r.removeListener!==void 0&&this.emit(`removeListener`,e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n=this._events,r;if(n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[e]),this;if(arguments.length===0){var i=Object.keys(n),a;for(r=0;r=0;r--)this.removeListener(e,t[r]);return this};function m(e,t,n){var r=e._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i==`function`?n?[i.listener||i]:[i]:n?v(i):g(i,i.length)}s.prototype.listeners=function(e){return m(this,e,!0)},s.prototype.rawListeners=function(e){return m(this,e,!1)},s.listenerCount=function(e,t){return typeof e.listenerCount==`function`?e.listenerCount(t):h.call(e,t)},s.prototype.listenerCount=h;function h(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n==`function`)return 1;if(n!==void 0)return n.length}return 0}s.prototype.eventNames=function(){return this._eventsCount>0?i(this._events):[]};function g(e,t){for(var n=Array(t),r=0;r1?r-1:0),a=1;ae(...i))).then(()=>o.length>0)})()}listenerCount(e){return super.listenerCount(e)}listeners(e){return super.listeners(e)}off(e,t){return super.off(e,t)}on(e,t){return super.on(e,t)}once(e,t){return super.once(e,t)}prependListener(e,t){return super.prependListener(e,t)}prependOnceListener(e,t){return super.prependOnceListener(e,t)}removeAllListeners(e){return e===void 0?super.removeAllListeners():super.removeAllListeners(e)}removeListener(e,t){return super.removeListener(e,t)}rawListeners(e){return super.rawListeners(e)}},P=function(e){return e.RoomCanonicalAlias=`m.room.canonical_alias`,e.RoomCreate=`m.room.create`,e.RoomJoinRules=`m.room.join_rules`,e.RoomMember=`m.room.member`,e.RoomThirdPartyInvite=`m.room.third_party_invite`,e.RoomPowerLevels=`m.room.power_levels`,e.RoomName=`m.room.name`,e.RoomTopic=`m.room.topic`,e.RoomAvatar=`m.room.avatar`,e.RoomPinnedEvents=`m.room.pinned_events`,e.RoomEncryption=`m.room.encryption`,e.RoomHistoryVisibility=`m.room.history_visibility`,e.RoomGuestAccess=`m.room.guest_access`,e.RoomServerAcl=`m.room.server_acl`,e.RoomTombstone=`m.room.tombstone`,e.RoomPredecessor=`org.matrix.msc3946.room_predecessor`,e.PolicyRuleUser=`m.policy.rule.user`,e.PolicyRuleRoom=`m.policy.rule.room`,e.PolicyRuleServer=`m.policy.rule.server`,e.SpaceChild=`m.space.child`,e.SpaceParent=`m.space.parent`,e.RoomRedaction=`m.room.redaction`,e.RoomMessage=`m.room.message`,e.RoomMessageEncrypted=`m.room.encrypted`,e.Sticker=`m.sticker`,e.CallInvite=`m.call.invite`,e.CallCandidates=`m.call.candidates`,e.CallAnswer=`m.call.answer`,e.CallHangup=`m.call.hangup`,e.CallReject=`m.call.reject`,e.CallSelectAnswer=`m.call.select_answer`,e.CallNegotiate=`m.call.negotiate`,e.CallSDPStreamMetadataChanged=`m.call.sdp_stream_metadata_changed`,e.CallSDPStreamMetadataChangedPrefix=`org.matrix.call.sdp_stream_metadata_changed`,e.CallReplaces=`m.call.replaces`,e.CallAssertedIdentity=`m.call.asserted_identity`,e.CallAssertedIdentityPrefix=`org.matrix.call.asserted_identity`,e.CallEncryptionKeysPrefix=`io.element.call.encryption_keys`,e.KeyVerificationRequest=`m.key.verification.request`,e.KeyVerificationStart=`m.key.verification.start`,e.KeyVerificationCancel=`m.key.verification.cancel`,e.KeyVerificationMac=`m.key.verification.mac`,e.KeyVerificationDone=`m.key.verification.done`,e.KeyVerificationKey=`m.key.verification.key`,e.KeyVerificationAccept=`m.key.verification.accept`,e.KeyVerificationReady=`m.key.verification.ready`,e.RoomMessageFeedback=`m.room.message.feedback`,e.Reaction=`m.reaction`,e.PollStart=`org.matrix.msc3381.poll.start`,e.Typing=`m.typing`,e.Receipt=`m.receipt`,e.Presence=`m.presence`,e.FullyRead=`m.fully_read`,e.Tag=`m.tag`,e.SpaceOrder=`org.matrix.msc3230.space_order`,e.MarkedUnread=`m.marked_unread`,e.PushRules=`m.push_rules`,e.Direct=`m.direct`,e.IgnoredUserList=`m.ignored_user_list`,e.InvitePermissionConfig=`m.invite_permission_config`,e.RoomKey=`m.room_key`,e.RoomKeyRequest=`m.room_key_request`,e.ForwardedRoomKey=`m.forwarded_room_key`,e.Dummy=`m.dummy`,e.SecretRequest=`m.secret.request`,e.SecretSend=`m.secret.send`,e.GroupCallPrefix=`org.matrix.msc3401.call`,e.GroupCallMemberPrefix=`org.matrix.msc3401.call.member`,e.RTCMembership=`org.matrix.msc4143.rtc.member`,e.CallNotify=`org.matrix.msc4075.call.notify`,e.RTCNotification=`org.matrix.msc4075.rtc.notification`,e.RTCDecline=`org.matrix.msc4310.rtc.decline`,e.RoomPolicy=`org.matrix.msc4284.policy`,e.RetentionPolicy=`m.room.retention`,e.RetentionPolicyUnstable=`org.matrix.msc1763.retention`,e}({}),EE=function(e){return e.Annotation=`m.annotation`,e.Replace=`m.replace`,e.Reference=`m.reference`,e.Thread=`m.thread`,e}({}),DE=function(e){return e.Text=`m.text`,e.Emote=`m.emote`,e.Notice=`m.notice`,e.Image=`m.image`,e.File=`m.file`,e.Audio=`m.audio`,e.Location=`m.location`,e.Video=`m.video`,e.KeyVerificationRequest=`m.key.verification.request`,e}({}),OE=`type`,kE=function(e){return e.Space=`m.space`,e.UnstableCall=`org.matrix.msc3417.call`,e.ElementVideo=`io.element.video`,e}({}),AE=`org.matrix.msgid`,jE=new BT(`m.room.purpose`,`org.matrix.msc3088.purpose`),ME=new BT(`m.enabled`,`org.matrix.msc3088.enabled`),NE=new BT(`m.data_tree`,`org.matrix.msc3089.data_tree`),Xee=new BT(`m.leaf`,`org.matrix.msc3089.leaf`),PE=new BT(`m.branch`,`org.matrix.msc3089.branch`),Zee=new BT(`m.room.marker`,`org.matrix.msc2716.marker`),FE=new BT(`with_rel_types`,`org.matrix.msc3912.with_relations`),Qee=new BT(`io.element.functional_members`,`io.element.functional_members`),IE=new BT(`m.visibility`,`org.matrix.msc3531.visibility`),LE=new BT(`enabled`,`org.matrix.msc3881.enabled`),$ee=new BT(`device_id`,`org.matrix.msc3881.device_id`),ete=new BT(`m.local_notification_settings`,`org.matrix.msc3890.local_notification_settings`),RE=new BT(`thread_id`,`org.matrix.msc4023.thread_id`),tte=new RT(`membership`,`io.element.msc4115.membership`),zE=function(e){return e.Ban=`ban`,e.Invite=`invite`,e.Join=`join`,e.Knock=`knock`,e.Leave=`leave`,e}({}),BE=function(e){return e.Membership=`RoomMember.membership`,e.Name=`RoomMember.name`,e.PowerLevel=`RoomMember.powerLevel`,e.Typing=`RoomMember.typing`,e}({}),VE=class extends TE{constructor(e,t){super(),this.roomId=e,this.userId=t,g(this,`_isOutOfBand`,!1),g(this,`modified`,-1),g(this,`requestedProfileInfo`,!1),g(this,`typing`,!1),g(this,`name`,void 0),g(this,`rawDisplayName`,void 0),g(this,`powerLevel`,0),g(this,`user`,void 0),g(this,`membership`,void 0),g(this,`disambiguate`,!1),g(this,`events`,{}),this.name=t,this.rawDisplayName=t,this.updateModifiedTime()}markOutOfBand(){this._isOutOfBand=!0}isOutOfBand(){return this._isOutOfBand}setMembershipEvent(e,t){var n=e.getDirectionalContent().displayname??``;if(e.getType()===P.RoomMember){this._isOutOfBand=!1,this.events.member=e;var r=this.membership;this.membership=e.getDirectionalContent().membership,this.membership===void 0&&N.trace(`membership event with membership undefined (forwardLooking: ${e.forwardLooking})!`,e.getContent(),`prevcontent is `,e.getPrevContent()),this.disambiguate=rte(this.userId,n,t);var i=this.name;this.name=ite(this.userId,n,this.disambiguate),this.rawDisplayName=eE(e.getDirectionalContent().displayname??``),(!this.rawDisplayName||!$T(this.rawDisplayName))&&(this.rawDisplayName=this.userId),r!==this.membership&&(this.updateModifiedTime(),this.emit(BE.Membership,e,this,r)),i!==this.name&&(this.updateModifiedTime(),this.emit(BE.Name,e,this,i))}}recalculateDisambiguatedName(e){if(!this.events.member)return!1;var t=this.events.member.getDirectionalContent().displayname??``,n=rte(this.userId,t,e);if(n===this.disambiguate)return!1;this.disambiguate=n;var r=this.name;return this.name=ite(this.userId,t,this.disambiguate),r===this.name?!1:(this.updateModifiedTime(),this.emit(BE.Name,this.events.member,this,r),!0)}setPowerLevel(e,t){var n=this.powerLevel;this.powerLevel=e,n!==this.powerLevel&&(this.updateModifiedTime(),this.emit(BE.PowerLevel,t,this))}setTypingEvent(e){if(e.getType()===`m.typing`){var t=this.typing;this.typing=!1;var n=e.getContent().user_ids;Array.isArray(n)&&(n.indexOf(this.userId)!==-1&&(this.typing=!0),t!==this.typing&&(this.updateModifiedTime(),this.emit(BE.Typing,e,this)))}}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}isKicked(){return this.membership===zE.Leave&&this.events.member!==void 0&&this.events.member.getSender()!==this.events.member.getStateKey()}getDMInviter(){if(this.events.member){var e=this.events.member,t=e.getContent(),n=e.getSender();if(t.membership===zE.Join&&(t=e.getPrevContent(),n=e.getUnsigned().prev_sender),t.membership===zE.Invite&&t.is_direct)return n}}getAvatarUrl(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5?arguments[5]:void 0,o=arguments.length>6&&arguments[6]!==void 0?arguments[6]:!1,s=this.getMxcAvatarUrl();return!s&&!i?null:SE(e,s,t,n,r,a,void 0,o)||null}getMxcAvatarUrl(){if(this.events.member)return this.events.member.getDirectionalContent().avatar_url;if(this.user)return this.user.avatarUrl}},HE=/@.+:.+/,nte=/[\u200E\u200F\u202A-\u202F]/;function rte(e,t,n){if(!t||t===e||!n)return!1;var r=$T(t);return r?!!(HE.test(r)||nte.test(t)||n.getUserIdsWithDisplayName(t).some(t=>t!==e)):!1}function ite(e,t,n){return!t||t===e?e:n?eE(t)+` (`+e+`)`:$T(t)?eE(t):e}var ate=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.NamespacedMap=void 0;function t(e,t){var r=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!r){if(Array.isArray(e)||(r=n(e))||t&&e&&typeof e.length==`number`){r&&(e=r);var i=0,a=function(){};return{s:a,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(e){throw e},f:a}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,c;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,c=e},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw c}}}}function n(e,t){if(e){if(typeof e==`string`)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}}function r(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.InvalidEventError=void 0;function n(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function f(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function m(e){return m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},m(e)}e.InvalidEventError=function(e){a(n,e);var t=o(n);function n(e){return i(this,n),t.call(this,e)}return r(n)}(l(Error))})),WE=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensibleEvent=void 0;function t(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function n(e,t){for(var n=0;n{Object.defineProperty(e,"__esModule",{value:!0}),e.isOptionalAString=t,e.isProvided=n;function t(e){return n(e)&&typeof e==`string`}function n(e){return e!=null}})),GE=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.UnstableValue=e.NamespacedValue=void 0;function n(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&r(e,t)}function r(e,t){return r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},r(e,t)}function i(e){var t=s();return function(){var n=c(e),r;if(t){var i=c(this).constructor;r=Reflect.construct(n,arguments,i)}else r=n.apply(this,arguments);return a(this,r)}}function a(e,n){if(n&&(t(n)===`object`||typeof n==`function`))return n;if(n!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return o(e)}function o(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function s(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function c(e){return c=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},c(e)}function l(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function u(e,t){for(var n=0;n{Object.defineProperty(e,"__esModule",{value:!0}),e.M_TEXT=e.M_NOTICE=e.M_MESSAGE=e.M_HTML=e.M_EMOTE=void 0;var t=GE();e.M_MESSAGE=new t.UnstableValue(`m.message`,`org.matrix.msc1767.message`),e.M_TEXT=new t.UnstableValue(`m.text`,`org.matrix.msc1767.text`),e.M_HTML=new t.UnstableValue(`m.html`,`org.matrix.msc1767.html`),e.M_EMOTE=new t.UnstableValue(`m.emote`,`org.matrix.msc1767.emote`),e.M_NOTICE=new t.UnstableValue(`m.notice`,`org.matrix.msc1767.notice`)})),qE=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.isEventTypeSame=t;function t(e,t){if(typeof e==`string`)return typeof t==`string`?t===e:t.matches(e);if(typeof t==`string`)return e.matches(t);var n=t,r=e;return n.matches(r.name)||n.matches(r.altName)}})),JE=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.MessageEvent=void 0;var n=WE(),r=ote(),i=UE(),a=KE(),o=qE();function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function c(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},v(e)}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.MessageEvent=function(e){f(n,e);var t=m(n);function n(e){var o;l(this,n),o=t.call(this,e),y(g(o),`text`,void 0),y(g(o),`html`,void 0),y(g(o),`renderings`,void 0);var s=a.M_MESSAGE.findIn(o.wireContent),c=a.M_TEXT.findIn(o.wireContent),u=a.M_HTML.findIn(o.wireContent);if((0,r.isProvided)(s)){if(!Array.isArray(s))throw new i.InvalidEventError(`m.message contents must be an array`);var d=s.find(function(e){return!(0,r.isProvided)(e.mimetype)||e.mimetype===`text/plain`}),f=s.find(function(e){return e.mimetype===`text/html`});if(!d)throw new i.InvalidEventError(`m.message is missing a plain text representation`);o.text=d.body,o.html=f?.body,o.renderings=s}else if((0,r.isOptionalAString)(c))o.text=c,o.html=u,o.renderings=[{body:c,mimetype:`text/plain`}],o.html&&o.renderings.push({body:o.html,mimetype:`text/html`});else throw new i.InvalidEventError(`Missing textual representation for event`);return o}return d(n,[{key:`isEmote`,get:function(){return a.M_EMOTE.matches(this.wireFormat.type)||(0,r.isProvided)(a.M_EMOTE.findIn(this.wireFormat.content))}},{key:`isNotice`,get:function(){return a.M_NOTICE.matches(this.wireFormat.type)||(0,r.isProvided)(a.M_NOTICE.findIn(this.wireFormat.content))}},{key:`isEquivalentTo`,value:function(e){return(0,o.isEventTypeSame)(e,a.M_MESSAGE)}},{key:`serializeMMessageOnly`,value:function(){var e=y({},a.M_MESSAGE.name,this.renderings);if(this.renderings.length===1){var t=this.renderings[0].mimetype;(t===void 0||t===`text/plain`)&&(e=y({},a.M_TEXT.name,this.renderings[0].body))}return e}},{key:`serialize`,value:function(){return{type:`m.room.message`,content:c(c({},this.serializeMMessageOnly()),{},{body:this.text,msgtype:`m.text`,format:this.html?`org.matrix.custom.html`:void 0,formatted_body:this.html??void 0})}}}],[{key:`from`,value:function(e,t){var r;return new n({type:a.M_MESSAGE.name,content:(r={},y(r,a.M_TEXT.name,e),y(r,a.M_HTML.name,t),r)})}}]),n}(n.ExtensibleEvent)})),YE=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.NoticeEvent=void 0;var n=JE(),r=KE(),i=qE();function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function s(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}e.NoticeEvent=function(e){d(n,e);var t=p(n);function n(e){return o(this,n),t.call(this,e)}return c(n,[{key:`isNotice`,get:function(){return!0}},{key:`isEquivalentTo`,value:function(e){return(0,i.isEventTypeSame)(e,r.M_NOTICE)||l(_(n.prototype),`isEquivalentTo`,this).call(this,e)}},{key:`serialize`,value:function(){var e=l(_(n.prototype),`serialize`,this).call(this);return e.content.msgtype=`m.notice`,e}}],[{key:`from`,value:function(e,t){var i;return new n({type:r.M_NOTICE.name,content:(i={},a(i,r.M_TEXT.name,e),a(i,r.M_HTML.name,t),i)})}}]),n}(n.MessageEvent)})),XE=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.EmoteEvent=void 0;var n=JE(),r=KE(),i=qE();function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function s(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _(e){return _=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_(e)}e.EmoteEvent=function(e){d(n,e);var t=p(n);function n(e){return o(this,n),t.call(this,e)}return c(n,[{key:`isEmote`,get:function(){return!0}},{key:`isEquivalentTo`,value:function(e){return(0,i.isEventTypeSame)(e,r.M_EMOTE)||l(_(n.prototype),`isEquivalentTo`,this).call(this,e)}},{key:`serialize`,value:function(){var e=l(_(n.prototype),`serialize`,this).call(this);return e.content.msgtype=`m.emote`,e}}],[{key:`from`,value:function(e,t){var i;return new n({type:r.M_EMOTE.name,content:(i={},a(i,r.M_TEXT.name,e),a(i,r.M_HTML.name,t),i)})}}]),n}(n.MessageEvent)})),ste=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LEGACY_M_ROOM_MESSAGE=void 0,e.parseMRoomMessage=l;var t=JE(),n=YE(),r=XE(),i=GE(),a=KE();function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function s(e){for(var t=1;t{Object.defineProperty(e,"__esModule",{value:!0}),e.parseMMessage=a;var t=JE(),n=KE(),r=XE(),i=YE();function a(e){return n.M_EMOTE.matches(e.type)?new r.EmoteEvent(e):n.M_NOTICE.matches(e.type)?new i.NoticeEvent(e):new t.MessageEvent(e)}})),ZE=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.M_POLL_START=e.M_POLL_RESPONSE=e.M_POLL_KIND_UNDISCLOSED=e.M_POLL_KIND_DISCLOSED=e.M_POLL_END=void 0;var t=GE();e.M_POLL_KIND_DISCLOSED=new t.UnstableValue(`m.poll.disclosed`,`org.matrix.msc3381.poll.disclosed`),e.M_POLL_KIND_UNDISCLOSED=new t.UnstableValue(`m.poll.undisclosed`,`org.matrix.msc3381.poll.undisclosed`),e.M_POLL_START=new t.UnstableValue(`m.poll.start`,`org.matrix.msc3381.poll.start`),e.M_POLL_RESPONSE=new t.UnstableValue(`m.poll.response`,`org.matrix.msc3381.poll.response`),e.M_POLL_END=new t.UnstableValue(`m.poll.end`,`org.matrix.msc3381.poll.end`)})),lte=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollStartEvent=e.PollAnswerSubevent=void 0;var n=ZE(),r=JE(),i=KE(),a=UE(),o=GE(),s=qE(),c=WE();function l(e){return p(e)||f(e)||d(e)||u()}function u(){throw TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function d(e,t){if(e){if(typeof e==`string`)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return m(e,t)}}function f(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function p(e){if(Array.isArray(e))return m(e)}function m(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var O=function(e){b(n,e);var t=S(n);function n(e){var r;_(this,n),r=t.call(this,e),D(w(r),`id`,void 0);var i=e.content.id;if(!i||typeof i!=`string`)throw new a.InvalidEventError(`Answer ID must be a non-empty string`);return r.id=i,r}return y(n,[{key:`serialize`,value:function(){return{type:`org.matrix.sdk.poll.answer`,content:g({id:this.id},this.serializeMMessageOnly())}}}],[{key:`from`,value:function(e,t){return new n({type:`org.matrix.sdk.poll.answer`,content:D({id:e},i.M_TEXT.name,t)})}}]),n}(r.MessageEvent);e.PollAnswerSubevent=O,e.PollStartEvent=function(e){b(c,e);var t=S(c);function c(e){var i;_(this,c),i=t.call(this,e),D(w(i),`question`,void 0),D(w(i),`kind`,void 0),D(w(i),`rawKind`,void 0),D(w(i),`maxSelections`,void 0),D(w(i),`answers`,void 0);var o=n.M_POLL_START.findIn(i.wireContent);if(!o.question)throw new a.InvalidEventError(`A question is required`);if(i.question=new r.MessageEvent({type:`org.matrix.sdk.poll.question`,content:o.question}),i.rawKind=o.kind,n.M_POLL_KIND_DISCLOSED.matches(i.rawKind)?i.kind=n.M_POLL_KIND_DISCLOSED:i.kind=n.M_POLL_KIND_UNDISCLOSED,i.maxSelections=Number.isFinite(o.max_selections)&&o.max_selections>0?o.max_selections:1,!Array.isArray(o.answers))throw new a.InvalidEventError(`Poll answers must be an array`);var s=o.answers.slice(0,20).map(function(e){return new O({type:`org.matrix.sdk.poll.answer`,content:e})});if(s.length<=0)throw new a.InvalidEventError(`No answers available`);return i.answers=s,i}return y(c,[{key:`isEquivalentTo`,value:function(e){return(0,s.isEventTypeSame)(e,n.M_POLL_START)}},{key:`serialize`,value:function(){var e;return{type:n.M_POLL_START.name,content:(e={},D(e,n.M_POLL_START.name,{question:this.question.serialize().content,kind:this.rawKind,max_selections:this.maxSelections,answers:this.answers.map(function(e){return e.serialize().content})}),D(e,i.M_TEXT.name,`${this.question.text} +${this.answers.map(function(e,t){return`${t+1}. ${e.text}`}).join(` +`)}`),e)}}}],[{key:`from`,value:function(e,t,r){var a,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1;return new c({type:n.M_POLL_START.name,content:(a={},D(a,i.M_TEXT.name,e),D(a,n.M_POLL_START.name,{question:D({},i.M_TEXT.name,e),kind:r instanceof o.NamespacedValue?r.name:r,max_selections:s,answers:t.map(function(e){return D({id:ee()},i.M_TEXT.name,e)})}),a)})}}]),c}(c.ExtensibleEvent);var k=`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789`;function ee(){return l(Array(16)).map(function(){return k.charAt(Math.floor(Math.random()*k.length))}).join(``)}})),QE=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.REFERENCE_RELATION=void 0,e.REFERENCE_RELATION=new(GE()).NamespacedValue(`m.reference`)})),$E=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollResponseEvent=void 0;var n=WE(),r=ZE(),i=UE(),a=QE(),o=qE();function s(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function c(e,t){for(var n=0;n`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function g(e){return g=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},g(e)}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.PollResponseEvent=function(e){u(n,e);var t=f(n);function n(e){var r;s(this,n),r=t.call(this,e),_(m(r),`internalAnswerIds`,void 0),_(m(r),`internalSpoiled`,void 0),_(m(r),`pollEventId`,void 0);var o=r.wireContent[`m.relates_to`];if(!a.REFERENCE_RELATION.matches(o?.rel_type)||typeof o?.event_id!=`string`)throw new i.InvalidEventError(`Relationship must be a reference to an event`);return r.pollEventId=o.event_id,r.validateAgainst(null),r}return l(n,[{key:`answerIds`,get:function(){return this.internalAnswerIds}},{key:`spoiled`,get:function(){return this.internalSpoiled}},{key:`validateAgainst`,value:function(e){var t=r.M_POLL_RESPONSE.findIn(this.wireContent);if(!Array.isArray(t?.answers)){this.internalSpoiled=!0,this.internalAnswerIds=[];return}var n=t.answers;if(n.some(function(e){return typeof e!=`string`})||n.length===0){this.internalSpoiled=!0,this.internalAnswerIds=[];return}if(e){if(n.some(function(t){return!e.answers.some(function(e){return e.id===t})})){this.internalSpoiled=!0,this.internalAnswerIds=[];return}n=n.slice(0,e.maxSelections)}this.internalAnswerIds=n,this.internalSpoiled=!1}},{key:`isEquivalentTo`,value:function(e){return(0,o.isEventTypeSame)(e,r.M_POLL_RESPONSE)}},{key:`serialize`,value:function(){return{type:r.M_POLL_RESPONSE.name,content:_({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:this.pollEventId}},r.M_POLL_RESPONSE.name,{answers:this.spoiled?void 0:this.answerIds})}}}],[{key:`from`,value:function(e,t){return new n({type:r.M_POLL_RESPONSE.name,content:_({"m.relates_to":{rel_type:a.REFERENCE_RELATION.name,event_id:t}},r.M_POLL_RESPONSE.name,{answers:e})})}}]),n}(n.ExtensibleEvent)})),eD=i((e=>{function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}Object.defineProperty(e,"__esModule",{value:!0}),e.PollEndEvent=void 0;var n=ZE(),r=UE(),i=QE(),a=JE(),o=KE(),s=qE(),c=WE();function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function u(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function b(e){return b=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},b(e)}function x(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}e.PollEndEvent=function(e){m(c,e);var t=g(c);function c(e){var n;d(this,c),n=t.call(this,e),x(v(n),`pollEventId`,void 0),x(v(n),`closingMessage`,void 0);var o=n.wireContent[`m.relates_to`];if(!i.REFERENCE_RELATION.matches(o?.rel_type)||typeof o?.event_id!=`string`)throw new r.InvalidEventError(`Relationship must be a reference to an event`);return n.pollEventId=o.event_id,n.closingMessage=new a.MessageEvent(n.wireFormat),n}return p(c,[{key:`isEquivalentTo`,value:function(e){return(0,s.isEventTypeSame)(e,n.M_POLL_END)}},{key:`serialize`,value:function(){return{type:n.M_POLL_END.name,content:u(x({"m.relates_to":{rel_type:i.REFERENCE_RELATION.name,event_id:this.pollEventId}},n.M_POLL_END.name,{}),this.closingMessage.serialize().content)}}}],[{key:`from`,value:function(e,t){var r;return new c({type:n.M_POLL_END.name,content:(r={"m.relates_to":{rel_type:i.REFERENCE_RELATION.name,event_id:e}},x(r,n.M_POLL_END.name,{}),x(r,o.M_TEXT.name,t),r)})}}]),c}(c.ExtensibleEvent)})),tD=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.parseMPoll=a;var t=ZE(),n=lte(),r=$E(),i=eD();function a(e){return t.M_POLL_START.matches(e.type)?new n.PollStartEvent(e):t.M_POLL_RESPONSE.matches(e.type)?new r.PollResponseEvent(e):t.M_POLL_END.matches(e.type)?new i.PollEndEvent(e):null}})),ute=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.ExtensibleEvents=void 0;var t=ate(),n=UE(),r=ste(),i=cte(),a=KE(),o=ZE(),s=tD();function c(e,t){var n=typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(!n){if(Array.isArray(e)||(n=l(e))||t&&e&&typeof e.length==`number`){n&&(e=n);var r=0,i=function(){};return{s:i,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a=!0,o=!1,s;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return a=e.done,e},e:function(e){o=!0,s=e},f:function(){try{!a&&n.return!=null&&n.return()}finally{if(o)throw s}}}}function l(e,t){if(e){if(typeof e==`string`)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(e,t)}}function u(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{Object.defineProperty(e,"__esModule",{value:!0})})),fte=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.LegacyMsgType=void 0,e.isEventLike=r;var t=KE(),n;e.LegacyMsgType=n,(function(e){e.Text=`m.text`,e.Notice=`m.notice`,e.Emote=`m.emote`})(n||(e.LegacyMsgType=n={}));function r(e,r){var i=e.content;return r===n.Text?t.M_MESSAGE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.text`:r===n.Emote?t.M_EMOTE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.emote`:r===n.Notice?t.M_NOTICE.matches(e.type)||e.type===`m.room.message`&&i?.msgtype===`m.notice`:!1}})),nD=i((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=ute();Object.keys(t).forEach(function(n){n==="default"||n==="__esModule"||n in e&&e[n]===t[n]||Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[n]}})});var n=dte();Object.keys(n).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===n[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return n[t]}})});var r=UE();Object.keys(r).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===r[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return r[t]}})});var i=GE();Object.keys(i).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===i[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return i[t]}})});var a=ate();Object.keys(a).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===a[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return a[t]}})});var o=ote();Object.keys(o).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===o[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return o[t]}})});var s=fte();Object.keys(s).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===s[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return s[t]}})});var c=qE();Object.keys(c).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===c[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return c[t]}})});var l=ste();Object.keys(l).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===l[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return l[t]}})});var u=cte();Object.keys(u).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===u[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return u[t]}})});var d=tD();Object.keys(d).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===d[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return d[t]}})});var f=QE();Object.keys(f).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===f[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return f[t]}})});var p=WE();Object.keys(p).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===p[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return p[t]}})});var m=KE();Object.keys(m).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===m[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return m[t]}})});var h=JE();Object.keys(h).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===h[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return h[t]}})});var g=XE();Object.keys(g).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===g[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return g[t]}})});var _=YE();Object.keys(_).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===_[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return _[t]}})});var v=ZE();Object.keys(v).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===v[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return v[t]}})});var y=lte();Object.keys(y).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===y[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return y[t]}})});var b=$E();Object.keys(b).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===b[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return b[t]}})});var x=eD();Object.keys(x).forEach(function(t){t==="default"||t==="__esModule"||t in e&&e[t]===x[t]||Object.defineProperty(e,t,{enumerable:!0,get:function(){return x[t]}})})}))();function pte(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function mte(e,t){if(e==null)return{};var n,r,i=pte(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r1&&arguments[1]!==void 0?arguments[1]:{}).timelineWasEmpty;if(this.events.length>0)throw Error(`Cannot initialise state after events are added`);(t=this.startState)==null||t.setStateEvents(e,{timelineWasEmpty:r}),(n=this.endState)==null||n.setStateEvents(e,{timelineWasEmpty:r})}forkLive(t){var n=this.getState(t),r=new e(this.eventTimelineSet);return r.startState=n?.clone(),r.endState=n,this.endState=n?.clone(),r}fork(t){var n=this.getState(t),r=new e(this.eventTimelineSet);return r.startState=n?.clone(),r.endState=n?.clone(),r}getRoomId(){return this.roomId}getFilter(){return this.eventTimelineSet.getFilter()}getTimelineSet(){return this.eventTimelineSet}getBaseIndex(){return this.baseIndex}getEvents(){return this.events}getState(t){if(t==e.BACKWARDS)return this.startState;if(t==e.FORWARDS)return this.endState;throw Error(`Invalid direction '`+t+`'`)}getPaginationToken(e){return this.roomId?this.getState(e).paginationToken:e===aD.Backward?this.startToken:this.endToken}setPaginationToken(e,t){this.roomId?this.getState(t).paginationToken=e:t===aD.Backward?this.startToken=e:this.endToken=e}getNeighbouringTimeline(t){if(t==e.BACKWARDS)return this.prevTimeline;if(t==e.FORWARDS)return this.nextTimeline;throw Error(`Invalid direction '`+t+`'`)}setNeighbouringTimeline(t,n){if(this.getNeighbouringTimeline(n))throw Error(`timeline already has a neighbouring timeline - cannot reset neighbour (direction: `+n+`)`);if(n==e.BACKWARDS)this.prevTimeline=t;else if(n==e.FORWARDS)this.nextTimeline=t;else throw Error(`Invalid direction '`+n+`'`);this.setPaginationToken(null,n)}addEvent(t,n){var r=n.toStartOfTimeline,i=n.roomState,a=n.timelineWasEmpty,o=n.addToState;i||=r?this.startState:this.endState;var s=this.getTimelineSet();if(s.room&&(e.setEventMetadata(t,i,r),o&&t.isState()&&s.room.getUnfilteredTimelineSet()===s)){var c;(c=i)==null||c.setStateEvents([t],{timelineWasEmpty:a}),(!t.sender||t.getType()===P.RoomMember&&!r)&&e.setEventMetadata(t,i,r)}var l=r?0:this.events.length;this.events.splice(l,0,t),r&&this.baseIndex++}insertEvent(t,n,r,i){var a=this.getTimelineSet();a.room&&(e.setEventMetadata(t,r,!1),i&&t.isState()&&a.room.getUnfilteredTimelineSet()===a&&(r.setStateEvents([t],{}),(!t.sender||t.getType()===P.RoomMember)&&e.setEventMetadata(t,r,!1))),this.events.splice(n,0,t)}removeEvent(e){for(var t=this.events.length-1;t>=0;t--){var n=this.events[t];if(n.getId()==e)return this.events.splice(t,1),t2&&arguments[2]!==void 0?arguments[2]:[]].includes(e)},cD=class extends TE{constructor(e,t,n,r){var i;super(),i=this,this.relationType=e,this.eventType=t,this.altEventTypes=r,g(this,`relationEventIds`,new Set),g(this,`relations`,new Set),g(this,`annotationsByKey`,{}),g(this,`annotationsBySender`,{}),g(this,`sortedAnnotationsByKey`,[]),g(this,`targetEvent`,null),g(this,`creationEmitted`,!1),g(this,`replacementUpdateId`,0),g(this,`client`,void 0),g(this,`onEventStatus`,(e,t)=>{if(!e.isSending()){e.removeListener(uj.Status,this.onEventStatus);return}t===fD.CANCELLED&&(e.removeListener(uj.Status,this.onEventStatus),this.removeEvent(e))}),g(this,`onBeforeRedaction`,function(){var e=f(function*(e){i.relations.has(e)&&(i.relations.delete(e),i.relationType===EE.Annotation?i.removeAnnotationFromAggregation(e):i.relationType===EE.Replace&&(yield i.updateTargetEventReplacement()),e.removeListener(uj.BeforeRedaction,i.onBeforeRedaction),i.emit(sD.Redaction,e))});return function(t){return e.apply(this,arguments)}}()),this.client=n instanceof rO?n.client:n}addEvent(e){var t=this;return f(function*(){if(!t.relationEventIds.has(e.getId())){var n=e.getRelation();if(!n){N.error(`Event must have relation info`);return}var r=n.rel_type,i=e.getType();if(t.relationType!==r||!hte(i,t.eventType,t.altEventTypes)){N.error(`Event relation info doesn't match this container`);return}e.isSending()&&e.on(uj.Status,t.onEventStatus),t.relations.add(e),t.relationEventIds.add(e.getId()),t.relationType===EE.Annotation?t.addAnnotationToAggregation(e):t.relationType===EE.Replace&&(yield t.updateTargetEventReplacement()),e.on(uj.BeforeRedaction,t.onBeforeRedaction),t.emit(sD.Add,e),t.maybeEmitCreated()}})()}removeEvent(e){var t=this;return f(function*(){t.relations.has(e)&&(t.relations.delete(e),t.relationType===EE.Annotation?t.removeAnnotationFromAggregation(e):t.relationType===EE.Replace&&(yield t.updateTargetEventReplacement()),t.emit(sD.Remove,e))})()}getRelations(){return[...this.relations]}addAnnotationToAggregation(e){var t=(e.getRelation()??{}).key;if(t){var n=this.annotationsByKey[t];n||(n=this.annotationsByKey[t]=new Set,this.sortedAnnotationsByKey.push([t,n])),n.add(e),this.sortedAnnotationsByKey.sort((e,t)=>{var n=e[1];return t[1].size-n.size});var r=e.getSender(),i=this.annotationsBySender[r];i||=this.annotationsBySender[r]=new Set,i.add(e)}}removeAnnotationFromAggregation(e){var t=(e.getRelation()??{}).key;if(t){var n=this.annotationsByKey[t];n&&(n.delete(e),this.sortedAnnotationsByKey.sort((e,t)=>{var n=e[1];return t[1].size-n.size}));var r=e.getSender(),i=this.annotationsBySender[r];i&&i.delete(e)}}getSortedAnnotationsByKey(){return this.relationType===EE.Annotation?this.sortedAnnotationsByKey:null}getAnnotationsBySender(){return this.relationType===EE.Annotation?this.annotationsBySender:null}getLastReplacement(){var e=this;return f(function*(){if(e.relationType!==EE.Replace||!e.targetEvent)return null;var t=e.targetEvent.getServerAggregatedRelation(EE.Replace)?.origin_server_ts,n=e.getRelations().reduce((n,r)=>r.getSender()!==e.targetEvent.getSender()||t&&t>r.getTs()||n&&n.getTs()>r.getTs()?n:r,null);return n!=null&&n.shouldAttemptDecryption()&&e.client.getCrypto()?yield n.attemptDecryption(e.client.getCrypto()):n!=null&&n.isBeingDecrypted()&&(yield n.getDecryptionPromise()),n})()}setTargetEvent(e){var t=this;return f(function*(){t.targetEvent||(t.targetEvent=e,t.relationType===EE.Replace&&(yield t.updateTargetEventReplacement()),t.maybeEmitCreated())})()}updateTargetEventReplacement(){var e=this;return f(function*(){if(!(!e.targetEvent||e.targetEvent.isState())){var t=e.targetEvent,n=++e.replacementUpdateId,r=yield e.getLastReplacement();n!==e.replacementUpdateId||e.targetEvent!==t||!r&&!t.replacingEvent()||t.makeReplaced(r??void 0)}})()}maybeEmitCreated(){this.creationEmitted||!this.targetEvent||!this.relations.size||(this.creationEmitted=!0,this.targetEvent.emit(uj.RelationsCreated,this.relationType,this.eventType))}},gte=class{constructor(e,t){this.client=e,this.room=t,g(this,`relations`,new Map)}getChildEventsForEvent(e,t,n){var r;return(r=this.relations.get(e))==null||(r=r.get(t))==null?void 0:r.get(n)}getAllChildEventsForEvent(e){var t=this.relations.get(e)??new Map,n=[];for(var r of t.values())for(var i of r.values())n.push(...i.getRelations());return n}aggregateParentEvent(e){var t=this.relations.get(e.getId());if(t)for(var n of t.values())for(var r of n.values())r.setTargetEvent(e)}aggregateChildEvent(e,t){if(!(e.isRedacted()||e.status===fD.CANCELLED)){var n=e.getRelation();if(n){var r=()=>{if(e.isDecryptionFailure()){e.once(uj.Decrypted,r);return}this.aggregateChildEvent(e,t)};if(e.isBeingDecrypted()||e.shouldAttemptDecryption()){e.once(uj.Decrypted,r);return}var i=n.event_id,a=n.rel_type,o=e.getType(),s=this.relations.get(i);s||(s=new Map,this.relations.set(i,s));var c=s.get(a);c||(c=new Map,s.set(a,c));var l=c.get(o);if(!l){l=new cD(a,o,this.client),c.set(o,l);var u=this.room??t?.room,d=t?.findEventById(i)??u?.findEventById(i)??u?.getPendingEvent(i);d&&l.setTargetEvent(d)}l.addEvent(e)}}}},lD=N.log.bind(N),uD=function(e){return e.Ignore=`ignore`,e.Replace=`replace`,e}({}),dD=class extends TE{constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:null;super(),this.room=e,this.thread=r,this.threadListType=i,g(this,`relations`,void 0),g(this,`timelineSupport`,void 0),g(this,`displayPendingEvents`,void 0),g(this,`liveTimeline`,void 0),g(this,`timelines`,void 0),g(this,`_eventIdToTimeline`,new Map),g(this,`filter`,void 0),this.timelineSupport=!!t.timelineSupport,this.liveTimeline=new oD(this),this.displayPendingEvents=t.pendingEvents!==!1,this.timelines=[this.liveTimeline],this._eventIdToTimeline=new Map,this.filter=t.filter,this.relations=this.room?.relations??new gte(e?.client??n)}getTimelines(){return this.timelines}getFilter(){return this.filter}setFilter(e){this.filter=e}getPendingEvents(){return!this.room||!this.displayPendingEvents?[]:this.room.getPendingEvents()}getLiveTimeline(){return this.liveTimeline}setLiveTimeline(e){this.liveTimeline=e}eventIdToTimeline(e){return this._eventIdToTimeline.get(e)}replaceEventId(e,t){var n=this._eventIdToTimeline.get(e);n&&(this._eventIdToTimeline.delete(e),this._eventIdToTimeline.set(t,n))}resetLiveTimeline(e,t){var n=!this.timelineSupport||!t,r=this.liveTimeline,i=n?r.forkLive(oD.FORWARDS):r.fork(oD.FORWARDS);n?(this.timelines=[i],this._eventIdToTimeline=new Map):this.timelines.push(i),t&&r.setPaginationToken(t,oD.FORWARDS),i.setPaginationToken(e??null,oD.BACKWARDS),this.liveTimeline=i,this.emit(I.TimelineReset,this.room,this,n)}getTimelineForEvent(e){if(e==null)return null;var t=this._eventIdToTimeline.get(e);return t===void 0?null:t}findEventById(e){var t=this.getTimelineForEvent(e);if(t)return t.getEvents().find(function(t){return t.getId()==e})}addTimeline(){if(!this.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);var e=new oD(this);return this.timelines.push(e),e}addEventsToTimeline(e,t,n,r,i){if(!r)throw Error(`'timeline' not specified for EventTimelineSet.addEventsToTimeline`);if(!t&&r==this.liveTimeline)throw Error(`EventTimelineSet.addEventsToTimeline cannot be used for adding events to the live timeline - use Room.addLiveEvents instead`);if(!(this.filter&&(e=this.filter.filterRoomTimeline(e),!e.length))){var a=t?oD.BACKWARDS:oD.FORWARDS,o=t?oD.FORWARDS:oD.BACKWARDS,s=!1,c=!1;for(var l of e){var u=l.getId(),d=this._eventIdToTimeline.get(u);if(!d){this.addEventToTimeline(l,r,{toStartOfTimeline:t,addToState:n}),c=!0,s=!0;continue}if(c=!1,d==r){lD(`Event `+u+` already in timeline `+r);continue}var f=r.getNeighbouringTimeline(a);if(f){lD(d==f?`Event `+u+` in neighbouring timeline - switching to `+d:`Event `+u+` already in a different timeline `+d),r=d;continue}N.info(`Already have timeline for `+u+` - joining timeline `+r+` to `+d);var p=d===this.liveTimeline,m=r===this.liveTimeline,h=a===oD.BACKWARDS&&p,g=a===oD.FORWARDS&&m;if(h||g){h&&N.warn(`Refusing to set a preceding existingTimeLine on our timeline as the existingTimeLine is live (`+d+`)`),g&&N.warn(`Refusing to set our preceding timeline on a existingTimeLine as our timeline is live (`+r+`)`);continue}r.setNeighbouringTimeline(d,a),d.setNeighbouringTimeline(r,o),r=d,s=!0}if(c||!s){if(a===oD.FORWARDS&&r===this.liveTimeline){N.warn({lastEventWasNew:c,didUpdate:s}),N.warn(`Refusing to set forwards pagination token of live timeline ${r} to ${i}`);return}r.setPaginationToken(i??null,a)}}}addLiveEvent(e,t){var n=t.duplicateStrategy,r=t.fromCache,i=t.roomState,a=t.timelineWasEmpty,o=t.addToState;if(!(this.filter&&!this.filter.filterRoomTimeline([e]).length)){var s=this._eventIdToTimeline.get(e.getId());if(s){if(n===uD.Replace){lD(`EventTimelineSet.addLiveEvent: replacing duplicate event `+e.getId());for(var c=s.getEvents(),l=0;le.getTs());l++);t.insertEvent(e,l,n,r),this._eventIdToTimeline.set(i,t);var u={timeline:t,liveEvent:!1};this.emit(I.Timeline,e,this.room,!1,!1,u)}handleRemoteEcho(e,t,n){var r=this._eventIdToTimeline.get(t);r?(this._eventIdToTimeline.delete(t),this._eventIdToTimeline.set(n,r)):(!this.filter||this.filter.filterRoomTimeline([e]).length)&&this.addEventToTimeline(e,this.liveTimeline,{toStartOfTimeline:!1,addToState:!1})}removeEvent(e){var t=this._eventIdToTimeline.get(e);if(!t)return null;var n=t.removeEvent(e);if(n){this._eventIdToTimeline.delete(e);var r={timeline:t};this.emit(I.Timeline,n,this.room,void 0,!0,r)}return n}compareEventOrdering(e,t){if(e==t)return 0;var n=this._eventIdToTimeline.get(e),r=this._eventIdToTimeline.get(t);if(n===void 0||r===void 0)return null;if(n===r){for(var i=void 0,a=void 0,o=n.getEvents(),s=0;s0)}for(var u=n;u;){if(u===r)return-1;u=u.getNeighbouringTimeline(oD.FORWARDS)}for(u=n;u;){if(u===r)return 1;u=u.getNeighbouringTimeline(oD.BACKWARDS)}return null}canContain(e){if(!this.room)throw Error("Cannot call `EventTimelineSet::canContain without a `room` set. Set the room when creating the EventTimelineSet to call this method.");var t=this.room.eventShouldLiveIn(e),n=t.threadId,r=t.shouldLiveInRoom,i=t.shouldLiveInThread;return this.thread?this.thread.id===n:(!r&&!i&&N.warn(`EventTimelineSet:canContain event encountered which cannot be added to any timeline roomId=${this.room?.roomId} eventId=${e.getId()} threadId=${e.threadRootId}`),r)}},fD=function(e){return e.NOT_SENT=`not_sent`,e.ENCRYPTING=`encrypting`,e.SENDING=`sending`,e.QUEUED=`queued`,e.SENT=`sent`,e.CANCELLED=`cancelled`,e}({}),_te=class{constructor(e,t){this.roomId=e}},vte=class{constructor(e){this.target=e,g(this,`reEmitters`,new WeakMap)}reEmit(e,t){var n=this,r=this.reEmitters.get(e);r||(r=new Map,this.reEmitters.set(e,r));var i=function(t){if(r.has(t))return 1;var i=function(){if(!(t===`error`&&n.target.listenerCount(`error`)===0)){var r=[...arguments];n.target.emit(t,...r,e)}};e.on(t,i),r.set(t,i)};for(var a of t)if(i(a))continue}stopReEmitting(e,t){var n=this.reEmitters.get(e);if(n){for(var r of t)e.off(r,n.get(r)),n.delete(r);n.size===0&&this.reEmitters.delete(e)}}},pD=class extends vte{constructor(e){super(e)}reEmit(e,t){super.reEmit(e,t)}stopReEmitting(e,t){super.stopReEmitting(e,t)}},mD=new zT(`unread_thread_notifications`,`org.matrix.msc3773.unread_thread_notifications`);function yte(e,t){if(t.endsWith(`*`)){var n=t.slice(0,-1);return e.slice(0,n.length)===n}else return e===t}var bte=class{constructor(e,t){this.filterJson=e,this.userId=t}check(e){var t,n=e.getUnsigned()?.[`m.relations`]||{},r=Object.keys(n),i=[];return this.userId&&n!=null&&(t=n[oj.name])!=null&&t.current_user_participated&&i.push(this.userId),this.checkFields(e.getRoomId(),e.getSender(),e.getType(),e.getContent()?e.getContent().url!==void 0:!1,r,i)}toJSON(){return Object.fromEntries(Object.entries({types:this.filterJson.types,not_types:this.filterJson.not_types,rooms:this.filterJson.rooms,not_rooms:this.filterJson.not_rooms,senders:this.filterJson.senders,not_senders:this.filterJson.not_senders,contains_url:this.filterJson.contains_url,[ij.name]:this.filterJson[ij.name],[aj.name]:this.filterJson[aj.name]}).filter(e=>{var t=u(e,2);return t[0],t[1]}))}checkFields(e,t,n,r,i,a){var o={rooms:function(t){return e===t},senders:function(e){return t===e},types:function(e){return yte(n,e)}};for(var s in o){var c=o[s],l=`not_`+s,u=this.filterJson[l];if(u!=null&&u.some(c))return!1;var d=this.filterJson[s];if(d&&!d.some(c))return!1}var f=this.filterJson.contains_url;if(f!==void 0&&f!==r)return!1;var p=this.filterJson[aj.name];if(p!==void 0&&!this.arrayMatchesFilter(p,i))return!1;var m=this.filterJson[ij.name];return!(m!==void 0&&!this.arrayMatchesFilter(m,a))}arrayMatchesFilter(e,t){return t.length>0&&e.every(e=>t.includes(e))}filter(e){return e.filter(this.check,this)}limit(){return this.filterJson.limit===void 0?10:this.filterJson.limit}};function xte(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function hD(e){for(var t=1;tFte,makeBeaconContent:()=>Hte,makeBeaconInfoContent:()=>Bte,makeEmoteMessage:()=>Pte,makeHtmlEmote:()=>jte,makeHtmlMessage:()=>kte,makeHtmlNotice:()=>Ate,makeLocationContent:()=>Ite,makeNotice:()=>Nte,makeTextMessage:()=>Mte,makeTopicContent:()=>Rte,parseBeaconContent:()=>SD,parseBeaconInfoContent:()=>Vte,parseLocationEvent:()=>Lte,parseTopicContent:()=>zte});function Dte(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ote(e){for(var t=1;t{var i=`at ${new Date(n).toISOString()}`;return[t===VT.Self?`User`:void 0,`Location`,r?`"${r}"`:void 0,e,i].filter(Boolean).join(` `)},Ite=(e,t,n,r,i)=>{var a=e??Fte(t,i||VT.Self,n,r),o=n?{[UT.name]:n}:{};return Ote({msgtype:DE.Location,body:a,geo_uri:t,[WT.name]:{description:r,uri:t},[HT.name]:{type:i||VT.Self},[bD.name]:a},o)},Lte=e=>{var t=WT.findIn(e),n=HT.findIn(e),r=UT.findIn(e),i=bD.findIn(e),a=t?.uri??e?.geo_uri,o=t?.description,s=n?.type??VT.Self;return Ite(i??e.body,a,r??void 0,o,s)},Rte=(e,t)=>{var n=[];return yD(t)&&n.push({body:t,mimetype:`text/html`}),yD(e)&&n.push({body:e,mimetype:`text/plain`}),{topic:e,[xD.name]:{"m.text":n}}},zte=e=>{var t,n,r=xD.findIn(e),i=Array.isArray(r)?r:r?.[`m.text`];return Array.isArray(i)?{text:(i==null||(t=i.find(e=>!yD(e.mimetype)||e.mimetype===`text/plain`))==null?void 0:t.body)??e.topic??void 0,html:i==null||(n=i.find(e=>e.mimetype===`text/html`))==null?void 0:n.body}:{text:e.topic??void 0}},Bte=(e,t,n,r,i)=>({description:n,timeout:e,live:t,[UT.name]:i||Date.now(),[HT.name]:{type:r??VT.Self}}),Vte=e=>{var t=e.description,n=e.timeout,r=e.live,i=UT.findIn(e)??void 0;return{description:t,timeout:n,live:r,assetType:HT.findIn(e)?.type,timestamp:i}},Hte=(e,t,n,r)=>({[WT.name]:{description:r,uri:e},[UT.name]:t,"m.relates_to":{rel_type:wte.name,event_id:n}}),SD=e=>{var t=WT.findIn(e),n=UT.findIn(e)??void 0;return{description:t?.description,uri:t?.uri,timestamp:n}},CD=function(e){return e.New=`Beacon.new`,e.Update=`Beacon.update`,e.LivenessChange=`Beacon.LivenessChange`,e.Destroy=`Beacon.Destroy`,e.LocationUpdate=`Beacon.LocationUpdate`,e}({}),wD=(e,t,n)=>n>=e&&e+t>=n,TD=e=>`${e.getRoomId()}_${e.getStateKey()}`,Ute=class extends TE{constructor(e){super(),this.rootEvent=e,g(this,`roomId`,void 0),g(this,`_beaconInfo`,void 0),g(this,`_isLive`,void 0),g(this,`livenessWatchTimeout`,void 0),g(this,`_latestLocationEvent`,void 0),g(this,`clearLatestLocation`,()=>{this._latestLocationEvent=void 0,this.emit(CD.LocationUpdate,this.latestLocationState)}),this.roomId=this.rootEvent.getRoomId(),this.setBeaconInfo(this.rootEvent)}get isLive(){return!!this._isLive}get identifier(){return TD(this.rootEvent)}get beaconInfoId(){return this.rootEvent.getId()}get beaconInfoOwner(){return this.rootEvent.getStateKey()}get beaconInfoEventType(){return this.rootEvent.getType()}get beaconInfo(){return this._beaconInfo}get latestLocationState(){return this._latestLocationEvent&&SD(this._latestLocationEvent.getContent())}get latestLocationEvent(){return this._latestLocationEvent}update(e){if(TD(e)!==this.identifier)throw Error(`Invalid updating event`);e.getTs()1&&(this.livenessWatchTimeout=setTimeout(()=>{this.monitorLiveness()},e))}else this.beaconInfo.timestamp>Date.now()&&(this.livenessWatchTimeout=setTimeout(()=>{this.monitorLiveness()},this.beaconInfo.timestamp-Date.now()))}addLocations(e){if(this.isLive){var t=e.filter(e=>{var t=SD(e.getContent());if(!t.uri||!t.timestamp)return!1;var n=t.timestamp;return this._beaconInfo.timestamp&&wD(this._beaconInfo.timestamp,this._beaconInfo.timeout,n)&&(!this.latestLocationState||n>this.latestLocationState.timestamp)}).sort(Nee)?.[0];t&&(this._latestLocationEvent=t,this.emit(CD.LocationUpdate,this.latestLocationState))}}setBeaconInfo(e){this._beaconInfo=Vte(e.getContent()),this.checkLiveness()}checkLiveness(){var e=this.isLive;if(this.beaconInfo){var t=this.beaconInfo.timestamp>Date.now()?this.beaconInfo.timestamp-36e4:this.beaconInfo.timestamp;this._isLive=!!this._beaconInfo.live&&!!t&&wD(t,this._beaconInfo.timeout,Date.now()),e!==this.isLive&&this.emit(CD.LivenessChange,this.isLive,this)}}};function Wte(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Gte(e){for(var t=1;t3&&arguments[3]!==void 0?arguments[3]:!1;return new dj({content:{[t.getId()]:{[n]:{[e]:Gte({ts:t.getTs()},!r&&{thread_id:QA(t)})}}},type:P.Receipt,room_id:t.getRoomId()})}var ED=0,DD=1,qte=class extends TE{constructor(){super(...arguments),g(this,`receipts`,new gE(()=>new Map)),g(this,`receiptCacheByEventId`,new Map)}getReadReceiptForUserId(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:GT.Read,r=u(this.receipts.get(n)?.get(e)??[null,null],2),i=r[0],a=r[1];return t?i:a??i}compareReceipts(e,t){return this.getUnfilteredTimelineSet().compareEventOrdering(e.eventId,t.eventId)??e.data.ts-t.data.ts}getEventReadUpTo(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=this.getLatestReceipt(e,t);return n&&this.receiptPointsAtConsistentEvent(n)?n.eventId:null}receiptPointsAtConsistentEvent(e){var t,n=this.findEventById(e.eventId);if(!n)return!1;if(!((t=e.data)!=null&&t.thread_id))return!0;if(e.data.thread_id===`main`){if($A(n))return!0}else if(n.threadRootId===e.data.thread_id)return!0;return N.warn(`Ignoring receipt because its thread_id (${e.data.thread_id}) disagrees with the thread root (${n.threadRootId}) of the referenced event (event ID = ${e.eventId})`),!1}getLatestReceipt(e,t){var n=this.getReadReceiptForUserId(e,t,GT.Read),r=this.getReadReceiptForUserId(e,t,GT.ReadPrivate),i;return n!=null&&n.eventId&&r!=null&&r.eventId&&(i=this.compareReceipts(n,r)),i?(i<0?r:n)??null:r??n??null}addReceiptToStructure(e,t,n,r,i){var a=this.receipts.getOrCreate(t),o=a.get(n);o||(o=[null,null],a.set(n,o));var s=o[ED];i&&(s=o[DD]??o[ED]);var c={eventId:e,data:r};if(!(s&&this.compareReceipts(s,c)>=0)){var l=i?o[ED]:c,u=i?c:o[DD],d=null;l&&u&&(d=this.getUnfilteredTimelineSet().compareEventOrdering(l.eventId,u.eventId));var f=d===null||d<0,p=o[DD]??o[ED];if(i&&f?o[DD]=c:i||(o[ED]=c,f||(o[DD]=null)),p!==(o[DD]??o[ED])){if(p&&this.receiptCacheByEventId.get(p.eventId)){var m=p.eventId;this.receiptCacheByEventId.set(m,this.receiptCacheByEventId.get(m).filter(e=>e.type!==t||e.userId!==n)),this.receiptCacheByEventId.get(m).length<1&&this.receiptCacheByEventId.delete(m)}this.receiptCacheByEventId.get(e)||this.receiptCacheByEventId.set(e,[]),this.receiptCacheByEventId.get(e).push({userId:n,type:t,data:r})}}}getReceiptsForEvent(e){return this.receiptCacheByEventId.get(e.getId())||[]}fixupNotifications(e){var t=this.getReadReceiptForUserId(e,!1),n=this.timeline[this.timeline.length-1];n&&t?.eventId===n.getId()&&e===n.getSender()&&(this.setUnread(nO.Total,0),this.setUnread(nO.Highlight,0))}addLocalEchoReceipt(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;this.addReceipt(Kte(e,t,n,r),!0)}getUsersReadUpTo(e){return this.getReceiptsForEvent(e).filter(function(e){return dE(e.type)}).map(function(e){return e.userId})}},Jte=new nD.UnstableValue(`m.poll.disclosed`,`org.matrix.msc3381.poll.disclosed`),Yte=new nD.UnstableValue(`m.poll.undisclosed`,`org.matrix.msc3381.poll.undisclosed`),Xte=new nD.UnstableValue(`m.poll.start`,`org.matrix.msc3381.poll.start`),OD=new nD.UnstableValue(`m.poll.response`,`org.matrix.msc3381.poll.response`),kD=new nD.UnstableValue(`m.poll.end`,`org.matrix.msc3381.poll.end`),AD=function(e){return e.New=`Poll.new`,e.End=`Poll.end`,e.Update=`Poll.update`,e.Responses=`Poll.Responses`,e.Destroy=`Poll.Destroy`,e.UndecryptableRelations=`Poll.UndecryptableRelations`,e}({}),Zte=(e,t)=>({responseEvents:e.filter(e=>{if(!e.isDecryptionFailure())return OD.matches(e.getType())&&e.getTs()<=t})}),Qte=class extends TE{constructor(e,t,n){if(super(),this.rootEvent=e,this.matrixClient=t,this.room=n,g(this,`roomId`,void 0),g(this,`pollEvent`,void 0),g(this,`_isFetchingResponses`,!1),g(this,`relationsNextBatch`,void 0),g(this,`responses`,null),g(this,`endEvent`,void 0),g(this,`undecryptableRelationEventIds`,new Set),g(this,`countUndecryptableEvents`,e=>{var t=e.filter(e=>e.isDecryptionFailure()).map(e=>e.getId()),n=this.undecryptableRelationsCount;this.undecryptableRelationEventIds=new Set([...this.undecryptableRelationEventIds,...t]),this.undecryptableRelationsCount!==n&&this.emit(AD.UndecryptableRelations,this.undecryptableRelationsCount)}),!this.rootEvent.getRoomId()||!this.rootEvent.getId())throw Error(`Invalid poll start event.`);this.roomId=this.rootEvent.getRoomId(),this.pollEvent=this.rootEvent.unstableExtensibleEvent}get pollId(){return this.rootEvent.getId()}get endEventId(){return this.endEvent?.getId()}get isEnded(){return!!this.endEvent}get isFetchingResponses(){return this._isFetchingResponses}get undecryptableRelationsCount(){return this.undecryptableRelationEventIds.size}getResponses(){var e=this;return f(function*(){return e.responses||e.isFetchingResponses||(yield e.fetchResponses()),e.responses})()}onNewRelation(e){if(kD.matches(e.getType())&&this.validateEndEvent(e)&&(this.endEvent=e,this.refilterResponsesOnEnd(),this.emit(AD.End)),this.responses){var t=this.endEvent?.getTs()||2**53-1,n=Zte([e],t).responseEvents;this.countUndecryptableEvents([e]),n.length&&(n.forEach(e=>{this.responses.addEvent(e)}),this.emit(AD.Responses,this.responses))}}fetchResponses(){var e=this;return f(function*(){e._isFetchingResponses=!0;var t=yield e.matrixClient.relations(e.roomId,e.rootEvent.getId(),`m.reference`,void 0,{from:e.relationsNextBatch||void 0});yield Promise.all(t.events.map(t=>e.matrixClient.decryptEventIfNeeded(t)));var n=e.responses||new cD(`m.reference`,OD.name,e.matrixClient,[OD.altName]),r=t.events.find(e=>kD.matches(e.getType()));e.validateEndEvent(r)&&(e.endEvent=r,e.refilterResponsesOnEnd(),e.emit(AD.End));var i=e.endEvent?.getTs()||2**53-1;Zte(t.events,i).responseEvents.forEach(e=>{n.addEvent(e)}),e.relationsNextBatch=t.nextBatch??void 0,e.responses=n,e.countUndecryptableEvents(t.events),e.relationsNextBatch?e.fetchResponses():e._isFetchingResponses=!1,e.emit(AD.Responses,e.responses)})()}refilterResponsesOnEnd(){if(this.responses){var e=this.endEvent?.getTs()||2**53-1;this.responses.getRelations().forEach(t=>{if(t.getTs()>e){var n;(n=this.responses)==null||n.removeEvent(t)}}),this.emit(AD.Responses,this.responses)}}validateEndEvent(e){if(!e||this.endEvent&&this.endEvent.getTs(){var t=e.getType();return nD.M_POLL_START.matches(t)||OD.matches(t)||kD.matches(t)},ene=class{constructor(e){g(this,`room`,void 0),g(this,`threadedReceipts`,void 0),g(this,`unthreadedReceipts`,void 0),g(this,`danglingReceipts`,void 0),g(this,`onTimelineEvent`,e=>{var t=e.getId();t&&this.danglingReceipts.remove(t)?.forEach(e=>{e.receipt.thread_id?this.threadedReceipts.set(e.receipt.thread_id,e.eventId,e.receiptType,e.userId,e.receipt.ts,e.synthetic):this.unthreadedReceipts.set(t,e.receiptType,e.userId,e.receipt.ts,e.synthetic)})}),this.room=e,this.threadedReceipts=new ane(e),this.unthreadedReceipts=new ine(e),this.danglingReceipts=new one,e.on(I.Timeline,this.onTimelineEvent)}add(e,t){for(var n of Object.entries(e)){var r=u(n,2),i=r[0],a=r[1];for(var o of Object.entries(a)){var s=u(o,2),c=s[0],l=s[1];for(var d of Object.entries(l)){var f=u(d,2),p=f[0],m=f[1];this.room.findEventById(i)?m.thread_id?this.threadedReceipts.set(m.thread_id,i,c,p,m.ts,t):this.unthreadedReceipts.set(i,c,p,m.ts,t):this.danglingReceipts.add(new nne(i,c,p,m,t))}}}}hasUserReadEvent(e,t){var n=this.unthreadedReceipts.get(e);if(n&&MD(n.eventId,t,this.room))return!0;var r=this.room.findEventById(t);if(!r)return N.warn(`hasUserReadEvent event ID ${t} not found in room ${this.room.roomId}: this shouldn't happen!`),!1;var i=QA(r),a=this.threadedReceipts.get(i,e);return!!(a&&MD(a.eventId,t,this.room)||this.userSentLatestEventInThread(i,e))}userSentLatestEventInThread(e,t){var n=e===`main`?this.room.getLiveTimeline().getEvents():this.room.getThread(e)?.timeline;return!!(n&&n.length>0&&n[n.length-1].getSender()===t)}},tne=class{constructor(e,t,n){this.eventId=e,this.receiptType=t,this.ts=n}},nne=class{constructor(e,t,n,r,i){this.eventId=e,this.receiptType=t,this.userId=n,this.receipt=r,this.synthetic=i}},rne=class{constructor(e){g(this,`room`,void 0),g(this,`real`,void 0),g(this,`synthetic`,void 0),this.room=e,this.real=void 0,this.synthetic=void 0}set(e,t){e?this.synthetic=t:this.real=t,this.synthetic&&this.real&&MD(this.real.eventId,this.synthetic.eventId,this.room)&&(this.synthetic=void 0)}get(){return this.synthetic??this.real}getByType(e){return e?this.synthetic:this.real}},ine=class{constructor(e){g(this,`room`,void 0),g(this,`data`,void 0),this.room=e,this.data=new Map}set(e,t,n,r,i){var a=jD(this.data,n,()=>new rne(this.room)),o=a.getByType(i);o&&sne(o.eventId,e,this.room)||a.set(i,new tne(e,t,r))}get(e){return this.data.get(e)?.get()}},ane=class{constructor(e){g(this,`room`,void 0),g(this,`data`,void 0),this.room=e,this.data=new Map}set(e,t,n,r,i,a){jD(this.data,e,()=>new ine(this.room)).set(t,n,r,i,a)}get(e,t){return this.data.get(e)?.get(t)}},one=class{constructor(){g(this,`data`,new Map)}add(e){jD(this.data,e.eventId,()=>[]).push(e)}remove(e){var t=this.data.get(e);return this.data.delete(e),t}};function jD(e,t,n){var r=e.get(t);if(r)return r;var i=n();return e.set(t,i),i}function MD(e,t,n){var r=n.compareEventOrdering(e,t);return r!==null&&r>=0}function sne(e,t,n){var r=n.compareEventOrdering(e,t);return r!==null&&r>0}function cne(e,t,n){var r=e.findEventById(t),i=e.findEventById(n);if(!r||!i)return null;var a=$A(r),o=$A(i);return a&&o?lne(e,t,n,r,i):une(t,n,r,i)}function lne(e,t,n,r,i){var a=e.getUnfilteredTimelineSet(),o=a.compareEventOrdering(t,n);return o===null?a.getTimelineForEvent(t)===a.getLiveTimeline()?1:a.getTimelineForEvent(n)===a.getLiveTimeline()?-1:dne(r,i):o}function une(e,t,n,r){var i=QA(n),a=QA(r),o=n.getThread();return o&&i===a?o.timelineSet.compareEventOrdering(e,t):dne(n,r)}function dne(e,t){var n=e.getTs(),r=t.getTs();return nr)}var fne=360*60*1e3,pne=30*1e3,mne=class extends TE{constructor(e,t,n){var r;super(),r=this,this.logger=e,this.http=t,this.name=n,g(this,`cached`,void 0),g(this,`retryTimeout`,void 0),g(this,`refreshTimeout`,void 0),g(this,`poll`,f(function*(){r.logger.debug(`Checking capabilites`);try{var e=r.cached;yield r.fetch(),r.clearTimeouts(),r.refreshTimeout=globalThis.setTimeout(r.poll,fne),r.logger.debug(`Fetched new server ${r.name}`),r.cached&&!ZT(e,r.cached)&&r.emit(`update`,r.cached)}catch(e){r.clearTimeouts();var t=Math.floor(pne+Math.random()*5e3);r.retryTimeout=globalThis.setTimeout(r.poll,t),r.logger.warn(`Failed to refresh ${r.name}: retrying in ${t}ms`,e)}}))}start(){this.poll().then()}stop(){this.clearTimeouts()}getCached(){return this.cached}clearTimeouts(){this.refreshTimeout&&=(clearInterval(this.refreshTimeout),void 0),this.retryTimeout&&=(clearTimeout(this.retryTimeout),void 0)}},F=function(e){return e.Get=`GET`,e.Put=`PUT`,e.Post=`POST`,e.Delete=`DELETE`,e.Options=`OPTIONS`,e.Head=`HEAD`,e.Patch=`PATCH`,e}({});function hne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function gne(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,a=e.error||`Unknown message`;t&&(a=`[${t}] ${a}`),n&&(a=`${a} (${n})`),super(`MatrixError: ${a}`,t,i),this.url=n,this.event=r,g(this,`errcode`,void 0),g(this,`error`,void 0),g(this,`data`,void 0),this.errcode=e.errcode,this.error=e.error,this.name=e.errcode||`Unknown error code`,this.data=e}isRateLimitError(){return this.errcode===`M_LIMIT_EXCEEDED`||(this.errcode===`M_UNKNOWN`||this.errcode===void 0)&&super.isRateLimitError()}getRetryAfterMs(){var e=super.getRetryAfterMs();if(e!==null)return e;if(this.errcode===`M_LIMIT_EXCEEDED`&&`retry_after_ms`in this.data){if(!Number.isInteger(this.data.retry_after_ms))throw Error(`retry_after_ms is not an integer`);return this.data.retry_after_ms}return null}asWidgetApiErrorData(){var e={};if(this.httpHeaders)for(var t of this.httpHeaders){var n=u(t,2),r=n[0];e[r]=n[1]}return{http_status:this.httpStatus??400,http_headers:e,url:this.url??``,response:gne({errcode:this.errcode??`M_UNKNOWN`,error:this.data.error??`Unknown message`},this.data)}}static fromWidgetApiErrorData(t){return new e(t.response,t.http_status,t.url,void 0,new Headers(t.http_headers))}};function _ne(e,t){if(!(e instanceof ND)||!e.isRateLimitError())return t;try{return e.getRetryAfterMs()??t}catch{return t}}var FD=class extends Error{constructor(e,t){super(e+(t?`: ${t.message}`:``))}get name(){return`ConnectionError`}},vne=class extends Error{constructor(e){super(e?.message??``)}get name(){return`TokenRefreshError`}},ID=class extends Error{constructor(e){super(e?.message??``)}get name(){return`TokenRefreshLogoutError`}},yne=new RT(null,`ORG.MATRIX.MSC4387_SAFETY`),bne=class extends PD{constructor(){super(...arguments),g(this,`harms`,void 0),g(this,`expiry`,void 0);var e=arguments.length<=0?void 0:arguments[0];this.harms=new Set(e&&`harms`in e&&Array.isArray(e.harms)?e.harms:[]),this.message=`${super.message} (${[...this.harms].join(`, `)})`,e&&`expiry`in e&&typeof e.expiry==`number`&&(this.expiry=new Date(e.expiry))}},LD=function(e){return e.SessionLoggedOut=`Session.logged_out`,e.NoConsent=`no_consent`,e}({}),xne=i((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.parse=n;var t=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function n(e,n){let r=e.length,i=d(e,0,r),a=i;i=u(e,i,r);let o=f(e,a,i);return{type:e.slice(a,o).toLowerCase(),parameters:n?.parameters===!1?new t:l(e,i,r)}}var r=32,i=9,a=59,o=61,s=34,c=92;function l(e,n,r){let i=new t;parameter:for(;nt;){let t=e.charCodeAt(n-1);if(t!==r&&t!==i)break;n--}return n}}))();function RD(e){var t=new AbortController;return setTimeout(()=>{t.abort()},e),t.signal}function Sne(e){var t=new AbortController;function n(){for(var t of e)t.removeEventListener(`abort`,r)}function r(){t.abort(),n()}for(var i of e){if(i.aborted){r();break}i.addEventListener(`abort`,r)}return{signal:t.signal,cleanup:n}}function zD(e,t){var n=BD(e)?new Headers(e.getAllResponseHeaders().trim().split(/[\r\n]+/).map(e=>{var t=e.indexOf(`:`);return[e.substring(0,t),e.substring(t+1)]})):e.headers,r;try{r=Cne(n)}catch(e){return e}if(r?.type===`application/json`&&t){var i=JSON.parse(t);return i.errcode&&yne.matches(i.errcode)?new bne(i,e.status,BD(e)?e.responseURL:e.url,void 0,n):new PD(i,e.status,BD(e)?e.responseURL:e.url,void 0,n)}return r?.type===`text/plain`?new ND(`Server returned ${e.status} error: ${t}`,e.status,n):new ND(`Server returned ${e.status} error`,e.status,n)}function BD(e){return`getResponseHeader`in e}function Cne(e){var t=e.get(`Content-Type`);return t===null?null:(0,xne.parse)(t)}function VD(e,t){return HD.apply(this,arguments)}function HD(){return HD=f(function*(e,t){for(var n=0,r=null;n0){var i=1e3*2**n;N.log(`network operation failed ${n} times, retrying in ${i}ms...`),yield nE(i)}return yield t()}catch(e){if(e instanceof FD)n+=1,r=e;else throw e}throw r}),HD.apply(this,arguments)}function UD(e,t,n){return t>4||e instanceof FD&&!n||e.httpStatus&&Math.floor(e.httpStatus/100)===4&&e.httpStatus!==429||e.name===`AbortError`||e.name===`M_TOO_LARGE`?-1:_ne(e,1e3*2**t)}var WD=function(e){return e.Success=`success`,e.Failure=`failure`,e.Logout=`logout`,e}({}),wne=500,Tne=60*1e3,Ene=class{constructor(e){this.opts=e,g(this,`tokenRefreshPromise`,void 0),g(this,`latestTokenRefreshExpiry`,void 0)}prepareForRequest(){var e=this;return f(function*(){return yield e.refreshIfNeeded(),{accessToken:e.opts.accessToken,refreshToken:e.opts.refreshToken,expiry:e.latestTokenRefreshExpiry}})()}refreshIfNeeded(){var e=this;return f(function*(){if(e.tokenRefreshPromise)return e.tokenRefreshPromise;e.latestTokenRefreshExpiry&&e.latestTokenRefreshExpiry.getTime()-Date.now()<=wne&&(yield e._handleUnknownToken())})()}handleUnknownToken(e,t){var n=this;return f(function*(){return n._handleUnknownToken(e,t)})()}_handleUnknownToken(e,t){var n=this;return f(function*(){if(e!=null&&e.expiry&&e.expiry.getTime()-Date.now()>=Tne)return WD.Logout;if(!e||e?.accessToken===n.opts.accessToken){n.tokenRefreshPromise??=n.doTokenRefresh(t);try{return yield n.tokenRefreshPromise}finally{n.tokenRefreshPromise=void 0}}return WD.Success})()}doTokenRefresh(e){var t=this;return f(function*(){if(!t.opts.refreshToken||!t.opts.tokenRefreshFunction){var n;return(n=t.opts.logger)==null||n.error(`Unable to refresh token - no refresh token or refresh function`),WD.Logout}e&&e>1&&(yield nE(1e3*Math.min(32,2**e)));try{var r,i;(r=t.opts.logger)==null||r.debug(`Attempting to refresh token`);var a=yield t.opts.tokenRefreshFunction(t.opts.refreshToken),o=a.accessToken,s=a.refreshToken,c=a.expiry;return t.opts.accessToken=o,t.opts.refreshToken=s,t.latestTokenRefreshExpiry=c,(i=t.opts.logger)==null||i.debug(`... token refresh complete, new token expiry:`,c),WD.Success}catch(e){var l;if(e instanceof ID||e instanceof PD){var u;return(u=t.opts.logger)==null||u.error(`Failed to refresh token`,e),WD.Logout}return(l=t.opts.logger)==null||l.warn(`Failed to refresh token`,e),WD.Failure}})()}};function Dne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function One(e){for(var t=1;t2&&arguments[2]!==void 0?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{};return this.doAuthedRequest(1,e,t,n,r,i)}doAuthedRequest(e,t,n,r,i){var a=arguments,o=this;return f(function*(){var s=a.length>5&&a[5]!==void 0?a[5]:{},c=XT(s);c.abortSignal=s.abortSignal;var l=yield o.tokenRefresher.prepareForRequest();l.accessToken&&(o.opts.useAuthorizationHeader?(c.headers||={},c.headers.Authorization||(c.headers.Authorization=`Bearer ${l.accessToken}`),r.access_token&&delete r.access_token):r.access_token||=l.accessToken);try{return yield o.request(t,n,r,i,c)}catch(a){if(!(a instanceof PD))throw a;if(a.errcode===`M_UNKNOWN_TOKEN`){var u=yield o.tokenRefresher.handleUnknownToken(l,e);if(u===WD.Success)return o.doAuthedRequest(e+1,t,n,r,i,s);if(u===WD.Failure)throw new vne(a);c!=null&&c.inhibitLogoutEmit||o.eventEmitter.emit(LD.SessionLoggedOut,a)}else a.errcode==`M_CONSENT_NOT_GIVEN`&&o.eventEmitter.emit(LD.NoConsent,a.message,a.data.consent_uri);throw a}})()}request(e,t,n,r,i){var a=this.getUrl(t,n,i?.prefix,i?.baseUrl);return this.requestOtherUrl(e,a,r,i)}requestOtherUrl(e,t,n){var r=arguments,i=this;return f(function*(){var a,o,s=r.length>3&&r[3]!==void 0?r[3]:{};if(s.json!==void 0&&s.rawResponseBody!==void 0)throw Error("Invalid call to `FetchHttpApi` sets both `opts.json` and `opts.rawResponseBody`");var c=i.sanitizeUrlForLogs(t);(a=i.opts.logger)==null||a.debug(`FetchHttpApi: --> ${e} ${c}`);var l=Object.assign({},s.headers||{}),u=!s.rawResponseBody&&s.json!==!1;u&&(l.Accept||=`application/json`);var d=s.localTimeoutMs??i.opts.localTimeoutMs,f=s.keepAlive??!1,p=[i.abortController.signal];d!==void 0&&p.push(RD(d)),s.abortSignal&&p.push(s.abortSignal);var m;s.json!==!1&&(n==null||(o=n.constructor)==null?void 0:o.name)===Object.name?(m=JSON.stringify(n),l[`Content-Type`]||=`application/json`):m=n;var h=Sne(p),g=h.signal,_=h.cleanup,v=`Authorization`in l?void 0:`no-cache`,y,b=Date.now();try{var x;y=yield i.fetch(t,{signal:g,method:e,body:m,headers:l,mode:`cors`,redirect:`follow`,referrer:``,referrerPolicy:`no-referrer`,cache:v,credentials:`omit`,keepalive:f,priority:s.priority}),(x=i.opts.logger)==null||x.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-b}ms ${y.status}]`)}catch(t){var S;throw(S=i.opts.logger)==null||S.debug(`FetchHttpApi: <-- ${e} ${c} [${Date.now()-b}ms ${t}]`),t.name===`AbortError`?t:new FD(`fetch failed`,t)}finally{_()}if(!y.ok)throw zD(y,yield y.text());return s.rawResponseBody?yield y.blob():u?yield y.json():yield y.text()})()}sanitizeUrlForLogs(e){try{var t=typeof e==`string`?new URL(e):e,n=new URLSearchParams;for(var r of t.searchParams.keys())n.append(r,`xxx`);var i=n.toString(),a=i?`?${i}`:``;return t.origin+t.pathname+a}catch{return`??`}}getUrl(e,t,n,r){var i=r??this.opts.baseUrl,a=i.endsWith(`/`)?i.slice(0,-1):i,o=new URL(a+(n??this.opts.prefix)+e);return(this.opts.extraParams||t)&&JT(One(One({},this.opts.extraParams),t),o.searchParams),o}},GD=function(e){return e.V1=`/_matrix/client/v1`,e.V3=`/_matrix/client/v3`,e.Unstable=`/_matrix/client/unstable`,e}({}),KD=function(e){return e.V2=`/_matrix/identity/v2`,e}({}),qD=function(e){return e.V1=`/_matrix/media/v1`,e.V3=`/_matrix/media/v3`,e}({}),Ane=1e3,jne=0,JD,YD=[];function Mne(e,t){var n=[...arguments].slice(2);t||=0,t<0&&(t=0);var r=Date.now()+t,i=jne++,a={runAt:r,func:e,params:n,key:i},o=Fne(YD,function(e){return e.runAt-r});return YD.splice(o,0,a),XD(),i}function Nne(e){if(YD.length!==0){var t;for(t=0;te)break;var r=YD.shift();r.key,t.push(r)}XD();for(var i of t)try{i.func.apply(globalThis,i.params)}catch(e){N.error(`Uncaught exception in callback function`,e)}}function Fne(e,t){for(var n=0,r=e.length;n>1;t(e[i])>0?r=i:n=i+1}return n}var Ine=class extends kne{constructor(){super(...arguments),g(this,`uploads`,[])}uploadContent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.includeFilename??!0,r=t.abortController??new AbortController,i=(t.type??e.type)||`application/octet-stream`,a=t.name??e.name,o={loaded:0,total:0,abortController:r},s=Promise.withResolvers();if(globalThis.XMLHttpRequest){var c=new globalThis.XMLHttpRequest,l=function(){c.abort(),s.reject(Error(`Timeout`))},u=Mne(l,3e4);c.onreadystatechange=function(){switch(c.readyState){case globalThis.XMLHttpRequest.DONE:Nne(u);try{if(c.status===0)throw new DOMException(c.statusText,`AbortError`);if(!c.responseText)throw Error(`No response body.`);c.status>=400?s.reject(zD(c,c.responseText)):s.resolve(JSON.parse(c.responseText))}catch(e){if(e.name===`AbortError`){s.reject(e);return}s.reject(new FD(`request failed`,e))}break}},c.upload.onprogress=e=>{var n;Nne(u),o.loaded=e.loaded,o.total=e.total,u=Mne(l,3e4),(n=t.progressHandler)==null||n.call(t,{loaded:e.loaded,total:e.total})};var d=this.getUrl(`/upload`,void 0,qD.V3);n&&a&&d.searchParams.set(`filename`,encodeURIComponent(a)),!this.opts.useAuthorizationHeader&&this.opts.accessToken&&d.searchParams.set(`access_token`,encodeURIComponent(this.opts.accessToken)),c.open(F.Post,d.href),this.opts.useAuthorizationHeader&&this.opts.accessToken&&c.setRequestHeader(`Authorization`,`Bearer `+this.opts.accessToken),c.setRequestHeader(`Content-Type`,i),c.send(e),r.signal.addEventListener(`abort`,()=>{c.abort()})}else{var f={};n&&a&&(f.filename=a);var p={"Content-Type":i};this.authedRequest(F.Post,`/upload`,f,e,{prefix:qD.V3,headers:p,abortSignal:r.signal}).then(s.resolve,s.reject)}return o.promise=s.promise.finally(()=>{YT(this.uploads,e=>e===o)}),r.signal.addEventListener(`abort`,()=>{YT(this.uploads,e=>e===o),s.reject(new DOMException(`Aborted`,`AbortError`))}),this.uploads.push(o),o.promise}cancelUpload(e){var t=this.uploads.find(t=>t.promise===e);return t?(t.abortController.abort(),!0):!1}getCurrentUploads(){return this.uploads}getContentUri(){return{base:this.opts.baseUrl,path:qD.V3+`/upload`,params:{access_token:this.opts.accessToken}}}},Lne=function(e){return e.Stable=`stable`,e.Unstable=`unstable`,e}({}),Rne=class extends mne{constructor(e,t){var n;super(e,t,`server capabilities`),n=this,g(this,`fetch`,f(function*(){var e=yield n.http.authedRequest(F.Get,`/capabilities`);return n.cached=e.capabilities,n.cached}))}};function zne(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n{var e=Date.now(),t=[];this.nextStickyEventExpiryTs=2**53-1;for(var n of this.stickyEventsMap.entries()){var r=u(n,2),i=r[0];for(var a of r[1]){var o=u(a,2),s=o[0],c=xE(o[1]),l=c[0],d=zne(c).slice(1);e>=l.unstableStickyExpiresAt?(ZD.debug(`Expiring sticky event`,l.getId()),t.push(l),this.stickyEventsMap.get(i).delete(s)):(this.stickyEventsMap.get(i).set(s,[l,...d.filter(t=>t.unstableStickyExpiresAt<=e)]),this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,l.unstableStickyExpiresAt))}this.stickyEventsMap.get(i)?.size===0&&this.stickyEventsMap.delete(i)}for(var f of this.unkeyedStickyEvents)e>=f.unstableStickyExpiresAt?(ZD.debug(`Expiring sticky event`,f.getId()),this.unkeyedStickyEvents.delete(f),t.push(f)):this.nextStickyEventExpiryTs=Math.min(this.nextStickyEventExpiryTs,f.unstableStickyExpiresAt);t.length&&this.emit(QD.Update,[],[],t),this.scheduleStickyTimer()})}static sortStickyEvent(e,t){if(t.getTs()!==e.getTs())return t.getTs()-e.getTs();if((t.getId()??``)>(e.getId()??``))return 1;throw Error(`Comparing two sticky events with the same event ID is not allowed.`)}static stickyMapKey(e,t){return`${e}${t}`}*getStickyEvents(){yield*this.unkeyedStickyEvents;for(var e of this.stickyEventsMap.values())for(var t of e.values())yield t[0]}getKeyedStickyEvent(t,n,r){var i;return $D(t),(i=this.stickyEventsMap.get(n))==null||(i=i.get(e.stickyMapKey(r,t)))==null?void 0:i[0]}getUnkeyedStickyEvent(e,t){return[...this.unkeyedStickyEvents].filter(n=>n.getType()===t&&n.getSender()===e)}addStickyEvent(t){var n,r=t.getContent().msc4354_sticky_key;if(typeof r!=`string`&&r!==void 0)throw Error(`${t.getId()} is missing msc4354_sticky_key`);if(t.unstableStickyExpiresAt===void 0)throw Error(`${t.getId()} is missing msc4354_sticky.duration_ms`);var i=t.getSender(),a=t.getType();if($D(i),t.unstableStickyExpiresAt<=Date.now())return ZD.info(`ignored sticky event with older expiration time than current time`,r),{added:!1};if(!i.startsWith(`@`))throw Error(`Expected sender to start with @`);var o=t;if(r===void 0)return this.unkeyedStickyEvents.add(o),this.nextStickyEventExpiryTs=Math.min(t.unstableStickyExpiresAt,this.nextStickyEventExpiryTs),this.scheduleStickyTimer(),{added:!0};var s=e.stickyMapKey(r,i),c=[o,...this.stickyEventsMap.get(a)?.get(s)??[]].sort(e.sortStickyEvent);return this.stickyEventsMap.has(a)||this.stickyEventsMap.set(a,new Map),(n=this.stickyEventsMap.get(a))==null||n.set(s,c),this.nextStickyEventExpiryTs=Math.min(o.unstableStickyExpiresAt,this.nextStickyEventExpiryTs),this.scheduleStickyTimer(),{added:c[0]===o,prevEvent:c?.[1]}}addStickyEvents(e){var t=[],n=[];for(var r of e)try{var i=this.addStickyEvent(r);i.added&&(i.prevEvent?n.push({current:r,previous:i.prevEvent}):t.push(r))}catch(e){ZD.warn(`ignored invalid sticky event`,e)}(t.length||n.length)&&this.emit(QD.Update,t,n,[]),this.scheduleStickyTimer()}scheduleStickyTimer(){this.stickyEventTimer&&=(clearTimeout(this.stickyEventTimer),void 0),this.nextStickyEventExpiryTs!==2**53-1&&(this.stickyEventTimer=setTimeout(this.cleanExpiredStickyEvents,this.nextStickyEventExpiryTs-Date.now()))}handleRedaction(t){var n=typeof t==`string`?t:t.getId();for(var r of this.unkeyedStickyEvents)if(r.getId()===n){this.unkeyedStickyEvents.delete(r),this.emit(QD.Update,[],[],[r]);return}if(typeof t!=`string`&&!t.isRedacted()){var i,a=t.getContent().msc4354_sticky_key;if(typeof a!=`string`&&a!==void 0)return;var o=t.getType(),s=t.getSender();$D(s);var c=this.stickyEventsMap.get(o);if(!c)return;var l=e.stickyMapKey(a,s),d=xE(c.get(l)??[]),f=d[0],p=zne(d).slice(1);if(!f)return;ZD.debug(`Redaction for ${n} under sticky key ${a}`);var m=p.filter(e=>!e.isRedacted()).sort(e.sortStickyEvent);(i=this.stickyEventsMap.get(o))==null||i.set(l,m),m.length?this.emit(QD.Update,[],[{previous:f,current:m[0]}],[]):(c.delete(l),c.size===0&&this.stickyEventsMap.delete(o),this.emit(QD.Update,[],[],[f]));return}for(var h of this.stickyEventsMap.values())for(var g of h.values()){var _=u(g,1)[0];if(_.getId()===n)return this.handleRedaction(_)}}clear(){this.stickyEventsMap.clear(),this.nextStickyEventExpiryTs=2**53-1,this.scheduleStickyTimer()}},eO=new BT(`m.room.retention`,`org.matrix.msc1763.retention`),Vne=class{constructor(e,t,n){var r=this;this.room=e,this.retentionService=t,this.store=n,g(this,`maxRetention`,null),g(this,`retentionTimeout`,void 0),g(this,`logger`,void 0),g(this,`handleRetentionUpdate`,f(function*(){var e=r.maxRetention!==null;try{yield r.recalculateRetention(r.room.currentState)}catch(e){r.logger.warn(`Failed to recalculate retention policy`,e);return}e!==(r.maxRetention!==null)&&(r.logger.info(`retention recalculated to be`,r.maxRetention),r.maxRetention?r.room.on(I.Timeline,r.timelineUpdated):r.room.off(I.Timeline,r.timelineUpdated))})),g(this,`recalculateRetention`,function(){var e=f(function*(e){var t,n,i,a=e.getStateEvents(eO.name).find(e=>e.getStateKey()===``),o=e.getStateEvents(eO.altName).find(e=>e.getStateKey()===``),s=r.retentionService.getCached(),c=s==null||(t=s.policies)==null?void 0:t[r.room.roomId],l=a?.getContent()??o?.getContent(),u=c??l??(s==null||(n=s.policies)==null?void 0:n[`*`]);if(!u){r.maxRetention=null;return}var d=!c&&l,f=u.max_lifetime;if(!f&&d){var p;if(f=s==null||(p=s.limits)==null||(p=p.max_lifetime)==null?void 0:p.min,!f){r.maxRetention=null;return}}if(typeof f!=`number`)throw Error(`max_lifetime must be a number, got "${f}"`);if(f<0||!Number.isInteger(f))throw Error(`max_lifetime must be >= 0, got ${f}`);r.maxRetention=f,d&&s!=null&&(i=s.limits)!=null&&i.max_lifetime&&(r.maxRetention=Math.max(r.maxRetention,s.limits.max_lifetime.min??0),r.maxRetention=Math.min(r.maxRetention,s.limits.max_lifetime.max??2**53-1)),r.processTimeline()});return function(t){return e.apply(this,arguments)}}()),g(this,`timelineUpdated`,()=>{this.logger.info(`timelineUpdated`),this.scheduleTimelineCheck(200)}),g(this,`scheduleTimelineCheck`,e=>{this.retentionTimeout&&clearTimeout(this.retentionTimeout),this.retentionTimeout=setTimeout(()=>{this.processTimeline(),this.retentionTimeout=void 0},e)}),this.logger=N.getChild(`RetentionPolicy ${e.roomId}`),e.on(pj.Events,e=>{e.getStateKey()!==``||e.getType()!==`org.matrix.msc1763.retention`&&e.getType()!==`m.room.retention`||this.handleRetentionUpdate()}),this.retentionService.on(`update`,()=>{this.logger.info(`Got global retention policy update!`),this.handleRetentionUpdate()}),this.handleRetentionUpdate()}shouldEventBeRetained(e){if(!this.maxRetention)return!0;var t=Date.now()-this.maxRetention;return e.getTs()>t}processTimeline(){if(this.maxRetention){this.logger.info(`Running processTimeline`);var e=Date.now()-this.maxRetention,t=this.room.getLiveTimeline().getEvents().filter(e=>e.getStateKey()===void 0&&!e.isRedacted()&&e.getType()!==`m.room.redaction`),n=t.filter(t=>t.getTs()t.getTs()>=e).sort((e,t)=>e.getTs()-t.getTs()),1)[0];if(r){var i=r.getTs()+this.maxRetention-Date.now();this.logger.info(`Next expiry scheduled for ${i}`),this.scheduleTimelineCheck(i)}if(n.length===0){this.logger.info(`Found no expired events`);return}this.logger.info(`Found ${n.length} expired events`);for(var a of n)this.room.tryApplyRedaction(new dj({type:P.RoomRedaction,sender:a.getSender(),event_id:`$synthetic_redaction`,room_id:this.room.roomId,redacts:a.getId(),content:{reason:`Retention policy`},origin_server_ts:Date.now(),unsigned:{}}));this.store.removeEventsFromRoom(this.room.roomId,n.map(e=>e.getId())).catch(e=>{this.logger.warn(`Failed to remove events from store`,e)})}}};function Hne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function tO(e){for(var t=1;t3&&arguments[3]!==void 0?arguments[3]:{};super(),r=this,this.roomId=e,this.client=t,this.myUserId=n,this.opts=a,g(this,`reEmitter`,void 0),g(this,`txnToEvent`,new Map),g(this,`notificationCounts`,{}),g(this,`bumpStamp`,void 0),g(this,`threadNotifications`,new Map),g(this,`cachedThreadReadReceipts`,new Map),g(this,`oldestThreadedReceiptTs`,1/0),g(this,`unthreadedReceipts`,new Map),g(this,`timelineSets`,void 0),g(this,`polls`,new Map),g(this,`threadsTimelineSets`,[]),g(this,`filteredTimelineSets`,{}),g(this,`timelineNeedsRefresh`,!1),g(this,`pendingEventList`,void 0),g(this,`blacklistUnverifiedDevices`,void 0),g(this,`selfMembership`,void 0),g(this,`heroes`,null),g(this,`getTypeWarning`,!1),g(this,`membersPromise`,void 0),g(this,`name`,void 0),g(this,`normalizedName`,void 0),g(this,`tags`,{}),g(this,`accountData`,new Map),g(this,`summary`,null),g(this,`oldState`,void 0),g(this,`currentState`,void 0),g(this,`relations`,void 0),g(this,`threads`,new Map),g(this,`visibilityEvents`,new Map),g(this,`roomReceipts`,new ene(this)),g(this,`stickyEvents`,new Bne),g(this,`retention`,void 0),g(this,`threadTimelineSetsPromise`,null),g(this,`threadsReady`,!1),g(this,`updateThreadRootEvents`,(e,t,n)=>{e.length&&(this.updateThreadRootEvent(this.threadsTimelineSets?.[0],e,t,n),e.hasCurrentUserParticipated&&this.updateThreadRootEvent(this.threadsTimelineSets?.[1],e,t,n))}),g(this,`updateThreadRootEvent`,(e,t,n,r)=>{e&&t.rootEvent&&(r&&e.removeEvent(t.id),rj.hasServerSideSupport?e.addLiveEvent(t.rootEvent,{duplicateStrategy:uD.Replace,fromCache:!1,roomState:this.currentState,addToState:!1}):e.addEventToTimeline(t.rootEvent,e.getLiveTimeline(),{toStartOfTimeline:n,addToState:!1}))}),g(this,`tryApplyRedaction`,e=>{if(e.isRedaction()){var t=e.event.redacts,n=t?this.findEventById(t):void 0;if(t)try{this.stickyEvents.handleRedaction(n||t)}catch(e){N.error(`Failed to handle redaction for sticky event`,e)}n&&this.applyEventAsRedaction(e,n)}else if(e.getType()===P.RoomMember){var r=e.getContent().membership;if(r!==zE.Ban&&!(r===zE.Leave&&e.getStateKey()!==e.getSender())||e.getContent()[`org.matrix.msc4293.redact_events`]!==!0||!this.getLiveTimeline().getState(aD.Forward).maySendRedactionForEvent(e,e.getSender()))return;for(var i of this.getTimelineSets().map(e=>e.getTimelines()).reduce((e,t)=>(e.push(...t),e),[]).map(t=>t.getEvents().filter(t=>t.getSender()===e.getStateKey())).reduce((e,t)=>(e.push(...t),t),[]))this.applyEventAsRedaction(e,i)}}),this.setMaxListeners(100),this.reEmitter=new pD(this),a.pendingEventOrdering=a.pendingEventOrdering||JA.Chronological,this.name=e,this.normalizedName=e,this.relations=new gte(this.client,this),this.on(I.Receipt,this.onReceipt),this.reEmitter.reEmit(this.stickyEvents,[QD.Update]),this.timelineSets=[new dD(this,a)],this.reEmitter.reEmit(this.getUnfilteredTimelineSet(),[I.Timeline,I.TimelineReset]),this.fixUpLegacyTimelineFields(),this.opts.pendingEventOrdering===JA.Detached&&(this.pendingEventList=[],this.client.store.getPendingEvents(this.roomId).then(e=>{var n=this.client.getEventMapper({decrypt:!1});e.forEach(function(){var e=f(function*(e){var i=n(e);yield t.decryptEventIfNeeded(i),i.setStatus(fD.NOT_SENT),r.addPendingEvent(i,i.getTxnId())});return function(t){return e.apply(this,arguments)}}())})),this.opts.lazyLoadMembers?this.membersPromise=void 0:this.membersPromise=Promise.resolve(!1),(i=this.client)!=null&&i._unstable_shouldApplyMessageRetention&&(this.retention=new Vne(this,t.retentionPolicyService,t.store))}createThreadsTimelineSets(){var e=this;return f(function*(){var t;if(e.threadTimelineSetsPromise)return e.threadTimelineSetsPromise;if((t=e.client)!=null&&t.supportsThreads())try{e.threadTimelineSetsPromise=Promise.all([e.createThreadTimelineSet(),e.createThreadTimelineSet(sj.My)]);var n=yield e.threadTimelineSetsPromise;return e.threadsTimelineSets[0]=n[0],e.threadsTimelineSets[1]=n[1],n}catch{return e.threadTimelineSetsPromise=null,null}return null})()}decryptCriticalEvents(){var e=this;return f(function*(){if(e.client.getCrypto()){var t=e.getEventReadUpTo(e.client.getUserId(),!0),n=e.getLiveTimeline().getEvents(),r=n.findIndex(e=>e.event.event_id===t),i=n.slice(r).reverse().map(t=>e.client.decryptEventIfNeeded(t));yield Promise.allSettled(i)}})()}decryptAllEvents(){var e=this;return f(function*(){if(e.client.getCrypto()){var t=e.getUnfilteredTimelineSet().getLiveTimeline().getEvents().slice(0).reverse().map(t=>e.client.decryptEventIfNeeded(t));yield Promise.allSettled(t)}})()}getCreator(){return this.currentState.getStateEvents(P.RoomCreate,``)?.getSender()??null}getVersion(){return this.currentState.getRoomVersion()}getRecommendedVersion(){var e=this;return f(function*(){var t={};try{t=yield e.client.getCapabilities()}catch{}var n=t[`m.room_versions`];if(!n){n={default:`10`,available:{}};for(var r of Une)n.available[r]=Lne.Stable}var i=e.checkVersionAgainstCapability(n);if(i.urgent&&i.needsUpgrade){N.warn(`Refreshing room version capability because the server looks to be supporting a newer room version we don't know about.`);try{t=yield e.client.fetchCapabilities()}catch(e){N.warn(`Failed to refresh room version capabilities`,e)}if(n=t[`m.room_versions`],n)i=e.checkVersionAgainstCapability(n);else return N.warn(`No room version capability - assuming upgrade required.`),i}return i})()}checkVersionAgainstCapability(e){var t=this.getVersion();N.log(`[${this.roomId}] Current version: ${t}`),N.log(`[${this.roomId}] Version capability: `,e);var n={version:t,needsUpgrade:!1,urgent:!1};return t===e.default||Object.keys(e.available).filter(t=>e.available[t]===`stable`).includes(t)?n:(n.version=e.default,n.needsUpgrade=!0,n.urgent=!!this.getVersion().match(/^[0-9]+[0-9.]*$/g),n.urgent?N.warn(`URGENT upgrade required on ${this.roomId}`):N.warn(`Non-urgent upgrade required on ${this.roomId}`),n)}userMayUpgradeRoom(e){return this.currentState.maySendStateEvent(P.RoomTombstone,e)}getPendingEvents(){if(!this.pendingEventList)throw Error(`Cannot call getPendingEvents with pendingEventOrdering == `+this.opts.pendingEventOrdering);return this.pendingEventList}removePendingEvent(e){if(!this.pendingEventList)throw Error(`Cannot call removePendingEvent with pendingEventOrdering == `+this.opts.pendingEventOrdering);var t=YT(this.pendingEventList,function(t){return t.getId()==e},!1);return this.savePendingEvents(),t}hasPendingEvent(e){return this.pendingEventList?.some(t=>t.getId()===e)??!1}getPendingEvent(e){return this.pendingEventList?.find(t=>t.getId()===e)??null}getLiveTimeline(){return this.getUnfilteredTimelineSet().getLiveTimeline()}get timeline(){return this.getLiveTimeline().getEvents()}getLastActiveTimestamp(){var e=this.getLiveTimeline().getEvents();return e.length?e[e.length-1].getTs():-(2**53-1)}getLastLiveEvent(){var e=this.getLiveTimeline().getEvents(),t=e[e.length-1],n=this.getLastThread();if(!n)return t;var r=n.events[n.events.length-1];return(t?.getTs()??0)>(r?.getTs()??0)?t:r}getLastThread(){return this.getThreads().reduce((e,t)=>{if(!e)return t;var n=t.events[t.events.length-1],r=e.events[e.events.length-1];return(n?.getTs()??0)>=(r?.getTs()??0)?t:e},void 0)}getMyMembership(){return this.selfMembership??zE.Leave}getDMInviter(){var e=this.getMember(this.myUserId);if(e)return e.getDMInviter();if(this.selfMembership===zE.Invite&&this.getInvitedAndJoinedMemberCount()===2){var t;return(t=this.heroes)==null||(t=t[0])==null?void 0:t.userId}}guessDMUserId(){var e=this.getMember(this.myUserId);if(e){var t=e.getDMInviter();if(t)return t}if(Array.isArray(this.heroes)&&this.heroes.length)return this.heroes[0].userId;var n=this.currentState.getMembers().find(e=>e.userId!==this.myUserId);return n?n.userId:this.myUserId}getFunctionalMembers(){var e=this.currentState.getStateEvents(Qee.name,``);return Array.isArray(e?.getContent().service_members)?e.getContent().service_members:[]}getAvatarFallbackMember(){var e=this.getFunctionalMembers(),t=0;if(this.getMembers().forEach(n=>{n.membership!==`join`&&n.membership!==`invite`||e.includes(n.userId)||t++}),!(t>2)){var n=this.heroes?.filter(t=>!e.includes(t.userId)),r=Array.isArray(n)&&n.length;if(r){for(var i of n)if(i.fromMSC4186){var a=new VE(this.roomId,i.userId);return a.setMembershipEvent(new dj({event_id:`$`+this.roomId+i.userId+new Date().getTime(),type:P.RoomMember,state_key:i.userId,content:{displayname:i.displayName,avatar_url:i.avatarUrl}})),a}else{var o=this.getMember(i.userId);if(o)return o}var s=n.map(e=>this.getMember(e.userId)).find(e=>!!e);if(s)return s}var c=this.getMembers()?.filter(t=>!e.includes(t.userId));if(c.length<=2){var l=c.find(e=>e.userId!==this.myUserId);if(l)return l}if(r){var u=n.map(e=>this.client.getUser(e.userId)).find(e=>!!e);if(u){var d=new VE(this.roomId,u.userId);return d.user=u,d}}}}updateMyMembership(e){var t=this.selfMembership;this.selfMembership=e,t!==e&&(e===zE.Leave&&this.cleanupAfterLeaving(),this.emit(I.MyMembership,this,e,t))}loadMembersFromServer(){var e=this;return f(function*(){var t=e.client.store.getSyncToken();return(yield e.client.members(e.roomId,void 0,zE.Leave,t??void 0)).chunk})()}loadMembers(){var e=this;return f(function*(){var t=!1,n=yield e.client.store.getOutOfBandMembers(e.roomId);return(n===null||e.hasEncryptionStateEvent())&&(t=!0,n=yield e.loadMembersFromServer(),N.log(`LL: got ${n.length} members from server for room ${e.roomId}`)),{memberEvents:n.filter(hE).map(e.client.getEventMapper()),fromServer:t}})()}membersLoaded(){return this.opts.lazyLoadMembers?this.currentState.outOfBandMembersReady():!0}loadMembersIfNeeded(){if(this.membersPromise)return this.membersPromise;this.currentState.markOutOfBandMembersStarted();var e=this.loadMembers().then(e=>(this.currentState.setOutOfBandMembers(e.memberEvents),this.recalculate(),e.fromServer)).catch(e=>{throw this.membersPromise=void 0,this.currentState.markOutOfBandMembersFailed(),e});return e.then(e=>{if(e){var t=this.currentState.getMembers().filter(e=>e.isOutOfBand()).map(e=>e.events.member?.event);return N.log(`LL: telling store to write ${t.length} members for room ${this.roomId}`),this.client.store.setOutOfBandMembers(this.roomId,t).catch(e=>{N.log(`LL: storing OOB room members failed, oh well`,e)})}}).catch(e=>{N.error(e)}),this.membersPromise=e,this.membersPromise}clearLoadedMembersIfNeeded(){var e=this;return f(function*(){e.opts.lazyLoadMembers&&e.membersPromise&&(yield e.loadMembersIfNeeded(),yield e.client.store.clearOutOfBandMembers(e.roomId),e.currentState.clearOutOfBandMembers(),e.membersPromise=void 0)})()}cleanupAfterLeaving(){this.clearLoadedMembersIfNeeded().catch(e=>{N.error(`error after clearing loaded members from room ${this.roomId} after leaving`),N.log(e)})}refreshLiveTimeline(){var e=this;return f(function*(){var t=e.getLiveTimeline(),n=t.getPaginationToken(oD.FORWARDS),r=t.getPaginationToken(oD.BACKWARDS),i=t.getEvents(),a=i[i.length-1];N.log(`[refreshLiveTimeline for ${e.roomId}] at mostRecentEventInTimeline=${a&&a.getId()} liveTimelineBefore=${t.toString()} forwardPaginationToken=${n} backwardPaginationToken=${r}`);var o=e.getUnfilteredTimelineSet(),s=null;a?(e.resetLiveTimeline(null,null),e.emit(I.TimelineRefresh,e,o),s=yield e.client.getEventTimeline(o,a.getId())):s=yield e.client.getLatestTimeline(o);var c=o.getLiveTimeline();!c||c.getPaginationToken(aD.Forward)===null&&c.getPaginationToken(aD.Backward)===null&&c.getEvents().length===0?(N.log(`[refreshLiveTimeline for ${e.roomId}] using our new live timeline`),s.setPaginationToken(n,oD.FORWARDS),o.setLiveTimeline(s),e.fixUpLegacyTimelineFields()):N.log(`[refreshLiveTimeline for ${e.roomId}] \`/sync\` or some other request beat us to creating a new live timeline after we reset it. We'll use that instead since any events in the scrollback from this timeline will include the history.`),e.setTimelineNeedsRefresh(!1),e.emit(I.TimelineRefresh,e,o)})()}resetLiveTimeline(e,t){for(var n of this.timelineSets)n.resetLiveTimeline(e??void 0,t??void 0);for(var r of this.threads.values())r.resetLiveTimeline(e,t);this.fixUpLegacyTimelineFields()}fixUpLegacyTimelineFields(){var e=this.oldState,t=this.currentState;this.oldState=this.getLiveTimeline().getState(oD.BACKWARDS),this.currentState=this.getLiveTimeline().getState(oD.FORWARDS),e!==this.oldState&&this.emit(I.OldStateUpdated,this,e,this.oldState),t!==this.currentState&&(this.emit(I.CurrentStateUpdated,this,t,this.currentState),this.reEmitter.stopReEmitting(t,[pj.Events,pj.Members,pj.NewMember,pj.Update,pj.Marker,CD.New,CD.Update,CD.Destroy,CD.LivenessChange]),this.reEmitter.reEmit(this.currentState,[pj.Events,pj.Members,pj.NewMember,pj.Update,pj.Marker,CD.New,CD.Update,CD.Destroy,CD.LivenessChange]))}onReceipt(e){this.hasEncryptionStateEvent()&&this.clearNotificationsOnReceipt(e)}clearNotificationsOnReceipt(e){var t=[],n=!1,r=e.getContent();for(var i of Object.values(r))for(var a of Object.entries(i)){var o=u(a,2),s=o[0],c=o[1];if(dE(s)&&c)for(var l of Object.entries(c)){var d=u(l,2),f=d[0],p=d[1];if(!(!p||typeof p!=`object`)){var m=p;f===this.client.getUserId()&&(m.thread_id===void 0?n=!0:typeof m.thread_id==`string`&&t.push(m.thread_id))}}}n&&(t=this.getThreads().filter(e=>this.getThreadUnreadNotificationCount(e.id,nO.Total)>0||this.getThreadUnreadNotificationCount(e.id,nO.Highlight)>0).map(e=>e.id),t.push(`main`));for(var h of t){var g=20,_=h===`main`?this.getLiveTimeline():this.getThread(h)?.liveTimeline;if(!_){N.warn(`Couldn't find timeline for thread ID ${h} in room ${this.roomId}`);continue}for(var v=_.getEvents(),y=0,b=v.length-1;b>=0;b--){var x;if(b===v.length-g)return;var S=v[b];if(this.hasUserReadEvent(this.client.getUserId(),S.getId()))break;var C=this.client.getPushActionsForEvent(S);y+=C!=null&&(x=C.tweaks)!=null&&x.highlight?1:0}h===`main`?this.setUnreadNotificationCount(nO.Highlight,y):this.setThreadUnreadNotificationCount(h,nO.Highlight,y)}}getTimelineSets(){return this.timelineSets}getUnfilteredTimelineSet(){return this.timelineSets[0]}getTimelineForEvent(e){var t=this.findEventById(e),n=this.findThreadForEvent(t);return n?n.timelineSet.getTimelineForEvent(e):this.getUnfilteredTimelineSet().getTimelineForEvent(e)}addTimeline(){return this.getUnfilteredTimelineSet().addTimeline()}setTimelineNeedsRefresh(e){this.timelineNeedsRefresh=e}getTimelineNeedsRefresh(){return this.timelineNeedsRefresh}findEventById(e){var t=this.getUnfilteredTimelineSet().findEventById(e);if(!t){for(var n=this.getThreads(),r=0;r0&&arguments[0]!==void 0?arguments[0]:nO.Total,t=this.getRoomUnreadNotificationCount(e);for(var n of this.threadNotifications.values())t+=n[e]??0;return t}getUnreadCountForEventContext(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nO.Total,t=arguments.length>1?arguments[1]:void 0;return(t.threadRootId&&!t.isThreadRoot?this.getThreadUnreadNotificationCount(t.threadRootId,e):this.getRoomUnreadNotificationCount(e))??0}getRoomUnreadNotificationCount(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nO.Total;return this.notificationCounts[e]??0}getThreadUnreadNotificationCount(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:nO.Total;return this.threadNotifications.get(e)?.[t]??0}hasThreadUnreadNotification(){for(var e of this.threadNotifications.values())if((e.highlight??0)>0||(e.total??0)>0)return!0;return!1}setThreadUnreadNotificationCount(e,t,n){var r=tO({highlight:this.threadNotifications.get(e)?.highlight,total:this.threadNotifications.get(e)?.total},{[t]:n});this.threadNotifications.set(e,r),this.emit(I.UnreadNotifications,r,e)}get threadsAggregateNotificationType(){var e=null;for(var t of this.threadNotifications.values()){if((t.highlight??0)>0)return nO.Highlight;(t.total??0)>0&&!e&&(e=nO.Total)}return e}resetThreadUnreadNotificationCountFromSync(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=this.hasEncryptionStateEvent();for(var n of this.threadNotifications){var r=u(n,2),i=r[0],a=r[1];e.includes(i)||(a.total=0,t||(a.highlight=0))}this.emit(I.UnreadNotifications)}setBumpStamp(e){this.bumpStamp=e}getBumpStamp(){return this.bumpStamp}setUnreadNotificationCount(e,t){this.notificationCounts[e]=t,this.emit(I.UnreadNotifications,this.notificationCounts)}setUnread(e,t){return this.setUnreadNotificationCount(e,t)}setSummary(e){var t=e[`m.heroes`]?.map(e=>({userId:e,fromMSC4186:!1})),n=e[`m.joined_member_count`],r=e[`m.invited_member_count`];Number.isInteger(n)&&this.currentState.setJoinedMemberCount(n),Number.isInteger(r)&&this.currentState.setInvitedMemberCount(r),Array.isArray(t)&&(this.heroes=t.filter(e=>e.userId!=this.myUserId)),this.emit(I.Summary,e)}setMSC4186SummaryData(e,t,n){e&&(this.heroes=e.filter(e=>e.user_id!==this.myUserId).map(e=>({userId:e.user_id,displayName:e.displayname,avatarUrl:e.avatar_url,fromMSC4186:!0}))),t!==void 0&&Number.isInteger(t)&&this.currentState.setJoinedMemberCount(t),n!==void 0&&Number.isInteger(n)&&this.currentState.setInvitedMemberCount(n),this.emit(I.Summary,{"m.heroes":this.heroes?this.heroes.map(e=>e.userId):[],"m.joined_member_count":t,"m.invited_member_count":n})}setBlacklistUnverifiedDevices(e){this.blacklistUnverifiedDevices=e}getBlacklistUnverifiedDevices(){return this.blacklistUnverifiedDevices===void 0?null:this.blacklistUnverifiedDevices}getAvatarUrl(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!1,o=this.getMxcAvatarUrl();return!o&&!i?null:o?SE(e,o,t,n,r,void 0,void 0,a):null}getMxcAvatarUrl(){var e=this.currentState.getStateEvents(P.RoomAvatar,``)?.getContent().url;return e&&typeof e==`string`?e:null}getCanonicalAlias(){var e=this.currentState.getStateEvents(P.RoomCanonicalAlias,``)?.getContent().alias;return e&&typeof e==`string`?e:null}getAltAliases(){var e=this.currentState.getStateEvents(P.RoomCanonicalAlias,``)?.getContent().alt_aliases;return Array.isArray(e)?e.filter(e=>typeof e==`string`):[]}addEventsToTimeline(e,t,n,r,i){e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),r.getTimelineSet().addEventsToTimeline(e,t,n,r,i)}getThread(e){return this.threads.get(e)??null}getThreads(){return Array.from(this.threads.values())}getMember(e){return this.currentState.getMember(e)}getMembers(){return this.currentState.getMembers()}getJoinedMembers(){return this.getMembersWithMembership(zE.Join)}getJoinedMemberCount(){return this.currentState.getJoinedMemberCount()}getInvitedMemberCount(){return this.currentState.getInvitedMemberCount()}getInvitedAndJoinedMemberCount(){return this.getInvitedMemberCount()+this.getJoinedMemberCount()}getMembersWithMembership(e){return this.currentState.getMembers().filter(function(t){return t.membership===e})}getEncryptionTargetMembers(){var e=this;return f(function*(){yield e.loadMembersIfNeeded();var t=e.getMembersWithMembership(zE.Join);return e.shouldEncryptForInvitedMembers()&&(t=t.concat(e.getMembersWithMembership(zE.Invite))),t})()}shouldEncryptForInvitedMembers(){var e,t=this.currentState.getStateEvents(P.RoomHistoryVisibility,``);return(t==null||(e=t.getContent())==null?void 0:e.history_visibility)!==`joined`}getDefaultRoomName(e){return this.calculateRoomName(e,!0)}hasMembershipState(e,t){var n=this.getMember(e);return n?n.membership===t:!1}getOrCreateFilteredTimelineSet(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.prepopulateTimeline,r=n===void 0?!0:n,i=t.useSyncEvents,a=i===void 0?!0:i,o=t.pendingEvents,s=o===void 0?!0:o;if(this.filteredTimelineSets[e.filterId])return this.filteredTimelineSets[e.filterId];var c=Object.assign({filter:e,pendingEvents:s},this.opts),l=new dD(this,c);this.reEmitter.reEmit(l,[I.Timeline,I.TimelineReset]),a&&(this.filteredTimelineSets[e.filterId]=l,this.timelineSets.push(l));var u=this.getLiveTimeline();if(r){u.getEvents().forEach(function(e){l.addLiveEvent(e,{addToState:!1})});for(var d=u;d.getNeighbouringTimeline(oD.BACKWARDS);)d=d.getNeighbouringTimeline(oD.BACKWARDS);l.getLiveTimeline().setPaginationToken(d.getPaginationToken(oD.BACKWARDS),oD.BACKWARDS)}else if(a){var f=u.getPaginationToken(aD.Forward);l.getLiveTimeline().setPaginationToken(f,aD.Backward)}return l}getThreadListFilter(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:sj.All,r=t.client.getUserId(),i=new vD(r),a={room:{timeline:{[aj.name]:[oj.name]}}};return n===sj.My&&(a.room.timeline[ij.name]=[r]),i.setDefinition(a),i.filterId=yield t.client.getOrCreateFilter(`THREAD_PANEL_${t.roomId}_${n}`,i),i})()}createThreadTimelineSet(e){var t=this;return f(function*(){var n;if(rj.hasServerSideListSupport)n=new dD(t,tO(tO({},t.opts),{},{pendingEvents:!1}),void 0,void 0,e??sj.All),t.reEmitter.reEmit(n,[I.Timeline,I.TimelineReset]);else if(rj.hasServerSideSupport){var r=yield t.getThreadListFilter(e);n=t.getOrCreateFilteredTimelineSet(r,{prepopulateTimeline:!1,useSyncEvents:!1,pendingEvents:!1})}else n=new dD(t,{pendingEvents:!1}),Array.from(t.threads).forEach(r=>{var i=u(r,2)[1];if(i.length!==0){var a=i.timeline.some(e=>e.getSender()===t.client.getUserId());(e!==sj.My||a)&&n.getLiveTimeline().addEvent(i.rootEvent,{toStartOfTimeline:!1,addToState:!1})}});return n})()}processThreadRoots(e,t){if(this.client.supportsThreads())for(var n of e)oD.setEventMetadata(n,this.currentState,t),this.getThread(n.getId())||this.createThread(n.getId(),n,[],t)}fetchRoomThreads(){var e=this;return f(function*(){if(!(e.threadsReady||!e.client.supportsThreads())){if(rj.hasServerSideListSupport)yield Promise.all([e.fetchRoomThreadList(sj.All),e.fetchRoomThreadList(sj.My)]);else{var t=yield e.getThreadListFilter(),n=(yield e.client.createMessagesRequest(e.roomId,``,2**53-1,aD.Backward,t)).chunk;if(!n.length)return;var r=n.map(e.client.getEventMapper()).sort((e,t)=>{var n=e.getServerAggregatedRelation(oj.name),r=t.getServerAggregatedRelation(oj.name);return n.latest_event.origin_server_ts-r.latest_event.origin_server_ts}),i,a=e.getLiveTimeline().getState(oD.FORWARDS);for(var o of r){var s,c={duplicateStrategy:uD.Ignore,fromCache:!1,addToState:!1,roomState:a};(s=e.threadsTimelineSets[0])==null||s.addLiveEvent(o,c);var l=o.getServerAggregatedRelation(oj.name);if(l!=null&&l.current_user_participated){var u;(u=e.threadsTimelineSets[1])==null||u.addLiveEvent(o,c),i=o}}e.processThreadRoots(r,!0),e.client.decryptEventIfNeeded(r[r.length-1]),i&&e.client.decryptEventIfNeeded(i)}e.on(ej.NewReply,e.onThreadReply),e.on(ej.Update,e.onThreadUpdate),e.on(ej.Delete,e.onThreadDelete),e.threadsReady=!0}})()}processPollEvents(e){var t=this;return f(function*(){for(var n of e)try{if(!n.isEncrypted()&&!$te(n))continue;yield t.client.decryptEventIfNeeded(n),t.processPollEvent(n)}catch(e){N.warn(`Error processing poll event`,n.getId(),e)}})()}processPollEvent(e){var t=this;return f(function*(){if(e.isDecryptionFailure()){e.once(uj.Decrypted,e=>{t.processPollEvent(e)});return}if(nD.M_POLL_START.matches(e.getType())){try{var n=new Qte(e,t.client,t);t.polls.set(e.getId(),n),t.emit(AD.New,n),e.once(uj.BeforeRedaction,e=>{t.polls.delete(e.getId())})}catch{}return}var r=e.relationEventId;r&&t.polls.has(r)&&t.polls.get(r)?.onNewRelation(e)})()}fetchRoomThreadList(e){var t=this;return f(function*(){if(t.client.supportsThreads()&&t.threadsTimelineSets.length!==0){var n=e===sj.My?t.threadsTimelineSets[1]:t.threadsTimelineSets[0],r=yield t.client.createThreadListMessagesRequest(t.roomId,null,void 0,aD.Backward,n.threadListType,n.getFilter()),i=r.chunk,a=r.end;if(n.getLiveTimeline().setPaginationToken(a??null,aD.Backward),i.length){var o=i.map(t.client.getEventMapper());t.processThreadRoots(o,!0);var s=t.getLiveTimeline().getState(oD.FORWARDS);for(var c of o)n.addLiveEvent(c,{duplicateStrategy:uD.Replace,fromCache:!1,roomState:s,addToState:!1})}}})()}onThreadUpdate(e){this.updateThreadRootEvents(e,!1,!1)}onThreadReply(e){this.updateThreadRootEvents(e,!1,!0)}onThreadDelete(e){var t;this.threads.delete(e.id);var n=this.getTimelineForEvent(e.id),r=n==null||(t=n.getEvents())==null?void 0:t.find(t=>t.getId()===e.id);r?e.clearEventMetadata(r):N.debug(`onThreadDelete: Could not find root event in room timeline`);for(var i of this.threadsTimelineSets)i.removeEvent(e.id)}removeFilteredTimelineSet(e){var t=this.filteredTimelineSets[e.filterId];delete this.filteredTimelineSets[e.filterId];var n=this.timelineSets.indexOf(t);n>-1&&this.timelineSets.splice(n,1)}eventShouldLiveIn(e,t,n){var r;if(!((r=this.client)!=null&&r.supportsThreads()))return{shouldLiveInRoom:!0,shouldLiveInThread:!1};if(e.isThreadRoot||n!=null&&n.has(e.getId()))return{shouldLiveInRoom:!0,shouldLiveInThread:!0,threadId:e.getId()};var i=e.isRelation(oj.name),a=e.getAssociatedId(),o=e.threadRootId;if(a&&!i&&(o===a||n!=null&&n.has(a)))return{shouldLiveInRoom:!0,shouldLiveInThread:!1};var s;return a&&(s=this.findEventById(a)??t?.find(e=>e.getId()===a)),s&&!i?this.eventShouldLiveIn(s,t,n):o==null?!a||e.replyEventId?{shouldLiveInRoom:!0,shouldLiveInThread:!1}:{shouldLiveInRoom:!1,shouldLiveInThread:!1}:{shouldLiveInRoom:!1,shouldLiveInThread:!0,threadId:o}}findThreadForEvent(e){if(!e)return null;var t=this.eventShouldLiveIn(e).threadId;return t?this.getThread(t):null}addThreadedEvents(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=this.getThread(e);if(r)r.addEvents(t,n);else{var i=this.findEventById(e)??t.find(t=>t.getId()===e);this.createThread(e,i,t,n)}}processThreadedEvents(e,t){e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),e.forEach(this.tryApplyRedaction);var n={};for(var r of e){var i,a=this.eventShouldLiveIn(r),o=a.threadId;a.shouldLiveInThread&&!n[o]&&(n[o]=[]),(i=n[o])==null||i.push(r)}Object.entries(n).map(e=>{var n=u(e,2),r=n[0],i=n[1];return this.addThreadedEvents(r,i,t)})}createThread(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0;if(this.threads.has(e))return this.threads.get(e);if(t){var i=this.relations.getAllChildEventsForEvent(t.getId());i!=null&&i.length&&(n=n.concat(i.filter(e=>!e.isRelation(EE.Replace))))}var a=new rj(e,t,{room:this,client:this.client,pendingEventOrdering:this.opts.pendingEventOrdering,receipts:this.cachedThreadReadReceipts.get(e)??[]});return this.reEmitter.reEmit(a,[ej.Delete,ej.Update,ej.NewReply,I.Timeline,I.TimelineReset]),this.cachedThreadReadReceipts.delete(e),this.threads.set(a.id,a),a.addEvents(n,!1),this.threadsReady&&a.initialEventsFetched&&this.updateThreadRootEvents(a,r,!1),this.emit(ej.New,a,r),a}applyEventAsRedaction(e,t){var n=t.threadRootId;t.makeRedacted(e,this),t.isState()&&this.currentState.getStateEvents(t.getType(),t.getStateKey())?.getId()===t.getId()&&this.currentState.setStateEvents([t]),this.emit(I.Redaction,e,this,n),this.visibilityEvents.delete(t.getId()),t.isVisibilityEvent()&&this.redactVisibilityChangeEvent(e)}processLiveEvent(e){if(this.tryApplyRedaction(e),e.isVisibilityEvent()&&this.applyNewVisibilityEvent(e),this.applyPendingVisibilityEvents(e),!e.getUnsigned().transaction_id&&e.getSender()===this.myUserId)for(var t of this.txnToEvent){var n=u(t,2),r=n[0];if(n[1].getId()===e.getId()){N.debug(`processLiveEvent: found sent event without txn ID: `,r,e.getId());var i=e.getUnsigned();i.transaction_id=r,e.setUnsigned(i);break}}}addLiveEvent(e,t){var n=t.duplicateStrategy,r=t.timelineWasEmpty,i=t.fromCache,a=t.addToState;for(var o of this.timelineSets)o.addLiveEvent(e,{duplicateStrategy:n,fromCache:i,timelineWasEmpty:r,addToState:a});e.sender&&e.getType()!==P.RoomRedaction&&this.addReceipt(Kte(e.sender.userId,e,GT.Read),!0)}addPendingEvent(e,t){if(e.status!==fD.SENDING&&e.status!==fD.NOT_SENT)throw Error(`addPendingEvent called on an event with status `+e.status);if(this.txnToEvent.get(t))throw Error(`addPendingEvent called on an event with known txnId `+t);if(oD.setEventMetadata(e,this.getLiveTimeline().getState(oD.FORWARDS),!1),this.txnToEvent.set(t,e),this.pendingEventList){if(this.pendingEventList.some(e=>e.status===fD.NOT_SENT)&&(N.warn(`Setting event as NOT_SENT due to messages in the same state`),e.setStatus(fD.NOT_SENT)),this.pendingEventList.push(e),this.savePendingEvents(),e.isRelation()&&this.aggregateNonLiveRelation(e),e.isRedaction()){var n=e.event.redacts,r=this.pendingEventList.find(e=>e.getId()===n);!r&&n&&(r=this.findEventById(n)),r&&(r.markLocallyRedacted(e),this.emit(I.Redaction,e,this,r.threadRootId))}}else for(var i of this.timelineSets)i.getFilter()?i.getFilter().filterRoomTimeline([e]).length&&i.addEventToTimeline(e,i.getLiveTimeline(),{toStartOfTimeline:!1,addToState:!1}):i.addEventToTimeline(e,i.getLiveTimeline(),{toStartOfTimeline:!1,addToState:!1});this.emit(I.LocalEchoUpdated,e,this)}savePendingEvents(){if(this.pendingEventList){var e=this.pendingEventList.map(e=>tO(tO({},e.event),{},{txn_id:e.getTxnId()})).filter(e=>{var t=e.type===P.RoomMessageEncrypted,n=this.hasEncryptionStateEvent();return t||!n});this.client.store.setPendingEvents(this.roomId,e)}}aggregateNonLiveRelation(e){this.relations.aggregateChildEvent(e)}getEventForTxnId(e){return this.txnToEvent.get(e)}handleRemoteEcho(e,t){var n=t.getId(),r=e.getId(),i=t.status;N.debug(`Got remote echo for event ${n} -> ${r} old status ${i}`),this.txnToEvent.delete(e.getUnsigned().transaction_id),this.pendingEventList&&this.removePendingEvent(n),t.handleRemoteEcho(e.event);var a=this.eventShouldLiveIn(e),o=a.shouldLiveInRoom,s=a.threadId,c=s?this.getThread(s):null;if(c?.setEventMetadata(t),c?.timelineSet.handleRemoteEcho(t,n,r),o)for(var l of this.timelineSets)l.handleRemoteEcho(t,n,r);this.emit(I.LocalEchoUpdated,t,this,n,i)}updatePendingEvent(e,t,n){if(N.log(`setting pendingEvent status to ${t} in ${e.getRoomId()} event ID ${e.getId()} -> ${n}`),t==fD.SENT&&!n)throw Error(`updatePendingEvent called with status=SENT, but no new event id`);if(t==fD.SENT&&this.getTimelineForEvent(n)){var r=this.findEventById(n);if(!r?.getUnsigned().transaction_id&&r){var i=r.getUnsigned();i.transaction_id=e.getTxnId(),r.setUnsigned(i),this.removeEvent(r.getId()),this.handleRemoteEcho(r,e)}return}var a=e.status,o=e.getId();if(!a)throw Error(`updatePendingEventStatus called on an event which is not a local echo.`);var s=Gne[a];if(!(s!=null&&s.includes(t)))throw Error(`Invalid EventStatus transition ${a}->${t}`);if(e.setStatus(t),t==fD.SENT){e.replaceLocalEventId(n);var c=this.eventShouldLiveIn(e),l=c.shouldLiveInRoom,u=c.threadId,d=u?this.getThread(u):void 0;if(d?.setEventMetadata(e),d?.timelineSet.replaceEventId(o,n),l)for(var f of this.timelineSets)f.replaceEventId(o,n)}else if(t==fD.CANCELLED){if(this.pendingEventList){var p=this.getPendingEvent(o);this.removePendingEvent(o),p!=null&&p.isRedaction()&&this.revertRedactionLocalEcho(p)}this.removeEvent(o)}this.savePendingEvents(),this.emit(I.LocalEchoUpdated,e,this,o,a)}revertRedactionLocalEcho(e){var t=e.event.redacts;if(t){var n=this.getUnfilteredTimelineSet().findEventById(t);n&&(n.unmarkLocallyRedacted(),this.emit(I.RedactionCancelled,e,this),n.isRelation()&&this.aggregateNonLiveRelation(n))}}assertTimelineSetsAreLive(){for(var e=0;en.retention?.shouldEventBeRetained(e)??!0),n.assertTimelineSetsAreLive();var c=n.findThreadRoots(e),l={},d={duplicateStrategy:r,fromCache:i,timelineWasEmpty:o,addToState:s},f=[...e];for(var p of e){var m;if(n.processLiveEvent(p),p.getUnsigned().transaction_id){var h=n.txnToEvent.get(p.getUnsigned().transaction_id);if(h){n.handleRemoteEcho(p,h);continue}}var g=n.eventShouldLiveIn(p,f,c),_=g.shouldLiveInRoom,v=g.shouldLiveInThread,y=g.threadId,b=y===void 0?``:y;if(!v&&!_&&p.isRelation())try{var x=new dj(yield n.client.fetchRoomEvent(n.roomId,p.relationEventId));if(f.push(x),x.threadRootId){c.add(x.threadRootId);var S=p.getUnsigned();S[RE.name]=x.threadRootId,p.setUnsigned(S)}var C=n.eventShouldLiveIn(p,f,c);_=C.shouldLiveInRoom,v=C.shouldLiveInThread;var w=C.threadId;b=w===void 0?``:w}catch(e){N.error(`Failed to load parent event of unhandled relation`,e)}v&&!l[b]&&(l[b]=[]),(m=l[b])==null||m.push(p),_?n.addLiveEvent(p,d):!v&&p.isRelation()&&n.relations.aggregateChildEvent(p)}Object.entries(l).forEach(e=>{var t=u(e,2),r=t[0],i=t[1];n.addThreadedEvents(r,i,!1)})})()}partitionThreadedEvents(e){var t=0,n=1,r=2;if(this.client.supportsThreads()){var i=this.findThreadRoots(e);return e.reduce((a,o)=>{var s=this.eventShouldLiveIn(o,e,i),c=s.shouldLiveInRoom,l=s.shouldLiveInThread,u=s.threadId;return c&&a[t].push(o),l&&(o.setThreadId(u??``),a[n].push(o)),!l&&!c&&a[r].push(o),a},[[],[],[]])}else return[e,[],[]]}findThreadRoots(e){var t=new Set;for(var n of e){var r=n.threadRootId;r!=null&&t.add(r)}return t}addReceipt(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=e.getContent();this.roomReceipts.add(n,t),Object.keys(n).forEach(e=>{Object.keys(n[e]).forEach(r=>{Object.keys(n[e][r]).forEach(i=>{var a=n[e][r][i],o=!a.thread_id||a.thread_id===`main`,s=o?this:this.threads.get(a.thread_id??``);if(s){if(s.addReceiptToStructure(e,r,i,a,t),!t&&this.client.isInitialSyncComplete()&&i===this.client.getUserId()){var c=s.timeline[s.timeline.length-1];c&&e===c.getId()&&i===c.getSender()&&(s.setUnread(nO.Total,0),s.setUnread(nO.Highlight,0))}}else this.cachedThreadReadReceipts.set(a.thread_id,[...this.cachedThreadReadReceipts.get(a.thread_id)??[],{eventId:e,receiptType:r,userId:i,receipt:a,synthetic:t}]);i===this.client.getUserId()&&!o&&a.ts(this.unthreadedReceipts.get(i)?.ts??0)&&this.unthreadedReceipts.set(i,a)})})}),this.emit(I.Receipt,e,this)}addEphemeralEvents(e){for(var t of e)t.getType()===P.Typing?this.currentState.setTypingEvent(t):t.getType()===P.Receipt&&this.addReceipt(t)}removeEvents(e){for(var t of e)this.removeEvent(t)}removeEvent(e){var t=!1;for(var n of this.timelineSets){var r=n.removeEvent(e);r&&(r.isRedaction()&&this.revertRedactionLocalEcho(r),t=!0)}return t}recalculate(){var e=this.currentState.getStateEvents(P.RoomMember,this.myUserId);if(e){var t=e.getContent().membership;this.updateMyMembership(t),t===zE.Invite&&(e.getUnsigned().invite_room_state||[]).forEach(e=>{this.currentState.getStateEvents(e.type,e.state_key)||this.currentState.setStateEvents([new dj({type:e.type,state_key:e.state_key,content:e.content,event_id:`$fake`+Date.now(),room_id:this.roomId,sender:this.myUserId})])})}var n=this.name;this.name=this.calculateRoomName(this.myUserId),this.normalizedName=yee(this.name),this.summary=new _te(this.roomId,{title:this.name}),n!==this.name&&this.emit(I.Name,this)}addTags(e){this.tags=e.getContent().tags||{},this.emit(I.Tags,e,this)}addAccountData(e){for(var t of e){t.getType()===`m.tag`&&this.addTags(t);var n=t.getType(),r=this.accountData.get(n);this.accountData.set(n,t),this.emit(I.AccountData,t,this,r)}}getAccountData(e){return this.accountData.get(e)}_unstable_getStickyEvents(){return this.stickyEvents.getStickyEvents()}_unstable_getKeyedStickyEvent(e,t,n){return this.stickyEvents.getKeyedStickyEvent(e,t,n)}_unstable_getUnkeyedStickyEvent(e,t){return this.stickyEvents.getUnkeyedStickyEvent(e,t)}_unstable_addStickyEvents(e){return e=e.filter(e=>this.retention?.shouldEventBeRetained(e)??!0),this.stickyEvents.addStickyEvents(e)}maySendMessage(){return this.getMyMembership()===zE.Join&&(this.hasEncryptionStateEvent()?this.currentState.maySendEvent(P.RoomMessageEncrypted,this.myUserId):this.currentState.maySendEvent(P.RoomMessage,this.myUserId))}canInvite(e){var t=this.getMyMembership()===zE.Join,n=this.currentState.getStateEvents(P.RoomPowerLevels,``),r=n&&n.getContent(),i=this.getMember(e);return r&&i&&r.invite>i.powerLevel&&(t=!1),t}getJoinRule(){return this.currentState.getJoinRule()}getHistoryVisibility(){return this.currentState.getHistoryVisibility()}getGuestAccess(){return this.currentState.getGuestAccess()}getType(){var e=this.currentState.getStateEvents(P.RoomCreate,``);if(!e){this.getTypeWarning||=(N.warn(`[getType] Room `+this.roomId+` does not have an m.room.create event`),!0);return}return e.getContent()[OE]}isSpaceRoom(){return this.getType()===kE.Space}isCallRoom(){return this.getType()===kE.UnstableCall}isElementVideoRoom(){return this.getType()===kE.ElementVideo}findPredecessor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.getLiveTimeline().getState(oD.FORWARDS);return t?t.findPredecessor(e):null}roomNameGenerator(e){if(this.client.roomNameGenerator){var t=this.client.roomNameGenerator(this.roomId,e);if(t!==null)return t}switch(e.type){case iO.Actual:return e.name;case iO.Generated:switch(e.subtype){case`Inviting`:return`Inviting ${Kne(e.names,e.count)}`;default:return Kne(e.names,e.count)}case iO.EmptyRoom:return e.oldName?`Empty room (was ${e.oldName})`:`Empty room`}}calculateRoomName(e){if(!(arguments.length>1&&arguments[1]!==void 0&&arguments[1])){var t=this.currentState.getStateEvents(P.RoomName,``)?.getContent().name;if(t&&typeof t==`string`)return this.roomNameGenerator({type:iO.Actual,name:t})}var n=this.getCanonicalAlias();if(n)return this.roomNameGenerator({type:iO.Actual,name:n});var r=this.currentState.getJoinedMemberCount()+this.currentState.getInvitedMemberCount()-1,i=this.getFunctionalMembers(),a=[];if(this.heroes)this.heroes.forEach(e=>{if(i.includes(e.userId)){r--;return}if(e.displayName)a.push(e.displayName);else{var t=this.getMember(e.userId);a.push(t?t.name:e.userId)}});else{var o=this.currentState.getMembers().filter(t=>t.userId!==e&&(t.membership===zE.Invite||t.membership===zE.Join));o=o.filter(e=>{var t=e.userId;return i.includes(t)?(r--,!1):!0});var s=new Intl.Collator;o.sort((e,t)=>s.compare(e.userId,t.userId)),o=o.slice(0,5),a=o.map(e=>e.name)}if(r)return this.roomNameGenerator({type:iO.Generated,names:a,count:r});if(this.getMyMembership()==zE.Join){var c=this.currentState.getStateEvents(P.RoomThirdPartyInvite);if(c!=null&&c.length){var l=c.map(e=>e.getContent().display_name);return this.roomNameGenerator({type:iO.Generated,subtype:`Inviting`,names:l,count:l.length+1})}}var u=a;u.length||(u=this.currentState.getMembers().filter(t=>t.userId!==e&&t.membership!==zE.Invite&&t.membership!==zE.Join).map(e=>e.name));var d;return u.length&&(d=this.roomNameGenerator({type:iO.Generated,names:u,count:u.length+1})),this.roomNameGenerator({type:iO.EmptyRoom,oldName:d})}applyNewVisibilityEvent(e){var t=e.asVisibilityChange();if(t){var n=e.getSender();if(n&&(IE.name&&this.currentState.maySendStateEvent(IE.name,n)||IE.altName&&this.currentState.maySendStateEvent(IE.altName,n))){var r=this.visibilityEvents.get(t.eventId);if(r){for(var i=r.length-1,a=Math.max(0,r.length-Wne);i>=a&&!(r[i].getTs()t.getId()===e.getId());if(r!==-1&&(n.splice(r,1),r===n.length)){var i=this.findEventById(t);if(!i)return;if(r===0)this.visibilityEvents.delete(t),i.applyVisibilityEvent();else{var a=n[n.length-1].asVisibilityChange();if(!a)throw Error(`at this stage, visibility changes should be well-formed`);i.applyVisibilityEvent(a)}}}}applyPendingVisibilityEvents(e){var t=this.visibilityEvents.get(e.getId());if(!(!t||t.length==0)){var n=t[t.length-1],r=n.asVisibilityChange();r&&(r.visible,!(n.getTs()this.getThreadUnreadNotificationCount(e.id,nO.Total)>0))t.fixupNotifications(e)}compareEventOrdering(e,t){return cne(this,e,t)}hasEncryptionStateEvent(){return!!this.getLiveTimeline().getState(oD.FORWARDS)?.getStateEvents(P.RoomEncryption,``)}},Gne={[fD.ENCRYPTING]:[fD.SENDING,fD.NOT_SENT,fD.CANCELLED],[fD.SENDING]:[fD.ENCRYPTING,fD.QUEUED,fD.NOT_SENT,fD.SENT],[fD.QUEUED]:[fD.SENDING,fD.NOT_SENT,fD.CANCELLED],[fD.SENT]:[],[fD.NOT_SENT]:[fD.SENDING,fD.QUEUED,fD.CANCELLED],[fD.CANCELLED]:[]},iO=function(e){return e[e.EmptyRoom=0]=`EmptyRoom`,e[e.Generated=1]=`Generated`,e[e.Actual=2]=`Actual`,e}({});function Kne(e,t){var n=t-1;return e.length?e.length===1&&n<=1?e[0]:e.length===2&&n<=2?`${e[0]} and ${e[1]}`:n>1?`${e[0]} and ${n} others`:`${e[0]} and 1 other`:`Empty room`}var aO=function(e){return e[e.Stable=0]=`Stable`,e[e.Unstable=1]=`Unstable`,e[e.Unsupported=2]=`Unsupported`,e}({}),oO=function(e){return e.Thread=`Thread`,e.ThreadUnreadNotifications=`ThreadUnreadNotifications`,e.LoginTokenRequest=`LoginTokenRequest`,e.RelationBasedRedactions=`RelationBasedRedactions`,e.AccountDataDeletion=`AccountDataDeletion`,e.RelationsRecursion=`RelationsRecursion`,e.IntentionalMentions=`IntentionalMentions`,e}({}),qne={[oO.Thread]:{unstablePrefixes:[`org.matrix.msc3440`],matrixVersion:`v1.3`},[oO.ThreadUnreadNotifications]:{unstablePrefixes:[`org.matrix.msc3771`,`org.matrix.msc3773`],matrixVersion:`v1.4`},[oO.LoginTokenRequest]:{unstablePrefixes:[`org.matrix.msc3882`]},[oO.RelationBasedRedactions]:{unstablePrefixes:[`org.matrix.msc3912`]},[oO.AccountDataDeletion]:{unstablePrefixes:[`org.matrix.msc3391`]},[oO.RelationsRecursion]:{unstablePrefixes:[`org.matrix.msc3981`],matrixVersion:`v1.10`},[oO.IntentionalMentions]:{unstablePrefixes:[`org.matrix.msc3952_intentional_mentions`],matrixVersion:`v1.7`}};function Jne(e){return sO.apply(this,arguments)}function sO(){return sO=f(function*(e){var t=new Map;for(var n of Object.entries(qne)){var r=u(n,2),i=r[0],a=r[1],o=e.versions?.includes(a.matrixVersion||``)??!1,s=a.unstablePrefixes?.every(t=>e.unstable_features?.[t]===!0)??!1;o?t.set(i,aO.Stable):s?t.set(i,aO.Unstable):t.set(i,aO.Unsupported)}return t}),sO.apply(this,arguments)}function Yne(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function cO(e){for(var t=1;t!1},e)}var mO=class{constructor(e,t,n){var r=this;this.client=e,g(this,`opts`,void 0),g(this,`syncOpts`,void 0),g(this,`_peekRoom`,null),g(this,`currentSyncRequest`,void 0),g(this,`abortController`,void 0),g(this,`syncState`,null),g(this,`syncStateData`,void 0),g(this,`catchingUp`,!1),g(this,`running`,!1),g(this,`keepAliveTimer`,void 0),g(this,`connectionReturnedResolvers`,void 0),g(this,`notifEvents`,[]),g(this,`failedSyncCount`,0),g(this,`storeIsInvalid`,!1),g(this,`presence`,void 0),g(this,`getPushRules`,f(function*(){try{r.syncOpts.logger.debug(`Getting push rules...`);var e=yield r.client.getPushRules();r.syncOpts.logger.debug(`Got push rules`),r.client.pushRules=e}catch(e){return r.syncOpts.logger.error(`Getting push rules failed`,e),r.shouldAbortSync(e)?void 0:(r.syncOpts.logger.debug(`Waiting for saved sync before retrying push rules...`),yield r.recoverFromSyncStartupError(r.savedSyncPromise,e),r.getPushRules())}})),g(this,`buildDefaultFilter`,()=>{var e=new vD(this.client.credentials.userId);return this.client.canSupport.get(oO.ThreadUnreadNotifications)!==aO.Unsupported&&e.setUnreadThreadNotifications(!0),e}),g(this,`prepareSyncFilterLazyLoading`,()=>{this.syncOpts.logger.debug(`Prepare lazy loading for sync...`),this.client.isGuest()&&(this.opts.lazyLoadMembers=!1),this.opts.lazyLoadMembers&&(this.syncOpts.logger.debug(`Enabling lazy load on sync filter...`),this.opts.filter||(this.opts.filter=this.buildDefaultFilter()),this.opts.filter.setLazyLoadMembers(!0))}),g(this,`prepareSyncFilterUserProfiles`,f(function*(){var e;(e=r.opts.unstableMSC4429SyncUserProfileFields)!=null&&e.length&&(r.syncOpts.logger.debug(`Enabling EXPERIMENTAL user profiles on sync filter...`),r.opts.filter||(r.opts.filter=r.buildDefaultFilter()),r.opts.filter.setUnstableMSC4429SyncUserProfiles(r.opts.unstableMSC4429SyncUserProfileFields,yield r.client.doesServerSupportUnstableFeature(`org.matrix.msc4429.stable`)))})),g(this,`storeClientOptions`,f(function*(){try{r.syncOpts.logger.debug(`Storing client options...`),yield r.client.storeClientOptions(),r.syncOpts.logger.debug(`Stored client options`)}catch(e){throw r.syncOpts.logger.error(`Storing client options failed`,e),e}})),g(this,`getFilter`,f(function*(){r.syncOpts.logger.debug(`Getting filter...`);var e=r.opts.filter?r.opts.filter:r.buildDefaultFilter(),t;try{t=yield r.client.getOrCreateFilter(uO(r.client.credentials.userId),e)}catch(e){return r.syncOpts.logger.error(`Getting filter failed`,e),r.shouldAbortSync(e)?{}:(r.syncOpts.logger.debug(`Waiting for saved sync before retrying filter...`),yield r.recoverFromSyncStartupError(r.savedSyncPromise,e),r.getFilter())}return{filter:e,filterId:t}})),g(this,`savedSyncPromise`,void 0),g(this,`onOnline`,()=>{this.syncOpts.logger.debug(`Browser thinks we are back online`),this.startKeepAlives(0)}),this.opts=fO(t),this.syncOpts=pO(n),e.getNotifTimelineSet()&&e.reEmitter.reEmit(e.getNotifTimelineSet(),[I.Timeline,I.TimelineReset])}createRoom(e){var t=hO(this.client,e,this.opts);return t.on(pj.Marker,(e,n)=>{this.onMarkerStateEvent(t,e,n)}),t}onMarkerStateEvent(e,t){if((arguments.length>2&&arguments[2]!==void 0?arguments[2]:{}).timelineWasEmpty){this.syncOpts.logger.debug(`MarkerState: Ignoring markerEventId=${t.getId()} in roomId=${e.roomId} because the timeline was empty before the marker arrived which means there is nothing to refresh.`);return}Qne.includes(e.getVersion())||t.getSender()===e.getCreator()?(this.syncOpts.logger.debug(`MarkerState: Timeline needs to be refreshed because a new markerEventId=${t.getId()} was sent in roomId=${e.roomId}`),e.setTimelineNeedsRefresh(!0),e.emit(I.HistoryImportedWithinTimeline,t,e)):this.syncOpts.logger.debug(`MarkerState: Ignoring markerEventId=${t.getId()} in roomId=${e.roomId} because MSC2716 is not supported in the room version or for any room version, the marker wasn't sent by the room creator.`)}syncLeftRooms(){var e=this;return f(function*(){var t,n=e.client,r=new vD(e.client.credentials.userId);r.setTimelineLimit(1),r.setIncludeLeaveRooms(!0);var i=e.opts.pollTimeout+Xne,a={timeout:0,filter:yield n.getOrCreateFilter(uO(n.credentials.userId,`LEFT_ROOMS`),r),"org.matrix.msc4222.use_state_after":!0},o=yield n.http.authedRequest(F.Get,`/sync`,a,void 0,{localTimeoutMs:i}),s=[];return(t=o.rooms)!=null&&t.leave&&(s=e.mapSyncResponseToRoomArray(o.rooms.leave)),(yield Promise.all(s.map(function(){var t=f(function*(t){var r=t.room;if(t.isBrandNewRoom){t.timeline=t.timeline||{prev_batch:null,events:[]},r.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,oD.BACKWARDS);var i=(yield e.mapAndInjectRoomEvents(t)).timelineEvents;return r.recalculate(),n.store.storeRoom(r),n.emit(L.Room,r),e.processEventsForNotifs(r,i),r}});return function(e){return t.apply(this,arguments)}}()))).filter(Boolean)})()}peek(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20;if(this._peekRoom?.roomId===e)return Promise.resolve(this._peekRoom);var n=this.client;return this._peekRoom=this.createRoom(e),this.client.roomInitialSync(e,t).then(t=>{if(this._peekRoom?.roomId!==e)throw Error(`Peeking aborted`);t.messages=t.messages||{chunk:[]},t.messages.chunk=t.messages.chunk||[],t.state=t.state||[];var r=XT(t.state).map(n.getEventMapper()),i=t.state.map(n.getEventMapper()),a=t.messages.chunk.map(n.getEventMapper());return Array.isArray(t.presence)&&t.presence.map(n.getEventMapper()).forEach(function(e){var t=n.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=iD.createUser(e.getContent().user_id,n),t.setPresenceEvent(e),n.store.storeUser(t)),n.emit(L.Event,e)}),t.messages.start&&(this._peekRoom.oldState.paginationToken=t.messages.start),this._peekRoom.oldState.setStateEvents(r),this._peekRoom.currentState.setStateEvents(i),this.resolveInvites(this._peekRoom),this._peekRoom.recalculate(),this._peekRoom.addEventsToTimeline(a.reverse(),!0,!0,this._peekRoom.getLiveTimeline(),t.messages.start),n.store.storeRoom(this._peekRoom),n.emit(L.Room,this._peekRoom),this.peekPoll(this._peekRoom),this._peekRoom})}stopPeeking(){this._peekRoom=null}peekPoll(e,t){var n=this;if(this._peekRoom!==e){this.syncOpts.logger.debug(`Stopped peeking in room %s`,e.roomId);return}this.client.http.authedRequest(F.Get,`/events`,{room_id:e.roomId,timeout:`30000`,from:t},void 0,{localTimeoutMs:50*1e3,abortSignal:this.abortController?.signal}).then(function(){var t=f(function*(t){if(n._peekRoom!==e){n.syncOpts.logger.debug(`Stopped peeking in room %s`,e.roomId);return}t.chunk.filter(function(e){return e.type===`m.presence`}).map(n.client.getEventMapper()).forEach(e=>{var t=n.client.store.getUser(e.getContent().user_id);t?t.setPresenceEvent(e):(t=iD.createUser(e.getContent().user_id,n.client),t.setPresenceEvent(e),n.client.store.storeUser(t)),n.client.emit(L.Event,e)});var r=t.chunk.filter(function(t){return t.room_id===e.roomId&&t.event_id}).map(n.client.getEventMapper());yield e.addLiveEvents(r,{addToState:!0}),n.peekPoll(e,t.end)});return function(e){return t.apply(this,arguments)}}(),n=>{this.syncOpts.logger.error(`[%s] Peek poll failed: %s`,e.roomId,n),setTimeout(()=>{this.peekPoll(e,t)},30*1e3)})}getSyncState(){return this.syncState}getSyncStateData(){return this.syncStateData??null}recoverFromSyncStartupError(e,t){var n=this;return f(function*(){yield e;var r=n.startKeepAlives();n.updateSyncState(lO.Error,{error:t}),yield r})()}shouldAbortSync(e){return e.errcode===`M_UNKNOWN_TOKEN`?(this.syncOpts.logger.warn(`Token no longer valid - assuming logout`),this.stop(),this.updateSyncState(lO.Error,{error:e}),!0):!1}sync(){var e=this;return f(function*(){var t,n;if(e.running=!0,e.abortController=new AbortController,(t=globalThis.window)==null||(n=t.addEventListener)==null||n.call(t,`online`,e.onOnline,!1),e.client.isGuest())return e.doSync({});e.syncOpts.logger.debug(`Getting saved sync token...`);var r=e.client.store.getSavedSyncToken().then(t=>(e.syncOpts.logger.debug(`Got saved sync token`),t));e.savedSyncPromise=e.client.store.getSavedSync().then(t=>{if(e.syncOpts.logger.debug(`Got reply from saved sync, exists? ${!!t}`),t)return e.syncFromCache(t)}).catch(t=>{e.syncOpts.logger.error(`Getting saved sync failed`,t)}),yield e.getPushRules(),e.prepareSyncFilterLazyLoading(),yield e.prepareSyncFilterUserProfiles(),yield e.storeClientOptions();var i=yield e.getFilter(),a=i.filterId,o=i.filter;if(o){if(e.client.resetNotifTimelineSet(),!e.currentSyncRequest){var s=a,c=yield r;if(c)e.syncOpts.logger.debug(`Sending first sync request...`);else{e.syncOpts.logger.debug(`Sending initial sync request...`);var l=e.buildDefaultFilter();l.setDefinition(o.getDefinition()),l.setTimelineLimit(e.opts.initialSyncLimit),s=JSON.stringify(l.getDefinition())}e.currentSyncRequest=e.doSyncRequest({filter:s},c)}return e.syncOpts.logger.debug(`Waiting for saved sync before starting sync processing...`),yield e.savedSyncPromise,e.doSync({filter:a})}})()}stop(){var e,t,n;this.syncOpts.logger.debug(`SyncApi.stop`),(e=globalThis.window)==null||(t=e.removeEventListener)==null||t.call(e,`online`,this.onOnline,!1),this.running=!1,(n=this.abortController)==null||n.abort(),this.keepAliveTimer&&=(clearTimeout(this.keepAliveTimer),void 0)}retryImmediately(){return this.connectionReturnedResolvers?(this.startKeepAlives(0),!0):!1}syncFromCache(e){var t=this;return f(function*(){t.syncOpts.logger.debug(`sync(): not doing HTTP hit, instead returning stored /sync data`);var n=e.nextBatch;t.client.store.setSyncToken(n);var r={nextSyncToken:n,catchingUp:!1,fromCache:!0},i={next_batch:n,rooms:e.roomsData,account_data:{events:e.accountData}};try{yield t.processSyncResponse(r,i)}catch(e){t.syncOpts.logger.error(`Error processing cached sync`,e)}t.storeIsInvalid||t.updateSyncState(lO.Prepared,r)})()}doSync(e){var t=this;return f(function*(){for(;t.running;){var n=t.client.store.getSyncToken(),r=void 0;try{t.currentSyncRequest||=t.doSyncRequest(e,n),r=yield t.currentSyncRequest}catch(e){if(yield t.onSyncError(e))return;continue}finally{t.currentSyncRequest=void 0}t.client.store.setSyncToken(r.next_batch),t.failedSyncCount=0;var i={oldSyncToken:n??void 0,nextSyncToken:r.next_batch,catchingUp:t.catchingUp};try{yield t.processSyncResponse(i,r)}catch(e){t.syncOpts.logger.error(`Caught /sync error`,e),t.client.emit(L.SyncUnexpectedError,e)}yield t.client.store.setSyncData(r),i.catchingUp=t.catchingUp,e.hasSyncedBefore||=(t.updateSyncState(lO.Prepared,i),!0),t.syncOpts.cryptoCallbacks&&(yield t.syncOpts.cryptoCallbacks.onSyncCompleted(i)),t.updateSyncState(lO.Syncing,i),t.client.store.wantsSave()&&(yield t.client.store.save())}t.running||(t.syncOpts.logger.debug(`Sync no longer running: exiting.`),t.connectionReturnedResolvers&&=(t.connectionReturnedResolvers.reject(),void 0),t.updateSyncState(lO.Stopped))})()}doSyncRequest(e,t){var n=this.getSyncParams(e,t);return this.client.http.authedRequest(F.Get,`/sync`,n,void 0,{localTimeoutMs:n.timeout+Xne,abortSignal:this.abortController?.signal})}getSyncParams(e,t){var n=this.opts.pollTimeout;(this.getSyncState()!==lO.Syncing||this.catchingUp)&&(this.catchingUp=!0,n=0);var r=e.filter;this.client.isGuest()&&!r&&(r=this.getGuestFilter());var i={filter:r,timeout:n,"org.matrix.msc4222.use_state_after":!0};return this.opts.disablePresence?i.set_presence=dO.Offline:this.presence!==void 0&&(i.set_presence=this.presence),t?i.since=t:i._cacheBuster=Date.now(),[lO.Reconnecting,lO.Error].includes(this.getSyncState())&&(i.timeout=0),i}setPresence(e){this.presence=e}onSyncError(e){var t=this;return f(function*(){if(!t.running)return t.syncOpts.logger.debug(`Sync no longer running: exiting`),t.connectionReturnedResolvers&&=(t.connectionReturnedResolvers.reject(),void 0),t.updateSyncState(lO.Stopped),!0;if(t.syncOpts.logger.error(`/sync error %s`,e),t.shouldAbortSync(e))return!0;t.failedSyncCount++,t.syncOpts.logger.debug(`Number of consecutive failed sync requests:`,t.failedSyncCount),t.syncOpts.logger.debug(`Starting keep-alive`);var n=t.startKeepAlives();return t.currentSyncRequest=void 0,t.updateSyncState(t.failedSyncCount>=Zne?lO.Error:lO.Reconnecting,{error:e}),(yield n)&&t.getSyncState()===lO.Error&&t.updateSyncState(lO.Catchup,{catchingUp:!0}),!1})()}processSyncResponse(e,t){var n=this;return f(function*(){var r=n.client;if(Array.isArray(t.presence?.events)&&t.presence.events.filter(hE).map(r.getEventMapper()).forEach(function(e){var t=r.store.getUser(e.getSender());t?t.setPresenceEvent(e):(t=iD.createUser(e.getSender(),r),t.setPresenceEvent(e),r.store.storeUser(t)),r.emit(L.Event,e)}),Array.isArray(t.account_data?.events)){var i=t.account_data.events.filter(hE).map(r.getEventMapper()),a=i.reduce((e,t)=>(e[t.getType()]=r.store.getAccountData(t.getType()),e),{});r.store.storeAccountDataEvents(i),i.forEach(function(e){if(e.getType()===P.PushRules){var t=e.getContent();r.setPushRules(t)}var n=a[e.getType()];return r.emit(L.AccountData,e,n),e})}var o=t.users??t[`org.matrix.msc4429.users`];if(typeof o==`object`&&o){var s=[],c=new Map;for(var l of Object.entries(o)){var d=u(l,2),p=d[0],m=d[1];if(N.info(`Storing user profile ${p}`,m),m.profile_updates){var h=yield r.store.getUserProfile(p);c.set(p,cO(cO({},h),m.profile_updates))}else m.profile_updates===null&&s.push(p)}s.length&&(yield r.store.removeUserProfiles(s)),c.size&&(yield r.store.storeUserProfiles(c));for(var g of Object.entries(o)){var _=u(g,2),v=_[0],y=_[1];r.emit(L.UserProfileUpdate,v,y.profile_updates??null)}}if(t.to_device&&Array.isArray(t.to_device.events)&&t.to_device.events.length>0){var b=t.to_device.events.filter(hE);gO(n.syncOpts.cryptoCallbacks?yield n.syncOpts.cryptoCallbacks.preprocessToDeviceMessages(b):b.map(e=>({message:e,encryptionInfo:null})),r)}else n.catchingUp=!1;var x=[],S=[],C=[],w=[];t.rooms&&(t.rooms.invite&&(x=n.mapSyncResponseToRoomArray(t.rooms.invite)),t.rooms.join&&(S=n.mapSyncResponseToRoomArray(t.rooms.join)),t.rooms.leave&&(C=n.mapSyncResponseToRoomArray(t.rooms.leave)),t.rooms.knock&&(w=n.mapSyncResponseToRoomArray(t.rooms.knock))),n.notifEvents=[],yield Promise.all(x.map(function(){var e=f(function*(e){var t=e.room,i=n.mapSyncEventsFormat(e.invite_state,t);yield n.injectRoomEvents(t,i,void 0),e.isBrandNewRoom?(t.recalculate(),r.store.storeRoom(t),r.emit(L.Room,t)):t.recalculate(),i.forEach(function(e){r.emit(L.Event,e)})});return function(t){return e.apply(this,arguments)}}())),yield Promise.all(S.map(function(){var t=f(function*(t){var i=t.room,a=n.mapSyncEventsFormat(t.state,i),o=n.mapSyncEventsFormat(t[`org.matrix.msc4222.state_after`],i),s=n.mapSyncEventsFormat(t.timeline,i,!1),c=n.mapSyncEventsFormat(t.ephemeral),l=n.mapSyncEventsFormat(t.account_data),d=n.mapSyncEventsFormat(t.msc4354_sticky),f=t[`org.matrix.msc4222.state_after`]?o:a.concat(s),p=n.isRoomEncrypted(i,f);t.unread_notifications&&((!p||t.unread_notifications.notification_count===0)&&i.setUnreadNotificationCount(nO.Total,t.unread_notifications.notification_count??0),(!p||i.getUnreadNotificationCount(nO.Highlight)<=0)&&i.setUnreadNotificationCount(nO.Highlight,t.unread_notifications.highlight_count??0));var m=t[mD.name]??t[mD.altName];if(m){i.resetThreadUnreadNotificationCountFromSync(Object.keys(m));for(var h of Object.entries(m)){var g=u(h,2),_=g[0],v=g[1];(!p||v.notification_count===0)&&i.setThreadUnreadNotificationCount(_,nO.Total,v.notification_count??0);var y=i.getThreadUnreadNotificationCount(_,nO.Highlight)<=0;(!p||p&&y)&&i.setThreadUnreadNotificationCount(_,nO.Highlight,v.highlight_count??0)}}else i.resetThreadUnreadNotificationCountFromSync();if(t.timeline=t.timeline||{},t.isBrandNewRoom)t.timeline.prev_batch!==null&&i.getLiveTimeline().setPaginationToken(t.timeline.prev_batch,oD.BACKWARDS);else if(t.timeline.limited){for(var b=!0,x=s.length-1;x>=0;x--){var S=s[x].getId();if(i.getTimelineForEvent(S)){n.syncOpts.logger.debug(`Already have event ${S} in limited sync - not resetting`),b=!1,s.splice(0,x);break}}b&&(i.resetLiveTimeline(t.timeline.prev_batch,n.syncOpts.canResetEntireTimeline(i.roomId)?null:e.oldSyncToken??null),r.resetNotifTimelineSet())}if(n.syncOpts.cryptoCallbacks)for(var C of f)C.isState()&&C.getType()===P.RoomEncryption&&C.getStateKey()===``&&(yield n.syncOpts.cryptoCallbacks.onCryptoEvent(i,C));for(var w of s.filter(e=>e.isState()))yield n.client.decryptEventIfNeeded(w);try{`org.matrix.msc4222.state_after`in t?yield n.injectRoomEvents(i,void 0,o,s,e.fromCache):yield n.injectRoomEvents(i,a,void 0,s,e.fromCache)}catch(e){n.syncOpts.logger.error(`Failed to process events on room ${i.roomId}:`,e)}t.summary&&i.setSummary(t.summary),i.addEphemeralEvents(c),i.addAccountData(l);var T=d.concat(s.filter(e=>e.unstableStickyInfo!==void 0));i._unstable_addStickyEvents(T),i.recalculate(),t.isBrandNewRoom&&(r.store.storeRoom(i),r.emit(L.Room,i)),n.processEventsForNotifs(i,s);var E=e=>r.emit(L.Event,e);a.forEach(E),s.forEach(E),c.forEach(E),l.forEach(E),d.filter(e=>!s.some(t=>t.getId()===e.getId())).forEach(E),i.decryptCriticalEvents()});return function(e){return t.apply(this,arguments)}}())),yield Promise.all(C.map(function(){var e=f(function*(e){var t=e.room,i=yield n.mapAndInjectRoomEvents(e),a=i.timelineEvents,o=i.stateEvents,s=i.stateAfterEvents,c=n.mapSyncEventsFormat(e.account_data);t.addAccountData(c),t.recalculate(),e.isBrandNewRoom&&(r.store.storeRoom(t),r.emit(L.Room,t)),n.processEventsForNotifs(t,a),o?.forEach(function(e){r.emit(L.Event,e)}),s?.forEach(function(e){r.emit(L.Event,e)}),a.forEach(function(e){r.emit(L.Event,e)}),c.forEach(function(e){r.emit(L.Event,e)})});return function(t){return e.apply(this,arguments)}}())),yield Promise.all(w.map(function(){var e=f(function*(e){var t=e.room,i=n.mapSyncEventsFormat(e.knock_state,t);yield n.injectRoomEvents(t,i,void 0),e.isBrandNewRoom?(t.recalculate(),r.store.storeRoom(t),r.emit(L.Room,t)):t.recalculate(),i.forEach(function(e){r.emit(L.Event,e)})});return function(t){return e.apply(this,arguments)}}())),e.oldSyncToken&&n.notifEvents.length&&(n.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),n.notifEvents.forEach(function(e){var t;(t=r.getNotifTimelineSet())==null||t.addLiveEvent(e,{addToState:!0})})),t.device_lists&&n.syncOpts.cryptoCallbacks&&(yield n.syncOpts.cryptoCallbacks.processDeviceLists(t.device_lists)),yield n.syncOpts.cryptoCallbacks?.processKeyCounts(t.device_one_time_keys_count,t.device_unused_fallback_key_types??t[`org.matrix.msc2732.device_unused_fallback_key_types`])})()}startKeepAlives(e){return e===void 0&&(e=2e3+Math.floor(Math.random()*5e3)),this.keepAliveTimer!==null&&clearTimeout(this.keepAliveTimer),e>0?this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this),e):this.pokeKeepAlive(),this.connectionReturnedResolvers||=Promise.withResolvers(),this.connectionReturnedResolvers.promise}pokeKeepAlive(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!this.running){clearTimeout(this.keepAliveTimer),this.connectionReturnedResolvers&&=(this.connectionReturnedResolvers.reject(`SyncApi.stop() was called`),void 0);return}var t=()=>{clearTimeout(this.keepAliveTimer),this.connectionReturnedResolvers&&=(this.connectionReturnedResolvers.resolve(e),void 0)};this.client.http.request(F.Get,`/_matrix/client/versions`,void 0,void 0,{prefix:``,localTimeoutMs:15*1e3,abortSignal:this.abortController?.signal}).then(()=>{t()},n=>{n.httpStatus==400||n.httpStatus==404?this.keepAliveTimer=setTimeout(t,2e3):(e=!0,this.keepAliveTimer=setTimeout(this.pokeKeepAlive.bind(this,e),5e3+Math.floor(Math.random()*5e3)),this.updateSyncState(lO.Error,{error:n}))})}mapSyncResponseToRoomArray(e){var t=this.client;return Object.keys(e).filter(e=>!pE(e)).map(n=>{var r=t.store.getRoom(n),i=!1;return r||(r=this.createRoom(n),i=!0),cO(cO({},e[n]),{},{room:r,isBrandNewRoom:i})})}mapSyncEventsFormat(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(!e||!Array.isArray(e.events))return[];var r=this.client.getEventMapper({decrypt:n});return e.events.filter(hE).map(function(e){return t&&(e.room_id=t.roomId),r(e)})}resolveInvites(e){if(!(!e||!this.opts.resolveInvitesToProfiles)){var t=this.client;e.getMembersWithMembership(zE.Invite).forEach(function(n){if(!n.requestedProfileInfo){n.requestedProfileInfo=!0;var r=t.getUser(n.userId);(r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId)).then(function(t){var r=n.events.member;r?.getContent().membership===zE.Invite&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))},function(e){})}})}}findEncryptionEvent(e){return e?.find(e=>e.getType()===P.RoomEncryption&&e.getStateKey()===``)}isRoomEncrypted(e,t){return e.hasEncryptionStateEvent()||!!this.findEncryptionEvent(t)}mapAndInjectRoomEvents(e){var t=this;return f(function*(){var n=t.mapSyncEventsFormat(e.state,e.room),r=t.mapSyncEventsFormat(e[`org.matrix.msc4222.state_after`],e.room),i=t.mapSyncEventsFormat(e.timeline,e.room);return`org.matrix.msc4222.state_after`in e?yield t.injectRoomEvents(e.room,void 0,r,i):yield t.injectRoomEvents(e.room,n,void 0,i),{timelineEvents:i,stateEvents:n,stateAfterEvents:r}})()}injectRoomEvents(e,t,n,r){var i=arguments,a=this;return f(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:!1,s=n??t,c=e.getLiveTimeline(),l=c.getEvents().length==0;if(l){for(var u of s)a.client.getPushActionsForEvent(u);c.initialiseState(s,{timelineWasEmpty:l})}a.resolveInvites(e),e.recalculate(),l||(e.oldState.setStateEvents(s),e.currentState.setStateEvents(s)),yield e.addLiveEvents(r||[],{fromCache:o,timelineWasEmpty:l,addToState:n===void 0}),a.client.processBeaconEvents(e,r)})()}processEventsForNotifs(e,t){if(this.client.getNotifTimelineSet())for(var n of t){var r,i=this.client.getPushActionsForEvent(n);i!=null&&i.notify&&(r=i.tweaks)!=null&&r.highlight&&this.notifEvents.push(n)}}getGuestFilter(){return`{}`}updateSyncState(e,t){var n=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(L.Sync,this.syncState,n,t)}};function hO(e,t,n){var r=e.timelineSupport,i=new rO(t,e,e.getUserId(),{lazyLoadMembers:n.lazyLoadMembers,pendingEventOrdering:n.pendingEventOrdering,timelineSupport:r});return e.reEmitter.reEmit(i,[I.Name,I.Redaction,I.RedactionCancelled,I.Receipt,I.Tags,I.LocalEchoUpdated,I.AccountData,I.MyMembership,I.Timeline,I.TimelineReset,pj.Events,pj.Members,pj.NewMember,pj.Update,CD.New,CD.Update,CD.Destroy,CD.LivenessChange]),i.on(pj.NewMember,(t,n,r)=>{r.user=e.getUser(r.userId)??void 0,e.reEmitter.reEmit(r,[BE.Name,BE.Typing,BE.PowerLevel,BE.Membership])}),i}function gO(e,t){var n=[];e.map(e=>{if(e.message.type===`m.key.verification.cancel`){var t=e.message.content.transaction_id;t&&n.push(t)}return e}).forEach(function(e){var r=e.message,i=r.content,a=new dj(Object.assign({},r));if(r.type===`m.key.verification.start`||r.type===`m.key.verification.request`){var o=i.transaction_id;n.includes(o)&&a.flagCancelled()}e.encryptionInfo&&a.makeEncrypted(P.RoomMessageEncrypted,{ciphertext:``},e.encryptionInfo.senderCurve25519KeyBase64,``),t.emit(L.ToDeviceEvent,a),t.emit(L.ReceivedToDeviceMessage,e)})}var $ne=class{constructor(){g(this,`accountData`,new Map),g(this,`fromToken`,null)}isNewlyCreated(){return Promise.resolve(!0)}getSyncToken(){return this.fromToken}setSyncToken(e){this.fromToken=e}storeRoom(e){}getRoom(e){return null}getRooms(){return[]}removeRoom(e){}getRoomSummaries(){return[]}storeUser(e){}getUser(e){return null}getUsers(){return[]}scrollback(e,t){return[]}setUserCreator(e){}storeEvents(e,t,n,r){}storeFilter(e){}getFilter(e,t){return null}getFilterIdByName(e){return null}setFilterIdByName(e,t){}storeAccountDataEvents(e){}getAccountData(e){}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(){return Promise.resolve()}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return Promise.resolve()}getOutOfBandMembers(){return Promise.resolve(null)}setOutOfBandMembers(e,t){return Promise.resolve()}clearOutOfBandMembers(){return Promise.resolve()}getClientOptions(){return Promise.resolve(void 0)}storeClientOptions(e){return Promise.resolve()}getPendingEvents(e){return f(function*(){return[]})()}setPendingEvents(e,t){return Promise.resolve()}saveToDeviceBatches(e){return f(function*(){return Promise.resolve()})()}getOldestToDeviceBatch(){return Promise.resolve(null)}removeToDeviceBatch(e){return f(function*(){return Promise.resolve()})()}getUserProfile(){return f(function*(){})()}storeUserProfiles(){return f(function*(){})()}removeUserProfiles(){return f(function*(){})()}destroy(){return f(function*(){})()}removeEventsFromRoom(e,t){return f(function*(){})()}},_O=i(((e,t)=>{var n=t.exports={v:[{name:`version`,reg:/^(\d*)$/}],o:[{name:`origin`,reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:[`username`,`sessionId`,`sessionVersion`,`netType`,`ipVer`,`address`],format:`%s %s %d %s IP%d %s`}],s:[{name:`name`}],i:[{name:`description`}],u:[{name:`uri`}],e:[{name:`email`}],p:[{name:`phone`}],z:[{name:`timezones`}],r:[{name:`repeats`}],t:[{name:`timing`,reg:/^(\d*) (\d*)/,names:[`start`,`stop`],format:`%d %d`}],c:[{name:`connection`,reg:/^IN IP(\d) (\S*)/,names:[`version`,`ip`],format:`IN IP%d %s`}],b:[{push:`bandwidth`,reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:[`type`,`limit`],format:`%s:%s`}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:[`type`,`port`,`protocol`,`payloads`],format:`%s %d %s %s`}],a:[{push:`rtp`,reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:[`payload`,`codec`,`rate`,`encoding`],format:function(e){return e.encoding?`rtpmap:%d %s/%s/%s`:e.rate?`rtpmap:%d %s/%s`:`rtpmap:%d %s`}},{push:`fmtp`,reg:/^fmtp:(\d*) ([\S| ]*)/,names:[`payload`,`config`],format:`fmtp:%d %s`},{name:`control`,reg:/^control:(.*)/,format:`control:%s`},{name:`rtcp`,reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:[`port`,`netType`,`ipVer`,`address`],format:function(e){return e.address==null?`rtcp:%d`:`rtcp:%d %s IP%d %s`}},{push:`rtcpFbTrrInt`,reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:[`payload`,`value`],format:`rtcp-fb:%s trr-int %d`},{push:`rtcpFb`,reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:[`payload`,`type`,`subtype`],format:function(e){return e.subtype==null?`rtcp-fb:%s %s`:`rtcp-fb:%s %s %s`}},{push:`ext`,reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:[`value`,`direction`,`encrypt-uri`,`uri`,`config`],format:function(e){return`extmap:%d`+(e.direction?`/%s`:`%v`)+(e[`encrypt-uri`]?` %s`:`%v`)+` %s`+(e.config?` %s`:``)}},{name:`extmapAllowMixed`,reg:/^(extmap-allow-mixed)/},{push:`crypto`,reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:[`id`,`suite`,`config`,`sessionConfig`],format:function(e){return e.sessionConfig==null?`crypto:%d %s %s`:`crypto:%d %s %s %s`}},{name:`setup`,reg:/^setup:(\w*)/,format:`setup:%s`},{name:`connectionType`,reg:/^connection:(new|existing)/,format:`connection:%s`},{name:`mid`,reg:/^mid:([^\s]*)/,format:`mid:%s`},{push:`msid`,reg:/^msid:([\w-]+)(?: ([\w-]+))?/,names:[`id`,`appdata`],format:`msid:%s %s`},{name:`ptime`,reg:/^ptime:(\d*(?:\.\d*)*)/,format:`ptime:%d`},{name:`maxptime`,reg:/^maxptime:(\d*(?:\.\d*)*)/,format:`maxptime:%d`},{name:`direction`,reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:`icelite`,reg:/^(ice-lite)/},{name:`iceUfrag`,reg:/^ice-ufrag:(\S*)/,format:`ice-ufrag:%s`},{name:`icePwd`,reg:/^ice-pwd:(\S*)/,format:`ice-pwd:%s`},{name:`fingerprint`,reg:/^fingerprint:(\S*) (\S*)/,names:[`type`,`hash`],format:`fingerprint:%s %s`},{push:`candidates`,reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:[`foundation`,`component`,`transport`,`priority`,`ip`,`port`,`type`,`raddr`,`rport`,`tcptype`,`generation`,`network-id`,`network-cost`],format:function(e){var t=`candidate:%s %d %s %d %s %d typ %s`;return t+=e.raddr==null?`%v%v`:` raddr %s rport %d`,t+=e.tcptype==null?`%v`:` tcptype %s`,e.generation!=null&&(t+=` generation %d`),t+=e[`network-id`]==null?`%v`:` network-id %d`,t+=e[`network-cost`]==null?`%v`:` network-cost %d`,t}},{name:`endOfCandidates`,reg:/^(end-of-candidates)/},{name:`remoteCandidates`,reg:/^remote-candidates:(.*)/,format:`remote-candidates:%s`},{name:`iceOptions`,reg:/^ice-options:(\S*)/,format:`ice-options:%s`},{push:`ssrcs`,reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:[`id`,`attribute`,`value`],format:function(e){var t=`ssrc:%d`;return e.attribute!=null&&(t+=` %s`,e.value!=null&&(t+=`:%s`)),t}},{push:`ssrcGroups`,reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:[`semantics`,`ssrcs`],format:`ssrc-group:%s %s`},{name:`msidSemantic`,reg:/^msid-semantic:\s?(\w*) (\S*)/,names:[`semantic`,`token`],format:`msid-semantic: %s %s`},{push:`groups`,reg:/^group:(\w*) (.*)/,names:[`type`,`mids`],format:`group:%s %s`},{name:`rtcpMux`,reg:/^(rtcp-mux)/},{name:`rtcpRsize`,reg:/^(rtcp-rsize)/},{name:`sctpmap`,reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:[`sctpmapNumber`,`app`,`maxMessageSize`],format:function(e){return e.maxMessageSize==null?`sctpmap:%s %s`:`sctpmap:%s %s %s`}},{name:`xGoogleFlag`,reg:/^x-google-flag:([^\s]*)/,format:`x-google-flag:%s`},{push:`rids`,reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:[`id`,`direction`,`params`],format:function(e){return e.params?`rid:%s %s %s`:`rid:%s %s`}},{push:`imageattrs`,reg:RegExp(`^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?`),names:[`pt`,`dir1`,`attrs1`,`dir2`,`attrs2`],format:function(e){return`imageattr:%s %s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast`,reg:RegExp(`^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$`),names:[`dir1`,`list1`,`dir2`,`list2`],format:function(e){return`simulcast:%s %s`+(e.dir2?` %s %s`:``)}},{name:`simulcast_03`,reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:[`value`],format:`simulcast: %s`},{name:`framerate`,reg:/^framerate:(\d+(?:$|\.\d+))/,format:`framerate:%s`},{name:`sourceFilter`,reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:[`filterMode`,`netType`,`addressTypes`,`destAddress`,`srcList`],format:`source-filter: %s %s %s %s %s`},{name:`bundleOnly`,reg:/^(bundle-only)/},{name:`label`,reg:/^label:(.+)/,format:`label:%s`},{name:`sctpPort`,reg:/^sctp-port:(\d+)$/,format:`sctp-port:%s`},{name:`maxMessageSize`,reg:/^max-message-size:(\d+)$/,format:`max-message-size:%s`},{push:`tsRefClocks`,reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:[`clksrc`,`clksrcExt`],format:function(e){return`ts-refclk:%s`+(e.clksrcExt==null?``:`=%s`)}},{name:`mediaClk`,reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:[`id`,`mediaClockName`,`mediaClockValue`,`rateNumerator`,`rateDenominator`],format:function(e){var t=`mediaclk:`;return t+=e.id==null?`%v%s`:`id=%s %s`,t+=e.mediaClockValue==null?``:`=%s`,t+=e.rateNumerator==null?``:` rate=%s`,t+=e.rateDenominator==null?``:`/%s`,t}},{name:`keywords`,reg:/^keywds:(.+)$/,format:`keywds:%s`},{name:`content`,reg:/^content:(.+)/,format:`content:%s`},{name:`bfcpFloorCtrl`,reg:/^floorctrl:(c-only|s-only|c-s)/,format:`floorctrl:%s`},{name:`bfcpConfId`,reg:/^confid:(\d+)/,format:`confid:%s`},{name:`bfcpUserId`,reg:/^userid:(\d+)/,format:`userid:%s`},{name:`bfcpFloorId`,reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:[`id`,`mStream`],format:`floorid:%s mstrm:%s`},{push:`invalid`,names:[`value`]}]};Object.keys(n).forEach(function(e){n[e].forEach(function(e){e.reg||=/(.*)/,e.format||=`%s`})})})),ere=i((e=>{var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,r,i){if(i&&!r)n[i]=t(e[1]);else for(var a=0;a1&&(e[r[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(o,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(` `).map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],r=e.split(` `).map(t),i=0;i{var n=_O(),r=/%[sdv%]/g,i=function(e){var t=1,n=arguments,i=n.length;return e.replace(r,function(e){if(t>=i)return e;var r=n[t];switch(t+=1,e){case`%%`:return`%`;case`%s`:return String(r);case`%d`:return Number(r);case`%v`:return``}})},a=function(e,t,n){var r=t.format instanceof Function?t.format(t.push?n:n[t.name]):t.format,a=[e+`=`+r];if(t.names)for(var o=0;o{var t=ere(),n=tre();_O(),e.write=n,e.parse=t.parse,e.parseParams=t.parseParams,e.parseFmtpConfig=t.parseFmtpConfig,e.parsePayloads=t.parsePayloads,e.parseRemoteCandidates=t.parseRemoteCandidates,e.parseImageAttributes=t.parseImageAttributes,e.parseSimulcastStreamList=t.parseSimulcastStreamList}))();function yO(e,t){if(typeof e.toBase64==`function`)return e.toBase64(t);var n=btoa(e.reduce((e,t)=>e+String.fromCharCode(t),``));return t.omitPadding&&(n=n.replace(/={1,2}$/,``)),t.alphabet===`base64url`&&(n=n.replace(/\+/g,`-`).replace(/\//g,`_`)),n}function bO(e){return yO(e,{alphabet:`base64`,omitPadding:!1})}function xO(e){return yO(e,{alphabet:`base64`,omitPadding:!0})}function SO(e){return yO(e,{alphabet:`base64url`,omitPadding:!0})}function nre(e,t){return typeof Uint8Array.fromBase64==`function`?Uint8Array.fromBase64(e,t):Uint8Array.from(atob(e),e=>e.charCodeAt(0))}function CO(e){return nre(e.replace(/-/g,`+`).replace(/_/g,`/`),{alphabet:`base64`,lastChunkHandling:`loose`})}var rre=`abcdefghijklmnopqrstuvwxyz`,ire=`ABCDEFGHIJKLMNOPQRSTUVWXYZ`,are=`0123456789`;function ore(e){var t=new Uint8Array(e);return globalThis.crypto.getRandomValues(t),SO(t)}function wO(e){return sre(e,ire+rre+are)}function sre(e,t){if(t.length<2||t.length>256)throw Error(`Character set must be between 2 and 256 characters long`);if(e<1||e>32768)throw Error(`Requested random string length must be between 1 and 32768`);for(var n=256-256%t.length,r=new Uint8Array(Math.floor(e*1.3)),i=r.length,a=[];a.length(DO===null&&(DO=new AudioContext),OO++,DO),lre=()=>{if(OO--,OO===0){var e;(e=DO)==null||e.close(),DO=null}},ure=200,dre=8,kO=function(e){return e.NewStream=`new_stream`,e.MuteStateChanged=`mute_state_changed`,e.LocalVolumeChanged=`local_volume_changed`,e.VolumeChanged=`volume_changed`,e.ConnectedChanged=`connected_changed`,e.Speaking=`speaking`,e.Disposed=`disposed`,e}({}),AO=class e extends TE{constructor(e){super(),g(this,`stream`,void 0),g(this,`sdpMetadataStreamId`,void 0),g(this,`userId`,void 0),g(this,`deviceId`,void 0),g(this,`purpose`,void 0),g(this,`speakingVolumeSamples`,void 0),g(this,`client`,void 0),g(this,`call`,void 0),g(this,`roomId`,void 0),g(this,`audioMuted`,void 0),g(this,`videoMuted`,void 0),g(this,`localVolume`,1),g(this,`measuringVolumeActivity`,!1),g(this,`audioContext`,void 0),g(this,`analyser`,void 0),g(this,`frequencyBinCount`,void 0),g(this,`speakingThreshold`,-60),g(this,`speaking`,!1),g(this,`volumeLooperTimeout`,void 0),g(this,`_disposed`,!1),g(this,`_connected`,!1),g(this,`onAddTrack`,()=>{this.emit(kO.NewStream,this.stream)}),g(this,`onCallState`,e=>{e===JO.Connected?this.connected=!0:e===JO.Connecting&&(this.connected=!1)}),g(this,`volumeLooper`,()=>{if(this.analyser&&this.measuringVolumeActivity){this.analyser.getFloatFrequencyData(this.frequencyBinCount);var e=-1/0;for(var t of this.frequencyBinCount)t>e&&(e=t);this.speakingVolumeSamples.shift(),this.speakingVolumeSamples.push(e),this.emit(kO.VolumeChanged,e);var n=!1;for(var r of this.speakingVolumeSamples)if(r>this.speakingThreshold){n=!0;break}this.speaking!==n&&(this.speaking=n,this.emit(kO.Speaking,this.speaking)),this.volumeLooperTimeout=setTimeout(this.volumeLooper,ure)}}),this.client=e.client,this.call=e.call,this.roomId=e.roomId,this.userId=e.userId,this.deviceId=e.deviceId,this.purpose=e.purpose,this.audioMuted=e.audioMuted,this.videoMuted=e.videoMuted,this.speakingVolumeSamples=Array(dre).fill(-1/0),this.sdpMetadataStreamId=e.stream.id,this.updateStream(null,e.stream),this.stream=e.stream,this.hasAudioTrack&&this.initVolumeMeasuring(),e.call&&(e.call.addListener(ZO.State,this.onCallState),this.onCallState(e.call.state))}get connected(){return this.isLocal()||this._connected}set connected(e){this._connected=e,this.emit(kO.ConnectedChanged,this.connected)}get hasAudioTrack(){return this.stream.getAudioTracks().length>0}updateStream(e,t){if(t!==e){var n=this.measuringVolumeActivity;e&&(e.removeEventListener(`addtrack`,this.onAddTrack),this.measureVolumeActivity(!1)),this.stream=t,t.addEventListener(`addtrack`,this.onAddTrack),this.hasAudioTrack?(this.initVolumeMeasuring(),n&&this.measureVolumeActivity(!0)):this.measureVolumeActivity(!1),this.emit(kO.NewStream,this.stream)}}initVolumeMeasuring(){this.hasAudioTrack&&(this.audioContext||=cre(),this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=512,this.analyser.smoothingTimeConstant=.1,this.audioContext.createMediaStreamSource(this.stream).connect(this.analyser),this.frequencyBinCount=new Float32Array(this.analyser.frequencyBinCount))}getMember(){return this.client.getRoom(this.roomId)?.getMember(this.userId)??null}isLocal(){return this.userId===this.client.getUserId()&&(this.deviceId===void 0||this.deviceId===this.client.getDeviceId())}isAudioMuted(){return this.stream.getAudioTracks().length===0||this.audioMuted}isVideoMuted(){return this.stream.getVideoTracks().length===0||this.videoMuted}isSpeaking(){return this.speaking}setNewStream(e){this.updateStream(this.stream,e)}setAudioVideoMuted(e,t){e!==null&&(this.audioMuted!==e&&this.speakingVolumeSamples.fill(-1/0),this.audioMuted=e),t!==null&&(this.videoMuted=t),this.emit(kO.MuteStateChanged,this.audioMuted,this.videoMuted)}measureVolumeActivity(e){if(e){if(!this.analyser||!this.frequencyBinCount||!this.hasAudioTrack)return;this.measuringVolumeActivity=!0,this.volumeLooper()}else this.measuringVolumeActivity=!1,this.speakingVolumeSamples.fill(-1/0),this.emit(kO.VolumeChanged,-1/0)}setSpeakingThreshold(e){this.speakingThreshold=e}clone(){var t=this.client.getMediaHandler(),n=this.stream.clone();return N.log(`CallFeed clone() cloning stream (originalStreamId=${this.stream.id}, newStreamId${n.id})`),this.purpose===EO.Usermedia?t.userMediaStreams.push(n):t.screensharingStreams.push(n),new e({client:this.client,roomId:this.roomId,userId:this.userId,deviceId:this.deviceId,stream:n,purpose:this.purpose,audioMuted:this.audioMuted,videoMuted:this.videoMuted})}dispose(){var e,t;clearTimeout(this.volumeLooperTimeout),(e=this.stream)==null||e.removeEventListener(`addtrack`,this.onAddTrack),(t=this.call)==null||t.removeListener(ZO.State,this.onCallState),this.audioContext&&(this.audioContext=void 0,this.analyser=void 0,lre()),this._disposed=!0,this.emit(kO.Disposed)}get disposed(){return this._disposed}set disposed(e){this._disposed=e}getLocalVolume(){return this.localVolume}setLocalVolume(e){this.localVolume=e,this.emit(kO.LocalVolumeChanged,e)}},fre=3e3,jO=function(e){return e.Incoming=`Call.incoming`,e}({}),pre=class{constructor(e){g(this,`calls`,void 0),g(this,`callEventBuffer`,void 0),g(this,`nextSeqByCall`,new Map),g(this,`toDeviceEventBuffers`,new Map),g(this,`client`,void 0),g(this,`candidateEventsByCall`,void 0),g(this,`eventBufferPromiseChain`,void 0),g(this,`onSync`,()=>{var e=this.callEventBuffer;this.callEventBuffer=[],this.eventBufferPromiseChain?this.eventBufferPromiseChain=this.eventBufferPromiseChain.then(()=>this.evaluateEventBuffer(e)):this.eventBufferPromiseChain=this.evaluateEventBuffer(e)}),g(this,`onRoomTimeline`,e=>{this.callEventBuffer.push(e)}),g(this,`onToDeviceEvent`,e=>{var t=e.getContent();if(!t.call_id){this.callEventBuffer.push(e);return}if(this.nextSeqByCall.has(t.call_id)||this.nextSeqByCall.set(t.call_id,0),t.seq===void 0){this.callEventBuffer.push(e);return}var n=this.nextSeqByCall.get(t.call_id)||0;if(t.seq!==n){this.toDeviceEventBuffers.has(t.call_id)||this.toDeviceEventBuffers.set(t.call_id,[]);var r=this.toDeviceEventBuffers.get(t.call_id),i=r.findIndex(e=>e.getContent().seq>t.seq);i===-1?r.push(e):r.splice(i,0,e)}else{var a=t.call_id;this.callEventBuffer.push(e),this.nextSeqByCall.set(a,t.seq+1);for(var o=this.toDeviceEventBuffers.get(a),s=o&&o.shift();s&&s.getContent().seq===this.nextSeqByCall.get(a);)this.callEventBuffer.push(s),this.nextSeqByCall.set(a,s.getContent().seq+1),s=o.shift()}}),this.client=e,this.calls=new Map,this.callEventBuffer=[],this.candidateEventsByCall=new Map}start(){this.client.on(L.Sync,this.onSync),this.client.on(I.Timeline,this.onRoomTimeline),this.client.on(L.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.removeListener(L.Sync,this.onSync),this.client.removeListener(I.Timeline,this.onRoomTimeline),this.client.removeListener(L.ToDeviceEvent,this.onToDeviceEvent)}evaluateEventBuffer(e){var t=this;return f(function*(){yield Promise.all(e.map(e=>t.client.decryptEventIfNeeded(e)));var n=e.filter(e=>{var t=e.getType();return t.startsWith(`m.call.`)||t.startsWith(`org.matrix.call.`)}),r=new Set;for(var i of n){var a=i.getType();(a===P.CallAnswer||a===P.CallHangup)&&r.add(i.getContent().call_id)}for(var o of n){var s=o.getType(),c=o.getContent().call_id;if(!(s===P.CallInvite&&r.has(c)))try{yield t.handleCallEvent(o)}catch(e){N.error(`CallEventHandler evaluateEventBuffer() caught exception handling call event`,e)}}})()}handleCallEvent(e){var t=this;return f(function*(){var n;t.client.emit(L.ReceivedVoipEvent,e);var r=e.getContent(),i=e.getRoomId()||((n=t.client.groupCallEventHandler.getGroupCallById(r.conf_id))==null||(n=n.room)==null?void 0:n.roomId),a=r.conf_id,o=e.getType(),s=e.getSender(),c=r.call_id?t.calls.get(r.call_id):void 0,l,u;if(a){if(u=t.client.groupCallEventHandler.getGroupCallById(a),!u){N.warn(`CallEventHandler handleCallEvent() could not find a group call - ignoring event (groupCallId=${a}, type=${o})`);return}if(l=r.device_id,!l){N.warn(`CallEventHandler handleCallEvent() could not find a device id - ignoring event (senderId=${s})`),u.emit(BO.Error,new jre(s));return}if(r.dest_session_id!==t.client.getSessionId()){N.warn(`CallEventHandler handleCallEvent() call event does not match current session id - ignoring`);return}}var d=s===t.client.credentials.userId&&(l===void 0||l===t.client.getDeviceId());if(i){if(o===P.CallInvite){if(d||e.getLocalAge()>r.lifetime-fre||c&&c.state===JO.Ended||(c&&N.warn(`CallEventHandler handleCallEvent() already has a call but got an invite - clobbering (callId=${r.call_id})`),r.invitee&&r.invitee!==t.client.getUserId()))return;var f=(t.client.getTurnServersExpiry()??0)-Date.now();if(N.info(`CallEventHandler handleCallEvent() current turn creds expire in `+f+` ms`),c=ak(t.client,i,{forceTURN:t.client.forceTURN,opponentDeviceId:l,groupCallId:a,opponentSessionId:r.sender_session_id})??void 0,!c){N.log(`CallEventHandler handleCallEvent() this client does not support WebRTC (callId=${r.call_id})`);return}c.callId=r.call_id;var p=u?.getGroupCallStats();p&&c.initStats(p);try{yield c.initWithInvite(e)}catch(e){if(e instanceof ek)if(e.code===HO.UnknownDevice){var m;(m=u)==null||m.emit(BO.Error,e)}else N.error(e)}if(t.calls.set(c.callId,c),t.candidateEventsByCall.get(c.callId))for(var h of t.candidateEventsByCall.get(c.callId))c.onRemoteIceCandidatesReceived(h);var g;for(var _ of t.calls.values()){var v=[JO.WaitLocalMedia,JO.CreateOffer,JO.InviteSent].includes(_.state);if(c.roomId===_.roomId&&_.direction===YO.Outbound&&c.getOpponentMember()?.userId===_.invitee&&v){g=_;break}}g?g.callId>c.callId?(N.log(`CallEventHandler handleCallEvent() detected glare - answering incoming call and canceling outgoing call (incomingId=${c.callId}, outgoingId=${g.callId})`),g.replacedBy(c)):(N.log(`CallEventHandler handleCallEvent() detected glare - hanging up incoming call (incomingId=${c.callId}, outgoingId=${g.callId})`),c.hangup(QO.Replaced,!0)):t.client.emit(jO.Incoming,c);return}else if(o===P.CallCandidates){if(d)return;c?c.onRemoteIceCandidatesReceived(e):(t.candidateEventsByCall.has(r.call_id)||t.candidateEventsByCall.set(r.call_id,[]),t.candidateEventsByCall.get(r.call_id).push(e));return}else if([P.CallHangup,P.CallReject].includes(o)){c?c.state!==JO.Ended&&(o===P.CallHangup?c.onHangupReceived(r):c.onRejectReceived(r),c.state===JO.Ended&&t.calls.delete(r.call_id)):(c=ak(t.client,i,{opponentDeviceId:l,opponentSessionId:r.sender_session_id})??void 0,c&&(c.callId=r.call_id,c.initWithHangup(e),t.calls.set(r.call_id,c)));return}if(!c||!c.hasPeerConnection){N.info(`CallEventHandler handleCallEvent() discarding possible call event as we don't have a call (type=${o})`);return}if(e.getContent().party_id!==c.ourPartyId)switch(o){case P.CallAnswer:d?c.state===JO.Ringing&&c.onAnsweredElsewhere(r):c.onAnswerReceived(e);break;case P.CallSelectAnswer:c.onSelectAnswerReceived(e);break;case P.CallNegotiate:c.onNegotiateReceived(e);break;case P.CallAssertedIdentity:case P.CallAssertedIdentityPrefix:c.onAssertedIdentityReceived(e);break;case P.CallSDPStreamMetadataChanged:case P.CallSDPStreamMetadataChangedPrefix:c.onSDPStreamMetadataChangedReceived(e);break}}})()}},MO=function(e){return e.Incoming=`GroupCall.incoming`,e.Outgoing=`GroupCall.outgoing`,e.Ended=`GroupCall.ended`,e.Participants=`GroupCall.participants`,e}({}),mre=class{constructor(e){this.client=e,g(this,`groupCalls`,new Map),g(this,`roomDeferreds`,new Map),g(this,`onRoomsChanged`,e=>{this.createGroupCallForRoom(e)}),g(this,`onRoomStateChanged`,(e,t)=>{if(e.getType()===P.GroupCallPrefix){var n=e.getStateKey(),r=e.getContent(),i=this.groupCalls.get(t.roomId);!i&&!r[`m.terminated`]&&!e.isRedacted()?this.createGroupCallFromRoomStateEvent(e):i&&i.groupCallId===n?r[`m.terminated`]||e.isRedacted()?i.terminate(!1):r[`m.type`]!==i.type&&N.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support changing type (roomId=${t.roomId})`):i&&i.groupCallId!==n&&N.warn(`GroupCallEventHandler onRoomStateChanged() currently does not support multiple calls (roomId=${t.roomId})`)}})}start(){var e=this;return f(function*(){e.client.getSyncState()!==lO.Syncing&&(N.debug(`GroupCallEventHandler start() waiting for client to start syncing`),yield new Promise(t=>{var n=()=>{if(e.client.getSyncState()===lO.Syncing)return e.client.off(L.Sync,n),t()};e.client.on(L.Sync,n)}));for(var t of e.client.getRooms())e.createGroupCallForRoom(t);e.client.on(L.Room,e.onRoomsChanged),e.client.on(pj.Events,e.onRoomStateChanged)})()}stop(){this.client.removeListener(L.Room,this.onRoomsChanged),this.client.removeListener(pj.Events,this.onRoomStateChanged)}getRoomDeferred(e){var t=this.roomDeferreds.get(e);if(t===void 0){var n;t={prom:new Promise(e=>{n=e})},t.resolve=n,this.roomDeferreds.set(e,t)}return t}waitUntilRoomReadyForGroupCalls(e){return this.getRoomDeferred(e).prom}getGroupCallById(e){return[...this.groupCalls.values()].find(t=>t.groupCallId===e)}createGroupCallForRoom(e){var t=e.currentState.getStateEvents(P.GroupCallPrefix);for(var n of t.sort((e,t)=>t.getTs()-e.getTs()))if(!(n.getContent()[`m.terminated`]||n.isRedacted())){N.debug(`GroupCallEventHandler createGroupCallForRoom() choosing group call from possible calls (stateKey=${n.getStateKey()}, ts=${n.getTs()}, roomId=${e.roomId}, numOfPossibleCalls=${t.length})`),this.createGroupCallFromRoomStateEvent(n);break}this.getRoomDeferred(e.roomId).resolve()}createGroupCallFromRoomStateEvent(e){var t=e.getRoomId(),n=e.getContent(),r=this.client.getRoom(t);if(!r){N.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() couldn't find room for call (roomId=${t})`);return}var i=e.getStateKey(),a=n[`m.type`];if(!Object.values(zO).includes(a)){N.warn(`GroupCallEventHandler createGroupCallFromRoomStateEvent() received invalid call type (type=${a}, roomId=${t})`);return}var o=n[`m.intent`];if(!Object.values(kre).includes(o)){N.warn(`Received invalid group call intent (type=${a}, roomId=${t})`);return}var s=!!n[`io.element.ptt`],c;if(n!=null&&n.dataChannelsEnabled&&n!=null&&n.dataChannelOptions){var l=n.dataChannelOptions;c={ordered:l.ordered,maxPacketLifeTime:l.maxPacketLifeTime,maxRetransmits:l.maxRetransmits,protocol:l.protocol}}var u=new KO(this.client,r,a,s,o,i,n?.dataChannelsEnabled||this.client.isVoipWithNoMediaAllowed,c,this.client.isVoipWithNoMediaAllowed,this.client.useLivekitForGroupCalls,n[`io.element.livekit_service_url`]);return this.groupCalls.set(r.roomId,u),this.client.emit(MO.Incoming,u),u}},hre=class{constructor(){g(this,`bandwidth`,{}),g(this,`bitrate`,{}),g(this,`packetLoss`,{}),g(this,`transport`,[])}},gre=class{static buildBandwidthReport(e){var t=e.availableIncomingBitrate,n=e.availableOutgoingBitrate;return{download:t?Math.round(t/1e3):0,upload:n?Math.round(n/1e3):0}}},_re=class{static buildReport(e,t,n,r){var i=e?.get(t.localCandidateId),a=e?.get(t.remoteCandidateId);if(a&&i){var o=`${a.ip===void 0?a.address:a.ip}:${a.port}`,s=`${i.ip===void 0?i.address:i.ip}:${i.port}`,c=a.protocol;n.some(e=>e.ip===o&&e.type===c&&e.localIp===s)||n.push({ip:o,type:c,localIp:s,isFocus:r,localCandidateType:i.candidateType,remoteCandidateType:a.candidateType,networkType:i.networkType,rtt:t.currentRoundTripTime?t.currentRoundTripTime*1e3:NaN})}return n}},vre=class{constructor(){g(this,`ssrcToMid`,{local:new Map,remote:new Map})}findMidBySsrc(e,t){var n;return this.ssrcToMid[t].forEach((t,r)=>{if(t.find(t=>t==e)){n=r;return}}),n}parse(e,t){var n=(0,vO.parse)(e),r=new Map;n.media.forEach(e=>{if(e.mid&&e.type===`video`||e.type===`audio`){var t,n=[];(t=e.ssrcs)==null||t.forEach(e=>{e.attribute===`cname`&&n.push(`${e.id}`)}),r.set(`${e.mid}`,n)}}),this.ssrcToMid[t]=r}getSsrcToMidMap(e){return this.ssrcToMid[e]}},yre=class{constructor(e){this.pc=e}getLocalTracks(e){return this.pc.getTransceivers().filter(e=>e.currentDirection===`sendonly`||e.currentDirection===`sendrecv`).filter(e=>e.sender!==null).map(e=>e.sender).map(e=>e.track).filter(t=>t!==null&&t.kind===e)}getTackById(e){return this.pc.getTransceivers().map(t=>{if(t?.sender.track!==null&&t.sender.track.id===e)return t.sender.track;if(t?.receiver.track!==null&&t.receiver.track.id===e)return t.receiver.track}).find(e=>e!==void 0)}getLocalTrackIdByMid(e){var t,n=this.pc.getTransceivers().find(t=>t.mid===e);return n==null||(t=n.sender)==null||(t=t.track)==null?void 0:t.id}getRemoteTrackIdByMid(e){var t,n=this.pc.getTransceivers().find(t=>t.mid===e);return n==null||(t=n.receiver)==null||(t=t.track)==null?void 0:t.id}getActiveSimulcastStreams(){return 3}getTransceiverByTrackId(e){return this.pc.getTransceivers().find(t=>t.receiver.track.id===e||t.sender.track!==null&&t.sender.track.id===e)}},bre=class{constructor(e,t,n){this.trackId=e,this.type=t,this.kind=n,g(this,`loss`,{packetsTotal:0,packetsLost:0,isDownloadStream:!1}),g(this,`bitrate`,{download:0,upload:0}),g(this,`resolution`,{width:-1,height:-1}),g(this,`audioConcealment`,{concealedAudio:0,totalAudioDuration:0}),g(this,`framerate`,0),g(this,`jitter`,0),g(this,`codec`,``),g(this,`isAlive`,!0),g(this,`isMuted`,!1),g(this,`isEnabled`,!0)}getType(){return this.type}setLoss(e){this.loss=e}getLoss(){return this.loss}setResolution(e){this.resolution=e}getResolution(){return this.resolution}setFramerate(e){this.framerate=e}getFramerate(){return this.framerate}setBitrate(e){this.bitrate=e}getBitrate(){return this.bitrate}setCodec(e){return this.codec=e,!0}getCodec(){return this.codec}resetBitrate(){this.bitrate={download:0,upload:0}}set alive(e){this.isAlive=e}get alive(){return this.isAlive}set muted(e){this.isMuted=e}get muted(){return this.isMuted}set enabled(e){this.isEnabled=e}get enabled(){return this.isEnabled}setJitter(e){this.jitter=e}getJitter(){return this.jitter}setAudioConcealment(e,t){this.audioConcealment.concealedAudio=e,this.audioConcealment.totalAudioDuration=t}getAudioConcealment(){return this.audioConcealment}},xre=class{constructor(e,t){this.mediaSsrcHandler=e,this.mediaTrackHandler=t,g(this,`track2stats`,new Map)}findTrack2Stats(e,t){var n;if(e.trackIdentifier)n=e.trackIdentifier;else if(e.mid)n=t===`remote`?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid);else if(e.ssrc){if(!this.mediaSsrcHandler.findMidBySsrc(e.ssrc,t))return;n=t===`remote`?this.mediaTrackHandler.getRemoteTrackIdByMid(e.mid):this.mediaTrackHandler.getLocalTrackIdByMid(e.mid)}if(n){var r=this.track2stats.get(n);if(!r){var i=this.mediaTrackHandler.getTackById(n);if(i!==void 0){var a=i.kind===`audio`?i.kind:`video`;r=new bre(n,t,a),this.track2stats.set(n,r)}else return}return r}}findLocalVideoTrackStats(e){if(this.mediaTrackHandler.getLocalTracks(`video`).length!==0)return this.findTrack2Stats(e,`local`)}getTrack2stats(){return this.track2stats}findTransceiverByTrackId(e){return this.mediaTrackHandler.getTransceiverByTrackId(e)}},NO=class{static getNonNegativeValue(e){var t=e;return typeof t!=`number`&&(t=Number(t)),isNaN(t)?0:Math.max(0,t)}},PO=class e{static buildFramerateResolution(e,t){var n={height:t.frameHeight,width:t.frameWidth},r=t.framesPerSecond;n.height&&n.width&&e.setResolution(n),e.setFramerate(Math.round(r||0))}static calculateSimulcastFramerate(e,t,n,r){var i=e.getFramerate();if(!i){if(n){var a=t.timestamp-n.timestamp;a>0&&t.framesSent&&(i=(t.framesSent-n.framesSent)/a*1e3)}if(!i)return}i=r?Math.round(i/r):0,e.setFramerate(i)}static buildCodec(e,t,n){var r=e?.get(n.codecId);if(r){var i=r.mimeType.split(`/`)[1];i&&t.setCodec(i)}}static buildBitrateReceived(t,n,r){t.setBitrate({download:e.calculateBitrate(n.bytesReceived,r.bytesReceived,n.timestamp,r.timestamp),upload:0})}static buildBitrateSend(e,t,n){e.setBitrate({download:0,upload:this.calculateBitrate(t.bytesSent,n.bytesSent,t.timestamp,n.timestamp)})}static buildPacketsLost(e,t,n){var r=t.type===`outbound-rtp`?`packetsSent`:`packetsReceived`,i=t[r];(!i||i<0)&&(i=0);var a=NO.getNonNegativeValue(n[r]),o=Math.max(0,i-a),s=NO.getNonNegativeValue(t.packetsLost),c=NO.getNonNegativeValue(n.packetsLost),l=Math.max(0,s-c);e.setLoss({packetsTotal:o+l,packetsLost:l,isDownloadStream:t.type!==`outbound-rtp`})}static calculateBitrate(e,t,n,r){var i=NO.getNonNegativeValue(e),a=NO.getNonNegativeValue(t),o=Math.max(0,i-a),s=n-r,c=0;return s>0&&(c=Math.round(o*8/s)),c}static setTrackStatsState(e,t){var n;if(t===void 0){e.alive=!1;return}var r=e.getType()===`remote`?t.receiver.track:t==null||(n=t.sender)==null?void 0:n.track;if(r==null){e.alive=!1;return}if(r.readyState===`ended`){e.alive=!1;return}e.muted=r.muted,e.enabled=r.enabled,e.alive=!0}static buildTrackSummary(e){var t={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},n={count:0,muted:0,maxJitter:0,maxPacketLoss:0,concealedAudio:0,totalAudio:0},r=e.filter(e=>e.getType()===`remote`),i=r.filter(e=>e.kind===`audio`);return r.forEach(e=>{var r=e.kind===`video`?t:n;r.count++,e.alive&&e.muted&&r.muted++,r.maxJitter0&&(r.concealedAudio+=e.getAudioConcealment()?.concealedAudio,r.totalAudio+=e.getAudioConcealment()?.totalAudioDuration)}),{audioTrackSummary:n,videoTrackSummary:t}}static buildJitter(e,t){if(t.type===`inbound-rtp`){var n=t?.jitter;if(n!==void 0){var r=NO.getNonNegativeValue(n);e.setJitter(Math.round(r*1e3))}else e.setJitter(-1)}}static buildAudioConcealment(e,t){if(t.type===`inbound-rtp`){var n=1e3*t?.totalSamplesDuration/t?.totalSamplesReceived*t?.concealedSamples,r=1e3*t?.totalSamplesDuration;e.setAudioConcealment(n,r)}}},Sre=class e{static build(t){var n={},r={download:0,upload:0},i={download:0,upload:0},a=0,o=0,s={local:new Map,remote:new Map},c={local:new Map,remote:new Map},l={local:new Map,remote:new Map},d=new Map,f=new Map,p=0,m=0,h=0,g=0,_=0,v=0;for(var y of t){var b=u(y,2),x=b[0],S=b[1],C=S.getLoss(),w=C.isDownloadStream?`download`:`upload`;if(r[w]+=C.packetsTotal,i[w]+=C.packetsLost,a+=S.getBitrate().download,o+=S.getBitrate().upload,S.kind===`audio`){var T=S.getAudioConcealment();_+=T.concealedAudio,v+=T.totalAudioDuration,p+=S.getBitrate().download,m+=S.getBitrate().upload}else h+=S.getBitrate().download,g+=S.getBitrate().upload;s[S.getType()].set(x,S.getResolution()),c[S.getType()].set(x,S.getFramerate()),l[S.getType()].set(x,S.getCodec()),S.getType()===`remote`&&(d.set(x,S.getJitter()),S.kind===`audio`&&f.set(x,S.getAudioConcealment())),S.resetBitrate()}return n.bitrate={upload:o,download:a},n.bitrate.audio={upload:m,download:p},n.bitrate.video={upload:g,download:h},n.packetLoss={total:e.calculatePacketLoss(i.download+i.upload,r.download+r.upload),download:e.calculatePacketLoss(i.download,r.download),upload:e.calculatePacketLoss(i.upload,r.upload)},n.audioConcealment=f,n.totalAudioConcealment={concealedAudio:_,totalAudioDuration:v},n.framerate=c,n.resolution=s,n.codec=l,n.jitter=d,n}static calculatePacketLoss(e,t){return!t||t<=0||!e||e<=0?0:Math.round(e/t*100)}},FO=class e{static buildCallFeedReport(t,n,r){var i=r.getTransceivers(),a=[];return i.forEach(t=>{var n,r=(n=t.sender)!=null&&n.track?e.buildTrackStats(t.sender.track,`sender`):null,i=e.buildTrackStats(t.receiver.track,`receiver`);a.push({mid:t.mid==null?`null`:t.mid,direction:t.direction,currentDirection:t.currentDirection==null?`null`:t.currentDirection,sender:r,receiver:i})}),{callId:t,opponentMemberId:n,transceiver:a,callFeeds:[]}}static buildTrackStats(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`--`,n=e.getSettings()?.deviceId,r=e.getConstraints()?.deviceId;return{id:e.id,kind:e.kind,settingDeviceId:n??`unknown`,constrainDeviceId:r??`unknown`,muted:e.muted,enabled:e.enabled,readyState:e.readyState,label:t}}static expandCallFeedReport(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`unknown`;return n.forEach(n=>{var i=n.stream.getAudioTracks(),a=n.stream.getVideoTracks(),o=i.length>0?e.buildTrackStats(n.stream.getAudioTracks()[0],n.purpose):null,s=a.length>0?e.buildTrackStats(n.stream.getVideoTracks()[0],n.purpose):null,c={stream:n.stream.id,type:n.isLocal()?`local`:`remote`,audio:o,video:s,purpose:n.purpose,prefix:r,isVideoMuted:n.isVideoMuted(),isAudioMuted:n.isAudioMuted()};t.callFeeds.push(c)}),t}};function Cre(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function IO(e){for(var t=1;t4&&arguments[4]!==void 0?arguments[4]:!0;this.callId=e,this.opponentMemberId=t,this.pc=n,this.emitter=r,this.isFocus=i,g(this,`isActive`,!0),g(this,`previousStatsReport`,void 0),g(this,`currentStatsReport`,void 0),g(this,`connectionStats`,new hre),g(this,`trackStats`,void 0),n.addEventListener(`signalingstatechange`,this.onSignalStateChange.bind(this)),this.trackStats=new xre(new vre,new yre(n))}processStats(e,t){var n=this;return f(function*(){var r={isFirstCollection:n.previousStatsReport===void 0,receivedMedia:0,receivedAudioMedia:0,receivedVideoMedia:0,audioTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0},videoTrackSummary:{count:0,muted:0,maxPacketLoss:0,maxJitter:0,concealedAudio:0,totalAudio:0}};if(n.isActive){var i=n.pc.getStats();if(typeof i?.then==`function`)return i.then(i=>{n.currentStatsReport=typeof i?.result==`function`?i.result():i;try{n.processStatsReport(e,t)}catch(e){return n.handleError(e),r}n.previousStatsReport=n.currentStatsReport,r.receivedMedia=n.connectionStats.bitrate.download,r.receivedAudioMedia=n.connectionStats.bitrate.audio?.download||0,r.receivedVideoMedia=n.connectionStats.bitrate.video?.download||0;var a=PO.buildTrackSummary(Array.from(n.trackStats.getTrack2stats().values()));return IO(IO({},r),{},{audioTrackSummary:a.audioTrackSummary,videoTrackSummary:a.videoTrackSummary})}).catch(e=>(n.handleError(e),r));n.isActive=!1}return Promise.resolve(r)})()}processStatsReport(e,t){var n,r=new Map;r.callId=this.callId,r.opponentMemberId=this.opponentMemberId,(n=this.currentStatsReport)==null||n.forEach(e=>{var t=this.previousStatsReport?this.previousStatsReport.get(e.id):null;if(e.type===`candidate-pair`&&e.nominated&&e.state===`succeeded`)this.connectionStats.bandwidth=gre.buildBandwidthReport(e),this.connectionStats.transport=_re.buildReport(this.currentStatsReport,e,this.connectionStats.transport,this.isFocus);else if(e.type===`inbound-rtp`||e.type===`outbound-rtp`){var n=this.trackStats.findTrack2Stats(e,e.type===`inbound-rtp`?`remote`:`local`);if(!n)return;if(t&&PO.buildPacketsLost(n,e,t),e.type===`inbound-rtp`){PO.buildFramerateResolution(n,e),t&&PO.buildBitrateReceived(n,e,t);var i=this.trackStats.findTransceiverByTrackId(n.trackId);PO.setTrackStatsState(n,i),PO.buildJitter(n,e),PO.buildAudioConcealment(n,e)}else t&&(r.set(n.trackId,NO.getNonNegativeValue(e.bytesSent)),PO.buildBitrateSend(n,e,t));PO.buildCodec(this.currentStatsReport,n,e)}else if(e.type===`track`&&e.kind===`video`&&!e.remoteSource){var a=this.trackStats.findLocalVideoTrackStats(e);if(!a)return;PO.buildFramerateResolution(a,e),PO.calculateSimulcastFramerate(a,e,t,this.trackStats.mediaTrackHandler.getActiveSimulcastStreams())}}),this.emitter.emitByteSendReport(r),this.emitter.emitCallFeedReport(FO.buildCallFeedReport(this.callId,this.opponentMemberId,this.pc)),this.processAndEmitConnectionStatsReport()}setActive(e){this.isActive=e}getActive(){return this.isActive}handleError(e){this.isActive=!1,N.warn(`CallStatsReportGatherer ${this.callId} processStatsReport fails and set to inactive ${e}`)}processAndEmitConnectionStatsReport(){var e=Sre.build(this.trackStats.getTrack2stats());e.callId=this.callId,e.opponentMemberId=this.opponentMemberId,this.connectionStats.bandwidth=e.bandwidth,this.connectionStats.bitrate=e.bitrate,this.connectionStats.packetLoss=e.packetLoss,this.emitter.emitConnectionStatsReport(IO(IO({},e),{},{transport:this.connectionStats.transport})),this.connectionStats.transport=[]}stopProcessingStats(){}onSignalStateChange(){this.pc.signalingState===`stable`&&(this.pc.currentRemoteDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentRemoteDescription.sdp,`remote`),this.pc.currentLocalDescription&&this.trackStats.mediaSsrcHandler.parse(this.pc.currentLocalDescription.sdp,`local`))}setOpponentMemberId(e){this.opponentMemberId=e}},LO=function(e){return e.CONNECTION_STATS=`StatsReport.connection_stats`,e.CALL_FEED_REPORT=`StatsReport.call_feed_report`,e.BYTE_SENT_STATS=`StatsReport.byte_sent_stats`,e.SUMMARY_STATS=`StatsReport.summary_stats`,e}({}),Tre=class extends TE{emitByteSendReport(e){this.emit(LO.BYTE_SENT_STATS,e)}emitConnectionStatsReport(e){this.emit(LO.CONNECTION_STATS,e)}emitCallFeedReport(e){this.emit(LO.CALL_FEED_REPORT,e)}emitSummaryStatsReport(e){this.emit(LO.SUMMARY_STATS,e)}},Ere=class{constructor(e){this.emitter=e}build(e){var t=e.filter(e=>!e.isFirstCollection),n=t.length,r=e.length;if(n!==0){var i={receivedAudio:0,receivedVideo:0,receivedMedia:0,concealedAudio:0,totalAudio:0},a=0,o=0;t.forEach(e=>{this.countTrackListReceivedMedia(i,e),this.countConcealedAudio(i,e),a=this.buildMaxJitter(a,e),o=this.buildMaxPacketLoss(o,e)});var s=5,c={percentageReceivedMedia:Number((i.receivedMedia/n).toFixed(s)),percentageReceivedVideoMedia:Number((i.receivedVideo/n).toFixed(s)),percentageReceivedAudioMedia:Number((i.receivedAudio/n).toFixed(s)),maxJitter:a,maxPacketLoss:o,percentageConcealedAudio:Number(i.totalAudio>0?(i.concealedAudio/i.totalAudio).toFixed(s):0),peerConnections:r};this.emitter.emitSummaryStatsReport(c)}}static extendSummaryReport(e,t){var n=[],r=[];for(var i of t){r.push(i);for(var a of i[1])n.push(a)}e.opponentDevicesInCall=Math.max(0,n.length-1),e.opponentUsersInCall=Math.max(0,r.length-1),e.diffDevicesToPeerConnections=Math.max(0,n.length-1)-e.peerConnections,e.ratioPeerConnectionToDevices=Math.max(0,n.length-1)==0?0:e.peerConnections/(n.length-1)}countTrackListReceivedMedia(e,t){var n=!1,r=!1;(t.receivedAudioMedia>0||t.audioTrackSummary.count===0)&&(e.receivedAudio++,n=!0),(t.receivedVideoMedia>0||t.videoTrackSummary.count===0||t.videoTrackSummary.muted>0&&t.videoTrackSummary.muted===t.videoTrackSummary.count)&&(e.receivedVideo++,r=!0),r&&n&&e.receivedMedia++}buildMaxJitter(e,t){return e2&&arguments[2]!==void 0?arguments[2]:1e4;this.groupCallId=e,this.userId=t,this.interval=n,g(this,`timer`,void 0),g(this,`gatherers`,new Map),g(this,`reports`,new Tre),g(this,`summaryStatsReportGatherer`,new Ere(this.reports))}start(){this.timer===void 0&&this.interval>0&&(this.timer=setInterval(()=>{this.processStats()},this.interval))}stop(){this.timer!==void 0&&(clearInterval(this.timer),this.gatherers.forEach(e=>e.stopProcessingStats()))}hasStatsReportGatherer(e){return this.gatherers.has(e)}addStatsReportGatherer(e,t,n){return this.hasStatsReportGatherer(e)?!1:(this.gatherers.set(e,new wre(e,t,n,this.reports)),!0)}removeStatsReportGatherer(e){return this.gatherers.delete(e)}getStatsReportGatherer(e){return this.hasStatsReportGatherer(e)?this.gatherers.get(e):void 0}updateOpponentMember(e,t){var n;(n=this.getStatsReportGatherer(e))==null||n.setOpponentMemberId(t)}processStats(){var e=[];this.gatherers.forEach(t=>{e.push(t.processStats(this.groupCallId,this.userId))}),Promise.all(e).then(e=>this.summaryStatsReportGatherer.build(e)).catch(e=>{N.error(`Could not build summary stats report`,e)})}setInterval(e){this.interval=e}};function Ore(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function RO(e){for(var t=1;t9&&arguments[9]!==void 0?arguments[9]:!1,d=arguments.length>10?arguments[10]:void 0;super(),this.client=e,this.room=t,this.type=n,this.isPtt=r,this.intent=i,this.dataChannelsEnabled=o,this.dataChannelOptions=s,this.useLivekit=l,g(this,`activeSpeakerInterval`,1e3),g(this,`retryCallInterval`,5e3),g(this,`participantTimeout`,1e3*15),g(this,`pttMaxTransmitTime`,1e3*20),g(this,`activeSpeaker`,void 0),g(this,`localCallFeed`,void 0),g(this,`localScreenshareFeed`,void 0),g(this,`localDesktopCapturerSourceId`,void 0),g(this,`userMediaFeeds`,[]),g(this,`screenshareFeeds`,[]),g(this,`groupCallId`,void 0),g(this,`allowCallWithoutVideoAndAudio`,void 0),g(this,`calls`,new Map),g(this,`callHandlers`,new Map),g(this,`activeSpeakerLoopInterval`,void 0),g(this,`retryCallLoopInterval`,void 0),g(this,`retryCallCounts`,new Map),g(this,`reEmitter`,void 0),g(this,`transmitTimer`,null),g(this,`participantsExpirationTimer`,null),g(this,`resendMemberStateTimer`,null),g(this,`initWithAudioMuted`,!1),g(this,`initWithVideoMuted`,!1),g(this,`initCallFeedPromise`,void 0),g(this,`_livekitServiceURL`,void 0),g(this,`stats`,void 0),g(this,`statsCollectIntervalTime`,0),g(this,`onConnectionStats`,e=>{this.emit(VO.ConnectionStats,{report:e})}),g(this,`onByteSentStats`,e=>{this.emit(VO.ByteSentStats,{report:e})}),g(this,`onSummaryStats`,e=>{Ere.extendSummaryReport(e,this.participants),this.emit(VO.SummaryStats,{report:e})}),g(this,`onCallFeedReport`,e=>{this.localCallFeed&&(e=FO.expandCallFeedReport(e,[this.localCallFeed],`from-local-feed`));var t=[];this.forEachCall(n=>{n.callId===e.callId&&n.getFeeds().forEach(e=>t.push(e))}),e=FO.expandCallFeedReport(e,t,`from-call-feed`),this.emit(VO.CallFeedStats,{report:e})}),g(this,`_state`,WO.LocalCallFeedUninitialized),g(this,`_participants`,new Map),g(this,`_creationTs`,null),g(this,`_enteredViaAnotherSession`,!1),g(this,`onIncomingCall`,e=>{if(e.roomId===this.room.roomId){if(e.state!==JO.Ringing){N.warn(`GroupCall ${this.groupCallId} onIncomingCall() incoming call no longer in ringing state - ignoring`);return}if(!e.groupCallId||e.groupCallId!==this.groupCallId){N.log(`GroupCall ${this.groupCallId} onIncomingCall() ignored because it doesn't match the current group call`),e.reject();return}var t=e.getOpponentMember()?.userId;if(t===void 0){N.warn(`GroupCall ${this.groupCallId} onIncomingCall() incoming call with no member - ignoring`);return}if(this.useLivekit){N.info(`Received incoming call whilst in signaling-only mode! Ignoring.`);return}var n=this.calls.get(t)??new Map,r=n.get(e.getOpponentDeviceId());if(r?.callId!==e.callId){N.log(`GroupCall ${this.groupCallId} onIncomingCall() incoming call (userId=${t}, callId=${e.callId})`),r&&r.hangup(QO.Replaced,!1),n.set(e.getOpponentDeviceId(),e),this.calls.set(t,n),this.initCall(e);var i=this.getLocalFeeds().map(e=>e.clone());if(!this.callExpected(e))for(var a of i)rk(a.stream.getAudioTracks(),!1),rk(a.stream.getVideoTracks(),!1);e.answerWithCallFeeds(i),this.emit(BO.CallsChanged,this.calls)}}}),g(this,`onRetryCallLoop`,()=>{var e=!1;for(var t of this.participants){var n=u(t,2),r=n[0].userId,i=n[1],a=this.calls.get(r),o=this.retryCallCounts.get(r);for(var s of i){var c=u(s,2),l=c[0],d=c[1],f=a?.get(l),p=o?.get(l)??0;f?.getOpponentSessionId()!==d.sessionId&&this.wantsOutgoingCall(r,l)&&p<3&&(o===void 0&&(o=new Map,this.retryCallCounts.set(r,o)),o.set(l,p+1),e=!0)}}e&&this.placeOutgoingCalls()}),g(this,`onCallFeedsChanged`,e=>{var t=GO(e),n=e.getOpponentDeviceId();if(!t)throw Error(`Cannot change call feeds without user id`);var r=this.getUserMediaFeed(t,n),i=e.remoteUsermediaFeed,a=i!==r;if(this.calls.get(t)?.get(n)?.callId===e.callId){a&&(!r&&i?this.addUserMediaFeed(i):r&&i?this.replaceUserMediaFeed(r,i):r&&!i&&this.removeUserMediaFeed(r));var o=this.getScreenshareFeed(t,n),s=e.remoteScreensharingFeed;s!==o&&(!o&&s?this.addScreenshareFeed(s):o&&s?this.replaceScreenshareFeed(o,s):o&&!s&&this.removeScreenshareFeed(o))}}),g(this,`onCallStateChanged`,(e,t,n)=>{if(t!==JO.Ended){var r=this.localCallFeed.isAudioMuted();e.localUsermediaStream&&e.isMicrophoneMuted()!==r&&e.setMicrophoneMuted(r);var i=this.localCallFeed.isVideoMuted();e.localUsermediaStream&&e.isLocalVideoMuted()!==i&&e.setLocalVideoMuted(i);var a=e.getOpponentMember()?.userId;if(t===JO.Connected&&a){var o=this.retryCallCounts.get(a);o?.delete(e.getOpponentDeviceId()),o?.size===0&&this.retryCallCounts.delete(a)}}}),g(this,`onCallHangup`,e=>{if(e.hangupReason!==QO.Replaced){var t=e.getOpponentMember()?.userId??this.room.getMember(e.invitee).userId,n=this.calls.get(t);n?.get(e.getOpponentDeviceId())===e&&(this.disposeCall(e,e.hangupReason),n.delete(e.getOpponentDeviceId()),n.size===0&&this.calls.delete(t),this.emit(BO.CallsChanged,this.calls))}}),g(this,`onCallReplaced`,(e,t)=>{var n=e.getOpponentMember().userId,r=this.calls.get(n);r===void 0&&(r=new Map,this.calls.set(n,r)),e.hangup(QO.Replaced,!1),this.initCall(t),r.set(e.getOpponentDeviceId(),t),this.emit(BO.CallsChanged,this.calls)}),g(this,`onActiveSpeakerLoop`,()=>{var e=void 0,t=void 0;for(var n of this.userMediaFeeds)if(!(n.isLocal()&&this.userMediaFeeds.length>1)){var r=n.speakingVolumeSamples.reduce((e,t)=>e+Math.max(t,-60))/n.speakingVolumeSamples.length;(!e||r>e)&&(e=r,t=n)}t&&this.activeSpeaker!==t&&e&&e>-60&&(this.activeSpeaker=t,this.emit(BO.ActiveSpeakerChanged,this.activeSpeaker))}),g(this,`onRoomState`,()=>this.updateParticipants()),g(this,`onParticipantsChanged`,()=>{this.forEachCall(e=>{var t=this.callExpected(e);for(var n of e.getLocalFeeds())rk(n.stream.getAudioTracks(),!n.isAudioMuted()&&t),rk(n.stream.getVideoTracks(),!n.isVideoMuted()&&t)}),this.state===WO.Entered&&!this.useLivekit&&this.placeOutgoingCalls()}),g(this,`onStateChanged`,(e,t)=>{(e===WO.Entered||t===WO.Entered||e===WO.Ended)&&(this.updateParticipants(),this.updateMemberState().catch(e=>N.error(`GroupCall ${this.groupCallId} onStateChanged() failed to update member state devices"`,e)))}),g(this,`onLocalFeedsChanged`,()=>{this.state===WO.Entered&&this.updateMemberState().catch(e=>N.error(`GroupCall ${this.groupCallId} onLocalFeedsChanged() failed to update member state feeds`,e))}),this.reEmitter=new vte(this),this.groupCallId=a??tk(),this._livekitServiceURL=d,this.creationTs=t.currentState.getStateEvents(P.GroupCallPrefix,this.groupCallId)?.getTs()??null,this.updateParticipants(),t.on(pj.Update,this.onRoomState),this.on(BO.ParticipantsChanged,this.onParticipantsChanged),this.on(BO.GroupCallStateChanged,this.onStateChanged),this.on(BO.LocalScreenshareStateChanged,this.onLocalFeedsChanged),this.allowCallWithoutVideoAndAudio=!!c}create(){var e=this;return f(function*(){return e.creationTs=Date.now(),e.client.groupCallEventHandler.groupCalls.set(e.room.roomId,e),e.client.emit(MO.Outgoing,e),yield e.sendCallStateEvent(),e})()}sendCallStateEvent(){var e=this;return f(function*(){var t={"m.intent":e.intent,"m.type":e.type,"io.element.ptt":e.isPtt,dataChannelsEnabled:e.dataChannelsEnabled,dataChannelOptions:e.dataChannelsEnabled?e.dataChannelOptions:void 0};e.livekitServiceURL&&(t[`io.element.livekit_service_url`]=e.livekitServiceURL),yield e.client.sendStateEvent(e.room.roomId,P.GroupCallPrefix,t,e.groupCallId)})()}get livekitServiceURL(){return this._livekitServiceURL}updateLivekitServiceURL(e){return this._livekitServiceURL=e,this.sendCallStateEvent()}get state(){return this._state}set state(e){var t=this._state;e!==t&&(this._state=e,this.emit(BO.GroupCallStateChanged,e,t))}get participants(){return this._participants}set participants(e){var t=this._participants,n=(e,t)=>e.sessionId===t.sessionId&&e.screensharing===t.screensharing;Pee(e,t,(e,t)=>Pee(e,t,n))||(this._participants=e,this.emit(BO.ParticipantsChanged,e))}get creationTs(){return this._creationTs}set creationTs(e){this._creationTs=e}get enteredViaAnotherSession(){return this._enteredViaAnotherSession}set enteredViaAnotherSession(e){this._enteredViaAnotherSession=e,this.updateParticipants()}forEachCall(e){for(var t of this.calls.values())for(var n of t.values())e(n)}getLocalFeeds(){var e=[];return this.localCallFeed&&e.push(this.localCallFeed),this.localScreenshareFeed&&e.push(this.localScreenshareFeed),e}hasLocalParticipant(){return this.participants.get(this.room.getMember(this.client.getUserId()))?.has(this.client.getDeviceId())??!1}callExpected(e){var t=GO(e),n=t===null?null:this.room.getMember(t),r=e.getOpponentDeviceId();return n!==null&&r!==void 0&&this.participants.get(n)?.get(r)!==void 0}initLocalCallFeed(){var e=this;return f(function*(){if(e.useLivekit){N.info(`Livekit group call: not starting local call feed.`);return}if(e.state!==WO.LocalCallFeedUninitialized)throw Error(`Cannot initialize local call feed in the "${e.state}" state.`);if(e.state=WO.InitializingLocalCallFeed,e.initCallFeedPromise)return e.initCallFeedPromise;try{e.initCallFeedPromise=e.initLocalCallFeedInternal(),yield e.initCallFeedPromise}finally{e.initCallFeedPromise=void 0}})()}initLocalCallFeedInternal(){var e=this;return f(function*(){N.log(`GroupCall ${e.groupCallId} initLocalCallFeedInternal() running`);var t;try{t=yield e.client.getMediaHandler().getUserMediaStream(!0,e.type===zO.Video)}catch(n){if(e.allowCallWithoutVideoAndAudio)t=new MediaStream;else throw e.state=WO.LocalCallFeedUninitialized,n}if(e._state!==WO.InitializingLocalCallFeed)throw e.client.getMediaHandler().stopUserMediaStream(t),Error(`Group call disposed while gathering media stream`);var n=new AO({client:e.client,roomId:e.room.roomId,userId:e.client.getUserId(),deviceId:e.client.getDeviceId(),stream:t,purpose:EO.Usermedia,audioMuted:e.initWithAudioMuted||t.getAudioTracks().length===0||e.isPtt,videoMuted:e.initWithVideoMuted||t.getVideoTracks().length===0});rk(t.getAudioTracks(),!n.isAudioMuted()),rk(t.getVideoTracks(),!n.isVideoMuted()),e.localCallFeed=n,e.addUserMediaFeed(n),e.state=WO.LocalCallFeedInitialized})()}updateLocalUsermediaStream(e){var t=this;return f(function*(){if(t.localCallFeed){var n=t.localCallFeed.stream;t.localCallFeed.setNewStream(e);var r=t.localCallFeed.isAudioMuted(),i=t.localCallFeed.isVideoMuted();N.log(`GroupCall ${t.groupCallId} updateLocalUsermediaStream() (oldStreamId=${n.id}, newStreamId=${e.id}, micShouldBeMuted=${r}, vidShouldBeMuted=${i})`),rk(e.getAudioTracks(),!r),rk(e.getVideoTracks(),!i),t.client.getMediaHandler().stopUserMediaStream(n)}})()}enter(){var e=this;return f(function*(){if(e.state===WO.LocalCallFeedUninitialized)yield e.initLocalCallFeed();else if(e.state!==WO.LocalCallFeedInitialized)throw Error(`Cannot enter call in the "${e.state}" state`);N.log(`GroupCall ${e.groupCallId} enter() running`),e.state=WO.Entered,e.client.on(jO.Incoming,e.onIncomingCall);for(var t of e.client.callEventHandler.calls.values())e.onIncomingCall(t);e.useLivekit||(e.retryCallLoopInterval=setInterval(e.onRetryCallLoop,e.retryCallInterval),e.activeSpeaker=void 0,e.onActiveSpeakerLoop(),e.activeSpeakerLoopInterval=setInterval(e.onActiveSpeakerLoop,e.activeSpeakerInterval))})()}dispose(){var e;this.localCallFeed&&=(this.removeUserMediaFeed(this.localCallFeed),void 0),this.localScreenshareFeed&&(this.client.getMediaHandler().stopScreensharingStream(this.localScreenshareFeed.stream),this.removeScreenshareFeed(this.localScreenshareFeed),this.localScreenshareFeed=void 0,this.localDesktopCapturerSourceId=void 0),this.client.getMediaHandler().stopAllStreams(),this.transmitTimer!==null&&(clearTimeout(this.transmitTimer),this.transmitTimer=null),this.retryCallLoopInterval!==void 0&&(clearInterval(this.retryCallLoopInterval),this.retryCallLoopInterval=void 0),this.participantsExpirationTimer!==null&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null),this.state===WO.Entered&&(this.forEachCall(e=>e.hangup(QO.UserHangup,!1)),this.activeSpeaker=void 0,clearInterval(this.activeSpeakerLoopInterval),this.retryCallCounts.clear(),clearInterval(this.retryCallLoopInterval),this.client.removeListener(jO.Incoming,this.onIncomingCall),(e=this.stats)==null||e.stop())}leave(){this.dispose(),this.state=WO.LocalCallFeedUninitialized}terminate(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:!0;if(t.dispose(),t.room.off(pj.Update,t.onRoomState),t.client.groupCallEventHandler.groupCalls.delete(t.room.roomId),t.client.emit(MO.Ended,t),t.state=WO.Ended,n){var r=t.room.currentState.getStateEvents(P.GroupCallPrefix,t.groupCallId);yield t.client.sendStateEvent(t.room.roomId,P.GroupCallPrefix,RO(RO({},r.getContent()),{},{"m.terminated":Are.CallEnded}),t.groupCallId)}})()}isLocalVideoMuted(){return this.localCallFeed?this.localCallFeed.isVideoMuted():!0}isMicrophoneMuted(){return this.localCallFeed?this.localCallFeed.isAudioMuted():!0}setMicrophoneMuted(e){var t=this;return f(function*(){if(!e&&!(yield t.client.getMediaHandler().hasAudioDevice()))return!1;var n=!e&&t.isPtt;t.isPtt&&(!e&&t.isMicrophoneMuted()?t.transmitTimer=setTimeout(()=>{t.setMicrophoneMuted(!0)},t.pttMaxTransmitTime):e&&!t.isMicrophoneMuted()&&(t.transmitTimer!==null&&clearTimeout(t.transmitTimer),t.transmitTimer=null)),t.forEachCall(t=>t.localUsermediaFeed?.setAudioVideoMuted(e,null));var r=function(){var e=f(function*(){var e=[];t.forEachCall(t=>e.push(t.sendMetadataUpdate())),yield Promise.all(e).catch(e=>N.info(`GroupCall ${t.groupCallId} setMicrophoneMuted() failed to send some metadata updates`,e))});return function(){return e.apply(this,arguments)}}();if(n&&(yield r()),t.localCallFeed){if(N.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() (streamId=${t.localCallFeed.stream.id}, muted=${e})`),!(yield t.checkAudioPermissionIfNecessary(e)))return!1;t.localCallFeed.setAudioVideoMuted(e,null),rk(t.localCallFeed.stream.getAudioTracks(),!e)}else N.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no stream muted (muted=${e})`),t.initWithAudioMuted=e;return t.forEachCall(n=>rk(n.localUsermediaFeed.stream.getAudioTracks(),!e&&t.callExpected(n))),t.emit(BO.LocalMuteStateChanged,e,t.isLocalVideoMuted()),n||(yield r()),!0})()}checkAudioPermissionIfNecessary(e){var t=this;return f(function*(){try{if(!e&&t.localCallFeed&&!t.localCallFeed.hasAudioTrack&&(yield t.client.getMediaHandler().getUserMediaStream(!0,!t.localCallFeed.isVideoMuted()))?.getTracks().length===0)return N.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no device to receive local stream, muted=${e}`),!1}catch{return N.log(`GroupCall ${t.groupCallId} setMicrophoneMuted() no device or permission to receive local stream, muted=${e}`),!1}return!0})()}setLocalVideoMuted(e){var t=this;return f(function*(){if(!e&&!(yield t.client.getMediaHandler().hasVideoDevice()))return!1;if(t.localCallFeed){N.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() (stream=${t.localCallFeed.stream.id}, muted=${e})`);try{var n=yield t.client.getMediaHandler().getUserMediaStream(!0,!e);yield t.updateLocalUsermediaStream(n),t.localCallFeed.setAudioVideoMuted(null,e),rk(t.localCallFeed.stream.getVideoTracks(),!e)}catch{return N.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() no device or permission to receive local stream, muted=${e}`),!1}}else N.log(`GroupCall ${t.groupCallId} setLocalVideoMuted() no stream muted (muted=${e})`),t.initWithVideoMuted=e;var r=[];return t.forEachCall(t=>r.push(t.setLocalVideoMuted(e))),yield Promise.all(r),t.forEachCall(n=>rk(n.localUsermediaFeed.stream.getVideoTracks(),!e&&t.callExpected(n))),t.emit(BO.LocalMuteStateChanged,t.isMicrophoneMuted(),e),!0})()}setScreensharingEnabled(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};if(e===n.isScreensharing())return e;if(e)try{N.log(`GroupCall ${n.groupCallId} setScreensharingEnabled() is asking for screensharing permissions`);var i=yield n.client.getMediaHandler().getScreensharingStream(r),a=function*(e){var t=()=>{n.setScreensharingEnabled(!1),e.removeEventListener(`ended`,t)};e.addEventListener(`ended`,t)};for(var o of i.getTracks())yield*a(o);return N.log(`GroupCall ${n.groupCallId} setScreensharingEnabled() granted screensharing permissions. Setting screensharing enabled on all calls`),n.localDesktopCapturerSourceId=r.desktopCapturerSourceId,n.localScreenshareFeed=new AO({client:n.client,roomId:n.room.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId(),stream:i,purpose:EO.Screenshare,audioMuted:!1,videoMuted:!1}),n.addScreenshareFeed(n.localScreenshareFeed),n.emit(BO.LocalScreenshareStateChanged,!0,n.localScreenshareFeed,n.localDesktopCapturerSourceId),n.forEachCall(e=>e.pushLocalFeed(n.localScreenshareFeed.clone())),!0}catch(e){if(r.throwOnFail)throw e;return N.error(`GroupCall ${n.groupCallId} setScreensharingEnabled() enabling screensharing error`,e),n.emit(BO.Error,new UO(HO.NoUserMedia,`Failed to get screen-sharing stream: `,e)),!1}else return n.forEachCall(e=>{e.localScreensharingFeed&&e.removeLocalFeed(e.localScreensharingFeed)}),n.client.getMediaHandler().stopScreensharingStream(n.localScreenshareFeed.stream),n.removeScreenshareFeed(n.localScreenshareFeed),n.localScreenshareFeed=void 0,n.localDesktopCapturerSourceId=void 0,n.emit(BO.LocalScreenshareStateChanged,!1,void 0,void 0),!1})()}isScreensharing(){return!!this.localScreenshareFeed}wantsOutgoingCall(e,t){var n=this.client.getUserId(),r=this.client.getDeviceId();return e>=n&&(e!==n||t>r)}placeOutgoingCalls(){var e=this,t=!1,n=function(){r=u(i,2);var n=r[0].userId,a=r[1],o=e.calls.get(n)??new Map,s=function(){c=u(l,2);var r=c[0],i=c[1],a=o.get(r);if(a?.getOpponentSessionId()!==i.sessionId&&e.wantsOutgoingCall(n,r)){t=!0,a!==void 0&&(N.debug(`GroupCall ${e.groupCallId} placeOutgoingCalls() replacing call (userId=${n}, deviceId=${r}, callId=${a.callId})`),a.hangup(QO.NewSession,!1));var s=ak(e.client,e.room.roomId,{invitee:n,opponentDeviceId:r,opponentSessionId:i.sessionId,groupCallId:e.groupCallId});s===null?(N.error(`GroupCall ${e.groupCallId} placeOutgoingCalls() failed to create call (userId=${n}, device=${r})`),o.delete(r)):(e.initCall(s),o.set(r,s),N.debug(`GroupCall ${e.groupCallId} placeOutgoingCalls() placing call (userId=${n}, deviceId=${r}, sessionId=${i.sessionId})`),s.placeCallWithCallFeeds(e.getLocalFeeds().map(e=>e.clone()),i.screensharing).then(()=>{e.dataChannelsEnabled&&s.createDataChannel(`datachannel`,e.dataChannelOptions)}).catch(t=>{N.warn(`GroupCall ${e.groupCallId} placeOutgoingCalls() failed to place call (userId=${n})`,t),t instanceof ek&&t.code===HO.UnknownDevice?e.emit(BO.Error,t):e.emit(BO.Error,new UO(HO.PlaceCallFailed,`Failed to place call to ${n}`)),s.hangup(QO.SignallingFailed,!1),o.get(r)===s&&o.delete(r)}))}},c;for(var l of a)s();o.size>0?e.calls.set(n,o):e.calls.delete(n)},r;for(var i of this.participants)n();t&&this.emit(BO.CallsChanged,this.calls)}getMemberStateEvents(e){return e===void 0?this.room.currentState.getStateEvents(P.GroupCallMemberPrefix):this.room.currentState.getStateEvents(P.GroupCallMemberPrefix,e)}initCall(e){var t=GO(e);if(!t)throw Error(`Cannot init call without user id`);var n=()=>this.onCallFeedsChanged(e),r=(t,n)=>this.onCallStateChanged(e,t,n),i=this.onCallHangup,a=t=>this.onCallReplaced(e,t),o=this.callHandlers.get(t);o===void 0&&(o=new Map,this.callHandlers.set(t,o)),o.set(e.getOpponentDeviceId(),{onCallFeedsChanged:n,onCallStateChanged:r,onCallHangup:i,onCallReplaced:a}),e.on(ZO.FeedsChanged,n),e.on(ZO.State,r),e.on(ZO.Hangup,i),e.on(ZO.Replaced,a),e.isPtt=this.isPtt,this.reEmitter.reEmit(e,Object.values(ZO)),e.initStats(this.getGroupCallStats()),n()}disposeCall(e,t){var n=GO(e),r=e.getOpponentDeviceId();if(!n)throw Error(`Cannot dispose call without user id`);var i=this.callHandlers.get(n),a=i.get(r),o=a.onCallFeedsChanged,s=a.onCallStateChanged,c=a.onCallHangup,l=a.onCallReplaced;if(e.removeListener(ZO.FeedsChanged,o),e.removeListener(ZO.State,s),e.removeListener(ZO.Hangup,c),e.removeListener(ZO.Replaced,l),i.delete(n),i.size===0&&this.callHandlers.delete(n),e.hangupReason!==QO.Replaced){var u=this.getUserMediaFeed(n,r);u&&this.removeUserMediaFeed(u);var d=this.getScreenshareFeed(n,r);d&&this.removeScreenshareFeed(d)}}getUserMediaFeed(e,t){return this.userMediaFeeds.find(n=>n.userId===e&&n.deviceId===t)}addUserMediaFeed(e){this.userMediaFeeds.push(e),e.measureVolumeActivity(!0),this.emit(BO.UserMediaFeedsChanged,this.userMediaFeeds)}replaceUserMediaFeed(e,t){var n=this.userMediaFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(n===-1)throw Error(`Couldn't find user media feed to replace`);this.userMediaFeeds.splice(n,1,t),e.dispose(),t.measureVolumeActivity(!0),this.emit(BO.UserMediaFeedsChanged,this.userMediaFeeds)}removeUserMediaFeed(e){var t=this.userMediaFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(t===-1)throw Error(`Couldn't find user media feed to remove`);this.userMediaFeeds.splice(t,1),e.dispose(),this.emit(BO.UserMediaFeedsChanged,this.userMediaFeeds),this.activeSpeaker===e&&(this.activeSpeaker=this.userMediaFeeds[0],this.emit(BO.ActiveSpeakerChanged,this.activeSpeaker))}getScreenshareFeed(e,t){return this.screenshareFeeds.find(n=>n.userId===e&&n.deviceId===t)}addScreenshareFeed(e){this.screenshareFeeds.push(e),this.emit(BO.ScreenshareFeedsChanged,this.screenshareFeeds)}replaceScreenshareFeed(e,t){var n=this.screenshareFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(n===-1)throw Error(`Couldn't find screenshare feed to replace`);this.screenshareFeeds.splice(n,1,t),e.dispose(),this.emit(BO.ScreenshareFeedsChanged,this.screenshareFeeds)}removeScreenshareFeed(e){var t=this.screenshareFeeds.findIndex(t=>t.userId===e.userId&&t.deviceId===e.deviceId);if(t===-1)throw Error(`Couldn't find screenshare feed to remove`);this.screenshareFeeds.splice(t,1),e.dispose(),this.emit(BO.ScreenshareFeedsChanged,this.screenshareFeeds)}updateParticipants(){var e=this.room.getMember(this.client.getSafeUserId());if(!e){N.warn(`GroupCall ${this.groupCallId} updateParticipants() tried to update participants before local room member is available`);return}if(this.participantsExpirationTimer!==null&&(clearTimeout(this.participantsExpirationTimer),this.participantsExpirationTimer=null),this.state===WO.Ended){this.participants=new Map;return}var t=new Map,n=Date.now(),r=this.state===WO.Entered||this.enteredViaAnotherSession,i=1/0;for(var a of this.getMemberStateEvents()){var o=this.room.getMember(a.getStateKey()),s=a.getContent(),c=(Array.isArray(s[`m.calls`])?s[`m.calls`]:[]).find(e=>e[`m.call_id`]===this.groupCallId),l=(Array.isArray(c?.[`m.devices`])?c[`m.devices`]:[]).filter(e=>typeof e.device_id==`string`&&typeof e.session_id==`string`&&typeof e.expires_ts==`number`&&e.expires_ts>n&&Array.isArray(e.feeds));if(!r&&o?.userId===this.client.getUserId()&&(l=l.filter(e=>e.device_id!==this.client.getDeviceId())),l.length>0&&o?.membership===zE.Join){var u=new Map;t.set(o,u);for(var d of l)u.set(d.device_id,{sessionId:d.session_id,screensharing:d.feeds.some(e=>e.purpose===EO.Screenshare)}),d.expires_tse.purpose===EO.Screenshare)})}this.participants=t,i<1/0&&(this.participantsExpirationTimer=setTimeout(()=>this.updateParticipants(),i-n))}updateDevices(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1,i=Date.now(),a=n.client.getUserId(),o=n.getMemberStateEvents(a)?.getContent()??{},s=Array.isArray(o[`m.calls`])?o[`m.calls`]:[],c=null,l=[];for(var u of s)u[`m.call_id`]===n.groupCallId?c=u:l.push(u);c===null&&(c={});var d=e((Array.isArray(c[`m.devices`])?c[`m.devices`]:[]).filter(e=>typeof e.device_id==`string`&&typeof e.session_id==`string`&&typeof e.expires_ts==`number`&&e.expires_ts>i&&Array.isArray(e.feeds)));if(d!==null){var f=[...l];d.length>0&&f.push(RO(RO({},c),{},{"m.call_id":n.groupCallId,"m.devices":d}));var p={"m.calls":f};yield n.client.sendStateEvent(n.room.roomId,P.GroupCallMemberPrefix,p,a,{keepAlive:r})}})()}addDeviceToMemberState(){var e=this;return f(function*(){yield e.updateDevices(t=>[...t.filter(t=>t.device_id!==e.client.getDeviceId()),{device_id:e.client.getDeviceId(),session_id:e.client.getSessionId(),expires_ts:Date.now()+Mre,feeds:e.getLocalFeeds().map(e=>({purpose:e.purpose}))}])})()}updateMemberState(){var e=this;return f(function*(){e.resendMemberStateTimer!==null&&(clearInterval(e.resendMemberStateTimer),e.resendMemberStateTimer=null),e.state===WO.Entered?(yield e.addDeviceToMemberState(),e.resendMemberStateTimer=setInterval(f(function*(){N.log(`GroupCall ${e.groupCallId} updateMemberState() resending call member state"`);try{yield e.addDeviceToMemberState()}catch(t){N.error(`GroupCall ${e.groupCallId} updateMemberState() failed to resend call member state`,t)}}),Mre*3/4)):yield e.updateDevices(t=>t.filter(t=>t.device_id!==e.client.getDeviceId()),!0)})()}cleanMemberState(){var e=this;return f(function*(){var t=(yield e.client.getDevices()).devices,n=new Map(t.map(e=>[e.device_id,e]));yield e.updateDevices(t=>{var r=t.filter(t=>n.get(t.device_id)?.last_seen_ts!==void 0&&!(t.device_id===e.client.getDeviceId()&&e.state!==WO.Entered&&!e.enteredViaAnotherSession));return r.length===t.length?null:r})})()}getGroupCallStats(){if(this.stats===void 0){var e=this.client.getUserId()||`unknown`;this.stats=new Dre(this.groupCallId,e,this.statsCollectIntervalTime),this.stats.reports.on(LO.CONNECTION_STATS,this.onConnectionStats),this.stats.reports.on(LO.BYTE_SENT_STATS,this.onByteSentStats),this.stats.reports.on(LO.SUMMARY_STATS,this.onSummaryStats),this.stats.reports.on(LO.CALL_FEED_REPORT,this.onCallFeedReport)}return this.stats}setGroupCallStatsInterval(e){this.statsCollectIntervalTime=e,this.stats!==void 0&&(this.stats.stop(),this.stats.setInterval(e),e>0&&this.stats.start())}};function Nre(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qO(e){for(var t=1;t{if(e.candidate){if(this.candidatesEnded&&N.warn(`Call ${this.callId} gotLocalIceCandidate() got candidate after candidates have ended!`),N.debug(`Call ${this.callId} got local ICE ${e.candidate.sdpMid} ${e.candidate.candidate}`),this.callHasEnded())return;e.candidate.candidate===``?this.queueCandidate(null):this.queueCandidate(e.candidate)}}),g(this,`onIceGatheringStateChange`,e=>{N.debug(`Call ${this.callId} onIceGatheringStateChange() ice gathering state changed to ${this.peerConn.iceGatheringState}`),this.peerConn?.iceGatheringState===`complete`&&(this.queueCandidate(null),N.debug(`Call ${this.callId} onIceGatheringStateChange() ice gathering state complete, set candidates have ended`))}),g(this,`getLocalOfferFailed`,e=>{N.error(`Call ${this.callId} getLocalOfferFailed() running`,e),this.emit(ZO.Error,new ek(QO.LocalOfferFailed,`Failed to get local offer!`,e),this),this.terminate(XO.Local,QO.LocalOfferFailed,!1)}),g(this,`getUserMediaFailed`,e=>{if(this.successor){this.successor.getUserMediaFailed(e);return}N.warn(`Call ${this.callId} getUserMediaFailed() failed to get user media - ending call`,e),this.emit(ZO.Error,new ek(QO.NoUserMedia,`Couldn't start capturing media! Is your microphone set up and does this app have permission?`,e),this),this.terminate(XO.Local,QO.NoUserMedia,!1)}),g(this,`placeCallFailed`,e=>{if(this.successor){this.successor.placeCallFailed(e);return}N.warn(`Call ${this.callId} placeCallWithCallFeeds() failed - ending call`,e),this.emit(ZO.Error,new ek(QO.IceFailed,`Couldn't start call! Invalid ICE server configuration.`,e),this),this.terminate(XO.Local,QO.IceFailed,!1)}),g(this,`onIceConnectionStateChanged`,()=>{if(!this.callHasEnded()){if(N.debug(`Call ${this.callId} onIceConnectionStateChanged() running (state=${this.peerConn?.iceConnectionState}, conn=${this.peerConn?.connectionState})`),[`connected`,`completed`].includes(this.peerConn?.iceConnectionState??``))clearTimeout(this.iceDisconnectedTimeout),this.iceDisconnectedTimeout=void 0,this.iceReconnectionTimeOut&&clearTimeout(this.iceReconnectionTimeOut),this.state=JO.Connected,!this.callLengthInterval&&!this.callStartTime&&(this.callStartTime=Date.now(),this.callLengthInterval=setInterval(()=>{this.emit(ZO.LengthChanged,Math.round((Date.now()-this.callStartTime)/1e3),this)},Lre));else if(this.peerConn?.iceConnectionState==`failed`){var e;this.candidatesEnded=!1,(e=this.peerConn)!=null&&e.restartIce?(this.candidatesEnded=!1,N.debug(`Call ${this.callId} onIceConnectionStateChanged() ice restart (state=${this.peerConn?.iceConnectionState})`),this.peerConn.restartIce()):(N.info(`Call ${this.callId} onIceConnectionStateChanged() hanging up call (ICE failed and no ICE restart method)`),this.hangup(QO.IceFailed,!1))}else this.peerConn?.iceConnectionState==`disconnected`&&(this.candidatesEnded=!1,this.iceReconnectionTimeOut=setTimeout(()=>{var e;N.info(`Call ${this.callId} onIceConnectionStateChanged() ICE restarting because of ICE disconnected, (state=${this.peerConn?.iceConnectionState}, conn=${this.peerConn?.connectionState})`),(e=this.peerConn)!=null&&e.restartIce&&(this.candidatesEnded=!1,this.peerConn.restartIce()),this.iceReconnectionTimeOut=void 0},zre),this.iceDisconnectedTimeout=setTimeout(()=>{N.info(`Call ${this.callId} onIceConnectionStateChanged() hanging up call (ICE disconnected for too long)`),this.hangup(QO.IceFailed,!1)},Rre),this.state=JO.Connecting);if(this.isPtt&&[`failed`,`disconnected`].includes(this.peerConn.iceConnectionState))for(var t of this.getRemoteFeeds())t.setAudioVideoMuted(!0,!0)}}),g(this,`onSignallingStateChanged`,()=>{N.debug(`Call ${this.callId} onSignallingStateChanged() running (state=${this.peerConn?.signalingState})`)}),g(this,`onTrack`,e=>{if(e.streams.length===0){N.warn(`Call ${this.callId} onTrack() called with streamless track streamless (kind=${e.track.kind})`);return}var t=e.streams[0];if(this.pushRemoteFeed(t),!this.removeTrackListeners.has(t)){var n=()=>{t.getTracks().length===0&&(N.info(`Call ${this.callId} onTrack() removing track (streamId=${t.id})`),this.deleteFeedByStream(t),t.removeEventListener(`removetrack`,n),this.removeTrackListeners.delete(t))};t.addEventListener(`removetrack`,n),this.removeTrackListeners.set(t,n)}}),g(this,`onDataChannel`,e=>{this.emit(ZO.DataChannel,e.channel,this)}),g(this,`onNegotiationNeeded`,f(function*(){if(N.info(`Call ${t.callId} onNegotiationNeeded() negotiation is needed!`),t.state!==JO.CreateOffer&&t.opponentVersion===0){N.info(`Call ${t.callId} onNegotiationNeeded() opponent does not support renegotiation: ignoring negotiationneeded event`);return}t.queueGotLocalOffer()})),g(this,`onHangupReceived`,e=>{N.debug(`Call ${this.callId} onHangupReceived() running`),this.partyIdMatches(e)||this.state===JO.Ringing?this.terminate(XO.Remote,e.reason||QO.UserHangup,!0):N.info(`Call ${this.callId} onHangupReceived() ignoring message from party ID ${e.party_id}: our partner is ${this.opponentPartyId}`)}),g(this,`onRejectReceived`,e=>{N.debug(`Call ${this.callId} onRejectReceived() running`),[JO.InviteSent,JO.Ringing].includes(this.state)||this.state===JO.Fledgling&&this.direction===YO.Inbound?this.terminate(XO.Remote,e.reason||QO.UserHangup,!0):N.debug(`Call ${this.callId} onRejectReceived() called in wrong state (state=${this.state})`)}),g(this,`onAnsweredElsewhere`,e=>{N.debug(`Call ${this.callId} onAnsweredElsewhere() running`),this.terminate(XO.Remote,QO.AnsweredElsewhere,!0)}),this.roomId=e.roomId,this.invitee=e.invitee,this.client=e.client,!this.client.deviceId)throw Error(`Client must have a device ID to start calls`);this.forceTURN=e.forceTURN??!1,this.ourPartyId=this.client.deviceId,this.opponentDeviceId=e.opponentDeviceId,this.opponentSessionId=e.opponentSessionId,this.groupCallId=e.groupCallId,this.turnServers=e.turnServers||[],this.turnServers.length===0&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:[Ire]});for(var n of this.turnServers)_ee(n,[`urls`]);this.callId=tk(),this.isOnlyDataChannelAllowed=this.client.isVoipWithNoMediaAllowed}placeVoiceCall(){var e=this;return f(function*(){yield e.placeCall(!0,!1)})()}placeVideoCall(){var e=this;return f(function*(){yield e.placeCall(!0,!0)})()}createDataChannel(e,t){var n=this.peerConn.createDataChannel(e,t);return this.emit(ZO.DataChannel,n,this),n}getOpponentMember(){return this.opponentMember}getOpponentDeviceId(){return this.opponentDeviceId}getOpponentSessionId(){return this.opponentSessionId}opponentCanBeTransferred(){return!!(this.opponentCaps&&this.opponentCaps[`m.call.transferee`])}opponentSupportsDTMF(){return!!(this.opponentCaps&&this.opponentCaps[`m.call.dtmf`])}getRemoteAssertedIdentity(){return this.remoteAssertedIdentity}get state(){return this._state}set state(e){var t=this._state;this._state=e,this.emit(ZO.State,e,t,this)}get type(){return this.hasUserMediaVideoSender||this.hasRemoteUserMediaVideoTrack?Pre.Video:Pre.Voice}get hasLocalUserMediaVideoTrack(){var e;return!!((e=this.localUsermediaStream)!=null&&e.getVideoTracks().length)}get hasRemoteUserMediaVideoTrack(){return this.getRemoteFeeds().some(e=>e.purpose===EO.Usermedia&&e.stream?.getVideoTracks().length)}get hasLocalUserMediaAudioTrack(){var e;return!!((e=this.localUsermediaStream)!=null&&e.getAudioTracks().length)}get hasRemoteUserMediaAudioTrack(){return this.getRemoteFeeds().some(e=>{var t;return e.purpose===EO.Usermedia&&!!((t=e.stream)!=null&&t.getAudioTracks().length)})}get hasUserMediaAudioSender(){return!!this.transceivers.get(nk(EO.Usermedia,`audio`))?.sender}get hasUserMediaVideoSender(){return!!this.transceivers.get(nk(EO.Usermedia,`video`))?.sender}get localUsermediaFeed(){return this.getLocalFeeds().find(e=>e.purpose===EO.Usermedia)}get localScreensharingFeed(){return this.getLocalFeeds().find(e=>e.purpose===EO.Screenshare)}get localUsermediaStream(){return this.localUsermediaFeed?.stream}get localScreensharingStream(){return this.localScreensharingFeed?.stream}get remoteUsermediaFeed(){return this.getRemoteFeeds().find(e=>e.purpose===EO.Usermedia)}get remoteScreensharingFeed(){return this.getRemoteFeeds().find(e=>e.purpose===EO.Screenshare)}get remoteUsermediaStream(){return this.remoteUsermediaFeed?.stream}get remoteScreensharingStream(){return this.remoteScreensharingFeed?.stream}getFeedByStreamId(e){return this.getFeeds().find(t=>t.stream.id===e)}getFeeds(){return this.feeds}getLocalFeeds(){return this.feeds.filter(e=>e.isLocal())}getRemoteFeeds(){return this.feeds.filter(e=>!e.isLocal())}initOpponentCrypto(){var e=this;return f(function*(){if(e.opponentDeviceId&&e.client.getUseE2eForGroupCall()){if(!e.client.getCrypto()){e.hasOpponentDeviceInfo=!0;return}var t=e.invitee||e.getOpponentMember()?.userId;throw t?(e.hasOpponentDeviceInfo=!1,new jre(t)):Error(`Couldn't find opponent user ID to init crypto`)}})()}getLocalSDPStreamMetadata(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t={};for(var n of this.getLocalFeeds())e&&(n.sdpMetadataStreamId=n.stream.id),t[n.sdpMetadataStreamId]={purpose:n.purpose,audio_muted:n.isAudioMuted(),video_muted:n.isVideoMuted()};return t}noIncomingFeeds(){return!this.feeds.some(e=>!e.isLocal())}pushRemoteFeed(e){if(!this.opponentSupportsSDPStreamMetadata()){this.pushRemoteFeedWithoutMetadata(e);return}var t=this.getOpponentMember().userId,n=this.remoteSDPStreamMetadata[e.id].purpose,r=this.remoteSDPStreamMetadata[e.id].audio_muted,i=this.remoteSDPStreamMetadata[e.id].video_muted;if(!n){N.warn(`Call ${this.callId} pushRemoteFeed() ignoring stream because we didn't get any metadata about it (streamId=${e.id})`);return}if(this.getFeedByStreamId(e.id)){N.warn(`Call ${this.callId} pushRemoteFeed() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.feeds.push(new AO({client:this.client,call:this,roomId:this.roomId,userId:t,deviceId:this.getOpponentDeviceId(),stream:e,purpose:n,audioMuted:r,videoMuted:i})),this.emit(ZO.FeedsChanged,this.feeds,this),N.info(`Call ${this.callId} pushRemoteFeed() pushed stream (streamId=${e.id}, active=${e.active}, purpose=${n})`)}pushRemoteFeedWithoutMetadata(e){var t=this.getOpponentMember().userId,n=EO.Usermedia,r=this.feeds.find(e=>!e.isLocal())?.stream;if(r&&e.id!==r.id){N.warn(`Call ${this.callId} pushRemoteFeedWithoutMetadata() ignoring new stream because we already have stream (streamId=${e.id})`);return}if(this.getFeedByStreamId(e.id)){N.warn(`Call ${this.callId} pushRemoteFeedWithoutMetadata() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.feeds.push(new AO({client:this.client,call:this,roomId:this.roomId,audioMuted:!1,videoMuted:!1,userId:t,deviceId:this.getOpponentDeviceId(),stream:e,purpose:n})),this.emit(ZO.FeedsChanged,this.feeds,this),N.info(`Call ${this.callId} pushRemoteFeedWithoutMetadata() pushed stream (streamId=${e.id}, active=${e.active})`)}pushNewLocalFeed(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,r=this.client.getUserId();if(rk(e.getAudioTracks(),!0),rk(e.getVideoTracks(),!0),this.getFeedByStreamId(e.id)){N.warn(`Call ${this.callId} pushNewLocalFeed() ignoring stream because we already have a feed for it (streamId=${e.id})`);return}this.pushLocalFeed(new AO({client:this.client,roomId:this.roomId,audioMuted:!1,videoMuted:!1,userId:r,deviceId:this.getOpponentDeviceId(),stream:e,purpose:t}),n)}pushLocalFeed(e){var t=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(this.feeds.some(t=>e.stream.id===t.stream.id)){N.info(`Call ${this.callId} pushLocalFeed() ignoring duplicate local stream (streamId=${e.stream.id})`);return}if(this.feeds.push(e),n){var r=function(){N.info(`Call ${t.callId} pushLocalFeed() adding track to peer connection (id=${i.id}, kind=${i.kind}, streamId=${e.stream.id}, streamPurpose=${e.purpose}, enabled=${i.enabled})`);var n=nk(e.purpose,i.kind);if(t.transceivers.has(n)){var r=t.transceivers.get(n);r.sender.replaceTrack(i),r.direction=r.direction===`inactive`?`sendonly`:`sendrecv`}else{var a=t.peerConn.addTrack(i,e.stream),o=t.peerConn.getTransceivers().find(e=>e.sender===a);o?t.transceivers.set(n,o):N.warn(`Call ${t.callId} pushLocalFeed() didn't find a matching transceiver after adding track!`)}};for(var i of e.stream.getTracks())r()}N.info(`Call ${this.callId} pushLocalFeed() pushed stream (id=${e.stream.id}, active=${e.stream.active}, purpose=${e.purpose})`),this.emit(ZO.FeedsChanged,this.feeds,this)}removeLocalFeed(e){for(var t of[nk(e.purpose,`audio`),nk(e.purpose,`video`)])if(this.transceivers.has(t)){var n=this.transceivers.get(t);n.sender&&this.peerConn.removeTrack(n.sender)}e.purpose===EO.Screenshare&&this.client.getMediaHandler().stopScreensharingStream(e.stream),this.deleteFeed(e)}deleteAllFeeds(){for(var e of this.feeds)(!e.isLocal()||!this.groupCallId)&&e.dispose();this.feeds=[],this.emit(ZO.FeedsChanged,this.feeds,this)}deleteFeedByStream(e){var t=this.getFeedByStreamId(e.id);if(!t){N.warn(`Call ${this.callId} deleteFeedByStream() didn't find the feed to delete (streamId=${e.id})`);return}this.deleteFeed(t)}deleteFeed(e){e.dispose(),this.feeds.splice(this.feeds.indexOf(e),1),this.emit(ZO.FeedsChanged,this.feeds,this)}getCurrentCallStats(){var e=this;return f(function*(){return e.callHasEnded()?e.callStatsAtEnd:e.collectCallStats()})()}collectCallStats(){var e=this;return f(function*(){if(e.peerConn){var t=yield e.peerConn.getStats(),n=[];return t.forEach(e=>{n.push(e)}),n}})()}initWithInvite(e){var t=this;return f(function*(){var n=e.getContent();t.direction=YO.Inbound,(yield t.client.checkTurnServers())||N.warn(`Call ${t.callId} initWithInvite() failed to get TURN credentials! Proceeding with call anyway...`);var r=TO.findIn(n);r?t.updateRemoteSDPStreamMetadata(r):N.debug(`Call ${t.callId} initWithInvite() did not get any SDPStreamMetadata! Can not send/receive multiple streams`),t.peerConn=t.createPeerConnection(),t.emit(ZO.PeerConnectionCreated,t.peerConn,t),t.chooseOpponent(e),yield t.initOpponentCrypto();try{yield t.peerConn.setRemoteDescription(n.offer),N.debug(`Call ${t.callId} initWithInvite() set remote description: ${n.offer.type}`),yield t.addBufferedIceCandidates()}catch(e){N.debug(`Call ${t.callId} initWithInvite() failed to set remote description`,e),t.terminate(XO.Local,QO.SetRemoteDescription,!1);return}var i=t.feeds.find(e=>!e.isLocal())?.stream;if(!t.isOnlyDataChannelAllowed&&(!i||i.getTracks().length===0)){N.error(`Call ${t.callId} initWithInvite() no remote stream or no tracks after setting remote description!`),t.terminate(XO.Local,QO.SetRemoteDescription,!1);return}if(t.state=JO.Ringing,e.getLocalAge()){var a=setTimeout(()=>{if(t.state==JO.Ringing){var e;N.debug(`Call ${t.callId} initWithInvite() invite has expired. Hanging up.`),t.hangupParty=XO.Remote,t.state=JO.Ended,t.stopAllMedia(),t.peerConn.signalingState!=`closed`&&t.peerConn.close(),(e=t.stats)==null||e.removeStatsReportGatherer(t.callId),t.emit(ZO.Hangup,t)}},n.lifetime-e.getLocalAge()),o=e=>{e!==JO.Ringing&&(clearTimeout(a),t.off(ZO.State,o))};t.on(ZO.State,o)}})()}initWithHangup(e){this.state=JO.Ended}shouldAnswerWithMediaType(e,t,n){return e&&!t?(N.warn(`Call ${this.callId} shouldAnswerWithMediaType() unable to answer with ${n} because the other side isn't sending it either.`),!1):!Tee(e)&&e!==t&&!this.opponentSupportsSDPStreamMetadata()?(N.warn(`Call ${this.callId} shouldAnswerWithMediaType() unable to answer with ${n}=${e} because the other side doesn't support it. Answering with ${n}=${t}.`),t):e??t}answer(e,t){var n=this;return f(function*(){if(!n.inviteOrAnswerSent){if(e===!1&&t===!1)throw Error(`You CANNOT answer a call without media`);if(!n.localUsermediaStream&&!n.waitForLocalAVStream){var r=n.state,i=n.shouldAnswerWithMediaType(e,n.hasRemoteUserMediaAudioTrack,`audio`),a=n.shouldAnswerWithMediaType(t,n.hasRemoteUserMediaVideoTrack,`video`);n.state=JO.WaitLocalMedia,n.waitForLocalAVStream=!0;try{var o=yield n.client.getMediaHandler().getUserMediaStream(i,a);n.waitForLocalAVStream=!1;var s=[new AO({client:n.client,roomId:n.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId()??void 0,stream:o,purpose:EO.Usermedia,audioMuted:!1,videoMuted:!1})];n.localScreensharingFeed&&s.push(n.localScreensharingFeed),n.answerWithCallFeeds(s)}catch(e){if(a)N.warn(`Call ${n.callId} answer() failed to getUserMedia(), trying to getUserMedia() without video`),n.state=r,n.waitForLocalAVStream=!1,yield n.answer(i,!1);else{n.getUserMediaFailed(e);return}}}else n.waitForLocalAVStream&&(n.state=JO.WaitLocalMedia)}})()}answerWithCallFeeds(e){this.inviteOrAnswerSent||this.queueGotCallFeedsForAnswer(e)}replacedBy(e){N.debug(`Call ${this.callId} replacedBy() running (newCallId=${e.callId})`),this.state===JO.WaitLocalMedia?(N.debug(`Call ${this.callId} replacedBy() telling new call to wait for local media (newCallId=${e.callId})`),e.waitForLocalAVStream=!0):[JO.CreateOffer,JO.InviteSent].includes(this.state)&&(e.direction===YO.Outbound?e.queueGotCallFeedsForAnswer([]):(N.debug(`Call ${this.callId} replacedBy() handing local stream to new call(newCallId=${e.callId})`),e.queueGotCallFeedsForAnswer(this.getLocalFeeds().map(e=>e.clone())))),this.successor=e,this.emit(ZO.Replaced,e,this),this.hangup(QO.Replaced,!0)}hangup(e,t){if(!this.callHasEnded()&&(N.debug(`Call ${this.callId} hangup() ending call (reason=${e})`),this.terminate(XO.Local,e,!t),![JO.Fledgling,JO.WaitLocalMedia].includes(this.state))){var n={};(this.opponentVersion&&this.opponentVersion!==0||e!==QO.UserHangup)&&(n.reason=e),this.sendVoipEvent(P.CallHangup,n)}}reject(){if(this.state!==JO.Ringing)throw Error(`Call must be in 'ringing' state to reject!`);if(this.opponentVersion===0){N.info(`Call ${this.callId} reject() opponent version is less than 1: sending hangup instead of reject (opponentVersion=${this.opponentVersion})`),this.hangup(QO.UserHangup,!0);return}N.debug(`Rejecting call: `+this.callId),this.terminate(XO.Local,QO.UserHangup,!0),this.sendVoipEvent(P.CallReject,{})}upgradeCall(e,t){var n=this;return f(function*(){if(!(!e&&!t)&&n.opponentSupportsSDPStreamMetadata())try{N.debug(`Call ${n.callId} upgradeCall() upgrading call (audio=${e}, video=${t})`);var r=e||n.hasLocalUserMediaAudioTrack,i=t||n.hasLocalUserMediaVideoTrack,a=yield n.client.getMediaHandler().getUserMediaStream(r,i,!1);yield n.updateLocalUsermediaStream(a,e,t)}catch(e){N.error(`Call ${n.callId} upgradeCall() failed to upgrade the call`,e),n.emit(ZO.Error,new ek(QO.NoUserMedia,`Failed to get camera access: `,e),n)}})()}opponentSupportsSDPStreamMetadata(){return!!this.remoteSDPStreamMetadata}isScreensharing(){return!!this.localScreensharingStream}setScreensharingEnabled(e,t){var n=this;return f(function*(){if(e&&n.isScreensharing())return N.warn(`Call ${n.callId} setScreensharingEnabled() there is already a screensharing stream - there is nothing to do!`),!0;if(!e&&!n.isScreensharing())return N.warn(`Call ${n.callId} setScreensharingEnabled() there already isn't a screensharing stream - there is nothing to do!`),!1;if(!n.opponentSupportsSDPStreamMetadata())return n.setScreensharingEnabledWithoutMetadataSupport(e,t);if(N.debug(`Call ${n.callId} setScreensharingEnabled() running (enabled=${e})`),e)try{var r=yield n.client.getMediaHandler().getScreensharingStream(t);return r?(n.pushNewLocalFeed(r,EO.Screenshare),!0):!1}catch(e){return N.error(`Call ${n.callId} setScreensharingEnabled() failed to get screen-sharing stream:`,e),!1}else{for(var i of[n.transceivers.get(nk(EO.Screenshare,`audio`)),n.transceivers.get(nk(EO.Screenshare,`video`))])i&&i.sender&&n.peerConn.removeTrack(i.sender);return n.client.getMediaHandler().stopScreensharingStream(n.localScreensharingStream),n.deleteFeedByStream(n.localScreensharingStream),!1}})()}setScreensharingEnabledWithoutMetadataSupport(e,t){var n=this;return f(function*(){if(N.debug(`Call ${n.callId} setScreensharingEnabledWithoutMetadataSupport() running (enabled=${e})`),e)try{var r=yield n.client.getMediaHandler().getScreensharingStream(t);if(!r)return!1;var i=r.getTracks().find(e=>e.kind===`video`);return(n.transceivers.get(nk(EO.Usermedia,`video`))?.sender)?.replaceTrack(i??null),n.pushNewLocalFeed(r,EO.Screenshare,!1),!0}catch(e){return N.error(`Call ${n.callId} setScreensharingEnabledWithoutMetadataSupport() failed to get screen-sharing stream:`,e),!1}else{var a=n.localUsermediaStream?.getTracks().find(e=>e.kind===`video`);return(n.transceivers.get(nk(EO.Usermedia,`video`))?.sender)?.replaceTrack(a??null),n.client.getMediaHandler().stopScreensharingStream(n.localScreensharingStream),n.deleteFeedByStream(n.localScreensharingStream),!1}})()}updateLocalUsermediaStream(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1,i=t.length>2&&t[2]!==void 0?t[2]:!1,a=n.localUsermediaFeed,o=r||!a.isAudioMuted()&&!n.remoteOnHold,s=i||!a.isVideoMuted()&&!n.remoteOnHold;N.log(`Call ${n.callId} updateLocalUsermediaStream() running (streamId=${e.id}, audio=${o}, video=${s})`),rk(e.getAudioTracks(),o),rk(e.getVideoTracks(),s);for(var c of n.localUsermediaStream.getTracks())n.localUsermediaStream.removeTrack(c),c.stop();for(var l of e.getTracks())n.localUsermediaStream.addTrack(l);var u=function*(){var t=nk(EO.Usermedia,d.kind),r=n.transceivers.get(t),i=r?.sender,o=!1;if(i)try{N.info(`Call ${n.callId} updateLocalUsermediaStream() replacing track (id=${d.id}, kind=${d.kind}, streamId=${e.id}, streamPurpose=${a.purpose})`),yield i.replaceTrack(d),r.direction=r.direction===`inactive`?`sendonly`:`sendrecv`,o=!0}catch(e){N.warn(`Call ${n.callId} updateLocalUsermediaStream() replaceTrack failed: adding new transceiver instead`,e)}if(!o){N.info(`Call ${n.callId} updateLocalUsermediaStream() adding track to peer connection (id=${d.id}, kind=${d.kind}, streamId=${e.id}, streamPurpose=${a.purpose})`);var s=n.peerConn.addTrack(d,n.localUsermediaStream),c=n.peerConn.getTransceivers().find(e=>e.sender===s);c?n.transceivers.set(t,c):N.warn(`Call ${n.callId} updateLocalUsermediaStream() couldn't find matching transceiver for newly added track!`)}};for(var d of e.getTracks())yield*u()})()}setLocalVideoMuted(e){var t=this;return f(function*(){var n;if(N.log(`Call ${t.callId} setLocalVideoMuted() running ${e}`),!e&&t.stopVideoTrackTimer!==void 0&&(clearTimeout(t.stopVideoTrackTimer),t.stopVideoTrackTimer=void 0),!(yield t.client.getMediaHandler().hasVideoDevice()))return t.isLocalVideoMuted();if(!t.hasUserMediaVideoSender&&!e){var r;return(r=t.localUsermediaFeed)==null||r.setAudioVideoMuted(null,e),yield t.upgradeCall(!1,!0),t.isLocalVideoMuted()}if(!e&&t.localUsermediaStream.getVideoTracks().length===0){var i=yield t.client.getMediaHandler().getUserMediaStream(!0,!0);yield t.updateLocalUsermediaStream(i)}return(n=t.localUsermediaFeed)==null||n.setAudioVideoMuted(null,e),t.updateMuteStatus(),yield t.sendMetadataUpdate(),e&&(t.stopVideoTrackTimer=setTimeout(()=>{for(var e of t.localUsermediaStream.getVideoTracks())e.stop(),t.localUsermediaStream.removeTrack(e)},120)),t.isLocalVideoMuted()})()}isLocalVideoMuted(){return this.localUsermediaFeed?.isVideoMuted()??!1}setMicrophoneMuted(e){var t=this;return f(function*(){var n;return N.log(`Call ${t.callId} setMicrophoneMuted() running ${e}`),(yield t.client.getMediaHandler().hasAudioDevice())?!e&&(!t.hasUserMediaAudioSender||!t.hasLocalUserMediaAudioTrack)?(yield t.upgradeCall(!0,!1),t.isMicrophoneMuted()):((n=t.localUsermediaFeed)==null||n.setAudioVideoMuted(e,null),t.updateMuteStatus(),yield t.sendMetadataUpdate(),t.isMicrophoneMuted()):t.isMicrophoneMuted()})()}isMicrophoneMuted(){return this.localUsermediaFeed?.isAudioMuted()??!1}isRemoteOnHold(){return this.remoteOnHold}setRemoteOnHold(e){if(this.isRemoteOnHold()!==e){this.remoteOnHold=e;for(var t of this.peerConn.getTransceivers())t.direction=e?`sendonly`:`sendrecv`;this.updateMuteStatus(),this.sendMetadataUpdate(),this.emit(ZO.RemoteHoldUnhold,this.remoteOnHold,this)}}isLocalOnHold(){if(this.state!==JO.Connected)return!1;var e=!0;for(var t of this.peerConn.getTransceivers())[`inactive`,`recvonly`].includes(t.currentDirection)||(e=!1);return e}sendDtmfDigit(e){for(var t of this.peerConn.getSenders())if(t.track?.kind===`audio`&&t.dtmf){t.dtmf.insertDTMF(e);return}throw Error(`Unable to find a track to send DTMF on`)}updateMuteStatus(){var e=this.isMicrophoneMuted()||this.remoteOnHold,t=this.isLocalVideoMuted()||this.remoteOnHold;N.log(`Call ${this.callId} updateMuteStatus stream ${this.localUsermediaStream.id} micShouldBeMuted ${e} vidShouldBeMuted ${t}`),rk(this.localUsermediaStream.getAudioTracks(),!e),rk(this.localUsermediaStream.getVideoTracks(),!t)}sendMetadataUpdate(){var e=this;return f(function*(){yield e.sendVoipEvent(P.CallSDPStreamMetadataChanged,{[TO.name]:e.getLocalSDPStreamMetadata()})})()}gotCallFeedsForInvite(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.successor){this.successor.queueGotCallFeedsForAnswer(e);return}if(this.callHasEnded()){this.stopAllMedia();return}for(var n of e)this.pushLocalFeed(n);t&&this.peerConn.addTransceiver(`video`,{direction:`recvonly`}),this.state=JO.CreateOffer,N.debug(`Call ${this.callId} gotUserMediaForInvite() run`)}sendAnswer(){var e=this;return f(function*(){var t={answer:{sdp:e.peerConn.localDescription.sdp,type:e.peerConn.localDescription.type},[TO.name]:e.getLocalSDPStreamMetadata(!0)};t.capabilities={"m.call.transferee":e.client.supportsCallTransfer,"m.call.dtmf":!1};var n=e.discardDuplicateCandidates();N.info(`Call ${e.callId} sendAnswer() discarding ${n} candidates that will be sent in answer`);try{yield e.sendVoipEvent(P.CallAnswer,t),e.inviteOrAnswerSent=!0}catch(t){e.state=JO.Ringing,t instanceof PD&&t.event&&e.client.cancelPendingEvent(t.event);var r=QO.SendAnswer,i=`Failed to send answer`;throw t.name==`UnknownDeviceError`&&(r=QO.UnknownDevices,i=`Unknown devices present in the room`),e.emit(ZO.Error,new ek(r,i,t),e),t}e.sendCandidateQueue()})()}queueGotCallFeedsForAnswer(e){this.responsePromiseChain?this.responsePromiseChain=this.responsePromiseChain.then(()=>this.gotCallFeedsForAnswer(e)):this.responsePromiseChain=this.gotCallFeedsForAnswer(e)}mungeSdp(e,t){var n=(0,vO.parse)(e.sdp);n.media.forEach(e=>{var n=new Map,r=new Map;for(var i of e.rtp)n.set(i.payload,i.codec),r.set(i.codec,i.payload);for(var a of t)if(a.mediaType===e.type){if(!r.has(a.codec)){N.info(`Call ${this.callId} mungeSdp() ignoring SDP modifications for ${a.codec} as it's not present.`);continue}var o=[];a.enableDtx!==void 0&&o.push(`usedtx=${a.enableDtx?`1`:`0`}`),a.maxAverageBitrate!==void 0&&o.push(`maxaveragebitrate=${a.maxAverageBitrate}`);var s=!1;for(var c of e.fmtp)n.get(c.payload)===a.codec&&(s=!0,c.config+=`;`+o.join(`;`));s||e.fmtp.push({payload:r.get(a.codec),config:o.join(`;`)})}}),e.sdp=(0,vO.write)(n)}createOffer(){var e=this;return f(function*(){var t=yield e.peerConn.createOffer();return e.mungeSdp(t,Bre(e.isPtt)),t})()}createAnswer(){var e=this;return f(function*(){var t=yield e.peerConn.createAnswer();return e.mungeSdp(t,Bre(e.isPtt)),t})()}gotCallFeedsForAnswer(e){var t=this;return f(function*(){if(!t.callHasEnded()){t.waitForLocalAVStream=!1;for(var n of e)t.pushLocalFeed(n);t.state=JO.CreateAnswer;var r;try{t.getRidOfRTXCodecs(),r=yield t.createAnswer()}catch(e){N.debug(`Call ${t.callId} gotCallFeedsForAnswer() failed to create answer: `,e),t.terminate(XO.Local,QO.CreateAnswer,!0);return}try{if(yield t.peerConn.setLocalDescription(r),t.callHasEnded()||(t.state=JO.Connecting,yield new Promise(e=>{setTimeout(e,200)}),t.callHasEnded()))return;t.sendAnswer()}catch(e){N.debug(`Call ${t.callId} gotCallFeedsForAnswer() error setting local description!`,e),t.terminate(XO.Local,QO.SetLocalDescription,!0);return}}})()}onRemoteIceCandidatesReceived(e){var t=this;return f(function*(){if(!t.callHasEnded()){var n=e.getContent(),r=n.candidates;if(!r){N.info(`Call ${t.callId} onRemoteIceCandidatesReceived() ignoring candidates event with no candidates!`);return}var i=n.version===0?null:n.party_id||null;if(t.opponentPartyId===void 0){if(i){N.info(`Call ${t.callId} onRemoteIceCandidatesReceived() buffering ${r.length} candidates until we pick an opponent`);var a=t.remoteCandidateBuffer.get(i)||[];a.push(...r),t.remoteCandidateBuffer.set(i,a)}return}if(!t.partyIdMatches(n)){N.info(`Call ${t.callId} onRemoteIceCandidatesReceived() ignoring candidates from party ID ${n.party_id}: we have chosen party ID ${t.opponentPartyId}`);return}yield t.addIceCandidates(r)}})()}onAnswerReceived(e){var t=this;return f(function*(){var n=e.getContent();if(N.debug(`Call ${t.callId} onAnswerReceived() running (hangupParty=${n.party_id})`),t.callHasEnded()){N.debug(`Call ${t.callId} onAnswerReceived() ignoring answer because call has ended`);return}if(t.opponentPartyId!==void 0){N.info(`Call ${t.callId} onAnswerReceived() ignoring answer from party ID ${n.party_id}: we already have an answer/reject from ${t.opponentPartyId}`);return}t.chooseOpponent(e),yield t.addBufferedIceCandidates(),t.state=JO.Connecting;var r=TO.findIn(n);r?t.updateRemoteSDPStreamMetadata(r):N.warn(`Call ${t.callId} onAnswerReceived() did not get any SDPStreamMetadata! Can not send/receive multiple streams`);try{t.isSettingRemoteAnswerPending=!0,yield t.peerConn.setRemoteDescription(n.answer),t.isSettingRemoteAnswerPending=!1,N.debug(`Call ${t.callId} onAnswerReceived() set remote description: ${n.answer.type}`)}catch(e){t.isSettingRemoteAnswerPending=!1,N.debug(`Call ${t.callId} onAnswerReceived() failed to set remote description`,e),t.terminate(XO.Local,QO.SetRemoteDescription,!1);return}if(t.opponentPartyId!==null)try{yield t.sendVoipEvent(P.CallSelectAnswer,{selected_party_id:t.opponentPartyId})}catch(e){N.warn(`Call ${t.callId} onAnswerReceived() failed to send select_answer event`,e)}})()}onSelectAnswerReceived(e){var t=this;return f(function*(){if(t.direction!==YO.Inbound){N.warn(`Call ${t.callId} onSelectAnswerReceived() got select_answer for an outbound call: ignoring`);return}var n=e.getContent().selected_party_id;if(n==null){N.warn(`Call ${t.callId} onSelectAnswerReceived() got nonsensical select_answer with null/undefined selected_party_id: ignoring`);return}n!==t.ourPartyId&&(N.info(`Call ${t.callId} onSelectAnswerReceived() got select_answer for party ID ${n}: we are party ID ${t.ourPartyId}.`),yield t.terminate(XO.Remote,QO.AnsweredElsewhere,!0))})()}onNegotiateReceived(e){var t=this;return f(function*(){var n=e.getContent(),r=n.description;if(!r||!r.sdp||!r.type){N.info(`Call ${t.callId} onNegotiateReceived() ignoring invalid m.call.negotiate event`);return}var i=t.direction===YO.Inbound,a=!t.makingOffer&&(t.peerConn.signalingState===`stable`||t.isSettingRemoteAnswerPending),o=r.type===`offer`&&!a;if(t.ignoreOffer=!i&&o,t.ignoreOffer){N.info(`Call ${t.callId} onNegotiateReceived() ignoring colliding negotiate event because we're impolite`);return}var s=t.isLocalOnHold(),c=TO.findIn(n);c?t.updateRemoteSDPStreamMetadata(c):N.warn(`Call ${t.callId} onNegotiateReceived() received negotiation event without SDPStreamMetadata!`);try{if(t.isSettingRemoteAnswerPending=r.type==`answer`,yield t.peerConn.setRemoteDescription(r),t.isSettingRemoteAnswerPending=!1,N.debug(`Call ${t.callId} onNegotiateReceived() set remote description: ${r.type}`),r.type===`offer`){var l;try{t.getRidOfRTXCodecs(),l=yield t.createAnswer()}catch(e){N.debug(`Call ${t.callId} onNegotiateReceived() failed to create answer: `,e),t.terminate(XO.Local,QO.CreateAnswer,!0);return}yield t.peerConn.setLocalDescription(l),N.debug(`Call ${t.callId} onNegotiateReceived() create an answer`),t.sendVoipEvent(P.CallNegotiate,{lifetime:$O,description:t.peerConn.localDescription?.toJSON(),[TO.name]:t.getLocalSDPStreamMetadata(!0)})}}catch(e){t.isSettingRemoteAnswerPending=!1,N.warn(`Call ${t.callId} onNegotiateReceived() failed to complete negotiation`,e)}var u=t.isLocalOnHold();s!==u&&(t.emit(ZO.LocalHoldUnhold,u,t),t.emit(ZO.HoldUnhold,u))})()}updateRemoteSDPStreamMetadata(e){this.remoteSDPStreamMetadata=jee(this.remoteSDPStreamMetadata||{},e,!0);for(var t of this.getRemoteFeeds()){var n=t.stream.id,r=this.remoteSDPStreamMetadata[n];t.setAudioVideoMuted(r?.audio_muted,r?.video_muted),t.purpose=this.remoteSDPStreamMetadata[n]?.purpose}}onSDPStreamMetadataChangedReceived(e){var t=e.getContent(),n=TO.findIn(t);n&&this.updateRemoteSDPStreamMetadata(n)}onAssertedIdentityReceived(e){var t=this;return f(function*(){var n=e.getContent();n.asserted_identity&&(t.remoteAssertedIdentity={id:n.asserted_identity.id,displayName:n.asserted_identity.display_name},t.emit(ZO.AssertedIdentityChanged,t))})()}callHasEnded(){return this.state===JO.Ended}queueGotLocalOffer(){this.responsePromiseChain?this.responsePromiseChain=this.responsePromiseChain.then(()=>this.wrappedGotLocalOffer()):this.responsePromiseChain=this.wrappedGotLocalOffer()}wrappedGotLocalOffer(){var e=this;return f(function*(){e.makingOffer=!0;try{yield e.gotLocalOffer()}catch(t){e.getLocalOfferFailed(t);return}finally{e.makingOffer=!1}})()}gotLocalOffer(){var e=this;return f(function*(){if(N.debug(`Call ${e.callId} gotLocalOffer() running`),e.callHasEnded()){N.debug(`Call ${e.callId} gotLocalOffer() ignoring newly created offer because the call has ended"`);return}var t;try{e.getRidOfRTXCodecs(),t=yield e.createOffer()}catch(t){N.debug(`Call ${e.callId} gotLocalOffer() failed to create offer: `,t),e.terminate(XO.Local,QO.CreateOffer,!0);return}try{yield e.peerConn.setLocalDescription(t)}catch(t){N.debug(`Call ${e.callId} gotLocalOffer() error setting local description!`,t),e.terminate(XO.Local,QO.SetLocalDescription,!0);return}if(e.peerConn.iceGatheringState===`gathering`&&(yield new Promise(e=>{setTimeout(e,200)})),!e.callHasEnded()){var n=e.state===JO.CreateOffer?P.CallInvite:P.CallNegotiate,r={lifetime:$O};n===P.CallInvite&&e.invitee&&(r.invitee=e.invitee),e.state===JO.CreateOffer?r.offer=e.peerConn.localDescription?.toJSON():r.description=e.peerConn.localDescription?.toJSON(),r.capabilities={"m.call.transferee":e.client.supportsCallTransfer,"m.call.dtmf":!1},r[TO.name]=e.getLocalSDPStreamMetadata(!0);var i=e.discardDuplicateCandidates();N.info(`Call ${e.callId} gotLocalOffer() discarding ${i} candidates that will be sent in offer`);try{yield e.sendVoipEvent(n,r)}catch(t){N.error(`Call ${e.callId} gotLocalOffer() failed to send invite`,t),t instanceof PD&&t.event&&e.client.cancelPendingEvent(t.event);var a=QO.SignallingFailed,o=`Signalling failed`;e.state===JO.CreateOffer&&(a=QO.SendInvite,o=`Failed to send invite`),t.name==`UnknownDeviceError`&&(a=QO.UnknownDevices,o=`Unknown devices present in the room`),e.emit(ZO.Error,new ek(a,o,t),e),e.terminate(XO.Local,a,!1);return}e.sendCandidateQueue(),e.state===JO.CreateOffer&&(e.inviteOrAnswerSent=!0,e.state=JO.InviteSent,e.inviteTimeout=setTimeout(()=>{e.inviteTimeout=void 0,e.state===JO.InviteSent&&e.hangup(QO.InviteTimeout,!1)},$O))}})()}getRidOfRTXCodecs(){if(!(!RTCRtpReceiver.getCapabilities||!RTCRtpSender.getCapabilities)){var e=this.transceivers.get(nk(EO.Screenshare,`video`));if(!(!e||!e.setCodecPreferences)){var t=RTCRtpReceiver.getCapabilities(`video`).codecs,n=RTCRtpSender.getCapabilities(`video`).codecs,r=[];for(var i of[...t,...n])if(i.mimeType!==`video/rtx`){r.push(i);try{e.setCodecPreferences(r)}catch(e){N.info(`Working around buggy WebRTC impl: claimed to support codec but threw when setting codec preferences`,i,e),r.pop()}}}}}sendVoipEvent(e,t){var n=this;return f(function*(){var r=qO(qO({},t),{},{version:Fre,call_id:n.callId,party_id:n.ourPartyId,conf_id:n.groupCallId});if(n.opponentDeviceId){var i=n.toDeviceSeq++,a=qO(qO({},r),{},{device_id:n.client.deviceId,sender_session_id:n.client.getSessionId(),dest_session_id:n.opponentSessionId,seq:i,[AE]:globalThis.crypto.randomUUID()});n.emit(ZO.SendVoipEvent,{type:`toDevice`,eventType:e,userId:n.invitee||n.getOpponentMember()?.userId,opponentDeviceId:n.opponentDeviceId,content:a},n);var o=n.invitee||n.getOpponentMember().userId;if(n.client.getUseE2eForGroupCall()){if(!n.hasOpponentDeviceInfo){N.warn(`Call ${n.callId} sendVoipEvent() failed: we do not have opponentDeviceInfo`);return}throw Error(`Unimplemented`)}else yield n.client.sendToDevice(e,new Map([[o,new Map([[n.opponentDeviceId,a]])]]))}else n.emit(ZO.SendVoipEvent,{type:`sendEvent`,eventType:e,roomId:n.roomId,content:r,userId:n.invitee||n.getOpponentMember()?.userId},n),yield n.client.sendEvent(n.roomId,e,r)})()}queueCandidate(e){if(e?this.candidateSendQueue.push(e):this.candidatesEnded=!0,!(this.state===JO.Ringing||!this.inviteOrAnswerSent)){var t=this.direction===YO.Inbound?500:2e3;this.candidateSendTries===0&&setTimeout(()=>{this.sendCandidateQueue()},t)}}discardDuplicateCandidates(){for(var e=0,t=[],n=0;ne.toJSON())};e.candidatesEnded&&n.candidates.push({candidate:``}),N.debug(`Call ${e.callId} sendCandidateQueue() attempting to send ${t.length} candidates`);try{yield e.sendVoipEvent(P.CallCandidates,n),e.candidateSendTries=0,e.sendCandidateQueue()}catch(n){if(n instanceof PD&&n.event&&e.client.cancelPendingEvent(n.event),e.candidateSendQueue.push(...t),e.candidateSendTries>5){N.debug(`Call ${e.callId} sendCandidateQueue() failed to send candidates on attempt ${e.candidateSendTries}. Giving up on this call.`,n);var r=QO.SignallingFailed;e.emit(ZO.Error,new ek(r,`Signalling failed`,n),e),e.hangup(r,!1);return}var i=500*2**e.candidateSendTries;++e.candidateSendTries,N.debug(`Call ${e.callId} sendCandidateQueue() failed to send candidates. Retrying in ${i}ms`,n),setTimeout(()=>{e.sendCandidateQueue()},i)}}})()}placeCall(e,t){var n=this;return f(function*(){if(!e)throw Error(`You CANNOT start a call without audio`);n.state=JO.WaitLocalMedia;var r;try{var i=yield n.client.getMediaHandler().getUserMediaStream(e,t);rk(i.getAudioTracks(),!0),rk(i.getVideoTracks(),!0),r=new AO({client:n.client,roomId:n.roomId,userId:n.client.getUserId(),deviceId:n.client.getDeviceId()??void 0,stream:i,purpose:EO.Usermedia,audioMuted:!1,videoMuted:!1})}catch(e){n.getUserMediaFailed(e);return}try{yield n.placeCallWithCallFeeds([r])}catch(e){n.placeCallFailed(e);return}})()}placeCallWithCallFeeds(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1;n.checkForErrorListener(),n.direction=YO.Outbound,yield n.initOpponentCrypto(),n.client.callEventHandler.calls.set(n.callId,n),(yield n.client.checkTurnServers())||N.warn(`Call ${n.callId} placeCallWithCallFeeds() failed to get TURN credentials! Proceeding with call anyway...`),n.peerConn=n.createPeerConnection(),n.emit(ZO.PeerConnectionCreated,n.peerConn,n),n.gotCallFeedsForInvite(e,r)})()}createPeerConnection(){var e,t=new window.RTCPeerConnection({iceTransportPolicy:this.forceTURN?`relay`:void 0,iceServers:this.turnServers.length?this.turnServers:void 0,iceCandidatePoolSize:this.client.iceCandidatePoolSize,bundlePolicy:`max-bundle`});t.addEventListener(`iceconnectionstatechange`,this.onIceConnectionStateChanged),t.addEventListener(`signalingstatechange`,this.onSignallingStateChanged),t.addEventListener(`icecandidate`,this.gotLocalIceCandidate),t.addEventListener(`icegatheringstatechange`,this.onIceGatheringStateChange),t.addEventListener(`track`,this.onTrack),t.addEventListener(`negotiationneeded`,this.onNegotiationNeeded),t.addEventListener(`datachannel`,this.onDataChannel);var n=this.getOpponentMember(),r=n?n.userId:`unknown`;return(e=this.stats)==null||e.addStatsReportGatherer(this.callId,r,t),t}partyIdMatches(e){return(e.version===0?null:e.party_id||null)===this.opponentPartyId}chooseOpponent(e){var t=e.getContent();if(N.debug(`Call ${this.callId} chooseOpponent() running (partyId=${t.party_id})`),this.opponentVersion=t.version,this.opponentVersion===0?this.opponentPartyId=null:this.opponentPartyId=t.party_id||null,this.opponentCaps=t.capabilities||{},this.opponentMember=this.client.getRoom(this.roomId).getMember(e.getSender())??void 0,this.opponentMember){var n;(n=this.stats)==null||n.updateOpponentMember(this.callId,this.opponentMember.userId)}}addBufferedIceCandidates(){var e=this;return f(function*(){var t=e.remoteCandidateBuffer.get(e.opponentPartyId);t&&(N.info(`Call ${e.callId} addBufferedIceCandidates() adding ${t.length} buffered candidates for opponent ${e.opponentPartyId}`),yield e.addIceCandidates(t)),e.remoteCandidateBuffer.clear()})()}addIceCandidates(e){var t=this;return f(function*(){for(var n of e){(n.sdpMid===null||n.sdpMid===void 0)&&(n.sdpMLineIndex===null||n.sdpMLineIndex===void 0)?N.debug(`Call ${t.callId} addIceCandidates() got remote ICE end-of-candidates`):N.debug(`Call ${t.callId} addIceCandidates() got remote ICE candidate (sdpMid=${n.sdpMid}, candidate=${n.candidate})`);try{yield t.peerConn.addIceCandidate(n)}catch(e){t.ignoreOffer?N.debug(`Call ${t.callId} addIceCandidates() failed to add remote ICE candidate because ignoring offer`,e):N.info(`Call ${t.callId} addIceCandidates() failed to add remote ICE candidate`,e)}}})()}get hasPeerConnection(){return!!this.peerConn}initStats(e){arguments.length>1&&arguments[1]!==void 0&&arguments[1],this.stats=e,this.stats.start()}};function rk(e,t){for(var n of e)n.enabled=t}function ik(){if(typeof window>`u`||typeof document>`u`)return!1;try{if(!(window.RTCPeerConnection??window.RTCSessionDescription??window.RTCIceCandidate??navigator.mediaDevices))return N.error(`WebRTC is not supported in this browser / environment`),!1}catch(e){return N.error(`Exception thrown when trying to access WebRTC`,e),!1}return!0}function ak(e,t,n){if(!ik())return null;var r=n?n.forceTURN:!1,i=new Vre({client:e,roomId:t,invitee:n?.invitee,turnServers:e.getTurnServers(),forceTURN:e.forceTURN||r,opponentDeviceId:n?.opponentDeviceId,opponentSessionId:n?.opponentSessionId,groupCallId:n?.groupCallId});return e.reEmitter.reEmit(i,Object.values(ZO)),i}var ok=function(e){return e.DontNotify=`dont_notify`,e.Notify=`notify`,e.Coalesce=`coalesce`,e}({}),sk=function(e){return e.Highlight=`highlight`,e.Sound=`sound`,e}({}),Hre=function(e){return e.ExactEquals=`==`,e.LessThan=`<`,e.GreaterThan=`>`,e.GreaterThanOrEqual=`>=`,e.LessThanOrEqual=`<=`,e}({});function Ure(e){return e===`==2`||e===`2`}var ck=function(e){return e.EventMatch=`event_match`,e.EventPropertyIs=`event_property_is`,e.EventPropertyContains=`event_property_contains`,e.ContainsDisplayName=`contains_display_name`,e.RoomMemberCount=`room_member_count`,e.SenderNotificationPermission=`sender_notification_permission`,e.CallStarted=`call_started`,e.CallStartedPrefix=`org.matrix.msc3914.call_started`,e}({}),lk=function(e){return e.Override=`override`,e.ContentSpecific=`content`,e.RoomSpecific=`room`,e.SenderSpecific=`sender`,e.Underride=`underride`,e}({}),uk=function(e){return e.Master=`.m.rule.master`,e.IsUserMention=`.m.rule.is_user_mention`,e.IsRoomMention=`.m.rule.is_room_mention`,e.ContainsDisplayName=`.m.rule.contains_display_name`,e.ContainsUserName=`.m.rule.contains_user_name`,e.AtRoomNotification=`.m.rule.roomnotif`,e.DM=`.m.rule.room_one_to_one`,e.EncryptedDM=`.m.rule.encrypted_room_one_to_one`,e.Message=`.m.rule.message`,e.EncryptedMessage=`.m.rule.encrypted`,e.InviteToSelf=`.m.rule.invite_for_me`,e.MemberEvent=`.m.rule.member_event`,e.IncomingCall=`.m.rule.call`,e.SuppressNotices=`.m.rule.suppress_notices`,e.Tombstone=`.m.rule.tombstone`,e.PollStart=`.m.rule.poll_start`,e.PollStartUnstable=`.org.matrix.msc3930.rule.poll_start`,e.PollEnd=`.m.rule.poll_end`,e.PollEndUnstable=`.org.matrix.msc3930.rule.poll_end`,e.PollStartOneToOne=`.m.rule.poll_start_one_to_one`,e.PollStartOneToOneUnstable=`.org.matrix.msc3930.rule.poll_start_one_to_one`,e.PollEndOneToOne=`.m.rule.poll_end_one_to_one`,e.PollEndOneToOneUnstable=`.org.matrix.msc3930.rule.poll_end_one_to_one`,e}({});function Wre(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Gre(e){for(var t=1;te.default),o=n.filter(e=>!e.default);function s(n){n===dk?l.push(...o):n in r?(e.warn(`Adding default global ${t} push rule ${n}`),l.push(r[n])):e.warn(`Missing default global ${t} push rule ${n}`)}var c=0,l=[];for(var u of a){var d=i.indexOf(u.rule_id);if(d===-1){l.push(u);continue}for(;d>c;){var f=i[c];s(f),c+=1}l.push(u),c+=1}for(var p of i.slice(c))s(p);return l}var fk=class e{constructor(e){this.client=e,g(this,`parsedKeys`,new Map)}static actionListToActionsObject(e){var t={notify:!1,tweaks:{}};for(var n of e)n===ok.Notify?t.notify=!0:typeof n==`object`&&(n.value===void 0&&(n.value=!0),t.tweaks[n.set_tweak]=n.value);return t}static rewriteDefaultRules(e,t){arguments.length>2&&arguments[2]!==void 0&&arguments[2];var n=JSON.parse(JSON.stringify(t));return n||={},n.global||={},n.global.override||(n.global.override=[]),n.global.underride||(n.global.underride=[]),n.global.override=Zre(e,lk.Override,n.global.override,qre,Jre),n.global.underride=Zre(e,lk.Underride,n.global.underride,Yre,Xre),n}static getPushRuleGlobRegex(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`i`,i=u(n?[`(?<=^|\\W)`,`(?=\\W|$)`]:[`^`,`$`],2),a=i[0],o=i[1],s=`${n}-${r}-${t}`;return e.cachedGlobToRegex[s]||(e.cachedGlobToRegex[s]=RegExp(a+`(`+See(t)+`)`+o,r)),e.cachedGlobToRegex[s]}updateCachedPushRuleKeys(t){t||={},t.global||={},t.global.override||(t.global.override=[]),t.global.room||(t.global.room=[]),t.global.sender||(t.global.sender=[]),t.global.underride||(t.global.underride=[]);var n=new Set(this.parsedKeys.keys());for(var r of[t.global.override,t.global.room,t.global.sender,t.global.underride])for(var i of r)if(i.conditions)for(var a of i.conditions)a.kind===ck.EventMatch&&(n.delete(a.key),this.parsedKeys.set(a.key,e.partsForDottedKey(a.key)));n.forEach(e=>this.parsedKeys.delete(e))}matchingRuleFromKindSet(e,t){for(var n of Kre){var r=t[n];if(r){for(var i of r)if(i.enabled){var a=this.templateRuleToRaw(n,i);if(a&&this.ruleMatchesEvent(a,e))return Gre(Gre({},i),{},{kind:n})}}}return null}templateRuleToRaw(e,t){var n={rule_id:t.rule_id,actions:t.actions,conditions:[]};switch(e){case lk.Underride:case lk.Override:n.conditions=t.conditions;break;case lk.RoomSpecific:if(!t.rule_id)return null;n.conditions.push({kind:ck.EventMatch,key:`room_id`,value:t.rule_id});break;case lk.SenderSpecific:if(!t.rule_id)return null;n.conditions.push({kind:ck.EventMatch,key:`user_id`,value:t.rule_id});break;case lk.ContentSpecific:if(!t.pattern)return null;n.conditions.push({kind:ck.EventMatch,key:`content.body`,pattern:t.pattern});break}return n}eventFulfillsCondition(e,t){switch(e.kind){case ck.EventMatch:return this.eventFulfillsEventMatchCondition(e,t);case ck.EventPropertyIs:return this.eventFulfillsEventPropertyIsCondition(e,t);case ck.EventPropertyContains:return this.eventFulfillsEventPropertyContains(e,t);case ck.ContainsDisplayName:return this.eventFulfillsDisplayNameCondition(e,t);case ck.RoomMemberCount:return this.eventFulfillsRoomMemberCountCondition(e,t);case ck.SenderNotificationPermission:return this.eventFulfillsSenderNotifPermCondition(e,t);case ck.CallStarted:case ck.CallStartedPrefix:return this.eventFulfillsCallStartedCondition(e,t)}return!1}eventFulfillsSenderNotifPermCondition(e,t){var n=e.key;if(!n)return!1;var r=this.client.getRoom(t.getRoomId());return r!=null&&r.currentState?r.currentState.mayTriggerNotifOfType(n,t.getSender()):!1}eventFulfillsRoomMemberCountCondition(e,t){if(!e.is)return!1;var n=this.client.getRoom(t.getRoomId());if(!n||!n.currentState||!n.currentState.members)return!1;var r=n.currentState.getJoinedMemberCount(),i=e.is.match(/^([=<>]*)(\d*)$/);if(!i)return!1;var a=i[1],o=parseInt(i[2]);if(isNaN(o))return!1;switch(a){case``:case`==`:return r==o;case`<`:return r`:return r>o;case`<=`:return r<=o;case`>=`:return r>=o;default:return!1}}eventFulfillsDisplayNameCondition(e,t){var n,r=t.getContent();if(t.isEncrypted()&&t.getClearContent()&&(r=t.getClearContent()),!r||!r.body||typeof r.body!=`string`)return!1;var i=this.client.getRoom(t.getRoomId()),a=i==null||(n=i.currentState)==null?void 0:n.getMember(this.client.credentials.userId);if(!a)return!1;var o=a.name,s=RegExp(`(^|\\W)`+xee(o)+`(\\W|$)`,`i`);return r.body.search(s)>-1}eventFulfillsEventMatchCondition(t,n){if(!t.key)return!1;var r=this.valueForDottedKey(t.key,n);if(typeof r!=`string`)return!1;if(t.value)return t.value===r;if(typeof t.pattern!=`string`)return!1;var i=e.getPushRuleGlobRegex(t.pattern,t.key===`content.body`);return!!r.match(i)}eventFulfillsEventPropertyIsCondition(e,t){return!e.key||e.value===void 0?!1:e.value===this.valueForDottedKey(e.key,t)}eventFulfillsEventPropertyContains(e,t){if(!e.key||e.value===void 0)return!1;var n=this.valueForDottedKey(e.key,t);return Array.isArray(n)?n.includes(e.value):!1}eventFulfillsCallStartedCondition(e,t){return[`m.ring`,`m.prompt`].includes(t.getContent()[`m.intent`])&&!(`m.terminated`in t.getContent())&&(t.getPrevContent()[`m.terminated`]!==t.getContent()[`m.terminated`]||ZT(t.getPrevContent(),{}))}static partsForDottedKey(e){var t=[],n=``,r=!1;for(var i of e){if(r){i===`\\`||i===`.`?n+=i:n+=`\\`+i,r=!1;continue}i==`.`?(t.push(n),n=``):i==`\\`?r=!0:n+=i}return r&&(n+=`\\`),t.push(n),t}valueForDottedKey(t,n){var r=this.parsedKeys.get(t);r===void 0&&(r=e.partsForDottedKey(t),this.parsedKeys.set(t,r));var i,a=r[0],o=0;for(a===`content`?(i=n.getContent(),++o):a===`type`?(i=n.getType(),++o):i=n.event;o!this.eventFulfillsCondition(e,t)))}actionsForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules).actions||{}}actionsAndRuleForEvent(e){return this.pushActionsForEventAndRulesets(e,this.client.pushRules)}getPushRuleById(e){return this.getPushRuleAndKindById(e)?.rule??null}getPushRuleAndKindById(e){for(var t of[`global`])if(this.client.pushRules?.[t]!==void 0){for(var n of Kre)if(this.client.pushRules[t][n]!==void 0){for(var r of this.client.pushRules[t][n])if(r.rule_id===e)return{rule:r,kind:n}}}return null}};g(fk,`cachedGlobToRegex`,{});var pk=[`v1.1`,`v1.2`,`v1.3`,`v1.4`,`v1.5`,`v1.6`,`v1.7`,`v1.8`,`v1.9`,`v1.10`,`v1.11`,`v1.12`,`v1.13`],Qre=pk[0],$re=pk[pk.length-1],mk=function(e){return e.SUCCESS=`SUCCESS`,e.IGNORE=`IGNORE`,e.PROMPT=`PROMPT`,e.FAIL_PROMPT=`FAIL_PROMPT`,e.FAIL_ERROR=`FAIL_ERROR`,e}({}),hk=function(e){return e.Invalid=`Invalid homeserver discovery response`,e.GenericFailure=`Failed to get autodiscovery configuration from server`,e.InvalidHsBaseUrl=`Invalid base_url for m.homeserver`,e.InvalidHomeserver=`Homeserver URL does not appear to be a valid Matrix homeserver`,e.InvalidIsBaseUrl=`Invalid base_url for m.identity_server`,e.InvalidIdentityServer=`Identity server URL does not appear to be a valid identity server`,e.InvalidIs=`Invalid identity server discovery response`,e.MissingWellknown=`No .well-known JSON file found`,e.InvalidJson=`Invalid JSON`,e.UnsupportedHomeserverSpecVersion=`The homeserver does not meet the version requirements`,e}({}),gk=class e{static fromDiscoveryConfig(t){var n=this;return f(function*(){var r={"m.homeserver":{state:e.FAIL_ERROR,error:e.ERROR_INVALID,base_url:null},"m.identity_server":{state:e.PROMPT,error:null,base_url:null}};if(!(t!=null&&t[`m.homeserver`]))return N.error(`No m.homeserver key in config`),r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID,Promise.resolve(r);if(!t[`m.homeserver`].base_url)return N.error(`No m.homeserver base_url in config`),r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID_HS_BASE_URL,Promise.resolve(r);var i=n.sanitizeWellKnownUrl(t[`m.homeserver`].base_url);if(!i)return N.error(`Invalid base_url for m.homeserver`),r[`m.homeserver`].error=e.ERROR_INVALID_HS_BASE_URL,Promise.resolve(r);var a=yield n.fetchWellKnownObject(`${i}/_matrix/client/versions`);if(!a||!Array.isArray(a.raw?.versions))return N.error(`Invalid /versions response`),r[`m.homeserver`].error=e.ERROR_INVALID_HOMESERVER,r[`m.homeserver`].base_url=i,Promise.resolve(r);var o=new Set(a.raw.versions),s=!1;for(var c of pk)if(o.has(c)){s=!0;break}if(!s)return N.error(`Homeserver does not meet version requirements`),r[`m.homeserver`].error=e.ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION,r[`m.homeserver`].base_url=i,Promise.resolve(r);r[`m.homeserver`]={state:e.SUCCESS,error:null,base_url:i};var l=``;if(t[`m.identity_server`]){var u={"m.homeserver":r[`m.homeserver`],"m.identity_server":{state:e.FAIL_PROMPT,error:e.ERROR_INVALID_IS,base_url:null}};if(l=n.sanitizeWellKnownUrl(t[`m.identity_server`].base_url),!l)return N.error(`Invalid base_url for m.identity_server`),u[`m.identity_server`].error=e.ERROR_INVALID_IS_BASE_URL,Promise.resolve(u);var d=yield n.fetchWellKnownObject(`${l}/_matrix/identity/v2`);if(!(d!=null&&d.raw)||d.action!==mk.SUCCESS)return N.error(`Invalid /v2 response`),u[`m.identity_server`].error=e.ERROR_INVALID_IDENTITY_SERVER,u[`m.identity_server`].base_url=l,Promise.resolve(u)}return l&&l.toString().length>0&&(r[`m.identity_server`]={state:e.SUCCESS,error:null,base_url:l}),Object.keys(t).forEach(e=>{if(e===`m.homeserver`||e===`m.identity_server`){var n=[`error`,`state`,`base_url`];for(var i of Object.keys(t[e]))n.includes(i)||(r[e][i]=t[e][i])}else r[e]=t[e]}),Promise.resolve(r)})()}static findClientConfig(t){var n=this;return f(function*(){if(!t||typeof t!=`string`||t.length===0)throw Error(`'domain' must be a string of non-zero length`);var r={"m.homeserver":{state:e.FAIL_ERROR,error:e.ERROR_INVALID,base_url:null},"m.identity_server":{state:e.PROMPT,error:null,base_url:null}},i=t.includes(`://`)?t:`https://${t}`,a=yield n.fetchWellKnownObject(`${i}/.well-known/matrix/client`);return!a||a.action!==mk.SUCCESS?(N.error(`No response or error when parsing .well-known`),a.reason&&N.error(a.reason),a.action===mk.IGNORE?r[`m.homeserver`]={state:e.PROMPT,error:null,base_url:null}:(r[`m.homeserver`].state=e.FAIL_PROMPT,r[`m.homeserver`].error=e.ERROR_INVALID),Promise.resolve(r)):e.fromDiscoveryConfig(a.raw)})()}static getRawClientConfig(e){var t=this;return f(function*(){if(!e||typeof e!=`string`||e.length===0)throw Error(`'domain' must be a string of non-zero length`);var n=yield t.fetchWellKnownObject(`https://${e}/.well-known/matrix/client`);return n?n.raw??{}:{}})()}static sanitizeWellKnownUrl(e){if(!e)return!1;try{var t,n;try{n=new URL(e)}catch(e){N.error(`Could not parse url`,e)}if(!((t=n)!=null&&t.hostname)||n.protocol!==`http:`&&n.protocol!==`https:`)return!1;var r=n.port?`:${n.port}`:``,i=n.pathname?n.pathname:``,a=`${n.protocol}//${n.hostname}${r}${i}`;return a.endsWith(`/`)&&(a=a.substring(0,a.length-1)),a}catch(e){return N.error(e),!1}}static fetch(e,t){return this.fetchFn?this.fetchFn(e,t):globalThis.fetch(e,t)}static setFetchFn(t){e.fetchFn=t}static fetchWellKnownObject(t){return f(function*(){var n;try{if(n=yield e.fetch(t,{method:F.Get,signal:RD(5e3)}),n.status===404)return{raw:{},action:mk.IGNORE,reason:e.ERROR_MISSING_WELLKNOWN};if(n.status!==200)return{raw:{},action:mk.FAIL_PROMPT,reason:`General failure`}}catch(e){var r=e,i=``;return typeof r==`object`&&(i=r?.message),{error:r,raw:{},action:mk.FAIL_PROMPT,reason:i||`General failure`}}try{return{raw:yield n.json(),action:mk.SUCCESS}}catch(t){var a=t;return{error:a,raw:{},action:mk.FAIL_PROMPT,reason:a?.name===`SyntaxError`?e.ERROR_INVALID_JSON:e.ERROR_INVALID}}})()}};g(gk,`ERROR_INVALID`,hk.Invalid),g(gk,`ERROR_GENERIC_FAILURE`,hk.GenericFailure),g(gk,`ERROR_INVALID_HS_BASE_URL`,hk.InvalidHsBaseUrl),g(gk,`ERROR_INVALID_HOMESERVER`,hk.InvalidHomeserver),g(gk,`ERROR_INVALID_IS_BASE_URL`,hk.InvalidIsBaseUrl),g(gk,`ERROR_INVALID_IDENTITY_SERVER`,hk.InvalidIdentityServer),g(gk,`ERROR_INVALID_IS`,hk.InvalidIs),g(gk,`ERROR_MISSING_WELLKNOWN`,hk.MissingWellknown),g(gk,`ERROR_INVALID_JSON`,hk.InvalidJson),g(gk,`ERROR_UNSUPPORTED_HOMESERVER_SPEC_VERSION`,hk.UnsupportedHomeserverSpecVersion),g(gk,`ALL_ERRORS`,Object.keys(hk)),g(gk,`FAIL_ERROR`,mk.FAIL_ERROR),g(gk,`FAIL_PROMPT`,mk.FAIL_PROMPT),g(gk,`PROMPT`,mk.PROMPT),g(gk,`SUCCESS`,mk.SUCCESS),g(gk,`fetchFn`,void 0);var _k=function(e){return e.IS=`SERVICE_TYPE_IS`,e.IM=`SERVICE_TYPE_IM`,e}({}),eie=class{constructor(e){this.ourEvent=e,g(this,`timeline`,void 0),g(this,`ourEventIndex`,0),g(this,`paginateTokens`,{[aD.Backward]:null,[aD.Forward]:null}),this.timeline=[e]}getEvent(){return this.timeline[this.ourEventIndex]}getTimeline(){return this.timeline}getOurEventIndex(){return this.ourEventIndex}getPaginateToken(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return this.paginateTokens[e?aD.Backward:aD.Forward]}setPaginateToken(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.paginateTokens[t?aD.Backward:aD.Forward]=e??null}addEvents(e){arguments.length>1&&arguments[1]!==void 0&&arguments[1]?(this.timeline=e.concat(this.timeline),this.ourEventIndex+=e.length):this.timeline=this.timeline.concat(e)}},tie=class e{static fromJson(t,n){var r=t.context||{},i=(r.events_before||[]).map(n),a=(r.events_after||[]).map(n),o=new eie(n(t.result)),s=o.ourEvent.threadRootId;return i=i.filter(e=>e.threadRootId===s),a=a.filter(e=>e.threadRootId===s),o.setPaginateToken(r.start,!0),o.addEvents(i,!0),o.addEvents(a,!1),o.setPaginateToken(r.end,!1),new e(t.rank,o)}constructor(e,t){this.rank=e,this.context=t}};function vk(e){return`parent_delay_id`in e&&typeof e.parent_delay_id!=`string`?!1:`delay`in e&&typeof e.delay!=`number`?!0:`delay`in e||`parent_delay_id`in e}var yk=function(e){return e.Cancel=`cancel`,e.Restart=`restart`,e.Send=`send`,e}({}),nie=function(e){return e.Public=`public`,e.Private=`private`,e}({}),bk=function(e){return e.PrivateChat=`private_chat`,e.TrustedPrivateChat=`trusted_private_chat`,e.PublicChat=`public_chat`,e}({}),xk=function(e){return e.Public=`public`,e.Invite=`invite`,e.Private=`private`,e.Knock=`knock`,e.Restricted=`restricted`,e}({}),rie=function(e){return e.RoomMembership=`m.room_membership`,e}({}),Sk=function(e){return e.CanJoin=`can_join`,e.Forbidden=`forbidden`,e}({}),Ck=function(e){return e.Invited=`invited`,e.Joined=`joined`,e.Shared=`shared`,e.WorldReadable=`world_readable`,e}({});function iie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function aie(e){for(var t=1;te.replacingEventId()===a.getId()),i){var o=e.directory.getFile(i.getId());if(o)t.push(o),a=i;else break}while(i);return t})()}};function lie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Tk(e){for(var t=1;t{var t;return!((t=e.getContent())!=null&&t.via)}):!0}setName(e){var t=this;return f(function*(){yield t.client.sendStateEvent(t.roomId,P.RoomName,{name:e},``)})()}invite(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!0,i=[n.retryInvite(e)];r&&i.push(...n.getDirectories().map(t=>t.invite(e,r))),yield Promise.all(i)})()}retryInvite(e){var t=this;return f(function*(){yield Dee(()=>t.client.invite(t.roomId,e),e=>!(e instanceof PD&&e.errcode===`M_FORBIDDEN`))})()}setPermissions(e,t){var n=this;return f(function*(){var r=n.room.currentState.getStateEvents(P.RoomPowerLevels,``);if(Array.isArray(r))throw Error(`Unexpected return type for power levels`);var i=r?.getContent()||{},a=i.users_default||0,o=i.events_default||50,s=i.events?.[P.RoomPowerLevels]||100,c=i.users||{};switch(t){case Ek.Viewer:c[e]=a;break;case Ek.Editor:c[e]=o;break;case Ek.Owner:c[e]=s;break;default:throw Error(`Invalid role: `+t)}i.users=c,yield n.client.sendStateEvent(n.roomId,P.RoomPowerLevels,i,``)})()}getPermissions(e){var t=this.room.currentState.getStateEvents(P.RoomPowerLevels,``);if(Array.isArray(t))throw Error(`Unexpected return type for power levels`);var n=t?.getContent()||{},r=n.users_default||0,i=n.events_default||50,a=n.events?.[P.RoomPowerLevels]||100,o=n.users?.[e]||r;return o>=a?Ek.Owner:o>=i?Ek.Editor:Ek.Viewer}createDirectory(e){var t=this;return f(function*(){var n=yield t.client.unstableCreateFileTree(e);return yield t.client.sendStateEvent(t.roomId,P.SpaceChild,{via:[t.client.getDomain()]},n.roomId),yield t.client.sendStateEvent(n.roomId,P.SpaceParent,{via:[t.client.getDomain()]},t.roomId),n})()}getDirectories(){var e=[];for(var t of this.room.currentState.getStateEvents(P.SpaceChild))try{var n=t.getStateKey();if(n){var r=this.client.unstableGetFileTreeSpace(n);r&&e.push(r)}}catch(e){N.warn(`Unable to create tree space instance for listing. Are we joined?`,e)}return e}getDirectory(e){return this.getDirectories().find(t=>t.roomId===e)}delete(){var e=this;return f(function*(){for(var t of e.getDirectories())yield t.delete();var n=[zE.Invite,zE.Knock,zE.Join];for(var r of e.room.currentState.getStateEvents(P.RoomMember))if(r.getStateKey()!==e.client.getUserId()&&n.includes(r.getContent().membership)){var i=r.getStateKey();if(!i)throw Error(`State key not found for branch`);yield e.client.kick(e.roomId,i,`Room deleted`)}yield e.client.leave(e.roomId)})()}getOrderedChildren(e){var t=e.map(e=>({roomId:e.getStateKey(),order:e.getContent().order})).filter(e=>e.roomId);return t.sort((e,t)=>{if(e.order&&!t.order)return-1;if(!e.order&&t.order)return 1;if(!e.order&&!t.order){var n=this.client.getRoom(e.roomId),r=this.client.getRoom(t.roomId);if(!n||!r)return uE(e.roomId,t.roomId);var i=n.currentState.getStateEvents(P.RoomCreate,``)?.getTs()??0,a=r.currentState.getStateEvents(P.RoomCreate,``)?.getTs()??0;return i===a?uE(e.roomId,t.roomId):i-a}else return uE(e.order,t.order)}),t}getParentRoom(){var e=this.room.currentState.getStateEvents(P.SpaceParent)[0];if(!e)throw Error(`Expected to have a parent in a non-top level space`);var t=e.getStateKey();if(!t)throw Error(`No state key found for parent`);var n=this.client.getRoom(t);if(!n)throw Error(`Unable to locate room for parent`);return n}getOrder(){if(this.isTopLevel)return-1;var e=this.getParentRoom().currentState.getStateEvents(P.SpaceChild);return this.getOrderedChildren(e).findIndex(e=>e.roomId===this.roomId)}setOrder(e){var t=this;return f(function*(){if(t.isTopLevel)throw Error(`Cannot set order of top level spaces currently`);var n=t.getParentRoom(),r=n.currentState.getStateEvents(P.SpaceChild),i=t.getOrderedChildren(r);e=Math.max(Math.min(e,i.length-1),0);var a=t.getOrder()e.isActive)}listAllFiles(){return(this.room.currentState.getStateEvents(PE.name)??[]).map(e=>new cie(this.client,e,this))}},fie=function(e){return e.Recent=`recent`,e.Rank=`rank`,e}({}),Dk=function(e){return e.LocalStreamsChanged=`local_streams_changed`,e}({}),pie=class extends TE{constructor(e){super(),this.client=e,g(this,`audioInput`,void 0),g(this,`audioSettings`,void 0),g(this,`videoInput`,void 0),g(this,`localUserMediaStream`,void 0),g(this,`userMediaStreams`,[]),g(this,`screensharingStreams`,[]),g(this,`getMediaStreamPromise`,void 0)}restoreMediaSettings(e,t){this.audioInput=e,this.videoInput=t}setAudioInput(e){var t=this;return f(function*(){N.info(`MediaHandler setAudioInput() running (deviceId=${e})`),t.audioInput!==e&&(t.audioInput=e,yield t.updateLocalUsermediaStreams())})()}setAudioSettings(e){var t=this;return f(function*(){N.info(`MediaHandler setAudioSettings() running (opts=${JSON.stringify(e)})`),t.audioSettings=Object.assign({},e),yield t.updateLocalUsermediaStreams()})()}setVideoInput(e){var t=this;return f(function*(){N.info(`MediaHandler setVideoInput() running (deviceId=${e})`),t.videoInput!==e&&(t.videoInput=e,yield t.updateLocalUsermediaStreams())})()}setMediaInputs(e,t){var n=this;return f(function*(){N.log(`MediaHandler setMediaInputs() running (audioInput: ${e} videoInput: ${t})`),n.audioInput=e,n.videoInput=t,yield n.updateLocalUsermediaStreams()})()}updateLocalUsermediaStreams(){var e=this;return f(function*(){if(e.userMediaStreams.length!==0){var t=new Map;for(var n of e.client.callEventHandler.calls.values())t.set(n.callId,{audio:n.hasLocalUserMediaAudioTrack,video:n.hasLocalUserMediaVideoTrack});for(var r of e.userMediaStreams){N.log(`MediaHandler updateLocalUsermediaStreams() stopping all tracks (streamId=${r.id})`);for(var i of r.getTracks())i.stop()}e.userMediaStreams=[],e.localUserMediaStream=void 0;for(var a of e.client.callEventHandler.calls.values())if(!(a.callHasEnded()||!t.has(a.callId))){var o=t.get(a.callId),s=o.audio,c=o.video;N.log(`MediaHandler updateLocalUsermediaStreams() calling getUserMediaStream() (callId=${a.callId})`);var l=yield e.getUserMediaStream(s,c);a.callHasEnded()||(yield a.updateLocalUsermediaStream(l))}for(var u of e.client.groupCallEventHandler.groupCalls.values())if(u.localCallFeed){N.log(`MediaHandler updateLocalUsermediaStreams() calling getUserMediaStream() (groupCallId=${u.groupCallId})`);var d=yield e.getUserMediaStream(!0,u.type===zO.Video);u.state!==WO.Ended&&(yield u.updateLocalUsermediaStream(d))}e.emit(Dk.LocalStreamsChanged)}})()}hasAudioDevice(){return f(function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`audioinput`).length>0}catch(e){return N.log(`MediaHandler hasAudioDevice() calling navigator.mediaDevices.enumerateDevices with error`,e),!1}})()}hasVideoDevice(){return f(function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.kind===`videoinput`).length>0}catch(e){return N.log(`MediaHandler hasVideoDevice() calling navigator.mediaDevices.enumerateDevices with error`,e),!1}})()}getUserMediaStream(e,t){var n=arguments,r=this;return f(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:!0;return r.getMediaStreamPromise?r.getMediaStreamPromise=r.getMediaStreamPromise.then(()=>r.getUserMediaStreamInternal(e,t,i)):r.getMediaStreamPromise=r.getUserMediaStreamInternal(e,t,i),r.getMediaStreamPromise})()}getUserMediaStreamInternal(e,t,n){var r=this;return f(function*(){var i=e&&(yield r.hasAudioDevice()),a=t&&(yield r.hasVideoDevice()),o,s=!0;if(r.localUserMediaStream){var c,l;i!==r.localUserMediaStream.getAudioTracks().length>0&&(s=!1),a!==r.localUserMediaStream.getVideoTracks().length>0&&(s=!1),i&&((c=r.localUserMediaStream.getAudioTracks()[0])==null||(c=c.getSettings())==null?void 0:c.deviceId)!==r.audioInput&&(s=!1),a&&((l=r.localUserMediaStream.getVideoTracks()[0])==null||(l=l.getSettings())==null?void 0:l.deviceId)!==r.videoInput&&(s=!1)}else s=!1;if(s){if(o=r.localUserMediaStream.clone(),N.log(`MediaHandler getUserMediaStreamInternal() cloning (oldStreamId=${r.localUserMediaStream?.id} newStreamId=${o.id} shouldRequestAudio=${i} shouldRequestVideo=${a})`),!i)for(var u of o.getAudioTracks())o.removeTrack(u);if(!a)for(var d of o.getVideoTracks())o.removeTrack(d)}else{var f;try{f=r.getUserMediaContraints(i,a,!0),o=yield navigator.mediaDevices.getUserMedia(f)}catch(e){N.warn(`MediaHandler getUserMediaStreamInternal() error (e=${e}), retrying without exact deviceId`),f=r.getUserMediaContraints(i,a,!1),o=yield navigator.mediaDevices.getUserMedia(f)}N.log(`MediaHandler getUserMediaStreamInternal() calling getUserMediaStream (streamId=${o.id}, shouldRequestAudio=${i}, shouldRequestVideo=${a}, constraints=${JSON.stringify(f)})`);for(var p of o.getTracks()){var m=p.getSettings();p.kind===`audio`?r.audioInput=m.deviceId:p.kind===`video`&&(r.videoInput=m.deviceId)}n&&(r.localUserMediaStream=o)}return n&&r.userMediaStreams.push(o),r.emit(Dk.LocalStreamsChanged),o})()}stopUserMediaStream(e){N.log(`MediaHandler stopUserMediaStream() stopping (streamId=${e.id})`);for(var t of e.getTracks())t.stop();var n=this.userMediaStreams.indexOf(e);if(n!==-1&&(N.debug(`MediaHandler stopUserMediaStream() splicing usermedia stream out stream array (streamId=${e.id})`,e.id),this.userMediaStreams.splice(n,1)),this.emit(Dk.LocalStreamsChanged),this.localUserMediaStream===e)this.localUserMediaStream=void 0;else for(var r of e.getTracks()){var i;if((i=this.localUserMediaStream)!=null&&i.getTrackById(r.id)){this.stopUserMediaStream(this.localUserMediaStream);break}}}getScreensharingStream(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:{},r=e.length>1&&e[1]!==void 0?e[1]:!0,i;if(t.screensharingStreams.length===0){var a=t.getScreenshareContraints(n);n.desktopCapturerSourceId?(N.debug(`MediaHandler getScreensharingStream() calling getUserMedia() (opts=${JSON.stringify(n)})`),i=yield navigator.mediaDevices.getUserMedia(a)):(N.debug(`MediaHandler getScreensharingStream() calling getDisplayMedia() (opts=${JSON.stringify(n)})`),i=yield navigator.mediaDevices.getDisplayMedia(a))}else{var o=t.screensharingStreams[t.screensharingStreams.length-1];N.log(`MediaHandler getScreensharingStream() cloning (streamId=${o.id})`),i=o.clone()}return r&&t.screensharingStreams.push(i),t.emit(Dk.LocalStreamsChanged),i})()}stopScreensharingStream(e){N.debug(`MediaHandler stopScreensharingStream() stopping stream (streamId=${e.id})`);for(var t of e.getTracks())t.stop();var n=this.screensharingStreams.indexOf(e);n!==-1&&(N.debug(`MediaHandler stopScreensharingStream() splicing stream out (streamId=${e.id})`),this.screensharingStreams.splice(n,1)),this.emit(Dk.LocalStreamsChanged)}stopAllStreams(){for(var e of this.userMediaStreams){N.log(`MediaHandler stopAllStreams() stopping (streamId=${e.id})`);for(var t of e.getTracks())t.stop()}for(var n of this.screensharingStreams)for(var r of n.getTracks())r.stop();this.userMediaStreams=[],this.screensharingStreams=[],this.localUserMediaStream=void 0,this.emit(Dk.LocalStreamsChanged)}getUserMediaContraints(e,t,n){var r=!!navigator.webkitGetUserMedia,i=n?`exact`:`ideal`,a={};this.audioInput&&(a.deviceId={[i]:this.audioInput}),this.audioSettings&&(a.autoGainControl={ideal:this.audioSettings.autoGainControl},a.echoCancellation={ideal:this.audioSettings.echoCancellation},a.noiseSuppression={ideal:this.audioSettings.noiseSuppression});var o={width:r?{exact:640}:{ideal:640},height:r?{exact:360}:{ideal:360}};return this.videoInput&&(o.deviceId={[i]:this.videoInput}),{audio:e?a:!1,video:t?o:!1}}getScreenshareContraints(e){var t=e.desktopCapturerSourceId,n=e.audio;return t?{audio:n??!1,video:{mandatory:{chromeMediaSource:`desktop`,chromeMediaSourceId:t}}}:{audio:n??!1,video:!0}}},mie=function(e){return e.RequestFinished=`FINISHED`,e.Complete=`COMPLETE`,e}({}),Ok=function(e){return e.PreProcess=`ExtState.PreProcess`,e.PostProcess=`ExtState.PostProcess`,e}({}),kk=function(e){return e.RoomData=`SlidingSync.RoomData`,e.Lifecycle=`SlidingSync.Lifecycle`,e}({}),hie=3,gie=class{constructor(e){this.crypto=e}name(){return`e2ee`}when(){return Ok.PreProcess}onRequest(e){var t=this;return f(function*(){return e&&(N.log(`ExtensionE2EE: invalidating all device lists due to missing 'pos'`),yield t.crypto.markAllTrackedUsersAsDirty()),{enabled:!0}})()}onResponse(e){var t=this;return f(function*(){e.device_lists&&(yield t.crypto.processDeviceLists(e.device_lists)),yield t.crypto.processKeyCounts(e.device_one_time_keys_count,e.device_unused_fallback_key_types||e[`org.matrix.msc2732.device_unused_fallback_key_types`]),t.crypto.onSyncCompleted({})})()}},_ie=class{constructor(e,t){this.client=e,this.cryptoCallbacks=t,g(this,`nextBatch`,null)}name(){return`to_device`}when(){return Ok.PreProcess}onRequest(e){var t=this;return f(function*(){return{since:t.nextBatch===null?void 0:t.nextBatch,limit:100,enabled:!0}})()}onResponse(e){var t=this;return f(function*(){var n=e.events||[];gO(t.cryptoCallbacks?yield t.cryptoCallbacks.preprocessToDeviceMessages(n):n.map(e=>({message:e,encryptionInfo:null})),t.client),t.nextBatch=e.next_batch})()}},vie=class{constructor(e){this.client=e}name(){return`account_data`}when(){return Ok.PostProcess}onRequest(e){return f(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return f(function*(){for(var n in e.global&&e.global.length>0&&t.processGlobalAccountData(e.global),e.rooms){var r=Ak(t.client,n,e.rooms[n]),i=t.client.getRoom(n);if(!i){N.warn(`got account data for room but room doesn't exist on client:`,n);continue}i.addAccountData(r),r.forEach(e=>{t.client.emit(L.Event,e)})}})()}processGlobalAccountData(e){var t=Ak(this.client,void 0,e),n=t.reduce((e,t)=>(e[t.getType()]=this.client.store.getAccountData(t.getType()),e),{});this.client.store.storeAccountDataEvents(t),t.forEach(e=>{if(e.getType()===P.PushRules){var t=e.getContent();this.client.setPushRules(t)}var r=n[e.getType()];return this.client.emit(L.AccountData,e,r),e})}},yie=class{constructor(e){this.client=e}name(){return`typing`}when(){return Ok.PostProcess}onRequest(e){return f(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return f(function*(){if(e!=null&&e.rooms)for(var n in e.rooms)Cie(t.client,n,[e.rooms[n]])})()}},bie=class{constructor(e){this.client=e}name(){return`receipts`}when(){return Ok.PostProcess}onRequest(e){return f(function*(){return{enabled:!0}})()}onResponse(e){var t=this;return f(function*(){if(e!=null&&e.rooms)for(var n in e.rooms)Cie(t.client,n,[e.rooms[n]])})()}},xie=class{constructor(e,t,n,r){this.slidingSync=e,this.client=t,g(this,`opts`,void 0),g(this,`syncOpts`,void 0),g(this,`syncState`,null),g(this,`syncStateData`,void 0),g(this,`lastPos`,null),g(this,`failCount`,0),g(this,`notifEvents`,[]),this.opts=fO(n),this.syncOpts=pO(r),t.getNotifTimelineSet()&&t.reEmitter.reEmit(t.getNotifTimelineSet(),[I.Timeline,I.TimelineReset]),this.slidingSync.on(kk.Lifecycle,this.onLifecycle.bind(this)),this.slidingSync.on(kk.RoomData,this.onRoomData.bind(this));var i=[new _ie(this.client,this.syncOpts.cryptoCallbacks),new vie(this.client),new yie(this.client),new bie(this.client)];this.syncOpts.cryptoCallbacks&&i.push(new gie(this.syncOpts.cryptoCallbacks)),i.forEach(e=>{this.slidingSync.registerExtension(e)})}onRoomData(e,t){var n=this;return f(function*(){var r=n.client.store.getRoom(e);if(!r){if(!t.initial){n.syncOpts.logger.debug(`initial flag not set but no stored room exists for room `,e,t);return}r=hO(n.client,e,n.opts)}yield n.processRoomData(n.client,r,t)})()}onLifecycle(e,t,n){switch(n&&this.syncOpts.logger.debug(`onLifecycle`,e,n),e){case mie.Complete:if(this.purgeNotifications(),!t)break;this.lastPos||this.updateSyncState(lO.Prepared,{oldSyncToken:void 0,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.updateSyncState(lO.Syncing,{oldSyncToken:this.lastPos,nextSyncToken:t.pos,catchingUp:!1,fromCache:!1}),this.lastPos=t.pos;break;case mie.RequestFinished:if(n){if(this.failCount+=1,this.updateSyncState(this.failCount>hie?lO.Error:lO.Reconnecting,{error:new PD(n)}),this.shouldAbortSync(new PD(n)))return}else this.failCount=0,this.syncOpts.logger.debug(`SlidingSyncState.RequestFinished with ${Object.keys(t?.rooms||[]).length} rooms`);break}}syncLeftRooms(){return f(function*(){return[]})()}peek(e){return f(function*(){return null})()}stopPeeking(){}setPresence(e){}getSyncState(){return this.syncState}getSyncStateData(){return this.syncStateData??null}createRoom(e){var t=this.client.timelineSupport,n=new rO(e,this.client,this.client.getUserId(),{lazyLoadMembers:this.opts.lazyLoadMembers,pendingEventOrdering:this.opts.pendingEventOrdering,timelineSupport:t});return this.client.reEmitter.reEmit(n,[I.Name,I.Redaction,I.RedactionCancelled,I.Receipt,I.Tags,I.LocalEchoUpdated,I.AccountData,I.MyMembership,I.Timeline,I.TimelineReset]),this.registerStateListeners(n),n}registerStateListeners(e){this.client.reEmitter.reEmit(e.currentState,[pj.Events,pj.Members,pj.NewMember,pj.Update]),e.currentState.on(pj.NewMember,(e,t,n)=>{n.user=this.client.getUser(n.userId)??void 0,this.client.reEmitter.reEmit(n,[BE.Name,BE.Typing,BE.PowerLevel,BE.Membership])})}shouldAbortSync(e){return e.errcode===`M_UNKNOWN_TOKEN`?(this.syncOpts.logger.warn(`Token no longer valid - assuming logout`),this.stop(),this.updateSyncState(lO.Error,{error:e}),!0):!1}processRoomData(e,t,n){var r=this;return f(function*(){n=Sie(e,t.roomId,n);var i=Ak(r.client,t.roomId,n.required_state),a=Ak(r.client,t.roomId,n.timeline,!1),o=[];if(n.limited||n.initial){var s=new Set;t.getLiveTimeline().getEvents().forEach(e=>{s.add(e.getId())});for(var c=[],l=[],u=!1,d=a.length-1;d>=0;d--){var p=a[d];if(s.has(p.getId())){u=!0;continue}u?c.push(p):l.unshift(p)}a=l,c.length>0&&t.addEventsToTimeline(c,!0,!1,t.getLiveTimeline(),n.prev_batch)}var m=t.hasEncryptionStateEvent();if(n.notification_count!=null&&t.setUnreadNotificationCount(nO.Total,n.notification_count),n.highlight_count!=null&&(!m||m&&t.getUnreadNotificationCount(nO.Highlight)<=0)&&t.setUnreadNotificationCount(nO.Highlight,n.highlight_count),n.bump_stamp&&t.setBumpStamp(n.bump_stamp),Number.isInteger(n.invited_count)&&t.currentState.setInvitedMemberCount(n.invited_count),Number.isInteger(n.joined_count)&&t.currentState.setJoinedMemberCount(n.joined_count),n.invite_state){var h=Ak(r.client,t.roomId,n.invite_state);yield r.injectRoomEvents(t,h),n.initial&&(t.recalculate(),r.client.store.storeRoom(t),r.client.emit(L.Room,t)),h.forEach(e=>{r.client.emit(L.Event,e)});return}n.limited&&t.getLiveTimeline().setPaginationToken(n.prev_batch??null,oD.BACKWARDS),yield r.injectRoomEvents(t,i,a,n.num_live),t.addEphemeralEvents(o),t.updateMyMembership(zE.Join),t.setMSC4186SummaryData(n.heroes,n.joined_count,n.invited_count),t.recalculate(),n.initial&&(e.store.storeRoom(t),e.emit(L.Room,t)),r.addNotifications(a);var g=function(){var n=f(function*(n){e.emit(L.Event,n),n.isState()&&n.getType()==P.RoomEncryption&&r.syncOpts.cryptoCallbacks&&(yield r.syncOpts.cryptoCallbacks.onCryptoEvent(t,n))});return function(e){return n.apply(this,arguments)}}();yield Eee(i,g),yield Eee(a,g),o.forEach(function(t){e.emit(L.Event,t)}),t.decryptCriticalEvents()})()}injectRoomEvents(e,t){var n=arguments,r=this;return f(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:[],a=n.length>3&&n[3]!==void 0?n[3]:0,o=e.getLiveTimeline(),s=o.getEvents().length==0;if(s){for(var c of t)r.client.getPushActionsForEvent(c);o.initialiseState(t)}s||(e.oldState.setStateEvents(t),e.currentState.setStateEvents(t));var l=[];a>0&&(l=i.slice(-1*a),i=i.slice(0,-1*l.length)),yield e.addLiveEvents(i,{fromCache:!0,addToState:!1}),l.length>0&&(yield e.addLiveEvents(l,{fromCache:!1,addToState:!1})),e.recalculate(),r.resolveInvites(e)})()}resolveInvites(e){if(!(!e||!this.opts.resolveInvitesToProfiles)){var t=this.client;e.getMembersWithMembership(zE.Invite).forEach(function(n){if(!n.requestedProfileInfo){n.requestedProfileInfo=!0;var r=t.getUser(n.userId);(r?Promise.resolve({avatar_url:r.avatarUrl,displayname:r.displayName}):t.getProfileInfo(n.userId)).then(function(t){var r=n.events.member;r.getContent().membership===zE.Invite&&(r.getContent().avatar_url=t.avatar_url,r.getContent().displayname=t.displayname,n.setMembershipEvent(r,e.currentState))},function(e){})}})}}retryImmediately(){return!0}sync(){var e=this;return f(function*(){for(e.syncOpts.logger.debug(`Sliding sync init loop`);!e.client.isGuest();)try{e.syncOpts.logger.debug(`Getting push rules...`);var t=yield e.client.getPushRules();e.syncOpts.logger.debug(`Got push rules`),e.client.pushRules=t;break}catch(t){if(e.syncOpts.logger.error(`Getting push rules failed`,t),e.shouldAbortSync(t))return}yield e.slidingSync.start()})()}stop(){this.syncOpts.logger.debug(`SyncApi.stop`),this.slidingSync.stop()}updateSyncState(e,t){var n=this.syncState;this.syncState=e,this.syncStateData=t,this.client.emit(L.Sync,this.syncState,n,t)}addNotifications(e){if(this.client.getNotifTimelineSet())for(var t of e){var n=this.client.getPushActionsForEvent(t);n&&n.notify&&n.tweaks&&n.tweaks.highlight&&this.notifEvents.push(t)}}purgeNotifications(){this.notifEvents.sort(function(e,t){return e.getTs()-t.getTs()}),this.notifEvents.forEach(e=>{var t;(t=this.client.getNotifTimelineSet())==null||t.addLiveEvent(e,{addToState:!1})}),this.notifEvents=[]}};function Sie(e,t,n){if(!n.name)return n;for(var r of n.required_state)if(r.type===P.RoomName&&r.state_key===``)return r.content={name:n.name},n;return n.required_state.push({event_id:`$fake-sliding-sync-name-event-`+t,state_key:``,type:P.RoomName,content:{name:n.name},sender:e.getUserId(),origin_server_ts:new Date().getTime()}),n}function Ak(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=e.getEventMapper({decrypt:r});return n.map(function(e){return e.room_id=t,i(e)})}function Cie(e,t,n){var r=Ak(e,t,n),i=e.getRoom(t);if(!i){N.warn(`got ephemeral events for room but room doesn't exist on client:`,t);return}i.addEphemeralEvents(r),r.forEach(t=>{e.emit(L.Event,t)})}var jk=new BT(`m.beacon_info`,`org.matrix.msc3672.beacon_info`),Mk=new BT(`m.beacon`,`org.matrix.msc3672.beacon`),wie=!1,Nk=class e{static RETRY_BACKOFF_RATELIMIT(e,t,n){return UD(n,t,!1)}static QUEUE_MESSAGES(e){return e.getType()===P.RoomMessage||e.hasAssociation()?`message`:null}constructor(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.RETRY_BACKOFF_RATELIMIT,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.QUEUE_MESSAGES;this.retryAlgorithm=t,this.queueAlgorithm=n,g(this,`queues`,{}),g(this,`activeQueues`,[]),g(this,`procFn`,null),g(this,`processQueue`,e=>{var t=this.peekNextEvent(e);if(!t){this.disableQueue(e);return}Pk(`Queue '%s' has %s pending events`,e,this.queues[e].length),Promise.resolve().then(()=>this.procFn(t.event)).then(n=>{this.removeNextEvent(e),Pk(`Queue '%s' sent event %s`,e,t.event.getId()),t.resolvers.resolve(n),this.processQueue(e)},n=>{t.attempts+=1;var r=this.retryAlgorithm(t.event,t.attempts,n);Pk(`retry(%s) err=%s event_id=%s waitTime=%s`,t.attempts,n,t.event.getId(),r),r===-1?(N.info(`Queue '%s' giving up on event %s`,e,t.event.getId()),this.clearQueue(e,n)):setTimeout(this.processQueue,r,e)})})}getQueueForEvent(e){var t=this.queueAlgorithm(e);return!t||!this.queues[t]?null:this.queues[t].map(function(e){return e.event})}removeEventFromQueue(e){var t=this.queueAlgorithm(e);if(!t||!this.queues[t])return!1;var n=!1;return YT(this.queues[t],t=>t.event.getId()===e.getId()?(n=!0,!0):!1),n}setProcessFunction(e){this.procFn=e,this.startProcessingQueues()}queueEvent(e){var t=this.queueAlgorithm(e);if(!t)return null;this.queues[t]||(this.queues[t]=[]);var n=Promise.withResolvers();return this.queues[t].push({event:e,resolvers:n,attempts:0}),Pk(`Queue algorithm dumped event %s into queue '%s'`,e.getId(),t),this.startProcessingQueues(),n.promise}startProcessingQueues(){this.procFn&&Object.keys(this.queues).filter(e=>this.activeQueues.indexOf(e)===-1&&this.queues[e].length>0).forEach(e=>{this.activeQueues.push(e),Pk(`Spinning up queue: '%s'`,e),this.processQueue(e)})}disableQueue(e){var t=this.activeQueues.indexOf(e);t>=0&&this.activeQueues.splice(t,1),N.info(`Stopping queue '%s' as it is now empty`,e)}clearQueue(e,t){N.info(`clearing queue '%s'`,e);for(var n;n=this.removeNextEvent(e);)n.resolvers.reject(t);this.disableQueue(e)}peekNextEvent(e){var t=this.queues[e];if(Array.isArray(t))return t[0]}removeNextEvent(e){var t=this.queues[e];if(Array.isArray(t))return t.shift()}};function Pk(){wie&&N.log(...arguments)}var Tie=20,Eie=class{constructor(e,t){var n=this;this.client=e,this.logger=t,g(this,`sending`,!1),g(this,`running`,!0),g(this,`retryTimeout`,null),g(this,`retryAttempts`,0),g(this,`sendQueue`,f(function*(){if(n.retryTimeout!==null&&clearTimeout(n.retryTimeout),n.retryTimeout=null,!(n.sending||!n.running)){n.logger.debug(`Attempting to send queued to-device messages`),n.sending=!0;var e;try{for(;n.running&&(e=yield n.client.store.getOldestToDeviceBatch(),e!==null);)yield n.sendBatch(e),yield n.client.store.removeToDeviceBatch(e.id),n.retryAttempts=0;if(!n.running)return;n.logger.debug(`All queued to-device messages sent`)}catch(r){++n.retryAttempts;var t=Nk.RETRY_BACKOFF_RATELIMIT(null,n.retryAttempts,r);if(t===-1){Math.floor(r.httpStatus/100)===4?(n.logger.error(`Fatal error when sending to-device message - dropping to-device batch!`,r),yield n.client.store.removeToDeviceBatch(e.id)):n.logger.info(`Automatic retry limit reached for to-device messages.`);return}n.logger.info(`Failed to send batch of to-device messages. Will retry in ${t}ms`,r),n.retryTimeout=setTimeout(n.sendQueue,t)}finally{n.sending=!1}}})),g(this,`onResumedSync`,(e,t)=>{e===lO.Syncing&&t!==lO.Syncing&&(this.logger.info(`Resuming queue after resumed sync`),this.sendQueue())})}start(){this.running=!0,this.sendQueue(),this.client.on(L.Sync,this.onResumedSync)}stop(){this.running=!1,this.retryTimeout!==null&&clearTimeout(this.retryTimeout),this.retryTimeout=null,this.client.removeListener(L.Sync,this.onResumedSync)}queueBatch(e){var t=this;return f(function*(){for(var n=[],r=0;r`${e.userId}/${e.deviceId} (msgid ${e.payload[AE]})`);t.logger.info(`Enqueuing batch of to-device messages. type=${e.eventType} txnid=${i.txnId}`,a)}yield t.client.store.saveToDeviceBatches(n),t.sendQueue()})()}sendBatch(e){var t=this;return f(function*(){var n=new gE(()=>new Map);for(var r of e.batch)n.getOrCreate(r.userId).set(r.deviceId,r.payload);t.logger.info(`Sending batch of ${e.batch.length} to-device messages with ID ${e.id} and txnId ${e.txnId}`),yield t.client.sendToDevice(e.eventType,n,e.txnId)})()}},Fk=new nD.UnstableValue(`m.policies`,`org.matrix.msc3847.policies`),Ik=new nD.UnstableValue(`m.ignore.invites`,`org.matrix.msc3847.ignore.invites`),Die=function(e){return e.Ban=`m.ban`,e}({}),Lk=function(e){return e.User=`m.policy.user`,e.Room=`m.policy.room`,e.Server=`m.policy.server`,e}({}),Oie={[Lk.User]:P.PolicyRuleUser,[Lk.Room]:P.PolicyRuleRoom,[Lk.Server]:P.PolicyRuleServer},kie=class{constructor(e){this.client=e}addRule(e,t,n){var r=this;return f(function*(){var i=yield r.getOrCreateTargetRoom();return(yield r.client.sendStateEvent(i.roomId,Oie[e],{entity:t,reason:n,recommendation:Die.Ban})).event_id})()}removeRule(e){var t=this;return f(function*(){yield t.client.redactEvent(e.getRoomId(),e.getId())})()}addSource(e){var t=this;return f(function*(){yield t.client.joinRoom(e);var n=(yield t.getOrCreateSourceRooms()).map(e=>e.roomId);return n.includes(e)?!1:(n.push(e),yield t.withIgnoreInvitesPolicies(e=>{e.sources=n}),!0)})()}getRuleForInvite(e){var t=this;return f(function*(){var n=e.sender,r=e.roomId,i=yield t.getOrCreateSourceRooms(),a=n.split(`:`)[1],o=r.split(`:`)[1];for(var s of i){var c=s.getUnfilteredTimelineSet().getLiveTimeline().getState(oD.FORWARDS);for(var l of[{scope:Lk.Room,entities:[r]},{scope:Lk.User,entities:[n]},{scope:Lk.Server,entities:[a,o]}]){var u=l.scope,d=l.entities;for(var f of c.getStateEvents(Oie[u])){var p=f.getContent();if(p?.recommendation==Die.Ban){var m=p?.entity;if(m){var h=void 0;try{h=new RegExp(See(m))}catch{continue}for(var g of d)if(g&&h.test(g))return f}}}}}return null})()}getOrCreateTargetRoom(){var e=this;return f(function*(){var t=e.getIgnoreInvitesPolicies().target;if(typeof t!=`string`&&(t=null),t){var n=e.client.getRoom(t);if(n)return n;t=null}return t=(yield e.client.createRoom({name:`Individual Policy Room`,preset:bk.PrivateChat})).room_id,yield e.withIgnoreInvitesPolicies(e=>{e.target=t}),e.client.getRoom(t)})()}getOrCreateSourceRooms(){var e=this;return f(function*(){var t=e.getIgnoreInvitesPolicies().sources,n=!1;Array.isArray(t)||(n=!0,t=[]);var r=t.filter(e=>typeof e==`string`).map(t=>e.client.getRoom(t)).filter(e=>!!e);if(r.length!=t.length&&(n=!0),r.length==0){var i=yield e.getOrCreateTargetRoom();n=!0,r=[i]}return n&&(yield e.withIgnoreInvitesPolicies(e=>{e.sources=t})),r})()}getIgnoreInvitesPolicies(){return this.getPoliciesAndIgnoreInvitesPolicies().ignoreInvitesPolicies}withIgnoreInvitesPolicies(e){var t=this;return f(function*(){var n=t.getPoliciesAndIgnoreInvitesPolicies(),r=n.policies,i=n.ignoreInvitesPolicies;e(i),r[Ik.name]=i,yield t.client.setAccountData(Fk.name,r)})()}getPoliciesAndIgnoreInvitesPolicies(){var e={};for(var t of[Fk.name,Fk.altName])if(t){var n=this.client.getAccountData(t)?.getContent();if(n){e=n;break}}var r={},i=!1;for(var a of[Ik.name,Ik.altName])if(a){var o=e[a];if(o&&typeof o==`object`){r=o,i=!0;break}}return i||(e[Ik.name]=r),{policies:e,ignoreInvitesPolicies:r}}},Rk=`matrix-js-sdk`,Aie=function(e){return e.Change=`change`,e}({}),jie=function(e){return e[e.Unsent=1]=`Unsent`,e[e.Requested=2]=`Requested`,e[e.Ready=3]=`Ready`,e[e.Started=4]=`Started`,e[e.Cancelled=5]=`Cancelled`,e[e.Done=6]=`Done`,e}({}),Mie=function(e){return e.Cancel=`cancel`,e.ShowSas=`show_sas`,e.ShowReciprocateQr=`show_reciprocate_qr`,e}({});function Nie(e){if(e.length>=255)throw TypeError(`Alphabet too long`);let t=new Uint8Array(256);for(let e=0;e>>0,u=new Uint8Array(l);for(;s!==c;){let e=t[s],r=0;for(let t=l-1;(e!==0||r>>0,u[t]=e%n>>>0,e=e/n>>>0;if(e!==0)throw Error(`Non-zero carry`);o=r,s++}let d=l-o;for(;d!==l&&u[d]===0;)d++;let f=r.repeat(i);for(;d>>0,l=new Uint8Array(c);for(;a255)return;let i=t[r];if(i===255)return;let o=0;for(let e=c-1;(i!==0||o>>0,l[e]=i%256>>>0,i=i/256>>>0;if(i!==0)throw Error(`Non-zero carry`);s=o,a++}let u=c-s;for(;u!==c&&l[u]===0;)u++;let d=new Uint8Array(o+(c-u)),f=o;for(;u!==c;)d[f++]=l[u++];return d}function c(e){let t=s(e);if(t)return t;throw Error(`Non-base`+n+` character`)}return{encode:o,decodeUnsafe:s,decode:c}}var Pie=Nie(`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`),zk=[139,1];function Fie(e){var t=new Uint8Array(zk.length+e.length+1);t.set(zk,0),t.set(e,zk.length);for(var n=0,r=0;r3&&arguments[3]!==void 0?arguments[3]:Iie;if(!globalThis.crypto.subtle||!TextEncoder)throw Error(`Password-based backup is not available on this platform`);var i=yield globalThis.crypto.subtle.importKey(`raw`,new TextEncoder().encode(e),{name:`PBKDF2`},!1,[`deriveBits`]),a=yield globalThis.crypto.subtle.deriveBits({name:`PBKDF2`,salt:new TextEncoder().encode(t),iterations:n,hash:`SHA-512`},i,r);return new Uint8Array(a)}),Bk.apply(this,arguments)}var Vk=function(e){return e.UserTrustStatusChanged=`userTrustStatusChanged`,e.KeyBackupStatus=`crypto.keyBackupStatus`,e.KeyBackupFailed=`crypto.keyBackupFailed`,e.KeyBackupSessionsRemaining=`crypto.keyBackupSessionsRemaining`,e.KeyBackupDecryptionKeyCached=`crypto.keyBackupDecryptionKeyCached`,e.VerificationRequestReceived=`crypto.verificationRequestReceived`,e.WillUpdateDevices=`crypto.willUpdateDevices`,e.DevicesUpdated=`crypto.devicesUpdated`,e.KeysChanged=`crossSigning.keysChanged`,e.LegacyCryptoStoreMigrationProgress=`crypto.legacyCryptoStoreMigrationProgress`,e.DehydratedDeviceCreated=`dehydration.DehydratedDeviceCreated`,e.DehydratedDeviceUploaded=`dehydration.DehydratedDeviceUploaded`,e.RehydrationStarted=`dehydration.RehydrationStarted`,e.RehydrationProgress=`dehydration.RehydrationProgress`,e.RehydrationCompleted=`dehydration.RehydrationCompleted`,e.RehydrationError=`dehydration.RehydrationError`,e.DehydrationKeyCached=`dehydration.DehydrationKeyCached`,e.DehydratedDeviceRotationError=`dehydration.DehydratedDeviceRotationError`,e}({}),Rie=function(e){return e.MEGOLM_UNKNOWN_INBOUND_SESSION_ID=`MEGOLM_UNKNOWN_INBOUND_SESSION_ID`,e.MEGOLM_KEY_WITHHELD=`MEGOLM_KEY_WITHHELD`,e.MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE=`MEGOLM_KEY_WITHHELD_FOR_UNVERIFIED_DEVICE`,e.OLM_UNKNOWN_MESSAGE_INDEX=`OLM_UNKNOWN_MESSAGE_INDEX`,e.HISTORICAL_MESSAGE_NO_KEY_BACKUP=`HISTORICAL_MESSAGE_NO_KEY_BACKUP`,e.HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED=`HISTORICAL_MESSAGE_BACKUP_UNCONFIGURED`,e.HISTORICAL_MESSAGE_WORKING_BACKUP=`HISTORICAL_MESSAGE_WORKING_BACKUP`,e.HISTORICAL_MESSAGE_USER_NOT_JOINED=`HISTORICAL_MESSAGE_USER_NOT_JOINED`,e.SENDER_IDENTITY_PREVIOUSLY_VERIFIED=`SENDER_IDENTITY_PREVIOUSLY_VERIFIED`,e.UNSIGNED_SENDER_DEVICE=`UNSIGNED_SENDER_DEVICE`,e.UNKNOWN_SENDER_DEVICE=`UNKNOWN_SENDER_DEVICE`,e.UNKNOWN_ERROR=`UNKNOWN_ERROR`,e}({}),zie=function(e){return e[e.AllDevicesIsolationMode=0]=`AllDevicesIsolationMode`,e[e.OnlySignedDevicesIsolationMode=1]=`OnlySignedDevicesIsolationMode`,e}({}),Bie=class{constructor(e){this.errorOnVerifiedUserProblems=e,g(this,`kind`,zie.AllDevicesIsolationMode)}},Vie=class{constructor(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;this.crossSigningVerified=e,this.crossSigningVerifiedBefore=t,g(this,`known`,void 0),g(this,`needsUserApproval`,void 0),this.known=n,this.needsUserApproval=r}isVerified(){return this.isCrossSigningVerified()}isCrossSigningVerified(){return this.crossSigningVerified}wasCrossSigningVerified(){return this.crossSigningVerifiedBefore}isTofu(){return!1}},Hie=class{constructor(e){g(this,`signedByOwner`,void 0),g(this,`crossSigningVerified`,void 0),g(this,`tofu`,void 0),g(this,`localVerified`,void 0),g(this,`trustCrossSignedDevices`,void 0),this.signedByOwner=e.signedByOwner??!1,this.crossSigningVerified=e.crossSigningVerified??!1,this.tofu=e.tofu??!1,this.localVerified=e.localVerified??!1,this.trustCrossSignedDevices=e.trustCrossSignedDevices??!1}isVerified(){return this.localVerified||this.trustCrossSignedDevices&&this.crossSigningVerified}},Uie=function(e){return e.Fetch=`fetch`,e.LoadKeys=`load_keys`,e}({}),Wie=function(e){return e.Master=`master`,e.SelfSigning=`self_signing`,e.UserSigning=`user_signing`,e}({}),Gie=function(e){return e[e.NONE=0]=`NONE`,e[e.GREY=1]=`GREY`,e[e.RED=2]=`RED`,e}({}),Kie=function(e){return e[e.UNKNOWN=0]=`UNKNOWN`,e[e.UNVERIFIED_IDENTITY=1]=`UNVERIFIED_IDENTITY`,e[e.UNSIGNED_DEVICE=2]=`UNSIGNED_DEVICE`,e[e.UNKNOWN_DEVICE=3]=`UNKNOWN_DEVICE`,e[e.AUTHENTICITY_NOT_GUARANTEED=4]=`AUTHENTICITY_NOT_GUARANTEED`,e[e.MISMATCHED_SENDER_KEY=5]=`MISMATCHED_SENDER_KEY`,e[e.SENT_IN_CLEAR=6]=`SENT_IN_CLEAR`,e[e.VERIFICATION_VIOLATION=7]=`VERIFICATION_VIOLATION`,e[e.MISMATCHED_SENDER=8]=`MISMATCHED_SENDER`,e}({}),qie=class extends Error{constructor(e){super(e),this.name=`DecryptionKeyDoesNotMatchError`}},Jie=new Uint8Array(8);function Yie(e,t){return Hk.apply(this,arguments)}function Hk(){return Hk=f(function*(e,t){var n=yield globalThis.crypto.subtle.importKey(`raw`,e,{name:`HKDF`},!1,[`deriveBits`]),r=yield globalThis.crypto.subtle.deriveBits({name:`HKDF`,salt:Jie,info:new TextEncoder().encode(t),hash:`SHA-256`},n,512),i=r.slice(0,32),a=r.slice(32),o=globalThis.crypto.subtle.importKey(`raw`,i,{name:`AES-CTR`},!1,[`encrypt`,`decrypt`]),s=globalThis.crypto.subtle.importKey(`raw`,a,{name:`HMAC`,hash:{name:`SHA-256`}},!1,[`sign`,`verify`]);return Promise.all([o,s])}),Hk.apply(this,arguments)}function Xie(e,t,n,r){return Uk.apply(this,arguments)}function Uk(){return Uk=f(function*(e,t,n,r){var i;r?i=CO(r):(i=new Uint8Array(16),globalThis.crypto.getRandomValues(i),i[8]&=127);var a=u(yield Yie(t,n),2),o=a[0],s=a[1],c=new TextEncoder().encode(e),l=yield globalThis.crypto.subtle.encrypt({name:`AES-CTR`,counter:i,length:64},o,c),d=yield globalThis.crypto.subtle.sign({name:`HMAC`},s,l);return{iv:bO(i),ciphertext:bO(new Uint8Array(l)),mac:bO(new Uint8Array(d))}}),Uk.apply(this,arguments)}function Zie(e,t,n){return Wk.apply(this,arguments)}function Wk(){return Wk=f(function*(e,t,n){var r=u(yield Yie(t,n),2),i=r[0],a=r[1],o=CO(e.ciphertext);if(!(yield globalThis.crypto.subtle.verify({name:`HMAC`},a,CO(e.mac),o)))throw Error(`Error decrypting secret ${n}: bad MAC`);var s=yield globalThis.crypto.subtle.decrypt({name:`AES-CTR`,counter:CO(e.iv),length:64},i,o);return new TextDecoder().decode(new Uint8Array(s))}),Wk.apply(this,arguments)}var Qie=r({SECRET_STORAGE_ALGORITHM_V1_AES:()=>$ie,ServerSideSecretStorageImpl:()=>eae,calculateKeyCheck:()=>Kk,trimTrailingEquals:()=>Gk}),$ie=`m.secret_storage.v1.aes-hmac-sha2`,eae=class{constructor(e,t){this.accountDataAdapter=e,this.callbacks=t}getDefaultKeyId(){var e=this;return f(function*(){var t=yield e.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.default_key`);return t?t.key??null:null})()}setDefaultKeyId(e){return new Promise((t,n)=>{var r=n=>{if(n.getType()===`m.secret_storage.default_key`){var i=n.getContent();(e===null?Object.keys(i).length===0:i.key===e)&&(this.accountDataAdapter.removeListener(L.AccountData,r),t())}};this.accountDataAdapter.on(L.AccountData,r);var i=e===null?{}:{key:e};this.accountDataAdapter.setAccountData(`m.secret_storage.default_key`,i).catch(e=>{this.accountDataAdapter.removeListener(L.AccountData,r),n(e)})})}addKey(e,t,n){var r=this;return f(function*(){if(e!==`m.secret_storage.v1.aes-hmac-sha2`)throw Error(`Unknown key algorithm ${e}`);var i={algorithm:e};t.name&&(i.name=t.name),t.passphrase&&(i.passphrase=t.passphrase);var a=yield Kk(t.key),o=a.iv,s=a.mac;if(i.iv=o,i.mac=s,!n)do n=wO(32);while(yield r.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${n}`));return yield r.accountDataAdapter.setAccountData(`m.secret_storage.key.${n}`,i),{keyId:n,keyInfo:i}})()}getKey(e){var t=this;return f(function*(){if(e||=yield t.getDefaultKeyId(),!e)return null;var n=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${e}`);return n?[e,n]:null})()}hasKey(e){var t=this;return f(function*(){return!!(yield t.getKey(e))})()}checkKey(e,t){return f(function*(){if(t.algorithm===`m.secret_storage.v1.aes-hmac-sha2`)if(t.mac){var n=(yield Kk(e,t.iv)).mac;return Gk(t.mac)===Gk(n)}else return!0;else throw Error(`Unknown algorithm`)})()}store(e,t,n){var r=this;return f(function*(){if(t===null){yield r.accountDataAdapter.setAccountData(e,{});return}var i={};if(!n){var a=yield r.getDefaultKeyId();if(!a)throw Error(`No keys specified and no default key present`);n=[a]}if(n.length===0)throw Error(`Zero keys given to encrypt with!`);for(var o of n){var s=yield r.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${o}`);if(!s)throw Error(`Unknown key: `+o);if(s.algorithm===`m.secret_storage.v1.aes-hmac-sha2`){var c={[o]:s};i[o]=yield u(yield r.getSecretStorageKey(c,e),2)[1].encrypt(t)}else N.warn(`unknown algorithm for secret storage key `+o+`: `+s.algorithm)}yield r.accountDataAdapter.setAccountData(e,{encrypted:i})})()}get(e){var t=this;return f(function*(){var n=yield t.accountDataAdapter.getAccountDataFromServer(e);if(n){if(!n.encrypted)throw Error(`Content is not encrypted!`);var r={};for(var i of Object.keys(n.encrypted)){var a=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${i}`),o=n.encrypted[i];a?.algorithm===`m.secret_storage.v1.aes-hmac-sha2`&&o.iv&&o.ciphertext&&o.mac&&(r[i]=a)}if(Object.keys(r).length===0)throw Error(`Could not decrypt ${e} because none of the keys it is encrypted with are for a supported algorithm`);var s=u(yield t.getSecretStorageKey(r,e),2),c=s[0],l=s[1],d=n.encrypted[c];return l.decrypt(d)}})()}isStored(e){var t=this;return f(function*(){var n=yield t.accountDataAdapter.getAccountDataFromServer(e);if(!(n!=null&&n.encrypted))return null;var r={};for(var i of Object.keys(n.encrypted)){var a=yield t.accountDataAdapter.getAccountDataFromServer(`m.secret_storage.key.${i}`);if(a){var o=n.encrypted[i];a.algorithm===`m.secret_storage.v1.aes-hmac-sha2`&&o.iv&&o.ciphertext&&o.mac&&(r[i]=a)}}return Object.keys(r).length?r:null})()}getSecretStorageKey(e,t){var n=this;return f(function*(){if(!n.callbacks.getSecretStorageKey)throw Error(`No getSecretStorageKey callback supplied`);var r=yield n.callbacks.getSecretStorageKey({keys:e},t);if(!r)throw Error(`getSecretStorageKey callback returned falsey`);if(r.length<2)throw Error(`getSecretStorageKey callback returned invalid data`);var i=u(r,2),a=i[0],o=i[1];if(!e[a])throw Error(`App returned unknown key from getSecretStorageKey!`);if(e[a].algorithm===`m.secret_storage.v1.aes-hmac-sha2`)return[a,{encrypt:function(e){return Xie(e,o,t)},decrypt:function(e){return Zie(e,o,t)}}];throw Error(`Unknown key type: `+e[a].algorithm)})()}};function Gk(e){for(var t=e.length;t>=1&&e.charCodeAt(t-1)==61;)t--;return te.length)&&(t=e.length);for(var n=0,r=Array(t);nt.creationTS?!0:(this.tsBuffer.get(n).set(t.keyIndex,t.creationTS),!1)}};function aae(e){var t=xE(e.split(`#`)),n=t[0],r=t[1];if(rae(t).slice(2).length)throw Error(`MatrixRTC Slot IDs *must* only contain two components seperated by one '#'. Additional '#' characters detected.`);return{application:n,id:r}}function qk(e){return`${e.application}#${e.id}`}var Jk=class extends AggregateError{constructor(e,t){super(t,`Does not match ${e}: +${t.join(` +`)}`),this.type=e}},oae=e=>{var t=` - `,n=[];if(typeof e.device_id!=`string`&&n.push(t+`device_id must be string`),typeof e.call_id!=`string`&&n.push(t+`call_id must be string`),typeof e.application!=`string`&&n.push(t+`application must be a string`),e.focus_active===void 0&&n.push(t+`focus_active has an invalid type`),typeof e.focus_active?.type!=`string`&&n.push(t+`focus_active.type must be a string`),e.foci_preferred!==void 0&&!(Array.isArray(e.foci_preferred)&&e.foci_preferred.every(e=>typeof e==`object`&&!!e&&typeof e.type==`string`))&&n.push(t+`foci_preferred must be an array of transport objects`),e.created_ts!==void 0&&typeof e.created_ts!=`number`&&n.push(t+`created_ts must be number`),e.scope!==void 0&&typeof e.scope!=`string`&&n.push(t+`scope must be string`),e[`m.call.intent`]!==void 0&&typeof e[`m.call.intent`]!=`string`&&n.push(t+`m.call.intent must be a string`),n.length)throw new Jk(`SessionMembership`,n);return!0};function Yk(e){return Xk.apply(this,arguments)}function Xk(){return Xk=f(function*(e){if(!globalThis.crypto.subtle)throw Error(`Crypto.subtle is not available: insecure context?`);var t=new TextEncoder().encode(e),n=yield globalThis.crypto.subtle.digest(`SHA-256`,t);return new Uint8Array(n)}),Xk.apply(this,arguments)}var sae=(e,t)=>{var n,r=[],i=` - `,a=`${e==null||(n=e.application)==null?void 0:n.type}#`;if(typeof e.slot_id!=`string`)r.push(i+`slot_id must be string`);else if(!e.slot_id.startsWith(a))r.push(i+`slot_id must start with ${a}`);else try{aae(e.slot_id)}catch(e){r.push(i+`slot_id was badly formed${e instanceof Error?`: ${e.message}`:``}`)}if(typeof e.member!=`object`||e.member===null?r.push(i+`member must be an object`):(typeof e.member.user_id==`string`?HE.test(e.member.user_id)?e.member.user_id!==t&&r.push(i+`member.user_id must match the sender`):r.push(i+`member.user_id must be a valid mxid`):r.push(i+`member.user_id must be string`),typeof e.member.device_id!=`string`&&r.push(i+`member.device_id must be string`),typeof e.member.id!=`string`&&r.push(i+`member.id must be string`)),typeof e.application!=`object`||e.application===null?r.push(i+`application must be an object`):typeof e.application.type==`string`?e.application.type.includes(`#`)&&r.push(i+`application.type must not include "#"`):r.push(i+`application.type must be a string`),e.rtc_transports===void 0||!Array.isArray(e.rtc_transports))r.push(i+`rtc_transports must be an array`);else for(var o of e.rtc_transports)if(typeof o!=`object`||!o||typeof o.type!=`string`){r.push(i+`rtc_transports entries must be objects with a string type`);break}if(e.versions===void 0||!Array.isArray(e.versions)?r.push(i+`versions must be an array`):e.versions.every(e=>typeof e==`string`)||r.push(i+`versions must be an array of strings`),(e.sticky_key??e.msc4354_sticky_key)===void 0&&r.push(i+`sticky_key or msc4354_sticky_key must be a defined`),e.sticky_key!==void 0&&typeof e.sticky_key!=`string`&&r.push(i+`sticky_key must be a string`),e.msc4354_sticky_key!==void 0&&typeof e.msc4354_sticky_key!=`string`&&r.push(i+`msc4354_sticky_key must be a string`),e.sticky_key!==void 0&&e.msc4354_sticky_key!==void 0&&e.sticky_key!==e.msc4354_sticky_key&&r.push(i+`sticky_key and msc4354_sticky_key must be equal if both are defined`),e[`m.relates_to`]!==void 0){var s=e[`m.relates_to`];typeof s!=`object`||!s?r.push(i+`m.relates_to must be an object if provided`):(typeof s.event_id!=`string`&&r.push(i+`m.relates_to.event_id must be a string`),s.rel_type!==`m.reference`&&r.push(i+`m.relates_to.rel_type must be m.reference`))}if(r.length)throw new Jk(`RtcMembership`,r);return!0};function cae(e,t,n){return Zk.apply(this,arguments)}function Zk(){return Zk=f(function*(e,t,n){return xO(yield Yk(JSON.stringify([e,t,n])))}),Zk.apply(this,arguments)}var lae=1e3*60*60*4,Qk=function(e){return e.RTC=`rtc`,e.Session=`session`,e}(Qk||{}),uae=class e{static membershipDataFromMatrixEvent(e){var t=e.getSender(),n=e.getType(),r=e.getContent();if(t===void 0)throw Error(`matrixEvent is missing sender field`);try{if(n===P.RTCMembership&&sae(r,t))return{kind:Qk.RTC,data:r};if(n===P.GroupCallMemberPrefix&&oae(r))return{kind:Qk.Session,data:r};throw Error(`'${n} is not a known call membership type`)}catch(e){throw e instanceof Jk&&N.debug(`CallMembership.MatrixRTCMembershipParseError provided invalid data`,r),e}}static parseFromEvent(t){var n=this;return f(function*(){var r=n.membershipDataFromMatrixEvent(t);return new e(t,r,r.kind===Qk.RTC?yield cae(r.data.member.user_id,r.data.member.device_id,r.data.member.id):`${t.getSender()}:${r.data.device_id}`)})()}static equal(e,t){return ZT(e?.membershipData,t?.membershipData)}constructor(e,t,n){this.matrixEvent=e,this.membershipData=t,this.rtcBackendIdentity=n,g(this,`logger`,void 0),g(this,`matrixEventData`,void 0);var r=e.getId(),i=e.getSender();if(r===void 0)throw Error(`parentEvent is missing eventId field`);if(i===void 0)throw Error(`parentEvent is missing sender field`);this.logger=N.getChild(`[CallMembership ${i}:${this.deviceId}]`),this.matrixEventData={eventId:r,sender:i}}get sender(){return this.userId}get userId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return n.member.user_id;case Qk.Session:default:return this.matrixEventData.sender}}get eventId(){return this.matrixEventData.eventId}get slotId(){var e,t=this.membershipData,n=t.kind,r=t.data;if(r.application===`m.call`)switch(n){case Qk.RTC:return r.slot_id;case Qk.Session:default:var i=[r.application,r.call_id],a=i[0],o=i[1],s;if(o===``){var c;s=`ROOM`,(c=this.logger)==null||c.info(`use slotId compat hack emptyString -> ROOM`)}else s=o;return qk({application:a,id:s})}switch((e=this.logger)==null||e.info(`NOT using slotId compat hack emptyString -> ROOM`),n){case Qk.RTC:return r.slot_id;case Qk.Session:default:return qk({application:r.application,id:r.call_id})}}get deviceId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return n.member.device_id;case Qk.Session:default:return n.device_id}}get callIntent(){var e=this.applicationData[`m.call.intent`];if(typeof e==`string`)return e;this.logger.warn(`RTC membership has invalid m.call.intent`)}get slotDescription(){var e=this.membershipData,t=e.kind,n=e.data;if(t===Qk.RTC){var r=n.slot_id.slice(`${n.application.type}#`.length);return{application:n.application.type,id:r}}return aae(this.slotId)}get application(){return this.applicationData.type}get applicationData(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return n.application;case Qk.Session:default:return{type:n.application,"m.call.intent":n[`m.call.intent`]}}}get scope(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return;case Qk.Session:default:return n.scope}}get memberId(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case`rtc`:return n.member.id;case`session`:return n.membershipID??`${this.matrixEventData.sender}:${n.device_id}`;default:throw Error(`Not possible to get memberID without knowing the membership event kind`)}}get membershipID(){return this.memberId}createdTs(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return this.matrixEvent.getTs();case Qk.Session:default:return n.created_ts??this.matrixEvent.getTs()}}getAbsoluteExpiry(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return;case Qk.Session:default:return this.createdTs()+(n.expires??lae)}}getMsUntilExpiry(){if(this.membershipData.kind===Qk.Session){var e=this.getAbsoluteExpiry();if(e)return e-Date.now()}}isExpired(){switch(this.membershipData.kind){case Qk.RTC:return!1;case Qk.Session:default:return this.getMsUntilExpiry()<=0}}getTransport(t){var n=this.membershipData,r=n.kind,i=n.data;switch(r){case Qk.RTC:return i.rtc_transports[0];case Qk.Session:switch(i.focus_active.focus_selection){case`oldest_membership`:if(e.equal(this,t))return i.foci_preferred[0];if(t!==void 0)return t.getTransport(t);break;case`multi_sfu`:return i.foci_preferred[0];default:return}break;default:return}}get transports(){var e=this.membershipData,t=e.kind,n=e.data;switch(t){case Qk.RTC:return n.rtc_transports;case Qk.Session:default:return n.foci_preferred}}},$k=function(e){return e.Disconnected=`Disconnected`,e.Connecting=`Connecting`,e.Connected=`Connected`,e.Disconnecting=`Disconnecting`,e.Unknown=`Unknown`,e}({}),dae=(e,t,n)=>e.sender===t&&e.deviceId===n,fae=class{constructor(e,t){this.membershipLoopHandler=e,g(this,`logger`,void 0),g(this,`running`,!1),g(this,`wakeup`,e=>{this.logger.error("Cannot call wakeup before calling `startWithJoin()`")}),g(this,`_actions`,[]),this.logger=(t??N).getChild(`[NewMembershipActionScheduler]`)}get actions(){return this._actions}startWithJoin(){var e=this;return f(function*(){if(e.running){e.logger.error(`Cannot call startWithJoin() on NewMembershipActionScheduler while already running`);return}e.running=!0,e._actions=[{ts:Date.now(),type:cA.SendDelayedEvent}];try{for(var t=function*(){e._actions.sort((e,t)=>e.ts-t.ts);var t=e._actions[0],n=void 0,r=new Promise(t=>{e.wakeup=e=>{n=e,t()}});t.ts>Date.now()&&(yield Promise.race([r,nE(t.ts-Date.now())]));var i={};if(!n){e.logger.debug(`Current MembershipManager processing: ${t.type} +Queue:`,e._actions,` +Date.now: "${Date.now()}`);try{i=yield e.membershipLoopHandler(t.type)}catch(e){throw Error(`The MembershipManager shut down because of the end condition: ${e}`,{cause:e})}}e._actions.splice(0,1);var a=n??i;`replace`in a?e._actions=a.replace:`insert`in a&&e._actions.push(...a.insert)};e._actions.length>0;)yield*t()}finally{e.running=!1}e.logger.debug(`Leave MembershipManager ActionScheduler loop (no more actions)`)})()}initiateJoin(){var e;(e=this.wakeup)==null||e.call(this,{replace:[{ts:Date.now(),type:cA.SendDelayedEvent}]})}initiateLeave(){var e;(e=this.wakeup)==null||e.call(this,{replace:[{ts:Date.now(),type:cA.SendScheduledDelayedLeaveEvent}]})}},eA=function(e){return e.TooNew=`TOO_NEW`,e}({}),tA=class extends Error{constructor(e){var t=`Crypto store is invalid because ${e}, please stop the client, delete all data and start the client again`;super(t),this.reason=e,this.name=`InvalidCryptoStoreError`}};g(tA,`TOO_NEW`,eA.TooNew);var pae=class extends Error{constructor(e,t){super(e),this.value=t}},mae=class extends Error{constructor(){super(`MatrixClient has been stopped`)}},nA=class extends Error{constructor(e,t){super(e),this.clientEndpoint=t,this.name=`UnsupportedDelayedEventsEndpointError`}},rA=class extends Error{constructor(e,t){super(e),this.clientEndpoint=t,this.name=`UnsupportedStickyEventsEndpointError`}},iA=function(e){return e.StatusChanged=`StatusChanged`,e.ProbablyLeft=`ProbablyLeft`,e.DelayIdChanged=`DelayIdChanged`,e}({}),aA=e=>e.type===`livekit`&&`livekit_service_url`in e;function hae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oA(e){for(var t=1;t{this.logger.error(`MembershipManager stopped because: `,e),r?.(e)}).finally(()=>{if(this.activated=!1,this.oldStatus&&this.oldStatus!==this.status&&this.emit(iA.StatusChanged,this.oldStatus,this.status),!this.scheduler.running){var e;(e=this.leavePromiseResolvers)==null||e.resolve(!0),this.leavePromiseResolvers=void 0}})}leave(e){return this.scheduler.running?(this.leavePromiseResolvers||(this.leavePromiseResolvers=Promise.withResolvers(),this.activated=!1,this.scheduler.initiateLeave(),e&&setTimeout(()=>this.leavePromiseResolvers?.resolve(!1),e)),this.leavePromiseResolvers.promise):(this.logger.warn(`Called MembershipManager.leave() even though the MembershipManager is not running`),Promise.resolve(!0))}onRTCSessionMemberUpdate(e){if(!this.isActivated())return Promise.resolve();if(this._ownMembership=e.find(e=>dae(e,this.userId,this.deviceId)),!this._ownMembership){var t=[cA.SendDelayedEvent,cA.SendJoinEvent];this.logger.warn(`Missing own membership: force re-join`),this.state.hasMemberStateEvent=!1,this.scheduler.actions.some(e=>t.includes(e.type))?this.logger.error("tried adding another `SendDelayedEvent` actions even though we already have one in the Queue\nActionQueueOnMemberUpdate:",this.scheduler.actions):this.scheduler.initiateJoin()}return Promise.resolve()}updateCallIntent(e){var t=this;return f(function*(){if(!t.activated||!t.ownMembership)throw Error(`You cannot update your intent before joining the call`);t.ownMembership.callIntent!==e&&(t.callIntent=e,yield t.sendJoinEvent())})()}constructor(t,n,r,i,a){super(),this.joinConfig=t,this.room=n,this.client=r,this.slotDescription=i,g(this,`activated`,!1),g(this,`logger`,void 0),g(this,`callIntent`,void 0),g(this,`leavePromiseResolvers`,void 0),g(this,`_ownMembership`,void 0),g(this,`oldStatus`,void 0),g(this,`scheduler`,void 0),g(this,`state`,void 0),g(this,`deviceId`,void 0),g(this,`userId`,void 0),g(this,`stateKey`,void 0),g(this,`rtcTransport`,void 0),g(this,`fociPreferred`,void 0),g(this,`delayedLeaveEventDelayMsOverride`,void 0),g(this,`clientSendDelayedDisconnectMembership`,()=>this.client._unstable_sendDelayedStateEvent(this.room.roomId,{delay:this.delayedLeaveEventDelayMs},P.GroupCallMemberPrefix,{},this.stateKey)),g(this,`clientSendMembership`,e=>this.client.sendStateEvent(this.room.roomId,P.GroupCallMemberPrefix,e,this.stateKey)),this.logger=(a??N).getChild(`[MembershipManager]`);var o=[this.client.getUserId(),this.client.getDeviceId()],s=o[0],c=o[1];if(s===null)throw Error(`Missing userId in client`);if(c===null)throw Error(`Missing deviceId in client`);this.deviceId=c,this.userId=s,this.stateKey=this.makeMembershipStateKey(s,c),this.state=e.defaultState,this.callIntent=t?.callIntent,this.scheduler=new fae(e=>(this.oldStatus&&(this.logger.debug(`MembershipManager applied action changes. Status: ${this.oldStatus} -> ${this.status}`),this.oldStatus!==this.status&&this.emit(iA.StatusChanged,this.oldStatus,this.status)),this.oldStatus=this.status,this.logger.debug(`MembershipManager before processing action. status=${this.oldStatus}`),this.membershipLoopHandler(e)),this.logger)}get ownMembership(){return this._ownMembership}static get defaultState(){return{hasMemberStateEvent:!1,delayId:void 0,startTime:0,rateLimitRetries:new Map,networkErrorRetries:new Map,expireUpdateIterations:1,probablyLeft:!1}}get networkErrorRetryMs(){return this.joinConfig?.networkErrorRetryMs??3e3}get membershipEventExpiryMs(){return this.joinConfig?.membershipEventExpiryMs??lae}get membershipEventExpiryHeadroomMs(){return this.joinConfig?.membershipEventExpiryHeadroomMs??5e3}computeNextExpiryActionTs(e){return this.state.startTime+Math.min(this.membershipEventExpiryMs,sA)*e-this.membershipEventExpiryHeadroomMs}get delayedLeaveEventDelayMs(){return this.delayedLeaveEventDelayMsOverride??this.joinConfig?.delayedLeaveEventDelayMs??8e3}get delayedLeaveEventRestartMs(){return this.joinConfig?.delayedLeaveEventRestartMs??5e3}get maximumRateLimitRetryCount(){return this.joinConfig?.maximumRateLimitRetryCount??10}get maximumNetworkErrorRetryCount(){return this.joinConfig?.maximumNetworkErrorRetryCount??10}get delayedLeaveEventRestartLocalTimeoutMs(){return this.joinConfig?.delayedLeaveEventRestartLocalTimeoutMs??2e3}membershipLoopHandler(e){var t=this;return f(function*(){switch(e){case cA.SendDelayedEvent:return t.state.delayId?t.cancelKnownDelayIdBeforeSendDelayedEvent(t.state.delayId):t.sendOrResendDelayedLeaveEvent();case cA.RestartDelayedEvent:return t.state.delayId?t.restartDelayedEvent(t.state.delayId):lA(cA.SendDelayedEvent);case cA.SendScheduledDelayedLeaveEvent:return t.state.hasMemberStateEvent?t.state.delayId?t.sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(t.state.delayId):lA(cA.SendLeaveEvent):{replace:[]};case cA.SendJoinEvent:return t.sendJoinEvent();case cA.UpdateExpiry:return t.updateExpiryOnJoinedEvent();case cA.SendLeaveEvent:return t.state.hasMemberStateEvent?t.sendFallbackLeaveEvent():{replace:[]}}})()}sendOrResendDelayedLeaveEvent(){var e=this;return f(function*(){return yield e.clientSendDelayedDisconnectMembership().then(t=>(e.state.expectedServerDelayLeaveTs=Date.now()+e.delayedLeaveEventDelayMs,e.setAndEmitProbablyLeft(!1),e.resetRateLimitCounter(cA.SendDelayedEvent),e.setAndEmitDelayId(t.delay_id),e.state.hasMemberStateEvent?lA(cA.RestartDelayedEvent,e.delayedLeaveEventRestartMs):lA(cA.SendJoinEvent))).catch(t=>{var n=cA.SendDelayedEvent;if(e.manageMaxDelayExceededSituation(t))return lA(n);var r=e.actionUpdateFromErrors(t,n,`_unstable_sendDelayedStateEvent`);if(r)return r;if(e.state.hasMemberStateEvent){if(e.isUnsupportedDelayedEndpoint(t))return{};throw Error(`Could not send delayed event, even though delayed events are supported. `+t)}else return e.isUnsupportedDelayedEndpoint(t)?e.logger.info(`Not using delayed event because the endpoint is not supported`):e.logger.info(`Not using delayed event because: `+t),lA(cA.SendJoinEvent)})})()}cancelKnownDelayIdBeforeSendDelayedEvent(e){var t=this;return f(function*(){return yield t.client._unstable_cancelScheduledDelayedEvent(e).then(()=>(t.setAndEmitDelayId(void 0),t.resetRateLimitCounter(cA.SendDelayedEvent),uA(cA.SendDelayedEvent))).catch(e=>{var n=cA.SendDelayedEvent,r=t.actionUpdateFromErrors(e,n,`cancelScheduledDelayedEvent`);if(r)return r;if(t.isNotFoundError(e))return t.setAndEmitDelayId(void 0),uA(n);if(t.isUnsupportedDelayedEndpoint(e))return uA(cA.SendJoinEvent);throw Error(`We failed to cancel a delayed event where we already had a delay id with an error we cannot automatically handle`)})})()}setAndEmitProbablyLeft(e){this.state.probablyLeft!==e&&(this.state.probablyLeft=e,this.emit(iA.ProbablyLeft,this.state.probablyLeft))}setAndEmitDelayId(e){this.state.delayId!==e&&(this.state.delayId=e,this.emit(iA.DelayIdChanged,this.state.delayId))}restartDelayedEvent(e){var t=this;return f(function*(){var n=t.state.expectedServerDelayLeaveTs?t.state.expectedServerDelayLeaveTs-Date.now():void 0,r=new Promise((e,r)=>{setTimeout(()=>{r(new cee(`Restart delayed event timed out before the HS responded`))},n!==void 0&&!t.state.probablyLeft?Math.min(t.delayedLeaveEventRestartLocalTimeoutMs,n):t.delayedLeaveEventRestartLocalTimeoutMs)});return yield Promise.race([t.client._unstable_restartScheduledDelayedEvent(e),r]).then(()=>(t.state.expectedServerDelayLeaveTs=Date.now()+t.delayedLeaveEventDelayMs,t.resetRateLimitCounter(cA.RestartDelayedEvent),t.setAndEmitProbablyLeft(!1),lA(cA.RestartDelayedEvent,t.delayedLeaveEventRestartMs))).catch(e=>{t.state.expectedServerDelayLeaveTs&&t.state.expectedServerDelayLeaveTs<=Date.now()&&t.setAndEmitProbablyLeft(!0);var n=cA.RestartDelayedEvent;if(t.isNotFoundError(e))return t.setAndEmitDelayId(void 0),lA(cA.SendDelayedEvent);if(t.isUnsupportedDelayedEndpoint(e))return{};var r=t.actionUpdateFromErrors(e,n,`restartScheduledDelayedEvent`);if(r)return r;throw Error(`Could not restart delayed event, even though delayed events are supported. `+e)})})()}sendScheduledDelayedLeaveEventOrFallbackToSendLeaveEvent(e){var t=this;return f(function*(){return yield t.client._unstable_sendScheduledDelayedEvent(e).then(()=>(t.state.hasMemberStateEvent=!1,t.setAndEmitDelayId(void 0),t.resetRateLimitCounter(cA.SendScheduledDelayedLeaveEvent),{replace:[]})).catch(e=>{var n=cA.SendLeaveEvent;return t.isUnsupportedDelayedEndpoint(e)?{}:t.isNotFoundError(e)?(t.setAndEmitDelayId(void 0),lA(n)):t.actionUpdateFromErrors(e,n,`sendScheduledDelayedEvent`)||(t.logger.warn(`Encountered unexpected error during SendScheduledDelayedLeaveEvent. Falling back to SendLeaveEvent`,e),lA(n))})})()}sendJoinEvent(){var e=this;return f(function*(){return yield e.clientSendMembership(e.makeMyMembership(e.membershipEventExpiryMs)).then(()=>(e.setAndEmitProbablyLeft(!1),e.state.startTime=Date.now(),e.state.expireUpdateIterations=1,e.state.hasMemberStateEvent=!0,e.resetRateLimitCounter(cA.SendJoinEvent),{replace:[...e.scheduler.actions.filter(e=>e.type!==cA.UpdateExpiry&&e.type!==cA.SendJoinEvent),{ts:Date.now(),type:cA.RestartDelayedEvent},{ts:e.computeNextExpiryActionTs(e.state.expireUpdateIterations),type:cA.UpdateExpiry}]})).catch(t=>{var n=e.actionUpdateFromErrors(t,cA.SendJoinEvent,`sendStateEvent`);if(n)return n;throw t})})()}updateExpiryOnJoinedEvent(){var e=this;return f(function*(){var t=e.state.expireUpdateIterations+1;return yield e.clientSendMembership(e.makeMyMembership(e.membershipEventExpiryMs*t)).then(()=>(e.resetRateLimitCounter(cA.UpdateExpiry),e.state.expireUpdateIterations=t,{insert:[{ts:e.computeNextExpiryActionTs(t),type:cA.UpdateExpiry}]})).catch(t=>{var n=e.actionUpdateFromErrors(t,cA.UpdateExpiry,`sendStateEvent`);if(n)return n;throw t})})()}sendFallbackLeaveEvent(){var e=this;return f(function*(){return yield e.clientSendMembership({}).then(()=>(e.resetRateLimitCounter(cA.SendLeaveEvent),e.state.hasMemberStateEvent=!1,{replace:[]})).catch(t=>{var n=e.actionUpdateFromErrors(t,cA.SendLeaveEvent,`sendStateEvent`);if(n)return n;throw t})})()}makeMembershipStateKey(e,t){var n=this.slotDescription.application,r=`${e}_${t}_${n}${n===`m.call`&&this.slotDescription.id===`ROOM`?``:this.slotDescription.id}`;return/^org\.matrix\.msc(3757|3779)\b/.exec(this.room.getVersion())?r:`_${r}`}makeMyMembership(e){var t=this.ownMembership,n=this.slotDescription.application===`m.call`&&this.slotDescription.id===`ROOM`,r=this.rtcTransport===void 0?{focus_active:{type:`livekit`,focus_selection:`oldest_membership`},foci_preferred:this.fociPreferred??[]}:{focus_active:{type:`livekit`,focus_selection:`multi_sfu`},foci_preferred:[this.rtcTransport,...this.fociPreferred??[]]};return oA(oA({application:this.slotDescription.application,call_id:n?``:this.slotDescription.id,scope:`m.room`,device_id:this.deviceId,membershipID:`${this.userId}:${this.deviceId}`,expires:e,"m.call.intent":this.callIntent},r),t===void 0?void 0:{created_ts:t.createdTs()})}isNotFoundError(e){return e instanceof PD&&e.errcode===`M_NOT_FOUND`}manageMaxDelayExceededSituation(e){if(e instanceof PD&&e.errcode===`M_UNKNOWN`&&e.data[`org.matrix.msc4140.errcode`]===`M_MAX_DELAY_EXCEEDED`){var t=e.data[`org.matrix.msc4140.max_delay`];return typeof t==`number`&&this.delayedLeaveEventDelayMs>t&&(this.delayedLeaveEventDelayMsOverride=t),this.logger.warn(`Retry sending delayed disconnection event due to server timeout limitations:`,e),!0}return!1}actionUpdateFromErrors(e,t,n){var r=this.actionUpdateFromRateLimitError(e,n,t);if(r)return r;var i=this.actionUpdateFromNetworkErrorRetry(e,t);if(i)return i}actionUpdateFromRateLimitError(e,t,n){if((e instanceof ND||e instanceof PD)&&e.isRateLimitError()){var r=this.state.rateLimitRetries.get(n)??0;if(r=500&&e.httpStatus<600)this.logger.warn(`Server error while sending event, retrying in `+r+` `+i,e);else return;if(ne.type);if((t.includes(cA.RestartDelayedEvent)||t.includes(cA.SendDelayedEvent)&&this.state.hasMemberStateEvent)&&t.includes(cA.UpdateExpiry))return $k.Connected}else if(e.length===3){var n=e.map(e=>e.type);if(n.filter(e=>e===cA.RestartDelayedEvent).length===2&&n.includes(cA.UpdateExpiry))return $k.Connected}return this.scheduler.running?(this.logger.error(`MembershipManager has an unknown state. Actions: `,e),$k.Unknown):$k.Disconnected}get probablyLeft(){return this.state.probablyLeft}get delayId(){return this.state.delayId}},_ae=class e extends gae{constructor(e,t,n,r,i,a){super(e,t,n,r,a),this.clientWithSticky=n,this.memberId=i,g(this,`clientSendDelayedDisconnectMembership`,()=>this.clientWithSticky._unstable_sendStickyDelayedEvent(this.room.roomId,sA,{delay:this.delayedLeaveEventDelayMs},null,P.RTCMembership,{msc4354_sticky_key:this.memberId})),g(this,`clientSendMembership`,e=>this.clientWithSticky._unstable_sendStickyEvent(this.room.roomId,sA,null,P.RTCMembership,oA(oA({},e),{},{msc4354_sticky_key:this.memberId})))}actionUpdateFromErrors(t,n,r){return super.actionUpdateFromErrors(t,n,e.nameMap.get(r)??`unknown`)}makeMyMembership(){var e=this.ownMembership,t=aA(this.rtcTransport)?this.rtcTransport:void 0,n=e!=null&&e.eventId?{"m.relation":{rel_type:EE.Reference,event_id:e?.eventId}}:{};return oA({application:oA({type:this.slotDescription.application},this.callIntent?{"m.call.intent":this.callIntent}:{}),slot_id:qk(this.slotDescription),rtc_transports:t?[{type:t.type,livekit_service_url:t.livekit_service_url}]:[],member:{device_id:this.deviceId,user_id:this.userId,id:this.memberId},versions:[]},n)}};g(_ae,`nameMap`,new Map([[`sendStateEvent`,`_unstable_sendStickyEvent`],[`sendDelayedStateEvent`,`_unstable_sendStickyDelayedEvent`]]));var dA=function(e){return e.ReceivedKeys=`received_keys`,e.NotSupportedError=`not_supported_error`,e}({}),vae=class{constructor(e,t,n,r,i,a){this.ownMembership=e,this.getMemberships=t,this.transport=n,this.onEncryptionKeysChanged=r,g(this,`manageMediaKeys`,!1),g(this,`useHashedRtcBackendIdentity`,!1),g(this,`ownRtcBackendIdentityCache`,void 0),g(this,`participantKeyRings`,new Map),g(this,`outboundSession`,null),g(this,`currentKeyDistributionPromise`,null),g(this,`useKeyDelay`,5e3),g(this,`keyRotationGracePeriodMs`,1e4),g(this,`needToEnsureKeyAgain`,!1),g(this,`keyBuffer`,new iae),g(this,`logger`,void 0),g(this,`rtcIdentityProvider`,void 0),g(this,`keysWithoutMatchingRTCMembership`,[]),g(this,`onNewKeyReceived`,(e,t,n,r)=>{var i;if(!this.manageMediaKeys){var a;(a=this.logger)==null||a.warn(`Received key over transport ${e.userId}:${e.deviceId} at index ${n} but media keys are disabled`);return}(i=this.logger)==null||i.debug(`Received key over transport ${e.userId}:${e.deviceId} at index ${n}`);var o={key:CO(t),membership:e,keyIndex:n,creationTS:r};if(!this.keyBuffer.isOutdated(e,o))this.addKeyToParticipant(o.key,o.keyIndex,o.membership);else{var s;(s=this.logger)==null||s.info(`Received an out of order key for ${e.userId}:${e.deviceId}, dropping it`)}}),this.logger=i?.getChild(`[EncryptionManager]`),this.rtcIdentityProvider=a??cae}getOwnRtcBackendIdentity(){var e=this;return f(function*(){if(e.ownRtcBackendIdentityCache)return e.ownRtcBackendIdentityCache;if(e.useHashedRtcBackendIdentity){var t,n=e.ownMembership,r=n.userId,i=n.deviceId,a=n.memberId;(t=e.logger)==null||t.info(`Computing RTC backend identity for ${r}:${i}:${a} (SHOULD ONLY BE CALLED ONCE)`),e.ownRtcBackendIdentityCache=yield e.rtcIdentityProvider(r,i,a)}else e.ownRtcBackendIdentityCache=`${e.ownMembership.userId}:${e.ownMembership.deviceId}`;return e.ownRtcBackendIdentityCache})()}getEncryptionKeys(){return new Map(this.participantKeyRings)}checkKeysWithoutMatchingRTCMembership(){var e=this.keysWithoutMatchingRTCMembership;this.keysWithoutMatchingRTCMembership=[],e.forEach(e=>{this.addKeyToParticipant(e.key,e.keyIndex,e.membership)})}addKeyToParticipant(e,t,n){var r=this.getMemberships().find(e=>e.userId===n.userId&&e.deviceId===n.deviceId);if(!r){var i;(i=this.logger)==null||i.info(`No matching RTC membership for key from ${n.userId}:${n.deviceId}, delaying key addition`),this.keysWithoutMatchingRTCMembership.push({key:e,keyIndex:t,membership:n});return}this.addKeyToParticipantWithBackendIdentity(e,t,n,r.rtcBackendIdentity)}addKeyToParticipantWithBackendIdentity(e,t,n,r){var i=nae(n);this.participantKeyRings.has(i)||this.participantKeyRings.set(i,[]),this.participantKeyRings.get(i).push({key:e,keyIndex:t,membership:n,rtcBackendIdentity:r}),this.onEncryptionKeysChanged(e,t,n,r)}join(e){var t;this.manageMediaKeys=e?.manageMediaKeys??!0,this.useHashedRtcBackendIdentity=e?.unstableSendStickyEvents??!1,this.useKeyDelay=e?.useKeyDelay??1e3,this.keyRotationGracePeriodMs=e?.keyRotationGracePeriodMs??1e4,this.transport.on(dA.ReceivedKeys,this.onNewKeyReceived),this.getOwnRtcBackendIdentity(),(t=this.logger)==null||t.info(`Joining room`),this.transport.start()}leave(){this.transport.off(dA.ReceivedKeys,this.onNewKeyReceived),this.transport.stop(),this.participantKeyRings.clear()}ensureKeyDistribution(){if(this.manageMediaKeys)if(this.currentKeyDistributionPromise==null){var e;(e=this.logger)==null||e.debug(`No active rollout, start a new one`),this.currentKeyDistributionPromise=this.rolloutOutboundKey().then(()=>{var e;if((e=this.logger)==null||e.debug(`Rollout completed`),this.currentKeyDistributionPromise=null,this.needToEnsureKeyAgain){var t;(t=this.logger)==null||t.debug(`New Rollout needed`),this.needToEnsureKeyAgain=!1,this.ensureKeyDistribution()}})}else{var t;(t=this.logger)==null||t.debug(`Rollout in progress, a new rollout will be started after the current one`),this.needToEnsureKeyAgain=!0}}onMembershipsUpdate(){var e;arguments.length>0&&arguments[0]!==void 0&&arguments[0],(e=this.logger)==null||e.trace(`onMembershipsUpdate`),this.ensureKeyDistribution(),this.checkKeysWithoutMatchingRTCMembership()}rolloutOutboundKey(){var e=this;return f(function*(){if(e.outboundSession==null){var t={key:e.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:0};e.outboundSession=t,e.addKeyToParticipantWithBackendIdentity(t.key,t.keyId,e.ownMembership,yield e.getOwnRtcBackendIdentity())}var n=e.getMemberships().filter(e=>e.sender!=null).map(e=>({userId:e.sender,deviceId:e.deviceId,membershipTs:e.createdTs()})),r=e.outboundSession?.sharedWith??[];r=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs!=t.membershipTs));var i=r.filter(e=>!n.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),a=n.filter(e=>!r.some(t=>e.userId==t.userId&&e.deviceId==t.deviceId&&e.membershipTs==t.membershipTs)),o=[],s,c=!1;if(i.length>0){var l=e.createNewOutboundSession();c=!0,o=n,s=l}else if(a.length>0){var u=Date.now()-e.outboundSession.creationTS;if(u`${e.userId}:${e.deviceId}`).join(`,`)}`),c){var g,_;(g=e.logger)==null||g.trace(`Delay Rollout for key:${s.keyId}...`),yield nE(e.useKeyDelay),(_=e.logger)==null||_.trace(`...Delayed rollout of index:${s.keyId} `),e.addKeyToParticipantWithBackendIdentity(s.key,s.keyId,e.ownMembership,yield e.getOwnRtcBackendIdentity())}}catch(t){var v;(v=e.logger)==null||v.error(`Failed to rollout key`,t)}})()}createNewOutboundSession(){var e,t={key:this.generateRandomKey(),creationTS:Date.now(),sharedWith:[],keyId:this.nextKeyIndex()};return(e=this.logger)==null||e.info(`creating new outbound key index:${t.keyId}`),this.outboundSession=t,t}nextKeyIndex(){return this.outboundSession?(this.outboundSession.keyId+1)%256:0}generateRandomKey(){var e=new Uint8Array(16);return globalThis.crypto.getRandomValues(e),e}},yae=class extends Error{constructor(e){super(e)}get name(){return`NotSupportedError`}},bae=class extends TE{setParentLogger(e){this.logger=e.getChild(`[ToDeviceKeyTransport]`)}constructor(e,t,n,r,i){super(),this.membership=e,this.roomId=t,this.client=n,this.statistics=r,g(this,`logger`,N),g(this,`onToDeviceEvent`,e=>{if(e.getType()===P.CallEncryptionKeysPrefix){var t=this.getValidEventContent(e);t&&e.getSender()&&this.receiveCallKeyEvent(e.getSender(),t)}}),this.setParentLogger(i??N)}start(){this.client.on(L.ToDeviceEvent,this.onToDeviceEvent)}stop(){this.client.off(L.ToDeviceEvent,this.onToDeviceEvent)}sendKey(e,t,n){var r=this;return f(function*(){var i={keys:{index:t,key:e},room_id:r.roomId,member:{claimed_device_id:r.membership.deviceId,id:r.membership.memberId},session:{call_id:``,application:`m.call`,scope:`m.room`},sent_ts:Date.now()},a=n.map(e=>({userId:e.userId,deviceId:e.deviceId})).filter(e=>!(e.userId==r.membership.userId&&e.deviceId==r.membership.deviceId));a.length>0?(yield r.client.encryptAndSendToDevice(P.CallEncryptionKeysPrefix,a,i).catch(e=>{var t=e.message;if(t.includes(`unknown variant`)&&t.includes(`send_to_device`)||t.includes(`not supported`))throw new yae(`The widget driver does not support to-device encryption`)}),r.statistics.counters.roomEventEncryptionKeysSent+=1):r.logger.warn(`No targets found for sending key`)})()}receiveCallKeyEvent(e,t){this.statistics.counters.roomEventEncryptionKeysReceived+=1;var n=Date.now(),r=n-(typeof t.sent_ts==`number`?t.sent_ts:n);this.statistics.totals.roomEventEncryptionKeysReceivedTotalAge+=r;var i=`${e}:${t.member.claimed_device_id}`;this.emit(dA.ReceivedKeys,{userId:e,deviceId:t.member.claimed_device_id,memberId:t.member.id??i},t.keys.key,t.keys.index,n)}getValidEventContent(e){var t=e.getContent(),n=t.room_id;if(!n){this.logger.warn(`Malformed Event: invalid call encryption keys event, no roomId`);return}if(n!==this.roomId){this.logger.warn(`Malformed Event: Mismatch roomId`);return}if(!t.keys||!t.keys.key||typeof t.keys.index!=`number`){this.logger.warn(`Malformed Event: Missing keys field`);return}if(!t.member||!t.member.claimed_device_id){this.logger.warn(`Malformed Event: Missing claimed_device_id`);return}return t}};function xae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Sae(e){for(var t=1;t2&&n[2]!==void 0?n[2]:Cae,i=N.getChild(`[MatrixRTCSession ${e.roomId} ${t.application}#${t.id}]`),a=yield Tae(e,Oae(e,r,i),t,i);return a.sort((e,t)=>e.createdTs()-t.createdTs()),a.length>1&&i.debug(`Call memberships in room ${e.roomId}, in order: `,a.map(e=>[e.createdTs(),e.userId])),a})()}static sessionForSlot(t,n,r,i){return new e(t,n,r,i)}get room(){return this.roomSubset}constructor(t,n,r,i){var a;super(),a=this,this.client=t,this.roomSubset=n,this.slotDescription=r,this.calculateMembershipsOpts=i,g(this,`membershipManager`,void 0),g(this,`encryptionManager`,void 0),g(this,`joinConfig`,void 0),g(this,`logger`,void 0),g(this,`pendingNotificationToSend`,void 0),g(this,`expiryTimeout`,void 0),g(this,`memberships`,[]),g(this,`initialMembershipCalculated`,void 0),g(this,`membershipNeedsRecalculation`,!1),g(this,`statistics`,{counters:{roomEventEncryptionKeysSent:0,roomEventEncryptionKeysReceived:0},totals:{roomEventEncryptionKeysReceivedTotalAge:0}}),g(this,`reEmitter`,new pD(this)),g(this,`onRoomMemberUpdate`,()=>{this.ensureRecalculateSessionMembers()}),g(this,`onStickyEventUpdate`,(e,t,n)=>{[...e,...n,...t.flatMap(e=>[e.current,e.previous])].some(e=>e.getType()===P.RTCMembership)&&this.ensureRecalculateSessionMembers()}),g(this,`_onRTCSessionMemberUpdate`,f(function*(){yield a.recalculateSessionMembers()})),g(this,`recalculateSessionMembersPromise`,Promise.resolve()),g(this,`recalculateSessionMembers`,f(function*(){var t;a.membershipNeedsRecalculation=!1;var n=a.memberships;if(a.memberships=yield e.sessionMembershipsForSlot(a.room,a.slotDescription,a.calculateMembershipsOpts),n.length!=a.memberships.length||n.some((e,t)=>!uae.equal(e,a.memberships[t]))){var r;a.logger.info(`Memberships for call in room ${a.roomSubset.roomId} have changed: emitting (${a.memberships.length} members)`),wee(a.logger,`emit MatrixRTCSessionEvent.MembershipsChanged`,()=>{a.emit(fA.MembershipsChanged,n,a.memberships)}),(r=a.membershipManager)==null||r.onRTCSessionMemberUpdate(a.memberships);var i=a.membershipManager?.ownMembership;if(a.pendingNotificationToSend&&i&&n.length===0){var o;i.eventId&&(o=a.joinConfig)!=null&&o.notificationType?a.sendCallNotify(i.eventId,a.joinConfig.notificationType,i.callIntent):a.logger.warn(`Own membership eventId is undefined, cannot send call notification`)}a.memberships.length>0&&(a.pendingNotificationToSend=void 0)}else a.logger.debug(`No membership changes detected for room ${a.roomSubset.roomId}`);(t=a.encryptionManager)==null||t.onMembershipsUpdate(n),a.setExpiryTimer()})),this.logger=N.getChild(`[MatrixRTCSession ${n.roomId} ${r.application}#${r.id}]`),this.roomSubset.on(pj.Members,this.onRoomMemberUpdate),this.roomSubset.on(QD.Update,this.onStickyEventUpdate),this.initialMembershipCalculated=this.ensureRecalculateSessionMembers(),this.setExpiryTimer()}isJoined(){return this.membershipManager?.isJoined()??!1}stop(){var e=this;return f(function*(){yield e.membershipManager?.leave(1e3),e.expiryTimeout&&=(clearTimeout(e.expiryTimeout),void 0),e.roomSubset.off(pj.Members,e.onRoomMemberUpdate),e.roomSubset.off(QD.Update,e.onStickyEventUpdate)})()}joinRTCSession(e,t,n,r){if(this.isJoined()){this.logger.info(`Already joined to session in room ${this.roomSubset.roomId}: ignoring join call`);return}else{this.membershipManager=r!=null&&r.unstableSendStickyEvents?new _ae(r,this.roomSubset,this.client,this.slotDescription,e.memberId,this.logger):new gae(r,this.roomSubset,this.client,this.slotDescription,this.logger),this.reEmitter.reEmit(this.membershipManager,[iA.ProbablyLeft,iA.StatusChanged,iA.DelayIdChanged]);var i=[this.roomSubset,this.client,this.statistics],a=i[0],o=i[1],s=i[2],c=new bae(e,a.roomId,o,s);this.encryptionManager=new vae(e,()=>this.memberships,c,(e,t,n,r)=>{this.emit(fA.EncryptionKeyChanged,e,t,n,r)},this.logger)}this.joinConfig=r,this.pendingNotificationToSend=this.joinConfig?.notificationType,this.membershipManager.join(t,n,e=>{this.logger.error(`MembershipManager encountered an unrecoverable error: `,e),this.emit(fA.MembershipManagerError,e),this.emit(fA.JoinStateChanged,this.isJoined())}),this.encryptionManager.join(r),this.emit(fA.JoinStateChanged,!0)}joinRoomSession(e,t,n){var r=this.client.getUserId(),i=this.client.getDeviceId(),a=`${r}:${i}`;this.joinRTCSession({userId:r,deviceId:i,memberId:a},e,t,n)}leaveRoomSession(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:void 0;if(!t.isJoined())return t.logger.info(`Not joined to session in room ${t.roomSubset.roomId}: ignoring leave call`),!1;t.logger.info(`Leaving call session in room ${t.roomSubset.roomId}`),t.encryptionManager.leave();var r=t.membershipManager.leave(n);return t.emit(fA.JoinStateChanged,!1),yield r})()}getFocusInUse(){var e=this.getOldestMembership();return e?.getTransport(e)}getOldestMembership(){return this.memberships[0]}getConsensusCallIntent(){var e=this.memberships.find(e=>!!e.callIntent)?.callIntent;if(e&&this.memberships.every(t=>!t.callIntent||t.callIntent===e))return e}updateCallIntent(e){var t=this;return f(function*(){if(!t.membershipManager?.ownMembership)throw Error(`Not connected yet`);yield t.membershipManager?.updateCallIntent(e)})()}reemitEncryptionKeys(){var e;(e=this.encryptionManager)==null||e.getEncryptionKeys().forEach((e,t)=>{e.forEach(e=>{this.emit(fA.EncryptionKeyChanged,e.key,e.keyIndex,e.membership,e.rtcBackendIdentity)})})}setExpiryTimer(){this.expiryTimeout&&=(clearTimeout(this.expiryTimeout),void 0);var e;for(var t of this.memberships){var n=t.getMsUntilExpiry();n!==void 0&&(e===void 0||nvoid this.ensureRecalculateSessionMembers(),e))}sendCallNotify(e,t,n){var r=this;(function(){var i=f(function*(){var i={"m.mentions":{user_ids:[],room:!0},notification_type:t,"m.relates_to":{event_id:e,rel_type:EE.Reference},sender_ts:Date.now(),lifetime:3e4};return n&&(i[`m.call.intent`]=n),{response:yield r.client.sendEvent(r.roomSubset.roomId,P.RTCNotification,i),content:i}});return function(){return i.apply(this,arguments)}})()().then(e=>{var t=Sae(Sae({},e.response),e.content);this.emit(fA.DidSendCallNotification,t)}).catch(e=>{var t=u(e,2),n=t[0],r=t[1];return this.logger.error(`Failed to send call notification`,n,r)})}ensureRecalculateSessionMembers(){return this.membershipNeedsRecalculation?this.recalculateSessionMembersPromise:(this.membershipNeedsRecalculation=!0,this.recalculateSessionMembersPromise=this.recalculateSessionMembersPromise.then(()=>this.recalculateSessionMembers(),()=>this.recalculateSessionMembers()),this.recalculateSessionMembersPromise)}};function Tae(e,t,n,r){return pA.apply(this,arguments)}function pA(){return pA=f(function*(e,t,n,r){var i=[];for(var a of t)if(Eae(a.getContent(),r))try{var o=yield uae.parseFromEvent(a);Dae(o,e,n,r)&&i.push(o)}catch(e){r.warn(`Couldn't construct call membership: `,e)}return i}),pA.apply(this,arguments)}function Eae(e,t){var n=Object.keys(e).filter(e=>e!==`msc4354_sticky_key`).length;return n===0?!1:n>1&&`application`in e?!0:(n===1&&`memberships`in e,!1)}function Dae(e,t,n,r){return e.slotDescription.id===n.id?e.isExpired()?(r.info(`Ignoring expired device membership ${e.userId}/${e.deviceId}`),!1):t.hasMembershipState(e.userId??``,zE.Join)?!0:(r.info(`Ignoring membership of user ${e.userId} who is not in the room.`),!1):(r.info(`Ignoring membership of user ${e.userId} for a different slot. Theirs: ${JSON.stringify(e.slotDescription)}, Expected: ${JSON.stringify(n)}`),!1)}function Oae(e,t,n){var r=t.listenForStickyEvents,i=t.listenForMemberStateEvents,a=[];if(r&&(a=[...e._unstable_getStickyEvents()].filter(e=>e.getType()===P.RTCMembership)),i){var o=e.getLiveTimeline().getState(oD.FORWARDS);if(!o)return n.warn(`Couldn't get state for room `+e.roomId+`using empty membership array`),[];var s=o.getStateEvents(P.GroupCallMemberPrefix);a=a.concat(s.filter(e=>!a.some(t=>t.getContent().msc4354_sticky_key===e.getStateKey())))}return a}var mA=function(e){return e.SessionStarted=`session_started`,e.SessionEnded=`session_ended`,e}({}),kae=class extends TE{constructor(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{application:`m.call`,id:`ROOM`};super(),this.client=t,this.slotDescription=n,g(this,`roomSessions`,new Map),g(this,`logger`,void 0),g(this,`onRoom`,e=>{this.refreshRoom(e)}),g(this,`onEvent`,e=>{if(e.unstableStickyExpiresAt&&e.getType()===P.RTCMembership){var t=this.client.getRoom(e.getRoomId());t&&this.refreshRoom(t)}}),g(this,`onRoomState`,e=>{if(e.getType()===P.GroupCallMemberPrefix){var t=this.client.getRoom(e.getRoomId());if(!t){this.logger.error(`Got room state event for unknown room ${e.getRoomId()}!`);return}this.refreshRoom(t)}}),this.logger=e.getChild(`[MatrixRTCSessionManager ${qk(n)}]`)}start(){for(var e of(t=this.client.getRooms())??[]){var t,n=wae.sessionForSlot(this.client,e,this.slotDescription);n.memberships.length>0&&this.roomSessions.set(e.roomId,n)}this.client.on(L.Room,this.onRoom),this.client.on(L.Event,this.onEvent),this.client.on(pj.Events,this.onRoomState)}stop(){for(var e of this.roomSessions.values())e.stop();this.roomSessions.clear(),this.client.off(L.Room,this.onRoom),this.client.off(L.Event,this.onEvent),this.client.off(pj.Events,this.onRoomState)}getActiveRoomSession(e){return this.roomSessions.get(e.roomId)}getRoomSession(e){return this.roomSessions.has(e.roomId)||this.roomSessions.set(e.roomId,wae.sessionForSlot(this.client,e,this.slotDescription)),this.roomSessions.get(e.roomId)}refreshRoom(e){var t=this;return f(function*(){var n=!t.roomSessions.has(e.roomId),r=t.getRoomSession(e),i=r.memberships.length>0&&!n;yield r._onRTCSessionMemberUpdate().catch(n=>{t.logger.error(`Error updating RTC session members for ${e.roomId}: ${n}`)});var a=r.memberships.length>0;i&&!a?(t.logger.trace(`Session ended for ${e.roomId} (${r.memberships.length} members)`),t.emit(mA.SessionEnded,e.roomId,t.roomSessions.get(e.roomId))):!i&&a&&(t.logger.trace(`Session started for ${e.roomId} (${r.memberships.length} members)`),t.emit(mA.SessionStarted,e.roomId,t.roomSessions.get(e.roomId)))})()}};function hA(e){return t=>{var n,r;return((n=t.content)==null||(n=n[`m.relates_to`])==null?void 0:n.event_id)!==e||((r=t.content)==null||(r=r[`m.relates_to`])==null?void 0:r.rel_type)===oj.name}}var gA=class extends Error{};gA.prototype.name=`InvalidTokenError`;function Aae(e){return decodeURIComponent(atob(e).replace(/(.)/g,(e,t)=>{let n=t.charCodeAt(0).toString(16).toUpperCase();return n.length<2&&(n=`0`+n),`%`+n}))}function jae(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`);switch(t.length%4){case 0:break;case 2:t+=`==`;break;case 3:t+=`=`;break;default:throw Error(`base64 string is not of the correct length`)}try{return Aae(t)}catch{return atob(t)}}function Mae(e,t){if(typeof e!=`string`)throw new gA(`Invalid token specified: must be a string`);t||={};let n=t.header===!0?0:1,r=e.split(`.`)[n];if(typeof r!=`string`)throw new gA(`Invalid token specified: missing part #${n+1}`);let i;try{i=jae(r)}catch(e){throw new gA(`Invalid token specified: invalid base64 for part #${n+1} (${e.message})`)}try{return JSON.parse(i)}catch(e){throw new gA(`Invalid token specified: invalid json for part #${n+1} (${e.message})`)}}var Nae={debug:()=>void 0,info:()=>void 0,warn:()=>void 0,error:()=>void 0},_A,vA,yA=(e=>(e[e.NONE=0]=`NONE`,e[e.ERROR=1]=`ERROR`,e[e.WARN=2]=`WARN`,e[e.INFO=3]=`INFO`,e[e.DEBUG=4]=`DEBUG`,e))(yA||{});(e=>{function t(){_A=3,vA=Nae}e.reset=t;function n(e){if(!(0<=e&&e<=4))throw Error(`Invalid log level`);_A=e}e.setLevel=n;function r(e){vA=e}e.setLogger=r})(yA||={});var bA=class e{constructor(e){this._name=e}debug(...t){_A>=4&&vA.debug(e._format(this._name,this._method),...t)}info(...t){_A>=3&&vA.info(e._format(this._name,this._method),...t)}warn(...t){_A>=2&&vA.warn(e._format(this._name,this._method),...t)}error(...t){_A>=1&&vA.error(e._format(this._name,this._method),...t)}throw(e){throw this.error(e),e}create(e){let t=Object.create(this);return t._method=e,t.debug(`begin`),t}static createStatic(t,n){let r=new e(`${t}.${n}`);return r.debug(`begin`),r}static _format(e,t){let n=`[${e}]`;return t?`${n} ${t}:`:n}static debug(t,...n){_A>=4&&vA.debug(e._format(t),...n)}static info(t,...n){_A>=3&&vA.info(e._format(t),...n)}static warn(t,...n){_A>=2&&vA.warn(e._format(t),...n)}static error(t,...n){_A>=1&&vA.error(e._format(t),...n)}};yA.reset();var xA=class{static decode(e){try{return Mae(e)}catch(e){throw bA.error(`JwtUtils.decode`,e),e}}static async generateSignedJwt(e,t,n){let r=`${CA.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${CA.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign({name:`ECDSA`,hash:{name:`SHA-256`}},n,new TextEncoder().encode(r));return`${r}.${CA.encodeBase64Url(new Uint8Array(i))}`}static async generateSignedJwtWithHmac(e,t,n){let r=`${CA.encodeBase64Url(new TextEncoder().encode(JSON.stringify(e)))}.${CA.encodeBase64Url(new TextEncoder().encode(JSON.stringify(t)))}`,i=await window.crypto.subtle.sign(`HMAC`,n,new TextEncoder().encode(r));return`${r}.${CA.encodeBase64Url(new Uint8Array(i))}`}},Pae=`10000000-1000-4000-8000-100000000000`,SA=e=>btoa([...new Uint8Array(e)].map(e=>String.fromCharCode(e)).join(``)),Fae=class e{static _randomWord(){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}static generateUUIDv4(){return Pae.replace(/[018]/g,t=>(t^e._randomWord()&15>>t/4).toString(16)).replace(/-/g,``)}static generateCodeVerifier(){return e.generateUUIDv4()+e.generateUUIDv4()+e.generateUUIDv4()}static async generateCodeChallenge(e){if(!crypto.subtle)throw Error(`Crypto.subtle is available only in secure contexts (HTTPS).`);try{let t=new TextEncoder().encode(e);return SA(await crypto.subtle.digest(`SHA-256`,t)).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}catch(e){throw bA.error(`CryptoUtils.generateCodeChallenge`,e),e}}static generateBasicAuth(e,t){return SA(new TextEncoder().encode([e,t].join(`:`)))}static async hash(e,t){let n=new TextEncoder().encode(t),r=await crypto.subtle.digest(e,n);return new Uint8Array(r)}static async customCalculateJwkThumbprint(t){let n;switch(t.kty){case`RSA`:n={e:t.e,kty:t.kty,n:t.n};break;case`EC`:n={crv:t.crv,kty:t.kty,x:t.x,y:t.y};break;case`OKP`:n={crv:t.crv,kty:t.kty,x:t.x};break;case`oct`:n={crv:t.k,kty:t.kty};break;default:throw Error(`Unknown jwk type`)}let r=await e.hash(`SHA-256`,JSON.stringify(n));return e.encodeBase64Url(r)}static async generateDPoPProof({url:t,accessToken:n,httpMethod:r,keyPair:i,nonce:a}){let o,s,c={jti:window.crypto.randomUUID(),htm:r??`GET`,htu:t,iat:Math.floor(Date.now()/1e3)};n&&(o=await e.hash(`SHA-256`,n),s=e.encodeBase64Url(o),c.ath=s),a&&(c.nonce=a);try{let e=await crypto.subtle.exportKey(`jwk`,i.publicKey),t={alg:`ES256`,typ:`dpop+jwt`,jwk:{crv:e.crv,kty:e.kty,x:e.x,y:e.y}};return await xA.generateSignedJwt(t,c,i.privateKey)}catch(e){throw e instanceof TypeError?Error(`Error exporting dpop public key: ${e.message}`):e}}static async generateDPoPJkt(t){try{let n=await crypto.subtle.exportKey(`jwk`,t.publicKey);return await e.customCalculateJwkThumbprint(n)}catch(e){throw e instanceof TypeError?Error(`Could not retrieve dpop keys from storage: ${e.message}`):e}}static async generateDPoPKeys(){return await window.crypto.subtle.generateKey({name:`ECDSA`,namedCurve:`P-256`},!1,[`sign`,`verify`])}static async generateClientAssertionJwt(t,n,r,i=`HS256`){let a=Math.floor(Date.now()/1e3),o={alg:i,typ:`JWT`},s={iss:t,sub:t,aud:r,jti:e.generateUUIDv4(),exp:a+300,iat:a},c={HS256:`SHA-256`,HS384:`SHA-384`,HS512:`SHA-512`}[i];if(!c)throw Error(`Unsupported algorithm: ${i}. Supported algorithms are: HS256, HS384, HS512`);let l=new TextEncoder,u=await crypto.subtle.importKey(`raw`,l.encode(n),{name:`HMAC`,hash:c},!1,[`sign`]);return await xA.generateSignedJwtWithHmac(o,s,u)}};Fae.encodeBase64Url=e=>SA(e).replace(/=/g,``).replace(/\+/g,`-`).replace(/\//g,`_`);var CA=Fae,Iae=class{constructor(e){this._name=e,this._callbacks=[],this._logger=new bA(`Event('${this._name}')`)}addHandler(e){return this._callbacks.push(e),()=>this.removeHandler(e)}removeHandler(e){let t=this._callbacks.lastIndexOf(e);t>=0&&this._callbacks.splice(t,1)}async raise(...e){this._logger.debug(`raise:`,...e);for(let t of this._callbacks)await t(...e)}},wA=class e extends Iae{constructor(){super(...arguments),this._logger=new bA(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{let t=this._expiration-e.getEpochTime();this._logger.debug(`timer completes in`,t),this._expiration<=e.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(t){let n=this._logger.create(`init`);t=Math.max(Math.floor(t),1);let r=e.getEpochTime()+t;if(this.expiration===r&&this._timerHandle){n.debug(`skipping since already initialized for expiration at`,this.expiration);return}this.cancel(),n.debug(`using duration`,t),this._expiration=r;let i=Math.min(t,5);this._timerHandle=setInterval(this._callback,i*1e3)}get expiration(){return this._expiration}cancel(){this._logger.create(`cancel`),this._timerHandle&&=(clearInterval(this._timerHandle),null)}},Lae=class{static readParams(e,t=`query`){if(!e)throw TypeError(`Invalid URL`);let n=new URL(e,`http://127.0.0.1`)[t===`fragment`?`hash`:`search`];return new URLSearchParams(n.slice(1))}},TA=`;`,EA=class extends Error{constructor(e,t){if(super(e.error_description||e.error||``),this.form=t,this.name=`ErrorResponse`,!e.error)throw bA.error(`ErrorResponse`,`No error passed`),Error(`No error passed`);this.error=e.error,this.error_description=e.error_description??null,this.error_uri=e.error_uri??null,this.state=e.userState,this.session_state=e.session_state??null,this.url_state=e.url_state}},Rae=class extends Error{constructor(e){super(e),this.name=`ErrorTimeout`}},zae=class{constructor(){this._logger=new bA(`InMemoryWebStorage`),this._data={}}clear(){this._logger.create(`clear`),this._data={}}getItem(e){return this._logger.create(`getItem('${e}')`),this._data[e]}setItem(e,t){this._logger.create(`setItem('${e}')`),this._data[e]=t}removeItem(e){this._logger.create(`removeItem('${e}')`),delete this._data[e]}get length(){return Object.getOwnPropertyNames(this._data).length}key(e){return Object.getOwnPropertyNames(this._data)[e]}},DA=class extends Error{constructor(e,t){super(t),this.name=`ErrorDPoPNonce`,this.nonce=e}},OA=class{constructor(e=[],t=null,n={}){this._jwtHandler=t,this._extraHeaders=n,this._logger=new bA(`JsonService`),this._contentTypes=[],this._contentTypes.push(...e,`application/json`),t&&this._contentTypes.push(`application/jwt`)}async fetchWithTimeout(e,t={}){let{timeoutInSeconds:n,...r}=t;if(!n)return await fetch(e,r);let i=new AbortController,a=setTimeout(()=>i.abort(),n*1e3);try{return await fetch(e,{...t,signal:i.signal})}catch(e){throw e instanceof DOMException&&e.name===`AbortError`?new Rae(`Network timed out`):e}finally{clearTimeout(a)}}async getJson(e,{token:t,credentials:n,timeoutInSeconds:r}={}){let i=this._logger.create(`getJson`),a={Accept:this._contentTypes.join(`, `)};t&&(i.debug(`token passed, setting Authorization header`),a.Authorization=`Bearer `+t),this._appendExtraHeaders(a);let o;try{i.debug(`url:`,e),o=await this.fetchWithTimeout(e,{method:`GET`,headers:a,timeoutInSeconds:r,credentials:n})}catch(e){throw i.error(`Network Error`),e}i.debug(`HTTP response received, status`,o.status);let s=o.headers.get(`Content-Type`);if(s&&!this._contentTypes.find(e=>s.startsWith(e))&&i.throw(Error(`Invalid response Content-Type: ${s??`undefined`}, from URL: ${e}`)),o.ok&&this._jwtHandler&&s?.startsWith(`application/jwt`))return await this._jwtHandler(await o.text());let c;try{c=await o.json()}catch(e){throw i.error(`Error parsing JSON response`,e),o.ok?e:Error(`${o.statusText} (${o.status})`)}if(!o.ok)throw i.error(`Error from server:`,c),c.error?new EA(c):Error(`${o.statusText} (${o.status}): ${JSON.stringify(c)}`);return c}async postForm(e,{body:t,basicAuth:n,timeoutInSeconds:r,initCredentials:i,extraHeaders:a}){let o=this._logger.create(`postForm`),s={Accept:this._contentTypes.join(`, `),"Content-Type":`application/x-www-form-urlencoded`,...a};n!==void 0&&(s.Authorization=`Basic `+n),this._appendExtraHeaders(s);let c;try{o.debug(`url:`,e),c=await this.fetchWithTimeout(e,{method:`POST`,headers:s,body:t,timeoutInSeconds:r,credentials:i})}catch(e){throw o.error(`Network error`),e}o.debug(`HTTP response received, status`,c.status);let l=c.headers.get(`Content-Type`);if(l&&!this._contentTypes.find(e=>l.startsWith(e)))throw Error(`Invalid response Content-Type: ${l??`undefined`}, from URL: ${e}`);let u=await c.text(),d={};if(u)try{d=JSON.parse(u)}catch(e){throw o.error(`Error parsing JSON response`,e),c.ok?e:Error(`${c.statusText} (${c.status})`)}if(!c.ok)throw o.error(`Error from server:`,d),c.headers.has(`dpop-nonce`)?new DA(c.headers.get(`dpop-nonce`),`${JSON.stringify(d)}`):d.error?new EA(d,t):Error(`${c.statusText} (${c.status}): ${JSON.stringify(d)}`);return d}_appendExtraHeaders(e){let t=this._logger.create(`appendExtraHeaders`),n=Object.keys(this._extraHeaders),r=[`accept`,`content-type`],i=[`authorization`];n.length!==0&&n.forEach(n=>{if(r.includes(n.toLocaleLowerCase())){t.warn(`Protected header could not be set`,n,r);return}if(i.includes(n.toLocaleLowerCase())&&Object.keys(e).includes(n)){t.warn(`Header could not be overridden`,n,i);return}let a=typeof this._extraHeaders[n]==`function`?this._extraHeaders[n]():this._extraHeaders[n];a&&a!==``&&(e[n]=a)})}},Bae=class{constructor(e){this._settings=e,this._logger=new bA(`MetadataService`),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new OA([`application/jwk-set+json`],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug(`using signingKeys from settings`),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug(`using metadata from settings`),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug(`using fetchRequestCredentials from settings`),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){let e=this._logger.create(`getMetadata`);if(this._metadata)return e.debug(`using cached values`),this._metadata;if(!this._metadataUrl)throw e.throw(Error(`No authority or metadataUrl configured on settings`)),null;e.debug(`getting metadata from`,this._metadataUrl);let t=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return e.debug(`merging remote JSON with seed metadata`),this._metadata=Object.assign({},t,this._settings.metadataSeed),this._metadata}getIssuer(){return this._getMetadataProperty(`issuer`)}getAuthorizationEndpoint(){return this._getMetadataProperty(`authorization_endpoint`)}getUserInfoEndpoint(){return this._getMetadataProperty(`userinfo_endpoint`)}getTokenEndpoint(e=!0){return this._getMetadataProperty(`token_endpoint`,e)}getCheckSessionIframe(){return this._getMetadataProperty(`check_session_iframe`,!0)}getEndSessionEndpoint(){return this._getMetadataProperty(`end_session_endpoint`,!0)}getRevocationEndpoint(e=!0){return this._getMetadataProperty(`revocation_endpoint`,e)}getKeysEndpoint(e=!0){return this._getMetadataProperty(`jwks_uri`,e)}async _getMetadataProperty(e,t=!1){let n=this._logger.create(`_getMetadataProperty('${e}')`),r=await this.getMetadata();if(n.debug(`resolved`),r[e]===void 0){if(t===!0){n.warn(`Metadata does not contain optional property`);return}n.throw(Error(`Metadata does not contain property `+e))}return r[e]}async getSigningKeys(){let e=this._logger.create(`getSigningKeys`);if(this._signingKeys)return e.debug(`returning signingKeys from cache`),this._signingKeys;let t=await this.getKeysEndpoint(!1);e.debug(`got jwks_uri`,t);let n=await this._jsonService.getJson(t,{timeoutInSeconds:this._settings.requestTimeoutInSeconds});if(e.debug(`got key set`,n),!Array.isArray(n.keys))throw e.throw(Error(`Missing keys on keyset`)),null;return this._signingKeys=n.keys,this._signingKeys}},kA=class{constructor({prefix:e=`oidc.`,store:t=localStorage}={}){this._logger=new bA(`WebStorageStateStore`),this._store=t,this._prefix=e}async set(e,t){this._logger.create(`set('${e}')`),e=this._prefix+e,await this._store.setItem(e,t)}async get(e){return this._logger.create(`get('${e}')`),e=this._prefix+e,await this._store.getItem(e)}async remove(e){this._logger.create(`remove('${e}')`),e=this._prefix+e;let t=await this._store.getItem(e);return await this._store.removeItem(e),t}async getAllKeys(){this._logger.create(`getAllKeys`);let e=await this._store.length,t=[];for(let n=0;n{let t=this._logger.create(`_getClaimsFromJwt`);try{let n=xA.decode(e);return t.debug(`JWT decoding successful`),n}catch(e){throw t.error(`Error parsing JWT response`),e}},this._jsonService=new OA(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(e){let t=this._logger.create(`getClaims`);e||this._logger.throw(Error(`No token passed`));let n=await this._metadataService.getUserInfoEndpoint();t.debug(`got userinfo url`,n);let r=await this._jsonService.getJson(n,{token:e,credentials:this._settings.fetchRequestCredentials,timeoutInSeconds:this._settings.requestTimeoutInSeconds});return t.debug(`got claims`,r),r}},Kae=class{constructor(e,t){this._settings=e,this._metadataService=t,this._logger=new bA(`TokenClient`),this._jsonService=new OA(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:e=`authorization_code`,redirect_uri:t=this._settings.redirect_uri,client_id:n=this._settings.client_id,client_secret:r=this._settings.client_secret,extraHeaders:i,...a}){let o=this._logger.create(`exchangeCode`);n||o.throw(Error(`A client_id is required`)),t||o.throw(Error(`A redirect_uri is required`)),a.code||o.throw(Error(`A code is required`));let s=new URLSearchParams({grant_type:e,redirect_uri:t});for(let[e,t]of Object.entries(a))t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&r==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=CA.generateBasicAuth(n,r);break;case`client_secret_post`:s.append(`client_id`,n),r&&s.append(`client_secret`,r);break;case`client_secret_jwt`:{let e=await CA.generateClientAssertionJwt(n,r,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,n),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async exchangeCredentials({grant_type:e=`password`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,scope:r=this._settings.scope,...i}){let a=this._logger.create(`exchangeCredentials`);t||a.throw(Error(`A client_id is required`));let o=new URLSearchParams({grant_type:e});this._settings.omitScopeWhenRequesting||o.set(`scope`,r);for(let[e,t]of Object.entries(i))t!=null&&o.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw a.throw(Error(`A client_secret is required`)),null;let s,c=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:s=CA.generateBasicAuth(t,n);break;case`client_secret_post`:o.append(`client_id`,t),n&&o.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await CA.generateClientAssertionJwt(t,n,c,this._settings.token_endpoint_auth_signing_alg);o.append(`client_id`,t),o.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),o.append(`client_assertion`,e);break}}a.debug(`got token endpoint`);let l=await this._jsonService.postForm(c,{body:o,basicAuth:s,timeoutInSeconds:this._settings.requestTimeoutInSeconds,initCredentials:this._settings.fetchRequestCredentials});return a.debug(`got response`),l}async exchangeRefreshToken({grant_type:e=`refresh_token`,client_id:t=this._settings.client_id,client_secret:n=this._settings.client_secret,timeoutInSeconds:r,extraHeaders:i,...a}){let o=this._logger.create(`exchangeRefreshToken`);t||o.throw(Error(`A client_id is required`)),a.refresh_token||o.throw(Error(`A refresh_token is required`));let s=new URLSearchParams({grant_type:e});for(let[e,t]of Object.entries(a))Array.isArray(t)?t.forEach(t=>s.append(e,t)):t!=null&&s.set(e,t);if((this._settings.client_authentication===`client_secret_basic`||this._settings.client_authentication===`client_secret_jwt`)&&n==null)throw o.throw(Error(`A client_secret is required`)),null;let c,l=await this._metadataService.getTokenEndpoint(!1);switch(this._settings.client_authentication){case`client_secret_basic`:c=CA.generateBasicAuth(t,n);break;case`client_secret_post`:s.append(`client_id`,t),n&&s.append(`client_secret`,n);break;case`client_secret_jwt`:{let e=await CA.generateClientAssertionJwt(t,n,l,this._settings.token_endpoint_auth_signing_alg);s.append(`client_id`,t),s.append(`client_assertion_type`,`urn:ietf:params:oauth:client-assertion-type:jwt-bearer`),s.append(`client_assertion`,e);break}}o.debug(`got token endpoint`);let u=await this._jsonService.postForm(l,{body:s,basicAuth:c,timeoutInSeconds:r,initCredentials:this._settings.fetchRequestCredentials,extraHeaders:i});return o.debug(`got response`),u}async revoke(e){let t=this._logger.create(`revoke`);e.token||t.throw(Error(`A token is required`));let n=await this._metadataService.getRevocationEndpoint(!1);t.debug(`got revocation endpoint, revoking ${e.token_type_hint??`default token type`}`);let r=new URLSearchParams;for(let[t,n]of Object.entries(e))n!=null&&r.set(t,n);r.set(`client_id`,this._settings.client_id),this._settings.client_secret&&r.set(`client_secret`,this._settings.client_secret),await this._jsonService.postForm(n,{body:r,timeoutInSeconds:this._settings.requestTimeoutInSeconds}),t.debug(`got response`)}},qae=class{constructor(e,t,n){this._settings=e,this._metadataService=t,this._claimsService=n,this._logger=new bA(`ResponseValidator`),this._userInfoService=new Gae(this._settings,this._metadataService),this._tokenClient=new Kae(this._settings,this._metadataService)}async validateSigninResponse(e,t,n){let r=this._logger.create(`validateSigninResponse`);this._processSigninState(e,t),r.debug(`state processed`),await this._processCode(e,t,n),r.debug(`code processed`),e.isOpenId&&this._validateIdTokenAttributes(e,``,t.nonce),r.debug(`tokens validated`),await this._processClaims(e,t?.skipUserInfo,e.isOpenId),r.debug(`claims processed`)}async validateCredentialsResponse(e,t){let n=this._logger.create(`validateCredentialsResponse`),r=e.isOpenId&&!!e.id_token;r&&this._validateIdTokenAttributes(e),n.debug(`tokens validated`),await this._processClaims(e,t,r),n.debug(`claims processed`)}async validateRefreshResponse(e,t){let n=this._logger.create(`validateRefreshResponse`);e.userState=t.data,e.session_state??=t.session_state,e.scope??=t.scope,e.isOpenId&&e.id_token&&(this._validateIdTokenAttributes(e,t.id_token),n.debug(`ID Token validated`)),e.id_token||(e.id_token=t.id_token,e.profile=t.profile);let r=e.isOpenId&&!!e.id_token;await this._processClaims(e,!1,r),n.debug(`claims processed`)}validateSignoutResponse(e,t){let n=this._logger.create(`validateSignoutResponse`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),n.debug(`state validated`),e.userState=t.data,e.error)throw n.warn(`Response was error`,e.error),new EA(e)}_processSigninState(e,t){let n=this._logger.create(`_processSigninState`);if(t.id!==e.state&&n.throw(Error(`State does not match`)),t.client_id||n.throw(Error(`No client_id on state`)),t.authority||n.throw(Error(`No authority on state`)),this._settings.authority!==t.authority&&n.throw(Error(`authority mismatch on settings vs. signin state`)),this._settings.client_id&&this._settings.client_id!==t.client_id&&n.throw(Error(`client_id mismatch on settings vs. signin state`)),n.debug(`state validated`),e.userState=t.data,e.url_state=t.url_state,e.scope??=t.scope,e.error)throw n.warn(`Response was error`,e.error),new EA(e);t.code_verifier&&!e.code&&n.throw(Error(`Expected code in response`))}async _processClaims(e,t=!1,n=!0){let r=this._logger.create(`_processClaims`);if(e.profile=this._claimsService.filterProtocolClaims(e.profile),t||!this._settings.loadUserInfo||!e.access_token){r.debug(`not loading user info`);return}r.debug(`loading user info`);let i=await this._userInfoService.getClaims(e.access_token);r.debug(`user info claims received from user info endpoint`),n&&i.sub!==e.profile.sub&&r.throw(Error(`subject from UserInfo response does not match subject in ID Token`)),e.profile=this._claimsService.mergeClaims(e.profile,this._claimsService.filterProtocolClaims(i)),r.debug(`user info claims received, updated profile:`,e.profile)}async _processCode(e,t,n){let r=this._logger.create(`_processCode`);if(e.code){r.debug(`Validating code`);let i=await this._tokenClient.exchangeCode({client_id:t.client_id,client_secret:t.client_secret,code:e.code,redirect_uri:t.redirect_uri,code_verifier:t.code_verifier,extraHeaders:n,...t.extraTokenParams});Object.assign(e,i)}else r.debug(`No code to process`)}_validateIdTokenAttributes(e,t,n){let r=this._logger.create(`_validateIdTokenAttributes`);r.debug(`decoding ID Token JWT`);let i=xA.decode(e.id_token??``);if(i.sub||r.throw(Error(`ID Token is missing a subject claim`)),n&&i.nonce!==n&&r.throw(Error(`nonce in id_token does not match nonce in client storage`)),t){let e=xA.decode(t);i.sub!==e.sub&&r.throw(Error(`sub in id_token does not match current sub`)),i.auth_time&&i.auth_time!==e.auth_time&&r.throw(Error(`auth_time in id_token does not match original auth_time`)),i.azp&&i.azp!==e.azp&&r.throw(Error(`azp in id_token does not match original azp`)),!i.azp&&e.azp&&r.throw(Error(`azp not in id_token, but present in original id_token`))}e.profile=i}},jA=class e{constructor(e){this.id=e.id||CA.generateUUIDv4(),this.data=e.data,e.created&&e.created>0?this.created=e.created:this.created=wA.getEpochTime(),this.request_type=e.request_type,this.url_state=e.url_state}toStorageString(){return new bA(`State`).create(`toStorageString`),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(t){return bA.createStatic(`State`,`fromStorageString`),Promise.resolve(new e(JSON.parse(t)))}static async clearStaleState(t,n){let r=bA.createStatic(`State`,`clearStaleState`),i=wA.getEpochTime()-n,a=await t.getAllKeys();r.debug(`got keys`,a);for(let n=0;nS.searchParams.append(`resource`,e));for(let[e,t]of Object.entries({response_mode:c,...b,...h}))t!=null&&S.searchParams.append(e,t.toString());return new e({url:S.href,state:x})}};Jae._logger=new bA(`SigninRequest`);var Yae=Jae,Xae=`openid`,NA=class{constructor(e){if(this.access_token=``,this.token_type=``,this.profile={},this.state=e.get(`state`),this.session_state=e.get(`session_state`),this.state){let e=decodeURIComponent(this.state).split(TA);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(TA))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`),this.code=e.get(`code`)}get expires_in(){if(this.expires_at!==void 0)return this.expires_at-wA.getEpochTime()}set expires_in(e){typeof e==`string`&&(e=Number(e)),e!==void 0&&e>=0&&(this.expires_at=Math.floor(e)+wA.getEpochTime())}get isOpenId(){return this.scope?.split(` `).includes(Xae)||!!this.id_token}},Zae=class{constructor({url:e,state_data:t,id_token_hint:n,post_logout_redirect_uri:r,extraQueryParams:i,request_type:a,client_id:o,url_state:s}){if(this._logger=new bA(`SignoutRequest`),!e)throw this._logger.error(`ctor: No url passed`),Error(`url`);let c=new URL(e);if(n&&c.searchParams.append(`id_token_hint`,n),o&&c.searchParams.append(`client_id`,o),r&&(c.searchParams.append(`post_logout_redirect_uri`,r),t||s)){this.state=new jA({data:t,request_type:a,url_state:s});let e=this.state.id;s&&(e=`${e}${TA}${s}`),c.searchParams.append(`state`,e)}for(let[e,t]of Object.entries({...i}))t!=null&&c.searchParams.append(e,t.toString());this.url=c.href}},Qae=class{constructor(e){if(this.state=e.get(`state`),this.state){let e=decodeURIComponent(this.state).split(TA);this.state=e[0],e.length>1&&(this.url_state=e.slice(1).join(TA))}this.error=e.get(`error`),this.error_description=e.get(`error_description`),this.error_uri=e.get(`error_uri`)}},$ae=[`nbf`,`jti`,`auth_time`,`nonce`,`acr`,`amr`,`azp`,`at_hash`],eoe=[`sub`,`iss`,`aud`,`exp`,`iat`],toe=class{constructor(e){this._settings=e,this._logger=new bA(`ClaimsService`)}filterProtocolClaims(e){let t={...e};if(this._settings.filterProtocolClaims){let e;e=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:$ae;for(let n of e)eoe.includes(n)||delete t[n]}return t}mergeClaims(e,t){let n={...e};for(let[e,r]of Object.entries(t))if(n[e]!==r)if(Array.isArray(n[e])||Array.isArray(r))if(this._settings.mergeClaimsStrategy.array==`replace`)n[e]=r;else{let t=Array.isArray(n[e])?n[e]:[n[e]];for(let e of Array.isArray(r)?r:[r])t.includes(e)||t.push(e);n[e]=t}else typeof n[e]==`object`&&typeof r==`object`?n[e]=this.mergeClaims(n[e],r):n[e]=r;return n}},noe=class{constructor(e,t){this.keys=e,this.nonce=t}},PA=class{constructor(e,t){this._logger=new bA(`OidcClient`),this.settings=e instanceof AA?e:new AA(e),this.metadataService=t??new Bae(this.settings),this._claimsService=new toe(this.settings),this._validator=new qae(this.settings,this.metadataService,this._claimsService),this._tokenClient=new Kae(this.settings,this.metadataService)}async createSigninRequest({state:e,request:t,request_uri:n,request_type:r,id_token_hint:i,login_hint:a,skipUserInfo:o,nonce:s,url_state:c,response_type:l=this.settings.response_type,scope:u=this.settings.scope,redirect_uri:d=this.settings.redirect_uri,prompt:f=this.settings.prompt,display:p=this.settings.display,max_age:m=this.settings.max_age,ui_locales:h=this.settings.ui_locales,acr_values:g=this.settings.acr_values,resource:_=this.settings.resource,response_mode:v=this.settings.response_mode,extraQueryParams:y=this.settings.extraQueryParams,extraTokenParams:b=this.settings.extraTokenParams,dpopJkt:x,omitScopeWhenRequesting:S=this.settings.omitScopeWhenRequesting}){let C=this._logger.create(`createSigninRequest`);if(l!==`code`)throw Error(`Only the Authorization Code flow (with PKCE) is supported`);let w=await this.metadataService.getAuthorizationEndpoint();C.debug(`Received authorization endpoint`,w);let T=await Yae.create({url:w,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:d,response_type:l,scope:u,state_data:e,url_state:c,prompt:f,display:p,max_age:m,ui_locales:h,id_token_hint:i,login_hint:a,acr_values:g,dpopJkt:x,resource:_,request:t,request_uri:n,extraQueryParams:y,extraTokenParams:b,request_type:r,response_mode:v,client_secret:this.settings.client_secret,skipUserInfo:o,nonce:s,disablePKCE:this.settings.disablePKCE,omitScopeWhenRequesting:S});await this.clearStaleState();let E=T.state;return await this.settings.stateStore.set(E.id,E.toStorageString()),T}async readSigninResponseState(e,t=!1){let n=this._logger.create(`readSigninResponseState`),r=new NA(Lae.readParams(e,this.settings.response_mode));if(!r.state)throw n.throw(Error(`No state in response`)),null;let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await MA.fromStorageString(i),response:r}}async processSigninResponse(e,t,n=!0){let r=this._logger.create(`processSigninResponse`),{state:i,response:a}=await this.readSigninResponseState(e,n);if(r.debug(`received state from storage; validating response`),this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);t={...t,DPoP:e}}try{await this._validator.validateSigninResponse(a,i,t)}catch(e){if(e instanceof DA&&this.settings.dpop){let n=await this.getDpopProof(this.settings.dpop.store,e.nonce);t.DPoP=n,await this._validator.validateSigninResponse(a,i,t)}else throw e}return a}async getDpopProof(e,t){let n,r;return(await e.getAllKeys()).includes(this.settings.client_id)?(r=await e.get(this.settings.client_id),r.nonce!==t&&t&&(r.nonce=t,await e.set(this.settings.client_id,r))):(n=await CA.generateDPoPKeys(),r=new noe(n,t),await e.set(this.settings.client_id,r)),await CA.generateDPoPProof({url:await this.metadataService.getTokenEndpoint(!1),httpMethod:`POST`,keyPair:r.keys,nonce:r.nonce})}async processResourceOwnerPasswordCredentials({username:e,password:t,skipUserInfo:n=!1,extraTokenParams:r={}}){let i=await this._tokenClient.exchangeCredentials({username:e,password:t,...r}),a=new NA(new URLSearchParams);return Object.assign(a,i),await this._validator.validateCredentialsResponse(a,n),a}async useRefreshToken({state:e,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,extraTokenParams:a}){let o=this._logger.create(`useRefreshToken`),s;if(this.settings.refreshTokenAllowedScope===void 0)s=e.scope;else{let t=this.settings.refreshTokenAllowedScope.split(` `);s=(e.scope?.split(` `)||[]).filter(e=>t.includes(e)).join(` `)}if(this.settings.dpop&&this.settings.dpop.store){let e=await this.getDpopProof(this.settings.dpop.store);i={...i,DPoP:e}}let c;try{c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a})}catch(o){if(o instanceof DA&&this.settings.dpop)i.DPoP=await this.getDpopProof(this.settings.dpop.store,o.nonce),c=await this._tokenClient.exchangeRefreshToken({refresh_token:e.refresh_token,scope:s,redirect_uri:t,resource:n,timeoutInSeconds:r,extraHeaders:i,...a});else throw o}let l=new NA(new URLSearchParams);return Object.assign(l,c),o.debug(`validating response`,l),await this._validator.validateRefreshResponse(l,{...e,scope:s}),l}async createSignoutRequest({state:e,id_token_hint:t,client_id:n,request_type:r,url_state:i,post_logout_redirect_uri:a=this.settings.post_logout_redirect_uri,extraQueryParams:o=this.settings.extraQueryParams}={}){let s=this._logger.create(`createSignoutRequest`),c=await this.metadataService.getEndSessionEndpoint();if(!c)throw s.throw(Error(`No end session endpoint`)),null;s.debug(`Received end session endpoint`,c),!n&&a&&!t&&(n=this.settings.client_id);let l=new Zae({url:c,id_token_hint:t,client_id:n,post_logout_redirect_uri:a,state_data:e,extraQueryParams:o,request_type:r,url_state:i});await this.clearStaleState();let u=l.state;return u&&(s.debug(`Signout request has state to persist`),await this.settings.stateStore.set(u.id,u.toStorageString())),l}async readSignoutResponseState(e,t=!1){let n=this._logger.create(`readSignoutResponseState`),r=new Qae(Lae.readParams(e,this.settings.response_mode));if(!r.state){if(n.debug(`No state in response`),r.error)throw n.warn(`Response was error:`,r.error),new EA(r);return{state:void 0,response:r}}let i=await this.settings.stateStore[t?`remove`:`get`](r.state);if(!i)throw n.throw(Error(`No matching state found in storage`)),null;return{state:await jA.fromStorageString(i),response:r}}async processSignoutResponse(e){let t=this._logger.create(`processSignoutResponse`),{state:n,response:r}=await this.readSignoutResponseState(e,!0);return n?(t.debug(`Received state from storage; validating response`),this._validator.validateSignoutResponse(r,n)):t.debug(`No state from storage; skipping response validation`),r}clearStaleState(){return this._logger.create(`clearStaleState`),jA.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(e,t){return this._logger.create(`revokeToken`),await this._tokenClient.revoke({token:e,token_type_hint:t})}},FA=function(e){return e.NotSupported=`OIDC authentication not supported`,e.Misconfigured=`OIDC is misconfigured`,e.General=`Something went wrong with OIDC discovery`,e.OpSupport=`Configured OIDC OP does not support required functions`,e.DynamicRegistrationNotSupported=`Dynamic registration not supported`,e.DynamicRegistrationFailed=`Dynamic registration failed`,e.DynamicRegistrationInvalid=`Dynamic registration invalid response`,e.CodeExchangeFailed=`Failed to exchange code for token`,e.InvalidBearerTokenResponse=`Invalid bearer token response`,e.InvalidIdToken=`Invalid ID token`,e.MissingOrInvalidStoredState=`State required to finish logging in is not found in storage.`,e}({}),IA=e=>!!e&&typeof e==`object`&&!Array.isArray(e),LA=(e,t)=>!e[t]||!RA(e,t)?(N.error(`Missing or invalid property: ${t}`),!1):!0,RA=(e,t)=>e[t]&&typeof e[t]!=`string`?(N.error(`Invalid property: ${t}`),!1):!0,roe=(e,t)=>e[t]&&(!Array.isArray(e[t])||!e[t].every(e=>typeof e==`string`))?(N.error(`Invalid property: ${t}`),!1):!0,zA=(e,t,n)=>{var r=e[t];return!r||!Array.isArray(r)||!r.includes(n)?(N.error(`Invalid property: ${t}. ${n} is required.`),!1):!0},ioe=e=>{if(!IA(e))throw N.error(`Issuer configuration not found or malformed`),Error(FA.OpSupport);if(![LA(e,`issuer`),LA(e,`authorization_endpoint`),LA(e,`token_endpoint`),LA(e,`revocation_endpoint`),RA(e,`registration_endpoint`),RA(e,`account_management_uri`),RA(e,`device_authorization_endpoint`),roe(e,`account_management_actions_supported`),zA(e,`response_types_supported`,`code`),zA(e,`grant_types_supported`,BA.AuthorizationCode),zA(e,`code_challenge_methods_supported`,`S256`),roe(e,`prompt_values_supported`)].some(e=>!e))return e;throw N.error(`Issuer configuration not valid`),Error(FA.OpSupport)},aoe=e=>{try{return Mae(e)}catch(e){throw N.error(`Could not decode id_token`,e),e}},ooe=(e,t,n,r)=>{try{if(!e)throw Error(`No ID token`);var i=aoe(e);if(i.iss!==t)throw Error(`Invalid issuer`);if(!(typeof i.aud==`string`?[i.aud]:i.aud).includes(n))throw Error(`Invalid audience`);if(r!==void 0&&i.nonce!==r)throw Error(`Invalid nonce`);if(!i.exp||Date.now()>i.exp*1e3)throw Error(`Invalid expiry`)}catch(e){throw N.error(`Invalid ID token`,e),Error(FA.InvalidIdToken)}};function soe(e){if(!IA(e))throw N.error(`Stored user state not found`),Error(FA.MissingOrInvalidStoredState);if([LA(e,`homeserverUrl`),LA(e,`nonce`),RA(e,`identityServerUrl`)].some(e=>!e))throw Error(FA.MissingOrInvalidStoredState)}var coe=e=>IA(e)&&LA(e,`token_type`)&&e.token_type.toLowerCase()===`bearer`&&LA(e,`access_token`)&&LA(e,`refresh_token`)&&(!(`expires_in`in e)||typeof e.expires_in==`number`);function loe(e){if(!coe(e))throw Error(FA.InvalidBearerTokenResponse)}var BA=function(e){return e.AuthorizationCode=`authorization_code`,e.RefreshToken=`refresh_token`,e.DeviceAuthorization=`urn:ietf:params:oauth:grant-type:device_code`,e}({}),uoe=BA.DeviceAuthorization,VA=(e,t)=>{if(!t)return!1;var n=new URL(t);return!(n.protocol!==e.protocol||n.hostname!==e.hostname&&!n.hostname.endsWith(`.${e.hostname}`))},doe=function(){var e=f(function*(e,t){if(!e.registration_endpoint)throw Error(FA.DynamicRegistrationNotSupported);var n=[BA.AuthorizationCode,BA.RefreshToken];if(n.some(t=>!e.grant_types_supported.includes(t)))throw Error(FA.DynamicRegistrationNotSupported);e.grant_types_supported.includes(BA.DeviceAuthorization)&&n.push(BA.DeviceAuthorization);var r=new URL(t.clientUri),i={client_name:t.clientName,client_uri:t.clientUri,response_types:[`code`],grant_types:n,redirect_uris:t.redirectUris,id_token_signed_response_alg:`RS256`,token_endpoint_auth_method:`none`,application_type:t.applicationType,contacts:t.contacts,logo_uri:VA(r,t.logoUri)?t.logoUri:void 0,policy_uri:VA(r,t.policyUri)?t.policyUri:void 0,tos_uri:VA(r,t.tosUri)?t.tosUri:void 0},a={Accept:`application/json`,"Content-Type":`application/json`};try{var o=yield fetch(e.registration_endpoint,{method:F.Post,headers:a,body:JSON.stringify(i)});if(o.status>=400)throw Error(FA.DynamicRegistrationFailed);var s=(yield o.json()).client_id;if(!s||typeof s!=`string`)throw Error(FA.DynamicRegistrationInvalid);return s}catch(e){throw Object.values(FA).includes(e.message)?e:(N.error(`Dynamic registration request failed`,e),Error(FA.DynamicRegistrationFailed))}});return function(t,n){return e.apply(this,arguments)}}();function foe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function HA(e){for(var t=1;t`openid urn:matrix:org.matrix.msc2967.client:api:* urn:matrix:org.matrix.msc2967.client:device:${e??wO(10)}`,poe=function(){var e=f(function*(e){return globalThis.crypto.subtle?SO(yield Yk(e)):(N.warn(`A secure context is required to generate code challenge. Using plain text code challenge`),e)});return function(t){return e.apply(this,arguments)}}(),moe=e=>{var t=e.redirectUri;return{scope:UA(),redirectUri:t,state:wO(8),nonce:wO(8),codeVerifier:wO(64)}},hoe=function(){var e=f(function*(e,t,n){var r=n.scope,i=n.redirectUri,a=n.state,o=n.nonce,s=n.codeVerifier,c=new URL(e);return c.searchParams.append(`response_mode`,`query`),c.searchParams.append(`response_type`,`code`),c.searchParams.append(`redirect_uri`,i),c.searchParams.append(`client_id`,t),c.searchParams.append(`state`,a),c.searchParams.append(`scope`,r),c.searchParams.append(`nonce`,o),c.searchParams.append(`code_challenge_method`,`S256`),c.searchParams.append(`code_challenge`,yield poe(s)),c.toString()});return function(t,n,r){return e.apply(this,arguments)}}(),goe=function(){var e=f(function*(e){var t=e.metadata,n=e.redirectUri,r=e.clientId,i=e.homeserverUrl,a=e.identityServerUrl,o=e.nonce,s=e.prompt,c=e.urlState,l=e.loginHint,u=e.responseMode,d=u===void 0?`query`:u,f=UA(),p=new PA(HA(HA({},t),{},{client_id:r,redirect_uri:n,authority:t.issuer,response_mode:d,response_type:`code`,scope:f,stateStore:new kA({prefix:`mx_oidc_`,store:window.sessionStorage})})),m={homeserverUrl:i,nonce:o,identityServerUrl:a};return(yield p.createSigninRequest({state:m,nonce:o,prompt:s,url_state:c,login_hint:l})).url});return function(t){return e.apply(this,arguments)}}(),_oe=e=>({id_token:e.id_token,scope:e.scope,expires_at:e.expires_at,refresh_token:e.refresh_token,access_token:e.access_token,token_type:`Bearer`}),voe=function(){var e=f(function*(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:`query`,r=new URL(window.location.origin),i=new URLSearchParams({code:e,state:t});n===`query`?r.search=i.toString():r.hash=`#${i.toString()}`,yA.setLogger(N);try{var a=new NA(i),o=new kA({prefix:`mx_oidc_`,store:window.sessionStorage}),s=yield o.get(a.state);if(!s)throw Error(FA.MissingOrInvalidStoredState);var c=new PA(HA(HA({},yield MA.fromStorageString(s)),{},{stateStore:o})),l=yield c.processSigninResponse(r.href),u=l.userState;soe(u),loe(l),l.id_token&&ooe(l.id_token,c.settings.authority,c.settings.client_id,u.nonce);var d=_oe(l);return{oidcClientSettings:{clientId:c.settings.client_id,issuer:c.settings.authority},tokenResponse:d,homeserverUrl:u.homeserverUrl,identityServerUrl:u.identityServerUrl,idTokenClaims:l.profile}}catch(e){N.error(`Oidc login failed`,e);var f=e.message;throw Object.values(FA).includes(f)?e:Error(FA.CodeExchangeFailed)}});return function(t,n){return e.apply(this,arguments)}}(),yoe=function(){var e=f(function*(e){var t=e.clientId,n=e.scope,r=e.metadata,i=new URLSearchParams({client_id:t,scope:n}).toString(),a=r.device_authorization_endpoint;if(!a)throw Error(`No device_authorization_endpoint given`);return yield(yield fetch(a,{method:F.Post,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:i})).json()});return function(t){return e.apply(this,arguments)}}(),boe=function(){var e=f(function*(e){var t=e.session,n=e.metadata,r=e.clientId,i=(t.interval??5)*1e3,a=Date.now()+t.expires_in*1e3;do{var o=new URLSearchParams({device_code:t.device_code,grant_type:BA.DeviceAuthorization,client_id:r}).toString(),s=yield fetch(n.token_endpoint,{method:F.Post,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:o});if(s.ok)return yield s.json();var c=yield s.json();switch(c.error){case`authorization_pending`:break;case`slow_down`:i+=5e3;break;case`access_denied`:case`expired_token`:return c}yield nE(i)}while(Date.now()0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Eoe(t,n),t in Doe)return;Doe[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Toe,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},Ooe=[`server`,`limit`,`since`];function koe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function qA(e){for(var t=1;t{this.isInitialSyncComplete()&&(ik()&&(this.callEventHandler.start(),this.groupCallEventHandler.start()),this.off(L.Sync,this.startCallEventHandler))}),g(this,`startMatrixRTC`,()=>{this.isInitialSyncComplete()&&(this.matrixRTC.start(),this.off(L.Sync,this.startMatrixRTC))}),g(this,`fixupRoomNotifications`,()=>{if(this.isInitialSyncComplete()){for(var e of(this.getRooms()??[]).filter(e=>e.getUnreadNotificationCount(nO.Total)>0)){var t=this.getSafeUserId();e.fixupNotifications(t)}this.off(L.Sync,this.fixupRoomNotifications)}}),this.logger=e.logger??N,e.baseUrl=tE(e.baseUrl),e.idBaseUrl=tE(e.idBaseUrl),this.baseUrl=e.baseUrl,this.idBaseUrl=e.idBaseUrl,this.identityServer=e.identityServer,this.usingExternalCrypto=e.usingExternalCrypto??!1,this.store=e.store||new $ne,this.deviceId=e.deviceId||null,this.sessionId=wO(10);var n=e.userId||null;this.credentials={userId:n},this.http=new Ine(this,{fetchFn:e.fetchFn,baseUrl:e.baseUrl,idBaseUrl:e.idBaseUrl,accessToken:e.accessToken,refreshToken:e.refreshToken,tokenRefreshFunction:e.tokenRefreshFunction,prefix:GD.V3,onlyData:!0,extraParams:e.queryParams,localTimeoutMs:e.localTimeoutMs,useAuthorizationHeader:e.useAuthorizationHeader,logger:this.logger}),e.pickleKey&&(this.legacyPickleKey=e.pickleKey),this.useLivekitForGroupCalls=!!e.useLivekitForGroupCalls,this.scheduler=e.scheduler,this.scheduler&&this.scheduler.setProcessFunction(function(){var e=f(function*(e){var n=t.getRoom(e.getRoomId());e.status!==fD.SENDING&&t.updatePendingEventStatus(n,e,fD.SENDING);var r=yield t.sendEventHttpRequest(e);return n&&n.updatePendingEvent(e,fD.SENT,r.event_id),r});return function(t){return e.apply(this,arguments)}}()),this.disableVoip=e.disableVoip??!1,!this.disableVoip&&ik()&&(this.callEventHandler=new pre(this),this.groupCallEventHandler=new mre(this),this.canSupportVoip=!0,this.on(L.Sync,this.startCallEventHandler)),this.matrixRTC=new kae(this.logger,this),this.serverCapabilitiesService=new Rne(this.logger,this.http),this.retentionPolicyService=new woe(this.logger,this.http),this._unstable_shouldApplyMessageRetention=e.unstableMSC1763Retention??!1,this.on(L.Sync,this.fixupRoomNotifications),this.timelineSupport=!!e.timelineSupport,this.legacyCryptoStore=e.cryptoStore,this.verificationMethods=e.verificationMethods,this.cryptoCallbacks=e.cryptoCallbacks||{},this.enableEncryptedStateEvents=e.enableEncryptedStateEvents??!1,this.forceTURN=e.forceTURN||!1,this.iceCandidatePoolSize=e.iceCandidatePoolSize===void 0?0:e.iceCandidatePoolSize,this.supportsCallTransfer=e.supportsCallTransfer||!1,this.fallbackICEServerAllowed=e.fallbackICEServerAllowed||!1,this.isVoipWithNoMediaAllowed=e.isVoipWithNoMediaAllowed||!1,e.useE2eForGroupCall!==void 0&&(this.useE2eForGroupCall=e.useE2eForGroupCall),this.livekitServiceURL=e.livekitServiceURL,this.roomNameGenerator=e.roomNameGenerator,this.toDeviceMessageQueue=new Eie(this,this.logger),this.on(uj.Decrypted,e=>{Hoe(this,e)}),this.ignoredInvites=new kie(this),this._secretStorage=new eae(this,e.cryptoCallbacks??{}),this.setMaxListeners(0)}set store(e){this._store=e,this._store.setUserCreator(e=>iD.createUser(e,this))}get store(){return this._store}startClient(e){var t=this;return f(function*(){if(!t.clientRunning){t.clientRunning=!0,t.on(L.Sync,t.startMatrixRTC);var n=t.getUserId();n&&t.store.storeUser(new iD(n)),t.supportsVoip()&&(t.checkTurnServersIntervalID=setInterval(()=>{t.checkTurnServers()},joe),t.checkTurnServers()),t.syncApi&&(t.logger.error(`Still have sync object whilst not running: stopping old one`),t.syncApi.stop());try{yield t.getVersions();var r=yield t.doesServerSupportThread(),i=r.threads,a=r.list,o=r.fwdPagination;rj.setServerSideSupport(i),rj.setServerSideListSupport(a),rj.setServerSideFwdPaginationSupport(o)}catch(e){t.logger.error(`Can't fetch server versions, continuing to initialise sync, this will be retried later`,e)}if(t.clientOpts=e??{},t.clientOpts.slidingSync?t.syncApi=new xie(t.clientOpts.slidingSync,t,t.clientOpts,t.buildSyncApiOptions()):t.syncApi=new mO(t,t.clientOpts,t.buildSyncApiOptions()),t.syncApi.sync().catch(e=>t.logger.info(`Sync startup aborted with an error:`,e)),t.clientOpts.clientWellKnownPollPeriod!==void 0&&(t.clientWellKnownIntervalID=setInterval(()=>{t.fetchClientWellKnown()},1e3*t.clientOpts.clientWellKnownPollPeriod),t.fetchClientWellKnown()),t.toDeviceMessageQueue.start(),t.serverCapabilitiesService.start(),t._unstable_shouldApplyMessageRetention){var s;(s=t.retentionPolicyService)==null||s.start()}}})()}buildSyncApiOptions(){return{cryptoCallbacks:this.cryptoBackend,canResetEntireTimeline:e=>this.canResetTimelineCallback?this.canResetTimelineCallback(e):!1,logger:this.logger.getChild(`sync`)}}stopClient(){var e,t,n,r,i;(e=this.cryptoBackend)==null||e.stop(),this.off(L.Sync,this.startMatrixRTC),this.clientRunning&&(this.logger.debug(`stopping MatrixClient`),this.clientRunning=!1,(t=this.syncApi)==null||t.stop(),this.syncApi=void 0,(n=this.peekSync)==null||n.stopPeeking(),(r=this.callEventHandler)==null||r.stop(),(i=this.groupCallEventHandler)==null||i.stop(),this.callEventHandler=void 0,this.groupCallEventHandler=void 0,globalThis.clearInterval(this.checkTurnServersIntervalID),this.checkTurnServersIntervalID=void 0,this.clientWellKnownIntervalID!==void 0&&globalThis.clearInterval(this.clientWellKnownIntervalID),this.toDeviceMessageQueue.stop(),this.matrixRTC.stop(),this.serverCapabilitiesService.stop())}clearStores(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.clientRunning)throw Error(`Cannot clear stores while client is running`);var n=[];n.push(this.store.deleteAllData()),this.legacyCryptoStore&&n.push(this.legacyCryptoStore.deleteAllData());var r=function(){var n=f(function*(){var n;try{if(n=globalThis.indexedDB,!n)return}catch{return}var r=function*(t){yield new Promise((r,i)=>{e.logger.info(`Removing IndexedDB instance ${t}`);var a=n.deleteDatabase(t);a.onsuccess=n=>{e.logger.info(`Removed IndexedDB instance ${t}`),r(0)},a.onerror=n=>{e.logger.warn(`Failed to remove IndexedDB instance ${t}:`,n),r(0)},a.onblocked=n=>{e.logger.info(`cannot yet remove IndexedDB instance ${t}`)}})};for(var i of[`${(a=t.cryptoDatabasePrefix)??Rk}::matrix-sdk-crypto`,`${(o=t.cryptoDatabasePrefix)??Rk}::matrix-sdk-crypto-meta`]){var a,o;yield*r(i)}});return function(){return n.apply(this,arguments)}}();return n.push(r()),Promise.all(n).then()}getUserId(){return this.credentials?.userId??null}getSafeUserId(){var e=this.getUserId();if(!e)throw Error(`Expected logged in user but found none.`);return e}getDomain(){var e;return(e=this.credentials)!=null&&e.userId?this.credentials.userId.replace(/^.*?:/,``):null}getUserIdLocalpart(){var e;return((e=this.credentials)==null||(e=e.userId)==null?void 0:e.split(`:`)[0].substring(1))??null}getDeviceId(){return this.deviceId}getSessionId(){return this.sessionId}supportsVoip(){return!this.disableVoip&&this.canSupportVoip}getMediaHandler(){return this.mediaHandler}setForceTURN(e){this.forceTURN=e}setSupportsCallTransfer(e){this.supportsCallTransfer=e}getUseE2eForGroupCall(){return this.useE2eForGroupCall}createCall(e){return ak(this,e)}createGroupCall(e,t,n,r,i,a){var o=this;return f(function*(){if(o.getGroupCallForRoom(e))throw Error(`${e} already has an existing group call`);var s=o.getRoom(e);if(!s)throw Error(`Cannot find room ${e}`);return new KO(o,s,t,n,r,void 0,i||o.isVoipWithNoMediaAllowed,a,o.isVoipWithNoMediaAllowed,o.useLivekitForGroupCalls,o.livekitServiceURL).create()})()}getLivekitServiceURL(){return this.livekitServiceURL}setLivekitServiceURL(e){this.livekitServiceURL=e}waitUntilRoomReadyForGroupCalls(e){return this.groupCallEventHandler.waitUntilRoomReadyForGroupCalls(e)}getGroupCallForRoom(e){return this.groupCallEventHandler.groupCalls.get(e)||null}getSyncState(){return this.syncApi?.getSyncState()??null}getSyncStateData(){return this.syncApi?this.syncApi.getSyncStateData():null}isInitialSyncComplete(){var e=this.getSyncState();return e?e===lO.Prepared||e===lO.Syncing:!1}isGuest(){return this.isGuestAccount}setGuest(e){this.isGuestAccount=e}getScheduler(){return this.scheduler}retryImmediately(){return this.toDeviceMessageQueue.sendQueue(),this.syncApi?.retryImmediately()??!1}getNotifTimelineSet(){return this.notifTimelineSet}setNotifTimelineSet(e){this.notifTimelineSet=e}getCapabilities(){var e=this;return f(function*(){return e.serverCapabilitiesService.getCached()||e.serverCapabilitiesService.fetch()})()}getCachedCapabilities(){return this.serverCapabilitiesService.getCached()}fetchCapabilities(){return this.serverCapabilitiesService.fetch()}initRustCrypto(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:{};if(t.cryptoBackend){t.logger.warn(`Attempt to re-initialise e2e encryption on MatrixClient`);return}var r=t.getUserId();if(r===null)throw Error(`Cannot enable encryption on MatrixClient with unknown userId: ensure userId is passed in createClient().`);var i=t.getDeviceId();if(i===null)throw Error(`Cannot enable encryption on MatrixClient with unknown deviceId: ensure deviceId is passed in createClient().`);t.logger.debug(`Downloading Rust crypto library`);var a=yield(yield KA(()=>import(`./rust-crypto-Du_AIXzO.js`),__vite__mapDeps([0,1]),import.meta.url)).initRustCrypto({logger:t.logger,http:t.http,userId:r,deviceId:i,secretStorage:t.secretStorage,cryptoCallbacks:t.cryptoCallbacks,storePrefix:n.useIndexedDB===!1?null:n.cryptoDatabasePrefix??Rk,storeKey:n.storageKey,storePassphrase:n.storagePassword,legacyCryptoStore:t.legacyCryptoStore,legacyPickleKey:t.legacyPickleKey??`DEFAULT_KEY`,legacyMigrationProgressListener:(e,n)=>{t.emit(Vk.LegacyCryptoStoreMigrationProgress,e,n)},enableEncryptedStateEvents:t.enableEncryptedStateEvents});a.setSupportedVerificationMethods(t.verificationMethods),t.cryptoBackend=a,t.on(BE.Membership,a.onRoomMembership.bind(a)),t.on(pj.Events,a.onRoomStateEvent.bind(a)),t.on(L.Event,e=>{a.onLiveEventFromSync(e)}),t.reEmitter.reEmit(a,[Vk.VerificationRequestReceived,Vk.UserTrustStatusChanged,Vk.KeyBackupStatus,Vk.KeyBackupSessionsRemaining,Vk.KeyBackupFailed,Vk.KeyBackupDecryptionKeyCached,Vk.KeysChanged,Vk.DevicesUpdated,Vk.WillUpdateDevices,Vk.DehydratedDeviceCreated,Vk.DehydratedDeviceUploaded,Vk.RehydrationStarted,Vk.RehydrationProgress,Vk.RehydrationCompleted,Vk.RehydrationError,Vk.DehydrationKeyCached,Vk.DehydratedDeviceRotationError])})()}get secretStorage(){return this._secretStorage}getCrypto(){return this.cryptoBackend}isRoomEncrypted(e){var t=this.getRoom(e);return t?t.hasEncryptionStateEvent():!1}isKeyBackupKeyStored(){return Promise.resolve(this.secretStorage.isStored(`m.megolm_backup.v1`))}makeKeyBackupPath(e,t,n){return{path:t===void 0?e===void 0?`/room_keys/keys`:M(`/room_keys/keys/$roomId`,{$roomId:e}):M(`/room_keys/keys/$roomId/$sessionId`,{$roomId:e,$sessionId:t}),queryData:n===void 0?void 0:{version:n}}}deleteKeysFromBackup(e,t,n){var r=this;return f(function*(){var i=r.makeKeyBackupPath(e,t,n);yield r.http.authedRequest(F.Delete,i.path,i.queryData,void 0,{prefix:GD.V3})})()}getMediaConfig(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=e?`/media/config`:`/config`;return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:e?GD.V1:qD.V3})}getRoom(e){return e?this.store.getRoom(e):null}getRooms(){return this.store.getRooms()}getVisibleRooms(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.store.getRooms(),n=new Set(t);for(var r of n)for(var i of this.findPredecessorRooms(r,!0,e))n.delete(i);return Array.from(n)}getUser(e){return this.store.getUser(e)}getUsers(){return this.store.getUsers()}setAccountData(e,t){var n=this;return f(function*(){if(!n.clientRunning)return n.logger.warn("Calling `setAccountData` before the client is started: `getAccountData` may return inconsistent results."),yield VD(5,()=>n.setAccountDataRaw(e,t));var r=n.store.getAccountData(e);if(r&&ZT(r.event.content,t))return{};var i=Promise.withResolvers();function a(t){t.getType()===e&&i.resolve()}n.addListener(L.AccountData,a);try{var o=yield VD(5,()=>n.setAccountDataRaw(e,t));return yield i.promise,o}finally{n.removeListener(L.AccountData,a)}})()}setAccountDataRaw(e,t){var n=M(`/user/$userId/account_data/$type`,{$userId:this.credentials.userId,$type:e});return this.http.authedRequest(F.Put,n,void 0,t)}getAccountData(e){return this.store.getAccountData(e)}getAccountDataFromServer(e){var t=this;return f(function*(){if(t.isInitialSyncComplete()){var n=t.store.getAccountData(e);return n?n.getContent():null}var r=M(`/user/$userId/account_data/$type`,{$userId:t.credentials.userId,$type:e});try{return yield t.http.authedRequest(F.Get,r)}catch(e){if(e.data?.errcode===`M_NOT_FOUND`)return null;throw e}})()}deleteAccountData(e){var t=this;return f(function*(){var n=t.canSupport.get(oO.AccountDataDeletion);if(n===aO.Unsupported){yield t.setAccountData(e,{});return}var r=M(`/user/$userId/account_data/$type`,{$userId:t.getSafeUserId(),$type:e}),i=n===aO.Unstable?{prefix:`/_matrix/client/unstable/org.matrix.msc3391`}:void 0;return yield t.http.authedRequest(F.Delete,r,void 0,void 0,i)})()}getIgnoredUsers(){var e=this.getAccountData(P.IgnoredUserList);return e!=null&&e.getContent().ignored_users?Object.keys(e.getContent().ignored_users):[]}setIgnoredUsers(e){var t={ignored_users:{}};return e.forEach(e=>{t.ignored_users[e]={}}),this.setAccountData(P.IgnoredUserList,t)}isUserIgnored(e){return this.getIgnoredUsers().includes(e)}joinRoom(e){var t=arguments,n=this;return f(function*(){var r,i=t.length>1&&t[1]!==void 0?t[1]:{},a=n.getRoom(e),o=a?.getMember(n.getSafeUserId()),s=o?.membership,c=s==zE.Invite?(o==null||(r=o.events.member)==null?void 0:r.getSender())??null:null;if(n.logger.debug(`joinRoom[${e}]: preJoinMembership=${s}, inviter=${c}, opts=${JSON.stringify(i)}`),s==zE.Join)return a;var l=Promise.resolve();if(i.inviteSignUrl){var u=new URL(i.inviteSignUrl);u.searchParams.set(`mxid`,n.credentials.userId),l=n.http.requestOtherUrl(F.Post,u)}var d={};i.viaServers&&(d.via=d.server_name=i.viaServers.slice(0,3));var f={},p=yield l;p&&(f.third_party_signed=p);var m=M(`/join/$roomid`,{$roomid:e}),h=(yield n.http.authedRequest(F.Post,m,d,f)).room_id;c&&n.cryptoBackend&&(yield n.cryptoBackend.markRoomAsPendingKeyBundle(h,c),yield n.cryptoBackend.maybeAcceptKeyBundle(h,c));var g=n.getRoom(h);return g!=null&&g.hasMembershipState(n.credentials.userId,zE.Join)?g:new mO(n,n.clientOpts,n.buildSyncApiOptions()).createRoom(h)})()}knockRoom(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=this.getRoom(e);if(n!=null&&n.hasMembershipState(this.credentials.userId,zE.Knock))return Promise.resolve({room_id:n.roomId});var r=M(`/knock/$roomIdOrAlias`,{$roomIdOrAlias:e}),i={};if(t.viaServers){var a=Array.isArray(t.viaServers)?t.viaServers.slice(0,3):[t.viaServers];i.server_name=a,i.via=a}var o={};return t.reason&&(o.reason=t.reason),this.http.authedRequest(F.Post,r,i,o)}resendEvent(e,t){return this.toDeviceMessageQueue.sendQueue(),this.updatePendingEventStatus(t,e,fD.SENDING),this.encryptAndSendEvent(t,e)}cancelPendingEvent(e){if(![fD.QUEUED,fD.NOT_SENT,fD.ENCRYPTING].includes(e.status))throw Error(`cannot cancel an event with status `+e.status);e.status===fD.ENCRYPTING?this.eventsBeingEncrypted.delete(e.getId()):this.scheduler&&e.status===fD.QUEUED&&this.scheduler.removeEventFromQueue(e);var t=this.getRoom(e.getRoomId());this.updatePendingEventStatus(t,e,fD.CANCELLED)}setRoomName(e,t){return this.sendStateEvent(e,P.RoomName,{name:t})}setRoomTopic(e,t,n){var r=Rte(t,n);return this.sendStateEvent(e,P.RoomTopic,r)}getRoomTags(e){var t=M(`/user/$userId/rooms/$roomId/tags`,{$userId:this.credentials.userId,$roomId:e});return this.http.authedRequest(F.Get,t)}setRoomTag(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=M(`/user/$userId/rooms/$roomId/tags/$tag`,{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(F.Put,r,void 0,n)}deleteRoomTag(e,t){var n=M(`/user/$userId/rooms/$roomId/tags/$tag`,{$userId:this.credentials.userId,$roomId:e,$tag:t});return this.http.authedRequest(F.Delete,n)}setRoomAccountData(e,t,n){var r=M(`/user/$userId/rooms/$roomId/account_data/$type`,{$userId:this.credentials.userId,$roomId:e,$type:t});return this.http.authedRequest(F.Put,r,void 0,n)}setPowerLevel(e,t,n){var r=this;return f(function*(){var i,a;if(r.clientRunning&&r.isInitialSyncComplete()){var o;a=(o=r.getRoom(e))==null||(o=o.currentState)==null||(o=o.getStateEvents(P.RoomPowerLevels,``))==null?void 0:o.getContent()}if(!a)try{a=yield r.getStateEvent(e,P.RoomPowerLevels,``)}catch(e){if(e instanceof PD&&e.errcode===`M_NOT_FOUND`)a={};else throw e}a=XT(a),(i=a)!=null&&i.users||(a.users={});for(var s of Array.isArray(t)?t:[t])n==null?delete a.users[s]:a.users[s]=n;return r.sendStateEvent(e,P.RoomPowerLevels,a,``)})()}unstable_createLiveBeacon(e,t){var n=this;return f(function*(){return n.unstable_setLiveBeacon(e,t)})()}unstable_setLiveBeacon(e,t){var n=this;return f(function*(){return n.sendStateEvent(e,jk.name,t,n.getUserId())})()}sendEvent(e,t,n,r,i){var a,o,s,c;return!(t!=null&&t.startsWith(XA))&&t!==null?(c=r,s=n,o=t,a=null):(c=i,s=r,o=n,a=t),this.addThreadRelationIfNeeded(s,a,e),this.sendCompleteEvent({roomId:e,threadId:a,eventObject:{type:o,content:s},txnId:c})}addThreadRelationIfNeeded(e,t,n){var r;if(t&&!((r=e[`m.relates_to`])!=null&&r.rel_type)){var i,a=!!((i=e[`m.relates_to`])!=null&&i[`m.in_reply_to`]);e[`m.relates_to`]=qA(qA({},e[`m.relates_to`]),{},{rel_type:oj.name,event_id:t,is_falling_back:!a});var o=this.getRoom(n)?.getThread(t);o&&!a&&(e[`m.relates_to`][`m.in_reply_to`]={event_id:o.lastReply(e=>e.isRelation(oj.name)&&!e.status)?.getId()??t})}}sendCompleteEvent(e){var t=e.roomId,n=e.threadId,r=e.eventObject,i=e.delayOpts,a=e.queryDict,o=e.txnId;o||=this.makeTxnId();var s=new dj(Object.assign(r,{event_id:`~`+t+`:`+o,user_id:this.credentials.userId,sender:this.credentials.userId,room_id:t,origin_server_ts:new Date().getTime()})),c=this.getRoom(t),l=n?c?.getThread(n):void 0;l&&s.setThread(l),i||(this.reEmitter.reEmit(s,[uj.Replaced,uj.VisibilityChange]),c?.reEmitter.reEmit(s,[uj.BeforeRedaction]));var u=s.getAssociatedId();if(u!=null&&u.startsWith(`~`)){var d=c?.getPendingEvents().find(e=>e.getId()===u);d?.once(uj.LocalEventIdReplaced,()=>{s.updateAssociatedId(d.getId())})}var f=s.getType();return this.logger.debug(`sendEvent of type ${f} in ${t} with txnId ${o}${i?` (delayed event)`:``}${a?` query params: `+JSON.stringify(a):``}`),s.setTxnId(o),s.setStatus(fD.SENDING),i?this.encryptAndSendEvent(c,s,i,a):(c?.addPendingEvent(s,o),s.status===fD.NOT_SENT?Promise.reject(Error(`Event blocked by other events not yet sent`)):this.encryptAndSendEvent(c,s,a))}encryptAndSendEvent(e,t,n,r){var i=this;return f(function*(){var a=r;if(n&&vk(n))return i.sendEventHttpRequest(t,n,a);a||=n;try{var o;i.eventsBeingEncrypted.add(t.getId());try{yield i.encryptEventIfNeeded(t,e??void 0)}finally{o=!i.eventsBeingEncrypted.delete(t.getId())}if(o)return{};t.status===fD.ENCRYPTING&&i.updatePendingEventStatus(e,t,fD.SENDING);var s=null;return i.scheduler&&(s=i.scheduler.queueEvent(t),s&&i.scheduler.getQueueForEvent(t).length>1&&i.updatePendingEventStatus(e,t,fD.QUEUED)),s||(s=i.sendEventHttpRequest(t,a),e&&(s=s.then(n=>(e.updatePendingEvent(t,fD.SENT,n.event_id),n)))),yield s}catch(n){i.logger.error(`Error sending event`,n);try{t.error=n,i.updatePendingEventStatus(e,t,fD.NOT_SENT)}catch(e){i.logger.error(`Exception in error handler!`,e)}throw n instanceof PD&&(n.event=t),n}})()}encryptEventIfNeeded(e,t){var n=this;return f(function*(){if(t&&(yield n.shouldEncryptEventForRoom(e,t))&&!(!n.cryptoBackend&&n.usingExternalCrypto)){if(!n.cryptoBackend)throw Error(`This room is configured to use encryption, but your client does not support encryption.`);n.updatePendingEventStatus(t,e,fD.ENCRYPTING),yield n.cryptoBackend.encryptEvent(e,t)}})()}shouldEncryptEventForRoom(e,t){var n=this;return f(function*(){return e.isEncrypted()||e.getType()===P.Reaction||e.isRedaction()?!1:!!(t.hasEncryptionStateEvent()||(yield n.cryptoBackend?.isEncryptionEnabledInRoom(t.roomId)))})()}getEncryptedIfNeededEventType(e,t){var n;return t===P.Reaction?t:(n=this.getRoom(e))!=null&&n.hasEncryptionStateEvent()?P.RoomMessageEncrypted:t}updatePendingEventStatus(e,t,n){e?e.updatePendingEvent(t,n):t.setStatus(n)}sendEventHttpRequest(e,t,n){var r=e.getTxnId();r||(r=this.makeTxnId(),e.setTxnId(r));var i={$roomId:e.getRoomId(),$eventType:e.getWireType(),$stateKey:e.getStateKey(),$txnId:r},a;if(e.isState()){var o=`/rooms/$roomId/state/$eventType`;e.getStateKey()&&e.getStateKey().length>0&&(o=`/rooms/$roomId/state/$eventType/$stateKey`),a=M(o,i)}else a=e.isRedaction()&&e.event.redacts?M(`/rooms/$roomId/redact/$redactsEventId/$txnId`,qA({$redactsEventId:e.event.redacts},i)):M(`/rooms/$roomId/send/$eventType/$txnId`,i);var s=t&&vk(t)?t:void 0,c=s?n:t,l=e.getWireContent();return s?this.http.authedRequest(F.Put,a,qA(qA({},Voe(s)),c),l):this.http.authedRequest(F.Put,a,c,l).then(t=>(this.logger.debug(`Event sent to ${e.getRoomId()} with event id ${t.event_id}`),t))}redactEvent(e,t,n,r,i){var a;(a=n)!=null&&a.startsWith(XA)||(i=r,r=n,n=t,t=null);var o={reason:i?.reason};if(i?.with_rel_types!==void 0){if(this.canSupport.get(oO.RelationBasedRedactions)===aO.Unsupported)throw Error(`Server does not support relation based redactions roomId ${e} eventId ${n} txnId: ${r} threadId ${t}`);var s=this.canSupport.get(oO.RelationBasedRedactions)===aO.Stable?FE.stable:FE.unstable;o[s]=i.with_rel_types}return this.sendCompleteEvent({roomId:e,threadId:t,eventObject:{type:P.RoomRedaction,content:o,redacts:n},txnId:r})}sendMessage(e,t,n,r){typeof t!=`string`&&t!==null&&(r=n,n=t,t=null);var i=P.RoomMessage,a=n;return this.sendEvent(e,t,i,a,r)}sendTextMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=Mte(n);return this.sendMessage(e,t,a,r)}sendNotice(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=Nte(n);return this.sendMessage(e,t,a,r)}sendEmoteMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=Pte(n);return this.sendMessage(e,t,a,r)}sendImageMessage(e,t,n,r){var i,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`Image`;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(a=r||`Image`,r=n,n=t,t=null);var o={msgtype:DE.Image,url:n,info:r,body:a};return this.sendMessage(e,t,o)}sendStickerMessage(e,t,n,r){var i,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:`Sticker`;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(a=r||`Sticker`,r=n,n=t,t=null);var o={url:n,info:r,body:a};return this.sendEvent(e,t,P.Sticker,o)}sendHtmlMessage(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=kte(n,r);return this.sendMessage(e,t,a)}sendHtmlNotice(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=Ate(n,r);return this.sendMessage(e,t,a)}sendHtmlEmote(e,t,n,r){var i;!((i=t)!=null&&i.startsWith(XA))&&t!==null&&(r=n,n=t,t=null);var a=jte(n,r);return this.sendMessage(e,t,a)}_unstable_sendDelayedEvent(e,t,n,r,i,a){var o=this;return f(function*(){if(!(yield o.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`sendDelayedEvent`);return o.addThreadRelationIfNeeded(i,n,e),o.sendCompleteEvent({roomId:e,threadId:n,eventObject:{type:r,content:i},delayOpts:t,txnId:a})})()}_unstable_sendStickyDelayedEvent(e,t,n,r,i,a,o){var s=this;return f(function*(){if(!(yield s.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`getDelayedEvents`);if(!(yield s.doesServerSupportUnstableFeature(`org.matrix.msc4354`)))throw new rA(`Server does not support the sticky events`,`sendStickyEvent`);return s.addThreadRelationIfNeeded(a,r,e),s.sendCompleteEvent({roomId:e,threadId:r,eventObject:{type:i,content:a},queryDict:{"org.matrix.msc4354.sticky_duration_ms":t},delayOpts:n,txnId:o})})()}_unstable_sendDelayedStateEvent(e,t,n,r){var i=arguments,a=this;return f(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:``,s=i.length>5&&i[5]!==void 0?i[5]:{};if(!(yield a.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`sendDelayedStateEvent`);var c={$roomId:e,$eventType:n,$stateKey:o},l=M(`/rooms/$roomId/state/$eventType`,c);return o!==void 0&&(l=M(l+`/$stateKey`,c)),a.http.authedRequest(F.Put,l,Voe(t),r,s)})()}_unstable_sendStickyEvent(e,t,n,r,i,a){var o=this;return f(function*(){if(!(yield o.doesServerSupportUnstableFeature(`org.matrix.msc4354`)))throw new rA(`Server does not support the sticky events`,`sendStickyEvent`);return o.addThreadRelationIfNeeded(i,n,e),o.sendCompleteEvent({roomId:e,threadId:n,eventObject:{type:r,content:i},queryDict:{"org.matrix.msc4354.sticky_duration_ms":t},txnId:a})})()}_unstable_getDelayedEvents(e,t,n){var r=this;return f(function*(){if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`getDelayedEvents`);var i={from:n,status:e,delay_id:t};return yield r.http.authedRequest(F.Get,`/delayed_events`,i,void 0,{prefix:`${GD.Unstable}/${YA}`})})()}_unstable_updateDelayedEvent(e,t){var n=arguments,r=this;return f(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{};if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`updateDelayedEvent`);return yield r.updateScheduledDelayedEventWithActionInBody(e,t,i)})()}_unstable_cancelScheduledDelayedEvent(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,yk.Cancel,r)})()}_unstable_restartScheduledDelayedEvent(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,yk.Restart,r)})()}_unstable_sendScheduledDelayedEvent(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};return yield n.updateScheduledDelayedEvent(e,yk.Send,r)})()}updateScheduledDelayedEvent(e,t){var n=arguments,r=this;return f(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{};if(!(yield r.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`${t}ScheduledDelayedEvent`);try{var a=M(`/delayed_events/$delayId/$action`,{$delayId:e,$action:t});return yield r.http.authedRequest(F.Post,a,void 0,void 0,qA(qA({},i),{},{prefix:`${GD.Unstable}/${YA}`}))}catch(n){if(n instanceof PD&&n.errcode===`M_UNRECOGNIZED`)return yield r.updateScheduledDelayedEventWithActionInBody(e,t,i);throw n}})()}updateScheduledDelayedEventWithActionInBody(e,t){var n=arguments,r=this;return f(function*(){var i=n.length>2&&n[2]!==void 0?n[2]:{},a=M(`/delayed_events/$delayId`,{$delayId:e}),o={action:t};try{return yield r.http.request(F.Post,a,void 0,o,qA(qA({},i),{},{prefix:`${GD.Unstable}/${YA}`}))}catch(e){if(e instanceof PD&&e.errcode===`M_MISSING_TOKEN`)return yield r.http.authedRequest(F.Post,a,void 0,o,qA(qA({},i),{},{prefix:`${GD.Unstable}/${YA}`}));throw e}})()}sendReceipt(e,t,n){var r=arguments,i=this;return f(function*(){var a=r.length>3&&r[3]!==void 0?r[3]:!1;if(i.isGuest())return Promise.resolve({});var o=M(`/rooms/$roomId/receipt/$receiptType/$eventId`,{$roomId:e.getRoomId(),$receiptType:t,$eventId:e.getId()}),s=!a&&i.supportsThreads()?qA(qA({},n),{},{thread_id:QA(e)}):n,c=i.http.authedRequest(F.Post,o,void 0,s||{}),l=i.getRoom(e.getRoomId());return l&&i.credentials.userId&&l.addLocalEchoReceipt(i.credentials.userId,e,t,a),c})()}sendReadReceipt(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:GT.Read,i=t.length>2&&t[2]!==void 0?t[2]:!1;if(e){var a=e.getId(),o=n.getRoom(e.getRoomId());if(o!=null&&o.hasPendingEvent(a))throw Error(`Cannot set read receipt to a pending event (${a})`);return n.sendReceipt(e,r,{},i)}})()}setRoomReadMarkers(e,t,n,r){var i=this;return f(function*(){var a=i.getRoom(e);if(a!=null&&a.hasPendingEvent(t))throw Error(`Cannot set read marker to a pending event (${t})`);var o;if(n){if(o=n.getId(),a!=null&&a.hasPendingEvent(o))throw Error(`Cannot set read receipt to a pending event (${o})`);a?.addLocalEchoReceipt(i.credentials.userId,n,GT.Read)}var s;if(r){if(s=r.getId(),a!=null&&a.hasPendingEvent(s))throw Error(`Cannot set read receipt to a pending event (${s})`);a?.addLocalEchoReceipt(i.credentials.userId,r,GT.ReadPrivate)}return yield i.setRoomReadMarkersHttpRequest(e,t,o,s)})()}sendRtcDecline(e,t){return this.sendEvent(e,P.RTCDecline,{"m.relates_to":{event_id:t,rel_type:EE.Reference}})}getUrlPreview(e,t){var n=this;return f(function*(){t=Math.floor(t/6e4)*6e4;var r=new URL(e);r.hash=``,e=r.toString();var i=t+`_`+e;if(i in n.urlPreviewCache)return n.urlPreviewCache[i];var a=yield n.isVersionSupported(`v1.11`),o=n.http.authedRequest(F.Get,a?`/media/preview_url`:`/preview_url`,{url:e,ts:t.toString()},void 0,{prefix:a?GD.V1:qD.V3,priority:`low`});return n.urlPreviewCache[i]=o,o})()}sendTyping(e,t,n){if(this.isGuest())return Promise.resolve({});var r=M(`/rooms/$roomId/typing/$userId`,{$roomId:e,$userId:this.getUserId()}),i={typing:t};return t&&(i.timeout=n||2e4),this.http.authedRequest(F.Put,r,void 0,i)}getRoomUpgradeHistory(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=this.getRoom(e);if(!r)return[];var i=this.findPredecessorRooms(r,t,n),a=this.findSuccessorRooms(r,t,n);return[...i,r,...a]}findPredecessorRooms(e,t,n){for(var r=[],i=new Set([e.roomId]),a=e.findPredecessor(n)?.roomId;a!==null;){if(a){if(i.has(a))break;i.add(a)}var o=this.getRoom(a);if(o===null)break;if(t){var s=o.currentState.getStateEvents(P.RoomTombstone,``);if(!s||s.getContent().replacement_room!==e.roomId)break}r.splice(0,0,o),e=o,a=e.findPredecessor(n)?.roomId}return r}findSuccessorRooms(e,t,n){for(var r=[],i=e.currentState.getStateEvents(P.RoomTombstone,``);i;){var a=this.getRoom(i.getContent().replacement_room);if(!a||a.roomId===e.roomId)break;if(t){var o=a.findPredecessor(n)?.roomId;if(!o||o!==e.roomId)break}if(r.push(a),new Set(r.map(e=>e.roomId)).size2&&n[2]!==void 0?n[2]:{};typeof i!=`object`&&(i={reason:i});var a=r.getRoom(e)?.getHistoryVisibility()??Ck.Shared;return[Ck.Invited,Ck.Joined].includes(a)?r.logger.debug(`Not sharing message history as the room history visibility is currently unshared`):yield r.cryptoBackend?.shareRoomHistoryWithUser(e,t),yield r.membershipChange(e,t,zE.Invite,i.reason)})()}inviteByEmail(e,t){return this.inviteByThreePid(e,`email`,t)}inviteByThreePid(e,t,n){var r=this;return f(function*(){var i,a=M(`/rooms/$roomId/invite`,{$roomId:e}),o=r.getIdentityServerUrl(!0);if(!o)return Promise.reject(new PD({error:`No supplied identity server URL`,errcode:`ORG.MATRIX.JSSDK_MISSING_PARAM`}));var s={id_server:o,medium:t,address:n};if((i=r.identityServer)!=null&&i.getAccessToken){var c=yield r.identityServer.getAccessToken();c&&(s.id_access_token=c)}return r.http.authedRequest(F.Post,a,void 0,s)})()}leave(e){return this.membershipChange(e,void 0,zE.Leave)}leaveRoomChain(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this.getRoomUpgradeHistory(e,!0),r=n;if(!t){r=[];for(var i of n)if(r.push(i),i.roomId===e)break}var a={},o=[],s=e=>this.leave(e).then(()=>{delete a[e]}).catch(t=>{a[e]=t});for(var c of r)o.push(s(c.roomId));return Promise.all(o).then(()=>a)}ban(e,t,n){return this.membershipChange(e,t,zE.Ban,n)}forget(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!0,i=M(`/rooms/$room_id/forget`,{$room_id:e}),a=yield n.http.authedRequest(F.Post,i);return r&&(n.store.removeRoom(e),n.emit(L.DeleteRoom,e)),a})()}unban(e,t){var n=M(`/rooms/$roomId/unban`,{$roomId:e}),r={user_id:t};return this.http.authedRequest(F.Post,n,void 0,r)}kick(e,t,n){var r=M(`/rooms/$roomId/kick`,{$roomId:e}),i={user_id:t,reason:n};return this.http.authedRequest(F.Post,r,void 0,i)}membershipChange(e,t,n,r){var i=M(`/rooms/$room_id/$membership`,{$room_id:e,$membership:n});return this.http.authedRequest(F.Post,i,void 0,{user_id:t,reason:r})}getPushActionsForEvent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!e.getPushActions()||t){var n=this.pushProcessor.actionsAndRuleForEvent(e),r=n.actions,i=n.rule;e.setPushDetails(r,i)}return e.getPushActions()}getPushDetailsForEvent(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!e.getPushDetails()||t){var n=this.pushProcessor.actionsAndRuleForEvent(e),r=n.actions,i=n.rule;e.setPushDetails(r,i)}return e.getPushDetails()}setProfileInfo(e,t){var n=M(`/profile/$userId/$info`,{$userId:this.credentials.userId,$info:e});return this.http.authedRequest(F.Put,n,void 0,t)}setDisplayName(e){var t=this;return f(function*(){var n=yield t.setProfileInfo(`displayname`,{displayname:e}),r=t.getUser(t.getUserId());return r&&(r.displayName=e,r.emit(rD.DisplayName,r.events.presence,r)),n})()}setAvatarUrl(e){var t=this;return f(function*(){var n=yield t.setProfileInfo(`avatar_url`,{avatar_url:e}),r=t.getUser(t.getUserId());return r&&(r.avatarUrl=e,r.emit(rD.AvatarUrl,r.events.presence,r)),n})()}mxcUrlToHttp(e,t,n,r,i,a,o){return SE(this.baseUrl,e,t,n,r,i,a,o)}setSyncPresence(e){var t=this;return f(function*(){var n;(n=t.syncApi)==null||n.setPresence(e)})()}setPresence(e){var t=this;return f(function*(){var n=M(`/presence/$userId/status`,{$userId:t.credentials.userId});if([`offline`,`online`,`unavailable`].indexOf(e.presence)===-1)throw Error(`Bad presence value: `+e.presence);yield t.http.authedRequest(F.Put,n,void 0,e)})()}getPresence(e){var t=M(`/presence/$userId/status`,{$userId:e});return this.http.authedRequest(F.Get,t)}scrollback(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:30,n=0,r=this.ongoingScrollbacks[e.roomId]||{};if(r.promise)return r.promise;if(r.errorTs){var i=Date.now()-r.errorTs;n=Math.max(Aoe-i,0)}if(e.oldState.paginationToken===null)return Promise.resolve(e);var a=this.store.scrollback(e,t).length;if(a===t)return Promise.resolve(e);t-=a;var o=new Promise((r,i)=>{nE(n).then(()=>this.createMessagesRequest(e.roomId,e.oldState.paginationToken,t,aD.Backward)).then(t=>{var n=t.chunk.map(this.getEventMapper());if(t.state){var i=t.state.map(this.getEventMapper());e.currentState.setUnknownStateEvents(i)}var a=u(e.partitionThreadedEvents(n),3),o=a[0],s=a[1],c=a[2];this.processAggregatedTimelineEvents(e,o),e.addEventsToTimeline(o,!0,!0,e.getLiveTimeline()),this.processThreadEvents(e,s,!0),c.forEach(t=>e.relations.aggregateChildEvent(t)),e.oldState.paginationToken=t.end??null,t.chunk.length===0&&(e.oldState.paginationToken=null),this.store.storeEvents(e,n,t.end??null,!0),delete this.ongoingScrollbacks[e.roomId],r(e)}).catch(t=>{this.ongoingScrollbacks[e.roomId]={errorTs:Date.now()},i(t)})});return r={promise:o},this.ongoingScrollbacks[e.roomId]=r,o}getEventMapper(e){return oie(this,e||{})}getEventContext(e,t){var n=this;return f(function*(){var r,i=M(`/rooms/$roomId/context/$eventId`,{$roomId:e,$eventId:t}),a={limit:`0`};(r=n.clientOpts)!=null&&r.lazyLoadMembers&&(a.filter=JSON.stringify(vD.LAZY_LOADING_MESSAGES_FILTER));var o=yield n.http.authedRequest(F.Get,i,a);if(o.event)return{start:o.start,end:o.end,event:o.event,events_after:o.events_after??[],events_before:o.events_before??[],state:o.state??[]};throw Error(`'event' not in '/context' result - homeserver too old?`)})()}getEventTimeline(e,t){var n=this;return f(function*(){if(!n.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);if(!(e!=null&&e.room))throw Error(`getEventTimeline only supports room timelines`);if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);if(e.thread&&n.supportsThreads())return(yield n.getThreadTimeline(e,t))??null;var r=yield n.getEventContext(e.room.roomId,t);if(e.getTimelineForEvent(t))return e.getTimelineForEvent(t);var i=n.getEventMapper(),a=i(r.event);if(a.isRelation(oj.name))return n.logger.warn(`Tried loading a regular timeline at the position of a thread event`),null;var o=[...r.events_after.reverse().map(i),a,...r.events_before.map(i)],s=e.getTimelineForEvent(o[0].getId());s?s.getState(oD.BACKWARDS).setUnknownStateEvents(r.state.map(i)):(s=e.addTimeline(),s.initialiseState(r.state.map(i)),s.getState(oD.FORWARDS).paginationToken=r.end??null);var c=u(e.room.partitionThreadedEvents(o),3),l=c[0],d=c[1],f=c[2];return e.addEventsToTimeline(l,!0,!1,s,r.start),n.processThreadEvents(e.room,d,!0),n.processAggregatedTimelineEvents(e.room,l),f.forEach(t=>e.relations.aggregateChildEvent(t)),e.getTimelineForEvent(t)??e.room.findThreadForEvent(a)?.liveTimeline??s})()}getThreadTimeline(e,t){var n=this;return f(function*(){if(!n.supportsThreads())throw Error(`could not get thread timeline: no client support`);if(!e.room)throw Error(`could not get thread timeline: not a room timeline`);if(!e.thread)throw Error(`could not get thread timeline: not a thread timeline`);var r=yield n.getEventContext(e.room.roomId,t),i=n.getEventMapper(),a=i(r.event);if(e.canContain(a)){var o=n.canSupport.get(oO.RelationsRecursion)!==aO.Unsupported;if(rj.hasServerSideSupport)if(rj.hasServerSideFwdPaginationSupport){if(!e.thread)throw Error(`could not get thread timeline: not a thread timeline`);var s=e.thread,c=yield n.fetchRelations(e.room.roomId,s.id,null,null,{dir:aD.Backward,from:r.start,recurse:o||void 0}),l=yield n.fetchRelations(e.room.roomId,s.id,null,null,{dir:aD.Forward,from:r.end,recurse:o||void 0}),u=[...l.chunk.reverse().filter(hA(s.id)).map(i),a,...c.chunk.filter(hA(s.id)).map(i)];for(var d of u)yield e.thread?.processEvent(d);var f=e.getTimelineForEvent(a.getId());if(f?f.getState(oD.BACKWARDS).setUnknownStateEvents(r.state.map(i)):(f=e.addTimeline(),f.initialiseState(r.state.map(i))),e.addEventsToTimeline(u,!0,!1,f,l.next_batch),!c.next_batch){var p=yield n.fetchRoomEvent(e.room.roomId,s.id);e.addEventsToTimeline([i(p)],!0,!1,f,null)}return f.setPaginationToken(c.next_batch??null,aD.Backward),f.setPaginationToken(l.next_batch??null,aD.Forward),n.processAggregatedTimelineEvents(e.room,u),e.getTimelineForEvent(t)??f}else{for(var m=e.thread,h=yield n.fetchRelations(e.room.roomId,m.id,oj.name,null,{dir:aD.Backward,from:r.start,recurse:o||void 0}),g=[],_=r.end;_;){var v=yield n.fetchRelations(e.room.roomId,m.id,oj.name,null,{dir:aD.Forward,from:_,recurse:o||void 0});_=v.next_batch,g.push(...v.chunk)}var y=[...g.reverse().map(i),a,...h.chunk.map(i)];for(var b of y)yield e.thread?.processEvent(b);var x=e.getLiveTimeline();if(x.getState(oD.BACKWARDS).setUnknownStateEvents(r.state.map(i)),e.addEventsToTimeline(y,!0,!1,x,null),!h.next_batch){var S=yield n.fetchRoomEvent(e.room.roomId,m.id);e.addEventsToTimeline([i(S)],!0,!1,x,null)}return x.setPaginationToken(h.next_batch??null,aD.Backward),x.setPaginationToken(null,aD.Forward),n.processAggregatedTimelineEvents(e.room,y),x}}})()}getLatestTimeline(e){var t=this;return f(function*(){if(!t.timelineSupport)throw Error(`timeline support is disabled. Set the 'timelineSupport' parameter to true when creating MatrixClient to enable it.`);if(!e.room)throw Error(`getLatestTimeline only supports room timelines`);var n;if(e.threadListType!==null)n=(yield t.createThreadListMessagesRequest(e.room.roomId,null,1,aD.Backward,e.threadListType,e.getFilter())).chunk?.[0];else if(e.thread&&rj.hasServerSideSupport){var r=t.canSupport.get(oO.RelationsRecursion)!==aO.Unsupported;n=(yield t.fetchRelations(e.room.roomId,e.thread.id,oj.name,null,{dir:aD.Backward,limit:1,recurse:r||void 0})).chunk?.[0]}else{var i,a=M(`/rooms/$roomId/messages`,{$roomId:e.room.roomId}),o={dir:`b`};(i=t.clientOpts)!=null&&i.lazyLoadMembers&&(o.filter=JSON.stringify(vD.LAZY_LOADING_MESSAGES_FILTER)),n=(yield t.http.authedRequest(F.Get,a,o)).chunk?.[0]}if(!n)throw Error(`No message returned when trying to construct getLatestTimeline`);return t.getEventTimeline(e,n.event_id)})()}createMessagesRequest(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:30,i=arguments.length>3?arguments[3]:void 0,a=arguments.length>4?arguments[4]:void 0,o=M(`/rooms/$roomId/messages`,{$roomId:e}),s={limit:r.toString(),dir:i};t&&(s.from=t);var c=null;return(n=this.clientOpts)!=null&&n.lazyLoadMembers&&(c=Object.assign({},vD.LAZY_LOADING_MESSAGES_FILTER)),a&&(c||={},Object.assign(c,a.getRoomTimelineFilterComponent()?.toJSON())),c&&(s.filter=JSON.stringify(c)),this.http.authedRequest(F.Get,o,s)}createThreadListMessagesRequest(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:30,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:aD.Backward,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:sj.All,o=arguments.length>5?arguments[5]:void 0,s=M(`/rooms/$roomId/threads`,{$roomId:e}),c={limit:r.toString(),dir:i,include:Koe(a)};t&&(c.from=t);var l={};(n=this.clientOpts)!=null&&n.lazyLoadMembers&&(l=qA({},vD.LAZY_LOADING_MESSAGES_FILTER)),o&&(l=qA(qA({},l),o.getRoomTimelineFilterComponent()?.toJSON())),Object.keys(l).length&&(c.filter=JSON.stringify(l));var u={prefix:rj.hasServerSideListSupport===tj.Stable?GD.V1:`/_matrix/client/unstable/org.matrix.msc3856`};return this.http.authedRequest(F.Get,s,c,void 0,u).then(e=>qA(qA({},e),{},{chunk:e.chunk?.reverse(),start:e.prev_batch,end:e.next_batch}))}paginateEventTimeline(e,t){var n=this,r=e.getTimelineSet()===this.notifTimelineSet,i=this.getRoom(e.getRoomId()),a=e.getTimelineSet().threadListType,o=e.getTimelineSet().thread;t||={};var s=t.backwards||!1;if(r&&!s)throw Error(`paginateNotifTimeline can only paginate backwards`);var c=s?oD.BACKWARDS:oD.FORWARDS,l=e.getPaginationToken(c),d=e.paginationRequests[c];if(d)return d;var p,m,h;if(r)p=`/notifications`,m={limit:(t.limit??30).toString(),only:`highlight`},l&&l!==`end`&&(m.from=l),h=this.http.authedRequest(F.Get,p,m).then(function(){var t=f(function*(t){var r=t.next_token,i=[];t.notifications=t.notifications.filter(hE);for(var a=0;a{e.paginationRequests[c]=null}),e.paginationRequests[c]=h;else if(a!==null){if(!i)throw Error(`Unknown room `+e.getRoomId());if(!rj.hasServerSideFwdPaginationSupport&&c===aD.Forward)throw Error(`Cannot paginate threads forwards without server-side support for MSC 3715`);h=this.createThreadListMessagesRequest(e.getRoomId(),l,t.limit,c,a,e.getFilter()).then(t=>{if(t.state){var n=e.getState(c),r=t.state.filter(hE).map(this.getEventMapper());n.setUnknownStateEvents(r)}var a=t.end,o=t.chunk.filter(hE).map(this.getEventMapper());return e.getTimelineSet().addEventsToTimeline(o,s,!1,e,a),this.processAggregatedTimelineEvents(i,o),this.processThreadRoots(i,o,s),s&&t.end==t.start&&e.setPaginationToken(null,c),t.end!==t.start}).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=h}else if(o){var g=this.getRoom(e.getRoomId()??void 0);if(!g)throw Error(`Unknown room `+e.getRoomId());var _=this.canSupport.get(oO.RelationsRecursion)!==aO.Unsupported;h=this.fetchRelations(e.getRoomId()??``,o.id,null,null,{dir:c,limit:t.limit,from:l??void 0,recurse:_||void 0}).then(function(){var t=f(function*(t){var r=n.getEventMapper(),i=t.chunk.filter(hE).filter(hA(o.id)).map(r);for(var a of i.slice().reverse()){yield o?.processEvent(a);var l=a.getSender();(!s||o?.getEventReadUpTo(l)===null)&&g.addLocalEchoReceipt(l,a,GT.Read)}var u=t.next_batch,d=e.getTimelineSet();if(d.addEventsToTimeline(i,s,!1,e,u??null),!u&&s){var f=o.rootEvent??r(yield n.fetchRoomEvent(e.getRoomId()??``,o.id));d.addEventsToTimeline([f],!0,!1,e,null)}return n.processAggregatedTimelineEvents(d.room,i),s&&!u&&e.setPaginationToken(null,c),!!u});return function(e){return t.apply(this,arguments)}}()).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=h}else{if(!i)throw Error(`Unknown room `+e.getRoomId());h=this.createMessagesRequest(e.getRoomId(),l,t.limit,c,e.getFilter()).then(t=>{if(t.state){var n=e.getState(c),r=t.state.filter(hE).map(this.getEventMapper());n.setUnknownStateEvents(r)}var a=t.end,o=t.chunk.filter(hE).map(this.getEventMapper()),l=e.getTimelineSet(),d=u(i.partitionThreadedEvents(o),3),f=d[0],p=d[2];l.addEventsToTimeline(f,s,!1,e,a),this.processAggregatedTimelineEvents(i,f),this.processThreadRoots(i,f.filter(e=>e.getServerAggregatedRelation(oj.name)),!1),p.forEach(e=>i.relations.aggregateChildEvent(e));var m=t.end===void 0||t.end===t.start;return s&&m&&e.setPaginationToken(null,c),!m}).finally(()=>{e.paginationRequests[c]=null}),e.paginationRequests[c]=h}return h}resetNotifTimelineSet(){this.notifTimelineSet&&this.notifTimelineSet.resetLiveTimeline(`end`)}peekInRoom(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20;return(t=this.peekSync)==null||t.stopPeeking(),this.peekSync=new mO(this,this.clientOpts,this.buildSyncApiOptions()),this.peekSync.peek(e,n)}stopPeeking(){this.peekSync&&=(this.peekSync.stopPeeking(),null)}setGuestAccess(e,t){var n=this.sendStateEvent(e,P.RoomGuestAccess,{guest_access:t.allowJoin?Sk.CanJoin:Sk.Forbidden},``),r=Promise.resolve();return t.allowRead&&(r=this.sendStateEvent(e,P.RoomHistoryVisibility,{history_visibility:Ck.WorldReadable},``)),Promise.all([r,n]).then()}requestRegisterEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/register/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestRegisterMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/register/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestAdd3pidEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/account/3pid/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestAdd3pidMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/account/3pid/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestPasswordEmailToken(e,t,n,r){return this.requestTokenFromEndpoint(`/account/password/email/requestToken`,{email:e,client_secret:t,send_attempt:n,next_link:r})}requestPasswordMsisdnToken(e,t,n,r,i){return this.requestTokenFromEndpoint(`/account/password/msisdn/requestToken`,{country:e,phone_number:t,client_secret:n,send_attempt:r,next_link:i})}requestTokenFromEndpoint(e,t){var n=this;return f(function*(){var r=Object.assign({},t);return n.http.request(F.Post,e,void 0,r)})()}getRoomPushRule(e,t){if(this.pushRules){var n;return(n=this.pushRules[e])==null||(n=n.room)==null?void 0:n.find(e=>e.rule_id===t)}else throw Error(`SyncApi.sync() must be done before accessing to push rules.`)}setRoomMutePushRule(e,t,n){var r,i=!1,a=this.getRoomPushRule(e,t);if(a!=null&&a.actions.includes(ok.DontNotify)&&(i=!0),!n)i&&(r=this.deletePushRule(e,lk.RoomSpecific,a.rule_id));else if(!a)r=this.addPushRule(e,lk.RoomSpecific,t,{actions:[ok.DontNotify]});else if(!i){var o=Promise.withResolvers();this.deletePushRule(e,lk.RoomSpecific,a.rule_id).then(()=>{this.addPushRule(e,lk.RoomSpecific,t,{actions:[ok.DontNotify]}).then(()=>{o.resolve()}).catch(e=>{o.reject(e)})}).catch(e=>{o.reject(e)}),r=o.promise}if(r)return new Promise((e,t)=>{r.then(()=>{this.getPushRules().then(t=>{this.pushRules=t,e()}).catch(e=>{t(e)})}).catch(e=>{this.getPushRules().then(n=>{this.pushRules=n,t(e)}).catch(n=>{t(e)})})})}searchMessageText(e){var t={search_term:e.query};return`keys`in e&&(t.keys=e.keys),this.search({body:{search_categories:{room_events:t}}})}searchRoomEvents(e){var t={search_categories:{room_events:{search_term:e.term,filter:e.filter,order_by:fie.Recent,event_context:{before_limit:1,after_limit:1,include_profile:!0}}}},n={_query:t,results:[],highlights:[]};return this.search({body:t}).then(e=>this.processRoomEventsSearch(n,e))}backPaginateRoomEventsSearch(e){if(!e.next_batch)return Promise.reject(Error(`Cannot backpaginate event search any further`));if(e.pendingRequest)return e.pendingRequest;var t={body:e._query,next_batch:e.next_batch},n=this.search(t,e.abortSignal).then(t=>this.processRoomEventsSearch(e,t)).finally(()=>{e.pendingRequest=void 0});return e.pendingRequest=n,n}processRoomEventsSearch(e,t){var n=t.search_categories.room_events;e.count=n.count,e.next_batch=n.next_batch;var r=new Set(n.highlights);e.highlights.forEach(e=>{r.add(e)}),e.highlights=Array.from(r);for(var i=this.getEventMapper(),a=n.results?.length??0,o=0;o{this.logger.debug(`Marking success of sync left room request`),this.syncedLeftRooms=!0}).finally(()=>{this.syncLeftRoomsPromise=void 0}),this.syncLeftRoomsPromise}createFilter(e){var t=M(`/user/$userId/filter`,{$userId:this.credentials.userId});return this.http.authedRequest(F.Post,t,void 0,e).then(t=>{var n=vD.fromJson(this.credentials.userId,t.filter_id,e);return this.store.storeFilter(n),n})}getFilter(e,t,n){if(n){var r=this.store.getFilter(e,t);if(r)return Promise.resolve(r)}var i=M(`/user/$userId/filter/$filterId`,{$userId:e,$filterId:t});return this.http.authedRequest(F.Get,i).then(n=>{var r=vD.fromJson(e,t,n);return this.store.storeFilter(r),r})}getOrCreateFilter(e,t){var n=this;return f(function*(){var r=n.store.getFilterIdByName(e),i;if(r){try{var a=yield n.getFilter(n.credentials.userId,r,!0);a&&ZT(a.getDefinition(),t.getDefinition())&&(i=r)}catch(e){if(e.errcode!==`M_UNKNOWN`&&e.errcode!==`M_NOT_FOUND`)throw e}i||n.store.setFilterIdByName(e,void 0)}if(i)return i;var o=yield n.createFilter(t.getDefinition());return n.store.setFilterIdByName(e,o.filterId),o.filterId})()}getOpenIdToken(){var e=M(`/user/$userId/openid/request_token`,{$userId:this.credentials.userId});return this.http.authedRequest(F.Post,e,void 0,{})}turnServer(){return this.http.authedRequest(F.Get,`/voip/turnServer`)}getTurnServers(){return this.turnServers||[]}getTurnServersExpiry(){return this.turnServersExpiry}get pollingTurnServers(){return this.checkTurnServersIntervalID!==void 0}checkTurnServers(){var e=this;return f(function*(){if(e.supportsVoip()){var t=!1,n=e.turnServersExpiry-Date.now();if(n>joe)e.logger.debug(`TURN creds are valid for another `+n+` ms: not fetching new ones.`),t=!0;else{e.logger.debug(`Fetching new TURN credentials`);try{var r=yield e.turnServer();r.uris&&(e.logger.debug(`Got TURN URIs: `+r.uris+` refresh in `+r.ttl+` secs`),e.turnServers=[{urls:r.uris,username:r.username,credential:r.password}],e.turnServersExpiry=Date.now()+r.ttl*1e3,t=!0,e.emit(L.TurnServers,e.turnServers))}catch(t){e.logger.error(`Failed to get TURN URIs`,t),t.httpStatus===403?(e.logger.info(`TURN access unavailable for this account: stopping credentials checks`),e.checkTurnServersIntervalID!==null&&globalThis.clearInterval(e.checkTurnServersIntervalID),e.checkTurnServersIntervalID=void 0,e.emit(L.TurnServersError,t,!0)):e.emit(L.TurnServersError,t,!1)}}return t}})()}setFallbackICEServerAllowed(e){this.fallbackICEServerAllowed=e}isFallbackICEServerAllowed(){return this.fallbackICEServerAllowed}isSynapseAdministrator(){var e=M(`/_synapse/admin/v1/users/$userId/admin`,{$userId:this.getUserId()});return this.http.authedRequest(F.Get,e,void 0,void 0,{prefix:``}).then(e=>e.admin)}whoisSynapseUser(e){var t=M(`/_synapse/admin/v1/whois/$userId`,{$userId:e});return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:``})}deactivateSynapseUser(e){var t=M(`/_synapse/admin/v1/deactivate/$userId`,{$userId:e});return this.http.authedRequest(F.Post,t,void 0,void 0,{prefix:``})}fetchClientWellKnown(){var e=this;return f(function*(){e.clientWellKnownPromise=gk.getRawClientConfig(e.getDomain()??void 0),e.clientWellKnown=yield e.clientWellKnownPromise,e.emit(L.ClientWellKnown,e.clientWellKnown)})()}getClientWellKnown(){return this.clientWellKnown}waitForClientWellKnown(){if(!this.clientRunning)throw Error(`Client is not running`);return this.clientWellKnownPromise}storeClientOptions(){var e=[`boolean`,`string`,`number`],t=Object.entries(this.clientOpts).filter(t=>{var n=u(t,2);n[0];var r=n[1];return e.includes(typeof r)}).reduce((e,t)=>{var n=u(t,2),r=n[0];return e[r]=n[1],e},{});return this.store.storeClientOptions(t)}_unstable_getSharedRooms(e){var t=this;return f(function*(){var n=yield t.doesServerSupportUnstableFeature(Poe),r=yield t.doesServerSupportUnstableFeature(Foe),i=yield t.doesServerSupportUnstableFeature(Ioe);if(!n&&!r&&!i)throw Error(`Server does not support the Mutual Rooms API`);var a,o;i?(a=`/uk.half-shot.msc2666/user/mutual_rooms`,o={user_id:e}):(a=M(`/uk.half-shot.msc2666/user/${r?`mutual_rooms`:`shared_rooms`}/\$userId`,{$userId:e}),o={});var s=[],c=null;do{var l={};c!=null&&i&&(l.batch_token=c);var u=yield t.http.authedRequest(F.Get,a,qA(qA({},o),l),void 0,{prefix:GD.Unstable});s.push(...u.joined),c=u.next_batch_token===void 0?null:u.next_batch_token}while(c!=null);return s})()}_unstable_getRTCTransports(){var e=this;return f(function*(){return(yield e.http.authedRequest(F.Get,`/rtc/transports`,void 0,void 0,{prefix:`${GD.Unstable}/org.matrix.msc4143`})).rtc_transports})()}getVersions(){var e=this;return f(function*(){return e.serverVersionsPromise?e.serverVersionsPromise:(e.serverVersionsPromise=e.http.authedRequest(F.Get,`/_matrix/client/versions`,void 0,void 0,{prefix:``}).catch(t=>{throw e.serverVersionsPromise=void 0,t}),e.canSupport=yield Jne(yield e.serverVersionsPromise),e.serverVersionsPromise)})()}isVersionSupported(e){var t=this;return f(function*(){var n=(yield t.getVersions()).versions;return n&&n.includes(e)})()}doesServerSupportUnstableFeature(e){var t=this;return f(function*(){var n=yield t.getVersions();if(!n)return!1;var r=n.unstable_features;return r&&!!r[e]})()}doesServerForceEncryptionForPreset(e){var t=this;return f(function*(){var n=yield t.getVersions();if(!n)return!1;var r=n.unstable_features,i=e.includes(`_chat`)?e.substring(0,e.indexOf(`_chat`)):e;return r&&!!r[`io.element.e2ee_forced.${i}`]})()}doesServerSupportThread(){var e=this;return f(function*(){if(yield e.isVersionSupported(`v1.4`))return{threads:tj.Stable,list:tj.Stable,fwdPagination:tj.Stable};try{var t=u(yield Promise.all([e.doesServerSupportUnstableFeature(`org.matrix.msc3440`),e.doesServerSupportUnstableFeature(`org.matrix.msc3440.stable`),e.doesServerSupportUnstableFeature(`org.matrix.msc3856`),e.doesServerSupportUnstableFeature(`org.matrix.msc3856.stable`),e.doesServerSupportUnstableFeature(`org.matrix.msc3715`),e.doesServerSupportUnstableFeature(`org.matrix.msc3715.stable`)]),6),n=t[0],r=t[1],i=t[2],a=t[3],o=t[4],s=t[5];return{threads:nj(r,n),list:nj(a,i),fwdPagination:nj(s,o)}}catch{return{threads:tj.None,list:tj.None,fwdPagination:tj.None}}})()}hasLazyLoadMembersEnabled(){var e;return!!((e=this.clientOpts)!=null&&e.lazyLoadMembers)}setCanResetTimelineCallback(e){this.canResetTimelineCallback=e}getCanResetTimelineCallback(){return this.canResetTimelineCallback}relations(e,t,n,r){var i=arguments,a=this;return f(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:{dir:aD.Backward},s=r?a.getEncryptedIfNeededEventType(e,r):null,c=u(yield Promise.all([a.fetchRoomEvent(e,t),a.fetchRelations(e,t,n,s,o)]),2),l=c[0],d=c[1],f=a.getEventMapper(),p=l?f(l):void 0,m=d.chunk.map(f);if(s===P.RoomMessageEncrypted){var h=p?m.concat(p):m;yield Promise.all(h.map(e=>a.decryptEventIfNeeded(e))),r!==null&&(m=m.filter(e=>e.getType()===r))}return p&&n===EE.Replace&&(m=m.filter(e=>e.getSender()===p.getSender())),{originalEvent:p??null,events:m,nextBatch:d.next_batch??null,prevBatch:d.prev_batch??null}})()}generateClientSecret(){return wO(32)}decryptEventIfNeeded(e,t){return e.isState()&&!this.enableEncryptedStateEvents?Promise.resolve():(e.shouldAttemptDecryption()&&this.getCrypto()&&e.attemptDecryption(this.cryptoBackend,t),e.isBeingDecrypted()?e.getDecryptionPromise():Promise.resolve())}termsUrlForService(e,t){switch(e){case _k.IS:return this.http.getUrl(`/terms`,void 0,KD.V2,t);case _k.IM:return this.http.getUrl(`/terms`,void 0,`/_matrix/integrations/v1`,t);default:throw Error(`Unsupported service type`)}}getHomeserverUrl(){return this.baseUrl}getIdentityServerUrl(){var e,t;return arguments.length>0&&arguments[0]!==void 0&&arguments[0]&&((e=this.idBaseUrl)!=null&&e.startsWith(`http://`)||(t=this.idBaseUrl)!=null&&t.startsWith(`https://`))?this.idBaseUrl.split(`://`)[1]:this.idBaseUrl}setIdentityServerUrl(e){this.idBaseUrl=tE(e),this.http.setIdBaseUrl(this.idBaseUrl)}getAccessToken(){return this.http.opts.accessToken||null}getRefreshToken(){return this.http.opts.refreshToken??null}setAccessToken(e){this.http.opts.accessToken=e,this.serverVersionsPromise=void 0}isLoggedIn(){return this.http.opts.accessToken!==void 0}makeTxnId(){return`m`+new Date().getTime()+`.`+ this.txnCtr++}isUsernameAvailable(e){return this.http.authedRequest(F.Get,`/register/available`,{username:e}).then(e=>e.available).catch(e=>e.errcode===`M_USER_IN_USE`?!1:Promise.reject(e))}register(e,t,n,r,i,a,o){n&&(r.session=n);var s={auth:r,refresh_token:!0};return e!=null&&(s.username=e),t!=null&&(s.password=t),a!=null&&(s.guest_access_token=a),o!=null&&(s.inhibit_login=o),this.registerRequest(s)}registerGuest(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:{}).body;return this.registerRequest(e||{},`guest`)}registerRequest(e,t){var n={};return t&&(n.kind=t),this.http.request(F.Post,`/register`,n,e)}refreshToken(e){var t=t=>this.http.authedRequest(F.Post,`/refresh`,void 0,{refresh_token:e},{prefix:t,inhibitLogoutEmit:!0});return t(GD.V3).catch(e=>{if(e.errcode===`M_UNRECOGNIZED`)return t(GD.V1);throw e})}loginFlows(){return this.http.request(F.Get,`/login`)}login(e,t){return this.loginRequest(qA(qA({},t),{},{type:e})).then(e=>(e.access_token&&e.user_id&&(this.http.opts.accessToken=e.access_token,this.credentials={userId:e.user_id}),e))}loginWithPassword(e,t){return this.login(`m.login.password`,{user:e,password:t})}getCasLoginUrl(e){return this.getSsoLoginUrl(e,`cas`)}getSsoLoginUrl(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`sso`,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=`/login/`+t+`/redirect`;n&&(i+=`/`+n);var a={redirectUrl:e,[Boe.stable]:r,[Boe.unstable]:r};return this.http.getUrl(i,a).href}loginWithToken(e){return this.login(`m.login.token`,{token:e})}loginRequest(e){var t=this;return f(function*(){return yield t.http.authedRequest(F.Post,`/login`,void 0,e)})()}logout(){var e=arguments,t=this;return f(function*(){return e.length>0&&e[0]!==void 0&&e[0]&&(t.stopClient(),t.http.abort()),t.http.authedRequest(F.Post,`/logout`)})()}deactivateAccount(e,t){var n={};return e&&(n.auth=e),t!==void 0&&(n.erase=t),this.http.authedRequest(F.Post,`/account/deactivate`,void 0,n)}requestLoginToken(e){var t=this;return f(function*(){var n={auth:e};return t.http.authedRequest(F.Post,`/login/get_token`,void 0,n,{prefix:GD.V1})})()}getFallbackAuthUrl(e,t){var n=M(`/auth/$loginType/fallback/web`,{$loginType:e});return this.http.getUrl(n,{session:t}).href}createRoom(e){var t=this;return f(function*(){var n,r=(e.invite_3pid||[]).filter(e=>!e.id_access_token);if(r.length>0&&(n=t.identityServer)!=null&&n.getAccessToken){var i=yield t.identityServer.getAccessToken();if(i)for(var a of r)a.id_access_token=i}return t.http.authedRequest(F.Post,`/createRoom`,void 0,e)})()}fetchRelations(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{dir:aD.Backward};rj.hasServerSideFwdPaginationSupport===tj.Experimental&&(i=gee(`dir`,`org.matrix.msc3715.dir`,i)),this.canSupport.get(oO.RelationsRecursion)===aO.Unstable&&(i=gee(`recurse`,`org.matrix.msc3981.recurse`,i));var a=JT(i),o=`/rooms/$roomId/relations/$eventId`;n===null?r!==null&&(this.logger.warn(`eventType: ${r} ignored when fetching + relations as relationType is null`),r=null):(o+=`/$relationType`,r!==null&&(o+=`/$eventType`));var s=M(o+`?`+a,{$roomId:e,$eventId:t,$relationType:n,$eventType:r});return this.http.authedRequest(F.Get,s,void 0,void 0,{prefix:GD.V1})}roomState(e){var t=M(`/rooms/$roomId/state`,{$roomId:e});return this.http.authedRequest(F.Get,t)}fetchRoomEvent(e,t){var n=M(`/rooms/$roomId/event/$eventId`,{$roomId:e,$eventId:t});return this.http.authedRequest(F.Get,n)}members(e,t,n,r){var i={};t&&(i.membership=t),n&&(i.not_membership=n),r&&(i.at=r);var a=M(`/rooms/$roomId/members?`+JT(i),{$roomId:e});return this.http.authedRequest(F.Get,a)}upgradeRoom(e,t,n){var r=M(`/rooms/$roomId/upgrade`,{$roomId:e});return this.http.authedRequest(F.Post,r,void 0,{new_version:t,additional_creators:n})}getStateEvent(e,t,n){var r={$roomId:e,$eventType:t,$stateKey:n},i=M(`/rooms/$roomId/state/$eventType`,r);return n!==void 0&&(i=M(i+`/$stateKey`,r)),this.http.authedRequest(F.Get,i)}sendStateEvent(e,t,n){var r=arguments,i=this;return f(function*(){var a=r.length>3&&r[3]!==void 0?r[3]:``,o=r.length>4&&r[4]!==void 0?r[4]:{},s=i.getRoom(e),c=new dj({room_id:e,type:t,state_key:a,content:n});yield i.encryptStateEventIfNeeded(c,s??void 0);var l={$roomId:e,$eventType:c.getWireType(),$stateKey:c.getWireStateKey()},u=M(`/rooms/$roomId/state/$eventType`,l);return a!==void 0&&(u=M(u+`/$stateKey`,l)),i.http.authedRequest(F.Put,u,void 0,c.getWireContent(),o)})()}encryptStateEventIfNeeded(e,t){var n=this;return f(function*(){if(n.enableEncryptedStateEvents&&t&&!(!n.cryptoBackend&&n.usingExternalCrypto)){if(!n.cryptoBackend)throw Error(`This room is configured to use encryption, but your client does not support encryption.`);(yield n.shouldEncryptEventForRoom(e,t))&&(yield n.cryptoBackend.isStateEncryptionEnabledInRoom(t.roomId))&&([`m.room.create`,`m.room.member`,`m.room.join_rules`,`m.room.power_levels`,`m.room.third_party_invite`,`m.room.history_visibility`,`m.room.guest_access`,`m.room.encryption`].includes(e.getType())||(yield n.cryptoBackend.encryptEvent(e,t)))}})()}roomInitialSync(e,t){var n=M(`/rooms/$roomId/initialSync`,{$roomId:e});return this.http.authedRequest(F.Get,n,{limit:t?.toString()??`30`})}setRoomReadMarkersHttpRequest(e,t,n,r){var i=this;return f(function*(){var a=M(`/rooms/$roomId/read_markers`,{$roomId:e}),o={[GT.FullyRead]:t,[GT.Read]:n};return((yield i.doesServerSupportUnstableFeature(`org.matrix.msc2285.stable`))||(yield i.isVersionSupported(`v1.4`)))&&(o[GT.ReadPrivate]=r),i.http.authedRequest(F.Post,a,void 0,o)})()}getJoinedRooms(){var e=M(`/joined_rooms`,{});return this.http.authedRequest(F.Get,e)}getJoinedRoomMembers(e){var t=M(`/rooms/$roomId/joined_members`,{$roomId:e});return this.http.authedRequest(F.Get,t)}publicRooms(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.server,n=e.limit,r=e.since,i=mte(e,Ooe);if(Object.keys(i).length===0){var a={server:t,limit:n,since:r};return this.http.authedRequest(F.Get,`/publicRooms`,a)}else{var o={server:t},s=qA({limit:n,since:r},i);return this.http.authedRequest(F.Post,`/publicRooms`,o,s)}}createAlias(e,t){var n=M(`/directory/room/$alias`,{$alias:e}),r={room_id:t};return this.http.authedRequest(F.Put,n,void 0,r)}deleteAlias(e){var t=M(`/directory/room/$alias`,{$alias:e});return this.http.authedRequest(F.Delete,t)}getLocalAliases(e){var t=M(`/rooms/$roomId/aliases`,{$roomId:e}),n=GD.V3;return this.http.authedRequest(F.Get,t,void 0,void 0,{prefix:n})}getRoomIdForAlias(e){var t=M(`/directory/room/$alias`,{$alias:e});return this.http.authedRequest(F.Get,t)}getRoomDirectoryVisibility(e){var t=M(`/directory/list/room/$roomId`,{$roomId:e});return this.http.authedRequest(F.Get,t)}setRoomDirectoryVisibility(e,t){var n=M(`/directory/list/room/$roomId`,{$roomId:e});return this.http.authedRequest(F.Put,n,void 0,{visibility:t})}searchUserDirectory(e){var t=e.term,n=e.limit,r={search_term:t};return n!==void 0&&(r.limit=n),this.http.authedRequest(F.Post,`/user_directory/search`,void 0,r)}uploadContent(e,t){return this.http.uploadContent(e,t)}cancelUpload(e){return this.http.cancelUpload(e)}getCurrentUploads(){return this.http.getCurrentUploads()}getProfileInfo(e,t){var n=t?M(`/profile/$userId/$info`,{$userId:e,$info:t}):M(`/profile/$userId`,{$userId:e});return this.http.authedRequest(F.Get,n)}doesServerSupportExtendedProfiles(){var e=this;return f(function*(){return(yield e.isVersionSupported(`v1.16`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133.stable`))})()}getExtendedProfileRequestPrefix(){var e=this;return f(function*(){return(yield e.isVersionSupported(`v1.16`))||(yield e.doesServerSupportUnstableFeature(`uk.tcpip.msc4133.stable`))?GD.V3:`/_matrix/client/unstable/uk.tcpip.msc4133`})()}getExtendedProfile(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);return t.http.authedRequest(F.Get,M(`/profile/$userId`,{$userId:e}),void 0,void 0,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}getExtendedProfileProperty(e,t){var n=this;return f(function*(){if(!(yield n.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var r=yield n.store.getUserProfile(e);if(r?.[t]!==void 0)return r[t];var i=yield n.http.authedRequest(F.Get,M(`/profile/$userId/$key`,{$userId:e,$key:t}),void 0,void 0,{prefix:yield n.getExtendedProfileRequestPrefix()});return yield n.store.storeUserProfiles(new Map([[e,i]])),i[t]})()}setExtendedProfileProperty(e,t){var n=this;return f(function*(){if(!(yield n.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var r=n.getUserId();yield n.http.authedRequest(F.Put,M(`/profile/$userId/$key`,{$userId:r,$key:e}),void 0,{[e]:t},{prefix:yield n.getExtendedProfileRequestPrefix()})})()}deleteExtendedProfileProperty(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();yield t.http.authedRequest(F.Delete,M(`/profile/$userId/$key`,{$userId:n,$key:e}),void 0,void 0,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}patchExtendedProfile(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();return t.http.authedRequest(F.Patch,M(`/profile/$userId`,{$userId:n}),{},e,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}setExtendedProfile(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportExtendedProfiles()))throw Error(`Server does not support extended profiles`);var n=t.getUserId();yield t.http.authedRequest(F.Put,M(`/profile/$userId`,{$userId:n}),{},e,{prefix:yield t.getExtendedProfileRequestPrefix()})})()}getThreePids(){return this.http.authedRequest(F.Get,`/account/3pid`)}addThreePidOnly(e){var t=this;return f(function*(){return t.http.authedRequest(F.Post,`/account/3pid/add`,void 0,e)})()}bindThreePid(e){var t=this;return f(function*(){return t.http.authedRequest(F.Post,`/account/3pid/bind`,void 0,e)})()}unbindThreePid(e,t){var n=this;return f(function*(){var r=`/account/3pid/unbind`,i={medium:e,address:t,id_server:n.getIdentityServerUrl(!0)};return n.http.authedRequest(F.Post,r,void 0,i)})()}deleteThreePid(e,t){return this.http.authedRequest(F.Post,`/account/3pid/delete`,void 0,{medium:e,address:t})}setPassword(e,t,n){var r=`/account/password`,i={auth:e,new_password:t,logout_devices:n};return this.http.authedRequest(F.Post,r,void 0,i)}getDevices(){return this.http.authedRequest(F.Get,`/devices`)}getDevice(e){var t=M(`/devices/$device_id`,{$device_id:e});return this.http.authedRequest(F.Get,t)}setDeviceDetails(e,t){var n=M(`/devices/$device_id`,{$device_id:e});return this.http.authedRequest(F.Put,n,void 0,t)}deleteDevice(e,t){var n=M(`/devices/$device_id`,{$device_id:e}),r={};return t&&(r.auth=t),this.http.authedRequest(F.Delete,n,void 0,r)}deleteMultipleDevices(e,t){var n={devices:e};return t&&(n.auth=t),this.http.authedRequest(F.Post,`/delete_devices`,void 0,n)}getPushers(){var e=this;return f(function*(){var t=yield e.http.authedRequest(F.Get,`/pushers`);return(yield e.doesServerSupportUnstableFeature(`org.matrix.msc3881`))||(t.pushers=t.pushers.map(e=>(e.hasOwnProperty(LE.name)||(e[LE.name]=!0),e))),t})()}setPusher(e){return this.http.authedRequest(F.Post,`/pushers/set`,void 0,e)}removePusher(e,t){var n=`/pushers/set`,r={pushkey:e,app_id:t,kind:null};return this.http.authedRequest(F.Post,n,void 0,r)}setLocalNotificationSettings(e,t){var n=`${ete.name}.${e}`;return this.setAccountData(n,t)}getPushRules(){return this.http.authedRequest(F.Get,`/pushrules/`).then(e=>(this.setPushRules(e),this.pushRules))}setPushRules(e){this.pushRules=fk.rewriteDefaultRules(this.logger,e,this.getUserId()),this.pushProcessor.updateCachedPushRuleKeys(this.pushRules)}addPushRule(e,t,n,r){var i=M(`/pushrules/`+e+`/$kind/$ruleId`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,r)}deletePushRule(e,t,n){var r=M(`/pushrules/`+e+`/$kind/$ruleId`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Delete,r)}setPushRuleEnabled(e,t,n,r){var i=M(`/pushrules/`+e+`/$kind/$ruleId/enabled`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,{enabled:r})}setPushRuleActions(e,t,n,r){var i=M(`/pushrules/`+e+`/$kind/$ruleId/actions`,{$kind:t,$ruleId:n});return this.http.authedRequest(F.Put,i,void 0,{actions:r})}search(e,t){var n=e.body,r=e.next_batch,i={};return r&&(i.next_batch=r),this.http.authedRequest(F.Post,`/search`,i,n,{abortSignal:t})}uploadKeysRequest(e,t){return this.http.authedRequest(F.Post,`/keys/upload`,void 0,e)}uploadKeySignatures(e){return this.http.authedRequest(F.Post,`/keys/signatures/upload`,void 0,e)}downloadKeysForUsers(e){var t=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{}).token,n={device_keys:{}};return t!==void 0&&(n.token=t),e.forEach(e=>{n.device_keys[e]=[]}),this.http.authedRequest(F.Post,`/keys/query`,void 0,n)}claimOneTimeKeys(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`signed_curve25519`,n=arguments.length>2?arguments[2]:void 0,r={};t===void 0&&(t=`signed_curve25519`);for(var i of e){var a=u(i,2),o=a[0],s=a[1],c=r[o]||{};mE(r,o,c),mE(c,s,t)}var l={one_time_keys:r};return n&&(l.timeout=n),this.http.authedRequest(F.Post,`/keys/claim`,void 0,l)}getKeyChanges(e,t){var n={from:e,to:t};return this.http.authedRequest(F.Get,`/keys/changes`,n)}uploadDeviceSigningKeys(e,t){var n=Object.assign({},t);return e&&Object.assign(n,{auth:e}),this.http.authedRequest(F.Post,`/keys/device_signing/upload`,void 0,n,{prefix:GD.Unstable})}registerWithIdentityServer(e){if(!this.idBaseUrl)throw Error(`No identity server base URL set`);var t=this.http.getUrl(`/account/register`,void 0,KD.V2,this.idBaseUrl);return this.http.requestOtherUrl(F.Post,t,e)}requestEmailToken(e,t,n,r,i){var a={client_secret:t,email:e,send_attempt:n?.toString()};return r&&(a.next_link=r),this.http.idServerRequest(F.Post,`/validate/email/requestToken`,a,KD.V2,i)}requestMsisdnToken(e,t,n,r,i,a){var o={client_secret:n,country:e,phone_number:t,send_attempt:r?.toString()};return i&&(o.next_link=i),this.http.idServerRequest(F.Post,`/validate/msisdn/requestToken`,o,KD.V2,a)}submitMsisdnToken(e,t,n,r){var i={sid:e,client_secret:t,token:n};return this.http.idServerRequest(F.Post,`/validate/msisdn/submitToken`,i,KD.V2,r??void 0)}submitMsisdnTokenOtherUrl(e,t,n,r){var i={sid:t,client_secret:n,token:r};return this.http.requestOtherUrl(F.Post,e,i)}getIdentityHashDetails(e){return this.http.idServerRequest(F.Get,`/hash_details`,void 0,KD.V2,e)}identityHashedLookup(e,t){var n=this;return f(function*(){var r={},i=yield n.getIdentityHashDetails(t);if(!i||!i.lookup_pepper||!i.algorithms)throw Error(`Unsupported identity server: bad response`);r.pepper=i.lookup_pepper;var a={};if(i.algorithms.includes(`sha256`))r.addresses=yield Promise.all(e.map(function(){var e=f(function*(e){var t=SO(yield Yk(`${e[0].toLowerCase()} ${e[1].toLowerCase()} ${r.pepper}`));return a[t]=e[0],t});return function(t){return e.apply(this,arguments)}}())),r.algorithm=`sha256`;else if(i.algorithms.includes(`none`))r.addresses=e.map(e=>{var t=`${e[0].toLowerCase()} ${e[1].toLowerCase()}`;return a[t]=e[0],t}),r.algorithm=`none`;else throw Error(`Unsupported identity server: unknown hash algorithm`);var o=yield n.http.idServerRequest(F.Post,`/lookup`,r,KD.V2,t);if(!(o!=null&&o.mappings))return[];var s=[];for(var c of Object.keys(o.mappings)){var l=o.mappings[c],u=a[c];if(!u)throw Error(`Identity server returned more results than expected`);s.push({address:u,mxid:l})}return s})()}lookupThreePid(e,t,n){var r=this;return f(function*(){var i=(yield r.identityHashedLookup([[t,e]],n)).find(e=>e.address===t);return i?{address:t,medium:e,mxid:i.mxid}:{}})()}bulkLookupThreePids(e,t){var n=this;return f(function*(){var r=yield n.identityHashedLookup(e.map(e=>[e[1],e[0]]),t),i=[],a=function*(t){var n=e.find(e=>e[1]===t.address);if(!n)throw Error(`Identity sever returned unexpected results`);i.push([n[0],t.address,t.mxid])};for(var o of r)yield*a(o);return{threepids:i}})()}getIdentityAccount(e){return this.http.idServerRequest(F.Get,`/account`,void 0,KD.V2,e)}sendToDevice(e,t,n){var r=M(`/sendToDevice/$eventType/$txnId`,{$eventType:e,$txnId:n||this.makeTxnId()}),i={messages:fE(t)},a=new Map;for(var o of t){var s=u(o,2),c=s[0],l=s[1];a.set(c,Array.from(l.keys()))}return this.logger.debug(`PUT ${r}`,a),this.http.authedRequest(F.Put,r,void 0,i)}encryptAndSendToDevice(e,t,n){var r=this;return f(function*(){if(!r.cryptoBackend)throw Error(`Cannot encrypt to device event, your client does not support encryption.`);var i=yield r.cryptoBackend.encryptToDeviceMessages(e,t,n);yield r.queueToDevice(i)})()}queueToDevice(e){return this.toDeviceMessageQueue.queueBatch(e)}getThirdpartyProtocols(){return this.http.authedRequest(F.Get,`/thirdparty/protocols`).then(e=>{if(!e||typeof e!=`object`)throw Error(`/thirdparty/protocols did not return an object: ${e}`);return e})}getThirdpartyLocation(e,t){var n=M(`/thirdparty/location/$protocol`,{$protocol:e});return this.http.authedRequest(F.Get,n,t)}getThirdpartyUser(e,t){var n=M(`/thirdparty/user/$protocol`,{$protocol:e});return this.http.authedRequest(F.Get,n,t)}getTerms(e,t){var n=this.termsUrlForService(e,t);return this.http.requestOtherUrl(F.Get,n)}agreeToTerms(e,t,n,r){var i=this.termsUrlForService(e,t),a={Authorization:`Bearer `+n};return this.http.requestOtherUrl(F.Post,i,{user_accepts:r},{headers:a})}reportEvent(e,t,n,r){var i=M(`/rooms/$roomId/report/$eventId`,{$roomId:e,$eventId:t});return this.http.authedRequest(F.Post,i,void 0,{score:n,reason:r})}reportRoom(e,t){var n=M(`/rooms/$roomId/report`,{$roomId:e});return this.http.authedRequest(F.Post,n,void 0,{reason:t})}getRoomHierarchy(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=arguments.length>4?arguments[4]:void 0,a=M(`/rooms/$roomId/hierarchy`,{$roomId:e}),o={suggested_only:String(r),max_depth:n?.toString(),from:i,limit:t?.toString()};return this.http.authedRequest(F.Get,a,o,void 0,{prefix:GD.V1}).catch(e=>{if(e.errcode===`M_UNRECOGNIZED`)return this.http.authedRequest(F.Get,a,o,void 0,{prefix:`/_matrix/client/unstable/org.matrix.msc2946`});throw e})}unstableCreateFileTree(e){var t=this;return f(function*(){var n=(yield t.createRoom({name:e,preset:bk.PrivateChat,power_level_content_override:qA(qA({},uie),{},{users:{[t.getUserId()]:100}}),creation_content:{[OE]:kE.Space},initial_state:[{type:jE.name,state_key:NE.name,content:{[ME.name]:!0}},{type:P.RoomEncryption,state_key:``,content:{algorithm:`m.megolm.v1.aes-sha2`}}]})).room_id;return new die(t,n)})()}unstableGetFileTreeSpace(e){var t,n=this.getRoom(e);if(n?.getMyMembership()!==zE.Join)return null;var r=n.currentState.getStateEvents(P.RoomCreate,``),i=n.currentState.getStateEvents(jE.name,NE.name);if(!r)throw Error(`Expected single room create event`);return!(i!=null&&(t=i.getContent())!=null&&t[ME.name])||r.getContent()?.type!==kE.Space?null:new die(this,e)}slidingSync(e,t,n){var r={};e.pos&&(r.pos=e.pos,delete e.pos),e.timeout&&(r.timeout=e.timeout,delete e.timeout);var i=e.clientTimeout;return delete e.clientTimeout,this.http.authedRequest(F.Post,`/sync`,r,e,{prefix:`/_matrix/client/unstable/org.matrix.simplified_msc3575`,baseUrl:t,localTimeoutMs:i,abortSignal:n})}supportsThreads(){return this.clientOpts?.threadSupport||!1}supportsIntentionalMentions(){return this.canSupport.get(oO.IntentionalMentions)!==aO.Unsupported}getRoomSummary(e,t){var n=this;return f(function*(){var r={prefix:`/_matrix/client/unstable/im.nheko.summary`};try{var i=M(`/summary/$roomid`,{$roomid:e});return yield n.http.authedRequest(F.Get,i,{via:t},void 0,r)}catch(i){if(i instanceof PD&&i.errcode===`M_UNRECOGNIZED`){var a=M(`/rooms/$roomid/summary`,{$roomid:e});return yield n.http.authedRequest(F.Get,a,{via:t},void 0,r)}else throw i}})()}processThreadEvents(e,t,n){e.processThreadedEvents(t,n)}processThreadRoots(e,t,n){this.supportsThreads()&&e.processThreadRoots(t,n)}processBeaconEvents(e,t){this.processAggregatedTimelineEvents(e,t)}processAggregatedTimelineEvents(e,t){t!=null&&t.length&&e&&(e.currentState.processBeaconEvents(t,this),e.processPollEvents(t))}whoami(){var e=this;return f(function*(){return e.http.authedRequest(F.Get,`/account/whoami`)})()}timestampToEvent(e,t,n){var r=this;return f(function*(){var i=M(`/rooms/$roomId/timestamp_to_event`,{$roomId:e}),a={ts:t.toString(),dir:n};try{return yield r.http.authedRequest(F.Get,i,a,void 0,{prefix:GD.V1})}catch(e){if(e.errcode===`M_UNRECOGNIZED`&&(e.httpStatus===400||e.httpStatus===404||e.httpStatus===405))return yield r.http.authedRequest(F.Get,i,a,void 0,{prefix:`/_matrix/client/unstable/org.matrix.msc3030`});throw e}})()}getAuthMetadata(){var e=this;return f(function*(){var t;try{var n=yield e.isVersionSupported(`v1.15`);t=yield e.http.request(F.Get,`/auth_metadata`,void 0,void 0,{prefix:n?GD.V1:GD.Unstable+`/org.matrix.msc2965`})}catch(t){if(t instanceof PD&&t.errcode===`M_UNRECOGNIZED`){var r=(yield e.http.request(F.Get,`/auth_issuer`,void 0,void 0,{prefix:GD.Unstable+`/org.matrix.msc2965`})).issuer;return WA(r)}throw t}return GA(t)})()}};g(ZA,`RESTORE_BACKUP_ERROR_BAD_KEY`,`RESTORE_BACKUP_ERROR_BAD_KEY`);function Voe(e){return Object.fromEntries(Object.entries(e).map(e=>{var t=u(e,2),n=t[0],r=t[1];return[`${YA}.${n}`,r]}))}function Hoe(e,t){var n,r=e.getUserId(),i=t.getId(),a=e.getRoom(t.getRoomId());if(!(!a||!r||!i)){if(!a.findEventById(i)){N.info(`Decrypted event ${t.getId()} is not in room ${a.roomId}: ignoring`);return}var o=!!t.threadRootId&&!t.isThreadRoot,s;if(o){var c=a.getThread(t.threadRootId);s=c?c.hasUserReadEvent(r,i):!0}else s=a.hasUserReadEvent(r,i);if(!s){var l=e.getPushActionsForEvent(t,!0);if(l!=null&&(n=l.tweaks)!=null&&n.highlight){var u=a.getUnreadCountForEventContext(nO.Highlight,t)+1;o?a.setThreadUnreadNotificationCount(t.threadRootId,nO.Highlight,u):a.setUnreadNotificationCount(nO.Highlight,u)}if(l!=null&&l.notify){var d=a.getUnreadCountForEventContext(nO.Total,t)+1;o?a.setThreadUnreadNotificationCount(t.threadRootId,nO.Total,d):a.setUnreadNotificationCount(nO.Total,d)}}}}function QA(e){return $A(e)?pee:e.threadRootId}function $A(e){return!e.threadRootId||e.isThreadRoot?!0:e.isRelation()?e.isRelation(oj.name)?!1:e.relationEventId===e.threadRootId:(N.warn(`Event is not a relation or a thread root, but still has a threadRootId! id=${e.getId()}`),!0)}function Uoe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Woe(e){for(var t=1;t{e!=null&&e.isRelation(oj.name)&&this.room.eventShouldLiveIn(e).threadId===this.id&&e.getId()!==this.id&&!t.status&&(this.replyCount--,this.updatePendingReplyCount(),this.emit(ej.Update,this))}),g(this,`onRedaction`,function(){var e=f(function*(e,t,n){if(n===i.id)if(i.replyCount<=0){for(var r of i.timeline)i.clearEventMetadata(r);i.lastEvent=i.rootEvent,i._currentUserParticipated=!1,i.emit(ej.Delete,i)}else i.lastEvent?.getId()===e.getAssociatedId()&&(yield i.processRootEventPromise,i.processRootEventPromise=void 0),yield i.updateThreadMetadata()});return function(t,n,r){return e.apply(this,arguments)}}()),g(this,`onTimelineEvent`,(e,t,n)=>{if(!n){var r=e.getSender();r&&t&&this.shouldSendLocalEchoReceipt(r,e)&&t.addLocalEchoReceipt(r,e,GT.Read),e.getId()!==this.id&&e.isRelation(oj.name)&&this.replyCount++}this.onEcho(e,n??!1)}),g(this,`onLocalEcho`,e=>{this.onEcho(e,!1)}),g(this,`onEcho`,function(){var e=f(function*(e,t){e.threadRootId===i.id&&i.lastEvent!==e&&(yield i.updateThreadMetadata(),e.isRelation(oj.name)&&(t||(i.lastEvent=void 0,i.emit(ej.NewReply,i,e))))});return function(t,n){return e.apply(this,arguments)}}()),this.setMaxListeners(1e3),!(r!=null&&r.room))throw Error(`element-web#22141: A thread requires a room in order to function`);this.room=r.room,this.client=r.client,this.pendingEventOrdering=r.pendingEventOrdering??JA.Chronological,this.timelineSet=new dD(this.room,{timelineSupport:!0,pendingEvents:!0},this.client,this),this.reEmitter=new pD(this),this.reEmitter.reEmit(this.timelineSet,[I.Timeline,I.TimelineReset]),this.room.on(uj.BeforeRedaction,this.onBeforeRedaction),this.room.on(I.Redaction,this.onRedaction),this.room.on(I.LocalEchoUpdated,this.onLocalEcho),this.room.on(I.TimelineReset,this.onTimelineReset),this.timelineSet.on(I.Timeline,this.onTimelineEvent),this.processReceipts(r.receipts),this.updateThreadMetadata(),this.setEventMetadata(this.rootEvent)}fetchRootEvent(){var e=this;return f(function*(){try{var t=yield e.client.fetchRoomEvent(e.roomId,e.id);e.rootEvent=e.client.getEventMapper()(t)}catch(e){N.error(`Failed to fetch thread root to construct thread with`,e)}yield e.processEvent(e.rootEvent)})()}static setServerSideSupport(t){e.hasServerSideSupport=t,t!==tj.Stable&&(ij.setPreferUnstable(!0),aj.setPreferUnstable(!0),oj.setPreferUnstable(!0))}static setServerSideListSupport(t){e.hasServerSideListSupport=t}static setServerSideFwdPaginationSupport(t){e.hasServerSideFwdPaginationSupport=t}shouldSendLocalEchoReceipt(e,t){if((this.client.canSupport.get(oO.RelationsRecursion)??aO.Unsupported)===aO.Unsupported){var n=this.getReadReceiptForUserId(e)?.eventId;if(n){var r=this.findEventById(n);if(r&&r.getTs()>t.getTs())return!1}}return!0}get roomState(){return this.room.getLiveTimeline().getState(oD.FORWARDS)}addEventToTimeline(e,t){this.findEventById(e.getId())||this.timelineSet.addEventToTimeline(e,this.liveTimeline,{toStartOfTimeline:t,fromCache:!1,roomState:this.roomState,addToState:!1})}insertEventIntoTimeline(e){var t=e.getId();t&&(this.findEventById(t)||this.timelineSet.insertEventIntoTimeline(e,this.liveTimeline,this.roomState,!1))}addEvents(e,t){e.forEach(e=>this.addEvent(e,t,!1)),this.updateThreadMetadata()}addEvent(t,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;this.setEventMetadata(t);var i=this.lastReply(),a=!i||t.localTimestamp>=i.localTimestamp;if(!e.hasServerSideSupport)this.addEventToTimeline(t,n),this.client.decryptEventIfNeeded(t);else if(t.isRelation(EE.Annotation)||t.isRelation(EE.Replace)){this.addRelatedThreadEvent(t,n);return}else !n&&a?(this.addEventToTimeline(t,!1),this.fetchEditsWhereNeeded(t)):n?this.addEventToTimeline(t,n):this.insertEventIntoTimeline(t);t.getId()!==this.id&&t.isRelation(oj.name)&&!n&&a&&(this.lastEvent=void 0),r&&(this.emit(ej.NewReply,this,t),this.updateThreadMetadata())}addRelatedThreadEvent(e,t){if(this.initialEventsFetched)(this.client.canSupport.get(oO.RelationsRecursion)??aO.Unsupported)===aO.Unsupported?this.insertEventIntoTimeline(e):this.addEventToTimeline(e,t);else{var n;if((n=this.replayEvents)==null||n.push(e),e.isRelation(EE.Annotation)){var r;(r=this.timelineSet.relations)==null||r.aggregateChildEvent(e,this.timelineSet)}}}processEvent(e){var t=this;return f(function*(){e&&(t.setEventMetadata(e),yield t.fetchEditsWhereNeeded(e))})()}processReceipts(){for(var e of arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]){var t=e.eventId,n=e.receiptType,r=e.userId,i=e.receipt,a=e.synthetic;this.addReceiptToStructure(t,n,r,i,a)}}getRootEventBundledRelationship(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.rootEvent)?.getServerAggregatedRelation(oj.name)}processRootEvent(){var t=this;return f(function*(){var n=t.getRootEventBundledRelationship();e.hasServerSideSupport&&n&&(t.replyCount=n.count,t._currentUserParticipated=!!n.current_user_participated,t.lastEvent=t.client.getEventMapper()(Woe(Woe({},n.latest_event),{},{room_id:t.roomId})),t.updatePendingReplyCount(),yield t.processEvent(t.lastEvent))})()}updatePendingReplyCount(){var e=(this.pendingEventOrdering===JA.Detached?this.room.getPendingEvents():this.events).filter(e=>e.threadRootId===this.id&&e.isRelation(oj.name)&&e.status!==null&&e.getId()!==this.lastEvent?.getId());this.lastPendingEvent=e.length?e[e.length-1]:void 0,this.pendingReplyCount=e.length}resetLiveTimeline(e,t){var n=this;return f(function*(){var r=n.liveTimeline;n.timelineSet.resetLiveTimeline(e??void 0,t??void 0);var i=n.liveTimeline,a,o;e&&(a=(yield n.client.createMessagesRequest(n.roomId,e,1,aD.Forward)).end),t&&(o=(yield n.client.createMessagesRequest(n.roomId,t,1,aD.Backward)).start),t&&r.getPaginationToken(aD.Forward)===t&&r.setPaginationToken(o??null,aD.Forward),e&&i.getPaginationToken(aD.Backward)===e&&i.setPaginationToken(a??null,aD.Backward)})()}updateThreadFromRootEvent(){var t=this;return f(function*(){e.hasServerSideSupport&&(!t.initialEventsFetched&&!t.lastEvent&&(yield t.processRootEvent()),yield t.fetchRootEvent()),yield t.processRootEvent()})()}updateThreadMetadata(){var e=this;return f(function*(){if(e.updatePendingReplyCount(),e.processRootEventPromise||=e.updateThreadFromRootEvent(),yield e.processRootEventPromise,!e.initialEventsFetched)if(e.initalEventFetchProm)yield e.initalEventFetchProm;else try{e.timelineSet.resetLiveTimeline(),e.replyCount===0&&e.rootEvent?(e.timelineSet.addEventsToTimeline([e.rootEvent],!0,!1,e.liveTimeline,null),e.liveTimeline.setPaginationToken(null,aD.Backward)):(e.initalEventFetchProm=e.client.paginateEventTimeline(e.liveTimeline,{backwards:!0}),yield e.initalEventFetchProm),e.initialEventsFetched=!0;for(var t of e.replayEvents)e.addEvent(t,!1);e.replayEvents=null,e.emit(I.TimelineReset,e.room,e.timelineSet,!0)}catch(t){N.error(`Failed to load start of newly created thread: `,t),e.initialEventsFetched=!1}e.emit(ej.Update,e)})()}fetchEditsWhereNeeded(){var e=arguments,t=this;return f(function*(){if((t.client.canSupport.get(oO.RelationsRecursion)??aO.Unsupported)===aO.Unsupported){for(var n=e.length,r=Array(n),i=0;i0&&arguments[0]!==void 0?arguments[0]:e=>e.isRelation(oj.name),t=this.timeline.length-1;t>=0;t--){var n=this.timeline[t];if(e(n))return n}return null}get roomId(){return this.room.roomId}get length(){return this.replyCount+this.pendingReplyCount}get replyToEvent(){return this.lastPendingEvent??this.lastEvent??this.lastReply()}get timeline(){return this.events}get events(){return this.liveTimeline.getEvents()}has(e){return this.timelineSet.findEventById(e)instanceof dj}get hasCurrentUserParticipated(){return this._currentUserParticipated}get liveTimeline(){return this.timelineSet.getLiveTimeline()}getUnfilteredTimelineSet(){return this.timelineSet}addReceipt(e,t){throw Error(`Unsupported function on the thread model`)}getEventReadUpTo(e,t){var n=e===this.client.getUserId(),r=this.timeline[this.timeline.length-1];if(n&&r){var i=r.getTs()=0;--c){var l,u=this.timeline[c];if(u.getId()===o)return o;if(u.getTs()e+`: `+t[e]).join(`, `)),n+=`]`,n}var Joe=Object.freeze({visible:!0}),lj=36e5,uj=function(e){return e.Decrypted=`Event.decrypted`,e.BeforeRedaction=`Event.beforeRedaction`,e.VisibilityChange=`Event.visibilityChange`,e.LocalEventIdReplaced=`Event.localEventIdReplaced`,e.Status=`Event.status`,e.Replaced=`Event.replaced`,e.RelationsCreated=`Event.relationsCreated`,e.SentinelUpdated=`Event.sentinelUpdated`,e}({}),dj=class e extends TE{setMetadata(e,t){var n,r,i=this.isState()&&this.getType()===P.RoomMember&&this.getSender()===this.getStateKey(),a=!1;if(i||!((n=this.sender)!=null&&(n=n.events)!=null&&n.member)){var o=e.getSentinelMember(this.getSender());o!==this.sender&&(a=!0),this.sender=o}if(i||!((r=this.target)!=null&&(r=r.events)!=null&&r.member)&&this.getType()===P.RoomMember){var s=e.getSentinelMember(this.getStateKey());s!==this.target&&(a=!0),this.target=s}this.isState()&&t&&(this.forwardLooking=!1),a&&this.emit(uj.SentinelUpdated)}constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};super(),this.event=e,g(this,`pushDetails`,{}),g(this,`_replacingEvent`,null),g(this,`_localRedactionEvent`,null),g(this,`_isCancelled`,!1),g(this,`clearEvent`,void 0),g(this,`visibility`,Joe),g(this,`_hasCachedExtEv`,!1),g(this,`_cachedExtEv`,void 0),g(this,`_decryptionFailureReason`,null),g(this,`senderCurve25519Key`,null),g(this,`claimedEd25519Key`,null),g(this,`keyForwardedBy`,void 0),g(this,`decryptionPromise`,null),g(this,`retryDecryption`,!1),g(this,`txnId`,void 0),g(this,`thread`,void 0),g(this,`threadId`,void 0),g(this,`localTimestamp`,void 0),g(this,`sender`,null),g(this,`target`,null),g(this,`status`,null),g(this,`error`,null),g(this,`forwardLooking`,!0),g(this,`reEmitter`,void 0),g(this,`unstableStickyExpiresAt`,void 0),[`state_key`,`type`,`sender`,`room_id`,`membership`].forEach(t=>{typeof e[t]==`string`&&(e[t]=qT(e[t]))}),[`membership`,`avatar_url`,`displayname`].forEach(t=>{typeof e.content?.[t]==`string`&&(e.content[t]=qT(e.content[t]))}),[`rel_type`].forEach(t=>{var n;typeof((n=e.content)==null||(n=n[`m.relates_to`])==null?void 0:n[t])==`string`&&(e.content[`m.relates_to`][t]=qT(e.content[`m.relates_to`][t]))}),this.txnId=e.txn_id;var t=this.getAge(),n=Date.now();this.localTimestamp=t===void 0?this.getTs()??n:n-t,this.reEmitter=new pD(this),this.unstableStickyInfo&&(this.unstableStickyInfo.duration_ttl_ms?this.unstableStickyExpiresAt=n+this.unstableStickyInfo.duration_ttl_ms:this.unstableStickyExpiresAt=Math.min(n,this.getTs())+this.unstableStickyInfo.duration_ms)}get unstableExtensibleEvent(){return this._hasCachedExtEv||(this._cachedExtEv=nD.ExtensibleEvents.parse(this.getEffectiveEvent())??void 0),this._cachedExtEv}invalidateExtensibleEvent(){this._hasCachedExtEv=!1}getEffectiveEvent(){var e=Object.assign({},this.getContent());if(this.getWireType()===P.RoomMessageEncrypted)for(var t of Object.entries(this.getWireContent())){var n=u(t,2),r=n[0],i=n[1];[`algorithm`,`ciphertext`,`device_id`,`sender_key`,`session_id`].includes(r)||e[r]===void 0&&(e[r]=i)}return Object.assign({},this.event,this.clearEvent,{content:e})}getId(){return this.event.event_id}getSender(){return this.event.sender}getType(){return this.clearEvent?this.clearEvent.type:this.event.type}getWireType(){return this.event.type}getRoomId(){return this.event.room_id}getTs(){return this.event.origin_server_ts}getDate(){return this.event.origin_server_ts?new Date(this.event.origin_server_ts):null}getDetails(){var e=this.getRoomId();return e?`id=${this.getId()} type=${this.getWireType()} sender=${this.getSender()} room=${e} ts=${this.getDate()?.toISOString()}`:`msgid=${this.getContent()[AE]} type=${this.getWireType()} sender=${this.getSender()}`}getOriginalContent(){return this._localRedactionEvent?{}:this.clearEvent?this.clearEvent.content??{}:this.event.content??{}}getContent(){return this._localRedactionEvent?{}:this._replacingEvent?this._replacingEvent.getContent()[`m.new_content`]??{}:this.getOriginalContent()}getWireContent(){return this.event.content||{}}get threadRootId(){if(!this.isState()){var e=this.getWireContent()?.[`m.relates_to`];if(e?.rel_type===oj.name)return e.event_id;if(this.thread)return this.thread.id;if(this.threadId!==void 0)return this.threadId;var t=this.getUnsigned();if(typeof t[RE.name]==`string`)return t[RE.name]}}get isThreadRoot(){return this.isState()?!1:!!this.getServerAggregatedRelation(oj.name)||this.threadRootId===this.getId()}get replyEventId(){var e;return(e=this.getWireContent()[`m.relates_to`])==null||(e=e[`m.in_reply_to`])==null?void 0:e.event_id}get relationEventId(){var e;return(e=this.getWireContent())==null||(e=e[`m.relates_to`])==null?void 0:e.event_id}getPrevContent(){return this.getUnsigned().prev_content||{}}getDirectionalContent(){return this.forwardLooking?this.getContent():this.getPrevContent()}getAge(){return this.getUnsigned().age}getLocalAge(){return Date.now()-this.localTimestamp}getStateKey(){return this.clearEvent?this.clearEvent.state_key:this.event.state_key}getWireStateKey(){return this.event.state_key}isState(){return this.event.state_key!==void 0}getMembershipAtEvent(){var e=this.getUnsigned();return tte.findIn(e)}makeEncrypted(e,t,n,r){this.clearEvent={type:this.event.type,content:this.event.content,state_key:this.event.state_key},this.event.type=e,this.event.content=t,this.senderCurve25519Key=n,this.claimedEd25519Key=r,this.isState()&&(this.event.state_key=`${this.clearEvent.type}:${this.clearEvent.state_key}`)}isBeingDecrypted(){return this.decryptionPromise!=null}getDecryptionPromise(){return this.decryptionPromise}isDecryptionFailure(){return this._decryptionFailureReason!==null}get decryptionFailureReason(){return this._decryptionFailureReason}shouldAttemptDecryption(){return!(this.isRedacted()||this.isBeingDecrypted()||this.clearEvent||!this.isEncrypted())}attemptDecryption(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};if(!n.isEncrypted())throw Error(`Attempt to decrypt event which isn't encrypted`);if(n.clearEvent&&!n.isDecryptionFailure())throw Error(`Attempt to decrypt event which has already been decrypted`);return n.decryptionPromise?(N.log(`Event ${n.getId()} already being decrypted; queueing a retry`),n.retryDecryption=!0,n.decryptionPromise):(n.decryptionPromise=n.decryptionLoop(e,r),n.decryptionPromise)})()}getKeyRequestRecipients(e){return[{userId:e,deviceId:`*`}]}decryptionLoop(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:{};for(yield Promise.resolve();;){n.retryDecryption=!1;var i=void 0;try{var a=yield e.decryptEvent(n);r.isRetry===!0&&N.info(`Decrypted event on retry (${n.getDetails()})`),n.setClearData(a),n._decryptionFailureReason=null}catch(e){var o=e instanceof cj?e.detailedString:String(e);if(i=e,n.retryDecryption){N.log(`Error decrypting event (${n.getDetails()}), but retrying: ${o}`);continue}N.warn(`Error decrypting event (${n.getDetails()}): ${o}`),n.setClearDataForDecryptionFailure(String(e)),n._decryptionFailureReason=e instanceof cj?e.code:Rie.UNKNOWN_ERROR}n.decryptionPromise=null,n.retryDecryption=!1,n.setPushDetails(),r.emit!==!1&&n.emit(uj.Decrypted,n,i);return}})()}setClearData(e){this.clearEvent=e.clearEvent,this.senderCurve25519Key=e.senderCurve25519Key??null,this.claimedEd25519Key=e.claimedEd25519Key??null,this.keyForwardedBy=e.keyForwardedBy,this.invalidateExtensibleEvent()}setClearDataForDecryptionFailure(e){this.clearEvent={type:P.RoomMessage,content:{msgtype:`m.bad.encrypted`,body:`** Unable to decrypt: ${e} **`}},this.senderCurve25519Key=null,this.claimedEd25519Key=null,this.invalidateExtensibleEvent()}getClearContent(){return this.clearEvent?this.clearEvent.content:null}isEncrypted(){return this.event.type===P.RoomMessageEncrypted}getSenderKey(){return this.senderCurve25519Key}getKeysClaimed(){return this.claimedEd25519Key?{ed25519:this.claimedEd25519Key}:{}}getClaimedEd25519Key(){return this.claimedEd25519Key}getForwardingCurve25519KeyChain(){return[]}isKeySourceUntrusted(){return!1}getKeyForwardingUser(){return this.keyForwardedBy}getUnsigned(){return this.event.unsigned||{}}setUnsigned(e){this.event.unsigned=e}unmarkLocallyRedacted(){var e=this._localRedactionEvent;return this._localRedactionEvent=null,this.event.unsigned&&(this.event.unsigned.redacted_because=void 0),!!e}markLocallyRedacted(e){this._localRedactionEvent||(this.emit(uj.BeforeRedaction,this,e),this._localRedactionEvent=e,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event)}applyVisibilityEvent(e){var t=e?.visible??!0,n=e?.reason??null,r=!1;this.visibility.visible===t?!this.visibility.visible&&this.visibility.reason!==n&&(r=!0):r=!0,r&&(t?this.visibility=Joe:this.visibility=Object.freeze({visible:!1,reason:n}),this.emit(uj.VisibilityChange,this,t))}messageVisibility(){return this.visibility}makeRedacted(e,t){if(!e.event)throw Error(`invalid redactionEvent in makeRedacted`);for(var n in this._localRedactionEvent=null,this.emit(uj.BeforeRedaction,this,e),this._replacingEvent=null,this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=e.event,this.event)this.event.hasOwnProperty(n)&&!Yoe.has(n)&&delete this.event[n];this.isEncrypted()&&(this.clearEvent=void 0);var r=this.getType()in Xoe?Xoe[this.getType()]:{},i=this.getContent();for(var a in i)i.hasOwnProperty(a)&&!r[a]&&delete i[a];!this.isThreadRoot&&this.threadRootId&&this.threadRootId!==this.getId()&&(this.moveAllRelatedToMainTimeline(t),e.moveToMainTimeline(t)),this.invalidateExtensibleEvent()}moveAllRelatedToMainTimeline(e){var t=this.thread;if(this.moveToMainTimeline(e),t)for(var n of t.events)n.getRelation()?.event_id===this.getId()&&n.moveAllRelatedToMainTimeline(e)}moveToMainTimeline(e){var t;(t=this.thread)==null||t.timelineSet.removeEvent(this.getId()),this.setThread(void 0);var n=e.getLiveTimeline();n.getTimelineSet().insertEventIntoTimeline(this,n,n.getState(oD.FORWARDS),!1)}isRedacted(){return!!this.getUnsigned().redacted_because}isRedaction(){return this.getType()===P.RoomRedaction}asVisibilityChange(){if(!IE.matches(this.getType()))return null;var e=this.getRelation();if(!e||e.rel_type!=`m.reference`)return null;var t=e.event_id;if(!t)return null;var n=this.getWireContent(),r=!!n.visible,i=n.reason;return i&&typeof i!=`string`?null:{visible:r,reason:i,eventId:t}}isVisibilityEvent(){return IE.matches(this.getType())}getRedactionEvent(){var e,t;return this.isRedacted()?(e=this.clearEvent)!=null&&e.unsigned?this.clearEvent?.unsigned.redacted_because??null:(t=this.event.unsigned)!=null&&t.redacted_because?this.event.unsigned.redacted_because:{}:null}getPushActions(){return this.pushDetails.actions||null}getPushDetails(){return this.pushDetails}setPushDetails(e,t){this.pushDetails={actions:e,rule:t}}handleRemoteEcho(e){var t=this.getUnsigned(),n=this.getId();this.event=e,t.redacted_because&&(this.event.unsigned||(this.event.unsigned={}),this.event.unsigned.redacted_because=t.redacted_because),this.setStatus(null),this.getId()!==n&&this.emit(uj.LocalEventIdReplaced,this),this.localTimestamp=Date.now()-(this.getAge()??0)}isSending(){return!!this.status}setStatus(e){this.status=e,this.emit(uj.Status,this,e)}replaceLocalEventId(e){this.event.event_id=e,this.emit(uj.LocalEventIdReplaced,this)}isRelation(e){var t=this.getWireContent()?.[`m.relates_to`];return this.isState()&&t!=null&&t.rel_type&&[EE.Replace,EE.Thread].includes(t.rel_type)?!1:!!(t!=null&&t.rel_type&&t.event_id&&(!e||t.rel_type===e))}getRelation(){return this.isRelation()?this.getWireContent()[`m.relates_to`]??null:null}makeReplaced(e){this.isRedacted()&&e||this.isState()||this._replacingEvent!==e&&(this._replacingEvent=e??null,this.emit(uj.Replaced,this),this.invalidateExtensibleEvent())}getAssociatedStatus(){return this._replacingEvent?this._replacingEvent.status:this._localRedactionEvent?this._localRedactionEvent.status:this.status}getServerAggregatedRelation(e){return this.getUnsigned()[`m.relations`]?.[e]}replacingEventId(){var e=this.getServerAggregatedRelation(EE.Replace);if(e)return e.event_id;if(this._replacingEvent)return this._replacingEvent.getId()}replacingEvent(){return this._replacingEvent}replacingEventDate(){var e=this.getServerAggregatedRelation(EE.Replace);if(e){var t=e.origin_server_ts;if(Number.isFinite(t))return new Date(t)}else if(this._replacingEvent)return this._replacingEvent.getDate()??void 0}localRedactionEvent(){return this._localRedactionEvent}getAssociatedId(){var e=this.getRelation();if(this.replyEventId)return this.replyEventId;if(e)return e.event_id;if(this.isRedaction())return this.event.redacts}hasAssociation(){return!!this.getAssociatedId()}updateAssociatedId(e){var t=this.getRelation();t?t.event_id=e:this.isRedaction()&&(this.event.redacts=e)}flagCancelled(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this._isCancelled=e}isCancelled(){return this._isCancelled}toSnapshot(){var t=new e(JSON.parse(JSON.stringify(this.event)));for(var n of Object.entries(this)){var r=u(n,2),i=r[0],a=r[1];i!==`event`&&(t[i]=a)}return t}isEquivalentTo(e){if(!e)return!1;if(e===this)return!0;var t=QT(this.event),n=QT(e.event);return JSON.stringify(t)===JSON.stringify(n)}toJSON(){var e=this.getEffectiveEvent();return this.isEncrypted()?{decrypted:e,encrypted:this.event}:e}setTxnId(e){this.txnId=e}getTxnId(){return this.txnId}setThread(e){this.isState()||(this.thread&&this.reEmitter.stopReEmitting(this.thread,[ej.Update]),this.thread=e,this.setThreadId(e?.id),e&&this.reEmitter.reEmit(e,[ej.Update]))}getThread(){return this.thread}setThreadId(e){this.threadId=e}get unstableStickyInfo(){var e;if((e=this.event.msc4354_sticky)!=null&&e.duration_ms)return{duration_ms:Math.min(lj,this.event.msc4354_sticky.duration_ms),duration_ttl_ms:this.event.unsigned?.msc4354_sticky_duration_ttl_ms}}},Yoe=new Set([`event_id`,`type`,`room_id`,`user_id`,`sender`,`state_key`,`prev_state`,`content`,`unsigned`,`origin_server_ts`]),Xoe={[P.RoomMember]:{membership:1},[P.RoomJoinRules]:{join_rule:1},[P.RoomPowerLevels]:{ban:1,events:1,events_default:1,kick:1,redact:1,state_default:1,users:1,users_default:1}},Zoe=[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`];function Qoe(e){return!Zoe.includes(e)}var fj=function(e){return e[e.NotStarted=0]=`NotStarted`,e[e.InProgress=1]=`InProgress`,e[e.Finished=2]=`Finished`,e}(fj||{}),pj=function(e){return e.Events=`RoomState.events`,e.Members=`RoomState.members`,e.NewMember=`RoomState.newMember`,e.Update=`RoomState.update`,e.BeaconLiveness=`RoomState.BeaconLiveness`,e.Marker=`RoomState.Marker`,e}({}),mj=class e extends TE{constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{status:fj.NotStarted};super(),this.roomId=e,this.oobMemberFlags=t,g(this,`reEmitter`,new pD(this)),g(this,`sentinels`,{}),g(this,`displayNameToUserIds`,new Map),g(this,`userIdsToDisplayNames`,{}),g(this,`tokenToInvite`,{}),g(this,`joinedMemberCount`,null),g(this,`summaryJoinedMemberCount`,null),g(this,`invitedMemberCount`,null),g(this,`summaryInvitedMemberCount`,null),g(this,`modified`,-1),g(this,`members`,{}),g(this,`events`,new Map),g(this,`paginationToken`,null),g(this,`beacons`,new Map),g(this,`_liveBeaconIds`,[]),g(this,`getVersionWarning`,!1),this.updateModifiedTime()}getRoomVersion(){var e=this.getStateEvents(P.RoomCreate,``);return e?e.getContent().room_version??`1`:(this.getVersionWarning||=(N.warn(`[getVersion] Room `+this.roomId+` does not have an m.room.create event`),!0),`1`)}getJoinedMemberCount(){return this.summaryJoinedMemberCount===null?(this.joinedMemberCount===null&&(this.joinedMemberCount=this.getMembers().reduce((e,t)=>t.membership===zE.Join?e+1:e,0)),this.joinedMemberCount):this.summaryJoinedMemberCount}setJoinedMemberCount(e){this.summaryJoinedMemberCount=e}getInvitedMemberCount(){return this.summaryInvitedMemberCount===null?(this.invitedMemberCount===null&&(this.invitedMemberCount=this.getMembers().reduce((e,t)=>t.membership===zE.Invite?e+1:e,0)),this.invitedMemberCount):this.summaryInvitedMemberCount}setInvitedMemberCount(e){this.summaryInvitedMemberCount=e}getMembers(){return Object.values(this.members)}getMembersExcept(e){return this.getMembers().filter(t=>!e.includes(t.userId))}getMember(e){return this.members[e]||null}getSentinelMember(e){if(!e)return null;var t=this.sentinels[e];if(t===void 0){t=new VE(this.roomId,e);var n=this.members[e];n!=null&&n.events.member&&t.setMembershipEvent(n.events.member,this),this.sentinels[e]=t}return t}getStateEvents(e,t){return this.events.has(e)?t===void 0?Array.from(this.events.get(e).values()):this.events.get(e).get(t)||null:t===void 0?[]:null}get hasLiveBeacons(){var e;return!!((e=this.liveBeaconIds)!=null&&e.length)}get liveBeaconIds(){return this._liveBeaconIds}clone(){var t=new e(this.roomId,this.oobMemberFlags),n=this.oobMemberFlags.status;return this.oobMemberFlags.status=fj.NotStarted,Array.from(this.events.values()).forEach(e=>{t.setStateEvents(Array.from(e.values()))}),this.oobMemberFlags.status=n,this.summaryInvitedMemberCount!==null&&t.setInvitedMemberCount(this.getInvitedMemberCount()),this.summaryJoinedMemberCount!==null&&t.setJoinedMemberCount(this.getJoinedMemberCount()),this.oobMemberFlags.status==fj.Finished&&this.getMembers().forEach(e=>{if(e.isOutOfBand()){var n;(n=t.getMember(e.userId))==null||n.markOutOfBand()}}),t}setUnknownStateEvents(e){var t=e.filter(e=>!this.events.has(e.getType())||!this.events.get(e.getType()).has(e.getStateKey()));this.setStateEvents(t)}setStateEvents(e,t){this.updateModifiedTime();var n=new Set,r=new Set;if(e.forEach(e=>{if(!(e.getRoomId()!==this.roomId||!e.isState())){jk.matches(e.getType())&&this.setBeacon(e);var t=this.getStateEventMatching(e);if(this.setStateEvent(e),e.getType()===P.RoomMember){var i=e.getStateKey();r.add(i);var a=e.getContent().displayname??``,o=this.userIdsToDisplayNames[i];if(o){var s=$T(o);s&&n.add(s)}if(a){var c=$T(a);c&&n.add(c)}this.updateDisplayNameCache(i,a),this.updateThirdPartyTokenCache(e)}this.emit(pj.Events,e,this,t)}}),this.onBeaconLivenessChange(),e.forEach(e=>{if(!(e.getRoomId()!==this.roomId||!e.isState()))if(e.getType()===P.RoomMember){var n=e.getStateKey();(e.getContent().membership===zE.Leave||e.getContent().membership===zE.Ban)&&(e.getContent().avatar_url=e.getContent().avatar_url||e.getPrevContent().avatar_url,e.getContent().displayname=e.getContent().displayname||e.getPrevContent().displayname);var r=this.getOrCreateMember(n,e);r.setMembershipEvent(e,this),this.updateMember(r),this.emit(pj.Members,e,this,r)}else if(e.getType()===P.RoomPowerLevels){if(e.getStateKey()!==``)return;var i=Object.values(this.members),a=this.getStateEvents(P.RoomCreate,``),o=$oe(this.getRoomVersion(),a);i.forEach(t=>{var n=t.getLastModifiedTime();if(a){var r=ese(t.userId,e,o);t.setPowerLevel(r,e)}n!==t.getLastModifiedTime()&&this.emit(pj.Members,e,this,t)}),this.sentinels={}}else Zee.matches(e.getType())&&this.emit(pj.Marker,e,t)}),n.size>0){var i=new Set;for(var a of n)(this.displayNameToUserIds.get(a)??[]).forEach(e=>i.add(e));for(var o of i)if(!r.has(o)){var s=this.members[o];s!=null&&s.events.member&&s.recalculateDisambiguatedName(this)&&this.emit(pj.Members,s.events.member,this,s)}}this.emit(pj.Update,this)}processBeaconEvents(e,t){var n=this;return f(function*(){if(!(!e.length||!n.beacons.size)){var r=[...n.beacons.values()].reduce((e,t)=>(e[t.beaconInfoId]=t,e),{}),i=(e,t)=>{if(Mk.matches(t.getType())){var n=r[e];n&&n.addLocations([t])}},a=function*(e){var n=e.getRelation()?.event_id;if(!n||!r[n]||!Mk.matches(e.getType())&&!e.isEncrypted())return{v:void 0};try{yield t.decryptEventIfNeeded(e),i(n,e)}catch{e.isDecryptionFailure()&&e.once(uj.Decrypted,f(function*(){i(n,e)}))}},o;for(var s of e)if(o=yield*a(s),o)return o.v}})()}getOrCreateMember(e,t){var n=this.members[e];return n||(n=new VE(this.roomId,e),this.members[e]=n,this.emit(pj.NewMember,t,this,n)),n}setStateEvent(e){this.events.has(e.getType())||this.events.set(e.getType(),new Map),this.events.get(e.getType()).set(e.getStateKey(),e)}setBeacon(e){var t=TD(e);if(this.beacons.has(t)){var n=this.beacons.get(t);if(e.isRedacted()){n.beaconInfoId===e.getRedactionEvent()?.redacts&&(n.destroy(),this.beacons.delete(t));return}return n.update(e)}if(!e.isRedacted()){var r=new Ute(e);this.reEmitter.reEmit(r,[CD.New,CD.Update,CD.Destroy,CD.LivenessChange]),this.emit(CD.New,e,r),r.on(CD.LivenessChange,this.onBeaconLivenessChange.bind(this)),r.on(CD.Destroy,this.onBeaconLivenessChange.bind(this)),this.beacons.set(r.identifier,r)}}onBeaconLivenessChange(){this._liveBeaconIds=Array.from(this.beacons.values()).filter(e=>e.isLive).map(e=>e.identifier),this.emit(pj.BeaconLiveness,this,this.hasLiveBeacons)}getStateEventMatching(e){return this.events.get(e.getType())?.get(e.getStateKey())??null}updateMember(e){var t=this.getStateEvents(P.RoomCreate,``),n=this.getStateEvents(P.RoomPowerLevels,``);if(n&&t){var r=ese(e.userId,n,$oe(this.getRoomVersion(),t));e.setPowerLevel(r,n)}delete this.sentinels[e.userId],this.members[e.userId]=e,this.joinedMemberCount=null,this.invitedMemberCount=null}needsOutOfBandMembers(){return this.oobMemberFlags.status===fj.NotStarted}outOfBandMembersReady(){return this.oobMemberFlags.status===fj.Finished}markOutOfBandMembersStarted(){this.oobMemberFlags.status===fj.NotStarted&&(this.oobMemberFlags.status=fj.InProgress)}markOutOfBandMembersFailed(){this.oobMemberFlags.status===fj.InProgress&&(this.oobMemberFlags.status=fj.NotStarted)}clearOutOfBandMembers(){var e=0;Object.keys(this.members).forEach(t=>{this.members[t].isOutOfBand()&&(++e,delete this.members[t])}),N.log(`LL: RoomState removed ${e} members...`),this.oobMemberFlags.status=fj.NotStarted}setOutOfBandMembers(e){N.log(`LL: RoomState about to set ${e.length} OOB members ...`),this.oobMemberFlags.status===fj.InProgress&&(N.log(`LL: RoomState put in finished state ...`),this.oobMemberFlags.status=fj.Finished,e.forEach(e=>this.setOutOfBandMember(e)),this.emit(pj.Update,this))}setOutOfBandMember(e){if(e.getType()===P.RoomMember){var t=e.getStateKey(),n=this.getMember(t);if(!(n&&!n.isOutOfBand())){var r=this.getOrCreateMember(t,e);r.setMembershipEvent(e,this),r.markOutOfBand(),this.updateDisplayNameCache(r.userId,r.name),this.setStateEvent(e),this.updateMember(r),this.emit(pj.Members,e,this,r)}}}setTypingEvent(e){Object.values(this.members).forEach(function(t){t.setTypingEvent(e)})}getInviteForThreePidToken(e){return this.tokenToInvite[e]||null}updateModifiedTime(){this.modified=Date.now()}getLastModifiedTime(){return this.modified}getUserIdsWithDisplayName(e){return this.displayNameToUserIds.get($T(e))??[]}maySendRedactionForEvent(e,t){var n=this.getMember(t);return!n||n.membership===zE.Leave||e.status||e.isRedacted()||!this.maySendEvent(P.RoomRedaction,t)?!1:e.getSender()===t?!0:this.hasSufficientPowerLevelFor(`redact`,n.powerLevel)}hasSufficientPowerLevelFor(e,t){var n=this.getStateEvents(P.RoomPowerLevels,``),r={};n&&(r=n.getContent());var i=50;return vee(r[e])&&(i=r[e]),t>=i}maySendMessage(e){return this.maySendEventOfType(P.RoomMessage,e,!1)}maySendEvent(e,t){return this.maySendEventOfType(e,t,!1)}mayClientSendStateEvent(e,t){return t.isGuest()||!t.credentials.userId?!1:this.maySendStateEvent(e,t.credentials.userId)}maySendStateEvent(e,t){return this.maySendEventOfType(e,t,!0)}maySendEventOfType(e,t,n){var r=this.getStateEvents(P.RoomPowerLevels,``),i,a={},o=0,s=0;r&&(i=r.getContent(),a=i.events||{},o=Number.isSafeInteger(i.state_default)?i.state_default:50,Number.isSafeInteger(i.events_default)&&(s=i.events_default));var c=n?o:s;return Number.isSafeInteger(a[e])&&(c=a[e]),(this.getMember(t)?.powerLevel??0)>=c}mayTriggerNotifOfType(e,t){var n=this.getMember(t);if(!n)return!1;var r=this.getStateEvents(P.RoomPowerLevels,``),i=50;return r&&r.getContent()&&r.getContent().notifications&&vee(r.getContent().notifications[e])&&(i=r.getContent().notifications[e]),n.powerLevel>=i}getJoinRule(){return(this.getStateEvents(P.RoomJoinRules,``)?.getContent()??{}).join_rule||xk.Invite}getHistoryVisibility(){return(this.getStateEvents(P.RoomHistoryVisibility,``)?.getContent()??{}).history_visibility||Ck.Shared}getGuestAccess(){return(this.getStateEvents(P.RoomGuestAccess,``)?.getContent()??{}).guest_access||Sk.Forbidden}findPredecessor(){if(arguments.length>0&&arguments[0]!==void 0&&arguments[0]){var e=this.getStateEvents(P.RoomPredecessor,``);if(e){var t=e.getContent(),n=t.predecessor_room_id,r=t.last_known_event_id;typeof r!=`string`&&(r=void 0);var i=t.via_servers;if(Array.isArray(i)||(i=void 0),typeof n==`string`)return{roomId:n,eventId:r,viaServers:i}}}var a=this.getStateEvents(P.RoomCreate,``);if(a){var o=a.getContent().predecessor;if(o){var s=o.room_id;if(typeof s==`string`){var c=o.event_id;return(typeof c!=`string`||c===``)&&(c=void 0),{roomId:s,eventId:c}}}}return null}updateThirdPartyTokenCache(e){if(e.getContent().third_party_invite){var t=(e.getContent().third_party_invite.signed||{}).token;t&&this.getStateEvents(P.RoomThirdPartyInvite,t)&&(this.tokenToInvite[t]=e)}}updateDisplayNameCache(e,t){var n=this.userIdsToDisplayNames[e];if(delete this.userIdsToDisplayNames[e],n){var r=$T(n),i=this.displayNameToUserIds.get(r);if(i){var a=i.filter(t=>t!==e);this.displayNameToUserIds.set(r,a)}}this.userIdsToDisplayNames[e]=t;var o=t&&$T(t);if(o){var s=this.displayNameToUserIds.get(o)??[];s.push(e),this.displayNameToUserIds.set(o,s)}}};function $oe(e,t){var n=new Set;if(Qoe(e)&&t){var r=t.getSender();r&&n.add(r);var i=t.getDirectionalContent().additional_creators;Array.isArray(i)&&i.forEach(e=>n.add(e))}return n}function ese(e,t,n){if(n.has(e))return 1/0;var r=t.getDirectionalContent(),i=r.users||{};return i[e]!==void 0&&Number.isInteger(i[e])?i[e]:r.users_default===void 0?0:r.users_default}function tse(e){return typeof e==`string`&&!!e&&e!==`undefined`&&e!==`null`||typeof e==`number`}var hj=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};g(this,`rooms`,{}),g(this,`users`,{}),g(this,`syncToken`,null),g(this,`filters`,new gE(()=>new Map)),g(this,`accountData`,new Map),g(this,`localStorage`,void 0),g(this,`oobMembers`,new Map),g(this,`pendingEvents`,{}),g(this,`clientOptions`,void 0),g(this,`pendingToDeviceBatches`,[]),g(this,`nextToDeviceBatchId`,0),g(this,`createUser`,void 0),g(this,`userProfiles`,new Map),g(this,`onRoomMember`,(e,t,n)=>{if(n.membership!==zE.Invite){var r=this.users[n.userId]||this.createUser?.call(this,n.userId);n.name&&(r.setDisplayName(n.name),n.events.member&&r.setRawDisplayName(n.events.member.getDirectionalContent().displayname)),n.events.member&&n.events.member.getContent().avatar_url&&r.setAvatarUrl(n.events.member.getContent().avatar_url),this.users[r.userId]=r}}),this.localStorage=e.localStorage}getSyncToken(){return this.syncToken}isNewlyCreated(){return Promise.resolve(!0)}setSyncToken(e){this.syncToken=e}storeRoom(e){this.rooms[e.roomId]=e,e.currentState.on(pj.Members,this.onRoomMember),e.currentState.getMembers().forEach(t=>{this.onRoomMember(null,e.currentState,t)})}setUserCreator(e){this.createUser=e}getRoom(e){return this.rooms[e]||null}getRooms(){return Object.values(this.rooms)}removeRoom(e){this.rooms[e]&&this.rooms[e].currentState.removeListener(pj.Members,this.onRoomMember),delete this.rooms[e]}getRoomSummaries(){return Object.values(this.rooms).map(function(e){return e.summary})}storeUser(e){this.users[e.userId]=e}getUser(e){return this.users[e]||null}getUsers(){return Object.values(this.users)}scrollback(e,t){return[]}storeEvents(e,t,n,r){}storeFilter(e){!(e!=null&&e.userId)||!(e!=null&&e.filterId)||this.filters.getOrCreate(e.userId).set(e.filterId,e)}getFilter(e,t){return this.filters.get(e)?.get(t)||null}getFilterIdByName(e){if(!this.localStorage)return null;var t=`mxjssdk_memory_filter_`+e;try{var n=this.localStorage.getItem(t);if(tse(n))return n}catch{}return null}setFilterIdByName(e,t){if(this.localStorage){var n=`mxjssdk_memory_filter_`+e;try{tse(t)?this.localStorage.setItem(n,t):this.localStorage.removeItem(n)}catch{}}}storeAccountDataEvents(e){e.forEach(e=>{Object.keys(e.getContent()).length?this.accountData.set(e.getType(),e):this.accountData.delete(e.getType())})}getAccountData(e){return this.accountData.get(e)}setSyncData(e){return Promise.resolve()}wantsSave(){return!1}save(e){return Promise.resolve()}startup(){return Promise.resolve()}getSavedSync(){return Promise.resolve(null)}getSavedSyncToken(){return Promise.resolve(null)}deleteAllData(){return this.rooms={},this.users={},this.syncToken=null,this.filters=new gE(()=>new Map),this.accountData=new Map,Promise.resolve()}getOutOfBandMembers(e){return Promise.resolve(this.oobMembers.get(e)||null)}setOutOfBandMembers(e,t){return this.oobMembers.set(e,t),Promise.resolve()}clearOutOfBandMembers(e){return this.oobMembers.delete(e),Promise.resolve()}getClientOptions(){return Promise.resolve(this.clientOptions)}storeClientOptions(e){return this.clientOptions=Object.assign({},e),Promise.resolve()}getPendingEvents(e){var t=this;return f(function*(){return t.pendingEvents[e]??[]})()}setPendingEvents(e,t){var n=this;return f(function*(){n.pendingEvents[e]=t})()}saveToDeviceBatches(e){for(var t of e)this.pendingToDeviceBatches.push({id:this.nextToDeviceBatchId++,eventType:t.eventType,txnId:t.txnId,batch:t.batch});return Promise.resolve()}getOldestToDeviceBatch(){var e=this;return f(function*(){return e.pendingToDeviceBatches.length===0?null:e.pendingToDeviceBatches[0]})()}removeToDeviceBatch(e){return this.pendingToDeviceBatches=this.pendingToDeviceBatches.filter(t=>t.id!==e),Promise.resolve()}getUserProfile(e){var t=this;return f(function*(){return t.userProfiles.get(e)})()}storeUserProfiles(e){var t=this;return f(function*(){e.forEach((e,n)=>t.userProfiles.set(n,e))})()}removeUserProfiles(e){var t=this;return f(function*(){e.forEach(e=>t.userProfiles.delete(e))})()}removeEventsFromRoom(e,t){return f(function*(){})()}destroy(){return f(function*(){})()}},gj=function(e){return e.ToWidget=`toWidget`,e.FromWidget=`fromWidget`,e}({});function nse(e){if(e===gj.ToWidget)return gj.FromWidget;if(e===gj.FromWidget)return gj.ToWidget;throw Error(`Invalid direction`)}var rse=function(e){return e.Prerelease1=`0.0.1`,e.Prerelease2=`0.0.2`,e}({}),_j=function(e){return e.MSC2762=`org.matrix.msc2762`,e.MSC2762_UPDATE_STATE=`org.matrix.msc2762_update_state`,e.MSC2871=`org.matrix.msc2871`,e.MSC2873=`org.matrix.msc2873`,e.MSC2931=`org.matrix.msc2931`,e.MSC2974=`org.matrix.msc2974`,e.MSC2876=`org.matrix.msc2876`,e.MSC3819=`org.matrix.msc3819`,e.MSC3846=`town.robin.msc3846`,e.MSC3869=`org.matrix.msc3869`,e.MSC3973=`org.matrix.msc3973`,e.MSC4039=`org.matrix.msc4039`,e}({}),ise=[rse.Prerelease1,rse.Prerelease2,_j.MSC2762,_j.MSC2762_UPDATE_STATE,_j.MSC2871,_j.MSC2873,_j.MSC2931,_j.MSC2974,_j.MSC2876,_j.MSC3819,_j.MSC3846,_j.MSC3869,_j.MSC3973,_j.MSC4039],ase=class extends wE.EventEmitter{sendDirection;transportWindow;inboundWindow;strictOriginCheck=!1;targetOrigin=`*`;timeoutSeconds=10;_ready=!1;_widgetId;outboundRequests=new Map;stopController=new AbortController;get ready(){return this._ready}get widgetId(){return this._widgetId||null}constructor(e,t,n,r){super(),this.sendDirection=e,this.transportWindow=n,this.inboundWindow=r,this._widgetId=t}get nextRequestId(){let e=`widgetapi-${Date.now()}`,t=0,n=e;for(;this.outboundRequests.has(n);)n=`${e}-${t++}`;return this.outboundRequests.set(n,null),n}sendInternal(e){console.log(`[PostmessageTransport] Sending object to ${this.targetOrigin}: `,e),this.transportWindow.postMessage(e,this.targetOrigin)}reply(e,t){return this.sendInternal({...e,response:t})}send(e,t){return this.sendComplete(e,t).then(e=>e.response)}sendComplete(e,t){if(!this.ready||!this.widgetId)return Promise.reject(Error(`Not ready or unknown widget ID`));let n={api:this.sendDirection,widgetId:this.widgetId,requestId:this.nextRequestId,action:e,data:t};return e===vj.UpdateVisibility&&(n.visible=t.visible),new Promise((e,t)=>{let r=t=>{s(),e(t)},i=e=>{s(),t(e)},a=setTimeout(()=>i(Error(`Request timed out`)),(this.timeoutSeconds||1)*1e3),o=()=>i(Error(`Transport stopped`));this.stopController.signal.addEventListener(`abort`,o);let s=()=>{this.outboundRequests.delete(n.requestId),clearTimeout(a),this.stopController.signal.removeEventListener(`abort`,o)};this.outboundRequests.set(n.requestId,{request:n,resolve:r,reject:i}),this.sendInternal(n)})}start(){this.inboundWindow.addEventListener(`message`,this.handleMessage),this._ready=!0}stop(){this._ready=!1,this.stopController.abort(),this.inboundWindow.removeEventListener(`message`,this.handleMessage)}handleMessage=e=>{if(this.stopController.signal.aborted||!e.data||this.strictOriginCheck&&e.origin!==globalThis.origin)return;let t=e.data;if(!(!t.action||!t.requestId||!t.widgetId))if(t.response){if(t.api!==this.sendDirection)return;this.handleResponse(t)}else{let e=t;if(e.api!==nse(this.sendDirection))return;this.handleRequest(e)}};handleRequest(e){if(this.widgetId){if(this.widgetId!==e.widgetId)return}else this._widgetId=e.widgetId;this.emit(`message`,new CustomEvent(`message`,{detail:e}))}handleResponse(e){if(e.widgetId!==this.widgetId)return;let t=this.outboundRequests.get(e.requestId);if(t)if(lse(e.response)){let{message:n,...r}=e.response.error;t.reject(new Ej(n,r))}else t.resolve(e)}},vj=function(e){return e.SupportedApiVersions=`supported_api_versions`,e.Capabilities=`capabilities`,e.NotifyCapabilities=`notify_capabilities`,e.ThemeChange=`theme_change`,e.LanguageChange=`language_change`,e.TakeScreenshot=`screenshot`,e.UpdateVisibility=`visibility`,e.OpenIDCredentials=`openid_credentials`,e.WidgetConfig=`widget_config`,e.CloseModalWidget=`close_modal`,e.ButtonClicked=`button_clicked`,e.SendEvent=`send_event`,e.SendToDevice=`send_to_device`,e.UpdateState=`update_state`,e.UpdateTurnServers=`update_turn_servers`,e}({}),yj=function(e){return e.SupportedApiVersions=`supported_api_versions`,e.ContentLoaded=`content_loaded`,e.SendSticker=`m.sticker`,e.UpdateAlwaysOnScreen=`set_always_on_screen`,e.GetOpenIDCredentials=`get_openid`,e.CloseModalWidget=`close_modal`,e.OpenModalWidget=`open_modal`,e.SetModalButtonEnabled=`set_button_enabled`,e.SendEvent=`send_event`,e.SendToDevice=`send_to_device`,e.WatchTurnServers=`watch_turn_servers`,e.UnwatchTurnServers=`unwatch_turn_servers`,e.BeeperReadRoomAccountData=`com.beeper.read_room_account_data`,e.MSC2876ReadEvents=`org.matrix.msc2876.read_events`,e.MSC2931Navigate=`org.matrix.msc2931.navigate`,e.MSC2974RenegotiateCapabilities=`org.matrix.msc2974.request_capabilities`,e.MSC3869ReadRelations=`org.matrix.msc3869.read_relations`,e.MSC3973UserDirectorySearch=`org.matrix.msc3973.user_directory_search`,e.MSC4039GetMediaConfigAction=`org.matrix.msc4039.get_media_config`,e.MSC4039UploadFileAction=`org.matrix.msc4039.upload_file`,e.MSC4039DownloadFileAction=`org.matrix.msc4039.download_file`,e.MSC4157UpdateDelayedEvent=`org.matrix.msc4157.update_delayed_event`,e}({}),bj=function(e){return e.Allowed=`allowed`,e.Blocked=`blocked`,e.PendingUserConfirmation=`request`,e}({}),ose=function(e){return e.Custom=`m.custom`,e.JitsiMeet=`m.jitsi`,e.Stickerpicker=`m.stickerpicker`,e}({}),sse=function(e){return e.Close=`m.close`,e}({}),xj=function(e){return e.Event=`event`,e.State=`state_event`,e.ToDevice=`to_device`,e.RoomAccount=`room_account`,e}({}),Sj=function(e){return e.Send=`send`,e.Receive=`receive`,e}({}),Cj=class e{direction;eventType;kind;keyStr;raw;constructor(e,t,n,r,i){this.direction=e,this.eventType=t,this.kind=n,this.keyStr=r,this.raw=i}matchesAsStateEvent(e,t,n){return this.kind!==xj.State||this.direction!==e||this.eventType!==t?!1:this.keyStr===null||this.keyStr===n}matchesAsToDeviceEvent(e,t){return!(this.kind!==xj.ToDevice||this.direction!==e||this.eventType!==t)}matchesAsRoomEvent(e,t,n=null){if(this.kind!==xj.Event||this.direction!==e||this.eventType!==t)return!1;if(this.eventType===`m.room.message`){if(this.keyStr===null||this.keyStr===n)return!0}else return!0;return!1}matchesAsRoomAccountData(e,t){return!(this.kind!==xj.RoomAccount||this.direction!==e||this.eventType!==t)}static forStateEvent(t,n,r){n=n.replace(/#/g,`\\#`),r=r==null?``:`#${r}`;let i=`org.matrix.msc2762.${t}.state_event:${n}${r}`;return e.findEventCapabilities([i])[0]}static forToDeviceEvent(t,n){let r=`org.matrix.msc3819.${t}.to_device:${n}`;return e.findEventCapabilities([r])[0]}static forRoomEvent(t,n){let r=`org.matrix.msc2762.${t}.event:${n}`;return e.findEventCapabilities([r])[0]}static forRoomMessageEvent(t,n){n??=``;let r=`org.matrix.msc2762.${t}.event:m.room.message#${n}`;return e.findEventCapabilities([r])[0]}static forRoomAccountData(t,n){let r=`com.beeper.capabilities.${t}.room_account_data:${n}`;return e.findEventCapabilities([r])[0]}static findEventCapabilities(t){let n=[];for(let r of t){let t=null,i,a=null;if(r.startsWith(`org.matrix.msc2762.send.event:`)?(t=Sj.Send,a=xj.Event,i=r.substring(30)):r.startsWith(`org.matrix.msc2762.send.state_event:`)?(t=Sj.Send,a=xj.State,i=r.substring(36)):r.startsWith(`org.matrix.msc3819.send.to_device:`)?(t=Sj.Send,a=xj.ToDevice,i=r.substring(34)):r.startsWith(`org.matrix.msc2762.receive.event:`)?(t=Sj.Receive,a=xj.Event,i=r.substring(33)):r.startsWith(`org.matrix.msc2762.receive.state_event:`)?(t=Sj.Receive,a=xj.State,i=r.substring(39)):r.startsWith(`org.matrix.msc3819.receive.to_device:`)?(t=Sj.Receive,a=xj.ToDevice,i=r.substring(37)):r.startsWith(`com.beeper.capabilities.receive.room_account_data:`)&&(t=Sj.Receive,a=xj.RoomAccount,i=r.substring(50)),t===null||a===null||i===void 0)continue;let o=i.startsWith(`m.room.message#`)||a===xj.State,s=null;if(i.includes(`#`)&&o){let e=i.split(`#`),t=e.findIndex(e=>!e.endsWith(`\\`));i=e.slice(0,t+1).map(e=>e.endsWith(`\\`)?e.substring(0,e.length-1):e).join(`#`),s=e.slice(t+1).join(`#`)}n.push(new e(t,i,a,s,r))}return n}},wj=function(e){return e.AnyRoom=`*`,e}({}),Tj=function(e){return e.Cancel=`cancel`,e.Restart=`restart`,e.Send=`send`,e}({}),Ej=class extends Error{data;static{this.prototype.name=this.name}constructor(e,t){super(e),this.data=t}},cse=class extends wE.EventEmitter{transport;capabilitiesFinished=!1;supportsMSC2974Renegotiate=!1;requestedCapabilities=[];approvedCapabilities;cachedClientVersions;turnServerWatchers=0;constructor(e=null,t=null){if(super(),!globalThis.parent)throw Error(`No parent window. This widget doesn't appear to be embedded properly.`);this.transport=new ase(gj.FromWidget,e,globalThis.parent,globalThis),this.transport.targetOrigin=t,this.transport.on(`message`,this.handleMessage.bind(this))}hasCapability(e){return Array.isArray(this.approvedCapabilities)?this.approvedCapabilities.includes(e):this.requestedCapabilities.includes(e)}requestCapability(e){if(this.capabilitiesFinished&&!this.supportsMSC2974Renegotiate)throw Error(`Capabilities have already been negotiated`);this.requestedCapabilities.push(e)}requestCapabilities(e){for(let t of e)this.requestCapability(t)}requestCapabilityForRoomTimeline(e){this.requestCapability(`org.matrix.msc2762.timeline:${e}`)}requestCapabilityToSendState(e,t){this.requestCapability(Cj.forStateEvent(Sj.Send,e,t).raw)}requestCapabilityToReceiveState(e,t){this.requestCapability(Cj.forStateEvent(Sj.Receive,e,t).raw)}requestCapabilityToSendToDevice(e){this.requestCapability(Cj.forToDeviceEvent(Sj.Send,e).raw)}requestCapabilityToReceiveToDevice(e){this.requestCapability(Cj.forToDeviceEvent(Sj.Receive,e).raw)}requestCapabilityToSendEvent(e){this.requestCapability(Cj.forRoomEvent(Sj.Send,e).raw)}requestCapabilityToReceiveEvent(e){this.requestCapability(Cj.forRoomEvent(Sj.Receive,e).raw)}requestCapabilityToSendMessage(e){this.requestCapability(Cj.forRoomMessageEvent(Sj.Send,e).raw)}requestCapabilityToReceiveMessage(e){this.requestCapability(Cj.forRoomMessageEvent(Sj.Receive,e).raw)}requestCapabilityToReceiveRoomAccountData(e){this.requestCapability(Cj.forRoomAccountData(Sj.Receive,e).raw)}requestOpenIDConnectToken(){return new Promise((e,t)=>{this.transport.sendComplete(yj.GetOpenIDCredentials,{}).then(n=>{let r=n.response;if(r.state===bj.Allowed)e(r);else if(r.state===bj.Blocked)t(Error(`User declined to verify their identity`));else if(r.state===bj.PendingUserConfirmation){let i=a=>{a.preventDefault();let o=a.detail;o.data.original_request_id===n.requestId&&(o.data.state===bj.Allowed?(e(o.data),this.transport.reply(o,{})):o.data.state===bj.Blocked?(t(Error(`User declined to verify their identity`)),this.transport.reply(o,{})):(t(Error(`Invalid state on reply: `+r.state)),this.transport.reply(o,{error:{message:`Invalid state`}})),this.off(`action:${vj.OpenIDCredentials}`,i))};this.on(`action:${vj.OpenIDCredentials}`,i)}else t(Error(`Invalid state: `+r.state))}).catch(t)})}updateRequestedCapabilities(){return this.transport.send(yj.MSC2974RenegotiateCapabilities,{capabilities:this.requestedCapabilities}).then()}sendContentLoaded(){return this.transport.send(yj.ContentLoaded,{}).then()}sendSticker(e){return this.transport.send(yj.SendSticker,e).then()}setAlwaysOnScreen(e){return this.transport.send(yj.UpdateAlwaysOnScreen,{value:e}).then(e=>e.success)}openModalWidget(e,t,n=[],r={},i=ose.Custom){return this.transport.send(yj.OpenModalWidget,{type:i,url:e,name:t,buttons:n,data:r}).then()}closeModalWidget(e={}){return this.transport.send(yj.CloseModalWidget,e).then()}sendRoomEvent(e,t,n,r,i,a){return this.sendEvent(e,void 0,t,n,r,i,a)}sendStateEvent(e,t,n,r,i,a){return this.sendEvent(e,t,n,r,i,a)}sendEvent(e,t,n,r,i,a,o){return this.transport.send(yj.SendEvent,{type:e,content:n,...t!==void 0&&{state_key:t},...r!==void 0&&{room_id:r},...i!==void 0&&{delay:i},...a!==void 0&&{parent_delay_id:a},...o!==void 0&&{sticky_duration_ms:o}})}cancelScheduledDelayedEvent(e){return this.transport.send(yj.MSC4157UpdateDelayedEvent,{delay_id:e,action:Tj.Cancel})}restartScheduledDelayedEvent(e){return this.transport.send(yj.MSC4157UpdateDelayedEvent,{delay_id:e,action:Tj.Restart})}sendScheduledDelayedEvent(e){return this.transport.send(yj.MSC4157UpdateDelayedEvent,{delay_id:e,action:Tj.Send})}sendToDevice(e,t,n){return this.transport.send(yj.SendToDevice,{type:e,encrypted:t,messages:n})}readRoomAccountData(e,t){let n={type:e};return t&&(t.includes(wj.AnyRoom)?n.room_ids=wj.AnyRoom:n.room_ids=t),this.transport.send(yj.BeeperReadRoomAccountData,n).then(e=>e.events)}readRoomEvents(e,t,n,r,i){let a={type:e,msgtype:n};return t!==void 0&&(a.limit=t),r&&(r.includes(wj.AnyRoom)?a.room_ids=wj.AnyRoom:a.room_ids=r),i&&(a.since=i),this.transport.send(yj.MSC2876ReadEvents,a).then(e=>e.events)}async readEventRelations(e,t,n,r,i,a,o,s){if(!(await this.getClientVersions()).includes(_j.MSC3869))throw Error(`The read_relations action is not supported by the client.`);let c={event_id:e,rel_type:n,event_type:r,room_id:t,to:o,from:a,limit:i,direction:s};return this.transport.send(yj.MSC3869ReadRelations,c)}readStateEvents(e,t,n,r){let i={type:e,state_key:n===void 0?!0:n};return t!==void 0&&(i.limit=t),r&&(r.includes(wj.AnyRoom)?i.room_ids=wj.AnyRoom:i.room_ids=r),this.transport.send(yj.MSC2876ReadEvents,i).then(e=>e.events)}setModalButtonEnabled(e,t){if(e===sse.Close)throw Error(`The close button cannot be disabled`);return this.transport.send(yj.SetModalButtonEnabled,{button:e,enabled:t}).then()}navigateTo(e){if(!e||!e.startsWith(`https://matrix.to/#`))throw Error(`Invalid matrix.to URI`);return this.transport.send(yj.MSC2931Navigate,{uri:e}).then()}async*getTurnServers(){let e,t=async t=>{t.preventDefault(),e(t.detail.data),this.transport.reply(t.detail,{})};if(this.on(`action:${vj.UpdateTurnServers}`,t),this.turnServerWatchers===0)try{await this.transport.send(yj.WatchTurnServers,{})}catch(e){throw this.off(`action:${vj.UpdateTurnServers}`,t),e}this.turnServerWatchers++;try{for(;;)yield await new Promise(t=>e=t)}finally{this.off(`action:${vj.UpdateTurnServers}`,t),this.turnServerWatchers--,this.turnServerWatchers===0&&await this.transport.send(yj.UnwatchTurnServers,{})}}async searchUserDirectory(e,t){if(!(await this.getClientVersions()).includes(_j.MSC3973))throw Error(`The user_directory_search action is not supported by the client.`);let n={search_term:e,limit:t};return this.transport.send(yj.MSC3973UserDirectorySearch,n)}async getMediaConfig(){if(!(await this.getClientVersions()).includes(_j.MSC4039))throw Error(`The get_media_config action is not supported by the client.`);return this.transport.send(yj.MSC4039GetMediaConfigAction,{})}async uploadFile(e){if(!(await this.getClientVersions()).includes(_j.MSC4039))throw Error(`The upload_file action is not supported by the client.`);let t={file:e};return this.transport.send(yj.MSC4039UploadFileAction,t)}async downloadFile(e){if(!(await this.getClientVersions()).includes(_j.MSC4039))throw Error(`The download_file action is not supported by the client.`);let t={content_uri:e};return this.transport.send(yj.MSC4039DownloadFileAction,t)}start(){this.transport.start(),this.getClientVersions().then(e=>{e.includes(_j.MSC2974)&&(this.supportsMSC2974Renegotiate=!0)})}handleMessage(e){let t=new CustomEvent(`action:${e.detail.action}`,{detail:e.detail,cancelable:!0});if(this.emit(`action:${e.detail.action}`,t),!t.defaultPrevented)switch(e.detail.action){case vj.SupportedApiVersions:return this.replyVersions(e.detail);case vj.Capabilities:return this.handleCapabilities(e.detail);case vj.UpdateVisibility:return this.transport.reply(e.detail,{});case vj.NotifyCapabilities:return this.transport.reply(e.detail,{});default:return this.transport.reply(e.detail,{error:{message:`Unknown or unsupported to-widget action: `+e.detail.action}})}}replyVersions(e){this.transport.reply(e,{supported_versions:ise})}getClientVersions(){return Array.isArray(this.cachedClientVersions)?Promise.resolve(this.cachedClientVersions):this.transport.send(yj.SupportedApiVersions,{}).then(e=>(this.cachedClientVersions=e.supported_versions,e.supported_versions)).catch(e=>(console.warn(`non-fatal error getting supported client versions: `,e),[]))}handleCapabilities(e){return this.capabilitiesFinished?this.transport.reply(e,{error:{message:`Capability negotiation already completed`}}):this.getClientVersions().then(t=>(t.includes(_j.MSC2871)?this.once(`action:${vj.NotifyCapabilities}`,e=>{this.approvedCapabilities=e.detail.data.approved,this.emit(`ready`)}):this.emit(`ready`),this.capabilitiesFinished=!0,this.transport.reply(e,{capabilities:this.requestedCapabilities})))}},Dj=function(e){return e.Screenshots=`m.capability.screenshot`,e.StickerSending=`m.sticker`,e.AlwaysOnScreen=`m.always_on_screen`,e.RequiresClient=`io.element.requires_client`,e.MSC2931Navigate=`org.matrix.msc2931.navigate`,e.MSC3846TurnServers=`town.robin.msc3846.turn_servers`,e.MSC3973UserDirectorySearch=`org.matrix.msc3973.user_directory_search`,e.MSC4039UploadFile=`org.matrix.msc4039.upload_file`,e.MSC4039DownloadFile=`org.matrix.msc4039.download_file`,e.MSC4157SendDelayedEvent=`org.matrix.msc4157.send.delayed_event`,e.MSC4157UpdateDelayedEvent=`org.matrix.msc4157.update_delayed_event`,e.MSC4407SendStickyEvent=`org.matrix.msc4407.send.sticky_event`,e.MSC4407ReceiveStickyEvent=`org.matrix.msc4407.receive.sticky_event`,e}({});Dj.StickerSending,Dj.AlwaysOnScreen;function lse(e){let t=e.error;return typeof t==`object`&&!!t&&`message`in t&&typeof t.message==`string`}function Oj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function kj(e){for(var t=1;te.getType()===t.type)){for(var t=a.pendingSendingEventsTxId.find(t=>t.id===e.getId())?.txId;!t&&a.pendingSendingEventsTxId.length>0;)yield new Promise(e=>a.eventEmitter.once(jj.PendingEventsChanged,()=>e())),t=a.pendingSendingEventsTxId.find(t=>t.id===e.getId())?.txId;t&&(e.setTxnId(t),e.setUnsigned(kj(kj({},e.getUnsigned()),{},{transaction_id:t}))),a.pendingSendingEventsTxId=a.pendingSendingEventsTxId.filter(t=>t.id!==e.getId()),a.pendingSendingEventsTxId.length===0&&a.eventEmitter.emit(jj.PendingEventsChanged)}});return function(t){return e.apply(this,arguments)}}()),g(this,`onEvent`,function(){var e=f(function*(e){if(e.preventDefault(),e.detail.data.room_id===a.roomId){var t=new dj(e.detail.data);yield a.updateTxId(t),yield a.syncApiResolver.promise,a.syncApi instanceof mO?(yield a.supportUpdateState())?yield a.syncApi.injectRoomEvents(a.room,void 0,[],[t]):yield a.syncApi.injectRoomEvents(a.room,[],void 0,[t]):(yield a.supportUpdateState())?yield a.syncApi.injectRoomEvents(a.room,[],[t]):N.error(`slididng sync cannot be used in widget mode if the client widget driver does not support the version: 'org.matrix.msc2762_update_state'`),a.emit(L.Event,t),t.unstableStickyInfo!==void 0&&a.room._unstable_addStickyEvents([t]),a.setSyncState(lO.Syncing),N.info(`Received event ${t.getId()} ${t.getType()}`)}else{var n=e.detail.data,r=n.event_id,i=n.room_id;N.info(`Received event ${r} for a different room ${i}; discarding`)}yield a.ack(e)});return function(t){return e.apply(this,arguments)}}()),g(this,`onToDevice`,function(){var e=f(function*(e){e.preventDefault();var t=new dj({type:e.detail.data.type,sender:e.detail.data.sender,content:e.detail.data.content});e.detail.data.encrypted&&t.makeEncrypted(P.RoomMessageEncrypted,{},``,``),a.emit(L.ToDeviceEvent,t),a.setSyncState(lO.Syncing),yield a.ack(e)});return function(t){return e.apply(this,arguments)}}()),g(this,`onStateUpdate`,function(){var e=f(function*(e){e.preventDefault(),(yield a.supportUpdateState())||N.warn(`received update_state widget action but the widget driver did not claim to support 'org.matrix.msc2762_update_state'`),yield a.syncApiResolver.promise;for(var t of e.detail.data.state)if(t.room_id===a.roomId){var n=new dj(t);a.syncApi instanceof mO?yield a.syncApi.injectRoomEvents(a.room,void 0,[n]):yield a.syncApi.injectRoomEvents(a.room,[n]),N.debug(`Updated state entry ${n.getType()} ${n.getStateKey()} to ${n.getId()}`)}else{var r=e.detail.data,i=r.event_id,o=r.room_id;N.info(`Received state entry ${i} for a different room ${o}; discarding`)}yield a.ack(e)});return function(t){return e.apply(this,arguments)}}());var s=this.widgetApi.transport.send.bind(this.widgetApi.transport);this.widgetApi.transport.send=function(){var e=f(function*(e,t){try{return yield s(e,t)}catch(e){Nj(e)}});return function(t,n){return e.apply(this,arguments)}}();var c=this.widgetApi.transport.sendComplete.bind(this.widgetApi.transport);this.widgetApi.transport.sendComplete=function(){var e=f(function*(e,t){try{return yield c(e,t)}catch(e){Nj(e)}});return function(t,n){return e.apply(this,arguments)}}(),this.widgetApiReady=new Promise(e=>this.widgetApi.once(`ready`,e)),this.roomStateSynced=(o=t.receiveState)!=null&&o.length?new Promise(e=>this.widgetApi.once(`action:${vj.UpdateState}`,e)):Promise.resolve(),this.requestInitialCapabilities(t,n),e.on(`action:${vj.SendEvent}`,this.onEvent),e.on(`action:${vj.SendToDevice}`,this.onToDevice),e.on(`action:${vj.UpdateState}`,this.onStateUpdate),e.start(),i&&e.sendContentLoaded()}requestInitialCapabilities(e,t){var n,r,i,a,o,s,c,l,u,d,f,p;((n=e.sendEvent)!=null&&n.length||(r=e.receiveEvent)!=null&&r.length||e.sendMessage===!0||Array.isArray(e.sendMessage)&&e.sendMessage.length||e.receiveMessage===!0||Array.isArray(e.receiveMessage)&&e.receiveMessage.length||(i=e.sendState)!=null&&i.length||(a=e.receiveState)!=null&&a.length)&&this.widgetApi.requestCapabilityForRoomTimeline(t),(o=e.sendEvent)==null||o.forEach(e=>this.widgetApi.requestCapabilityToSendEvent(e)),(s=e.receiveEvent)==null||s.forEach(e=>this.widgetApi.requestCapabilityToReceiveEvent(e)),e.sendMessage===!0?this.widgetApi.requestCapabilityToSendMessage():Array.isArray(e.sendMessage)&&e.sendMessage.forEach(e=>this.widgetApi.requestCapabilityToSendMessage(e)),e.receiveMessage===!0?this.widgetApi.requestCapabilityToReceiveMessage():Array.isArray(e.receiveMessage)&&e.receiveMessage.forEach(e=>this.widgetApi.requestCapabilityToReceiveMessage(e)),(c=e.sendState)==null||c.forEach(e=>{var t=e.eventType,n=e.stateKey;return this.widgetApi.requestCapabilityToSendState(t,n)}),(l=e.receiveState)==null||l.forEach(e=>{var t=e.eventType,n=e.stateKey;return this.widgetApi.requestCapabilityToReceiveState(t,n)}),(u=e.sendToDevice)==null||u.forEach(e=>this.widgetApi.requestCapabilityToSendToDevice(e)),(d=e.receiveToDevice)==null||d.forEach(e=>this.widgetApi.requestCapabilityToReceiveToDevice(e)),e.sendDelayedEvents&&((f=e.sendEvent)!=null&&f.length||e.sendMessage===!0||Array.isArray(e.sendMessage)&&e.sendMessage.length||(p=e.sendState)!=null&&p.length)&&this.widgetApi.requestCapability(Dj.MSC4157SendDelayedEvent),e.updateDelayedEvents&&this.widgetApi.requestCapability(Dj.MSC4157UpdateDelayedEvent),e.sendSticky&&this.widgetApi.requestCapability(Dj.MSC4407SendStickyEvent),e.receiveSticky&&this.widgetApi.requestCapability(Dj.MSC4407ReceiveStickyEvent),e.turnServers&&this.widgetApi.requestCapability(Dj.MSC3846TurnServers)}supportUpdateState(){var e=this;return f(function*(){return(yield e.widgetApi.getClientVersions()).includes(_j.MSC2762_UPDATE_STATE)})()}startClient(){var e=arguments,t=this;return f(function*(){var n=e.length>0&&e[0]!==void 0?e[0]:{};t.lifecycle=new AbortController;var r=t.getUserId();r&&t.store.storeUser(new iD(r)),n.slidingSync?t.syncApi=new xie(n.slidingSync,t,n,t.buildSyncApiOptions()):t.syncApi=new mO(t,n,t.buildSyncApiOptions()),t.syncApiResolver.resolve(),t.room=t.syncApi.createRoom(t.roomId),t.store.storeRoom(t.room),yield t.widgetApiReady,(yield t.supportUpdateState())?yield t.roomStateSynced:yield Promise.all(t.capabilities.receiveState?.map(function(){var e=f(function*(e){var n=e.eventType,r=e.stateKey,i=(yield t.widgetApi.readStateEvents(n,void 0,r,[t.roomId])).map(e=>new dj(e));t.syncApi instanceof mO?yield t.syncApi.injectRoomEvents(t.room,void 0,i):yield t.syncApi.injectRoomEvents(t.room,i),i.forEach(e=>{t.emit(L.Event,e),N.info(`Backfilled event ${e.getId()} ${e.getType()} ${e.getStateKey()}`)})});return function(t){return e.apply(this,arguments)}}())??[]),n.clientWellKnownPollPeriod!==void 0&&(t.clientWellKnownIntervalID=setInterval(()=>{t.fetchClientWellKnown()},1e3*n.clientWellKnownPollPeriod),t.fetchClientWellKnown()),t.setSyncState(lO.Syncing),N.info(`Finished initial sync`),t.matrixRTC.start(),t.capabilities.turnServers&&t.watchTurnServers()})()}stopClient(){this.widgetApi.off(`action:${vj.SendEvent}`,this.onEvent),this.widgetApi.off(`action:${vj.SendToDevice}`,this.onToDevice),this.widgetApi.off(`action:${vj.UpdateState}`,this.onStateUpdate),super.stopClient(),this.lifecycle.abort()}joinRoom(e){var t=this;return f(function*(){if(e===t.roomId)return t.room;throw Error(`Unknown room: ${e}`)})()}encryptAndSendEvent(e,t,n,r){var i=this;return f(function*(){var a=r,o;n&&vk(n)?o=n:a||=n;var s=a?.[`org.matrix.msc4354.sticky_duration_ms`];if(s!==void 0&&typeof s!=`number`)throw Error(`Sticky duration must be a number when defined`);var c=s,l=t.event.redacts?kj(kj({},t.getContent()),{},{redacts:t.event.redacts}):t.getContent();if(o){var u=yield i.widgetApi.sendRoomEvent(t.getType(),l,e.roomId,`delay`in o?o.delay:void 0,`parent_delay_id`in o?o.parent_delay_id:void 0,c).catch(Pj);return i.validateSendDelayedEventResponse(u)}var d=t.getTxnId();d&&i.pendingSendingEventsTxId.push({type:t.getType(),id:void 0,txId:d});var f;try{f=yield i.widgetApi.sendRoomEvent(t.getType(),l,e.roomId,void 0,void 0,c).catch(Pj)}catch(n){throw i.updatePendingEventStatus(e,t,fD.NOT_SENT),n}return e.updatePendingEvent(t,fD.SENT,f.event_id),i.pendingSendingEventsTxId.forEach(e=>{e.txId===d&&(e.id=f.event_id)}),i.eventEmitter.emit(jj.PendingEventsChanged),{event_id:f.event_id}})()}sendStateEvent(e,t,n){var r=arguments,i=this;return f(function*(){var a=r.length>3&&r[3]!==void 0?r[3]:``,o=yield i.widgetApi.sendStateEvent(t,a,n,e).catch(Pj);if(o.event_id===void 0)throw Error(`'event_id' absent from response to an event request`);return{event_id:o.event_id}})()}_unstable_sendDelayedStateEvent(e,t,n,r){var i=arguments,a=this;return f(function*(){var o=i.length>4&&i[4]!==void 0?i[4]:``;if(!(yield a.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`sendDelayedStateEvent`);var s=yield a.widgetApi.sendStateEvent(n,o,r,e,`delay`in t?t.delay:void 0,`parent_delay_id`in t?t.parent_delay_id:void 0).catch(Pj);return a.validateSendDelayedEventResponse(s)})()}validateSendDelayedEventResponse(e){if(e.delay_id===void 0)throw Error(`'delay_id' absent from response to a delayed event request`);return{delay_id:e.delay_id}}_unstable_updateDelayedEvent(e,t){var n=this;return f(function*(){if(!(yield n.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`updateDelayedEvent`);var r;switch(t){case yk.Cancel:r=n.widgetApi.cancelScheduledDelayedEvent;break;case yk.Restart:r=n.widgetApi.cancelScheduledDelayedEvent;break;case yk.Send:r=n.widgetApi.sendScheduledDelayedEvent;break}return yield r.call(n.widgetApi,e).catch(Pj),{}})()}_unstable_cancelScheduledDelayedEvent(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`cancelScheduledDelayedEvent`);return yield t.widgetApi.cancelScheduledDelayedEvent(e).catch(Pj),{}})()}_unstable_restartScheduledDelayedEvent(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`restartScheduledDelayedEvent`);return yield t.widgetApi.restartScheduledDelayedEvent(e).catch(Pj),{}})()}_unstable_sendScheduledDelayedEvent(e){var t=this;return f(function*(){if(!(yield t.doesServerSupportUnstableFeature(`org.matrix.msc4140`)))throw new nA(`Server does not support the delayed events API`,`sendScheduledDelayedEvent`);return yield t.widgetApi.sendScheduledDelayedEvent(e).catch(Pj),{}})()}encryptAndSendToDevice(e,t,n){var r=this;return f(function*(){var i=new gE(()=>new Map);for(var a of t){var o=a.userId,s=a.deviceId;i.getOrCreate(o).set(s,n)}yield r.widgetApi.sendToDevice(e,!0,fE(i)).catch(Pj)})()}sendToDevice(e,t){var n=this;return f(function*(){return yield n.widgetApi.sendToDevice(e,!1,fE(t)).catch(Pj),{}})()}getOpenIdToken(){var e=this;return f(function*(){var t=yield e.widgetApi.requestOpenIDConnectToken().catch(Pj);return{access_token:t.access_token,expires_in:t.expires_in,matrix_server_name:t.matrix_server_name,token_type:t.token_type}})()}queueToDevice(e){var t=this;return f(function*(){var n=e.eventType,r=e.batch,i=new gE(()=>new Map);for(var a of r){var o=a.userId,s=a.deviceId,c=a.payload;i.getOrCreate(o).set(s,c)}yield t.widgetApi.sendToDevice(n,!1,fE(i)).catch(Pj)})()}sendToDeviceViaWidgetApi(e,t,n){var r=this;return f(function*(){yield r.widgetApi.sendToDevice(e,t,fE(n)).catch(Pj)})()}checkTurnServers(){var e=this;return f(function*(){return e.turnServers.length>0})()}getSyncState(){return this.syncState}setSyncState(e){var t=this.syncState;this.syncState=e,this.emit(L.Sync,e,t)}ack(e){var t=this;return f(function*(){yield t.widgetApi.transport.reply(e.detail,{})})()}watchTurnServers(){var e=this;return f(function*(){var t=e.widgetApi.getTurnServers(),n=()=>{t.return(void 0)};e.lifecycle.signal.addEventListener(`abort`,n);try{var r=!1,i=!1,a;try{for(var o=use(t),s;r=!(s=yield o.next()).done;r=!1){var c=s.value;e.turnServers=[{urls:c.uris,username:c.username,credential:c.password}],e.emit(L.TurnServers,e.turnServers),N.log(`Received TURN server: ${c.uris}`)}}catch(e){i=!0,a=e}finally{try{r&&o.return!=null&&(yield o.return())}finally{if(i)throw a}}}catch(e){N.warn(`Error watching TURN servers`,e)}finally{e.lifecycle.signal.removeEventListener(`abort`,n)}})()}};function Nj(e){throw e instanceof Ej&&e.data.matrix_api_error?PD.fromWidgetApiErrorData(e.data.matrix_api_error):e}function Pj(e){throw e instanceof Error&&e.message===`Request timed out`?new FD(`widget api timeout`):e}var dse=class{constructor(){g(this,`unthreadedReadReceipts`,new Map),g(this,`threadedReadReceipts`,new gE(()=>new Map))}setUnthreaded(e,t){this.unthreadedReadReceipts.set(e,t)}setThreaded(e,t,n){this.threadedReadReceipts.getOrCreate(e).set(t,n)}allUnthreaded(){return this.unthreadedReadReceipts.entries()}*allThreaded(){for(var e of this.threadedReadReceipts.values())for(var t of e.entries())yield t}consumeEphemeralEvents(e){e?.forEach(e=>{e.type!==P.Receipt||!e.content||Object.keys(e.content).forEach(t=>{Object.entries(e.content[t]).forEach(n=>{var r=u(n,2),i=r[0],a=r[1];if(dE(i))for(var o of Object.keys(a)){var s=e.content[t][i][o],c={data:e.content[t][i][o],type:i,eventId:t};s.thread_id?this.setThreaded(s.thread_id,o,c):this.setUnthreaded(o,c)}})})})}buildAccumulatedReceiptEvent(e){var t={type:P.Receipt,room_id:e,content:{}},n=new gE(()=>new gE(()=>new Map));for(var r of this.allUnthreaded()){var i=u(r,2),a=i[0],o=i[1];n.getOrCreate(o.eventId).getOrCreate(o.type).set(a,o.data)}for(var s of this.allThreaded()){var c=u(s,2),l=c[0],d=c[1];n.getOrCreate(d.eventId).getOrCreate(d.type).set(l,d.data)}return t.content=fE(n),n.size>0?t:null}},Fj=function(e){return e.Invite=`invite`,e.Leave=`leave`,e.Join=`join`,e.Knock=`knock`,e}({});function fse(e){return`_localTs`in e&&e._localTs!==void 0}var Ij=class{constructor(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.opts=e,g(this,`accountData`,{}),g(this,`inviteRooms`,{}),g(this,`knockRooms`,{}),g(this,`joinRooms`,{}),g(this,`nextBatch`,null),this.opts.maxTimelineEntries=this.opts.maxTimelineEntries||50}accumulate(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.accumulateRooms(e,t),this.accumulateAccountData(e),this.nextBatch=e.next_batch}accumulateAccountData(e){!e.account_data||!e.account_data.events||e.account_data.events.forEach(e=>{this.accountData[e.type]=e})}accumulateRooms(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach(n=>{this.accumulateRoom(n,Fj.Invite,e.rooms.invite[n],t)}),e.rooms.join&&Object.keys(e.rooms.join).forEach(n=>{this.accumulateRoom(n,Fj.Join,e.rooms.join[n],t)}),e.rooms.leave&&Object.keys(e.rooms.leave).forEach(n=>{this.accumulateRoom(n,Fj.Leave,e.rooms.leave[n],t)}),e.rooms.knock&&Object.keys(e.rooms.knock).forEach(n=>{this.accumulateRoom(n,Fj.Knock,e.rooms.knock[n],t)}))}accumulateRoom(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;switch(t){case Fj.Invite:this.knockRooms[e]&&delete this.knockRooms[e],this.accumulateInviteState(e,n);break;case Fj.Knock:this.accumulateKnockState(e,n);break;case Fj.Join:this.knockRooms[e]?delete this.knockRooms[e]:this.inviteRooms[e]&&delete this.inviteRooms[e],this.accumulateJoinState(e,n,r);break;case Fj.Leave:this.knockRooms[e]?delete this.knockRooms[e]:this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:N.error(`Unknown cateogory: `,t)}}accumulateInviteState(e,t){if(!(!t.invite_state||!t.invite_state.events)){if(!this.inviteRooms[e]){this.inviteRooms[e]={invite_state:t.invite_state};return}var n=this.inviteRooms[e];t.invite_state.events.forEach(e=>{for(var t=!1,r=0;r{for(var t=!1,r=0;r2&&arguments[2]!==void 0?arguments[2]:!1,s=Date.now();this.joinRooms[e]||(this.joinRooms[e]={_currentState:Object.create(null),_timeline:[],_accountData:Object.create(null),_unreadNotifications:{},_unreadThreadNotifications:{},_summary:{},_receipts:new dse,_stickyEvents:[]});var c=this.joinRooms[e];if(t.account_data&&t.account_data.events&&t.account_data.events.forEach(e=>{c._accountData[e.type]=e}),t.unread_notifications&&(c._unreadNotifications=t.unread_notifications),c._unreadThreadNotifications=t[mD.stable]??t[mD.unstable]??void 0,t.summary){var l=`m.heroes`,u=`m.invited_member_count`,d=`m.joined_member_count`,f=c._summary,p=t.summary;f[l]=p[l]??f[l],f[d]=p[d]??f[d],f[u]=p[u]??f[u]}if(c._receipts.consumeEphemeralEvents(t.ephemeral?.events),t.timeline&&t.timeline.limited&&(c._timeline=[]),(n=t.state)==null||(n=n.events)==null||n.forEach(e=>{Lj(c._currentState,e)}),(r=t[`org.matrix.msc4222.state_after`])==null||(r=r.events)==null||r.forEach(e=>{Lj(c._currentState,e)}),(i=t.timeline)==null||(i=i.events)==null||i.forEach((e,n)=>{t[`org.matrix.msc4222.state_after`]||Lj(c._currentState,e);var r;if(o)r=e;else{r=Object.assign({},e),r.unsigned!==void 0&&(r.unsigned=Object.assign({},r.unsigned));var i=e.unsigned?.age;i!==void 0&&(r._localTs=Date.now()-i)}c._timeline.push({event:r,token:n===0?t.timeline.prev_batch??null:null})}),c._stickyEvents=c._stickyEvents.filter(e=>e.expiresTs>s),(a=t.msc4354_sticky)!=null&&a.events&&(c._stickyEvents=c._stickyEvents.concat(t.msc4354_sticky.events.map(e=>({event:e,expiresTs:Math.min(e.msc4354_sticky.duration_ms,lj)+Math.min(e.origin_server_ts,s)})))),c._timeline.length>this.opts.maxTimelineEntries){for(var m=c._timeline.length-this.opts.maxTimelineEntries;m0&&arguments[0]!==void 0?arguments[0]:!1,t={join:{},invite:{},knock:{},leave:{}};Object.keys(this.inviteRooms).forEach(e=>{t.invite[e]=this.inviteRooms[e]}),Object.keys(this.knockRooms).forEach(e=>{t.knock[e]=this.knockRooms[e]}),Object.keys(this.joinRooms).forEach(n=>{var r,i=this.joinRooms[n],a={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},"org.matrix.msc4222.state_after":{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:i._unreadNotifications,unread_thread_notifications:i._unreadThreadNotifications,summary:i._summary,msc4354_sticky:(r=i._stickyEvents)!=null&&r.length?{events:i._stickyEvents.map(e=>e.event)}:void 0};Object.keys(i._accountData).forEach(e=>{a.account_data.events.push(i._accountData[e])});var o=i._receipts.buildAccumulatedReceiptEvent(n);o&&a.ephemeral.events.push(o),i._timeline.forEach(t=>{if(!a.timeline.prev_batch){if(!t.token)return;a.timeline.prev_batch=t.token}var n;!e&&fse(t.event)?(n=Object.assign({},t.event),n.unsigned!==void 0&&(n.unsigned=Object.assign({},n.unsigned)),delete n._localTs,n.unsigned=n.unsigned||{},n.unsigned.age=Date.now()-t.event._localTs):n=t.event,a.timeline.events.push(n)});for(var s=Object.create(null),c=a.timeline.events.length-1;c>=0;c--){var l=a.timeline.events[c];if(!(l.state_key===null||l.state_key===void 0)){var u=XT(l);u.unsigned&&(u.unsigned.prev_content&&(u.content=u.unsigned.prev_content),u.unsigned.prev_sender&&(u.sender=u.unsigned.prev_sender)),Lj(s,u)}}Object.keys(i._currentState).forEach(e=>{Object.keys(i._currentState[e]).forEach(t=>{var n=i._currentState[e][t];a[`org.matrix.msc4222.state_after`].events.push(n),s[e]&&s[e][t]&&(n=s[e][t]),a.state.events.push(n)})}),t.join[n]=a});var n=[];return Object.keys(this.accountData).forEach(e=>{n.push(this.accountData[e])}),{nextBatch:this.nextBatch,roomsData:t,accountData:n}}getNextBatchToken(){return this.nextBatch}removeEventsFromRoom(e,t){this.joinRooms[e]._timeline=this.joinRooms[e]._timeline.filter(e=>!t.includes(e.event.event_id)),this.joinRooms[e]._stickyEvents=this.joinRooms[e]._stickyEvents.filter(e=>!t.includes(e.event.event_id))}};function Lj(e,t){t.state_key===null||t.state_key===void 0||!t.type||(e[t.type]||(e[t.type]=Object.create(null)),e[t.type][t.state_key]=t)}var Rj=function(e){return e[e.Blocked=-1]=`Blocked`,e[e.Unverified=0]=`Unverified`,e[e.Verified=1]=`Verified`,e}({}),zj=class{constructor(e){g(this,`deviceId`,void 0),g(this,`userId`,void 0),g(this,`algorithms`,void 0),g(this,`keys`,void 0),g(this,`verified`,void 0),g(this,`signatures`,void 0),g(this,`displayName`,void 0),g(this,`dehydrated`,!1),this.deviceId=e.deviceId,this.userId=e.userId,this.algorithms=e.algorithms,this.keys=e.keys,this.verified=e.verified||Rj.Unverified,this.signatures=e.signatures||new Map,this.displayName=e.displayName,this.dehydrated=!!e.dehydrated}getFingerprint(){return this.keys.get(`ed25519:${this.deviceId}`)}getIdentityKey(){return this.keys.get(`curve25519:${this.deviceId}`)}},pse=10,mse=class{constructor(e,t){var n,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.client=e,this.timelineSet=t,g(this,`windowLimit`,void 0),g(this,`start`,void 0),g(this,`end`,void 0),g(this,`eventCount`,0),this.windowLimit=r.windowLimit||1e3,(n=t.room)==null||n.on(I.Timeline,this.onTimelineEvent.bind(this))}load(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:20,n=n=>{if(!n)throw Error(`No timeline given to initFields`);var r,i=n.getEvents();if(!e)r=i.length;else if(r=i.findIndex(t=>t.getId()===e),r<0)throw Error(`getEventTimeline result didn't include requested event`);var a=Math.min(i.length,r+Math.ceil(t/2)),o=Math.max(0,a-t);this.start=new Bj(n,o-n.getBaseIndex()),this.end=new Bj(n,a-n.getBaseIndex()),this.eventCount=a-o};return this.timelineSet.getTimelineForEvent(e)?(n(this.timelineSet.getTimelineForEvent(e)),Promise.resolve()):e?this.client.getEventTimeline(this.timelineSet,e).then(n):(n(this.timelineSet.getLiveTimeline()),Promise.resolve())}getTimelineIndex(e){if(e==oD.BACKWARDS)return this.start??null;if(e==oD.FORWARDS)return this.end??null;throw Error(`Invalid direction '`+e+`'`)}extend(e,t){var n=this.getTimelineIndex(e);if(!n)return!1;var r=e==oD.BACKWARDS?n.retreat(t):n.advance(t);if(r){this.eventCount+=r,``+r+this.eventCount;var i=this.eventCount-this.windowLimit;return i>0&&this.unpaginate(i,e!=oD.BACKWARDS),!0}return!1}onTimelineEvent(e,t,n,r){r&&this.onEventRemoved()}onEventRemoved(){var e=this.getEvents();e.length>0&&e[e.length-1]===void 0&&this.end&&this.end.index--}canPaginate(e){var t=this.getTimelineIndex(e);if(!t)return!1;if(e==oD.BACKWARDS){if(t.index>t.minIndex())return!0}else if(t.index2&&n[2]!==void 0?n[2]:!0,a=n.length>3&&n[3]!==void 0?n[3]:pse,o=r.getTimelineIndex(e);if(!o)return!1;if(o.pendingPaginate)return o.pendingPaginate;if(r.extend(e,t))return!0;if(!i||a===0||!o.timeline.getPaginationToken(e))return!1;var s=r.client.paginateEventTimeline(o.timeline,{backwards:e==oD.BACKWARDS,limit:t}).finally(function(){o.pendingPaginate=void 0}).then(n=>(``+n,n?r.paginate(e,t,!0,a-1):r.paginate(e,t,!1,0)));return o.pendingPaginate=s,s})()}unpaginate(e,t){var n=t?this.start:this.end;if(!n)throw Error(`Attempting to unpaginate startOfTimeline=${t} but don't have this direction`);if(e>this.eventCount||e<0)throw Error(`Attemting to unpaginate ${e} events, but only have ${this.eventCount} in the timeline`);for(;e>0;){var r=t?n.advance(e):n.retreat(e);if(r<=0)throw Error(`Unable to unpaginate any further, but still have `+this.eventCount+` events`);e-=r,this.eventCount-=r,``+r+this.eventCount}}getEvents(){if(!this.start)return[];for(var e=[],t=this.start.timeline;t;){var n=t.getEvents(),r=0,i=n.length;t===this.start.timeline&&(r=this.start.index+t.getBaseIndex()),t===this.end?.timeline&&(i=this.end.index+t.getBaseIndex());for(var a=r;a0)return this.index+=t,t;var n=this.timeline.getNeighbouringTimeline(e<0?oD.BACKWARDS:oD.FORWARDS);return n?(this.timeline=n,e<0?this.index=this.maxIndex():this.index=this.minIndex(),this.advance(e)):0}retreat(e){return this.advance(e*-1)*-1}},Vj=`m.login.email.identity`,hse=`m.login.msisdn`,Hj=function(e){return e.Password=`m.login.password`,e.Recaptcha=`m.login.recaptcha`,e.Terms=`m.login.terms`,e.Email=`m.login.email.identity`,e.Msisdn=`m.login.msisdn`,e.Sso=`m.login.sso`,e.SsoUnstable=`org.matrix.login.sso`,e.Dummy=`m.login.dummy`,e.RegistrationToken=`m.login.registration_token`,e.UnstableRegistrationToken=`org.matrix.msc3231.login.registration_token`,e.OAuth=`m.oauth`,e}({}),gse=class extends Error{constructor(e,t,n){super(e),this.required_stages=t,this.flows=n,g(this,`name`,`NoAuthFlowFoundError`)}},Uj=class{constructor(e){var t=this;g(this,`matrixClient`,void 0),g(this,`inputs`,void 0),g(this,`clientSecret`,void 0),g(this,`requestCallback`,void 0),g(this,`busyChangedCallback`,void 0),g(this,`stateUpdatedCallback`,void 0),g(this,`requestEmailTokenCallback`,void 0),g(this,`supportedStages`,void 0),g(this,`data`,void 0),g(this,`emailSid`,void 0),g(this,`requestingEmailToken`,!1),g(this,`attemptAuthDeferred`,null),g(this,`chosenFlow`,null),g(this,`currentStage`,null),g(this,`emailAttempt`,1),g(this,`submitPromise`,null),g(this,`requestEmailToken`,f(function*(){if(t.requestingEmailToken)N.warn(`Could not request email token: Already requesting`);else{N.trace(`Requesting email token. Attempt: `+t.emailAttempt),t.requestingEmailToken=!0;try{t.emailSid=(yield t.requestEmailTokenCallback(t.inputs.emailAddress,t.clientSecret,t.emailAttempt++,t.data.session)).sid,N.trace(`Email token request succeeded`)}finally{t.requestingEmailToken=!1}}})),this.matrixClient=e.matrixClient,this.data=e.authData||{flows:[]},this.requestCallback=e.doRequest,this.busyChangedCallback=e.busyChanged,this.stateUpdatedCallback=e.stateUpdated||e.startAuthStage,this.requestEmailTokenCallback=e.requestEmailToken,this.inputs=e.inputs||{},e.sessionId&&(this.data.session=e.sessionId),this.clientSecret=e.clientSecret||this.matrixClient.generateClientSecret(),this.emailSid=e.emailSid,e.supportedStages!==void 0&&(this.supportedStages=new Set(e.supportedStages))}attemptAuth(){var e=this;return f(function*(){var t;e.attemptAuthDeferred=Promise.withResolvers();var n=e.attemptAuthDeferred.promise;if((t=e.data)!=null&&(t=t.flows)!=null&&t.length)e.startNextAuthStage();else{var r;(r=e.busyChangedCallback)==null||r.call(e,!0);var i=e.data.session?{session:e.data.session}:null;e.doRequest(i).finally(()=>{var t;(t=e.busyChangedCallback)==null||t.call(e,!1)})}return n})()}poll(){var e=this;return f(function*(){if(e.data.session&&e.attemptAuthDeferred&&!e.submitPromise){var t={};if(e.currentStage==Vj&&e.emailSid){var n={sid:e.emailSid,client_secret:e.clientSecret},r=e.matrixClient.getIdentityServerUrl();r&&(n.id_server=new URL(r).host),t={type:Vj,threepid_creds:n}}e.submitAuthDict(t,!0)}})()}getSessionId(){return this.data?.session}getClientSecret(){return this.clientSecret}getStageParams(e){var t;return(t=this.data)==null||(t=t.params)==null?void 0:t[e]}getChosenFlow(){return this.chosenFlow}submitAuthDict(e){var t=arguments,n=this;return f(function*(){var r,i=t.length>1&&t[1]!==void 0?t[1]:!1;if(!n.attemptAuthDeferred)throw Error(`submitAuthDict() called before attemptAuth()`);if(!i){var a;(a=n.busyChangedCallback)==null||a.call(n,!0)}for(;n.submitPromise;)try{yield n.submitPromise}catch{}var o=(r=n.data)!=null&&r.session?Object.assign({session:n.data.session},e):e;try{n.submitPromise=n.doRequest(o,i),yield n.submitPromise}finally{if(n.submitPromise=null,!i){var s;(s=n.busyChangedCallback)==null||s.call(n,!1)}}})()}getEmailSid(){return this.emailSid}setEmailSid(e){this.emailSid=e}doRequest(e){var t=arguments,n=this;return f(function*(){var r=t.length>1&&t[1]!==void 0?t[1]:!1;try{var i=yield n.requestCallback(e,r);n.attemptAuthDeferred.resolve(i),n.attemptAuthDeferred=null}catch(e){var a,o,s=e instanceof PD?e:null,c=(s==null||(a=s.data)==null?void 0:a.flows)??null,l=n.data?.flows||!!c;if(!s||s.httpStatus!==401||!s.data||!l)if(r)N.log(`Background poll request failed doing UI auth: ignoring`,e);else{var u;(u=n.attemptAuthDeferred)==null||u.reject(e)}s&&!s.data&&(s.data={}),s&&!s.data.flows&&!s.data.completed&&!s.data.session&&(s.data.flows=n.data.flows,s.data.completed=n.data.completed,s.data.session=n.data.session),s&&(n.data=s.data);try{n.startNextAuthStage()}catch(e){n.attemptAuthDeferred.reject(e),n.attemptAuthDeferred=null;return}if(!n.emailSid&&(o=n.chosenFlow)!=null&&o.stages.includes(Hj.Email))try{yield n.requestEmailToken()}catch(e){n.attemptAuthDeferred.reject(e),n.attemptAuthDeferred=null}}})()}startNextAuthStage(){var e,t,n=this.chooseStage();if(!n)throw Error(`No incomplete flows from the server`);if(this.currentStage=n,n===Hj.Dummy){this.submitAuthDict({type:`m.login.dummy`});return}if((e=this.data)!=null&&e.errcode||(t=this.data)!=null&&t.error){this.stateUpdatedCallback(n,{errcode:this.data?.errcode||``,error:this.data?.error||``});return}this.stateUpdatedCallback(n,n===Vj?{emailSid:this.emailSid}:{})}chooseStage(){this.chosenFlow===null&&(this.chosenFlow=this.chooseFlow()),N.log(`Active flow => %s`,JSON.stringify(this.chosenFlow));var e=this.firstUncompletedStage(this.chosenFlow);return N.log(`Next stage: %s`,e),e}scoreFlow(e){var t=e.stages.length;return this.supportedStages!==void 0&&(t+=e.stages.filter(e=>!this.supportedStages.has(e)).length*10),t}chooseFlow(){var e=this.data?.flows||[],t=!!this.inputs.emailAddress||!!this.emailSid,n=!!this.inputs.phoneCountry&&!!this.inputs.phoneNumber;e.sort((e,t)=>this.scoreFlow(e)-this.scoreFlow(t));for(var r of e){var i=!1,a=!1;for(var o of r.stages)o===Vj?i=!0:o==hse&&(a=!0);if(i==t&&a==n)return r}var s=[];throw t&&s.push(Vj),n&&s.push(hse),new gse(`No appropriate authentication flow found`,s,e)}firstUncompletedStage(e){var t=this.data?.completed||[];return e.stages.find(e=>!t.includes(e))}};function _se(e,t){return new Promise((n,r)=>{var i=!0,a=e.open(t);a.onupgradeneeded=()=>{i=!1},a.onblocked=()=>r(a.error),a.onsuccess=()=>{a.result.close(),i||e.deleteDatabase(t),n(i)},a.onerror=()=>r(a.error)})}var vse=[e=>{e.createObjectStore(`users`,{keyPath:[`userId`]}),e.createObjectStore(`accountData`,{keyPath:[`type`]}),e.createObjectStore(`sync`,{keyPath:[`clobber`]})},e=>{e.createObjectStore(`oob_membership_events`,{keyPath:[`room_id`,`state_key`]}).createIndex(`room`,`room_id`)},e=>{e.createObjectStore(`client_options`,{keyPath:[`clobber`]})},e=>{e.createObjectStore(`to_device_queue`,{autoIncrement:!0})},e=>{e.createObjectStore(`user_profile`,{keyPath:[`userId`]})}],yse=vse.length;function Wj(e,t,n){var r=e.openCursor(t);return new Promise((t,i)=>{var a=[];r.onerror=()=>{i(Error(`selectQuery failed for ${e.name}`,{cause:r.error}))},r.onsuccess=()=>{var e=r.result;if(!e){t(a);return}a.push(n(e)),e.continue()}})}function Gj(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(){n(e.error)}})}function bse(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(){n(e.error)}})}function xse(e){return new Promise((t,n)=>{e.onsuccess=()=>t(e),e.onerror=e=>n(e)})}function Kj(e){return bse(e).then(t=>e.result)}var qj=class{static exists(e,t){return t=`matrix-js-sdk:`+(t||`default`),_se(e,t)}constructor(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`default`;this.indexedDB=e,g(this,`dbName`,void 0),g(this,`syncAccumulator`,void 0),g(this,`db`,void 0),g(this,`disconnected`,!0),g(this,`_isNewlyCreated`,!1),g(this,`syncToDatabasePromise`,void 0),g(this,`pendingUserPresenceData`,[]),this.dbName=`matrix-js-sdk:`+t,this.syncAccumulator=new Ij}connect(e){var t=this;if(!this.disconnected)return N.log(`LocalIndexedDBStoreBackend.connect: already connected or connecting`),Promise.resolve();this.disconnected=!1,N.log(`LocalIndexedDBStoreBackend.connect: connecting...`);var n=this.indexedDB.open(this.dbName,yse);return n.onupgradeneeded=e=>{var t=n.result,r=e.oldVersion;N.log(`LocalIndexedDBStoreBackend.connect: upgrading from ${r}`),r<1&&(this._isNewlyCreated=!0),vse.forEach((e,n)=>{r<=n&&e(t)})},n.onblocked=()=>{N.log(`can't yet open LocalIndexedDBStoreBackend because it is open elsewhere`)},N.log(`LocalIndexedDBStoreBackend.connect: awaiting connection...`),bse(n).then(f(function*(){N.log(`LocalIndexedDBStoreBackend.connect: connected`),t.db=n.result,t.db.onversionchange=()=>{var e;(e=t.db)==null||e.close(),t.disconnected=!0,t.db=void 0},t.db.onclose=()=>{t.disconnected=!0,t.db=void 0,e?.()},yield t.init()}))}isNewlyCreated(){return Promise.resolve(this._isNewlyCreated)}init(){return Promise.all([this.loadAccountData(),this.loadSyncData()]).then(e=>{var t=u(e,2),n=t[0],r=t[1];N.log(`LocalIndexedDBStoreBackend: loaded initial data`),this.syncAccumulator.accumulate({next_batch:r.nextBatch,rooms:r.roomsData,account_data:{events:n}},!0)})}getOutOfBandMembers(e){return new Promise((t,n)=>{var r=this.db.transaction([`oob_membership_events`],`readonly`).objectStore(`oob_membership_events`).index(`room`),i=IDBKeyRange.only(e),a=r.openCursor(i),o=[],s=!1;a.onsuccess=()=>{var e=a.result;if(!e)return!o.length&&!s?t(null):t(o);var n=e.value;n.oob_written?s=!0:o.push(n),e.continue()},a.onerror=e=>{n(e)}}).then(t=>(N.log(`LL: got ${t?.length} membershipEvents from storage for room ${e} ...`),t))}setOutOfBandMembers(e,t){var n=this;return f(function*(){N.log(`LL: backend about to store ${t.length} members for ${e}`);var r=n.db.transaction([`oob_membership_events`],`readwrite`),i=r.objectStore(`oob_membership_events`);t.forEach(e=>{i.put(e)});var a={room_id:e,oob_written:!0,state_key:0};i.put(a),yield Gj(r),N.log(`LL: backend done storing for ${e}!`)})()}clearOutOfBandMembers(e){var t=this;return f(function*(){var n=t.db.transaction([`oob_membership_events`],`readonly`).objectStore(`oob_membership_events`).index(`room`),r=IDBKeyRange.only(e),i=Kj(n.openKeyCursor(r,`next`)).then(e=>(e?.primaryKey)[1]),a=Kj(n.openKeyCursor(r,`prev`)).then(e=>(e?.primaryKey)[1]),o=u(yield Promise.all([i,a]),2),s=o[0],c=o[1],l=t.db.transaction([`oob_membership_events`],`readwrite`).objectStore(`oob_membership_events`),d=IDBKeyRange.bound([e,s],[e,c]);N.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,s],[e,c]),yield xse(l.delete(d))})()}clearDatabase(){return new Promise(e=>{var t;N.log(`Removing indexeddb instance: ${this.dbName}`),(t=this.db)==null||t.close();var n=this.indexedDB.deleteDatabase(this.dbName);n.onblocked=()=>{N.log(`can't yet delete indexeddb ${this.dbName} because it is open elsewhere`)},n.onerror=()=>{N.warn(`unable to delete js-sdk store indexeddb: ${n.error?.name}`),e()},n.onsuccess=()=>{N.log(`Removed indexeddb instance: ${this.dbName}`),e()}})}getSavedSync(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,t=this.syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve(XT(t)):Promise.resolve(t):Promise.resolve(null)}getNextBatchToken(){return Promise.resolve(this.syncAccumulator.getNextBatchToken())}setSyncData(e){return Promise.resolve().then(()=>{this.syncAccumulator.accumulate(e)})}syncToDatabase(e){var t=this;return f(function*(){return t.syncToDatabasePromise?(N.warn(`Skipping syncToDatabase() as persist already in flight`),t.pendingUserPresenceData.push(...e),t.syncToDatabasePromise):(e.unshift(...t.pendingUserPresenceData),t.syncToDatabasePromise=t.doSyncToDatabase(e),t.syncToDatabasePromise)})()}doSyncToDatabase(e){var t=this;return f(function*(){try{var n=t.syncAccumulator.getJSON(!0);yield Promise.all([t.persistUserPresenceEvents(e),t.persistAccountData(n.accountData),t.persistSyncData(n.nextBatch,n.roomsData)])}finally{t.syncToDatabasePromise=void 0}})()}persistSyncData(e,t){return N.log(`Persisting sync data up to`,e),aE(()=>{var n=this.db.transaction([`sync`],`readwrite`);return n.objectStore(`sync`).put({clobber:`-`,nextBatch:e,roomsData:t}),Gj(n).then(()=>{N.log(`Persisted sync data up to`,e)})})}persistAccountData(e){return aE(()=>{var t=this.db.transaction([`accountData`],`readwrite`),n=t.objectStore(`accountData`);for(var r of e)n.put(r);return Gj(t).then()})}persistUserPresenceEvents(e){return aE(()=>{var t=this.db.transaction([`users`],`readwrite`),n=t.objectStore(`users`);for(var r of e)n.put({userId:r[0],event:r[1]});return Gj(t).then()})}getUserPresenceEvents(){return aE(()=>Wj(this.db.transaction([`users`],`readonly`).objectStore(`users`),void 0,e=>[e.value.userId,e.value.event]))}loadAccountData(){return N.log(`LocalIndexedDBStoreBackend: loading account data...`),aE(()=>Wj(this.db.transaction([`accountData`],`readonly`).objectStore(`accountData`),void 0,e=>e.value).then(e=>(N.log(`LocalIndexedDBStoreBackend: loaded account data`),e)))}loadSyncData(){return N.log(`LocalIndexedDBStoreBackend: loading sync data...`),aE(()=>Wj(this.db.transaction([`sync`],`readonly`).objectStore(`sync`),void 0,e=>e.value).then(e=>(N.log(`LocalIndexedDBStoreBackend: loaded sync data`),e.length>1&&N.warn(`loadSyncData: More than 1 sync row found.`),e.length>0?e[0]:{})))}getClientOptions(){return Promise.resolve().then(()=>Wj(this.db.transaction([`client_options`],`readonly`).objectStore(`client_options`),void 0,e=>e.value?.options).then(e=>e[0]))}storeClientOptions(e){var t=this;return f(function*(){var n=t.db.transaction([`client_options`],`readwrite`);n.objectStore(`client_options`).put({clobber:`-`,options:e}),yield Gj(n)})()}saveToDeviceBatches(e){var t=this;return f(function*(){var n=t.db.transaction([`to_device_queue`],`readwrite`),r=n.objectStore(`to_device_queue`);for(var i of e)r.add(i);yield Gj(n)})()}getOldestToDeviceBatch(){var e=this;return f(function*(){var t=yield Kj(e.db.transaction([`to_device_queue`],`readonly`).objectStore(`to_device_queue`).openCursor());if(!t)return null;var n=t.value;return{id:t.key,txnId:n.txnId,eventType:n.eventType,batch:n.batch}})()}removeToDeviceBatch(e){var t=this;return f(function*(){var n=t.db.transaction([`to_device_queue`],`readwrite`);n.objectStore(`to_device_queue`).delete(e),yield Gj(n)})()}getUserProfile(e){var t=this;return f(function*(){return Promise.resolve().then(()=>Wj(t.db.transaction([`user_profile`],`readonly`).objectStore(`user_profile`),[e],e=>e.value?.profile).then(e=>e[0]))})()}storeUserProfiles(e){var t=this;return f(function*(){var n=t.db.transaction([`user_profile`],`readwrite`),r=n.objectStore(`user_profile`);for(var i of e.entries()){var a=u(i,2),o=a[0],s=a[1];r.put({profile:s,userId:o})}yield Gj(n)})()}removeUserProfiles(e){var t=this;return f(function*(){var n=t.db.transaction([`user_profile`],`readwrite`),r=n.objectStore(`user_profile`);for(var i of e)r.delete([i]);yield Gj(n)})()}removeEventsFromRoom(e,t){var n=this;return f(function*(){try{n.syncAccumulator.removeEventsFromRoom(e,t);var r=n.syncAccumulator.getJSON(!0);yield Promise.all([n.persistSyncData(r.nextBatch,r.roomsData)])}finally{n.syncToDatabasePromise=void 0}})()}destroy(){var e=this;return f(function*(){var t;(t=e.db)==null||t.close()})()}},Sse=class{constructor(e,t){this.workerFactory=e,this.dbName=t,g(this,`worker`,void 0),g(this,`nextSeq`,0),g(this,`inFlight`,{}),g(this,`startPromiseResolvers`,void 0),g(this,`onWorkerError`,e=>{var t;N.error(`IndexedDB worker failed to connect`,e),(t=this.startPromiseResolvers)==null||t.reject(e.message??Error(`IndexedDB worker failed to connect`))}),g(this,`onWorkerMessage`,e=>{var t=e.data;if(t.command==`closed`){var n;(n=this.onClose)==null||n.call(this)}else if(t.command==`cmd_success`||t.command==`cmd_fail`){if(t.seq===void 0){N.error(`Got reply from worker with no seq`);return}var r=this.inFlight[t.seq];if(r===void 0){N.error(`Got reply for unknown seq `+t.seq);return}if(delete this.inFlight[t.seq],t.command==`cmd_success`)r.resolve(t.result);else{var i=Error(t.error.message);i.name=t.error.name,r.reject(i)}}else N.warn(`Unrecognised message from worker: `,t)})}connect(e){return this.onClose=e,this.ensureStarted().then(()=>this.doCmd(`connect`))}clearDatabase(){return this.ensureStarted().then(()=>this.doCmd(`clearDatabase`))}isNewlyCreated(){return this.doCmd(`isNewlyCreated`)}getSavedSync(){return this.doCmd(`getSavedSync`)}getNextBatchToken(){return this.doCmd(`getNextBatchToken`)}setSyncData(e){return this.doCmd(`setSyncData`,[e])}syncToDatabase(e){return this.doCmd(`syncToDatabase`,[e])}getOutOfBandMembers(e){return this.doCmd(`getOutOfBandMembers`,[e])}setOutOfBandMembers(e,t){return this.doCmd(`setOutOfBandMembers`,[e,t])}clearOutOfBandMembers(e){return this.doCmd(`clearOutOfBandMembers`,[e])}getClientOptions(){return this.doCmd(`getClientOptions`)}storeClientOptions(e){return this.doCmd(`storeClientOptions`,[e])}getUserPresenceEvents(){return this.doCmd(`getUserPresenceEvents`)}saveToDeviceBatches(e){var t=this;return f(function*(){return t.doCmd(`saveToDeviceBatches`,[e])})()}getOldestToDeviceBatch(){var e=this;return f(function*(){return e.doCmd(`getOldestToDeviceBatch`)})()}removeToDeviceBatch(e){var t=this;return f(function*(){return t.doCmd(`removeToDeviceBatch`,[e])})()}getUserProfile(e){var t=this;return f(function*(){return t.doCmd(`getUserProfile`,[e])})()}storeUserProfiles(e){var t=this;return f(function*(){yield t.doCmd(`storeUserProfiles`,[e])})()}removeUserProfiles(e){var t=this;return f(function*(){yield t.doCmd(`removeUserProfiles`,[e])})()}removeEventsFromRoom(e,t){var n=this;return f(function*(){yield n.doCmd(`removeEventsFromRoom`,[e,t])})()}ensureStarted(){if(!this.startPromiseResolvers){this.startPromiseResolvers=Promise.withResolvers();try{this.worker=this.workerFactory()}catch(e){return N.error(`IndexedDB worker failed to start`,e),this.startPromiseResolvers.reject(Error(`IndexedDB worker failed to start`)),this.startPromiseResolvers.promise}this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.doCmd(`setupWorker`,[this.dbName]).then(()=>{var e;N.log(`IndexedDB worker is ready`),(e=this.startPromiseResolvers)==null||e.resolve()})}return this.startPromiseResolvers.promise}doCmd(e,t){return Promise.resolve().then(()=>{var n,r=this.nextSeq++,i=Promise.withResolvers();return this.inFlight[r]=i,(n=this.worker)==null||n.postMessage({command:e,seq:r,args:t}),i.promise})}destroy(){var e=this;return f(function*(){var t;(t=e.worker)==null||t.terminate()})()}},Cse=1e3*60*5,wse=class extends hj{static exists(e,t){return qj.exists(e,t)}constructor(e){if(super(e),this.opts=e,g(this,`_backend`,void 0),g(this,`startedUp`,!1),g(this,`syncTs`,0),g(this,`userModifiedMap`,{}),g(this,`emitter`,new TE),g(this,`onClose`,()=>{this.emitter.emit(`closed`)}),g(this,`getSavedSync`,this.degradable(()=>this.backend.getSavedSync(),`getSavedSync`)),g(this,`isNewlyCreated`,this.degradable(()=>this.backend.isNewlyCreated(),`isNewlyCreated`)),g(this,`getSavedSyncToken`,this.degradable(()=>this.backend.getNextBatchToken(),`getSavedSyncToken`)),g(this,`deleteAllData`,this.degradable(()=>(super.deleteAllData(),this.backend.clearDatabase().then(()=>{N.log(`Deleted indexeddb data.`)},e=>{throw N.error(`Failed to delete indexeddb data: ${e}`),e})),null)),g(this,`reallySave`,this.degradable(()=>{this.syncTs=Date.now();var e=[];for(var t of this.getUsers())this.userModifiedMap[t.userId]!==t.getLastModifiedTime()&&t.events.presence&&(e.push([t.userId,t.events.presence.event]),this.userModifiedMap[t.userId]=t.getLastModifiedTime());return this.backend.syncToDatabase(e)},null)),g(this,`setSyncData`,this.degradable(e=>this.backend.setSyncData(e),`setSyncData`)),g(this,`getOutOfBandMembers`,this.degradable(e=>this.backend.getOutOfBandMembers(e),`getOutOfBandMembers`)),g(this,`setOutOfBandMembers`,this.degradable((e,t)=>(super.setOutOfBandMembers(e,t),this.backend.setOutOfBandMembers(e,t)),`setOutOfBandMembers`)),g(this,`clearOutOfBandMembers`,this.degradable(e=>(super.clearOutOfBandMembers(e),this.backend.clearOutOfBandMembers(e)),`clearOutOfBandMembers`)),g(this,`getClientOptions`,this.degradable(()=>this.backend.getClientOptions(),`getClientOptions`)),g(this,`storeClientOptions`,this.degradable(e=>(super.storeClientOptions(e),this.backend.storeClientOptions(e)),`storeClientOptions`)),!e.indexedDB)throw Error(`Missing required option: indexedDB`);e.workerFactory?this._backend=new Sse(e.workerFactory,e.dbName):this._backend=new qj(e.indexedDB,e.dbName)}get backend(){return this._backend}on(e,t){this.emitter.on(e,t)}startup(){return this.startedUp?(N.log(`IndexedDBStore.startup: already started`),Promise.resolve()):(N.log(`IndexedDBStore.startup: connecting to backend`),this.backend.connect(this.onClose).catch(e=>{if(this.opts.workerFactory)return N.log(`Falling back to local indexeddb backend`),this._backend=new qj(this.opts.indexedDB,this.opts.dbName),this.backend.connect(this.onClose);throw e}).then(()=>(N.log(`IndexedDBStore.startup: loading presence events`),this.backend.getUserPresenceEvents())).then(e=>{N.log(`IndexedDBStore.startup: processing presence events`),e.forEach(e=>{var t=u(e,2),n=t[0],r=t[1];if(!this.createUser)throw Error("`IndexedDBStore.startup` must be called after assigning it to the client, not before!");var i=this.createUser(n);r&&i.setPresenceEvent(new dj(r)),this.userModifiedMap[i.userId]=i.getLastModifiedTime(),this.storeUser(i)}),this.startedUp=!0}))}destroy(){return this.backend.destroy()}wantsSave(){return Date.now()-this.syncTs>Cse}save(){return arguments.length>0&&arguments[0]!==void 0&&arguments[0]||this.wantsSave()?this.reallySave():Promise.resolve()}degradable(e,t){var n=this,r=t?super[t]:null;return f(function*(){var t=[...arguments];try{return yield e.call(n,...t)}catch(e){N.error(`IndexedDBStore failure, degrading to MemoryStore`,e),n.emitter.emit(`degraded`,e);try{N.log(`IndexedDBStore trying to delete degraded data`),yield n.backend.clearDatabase(),N.log(`IndexedDBStore delete after degrading succeeded`)}catch(e){N.warn(`IndexedDBStore delete after degrading failed`,e)}if(r)return r.call(n,...t)}})}getPendingEvents(e){var t=()=>super.getPendingEvents,n=this;return f(function*(){if(!n.localStorage)return t().call(n,e);var r=n.localStorage.getItem(Jj(e));if(r)try{return JSON.parse(r)}catch(e){N.error(`Could not parse persisted pending events`,e)}return[]})()}setPendingEvents(e,t){var n=()=>super.setPendingEvents,r=this;return f(function*(){if(!r.localStorage)return n().call(r,e,t);t.length>0?r.localStorage.setItem(Jj(e),JSON.stringify(t)):r.localStorage.removeItem(Jj(e))})()}saveToDeviceBatches(e){return this.backend.saveToDeviceBatches(e)}getOldestToDeviceBatch(){return this.backend.getOldestToDeviceBatch()}removeToDeviceBatch(e){return this.backend.removeToDeviceBatch(e)}getUserProfile(e){var t=this;return f(function*(){return t.backend.getUserProfile(e)})()}storeUserProfiles(e){var t=this;return f(function*(){return t.backend.storeUserProfiles(e)})()}removeUserProfiles(e){var t=this;return f(function*(){return t.backend.removeUserProfiles(e)})()}};function Jj(e){return`mx_pending_events_${e}`}var Yj=`crypto.`,Tse=Yj+`migration`,Xj=Yj+`account`,Ese=Yj+`cross_signing_keys`,Zj=Yj+`inboundgroupsessions/`,Dse=Yj+`inboundgroupsessions.withheld/`,Ose=Yj+`rooms/`,Qj=Yj+`sessionsneedingbackup`;function $j(e){return Yj+`sessions/`+e}function eM(e,t){return Zj+e+`/`+t}function kse(e,t){return Dse+e+`/`+t}function Ase(e){return Ose+e}var jse=class e extends bE{static exists(e){for(var t=e.length,n=0;n=50)return t}}return t.length===0?null:t})()}deleteEndToEndSessionsBatch(e){var t=this;return f(function*(){for(var n of e){var r=n.deviceKey,i=n.sessionId,a=t._getEndToEndSessions(r)||{};delete a[i],Object.keys(a).length===0?t.store.removeItem($j(r)):nM(t.store,$j(r),a)}})()}getEndToEndInboundGroupSession(e,t,n,r){r(tM(this.store,eM(e,t)),tM(this.store,kse(e,t)))}storeEndToEndInboundGroupSession(e,t,n,r){nM(this.store,eM(e,t),n)}countEndToEndInboundGroupSessions(){var e=this;return f(function*(){for(var t=0,n=0;n=50)return n}}return n.length===0?null:n})()}deleteEndToEndInboundGroupSessionsBatch(e){var t=this;return f(function*(){for(var n of e){var r=n.senderKey,i=n.sessionId,a=eM(r,i);t.store.removeItem(a)}})()}getEndToEndRooms(e,t){for(var n={},r=Ase(``),i=0;i{N.log(`versionchange for indexeddb ${this.db.name}: closing`),e.close()}}containsData(){return f(function*(){throw Error(`Not implemented for Backend`)})()}startup(){var e=this;return f(function*(){return e})()}deleteAllData(){return f(function*(){throw Error(`This is not implemented, call IDBFactory::deleteDatabase(dbName) instead.`)})()}getMigrationState(){var e=this;return f(function*(){var t=vE.NOT_STARTED;return yield e.doTxn(`readonly`,[iM.STORE_ACCOUNT],e=>{var n=e.objectStore(iM.STORE_ACCOUNT).get(_E);n.onsuccess=()=>{t=n.result??vE.NOT_STARTED}}),t})()}setMigrationState(e){var t=this;return f(function*(){yield t.doTxn(`readwrite`,[iM.STORE_ACCOUNT],t=>{t.objectStore(iM.STORE_ACCOUNT).put(e,_E)})})()}getAccount(e,t){var n=e.objectStore(`account`).get(`-`);n.onsuccess=function(){try{t(n.result||null)}catch(t){rM(e,t)}}}storeAccount(e,t){e.objectStore(`account`).put(t,`-`)}getCrossSigningKeys(e,t){var n=e.objectStore(`account`).get(`crossSigningKeys`);n.onsuccess=function(){try{t(n.result||null)}catch(t){rM(e,t)}}}getSecretStorePrivateKey(e,t,n){var r=e.objectStore(`account`).get(`ssss_cache:${n}`);r.onsuccess=function(){try{t(r.result||null)}catch(t){rM(e,t)}}}storeSecretStorePrivateKey(e,t,n){e.objectStore(`account`).put(n,`ssss_cache:${t}`)}countEndToEndSessions(e,t){var n=e.objectStore(`sessions`).count();n.onsuccess=function(){try{t(n.result)}catch(t){rM(e,t)}}}getEndToEndSessions(e,t,n){var r=t.objectStore(`sessions`).index(`deviceKey`).openCursor(e),i={};r.onsuccess=function(){var e=r.result;if(e)i[e.value.sessionId]={session:e.value.session,lastReceivedMessageTs:e.value.lastReceivedMessageTs},e.continue();else try{n(i)}catch(e){rM(t,e)}}}getEndToEndSession(e,t,n,r){var i=n.objectStore(`sessions`).get([e,t]);i.onsuccess=function(){try{i.result?r({session:i.result.session,lastReceivedMessageTs:i.result.lastReceivedMessageTs}):r(null)}catch(e){rM(n,e)}}}storeEndToEndSession(e,t,n,r){r.objectStore(`sessions`).put({deviceKey:e,sessionId:t,session:n.session,lastReceivedMessageTs:n.lastReceivedMessageTs})}getEndToEndSessionsBatch(){var e=this;return f(function*(){var t=[];return yield e.doTxn(`readonly`,[iM.STORE_SESSIONS],e=>{var n=e.objectStore(iM.STORE_SESSIONS).openCursor();n.onsuccess=function(){try{var r=n.result;r&&(t.push(r.value),t.length<50&&r.continue())}catch(t){rM(e,t)}}}),t.length===0?null:t})()}deleteEndToEndSessionsBatch(e){var t=this;return f(function*(){yield t.doTxn(`readwrite`,[iM.STORE_SESSIONS],function(){var t=f(function*(t){try{var n=t.objectStore(iM.STORE_SESSIONS),r=function*(){var e=i.deviceKey,t=i.sessionId,r=n.delete([e,t]);yield new Promise(e=>{r.onsuccess=e})};for(var i of e)yield*r()}catch(e){rM(t,e)}});return function(e){return t.apply(this,arguments)}}())})()}getEndToEndInboundGroupSession(e,t,n,r){var i=!1,a=!1,o=n.objectStore(`inbound_group_sessions`).get([e,t]);o.onsuccess=function(){try{i=o.result?o.result.session:null,a!==!1&&r(i,a)}catch(e){rM(n,e)}};var s=n.objectStore(`inbound_group_sessions_withheld`).get([e,t]);s.onsuccess=function(){try{a=s.result?s.result.session:null,i!==!1&&r(i,a)}catch(e){rM(n,e)}}}storeEndToEndInboundGroupSession(e,t,n,r){r.objectStore(`inbound_group_sessions`).put({senderCurve25519Key:e,sessionId:t,session:n})}countEndToEndInboundGroupSessions(){var e=this;return f(function*(){var t=0;return yield e.doTxn(`readonly`,[iM.STORE_INBOUND_GROUP_SESSIONS],e=>{var n=e.objectStore(iM.STORE_INBOUND_GROUP_SESSIONS).count();n.onsuccess=()=>{t=n.result}}),t})()}getEndToEndInboundGroupSessionsBatch(){var e=this;return f(function*(){var t=[];return yield e.doTxn(`readonly`,[iM.STORE_INBOUND_GROUP_SESSIONS,iM.STORE_BACKUP],e=>{var n=e.objectStore(iM.STORE_INBOUND_GROUP_SESSIONS),r=e.objectStore(iM.STORE_BACKUP),i=n.openCursor();i.onsuccess=function(){try{var n=i.result;if(n){var a=r.get(n.key);a.onsuccess=()=>{t.push({senderKey:n.value.senderCurve25519Key,sessionId:n.value.sessionId,sessionData:n.value.session,needsBackup:a.result!==void 0}),t.length<50&&n.continue()}}}catch(t){rM(e,t)}}}),t.length===0?null:t})()}deleteEndToEndInboundGroupSessionsBatch(e){var t=this;return f(function*(){yield t.doTxn(`readwrite`,[iM.STORE_INBOUND_GROUP_SESSIONS],function(){var t=f(function*(t){try{var n=t.objectStore(iM.STORE_INBOUND_GROUP_SESSIONS),r=function*(){var e=i.senderKey,t=i.sessionId,r=n.delete([e,t]);yield new Promise(e=>{r.onsuccess=e})};for(var i of e)yield*r()}catch(e){rM(t,e)}});return function(e){return t.apply(this,arguments)}}())})()}getEndToEndDeviceData(e,t){var n=e.objectStore(`device_data`).get(`-`);n.onsuccess=function(){try{t(n.result||null)}catch(t){rM(e,t)}}}getEndToEndRooms(e,t){var n={},r=e.objectStore(`rooms`).openCursor();r.onsuccess=function(){var i=r.result;if(i)n[i.key]=i.value,i.continue();else try{t(n)}catch(t){rM(e,t)}}}markSessionsNeedingBackup(e,t){var n=this;return f(function*(){t||=n.db.transaction(`sessions_needing_backup`,`readwrite`);var r=t.objectStore(`sessions_needing_backup`);yield Promise.all(e.map(e=>new Promise((t,n)=>{var i=r.put({senderCurve25519Key:e.senderKey,sessionId:e.sessionId});i.onsuccess=t,i.onerror=n})))})()}doTxn(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:N,i,a;if(Mse){var o=this.nextTxnId++;i=Date.now(),a=`${e} crypto store transaction ${o} in ${t}`,r.debug(`Starting ${a}`)}var s=this.db.transaction(t,e),c=Rse(s),l=n(s);return Mse&&c.then(()=>{var e=Date.now()-i;r.debug(`Finished ${a}, took ${e} ms`)},()=>{var e=Date.now()-i;r.error(`Failed ${a}, took ${e} ms`)}),c.then(()=>l)}},Pse=[e=>{Lse(e)},e=>{e.createObjectStore(`account`)},e=>{e.createObjectStore(`sessions`,{keyPath:[`deviceKey`,`sessionId`]}).createIndex(`deviceKey`,`deviceKey`)},e=>{e.createObjectStore(`inbound_group_sessions`,{keyPath:[`senderCurve25519Key`,`sessionId`]})},e=>{e.createObjectStore(`device_data`)},e=>{e.createObjectStore(`rooms`)},e=>{e.createObjectStore(`sessions_needing_backup`,{keyPath:[`senderCurve25519Key`,`sessionId`]})},e=>{e.createObjectStore(`inbound_group_sessions_withheld`,{keyPath:[`senderCurve25519Key`,`sessionId`]})},e=>{e.createObjectStore(`session_problems`,{keyPath:[`deviceKey`,`time`]}).createIndex(`deviceKey`,`deviceKey`),e.createObjectStore(`notified_error_devices`,{keyPath:[`userId`,`deviceId`]})},e=>{e.createObjectStore(`shared_history_inbound_group_sessions`,{keyPath:[`roomId`]})},e=>{e.createObjectStore(`parked_shared_history`,{keyPath:[`roomId`]})}],Fse=Pse.length;function Ise(e,t){N.log(`Upgrading IndexedDBCryptoStore from version ${t} to ${Fse}`),Pse.forEach((n,r)=>{t<=r&&n(e)})}function Lse(e){var t=e.createObjectStore(`outgoingRoomKeyRequests`,{keyPath:`requestId`});t.createIndex(`session`,[`requestBody.room_id`,`requestBody.session_id`]),t.createIndex(`state`,`state`)}function rM(e,t){e._mx_abortexception=t;try{e.abort()}catch{}}function Rse(e){return new Promise((t,n)=>{e.oncomplete=()=>{e._mx_abortexception!==void 0&&n(e._mx_abortexception),t(null)},e.onerror=t=>{e._mx_abortexception===void 0?(N.log(`Error performing indexeddb txn`,t),n(e.error)):n(e._mx_abortexception)},e.onabort=t=>{e._mx_abortexception===void 0?(N.log(`Error performing indexeddb txn`,t),n(e.error)):n(e._mx_abortexception)}})}var iM=class e{static exists(e,t){return _se(e,t)}static existsAndIsNotMigrated(t,n){return new Promise((r,i)=>{var a=!0,o=t.open(n);o.onupgradeneeded=()=>{a=!1},o.onblocked=()=>i(o.error),o.onsuccess=()=>{var s=o.result;if(!a)s.close(),t.deleteDatabase(n),r(!1);else{var c=s.transaction([e.STORE_ACCOUNT],`readonly`).objectStore(e.STORE_ACCOUNT).get(_E);c.onsuccess=()=>{r((c.result??vE.NOT_STARTED)===vE.NOT_STARTED)},c.onerror=()=>{i(c.error)},s.close()}},o.onerror=()=>i(o.error)})}constructor(e,t){this.indexedDB=e,this.dbName=t,g(this,`backendPromise`,void 0),g(this,`backend`,void 0)}containsData(){var t=this;return f(function*(){return e.exists(t.indexedDB,t.dbName)})()}startup(){return this.backendPromise||=new Promise((e,t)=>{if(!this.indexedDB){t(Error(`no indexeddb support available`));return}N.log(`connecting to indexeddb ${this.dbName}`);var n=this.indexedDB.open(this.dbName,Fse);n.onupgradeneeded=e=>{var t=n.result,r=e.oldVersion;Ise(t,r)},n.onblocked=()=>{N.log(`can't yet open IndexedDBCryptoStore because it is open elsewhere`)},n.onerror=e=>{N.log(`Error connecting to indexeddb`,e),t(n.error)},n.onsuccess=()=>{var t=n.result;N.log(`connected to indexeddb ${this.dbName}`),e(new Nse(t))}}).then(t=>t.doTxn(`readonly`,[e.STORE_INBOUND_GROUP_SESSIONS,e.STORE_INBOUND_GROUP_SESSIONS_WITHHELD],e=>{t.getEndToEndInboundGroupSession(``,``,e,()=>{})}).then(()=>t)).catch(e=>{if(e.name===`VersionError`)throw N.warn(`Crypto DB is too new for us to use!`,e),new tA(eA.TooNew);N.warn(`unable to connect to indexeddb ${this.dbName}: falling back to localStorage store: ${e}`);try{if(!(globalThis.localStorage instanceof Storage))throw Error(`localStorage is not available`);return new jse(globalThis.localStorage)}catch(e){return N.warn(`Unable to open localStorage: falling back to in-memory store: ${e}`),new bE}}).then(e=>(this.backend=e,e)),this.backendPromise}deleteAllData(){return new Promise((e,t)=>{if(!this.indexedDB){t(Error(`no indexeddb support available`));return}N.log(`Removing indexeddb instance: ${this.dbName}`);var n=this.indexedDB.deleteDatabase(this.dbName);n.onblocked=()=>{N.log(`can't yet delete IndexedDBCryptoStore because it is open elsewhere`)},n.onerror=e=>{N.log(`Error deleting data from indexeddb`,e),t(n.error)},n.onsuccess=()=>{N.log(`Removed indexeddb instance: ${this.dbName}`),e()}}).catch(e=>{N.warn(`unable to delete IndexedDBCryptoStore: ${e}`)})}getMigrationState(){return this.backend.getMigrationState()}setMigrationState(e){return this.backend.setMigrationState(e)}getAccount(e,t){this.backend.getAccount(e,t)}storeAccount(e,t){this.backend.storeAccount(e,t)}getCrossSigningKeys(e,t){this.backend.getCrossSigningKeys(e,t)}getSecretStorePrivateKey(e,t,n){this.backend.getSecretStorePrivateKey(e,t,n)}storeSecretStorePrivateKey(e,t,n){this.backend.storeSecretStorePrivateKey(e,t,n)}countEndToEndSessions(e,t){this.backend.countEndToEndSessions(e,t)}getEndToEndSession(e,t,n,r){this.backend.getEndToEndSession(e,t,n,r)}getEndToEndSessions(e,t,n){this.backend.getEndToEndSessions(e,t,n)}storeEndToEndSession(e,t,n,r){this.backend.storeEndToEndSession(e,t,n,r)}countEndToEndInboundGroupSessions(){return this.backend.countEndToEndInboundGroupSessions()}getEndToEndSessionsBatch(){return this.backend.getEndToEndSessionsBatch()}deleteEndToEndSessionsBatch(e){return this.backend.deleteEndToEndSessionsBatch(e)}getEndToEndInboundGroupSession(e,t,n,r){this.backend.getEndToEndInboundGroupSession(e,t,n,r)}storeEndToEndInboundGroupSession(e,t,n,r){this.backend.storeEndToEndInboundGroupSession(e,t,n,r)}getEndToEndInboundGroupSessionsBatch(){return this.backend.getEndToEndInboundGroupSessionsBatch()}deleteEndToEndInboundGroupSessionsBatch(e){return this.backend.deleteEndToEndInboundGroupSessionsBatch(e)}getEndToEndRooms(e,t){this.backend.getEndToEndRooms(e,t)}markSessionsNeedingBackup(e,t){return this.backend.markSessionsNeedingBackup(e,t)}doTxn(e,t,n,r){return this.backend.doTxn(e,t,n,r)}};g(iM,`STORE_ACCOUNT`,`account`),g(iM,`STORE_SESSIONS`,`sessions`),g(iM,`STORE_INBOUND_GROUP_SESSIONS`,`inbound_group_sessions`),g(iM,`STORE_INBOUND_GROUP_SESSIONS_WITHHELD`,`inbound_group_sessions_withheld`),g(iM,`STORE_SHARED_HISTORY_INBOUND_GROUP_SESSIONS`,`shared_history_inbound_group_sessions`),g(iM,`STORE_PARKED_SHARED_HISTORY`,`parked_shared_history`),g(iM,`STORE_DEVICE_DATA`,`device_data`),g(iM,`STORE_ROOMS`,`rooms`),g(iM,`STORE_BACKUP`,`sessions_needing_backup`);var zse=function(e){return e.Email=`email`,e.Phone=`msisdn`,e}({}),Bse=new BT(`oauth_aware_preferred`,`org.matrix.msc3824.delegated_oidc_compatibility`),Vse=Bse,Hse=function(e){return e.Gitlab=`gitlab`,e.Github=`github`,e.Apple=`apple`,e.Google=`google`,e.Facebook=`facebook`,e.Twitter=`twitter`,e}({}),Use=function(e){return e.LOGIN=`login`,e.REGISTER=`register`,e}({}),Wse=`m.tz`,Gse=`us.cloke.msc4175.tz`,Kse=class{constructor(e){g(this,`relations`,void 0),this.relations=e.filter(e=>!!e)}getRelations(){return this.relations.reduce((e,t)=>[...e,...t.getRelations()],[])}on(e,t){this.relations.forEach(n=>n.on(e,t))}off(e,t){this.relations.forEach(n=>n.off(e,t))}},qse=function(e){return e.Global=`Global`,e.SetItemError=`setItem`,e.GetItemError=`getItem`,e.RemoveItemError=`removeItem`,e.ClearError=`clear`,e.QuotaExceededError=`QuotaExceededError`,e}({}),Jse=new class extends TE{},Yse=r({AuthType:()=>Hj,AutoDiscovery:()=>gk,AutoDiscoveryAction:()=>mk,AutoDiscoveryError:()=>hk,Beacon:()=>Ute,BeaconEvent:()=>CD,CallEvent:()=>ZO,CallFeedEvent:()=>kO,Category:()=>Fj,ClientEvent:()=>L,ClientPrefix:()=>GD,ClientStoppedError:()=>mae,ConditionKind:()=>ck,ConditionOperator:()=>Hre,ConnectionError:()=>FD,ContentHelpers:()=>Ete,DELEGATED_OIDC_COMPATIBILITY:()=>Vse,DEVICE_CODE_SCOPE:()=>uoe,DMMemberCountCondition:()=>`2`,DebugLogger:()=>Jee,Device:()=>zj,DeviceVerification:()=>Rj,Direction:()=>aD,DuplicateStrategy:()=>uD,EVENT_VISIBILITY_CHANGE_TYPE:()=>IE,EventEmitterEvents:()=>Yee,EventStatus:()=>fD,EventTimeline:()=>oD,EventTimelineSet:()=>dD,EventType:()=>P,FILTER_RELATED_BY_REL_TYPES:()=>aj,FILTER_RELATED_BY_SENDERS:()=>ij,FeatureSupport:()=>tj,Filter:()=>vD,GET_LOGIN_TOKEN_CAPABILITY:()=>Noe,GroupCall:()=>KO,GroupCallEvent:()=>BO,GroupCallIntent:()=>kre,GroupCallState:()=>WO,GroupCallStatsReportEvent:()=>VO,GroupCallType:()=>zO,GuestAccess:()=>Sk,HTTPError:()=>ND,HistoryVisibility:()=>Ck,HttpApiEvent:()=>LD,IdentityPrefix:()=>KD,IdentityProviderBrand:()=>Hse,IndexedDBCryptoStore:()=>iM,IndexedDBStore:()=>wse,InteractiveAuth:()=>Uj,InvalidCryptoStoreError:()=>tA,InvalidCryptoStoreState:()=>eA,JoinRule:()=>xk,KNOWN_SAFE_ROOM_VERSION:()=>`10`,KeySignatureUploadError:()=>pae,KnownMembership:()=>zE,LOCAL_NOTIFICATION_SETTINGS_PREFIX:()=>ete,LocalStorageCryptoStore:()=>jse,LocalStorageErrors:()=>qse,LocationAssetType:()=>VT,MAIN_ROOM_TIMELINE:()=>pee,MAXIMUM_MATRIX_VERSION:()=>$re,MAX_STICKY_DURATION_MS:()=>lj,MINIMUM_MATRIX_VERSION:()=>Qre,MSC3912_RELATION_BASED_REDACTIONS_PROP:()=>FE,MXID_PATTERN:()=>HE,M_ASSET:()=>HT,M_BEACON:()=>Mk,M_BEACON_INFO:()=>jk,M_HTML:()=>Cte,M_LOCATION:()=>WT,M_MESSAGE:()=>Ste,M_POLL_END:()=>kD,M_POLL_KIND_DISCLOSED:()=>Jte,M_POLL_KIND_UNDISCLOSED:()=>Yte,M_POLL_RESPONSE:()=>OD,M_POLL_START:()=>Xte,M_TEXT:()=>bD,M_TIMESTAMP:()=>UT,M_TOPIC:()=>xD,MatrixClient:()=>ZA,MatrixError:()=>PD,MatrixEvent:()=>dj,MatrixEventEvent:()=>uj,MatrixHttpApi:()=>Ine,MatrixSafetyError:()=>bne,MatrixSafetyErrorCode:()=>yne,MatrixScheduler:()=>Nk,MediaHandlerEvent:()=>Dk,MediaPrefix:()=>qD,MemoryCryptoStore:()=>bE,MemoryStore:()=>hj,Method:()=>F,MsgType:()=>DE,NoAuthFlowFoundError:()=>gse,NotificationCountType:()=>nO,OAUTH_AWARE_PREFERRED_FLOW_FIELD:()=>Bse,OAuthGrantType:()=>BA,OidcError:()=>FA,OidcTokenRefresher:()=>Coe,PUSHER_DEVICE_ID:()=>$ee,PUSHER_ENABLED:()=>LE,PendingEventOrdering:()=>JA,Poll:()=>Qte,PollEvent:()=>AD,Preset:()=>bk,ProfileKeyMSC4175Timezone:()=>Gse,ProfileKeyTimezone:()=>Wse,PushRuleActionName:()=>ok,PushRuleKind:()=>lk,REFERENCE_RELATION:()=>wte,ROOM_RETENTION_TYPE:()=>eO,ReceiptType:()=>GT,RelatedRelations:()=>Kse,RelationType:()=>EE,Relations:()=>cD,RelationsEvent:()=>sD,RestrictedAllowType:()=>rie,Room:()=>rO,RoomCreateTypeField:()=>OE,RoomEvent:()=>I,RoomMember:()=>VE,RoomMemberEvent:()=>BE,RoomNameType:()=>iO,RoomState:()=>mj,RoomStateEvent:()=>pj,RoomStickyEventsEvent:()=>QD,RoomSummary:()=>_te,RoomType:()=>kE,RoomVersionStability:()=>Lne,RoomWidgetClient:()=>Mj,RoomWidgetClientEvent:()=>jj,RuleId:()=>uk,SERVICE_TYPES:()=>_k,SSOAction:()=>Use,STABLE_MSC4133_EXTENDED_PROFILES:()=>zoe,SUPPORTED_MATRIX_VERSIONS:()=>pk,SearchOrderBy:()=>fie,SearchResult:()=>tie,SecretStorage:()=>Qie,ServerCapabilities:()=>Rne,SetPresence:()=>dO,SlidingSyncEvent:()=>kk,StatsReport:()=>LO,SyncAccumulator:()=>Ij,SyncState:()=>lO,THREAD_RELATION_TYPE:()=>oj,Thread:()=>rj,ThreadEvent:()=>ej,ThreadFilterType:()=>sj,ThreepidMedium:()=>zse,TimelineIndex:()=>Bj,TimelineWindow:()=>mse,ToDeviceMessageId:()=>AE,TokenRefreshError:()=>vne,TokenRefreshLogoutError:()=>ID,TweakName:()=>sk,TypedEventEmitter:()=>TE,UNSIGNED_MEMBERSHIP_FIELD:()=>tte,UNSIGNED_THREAD_ID_FIELD:()=>RE,UNSTABLE_ELEMENT_FUNCTIONAL_USERS:()=>Qee,UNSTABLE_MSC2666_MUTUAL_ROOMS:()=>Foe,UNSTABLE_MSC2666_QUERY_MUTUAL_ROOMS:()=>Ioe,UNSTABLE_MSC2666_SHARED_ROOMS:()=>Poe,UNSTABLE_MSC2716_MARKER:()=>Zee,UNSTABLE_MSC3088_ENABLED:()=>ME,UNSTABLE_MSC3088_PURPOSE:()=>jE,UNSTABLE_MSC3089_BRANCH:()=>PE,UNSTABLE_MSC3089_LEAF:()=>Xee,UNSTABLE_MSC3089_TREE_SUBTYPE:()=>NE,UNSTABLE_MSC3852_LAST_SEEN_UA:()=>Moe,UNSTABLE_MSC4133_EXTENDED_PROFILES:()=>Roe,UNSTABLE_MSC4140_DELAYED_EVENTS:()=>YA,UNSTABLE_MSC4354_STICKY_EVENTS:()=>Loe,UnsupportedDelayedEventsEndpointError:()=>nA,UnsupportedStickyEventsEndpointError:()=>rA,UpdateDelayedEventAction:()=>yk,User:()=>iD,UserEvent:()=>rD,Visibility:()=>nie,anySignal:()=>Sne,calculateRetryBackoff:()=>UD,completeAuthorizationCodeGrant:()=>voe,createClient:()=>aM,createNewMatrixCall:()=>ak,createRoomWidgetClient:()=>$se,decodeBase64:()=>CO,decodeIdToken:()=>aoe,determineFeatureSupport:()=>nj,discoverAndValidateOIDCIssuerWellKnown:()=>WA,encodeBase64:()=>bO,encodeUnpaddedBase64:()=>xO,encodeUnpaddedBase64Url:()=>SO,fixNotificationCountOnDecryption:()=>Hoe,generateAuthorizationParams:()=>moe,generateAuthorizationUrl:()=>hoe,generateOidcAuthorizationUrl:()=>goe,generateScope:()=>UA,getBeaconInfoIdentifier:()=>TD,getHttpUriForMxc:()=>SE,inMainTimelineForReceipt:()=>$A,isDmMemberCountCondition:()=>Ure,isEventTypeSame:()=>Tte,isPollEvent:()=>$te,isSendDelayedEventRequestOpts:()=>vk,isTimestampInDuration:()=>wD,localStorageErrorsEventsEmitter:()=>Jse,parseErrorResponse:()=>zD,registerOidcClient:()=>doe,retryNetworkOperation:()=>VD,safeGetRetryAfterMs:()=>_ne,setCryptoStoreFactory:()=>Zse,startDeviceAuthorization:()=>yoe,threadFilterTypeToFilter:()=>Koe,threadIdForReceipt:()=>QA,timeoutSignal:()=>RD,validateAuthMetadata:()=>ioe,validateAuthMetadataAndKeys:()=>GA,validateBearerTokenResponse:()=>loe,validateIdToken:()=>ooe,validateStoredUserState:()=>soe,waitForDeviceAuthorization:()=>boe}),Xse=()=>new bE;function Zse(e){Xse=e}function Qse(e){return e.store=e.store??new hj({localStorage:globalThis.localStorage}),e.scheduler=e.scheduler??new Nk,e.cryptoStore=e.cryptoStore??Xse(),e}function aM(e){return new ZA(Qse(e))}function $se(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return new Mj(e,t,n,Qse(r),i)}if(globalThis.__js_sdk_entrypoint)throw Error(`Multiple matrix-js-sdk entrypoints detected!`);globalThis.__js_sdk_entrypoint=!0;var oM;try{oM=globalThis.indexedDB}catch{}oM&&Zse(()=>new iM(oM,`matrix-js-sdk:crypto`)),globalThis.matrixcs=Yse;function ece(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,`default`)?e.default:e}function sM(){throw Error(`setTimeout has not been defined`)}function cM(){throw Error(`clearTimeout has not been defined`)}function tce(e){if(fM===setTimeout)return setTimeout(e,0);if((fM===sM||!fM)&&setTimeout)return fM=setTimeout,setTimeout(e,0);try{return fM(e,0)}catch{try{return fM.call(null,e,0)}catch{return fM.call(this,e,0)}}}function nce(e){if(pM===clearTimeout)return clearTimeout(e);if((pM===cM||!pM)&&clearTimeout)return pM=clearTimeout,clearTimeout(e);try{return pM(e)}catch{try{return pM.call(null,e)}catch{return pM.call(this,e)}}}function rce(){!hM||!gM||(hM=!1,gM.length?mM=gM.concat(mM):_M=-1,mM.length&&ice())}function ice(){if(!hM){var e=tce(rce);hM=!0;for(var t=mM.length;t;){for(gM=mM,mM=[];++_M{uM={exports:{}},dM=uM.exports={},(function(){try{fM=typeof setTimeout==`function`?setTimeout:sM}catch{fM=sM}try{pM=typeof clearTimeout==`function`?clearTimeout:cM}catch{pM=cM}})(),mM=[],hM=!1,_M=-1,dM.nextTick=function(e){var t=Array(arguments.length-1);if(arguments.length>1)for(var n=1;n{yM();var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function te(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function ne(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function A(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,A(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+te(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),A(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=sce()})),cce=i((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&te(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&te(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function te(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,te(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),lce=i(((e,t)=>{t.exports=cce()})),uce=i((e=>{var t=bM();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=uce()})),fce=i((e=>{yM();var t=lce(),n=bM(),r=dce();function i(e){var t=`https://react.dev/errors/`+e;if(1ae||(e.current=ie[ae],ie[ae]=null,ae--)}function ce(e,t){ae++,ie[ae]=e.current,e.current=t}var le=oe(null),ue=oe(null),de=oe(null),fe=oe(null);function pe(e,t){switch(ce(de,t),ce(ue,e),ce(le,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?sf(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=sf(t),e=cf(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}se(le),ce(le,e)}function me(){se(le),se(ue),se(de)}function he(e){e.memoizedState!==null&&ce(fe,e);var t=le.current,n=cf(t,e.type);t!==n&&(ce(ue,e),ce(le,n))}function ge(e){ue.current===e&&(se(le),se(ue)),fe.current===e&&(se(fe),_p._currentValue=re)}var _e,ve;function ye(e){if(_e===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);_e=t&&t[1]||``,ve=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{be=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ye(n):``}function Se(e,t){switch(e.tag){case 26:case 27:case 5:return ye(e.type);case 16:return ye(`Lazy`);case 13:return e.child!==t&&t!==null?ye(`Suspense Fallback`):ye(`Suspense`);case 19:return ye(`SuspenseList`);case 0:case 15:return xe(e.type,!1);case 11:return xe(e.type.render,!1);case 1:return xe(e.type,!0);case 31:return ye(`Activity`);default:return``}}function Ce(e){try{var t=``,n=null;do t+=Se(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var we=Object.prototype.hasOwnProperty,Te=t.unstable_scheduleCallback,Ee=t.unstable_cancelCallback,De=t.unstable_shouldYield,Oe=t.unstable_requestPaint,ke=t.unstable_now,Ae=t.unstable_getCurrentPriorityLevel,je=t.unstable_ImmediatePriority,Me=t.unstable_UserBlockingPriority,Ne=t.unstable_NormalPriority,Pe=t.unstable_LowPriority,Fe=t.unstable_IdlePriority,Ie=t.log,Le=t.unstable_setDisableYieldValue,Re=null,ze=null;function Be(e){if(typeof Ie==`function`&&Le(e),ze&&typeof ze.setStrictMode==`function`)try{ze.setStrictMode(Re,e)}catch{}}var Ve=Math.clz32?Math.clz32:We,He=Math.log,Ue=Math.LN2;function We(e){return e>>>=0,e===0?32:31-(He(e)/Ue|0)|0}var Ge=256,Ke=262144,qe=4194304;function Je(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ye(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Je(n))):i=Je(o):i=Je(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Je(n))):i=Je(o)):i=Je(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Xe(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ze(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Qe(){var e=qe;return qe<<=1,!(qe&62914560)&&(qe=4194304),e}function $e(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function et(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function tt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),mn=!1;if(pn)try{var hn={};Object.defineProperty(hn,"passive",{get:function(){mn=!0}}),window.addEventListener(`test`,hn,hn),window.removeEventListener(`test`,hn,hn)}catch{mn=!1}var gn=null,_n=null,vn=null;function yn(){if(vn)return vn;var e,t=_n,n=t.length,r,i=`value`in gn?gn.value:gn.textContent,a=i.length;for(e=0;e=Zn),er=` `,tr=!1;function nr(e,t){switch(e){case`keyup`:return Yn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function rr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var ir=!1;function ar(e,t){switch(e){case`compositionend`:return rr(t);case`keypress`:return t.which===32?(tr=!0,er):null;case`textInput`:return e=t.data,e===er&&tr?null:e;default:return null}}function or(e,t){if(ir)return e===`compositionend`||!Xn&&nr(e,t)?(e=yn(),vn=_n=gn=null,ir=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Or(n)}}function Ar(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ar(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function jr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Bt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Bt(e.document)}return t}function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Nr=pn&&`documentMode`in document&&11>=document.documentMode,Pr=null,Fr=null,Ir=null,Lr=!1;function Rr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Lr||Pr==null||Pr!==Bt(r)||(r=Pr,`selectionStart`in r&&Mr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ir&&Dr(Ir,r)||(Ir=r,r=Wd(Fr,`onSelect`),0>=o,i-=o,Ai=1<<32-Ve(t)+i|n<m?(h=d,d=null):h=d.sibling;var g=p(i,d,s[m],c);if(g===null){d===null&&(d=h);break}e&&d&&g.alternate===null&&t(i,d),a=o(g,a,m),u===null?l=g:u.sibling=g,u=g,d=h}if(m===s.length)return n(i,d),zi&&Mi(i,m),l;if(d===null){for(;mh?(g=m,m=null):g=m.sibling;var y=p(a,m,v.value,l);if(y===null){m===null&&(m=g);break}e&&m&&y.alternate===null&&t(a,m),s=o(y,s,h),d===null?u=y:d.sibling=y,d=y,m=g}if(v.done)return n(a,m),zi&&Mi(a,h),u;if(m===null){for(;!v.done;h++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return zi&&Mi(a,h),u}for(m=r(m);!v.done;h++,v=c.next())v=_(m,a,h,v.value,l),v!==null&&(e&&v.alternate!==null&&m.delete(v.key===null?h:v.key),s=o(v,s,h),d===null?u=v:d.sibling=v,d=v);return e&&m.forEach(function(e){return t(a,e)}),zi&&Mi(a,h),u}function x(e,r,o,c){if(typeof o==`object`&&o&&o.type===g&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case m:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===g){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===T&&Na(l)===r.type){n(e,r.sibling),c=a(r,o.props),Ba(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===g?(c=_i(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=gi(o.type,o.key,o.props,null,e.mode,c),Ba(c,o),c.return=e,e=c)}return s(e);case h:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=bi(o,e.mode,c),c.return=e,e=c}return s(e);case T:return o=Na(o),x(e,r,o,c)}if(ne(o))return v(e,r,o,c);if(k(o)){if(l=k(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return x(e,r,za(o),c);if(o.$$typeof===b)return x(e,r,sa(e,o),c);Va(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=vi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ra=0;var i=x(e,t,n,r);return La=null,i}catch(t){if(t===Da||t===ka)throw t;var a=fi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Ua=Ha(!0),Wa=Ha(!1),Ga=!1;function Ka(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function qa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ja(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ya(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Xl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=li(e),ci(e,null,n),t}return ai(e,r,t,n),li(e)}function Xa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,rt(e,n)}}function Za(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Qa=!1;function $a(){if(Qa){var e=va;if(e!==null)throw e}}function eo(e,t,n,r){Qa=!1;var i=e.updateQueue;Ga=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var p=s.lane&-536870913,m=p!==s.lane;if(m?($l&p)===p:(r&p)===p){p!==0&&p===_a&&(Qa=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:Ga=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),su|=o,e.lanes=o,e.memoizedState=d}}function to(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function no(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=A.T,s={};A.T=s,Us(e,!1,t,n);try{var c=i(),l=A.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Hs(e,t,xa(c,r),ku(e)):Hs(e,t,r,ku(e))}catch(n){Hs(e,t,{then:function(){},status:`rejected`,reason:n},ku())}finally{j.p=a,o!==null&&s.types!==null&&(o.types=s.types),A.T=o}}function Ms(){}function Ns(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ps(e).queue;js(e,a,t,re,n===null?Ms:function(){return Fs(e),n(r)})}function Ps(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:re,baseState:re,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wo,lastRenderedState:re},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Wo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Fs(e){var t=Ps(e);t.next===null&&(t=e.alternate.memoizedState),Hs(e,t.next.queue,{},ku())}function Is(){return oa(_p)}function Ls(){return zo().memoizedState}function Rs(){return zo().memoizedState}function zs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=ku();e=Ja(n);var r=Ya(t,e,n);r!==null&&(ju(r,t,n),Xa(r,t,n)),t={cache:pa()},e.payload=t;return}t=t.return}}function Bs(e,t,n){var r=ku();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ws(e)?Gs(t,n):(n=oi(e,t,n,r),n!==null&&(ju(n,e,r),Ks(n,t,r)))}function Vs(e,t,n){Hs(e,t,n,ku())}function Hs(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ws(e))Gs(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Er(s,o))return ai(e,t,i,0),Zl===null&&ii(),!1}catch{}if(n=oi(e,t,i,r),n!==null)return ju(n,e,r),Ks(n,t,r),!0}return!1}function Us(e,t,n,r){if(r={lane:2,revertLane:Od(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ws(e)){if(t)throw Error(i(479))}else t=oi(e,n,r,2),t!==null&&ju(t,e,2)}function Ws(e){var t=e.alternate;return e===yo||t!==null&&t===yo}function Gs(e,t){Co=So=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ks(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,rt(e,n)}}var qs={readContext:oa,use:Ho,useCallback:ko,useContext:ko,useEffect:ko,useImperativeHandle:ko,useLayoutEffect:ko,useInsertionEffect:ko,useMemo:ko,useReducer:ko,useRef:ko,useState:ko,useDebugValue:ko,useDeferredValue:ko,useTransition:ko,useSyncExternalStore:ko,useId:ko,useHostTransitionStatus:ko,useFormState:ko,useActionState:ko,useOptimistic:ko,useMemoCache:ko,useCacheRefresh:ko};qs.useEffectEvent=ko;var Js={readContext:oa,use:Ho,useCallback:function(e,t){return Ro().memoizedState=[e,t===void 0?null:t],e},useContext:oa,useEffect:vs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),gs(4194308,4,ws.bind(null,t,e),n)},useLayoutEffect:function(e,t){return gs(4194308,4,e,t)},useInsertionEffect:function(e,t){gs(4,2,e,t)},useMemo:function(e,t){var n=Ro();t=t===void 0?null:t;var r=e();if(wo){Be(!0);try{e()}finally{Be(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=Ro();if(n!==void 0){var i=n(t);if(wo){Be(!0);try{n(t)}finally{Be(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Bs.bind(null,yo,e),[r.memoizedState,e]},useRef:function(e){var t=Ro();return e={current:e},t.memoizedState=e},useState:function(e){e=es(e);var t=e.queue,n=Vs.bind(null,yo,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Es,useDeferredValue:function(e,t){return ks(Ro(),e,t)},useTransition:function(){var e=es(!1);return e=js.bind(null,yo,e.queue,!0,!1),Ro().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=yo,a=Ro();if(zi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Zl===null)throw Error(i(349));$l&127||Yo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,vs(Zo.bind(null,r,o,e),[e]),r.flags|=2048,ms(9,{destroy:void 0},Xo.bind(null,r,o,n,t),null),n},useId:function(){var e=Ro(),t=Zl.identifierPrefix;if(zi){var n=ji,r=Ai;n=(r&~(1<<32-Ve(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=To++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ut]=t,o[dt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch($d(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Hc(t)}}return qc(t),Uc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Hc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=de.current,Ki(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Li,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ut]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Xd(e.nodeValue,n)),e||Ui(t,!0)}else e=of(e).createTextNode(r),e[ut]=t,t.stateNode=e}return qc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ki(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ut]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;qc(t),e=!1}else n=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(ho(t),t):(ho(t),null);if(t.flags&128)throw Error(i(558))}return qc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Ki(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ut]=t}else qi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;qc(t),a=!1}else a=Ji(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(ho(t),t):(ho(t),null)}return ho(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Gc(t,t.updateQueue),qc(t),null);case 4:return me(),e===null&&Bd(t.stateNode.containerInfo),qc(t),null;case 10:return ea(t.type),qc(t),null;case 19:if(se(go),r=t.memoizedState,r===null)return qc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Kc(r,!1);else{if(ou!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=_o(e),o!==null){for(t.flags|=128,Kc(r,!1),e=o.updateQueue,t.updateQueue=e,Gc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)hi(n,e),n=n.sibling;return ce(go,go.current&1|2),zi&&Mi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&ke()>_u&&(t.flags|=128,a=!0,Kc(r,!1),t.lanes=4194304)}else{if(!a)if(e=_o(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Gc(t,e),Kc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!zi)return qc(t),null}else 2*ke()-r.renderingStartTime>_u&&n!==536870912&&(t.flags|=128,a=!0,Kc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(qc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=ke(),e.sibling=null,n=go.current,ce(go,a?n&1|2:n&1),zi&&Mi(t,r.treeForkCount),e);case 22:case 23:return ho(t),so(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(qc(t),t.subtreeFlags&6&&(t.flags|=8192)):qc(t),n=t.updateQueue,n!==null&&Gc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&se(Ca),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),ea(fa),qc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Yc(e,t){switch(Fi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ea(fa),me(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return ge(t),null;case 31:if(t.memoizedState!==null){if(ho(t),t.alternate===null)throw Error(i(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(ho(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));qi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return se(go),null;case 4:return me(),null;case 10:return ea(t.type),null;case 22:case 23:return ho(t),so(),e!==null&&se(Ca),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ea(fa),null;case 25:return null;default:return null}}function Xc(e,t){switch(Fi(t),t.tag){case 3:ea(fa),me();break;case 26:case 27:case 5:ge(t);break;case 4:me();break;case 31:t.memoizedState!==null&&ho(t);break;case 13:ho(t);break;case 19:se(go);break;case 10:ea(t.type);break;case 22:case 23:ho(t),so(),e!==null&&se(Ca);break;case 24:ea(fa)}}function Zc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){sd(t,t.return,e)}}function Qc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){sd(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){sd(t,t.return,e)}}function $c(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{no(t,n)}catch(t){sd(e,e.return,t)}}}function el(e,t,n){n.props=tc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){sd(e,t,n)}}function tl(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){sd(e,t,n)}}function nl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){sd(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){sd(e,t,n)}else n.current=null}function rl(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){sd(e,e.return,t)}}function il(e,t,n){try{var r=e.stateNode;ef(r,e.type,n,t),r[dt]=t}catch(t){sd(e,e.return,t)}}function al(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&_f(e.type)||e.tag===4}function ol(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||al(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&_f(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function sl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=rn));else if(r!==4&&(r===27&&_f(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(sl(e,t,n),e=e.sibling;e!==null;)sl(e,t,n),e=e.sibling}function cl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&_f(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(cl(e,t,n),e=e.sibling;e!==null;)cl(e,t,n),e=e.sibling}function ll(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);$d(t,r,n),t[ut]=e,t[dt]=n}catch(t){sd(e,e.return,t)}}var ul=!1,dl=!1,fl=!1,pl=typeof WeakSet==`function`?WeakSet:Set,ml=null;function hl(e,t){if(e=e.containerInfo,rf=Ep,e=jr(e),Mr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(af={focusedElem:e,selectionRange:n},Ep=!1,ml=t;ml!==null;)if(t=ml,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,ml=e;else for(;ml!==null;){switch(t=ml,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),$d(o,r,n),o[ut]=e,Ct(o),r=o;break a;case`link`:var s=op(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=kr(s,h),v=kr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,A.T=null,n=Tu,Tu=null;var o=xu,s=Cu;if(bu=0,Su=xu=null,Cu=0,Xl&6)throw Error(i(331));var c=Xl;if(Xl|=4,Gl(o.current),Ll(o,o.current,s,n),Xl=c,xd(0,!1),ze&&typeof ze.onPostCommitFiberRoot==`function`)try{ze.onPostCommitFiberRoot(Re,o)}catch{}return!0}finally{j.p=a,A.T=r,rd(e,t)}}function od(e,t,n){t=Si(n,t),t=sc(e.stateNode,t,2),e=Ya(e,t,2),e!==null&&(et(e,2),bd(e))}function sd(e,t,n){if(e.tag===3)od(e,e,n);else for(;t!==null;){if(t.tag===3){od(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(yu===null||!yu.has(r))){e=Si(n,e),n=cc(2),r=Ya(t,n,2),r!==null&&(lc(n,r,t,e),et(r,2),bd(r));break}}t=t.return}}function cd(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Yl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(iu=!0,i.add(n),e=ld.bind(null,e,t,n),t.then(e,e))}function ld(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Zl===e&&($l&n)===n&&(ou===4||ou===3&&($l&62914560)===$l&&300>ke()-hu?!(Xl&2)&&Ru(e,0):lu|=n,du===$l&&(du=0)),bd(e)}function ud(e,t){t===0&&(t=Qe()),e=si(e,t),e!==null&&(et(e,t),bd(e))}function dd(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),ud(e,n)}function fd(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),ud(e,n)}function pd(e,t){return Te(e,t)}var md=null,hd=null,gd=!1,_d=!1,vd=!1,yd=0;function bd(e){e!==hd&&e.next===null&&(hd===null?md=hd=e:hd=hd.next=e),_d=!0,gd||(gd=!0,Dd())}function xd(e,t){if(!vd&&_d){vd=!0;do for(var n=!1,r=md;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Ve(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Ed(r,a))}else a=$l,a=Ye(r,r===Zl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Xe(r,a)||(n=!0,Ed(r,a));r=r.next}while(n);vd=!1}}function Sd(){Cd()}function Cd(){_d=gd=!1;var e=0;yd!==0&&df()&&(e=yd);for(var t=ke(),n=null,r=md;r!==null;){var i=r.next,a=wd(r,t);a===0?(r.next=null,n===null?md=i:n.next=i,i===null&&(hd=n)):(n=r,(e!==0||a&3)&&(_d=!0)),r=i}bu!==0&&bu!==5||xd(e,!1),yd!==0&&(yd=0)}function wd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&tf(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Bf(e,t,n){var r=zf;if(r&&typeof t==`string`&&t){var i=Ht(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Pf.has(i)||(Pf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),$d(t,`link`,e),Ct(t),r.head.appendChild(t)))}}function Vf(e){If.D(e),Bf(`dns-prefetch`,e,null)}function Hf(e,t){If.C(e,t),Bf(`preconnect`,e,t)}function Uf(e,t,n){If.L(e,t,n);var r=zf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Ht(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Ht(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Ht(n.imageSizes)+`"]`)):i+=`[href="`+Ht(e)+`"]`;var a=i;switch(t){case`style`:a=Yf(e);break;case`script`:a=$f(e)}Nf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),Nf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Xf(a))||t===`script`&&r.querySelector(ep(a))||(t=r.createElement(`link`),$d(t,`link`,e),Ct(t),r.head.appendChild(t)))}}function Wf(e,t){If.m(e,t);var n=zf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Ht(r)+`"][href="`+Ht(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=$f(e)}if(!Nf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),Nf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(ep(a)))return}r=n.createElement(`link`),$d(r,`link`,e),Ct(r),n.head.appendChild(r)}}}function Gf(e,t,n){If.S(e,t,n);var r=zf;if(r&&e){var i=St(r).hoistableStyles,a=Yf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Xf(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=Nf.get(a))&&rp(e,n);var c=o=r.createElement(`link`);Ct(c),$d(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,np(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Kf(e,t){If.X(e,t);var n=zf;if(n&&e){var r=St(n).hoistableScripts,i=$f(e),a=r.get(i);a||(a=n.querySelector(ep(i)),a||(e=f({src:e,async:!0},t),(t=Nf.get(i))&&ip(e,t),a=n.createElement(`script`),Ct(a),$d(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function qf(e,t){If.M(e,t);var n=zf;if(n&&e){var r=St(n).hoistableScripts,i=$f(e),a=r.get(i);a||(a=n.querySelector(ep(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=Nf.get(i))&&ip(e,t),a=n.createElement(`script`),Ct(a),$d(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Jf(e,t,n,r){var a=(a=de.current)?Ff(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=Yf(n.href),n=St(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Yf(n.href);var o=St(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Xf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),Nf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},Nf.set(e,n),o||Qf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=$f(n),n=St(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Yf(e){return`href="`+Ht(e)+`"`}function Xf(e){return`link[rel="stylesheet"][`+e+`]`}function Zf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function Qf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),$d(t,`link`,n),Ct(t),e.head.appendChild(t))}function $f(e){return`[src="`+Ht(e)+`"]`}function ep(e){return`script[async]`+e}function tp(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Ht(n.href)+`"]`);if(r)return t.instance=r,Ct(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Ct(r),$d(r,`style`,a),np(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Yf(n.href);var o=e.querySelector(Xf(a));if(o)return t.state.loading|=4,t.instance=o,Ct(o),o;r=Zf(n),(a=Nf.get(a))&&rp(r,a),o=(e.ownerDocument||e).createElement(`link`),Ct(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),$d(o,`link`,r),t.state.loading|=4,np(o,n.precedence,e),t.instance=o;case`script`:return o=$f(n.src),(a=e.querySelector(ep(o)))?(t.instance=a,Ct(a),a):(r=n,(a=Nf.get(o))&&(r=f({},n),ip(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Ct(a),$d(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,np(r,n.precedence,e));return t.instance}function np(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function cp(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function lp(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function up(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Yf(r.href),a=t.querySelector(Xf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=pp.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Ct(a);return}a=t.ownerDocument||t,r=Zf(r),(i=Nf.get(i))&&rp(r,i),a=a.createElement(`link`),Ct(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),$d(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=pp.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var dp=0;function fp(e,t){return e.stylesheets&&e.count===0&&hp(e,e.stylesheets),0dp?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function pp(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)hp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var mp=null;function hp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,mp=new Map,t.forEach(gp,e),mp=null,pp.call(e))}function gp(e,t){if(!(t.state.loading&4)){var n=mp.get(e);if(n)var r=n.get(null);else{n=new Map,mp.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=fce()})),R=e(bM(),1),mce=pce(),xM=globalThis||self,hce=`popstate`;function gce(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function _ce(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return wM(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:TM(t)}return bce(t,n,null,e)}function SM(e,t){if(e===!1||e==null)throw Error(t)}function CM(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function vce(){return Math.random().toString(36).substring(2,10)}function yce(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function wM(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?EM(t):t,state:n,key:t&&t.key||r||vce(),mask:i}}function TM({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function EM(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function bce(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=gce(e)?e:wM(h.location,e,t);n&&n(r,e),l=u()+1;let d=yce(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=gce(e)?e:wM(h.location,e,t);n&&n(r,e),l=u();let i=yce(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return xce(e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(hce,d),c=e,()=>{i.removeEventListener(hce,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function xce(e,t=!1){let n=`http://localhost`;typeof window<`u`&&(n=window.location.origin===`null`?window.location.href:window.location.origin),SM(n,`No window.location.(origin|href) available to create URL`);let r=typeof e==`string`?e:TM(e);return r=r.replace(/ $/,`%20`),!t&&r.startsWith(`//`)&&(r=n+r),new URL(r,n)}function DM(e,t,n=`/`){return Sce(e,t,n,!1)}function Sce(e,t,n,r,i){let a=kM((typeof t==`string`?EM(t):t).pathname||`/`,n);if(a==null)return null;let o=i??wce(e),s=null,c=zce(a);for(let e=0;s==null&&e{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;SM(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=MM([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(SM(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),Tce(e.children,t,u,l,o)),!(e.path==null&&!e.index)&&t.push({path:l,score:Fce(l,e.index),routesMeta:u})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of Ece(e.path))a(e,t,!0,n)}),t}function Ece(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=Ece(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function Dce(e){e.sort((e,t)=>e.score===t.score?Ice(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var Oce=/^:[\w-]+$/,kce=3,Ace=2,jce=1,Mce=10,Nce=-2,Pce=e=>e===`*`;function Fce(e,t){let n=e.split(`/`),r=n.length;return n.some(Pce)&&(r+=Nce),t&&(r+=Ace),n.filter(e=>!Pce(e)).reduce((e,t)=>e+(Oce.test(t)?kce:t===``?jce:Mce),r)}function Ice(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Lce(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return n&&!i?e[t]=void 0:e[t]=(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Rce(e,t=!1,n=!0){CM(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function zce(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return CM(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function kM(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}var Bce=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Vce(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?EM(e):e,a;return n?(n=Gce(n),a=n.startsWith(`/`)?Hce(n.substring(1),`/`):Hce(n,t)):a=t,{pathname:a,search:qce(r),hash:Jce(i)}}function Hce(e,t){let n=NM(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function AM(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Uce(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Wce(e){let t=Uce(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function jM(e,t,n,r=!1){let i;typeof e==`string`?i=EM(e):(i={...e},SM(!i.pathname||!i.pathname.includes(`?`),AM(`?`,`pathname`,`search`,i)),SM(!i.pathname||!i.pathname.includes(`#`),AM(`#`,`pathname`,`hash`,i)),SM(!i.search||!i.search.includes(`#`),AM(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=Vce(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Gce=e=>e.replace(/\/\/+/g,`/`),MM=e=>Gce(e.join(`/`)),NM=e=>e.replace(/\/+$/,``),Kce=e=>NM(e).replace(/^\/*/,`/`),qce=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Jce=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,Yce=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Xce(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function Zce(e){return MM(e.map(e=>e.route.path).filter(Boolean))||`/`}var Qce=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function $ce(e,t){let n=e;if(typeof n!=`string`||!Bce.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Qce)try{let e=new URL(window.location.href),r=n.startsWith(`//`)?new URL(e.protocol+n):new URL(n),a=kM(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{CM(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var ele=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(ele);var tle=[`GET`,...ele];new Set(tle);var PM=R.createContext(null);PM.displayName=`DataRouter`;var FM=R.createContext(null);FM.displayName=`DataRouterState`;var nle=R.createContext(!1);function rle(){return R.useContext(nle)}var ile=R.createContext({isTransitioning:!1});ile.displayName=`ViewTransition`;var ale=R.createContext(new Map);ale.displayName=`Fetchers`;var ole=R.createContext(null);ole.displayName=`Await`;var IM=R.createContext(null);IM.displayName=`Navigation`;var LM=R.createContext(null);LM.displayName=`Location`;var RM=R.createContext({outlet:null,matches:[],isDataRoute:!1});RM.displayName=`Route`;var zM=R.createContext(null);zM.displayName=`RouteError`;var sle=`REACT_ROUTER_ERROR`,cle=`REDIRECT`,lle=`ROUTE_ERROR_RESPONSE`;function ule(e){if(e.startsWith(`${sle}:${cle}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function dle(e){if(e.startsWith(`${sle}:${lle}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new Yce(t.status,t.statusText,t.data)}catch{}}function fle(e,{relative:t}={}){SM(BM(),`useHref() may be used only in the context of a component.`);let{basename:n,navigator:r}=R.useContext(IM),{hash:i,pathname:a,search:o}=UM(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:MM([n,a])),r.createHref({pathname:s,search:o,hash:i})}function BM(){return R.useContext(LM)!=null}function VM(){return SM(BM(),`useLocation() may be used only in the context of a component.`),R.useContext(LM).location}function ple(){return R.useContext(LM).navigationType}var mle=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function hle(e){R.useContext(IM).static||R.useLayoutEffect(e)}function HM(){let{isDataRoute:e}=R.useContext(RM);return e?jle():gle()}function gle(){SM(BM(),`useNavigate() may be used only in the context of a component.`);let e=R.useContext(PM),{basename:t,navigator:n}=R.useContext(IM),{matches:r}=R.useContext(RM),{pathname:i}=VM(),a=JSON.stringify(Wce(r)),o=R.useRef(!1);return hle(()=>{o.current=!0}),R.useCallback((r,s={})=>{if(CM(o.current,mle),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=jM(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:MM([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}R.createContext(null);function UM(e,{relative:t}={}){let{matches:n}=R.useContext(RM),{pathname:r}=VM(),i=JSON.stringify(Wce(n));return R.useMemo(()=>jM(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function _le(e,t){return vle(e,t)}function vle(e,t,n){SM(BM(),`useRoutes() may be used only in the context of a component.`);let{navigator:r}=R.useContext(IM),{matches:i}=R.useContext(RM),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;Nle(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant (or called \`useRoutes()\`) at "${s}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let u=VM(),d;if(t){let e=typeof t==`string`?EM(t):t;SM(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):DM(e,{pathname:p});CM(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),CM(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let h=wle(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:MM([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:MM([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?R.createElement(LM.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function yle(){let e=Ale(),t=Xce(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=R.createElement(R.Fragment,null,R.createElement(`p`,null,`💿 Hey developer 👋`),R.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,R.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,R.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),R.createElement(R.Fragment,null,R.createElement(`h2`,null,`Unexpected Application Error!`),R.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?R.createElement(`pre`,{style:i},n):null,o)}var ble=R.createElement(yle,null),xle=class extends R.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=dle(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:R.createElement(RM.Provider,{value:this.props.routeContext},R.createElement(zM.Provider,{value:e,children:this.props.component}));return this.context?R.createElement(Sle,{error:e},t):t}};xle.contextType=nle;var WM=new WeakMap;function Sle({children:e,error:t}){let{basename:n}=R.useContext(IM);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=ule(t.digest);if(e){let r=WM.get(t);if(r)throw r;let i=$ce(e.location,n);if(Qce&&!WM.get(t))if(i.isExternal||e.reloadDocument)window.location.href=i.absoluteURL||i.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw WM.set(t,n),n}return R.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${i.absoluteURL||i.to}`})}}return e}function Cle({routeContext:e,match:t,children:n}){let r=R.useContext(PM);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),R.createElement(RM.Provider,{value:e},n)}function wle(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);SM(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:Zce(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||ble,o&&(s<0&&c===0?(Nle(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?R.createElement(n.route.Component,null):n.route.element?n.route.element:e,R.createElement(Cle,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?R.createElement(xle,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function GM(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Tle(e){let t=R.useContext(PM);return SM(t,GM(e)),t}function KM(e){let t=R.useContext(FM);return SM(t,GM(e)),t}function Ele(e){let t=R.useContext(RM);return SM(t,GM(e)),t}function qM(e){let t=Ele(e),n=t.matches[t.matches.length-1];return SM(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function Dle(){return qM(`useRouteId`)}function Ole(){let e=KM(`useNavigation`);return R.useMemo(()=>{let{matches:t,historyAction:n,...r}=e.navigation;return r},[e.navigation])}function kle(){let{matches:e,loaderData:t}=KM(`useMatches`);return R.useMemo(()=>e.map(e=>Cce(e,t)),[e,t])}function Ale(){let e=R.useContext(zM),t=KM(`useRouteError`),n=qM(`useRouteError`);return e===void 0?t.errors?.[n]:e}function jle(){let{router:e}=Tle(`useNavigate`),t=qM(`useNavigate`),n=R.useRef(!1);return hle(()=>{n.current=!0}),R.useCallback(async(r,i={})=>{CM(n.current,mle),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var Mle={};function Nle(e,t,n){!t&&!Mle[e]&&(Mle[e]=!0,CM(!1,n))}R.memo(Ple);function Ple({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return vle(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function Fle(e){SM(!1,`A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .`)}function Ile({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){SM(!BM(),`You cannot render a inside another . You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=R.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=EM(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=R.useMemo(()=>{let e=kM(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);return CM(h!=null,` is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the won't render anything.`),h==null?null:R.createElement(IM.Provider,{value:c},R.createElement(LM.Provider,{children:t,value:h}))}function Lle({children:e,location:t}){return _le(JM(e),t)}R.Component;function JM(e,t=[]){let n=[];return R.Children.forEach(e,(e,r)=>{if(!R.isValidElement(e))return;let i=[...t,r];if(e.type===R.Fragment){n.push.apply(n,JM(e.props.children,i));return}SM(e.type===Fle,`[${typeof e.type==`string`?e.type:e.type.name}] is not a component. All component children of must be a or `),SM(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=JM(e.props.children,i)),n.push(a)}),n}var YM=`get`,XM=`application/x-www-form-urlencoded`;function ZM(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function Rle(e){return ZM(e)&&e.tagName.toLowerCase()===`button`}function zle(e){return ZM(e)&&e.tagName.toLowerCase()===`form`}function Ble(e){return ZM(e)&&e.tagName.toLowerCase()===`input`}function Vle(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Hle(e,t){return e.button===0&&(!t||t===`_self`)&&!Vle(e)}var QM=null;function Ule(){if(QM===null)try{new FormData(document.createElement(`form`),0),QM=!1}catch{QM=!0}return QM}var Wle=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function $M(e){return e!=null&&!Wle.has(e)?(CM(!1,`"${e}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${XM}"`),null):e}function Gle(e,t){let n,r,i,a,o;if(zle(e)){let o=e.getAttribute(`action`);r=o?kM(o,t):null,n=e.getAttribute(`method`)||YM,i=$M(e.getAttribute(`enctype`))||XM,a=new FormData(e)}else if(Rle(e)||Ble(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a