/*! For license information please see vendors~init.js.LICENSE.txt */ (window.webpackJsonp=window.webpackJsonp||[]).push([[22],[function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return a}));var o=n(4),r=n.n(o);r.a.methodFactory=function(e,t,n){return function(...t){this.prefix&&t.unshift(this.prefix);return"error"===e||"warn"===e||"trace"===e||"info"===e?console[e](...t):console.log(...t)}};const i=r.a.getLogger("matrix");function a(e){const t=r.a.getLogger("matrix-"+e);return t.prefix!==e&&(t.prefix=e,t.setLevel(r.a.levels.DEBUG)),t}i.setLevel(r.a.levels.DEBUG)},function(e,t,n){"use strict";n.d(t,"e",(function(){return i})),n.d(t,"f",(function(){return a})),n.d(t,"u",(function(){return s})),n.d(t,"j",(function(){return c})),n.d(t,"t",(function(){return l})),n.d(t,"B",(function(){return u})),n.d(t,"l",(function(){return d})),n.d(t,"k",(function(){return h})),n.d(t,"y",(function(){return p})),n.d(t,"q",(function(){return m})),n.d(t,"p",(function(){return g})),n.d(t,"a",(function(){return f})),n.d(t,"c",(function(){return _})),n.d(t,"b",(function(){return b})),n.d(t,"i",(function(){return v})),n.d(t,"o",(function(){return y})),n.d(t,"v",(function(){return E})),n.d(t,"s",(function(){return S})),n.d(t,"z",(function(){return w})),n.d(t,"h",(function(){return T})),n.d(t,"n",(function(){return x})),n.d(t,"g",(function(){return k})),n.d(t,"A",(function(){return O})),n.d(t,"r",(function(){return R})),n.d(t,"d",(function(){return D})),n.d(t,"w",(function(){return I})),n.d(t,"x",(function(){return A})),n.d(t,"m",(function(){return F}));var o=n(27),r=n.n(o);function i(e){let t="";for(const n in e)e.hasOwnProperty(n)&&(t+="&"+encodeURIComponent(n)+"="+encodeURIComponent(e[n]));return t.substring(1)}function a(e,t){for(const n in t)t.hasOwnProperty(n)&&(e=e.replace(n,encodeURIComponent(t[n])));return e}function s(e,t){const n=new Array(e.length);for(let o=0;o=0;o--)if(t(e[o],o,e))return e[o]}else for(o=0;o=0;o--)if(t(e[o],o,e))return r=e[o],e.splice(o,1),r}else for(o=0;o{setTimeout(n,e,t)})}function R(e){return null==e}function D(){let e,t;const n=new Promise((n,o)=>{e=n,t=o});return{resolve:e,reject:t,promise:n}}async function I(e,t){for(const n of await e)await t(await n)}function A(e){return new Promise(t=>t(e()))}let N;function F(){return N}},,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(37);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})}));var r=n(38);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}})}));var i=n(39);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}})}));var a=n(9);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}})}));var s=n(40);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}})}));var c=n(41);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}})}));var l=n(42);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}})}));var u=n(43);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}})}));var d=n(18);Object.keys(d).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}})}));var h=n(44);Object.keys(h).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return h[e]}})}));var p=n(45);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}})}));var m=n(46);Object.keys(m).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return m[e]}})}));var g=n(10);Object.keys(g).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return g[e]}})}));var f=n(7);Object.keys(f).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return f[e]}})}));var _=n(8);Object.keys(_).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return _[e]}})}));var b=n(20);Object.keys(b).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return b[e]}})}));var v=n(47);Object.keys(v).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return v[e]}})}));var y=n(48);Object.keys(y).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return y[e]}})}));var E=n(49);Object.keys(E).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return E[e]}})}));var S=n(50);Object.keys(S).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return S[e]}})}));var w=n(51);Object.keys(w).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return w[e]}})}));var C=n(52);Object.keys(C).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return C[e]}})}));var T=n(53);Object.keys(T).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return T[e]}})}));var x=n(11);Object.keys(x).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return x[e]}})}));var k=n(54);Object.keys(k).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return k[e]}})}));var O=n(55);Object.keys(O).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return O[e]}})}));var R=n(56);Object.keys(R).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return R[e]}})}));var D=n(19);Object.keys(D).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return D[e]}})}));var I=n(57);Object.keys(I).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return I[e]}})}));var A=n(58);Object.keys(A).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return A[e]}})}));var N=n(59);Object.keys(N).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return N[e]}})}));var F=n(60);Object.keys(F).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return F[e]}})}));var M=n(61);Object.keys(M).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return M[e]}})}));var P=n(12);Object.keys(P).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return P[e]}})}));var L=n(22);Object.keys(L).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return L[e]}})}));var U=n(23);Object.keys(U).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return U[e]}})}));var j=n(24);Object.keys(j).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return j[e]}})}));var B=n(62);Object.keys(B).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return B[e]}})}));var q=n(63);Object.keys(q).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return q[e]}})}));var G=n(21);Object.keys(G).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return G[e]}})}));var V=n(64);Object.keys(V).forEach((function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return V[e]}})}))},function(e,t,n){var o,r;!function(i,a){"use strict";void 0===(r="function"==typeof(o=function(){var e=function(){},t="undefined"!=typeof window&&void 0!==window.navigator&&/Trident\/|MSIE /.test(window.navigator.userAgent),n=["trace","debug","info","warn","error"];function o(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function r(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function i(n){return"debug"===n&&(n="log"),"undefined"!=typeof console&&("trace"===n&&t?r:void 0!==console[n]?o(console,n):void 0!==console.log?o(console,"log"):e)}function a(t,o){for(var r=0;r=0&&t<=i.levels.SILENT))throw"log.setLevel() called with invalid level: "+t;if(r=t,!1!==o&&function(e){var t=(n[e]||"silent").toUpperCase();if("undefined"!=typeof window&&s){try{return void(window.localStorage[s]=t)}catch(e){}try{window.document.cookie=encodeURIComponent(s)+"="+t+";"}catch(e){}}}(t),a.call(i,t,e),"undefined"==typeof console&&t0&&a.length>r&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=a.length,s=c,console&&console.warn&&console.warn(s)}return e}function h(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function p(e,t,n){var o={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=h.bind(o);return r.listener=n,o.wrapFn=r,r}function m(e,t,n){var o=e._events;if(void 0===o)return[];var r=o[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n0&&(a=t[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var c=r[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var l=c.length,u=f(c,l);for(n=0;n=0;i--)if(n[i]===t||n[i].listener===t){a=n[i].listener,r=i;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1=0;o--)this.removeListener(e,t[o]);return this},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"function"==typeof e.listenerCount?e.listenerCount(t):g.call(e,t)},s.prototype.listenerCount=g,s.prototype.eventNames=function(){return this._eventsCount>0?o(this._events):[]}},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.invertedDirection=function(e){if(e===o.ToWidget)return o.FromWidget;if(e===o.FromWidget)return o.ToWidget;throw new Error("Invalid direction")},t.WidgetApiDirection=void 0,t.WidgetApiDirection=o,function(e){e.ToWidget="toWidget",e.FromWidget="fromWidget"}(o||(t.WidgetApiDirection=o={}))},function(e,t,n){"use strict";var o,r;Object.defineProperty(t,"__esModule",{value:!0}),t.CurrentApiVersions=t.UnstableApiVersion=t.MatrixApiVersion=void 0,t.MatrixApiVersion=o,function(e){e.Prerelease1="0.0.1",e.Prerelease2="0.0.2"}(o||(t.MatrixApiVersion=o={})),t.UnstableApiVersion=r,function(e){e.MSC2762="org.matrix.msc2762",e.MSC2871="org.matrix.msc2871",e.MSC2931="org.matrix.msc2931",e.MSC2974="org.matrix.msc2974"}(r||(t.UnstableApiVersion=r={}));var i=[o.Prerelease1,o.Prerelease2,r.MSC2762,r.MSC2871,r.MSC2931,r.MSC2974];t.CurrentApiVersions=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.PostmessageTransport=void 0;var o=n(6),r=n(3);function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:null;return!this.isState&&this.eventType===e&&("m.room.message"!==this.eventType||null===this.keyStr||this.keyStr===t)}}])&&i(t.prototype,n),r&&i(t,r),e}();t.WidgetEventCapability=s},function(e,t,n){"use strict";let o;n.d(t,"a",(function(){return o})),function(e){e.ClientReady="im.vector.ready",e.HangupCall="im.vector.hangup",e.OpenIntegrationManager="integration_manager_open",e.ViewRoom="io.element.view_room"}(o||(o={}))},,,function(e,t,n){var o,r,i;r=[],void 0===(i="function"==typeof(o=function(){var e=XMLHttpRequest;if(!e)throw new Error("missing XMLHttpRequest");function t(i,a){if("function"!=typeof a)throw new Error("Bad callback given: "+a);if(!i)throw new Error("No options given");var s=i.onResponse;if((i="string"==typeof i?{uri:i}:JSON.parse(JSON.stringify(i))).onResponse=s,i.verbose&&(t.log=function(){var e,t,n={},i=["trace","debug","info","warn","error"];for(t=0;t>18&63,i=c>>12&63,a=c>>6&63,s=63&c,p[d++]=l.charAt(r)+l.charAt(i)+l.charAt(a)+l.charAt(s)}while(u299)&&o.error){for(var r in e=new Error("CouchDB error: "+(o.error.reason||o.error.error)),o)e[r]=o[r];return n(e,t,o)}return n(e,t,o)}))},t})?o.apply(t,r):o)||(e.exports=i)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(0),r=n(1);class i{constructor(e){(e=e||{}).maxTimelineEntries=e.maxTimelineEntries||50,this.opts=e,this.accountData={},this.inviteRooms={},this.joinRooms={},this.nextBatch=null,this.groups={invite:{},join:{},leave:{}}}accumulate(e,t){this._accumulateRooms(e,t),this._accumulateGroups(e),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,t){e.rooms&&(e.rooms.invite&&Object.keys(e.rooms.invite).forEach(n=>{this._accumulateRoom(n,"invite",e.rooms.invite[n],t)}),e.rooms.join&&Object.keys(e.rooms.join).forEach(n=>{this._accumulateRoom(n,"join",e.rooms.join[n],t)}),e.rooms.leave&&Object.keys(e.rooms.leave).forEach(n=>{this._accumulateRoom(n,"leave",e.rooms.leave[n],t)}))}_accumulateRoom(e,t,n,r){switch(t){case"invite":this._accumulateInviteState(e,n);break;case"join":this.inviteRooms[e]&&delete this.inviteRooms[e],this._accumulateJoinState(e,n,r);break;case"leave":this.inviteRooms[e]?delete this.inviteRooms[e]:delete this.joinRooms[e];break;default:o.b.error("Unknown cateogory: ",t)}}_accumulateInviteState(e,t){if(!t.invite_state||!t.invite_state.events)return;if(!this.inviteRooms[e])return void(this.inviteRooms[e]={invite_state:t.invite_state});const n=this.inviteRooms[e];t.invite_state.events.forEach(e=>{let t=!1;for(let o=0;o{o._accountData[e.type]=e}),t.unread_notifications&&(o._unreadNotifications=t.unread_notifications),t.summary){const e="m.heroes",n="m.invited_member_count",r="m.joined_member_count",i=o._summary,a=t.summary;i[e]=a[e]||i[e],i[r]=a[r]||i[r],i[n]=a[n]||i[n]}if(t.ephemeral&&t.ephemeral.events&&t.ephemeral.events.forEach(e=>{"m.receipt"===e.type&&e.content&&Object.keys(e.content).forEach(t=>{e.content[t]["m.read"]&&Object.keys(e.content[t]["m.read"]).forEach(n=>{o._readReceipts[n]={data:e.content[t]["m.read"][n],eventId:t}})})}),t.timeline&&t.timeline.limited&&(o._timeline=[]),t.state&&t.state.events&&t.state.events.forEach(e=>{a(o._currentState,e)}),t.timeline&&t.timeline.events&&t.timeline.events.forEach((e,r)=>{let i;if(a(o._currentState,e),n)i=e;else{i=Object.assign({},e),void 0!==i.unsigned&&(i.unsigned=Object.assign({},i.unsigned));const t=e.unsigned?e.unsigned.age:e.age;void 0!==t&&(i._localTs=Date.now()-t)}o._timeline.push({event:i,token:0===r?t.timeline.prev_batch:null})}),o._timeline.length>this.opts.maxTimelineEntries){for(let e=o._timeline.length-this.opts.maxTimelineEntries;e{this._accumulateGroup(t,"invite",e.groups.invite[t])}),e.groups.join&&Object.keys(e.groups.join).forEach(t=>{this._accumulateGroup(t,"join",e.groups.join[t])}),e.groups.leave&&Object.keys(e.groups.leave).forEach(t=>{this._accumulateGroup(t,"leave",e.groups.leave[t])}))}_accumulateGroup(e,t,n){for(const t of["invite","join","leave"])delete this.groups[t][e];this.groups[t][e]=n}getJSON(e){const t={join:{},invite:{},leave:{}};Object.keys(this.inviteRooms).forEach(e=>{t.invite[e]=this.inviteRooms[e]}),Object.keys(this.joinRooms).forEach(n=>{const o=this.joinRooms[n],i={ephemeral:{events:[]},account_data:{events:[]},state:{events:[]},timeline:{events:[],prev_batch:null},unread_notifications:o._unreadNotifications,summary:o._summary};Object.keys(o._accountData).forEach(e=>{i.account_data.events.push(o._accountData[e])});const s={type:"m.receipt",room_id:n,content:{}};Object.keys(o._readReceipts).forEach(e=>{const t=o._readReceipts[e];s.content[t.eventId]||(s.content[t.eventId]={"m.read":{}}),s.content[t.eventId]["m.read"][e]=t.data}),Object.keys(s.content).length>0&&i.ephemeral.events.push(s),o._timeline.forEach(t=>{if(!i.timeline.prev_batch){if(!t.token)return;i.timeline.prev_batch=t.token}let n;!e&&t.event._localTs?(n=Object.assign({},t.event),void 0!==n.unsigned&&(n.unsigned=Object.assign({},n.unsigned)),delete n._localTs,n.unsigned=n.unsigned||{},n.unsigned.age=Date.now()-t.event._localTs):n=t.event,i.timeline.events.push(n)});const c=Object.create(null);for(let e=i.timeline.events.length-1;e>=0;e--){const t=i.timeline.events[e];if(null===t.state_key||void 0===t.state_key)continue;const n=Object(r.c)(t);n.unsigned&&(n.unsigned.prev_content&&(n.content=n.unsigned.prev_content),n.unsigned.prev_sender&&(n.sender=n.unsigned.prev_sender)),a(c,n)}Object.keys(o._currentState).forEach(e=>{Object.keys(o._currentState[e]).forEach(t=>{let n=o._currentState[e][t];c[e]&&c[e][t]&&(n=c[e][t]),i.state.events.push(n)})}),t.join[n]=i});const n=[];return Object.keys(this.accountData).forEach(e=>{n.push(this.accountData[e])}),{nextBatch:this.nextBatch,roomsData:t,groupsData:this.groups,accountData:n}}getNextBatchToken(){return this.nextBatch}}function a(e,t){null!==t.state_key&&void 0!==t.state_key&&t.type&&(e[t.type]||(e[t.type]=Object.create(null)),e[t.type][t.state_key]=t)}},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.MatrixWidgetType=void 0,t.MatrixWidgetType=o,function(e){e.Custom="m.custom",e.JitsiMeet="m.jitsi",e.Stickerpicker="m.stickerpicker"}(o||(t.MatrixWidgetType=o={}))},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.BuiltInModalButtonID=void 0,t.BuiltInModalButtonID=o,function(e){e.Close="m.close"}(o||(t.BuiltInModalButtonID=o={}))},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.VideoConferenceCapabilities=t.StickerpickerCapabilities=t.MatrixCapabilities=void 0,t.MatrixCapabilities=o,function(e){e.Screenshots="m.capability.screenshot",e.StickerSending="m.sticker",e.AlwaysOnScreen="m.always_on_screen",e.MSC2931Navigate="org.matrix.msc2931.navigate"}(o||(t.MatrixCapabilities=o={}));var r=[o.StickerSending];t.StickerpickerCapabilities=r;var i=[o.AlwaysOnScreen];t.VideoConferenceCapabilities=i},function(e,t,n){"use strict";function o(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw a}}}}function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n{let r=!0;const i=e.open(t);i.onupgradeneeded=()=>{r=!1},i.onblocked=()=>o(),i.onsuccess=()=>{i.result.close(),r||e.deleteDatabase(t),n(r)},i.onerror=e=>o(e.target.error)})}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var o=n(17),r=n(1),i=n(25),a=n(0);function s(e,t,n){const o=e.openCursor(t);return new Promise((e,t)=>{const r=[];o.onerror=e=>{t(new Error("Query failed: "+e.target.errorCode))},o.onsuccess=t=>{const o=t.target.result;o?(r.push(n(o)),o.continue()):e(r)}})}function c(e){return new Promise((t,n)=>{e.oncomplete=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function l(e){return new Promise((t,n)=>{e.onsuccess=function(e){t(e)},e.onerror=function(e){n(e.target.error)}})}function u(e){return l(e).then(e=>e.target.result)}function d(e,t){this.indexedDB=e,this._dbName="matrix-js-sdk:"+(t||"default"),this.db=null,this._disconnected=!0,this._syncAccumulator=new o.a,this._isNewlyCreated=!1}d.exists=function(e,t){return t="matrix-js-sdk:"+(t||"default"),i.a(e,t)},d.prototype={connect:function(){if(!this._disconnected)return a.b.log("LocalIndexedDBStoreBackend.connect: already connected or connecting"),Promise.resolve();this._disconnected=!1,a.b.log("LocalIndexedDBStoreBackend.connect: connecting...");const e=this.indexedDB.open(this._dbName,3);return e.onupgradeneeded=e=>{const t=e.target.result,n=e.oldVersion;a.b.log("LocalIndexedDBStoreBackend.connect: upgrading from "+n),n<1&&(this._isNewlyCreated=!0,function(e){e.createObjectStore("users",{keyPath:["userId"]}),e.createObjectStore("accountData",{keyPath:["type"]}),e.createObjectStore("sync",{keyPath:["clobber"]})}(t)),n<2&&function(e){e.createObjectStore("oob_membership_events",{keyPath:["room_id","state_key"]}).createIndex("room","room_id")}(t),n<3&&function(e){e.createObjectStore("client_options",{keyPath:["clobber"]})}(t)},e.onblocked=()=>{a.b.log("can't yet open LocalIndexedDBStoreBackend because it is open elsewhere")},a.b.log("LocalIndexedDBStoreBackend.connect: awaiting connection..."),l(e).then(e=>(a.b.log("LocalIndexedDBStoreBackend.connect: connected"),this.db=e.target.result,this.db.onversionchange=()=>{this.db.close()},this._init()))},isNewlyCreated:function(){return Promise.resolve(this._isNewlyCreated)},_init:function(){return Promise.all([this._loadAccountData(),this._loadSyncData()]).then(([e,t])=>{a.b.log("LocalIndexedDBStoreBackend: loaded initial data"),this._syncAccumulator.accumulate({next_batch:t.nextBatch,rooms:t.roomsData,groups:t.groupsData,account_data:{events:e}},!0)})},getOutOfBandMembers:function(e){return new Promise((t,n)=>{const o=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),r=IDBKeyRange.only(e),i=o.openCursor(r),a=[];let s=!1;i.onsuccess=e=>{const n=e.target.result;if(!n)return a.length||s?t(a):t(null);const o=n.value;o.oob_written?s=!0:a.push(o),n.continue()},i.onerror=e=>{n(e)}}).then(t=>(a.b.log("LL: got "+(t&&t.length)+` membershipEvents from storage for room ${e} ...`),t))},setOutOfBandMembers:async function(e,t){a.b.log("LL: backend about to store "+t.length+" members for "+e);const n=this.db.transaction(["oob_membership_events"],"readwrite"),o=n.objectStore("oob_membership_events");t.forEach(e=>{o.put(e)});const r={room_id:e,oob_written:!0,state_key:0};o.put(r),await c(n),a.b.log(`LL: backend done storing for ${e}!`)},clearOutOfBandMembers:async function(e){const t=this.db.transaction(["oob_membership_events"],"readonly").objectStore("oob_membership_events").index("room"),n=IDBKeyRange.only(e),o=u(t.openKeyCursor(n,"next")).then(e=>e&&e.primaryKey[1]),r=u(t.openKeyCursor(n,"prev")).then(e=>e&&e.primaryKey[1]),[i,s]=await Promise.all([o,r]),c=this.db.transaction(["oob_membership_events"],"readwrite").objectStore("oob_membership_events"),l=IDBKeyRange.bound([e,i],[e,s]);var d;a.b.log(`LL: Deleting all users + marker in storage for room ${e}, with key range:`,[e,i],[e,s]),await(d=c.delete(l),new Promise((e,t)=>{d.onsuccess=()=>e(d),d.onerror=e=>t(e)}))},clearDatabase:function(){return new Promise((e,t)=>{a.b.log("Removing indexeddb instance: "+this._dbName);const n=this.indexedDB.deleteDatabase(this._dbName);n.onblocked=()=>{a.b.log("can't yet delete indexeddb "+this._dbName+" because it is open elsewhere")},n.onerror=t=>{a.b.warn("unable to delete js-sdk store indexeddb: "+t.target.error),e()},n.onsuccess=()=>{a.b.log("Removed indexeddb instance: "+this._dbName),e()}})},getSavedSync:function(e){void 0===e&&(e=!0);const t=this._syncAccumulator.getJSON();return t.nextBatch?e?Promise.resolve(r.c(t)):Promise.resolve(t):Promise.resolve(null)},getNextBatchToken:function(){return Promise.resolve(this._syncAccumulator.getNextBatchToken())},setSyncData:function(e){return Promise.resolve().then(()=>{this._syncAccumulator.accumulate(e)})},syncToDatabase:function(e){const t=this._syncAccumulator.getJSON(!0);return Promise.all([this._persistUserPresenceEvents(e),this._persistAccountData(t.accountData),this._persistSyncData(t.nextBatch,t.roomsData,t.groupsData)])},_persistSyncData:function(e,t,n){return a.b.log("Persisting sync data up to ",e),r.x(()=>{const o=this.db.transaction(["sync"],"readwrite");return o.objectStore("sync").put({clobber:"-",nextBatch:e,roomsData:t,groupsData:n}),c(o)})},_persistAccountData:function(e){return r.x(()=>{const t=this.db.transaction(["accountData"],"readwrite"),n=t.objectStore("accountData");for(let t=0;t{const t=this.db.transaction(["users"],"readwrite"),n=t.objectStore("users");for(const t of e)n.put({userId:t[0],event:t[1]});return c(t)})},getUserPresenceEvents:function(){return r.x(()=>s(this.db.transaction(["users"],"readonly").objectStore("users"),void 0,e=>[e.value.userId,e.value.event]))},_loadAccountData:function(){return a.b.log("LocalIndexedDBStoreBackend: loading account data..."),r.x(()=>s(this.db.transaction(["accountData"],"readonly").objectStore("accountData"),void 0,e=>e.value).then(e=>(a.b.log("LocalIndexedDBStoreBackend: loaded account data"),e)))},_loadSyncData:function(){return a.b.log("LocalIndexedDBStoreBackend: loading sync data..."),r.x(()=>s(this.db.transaction(["sync"],"readonly").objectStore("sync"),void 0,e=>e.value).then(e=>(a.b.log("LocalIndexedDBStoreBackend: loaded sync data"),e.length>1&&a.b.warn("loadSyncData: More than 1 sync row found."),e.length>0?e[0]:{})))},getClientOptions:function(){return Promise.resolve().then(()=>s(this.db.transaction(["client_options"],"readonly").objectStore("client_options"),void 0,e=>{if(e.value&&e.value&&e.value.options)return e.value.options}).then(e=>e[0]))},storeClientOptions:async function(e){const t=this.db.transaction(["client_options"],"readwrite");t.objectStore("client_options").put({clobber:"-",options:e}),await c(t)}}},function(e,t,n){"use strict";var o=n(33);var r=RegExp(Object.keys(o).map((function(e){return e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")})).join("|"),"g");function i(e){return o[e]}e.exports=function(e){return e.replace(r,i)}},,,,,function(e,t,n){"use strict";(function(e){var o=n(34),r=n(35),i=n(36);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function m(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var o=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return B(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return q(e).length;default:if(o)return B(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,n){var o=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,n);case"utf8":case"utf-8":return x(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return T(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return D(this,t,n);default:if(o)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),o=!0}}function f(e,t,n){var o=e[t];e[t]=e[n],e[n]=o}function _(e,t,n,o,r){if(0===e.length)return-1;if("string"==typeof n?(o=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=r?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(r)return-1;n=e.length-1}else if(n<0){if(!r)return-1;n=0}if("string"==typeof t&&(t=c.from(t,o)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,o,r);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?r?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,o,r);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,o,r){var i,a=1,s=e.length,c=t.length;if(void 0!==o&&("ucs2"===(o=String(o).toLowerCase())||"ucs-2"===o||"utf16le"===o||"utf-16le"===o)){if(e.length<2||t.length<2)return-1;a=2,s/=2,c/=2,n/=2}function l(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(r){var u=-1;for(i=n;is&&(n=s-c),i=n;i>=0;i--){for(var d=!0,h=0;hr&&(o=r):o=r;var i=t.length;if(i%2!=0)throw new TypeError("Invalid hex string");o>i/2&&(o=i/2);for(var a=0;a>8,r=n%256,i.push(r),i.push(o);return i}(t,e.length-n),e,n,o)}function T(e,t,n){return 0===t&&n===e.length?o.fromByteArray(e):o.fromByteArray(e.slice(t,n))}function x(e,t,n){n=Math.min(e.length,n);for(var o=[],r=t;r239?4:l>223?3:l>191?2:1;if(r+d<=n)switch(d){case 1:l<128&&(u=l);break;case 2:128==(192&(i=e[r+1]))&&(c=(31&l)<<6|63&i)>127&&(u=c);break;case 3:i=e[r+1],a=e[r+2],128==(192&i)&&128==(192&a)&&(c=(15&l)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(u=c);break;case 4:i=e[r+1],a=e[r+2],s=e[r+3],128==(192&i)&&128==(192&a)&&128==(192&s)&&(c=(15&l)<<18|(63&i)<<12|(63&a)<<6|63&s)>65535&&c<1114112&&(u=c)}null===u?(u=65533,d=1):u>65535&&(u-=65536,o.push(u>>>10&1023|55296),u=56320|1023&u),o.push(u),r+=d}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",o=0;for(;o0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,o,r){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===o&&(o=0),void 0===r&&(r=this.length),t<0||n>e.length||o<0||r>this.length)throw new RangeError("out of range index");if(o>=r&&t>=n)return 0;if(o>=r)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(r>>>=0)-(o>>>=0),a=(n>>>=0)-(t>>>=0),s=Math.min(i,a),l=this.slice(o,r),u=e.slice(t,n),d=0;dr)&&(n=r),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");o||(o="utf8");for(var i=!1;;)switch(o){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return y(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return w(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+o);o=(""+o).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(e,t,n){var o="";n=Math.min(e.length,n);for(var r=t;ro)&&(n=o);for(var r="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function A(e,t,n,o,r,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>r||te.length)throw new RangeError("Index out of range")}function N(e,t,n,o){t<0&&(t=65535+t+1);for(var r=0,i=Math.min(e.length-n,2);r>>8*(o?r:1-r)}function F(e,t,n,o){t<0&&(t=4294967295+t+1);for(var r=0,i=Math.min(e.length-n,4);r>>8*(o?r:3-r)&255}function M(e,t,n,o,r,i){if(n+o>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function P(e,t,n,o,i){return i||M(e,0,n,4),r.write(e,t,n,o,23,4),n+4}function L(e,t,n,o,i){return i||M(e,0,n,8),r.write(e,t,n,o,52,8),n+8}c.prototype.slice=function(e,t){var n,o=this.length;if((e=~~e)<0?(e+=o)<0&&(e=0):e>o&&(e=o),(t=void 0===t?o:~~t)<0?(t+=o)<0&&(t=0):t>o&&(t=o),t0&&(r*=256);)o+=this[e+--t]*r;return o},c.prototype.readUInt8=function(e,t){return t||I(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||I(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||I(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||I(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||I(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var o=this[e],r=1,i=0;++i=(r*=128)&&(o-=Math.pow(2,8*t)),o},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||I(e,t,this.length);for(var o=t,r=1,i=this[e+--o];o>0&&(r*=256);)i+=this[e+--o]*r;return i>=(r*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||I(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||I(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||I(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||I(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||I(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||I(e,4,this.length),r.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||I(e,4,this.length),r.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||I(e,8,this.length),r.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||I(e,8,this.length),r.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,o){(e=+e,t|=0,n|=0,o)||A(this,e,t,n,Math.pow(2,8*n)-1,0);var r=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+r]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):F(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,o){if(e=+e,t|=0,!o){var r=Math.pow(2,8*n-1);A(this,e,t,n,r-1,-r)}var i=0,a=1,s=0;for(this[t]=255&e;++i>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,o){if(e=+e,t|=0,!o){var r=Math.pow(2,8*n-1);A(this,e,t,n,r-1,-r)}var i=n-1,a=1,s=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===s&&0!==this[t+i+1]&&(s=1),this[t+i]=(e/a>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):N(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):N(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):F(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||A(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):F(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return P(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return P(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return L(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return L(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,o){if(n||(n=0),o||0===o||(o=this.length),t>=e.length&&(t=e.length),t||(t=0),o>0&&o=this.length)throw new RangeError("sourceStart out of bounds");if(o<0)throw new RangeError("sourceEnd out of bounds");o>this.length&&(o=this.length),e.length-t=0;--r)e[r+t]=this[r+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(r=0;r>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(i=t;i55295&&n<57344){if(!r){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===o){(t-=3)>-1&&i.push(239,191,189);continue}r=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),r=n;continue}n=65536+(r-55296<<10|n-56320)}else r&&(t-=3)>-1&&i.push(239,191,189);if(r=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function q(e){return o.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(U,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function G(e,t,n,o){for(var r=0;r=t.length||r>=e.length);++r)t[r+n]=e[r];return r}}).call(this,n(5))},function(e){e.exports=JSON.parse('{"0":"O","1":"l","֭":"֖","֮":"֘","֨":"֙","֤":"֚","᪴":"ۛ","⃛":"ۛ","ؙ":"̓","ࣳ":"̓","̓":"̓","̕":"̓","ُ":"̓","ٝ":"̔","֜":"́","֝":"́","ؘ":"́","݇":"́","́":"́","॔":"́","َ":"́","̀":"̀","॓":"̀","̌":"̆","꙼":"̆","٘":"̆","ٚ":"̆","ͮ":"̆","ۨ":"̆̇","̐":"̆̇","ँ":"̆̇","ঁ":"̆̇","ઁ":"̆̇","ଁ":"̆̇","ఀ":"̆̇","ಁ":"̆̇","ഁ":"̆̇","𑒿":"̆̇","᳐":"̂","̑":"̂","ٛ":"̂","߮":"̂","꛰":"̂","֯":"̊","۟":"̊","៓":"̊","゚":"̊","ْ":"̊","ஂ":"̊","ံ":"̊","ំ":"̊","𑌀":"̊","ํ":"̊","ໍ":"̊","ͦ":"̊","ⷪ":"̊","࣫":"̈","߳":"̈","ً":"̋","ࣰ":"̋","͂":"̃","ٓ":"̃","ׄ":"̇","۬":"̇","݀":"̇","࣪":"̇","݁":"̇","͘":"̇","ֹ":"̇","ֺ":"̇","ׂ":"̇","ׁ":"̇","߭":"̇","ं":"̇","ਂ":"̇","ં":"̇","்":"̇","̷":"̸","᪷":"̨","̢":"̨","ͅ":"̨","᳒":"̄","̅":"̄","ٙ":"̄","߫":"̄","꛱":"̄","᳚":"̎","ٗ":"̒","͗":"͐","ࣿ":"͐","ࣸ":"͐","ऀ":"͒","᳭":"̖","᳜":"̩","ٖ":"̩","᳕":"̫","͇":"̳","ࣹ":"͔","ࣺ":"͕","゛":"゙","゜":"゚","̶":"̵","〬":"̉","ׅ":"̣","࣭":"̣","᳝":"̣","ִ":"̣","ٜ":"̣","़":"̣","়":"̣","਼":"̣","઼":"̣","଼":"̣","𑇊":"̣","𑓃":"̣","𐨺":"̣","࣮":"̤","᳞":"̤","༷":"̥","〭":"̥","̧":"̦","̡":"̦","̹":"̦","᳙":"̭","᳘":"̮","॒":"̱","̠":"̱","ࣱ":"ٌ","ࣨ":"ٌ","ࣥ":"ٌ","ﱞ":"ﹲّ","ࣲ":"ٍ","ﱟ":"ﹴّ","ﳲ":"ﹷّ","ﱠ":"ﹶّ","ﳳ":"ﹹّ","ﱡ":"ﹸّ","ؚ":"ِ","̗":"ِ","ﳴ":"ﹻّ","ﱢ":"ﹺّ","ﱣ":"ﹼٰ","ٟ":"ٕ","̍":"ٰ","݂":"ܼ","ਃ":"ঃ","ః":"ঃ","ಃ":"ঃ","ഃ":"ঃ","ඃ":"ঃ","း":"ঃ","𑓁":"ঃ","់":"่","່":"่","້":"้","໊":"๊","໋":"๋","꙯":"⃩","\\u2028":" ","\\u2029":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" "," ":" ","ߺ":"_","﹍":"_","﹎":"_","﹏":"_","‐":"-","‑":"-","‒":"-","–":"-","﹘":"-","۔":"-","⁃":"-","˗":"-","−":"-","➖":"-","Ⲻ":"-","⨩":"-̓","⸚":"-̈","﬩":"-̇","∸":"-̇","⨪":"-̣","꓾":"-.","~":"〜","؍":",","٫":",","‚":",","¸":",","ꓹ":",","⸲":"،","٬":"،",";":";","⸵":"؛","ः":":","ઃ":":",":":":","։":":","܃":":","܄":":","᛬":":","︰":":","᠃":":","᠉":":","⁚":":","׃":":","˸":":","꞉":":","∶":":","ː":":","ꓽ":":","⩴":"::=","⧴":":→","!":"!","ǃ":"!","ⵑ":"!","‼":"!!","⁉":"!?","ʔ":"?","Ɂ":"?","ॽ":"?","Ꭾ":"?","ꛫ":"?","⁈":"?!","⁇":"??","⸮":"؟","𝅭":".","․":".","܁":".","܂":".","꘎":".","𐩐":".","٠":".","۰":".","ꓸ":".","ꓻ":".,","‥":"..","ꓺ":"..","…":"...","꛴":"꛳꛳","・":"·","・":"·","᛫":"·","·":"·","⸱":"·","𐄁":"·","•":"·","‧":"·","∙":"·","⋅":"·","ꞏ":"·","ᐧ":"·","⋯":"···","ⵈ":"···","ᑄ":"·<","⋗":"·>","ᐷ":"·>","ᑀ":"·>","ᔯ":"·4","ᑾ":"·b","ᒀ":"·ḃ","ᑺ":"·d","ᒘ":"·J","ᒶ":"·L","ᑶ":"·P","ᑗ":"·U","ᐺ":"·V","ᐼ":"·Ʌ","ᒮ":"·Γ","ᐎ":"·Δ","ᑙ":"·Ո","ᐌ":"·ᐁ","ᐐ":"·ᐄ","ᐒ":"·ᐅ","ᐔ":"·ᐆ","ᐗ":"·ᐊ","ᐙ":"·ᐋ","ᐾ":"·ᐲ","ᑂ":"·ᐴ","ᑆ":"·ᐹ","ᑛ":"·ᑏ","ᑔ":"·ᑐ","ᑝ":"·ᑐ","ᑟ":"·ᑑ","ᑡ":"·ᑕ","ᑣ":"·ᑖ","ᑴ":"·ᑫ","ᑸ":"·ᑮ","ᑼ":"·ᑰ","ᒒ":"·ᒉ","ᒔ":"·ᒋ","ᒖ":"·ᒌ","ᒚ":"·ᒎ","ᒜ":"·ᒐ","ᒞ":"·ᒑ","ᒬ":"·ᒣ","ᒰ":"·ᒦ","ᒲ":"·ᒧ","ᒴ":"·ᒨ","ᒸ":"·ᒫ","ᓉ":"·ᓀ","ᣆ":"·ᓂ","ᣈ":"·ᓃ","ᣊ":"·ᓄ","ᣌ":"·ᓅ","ᓋ":"·ᓇ","ᓍ":"·ᓈ","ᓜ":"·ᓓ","ᓞ":"·ᓕ","ᓠ":"·ᓖ","ᓢ":"·ᓗ","ᓤ":"·ᓘ","ᓦ":"·ᓚ","ᓨ":"·ᓛ","ᓶ":"·ᓭ","ᓸ":"·ᓯ","ᓺ":"·ᓰ","ᓼ":"·ᓱ","ᓾ":"·ᓲ","ᔀ":"·ᓴ","ᔂ":"·ᓵ","ᔗ":"·ᔐ","ᔙ":"·ᔑ","ᔛ":"·ᔒ","ᔝ":"·ᔓ","ᔟ":"·ᔔ","ᔡ":"·ᔕ","ᔣ":"·ᔖ","ᔱ":"·ᔨ","ᔳ":"·ᔩ","ᔵ":"·ᔪ","ᔷ":"·ᔫ","ᔹ":"·ᔭ","ᔻ":"·ᔮ","ᣎ":"·ᕃ","ᣏ":"·ᕆ","ᣐ":"·ᕇ","ᣑ":"·ᕈ","ᣒ":"·ᕉ","ᣓ":"·ᕋ","ᕎ":"·ᕌ","ᕛ":"·ᕚ","ᕨ":"·ᕧ","ᢳ":"·ᢱ","ᢶ":"·ᢴ","ᢹ":"·ᢸ","ᣂ":"·ᣀ","꠰":"।","॥":"।।","᰼":"᰻᰻","။":"၊၊","᪩":"᪨᪨","᪫":"᪪᪨","᭟":"᭞᭞","𐩗":"𐩖𐩖","𑑌":"𑑋𑑋","𑙂":"𑙁𑙁","𑱂":"𑱁𑱁","᱿":"᱾᱾","՝":"\'","'":"\'","‘":"\'","’":"\'","‛":"\'","′":"\'","‵":"\'","՚":"\'","׳":"\'","`":"\'","`":"\'","`":"\'","´":"\'","΄":"\'","´":"\'","᾽":"\'","᾿":"\'","῾":"\'","ʹ":"\'","ʹ":"\'","ˈ":"\'","ˊ":"\'","ˋ":"\'","˴":"\'","ʻ":"\'","ʽ":"\'","ʼ":"\'","ʾ":"\'","ꞌ":"\'","י":"\'","ߴ":"\'","ߵ":"\'","ᑊ":"\'","ᛌ":"\'","𖽑":"\'","𖽒":"\'","᳓":"\'\'","\\"":"\'\'",""":"\'\'","“":"\'\'","”":"\'\'","‟":"\'\'","″":"\'\'","‶":"\'\'","〃":"\'\'","״":"\'\'","˝":"\'\'","ʺ":"\'\'","˶":"\'\'","ˮ":"\'\'","ײ":"\'\'","‴":"\'\'\'","‷":"\'\'\'","⁗":"\'\'\'\'","Ɓ":"\'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","ꙑ":"ˉbi","͵":"ˏ","˻":"˪","꜖":"˪","꜔":"˫","。":"˳","⸰":"°","˚":"°","∘":"°","○":"°","◦":"°","⍜":"°̲","⍤":"°̈","℃":"°C","℉":"°F","௵":"௳","༛":"༚༚","༟":"༚༝","࿎":"༝༚","༞":"༝༝","Ⓒ":"©","Ⓡ":"®","Ⓟ":"℗","𝈛":"⅄","⯬":"↞","⯭":"↟","⯮":"↠","⯯":"↡","↵":"↲","⥥":"⇃⇂","⥯":"⇃ᛚ","𝛛":"∂","𝜕":"∂","𝝏":"∂","𝞉":"∂","𝟃":"∂","𞣌":"∂","𞣍":"∂̵","ð":"∂̵","⌀":"∅","𝛁":"∇","𝛻":"∇","𝜵":"∇","𝝯":"∇","𝞩":"∇","𑢨":"∇","⍢":"∇̈","⍫":"∇̴","█":"∎","■":"∎","⨿":"∐","᛭":"+","➕":"+","𐊛":"+","⨣":"+̂","⨢":"+̊","⨤":"+̃","∔":"+̇","⨥":"+̣","⨦":"+̰","⨧":"+₂","➗":"÷","‹":"<","❮":"<","˂":"<","𝈶":"<","ᐸ":"<","ᚲ":"<","⋖":"<·","Ⲵ":"<·","ᑅ":"<·","≪":"<<","⋘":"<<<","᐀":"=","⹀":"=","゠":"=","꓿":"=","≚":"=̆","≙":"=̂","≗":"=̊","≐":"=̇","≑":"=̣̇","⩮":"=⃰","⩵":"==","⩶":"===","≞":"=ͫ","›":">","❯":">","˃":">","𝈷":">","ᐳ":">","𖼿":">","ᑁ":">·","⪥":"><","≫":">>","⨠":">>","⋙":">>>","⁓":"~","˜":"~","῀":"~","∼":"~","⍨":"~̈","⸞":"~̇","⩪":"~̇","⸟":"~̣","𞣈":"∠","⋀":"∧","∯":"∮∮","∰":"∮∮∮","⸫":"∴","⸪":"∵","⸬":"∷","𑇞":"≈","♎":"≏","🝞":"≏","≣":"≡","⨃":"⊍","⨄":"⊎","𝈸":"⊏","𝈹":"⊐","⨅":"⊓","⨆":"⊔","⨂":"⊗","⍟":"⊛","🝱":"⊠","🝕":"⊡","◁":"⊲","▷":"⊳","⍣":"⋆̈","︴":"⌇","◠":"⌒","⨽":"⌙","⌥":"⌤","⧇":"⌻","◎":"⌾","⦾":"⌾","⧅":"⍂","⦰":"⍉","⏃":"⍋","⏂":"⍎","⏁":"⍕","⏆":"⍭","☸":"⎈","︵":"⏜","︶":"⏝","︷":"⏞","︸":"⏟","︹":"⏠","︺":"⏡","▱":"⏥","⏼":"⏻","︱":"│","|":"│","┃":"│","┏":"┌","┣":"├","▐":"▌","▗":"▖","▝":"▘","☐":"□","■":"▪","▸":"▶","►":"▶","⳩":"☧","🜊":"☩","🌒":"☽","🌙":"☽","⏾":"☾","🌘":"☾","⧙":"⦚","🜺":"⧟","⨾":"⨟","𐆠":"⳨","♩":"𝅘𝅥","♪":"𝅘𝅥𝅮","⓪":"🄍","↺":"🄎","˙":"ॱ","ൎ":"ॱ","-":"ー","—":"ー","―":"ー","─":"ー","━":"ー","㇐":"ー","ꟷ":"ー","ᅳ":"ー","ㅡ":"ー","一":"ー","⼀":"ー","ᆖ":"ーー","ힹ":"ーᅡ","ힺ":"ーᅥ","ힻ":"ーᅥ丨","ힼ":"ーᅩ","ᆕ":"ーᅮ","ᅴ":"ー丨","ㅢ":"ー丨","ᆗ":"ー丨ᅮ","🄏":"$⃠","₤":"£","〒":"₸","〶":"₸","᭜":"᭐","꧆":"꧐","𑓑":"১","೧":"౧","ၥ":"၁","①":"➀","⑩":"➉","⏨":"₁₀","𝟐":"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·","ᒁ":"ḃ·","ᒈ":"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","🅭":"㏄\\t⃝","⋴":"ꞓ","ɛ":"ꞓ","ε":"ꞓ","ϵ":"ꞓ","𝛆":"ꞓ","𝛜":"ꞓ","𝜀":"ꞓ","𝜖":"ꞓ","𝜺":"ꞓ","𝝐":"ꞓ","𝝴":"ꞓ","𝞊":"ꞓ","𝞮":"ꞓ","𝟄":"ꞓ","ⲉ":"ꞓ","є":"ꞓ","ԑ":"ꞓ","ꮛ":"ꞓ","𑣎":"ꞓ","𐐩":"ꞓ","€":"Ꞓ","Ⲉ":"Ꞓ","Є":"Ꞓ","⍷":"ꞓ̲","ͽ":"ꜿ","Ͽ":"Ꜿ","ⅾ":"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̸","ҿ":"ę","ꭼ":"ᴇ","ə":"ǝ","ә":"ǝ","∃":"Ǝ","ⴺ":"Ǝ","ꓱ":"Ǝ","ɚ":"ǝ˞","ᴔ":"ǝo","ꭁ":"ǝo̸","ꭂ":"ǝo̵","Ә":"Ə","𝈡":"Ɛ","ℇ":"Ɛ","Ԑ":"Ɛ","Ꮛ":"Ɛ","𖼭":"Ɛ","𐐁":"Ɛ","ᶟ":"ᵋ","ᴈ":"ɜ","з":"ɜ","ҙ":"ɜ̦","𐑂":"ɞ","ꞝ":"ʚ","𐐪":"ʚ","𝐟":"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̦","н":"ʜ","ꮋ":"ʜ","ң":"ʜ̩","ӊ":"ʜ̦","ӈ":"ʜ̦","Ԋ":"Ƕ","ꮀ":"ⱶ","Ͱ":"Ⱶ","Ꭸ":"Ⱶ","Ꮀ":"Ⱶ","ꚱ":"Ⱶ","ꞕ":"ꜧ","˛":"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ٴ","ﷳ":"lكبر","ﷲ":"lللّٰo","㏠":"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̸","Ǿ":"Ó̸","ɵ":"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","ɶ":"oᴇ","∞":"oo","ꝏ":"oo","ꚙ":"oo","Ꝏ":"OO","Ꚙ":"OO","ﳗ":"oج","ﱑ":"oج","ﳘ":"oم","ﱒ":"oم","ﶓ":"oمج","ﶔ":"oمم","ﱓ":"oى","ﱔ":"oى","ൟ":"oരo","တ":"oာ","㍘":"O点","ↄ":"ɔ","ᴐ":"ɔ","ͻ":"ɔ","𐑋":"ɔ","Ↄ":"Ɔ","Ͻ":"Ɔ","ꓛ":"Ɔ","𐐣":"Ɔ","ꬿ":"ɔ̸","ꭢ":"ɔ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","ᶐ":"ɋ","ᴋ":"ĸ","κ":"ĸ","ϰ":"ĸ","𝛋":"ĸ","𝛞":"ĸ","𝜅":"ĸ","𝜘":"ĸ","𝜿":"ĸ","𝝒":"ĸ","𝝹":"ĸ","𝞌":"ĸ","𝞳":"ĸ","𝟆":"ĸ","ⲕ":"ĸ","к":"ĸ","ꮶ":"ĸ","қ":"ĸ̩","ҟ":"ĸ̵","𝐫":"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̸","ɱ":"rn̦","ᵯ":"rn̴","₨":"Rs","ꭱ":"ʀ","ꮢ":"ʀ","я":"ᴙ","ᵳ":"ɾ̴","℩":"ɿ","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ȝ","τ":"ᴛ","𝛕":"ᴛ","𝜏":"ᴛ","𝝉":"ᴛ","𝞃":"ᴛ","𝞽":"ᴛ","т":"ᴛ","ꭲ":"ᴛ","ҭ":"ᴛ̩","ţ":"ƫ","ț":"ƫ","Ꮏ":"ƫ","𝐮":"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","ṃ":"ꭑ","պ":"ɰ","ሣ":"ɰ","℧":"Ʊ","ᘮ":"Ʊ","ᘴ":"Ʊ","ᵿ":"ʊ̵","∨":"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","ⅷ":"viii","Ⅵ":"Vl","Ⅶ":"Vll","Ⅷ":"Vlll","🜈":"Vᷤ","ᴧ":"ʌ","𐓘":"ʌ","٨":"Ʌ","۸":"Ʌ","Λ":"Ʌ","𝚲":"Ʌ","𝛬":"Ʌ","𝜦":"Ʌ","𝝠":"Ʌ","𝞚":"Ʌ","Л":"Ʌ","ⴷ":"Ʌ","𐒰":"Ʌ","ᐱ":"Ʌ","ꛎ":"Ʌ","ꓥ":"Ʌ","𖼽":"Ʌ","𐊍":"Ʌ","Ӆ":"Ʌ̦","ᐽ":"Ʌ·","ɯ":"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","ѽ":"w҆҇","𑓅":"ẇ","₩":"W̵","ꝡ":"w̦","ᴍ":"ʍ","м":"ʍ","ꮇ":"ʍ","ӎ":"ʍ̦","᙮":"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","ꭾ":"ɂ","ˤ":"ˁ","ꛍ":"ʡ","⊙":"ʘ","☉":"ʘ","⨀":"ʘ","Ꙩ":"ʘ","ⵙ":"ʘ","𐓃":"ʘ","ℾ":"Γ","𝚪":"Γ","𝛤":"Γ","𝜞":"Γ","𝝘":"Γ","𝞒":"Γ","Ⲅ":"Γ","Г":"Γ","Ꮁ":"Γ","ᒥ":"Γ","𖼇":"Γ","Ғ":"Γ̵","ᒯ":"Γ·","Ґ":"Γ\'","∆":"Δ","△":"Δ","🜂":"Δ","𝚫":"Δ","𝛥":"Δ","𝜟":"Δ","𝝙":"Δ","𝞓":"Δ","Ⲇ":"Δ","ⵠ":"Δ","ᐃ":"Δ","𖼚":"Δ","𐊅":"Δ","𐊣":"Δ","⍙":"Δ̲","ᐏ":"Δ·","ᐬ":"Δᐠ","𝟋":"ϝ","𝛇":"ζ","𝜁":"ζ","𝜻":"ζ","𝝵":"ζ","𝞯":"ζ","ⳤ":"ϗ","𝛌":"λ","𝜆":"λ","𝝀":"λ","𝝺":"λ","𝞴":"λ","Ⲗ":"λ","𐓛":"λ","µ":"μ","𝛍":"μ","𝜇":"μ","𝝁":"μ","𝝻":"μ","𝞵":"μ","𝛏":"ξ","𝜉":"ξ","𝝃":"ξ","𝝽":"ξ","𝞷":"ξ","𝚵":"Ξ","𝛯":"Ξ","𝜩":"Ξ","𝝣":"Ξ","𝞝":"Ξ","ϖ":"π","ℼ":"π","𝛑":"π","𝛡":"π","𝜋":"π","𝜛":"π","𝝅":"π","𝝕":"π","𝝿":"π","𝞏":"π","𝞹":"π","𝟉":"π","ᴨ":"π","п":"π","∏":"Π","ℿ":"Π","𝚷":"Π","𝛱":"Π","𝜫":"Π","𝝥":"Π","𝞟":"Π","Ⲡ":"Π","П":"Π","ꛛ":"Π","𐊭":"Ϙ","𐌒":"Ϙ","ϛ":"ς","𝛓":"ς","𝜍":"ς","𝝇":"ς","𝞁":"ς","𝞻":"ς","𝚽":"Φ","𝛷":"Φ","𝜱":"Φ","𝝫":"Φ","𝞥":"Φ","Ⲫ":"Φ","Ф":"Φ","Փ":"Φ","ቀ":"Φ","ᛰ":"Φ","𐊳":"Φ","ꭓ":"χ","ꭕ":"χ","𝛘":"χ","𝜒":"χ","𝝌":"χ","𝞆":"χ","𝟀":"χ","ⲭ":"χ","𝛙":"ψ","𝜓":"ψ","𝝍":"ψ","𝞇":"ψ","𝟁":"ψ","ѱ":"ψ","𐓹":"ψ","𝚿":"Ψ","𝛹":"Ψ","𝜳":"Ψ","𝝭":"Ψ","𝞧":"Ψ","Ⲯ":"Ψ","Ѱ":"Ψ","𐓑":"Ψ","ᛘ":"Ψ","𐊵":"Ψ","⍵":"ω","ꞷ":"ω","𝛚":"ω","𝜔":"ω","𝝎":"ω","𝞈":"ω","𝟂":"ω","ⲱ":"ω","ꙍ":"ω","Ω":"Ω","𝛀":"Ω","𝛺":"Ω","𝜴":"Ω","𝝮":"Ω","𝞨":"Ω","ᘯ":"Ω","ᘵ":"Ω","𐊶":"Ω","⍹":"ω̲","ώ":"ῴ","☰":"Ⲷ","Ⳝ":"Ϭ","җ":"ж̩","Җ":"Ж̩","𝈋":"И","Ͷ":"И","ꚡ":"И","𐐥":"И","Й":"Ѝ","Ҋ":"Ѝ̦","ѝ":"й","ҋ":"й̦","𐒼":"Ӄ","ᴫ":"л","ӆ":"л̦","ꭠ":"љ","𐓫":"ꙩ","ᷮ":"ⷬ","𐓍":"Ћ","𝈂":"Ӿ","𝈢":"Ѡ","Ꮗ":"Ѡ","ᗯ":"Ѡ","Ѽ":"Ѡ҆҇","ᣭ":"Ѡ·","Ꞷ":"Ꙍ","ӌ":"ҷ","Ӌ":"Ҷ","Ҿ":"Ҽ̨","ⲽ":"ш","Ⲽ":"Ш","Ꙑ":"Ъl","℈":"Э","🜁":"Ꙙ","𖼜":"Ꙙ","ꦒ":"ⰿ","և":"եւ","ኔ":"ձ","ﬔ":"մե","ﬕ":"մի","ﬗ":"մխ","ﬓ":"մն","∩":"Ո","⋂":"Ո","𝉅":"Ո","በ":"Ո","ᑎ":"Ո","ꓵ":"Ո","ᑚ":"Ո·","ᑨ":"Ո\'","ﬖ":"վն","₽":"Ք","˓":"ՙ","ʿ":"ՙ","ℵ":"א","ﬡ":"א","אָ":"אַ","אּ":"אַ","ﭏ":"אל","ℶ":"ב","ℷ":"ג","ℸ":"ד","ﬢ":"ד","ﬣ":"ה","יּ":"יִ","ﬤ":"כ","ﬥ":"ל","ﬦ":"ם","ﬠ":"ע","ﬧ":"ר","שׂ":"שׁ","שּ":"שׁ","שּׂ":"שּׁ","ﬨ":"ת","ﺀ":"ء","۽":"ء͈","ﺂ":"آ","ﺁ":"آ","ﭑ":"ٱ","ﭐ":"ٱ","𞸁":"ب","𞸡":"ب","𞹡":"ب","𞺁":"ب","𞺡":"ب","ﺑ":"ب","ﺒ":"ب","ﺐ":"ب","ﺏ":"ب","ݑ":"بۛ","ࢶ":"بۢ","ࢡ":"بٔ","ﲠ":"بo","ﳢ":"بo","ﲜ":"بج","ﰅ":"بج","ﲝ":"بح","ﰆ":"بح","ﷂ":"بحى","ﲞ":"بخ","ﰇ":"بخ","ﳒ":"بخ","ﱋ":"بخ","ﶞ":"بخى","ﱪ":"بر","ﱫ":"بز","ﲟ":"بم","ﳡ":"بم","ﱬ":"بم","ﰈ":"بم","ﱭ":"بن","ﱮ":"بى","ﰉ":"بى","ﱯ":"بى","ﰊ":"بى","ﭔ":"ٻ","ﭕ":"ٻ","ﭓ":"ٻ","ﭒ":"ٻ","ې":"ٻ","ﯦ":"ٻ","ﯧ":"ٻ","ﯥ":"ٻ","ﯤ":"ٻ","ﭜ":"ڀ","ﭝ":"ڀ","ﭛ":"ڀ","ﭚ":"ڀ","ࢩ":"ݔ","ݧ":"ݔ","⍥":"ة","ö":"ة","ﺔ":"ة","ﺓ":"ة","ۃ":"ة","𞸕":"ت","𞸵":"ت","𞹵":"ت","𞺕":"ت","𞺵":"ت","ﺗ":"ت","ﺘ":"ت","ﺖ":"ت","ﺕ":"ت","ﲥ":"تo","ﳤ":"تo","ﲡ":"تج","ﰋ":"تج","ﵐ":"تجم","ﶠ":"تجى","ﶟ":"تجى","ﲢ":"تح","ﰌ":"تح","ﵒ":"تحج","ﵑ":"تحج","ﵓ":"تحم","ﲣ":"تخ","ﰍ":"تخ","ﵔ":"تخم","ﶢ":"تخى","ﶡ":"تخى","ﱰ":"تر","ﱱ":"تز","ﲤ":"تم","ﳣ":"تم","ﱲ":"تم","ﰎ":"تم","ﵕ":"تمج","ﵖ":"تمح","ﵗ":"تمخ","ﶤ":"تمى","ﶣ":"تمى","ﱳ":"تن","ﱴ":"تى","ﰏ":"تى","ﱵ":"تى","ﰐ":"تى","ﭠ":"ٺ","ﭡ":"ٺ","ﭟ":"ٺ","ﭞ":"ٺ","ﭤ":"ٿ","ﭥ":"ٿ","ﭣ":"ٿ","ﭢ":"ٿ","𞸂":"ج","𞸢":"ج","𞹂":"ج","𞹢":"ج","𞺂":"ج","𞺢":"ج","ﺟ":"ج","ﺠ":"ج","ﺞ":"ج","ﺝ":"ج","ﲧ":"جح","ﰕ":"جح","ﶦ":"جحى","ﶾ":"جحى","ﷻ":"جل جلlلo","ﲨ":"جم","ﰖ":"جم","ﵙ":"جمح","ﵘ":"جمح","ﶧ":"جمى","ﶥ":"جمى","ﴝ":"جى","ﴁ":"جى","ﴞ":"جى","ﴂ":"جى","ﭸ":"ڃ","ﭹ":"ڃ","ﭷ":"ڃ","ﭶ":"ڃ","ﭴ":"ڄ","ﭵ":"ڄ","ﭳ":"ڄ","ﭲ":"ڄ","ﭼ":"چ","ﭽ":"چ","ﭻ":"چ","ﭺ":"چ","ﮀ":"ڇ","ﮁ":"ڇ","ﭿ":"ڇ","ﭾ":"ڇ","𞸇":"ح","𞸧":"ح","𞹇":"ح","𞹧":"ح","𞺇":"ح","𞺧":"ح","ﺣ":"ح","ﺤ":"ح","ﺢ":"ح","ﺡ":"ح","څ":"حۛ","ځ":"حٔ","ݲ":"حٔ","ﲩ":"حج","ﰗ":"حج","ﶿ":"حجى","ﲪ":"حم","ﰘ":"حم","ﵛ":"حمى","ﵚ":"حمى","ﴛ":"حى","ﳿ":"حى","ﴜ":"حى","ﴀ":"حى","𞸗":"خ","𞸷":"خ","𞹗":"خ","𞹷":"خ","𞺗":"خ","𞺷":"خ","ﺧ":"خ","ﺨ":"خ","ﺦ":"خ","ﺥ":"خ","ﲫ":"خج","ﰙ":"خج","ﰚ":"خح","ﲬ":"خم","ﰛ":"خم","ﴟ":"خى","ﴃ":"خى","ﴠ":"خى","ﴄ":"خى","𐋡":"د","𞸃":"د","𞺃":"د","𞺣":"د","ﺪ":"د","ﺩ":"د","ڈ":"دؕ","ﮉ":"دؕ","ﮈ":"دؕ","ڎ":"دۛ","ﮇ":"دۛ","ﮆ":"دۛ","ۮ":"د̂","ࢮ":"د̤̣","𞸘":"ذ","𞺘":"ذ","𞺸":"ذ","ﺬ":"ذ","ﺫ":"ذ","ﱛ":"ذٰ","ڋ":"ڊؕ","ﮅ":"ڌ","ﮄ":"ڌ","ﮃ":"ڍ","ﮂ":"ڍ","𞸓":"ر","𞺓":"ر","𞺳":"ر","ﺮ":"ر","ﺭ":"ر","ڑ":"رؕ","ﮍ":"رؕ","ﮌ":"رؕ","ژ":"رۛ","ﮋ":"رۛ","ﮊ":"رۛ","ڒ":"ر̆","ࢹ":"ر̆̇","ۯ":"ر̂","ݬ":"رٔ","ﱜ":"رٰ","ﷶ":"رسول","﷼":"رىlل","𞸆":"ز","𞺆":"ز","𞺦":"ز","ﺰ":"ز","ﺯ":"ز","ࢲ":"ز̂","ݱ":"ڗؕ","𞸎":"س","𞸮":"س","𞹎":"س","𞹮":"س","𞺎":"س","𞺮":"س","ﺳ":"س","ﺴ":"س","ﺲ":"س","ﺱ":"س","ش":"سۛ","𞸔":"سۛ","𞸴":"سۛ","𞹔":"سۛ","𞹴":"سۛ","𞺔":"سۛ","𞺴":"سۛ","ﺷ":"سۛ","ﺸ":"سۛ","ﺶ":"سۛ","ﺵ":"سۛ","ݾ":"س̂","ﴱ":"سo","ﳨ":"سo","ﴲ":"سۛo","ﳪ":"سۛo","ﲭ":"سج","ﴴ":"سج","ﰜ":"سج","ﴭ":"سۛج","ﴷ":"سۛج","ﴥ":"سۛج","ﴉ":"سۛج","ﵝ":"سجح","ﵞ":"سجى","ﵩ":"سۛجى","ﲮ":"سح","ﴵ":"سح","ﰝ":"سح","ﴮ":"سۛح","ﴸ":"سۛح","ﴦ":"سۛح","ﴊ":"سۛح","ﵜ":"سحج","ﵨ":"سۛحم","ﵧ":"سۛحم","ﶪ":"سۛحى","ﲯ":"سخ","ﴶ":"سخ","ﰞ":"سخ","ﴯ":"سۛخ","ﴹ":"سۛخ","ﴧ":"سۛخ","ﴋ":"سۛخ","ﶨ":"سخى","ﷆ":"سخى","ﴪ":"سر","ﴎ":"سر","ﴩ":"سۛر","ﴍ":"سۛر","ﲰ":"سم","ﳧ":"سم","ﰟ":"سم","ﴰ":"سۛم","ﳩ":"سۛم","ﴨ":"سۛم","ﴌ":"سۛم","ﵡ":"سمج","ﵠ":"سمح","ﵟ":"سمح","ﵫ":"سۛمخ","ﵪ":"سۛمخ","ﵣ":"سمم","ﵢ":"سمم","ﵭ":"سۛمم","ﵬ":"سۛمم","ﴗ":"سى","ﳻ":"سى","ﴘ":"سى","ﳼ":"سى","ﴙ":"سۛى","ﳽ":"سۛى","ﴚ":"سۛى","ﳾ":"سۛى","𐋲":"ص","𞸑":"ص","𞸱":"ص","𞹑":"ص","𞹱":"ص","𞺑":"ص","𞺱":"ص","ﺻ":"ص","ﺼ":"ص","ﺺ":"ص","ﺹ":"ص","ڞ":"صۛ","ࢯ":"ص̤̣","ﲱ":"صح","ﰠ":"صح","ﵥ":"صحح","ﵤ":"صحح","ﶩ":"صحى","ﲲ":"صخ","ﴫ":"صر","ﴏ":"صر","ﷵ":"صلعم","ﷹ":"صلى","ﷰ":"صلى","ﷺ":"صلى lللo علىo وسلم","ﲳ":"صم","ﰡ":"صم","ﷅ":"صمم","ﵦ":"صمم","ﴡ":"صى","ﴅ":"صى","ﴢ":"صى","ﴆ":"صى","𞸙":"ض","𞸹":"ض","𞹙":"ض","𞹹":"ض","𞺙":"ض","𞺹":"ض","ﺿ":"ض","ﻀ":"ض","ﺾ":"ض","ﺽ":"ض","ﲴ":"ضج","ﰢ":"ضج","ﲵ":"ضح","ﰣ":"ضح","ﵮ":"ضحى","ﶫ":"ضحى","ﲶ":"ضخ","ﰤ":"ضخ","ﵰ":"ضخم","ﵯ":"ضخم","ﴬ":"ضر","ﴐ":"ضر","ﲷ":"ضم","ﰥ":"ضم","ﴣ":"ضى","ﴇ":"ضى","ﴤ":"ضى","ﴈ":"ضى","𐋨":"ط","𞸈":"ط","𞹨":"ط","𞺈":"ط","𞺨":"ط","ﻃ":"ط","ﻄ":"ط","ﻂ":"ط","ﻁ":"ط","ڟ":"طۛ","ﲸ":"طح","ﰦ":"طح","ﴳ":"طم","ﴺ":"طم","ﰧ":"طم","ﵲ":"طمح","ﵱ":"طمح","ﵳ":"طمم","ﵴ":"طمى","ﴑ":"طى","ﳵ":"طى","ﴒ":"طى","ﳶ":"طى","𞸚":"ظ","𞹺":"ظ","𞺚":"ظ","𞺺":"ظ","ﻇ":"ظ","ﻈ":"ظ","ﻆ":"ظ","ﻅ":"ظ","ﲹ":"ظم","ﴻ":"ظم","ﰨ":"ظم","؏":"ع","𞸏":"ع","𞸯":"ع","𞹏":"ع","𞹯":"ع","𞺏":"ع","𞺯":"ع","ﻋ":"ع","ﻌ":"ع","ﻊ":"ع","ﻉ":"ع","ﲺ":"عج","ﰩ":"عج","ﷄ":"عجم","ﵵ":"عجم","ﷷ":"علىo","ﲻ":"عم","ﰪ":"عم","ﵷ":"عمم","ﵶ":"عمم","ﵸ":"عمى","ﶶ":"عمى","ﴓ":"عى","ﳷ":"عى","ﴔ":"عى","ﳸ":"عى","𞸛":"غ","𞸻":"غ","𞹛":"غ","𞹻":"غ","𞺛":"غ","𞺻":"غ","ﻏ":"غ","ﻐ":"غ","ﻎ":"غ","ﻍ":"غ","ﲼ":"غج","ﰫ":"غج","ﲽ":"غم","ﰬ":"غم","ﵹ":"غمم","ﵻ":"غمى","ﵺ":"غمى","ﴕ":"غى","ﳹ":"غى","ﴖ":"غى","ﳺ":"غى","𞸐":"ف","𞸰":"ف","𞹰":"ف","𞺐":"ف","𞺰":"ف","ﻓ":"ف","ﻔ":"ف","ﻒ":"ف","ﻑ":"ف","ڧ":"ف","ﲾ":"فج","ﰭ":"فج","ﲿ":"فح","ﰮ":"فح","ﳀ":"فخ","ﰯ":"فخ","ﵽ":"فخم","ﵼ":"فخم","ﳁ":"فم","ﰰ":"فم","ﷁ":"فمى","ﱼ":"فى","ﰱ":"فى","ﱽ":"فى","ﰲ":"فى","𞸞":"ڡ","𞹾":"ڡ","ࢻ":"ڡ","ٯ":"ڡ","𞸟":"ڡ","𞹟":"ڡ","ࢼ":"ڡ","ڤ":"ڡۛ","ﭬ":"ڡۛ","ﭭ":"ڡۛ","ﭫ":"ڡۛ","ﭪ":"ڡۛ","ڨ":"ڡۛ","ࢤ":"ڢۛ","ﭰ":"ڦ","ﭱ":"ڦ","ﭯ":"ڦ","ﭮ":"ڦ","𞸒":"ق","𞸲":"ق","𞹒":"ق","𞹲":"ق","𞺒":"ق","𞺲":"ق","ﻗ":"ق","ﻘ":"ق","ﻖ":"ق","ﻕ":"ق","ﳂ":"قح","ﰳ":"قح","ﷱ":"قلى","ﳃ":"قم","ﰴ":"قم","ﶴ":"قمح","ﵾ":"قمح","ﵿ":"قمم","ﶲ":"قمى","ﱾ":"قى","ﰵ":"قى","ﱿ":"قى","ﰶ":"قى","𞸊":"ك","𞸪":"ك","𞹪":"ك","ﻛ":"ك","ﻜ":"ك","ﻚ":"ك","ﻙ":"ك","ک":"ك","ﮐ":"ك","ﮑ":"ك","ﮏ":"ك","ﮎ":"ك","ڪ":"ك","ڭ":"كۛ","ﯕ":"كۛ","ﯖ":"كۛ","ﯔ":"كۛ","ﯓ":"كۛ","ݣ":"كۛ","ﲀ":"كl","ﰷ":"كl","ﳄ":"كج","ﰸ":"كج","ﳅ":"كح","ﰹ":"كح","ﳆ":"كخ","ﰺ":"كخ","ﳇ":"كل","ﳫ":"كل","ﲁ":"كل","ﰻ":"كل","ﳈ":"كم","ﳬ":"كم","ﲂ":"كم","ﰼ":"كم","ﷃ":"كمم","ﶻ":"كمم","ﶷ":"كمى","ﲃ":"كى","ﰽ":"كى","ﲄ":"كى","ﰾ":"كى","ݢ":"ڬ","ﮔ":"گ","ﮕ":"گ","ﮓ":"گ","ﮒ":"گ","ࢰ":"گ","ڴ":"گۛ","ﮜ":"ڱ","ﮝ":"ڱ","ﮛ":"ڱ","ﮚ":"ڱ","ﮘ":"ڳ","ﮙ":"ڳ","ﮗ":"ڳ","ﮖ":"ڳ","𞸋":"ل","𞸫":"ل","𞹋":"ل","𞺋":"ل","𞺫":"ل","ﻟ":"ل","ﻠ":"ل","ﻞ":"ل","ﻝ":"ل","ڷ":"لۛ","ڵ":"ل̆","ﻼ":"لl","ﻻ":"لl","ﻺ":"لlٕ","ﻹ":"لlٕ","ﻸ":"لlٴ","ﻷ":"لlٴ","ﳍ":"لo","ﻶ":"لآ","ﻵ":"لآ","ﳉ":"لج","ﰿ":"لج","ﶃ":"لجج","ﶄ":"لجج","ﶺ":"لجم","ﶼ":"لجم","ﶬ":"لجى","ﳊ":"لح","ﱀ":"لح","ﶵ":"لحم","ﶀ":"لحم","ﶂ":"لحى","ﶁ":"لحى","ﳋ":"لخ","ﱁ":"لخ","ﶆ":"لخم","ﶅ":"لخم","ﳌ":"لم","ﳭ":"لم","ﲅ":"لم","ﱂ":"لم","ﶈ":"لمح","ﶇ":"لمح","ﶭ":"لمى","ﲆ":"لى","ﱃ":"لى","ﲇ":"لى","ﱄ":"لى","𞸌":"م","𞸬":"م","𞹬":"م","𞺌":"م","𞺬":"م","ﻣ":"م","ﻤ":"م","ﻢ":"م","ﻡ":"م","ࢧ":"مۛ","۾":"م͈","ﲈ":"مl","ﳎ":"مج","ﱅ":"مج","ﶌ":"مجح","ﶒ":"مجخ","ﶍ":"مجم","ﷀ":"مجى","ﳏ":"مح","ﱆ":"مح","ﶉ":"محج","ﶊ":"محم","ﷴ":"محمد","ﶋ":"محى","ﳐ":"مخ","ﱇ":"مخ","ﶎ":"مخج","ﶏ":"مخم","ﶹ":"مخى","ﳑ":"مم","ﲉ":"مم","ﱈ":"مم","ﶱ":"ممى","ﱉ":"مى","ﱊ":"مى","𞸍":"ن","𞸭":"ن","𞹍":"ن","𞹭":"ن","𞺍":"ن","𞺭":"ن","ﻧ":"ن","ﻨ":"ن","ﻦ":"ن","ﻥ":"ن","ݨ":"نؕ","ݩ":"ن̆","ﳖ":"نo","ﳯ":"نo","ﶸ":"نجح","ﶽ":"نجح","ﶘ":"نجم","ﶗ":"نجم","ﶙ":"نجى","ﷇ":"نجى","ﳓ":"نح","ﱌ":"نح","ﶕ":"نحم","ﶖ":"نحى","ﶳ":"نحى","ﳔ":"نخ","ﱍ":"نخ","ﲊ":"نر","ﲋ":"نز","ﳕ":"نم","ﳮ":"نم","ﲌ":"نم","ﱎ":"نم","ﶛ":"نمى","ﶚ":"نمى","ﲍ":"نن","ﲎ":"نى","ﱏ":"نى","ﲏ":"نى","ﱐ":"نى","ۂ":"ۀ","ﮥ":"ۀ","ﮤ":"ۀ","𐋤":"و","𞸅":"و","𞺅":"و","𞺥":"و","ﻮ":"و","ﻭ":"و","ࢱ":"و","ۋ":"وۛ","ﯟ":"وۛ","ﯞ":"وۛ","ۇ":"و̓","ﯘ":"و̓","ﯗ":"و̓","ۆ":"و̆","ﯚ":"و̆","ﯙ":"و̆","ۉ":"و̂","ﯣ":"و̂","ﯢ":"و̂","ۈ":"وٰ","ﯜ":"وٰ","ﯛ":"وٰ","ؤ":"وٴ","ﺆ":"وٴ","ﺅ":"وٴ","ٶ":"وٴ","ٷ":"و̓ٴ","ﯝ":"و̓ٴ","ﷸ":"وسلم","ﯡ":"ۅ","ﯠ":"ۅ","ٮ":"ى","𞸜":"ى","𞹼":"ى","ں":"ى","𞸝":"ى","𞹝":"ى","ﮟ":"ى","ﮞ":"ى","ࢽ":"ى","ﯨ":"ى","ﯩ":"ى","ﻰ":"ى","ﻯ":"ى","ي":"ى","𞸉":"ى","𞸩":"ى","𞹉":"ى","𞹩":"ى","𞺉":"ى","𞺩":"ى","ﻳ":"ى","ﻴ":"ى","ﻲ":"ى","ﻱ":"ى","ی":"ى","ﯾ":"ى","ﯿ":"ى","ﯽ":"ى","ﯼ":"ى","ے":"ى","ﮯ":"ى","ﮮ":"ى","ٹ":"ىؕ","ﭨ":"ىؕ","ﭩ":"ىؕ","ﭧ":"ىؕ","ﭦ":"ىؕ","ڻ":"ىؕ","ﮢ":"ىؕ","ﮣ":"ىؕ","ﮡ":"ىؕ","ﮠ":"ىؕ","پ":"ىۛ","ﭘ":"ىۛ","ﭙ":"ىۛ","ﭗ":"ىۛ","ﭖ":"ىۛ","ث":"ىۛ","𞸖":"ىۛ","𞸶":"ىۛ","𞹶":"ىۛ","𞺖":"ىۛ","𞺶":"ىۛ","ﺛ":"ىۛ","ﺜ":"ىۛ","ﺚ":"ىۛ","ﺙ":"ىۛ","ڽ":"ىۛ","ۑ":"ىۛ","ؿ":"ىۛ","ࢷ":"ىۛۢ","ݖ":"ى̆","ێ":"ى̆","ࢺ":"ى̆̇","ؽ":"ى̂","ࢨ":"ىٔ","ﲐ":"ىٰ","ﱝ":"ىٰ","ﳞ":"ىo","ﳱ":"ىo","ﳦ":"ىۛo","ئ":"ىٴ","ﺋ":"ىٴ","ﺌ":"ىٴ","ﺊ":"ىٴ","ﺉ":"ىٴ","ٸ":"ىٴ","ﯫ":"ىٴl","ﯪ":"ىٴl","ﲛ":"ىٴo","ﳠ":"ىٴo","ﯭ":"ىٴo","ﯬ":"ىٴo","ﯸ":"ىٴٻ","ﯷ":"ىٴٻ","ﯶ":"ىٴٻ","ﲗ":"ىٴج","ﰀ":"ىٴج","ﲘ":"ىٴح","ﰁ":"ىٴح","ﲙ":"ىٴخ","ﱤ":"ىٴر","ﱥ":"ىٴز","ﲚ":"ىٴم","ﳟ":"ىٴم","ﱦ":"ىٴم","ﰂ":"ىٴم","ﱧ":"ىٴن","ﯯ":"ىٴو","ﯮ":"ىٴو","ﯱ":"ىٴو̓","ﯰ":"ىٴو̓","ﯳ":"ىٴو̆","ﯲ":"ىٴو̆","ﯵ":"ىٴوٰ","ﯴ":"ىٴوٰ","ﯻ":"ىٴى","ﯺ":"ىٴى","ﱨ":"ىٴى","ﯹ":"ىٴى","ﰃ":"ىٴى","ﱩ":"ىٴى","ﰄ":"ىٴى","ﳚ":"ىج","ﱕ":"ىج","ﰑ":"ىۛج","ﶯ":"ىجى","ﳛ":"ىح","ﱖ":"ىح","ﶮ":"ىحى","ﳜ":"ىخ","ﱗ":"ىخ","ﲑ":"ىر","ﱶ":"ىۛر","ﲒ":"ىز","ﱷ":"ىۛز","ﳝ":"ىم","ﳰ":"ىم","ﲓ":"ىم","ﱘ":"ىم","ﲦ":"ىۛم","ﳥ":"ىۛم","ﱸ":"ىۛم","ﰒ":"ىۛم","ﶝ":"ىمم","ﶜ":"ىمم","ﶰ":"ىمى","ﲔ":"ىن","ﱹ":"ىۛن","ﲕ":"ىى","ﱙ":"ىى","ﲖ":"ىى","ﱚ":"ىى","ﱺ":"ىۛى","ﰓ":"ىۛى","ﱻ":"ىۛى","ﰔ":"ىۛى","ﮱ":"ۓ","ﮰ":"ۓ","𐊸":"ⵀ","⁞":"ⵂ","⸽":"ⵂ","⦙":"ⵂ","︙":"ⵗ","⁝":"ⵗ","⋮":"ⵗ","Մ":"ሆ","Ռ":"ቡ","Ի":"ኮ","Պ":"ጣ","आ":"अा","ऒ":"अाॆ","ओ":"अाे","औ":"अाै","ऄ":"अॆ","ऑ":"अॉ","ऍ":"एॅ","ऎ":"एॆ","ऐ":"एे","ई":"र्इ","ઽ":"ऽ","𑇜":"ꣻ","𑇋":"ऺ","ુ":"ु","ૂ":"ू","ੋ":"ॆ","੍":"्","્":"्","আ":"অা","ৠ":"ঋৃ","ৡ":"ঋৃ","𑒒":"ঘ","𑒔":"চ","𑒖":"জ","𑒘":"ঞ","𑒙":"ট","𑒛":"ড","𑒪":"ণ","𑒞":"ত","𑒟":"থ","𑒠":"দ","𑒡":"ধ","𑒢":"ন","𑒣":"প","𑒩":"ব","𑒧":"ম","𑒨":"য","𑒫":"র","𑒝":"ল","𑒭":"ষ","𑒮":"স","𑓄":"ঽ","𑒰":"া","𑒱":"ি","𑒹":"ে","𑒼":"ো","𑒾":"ৌ","𑓂":"্","𑒽":"ৗ","ਉ":"ੳੁ","ਊ":"ੳੂ","ਆ":"ਅਾ","ਐ":"ਅੈ","ਔ":"ਅੌ","ਇ":"ੲਿ","ਈ":"ੲੀ","ਏ":"ੲੇ","આ":"અા","ઑ":"અાૅ","ઓ":"અાે","ઔ":"અાૈ","ઍ":"અૅ","એ":"અે","ઐ":"અૈ","ଆ":"ଅା","௮":"அ","ர":"ஈ","ா":"ஈ","௫":"ஈு","௨":"உ","ഉ":"உ","ஊ":"உள","ഊ":"உൗ","௭":"எ","௷":"எவ","ஜ":"ஐ","ജ":"ஐ","௧":"க","௪":"ச","௬":"சு","௲":"சூ","ഺ":"டி","ണ":"ண","௺":"நீ","௴":"மீ","௰":"ய","ഴ":"ழ","ௗ":"ள","ை":"ன","ശ":"ஶ","௸":"ஷ","ി":"ி","ീ":"ி","ொ":"ெஈ","ௌ":"ெள","ோ":"ேஈ","ಅ":"అ","ಆ":"ఆ","ಇ":"ఇ","ౠ":"ఋా","ౡ":"ఌా","ಒ":"ఒ","ఔ":"ఒౌ","ಔ":"ఒౌ","ఓ":"ఒౕ","ಓ":"ఒౕ","ಜ":"జ","ಞ":"ఞ","ఢ":"డ̣","ಣ":"ణ","థ":"ధּ","భ":"బ̣","ಯ":"య","ఠ":"రּ","ಱ":"ఱ","ಲ":"ల","ష":"వ̣","హ":"వా","మ":"వు","ూ":"ుా","ౄ":"ృా","ೡ":"ಌಾ","ഈ":"ഇൗ","ഐ":"എെ","ഓ":"ഒാ","ഔ":"ഒൗ","ൡ":"ഞ","൫":"ദ്ര","൹":"നു","ഌ":"നു","ങ":"നു","൯":"ന്","ൻ":"ന്","൬":"ന്ന","൚":"ന്മ","റ":"ര","൪":"ര്","ർ":"ര്","൮":"വ്ര","൶":"ഹ്മ","ൂ":"ു","ൃ":"ു","ൈ":"െെ","෪":"ජ","෫":"ද","𑐓":"𑐴𑑂𑐒","𑐙":"𑐴𑑂𑐘","𑐤":"𑐴𑑂𑐣","𑐪":"𑐴𑑂𑐩","𑐭":"𑐴𑑂𑐬","𑐯":"𑐴𑑂𑐮","𑗘":"𑖂","𑗙":"𑖂","𑗚":"𑖃","𑗛":"𑖄","𑗜":"𑖲","𑗝":"𑖳","ฃ":"ข","ด":"ค","ต":"ค","ม":"ฆ","ຈ":"จ","ซ":"ช","ฏ":"ฎ","ท":"ฑ","ບ":"บ","ປ":"ป","ຝ":"ฝ","ພ":"พ","ຟ":"ฟ","ฦ":"ภ","ຍ":"ย","។":"ฯ","ๅ":"า","ำ":"̊า","ិ":"ิ","ី":"ี","ឹ":"ึ","ឺ":"ื","ຸ":"ุ","ູ":"ู","แ":"เเ","ໜ":"ຫນ","ໝ":"ຫມ","ຳ":"̊າ","༂":"འུྂཿ","༃":"འུྂ༔","ཪ":"ར","ༀ":"ཨོཾ","ཷ":"ྲཱྀ","ཹ":"ླཱྀ","𑲲":"𑲪","ႁ":"ဂှ","က":"ဂာ","ၰ":"ဃှ","ၦ":"ပှ","ဟ":"ပာ","ၯ":"ပာှ","ၾ":"ၽှ","ဩ":"သြ","ဪ":"သြော်","႞":"ႃ̊","ឣ":"អ","᧐":"ᦞ","᧑":"ᦱ","᪀":"ᩅ","᪐":"ᩅ","꩓":"ꨁ","꩖":"ꨣ","᭒":"ᬍ","᭓":"ᬑ","᭘":"ᬨ","ꦣ":"ꦝ","ᢖ":"ᡜ","ᡕ":"ᠵ","ῶ":"Ꮿ","ᐍ":"ᐁ·","ᐫ":"ᐁᐠ","ᐑ":"ᐄ·","ᐓ":"ᐅ·","ᐭ":"ᐅᐠ","ᐕ":"ᐆ·","ᐘ":"ᐊ·","ᐮ":"ᐊᐠ","ᐚ":"ᐋ·","ᣝ":"ᐞᣟ","ᓑ":"ᐡ","ᕀ":"ᐩ","ᐿ":"ᐲ·","ᑃ":"ᐴ·","⍩":"ᐵ","ᑇ":"ᐹ·","ᑜ":"ᑏ·","⸧":"ᑐ","⊃":"ᑐ","ᑞ":"ᑐ·","ᑩ":"ᑐ\'","⟉":"ᑐ/","⫗":"ᑐᑕ","ᑠ":"ᑑ·","⸦":"ᑕ","⊂":"ᑕ","ᑢ":"ᑕ·","ᑪ":"ᑕ\'","ᑤ":"ᑖ·","ᑵ":"ᑫ·","ᒅ":"ᑫ\'","ᑹ":"ᑮ·","ᑽ":"ᑰ·","ᘃ":"ᒉ","ᒓ":"ᒉ·","ᒕ":"ᒋ·","ᒗ":"ᒌ·","ᒛ":"ᒎ·","ᘂ":"ᒐ","ᒝ":"ᒐ·","ᒟ":"ᒑ·","ᒭ":"ᒣ·","ᒱ":"ᒦ·","ᒳ":"ᒧ·","ᒵ":"ᒨ·","ᒹ":"ᒫ·","ᓊ":"ᓀ·","ᣇ":"ᓂ·","ᣉ":"ᓃ·","ᣋ":"ᓄ·","ᣍ":"ᓅ·","ᓌ":"ᓇ·","ᓎ":"ᓈ·","ᘄ":"ᓓ","ᓝ":"ᓓ·","ᓟ":"ᓕ·","ᓡ":"ᓖ·","ᓣ":"ᓗ·","ᓥ":"ᓘ·","ᘇ":"ᓚ","ᓧ":"ᓚ·","ᓩ":"ᓛ·","ᓷ":"ᓭ·","ᓹ":"ᓯ·","ᓻ":"ᓰ·","ᓽ":"ᓱ·","ᓿ":"ᓲ·","ᔁ":"ᓴ·","ᔃ":"ᓵ·","ᔌ":"ᔋ<","ᔎ":"ᔋb","ᔍ":"ᔋᑕ","ᔏ":"ᔋᒐ","ᔘ":"ᔐ·","ᔚ":"ᔑ·","ᔜ":"ᔒ·","ᔞ":"ᔓ·","ᔠ":"ᔔ·","ᔢ":"ᔕ·","ᔤ":"ᔖ·","ᔲ":"ᔨ·","ᔴ":"ᔩ·","ᔶ":"ᔪ·","ᔸ":"ᔫ·","ᔺ":"ᔭ·","ᔼ":"ᔮ·","ᘢ":"ᕃ","ᣠ":"ᕃ·","ᘣ":"ᕆ","ᘤ":"ᕊ","ᕏ":"ᕌ·","ᖃ":"ᕐb","ᖄ":"ᕐḃ","ᖁ":"ᕐd","ᕿ":"ᕐP","ᙯ":"ᕐᑫ","ᕾ":"ᕐᑬ","ᖀ":"ᕐᑮ","ᖂ":"ᕐᑰ","ᖅ":"ᕐᒃ","ᕜ":"ᕚ·","ᣣ":"ᕞ·","ᣤ":"ᕦ·","ᕩ":"ᕧ·","ᣥ":"ᕫ·","ᣨ":"ᖆ·","ᖑ":"ᖕJ","ᙰ":"ᖕᒉ","ᖎ":"ᖕᒊ","ᖏ":"ᖕᒋ","ᖐ":"ᖕᒌ","ᖒ":"ᖕᒎ","ᖓ":"ᖕᒐ","ᖔ":"ᖕᒑ","ᙳ":"ᖖJ","ᙱ":"ᖖᒋ","ᙲ":"ᖖᒌ","ᙴ":"ᖖᒎ","ᙵ":"ᖖᒐ","ᙶ":"ᖖᒑ","ᣪ":"ᖗ·","ᙷ":"ᖧ·","ᙸ":"ᖨ·","ᙹ":"ᖩ·","ᙺ":"ᖪ·","ᙻ":"ᖫ·","ᙼ":"ᖬ·","ᙽ":"ᖭ·","⪫":"ᗒ","⪪":"ᗕ","ꓷ":"ᗡ","ᣰ":"ᗴ·","ᣲ":"ᘛ·","ᶻ":"ᙆ","ꓭ":"ᙠ","ᶺ":"ᣔ","ᴾ":"ᣖ","ᣜ":"ᣟᐞ","ˡ":"ᣳ","ʳ":"ᣴ","ˢ":"ᣵ","ᣛ":"ᣵ","ꚰ":"ᚹ","ᛡ":"ᚼ","⍿":"ᚽ","ᛂ":"ᚽ","𝈿":"ᛋ","↑":"ᛏ","↿":"ᛐ","⥮":"ᛐ⇂","⥣":"ᛐᛚ","ⵣ":"ᛯ","↾":"ᛚ","⨡":"ᛚ","⋄":"ᛜ","◇":"ᛜ","◊":"ᛜ","♢":"ᛜ","🝔":"ᛜ","𑢷":"ᛜ","𐊔":"ᛜ","⍚":"ᛜ̲","⋈":"ᛞ","⨝":"ᛞ","𐓐":"ᛦ","↕":"ᛨ","𐳼":"𐲂","𐳺":"𐲥","ㄱ":"ᄀ","ᆨ":"ᄀ","ᄁ":"ᄀᄀ","ㄲ":"ᄀᄀ","ᆩ":"ᄀᄀ","ᇺ":"ᄀᄂ","ᅚ":"ᄀᄃ","ᇃ":"ᄀᄅ","ᇻ":"ᄀᄇ","ᆪ":"ᄀᄉ","ㄳ":"ᄀᄉ","ᇄ":"ᄀᄉᄀ","ᇼ":"ᄀᄎ","ᇽ":"ᄀᄏ","ᇾ":"ᄀᄒ","ㄴ":"ᄂ","ᆫ":"ᄂ","ᄓ":"ᄂᄀ","ᇅ":"ᄂᄀ","ᄔ":"ᄂᄂ","ㅥ":"ᄂᄂ","ᇿ":"ᄂᄂ","ᄕ":"ᄂᄃ","ㅦ":"ᄂᄃ","ᇆ":"ᄂᄃ","ퟋ":"ᄂᄅ","ᄖ":"ᄂᄇ","ᅛ":"ᄂᄉ","ᇇ":"ᄂᄉ","ㅧ":"ᄂᄉ","ᅜ":"ᄂᄌ","ᆬ":"ᄂᄌ","ㄵ":"ᄂᄌ","ퟌ":"ᄂᄎ","ᇉ":"ᄂᄐ","ᅝ":"ᄂᄒ","ᆭ":"ᄂᄒ","ㄶ":"ᄂᄒ","ᇈ":"ᄂᅀ","ㅨ":"ᄂᅀ","ㄷ":"ᄃ","ᆮ":"ᄃ","ᄗ":"ᄃᄀ","ᇊ":"ᄃᄀ","ᄄ":"ᄃᄃ","ㄸ":"ᄃᄃ","ퟍ":"ᄃᄃ","ퟎ":"ᄃᄃᄇ","ᅞ":"ᄃᄅ","ᇋ":"ᄃᄅ","ꥠ":"ᄃᄆ","ꥡ":"ᄃᄇ","ퟏ":"ᄃᄇ","ꥢ":"ᄃᄉ","ퟐ":"ᄃᄉ","ퟑ":"ᄃᄉᄀ","ꥣ":"ᄃᄌ","ퟒ":"ᄃᄌ","ퟓ":"ᄃᄎ","ퟔ":"ᄃᄐ","ㄹ":"ᄅ","ᆯ":"ᄅ","ꥤ":"ᄅᄀ","ᆰ":"ᄅᄀ","ㄺ":"ᄅᄀ","ꥥ":"ᄅᄀᄀ","ퟕ":"ᄅᄀᄀ","ᇌ":"ᄅᄀᄉ","ㅩ":"ᄅᄀᄉ","ퟖ":"ᄅᄀᄒ","ᄘ":"ᄅᄂ","ᇍ":"ᄅᄂ","ꥦ":"ᄅᄃ","ᇎ":"ᄅᄃ","ㅪ":"ᄅᄃ","ꥧ":"ᄅᄃᄃ","ᇏ":"ᄅᄃᄒ","ᄙ":"ᄅᄅ","ᇐ":"ᄅᄅ","ퟗ":"ᄅᄅᄏ","ꥨ":"ᄅᄆ","ᆱ":"ᄅᄆ","ㄻ":"ᄅᄆ","ᇑ":"ᄅᄆᄀ","ᇒ":"ᄅᄆᄉ","ퟘ":"ᄅᄆᄒ","ꥩ":"ᄅᄇ","ᆲ":"ᄅᄇ","ㄼ":"ᄅᄇ","ퟙ":"ᄅᄇᄃ","ꥪ":"ᄅᄇᄇ","ᇓ":"ᄅᄇᄉ","ㅫ":"ᄅᄇᄉ","ꥫ":"ᄅᄇᄋ","ᇕ":"ᄅᄇᄋ","ퟚ":"ᄅᄇᄑ","ᇔ":"ᄅᄇᄒ","ꥬ":"ᄅᄉ","ᆳ":"ᄅᄉ","ㄽ":"ᄅᄉ","ᇖ":"ᄅᄉᄉ","ᄛ":"ᄅᄋ","ퟝ":"ᄅᄋ","ꥭ":"ᄅᄌ","ꥮ":"ᄅᄏ","ᇘ":"ᄅᄏ","ᆴ":"ᄅᄐ","ㄾ":"ᄅᄐ","ᆵ":"ᄅᄑ","ㄿ":"ᄅᄑ","ᄚ":"ᄅᄒ","ㅀ":"ᄅᄒ","ᄻ":"ᄅᄒ","ᆶ":"ᄅᄒ","ퟲ":"ᄅᄒ","ᇗ":"ᄅᅀ","ㅬ":"ᄅᅀ","ퟛ":"ᄅᅌ","ᇙ":"ᄅᅙ","ㅭ":"ᄅᅙ","ퟜ":"ᄅᅙᄒ","ㅁ":"ᄆ","ᆷ":"ᄆ","ꥯ":"ᄆᄀ","ᇚ":"ᄆᄀ","ퟞ":"ᄆᄂ","ퟟ":"ᄆᄂᄂ","ꥰ":"ᄆᄃ","ᇛ":"ᄆᄅ","ퟠ":"ᄆᄆ","ᄜ":"ᄆᄇ","ㅮ":"ᄆᄇ","ᇜ":"ᄆᄇ","ퟡ":"ᄆᄇᄉ","ꥱ":"ᄆᄉ","ᇝ":"ᄆᄉ","ㅯ":"ᄆᄉ","ᇞ":"ᄆᄉᄉ","ᄝ":"ᄆᄋ","ㅱ":"ᄆᄋ","ᇢ":"ᄆᄋ","ퟢ":"ᄆᄌ","ᇠ":"ᄆᄎ","ᇡ":"ᄆᄒ","ᇟ":"ᄆᅀ","ㅰ":"ᄆᅀ","ㅂ":"ᄇ","ᆸ":"ᄇ","ᄞ":"ᄇᄀ","ㅲ":"ᄇᄀ","ᄟ":"ᄇᄂ","ᄠ":"ᄇᄃ","ㅳ":"ᄇᄃ","ퟣ":"ᄇᄃ","ᇣ":"ᄇᄅ","ퟤ":"ᄇᄅᄑ","ퟥ":"ᄇᄆ","ᄈ":"ᄇᄇ","ㅃ":"ᄇᄇ","ퟦ":"ᄇᄇ","ᄬ":"ᄇᄇᄋ","ㅹ":"ᄇᄇᄋ","ᄡ":"ᄇᄉ","ㅄ":"ᄇᄉ","ᆹ":"ᄇᄉ","ᄢ":"ᄇᄉᄀ","ㅴ":"ᄇᄉᄀ","ᄣ":"ᄇᄉᄃ","ㅵ":"ᄇᄉᄃ","ퟧ":"ᄇᄉᄃ","ᄤ":"ᄇᄉᄇ","ᄥ":"ᄇᄉᄉ","ᄦ":"ᄇᄉᄌ","ꥲ":"ᄇᄉᄐ","ᄫ":"ᄇᄋ","ㅸ":"ᄇᄋ","ᇦ":"ᄇᄋ","ᄧ":"ᄇᄌ","ㅶ":"ᄇᄌ","ퟨ":"ᄇᄌ","ᄨ":"ᄇᄎ","ퟩ":"ᄇᄎ","ꥳ":"ᄇᄏ","ᄩ":"ᄇᄐ","ㅷ":"ᄇᄐ","ᄪ":"ᄇᄑ","ᇤ":"ᄇᄑ","ꥴ":"ᄇᄒ","ᇥ":"ᄇᄒ","ㅅ":"ᄉ","ᆺ":"ᄉ","ᄭ":"ᄉᄀ","ㅺ":"ᄉᄀ","ᇧ":"ᄉᄀ","ᄮ":"ᄉᄂ","ㅻ":"ᄉᄂ","ᄯ":"ᄉᄃ","ㅼ":"ᄉᄃ","ᇨ":"ᄉᄃ","ᄰ":"ᄉᄅ","ᇩ":"ᄉᄅ","ᄱ":"ᄉᄆ","ퟪ":"ᄉᄆ","ᄲ":"ᄉᄇ","ㅽ":"ᄉᄇ","ᇪ":"ᄉᄇ","ᄳ":"ᄉᄇᄀ","ퟫ":"ᄉᄇᄋ","ᄊ":"ᄉᄉ","ㅆ":"ᄉᄉ","ᆻ":"ᄉᄉ","ퟬ":"ᄉᄉᄀ","ퟭ":"ᄉᄉᄃ","ꥵ":"ᄉᄉᄇ","ᄴ":"ᄉᄉᄉ","ᄵ":"ᄉᄋ","ᄶ":"ᄉᄌ","ㅾ":"ᄉᄌ","ퟯ":"ᄉᄌ","ᄷ":"ᄉᄎ","ퟰ":"ᄉᄎ","ᄸ":"ᄉᄏ","ᄹ":"ᄉᄐ","ퟱ":"ᄉᄐ","ᄺ":"ᄉᄑ","ퟮ":"ᄉᅀ","ㅇ":"ᄋ","ᆼ":"ᄋ","ᅁ":"ᄋᄀ","ᇬ":"ᄋᄀ","ᇭ":"ᄋᄀᄀ","ᅂ":"ᄋᄃ","ꥶ":"ᄋᄅ","ᅃ":"ᄋᄆ","ᅄ":"ᄋᄇ","ᅅ":"ᄋᄉ","ᇱ":"ᄋᄉ","ㆂ":"ᄋᄉ","ᅇ":"ᄋᄋ","ㆀ":"ᄋᄋ","ᇮ":"ᄋᄋ","ᅈ":"ᄋᄌ","ᅉ":"ᄋᄎ","ᇯ":"ᄋᄏ","ᅊ":"ᄋᄐ","ᅋ":"ᄋᄑ","ꥷ":"ᄋᄒ","ᅆ":"ᄋᅀ","ᇲ":"ᄋᅀ","ㆃ":"ᄋᅀ","ㅈ":"ᄌ","ᆽ":"ᄌ","ퟷ":"ᄌᄇ","ퟸ":"ᄌᄇᄇ","ᅍ":"ᄌᄋ","ᄍ":"ᄌᄌ","ㅉ":"ᄌᄌ","ퟹ":"ᄌᄌ","ꥸ":"ᄌᄌᄒ","ㅊ":"ᄎ","ᆾ":"ᄎ","ᅒ":"ᄎᄏ","ᅓ":"ᄎᄒ","ㅋ":"ᄏ","ᆿ":"ᄏ","ㅌ":"ᄐ","ᇀ":"ᄐ","ꥹ":"ᄐᄐ","ㅍ":"ᄑ","ᇁ":"ᄑ","ᅖ":"ᄑᄇ","ᇳ":"ᄑᄇ","ퟺ":"ᄑᄉ","ᅗ":"ᄑᄋ","ㆄ":"ᄑᄋ","ᇴ":"ᄑᄋ","ퟻ":"ᄑᄐ","ꥺ":"ᄑᄒ","ㅎ":"ᄒ","ᇂ":"ᄒ","ᇵ":"ᄒᄂ","ᇶ":"ᄒᄅ","ᇷ":"ᄒᄆ","ᇸ":"ᄒᄇ","ꥻ":"ᄒᄉ","ᅘ":"ᄒᄒ","ㆅ":"ᄒᄒ","ᄽ":"ᄼᄼ","ᄿ":"ᄾᄾ","ㅿ":"ᅀ","ᇫ":"ᅀ","ퟳ":"ᅀᄇ","ퟴ":"ᅀᄇᄋ","ㆁ":"ᅌ","ᇰ":"ᅌ","ퟵ":"ᅌᄆ","ퟶ":"ᅌᄒ","ᅏ":"ᅎᅎ","ᅑ":"ᅐᅐ","ㆆ":"ᅙ","ᇹ":"ᅙ","ꥼ":"ᅙᅙ","ㅤ":"ᅠ","ㅏ":"ᅡ","ᆣ":"ᅡー","ᅶ":"ᅡᅩ","ᅷ":"ᅡᅮ","ᅢ":"ᅡ丨","ㅐ":"ᅡ丨","ㅑ":"ᅣ","ᅸ":"ᅣᅩ","ᅹ":"ᅣᅭ","ᆤ":"ᅣᅮ","ᅤ":"ᅣ丨","ㅒ":"ᅣ丨","ㅓ":"ᅥ","ᅼ":"ᅥー","ᅺ":"ᅥᅩ","ᅻ":"ᅥᅮ","ᅦ":"ᅥ丨","ㅔ":"ᅥ丨","ㅕ":"ᅧ","ᆥ":"ᅧᅣ","ᅽ":"ᅧᅩ","ᅾ":"ᅧᅮ","ᅨ":"ᅧ丨","ㅖ":"ᅧ丨","ㅗ":"ᅩ","ᅪ":"ᅩᅡ","ㅘ":"ᅩᅡ","ᅫ":"ᅩᅡ丨","ㅙ":"ᅩᅡ丨","ᆦ":"ᅩᅣ","ᆧ":"ᅩᅣ丨","ᅿ":"ᅩᅥ","ᆀ":"ᅩᅥ丨","ힰ":"ᅩᅧ","ᆁ":"ᅩᅧ丨","ᆂ":"ᅩᅩ","ힱ":"ᅩᅩ丨","ᆃ":"ᅩᅮ","ᅬ":"ᅩ丨","ㅚ":"ᅩ丨","ㅛ":"ᅭ","ힲ":"ᅭᅡ","ힳ":"ᅭᅡ丨","ᆄ":"ᅭᅣ","ㆇ":"ᅭᅣ","ᆆ":"ᅭᅣ","ᆅ":"ᅭᅣ丨","ㆈ":"ᅭᅣ丨","ힴ":"ᅭᅥ","ᆇ":"ᅭᅩ","ᆈ":"ᅭ丨","ㆉ":"ᅭ丨","ㅜ":"ᅮ","ᆉ":"ᅮᅡ","ᆊ":"ᅮᅡ丨","ᅯ":"ᅮᅥ","ㅝ":"ᅮᅥ","ᆋ":"ᅮᅥー","ᅰ":"ᅮᅥ丨","ㅞ":"ᅮᅥ丨","ힵ":"ᅮᅧ","ᆌ":"ᅮᅧ丨","ᆍ":"ᅮᅮ","ᅱ":"ᅮ丨","ㅟ":"ᅮ丨","ힶ":"ᅮ丨丨","ㅠ":"ᅲ","ᆎ":"ᅲᅡ","ힷ":"ᅲᅡ丨","ᆏ":"ᅲᅥ","ᆐ":"ᅲᅥ丨","ᆑ":"ᅲᅧ","ㆊ":"ᅲᅧ","ᆒ":"ᅲᅧ丨","ㆋ":"ᅲᅧ丨","ힸ":"ᅲᅩ","ᆓ":"ᅲᅮ","ᆔ":"ᅲ丨","ㆌ":"ᅲ丨","ㆍ":"ᆞ","ퟅ":"ᆞᅡ","ᆟ":"ᆞᅥ","ퟆ":"ᆞᅥ丨","ᆠ":"ᆞᅮ","ᆢ":"ᆞᆞ","ᆡ":"ᆞ丨","ㆎ":"ᆞ丨","ヘ":"へ","⍁":"〼","⧄":"〼","꒞":"ꁊ","꒬":"ꁐ","꒜":"ꃀ","꒨":"ꄲ","꒿":"ꉙ","꒾":"ꊱ","꒔":"ꋍ","꓀":"ꎫ","꓂":"ꎵ","꒺":"ꎿ","꒰":"ꏂ","꒧":"ꑘ","⊥":"ꓕ","⟂":"ꓕ","𝈜":"ꓕ","Ʇ":"ꓕ","Ꞟ":"ꓤ","⅁":"ꓨ","⅂":"ꓶ","𝈕":"ꓶ","𝈫":"ꓶ","𖼦":"ꓶ","𐐑":"ꓶ","⅃":"𖼀","𑫦":"𑫥𑫯","𑫨":"𑫥𑫥","𑫩":"𑫥𑫥𑫯","𑫪":"𑫥𑫥𑫰","𑫧":"𑫥𑫰","𑫴":"𑫳𑫯","𑫶":"𑫳𑫳","𑫷":"𑫳𑫳𑫯","𑫸":"𑫳𑫳𑫰","𑫵":"𑫳𑫰","𑫬":"𑫫𑫯","𑫭":"𑫫𑫫","𑫮":"𑫫𑫫𑫯","⊕":"𐊨","⨁":"𐊨","🜨":"𐊨","Ꚛ":"𐊨","▽":"𐊼","𝈔":"𐊼","🜄":"𐊼","⧖":"𐋀","ꞛ":"𐐺","Ꞛ":"𐐒","𐒠":"𐒆","𐏑":"𐎂","𐏓":"𐎓","𒀸":"𐎚","☥":"𐦞","𓋹":"𐦞","〹":"卄","不":"不","丽":"丽","並":"並","⎜":"丨","⎟":"丨","⎢":"丨","⎥":"丨","⎪":"丨","⎮":"丨","㇑":"丨","ᅵ":"丨","ㅣ":"丨","⼁":"丨","ᆜ":"丨ー","ᆘ":"丨ᅡ","ᆙ":"丨ᅣ","ힽ":"丨ᅣᅩ","ힾ":"丨ᅣ丨","ힿ":"丨ᅧ","ퟀ":"丨ᅧ丨","ᆚ":"丨ᅩ","ퟁ":"丨ᅩ丨","ퟂ":"丨ᅭ","ᆛ":"丨ᅮ","ퟃ":"丨ᅲ","ᆝ":"丨ᆞ","ퟄ":"丨丨","串":"串","丸":"丸","丹":"丹","乁":"乁","㇠":"乙","⼄":"乙","㇟":"乚","⺃":"乚","㇖":"乛","⺂":"乛","⻲":"亀","亂":"亂","㇚":"亅","⼅":"亅","了":"了","ニ":"二","⼆":"二","𠄢":"𠄢","⼇":"亠","亮":"亮","⼈":"人","イ":"亻","⺅":"亻","什":"什","仌":"仌","令":"令","你":"你","倂":"併","倂":"併","侀":"侀","來":"來","例":"例","侮":"侮","侮":"侮","侻":"侻","便":"便","值":"値","倫":"倫","偺":"偺","備":"備","像":"像","僚":"僚","僧":"僧","僧":"僧","㒞":"㒞","⼉":"儿","兀":"兀","⺎":"兀","充":"充","免":"免","免":"免","兔":"兔","兤":"兤","⼊":"入","內":"內","全":"全","兩":"兩","ハ":"八","⼋":"八","六":"六","具":"具","𠔜":"𠔜","𠔥":"𠔥","冀":"冀","㒹":"㒹","⼌":"冂","再":"再","𠕋":"𠕋","冒":"冒","冕":"冕","㒻":"㒻","最":"最","⼍":"冖","冗":"冗","冤":"冤","⼎":"冫","冬":"冬","况":"况","况":"况","冷":"冷","凉":"凉","凌":"凌","凜":"凜","凞":"凞","⼏":"几","𠘺":"𠘺","凵":"凵","⼐":"凵","⼑":"刀","⺉":"刂","刃":"刃","切":"切","切":"切","列":"列","利":"利","㓟":"㓟","刺":"刺","刻":"刻","剆":"剆","割":"割","剷":"剷","劉":"劉","𠠄":"𠠄","カ":"力","力":"力","⼒":"力","劣":"劣","㔕":"㔕","劳":"劳","勇":"勇","勇":"勇","勉":"勉","勉":"勉","勒":"勒","勞":"勞","勤":"勤","勤":"勤","勵":"勵","⼓":"勹","勺":"勺","勺":"勺","包":"包","匆":"匆","𠣞":"𠣞","⼔":"匕","北":"北","北":"北","⼕":"匚","⼖":"匸","匿":"匿","⼗":"十","〸":"十","〺":"卅","卉":"卉","࿖":"卍","࿕":"卐","卑":"卑","卑":"卑","博":"博","ト":"卜","⼘":"卜","⼙":"卩","⺋":"㔾","即":"即","卵":"卵","卽":"卽","卿":"卿","卿":"卿","卿":"卿","⼚":"厂","𠨬":"𠨬","⼛":"厶","參":"參","⼜":"又","及":"及","叟":"叟","𠭣":"𠭣","ロ":"口","⼝":"口","囗":"口","⼞":"口","句":"句","叫":"叫","叱":"叱","吆":"吆","吏":"吏","吝":"吝","吸":"吸","呂":"呂","呈":"呈","周":"周","咞":"咞","咢":"咢","咽":"咽","䎛":"㖈","哶":"哶","唐":"唐","啓":"啓","啟":"啓","啕":"啕","啣":"啣","善":"善","善":"善","喇":"喇","喙":"喙","喙":"喙","喝":"喝","喝":"喝","喫":"喫","喳":"喳","嗀":"嗀","嗂":"嗂","嗢":"嗢","嘆":"嘆","嘆":"嘆","噑":"噑","噴":"噴","器":"器","囹":"囹","圖":"圖","圗":"圗","⼟":"土","士":"土","⼠":"土","型":"型","城":"城","㦳":"㘽","埴":"埴","堍":"堍","報":"報","堲":"堲","塀":"塀","塚":"塚","塚":"塚","塞":"塞","填":"塡","壿":"墫","墬":"墬","墳":"墳","壘":"壘","壟":"壟","𡓤":"𡓤","壮":"壮","売":"売","壷":"壷","⼡":"夂","夆":"夆","⼢":"夊","タ":"夕","⼣":"夕","多":"多","夢":"夢","⼤":"大","奄":"奄","奈":"奈","契":"契","奔":"奔","奢":"奢","女":"女","⼥":"女","𡚨":"𡚨","𡛪":"𡛪","姘":"姘","姬":"姬","娛":"娛","娧":"娧","婢":"婢","婦":"婦","嬀":"媯","㛮":"㛮","㛼":"㛼","媵":"媵","嬈":"嬈","嬨":"嬨","嬾":"嬾","嬾":"嬾","⼦":"子","⼧":"宀","宅":"宅","𡧈":"𡧈","寃":"寃","寘":"寘","寧":"寧","寧":"寧","寧":"寧","寮":"寮","寳":"寳","𡬘":"𡬘","⼨":"寸","寿":"寿","将":"将","⼩":"小","尢":"尢","⺐":"尢","⼪":"尢","⺏":"尣","㞁":"㞁","⼫":"尸","尿":"尿","屠":"屠","屢":"屢","層":"層","履":"履","屮":"屮","屮":"屮","⼬":"屮","𡴋":"𡴋","⼭":"山","峀":"峀","岍":"岍","𡷤":"𡷤","𡷦":"𡷦","崙":"崙","嵃":"嵃","嵐":"嵐","嵫":"嵫","嵮":"嵮","嵼":"嵼","嶲":"嶲","嶺":"嶺","⼮":"巛","巢":"巢","エ":"工","⼯":"工","⼰":"己","⺒":"巳","㠯":"㠯","巽":"巽","⼱":"巾","帲":"帡","帨":"帨","帽":"帽","幩":"幩","㡢":"㡢","𢆃":"𢆃","⼲":"干","年":"年","𢆟":"𢆟","⺓":"幺","⼳":"幺","⼴":"广","度":"度","㡼":"㡼","庰":"庰","庳":"庳","庶":"庶","廊":"廊","廊":"廊","廉":"廉","廒":"廒","廓":"廓","廙":"廙","廬":"廬","⼵":"廴","廾":"廾","⼶":"廾","𢌱":"𢌱","𢌱":"𢌱","弄":"弄","⼷":"弋","⼸":"弓","弢":"弢","弢":"弢","⼹":"彐","⺔":"彑","当":"当","㣇":"㣇","⼺":"彡","形":"形","彩":"彩","彫":"彫","⼻":"彳","律":"律","㣣":"㣣","徚":"徚","復":"復","徭":"徭","⼼":"心","⺖":"忄","⺗":"㣺","忍":"忍","志":"志","念":"念","忹":"忹","怒":"怒","怜":"怜","恵":"恵","㤜":"㤜","㤺":"㤺","悁":"悁","悔":"悔","悔":"悔","惇":"惇","惘":"惘","惡":"惡","𢛔":"𢛔","愈":"愈","慨":"慨","慄":"慄","慈":"慈","慌":"慌","慌":"慌","慎":"慎","慎":"慎","慠":"慠","慺":"慺","憎":"憎","憎":"憎","憎":"憎","憐":"憐","憤":"憤","憯":"憯","憲":"憲","𢡄":"𢡄","𢡊":"𢡊","懞":"懞","懲":"懲","懲":"懲","懲":"懲","懶":"懶","懶":"懶","戀":"戀","⼽":"戈","成":"成","戛":"戛","戮":"戮","戴":"戴","⼾":"戶","戸":"戶","⼿":"手","⺘":"扌","扝":"扝","抱":"抱","拉":"拉","拏":"拏","拓":"拓","拔":"拔","拼":"拼","拾":"拾","𢬌":"𢬌","挽":"挽","捐":"捐","捨":"捨","捻":"捻","掃":"掃","掠":"掠","掩":"掩","揄":"揄","揤":"揤","摒":"摒","𢯱":"𢯱","搜":"搜","搢":"搢","揅":"揅","摩":"摩","摷":"摷","摾":"摾","㨮":"㨮","搉":"㩁","撚":"撚","撝":"撝","擄":"擄","㩬":"㩬","⽀":"支","⽁":"攴","⺙":"攵","敏":"敏","敏":"敏","敖":"敖","敬":"敬","數":"數","𣀊":"𣀊","⽂":"文","⻫":"斉","⽃":"斗","料":"料","⽄":"斤","⽅":"方","旅":"旅","⽆":"无","⺛":"旡","既":"既","旣":"旣","⽇":"日","易":"易","曶":"㫚","㫤":"㫤","晉":"晉","晩":"晚","晴":"晴","晴":"晴","暑":"暑","暑":"暑","暈":"暈","㬈":"㬈","暜":"暜","暴":"暴","曆":"曆","㬙":"㬙","𣊸":"𣊸","⽈":"曰","更":"更","書":"書","⽉":"月","𣍟":"𣍟","肦":"朌","胐":"朏","胊":"朐","脁":"朓","胶":"㬵","朗":"朗","朗":"朗","朗":"朗","脧":"朘","望":"望","望":"望","幐":"㬺","䐠":"㬻","𣎓":"𣎓","膧":"朣","𣎜":"𣎜","⽊":"木","李":"李","杓":"杓","杖":"杖","杞":"杞","𣏃":"𣏃","柿":"杮","杻":"杻","枅":"枅","林":"林","㭉":"㭉","𣏕":"𣏕","柳":"柳","柺":"柺","栗":"栗","栟":"栟","桒":"桒","𣑭":"𣑭","梁":"梁","梅":"梅","梅":"梅","梎":"梎","梨":"梨","椔":"椔","楂":"楂","㮝":"㮝","㮝":"㮝","槩":"㮣","樧":"榝","榣":"榣","槪":"槪","樂":"樂","樂":"樂","樂":"樂","樓":"樓","𣚣":"𣚣","檨":"檨","櫓":"櫓","櫛":"櫛","欄":"欄","㰘":"㰘","⽋":"欠","次":"次","𣢧":"𣢧","歔":"歔","㱎":"㱎","⽌":"止","⻭":"歯","歲":"歲","歷":"歷","歹":"歹","⽍":"歹","⺞":"歺","殟":"殟","殮":"殮","⽎":"殳","殺":"殺","殺":"殺","殺":"殺","殻":"殻","𣪍":"𣪍","⽏":"毋","⺟":"母","𣫺":"𣫺","⽐":"比","⽑":"毛","⽒":"氏","⺠":"民","⽓":"气","⽔":"水","⺡":"氵","⺢":"氺","汎":"汎","汧":"汧","沈":"沈","沿":"沿","泌":"泌","泍":"泍","泥":"泥","𣲼":"𣲼","洛":"洛","洞":"洞","洴":"洴","派":"派","流":"流","流":"流","流":"流","洖":"洖","浩":"浩","浪":"浪","海":"海","海":"海","浸":"浸","涅":"涅","𣴞":"𣴞","淋":"淋","淚":"淚","淪":"淪","淹":"淹","渚":"渚","港":"港","湮":"湮","潙":"溈","滋":"滋","滋":"滋","溜":"溜","溺":"溺","滇":"滇","滑":"滑","滛":"滛","㴳":"㴳","漏":"漏","漢":"漢","漢":"漢","漣":"漣","𣻑":"𣻑","潮":"潮","𣽞":"𣽞","𣾎":"𣾎","濆":"濆","濫":"濫","濾":"濾","瀛":"瀛","瀞":"瀞","瀞":"瀞","瀹":"瀹","灊":"灊","㶖":"㶖","⽕":"火","⺣":"灬","灰":"灰","灷":"灷","災":"災","炙":"炙","炭":"炭","烈":"烈","烙":"烙","煮":"煮","煮":"煮","𤉣":"𤉣","煅":"煅","煉":"煉","𤋮":"𤋮","熜":"熜","燎":"燎","燐":"燐","𤎫":"𤎫","爐":"爐","爛":"爛","爨":"爨","⽖":"爪","爫":"爫","⺤":"爫","爵":"爵","爵":"爵","⽗":"父","⽘":"爻","⺦":"丬","⽙":"爿","⽚":"片","牐":"牐","⽛":"牙","𤘈":"𤘈","⽜":"牛","牢":"牢","犀":"犀","犕":"犕","⽝":"犬","⺨":"犭","犯":"犯","狀":"狀","𤜵":"𤜵","狼":"狼","猪":"猪","猪":"猪","𤠔":"𤠔","獵":"獵","獺":"獺","⽞":"玄","率":"率","率":"率","⽟":"玉","王":"王","㺬":"㺬","玥":"玥","玲":"玲","㺸":"㺸","㺸":"㺸","珞":"珞","琉":"琉","理":"理","琢":"琢","瑇":"瑇","瑜":"瑜","瑩":"瑩","瑱":"瑱","瑱":"瑱","璅":"璅","璉":"璉","璘":"璘","瓊":"瓊","⽠":"瓜","⽡":"瓦","㼛":"㼛","甆":"甆","⽢":"甘","⽣":"生","甤":"甤","⽤":"用","⽥":"田","画":"画","甾":"甾","𤰶":"𤰶","留":"留","略":"略","異":"異","異":"異","𤲒":"𤲒","⽦":"疋","⽧":"疒","痢":"痢","瘐":"瘐","瘟":"瘟","瘝":"瘝","療":"療","癩":"癩","⽨":"癶","⽩":"白","𤾡":"𤾡","𤾸":"𤾸","⽪":"皮","⽫":"皿","𥁄":"𥁄","㿼":"㿼","益":"益","益":"益","盛":"盛","盧":"盧","䀈":"䀈","⽬":"目","直":"直","直":"直","𥃲":"𥃲","𥃳":"𥃳","省":"省","䀘":"䀘","𥄙":"𥄙","眞":"眞","真":"真","真":"真","𥄳":"𥄳","着":"着","睊":"睊","睊":"睊","鿃":"䀹","䀹":"䀹","䀹":"䀹","晣":"䀿","䁆":"䁆","瞋":"瞋","𥉉":"𥉉","瞧":"瞧","⽭":"矛","⽮":"矢","⽯":"石","䂖":"䂖","𥐝":"𥐝","硏":"研","硎":"硎","硫":"硫","碌":"碌","碌":"碌","碑":"碑","磊":"磊","磌":"磌","磌":"磌","磻":"磻","䃣":"䃣","礪":"礪","⽰":"示","⺭":"礻","礼":"礼","社":"社","祈":"祈","祉":"祉","𥘦":"𥘦","祐":"祐","祖":"祖","祖":"祖","祝":"祝","神":"神","祥":"祥","視":"視","視":"視","祿":"祿","𥚚":"𥚚","禍":"禍","禎":"禎","福":"福","福":"福","𥛅":"𥛅","禮":"禮","⽱":"禸","⽲":"禾","秊":"秊","䄯":"䄯","秫":"秫","稜":"稜","穊":"穊","穀":"穀","穀":"穀","穏":"穏","⽳":"穴","突":"突","𥥼":"𥥼","窱":"窱","立":"立","⽴":"立","⻯":"竜","𥪧":"𥪧","𥪧":"𥪧","竮":"竮","⽵":"竹","笠":"笠","節":"節","節":"節","䈂":"䈂","𥮫":"𥮫","篆":"篆","䈧":"䈧","築":"築","𥲀":"𥲀","𥳐":"𥳐","簾":"簾","籠":"籠","⽶":"米","类":"类","粒":"粒","精":"精","糒":"糒","糖":"糖","糨":"糨","䊠":"䊠","糣":"糣","糧":"糧","⽷":"糸","⺯":"糹","𥾆":"𥾆","紀":"紀","紐":"紐","索":"索","累":"累","絶":"絕","絣":"絣","絛":"絛","綠":"綠","綾":"綾","緇":"緇","練":"練","練":"練","練":"練","縂":"縂","䌁":"䌁","縉":"縉","縷":"縷","繁":"繁","繅":"繅","𦇚":"𦇚","䌴":"䌴","⽸":"缶","𦈨":"𦈨","缾":"缾","𦉇":"𦉇","⽹":"网","⺫":"罒","⺲":"罒","⺱":"罓","䍙":"䍙","署":"署","𦋙":"𦋙","罹":"罹","罺":"罺","羅":"羅","𦌾":"𦌾","⽺":"羊","羕":"羕","羚":"羚","羽":"羽","⽻":"羽","翺":"翺","老":"老","⽼":"老","⺹":"耂","者":"者","者":"者","者":"者","⽽":"而","𦓚":"𦓚","⽾":"耒","𦔣":"𦔣","⽿":"耳","聆":"聆","聠":"聠","𦖨":"𦖨","聯":"聯","聰":"聰","聾":"聾","⾀":"聿","⺺":"肀","⾁":"肉","肋":"肋","肭":"肭","育":"育","䏕":"䏕","䏙":"䏙","腁":"胼","脃":"脃","脾":"脾","䐋":"䐋","朡":"朡","𦞧":"𦞧","𦞵":"𦞵","朦":"䑃","臘":"臘","⾂":"臣","臨":"臨","⾃":"自","臭":"臭","⾄":"至","⾅":"臼","舁":"舁","舁":"舁","舄":"舄","⾆":"舌","舘":"舘","⾇":"舛","⾈":"舟","䑫":"䑫","⾉":"艮","良":"良","⾊":"色","⾋":"艸","艹":"艹","艹":"艹","⺾":"艹","⺿":"艹","⻀":"艹","芋":"芋","芑":"芑","芝":"芝","花":"花","芳":"芳","芽":"芽","若":"若","若":"若","苦":"苦","𦬼":"𦬼","茶":"茶","荒":"荒","荣":"荣","茝":"茝","茣":"茣","莽":"莽","荓":"荓","菉":"菉","菊":"菊","菌":"菌","菜":"菜","菧":"菧","華":"華","菱":"菱","著":"著","著":"著","𦰶":"𦰶","莭":"莭","落":"落","葉":"葉","蔿":"蒍","𦳕":"𦳕","𦵫":"𦵫","蓮":"蓮","蓱":"蓱","蓳":"蓳","蓼":"蓼","蔖":"蔖","䔫":"䔫","蕤":"蕤","𦼬":"𦼬","藍":"藍","䕝":"䕝","𦾱":"𦾱","䕡":"䕡","藺":"藺","蘆":"蘆","䕫":"䕫","蘒":"蘒","蘭":"蘭","𧃒":"𧃒","虁":"蘷","蘿":"蘿","⾌":"虍","⻁":"虎","虐":"虐","虜":"虜","虜":"虜","虧":"虧","虩":"虩","⾍":"虫","蚩":"蚩","蚈":"蚈","蛢":"蛢","蜎":"蜎","蜨":"蜨","蝫":"蝫","蟡":"蟡","蝹":"蝹","蝹":"蝹","螆":"螆","䗗":"䗗","𧏊":"𧏊","螺":"螺","蠁":"蠁","䗹":"䗹","蠟":"蠟","⾎":"血","行":"行","⾏":"行","衠":"衠","衣":"衣","⾐":"衣","⻂":"衤","裂":"裂","𧙧":"𧙧","裏":"裏","裗":"裗","裞":"裞","裡":"裡","裸":"裸","裺":"裺","䘵":"䘵","褐":"褐","襁":"襁","襤":"襤","⾑":"襾","⻄":"西","⻃":"覀","覆":"覆","見":"見","⾒":"見","𧢮":"𧢮","⻅":"见","⾓":"角","⾔":"言","𧥦":"𧥦","詽":"訮","訞":"䚶","䚾":"䚾","䛇":"䛇","誠":"誠","說":"說","說":"說","調":"調","請":"請","諒":"諒","論":"論","諭":"諭","諭":"諭","諸":"諸","諸":"諸","諾":"諾","諾":"諾","謁":"謁","謁":"謁","謹":"謹","謹":"謹","識":"識","讀":"讀","讏":"讆","變":"變","變":"變","⻈":"讠","⾕":"谷","⾖":"豆","豈":"豈","豕":"豕","⾗":"豕","豣":"豜","⾘":"豸","𧲨":"𧲨","⾙":"貝","貫":"貫","賁":"賁","賂":"賂","賈":"賈","賓":"賓","贈":"贈","贈":"贈","贛":"贛","⻉":"贝","⾚":"赤","⾛":"走","起":"起","趆":"赿","𧻓":"𧻓","𧼯":"𧼯","⾜":"足","跋":"跋","趼":"趼","跺":"跥","路":"路","跰":"跰","躛":"躗","⾝":"身","車":"車","⾞":"車","軔":"軔","輧":"軿","輦":"輦","輪":"輪","輸":"輸","輸":"輸","輻":"輻","轢":"轢","⻋":"车","⾟":"辛","辞":"辞","辰":"辰","⾠":"辰","⾡":"辵","辶":"辶","⻌":"辶","⻍":"辶","巡":"巡","連":"連","逸":"逸","逸":"逸","遲":"遲","遼":"遼","𨗒":"𨗒","𨗭":"𨗭","邏":"邏","⾢":"邑","邔":"邔","郎":"郎","郞":"郎","郞":"郎","郱":"郱","都":"都","𨜮":"𨜮","鄑":"鄑","鄛":"鄛","⾣":"酉","酪":"酪","醙":"醙","醴":"醴","⾤":"釆","里":"里","⾥":"里","量":"量","金":"金","⾦":"金","鈴":"鈴","鈸":"鈸","鉶":"鉶","鋗":"鋗","鋘":"鋘","鉼":"鉼","錄":"錄","鍊":"鍊","鎮":"鎭","鏹":"鏹","鐕":"鐕","𨯺":"𨯺","⻐":"钅","⻑":"長","⾧":"長","⻒":"镸","⻓":"长","⾨":"門","開":"開","䦕":"䦕","閭":"閭","閷":"閷","𨵷":"𨵷","⻔":"门","⾩":"阜","⻏":"阝","⻖":"阝","阮":"阮","陋":"陋","降":"降","陵":"陵","陸":"陸","陼":"陼","隆":"隆","隣":"隣","䧦":"䧦","⾪":"隶","隷":"隷","隸":"隷","隸":"隷","⾫":"隹","雃":"雃","離":"離","難":"難","難":"難","⾬":"雨","零":"零","雷":"雷","霣":"霣","𩅅":"𩅅","露":"露","靈":"靈","⾭":"靑","⻘":"青","靖":"靖","靖":"靖","𩇟":"𩇟","⾮":"非","⾯":"面","𩈚":"𩈚","⾰":"革","䩮":"䩮","䩶":"䩶","⾱":"韋","韛":"韛","韠":"韠","⻙":"韦","⾲":"韭","𩐊":"𩐊","⾳":"音","響":"響","響":"響","⾴":"頁","䪲":"䪲","頋":"頋","頋":"頋","頋":"頋","領":"領","頩":"頩","𩒖":"𩒖","頻":"頻","頻":"頻","類":"類","⻚":"页","⾵":"風","𩖶":"𩖶","⻛":"风","⾶":"飛","⻜":"飞","⻝":"食","⾷":"食","⻟":"飠","飢":"飢","飯":"飯","飼":"飼","䬳":"䬳","館":"館","餩":"餩","⻠":"饣","⾸":"首","⾹":"香","馧":"馧","⾺":"馬","駂":"駂","駱":"駱","駾":"駾","驪":"驪","⻢":"马","⾻":"骨","䯎":"䯎","⾼":"高","⾽":"髟","𩬰":"𩬰","鬒":"鬒","鬒":"鬒","⾾":"鬥","⾿":"鬯","⿀":"鬲","⿁":"鬼","⻤":"鬼","⿂":"魚","魯":"魯","鱀":"鱀","鱗":"鱗","⻥":"鱼","⿃":"鳥","鳽":"鳽","䳎":"䳎","鵧":"鵧","䳭":"䳭","𪃎":"𪃎","鶴":"鶴","𪄅":"𪄅","䳸":"䳸","鷺":"鷺","𪈎":"𪈎","鸞":"鸞","鹃":"鹂","⿄":"鹵","鹿":"鹿","⿅":"鹿","𪊑":"𪊑","麗":"麗","麟":"麟","⿆":"麥","⻨":"麦","麻":"麻","⿇":"麻","𪎒":"𪎒","⿈":"黃","⻩":"黄","⿉":"黍","黎":"黎","䵖":"䵖","⿊":"黑","黒":"黑","墨":"墨","黹":"黹","⿋":"黹","⿌":"黽","鼅":"鼅","黾":"黾","⿍":"鼎","鼏":"鼏","⿎":"鼓","鼖":"鼖","⿏":"鼠","鼻":"鼻","⿐":"鼻","齃":"齃","⿑":"齊","⻬":"齐","⿒":"齒","𪘀":"𪘀","⻮":"齿","龍":"龍","⿓":"龍","龎":"龎","⻰":"龙","龜":"龜","龜":"龜","龜":"龜","⿔":"龜","⻳":"龟","⿕":"龠"}')},function(e,t,n){"use strict";t.byteLength=function(e){var t=l(e),n=t[0],o=t[1];return 3*(n+o)/4-o},t.toByteArray=function(e){var t,n,o=l(e),a=o[0],s=o[1],c=new i(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),u=0,d=s>0?a-4:a;for(n=0;n>16&255,c[u++]=t>>8&255,c[u++]=255&t;2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[u++]=255&t);1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[u++]=t>>8&255,c[u++]=255&t);return c},t.fromByteArray=function(e){for(var t,n=e.length,r=n%3,i=[],a=0,s=n-r;as?s:a+16383));1===r?(t=e[n-1],i.push(o[t>>2]+o[t<<4&63]+"==")):2===r&&(t=(e[n-2]<<8)+e[n-1],i.push(o[t>>10]+o[t>>4&63]+o[t<<2&63]+"="));return i.join("")};for(var o=[],r=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,c=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var r,i,a=[],s=t;s>18&63]+o[i>>12&63]+o[i>>6&63]+o[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,o,r){var i,a,s=8*r-o-1,c=(1<>1,u=-7,d=n?r-1:0,h=n?-1:1,p=e[t+d];for(d+=h,i=p&(1<<-u)-1,p>>=-u,u+=s;u>0;i=256*i+e[t+d],d+=h,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=o;u>0;a=256*a+e[t+d],d+=h,u-=8);if(0===i)i=1-l;else{if(i===c)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,o),i-=l}return(p?-1:1)*a*Math.pow(2,i-o)},t.write=function(e,t,n,o,r,i){var a,s,c,l=8*i-r-1,u=(1<>1,h=23===r?Math.pow(2,-24)-Math.pow(2,-77):0,p=o?0:i-1,m=o?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-a))<1&&(a--,c*=2),(t+=a+d>=1?h/c:h*Math.pow(2,1-d))*c>=2&&(a++,c/=2),a+d>=u?(s=0,a=u):a+d>=1?(s=(t*c-1)*Math.pow(2,r),a+=d):(s=t*Math.pow(2,d-1)*Math.pow(2,r),a=0));r>=8;e[n+p]=255&s,p+=m,s/=256,r-=8);for(a=a<0;e[n+p]=255&a,p+=m,a/=256,l-=8);e[n+p-m]|=128*g}},function(e,t){var n={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetApi=void 0;var o=n(6),r=n(7),i=n(8),a=n(9),s=n(10),c=n(11),l=n(18),u=n(19),d=n(12);function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function m(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:null,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(p(this,_),(e=h.call(this)).clientOrigin=n,y(b(e),"transport",void 0),y(b(e),"capabilitiesFinished",!1),y(b(e),"supportsMSC2974Renegotiate",!1),y(b(e),"requestedCapabilities",[]),y(b(e),"approvedCapabilities",void 0),y(b(e),"cachedClientVersions",void 0),!window.parent)throw new Error("No parent window. This widget doesn't appear to be embedded properly.");return e.transport=new a.PostmessageTransport(r.WidgetApiDirection.FromWidget,t,window.parent,window),e.transport.targetOrigin=n,e.transport.on("message",e.handleMessage.bind(b(e))),e}return t=_,(n=[{key:"hasCapability",value:function(e){return Array.isArray(this.approvedCapabilities)?this.approvedCapabilities.includes(e):this.requestedCapabilities.includes(e)}},{key:"requestCapability",value:function(e){if(this.capabilitiesFinished&&!this.supportsMSC2974Renegotiate)throw new Error("Capabilities have already been negotiated");this.requestedCapabilities.push(e)}},{key:"requestCapabilities",value:function(e){var t=this;e.forEach((function(e){return t.requestCapability(e)}))}},{key:"requestCapabilityToSendState",value:function(e,t){this.requestCapability(d.WidgetEventCapability.forStateEvent(d.EventDirection.Send,e,t).raw)}},{key:"requestCapabilityToReceiveState",value:function(e,t){this.requestCapability(d.WidgetEventCapability.forStateEvent(d.EventDirection.Receive,e,t).raw)}},{key:"requestCapabilityToSendEvent",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomEvent(d.EventDirection.Send,e).raw)}},{key:"requestCapabilityToReceiveEvent",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomEvent(d.EventDirection.Receive,e).raw)}},{key:"requestCapabilityToSendMessage",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomMessageEvent(d.EventDirection.Send,e).raw)}},{key:"requestCapabilityToReceiveMessage",value:function(e){this.requestCapability(d.WidgetEventCapability.forRoomMessageEvent(d.EventDirection.Receive,e).raw)}},{key:"requestOpenIDConnectToken",value:function(){var e=this;return new Promise((function(t,n){e.transport.sendComplete(s.WidgetApiFromWidgetAction.GetOpenIDCredentials,{}).then((function(o){var r=o.response;r.state===c.OpenIDRequestState.Allowed?t(r):r.state===c.OpenIDRequestState.Blocked?n(new Error("User declined to verify their identity")):r.state===c.OpenIDRequestState.PendingUserConfirmation?e.on("action:".concat(s.WidgetApiToWidgetAction.OpenIDCredentials),(function i(a){a.preventDefault();var l=a.detail;l.data.original_request_id===o.requestId&&(l.data.state===c.OpenIDRequestState.Allowed?(t(l.data),e.transport.reply(l,{})):l.data.state===c.OpenIDRequestState.Blocked?(n(new Error("User declined to verify their identity")),e.transport.reply(l,{})):(n(new Error("Invalid state on reply: "+r.state)),e.transport.reply(l,{error:{message:"Invalid state"}})),e.off("action:".concat(s.WidgetApiToWidgetAction.OpenIDCredentials),i))})):n(new Error("Invalid state: "+r.state))})).catch(n)}))}},{key:"updateRequestedCapabilities",value:function(){return this.transport.send(s.WidgetApiFromWidgetAction.MSC2974RenegotiateCapabilities,{capabilities:this.requestedCapabilities}).then()}},{key:"sendContentLoaded",value:function(){return this.transport.send(s.WidgetApiFromWidgetAction.ContentLoaded,{}).then()}},{key:"sendSticker",value:function(e){return this.transport.send(s.WidgetApiFromWidgetAction.SendSticker,e).then()}},{key:"setAlwaysOnScreen",value:function(e){return this.transport.send(s.WidgetApiFromWidgetAction.UpdateAlwaysOnScreen,{value:e}).then((function(e){return e.success}))}},{key:"openModalWidget",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:l.MatrixWidgetType.Custom;return this.transport.send(s.WidgetApiFromWidgetAction.OpenModalWidget,{type:r,url:e,name:t,buttons:n,data:o}).then()}},{key:"closeModalWidget",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.transport.send(s.WidgetApiFromWidgetAction.CloseModalWidget,e).then()}},{key:"sendRoomEvent",value:function(e,t){return this.transport.send(s.WidgetApiFromWidgetAction.SendEvent,{type:e,content:t})}},{key:"sendStateEvent",value:function(e,t,n){return this.transport.send(s.WidgetApiFromWidgetAction.SendEvent,{type:e,content:n,state_key:t})}},{key:"setModalButtonEnabled",value:function(e,t){if(e===u.BuiltInModalButtonID.Close)throw new Error("The close button cannot be disabled");return this.transport.send(s.WidgetApiFromWidgetAction.SetModalButtonEnabled,{button:e,enabled:t}).then()}},{key:"navigateTo",value:function(e){if(!e||!e.startsWith("https://matrix.to/#"))throw new Error("Invalid matrix.to URI");return this.transport.send(s.WidgetApiFromWidgetAction.MSC2931Navigate,{uri:e}).then()}},{key:"start",value:function(){var e=this;this.transport.start(),this.getClientVersions().then((function(t){t.includes(i.UnstableApiVersion.MSC2974)&&(e.supportsMSC2974Renegotiate=!0)}))}},{key:"handleMessage",value:function(e){var t=new CustomEvent("action:".concat(e.detail.action),{detail:e.detail,cancelable:!0});if(this.emit("action:".concat(e.detail.action),t),!t.defaultPrevented)switch(e.detail.action){case s.WidgetApiToWidgetAction.SupportedApiVersions:return this.replyVersions(e.detail);case s.WidgetApiToWidgetAction.Capabilities:return this.handleCapabilities(e.detail);case s.WidgetApiToWidgetAction.UpdateVisibility:case s.WidgetApiToWidgetAction.NotifyCapabilities:return this.transport.reply(e.detail,{});default:return this.transport.reply(e.detail,{error:{message:"Unknown or unsupported action: "+e.detail.action}})}}},{key:"replyVersions",value:function(e){this.transport.reply(e,{supported_versions:i.CurrentApiVersions})}},{key:"getClientVersions",value:function(){var e=this;return Array.isArray(this.cachedClientVersions)?Promise.resolve(this.cachedClientVersions):this.transport.send(s.WidgetApiFromWidgetAction.SupportedApiVersions,{}).then((function(t){return e.cachedClientVersions=t.supported_versions,t.supported_versions})).catch((function(e){return console.warn("non-fatal error getting supported client versions: ",e),[]}))}},{key:"handleCapabilities",value:function(e){var t=this;return this.capabilitiesFinished?this.transport.reply(e,{error:{message:"Capability negotiation already completed"}}):this.getClientVersions().then((function(n){return n.includes(i.UnstableApiVersion.MSC2871)?t.once("action:".concat(s.WidgetApiToWidgetAction.NotifyCapabilities),(function(e){t.approvedCapabilities=e.detail.data.approved,t.emit("ready")})):t.emit("ready"),t.capabilitiesFinished=!0,t.transport.reply(e,{capabilities:t.requestedCapabilities})}))}}])&&m(t.prototype,n),o&&m(t,o),_}(o.EventEmitter);t.WidgetApi=E},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ClientWidgetApi=void 0;var o=n(6),r=n(9),i=n(7),a=n(10),s=n(20),c=n(8),l=n(12),u=n(11),d=n(21);function h(e){return(h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:null;return this.allowedEvents.some((function(n){return n.matchesAsRoomEvent(e,t)&&n.direction===l.EventDirection.Send}))}},{key:"canSendStateEvent",value:function(e,t){return this.allowedEvents.some((function(n){return n.matchesAsStateEvent(e,t)&&n.direction===l.EventDirection.Send}))}},{key:"canReceiveRoomEvent",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return this.allowedEvents.some((function(n){return n.matchesAsRoomEvent(e,t)&&n.direction===l.EventDirection.Receive}))}},{key:"canReceiveStateEvent",value:function(e,t){return this.allowedEvents.some((function(n){return n.matchesAsStateEvent(e,t)&&n.direction===l.EventDirection.Receive}))}},{key:"stop",value:function(){this.isStopped=!0,this.transport.stop()}},{key:"onIframeLoad",value:function(e){this.beginCapabilities(),this.iframe.removeEventListener("onload",this.onIframeLoad.bind(this))}},{key:"beginCapabilities",value:function(){var e,t=this;if(this.capabilitiesFinished)throw new Error("Capabilities exchange already completed");this.emit("preparing"),this.transport.send(a.WidgetApiToWidgetAction.Capabilities,{}).then((function(n){return e=n.capabilities,t.driver.validateCapabilities(new Set(n.capabilities))})).then((function(n){console.log("Widget ".concat(t.widget.id," is allowed capabilities:"),Array.from(n)),t.allowedCapabilities=n,t.allowedEvents=l.WidgetEventCapability.findEventCapabilities(n),t.capabilitiesFinished=!0,t.notifyCapabilities(e),t.emit("ready")}))}},{key:"notifyCapabilities",value:function(e){this.transport.send(a.WidgetApiToWidgetAction.NotifyCapabilities,{requested:e,approved:Array.from(this.allowedCapabilities)}).catch((function(e){console.warn("non-fatal error notifying widget of approved capabilities:",e)}))}},{key:"handleContentLoadedAction",value:function(e){this.widget.waitForIframeLoad?this.transport.reply(e,{error:{message:"Improper sequence: not expecting load event"}}):(this.transport.reply(e,{}),this.beginCapabilities())}},{key:"replyVersions",value:function(e){this.transport.reply(e,{supported_versions:c.CurrentApiVersions})}},{key:"handleCapabilitiesRenegotiate",value:function(e){var t,n=this;this.transport.reply(e,{});var o=(null===(t=e.data)||void 0===t?void 0:t.capabilities)||[],r=new Set(o.filter((function(e){return!n.hasCapability(e)})));if(0===r.size)return this.notifyCapabilities([]);this.driver.validateCapabilities(r).then((function(e){return e.forEach((function(e){return n.allowedCapabilities.add(e)})),l.WidgetEventCapability.findEventCapabilities(e).forEach((function(e){return n.allowedEvents.push(e)})),n.notifyCapabilities(Array.from(r))}))}},{key:"handleNavigate",value:function(e){var t,n,o=this;if(!this.hasCapability(s.MatrixCapabilities.MSC2931Navigate))return this.transport.reply(e,{error:{message:"Missing capability"}});if(!(null===(t=e.data)||void 0===t?void 0:t.uri)||!(null===(n=e.data)||void 0===n?void 0:n.uri.toString().startsWith("https://matrix.to/#")))return this.transport.reply(e,{error:{message:"Invalid matrix.to URI"}});var r=function(t){return console.error("[ClientWidgetApi] Failed to handle navigation: ",t),o.transport.reply(e,{error:{message:"Error handling navigation"}})};try{this.driver.navigate(e.data.uri.toString()).catch((function(e){return r(e)})).then((function(){return o.transport.reply(e,{})}))}catch(e){return r(e)}}},{key:"handleOIDC",value:function(e){var t=this,n=1,o=function(o,r){return r=r||{},n>1?t.transport.send(a.WidgetApiToWidgetAction.OpenIDCredentials,m({state:o,original_request_id:e.requestId},r)):t.transport.reply(e,m({state:o},r))},r=function(r){return console.error("[ClientWidgetApi] Failed to handle OIDC: ",r),n>1?o(u.OpenIDRequestState.Blocked):t.transport.reply(e,{error:{message:r}})},i=new d.SimpleObservable((function(e){return e.state===u.OpenIDRequestState.PendingUserConfirmation&&n>1?(i.close(),r("client provided out-of-phase response to OIDC flow")):e.state===u.OpenIDRequestState.PendingUserConfirmation?(o(e.state),void n++):e.state!==u.OpenIDRequestState.Allowed||e.token?(e.state===u.OpenIDRequestState.Blocked&&(e.token=null),i.close(),o(e.state,e.token)):r("client provided invalid OIDC token for an allowed request")}));this.driver.askOpenID(i)}},{key:"handleSendEvent",value:function(e){var t,n=this;if(!e.data.type)return this.transport.reply(e,{error:{message:"Invalid request - missing event type"}});if(null!==e.data.state_key&&void 0!==e.data.state_key){if(!this.canSendStateEvent(e.data.type,e.data.state_key))return this.transport.reply(e,{error:{message:"Cannot send state events of this type"}});t=this.driver.sendEvent(e.data.type,e.data.content||{},e.data.state_key)}else{var o=e.data.content||{},r=o.msgtype;if(!this.canSendRoomEvent(e.data.type,r))return this.transport.reply(e,{error:{message:"Cannot send room events of this type"}});t=this.driver.sendEvent(e.data.type,o,null)}t.then((function(t){return n.transport.reply(e,{room_id:t.roomId,event_id:t.eventId})})).catch((function(t){return console.error("error sending event: ",t),n.transport.reply(e,{error:{message:"Error sending event"}})}))}},{key:"handleMessage",value:function(e){if(!this.isStopped){var t=new CustomEvent("action:".concat(e.detail.action),{detail:e.detail,cancelable:!0});if(this.emit("action:".concat(e.detail.action),t),!t.defaultPrevented)switch(e.detail.action){case a.WidgetApiFromWidgetAction.ContentLoaded:return this.handleContentLoadedAction(e.detail);case a.WidgetApiFromWidgetAction.SupportedApiVersions:return this.replyVersions(e.detail);case a.WidgetApiFromWidgetAction.SendEvent:return this.handleSendEvent(e.detail);case a.WidgetApiFromWidgetAction.GetOpenIDCredentials:return this.handleOIDC(e.detail);case a.WidgetApiFromWidgetAction.MSC2931Navigate:return this.handleNavigate(e.detail);case a.WidgetApiFromWidgetAction.MSC2974RenegotiateCapabilities:return this.handleCapabilitiesRenegotiate(e.detail);default:return this.transport.reply(e.detail,{error:{message:"Unknown or unsupported action: "+e.detail.action}})}}}},{key:"takeScreenshot",value:function(){return this.transport.send(a.WidgetApiToWidgetAction.TakeScreenshot,{})}},{key:"updateVisibility",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.UpdateVisibility,{visible:e})}},{key:"sendWidgetConfig",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.WidgetConfig,e).then()}},{key:"notifyModalWidgetButtonClicked",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.ButtonClicked,{id:e}).then()}},{key:"notifyModalWidgetClose",value:function(e){return this.transport.send(a.WidgetApiToWidgetAction.CloseModalWidget,e).then()}},{key:"feedEvent",value:function(e){if(void 0!==e.state_key&&null!==e.state_key){if(!this.canReceiveStateEvent(e.type,e.state_key))return Promise.resolve()}else if(!this.canReceiveRoomEvent(e.type,(e.content||{}).msgtype))return Promise.resolve();return this.transport.send(a.WidgetApiToWidgetAction.SendEvent,e).then()}}])&&g(t.prototype,n),o&&g(t,o),p}(o.EventEmitter);t.ClientWidgetApi=S},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isErrorResponse=function(e){if("error"in e){return!!e.error.message}return!1}},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetKind=void 0,t.WidgetKind=o,function(e){e.Room="room",e.Account="account",e.Modal="modal"}(o||(t.WidgetKind=o={}))},function(e,t,n){"use strict";var o;Object.defineProperty(t,"__esModule",{value:!0}),t.ModalButtonKind=void 0,t.ModalButtonKind=o,function(e){e.Primary="m.primary",e.Secondary="m.secondary",e.Warning="m.warning",e.Danger="m.danger",e.Link="m.link"}(o||(t.ModalButtonKind=o={}))},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WidgetParser=void 0;var o=n(24),r=n(22);function i(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return s=e.done,e},e:function(e){c=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(c)throw i}}}}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n(.*?)<\\/${t}>|<${t}>|<${t}\\s*\\/>)`]=n[t];o=_(o,e)}return o}(function(e,t){let n;t&&"object"==typeof t&&(n=t.count,Object.keys(t).forEach(e=>{void 0===t[e]&&(console.warn("safeCounterpartTranslate called with undefined interpolation name: "+e),t[e]="undefined"),null===t[e]&&(console.warn("safeCounterpartTranslate called with null interpolation name: "+e),t[e]="null")}));let o=a.a.translate(e,t);return void 0===o&&void 0!==n&&(o=a.a.translate(e,Object.assign({},t,{locale:"en"}))),o}(e,Object.assign({interpolate:!1},t)),t,n);return o}function _(e,t){const n=[e];let o=!1;for(const r in t){const i=new RegExp(r,"g");let a=!1;for(let e=0;e{o=t;for(let t=0;t{if(a.a.registerTranslations(n,e),a.a.setLocale(n),l.b.setValue("language",null,h.a.DEVICE,n),console.log("set language to "+n),"en"!==n)return k("i18n/"+o.en.fileName)}).then(e=>{e&&a.a.registerTranslations("en",e)})}function v(){return x().then(e=>{const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push({value:n,label:e[n].label});return t})}function y(){return navigator.languages&&navigator.languages.length?navigator.languages:navigator.language?[navigator.language]:[navigator.userLanguage||"en"]}function E(){return y()[0]}function S(e){const t=[],n=w(e),o=n.split("-");return 2===o.length&&o[0]===o[1]?t.push(o[0]):(t.push(n),2===o.length&&t.push(o[0])),t}function w(e){return e.toLowerCase().replace("_","-")}function C(){return a.a.getLocale()}function T(e){const t=C(),n=e.map(w);{const o=n.indexOf(t);if(o>-1)return e[o]}{const o=n.findIndex(e=>e.substr(0,2)===t.substr(0,2));if(o>-1)return e[o]}{const t=n.findIndex(e=>e.startsWith("en"));if(t>-1)return e[t]}return e[0]}function x(){return new Promise((e,t)=>{let n;n="string"==typeof d.a?d.a:"i18n/languages.json",r()({method:"GET",url:n},(n,o,r)=>{n||o.status<200||o.status>=300?t(n):e(JSON.parse(r))})})}async function k(e,t=3){return Object(p.c)(()=>function(e){return new Promise((t,n)=>{r()({method:"GET",url:e},(e,o,r)=>{e||o.status<200||o.status>=300?n(e):t(function(e){const t={};for(const n of Object.keys(e)){const o=n.split("|",2);if(2===o.length){let r=t[o[0]];void 0===r&&(r={},t[o[0]]=r),r[o[1]]=e[n]}else t[n]=e[n]}return t}(JSON.parse(r)))})})}(e),t,t=>(console.log("Failed to load i18n",e),console.error(t),!0))}a.a.setSeparator("|"),a.a.setFallbackLocale("en")},function(e,t,n){e.exports=n(720)()},function(e,t,n){"use strict";n.r(t),n.d(t,"loadSkin",(function(){return r})),n.d(t,"resetSkin",(function(){return i})),n.d(t,"getComponent",(function(){return a}));var o=n(714);function r(e){o.a.load(e)}function i(){o.a.reset()}function a(e){return o.a.getComponent(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return A}));var o=n(83),r=n.n(o),i=n(249),a=n(1),s=n(157),c=n(345),l=n(86),u=n(610),d=n(89),h=n(88);function p(e,t,n){return{action:"MatrixActions.sync",state:t,prevState:n,matrixClient:e}}function m(e,t){return{action:"MatrixActions.accountData",event:t,event_type:t.getType(),event_content:t.getContent()}}function g(e,t,n){return{action:"MatrixActions.Room.accountData",event:t,event_type:t.getType(),event_content:t.getContent(),room:n}}function f(e,t){return{action:"MatrixActions.Room",room:t}}function _(e,t,n){return{action:"MatrixActions.Room.tags",room:n}}function b(e,t,n){return{action:"MatrixActions.Room.receipt",event:t,room:n,matrixClient:e}}function v(e,t,n,o,r,i){return{action:"MatrixActions.Room.timeline",event:t,isLiveEvent:i.liveEvent,isLiveUnfilteredRoomTimelineEvent:n&&i.timeline.getTimelineSet()===n.getUnfilteredTimelineSet()}}function y(e,t,n,o){return{action:"MatrixActions.Room.myMembership",room:t,membership:n,oldMembership:o}}function E(e,t){return{action:"MatrixActions.Event.decrypted",event:t}}var S={_matrixClientListenersStop:[],start(e){this._addMatrixClientListener(e,"sync",p),this._addMatrixClientListener(e,"accountData",m),this._addMatrixClientListener(e,"Room.accountData",g),this._addMatrixClientListener(e,"Room",f),this._addMatrixClientListener(e,"Room.tags",_),this._addMatrixClientListener(e,"Room.receipt",b),this._addMatrixClientListener(e,"Room.timeline",v),this._addMatrixClientListener(e,"Room.myMembership",y),this._addMatrixClientListener(e,"Event.decrypted",E)},_addMatrixClientListener(e,t,n){const o=(...t)=>{const o=n(e,...t);o&&h.a.dispatch(o,!0)};e.on(t,o),this._matrixClientListenersStop.push(()=>{e.removeListener(t,o)})},stop(){this._matrixClientListenersStop.forEach(e=>e())}},w=n(90),C=n(311),T=n(341),x=n(332),k=n(186),O=n(165),R=n(261),D=n(237);class I{constructor(){r()(this,"opts",{initialSyncLimit:20}),r()(this,"matrixClient",null),r()(this,"justRegisteredUserId",void 0),r()(this,"currentClientCreds",void 0)}setIndexedDbWorkerScript(e){u.a.indexedDbWorkerScript=e}get(){return this.matrixClient}unset(){this.matrixClient=null,S.stop()}setJustRegisteredUserId(e){this.justRegisteredUserId=e,e&&window.localStorage.setItem("mx_registration_time",String((new Date).getTime()))}currentUserIsJustRegistered(){return this.matrixClient&&this.matrixClient.credentials.userId===this.justRegisteredUserId}userRegisteredWithinLastHours(e){try{const t=new Date(window.localStorage.getItem("mx_registration_time"));return((new Date).getTime()-t.getTime())/36e5<=e}catch(e){return!1}}replaceUsingCreds(e){this.currentClientCreds=e,this.createClient(e)}async assign(){for(const e of["indexeddb","memory"])try{const e=this.matrixClient.store.startup();console.log("MatrixClientPeg: waiting for MatrixClient store to initialise"),await e;break}catch(t){if("indexeddb"!==e)throw console.error("Failed to start memory store!",t),t;console.error("Error starting matrixclient store - falling back to memory store",t),this.matrixClient.store=new i.a({localStorage:localStorage})}x.f(this.matrixClient);try{!d.b.getValue("lowBandwidth")&&this.matrixClient.initCrypto&&(await this.matrixClient.initCrypto(),this.matrixClient.setCryptoTrustCrossSignedDevices(!d.b.getValue("e2ee.manuallyVerifyAllSessions")),await Object(O.f)(this.matrixClient),x.e(!0))}catch(e){if(e&&"InvalidCryptoStoreError"===e.name){const e=l.getComponent("views.dialogs.CryptoStoreTooNewDialog");w.a.createDialog(e)}console.warn("Unable to initialise e2e",e)}const e=a.c(this.opts);return e.pendingEventOrdering="detached",e.lazyLoadMembers=!0,e.clientWellKnownPollPeriod=7200,S.start(this.matrixClient),T.a.matrixClient=this.matrixClient,e}async start(){const e=await this.assign();console.log("MatrixClientPeg: really starting MatrixClient"),await this.get().startClient(e),console.log("MatrixClientPeg: MatrixClient started")}getCredentials(){return{homeserverUrl:this.matrixClient.baseUrl,identityServerUrl:this.matrixClient.idBaseUrl,userId:this.matrixClient.credentials.userId,deviceId:this.matrixClient.getDeviceId(),accessToken:this.matrixClient.getAccessToken(),guest:this.matrixClient.isGuest()}}getHomeserverName(){const e=/^@.+:(.+)$/.exec(this.matrixClient.credentials.userId);if(null===e||e.length<1)throw new Error("Failed to derive homeserver name from user ID!");return e[1]}createClient(e){const t={baseUrl:e.homeserverUrl,idBaseUrl:e.identityServerUrl,accessToken:e.accessToken,userId:e.userId,deviceId:e.deviceId,pickleKey:e.pickleKey,timelineSupport:!0,forceTURN:!d.b.getValue("webRtcAllowPeerToPeer"),fallbackICEServerAllowed:!!d.b.getValue("fallbackICEServerAllowed"),iceCandidatePoolSize:20,verificationMethods:[C.d.SAS,R.d,C.d.RECIPROCATE_QR_CODE],unstableClientRelationAggregation:!0,identityServer:new k.a,cryptoCallbacks:{}},n={getDehydrationKey:D.a.getDehydrationKey};Object.assign(t.cryptoCallbacks,O.c,n),this.matrixClient=Object(u.a)(t),this.matrixClient.setMaxListeners(500),this.matrixClient.setGuest(Boolean(e.guest));const o=new c.a(null,{timelineSupport:!0});o.getLiveTimeline().setPaginationToken("",s.a.BACKWARDS),this.matrixClient.setNotifTimelineSet(o)}}window.mxMatrixClientPeg||(window.mxMatrixClientPeg=new I);const A=window.mxMatrixClientPeg},function(e,t,n){"use strict";(function(e){var o=n(718),r=n(350);class i extends o.Dispatcher{dispatch(e,t=!1){e instanceof r.a?e.fn(e=>{this.dispatch(e,t)}):t?super.dispatch(e):setTimeout(super.dispatch.bind(this,e),0)}fire(e,t=!1){this.dispatch({action:e},t)}}const a=new i,s=e;s.mxDispatcher||(s.mxDispatcher=a),t.a=a}).call(this,n(5))},function(e,t,n){"use strict";n.d(t,"a",(function(){return D})),n.d(t,"b",(function(){return I}));var o=n(83),r=n.n(o),i=n(213),a=n(87),s=n(97),c=n(151);class l extends i.a{constructor(e,t){super(),this.featureNames=e,this.watchers=t}getValue(e,t){if(this.featureNames.includes(e))return this.readFeature(e);if("notificationsEnabled"===e){const e=localStorage.getItem("notifications_enabled");return"string"==typeof e?"true"===e:null}if("notificationBodyEnabled"===e){const e=localStorage.getItem("notifications_body_enabled");return"string"==typeof e?"true"===e:null}if("audioNotificationsEnabled"===e){const e=localStorage.getItem("audio_notifications_enabled");return"string"==typeof e?"true"===e:null}if(["showRightPanelInRoom","showRightPanelInGroup","lastRightPanelPhaseForRoom","lastRightPanelPhaseForGroup"].includes(e)){return JSON.parse(localStorage.getItem("mx_"+e)||"{}").value}if("layout"===e){const t=this.getSettings()||{};return t.useIRCLayout?c.a.IRC:t[e]}return(this.getSettings()||{})[e]}setValue(e,t,n){if(this.featureNames.includes(e))return this.writeFeature(e,n),Promise.resolve();if("notificationsEnabled"===e)return localStorage.setItem("notifications_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if("notificationBodyEnabled"===e)return localStorage.setItem("notifications_body_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if("audioNotificationsEnabled"===e)return localStorage.setItem("audio_notifications_enabled",n),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if(["showRightPanelInRoom","showRightPanelInGroup","lastRightPanelPhaseForRoom","lastRightPanelPhaseForGroup"].includes(e))return localStorage.setItem("mx_"+e,JSON.stringify({value:n})),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve();if("layout"===e){const t=this.getSettings()||{};return delete t.useIRCLayout,t.layout=n,localStorage.setItem("mx_local_settings",JSON.stringify(t)),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve()}const o=this.getSettings()||{};return o[e]=n,localStorage.setItem("mx_local_settings",JSON.stringify(o)),this.watchers.notifyUpdate(e,null,s.a.DEVICE,n),Promise.resolve()}canSetValue(e,t){return!0}isSupported(){return void 0!==localStorage&&null!==localStorage}watchSetting(e,t,n){this.watchers.watchSetting(e,t,n)}unwatchSetting(e){this.watchers.unwatchSetting(e)}getSettings(){const e=localStorage.getItem("mx_local_settings");return e?JSON.parse(e):null}readFeature(e){if(a.a.get()&&a.a.get().isGuest())return!1;const t=localStorage.getItem("mx_labs_feature_"+e);return"true"===t||"false"!==t&&null}writeFeature(e,t){localStorage.setItem("mx_labs_feature_"+e,""+t),this.watchers.notifyUpdate(e,null,s.a.DEVICE,t)}}class u extends i.a{constructor(e){super(),this.watchers=e}getValue(e,t){if("blacklistUnverifiedDevices"===e){const e=this.read("mx_local_settings");if(e&&e.blacklistUnverifiedDevicesPerRoom)return e.blacklistUnverifiedDevicesPerRoom[t]}const n=this.read(this.getKey(e,t));return n?n.value:null}setValue(e,t,n){if("blacklistUnverifiedDevices"===e){let o=this.read("mx_local_settings");return o||(o={}),o.blacklistUnverifiedDevicesPerRoom||(o.blacklistUnverifiedDevicesPerRoom={}),o.blacklistUnverifiedDevicesPerRoom[t]=n,localStorage.setItem("mx_local_settings",JSON.stringify(o)),this.watchers.notifyUpdate(e,t,s.a.ROOM_DEVICE,n),Promise.resolve()}return null===n?localStorage.removeItem(this.getKey(e,t)):(n=JSON.stringify({value:n}),localStorage.setItem(this.getKey(e,t),n)),this.watchers.notifyUpdate(e,t,s.a.ROOM_DEVICE,n),Promise.resolve()}canSetValue(e,t){return!0}isSupported(){return void 0!==localStorage&&null!==localStorage}read(e){const t=localStorage.getItem(e);return t?JSON.parse(t):null}getKey(e,t){return"mx_setting_"+e+"_"+t}}class d extends i.a{constructor(e,t){super(),this.defaults=e,this.invertedDefaults=t}getValue(e,t){let n=this.defaults[e];return void 0===n&&(n=this.invertedDefaults[e]),n}async setValue(e,t,n){throw new Error("Cannot set values on the default level handler")}canSetValue(e,t){return!1}isSupported(){return!0}}var h=n(341),p=n(124);class m extends h.a{constructor(e){super(),this.watchers=e,r()(this,"onAccountData",(e,t,n)=>{const o=t.roomId;if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",o,s.a.ROOM_ACCOUNT,t)}else if("org.matrix.room.color_scheme"===e.getType())this.watchers.notifyUpdate("roomColor",o,s.a.ROOM_ACCOUNT,e.getContent());else if("im.vector.web.settings"===e.getType()){const t=n?n.getContent():{},r=Object(p.d)(t,e.getContent());for(const t of r){const n=e.getContent()[t];this.watchers.notifyUpdate(t,o,s.a.ROOM_ACCOUNT,n)}}else"im.vector.setting.allowed_widgets"===e.getType()&&this.watchers.notifyUpdate("allowedWidgets",o,s.a.ROOM_ACCOUNT,e.getContent())})}initMatrixClient(e,t){e&&e.removeListener("Room.accountData",this.onAccountData),t.on("Room.accountData",this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("roomColor"===e)return this.getSettings(t,"org.matrix.room.color_scheme");if("allowedWidgets"===e)return this.getSettings(t,"im.vector.setting.allowed_widgets");return(this.getSettings(t)||{})[e]}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return e.disable=!n,a.a.get().setRoomAccountData(t,"org.matrix.room.preview_urls",e)}if("roomColor"===e)return a.a.get().setRoomAccountData(t,"org.matrix.room.color_scheme",n);if("allowedWidgets"===e)return a.a.get().setRoomAccountData(t,"im.vector.setting.allowed_widgets",n);const o=this.getSettings(t)||{};return o[e]=n,a.a.get().setRoomAccountData(t,"im.vector.web.settings",o)}canSetValue(e,t){const n=a.a.get().getRoom(t);return null!=n}isSupported(){const e=a.a.get();return null!=e&&!e.isGuest()}getSettings(e,t="im.vector.web.settings"){const n=a.a.get().getRoom(e);if(!n)return null;const o=n.getAccountData(t);return o&&o.getContent()?Object(p.a)(o.getContent()):null}}const g=["im.vector.riot.breadcrumb_rooms","im.vector.setting.breadcrumbs"];class f extends h.a{constructor(e){super(),this.watchers=e,r()(this,"onAccountData",(e,t)=>{if("org.matrix.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",null,s.a.ACCOUNT,t)}else if("im.vector.web.settings"===e.getType()){const n=t?t.getContent():{},o=Object(p.d)(n,e.getContent());for(const t of o){const n=e.getContent()[t];this.watchers.notifyUpdate(t,null,s.a.ACCOUNT,n)}}else if(g.includes(e.getType()))this.notifyBreadcrumbsUpdate(e);else if("im.vector.setting.integration_provisioning"===e.getType()){const t=e.getContent().enabled;this.watchers.notifyUpdate("integrationProvisioning",null,s.a.ACCOUNT,t)}else if("io.element.recent_emoji"===e.getType()){const t=e.getContent().enabled;this.watchers.notifyUpdate("recent_emoji",null,s.a.ACCOUNT,t)}})}initMatrixClient(e,t){e&&e.removeListener("accountData",this.onAccountData),t.on("accountData",this.onAccountData)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings("org.matrix.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}if("breadcrumb_rooms"===e){let e=this.getSettings("im.vector.setting.breadcrumbs");return e&&e.recent_rooms||(e=this.getSettings("im.vector.riot.breadcrumb_rooms"),e&&(e.recent_rooms=e.rooms)),e&&e.recent_rooms?e.recent_rooms:[]}if("recent_emoji"===e){const e=this.getSettings("io.element.recent_emoji");return e?e.recent_emoji:null}if("integrationProvisioning"===e){const e=this.getSettings("im.vector.setting.integration_provisioning");return e?e.enabled:null}const n=this.getSettings()||{};let o=n[e];return null==o&&("hideAvatarChanges"!==e&&"hideDisplaynameChanges"!==e||(o=n.hideAvatarDisplaynameChanges)),o}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings("org.matrix.preview_urls")||{};return e.disable=!n,a.a.get().setAccountData("org.matrix.preview_urls",e)}if("breadcrumb_rooms"===e){let e=this.getSettings("im.vector.setting.breadcrumbs");return e&&e.recent_rooms||(e=this.getSettings("im.vector.riot.breadcrumb_rooms")),e||(e={}),e.recent_rooms=n,a.a.get().setAccountData("im.vector.setting.breadcrumbs",e)}if("recent_emoji"===e){const e=this.getSettings("io.element.recent_emoji")||{};return e.recent_emoji=n,a.a.get().setAccountData("io.element.recent_emoji",e)}if("integrationProvisioning"===e){const e=this.getSettings("im.vector.setting.integration_provisioning")||{};return e.enabled=n,a.a.get().setAccountData("im.vector.setting.integration_provisioning",e)}const o=this.getSettings()||{};return o[e]=n,a.a.get().setAccountData("im.vector.web.settings",o)}canSetValue(e,t){return!0}isSupported(){const e=a.a.get();return null!=e&&!e.isGuest()}getSettings(e="im.vector.web.settings"){const t=a.a.get();if(!t)return null;const n=t.getAccountData(e);return n&&n.getContent()?Object(p.a)(n.getContent()):null}notifyBreadcrumbsUpdate(e){let t=[];if("im.vector.riot.breadcrumb_rooms"===e.getType()){const n=this.getSettings("im.vector.setting.breadcrumbs");t=n?n.recent_rooms:e.getContent().rooms}else{if("im.vector.setting.breadcrumbs"!==e.getType())return;t=e.getContent().recent_rooms}this.watchers.notifyUpdate("breadcrumb_rooms",null,s.a.ACCOUNT,t||[])}}class _ extends h.a{constructor(e){super(),this.watchers=e,r()(this,"onEvent",(e,t,n)=>{const o=e.getRoomId(),r=this.client.getRoom(o);if(r&&(!r||t===r.currentState))if("org.matrix.room.preview_urls"===e.getType()){let t=e.getContent().disable;t="boolean"!=typeof t?null:!t,this.watchers.notifyUpdate("urlPreviewsEnabled",o,s.a.ROOM,t)}else if("im.vector.web.settings"===e.getType()){const t=n?n.getContent():{},r=Object(p.d)(t,e.getContent());for(const t of r)this.watchers.notifyUpdate(t,o,s.a.ROOM,e.getContent()[t])}})}initMatrixClient(e,t){e&&e.removeListener("RoomState.events",this.onEvent),t.on("RoomState.events",this.onEvent)}getValue(e,t){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return"boolean"!=typeof e.disable?null:!e.disable}return(this.getSettings(t)||{})[e]}setValue(e,t,n){if("urlPreviewsEnabled"===e){const e=this.getSettings(t,"org.matrix.room.preview_urls")||{};return e.disable=!n,a.a.get().sendStateEvent(t,"org.matrix.room.preview_urls",e)}const o=this.getSettings(t)||{};return o[e]=n,a.a.get().sendStateEvent(t,"im.vector.web.settings",o,"")}canSetValue(e,t){const n=a.a.get(),o=n.getRoom(t);let r="im.vector.web.settings";return"urlPreviewsEnabled"===e&&(r="org.matrix.room.preview_urls"),!!o&&o.currentState.maySendStateEvent(r,n.getUserId())}isSupported(){const e=a.a.get();return null!=e}getSettings(e,t="im.vector.web.settings"){const n=a.a.get().getRoom(e);if(!n)return null;const o=n.currentState.getStateEvents(t,"");return o&&o.getContent()?Object(p.a)(o.getContent()):null}}var b=n(93),v=n(1);class y extends i.a{constructor(e){super(),this.featureNames=e}getValue(e,t){const n=b.a.get()||{};if(this.featureNames.includes(e)){const t=(n.features||{})[e];return Object(v.r)(t)?null:!0===t||!1===t?t:"enable"===t||"disable"!==t&&null}if("theme"===e)return n.default_theme;const o=n.settingDefaults;return!o||Object(v.r)(o[e])?null:o[e]}async setValue(e,t,n){throw new Error("Cannot change settings at the config level")}canSetValue(e,t){return!1}isSupported(){return!0}}var E=n(84),S=n(88),w=n(686);class C extends i.a{constructor(e){super(),this.handler=e,r()(this,"cache",{})}getValue(e,t){const n=t||"UNDEFINED",o=this.cache[e];return o&&o.hasOwnProperty(n)?o[n]:this.handler.getValue(e,t)}setValue(e,t,n){this.cache[e]||(this.cache[e]={});const o=this.cache[e],r=t||"UNDEFINED";o[r]=n;const i=this.handler.setValue(e,t,n);return Promise.resolve(i).finally(()=>{delete o[r]})}canSetValue(e,t){return this.handler.canSetValue(e,t)}isSupported(){return this.handler.isSupported()}}const T=new class{constructor(){r()(this,"watchers",{})}watchSetting(e,t,n){this.watchers[e]||(this.watchers[e]={}),this.watchers[e][t]||(this.watchers[e][t]=[]),this.watchers[e][t].push(n)}unwatchSetting(e){for(const t of Object.keys(this.watchers))for(const n of Object.keys(this.watchers[t])){let o;for(;-1!==(o=this.watchers[t][n].indexOf(e));)this.watchers[t][n].splice(o,1)}}notifyUpdate(e,t,n,o){if(!this.watchers[e])return;const r=this.watchers[e],i=[];null!==t&&r[t]&&i.push(...r[t]),t?r.null&&i.push(...r.null):i.push(...Object.values(r).flat(1));for(const e of i)e(t,n,o)}},x={},k={},O=[];for(const e of Object.keys(w.a))x[e]=w.a[e].default,w.a[e].isFeature&&O.push(e),w.a[e].invertedSettingName&&(k[w.a[e].invertedSettingName]=!w.a[e].default);const R={[s.a.DEVICE]:new l(O,T),[s.a.ROOM_DEVICE]:new u(T),[s.a.ROOM_ACCOUNT]:new m(T),[s.a.ACCOUNT]:new f(T),[s.a.ROOM]:new _(T),[s.a.CONFIG]:new y(O),[s.a.DEFAULT]:new d(x,k)};for(const e of Object.keys(R))R[e]=new C(R[e]);const D=[s.a.DEVICE,s.a.ROOM_DEVICE,s.a.ROOM_ACCOUNT,s.a.ACCOUNT,s.a.ROOM,s.a.CONFIG,s.a.DEFAULT];class I{static getFeatureSettingNames(){return Object.keys(w.a).filter(e=>I.isFeature(e))}static watchSetting(e,t,n){const o=w.a[e],r=e;if(!o)throw new Error(e+" is not a setting");o.invertedSettingName&&(e=o.invertedSettingName);const i=`${(new Date).getTime()}_${I.watcherCount++}_${e}_${t}`,a=(e,t,o)=>{const i=I.getValue(r);n(r,e,t,o,i)};return I.watchers[i]=a,T.watchSetting(e,t,a),i}static unwatchSetting(e){I.watchers[e]?(T.unwatchSetting(I.watchers[e]),delete I.watchers[e]):console.warn("Ending non-existent watcher ID "+e)}static monitorSetting(e,t){t=t||null,this.monitors[e]||(this.monitors[e]={});const n=()=>{this.monitors[e][t]=I.watchSetting(e,t,(e,t,n,o,r)=>{S.a.dispatch({action:"setting_updated",settingName:e,roomId:t,level:n,newValueAtLevel:o,newValue:r})})};if(Object.keys(this.monitors[e]).find(e=>e===t||null===e)){if(null===t){for(const t of Object.keys(this.monitors[e]))I.unwatchSetting(this.monitors[e][t]);this.monitors[e]={},n()}}else n()}static getDisplayName(e,t=s.a.DEFAULT){if(!w.a[e]||!w.a[e].displayName)return null;let n=w.a[e].displayName;return n instanceof Object&&(n=n[t]?n[t]:n.default),Object(E.a)(n)}static isFeature(e){return!!w.a[e]&&w.a[e].isFeature}static isEnabled(e){return!!w.a[e]&&(!w.a[e].controller||!w.a[e].controller.settingDisabled)}static getValue(e,t=null,n=!1){if(!w.a[e])throw new Error("Setting '"+e+"' does not appear to be a setting.");const o=w.a[e],r=o.supportedLevelsAreOrdered?o.supportedLevels:D;return I.getValueAt(r[0],e,t,!1,n)}static getValueAt(e,t,n=null,o=!1,r=!1){const i=w.a[t];if(!i)throw new Error("Setting '"+t+"' does not appear to be a setting.");const a=i.supportedLevelsAreOrdered?i.supportedLevels:D;a.includes(s.a.DEFAULT)||a.push(s.a.DEFAULT);const c=a.indexOf(e);if(-1===c)throw new Error("Level "+e+" is not prioritized");const l=I.getHandlers(t);if(i.invertedSettingName&&(t=i.invertedSettingName),o){const o=l[e];if(!o)return I.getFinalValue(i,e,n,null,null);const r=o.getValue(t,n);return I.getFinalValue(i,e,n,r,e)}for(let o=c;o")),console.log("--- default level order: "+JSON.stringify(D)),console.log("--- registered handlers: "+JSON.stringify(Object.keys(R)));const o=e=>{for(const n of Object.keys(R)){const o=R[n];try{const r=o.getValue(e,t);console.log(`--- ${n}@${t||""} = ${JSON.stringify(r)}`)}catch(e){console.log(`--- ${o}@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=o.getValue(e,null);console.log(`--- ${n}@ = ${JSON.stringify(t)}`)}catch(e){console.log(`--- ${o}@ THREW ERROR: ${e.message}`),console.error(e)}}console.log("--- calculating as returned by SettingsStore"),console.log("--- these might not match if the setting uses a controller - be warned!");try{const n=I.getValue(e,t);console.log(`--- SettingsStore#generic@${t||""} = ${JSON.stringify(n)}`)}catch(e){console.log(`--- SettingsStore#generic@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=I.getValue(e,null);console.log("--- SettingsStore#generic@ = "+JSON.stringify(t))}catch(e){console.log("--- SettingsStore#generic@$ THREW ERROR: "+e.message),console.error(e)}for(const n of D){try{const o=I.getValueAt(n,e,t);console.log(`--- SettingsStore#${n}@${t||""} = ${JSON.stringify(o)}`)}catch(e){console.log(`--- SettingsStore#${n}@${t||""} THREW ERROR: ${e.message}`),console.error(e)}if(t)try{const t=I.getValueAt(n,e,null);console.log(`--- SettingsStore#${n}@ = ${JSON.stringify(t)}`)}catch(e){console.log(`--- SettingsStore#${n}@$ THREW ERROR: ${e.message}`),console.error(e)}}};o(e),n.invertedSettingName&&(console.log("--- TESTING INVERTED SETTING NAME"),console.log("--- inverted: "+n.invertedSettingName),o(n.invertedSettingName)),console.log("--- END DEBUG")}static getHandler(e,t){const n=I.getHandlers(e);return n[t]?n[t]:null}static getHandlers(e){if(!w.a[e])return{};const t={};for(const n of w.a[e].supportedLevels){if(!R[n])throw new Error("Unexpected level "+n);I.isLevelSupported(n)&&(t[n]=R[n])}return t.default||(t.default=R.default),t}}r()(I,"watchers",{}),r()(I,"monitors",{}),r()(I,"watcherCount",1),window.mxSettingsStore=I},function(e,t,n){"use strict";var o=n(94),r=n.n(o),i=n(83),a=n.n(i),s=n(82),c=n.n(s),l=n(139),u=n.n(l),d=n(91),h=n.n(d),p=n(112),m=n(88),g=n(134),f=n(86),_=n(85),b=n.n(_),v=n(84);class y extends c.a.Component{constructor(...e){super(...e),a()(this,"state",{component:null,error:null}),a()(this,"_onWrapperCancelClick",()=>{this.props.onFinished(!1)})}componentDidMount(){this._unmounted=!1,console.log("Starting load of AsyncWrapper for modal"),this.props.prom.then(e=>{if(this._unmounted)return;const t=e.default?e.default:e;this.setState({component:t})}).catch(e=>{console.warn("AsyncWrapper promise failed",e),this.setState({error:e})})}componentWillUnmount(){this._unmounted=!0}render(){if(this.state.component){const e=this.state.component;return c.a.createElement(e,this.props)}if(this.state.error){const e=f.getComponent("views.dialogs.BaseDialog"),t=f.getComponent("views.elements.DialogButtons");return c.a.createElement(e,{onFinished:this.props.onFinished,title:Object(v.a)("Error")},Object(v.a)("Unable to load! Check your network connectivity and try again."),c.a.createElement(t,{primaryButton:Object(v.a)("Dismiss"),onPrimaryButtonClick:this._onWrapperCancelClick,hasCancel:!1}))}{const e=f.getComponent("elements.Spinner");return c.a.createElement(e,null)}}}a()(y,"propTypes",{prom:b.a.object.isRequired});class E{constructor(){a()(this,"counter",0),a()(this,"priorityModal",null),a()(this,"staticModal",null),a()(this,"modals",[]),a()(this,"onBackgroundClick",()=>{const e=this.getCurrentModal();e&&(e.closeReason="backgroundClick",e.close(),e.closeReason=null)})}static getOrCreateContainer(){let e=document.getElementById("mx_Dialog_Container");return e||(e=document.createElement("div"),e.id="mx_Dialog_Container",document.body.appendChild(e)),e}static getOrCreateStaticContainer(){let e=document.getElementById("mx_Dialog_StaticContainer");return e||(e=document.createElement("div"),e.id="mx_Dialog_StaticContainer",document.body.appendChild(e)),e}hasDialogs(){return this.priorityModal||this.staticModal||this.modals.length>0}createTrackedDialog(e,t,...n){return p.a.trackEvent("Modal",e,t),this.createDialog(...n)}appendTrackedDialog(e,t,...n){return p.a.trackEvent("Modal",e,t),this.appendDialog(...n)}createDialog(e,...t){return this.createDialogAsync(Promise.resolve(e),...t)}appendDialog(e,...t){return this.appendDialogAsync(Promise.resolve(e),...t)}createTrackedDialogAsync(e,t,...n){return p.a.trackEvent("Modal",e,t),this.createDialogAsync(...n)}appendTrackedDialogAsync(e,t,...n){return p.a.trackEvent("Modal",e,t),this.appendDialogAsync(...n)}closeCurrentModal(e){const t=this.getCurrentModal();t&&(t.closeReason=e,t.close())}buildModal(e,t,n,o){const i={onFinished:t?t.onFinished:null,onBeforeClose:o.onBeforeClose,beforeClosePromise:null,closeReason:null,className:n,elem:null,close:null},[a,s]=this.getCloseFn(i,t),l=this.counter++;return i.elem=c.a.createElement(y,r()({key:l,prom:e},t,{onFinished:a})),i.close=a,{modal:i,closeDialog:a,onFinishedProm:s}}getCloseFn(e,t){const n=Object(g.b)();return[async(...o)=>{if(e.beforeClosePromise)await e.beforeClosePromise;else if(e.onBeforeClose){e.beforeClosePromise=e.onBeforeClose(e.closeReason);const t=await e.beforeClosePromise;if(e.beforeClosePromise=null,!t)return}n.resolve(o),t&&t.onFinished&&t.onFinished.apply(null,o);const r=this.modals.indexOf(e);r>=0&&this.modals.splice(r,1),this.priorityModal===e&&(this.priorityModal=null,this.modals=[]),this.staticModal===e&&(this.staticModal=null,this.modals=[]),this.reRender()},n.promise]}createDialogAsync(e,t,n,o=!1,r=!1,i={}){const{modal:a,closeDialog:s,onFinishedProm:c}=this.buildModal(e,t,n,i);return o?this.priorityModal=a:r?this.staticModal=a:this.modals.unshift(a),this.reRender(),{close:s,finished:c}}appendDialogAsync(e,t,n){const{modal:o,closeDialog:r,onFinishedProm:i}=this.buildModal(e,t,n,{});return this.modals.push(o),this.reRender(),{close:r,finished:i}}getCurrentModal(){return this.priorityModal?this.priorityModal:this.modals[0]||this.staticModal}reRender(){if(0===this.modals.length&&!this.priorityModal&&!this.staticModal)return m.a.dispatch({action:"aria_unhide_main_app"}),u.a.unmountComponentAtNode(E.getOrCreateContainer()),void u.a.unmountComponentAtNode(E.getOrCreateStaticContainer());if(m.a.dispatch({action:"aria_hide_main_app"}),this.staticModal){const e=h()("mx_Dialog_wrapper mx_Dialog_staticWrapper",this.staticModal.className),t=c.a.createElement("div",{className:e},c.a.createElement("div",{className:"mx_Dialog"},this.staticModal.elem),c.a.createElement("div",{className:"mx_Dialog_background mx_Dialog_staticBackground",onClick:this.onBackgroundClick}));u.a.render(t,E.getOrCreateStaticContainer())}else u.a.unmountComponentAtNode(E.getOrCreateStaticContainer());const e=this.getCurrentModal();if(e!==this.staticModal){const t=h()("mx_Dialog_wrapper",e.className,{mx_Dialog_wrapperWithStaticUnder:this.staticModal}),n=c.a.createElement("div",{className:t},c.a.createElement("div",{className:"mx_Dialog"},e.elem),c.a.createElement("div",{className:"mx_Dialog_background",onClick:this.onBackgroundClick}));u.a.render(n,E.getOrCreateContainer())}else u.a.unmountComponentAtNode(E.getOrCreateContainer())}}window.singletonModalManager||(window.singletonModalManager=new E);t.a=window.singletonModalManager},function(e,t,n){var o;!function(){"use strict";var n={}.hasOwnProperty;function r(){for(var e=[],t=0;t{if(e.key===s.a.ENTER)return e.stopPropagation(),e.preventDefault(),n(e);e.key===s.a.SPACE&&(e.stopPropagation(),e.preventDefault())},p.onKeyUp=e=>{if(e.key===s.a.SPACE)return e.stopPropagation(),e.preventDefault(),n(e);e.key===s.a.ENTER&&(e.stopPropagation(),e.preventDefault())}),p.ref=u,p.className=l()("mx_AccessibleButton",d,{mx_AccessibleButton_hasKind:i,["mx_AccessibleButton_kind_"+i]:i,mx_AccessibleButton_disabled:c}),a.a.createElement(t,h,o)}u.defaultProps={element:"div",role:"button",tabIndex:0},u.displayName="AccessibleButton"},function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var o=n(83),r=n.n(o);const i={brand:"Element",integrations_ui_url:"https://scalar.vector.im/",integrations_rest_url:"https://scalar.vector.im/api",bug_report_endpoint_url:null,jitsi:{preferredDomain:"jitsi.riot.im"},desktopBuilds:{available:!0,logo:n(717),url:"https://element.io/get-started"}};class a{static setInstance(e){a.instance=e,window.mxReactSdkConfig=e}static get(){return a.instance||{}}static put(e){const t=Object.keys(i);for(let n=0;n",BACKTICK:"`",SPACE:" ",SLASH:"/",SQUARE_BRACKET_LEFT:"[",SQUARE_BRACKET_RIGHT:"]",A:"a",B:"b",C:"c",D:"d",E:"e",F:"f",G:"g",H:"h",I:"i",J:"j",K:"k",L:"l",M:"m",N:"n",O:"o",P:"p",Q:"q",R:"r",S:"s",T:"t",U:"u",V:"v",W:"w",X:"x",Y:"y",Z:"z"},r=navigator.platform.toUpperCase().indexOf("MAC")>=0;function i(e){return r?e.metaKey&&!e.altKey&&!e.ctrlKey&&!e.shiftKey:e.ctrlKey&&!e.altKey&&!e.metaKey&&!e.shiftKey}function a(e){return r?e.metaKey&&!e.altKey&&!e.ctrlKey:e.ctrlKey&&!e.altKey&&!e.metaKey}},function(e,t,n){var o=n(291);e.exports=function(e,t){if(null==e)return{};var n,r,i=o(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";(function(e){n.d(t,"a",(function(){return x})),n.d(t,"b",(function(){return k})),n.d(t,"p",(function(){return O})),n.d(t,"k",(function(){return R})),n.d(t,"l",(function(){return D})),n.d(t,"m",(function(){return I})),n.d(t,"q",(function(){return A})),n.d(t,"o",(function(){return N})),n.d(t,"n",(function(){return F}));var o=n(94),r=n.n(o),i=n(83),a=n.n(i),s=n(82),c=n.n(s),l=n(139),u=n.n(l),d=n(91),h=n.n(d),p=n(99),m=n(461);n.d(t,"c",(function(){return m.a}));var g=n(462);n.d(t,"d",(function(){return g.a}));var f=n(463);n.d(t,"e",(function(){return f.a}));var _=n(464);n.d(t,"f",(function(){return _.a}));var b=n(465);n.d(t,"g",(function(){return b.a}));var v=n(466);n.d(t,"h",(function(){return v.a}));var y=n(467);n.d(t,"i",(function(){return y.a}));var E=n(468);function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function w(e){for(var t=1;t{if(!e)return;let t=e.querySelector('[role^="menuitem"]');t||(t=e.querySelector("[tab-index]")),t&&t.focus(),this.setState({contextMenuElem:e})}),a()(this,"onContextMenu",t=>{if(this.props.onFinished){this.props.onFinished(),t.preventDefault(),t.stopPropagation();const n=t.clientX,o=t.clientY;e(()=>{const e=document.createEvent("MouseEvents");e.initMouseEvent("contextmenu",!0,!0,window,0,0,0,n,o,!1,!1,!1,!1,0,null),document.elementFromPoint(n,o).dispatchEvent(e)})}}),a()(this,"onContextMenuPreventBubbling",e=>{e.stopPropagation()}),a()(this,"onFinished",e=>{e.stopPropagation(),e.preventDefault(),this.props.onFinished&&this.props.onFinished()}),a()(this,"onMoveFocus",(e,t)=>{let n=!1;do{const o=t?e.lastElementChild:e.firstElementChild,r=t?e.previousElementSibling:e.nextElementSibling;n?o?e=o:r?e=r:(n=!1,e=e.parentElement):r?(e=r,n=!0):e=e.parentElement,e&&e.classList.contains("mx_ContextualMenu")&&(e=t?e.lastElementChild:e.firstElementChild,n=!0)}while(e&&!T.has(e.getAttribute("role")));e&&e.focus()}),a()(this,"onMoveFocusHomeEnd",(e,t)=>{let n=e.querySelectorAll('[role^="menuitem"]');n||(n=e.querySelectorAll("[tab-index]")),n&&n.length&&(t?n[0].focus():n[n.length-1].focus())}),a()(this,"onKeyDown",e=>{if(!this.props.managed)return void(e.key===p.a.ESCAPE&&(this.props.onFinished(),e.stopPropagation(),e.preventDefault()));let t=!0;switch(e.key){case p.a.TAB:case p.a.ESCAPE:case p.a.ARROW_LEFT:case p.a.ARROW_RIGHT:this.props.onFinished();break;case p.a.ARROW_UP:this.onMoveFocus(e.target,!0);break;case p.a.ARROW_DOWN:this.onMoveFocus(e.target,!1);break;case p.a.HOME:this.onMoveFocusHomeEnd(this.state.contextMenuElem,!0);break;case p.a.END:this.onMoveFocusHomeEnd(this.state.contextMenuElem,!1);break;default:t=!1}t&&(e.stopPropagation(),e.preventDefault())}),this.state={contextMenuElem:null},this.initialFocus=document.activeElement}componentWillUnmount(){this.initialFocus.focus()}renderMenu(e=this.props.hasBackground){const t={},n=this.props;let o;n.top?t.top=n.top:t.bottom=n.bottom,n.left?(t.left=n.left,o=x.Left):(t.right=n.right,o=x.Right);const r=this.state.contextMenuElem?this.state.contextMenuElem.getBoundingClientRect():null,i={};n.chevronFace&&(o=n.chevronFace);const a=o&&o!==x.None;if(o===x.Top||o===x.Bottom)i.left=n.chevronOffset;else if(void 0!==t.top){const e=t.top;let o=e;if(r){const e=10;o=Math.min(t.top,document.body.clientHeight-r.height-e)}t.top=o,i.top=Math.max(n.chevronOffset,n.chevronOffset+e-o)}let s;a&&(s=c.a.createElement("div",{style:i,className:"mx_ContextualMenu_chevron_"+o}));const l=h()({mx_ContextualMenu:!0,mx_ContextualMenu_left:!a&&t.left,mx_ContextualMenu_right:!a&&t.right,mx_ContextualMenu_top:!a&&t.top,mx_ContextualMenu_bottom:!a&&t.bottom,mx_ContextualMenu_withChevron_left:o===x.Left,mx_ContextualMenu_withChevron_right:o===x.Right,mx_ContextualMenu_withChevron_top:o===x.Top,mx_ContextualMenu_withChevron_bottom:o===x.Bottom}),u={};n.menuWidth&&(u.width=n.menuWidth),n.menuHeight&&(u.height=n.menuHeight),isNaN(Number(n.menuPaddingTop))||(u.paddingTop=n.menuPaddingTop),isNaN(Number(n.menuPaddingLeft))||(u.paddingLeft=n.menuPaddingLeft),isNaN(Number(n.menuPaddingBottom))||(u.paddingBottom=n.menuPaddingBottom),isNaN(Number(n.menuPaddingRight))||(u.paddingRight=n.menuPaddingRight);const d={};let p;return isNaN(Number(n.zIndex))||(u.zIndex=n.zIndex+1,d.zIndex=n.zIndex),e&&(p=c.a.createElement("div",{className:"mx_ContextualMenu_background",style:d,onClick:this.onFinished,onContextMenu:this.onContextMenu})),c.a.createElement("div",{className:"mx_ContextualMenu_wrapper",style:w(w({},t),d),onKeyDown:this.onKeyDown,onContextMenu:this.onContextMenuPreventBubbling},c.a.createElement("div",{className:l,style:u,ref:this.collectContextMenuRect,role:this.props.managed?"menu":void 0},s,n.children),p)}render(){return u.a.createPortal(this.renderMenu(),C())}}a()(k,"defaultProps",{hasBackground:!0,managed:!0});const O=(e,t=12)=>{const n=e.right+window.pageXOffset+3;let o=e.top+e.height/2+window.pageYOffset;return o-=t+8,{left:n,top:o,chevronOffset:t}},R=(e,t=x.None,n=0)=>{const o={chevronFace:t},r=e.right+window.pageXOffset,i=e.bottom+window.pageYOffset,a=e.top+window.pageYOffset;return o.right=window.innerWidth-r,i{const o={chevronFace:t},r=e.right+window.pageXOffset,i=e.bottom+window.pageYOffset,a=e.top+window.pageYOffset;return o.right=window.innerWidth-r,i{const o={chevronFace:t},r=e.left+window.pageXOffset,i=e.top+window.pageYOffset;return o.left=r,o.bottom=window.innerHeight-i+n,o},A=()=>{const e=Object(s.useRef)(null),[t,n]=Object(s.useState)(!1);return[t,e,()=>{n(!0)},()=>{n(!1)},n]};class N extends k{render(){return this.renderMenu(!1)}}function F(e,t){const n=function(...e){u.a.unmountComponentAtNode(C()),t&&t.onFinished&&t.onFinished.apply(null,e)},o=c.a.createElement(N,r()({},t,{onFinished:n,windowResize:n}),c.a.createElement(e,r()({},t,{onFinished:n})));return u.a.render(o,C()),{close:n}}}).call(this,n(158).setImmediate)},function(e,t,n){"use strict";let o;n.d(t,"a",(function(){return o})),function(e){e.AdvancedEncryption="UIFeature.advancedEncryption",e.URLPreviews="UIFeature.urlPreviews",e.Widgets="UIFeature.widgets",e.Voip="UIFeature.voip",e.Feedback="UIFeature.feedback",e.Registration="UIFeature.registration",e.PasswordReset="UIFeature.passwordReset",e.Deactivate="UIFeature.deactivate",e.ShareQRCode="UIFeature.shareQrCode",e.ShareSocial="UIFeature.shareSocial",e.IdentityServer="UIFeature.identityServer",e.ThirdPartyID="UIFeature.thirdPartyId",e.Flair="UIFeature.flair",e.Communities="UIFeature.communities",e.AdvancedSettings="UIFeature.advancedSettings",e.RoomHistorySettings="UIFeature.roomHistorySettings"}(o||(o={}))},function(e,t,n){"use strict";n.d(t,"a",(function(){return f}));var o=n(100),r=n.n(o),i=n(83),a=n.n(i),s=n(82),c=n.n(s),l=n(91),u=n.n(l),d=n(86),h=n(106);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e){for(var t=1;t{this.validate({focused:!0})},200)),a()(this,"onFocus",e=>{this.setState({focused:!0}),this.props.validateOnFocus&&this.validate({focused:!0}),this.props.onFocus&&this.props.onFocus(e)}),a()(this,"onChange",e=>{this.props.validateOnChange&&this.validateOnChange(),this.props.onChange&&this.props.onChange(e)}),a()(this,"onBlur",e=>{this.setState({focused:!1}),this.props.validateOnBlur&&this.validate({focused:!1}),this.props.onBlur&&this.props.onBlur(e)}),this.state={valid:void 0,feedback:void 0,feedbackVisible:!1,focused:!1},this.id=this.props.id||"mx_Field_"+g++}focus(){this.input.focus()}async validate({focused:e,allowEmpty:t=!0}){if(!this.props.onValidate)return;const n=this.input?this.input.value:null,{valid:o,feedback:r}=await this.props.onValidate({value:n,focused:e,allowEmpty:t});return this.state.focused&&r?this.setState({valid:o,feedback:r,feedbackVisible:!0}):this.setState({valid:o,feedbackVisible:!1}),o}render(){const e=this.props,{element:t,prefixComponent:n,postfixComponent:o,className:i,onValidate:a,children:s,tooltipContent:l,forceValidity:h,tooltipClassName:p,list:g,validateOnBlur:f,validateOnChange:_,validateOnFocus:b}=e,v=r()(e,["element","prefixComponent","postfixComponent","className","onValidate","children","tooltipContent","forceValidity","tooltipClassName","list","validateOnBlur","validateOnChange","validateOnFocus"]);v.placeholder=v.placeholder||v.label,v.id=this.id,v.onFocus=this.onFocus,v.onChange=this.onChange,v.onBlur=this.onBlur;const y=m(m({},v),{},{ref:e=>this.input=e,list:g}),E=c.a.createElement(this.props.element,y,s);let S=null;n&&(S=c.a.createElement("span",{className:"mx_Field_prefix"},n));let w=null;o&&(w=c.a.createElement("span",{className:"mx_Field_postfix"},o));const C=null!=h,T=u()("mx_Field","mx_Field_"+this.props.element,i,{mx_Field_labelAlwaysTopLeft:n,mx_Field_valid:C?h:a&&!0===this.state.valid,mx_Field_invalid:C?!h:a&&!1===this.state.valid}),x=d.getComponent("elements.Tooltip");let k;return(l||this.state.feedback)&&(k=c.a.createElement(x,{tooltipClassName:u()("mx_Field_tooltip",p),visible:this.state.focused&&this.props.forceTooltipVisible||this.state.feedbackVisible,label:l||this.state.feedback,forceOnRight:!0})),c.a.createElement("div",{className:T},S,E,c.a.createElement("label",{htmlFor:this.id},this.props.label),w,k)}}a()(f,"defaultProps",{element:"input",type:"text",validateOnFocus:!0,validateOnBlur:!0,validateOnChange:!0})},function(e,t,n){"use strict";n.d(t,"a",(function(){return S}));var o=n(100),r=n.n(o),i=n(83),a=n.n(i),s=n(159),c=n(84),l=n(105),u=n(93),d=n(87),h=n(134),p=n(126),m=n(295);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function f(e){for(var t=1;t{const t=(new _).encode(e),n=await window.crypto.subtle.digest("sha-256",t);return[...new Uint8Array(n)].map(e=>e.toString(16).padStart(2,"0")).join("")},y=new Set(["register","login","forgot_password","soft_logout","new","settings","welcome","home","start","directory","start_sso","start_cas","groups","complete_security","post_registration","room","user","group"]);const E=e=>{var t,n;const o=d.a.get(),r=null==o?void 0:o.getRoom(e);return{num_users:null==r?void 0:r.getJoinedMemberCount(),is_encrypted:null==o?void 0:o.isRoomEncrypted(e),is_public:"public"===(null==r||null===(t=r.currentState.getStateEvents("m.room.join_rules",""))||void 0===t||null===(n=t.getContent())||void 0===n?void 0:n.join_rule)}};class S{constructor(){a()(this,"baseUrl",null),a()(this,"appKey",null),a()(this,"userKey",null),a()(this,"anonymous",void 0),a()(this,"appPlatform",void 0),a()(this,"appVersion","unknown"),a()(this,"initTime",S.getTimestamp()),a()(this,"firstPage",!0),a()(this,"heartbeatIntervalId",void 0),a()(this,"activityIntervalId",void 0),a()(this,"trackTime",!0),a()(this,"lastBeat",void 0),a()(this,"storedDuration",0),a()(this,"lastView",void 0),a()(this,"lastViewTime",0),a()(this,"lastViewStoredDuration",0),a()(this,"sessionStarted",!1),a()(this,"heartbeatEnabled",!1),a()(this,"inactivityCounter",0),a()(this,"pendingEvents",[]),a()(this,"lastMsTs",0),a()(this,"getOrientation",()=>window.innerWidth>window.innerHeight?b.Landscape:b.Portrait),a()(this,"reportOrientation",()=>{this.track("[CLY]_orientation",{mode:this.getOrientation()})}),a()(this,"endSession",()=>{this.sessionStarted&&(window.removeEventListener("resize",this.reportOrientation),this.reportViewDuration(),this.request({end_session:1,session_duration:S.getTimestamp()-this.lastBeat})),this.sessionStarted=!1}),a()(this,"onVisibilityChange",()=>{document.hidden?this.stopTime():this.startTime()}),a()(this,"onUserActivity",()=>{this.inactivityCounter>=20&&this.startTime(),this.inactivityCounter=0})}static get instance(){return S.internalInstance}get disabled(){return!this.baseUrl}canEnable(){var e,t;const n=u.a.get();return Boolean("1"!==navigator.doNotTrack&&(null==n||null===(e=n.countly)||void 0===e?void 0:e.url)&&(null==n||null===(t=n.countly)||void 0===t?void 0:t.appKey))}async changeUserKey(e,t=!1){const n=this.userKey;this.userKey=e,n&&t&&await this.request({old_device_id:n})}async enable(e=!0){if(!this.disabled&&this.anonymous===e)return;if(!this.canEnable())return;this.disabled||this.request();const t=u.a.get();this.baseUrl=new URL("/i",t.countly.url),this.appKey=t.countly.appKey,this.anonymous=e,e?await this.changeUserKey(Object(s.b)(64)):await this.changeUserKey(await v(d.a.get().getUserId()),!0);const n=l.a.get();this.appPlatform=n.getHumanReadableName();try{this.appVersion=await n.getAppVersion()}catch(e){console.warn("Failed to get app version, using 'unknown'")}this.heartbeatIntervalId=setInterval(this.heartbeat.bind(this),5e3),this.trackSessions(),this.trackErrors()}async disable(){this.disabled||(await this.track("Opt-Out"),this.endSession(),window.clearInterval(this.heartbeatIntervalId),window.clearTimeout(this.activityIntervalId),this.baseUrl=null,window.removeEventListener("beforeunload",this.endSession),window.removeEventListener("unload",this.endSession),window.removeEventListener("visibilitychange",this.onVisibilityChange),window.removeEventListener("mousemove",this.onUserActivity),window.removeEventListener("click",this.onUserActivity),window.removeEventListener("keydown",this.onUserActivity),window.removeEventListener("scroll",this.onUserActivity))}reportFeedback(e,t){this.track("[CLY]_star_rating",{rating:e,comment:t},null,{},!0)}trackPageChange(e){this.disabled||this.trackPageView()}async trackPageView(){this.reportViewDuration(),await Object(h.d)(0);const e=await async function(e=!0){const t=Object(s.b)(8),{origin:n,hash:o}=window.location;let{pathname:r}=window.location;n.startsWith("file://")&&(r=`//`);let[i,a,...c]=o.split("/");y.has(a)||(a=``);for(let n=0;n`:await v(c[n]);const l=n+r+`${i}/${a}/${c.join("/")}`,u={};let d="$/"+o;switch(a){case"room":{d="view_room";const e=p.a.getRoomId();d+=" "+c[0],u.room_id=c[0],Object.assign(u,E(e));break}}return{name:d,url:l,meta:u}}(this.anonymous),t=e.name;this.lastView=t,this.lastViewTime=S.getTimestamp();const n=f(f({},e.meta),{},{name:t,visit:1,domain:window.location.hostname,view:e.url,segment:this.appPlatform,start:this.firstPage});this.firstPage&&(this.firstPage=!1),this.track("[CLY]_view",n)}static getTimestamp(){return Math.floor((new Date).getTime()/1e3)}getMsTimestamp(){const e=(new Date).getTime();return this.lastMsTs>=e?this.lastMsTs++:this.lastMsTs=e,this.lastMsTs}async recordError(e,t=!1){if(this.disabled||this.anonymous)return;let n="";"object"==typeof e?void 0!==e.stack?n=e.stack:(void 0!==e.name&&(n+=e.name+":"),void 0!==e.message&&(n+=e.message+"\n"),void 0!==e.fileName&&(n+="in "+e.fileName+"\n"),void 0!==e.lineNumber&&(n+="on "+e.lineNumber),void 0!==e.columnNumber&&(n+=":"+e.columnNumber)):n=e+"",n=await(async(e,t,n)=>{const o=[];e.replace(t,(...e)=>(o.push(n(...e)),""));const r=await Promise.all(o);return e.replace(t,()=>r.shift())})(n,/([!@+#]).+?:[\w:.]+/g,async(e,t)=>t+await v(e.substring(1)));const o=this.getMetrics(),r={_resolution:null==o?void 0:o._resolution,_error:n,_app_version:this.appVersion,_run:S.getTimestamp()-this.initTime,_nonfatal:!t,_view:this.lastView};void 0!==navigator.onLine&&(r._online=navigator.onLine),r._background=document.hasFocus(),this.request({crash:JSON.stringify(r)})}trackErrors(){window.onerror=(e,t,n,o,r)=>{if(void 0!==r)this.recordError(r,!1);else{let r="";void 0!==e&&(r+=e+"\n"),void 0!==t&&(r+="at "+t),void 0!==n&&(r+=":"+n),void 0!==o&&(r+=":"+o),r+="\n";try{const e=[];let t=arguments.callee.caller;for(;t;)e.push(t.name),t=t.caller;r+=e.join("\n")}catch(e){}this.recordError(r,!1)}},window.addEventListener("unhandledrejection",e=>{var t;this.recordError(new Error(`Unhandled rejection (reason: ${(null===(t=e.reason)||void 0===t?void 0:t.stack)||e.reason}).`),!0)})}heartbeat(){const e={};if(this.sessionStarted&&this.trackTime){const t=S.getTimestamp();t-this.lastBeat>=60&&(e.session_duration=t-this.lastBeat,this.lastBeat=t)}(this.pendingEvents.length>0||e.session_duration)&&this.request(e)}async request(e={}){const t=f(f({app_key:this.appKey,device_id:this.userKey},this.getTimeParams()),e);if(this.pendingEvents.length>0){const e=10,n=this.pendingEvents.splice(0,e);t.events=JSON.stringify(n)}const n=new URLSearchParams(t);try{await window.fetch(this.baseUrl.toString(),{method:"POST",mode:"no-cors",cache:"no-cache",redirect:"follow",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n})}catch(e){console.error("Analytics error: ",e)}}getTimeParams(){const e=new Date;return{timestamp:this.getMsTimestamp(),hour:e.getHours(),dow:e.getDay()}}queue(e){const{count:t=1}=e,n=r()(e,["count"]),o=f(f(f({},this.getTimeParams()),n),{},{count:t,platform:this.appPlatform,app_version:this.appVersion});this.pendingEvents.push(o),this.pendingEvents.length>1e3&&this.pendingEvents.shift()}startTime(){this.trackTime||(this.trackTime=!0,this.lastBeat=S.getTimestamp()-this.storedDuration,this.lastViewTime=S.getTimestamp()-this.lastViewStoredDuration,this.lastViewStoredDuration=0)}stopTime(){this.trackTime&&(this.trackTime=!1,this.storedDuration=S.getTimestamp()-this.lastBeat,this.lastViewStoredDuration=S.getTimestamp()-this.lastViewTime)}getMetrics(){if(this.anonymous)return;const e={};return e._app_version=this.appVersion,e._ua=navigator.userAgent,screen.width&&screen.height&&(e._resolution=`${screen.width}x${screen.height}`),window.devicePixelRatio&&(e._density=window.devicePixelRatio),e._locale=Object(c.d)(),e}async beginSession(e=!0){if(!this.sessionStarted){this.reportOrientation(),window.addEventListener("resize",this.reportOrientation),this.lastBeat=S.getTimestamp(),this.sessionStarted=!0,this.heartbeatEnabled=e;const t={custom:{home_server:d.a.get()&&d.a.getHomeserverName(),anonymous:this.anonymous}},n={begin_session:1,user_details:JSON.stringify(t)},o=this.getMetrics();o&&(n.metrics=JSON.stringify(o)),await this.request(n)}}reportViewDuration(){this.lastView&&(this.track("[CLY]_view",{name:this.lastView},null,{dur:this.trackTime?S.getTimestamp()-this.lastViewTime:this.lastViewStoredDuration}),this.lastView=null)}trackSessions(){this.beginSession(),this.startTime(),window.addEventListener("beforeunload",this.endSession),window.addEventListener("unload",this.endSession),window.addEventListener("visibilitychange",this.onVisibilityChange),window.addEventListener("mousemove",this.onUserActivity),window.addEventListener("click",this.onUserActivity),window.addEventListener("keydown",this.onUserActivity),window.addEventListener("scroll",this.onUserActivity),this.activityIntervalId=setInterval(()=>{this.inactivityCounter++,this.inactivityCounter>=20&&this.stopTime()},6e4)}trackBeginInvite(e){this.track("begin_invite",{},e)}trackSendInvite(e,t,n){this.track("send_invite",{},t,{dur:S.getTimestamp()-e,sum:n})}async trackRoomCreate(e,t){if(this.disabled)return;let n=S.getTimestamp();const o=d.a.get();o.getRoom(t)||(await new Promise(e=>{const n=r=>{r.roomId===t&&(o.off("Room",n),e())};o.on("Room",n)}),n=S.getTimestamp()),this.track("create_room",{},t,{dur:n-e})}trackRoomJoin(e,t,n){this.track("join_room",{type:n},t,{dur:S.getTimestamp()-e})}async trackSendMessage(e,t,n,o,r,i){if(this.disabled)return;const a=d.a.get().getRoom(n),s=(await t).event_id;let c=S.getTimestamp();a.findEventById(s)||(await new Promise(e=>{const t=n=>{n.getId()===s&&(a.off("Room.localEchoUpdated",t),e())};a.on("Room.localEchoUpdated",t)}),c=S.getTimestamp()),this.track("send_message",{is_edit:o,is_reply:r,msgtype:i.msgtype,format:i.format},n,{dur:c-e})}trackStartCall(e,t=!1,n=!1){this.track("start_call",{is_video:t,is_jitsi:n},e)}trackJoinCall(e,t=!1,n=!1){this.track("join_call",{is_video:t,is_jitsi:n},e)}trackRoomDirectoryBegin(){this.track("room_directory")}trackRoomDirectory(e){this.track("room_directory_done",{},null,{dur:S.getTimestamp()-e})}trackRoomDirectorySearch(e,t){this.track("room_directory_search",{query_length:t.length,query_num_words:t.split(" ").length},null,{sum:e})}async track(e,t,n,o,r=!1){if(this.disabled&&!r)return;let i=t||{};n&&(i=f(f({room_id:await v(n)},E(n)),t)),this.queue(f({key:e,count:1,segmentation:i},o)),this.disabled&&r&&await this.request({device_id:Object(s.b)(64)})}}a()(S,"internalInstance",new S),window.mxCountlyAnalytics=S},function(e,t,n){"use strict";var o=n(83),r=n.n(o);class i{constructor(){r()(this,"platform",null)}get(){return this.platform}set(e){this.platform=e}}window.mxPlatformPeg||(window.mxPlatformPeg=new i),t.a=window.mxPlatformPeg},function(e,t,n){(function(e,o){var r;(function(){var i="Expected a function",a="__lodash_placeholder__",s=[["ary",128],["bind",1],["bindKey",2],["curry",8],["curryRight",16],["flip",512],["partial",32],["partialRight",64],["rearg",256]],c="[object Arguments]",l="[object Array]",u="[object Boolean]",d="[object Date]",h="[object Error]",p="[object Function]",m="[object GeneratorFunction]",g="[object Map]",f="[object Number]",_="[object Object]",b="[object RegExp]",v="[object Set]",y="[object String]",E="[object Symbol]",S="[object WeakMap]",w="[object ArrayBuffer]",C="[object DataView]",T="[object Float32Array]",x="[object Float64Array]",k="[object Int8Array]",O="[object Int16Array]",R="[object Int32Array]",D="[object Uint8Array]",I="[object Uint16Array]",A="[object Uint32Array]",N=/\b__p \+= '';/g,F=/\b(__p \+=) '' \+/g,M=/(__e\(.*?\)|\b__t\)) \+\n'';/g,P=/&(?:amp|lt|gt|quot|#39);/g,L=/[&<>"']/g,U=RegExp(P.source),j=RegExp(L.source),B=/<%-([\s\S]+?)%>/g,q=/<%([\s\S]+?)%>/g,G=/<%=([\s\S]+?)%>/g,V=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,H=/^\w*$/,z=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,K=/[\\^$.*+?()[\]{}|]/g,W=RegExp(K.source),Y=/^\s+|\s+$/g,$=/^\s+/,Q=/\s+$/,X=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,J=/\{\n\/\* \[wrapped with (.+)\] \*/,Z=/,? & /,ee=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,te=/\\(\\)?/g,ne=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,oe=/\w*$/,re=/^[-+]0x[0-9a-f]+$/i,ie=/^0b[01]+$/i,ae=/^\[object .+?Constructor\]$/,se=/^0o[0-7]+$/i,ce=/^(?:0|[1-9]\d*)$/,le=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,ue=/($^)/,de=/['\n\r\u2028\u2029\\]/g,he="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",pe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",me="[\\ud800-\\udfff]",ge="["+pe+"]",fe="["+he+"]",_e="\\d+",be="[\\u2700-\\u27bf]",ve="[a-z\\xdf-\\xf6\\xf8-\\xff]",ye="[^\\ud800-\\udfff"+pe+_e+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",Ee="\\ud83c[\\udffb-\\udfff]",Se="[^\\ud800-\\udfff]",we="(?:\\ud83c[\\udde6-\\uddff]){2}",Ce="[\\ud800-\\udbff][\\udc00-\\udfff]",Te="[A-Z\\xc0-\\xd6\\xd8-\\xde]",xe="(?:"+ve+"|"+ye+")",ke="(?:"+Te+"|"+ye+")",Oe="(?:"+fe+"|"+Ee+")"+"?",Re="[\\ufe0e\\ufe0f]?"+Oe+("(?:\\u200d(?:"+[Se,we,Ce].join("|")+")[\\ufe0e\\ufe0f]?"+Oe+")*"),De="(?:"+[be,we,Ce].join("|")+")"+Re,Ie="(?:"+[Se+fe+"?",fe,we,Ce,me].join("|")+")",Ae=RegExp("['’]","g"),Ne=RegExp(fe,"g"),Fe=RegExp(Ee+"(?="+Ee+")|"+Ie+Re,"g"),Me=RegExp([Te+"?"+ve+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[ge,Te,"$"].join("|")+")",ke+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[ge,Te+xe,"$"].join("|")+")",Te+"?"+xe+"+(?:['’](?:d|ll|m|re|s|t|ve))?",Te+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",_e,De].join("|"),"g"),Pe=RegExp("[\\u200d\\ud800-\\udfff"+he+"\\ufe0e\\ufe0f]"),Le=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ue=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],je=-1,Be={};Be[T]=Be[x]=Be[k]=Be[O]=Be[R]=Be[D]=Be["[object Uint8ClampedArray]"]=Be[I]=Be[A]=!0,Be[c]=Be[l]=Be[w]=Be[u]=Be[C]=Be[d]=Be[h]=Be[p]=Be[g]=Be[f]=Be[_]=Be[b]=Be[v]=Be[y]=Be[S]=!1;var qe={};qe[c]=qe[l]=qe[w]=qe[C]=qe[u]=qe[d]=qe[T]=qe[x]=qe[k]=qe[O]=qe[R]=qe[g]=qe[f]=qe[_]=qe[b]=qe[v]=qe[y]=qe[E]=qe[D]=qe["[object Uint8ClampedArray]"]=qe[I]=qe[A]=!0,qe[h]=qe[p]=qe[S]=!1;var Ge={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Ve=parseFloat,He=parseInt,ze="object"==typeof e&&e&&e.Object===Object&&e,Ke="object"==typeof self&&self&&self.Object===Object&&self,We=ze||Ke||Function("return this")(),Ye=t&&!t.nodeType&&t,$e=Ye&&"object"==typeof o&&o&&!o.nodeType&&o,Qe=$e&&$e.exports===Ye,Xe=Qe&&ze.process,Je=function(){try{var e=$e&&$e.require&&$e.require("util").types;return e||Xe&&Xe.binding&&Xe.binding("util")}catch(e){}}(),Ze=Je&&Je.isArrayBuffer,et=Je&&Je.isDate,tt=Je&&Je.isMap,nt=Je&&Je.isRegExp,ot=Je&&Je.isSet,rt=Je&&Je.isTypedArray;function it(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function at(e,t,n,o){for(var r=-1,i=null==e?0:e.length;++r-1}function ht(e,t,n){for(var o=-1,r=null==e?0:e.length;++o-1;);return n}function Ft(e,t){for(var n=e.length;n--&&Et(t,e[n],0)>-1;);return n}function Mt(e,t){for(var n=e.length,o=0;n--;)e[n]===t&&++o;return o}var Pt=xt({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Lt=xt({"&":"&","<":"<",">":">",'"':""","'":"'"});function Ut(e){return"\\"+Ge[e]}function jt(e){return Pe.test(e)}function Bt(e){var t=-1,n=Array(e.size);return e.forEach((function(e,o){n[++t]=[o,e]})),n}function qt(e,t){return function(n){return e(t(n))}}function Gt(e,t){for(var n=-1,o=e.length,r=0,i=[];++n",""":'"',"'":"'"});var Yt=function e(t){var n,o=(t=null==t?We:Yt.defaults(We.Object(),t,Yt.pick(We,Ue))).Array,r=t.Date,he=t.Error,pe=t.Function,me=t.Math,ge=t.Object,fe=t.RegExp,_e=t.String,be=t.TypeError,ve=o.prototype,ye=pe.prototype,Ee=ge.prototype,Se=t["__core-js_shared__"],we=ye.toString,Ce=Ee.hasOwnProperty,Te=0,xe=(n=/[^.]+$/.exec(Se&&Se.keys&&Se.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",ke=Ee.toString,Oe=we.call(ge),Re=We._,De=fe("^"+we.call(Ce).replace(K,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Ie=Qe?t.Buffer:void 0,Fe=t.Symbol,Pe=t.Uint8Array,Ge=Ie?Ie.allocUnsafe:void 0,ze=qt(ge.getPrototypeOf,ge),Ke=ge.create,Ye=Ee.propertyIsEnumerable,$e=ve.splice,Xe=Fe?Fe.isConcatSpreadable:void 0,Je=Fe?Fe.iterator:void 0,bt=Fe?Fe.toStringTag:void 0,xt=function(){try{var e=ei(ge,"defineProperty");return e({},"",{}),e}catch(e){}}(),$t=t.clearTimeout!==We.clearTimeout&&t.clearTimeout,Qt=r&&r.now!==We.Date.now&&r.now,Xt=t.setTimeout!==We.setTimeout&&t.setTimeout,Jt=me.ceil,Zt=me.floor,en=ge.getOwnPropertySymbols,tn=Ie?Ie.isBuffer:void 0,nn=t.isFinite,on=ve.join,rn=qt(ge.keys,ge),an=me.max,sn=me.min,cn=r.now,ln=t.parseInt,un=me.random,dn=ve.reverse,hn=ei(t,"DataView"),pn=ei(t,"Map"),mn=ei(t,"Promise"),gn=ei(t,"Set"),fn=ei(t,"WeakMap"),_n=ei(ge,"create"),bn=fn&&new fn,vn={},yn=ki(hn),En=ki(pn),Sn=ki(mn),wn=ki(gn),Cn=ki(fn),Tn=Fe?Fe.prototype:void 0,xn=Tn?Tn.valueOf:void 0,kn=Tn?Tn.toString:void 0;function On(e){if(Ha(e)&&!Na(e)&&!(e instanceof An)){if(e instanceof In)return e;if(Ce.call(e,"__wrapped__"))return Oi(e)}return new In(e)}var Rn=function(){function e(){}return function(t){if(!Va(t))return{};if(Ke)return Ke(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}();function Dn(){}function In(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}function An(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Nn(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Qn(e,t,n,o,r,i){var a,s=1&t,l=2&t,h=4&t;if(n&&(a=r?n(e,o,r,i):n(e)),void 0!==a)return a;if(!Va(e))return e;var S=Na(e);if(S){if(a=function(e){var t=e.length,n=new e.constructor(t);t&&"string"==typeof e[0]&&Ce.call(e,"index")&&(n.index=e.index,n.input=e.input);return n}(e),!s)return br(e,a)}else{var N=oi(e),F=N==p||N==m;if(La(e))return hr(e,s);if(N==_||N==c||F&&!r){if(a=l||F?{}:ii(e),!s)return l?function(e,t){return vr(e,ni(e),t)}(e,function(e,t){return e&&vr(t,Es(t),e)}(a,e)):function(e,t){return vr(e,ti(e),t)}(e,Kn(a,e))}else{if(!qe[N])return r?e:{};a=function(e,t,n){var o=e.constructor;switch(t){case w:return pr(e);case u:case d:return new o(+e);case C:return function(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case T:case x:case k:case O:case R:case D:case"[object Uint8ClampedArray]":case I:case A:return mr(e,n);case g:return new o;case f:case y:return new o(e);case b:return function(e){var t=new e.constructor(e.source,oe.exec(e));return t.lastIndex=e.lastIndex,t}(e);case v:return new o;case E:return r=e,xn?ge(xn.call(r)):{}}var r}(e,N,s)}}i||(i=new Ln);var M=i.get(e);if(M)return M;i.set(e,a),$a(e)?e.forEach((function(o){a.add(Qn(o,t,n,o,e,i))})):za(e)&&e.forEach((function(o,r){a.set(r,Qn(o,t,n,r,e,i))}));var P=S?void 0:(h?l?Wr:Kr:l?Es:ys)(e);return st(P||e,(function(o,r){P&&(o=e[r=o]),Vn(a,r,Qn(o,t,n,r,e,i))})),a}function Xn(e,t,n){var o=n.length;if(null==e)return!o;for(e=ge(e);o--;){var r=n[o],i=t[r],a=e[r];if(void 0===a&&!(r in e)||!i(a))return!1}return!0}function Jn(e,t,n){if("function"!=typeof e)throw new be(i);return yi((function(){e.apply(void 0,n)}),t)}function Zn(e,t,n,o){var r=-1,i=dt,a=!0,s=e.length,c=[],l=t.length;if(!s)return c;n&&(t=pt(t,Dt(n))),o?(i=ht,a=!1):t.length>=200&&(i=At,a=!1,t=new Pn(t));e:for(;++r-1},Fn.prototype.set=function(e,t){var n=this.__data__,o=Hn(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this},Mn.prototype.clear=function(){this.size=0,this.__data__={hash:new Nn,map:new(pn||Fn),string:new Nn}},Mn.prototype.delete=function(e){var t=Jr(this,e).delete(e);return this.size-=t?1:0,t},Mn.prototype.get=function(e){return Jr(this,e).get(e)},Mn.prototype.has=function(e){return Jr(this,e).has(e)},Mn.prototype.set=function(e,t){var n=Jr(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this},Pn.prototype.add=Pn.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Pn.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.clear=function(){this.__data__=new Fn,this.size=0},Ln.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},Ln.prototype.get=function(e){return this.__data__.get(e)},Ln.prototype.has=function(e){return this.__data__.has(e)},Ln.prototype.set=function(e,t){var n=this.__data__;if(n instanceof Fn){var o=n.__data__;if(!pn||o.length<199)return o.push([e,t]),this.size=++n.size,this;n=this.__data__=new Mn(o)}return n.set(e,t),this.size=n.size,this};var eo=Sr(co),to=Sr(lo,!0);function no(e,t){var n=!0;return eo(e,(function(e,o,r){return n=!!t(e,o,r)})),n}function oo(e,t,n){for(var o=-1,r=e.length;++o0&&n(s)?t>1?io(s,t-1,n,o,r):mt(r,s):o||(r[r.length]=s)}return r}var ao=wr(),so=wr(!0);function co(e,t){return e&&ao(e,t,ys)}function lo(e,t){return e&&so(e,t,ys)}function uo(e,t){return ut(t,(function(t){return Ba(e[t])}))}function ho(e,t){for(var n=0,o=(t=cr(t,e)).length;null!=e&&nt}function fo(e,t){return null!=e&&Ce.call(e,t)}function _o(e,t){return null!=e&&t in ge(e)}function bo(e,t,n){for(var r=n?ht:dt,i=e[0].length,a=e.length,s=a,c=o(a),l=1/0,u=[];s--;){var d=e[s];s&&t&&(d=pt(d,Dt(t))),l=sn(d.length,l),c[s]=!n&&(t||i>=120&&d.length>=120)?new Pn(s&&d):void 0}d=e[0];var h=-1,p=c[0];e:for(;++h=s)return c;var l=n[o];return c*("desc"==l?-1:1)}}return e.index-t.index}(e,t,n)}))}function Fo(e,t,n){for(var o=-1,r=t.length,i={};++o-1;)s!==e&&$e.call(s,c,1),$e.call(e,c,1);return e}function Po(e,t){for(var n=e?t.length:0,o=n-1;n--;){var r=t[n];if(n==o||r!==i){var i=r;si(r)?$e.call(e,r,1):er(e,r)}}return e}function Lo(e,t){return e+Zt(un()*(t-e+1))}function Uo(e,t){var n="";if(!e||t<1||t>9007199254740991)return n;do{t%2&&(n+=e),(t=Zt(t/2))&&(e+=e)}while(t);return n}function jo(e,t){return Ei(gi(e,t,Ks),e+"")}function Bo(e){return jn(Rs(e))}function qo(e,t){var n=Rs(e);return Ci(n,$n(t,0,n.length))}function Go(e,t,n,o){if(!Va(e))return e;for(var r=-1,i=(t=cr(t,e)).length,a=i-1,s=e;null!=s&&++ri?0:i+t),(n=n>i?i:n)<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=o(i);++r>>1,a=e[i];null!==a&&!Xa(a)&&(n?a<=t:a=200){var l=t?null:Ur(e);if(l)return Vt(l);a=!1,r=At,c=new Pn}else c=t?[]:s;e:for(;++o=o?e:Ko(e,t,n)}var dr=$t||function(e){return We.clearTimeout(e)};function hr(e,t){if(t)return e.slice();var n=e.length,o=Ge?Ge(n):new e.constructor(n);return e.copy(o),o}function pr(e){var t=new e.constructor(e.byteLength);return new Pe(t).set(new Pe(e)),t}function mr(e,t){var n=t?pr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function gr(e,t){if(e!==t){var n=void 0!==e,o=null===e,r=e==e,i=Xa(e),a=void 0!==t,s=null===t,c=t==t,l=Xa(t);if(!s&&!l&&!i&&e>t||i&&a&&c&&!s&&!l||o&&a&&c||!n&&c||!r)return 1;if(!o&&!i&&!l&&e1?n[r-1]:void 0,a=r>2?n[2]:void 0;for(i=e.length>3&&"function"==typeof i?(r--,i):void 0,a&&ci(n[0],n[1],a)&&(i=r<3?void 0:i,r=1),t=ge(t);++o-1?r[i?t[a]:a]:void 0}}function Or(e){return zr((function(t){var n=t.length,o=n,r=In.prototype.thru;for(e&&t.reverse();o--;){var a=t[o];if("function"!=typeof a)throw new be(i);if(r&&!s&&"wrapper"==$r(a))var s=new In([],!0)}for(o=s?o:n;++o1&&v.reverse(),d&&ls))return!1;var l=i.get(e),u=i.get(t);if(l&&u)return l==t&&u==e;var d=-1,h=!0,p=2&n?new Pn:void 0;for(i.set(e,t),i.set(t,e);++d-1&&e%1==0&&e1?"& ":"")+t[o],t=t.join(n>2?", ":" "),e.replace(X,"{\n/* [wrapped with "+t+"] */\n")}(o,function(e,t){return st(s,(function(n){var o="_."+n[0];t&n[1]&&!dt(e,o)&&e.push(o)})),e.sort()}(function(e){var t=e.match(J);return t?t[1].split(Z):[]}(o),n)))}function wi(e){var t=0,n=0;return function(){var o=cn(),r=16-(o-n);if(n=o,r>0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Ci(e,t){var n=-1,o=e.length,r=o-1;for(t=void 0===t?o:t;++n1?e[t-1]:void 0;return n="function"==typeof n?(e.pop(),n):void 0,Yi(e,n)}));function ta(e){var t=On(e);return t.__chain__=!0,t}function na(e,t){return t(e)}var oa=zr((function(e){var t=e.length,n=t?e[0]:0,o=this.__wrapped__,r=function(t){return Yn(t,e)};return!(t>1||this.__actions__.length)&&o instanceof An&&si(n)?((o=o.slice(n,+n+(t?1:0))).__actions__.push({func:na,args:[r],thisArg:void 0}),new In(o,this.__chain__).thru((function(e){return t&&!e.length&&e.push(void 0),e}))):this.thru(r)}));var ra=yr((function(e,t,n){Ce.call(e,n)?++e[n]:Wn(e,n,1)}));var ia=kr(Ai),aa=kr(Ni);function sa(e,t){return(Na(e)?st:eo)(e,Xr(t,3))}function ca(e,t){return(Na(e)?ct:to)(e,Xr(t,3))}var la=yr((function(e,t,n){Ce.call(e,n)?e[n].push(t):Wn(e,n,[t])}));var ua=jo((function(e,t,n){var r=-1,i="function"==typeof t,a=Ma(e)?o(e.length):[];return eo(e,(function(e){a[++r]=i?it(t,e,n):vo(e,t,n)})),a})),da=yr((function(e,t,n){Wn(e,n,t)}));function ha(e,t){return(Na(e)?pt:Oo)(e,Xr(t,3))}var pa=yr((function(e,t,n){e[n?0:1].push(t)}),(function(){return[[],[]]}));var ma=jo((function(e,t){if(null==e)return[];var n=t.length;return n>1&&ci(e,t[0],t[1])?t=[]:n>2&&ci(t[0],t[1],t[2])&&(t=[t[0]]),No(e,io(t,1),[])})),ga=Qt||function(){return We.Date.now()};function fa(e,t,n){return t=n?void 0:t,Br(e,128,void 0,void 0,void 0,void 0,t=e&&null==t?e.length:t)}function _a(e,t){var n;if("function"!=typeof t)throw new be(i);return e=os(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=void 0),n}}var ba=jo((function(e,t,n){var o=1;if(n.length){var r=Gt(n,Qr(ba));o|=32}return Br(e,o,t,n,r)})),va=jo((function(e,t,n){var o=3;if(n.length){var r=Gt(n,Qr(va));o|=32}return Br(t,o,e,n,r)}));function ya(e,t,n){var o,r,a,s,c,l,u=0,d=!1,h=!1,p=!0;if("function"!=typeof e)throw new be(i);function m(t){var n=o,i=r;return o=r=void 0,u=t,s=e.apply(i,n)}function g(e){return u=e,c=yi(_,t),d?m(e):s}function f(e){var n=e-l;return void 0===l||n>=t||n<0||h&&e-u>=a}function _(){var e=ga();if(f(e))return b(e);c=yi(_,function(e){var n=t-(e-l);return h?sn(n,a-(e-u)):n}(e))}function b(e){return c=void 0,p&&o?m(e):(o=r=void 0,s)}function v(){var e=ga(),n=f(e);if(o=arguments,r=this,l=e,n){if(void 0===c)return g(l);if(h)return dr(c),c=yi(_,t),m(l)}return void 0===c&&(c=yi(_,t)),s}return t=is(t)||0,Va(n)&&(d=!!n.leading,a=(h="maxWait"in n)?an(is(n.maxWait)||0,t):a,p="trailing"in n?!!n.trailing:p),v.cancel=function(){void 0!==c&&dr(c),u=0,o=l=r=c=void 0},v.flush=function(){return void 0===c?s:b(ga())},v}var Ea=jo((function(e,t){return Jn(e,1,t)})),Sa=jo((function(e,t,n){return Jn(e,is(t)||0,n)}));function wa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new be(i);var n=function(){var o=arguments,r=t?t.apply(this,o):o[0],i=n.cache;if(i.has(r))return i.get(r);var a=e.apply(this,o);return n.cache=i.set(r,a)||i,a};return n.cache=new(wa.Cache||Mn),n}function Ca(e){if("function"!=typeof e)throw new be(i);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}wa.Cache=Mn;var Ta=lr((function(e,t){var n=(t=1==t.length&&Na(t[0])?pt(t[0],Dt(Xr())):pt(io(t,1),Dt(Xr()))).length;return jo((function(o){for(var r=-1,i=sn(o.length,n);++r=t})),Aa=yo(function(){return arguments}())?yo:function(e){return Ha(e)&&Ce.call(e,"callee")&&!Ye.call(e,"callee")},Na=o.isArray,Fa=Ze?Dt(Ze):function(e){return Ha(e)&&mo(e)==w};function Ma(e){return null!=e&&Ga(e.length)&&!Ba(e)}function Pa(e){return Ha(e)&&Ma(e)}var La=tn||ic,Ua=et?Dt(et):function(e){return Ha(e)&&mo(e)==d};function ja(e){if(!Ha(e))return!1;var t=mo(e);return t==h||"[object DOMException]"==t||"string"==typeof e.message&&"string"==typeof e.name&&!Wa(e)}function Ba(e){if(!Va(e))return!1;var t=mo(e);return t==p||t==m||"[object AsyncFunction]"==t||"[object Proxy]"==t}function qa(e){return"number"==typeof e&&e==os(e)}function Ga(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}function Va(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function Ha(e){return null!=e&&"object"==typeof e}var za=tt?Dt(tt):function(e){return Ha(e)&&oi(e)==g};function Ka(e){return"number"==typeof e||Ha(e)&&mo(e)==f}function Wa(e){if(!Ha(e)||mo(e)!=_)return!1;var t=ze(e);if(null===t)return!0;var n=Ce.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&we.call(n)==Oe}var Ya=nt?Dt(nt):function(e){return Ha(e)&&mo(e)==b};var $a=ot?Dt(ot):function(e){return Ha(e)&&oi(e)==v};function Qa(e){return"string"==typeof e||!Na(e)&&Ha(e)&&mo(e)==y}function Xa(e){return"symbol"==typeof e||Ha(e)&&mo(e)==E}var Ja=rt?Dt(rt):function(e){return Ha(e)&&Ga(e.length)&&!!Be[mo(e)]};var Za=Mr(ko),es=Mr((function(e,t){return e<=t}));function ts(e){if(!e)return[];if(Ma(e))return Qa(e)?Kt(e):br(e);if(Je&&e[Je])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Je]());var t=oi(e);return(t==g?Bt:t==v?Vt:Rs)(e)}function ns(e){return e?(e=is(e))===1/0||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}function os(e){var t=ns(e),n=t%1;return t==t?n?t-n:t:0}function rs(e){return e?$n(os(e),0,4294967295):0}function is(e){if("number"==typeof e)return e;if(Xa(e))return NaN;if(Va(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Va(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Y,"");var n=ie.test(e);return n||se.test(e)?He(e.slice(2),n?2:8):re.test(e)?NaN:+e}function as(e){return vr(e,Es(e))}function ss(e){return null==e?"":Jo(e)}var cs=Er((function(e,t){if(hi(t)||Ma(t))vr(t,ys(t),e);else for(var n in t)Ce.call(t,n)&&Vn(e,n,t[n])})),ls=Er((function(e,t){vr(t,Es(t),e)})),us=Er((function(e,t,n,o){vr(t,Es(t),e,o)})),ds=Er((function(e,t,n,o){vr(t,ys(t),e,o)})),hs=zr(Yn);var ps=jo((function(e,t){e=ge(e);var n=-1,o=t.length,r=o>2?t[2]:void 0;for(r&&ci(t[0],t[1],r)&&(o=1);++n1),t})),vr(e,Wr(e),n),o&&(n=Qn(n,7,Vr));for(var r=t.length;r--;)er(n,t[r]);return n}));var Ts=zr((function(e,t){return null==e?{}:function(e,t){return Fo(e,t,(function(t,n){return fs(e,n)}))}(e,t)}));function xs(e,t){if(null==e)return{};var n=pt(Wr(e),(function(e){return[e]}));return t=Xr(t),Fo(e,n,(function(e,n){return t(e,n[0])}))}var ks=jr(ys),Os=jr(Es);function Rs(e){return null==e?[]:It(e,ys(e))}var Ds=Tr((function(e,t,n){return t=t.toLowerCase(),e+(n?Is(t):t)}));function Is(e){return js(ss(e).toLowerCase())}function As(e){return(e=ss(e))&&e.replace(le,Pt).replace(Ne,"")}var Ns=Tr((function(e,t,n){return e+(n?"-":"")+t.toLowerCase()})),Fs=Tr((function(e,t,n){return e+(n?" ":"")+t.toLowerCase()})),Ms=Cr("toLowerCase");var Ps=Tr((function(e,t,n){return e+(n?"_":"")+t.toLowerCase()}));var Ls=Tr((function(e,t,n){return e+(n?" ":"")+js(t)}));var Us=Tr((function(e,t,n){return e+(n?" ":"")+t.toUpperCase()})),js=Cr("toUpperCase");function Bs(e,t,n){return e=ss(e),void 0===(t=n?void 0:t)?function(e){return Le.test(e)}(e)?function(e){return e.match(Me)||[]}(e):function(e){return e.match(ee)||[]}(e):e.match(t)||[]}var qs=jo((function(e,t){try{return it(e,void 0,t)}catch(e){return ja(e)?e:new he(e)}})),Gs=zr((function(e,t){return st(t,(function(t){t=xi(t),Wn(e,t,ba(e[t],e))})),e}));function Vs(e){return function(){return e}}var Hs=Or(),zs=Or(!0);function Ks(e){return e}function Ws(e){return Co("function"==typeof e?e:Qn(e,1))}var Ys=jo((function(e,t){return function(n){return vo(n,e,t)}})),$s=jo((function(e,t){return function(n){return vo(e,n,t)}}));function Qs(e,t,n){var o=ys(t),r=uo(t,o);null!=n||Va(t)&&(r.length||!o.length)||(n=t,t=e,e=this,r=uo(t,ys(t)));var i=!(Va(n)&&"chain"in n&&!n.chain),a=Ba(e);return st(r,(function(n){var o=t[n];e[n]=o,a&&(e.prototype[n]=function(){var t=this.__chain__;if(i||t){var n=e(this.__wrapped__),r=n.__actions__=br(this.__actions__);return r.push({func:o,args:arguments,thisArg:e}),n.__chain__=t,n}return o.apply(e,mt([this.value()],arguments))})})),e}function Xs(){}var Js=Ar(pt),Zs=Ar(lt),ec=Ar(_t);function tc(e){return li(e)?Tt(xi(e)):function(e){return function(t){return ho(t,e)}}(e)}var nc=Fr(),oc=Fr(!0);function rc(){return[]}function ic(){return!1}var ac=Ir((function(e,t){return e+t}),0),sc=Lr("ceil"),cc=Ir((function(e,t){return e/t}),1),lc=Lr("floor");var uc,dc=Ir((function(e,t){return e*t}),1),hc=Lr("round"),pc=Ir((function(e,t){return e-t}),0);return On.after=function(e,t){if("function"!=typeof t)throw new be(i);return e=os(e),function(){if(--e<1)return t.apply(this,arguments)}},On.ary=fa,On.assign=cs,On.assignIn=ls,On.assignInWith=us,On.assignWith=ds,On.at=hs,On.before=_a,On.bind=ba,On.bindAll=Gs,On.bindKey=va,On.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return Na(e)?e:[e]},On.chain=ta,On.chunk=function(e,t,n){t=(n?ci(e,t,n):void 0===t)?1:an(os(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var i=0,a=0,s=o(Jt(r/t));ir?0:r+n),(o=void 0===o||o>r?r:os(o))<0&&(o+=r),o=n>o?0:rs(o);n>>0)?(e=ss(e))&&("string"==typeof t||null!=t&&!Ya(t))&&!(t=Jo(t))&&jt(e)?ur(Kt(e),0,n):e.split(t,n):[]},On.spread=function(e,t){if("function"!=typeof e)throw new be(i);return t=null==t?0:an(os(t),0),jo((function(n){var o=n[t],r=ur(n,0,t);return o&&mt(r,o),it(e,this,r)}))},On.tail=function(e){var t=null==e?0:e.length;return t?Ko(e,1,t):[]},On.take=function(e,t,n){return e&&e.length?Ko(e,0,(t=n||void 0===t?1:os(t))<0?0:t):[]},On.takeRight=function(e,t,n){var o=null==e?0:e.length;return o?Ko(e,(t=o-(t=n||void 0===t?1:os(t)))<0?0:t,o):[]},On.takeRightWhile=function(e,t){return e&&e.length?nr(e,Xr(t,3),!1,!0):[]},On.takeWhile=function(e,t){return e&&e.length?nr(e,Xr(t,3)):[]},On.tap=function(e,t){return t(e),e},On.throttle=function(e,t,n){var o=!0,r=!0;if("function"!=typeof e)throw new be(i);return Va(n)&&(o="leading"in n?!!n.leading:o,r="trailing"in n?!!n.trailing:r),ya(e,t,{leading:o,maxWait:t,trailing:r})},On.thru=na,On.toArray=ts,On.toPairs=ks,On.toPairsIn=Os,On.toPath=function(e){return Na(e)?pt(e,xi):Xa(e)?[e]:br(Ti(ss(e)))},On.toPlainObject=as,On.transform=function(e,t,n){var o=Na(e),r=o||La(e)||Ja(e);if(t=Xr(t,4),null==n){var i=e&&e.constructor;n=r?o?new i:[]:Va(e)&&Ba(i)?Rn(ze(e)):{}}return(r?st:co)(e,(function(e,o,r){return t(n,e,o,r)})),n},On.unary=function(e){return fa(e,1)},On.union=Hi,On.unionBy=zi,On.unionWith=Ki,On.uniq=function(e){return e&&e.length?Zo(e):[]},On.uniqBy=function(e,t){return e&&e.length?Zo(e,Xr(t,2)):[]},On.uniqWith=function(e,t){return t="function"==typeof t?t:void 0,e&&e.length?Zo(e,void 0,t):[]},On.unset=function(e,t){return null==e||er(e,t)},On.unzip=Wi,On.unzipWith=Yi,On.update=function(e,t,n){return null==e?e:tr(e,t,sr(n))},On.updateWith=function(e,t,n,o){return o="function"==typeof o?o:void 0,null==e?e:tr(e,t,sr(n),o)},On.values=Rs,On.valuesIn=function(e){return null==e?[]:It(e,Es(e))},On.without=$i,On.words=Bs,On.wrap=function(e,t){return xa(sr(t),e)},On.xor=Qi,On.xorBy=Xi,On.xorWith=Ji,On.zip=Zi,On.zipObject=function(e,t){return ir(e||[],t||[],Vn)},On.zipObjectDeep=function(e,t){return ir(e||[],t||[],Go)},On.zipWith=ea,On.entries=ks,On.entriesIn=Os,On.extend=ls,On.extendWith=us,Qs(On,On),On.add=ac,On.attempt=qs,On.camelCase=Ds,On.capitalize=Is,On.ceil=sc,On.clamp=function(e,t,n){return void 0===n&&(n=t,t=void 0),void 0!==n&&(n=(n=is(n))==n?n:0),void 0!==t&&(t=(t=is(t))==t?t:0),$n(is(e),t,n)},On.clone=function(e){return Qn(e,4)},On.cloneDeep=function(e){return Qn(e,5)},On.cloneDeepWith=function(e,t){return Qn(e,5,t="function"==typeof t?t:void 0)},On.cloneWith=function(e,t){return Qn(e,4,t="function"==typeof t?t:void 0)},On.conformsTo=function(e,t){return null==t||Xn(e,t,ys(t))},On.deburr=As,On.defaultTo=function(e,t){return null==e||e!=e?t:e},On.divide=cc,On.endsWith=function(e,t,n){e=ss(e),t=Jo(t);var o=e.length,r=n=void 0===n?o:$n(os(n),0,o);return(n-=t.length)>=0&&e.slice(n,r)==t},On.eq=Ra,On.escape=function(e){return(e=ss(e))&&j.test(e)?e.replace(L,Lt):e},On.escapeRegExp=function(e){return(e=ss(e))&&W.test(e)?e.replace(K,"\\$&"):e},On.every=function(e,t,n){var o=Na(e)?lt:no;return n&&ci(e,t,n)&&(t=void 0),o(e,Xr(t,3))},On.find=ia,On.findIndex=Ai,On.findKey=function(e,t){return vt(e,Xr(t,3),co)},On.findLast=aa,On.findLastIndex=Ni,On.findLastKey=function(e,t){return vt(e,Xr(t,3),lo)},On.floor=lc,On.forEach=sa,On.forEachRight=ca,On.forIn=function(e,t){return null==e?e:ao(e,Xr(t,3),Es)},On.forInRight=function(e,t){return null==e?e:so(e,Xr(t,3),Es)},On.forOwn=function(e,t){return e&&co(e,Xr(t,3))},On.forOwnRight=function(e,t){return e&&lo(e,Xr(t,3))},On.get=gs,On.gt=Da,On.gte=Ia,On.has=function(e,t){return null!=e&&ri(e,t,fo)},On.hasIn=fs,On.head=Mi,On.identity=Ks,On.includes=function(e,t,n,o){e=Ma(e)?e:Rs(e),n=n&&!o?os(n):0;var r=e.length;return n<0&&(n=an(r+n,0)),Qa(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&Et(e,t,n)>-1},On.indexOf=function(e,t,n){var o=null==e?0:e.length;if(!o)return-1;var r=null==n?0:os(n);return r<0&&(r=an(o+r,0)),Et(e,t,r)},On.inRange=function(e,t,n){return t=ns(t),void 0===n?(n=t,t=0):n=ns(n),function(e,t,n){return e>=sn(t,n)&&e=-9007199254740991&&e<=9007199254740991},On.isSet=$a,On.isString=Qa,On.isSymbol=Xa,On.isTypedArray=Ja,On.isUndefined=function(e){return void 0===e},On.isWeakMap=function(e){return Ha(e)&&oi(e)==S},On.isWeakSet=function(e){return Ha(e)&&"[object WeakSet]"==mo(e)},On.join=function(e,t){return null==e?"":on.call(e,t)},On.kebabCase=Ns,On.last=ji,On.lastIndexOf=function(e,t,n){var o=null==e?0:e.length;if(!o)return-1;var r=o;return void 0!==n&&(r=(r=os(n))<0?an(o+r,0):sn(r,o-1)),t==t?function(e,t,n){for(var o=n+1;o--;)if(e[o]===t)return o;return o}(e,t,r):yt(e,wt,r,!0)},On.lowerCase=Fs,On.lowerFirst=Ms,On.lt=Za,On.lte=es,On.max=function(e){return e&&e.length?oo(e,Ks,go):void 0},On.maxBy=function(e,t){return e&&e.length?oo(e,Xr(t,2),go):void 0},On.mean=function(e){return Ct(e,Ks)},On.meanBy=function(e,t){return Ct(e,Xr(t,2))},On.min=function(e){return e&&e.length?oo(e,Ks,ko):void 0},On.minBy=function(e,t){return e&&e.length?oo(e,Xr(t,2),ko):void 0},On.stubArray=rc,On.stubFalse=ic,On.stubObject=function(){return{}},On.stubString=function(){return""},On.stubTrue=function(){return!0},On.multiply=dc,On.nth=function(e,t){return e&&e.length?Ao(e,os(t)):void 0},On.noConflict=function(){return We._===this&&(We._=Re),this},On.noop=Xs,On.now=ga,On.pad=function(e,t,n){e=ss(e);var o=(t=os(t))?zt(e):0;if(!t||o>=t)return e;var r=(t-o)/2;return Nr(Zt(r),n)+e+Nr(Jt(r),n)},On.padEnd=function(e,t,n){e=ss(e);var o=(t=os(t))?zt(e):0;return t&&ot){var o=e;e=t,t=o}if(n||e%1||t%1){var r=un();return sn(e+r*(t-e+Ve("1e-"+((r+"").length-1))),t)}return Lo(e,t)},On.reduce=function(e,t,n){var o=Na(e)?gt:kt,r=arguments.length<3;return o(e,Xr(t,4),n,r,eo)},On.reduceRight=function(e,t,n){var o=Na(e)?ft:kt,r=arguments.length<3;return o(e,Xr(t,4),n,r,to)},On.repeat=function(e,t,n){return t=(n?ci(e,t,n):void 0===t)?1:os(t),Uo(ss(e),t)},On.replace=function(){var e=arguments,t=ss(e[0]);return e.length<3?t:t.replace(e[1],e[2])},On.result=function(e,t,n){var o=-1,r=(t=cr(t,e)).length;for(r||(r=1,e=void 0);++o9007199254740991)return[];var n=4294967295,o=sn(e,4294967295);e-=4294967295;for(var r=Rt(o,t=Xr(t));++n=i)return e;var s=n-zt(o);if(s<1)return o;var c=a?ur(a,0,s).join(""):e.slice(0,s);if(void 0===r)return c+o;if(a&&(s+=c.length-s),Ya(r)){if(e.slice(s).search(r)){var l,u=c;for(r.global||(r=fe(r.source,ss(oe.exec(r))+"g")),r.lastIndex=0;l=r.exec(u);)var d=l.index;c=c.slice(0,void 0===d?s:d)}}else if(e.indexOf(Jo(r),s)!=s){var h=c.lastIndexOf(r);h>-1&&(c=c.slice(0,h))}return c+o},On.unescape=function(e){return(e=ss(e))&&U.test(e)?e.replace(P,Wt):e},On.uniqueId=function(e){var t=++Te;return ss(e)+t},On.upperCase=Us,On.upperFirst=js,On.each=sa,On.eachRight=ca,On.first=Mi,Qs(On,(uc={},co(On,(function(e,t){Ce.call(On.prototype,t)||(uc[t]=e)})),uc),{chain:!1}),On.VERSION="4.17.20",st(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(e){On[e].placeholder=On})),st(["drop","take"],(function(e,t){An.prototype[e]=function(n){n=void 0===n?1:an(os(n),0);var o=this.__filtered__&&!t?new An(this):this.clone();return o.__filtered__?o.__takeCount__=sn(n,o.__takeCount__):o.__views__.push({size:sn(n,4294967295),type:e+(o.__dir__<0?"Right":"")}),o},An.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}})),st(["filter","map","takeWhile"],(function(e,t){var n=t+1,o=1==n||3==n;An.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Xr(e,3),type:n}),t.__filtered__=t.__filtered__||o,t}})),st(["head","last"],(function(e,t){var n="take"+(t?"Right":"");An.prototype[e]=function(){return this[n](1).value()[0]}})),st(["initial","tail"],(function(e,t){var n="drop"+(t?"":"Right");An.prototype[e]=function(){return this.__filtered__?new An(this):this[n](1)}})),An.prototype.compact=function(){return this.filter(Ks)},An.prototype.find=function(e){return this.filter(e).head()},An.prototype.findLast=function(e){return this.reverse().find(e)},An.prototype.invokeMap=jo((function(e,t){return"function"==typeof e?new An(this):this.map((function(n){return vo(n,e,t)}))})),An.prototype.reject=function(e){return this.filter(Ca(Xr(e)))},An.prototype.slice=function(e,t){e=os(e);var n=this;return n.__filtered__&&(e>0||t<0)?new An(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),void 0!==t&&(n=(t=os(t))<0?n.dropRight(-t):n.take(t-e)),n)},An.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},An.prototype.toArray=function(){return this.take(4294967295)},co(An.prototype,(function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),o=/^(?:head|last)$/.test(t),r=On[o?"take"+("last"==t?"Right":""):t],i=o||/^find/.test(t);r&&(On.prototype[t]=function(){var t=this.__wrapped__,a=o?[1]:arguments,s=t instanceof An,c=a[0],l=s||Na(t),u=function(e){var t=r.apply(On,mt([e],a));return o&&d?t[0]:t};l&&n&&"function"==typeof c&&1!=c.length&&(s=l=!1);var d=this.__chain__,h=!!this.__actions__.length,p=i&&!d,m=s&&!h;if(!i&&l){t=m?t:new An(this);var g=e.apply(t,a);return g.__actions__.push({func:na,args:[u],thisArg:void 0}),new In(g,d)}return p&&m?e.apply(this,a):(g=this.thru(u),p?o?g.value()[0]:g.value():g)})})),st(["pop","push","shift","sort","splice","unshift"],(function(e){var t=ve[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",o=/^(?:pop|shift)$/.test(e);On.prototype[e]=function(){var e=arguments;if(o&&!this.__chain__){var r=this.value();return t.apply(Na(r)?r:[],e)}return this[n]((function(n){return t.apply(Na(n)?n:[],e)}))}})),co(An.prototype,(function(e,t){var n=On[t];if(n){var o=n.name+"";Ce.call(vn,o)||(vn[o]=[]),vn[o].push({name:t,func:n})}})),vn[Rr(void 0,2).name]=[{name:"wrapper",func:void 0}],An.prototype.clone=function(){var e=new An(this.__wrapped__);return e.__actions__=br(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=br(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=br(this.__views__),e},An.prototype.reverse=function(){if(this.__filtered__){var e=new An(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},An.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=Na(e),o=t<0,r=n?e.length:0,i=function(e,t,n){var o=-1,r=n.length;for(;++o=this.__values__.length;return{done:e,value:e?void 0:this.__values__[this.__index__++]}},On.prototype.plant=function(e){for(var t,n=this;n instanceof Dn;){var o=Oi(n);o.__index__=0,o.__values__=void 0,t?r.__wrapped__=o:t=o;var r=o;n=n.__wrapped__}return r.__wrapped__=e,t},On.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof An){var t=e;return this.__actions__.length&&(t=new An(this)),(t=t.reverse()).__actions__.push({func:na,args:[Vi],thisArg:void 0}),new In(t,this.__chain__)}return this.thru(Vi)},On.prototype.toJSON=On.prototype.valueOf=On.prototype.value=function(){return or(this.__wrapped__,this.__actions__)},On.prototype.first=On.prototype.head,Je&&(On.prototype[Je]=function(){return this}),On}();We._=Yt,void 0===(r=function(){return Yt}.call(t,n,t,o))||(o.exports=r)}).call(this)}).call(this,n(5),n(351)(e))},function(e,t,n){"use strict";n.d(t,"a",(function(){return m})),n.d(t,"d",(function(){return g})),n.d(t,"g",(function(){return f})),n.d(t,"f",(function(){return _})),n.d(t,"e",(function(){return b})),n.d(t,"c",(function(){return v})),n.d(t,"j",(function(){return y})),n.d(t,"k",(function(){return E})),n.d(t,"b",(function(){return S})),n.d(t,"i",(function(){return C})),n.d(t,"h",(function(){return T}));var o=n(87),r=n(889),i=n.n(r),a=n(1),s=n(528),c=n(389),l=n(83),u=n.n(l);class d extends c.b{constructor(e){if(super(),u()(this,"_elementUrl",void 0),this._elementUrl=e,!this._elementUrl.startsWith("http:")&&!this._elementUrl.startsWith("https:"))throw new Error("Element prefix URL does not appear to be an HTTP(S) URL")}forEvent(e,t,n){return`${this._elementUrl}/#/room/${e}/${t}${this.encodeServerCandidates(n)}`}forRoom(e,t){return`${this._elementUrl}/#/room/${e}${this.encodeServerCandidates(t)}`}forUser(e){return`${this._elementUrl}/#/user/${e}`}forGroup(e){return`${this._elementUrl}/#/group/${e}`}forEntity(e){if("!"===e[0]||"#"===e[0])return this.forRoom(e);if("@"===e[0])return this.forUser(e);if("+"===e[0])return this.forGroup(e);throw new Error("Unrecognized entity")}isPermalinkHost(e){const t=new URL(this._elementUrl);return e===(t.host||t.hostname)}encodeServerCandidates(e){return e&&0!==e.length?"?via="+e.map(e=>encodeURIComponent(e)).join("&via="):""}parsePermalink(e){if(!e||!e.startsWith(this._elementUrl))throw new Error("Does not appear to be a permalink");const t=e.substring((this._elementUrl+"/#/").length);return d.parseAppRoute(t)}static parseAppRoute(e){const t=e.split("/");if(t.length<2)throw new Error("URL is missing parts");const[n]=t.splice(-1,1),[o,r=""]=n.split("?");t.push(o);const i=t[0],a=t[1];if("user"===i)return c.a.forUser(a);if("group"===i)return c.a.forGroup(a);if("room"===i){const e=t.length>2?t.slice(2).join("/"):"",n=r.split(/&?via=/).filter(e=>!!e);return c.a.forEvent(a,e,n)}throw new Error("Unknown entity type in permalink")}}var h=n(390),p=n(93);class m{constructor(e,t=null){if(this._room=e,this._roomId=e?e.roomId:t,this._highestPlUserId=null,this._populationMap=null,this._bannedHostsRegexps=null,this._allowedHostsRegexps=null,this._serverCandidates=null,this._started=!1,!this._roomId)throw new Error("Failed to resolve a roomId for the permalink creator to use");this.onMembership=this.onMembership.bind(this),this.onRoomState=this.onRoomState.bind(this)}load(){this._room&&this._room.currentState?(this._updateAllowedServers(),this._updateHighestPlUser(),this._updatePopulationMap(),this._updateServerCandidates()):console.warn("Tried to load a permalink creator with no room state")}start(){this.load(),this._room.on("RoomMember.membership",this.onMembership),this._room.on("RoomState.events",this.onRoomState),this._started=!0}stop(){this._room.removeListener("RoomMember.membership",this.onMembership),this._room.removeListener("RoomState.events",this.onRoomState),this._started=!1}isStarted(){return this._started}forEvent(e){return w().forEvent(this._roomId,e,this._serverCandidates)}forShareableRoom(){if(this._room){const e=this._room.getCanonicalAlias();if(e)return w().forRoom(e,this._serverCandidates)}return w().forRoom(this._roomId,this._serverCandidates)}forRoom(){return w().forRoom(this._roomId,this._serverCandidates)}onRoomState(e){switch(e.getType()){case"m.room.server_acl":return this._updateAllowedServers(),this._updateHighestPlUser(),this._updatePopulationMap(),void this._updateServerCandidates();case"m.room.power_levels":return this._updateHighestPlUser(),void this._updateServerCandidates()}}onMembership(e,t,n){const o=t.userId,r=t.membership,i=x(o),a="join"!==n&&"join"===r;"join"===n&&"join"!==r?this._populationMap[i]--:a&&this._populationMap[i]++,this._updateHighestPlUser(),this._updateServerCandidates()}_updateHighestPlUser(){const e=this._room.currentState.getStateEvents("m.room.power_levels","");if(e){const t=e.getContent();if(t){const e=t.users;if(e){const t=Object.entries(e).filter(([e])=>{const t=this._room.getMember(e);if(!t||"join"!==t.membership)return!1;const n=x(e);return!R(n)&&!O(n,this._bannedHostsRegexps)&&O(n,this._allowedHostsRegexps)}).reduce((e,t)=>t[1]>e[1]?t:e,[null,0]),[n,o]=t;if(null!==n&&o>=50)return void(this._highestPlUserId=n)}}}this._highestPlUserId=null}_updateAllowedServers(){const e=[];let t=[new RegExp(".*")];if(this._room.currentState){const n=this._room.currentState.getStateEvents("m.room.server_acl","");if(n&&n.getContent()){const o=e=>new RegExp("^"+a.n(e,!1)+"$");(n.getContent().deny||[]).forEach(t=>e.push(o(t)));const r=n.getContent().allow||[];t=[],r.forEach(e=>t.push(o(e)))}}this._bannedHostsRegexps=e,this._allowedHostsRegexps=t}_updatePopulationMap(){const e={};for(const t of this._room.getJoinedMembers()){const n=x(t.userId);e[n]||(e[n]=0),e[n]++}this._populationMap=e}_updateServerCandidates(){let e=[];this._highestPlUserId&&e.push(x(this._highestPlUserId));const t=Object.keys(this._populationMap).sort((e,t)=>this._populationMap[t]-this._populationMap[e]).filter(t=>!e.includes(t)&&!R(t)&&!O(t,this._bannedHostsRegexps)&&O(t,this._allowedHostsRegexps)).slice(0,3-e.length);e=e.concat(t),this._serverCandidates=e}}function g(e){return w().forEntity(e)}function f(e){return w().forUser(e)}function _(e){if(!e)throw new Error("can't permalink a falsey roomId");if("!"!==e[0])return w().forRoom(e,[]);const t=o.a.get().getRoom(e);if(!t)return w().forRoom(e,[]);const n=new m(t);return n.load(),n.forRoom()}function b(e){return w().forGroup(e)}function v(e){return!!(new s.b).isPermalinkHost(e)||w().isPermalinkHost(e)}function y(e){return e?"#"===e[0]||"!"===e[0]?_(e):"@"===e[0]?f(e):"+"===e[0]?b(e):E(e):null}function E(e){if(!e.startsWith("http:")&&!e.startsWith("https:"))return e;const t=e.match(h.a.ELEMENT_URL_PATTERN);if(t)return t[1];try{const t=C(e);if(t)if(t.roomIdOrAlias){const n=t.eventId?"/"+t.eventId:"";e=`#/room/${t.roomIdOrAlias}${n}`,t.viaServers.length>0&&(e+=(new s.b).encodeServerCandidates(t.viaServers))}else t.groupId?e="#/group/"+t.groupId:t.userId&&(e="#/user/"+t.userId)}catch(e){}return e}function S(e){try{let t=C(e);if(!t){const n=e.match(h.a.ELEMENT_URL_PATTERN);if(n){const e=new d("http://localhost"),o=n[1].split("#").slice(1).join("#");t=e.parsePermalink("http://localhost/#"+o)}}if(!t)return null;if(t.userId)return t.userId;if(t.groupId)return t.groupId;if(t.roomIdOrAlias)return t.roomIdOrAlias}catch(e){}return null}function w(){const e=p.a.get().permalinkPrefix;return e&&e!==s.a?new d(e):new s.b}function C(e){const t=p.a.get().permalinkPrefix;return e.startsWith(s.a)?(new s.b).parsePermalink(e):t&&e.startsWith(t)?new d(t).parsePermalink(e):null}function T(e){try{const t=e.replace("#/","");return d.parseAppRoute(t)}catch(e){}return null}function x(e){return e.split(":").splice(1).join(":")}function k(e){return e?new URL("https://"+e).hostname:null}function O(e,t){if(!(e=k(e)))return!0;if(t.length>0&&!t[0].test)throw new Error(t[0]);return t.filter(t=>t.test(e)).length>0}function R(e){return!!(e=k(e))&&(e.startsWith("[")&&e.endsWith("]")&&(e=e.substring(1,e.length-1)),i()(e))}},function(e,t){e.exports=function(e){return e&&e.__esModule?e:{default:e}}},function(e,t,n){"use strict";n.d(t,"b",(function(){return c})),n.d(t,"a",(function(){return l}));var o=n(83),r=n.n(o),i=n(6),a=n(469),s=n.n(a);const c="update";class l extends i.EventEmitter{constructor(e,t={}){super(),this.dispatcher=e,r()(this,"storeState",void 0),r()(this,"lock",new s.a),r()(this,"dispatcherRef",void 0),this.dispatcherRef=e.register(this.onDispatch.bind(this)),this.storeState=t}get state(){return this.storeState}stop(){this.dispatcherRef&&this.dispatcher.unregister(this.dispatcherRef)}async updateState(e){await this.lock.acquireAsync();try{this.storeState=Object.freeze(Object.assign({},this.storeState,e)),this.emit(c,this)}finally{await this.lock.release()}}async reset(e=null,t=!1){await this.lock.acquireAsync();try{this.storeState=Object.freeze(e||{}),t||this.emit(c,this)}finally{await this.lock.release()}}}},function(e,t,n){"use strict";var o=n(83),r=n.n(o),i=n(6),a=n.n(i),s=n(296),c=n(144),l=n(87),u=n(88);function d(e){return e.chunk.map(e=>Object(s.c)(e))}function h(e){return e.chunk.map(e=>Object(s.d)(e))}let p=0;const m=[];async function g(e){p>=3&&await new Promise((e,t)=>{m.push(e)}),p++;try{return await e()}catch(e){throw e}finally{p--,function(){const e=m.shift();"function"==typeof e&&e()}()}}class f extends a.a{constructor(){super(),r()(this,"STATE_KEY",{GroupMembers:"GroupMembers",GroupInvitedMembers:"GroupInvitedMembers",Summary:"Summary",GroupRooms:"GroupRooms"}),this._state={},this._state[this.STATE_KEY.Summary]={},this._state[this.STATE_KEY.GroupRooms]={},this._state[this.STATE_KEY.GroupMembers]={},this._state[this.STATE_KEY.GroupInvitedMembers]={},this._ready={},this._ready[this.STATE_KEY.Summary]={},this._ready[this.STATE_KEY.GroupRooms]={},this._ready[this.STATE_KEY.GroupMembers]={},this._ready[this.STATE_KEY.GroupInvitedMembers]={},this._fetchResourcePromise={[this.STATE_KEY.Summary]:{},[this.STATE_KEY.GroupRooms]:{},[this.STATE_KEY.GroupMembers]:{},[this.STATE_KEY.GroupInvitedMembers]:{}},this._resourceFetcher={[this.STATE_KEY.Summary]:e=>g(()=>l.a.get().getGroupSummary(e)),[this.STATE_KEY.GroupRooms]:e=>g(()=>l.a.get().getGroupRooms(e).then(h)),[this.STATE_KEY.GroupMembers]:e=>g(()=>l.a.get().getGroupUsers(e).then(d)),[this.STATE_KEY.GroupInvitedMembers]:e=>g(()=>l.a.get().getGroupInvitedUsers(e).then(d))}}_fetchResource(e,t){if(this._fetchResourcePromise[e][t])return;const n=this._resourceFetcher[e](t);return this._fetchResourcePromise[e][t]=n,n.then(n=>{this._state[e][t]=n,this._ready[e][t]=!0,this._notifyListeners()}).catch(n=>{e===this.STATE_KEY.GroupInvitedMembers&&403===n.httpStatus||(console.error(`Failed to get resource ${e} for ${t}`,n),this.emit("error",n,t,e))}).finally(()=>{delete this._fetchResourcePromise[e][t]}),n}_notifyListeners(){this.emit("update")}registerListener(e,t){return this.on("update",t),this.emit("update"),e&&(this._fetchResource(this.STATE_KEY.Summary,e),this._fetchResource(this.STATE_KEY.GroupRooms,e),this._fetchResource(this.STATE_KEY.GroupMembers,e),this._fetchResource(this.STATE_KEY.GroupInvitedMembers,e)),{unregister:()=>{this.unregisterListener(t)}}}unregisterListener(e){this.removeListener("update",e)}isStateReady(e,t){return this._ready[t][e]}getGroupIdsForRoomId(e){return Object.keys(this._state[this.STATE_KEY.GroupRooms]).filter(t=>(this._state[this.STATE_KEY.GroupRooms][t]||[]).some(t=>t.roomId===e))}getSummary(e){return this._state[this.STATE_KEY.Summary][e]||{}}getGroupRooms(e){return this._state[this.STATE_KEY.GroupRooms][e]||[]}getGroupMembers(e){return this._state[this.STATE_KEY.GroupMembers][e]||[]}getGroupInvitedMembers(e){return this._state[this.STATE_KEY.GroupInvitedMembers][e]||[]}getGroupPublicity(e){return(this._state[this.STATE_KEY.Summary][e]||{}).user?(this._state[this.STATE_KEY.Summary][e]||{}).user.is_publicised:null}isUserPrivileged(e){return(this._state[this.STATE_KEY.Summary][e]||{}).user?(this._state[this.STATE_KEY.Summary][e]||{}).user.is_privileged:null}refreshGroupRooms(e){return this._fetchResource(this.STATE_KEY.GroupRooms,e)}refreshGroupMembers(e){return this._fetchResource(this.STATE_KEY.GroupMembers,e)}addRoomToGroup(e,t,n){return l.a.get().addRoomToGroup(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}updateGroupRoomVisibility(e,t,n){return l.a.get().updateGroupRoomVisibility(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}removeRoomFromGroup(e,t){return l.a.get().removeRoomFromGroup(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e))}inviteUserToGroup(e,t){return l.a.get().inviteUserToGroup(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}acceptGroupInvite(e){return l.a.get().acceptGroupInvite(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}joinGroup(e){return l.a.get().joinGroup(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupInvitedMembers,e))}leaveGroup(e){return u.a.dispatch({action:"deselect_tags",tag:e}),l.a.get().leaveGroup(e).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupRooms,e)).then(this._fetchResource.bind(this,this.STATE_KEY.GroupMembers,e))}addRoomToGroupSummary(e,t,n){return l.a.get().addRoomToGroupSummary(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}addUserToGroupSummary(e,t,n){return l.a.get().addUserToGroupSummary(e,t,n).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}removeRoomFromGroupSummary(e,t){return l.a.get().removeRoomFromGroupSummary(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}removeUserFromGroupSummary(e,t){return l.a.get().removeUserFromGroupSummary(e,t).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}setGroupPublicity(e,t){return l.a.get().setGroupPublicity(e,t).then(()=>{c.a.invalidatePublicisedGroups(l.a.get().credentials.userId)}).then(this._fetchResource.bind(this,this.STATE_KEY.Summary,e))}}let _=null;_||(_=new f),t.a=_},function(e,t,n){"use strict";n.d(t,"a",(function(){return g}));var o=n(94),r=n.n(o),i=n(100),a=n.n(i),s=n(83),c=n.n(s),l=n(82),u=n.n(l),d=n(91),h=n.n(d),p=n(92),m=n(292);class g extends u.a.PureComponent{constructor(e){super(e),c()(this,"onMouseOver",()=>{this.props.forceHide||this.setState({hover:!0})}),c()(this,"onMouseLeave",()=>{this.setState({hover:!1})}),this.state={hover:!1}}componentDidUpdate(e){!e.forceHide&&this.props.forceHide&&this.state.hover&&this.setState({hover:!1})}render(){const e=this.props,{title:t,tooltip:n,children:o,tooltipClassName:i,forceHide:s,yOffset:c}=e,l=a()(e,["title","tooltip","children","tooltipClassName","forceHide","yOffset"]),d=this.state.hover?u.a.createElement(m.a,{className:"mx_AccessibleTooltipButton_container",tooltipClassName:h()("mx_AccessibleTooltipButton_tooltip",i),label:n||t,yOffset:c}):u.a.createElement("div",null);return u.a.createElement(p.a,r()({},l,{onMouseOver:this.onMouseOver,onMouseLeave:this.onMouseLeave,"aria-label":t}),o,d)}}},function(e,t,n){"use strict";var o=n(83),r=n.n(o),i=n(82),a=n.n(i),s=n(84),c=n(105),l=n(93),u=n(90),d=n(86);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t"):e.replace(m,"#/$1"):(console.warn(`Unexpected hash location "${e}"`),"#/")}(t)}const _={"App Platform":{id:1,expl:Object(s.b)("The platform you're on"),example:"Electron Platform"},"App Version":{id:2,expl:Object(s.b)("The version of %(brand)s"),getTextVariables:()=>({brand:l.a.get().brand}),example:"15.0.0"},"User Type":{id:3,expl:Object(s.b)("Whether or not you're logged in (we don't record your username)"),example:"Logged In"},"Chosen Language":{id:4,expl:Object(s.b)("Your language of choice"),example:"en"},Instance:{id:5,expl:Object(s.b)("Which officially provided instance you are using, if any"),example:"app"},"RTE: Uses Richtext Mode":{id:6,expl:Object(s.b)("Whether or not you're using the Richtext mode of the Rich Text Editor"),example:"off"},"Homeserver URL":{id:7,expl:Object(s.b)("Your homeserver's URL"),example:"https://matrix.org"},"Touch Input":{id:8,expl:Object(s.b)("Whether you're using %(brand)s on a device where touch is the primary input mechanism"),getTextVariables:()=>({brand:l.a.get().brand}),example:"false"},Breadcrumbs:{id:9,expl:Object(s.b)("Whether or not you're using the 'breadcrumbs' feature (avatars above the room list)"),example:"disabled"},"Installed PWA":{id:10,expl:Object(s.b)("Whether you're using %(brand)s as an installed Progressive Web App"),getTextVariables:()=>({brand:l.a.get().brand}),example:"false"}};const b="mx_Riot_Analytics_uid";class v{constructor(){r()(this,"baseUrl",null),r()(this,"siteId",null),r()(this,"visitVariables",{}),r()(this,"firstPage",!0),r()(this,"heartbeatIntervalID",null),r()(this,"creationTs",void 0),r()(this,"lastVisitTs",void 0),r()(this,"visitCount",void 0),r()(this,"showDetailsModal",()=>{let e=[];e=this.disabled?Object.keys(_).map(e=>[e,Object(s.a)("e.g. %(exampleValue)s",{exampleValue:_[e].example})]):Object.values(this.visitVariables);const t=`${window.screen.width}x${window.screen.height}`,n=[{expl:Object(s.b)("Every page you use in the app"),value:Object(s.a)("e.g. ",{},{CurrentPageURL:f})},{expl:Object(s.b)("Your user agent"),value:navigator.userAgent},{expl:Object(s.b)("Your device resolution"),value:t}],o=d.getComponent("dialogs.ErrorDialog");u.a.createTrackedDialog("Analytics Details","",o,{title:Object(s.a)("Analytics"),description:a.a.createElement("div",{className:"mx_AnalyticsModal"},a.a.createElement("div",null,Object(s.a)("The information being sent to us to help make %(brand)s better includes:",{brand:l.a.get().brand})),a.a.createElement("table",null,e.map(e=>a.a.createElement("tr",{key:e[0]},a.a.createElement("td",null,Object(s.a)(_[e[0]].expl,_[e[0]].getTextVariables?_[e[0]].getTextVariables():null)),void 0!==e[1]&&a.a.createElement("td",null,a.a.createElement("code",null,e[1])))),n.map((e,t)=>a.a.createElement("tr",{key:t},a.a.createElement("td",null,Object(s.a)(e.expl)),a.a.createElement("td",null,a.a.createElement("code",null,e.value))))),a.a.createElement("div",null,Object(s.a)("Where this page includes identifiable information, such as a room, user or group ID, that data is removed before being sent to the server.")))})}),this.creationTs=localStorage&&localStorage.getItem("mx_Riot_Analytics_cts"),!this.creationTs&&localStorage&&localStorage.setItem("mx_Riot_Analytics_cts",this.creationTs=String((new Date).getTime())),this.lastVisitTs=localStorage&&localStorage.getItem("mx_Riot_Analytics_lvts"),this.visitCount=localStorage&&localStorage.getItem("mx_Riot_Analytics_vc")||"0",this.visitCount=String(parseInt(this.visitCount,10)+1),localStorage&&localStorage.setItem("mx_Riot_Analytics_vc",this.visitCount)}get disabled(){return!this.baseUrl}canEnable(){const e=l.a.get();return"1"!==navigator.doNotTrack&&e&&e.piwik&&e.piwik.url&&e.piwik.siteId}async enable(){if(!this.disabled)return;if(!this.canEnable())return;const e=l.a.get();this.baseUrl=new URL("piwik.php",e.piwik.url),this.baseUrl.searchParams.set("rec","1"),this.baseUrl.searchParams.set("idsite",e.piwik.siteId),this.baseUrl.searchParams.set("apiv","1"),this.baseUrl.searchParams.set("send_image","0"),this.baseUrl.searchParams.set("_id",function(){try{let e=localStorage&&localStorage.getItem(b);return!e&&localStorage&&localStorage.setItem(b,e=[...Array(16)].map(()=>Math.random().toString(16)[2]).join("")),e}catch(e){return console.error("Analytics error: ",e),""}}()),this.baseUrl.searchParams.set("_idts",this.creationTs),this.baseUrl.searchParams.set("_idvc",this.visitCount),this.lastVisitTs&&this.baseUrl.searchParams.set("_viewts",this.lastVisitTs);const t=c.a.get();this.setVisitVariable("App Platform",t.getHumanReadableName());try{this.setVisitVariable("App Version",await t.getAppVersion())}catch(e){this.setVisitVariable("App Version","unknown")}this.setVisitVariable("Chosen Language",Object(s.d)());const n=window.location.hostname;"riot.im"===n?this.setVisitVariable("Instance",window.location.pathname):n.endsWith(".element.io")&&this.setVisitVariable("Instance",n.replace(".element.io",""));let o="unknown";try{o=String(window.matchMedia("(display-mode: standalone)").matches)}catch(e){}this.setVisitVariable("Installed PWA",o);let r="unknown";try{r=String(window.matchMedia("(pointer: coarse)").matches)}catch(e){}this.setVisitVariable("Touch Input",r),this.heartbeatIntervalID=window.setInterval(this.ping.bind(this),3e4)}disable(){this.disabled||(this.trackEvent("Analytics","opt-out"),window.clearInterval(this.heartbeatIntervalID),this.baseUrl=null,this.visitVariables={},localStorage.removeItem(b),localStorage.removeItem("mx_Riot_Analytics_cts"),localStorage.removeItem("mx_Riot_Analytics_vc"),localStorage.removeItem("mx_Riot_Analytics_lvts"))}async _track(e){if(this.disabled)return;const t=new Date,n=p(p({},e),{},{url:f(),_cvar:JSON.stringify(this.visitVariables),res:`${window.screen.width}x${window.screen.height}`,rand:String(Math.random()).slice(2,8),h:t.getHours(),m:t.getMinutes(),s:t.getSeconds()}),o=new URL(this.baseUrl.toString());for(const e in n)o.searchParams.set(e,n[e]);try{await window.fetch(o.toString(),{method:"GET",mode:"no-cors",cache:"no-cache",redirect:"follow"})}catch(e){console.error("Analytics error: ",e)}}ping(){this._track({ping:"1"}),localStorage.setItem("mx_Riot_Analytics_lvts",String((new Date).getTime()))}trackPageChange(e){this.disabled||(this.firstPage?this.firstPage=!1:("number"!=typeof e&&console.warn("Analytics.trackPageChange: expected generationTimeMs to be a number"),this._track({gt_ms:String(e)})))}trackEvent(e,t,n,o){this.disabled||this._track({e_c:e,e_a:t,e_n:n,e_v:o})}setVisitVariable(e,t){this.disabled||(this.visitVariables[_[e].id]=[e,t])}setLoggedIn(e,t){if(this.disabled)return;const n=l.a.get();if(!n.piwik)return;const o=n.piwik.whitelistedHSUrls||[];var r;this.setVisitVariable("User Type",e?"Guest":"Logged In"),this.setVisitVariable("Homeserver URL",(r=t,o.includes(r)?r:""))}setBreadcrumbs(e){this.disabled||this.setVisitVariable("Breadcrumbs",e?"enabled":"disabled")}}window.mxAnalytics||(window.mxAnalytics=new v),t.a=window.mxAnalytics},function(e,t,n){"use strict";var o=n(864),r=n(865);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=v,t.resolve=function(e,t){return v(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?v(e,!1,!0).resolveObject(t):t},t.format=function(e){r.isString(e)&&(e=v(e));return e instanceof i?e.format():i.prototype.format.call(e)},t.Url=i;var a=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,l=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(l),d=["%","/","?",";","#"].concat(u),h=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},f={javascript:!0,"javascript:":!0},_={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},b=n(2);function v(e,t,n){if(e&&r.isObject(e)&&e instanceof i)return e;var o=new i;return o.parse(e,t,n),o}i.prototype.parse=function(e,t,n){if(!r.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var i=e.indexOf("?"),s=-1!==i&&i127?N+="x":N+=A[F];if(!N.match(p)){var P=D.slice(0,k),L=D.slice(k+1),U=A.match(m);U&&(P.push(U[1]),L.unshift(U[2])),L.length&&(v="/"+L.join(".")+v),this.hostname=P.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),R||(this.hostname=o.toASCII(this.hostname));var j=this.port?":"+this.port:"",B=this.hostname||"";this.host=B+j,this.href+=this.host,R&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==v[0]&&(v="/"+v))}if(!g[S])for(k=0,I=u.length;k0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift());return n.search=e.search,n.query=e.query,r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.href=n.format(),n}if(!w.length)return n.pathname=null,n.search?n.path="/"+n.search:n.path=null,n.href=n.format(),n;for(var T=w.slice(-1)[0],x=(n.host||e.host||w.length>1)&&("."===T||".."===T)||""===T,k=0,O=w.length;O>=0;O--)"."===(T=w[O])?w.splice(O,1):".."===T?(w.splice(O,1),k++):k&&(w.splice(O,1),k--);if(!E&&!S)for(;k--;k)w.unshift("..");!E||""===w[0]||w[0]&&"/"===w[0].charAt(0)||w.unshift(""),x&&"/"!==w.join("/").substr(-1)&&w.push("");var R,D=""===w[0]||w[0]&&"/"===w[0].charAt(0);C&&(n.hostname=n.host=D?"":w.length?w.shift():"",(R=!!(n.host&&n.host.indexOf("@")>0)&&n.host.split("@"))&&(n.auth=R.shift(),n.host=n.hostname=R.shift()));return(E=E||n.host&&w.length)&&!D&&w.unshift(""),w.length?n.pathname=w.join("/"):(n.pathname=null,n.path=null),r.isNull(n.pathname)&&r.isNull(n.search)||(n.path=(n.pathname?n.pathname:"")+(n.search?n.search:"")),n.auth=e.auth||n.auth,n.slashes=n.slashes||e.slashes,n.href=n.format(),n},i.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},function(e,t,n){"use strict";var o=n(82),r=n.n(o),i=n(85),a=n.n(i),s=n(84),c=n(89);const l=({w:e=32,h:t=32,imgClassName:o,message:i})=>{let a;return a=c.b.getValue("feature_new_spinner")?n(606):n(607),r.a.createElement("div",{className:"mx_Spinner"},i&&r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:"mx_Spinner_Msg"},i)," "),r.a.createElement("img",{src:a,width:e,height:t,className:o,"aria-label":Object(s.a)("Loading...")}))};l.propTypes={w:a.a.number,h:a.a.number,imgClassName:a.a.string,message:a.a.node},t.a=l},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var o=n(82),r=n.n(o);class i extends r.a.Component{constructor(e){super(e),this._collectContainerRef=this._collectContainerRef.bind(this)}_collectContainerRef(e){e&&!this.containerRef&&(this.containerRef=e),this.props.wrappedRef&&this.props.wrappedRef(e)}getScrollTop(){return this.containerRef.scrollTop}render(){return r.a.createElement("div",{ref:this._collectContainerRef,style:this.props.style,className:["mx_AutoHideScrollbar",this.props.className].join(" "),onScroll:this.props.onScroll,onWheel:this.props.onWheel,tabIndex:this.props.tabIndex},this.props.children)}}},function(e,t,n){"use strict";function o(e){return e.slice(0,e.length)}function r(e,t){if(e.length===t.length){for(let n=0;n!e.includes(t))||!!e.some(e=>!t.includes(e)))}function a(e,t){return{added:t.filter(t=>!e.includes(t)),removed:e.filter(e=>!t.includes(e))}}function s(e,t){return e.filter(e=>t.includes(e))}function c(...e){return Array.from(e.reduce((e,t)=>(t.forEach(t=>e.add(t)),e),new Set))}n.d(t,"c",(function(){return o})),n.d(t,"e",(function(){return r})),n.d(t,"d",(function(){return i})),n.d(t,"b",(function(){return a})),n.d(t,"g",(function(){return s})),n.d(t,"f",(function(){return c})),n.d(t,"a",(function(){return l}));class l{constructor(e){this.a=e}get value(){return this.a}groupBy(e){const t=this.a.reduce((t,n)=>{const o=e(n);return t.has(o)||t.set(o,[]),t.get(o).push(n),t},new Map);return new u(t)}}class u{constructor(e){this.val=e}orderBy(e){const t=[];for(const n of e)this.val.has(n)&&t.push(...this.val.get(n));return new l(t)}}},function(e,t,n){"use strict";n.d(t,"e",(function(){return u})),n.d(t,"f",(function(){return d})),n.d(t,"a",(function(){return h})),n.d(t,"d",(function(){return p})),n.d(t,"c",(function(){return m})),n.d(t,"b",(function(){return g})),n.d(t,"h",(function(){return f})),n.d(t,"j",(function(){return T})),n.d(t,"i",(function(){return x})),n.d(t,"k",(function(){return k})),n.d(t,"g",(function(){return O}));var o=n(83),r=n.n(o),i=n(0),a=n(6),s=n(1),c=n(140),l=n(159);let u,d,h,p,m,g;!function(e){e.Fledgling="fledgling",e.InviteSent="invite_sent",e.WaitLocalMedia="wait_local_media",e.CreateOffer="create_offer",e.CreateAnswer="create_answer",e.Connecting="connecting",e.Connected="connected",e.Ringing="ringing",e.Ended="ended"}(u||(u={})),function(e){e.Voice="voice",e.Video="video"}(d||(d={})),function(e){e.Inbound="inbound",e.Outbound="outbound"}(h||(h={})),function(e){e.Local="local",e.Remote="remote"}(p||(p={})),function(e){e.Hangup="hangup",e.State="state",e.Error="error",e.Replaced="replaced",e.LocalHoldUnhold="local_hold_unhold",e.RemoteHoldUnhold="remote_hold_unhold",e.HoldUnhold="hold_unhold"}(m||(m={})),function(e){e.UserHangup="user_hangup",e.LocalOfferFailed="local_offer_failed",e.NoUserMedia="no_user_media",e.UnknownDevices="unknown_devices",e.SendInvite="send_invite",e.CreateAnswer="create_answer",e.SendAnswer="send_answer",e.SetRemoteDescription="set_remote_description",e.SetLocalDescription="set_local_description",e.AnsweredElsewhere="answered_elsewhere",e.IceFailed="ice_failed",e.InviteTimeout="invite_timeout",e.Replaced="replaced",e.SignallingFailed="signalling_timeout"}(g||(g={}));function f(){return window.electron.getDesktopCapturerSources({thumbnailSize:{height:176,width:312},types:["screen","window"]})}class _ extends Error{constructor(e,t,n){super(t+": "+n),r()(this,"code",void 0),this.code=e}}function b(){return Date.now().toString()+Object(l.b)(16)}class v extends a.EventEmitter{constructor(e){super(),r()(this,"roomId",void 0),r()(this,"type",void 0),r()(this,"callId",void 0),r()(this,"state",void 0),r()(this,"hangupParty",void 0),r()(this,"hangupReason",void 0),r()(this,"direction",void 0),r()(this,"ourPartyId",void 0),r()(this,"client",void 0),r()(this,"forceTURN",void 0),r()(this,"turnServers",void 0),r()(this,"candidateSendQueue",void 0),r()(this,"candidateSendTries",void 0),r()(this,"sentEndOfCandidates",void 0),r()(this,"peerConn",void 0),r()(this,"localVideoElement",void 0),r()(this,"remoteVideoElement",void 0),r()(this,"remoteAudioElement",void 0),r()(this,"screenSharingStream",void 0),r()(this,"remoteStream",void 0),r()(this,"localAVStream",void 0),r()(this,"inviteOrAnswerSent",void 0),r()(this,"waitForLocalAVStream",void 0),r()(this,"msg",void 0),r()(this,"config",void 0),r()(this,"successor",void 0),r()(this,"opponentMember",void 0),r()(this,"opponentVersion",void 0),r()(this,"opponentPartyId",void 0),r()(this,"opponentCaps",void 0),r()(this,"inviteTimeout",void 0),r()(this,"remoteOnHold",void 0),r()(this,"unholdingRemote",void 0),r()(this,"micMuted",void 0),r()(this,"vidMuted",void 0),r()(this,"callStatsAtEnd",void 0),r()(this,"makingOffer",void 0),r()(this,"ignoreOffer",void 0),r()(this,"gotUserMediaForInvite",async e=>{if(this.successor)return void this.successor.gotUserMediaForAnswer(e);if(this.callHasEnded())return;this.setState(u.CreateOffer),i.b.debug("gotUserMediaForInvite -> "+this.type);const t=this.getLocalVideoElement();if(t&&this.type===d.Video){t.autoplay=!0,this.screenSharingStream?(i.b.debug("Setting screen sharing stream to the local video element"),t.srcObject=this.screenSharingStream):t.srcObject=e,t.muted=!0;try{await t.play()}catch(e){i.b.info("Failed to play local video element",e)}}this.localAVStream=e,i.b.info("Got local AV stream with id "+this.localAVStream.id),y(e.getAudioTracks(),!0),this.peerConn=this.createPeerConnection();for(const t of e.getAudioTracks())i.b.info("Adding audio track with id "+t.id),this.peerConn.addTrack(t,e);for(const t of(this.screenSharingStream||e).getVideoTracks())i.b.info("Adding video track with id "+t.id),this.peerConn.addTrack(t,e)}),r()(this,"gotUserMediaForAnswer",async e=>{if(this.callHasEnded())return;const t=this.getLocalVideoElement();if(t&&this.type===d.Video){t.autoplay=!0,t.srcObject=e,t.muted=!0;try{await t.play()}catch(e){i.b.info("Failed to play local video element",e)}}this.localAVStream=e,i.b.info("Got local AV stream with id "+this.localAVStream.id),y(e.getAudioTracks(),!0);for(const t of e.getTracks())this.peerConn.addTrack(t,e);let n;this.setState(u.CreateAnswer);try{n=await this.peerConn.createAnswer()}catch(e){return i.b.debug("Failed to create answer: ",e),void this.terminate(p.Local,g.CreateAnswer,!0)}try{await this.peerConn.setLocalDescription(n),this.setState(u.Connecting),await new Promise(e=>{setTimeout(e,200)}),this.sendAnswer()}catch(e){return i.b.debug("Error setting local description!",e),void this.terminate(p.Local,g.SetLocalDescription,!0)}}),r()(this,"gotLocalIceCandidate",e=>{if(e.candidate){if(i.b.debug("Got local ICE "+e.candidate.sdpMid+" candidate: "+e.candidate.candidate),this.callHasEnded())return;""===e.candidate.candidate&&this.sentEndOfCandidates||(this.queueCandidate(e.candidate),""===e.candidate.candidate&&(this.sentEndOfCandidates=!0))}}),r()(this,"onIceGatheringStateChange",e=>{if(i.b.debug("ice gathering state changed to "+this.peerConn.iceGatheringState),"complete"===this.peerConn.iceGatheringState&&!this.sentEndOfCandidates){const e={candidate:""};this.queueCandidate(e),this.sentEndOfCandidates=!0}}),r()(this,"gotLocalOffer",async e=>{if(i.b.debug("Created offer: ",e),this.callHasEnded())return void i.b.debug("Ignoring newly created offer on call ID "+this.callId+" because the call has ended");try{await this.peerConn.setLocalDescription(e)}catch(e){return i.b.debug("Error setting local description!",e),void this.terminate(p.Local,g.SetLocalDescription,!0)}if("gathering"===this.peerConn.iceGatheringState&&await new Promise(e=>{setTimeout(e,200)}),this.callHasEnded())return;const t=this.state===u.CreateOffer?c.a.CallInvite:c.a.CallNegotiate,n={lifetime:6e4};this.state===u.CreateOffer?n.offer=this.peerConn.localDescription:n.description=this.peerConn.localDescription,this.client._supportsCallTransfer&&(n.capabilities={"m.call.transferee":!0}),i.b.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in offer`),this.candidateSendQueue=[];try{await this.sendVoipEvent(t,n),this.sendCandidateQueue(),this.state===u.CreateOffer&&(this.inviteOrAnswerSent=!0,this.setState(u.InviteSent),this.inviteTimeout=setTimeout(()=>{this.inviteTimeout=null,this.state===u.InviteSent&&this.hangup(g.InviteTimeout,!1)},6e4))}catch(e){this.client.cancelPendingEvent(e.event);let t=g.SignallingFailed,n="Signalling failed";this.state===u.CreateOffer&&(t=g.SendInvite,n="Failed to send invite"),"UnknownDeviceError"==e.name&&(t=g.UnknownDevices,n="Unknown devices present in the room"),this.emit(m.Error,new _(t,n,e)),this.terminate(p.Local,t,!1)}}),r()(this,"getLocalOfferFailed",e=>{i.b.error("Failed to get local offer",e),this.emit(m.Error,new _(g.LocalOfferFailed,"Failed to get local offer!",e)),this.terminate(p.Local,g.LocalOfferFailed,!1)}),r()(this,"getUserMediaFailed",e=>{this.successor?this.successor.getUserMediaFailed(e):(i.b.warn("Failed to get user media - ending call",e),this.emit(m.Error,new _(g.NoUserMedia,"Couldn't start capturing media! Is your microphone set up and does this app have permission?",e)),this.terminate(p.Local,g.NoUserMedia,!1))}),r()(this,"onIceConnectionStateChanged",()=>{this.callHasEnded()||(i.b.debug("Call ID "+this.callId+": ICE connection state changed to: "+this.peerConn.iceConnectionState),"connected"==this.peerConn.iceConnectionState?this.setState(u.Connected):"failed"==this.peerConn.iceConnectionState&&this.hangup(g.IceFailed,!1))}),r()(this,"onSignallingStateChanged",()=>{i.b.debug("call "+this.callId+": Signalling state changed to: "+this.peerConn.signalingState)}),r()(this,"onTrack",e=>{0!==e.streams.length?this.remoteStream&&e.streams[0].id!==this.remoteStream.id?i.b.warn(`Ignoring new stream ID ${e.streams[0].id}: we already have stream ID ${this.remoteStream.id}`):(this.remoteStream||i.b.info("Got remote stream with id "+e.streams[0].id),this.remoteStream=e.streams[0],i.b.debug(`Track id ${e.track.id} of kind ${e.track.kind} added`),"video"===e.track.kind?this.remoteVideoElement&&this.playRemoteVideo():this.remoteAudioElement&&this.playRemoteAudio()):i.b.warn(`Streamless ${e.track.kind} found: ignoring.`)}),r()(this,"onNegotiationNeeded",async()=>{if(i.b.info("Negotation is needed!"),this.state===u.CreateOffer||0!==this.opponentVersion){this.makingOffer=!0;try{const e=await this.peerConn.createOffer();await this.gotLocalOffer(e)}catch(e){return void this.getLocalOfferFailed(e)}finally{this.makingOffer=!1}}else i.b.info("Opponent does not support renegotiation: ignoring negotiationneeded event")}),r()(this,"onHangupReceived",e=>{i.b.debug("Hangup received for call ID "+this.callId),this.partyIdMatches(e)||this.state===u.Ringing?this.terminate(p.Remote,e.reason||g.UserHangup,!0):i.b.info(`Ignoring message from party ID ${e.party_id}: our partner is ${this.opponentPartyId}`)}),r()(this,"onRejectReceived",e=>{i.b.debug("Reject received for call ID "+this.callId);[u.InviteSent,u.Ringing].includes(this.state)||this.state===u.Fledgling&&this.direction===h.Inbound?this.terminate(p.Remote,g.UserHangup,!0):i.b.debug(`Call is in state: ${this.state}: ignoring reject`)}),r()(this,"onAnsweredElsewhere",e=>{i.b.debug("Call ID "+this.callId+" answered elsewhere"),this.terminate(p.Remote,g.AnsweredElsewhere,!0)}),this.roomId=e.roomId,this.client=e.client,this.type=null,this.forceTURN=e.forceTURN,this.ourPartyId=this.client.deviceId,this.opponentPartyId=null,this.turnServers=e.turnServers||[],0===this.turnServers.length&&this.client.isFallbackICEServerAllowed()&&this.turnServers.push({urls:["stun:turn.matrix.org"]});for(const e of this.turnServers)s.a(e,["urls"]);this.callId=b(),this.state=u.Fledgling,this.candidateSendQueue=[],this.candidateSendTries=0,this.sentEndOfCandidates=!1,this.inviteOrAnswerSent=!1,this.makingOffer=!1,this.remoteOnHold=!1,this.unholdingRemote=!1,this.micMuted=!1,this.vidMuted=!1}placeVoiceCall(){i.b.debug("placeVoiceCall"),this.checkForErrorListener(),this.placeCallWithConstraints(E(d.Voice)),this.type=d.Voice}placeVideoCall(e,t){i.b.debug("placeVideoCall"),this.checkForErrorListener(),this.localVideoElement=t,this.remoteVideoElement=e,this.placeCallWithConstraints(E(d.Video)),this.type=d.Video}async placeScreenSharingCall(e,t,n){var o;if(i.b.debug("placeScreenSharingCall"),this.checkForErrorListener(),this.localVideoElement=t,this.remoteVideoElement=e,null!==(o=window.electron)&&void 0!==o&&o.getDesktopCapturerSources){i.b.debug("Electron getDesktopCapturerSources() is available...");try{const e=await n();if(!e)return;const t={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e.id}}};this.screenSharingStream=await window.navigator.mediaDevices.getUserMedia(t),i.b.debug("Got screen stream, requesting audio stream...");const o=E(d.Voice);this.placeCallWithConstraints(o)}catch(e){this.emit(m.Error,new _(g.NoUserMedia,"Failed to get screen-sharing stream: ",e))}}else{i.b.debug("Electron desktopCapturer is not available...");try{this.screenSharingStream=await navigator.mediaDevices.getDisplayMedia({audio:!1}),i.b.debug("Got screen stream, requesting audio stream...");const e=E(d.Voice);this.placeCallWithConstraints(e)}catch(e){this.emit(m.Error,new _(g.NoUserMedia,"Failed to get screen-sharing stream: ",e))}}this.type=d.Video}getOpponentMember(){return this.opponentMember}opponentCanBeTransferred(){return Boolean(this.opponentCaps&&this.opponentCaps["m.call.transferee"])}getLocalVideoElement(){return this.localVideoElement}getRemoteVideoElement(){return this.remoteVideoElement}getRemoteAudioElement(){return this.remoteAudioElement}async setLocalVideoElement(e){if(this.localVideoElement=e,e&&this.localAVStream&&this.type===d.Video){e.autoplay=!0,e.srcObject=this.localAVStream,e.muted=!0;try{await e.play()}catch(e){i.b.info("Failed to play local video element",e)}}}setRemoteVideoElement(e){e!==this.remoteVideoElement&&(e.autoplay=!0,this.remoteAudioElement&&(e.muted=!0),this.remoteVideoElement=e,this.remoteStream&&this.playRemoteVideo())}async setRemoteAudioElement(e){e!==this.remoteAudioElement&&(this.remoteAudioElement=e,this.remoteStream&&this.playRemoteAudio())}async getCurrentCallStats(){return this.callHasEnded()?this.callStatsAtEnd:this.collectCallStats()}async collectCallStats(){if(!this.peerConn)return;const e=await this.peerConn.getStats(),t=[];for(const n of e)t.push(n[1]);return t}async initWithInvite(e){this.msg=e.getContent(),this.direction=h.Inbound,this.peerConn=this.createPeerConnection();try{await this.peerConn.setRemoteDescription(this.msg.offer)}catch(e){return i.b.debug("Failed to set remote description",e),void this.terminate(p.Local,g.SetRemoteDescription,!1)}if(!this.remoteStream||0===this.remoteStream.getTracks().length)return i.b.error("No remote stream or no tracks after setting remote description!"),void this.terminate(p.Local,g.SetRemoteDescription,!1);this.type=this.remoteStream.getTracks().some(e=>"video"===e.kind)?d.Video:d.Voice,this.setState(u.Ringing),this.opponentVersion=this.msg.version,0!==this.opponentVersion&&(this.opponentPartyId=this.msg.party_id||null),this.opponentCaps=this.msg.capabilities||{},this.opponentMember=e.sender,e.getLocalAge()&&setTimeout(()=>{this.state==u.Ringing&&(i.b.debug("Call invite has expired. Hanging up."),this.hangupParty=p.Remote,this.setState(u.Ended),this.stopAllMedia(),"closed"!=this.peerConn.signalingState&&this.peerConn.close(),this.emit(m.Hangup))},this.msg.lifetime-e.getLocalAge())}initWithHangup(e){this.msg=e.getContent(),this.setState(u.Ended)}async answer(){if(!this.inviteOrAnswerSent)if(i.b.debug(`Answering call ${this.callId} of type ${this.type}`),this.localAVStream||this.waitForLocalAVStream)this.localAVStream?this.gotUserMediaForAnswer(this.localAVStream):this.waitForLocalAVStream&&this.setState(u.WaitLocalMedia);else{const e=E(this.type);i.b.log("Getting user media with constraints",e),this.setState(u.WaitLocalMedia),this.waitForLocalAVStream=!0;try{const t=await navigator.mediaDevices.getUserMedia(e);this.waitForLocalAVStream=!1,this.gotUserMediaForAnswer(t)}catch(e){return void this.getUserMediaFailed(e)}}}replacedBy(e){i.b.debug(this.callId+" being replaced by "+e.callId),this.state===u.WaitLocalMedia?(i.b.debug("Telling new call to wait for local media"),e.waitForLocalAVStream=!0):(this.state===u.CreateOffer||this.state===u.InviteSent)&&(i.b.debug("Handing local stream to new call"),e.gotUserMediaForAnswer(this.localAVStream),delete this.localAVStream),e.localVideoElement=this.localVideoElement,e.remoteVideoElement=this.remoteVideoElement,e.remoteAudioElement=this.remoteAudioElement,this.successor=e,this.emit(m.Replaced,e),this.hangup(g.Replaced,!0)}hangup(e,t){if(this.callHasEnded())return;i.b.debug("Ending call "+this.callId),this.terminate(p.Local,e,!t);g.UserHangup,this.sendVoipEvent(c.a.CallHangup,{})}reject(){if(this.state!==u.Ringing)throw Error("Call must be in 'ringing' state to reject!");if(this.opponentVersion<1)return i.b.info(`Opponent version is less than 1 (${this.opponentVersion}): sending hangup instead of reject`),void this.hangup(g.UserHangup,!0);i.b.debug("Rejecting call: "+this.callId),this.terminate(p.Local,g.UserHangup,!0),this.sendVoipEvent(c.a.CallReject,{})}setLocalVideoMuted(e){this.vidMuted=e,this.updateMuteStatus()}isLocalVideoMuted(){return this.vidMuted}setMicrophoneMuted(e){this.micMuted=e,this.updateMuteStatus()}isMicrophoneMuted(){return this.micMuted}isRemoteOnHold(){return this.remoteOnHold}setRemoteOnHold(e){if(this.isRemoteOnHold()!==e){this.remoteOnHold=e,e||(this.unholdingRemote=!0);for(const t of this.peerConn.getTransceivers())t.direction=e?"inactive":"sendrecv";this.updateMuteStatus(),e||this.playRemoteAudio(),this.emit(m.RemoteHoldUnhold,this.remoteOnHold)}}isLocalOnHold(){if(this.state!==u.Connected)return!1;if(this.unholdingRemote)return!1;let e=!0;for(const t of this.peerConn.getTransceivers()){["inactive","recvonly"].includes(t.currentDirection)||(e=!1)}return e}sendDtmfDigit(e){for(const t of this.peerConn.getSenders())if("audio"===t.track.kind&&t.dtmf)return void t.dtmf.insertDTMF(e);throw new Error("Unable to find a track to send DTMF on")}updateMuteStatus(){if(!this.localAVStream)return;const e=this.micMuted||this.remoteOnHold;y(this.localAVStream.getAudioTracks(),!e);const t=this.vidMuted||this.remoteOnHold;y(this.localAVStream.getVideoTracks(),!t),this.remoteOnHold?this.remoteAudioElement&&this.remoteAudioElement.srcObject===this.remoteStream?this.remoteAudioElement.muted=!0:this.remoteVideoElement&&this.remoteVideoElement.srcObject===this.remoteStream&&(this.remoteVideoElement.muted=!0):this.playRemoteAudio()}sendAnswer(){const e={answer:{sdp:this.peerConn.localDescription.sdp,type:this.peerConn.localDescription.type}};this.client._supportsCallTransfer&&(e.capabilities={"m.call.transferee":!0}),i.b.info(`Discarding ${this.candidateSendQueue.length} candidates that will be sent in answer`),this.candidateSendQueue=[],this.sendVoipEvent(c.a.CallAnswer,e).then(()=>{this.inviteOrAnswerSent=!0,this.sendCandidateQueue()}).catch(e=>{this.setState(u.Ringing),this.client.cancelPendingEvent(e.event);let t=g.SendAnswer,n="Failed to send answer";throw"UnknownDeviceError"==e.name&&(t=g.UnknownDevices,n="Unknown devices present in the room"),this.emit(m.Error,new _(t,n,e)),e})}onRemoteIceCandidatesReceived(e){if(this.callHasEnded())return;if(!this.partyIdMatches(e.getContent()))return void i.b.info(`Ignoring candidates from party ID ${e.getContent().party_id}: we have chosen party ID `+this.opponentPartyId);const t=e.getContent().candidates;if(t)for(const e of t){if(!(null!==e.sdpMid&&void 0!==e.sdpMid||null!==e.sdpMLineIndex&&void 0!==e.sdpMLineIndex))return void i.b.debug("Ignoring remote ICE candidate with no sdpMid or sdpMLineIndex");i.b.debug("Got remote ICE "+e.sdpMid+" candidate: "+e.candidate);try{this.peerConn.addIceCandidate(e)}catch(e){this.ignoreOffer||i.b.info("Failed to add remore ICE candidate",e)}}else i.b.info("Ignoring candidates event with no candidates!")}async onAnswerReceived(e){if(!this.callHasEnded())if(null===this.opponentPartyId){this.opponentVersion=e.getContent().version,0!==this.opponentVersion&&(this.opponentPartyId=e.getContent().party_id||null),this.opponentCaps=e.getContent().capabilities||{},this.opponentMember=e.sender,this.setState(u.Connecting);try{await this.peerConn.setRemoteDescription(e.getContent().answer)}catch(e){return i.b.debug("Failed to set remote description",e),void this.terminate(p.Local,g.SetRemoteDescription,!1)}if(null!==this.opponentPartyId)try{await this.sendVoipEvent(c.a.CallSelectAnswer,{selected_party_id:this.opponentPartyId})}catch(e){i.b.warn("Failed to send select_answer event",e)}}else i.b.info(`Ignoring answer from party ID ${e.getContent().party_id}: we already have an answer/reject from `+this.opponentPartyId)}async onSelectAnswerReceived(e){if(this.direction!==h.Inbound)return void i.b.warn("Got select_answer for an outbound call: ignoring");const t=e.getContent().selected_party_id;null!=t?t!==this.ourPartyId&&(i.b.info(`Got select_answer for party ID ${t}: we are party ID ${this.ourPartyId}.`),this.terminate(p.Remote,g.AnsweredElsewhere,!0)):i.b.warn("Got nonsensical select_answer with null/undefined selected_party_id: ignoring")}async onNegotiateReceived(e){const t=e.getContent().description;if(!t||!t.sdp||!t.type)return void i.b.info("Ignoring invalid m.call.negotiate event");const n=this.direction===h.Inbound,o="offer"===t.type&&(this.makingOffer||"stable"!=this.peerConn.signalingState);if(this.ignoreOffer=!n&&o,this.ignoreOffer)return void i.b.info("Ignoring colliding negotiate event because we're impolite");const r=this.isLocalOnHold();"answer"===t.type&&(this.unholdingRemote=!1);try{if(await this.peerConn.setRemoteDescription(t),"offer"===t.type){for(const e of this.peerConn.getTransceivers())e.direction=this.isRemoteOnHold()?"inactive":"sendrecv";const e=await this.peerConn.createAnswer();await this.peerConn.setLocalDescription(e);for(const e of this.peerConn.getTransceivers())e.direction=e.currentDirection;this.sendVoipEvent(c.a.CallNegotiate,{description:this.peerConn.localDescription})}}catch(e){i.b.warn("Failed to complete negotiation",e)}const a=this.isLocalOnHold();r!==a&&(this.emit(m.LocalHoldUnhold,a),this.emit(m.HoldUnhold,a))}callHasEnded(){return this.state===u.Ended}async playRemoteAudio(){this.remoteVideoElement&&(this.remoteVideoElement.muted=!0),this.remoteAudioElement.muted=!1,this.remoteAudioElement.srcObject=this.remoteStream;try{S&&(i.b.info("Setting audio sink to "+S+", was "+this.remoteAudioElement.sinkId),await this.remoteAudioElement.setSinkId(S))}catch(e){i.b.warn("Couldn't set requested audio output device: using default",e)}try{await this.remoteAudioElement.play()}catch(e){i.b.error("Failed to play remote audio element",e)}}async playRemoteVideo(){this.remoteVideoElement.srcObject=this.remoteStream,i.b.info("playing remote video. stream active? "+this.remoteStream.active);try{await this.remoteVideoElement.play()}catch(e){i.b.info("Failed to play remote video element",e)}}setState(e){const t=this.state;this.state=e,this.emit(m.State,e,t)}sendVoipEvent(e,t){return this.client.sendEvent(this.roomId,e,Object.assign({},t,{version:1,call_id:this.callId,party_id:this.ourPartyId}))}queueCandidate(e){if(this.candidateSendQueue.push(e),this.state===u.Ringing||!this.inviteOrAnswerSent)return;const t=this.direction===h.Inbound?500:2e3;0===this.candidateSendTries&&setTimeout(()=>{this.sendCandidateQueue()},t)}async transfer(e,t){const n=await this.client.getProfileInfo(e),o=b(),r={replacement_id:b(),target_user:{id:e,display_name:n.display_name,avatar_url:n.avatar_url},create_call:o};return t&&(r.target_room=t),this.sendVoipEvent(c.a.CallReplaces,r)}async terminate(e,t,n){if(this.callHasEnded())return;this.callStatsAtEnd=await this.collectCallStats(),this.inviteTimeout&&(clearTimeout(this.inviteTimeout),this.inviteTimeout=null);const o=this.getRemoteVideoElement(),r=this.getRemoteAudioElement(),a=this.getLocalVideoElement();if(o&&(o.pause(),o.srcObject=null),r){r.pause(),r.srcObject=null;try{await this.remoteAudioElement.setSinkId("")}catch(e){i.b.warn("Failed to set sink ID back to default")}}a&&(a.pause(),a.srcObject=null),this.hangupParty=e,this.hangupReason=t,this.setState(u.Ended),this.stopAllMedia(),this.peerConn&&"closed"!==this.peerConn.signalingState&&this.peerConn.close(),n&&this.emit(m.Hangup,this)}stopAllMedia(){if(i.b.debug(`stopAllMedia (stream=${this.localAVStream})`),this.localAVStream)for(const e of this.localAVStream.getTracks())e.stop();if(this.screenSharingStream)for(const e of this.screenSharingStream.getTracks())e.stop();if(this.remoteStream)for(const e of this.remoteStream.getTracks())e.stop()}checkForErrorListener(){if(0===this.listeners("error").length)throw new Error("You MUST attach an error listener using call.on('error', function() {})")}sendCandidateQueue(){if(0===this.candidateSendQueue.length)return;const e=this.candidateSendQueue;this.candidateSendQueue=[],++this.candidateSendTries;const t={candidates:e};i.b.debug("Attempting to send "+e.length+" candidates"),this.sendVoipEvent(c.a.CallCandidates,t).then(()=>{this.candidateSendTries=0,this.sendCandidateQueue()},t=>{for(let t=0;t5)return i.b.debug("Failed to send candidates on attempt "+this.candidateSendTries+". Giving up for now.",t),void(this.candidateSendTries=0);const n=500*Math.pow(2,this.candidateSendTries);++this.candidateSendTries,i.b.debug("Failed to send candidates. Retrying in "+n+"ms",t),setTimeout(()=>{this.sendCandidateQueue()},n)})}async placeCallWithConstraints(e){i.b.log("Getting user media with constraints",e),this.client._callEventHandler.calls.set(this.callId,this),this.setState(u.WaitLocalMedia),this.direction=h.Outbound,this.config=e;try{const t=await navigator.mediaDevices.getUserMedia(e);this.gotUserMediaForInvite(t)}catch(e){return void this.getUserMediaFailed(e)}}createPeerConnection(){const e=new window.RTCPeerConnection({iceTransportPolicy:this.forceTURN?"relay":void 0,iceServers:this.turnServers,iceCandidatePoolSize:this.client._iceCandidatePoolSize});return e.addEventListener("iceconnectionstatechange",this.onIceConnectionStateChanged),e.addEventListener("signalingstatechange",this.onSignallingStateChanged),e.addEventListener("icecandidate",this.gotLocalIceCandidate),e.addEventListener("icegatheringstatechange",this.onIceGatheringStateChange),e.addEventListener("track",this.onTrack),e.addEventListener("negotiationneeded",this.onNegotiationNeeded),e}partyIdMatches(e){return(e.party_id||null)===this.opponentPartyId}}function y(e,t){for(let n=0;n{const r=n[e],i=t[e];i&&"string"==typeof i&&U.test(i)&&(o+=r+":"+i+";",delete t[e])}),o&&(t.style=o),{tagName:e,attribs:t}}},K={allowedTags:["font","del","h1","h2","h3","h4","h5","h6","blockquote","p","a","ul","ol","sup","sub","nl","li","b","i","u","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre","span","img"],allowedAttributes:{font:["color","data-mx-bg-color","data-mx-color","style"],span:["data-mx-maths","data-mx-bg-color","data-mx-color","data-mx-spoiler","style"],div:["data-mx-maths"],a:["href","name","target","rel"],img:["src","width","height","alt","title"],ol:["start"],code:["class"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:j,allowProtocolRelative:!1,transformTags:z,nestingLimit:50},W=A(A({},K),{},{transformTags:{code:z.code,"*":z["*"]}});class Y extends class{constructor(e,t){this.highlightClass=e,this.highlightLink=t}applyHighlights(e,t){let n,o=0,r=[];const i=t[0];for(;(n=e.toLowerCase().indexOf(i.toLowerCase(),o))>=0;){if(n>o){const i=e.substring(o,n);r=r.concat(this.applySubHighlights(i,t))}const a=n+i.length;r.push(this.processSnippet(e.substring(n,a),!0)),o=a}if(o!==e.length){const n=e.substring(o,void 0);r=r.concat(this.applySubHighlights(n,t))}return r}applySubHighlights(e,t){return t[1]?this.applyHighlights(e,t.slice(1)):[this.processSnippet(e,!1)]}}{processSnippet(e,t){if(!t)return e;let n=`${e}`;return this.highlightLink&&(n=`${n}`),n}}function $(e,t,n={}){const o="org.matrix.custom.html"===e.format&&e.formatted_body;let r,i,s,l=!1,u=K;n.forComposerQuote&&(u=W);try{if(t&&t.length>0){const e=new Y("mx_EventTile_searchHighlight",n.highlightLink),o=t.map((function(e){return c()(e,u)}));u.textFilter=function(t){return e.applyHighlights(t,o).join("")}}let a="string"==typeof e.formatted_body?e.formatted_body:null;const h="string"==typeof e.body?e.body:"";if(n.stripReplyFallback&&a&&(a=D.a.stripHTMLReply(a)),r=n.stripReplyFallback?D.a.stripPlainReply(h):h,d=o?a:h,l=N.test(d)||F.test(d),o&&(s=!0,i=c()(a,u),C.b.getValue("feature_latex_maths"))){const e=x.a.load(i,{_useHtmlParser2:!0,decodeEntities:!1});e('div, span[data-mx-maths!=""]').replaceWith((function(t,n){return S.a.renderToString(w.AllHtmlEntities.decode(e(n).attr("data-mx-maths")),{throwOnError:!1,displayMode:"div"==n.name,output:"htmlAndMathml"})})),i=e.html()}}finally{delete u.textFilter}var d;const h=s?i:r;if(n.returnString)return h;let p=!1;if(!n.disableBigEmoji&&l){let t=void 0!==h?h.trim():"";t=t.replace(P,""),t=t.replace(M,"");const n=L.exec(t);p=n&&n[0]&&n[0].length===t.length&&(r===i||void 0===e.formatted_body||!e.formatted_body.includes("http:")&&!e.formatted_body.includes("https:"))}const m=f()({mx_EventTile_body:!0,mx_EventTile_bigEmoji:p,"markdown-body":o&&!p});return s?a.a.createElement("span",{key:"body",ref:n.ref,className:m,dangerouslySetInnerHTML:{__html:i},dir:"auto"}):a.a.createElement("span",{key:"body",ref:n.ref,className:m,dir:"auto"},r)}function Q(e,t=u.a.options){return h()(e,t)}function X(e,t=u.a.options){return c()(function(e,t=u.a.options){return m()(e,t)}(e,t),K)}function J(e){switch(e.nodeName){case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"PRE":case"BLOCKQUOTE":case"P":case"UL":case"OL":case"LI":case"HR":case"TABLE":case"THEAD":case"TBODY":case"TR":case"TH":case"TD":return!0;case"DIV":return!e.hasAttribute("data-mx-maths");default:return!1}}},function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var o=n(113),r=n(87),i=n(93),a=n(88),s=n(233),c=n(89),l=n(156),u=n(130),d=n(124),h=n(84),p=n(3);class m{static canUserModifyWidgets(e){if(!e)return console.warn("No room ID specified"),!1;const t=r.a.get();if(!t)return console.warn("User must be be logged in"),!1;const n=t.getRoom(e);if(!n)return console.warn(`Room ID ${e} is not recognised`),!1;const o=t.credentials.userId;return o?"join"!==n.getMyMembership()?(console.warn(`User ${o} is not in room ${e}`),!1):n.currentState.maySendStateEvent("im.vector.modular.widgets",o):(console.warn("Failed to get user ID"),!1)}static isScalarUrl(e){if(!e)return console.error("Scalar URL check failed. No URL specified"),!1;const t=o.parse(e);let n=i.a.get().integrations_widgets_urls;if(!n||0===n.length){const e=l.a.sharedInstance().getPrimaryManager();n=e?[e.apiUrl]:[]}for(let e=0;e{function i(n){return!(!n||!n.getContent())&&(t?void 0!==n.getContent()[e]:void 0===n.getContent()[e])}if(i(r.a.get().getAccountData("m.widgets")))return void n();function a(e){i(r.a.get().getAccountData("m.widgets"))&&(r.a.get().removeListener("accountData",a),clearTimeout(s),n())}const s=setTimeout(()=>{r.a.get().removeListener("accountData",a),o(new Error("Timed out waiting for widget ID "+e+" to appear"))},2e4);r.a.get().on("accountData",a)})}static waitForRoomWidget(e,t,n){return new Promise((o,i)=>{function a(t){const o=t.some(t=>t.getContent()&&t.getContent().id===e);return n?o:!o}const s=r.a.get().getRoom(t);if(a(s.currentState.getStateEvents("im.vector.modular.widgets")))return void o();function c(e){if(e.getRoomId()!==t)return;a(s.currentState.getStateEvents("im.vector.modular.widgets"))&&(r.a.get().removeListener("RoomState.events",c),clearTimeout(l),o())}const l=setTimeout(()=>{r.a.get().removeListener("RoomState.events",c),i(new Error("Timed out waiting for widget ID "+e+" to appear"))},2e4);r.a.get().on("RoomState.events",c)})}static setUserWidget(e,t,n,o,i){const s={type:t.preferred,url:n,name:o,data:i},c=r.a.get(),l=Object(d.a)(m.getUserWidgets());try{delete l[e]}catch(e){console.error("$widgetId is non-configurable")}const u=Boolean(n);return u&&(l[e]={content:s,sender:c.getUserId(),state_key:e,type:"m.widget",id:e}),c.setAccountData("m.widgets",l).then(()=>m.waitForUserWidget(e,u)).then(()=>{a.a.dispatch({action:"user_widget_updated"})})}static setRoomWidget(e,t,n,o,r,i){let a;return a=Boolean(o)?{type:n.legacy,url:o,name:r,data:i}:{},m.setRoomWidgetContent(e,t,a)}static setRoomWidgetContent(e,t,n){const o=!!n.url;s.a.setRoomWidgetEcho(e,t,n);return r.a.get().sendStateEvent(e,"im.vector.modular.widgets",n,t).then(()=>m.waitForRoomWidget(t,e,o)).finally(()=>{s.a.removeRoomWidgetEcho(e,t)})}static getRoomWidgets(e){const t=e.currentState.getStateEvents("im.vector.modular.widgets");return t?t.filter(e=>e.getContent().type&&e.getContent().url):[]}static getUserWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");return t&&t.getContent()?t.getContent():{}}static getUserWidgetsArray(){return Object.values(m.getUserWidgets())}static getStickerpickerWidgets(){return m.getUserWidgetsArray().filter(e=>e.content&&"m.stickerpicker"===e.content.type)}static getIntegrationManagerWidgets(){return m.getUserWidgetsArray().filter(e=>e.content&&"m.integration_manager"===e.content.type)}static getRoomWidgetsOfType(e,t){return(m.getRoomWidgets(e)||[]).filter(e=>{const n=e.getContent();return n.url&&t.matches(n.type)})}static removeIntegrationManagerWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");if(!t)return;const n=t.getContent()||{};return Object.entries(n).forEach(([e,t])=>{t.content&&"m.integration_manager"===t.content.type&&delete n[e]}),e.setAccountData("m.widgets",n)}static addIntegrationManagerWidget(e,t,n){return m.setUserWidget("integration_manager_"+(new Date).getTime(),u.a.INTEGRATION_MANAGER,t,"Integration Manager: "+e,{api_url:n})}static removeStickerpickerWidgets(){const e=r.a.get();if(!e)throw new Error("User not logged in");const t=e.getAccountData("m.widgets");if(!t)return;const n=t.getContent()||{};return Object.entries(n).forEach(([e,t])=>{t.content&&"m.stickerpicker"===t.content.type&&delete n[e]}),e.setAccountData("m.widgets",n)}static makeAppConfig(e,t,n,o,r){if(!n)throw new Error("Widgets must be created by someone - provide a senderUserId");return t.creatorUserId=n,t.id=e,t.roomId=o,t.eventId=r,t.name=t.name||t.type,t}static getCapWhitelistForAppTypeInRoomId(e,t){const n=c.b.getValue("enableWidgetScreenshots",t)?[p.MatrixCapabilities.Screenshots]:[];return u.a.JITSI.matches(e)&&n.push(p.MatrixCapabilities.AlwaysOnScreen),n}static getLocalJitsiWrapperUrl(e={}){const t=["conferenceDomain=$domain","conferenceId=$conferenceId","isAudioOnly=$isAudioOnly","displayName=$matrix_display_name","avatarUrl=$matrix_avatar_url","userId=$matrix_user_id","roomId=$matrix_room_id","theme=$theme","roomName=$roomName"];e.auth&&t.push("auth="+e.auth);const n=t.join("&");let o=window.location.href;"https:"===window.location.protocol||e.forLocalRender||(o="https://app.element.io/");return new URL("jitsi.html#"+n,o).href}static getWidgetName(e){var t;return(null==e||null===(t=e.name)||void 0===t?void 0:t.trim())||Object(h.a)("Unknown App")}static getWidgetDataTitle(e){var t,n;return(null==e||null===(t=e.data)||void 0===t||null===(n=t.title)||void 0===n?void 0:n.trim())||""}static editWidget(e,t){c.b.getValue("feature_many_integration_managers")?l.a.sharedInstance().openAll(e,"type_"+t.type,t.id):l.a.sharedInstance().getPrimaryManager().open(e,"type_"+t.type,t.id)}static isManagedByManager(e){if(m.isScalarUrl(e.url)){const e=l.a.sharedInstance();if(e.hasManager()){const t=e.getPrimaryManager();return m.isScalarUrl(t.apiUrl)}}return!1}}},function(e,t,n){"use strict";let o;n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return r})),function(e){e.RoomMemberList="RoomMemberList",e.FilePanel="FilePanel",e.NotificationPanel="NotificationPanel",e.RoomMemberInfo="RoomMemberInfo",e.EncryptionPanel="EncryptionPanel",e.RoomSummary="RoomSummary",e.Widget="Widget",e.Room3pidMemberInfo="Room3pidMemberInfo",e.GroupMemberList="GroupMemberList",e.GroupRoomList="GroupRoomList",e.GroupRoomInfo="GroupRoomInfo",e.GroupMemberInfo="GroupMemberInfo"}(o||(o={}));const r=[o.RoomSummary,o.NotificationPanel,o.FilePanel,o.RoomMemberList,o.GroupMemberList,o.GroupRoomList]},function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var o=n(83),r=n.n(o),i=n(87),a=n(106);class s{constructor(e){r()(this,"matrixClient",void 0),r()(this,"roomToUser",null),r()(this,"userToRooms",null),r()(this,"hasSentOutPatchDirectAccountDataPatch",void 0),r()(this,"mDirectEvent",void 0),r()(this,"onAccountData",e=>{"m.direct"==e.getType()&&(this.mDirectEvent=this.matrixClient.getAccountData("m.direct").getContent()||{},this.userToRooms=null,this.roomToUser=null)}),this.matrixClient=e,this.hasSentOutPatchDirectAccountDataPatch=!1;const t=e.getAccountData("m.direct");this.mDirectEvent=t?t.getContent():{}}static makeShared(){return s.sharedInstance=new s(i.a.get()),s.sharedInstance}static shared(){return s.sharedInstance}start(){this.populateRoomToUser(),this.matrixClient.on("accountData",this.onAccountData)}stop(){this.matrixClient.removeListener("accountData",this.onAccountData)}patchUpSelfDMs(e){const t=this.matrixClient.getUserId(),n=e[t];if(n){const o=n.map(e=>{const n=this.matrixClient.getRoom(e);if(n){const o=n.guessDMUserId();if(o&&o!==t)return{userId:o,roomId:e}}}).filter(e=>!!e);return!!o.length&&(e[t]=n.filter(e=>!o.some(t=>t.roomId===e)),o.forEach(({userId:t,roomId:n})=>{const o=e[t];o?(o.push(n),e[t]=Object(a.uniq)(o)):e[t]=[n]}),!0)}}getDMRoomsForUserId(e){return this.getUserToRooms()[e]||[]}getDMRoomForIdentifiers(e){let t=this.getDMRoomsForUserId(e[0]);for(let n=1;no.includes(e))}return t.map(e=>i.a.get().getRoom(e)).filter(e=>e&&"join"===e.getMyMembership())[0]}getUserIdForRoomId(e){if(null==this.roomToUser&&this.populateRoomToUser(),void 0===this.roomToUser[e]){const t=this.matrixClient.getRoom(e);if(t)return t.getDMInviter()}return this.roomToUser[e]}getUniqueRoomsWithIndividuals(){return this.roomToUser?Object.keys(this.roomToUser).map(e=>({userId:this.getUserIdForRoomId(e),room:this.matrixClient.getRoom(e)})).filter(e=>e.userId&&e.room&&2===e.room.getInvitedAndJoinedMemberCount()).reduce((e,t)=>(e[t.userId]=t.room)&&e,{}):{}}getUserToRooms(){if(!this.userToRooms){const e=this.mDirectEvent,t=e[this.matrixClient.getUserId()];if(t&&t.length){const t=this.patchUpSelfDMs(e);console.warn("Invalid m.direct account data detected (self-chats that shouldn't be), patching it up."),t&&!this.hasSentOutPatchDirectAccountDataPatch&&(this.hasSentOutPatchDirectAccountDataPatch=!0,this.matrixClient.setAccountData("m.direct",e))}this.userToRooms=e}return this.userToRooms}populateRoomToUser(){this.roomToUser={};for(const e of Object.keys(this.getUserToRooms()))for(const t of this.userToRooms[e])this.roomToUser[t]=e}}r()(s,"sharedInstance",void 0)},function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return i})),n.d(t,"d",(function(){return a})),n.d(t,"c",(function(){return s}));var o=n(516);let r;!function(e){e.Invite="im.vector.fake.invite",e.Untagged="im.vector.fake.recent",e.Archived="im.vector.fake.archived",e.LowPriority="m.lowpriority",e.Favourite="m.favourite",e.DM="im.vector.fake.direct",e.ServerNotice="m.server_notice"}(r||(r={}));const i=[r.Invite,r.Favourite,r.DM,r.Untagged,r.LowPriority,r.ServerNotice,r.Archived];function a(e){return!Object(o.b)(r,e)}let s;!function(e){e.Timeline="TIMELINE",e.PossibleTagChange="POSSIBLE_TAG_CHANGE",e.ReadReceipt="READ_RECEIPT",e.NewRoom="NEW_ROOM",e.RoomRemoved="ROOM_REMOVED"}(s||(s={}))},function(e,t,n){"use strict";(function(e){n.d(t,"b",(function(){return F})),n.d(t,"a",(function(){return P})),n.d(t,"c",(function(){return L}));var o=n(83),r=n.n(o),i=n(82),a=n.n(i),s=n(87),c=n(105),l=n(90),u=n(84),d=n(117),h=n(88),p=n(119),m=n(233),g=n(89),f=n(413),_=n(130),b=n(97),v=n(577),y=n(141),E=n(137),S=n(187),w=n(248),C=n(13),T=n(112),x=n(104),k=n(102),O=n(0),R=n(578),D=n(95),I=n(589),A=n(1013),N=n(159);const F="im.vector.is_virtual_room";var M;let P;!function(e){e.Ring="ringAudio",e.Ringback="ringbackAudio",e.CallEnd="callendAudio",e.Busy="busyAudio"}(M||(M={})),function(e){e.Voice="voice",e.Video="video",e.ScreenSharing="screensharing"}(P||(P={}));class L{constructor(){r()(this,"calls",new Map),r()(this,"audioPromises",new Map),r()(this,"dispatcherRef",null),r()(this,"supportsPstnProtocol",null),r()(this,"pstnSupportPrefixed",null),r()(this,"supportsSipNativeVirtual",null),r()(this,"pstnSupportCheckTimer",void 0),r()(this,"invitedRoomsAreVirtual",new Map),r()(this,"invitedRoomCheckInProgress",!1),r()(this,"onCallIncoming",e=>{h.a.dispatch({action:"incoming_call",call:e},!0)}),r()(this,"onAction",e=>{switch(e.action){case"place_call":{if(Object(A.b)())return void Object(A.a)(e.room_id);if(!s.a.get().supportsVoip())return void l.a.createTrackedDialog("Call Handler","VoIP is unsupported",E.a,{title:Object(u.a)("VoIP is unsupported"),description:Object(u.a)("You cannot place VoIP calls in this browser.")});if(this.getAllActiveCalls().length>1)return void l.a.createTrackedDialog("Call Handler","Existing Call",E.a,{title:Object(u.a)("Too Many Calls"),description:Object(u.a)("You've reached the maximum number of simultaneous calls.")});const t=s.a.get().getRoom(e.room_id);if(!t)return void console.error(`Room ${e.room_id} does not exist.`);const n=t.getJoinedMembers();if(n.length<=1)return void l.a.createTrackedDialog("Call Handler","Cannot place call with self",E.a,{description:Object(u.a)("You cannot place a call with yourself.")});2===n.length?(console.info(`Place ${e.type} call in ${e.room_id}`),this.placeCall(e.room_id,e.type,e.local_element,e.remote_element)):h.a.dispatch({action:"place_conference_call",room_id:e.room_id,type:e.type,remote_element:e.remote_element,local_element:e.local_element})}break;case"place_conference_call":console.info("Place conference call in "+e.room_id),T.a.trackEvent("voip","placeConferenceCall"),x.a.instance.trackStartCall(e.room_id,e.type===P.Video,!0),this.startCallApp(e.room_id,e.type);break;case"end_conference":console.info("Terminating conference call in "+e.room_id),this.terminateCallApp(e.room_id);break;case"hangup_conference":console.info("Leaving conference call in "+e.room_id),this.hangupCallApp(e.room_id);break;case"incoming_call":{if(!s.a.get().supportsVoip())return;const t=e.call,n=L.roomIdForCall(t);if(this.getCallForRoom(n))return;T.a.trackEvent("voip","receiveCall","type",t.type),this.calls.set(n,t),this.setCallListeners(t);const o=s.a.get();o.prepareToEncrypt(o.getRoom(t.roomId))}break;case"hangup":case"reject":if(!this.calls.get(e.room_id))return;"reject"===e.action?this.calls.get(e.room_id).reject():this.calls.get(e.room_id).hangup(d.b.UserHangup,!1);break;case"answer":{if(!this.calls.has(e.room_id))return;if(this.getAllActiveCalls().length>1)return void l.a.createTrackedDialog("Call Handler","Existing Call",E.a,{title:Object(u.a)("Too Many Calls"),description:Object(u.a)("You've reached the maximum number of simultaneous calls.")});const t=this.calls.get(e.room_id);t.answer(),this.setCallAudioElement(t),this.setActiveCallRoomId(e.room_id),x.a.instance.trackJoinCall(e.room_id,t.type===d.f.Video,!1),h.a.dispatch({action:"view_room",room_id:e.room_id});break}}})}static sharedInstance(){return window.mxCallHandler||(window.mxCallHandler=new L),window.mxCallHandler}static roomIdForCall(e){return e?I.a.sharedInstance().nativeRoomForVirtualRoom(e.roomId)||e.roomId:null}start(){this.dispatcherRef=h.a.register(this.onAction),navigator.mediaSession&&(navigator.mediaSession.setActionHandler("play",(function(){})),navigator.mediaSession.setActionHandler("pause",(function(){})),navigator.mediaSession.setActionHandler("seekbackward",(function(){})),navigator.mediaSession.setActionHandler("seekforward",(function(){})),navigator.mediaSession.setActionHandler("previoustrack",(function(){})),navigator.mediaSession.setActionHandler("nexttrack",(function(){}))),g.b.getValue(k.a.Voip)&&s.a.get().on("Call.incoming",this.onCallIncoming),this.checkProtocols(3)}stop(){const e=s.a.get();e&&e.removeListener("Call.incoming",this.onCallIncoming),null!==this.dispatcherRef&&(h.a.unregister(this.dispatcherRef),this.dispatcherRef=null)}async checkProtocols(e){try{const e=await s.a.get().getThirdpartyProtocols();void 0!==e["m.protocol.pstn"]?(this.supportsPstnProtocol=Boolean(e["m.protocol.pstn"]),this.supportsPstnProtocol&&(this.pstnSupportPrefixed=!1)):void 0!==e["im.vector.protocol.pstn"]?(this.supportsPstnProtocol=Boolean(e["im.vector.protocol.pstn"]),this.supportsPstnProtocol&&(this.pstnSupportPrefixed=!0)):this.supportsPstnProtocol=null,h.a.dispatch({action:D.a.PstnSupportUpdated}),void 0!==e["im.vector.protocol.sip_native"]&&void 0!==e["im.vector.protocol.sip_virtual"]&&(this.supportsSipNativeVirtual=Boolean(e["im.vector.protocol.sip_native"]&&e["im.vector.protocol.sip_virtual"])),h.a.dispatch({action:D.a.VirtualRoomSupportUpdated})}catch(t){1===e?console.log("Failed to check for protocol support and no retries remain: assuming no support",t):(console.log("Failed to check for protocol support: will retry",t),this.pstnSupportCheckTimer=setTimeout(()=>{this.checkProtocols(e-1)},1e4))}}getSupportsPstnProtocol(){return this.supportsPstnProtocol}getSupportsVirtualRooms(){return this.supportsPstnProtocol}pstnLookup(e){return s.a.get().getThirdpartyUser(this.pstnSupportPrefixed?"im.vector.protocol.pstn":"m.protocol.pstn",{"m.id.phone":e})}sipVirtualLookup(e){return s.a.get().getThirdpartyUser("im.vector.protocol.sip_virtual",{native_mxid:e})}sipNativeLookup(e){return s.a.get().getThirdpartyUser("im.vector.protocol.sip_native",{virtual_mxid:e})}getCallForRoom(e){return this.calls.get(e)||null}getAnyActiveCall(){for(const e of this.calls.values())if(e.state!==d.e.Ended)return e;return null}getAllActiveCalls(){const e=[];for(const t of this.calls.values())t.state!==d.e.Ended&&t.state!==d.e.Ringing&&e.push(t);return e}getAllActiveCallsNotInRoom(e){const t=[];for(const[n,o]of this.calls.entries())n!==e&&o.state!==d.e.Ended&&t.push(o);return t}play(e){const t=document.getElementById(e);if(t){const n=async()=>{try{await t.play()}catch(e){console.log("Unable to play audio clip",e)}};this.audioPromises.has(e)?this.audioPromises.set(e,this.audioPromises.get(e).then(()=>(t.load(),n()))):this.audioPromises.set(e,n())}}pause(e){const t=document.getElementById(e);t&&(this.audioPromises.has(e)?this.audioPromises.set(e,this.audioPromises.get(e).then(()=>t.pause())):t.pause())}matchesCallForThisRoom(e){const t=L.roomIdForCall(e),n=this.getCallForRoom(t);return n&&e.callId===n.callId}setCallListeners(e){const t=L.roomIdForCall(e);e.on(d.c.Error,t=>{this.matchesCallForThisRoom(e)&&(T.a.trackEvent("voip","callError","error",t.toString()),console.error("Call error:",t),t.code!==d.b.NoUserMedia?0!==s.a.get().getTurnServers().length||null!==g.b.getValue("fallbackICEServerAllowed")?l.a.createTrackedDialog("Call Failed","",E.a,{title:Object(u.a)("Call Failed"),description:t.message}):this.showICEFallbackPrompt():this.showMediaCaptureError(e))}),e.on(d.c.Hangup,()=>{this.matchesCallForThisRoom(e)&&(T.a.trackEvent("voip","callHangup"),this.removeCallForRoom(t))}),e.on(d.c.State,(n,o)=>{if(this.matchesCallForThisRoom(e)){switch(this.setCallState(e,n),o){case d.e.Ringing:this.pause(M.Ring);break;case d.e.InviteSent:this.pause(M.Ringback)}switch(n){case d.e.Ringing:this.play(M.Ring);break;case d.e.InviteSent:this.play(M.Ringback);break;case d.e.Ended:if(T.a.trackEvent("voip","callEnded","hangupReason",e.hangupReason),this.removeCallForRoom(t),o===d.e.InviteSent&&(e.hangupParty===d.d.Remote||e.hangupParty===d.d.Local&&e.hangupReason===d.b.InviteTimeout)){let t,n;this.play(M.Busy),e.hangupReason===d.b.UserHangup?(t=Object(u.a)("Call Declined"),n=Object(u.a)("The other party declined the call.")):e.hangupReason===d.b.InviteTimeout?(t=Object(u.a)("Call Failed"),n=Object(u.a)("The remote side failed to pick up")+"."):(t=Object(u.a)("Call Failed"),n=Object(u.a)("The call could not be established")),l.a.createTrackedDialog("Call Handler","Call Failed",E.a,{title:t,description:n})}else e.hangupReason===d.b.AnsweredElsewhere&&o===d.e.Connecting?l.a.createTrackedDialog("Call Handler","Call Failed",E.a,{title:Object(u.a)("Answered Elsewhere"),description:Object(u.a)("The call was answered on another device.")}):o!==d.e.Fledgling&&o!==d.e.Ringing&&this.play(M.CallEnd);this.logCallStats(e,t)}}}),e.on(d.c.Replaced,n=>{this.matchesCallForThisRoom(e)&&(console.log(`Call ID ${e.callId} is being replaced by call ID ${n.callId}`),e.state===d.e.Ringing?this.pause(M.Ring):e.state===d.e.InviteSent&&this.pause(M.Ringback),this.calls.set(t,n),this.setCallListeners(n),this.setCallState(n,n.state))})}async logCallStats(e,t){const n=await e.getCurrentCallStats();if(O.b.debug(`Call completed. Call ID: ${e.callId}, virtual room ID: ${e.roomId}, user-facing room ID: ${t}, direction: ${e.direction}, our Party ID: ${e.ourPartyId}, hangup party: ${e.hangupParty}, hangup reason: `+e.hangupReason),n){O.b.debug("Local candidates:");for(const e of n.filter(e=>"local-candidate"===e.type)){const t=e.address||e.ip;O.b.debug(`${e.id} - type: ${e.candidateType}, address: ${t}, port: ${e.port}, protocol: ${e.protocol}, relay protocol: ${e.relayProtocol}, network type: ${e.networkType}`)}O.b.debug("Remote candidates:");for(const e of n.filter(e=>"remote-candidate"===e.type)){const t=e.address||e.ip;O.b.debug(`${e.id} - type: ${e.candidateType}, address: ${t}, port: ${e.port}, protocol: `+e.protocol)}O.b.debug("Candidate pairs:");for(const e of n.filter(e=>"candidate-pair"===e.type))O.b.debug(`${e.localCandidateId} / ${e.remoteCandidateId} - state: ${e.state}, nominated: ${e.nominated}, requests sent ${e.requestsSent}, requests received ${e.requestsReceived}, responses received: ${e.responsesReceived}, responses sent: ${e.responsesSent}, bytes received: ${e.bytesReceived}, bytes sent: ${e.bytesSent}, `)}else O.b.debug("Call statistics are undefined. The call has probably failed before a peerConn was established")}setCallAudioElement(e){const t=function(){const e=document.getElementById("remoteAudio");return e||(console.error("Failed to find remoteAudio element - cannot play audio!You need to add an