@liascript/exporter 3.3.6--1.0.10 → 3.3.8--1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. package/dist/assets/capacitor/Gun.772ecc6f.js +1 -0
  2. package/dist/assets/capacitor/Gun.b9900b92.js +1 -0
  3. package/dist/assets/capacitor/PeerJS.b46119d0.js +1 -0
  4. package/dist/assets/capacitor/index.50355c36.js +2 -0
  5. package/dist/assets/capacitor/index.58ce16fc.js +1 -0
  6. package/dist/assets/capacitor/{index.406bbc6e.css → index.ccf429fe.css} +1 -1
  7. package/dist/assets/capacitor/index.html +1 -1
  8. package/dist/assets/capacitor/{jszip.min.8d875ed3.js → jszip.min.5cd662bc.js} +1 -1
  9. package/dist/assets/indexeddb/Gun.17d6e5b9.js +1 -0
  10. package/dist/assets/indexeddb/Gun.203c9130.js +1 -0
  11. package/dist/assets/indexeddb/Gun.5dcdf1ee.js +1 -0
  12. package/dist/assets/indexeddb/Gun.8bed516b.js +1 -0
  13. package/dist/assets/indexeddb/PeerJS.37c67b75.js +1 -0
  14. package/dist/assets/indexeddb/PeerJS.ab0680e6.js +1 -0
  15. package/dist/assets/indexeddb/index.38c8ee75.js +1 -0
  16. package/dist/assets/indexeddb/index.a9ef23c3.js +1 -0
  17. package/dist/assets/{scorm2004/index.75ce53cb.css → indexeddb/index.b9f6b7ec.css} +1 -1
  18. package/dist/assets/indexeddb/index.html +1 -1
  19. package/dist/assets/indexeddb/{jszip.min.4fbcc13f.js → jszip.min.63142cc8.js} +1 -1
  20. package/dist/assets/pdf/index.04bea7d8.js +1 -0
  21. package/dist/assets/pdf/index.f63b4d54.js +1 -0
  22. package/dist/assets/pdf/{index.fda685a7.css → index.fc297547.css} +1 -1
  23. package/dist/assets/pdf/index.html +1 -1
  24. package/dist/assets/scorm1.2/Gun.17d6e5b9.js +1 -0
  25. package/dist/assets/scorm1.2/Gun.203c9130.js +1 -0
  26. package/dist/assets/scorm1.2/Gun.5dcdf1ee.js +1 -0
  27. package/dist/assets/scorm1.2/Gun.8bed516b.js +1 -0
  28. package/dist/assets/scorm1.2/PeerJS.37c67b75.js +1 -0
  29. package/dist/assets/scorm1.2/PeerJS.ab0680e6.js +1 -0
  30. package/dist/assets/scorm1.2/index.4649d9aa.js +1 -0
  31. package/dist/assets/scorm1.2/index.817342ed.js +1 -0
  32. package/dist/assets/{indexeddb/index.75ce53cb.css → scorm1.2/index.b9f6b7ec.css} +1 -1
  33. package/dist/assets/scorm1.2/index.html +1 -1
  34. package/dist/assets/scorm2004/Gun.17d6e5b9.js +1 -0
  35. package/dist/assets/scorm2004/Gun.203c9130.js +1 -0
  36. package/dist/assets/scorm2004/Gun.5dcdf1ee.js +1 -0
  37. package/dist/assets/scorm2004/Gun.8bed516b.js +1 -0
  38. package/dist/assets/scorm2004/PeerJS.37c67b75.js +1 -0
  39. package/dist/assets/scorm2004/PeerJS.ab0680e6.js +1 -0
  40. package/dist/assets/{web/index.75ce53cb.css → scorm2004/index.b9f6b7ec.css} +1 -1
  41. package/dist/assets/scorm2004/index.e49d8c81.js +1 -0
  42. package/dist/assets/scorm2004/index.f63ce2bc.js +1 -0
  43. package/dist/assets/scorm2004/index.html +1 -1
  44. package/dist/assets/web/Gun.17d6e5b9.js +1 -0
  45. package/dist/assets/web/Gun.203c9130.js +1 -0
  46. package/dist/assets/web/Gun.5dcdf1ee.js +1 -0
  47. package/dist/assets/web/Gun.8bed516b.js +1 -0
  48. package/dist/assets/web/PeerJS.37c67b75.js +1 -0
  49. package/dist/assets/web/PeerJS.ab0680e6.js +1 -0
  50. package/dist/assets/{scorm1.2/index.75ce53cb.css → web/index.b9f6b7ec.css} +1 -1
  51. package/dist/assets/web/index.cdc5c4af.js +1 -0
  52. package/dist/assets/web/index.d3734c27.js +1 -0
  53. package/dist/assets/web/index.html +1 -1
  54. package/dist/assets/xapi/Gun.17d6e5b9.js +1 -0
  55. package/dist/assets/xapi/Gun.5dcdf1ee.js +1 -0
  56. package/dist/assets/xapi/Gun.86201f0c.js +1 -0
  57. package/dist/assets/xapi/Gun.8bed516b.js +1 -0
  58. package/dist/assets/xapi/{PeerJS.c6cb8f4b.js → PeerJS.a9660005.js} +1 -1
  59. package/dist/assets/xapi/PeerJS.ab0680e6.js +1 -0
  60. package/dist/assets/xapi/index.b94732ac.js +1 -0
  61. package/dist/assets/xapi/index.b9f6b7ec.css +1 -0
  62. package/dist/assets/xapi/index.d8062eef.js +1 -0
  63. package/dist/assets/xapi/index.html +1 -1
  64. package/dist/index.js +4 -21
  65. package/package.json +9 -9
  66. package/dist/assets/capacitor/Gun.4c0ee714.js +0 -1
  67. package/dist/assets/capacitor/Gun.4caccb95.js +0 -1
  68. package/dist/assets/capacitor/PeerJS.a3900a77.js +0 -1
  69. package/dist/assets/capacitor/index.076fddd4.js +0 -1
  70. package/dist/assets/capacitor/index.6532983b.js +0 -2
  71. package/dist/assets/indexeddb/Gun.1b2824ad.js +0 -1
  72. package/dist/assets/indexeddb/Gun.52ff6547.js +0 -1
  73. package/dist/assets/indexeddb/Gun.c27cd89a.js +0 -1
  74. package/dist/assets/indexeddb/Gun.e5be0383.js +0 -1
  75. package/dist/assets/indexeddb/PeerJS.877663fc.js +0 -1
  76. package/dist/assets/indexeddb/PeerJS.daf2ca21.js +0 -1
  77. package/dist/assets/indexeddb/index.11cfd3a5.js +0 -1
  78. package/dist/assets/indexeddb/index.2dc41135.js +0 -1
  79. package/dist/assets/pdf/index.6c7e8237.js +0 -1
  80. package/dist/assets/pdf/index.e21e9c0d.js +0 -1
  81. package/dist/assets/scorm1.2/Gun.1b2824ad.js +0 -1
  82. package/dist/assets/scorm1.2/Gun.52ff6547.js +0 -1
  83. package/dist/assets/scorm1.2/Gun.c27cd89a.js +0 -1
  84. package/dist/assets/scorm1.2/Gun.e5be0383.js +0 -1
  85. package/dist/assets/scorm1.2/PeerJS.877663fc.js +0 -1
  86. package/dist/assets/scorm1.2/PeerJS.daf2ca21.js +0 -1
  87. package/dist/assets/scorm1.2/index.0a7eae2e.js +0 -1
  88. package/dist/assets/scorm1.2/index.ee6a673a.js +0 -1
  89. package/dist/assets/scorm2004/Gun.1b2824ad.js +0 -1
  90. package/dist/assets/scorm2004/Gun.52ff6547.js +0 -1
  91. package/dist/assets/scorm2004/Gun.c27cd89a.js +0 -1
  92. package/dist/assets/scorm2004/Gun.e5be0383.js +0 -1
  93. package/dist/assets/scorm2004/PeerJS.877663fc.js +0 -1
  94. package/dist/assets/scorm2004/PeerJS.daf2ca21.js +0 -1
  95. package/dist/assets/scorm2004/index.1425a438.js +0 -1
  96. package/dist/assets/scorm2004/index.27259952.js +0 -1
  97. package/dist/assets/web/Gun.1b2824ad.js +0 -1
  98. package/dist/assets/web/Gun.52ff6547.js +0 -1
  99. package/dist/assets/web/Gun.c27cd89a.js +0 -1
  100. package/dist/assets/web/Gun.e5be0383.js +0 -1
  101. package/dist/assets/web/PeerJS.877663fc.js +0 -1
  102. package/dist/assets/web/PeerJS.daf2ca21.js +0 -1
  103. package/dist/assets/web/index.68795b8d.js +0 -1
  104. package/dist/assets/web/index.6f7231d7.js +0 -1
  105. package/dist/assets/xapi/Gun.1b2824ad.js +0 -1
  106. package/dist/assets/xapi/Gun.52ff6547.js +0 -1
  107. package/dist/assets/xapi/Gun.618f30fa.js +0 -1
  108. package/dist/assets/xapi/Gun.e5be0383.js +0 -1
  109. package/dist/assets/xapi/PeerJS.daf2ca21.js +0 -1
  110. package/dist/assets/xapi/index.720250aa.js +0 -1
  111. package/dist/assets/xapi/index.75ce53cb.css +0 -1
  112. package/dist/assets/xapi/index.9225cbf5.js +0 -1
  113. /package/dist/assets/{xapi → scorm2004}/jszip.min.eaecf580.js +0 -0
  114. /package/dist/assets/{scorm2004 → xapi}/jszip.min.19c66d77.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liascript/exporter",
3
- "version": "3.3.6--1.0.10",
3
+ "version": "3.3.8--1.1.0",
4
4
  "description": "A generic exporter for LiaScript",
5
5
  "main": "dist/index.js",
6
6
  "repository": {
@@ -23,18 +23,18 @@
23
23
  ],
24
24
  "scripts": {
25
25
  "__postinstall": "npx puppeteer browsers install chrome",
26
- "__preinstall": "cd LiaScript && npm i && npm run build:scorm1.2 && cp -r dist ../assets/scorm1.2",
26
+ "__preinstall": "cd LiaScript && npm i --allow-git=all && npm run build:scorm1.2 && cp -r dist ../assets/scorm1.2",
27
27
  "build:assets": "npm run clean && npm run asset:scorm1.2 && npm run asset:scorm2004 && npm run asset:xapi && npm run asset:web && npm run asset:indexeddb && npm run asset:pdf && npm run asset:capacitor && npm run asset:logo && npm run fix:file",
28
28
  "build:docker": "docker build -t liascript/exporter:latest .",
29
29
  "clean": "rm -rf dist/assets/*",
30
30
  "asset:logo": "cp -r LiaScript/resources dist",
31
- "asset:web": "cd LiaScript && npm i && npm run build:base && cp -r dist ../dist/assets/web",
32
- "asset:pdf": "cd LiaScript && git stash && git checkout feat/fullPage && rm -rf node_modules && npm i && npm run build:pdf && cp -r dist ../dist/assets/pdf && git checkout development && rm -rf node_modules && npm i",
33
- "asset:scorm1.2": "cd LiaScript && npm i && npm run build:scorm1.2 && cp -r dist ../dist/assets/scorm1.2",
34
- "asset:scorm2004": "cd LiaScript && npm i && npm run build:scorm2004 && cp -r dist ../dist/assets/scorm2004",
35
- "asset:indexeddb": "cd LiaScript && npm i && npm run build:indexeddb && cp -r dist ../dist/assets/indexeddb",
36
- "asset:xapi": "cd LiaScript && npm i && npm run build:xapi && cp -r dist ../dist/assets/xapi",
37
- "asset:capacitor": "cd LiaScript && git stash && git checkout feat/capacitor8 && rm -rf node_modules && npm i && npm run build:indexeddb && cp -r dist ../dist/assets/capacitor && git checkout development && rm -rf node_modules && npm i",
31
+ "asset:web": "cd LiaScript && npm i --allow-git=all && npm run build:base && cp -r dist ../dist/assets/web",
32
+ "asset:pdf": "cd LiaScript && npm i --allow-git=all && git checkout feat/fullPage && rm -rf node_modules .parcel-cache elm-stuff && npm i --allow-git=all && npm run build:pdf && cp -r dist ../dist/assets/pdf && git checkout development && rm -rf node_modules && npm i --allow-git=all",
33
+ "asset:scorm1.2": "cd LiaScript && npm i --allow-git=all && npm run build:scorm1.2 && cp -r dist ../dist/assets/scorm1.2",
34
+ "asset:scorm2004": "cd LiaScript && npm i --allow-git=all && npm run build:scorm2004 && cp -r dist ../dist/assets/scorm2004",
35
+ "asset:indexeddb": "cd LiaScript && npm i --allow-git=all && npm run build:indexeddb && cp -r dist ../dist/assets/indexeddb",
36
+ "asset:xapi": "cd LiaScript && npm i --allow-git=all && npm run build:xapi && cp -r dist ../dist/assets/xapi",
37
+ "asset:capacitor": "cd LiaScript && npm i --allow-git=all && git checkout feat/capacitor8 && rm -rf node_modules .parcel-cache elm-stuff && npm i --allow-git=all && npm run build:indexeddb && cp -r dist ../dist/assets/capacitor && git checkout development && rm -rf node_modules && npm i --allow-git=all",
38
38
  "asset:deduplicate": "./scripts/deduplicate-assets.sh",
39
39
  "build": "npx parcel build --no-cache --no-source-maps src/index.ts && npm run shebang && npm run copy:public && npm run copy:presets",
40
40
  "build:all": "npm run clean && npm run build:assets && npm run asset:deduplicate && cp -r dist/assets/common/* dist/assets/pdf && npm run build && npm run minify",
@@ -1 +0,0 @@
1
- !function(e,t,n,s,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof i[s]&&i[s],a=o.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function u(t,n){if(!a[t]){if(!e[t]){var r="function"==typeof i[s]&&i[s];if(!n&&r)return r(t,!0);if(o)return o(t,!0);if(c&&"string"==typeof t)return c(t);var h=new Error("Cannot find module '"+t+"'");throw h.code="MODULE_NOT_FOUND",h}l.resolve=function(n){var s=e[t][1][n];return null!=s?s:n},l.cache={};var d=a[t]=new u.Module(t);e[t][0].call(d.exports,l,d,d.exports,this)}return a[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:u(t)}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=a,u.parent=o,u.register=function(t,n){e[t]=[function(e,t){t.exports=n},{}]},Object.defineProperty(u,"root",{get:function(){return i[s]}}),i[s]=u;for(var h=0;h<t.length;h++)u(t[h])}({bgO1Z:[function(e,t,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(n),s.export(n,"Sync",(()=>a));var r=e("../Base/index"),i=e("../../../../node_modules/y-generic/dist/providers/gun/index"),o=e("y-generic");Object.defineProperty(Array.prototype,"flat",{value:function(e=1){return this.reduce((function(t,n){return t.concat(Array.isArray(n)&&e>1?n.flat(e-1):n)}),[])}});class a extends r.Sync{store="";gunServer=[];persistent=!1;syncFallbackTimer=null;destroy(){null!==this.syncFallbackTimer&&(clearTimeout(this.syncFallbackTimer),this.syncFallbackTimer=null),super.destroy(),this.gunServer=[],this.provider?.disconnect()}uniqueID(){const e=super.uniqueID();return e?btoa(e+(this.persistent?"p":"")):null}async connect(e){super.connect(e),this.gunServer=e.config?.urls||[],this.persistent=e.config?.persistent||!1,window.Gun&&window.Gun?.SEA?this.init(!0):this.load(["https://cdn.jsdelivr.net/npm/gun/gun.js","https://cdn.jsdelivr.net/npm/gun/sea.js"],this)}init(e,t){if(0==this.gunServer.length)return this.sendDisconnectError("You have to provide at least one relay server.");const n=this.uniqueID();if(e&&window.Gun&&n){this.transport=new(0,i.GunTransport)({gun:window.Gun,sea:window.Gun?.SEA,peers:this.gunServer,debug:!1,batchInterval:200,gunOptions:{localStorage:!1,radisk:!1},password:this.password}),this.store=n,this.provider=new(0,o.GenericProvider)(this.db.doc,this.transport),this.db.setAwareness(this.provider.awareness);let e=!1;const t=()=>{e||(e=!0,null!==this.syncFallbackTimer&&(clearTimeout(this.syncFallbackTimer),this.syncFallbackTimer=null),this.sendConnect())};this.provider.on("synced",(e=>{console.log("Document synchronized",e.synced),t()})),this.provider.on("status",(e=>{const n=e.state;console.log(`Status changed: ${n}`,"info"),"connected"===n?this.syncFallbackTimer=setTimeout((()=>{console.log("Sync fallback: no remote peers, proceeding as first peer"),t()}),2e3):"disconnected"===n?console.warn("Disconnected from GunDB relay server"):console.warn(`GunDB status: ${n}`)})),this.provider.pubsub.subscribe("*",((e,t)=>{this.onReceive?.(t,e)})),this.provider.connect({room:this.store})}else{let e="GunDB unknown error";t?e="Could not load resource: "+t:window.Gun?window.Gun?.SEA||(e="Could not load GunDB SEA security module"):e="Could not load GunDB interface",this.sendDisconnectError(e)}}pubsubSend(e,t){this.provider&&(this.provider.pubsub.publish(e,t),this.replyOnReceive&&this.onReceive?.(e,t))}}},{"../Base/index":"2cTju","../../../../node_modules/y-generic/dist/providers/gun/index":"dCfeB","y-generic":"3M9RT","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],dCfeB:[function(e,t,n){var s=e("@parcel/transformer-js/src/esmodule-helpers.js");s.defineInteropFlag(n),s.export(n,"GunTransport",(()=>r));class r{constructor(e){if(this._connected=!1,this._room="",this.gun=null,this.roomNode=null,this.updateListener=null,this.lastUpdateTime=0,this.updateBatch=[],this.processedUpdates=new Set,this.connectionTime=0,this.pendingUpdates=new Map,this.updateSlot=0,this.BUFFER_SIZE=20,this.awarenessListener=null,this.lastAwarenessId="",this.encryptionEnabled=!1,!e.gun)throw new Error('GunTransport requires the "gun" option. Please provide the Gun constructor: import Gun from "gun"; new GunTransport({ gun: Gun, ... })');if(e.password&&!e.sea)throw new Error('GunTransport requires the "sea" option when using password encryption. Please provide Gun.SEA: import "gun/sea"; new GunTransport({ gun: Gun, sea: Gun.SEA, password: "..." })');this.options={gun:e.gun,peers:e.peers??[],gunOptions:e.gunOptions??{},debug:e.debug??!1,batchInterval:e.batchInterval??100,password:e.password,sea:e.sea},this.encryptionEnabled=!(!e.password||!e.sea),this.encryptionEnabled&&this.log("🔐 Encryption enabled")}async connect(e){if(this._connected)throw new Error("Already connected");this._room=e.room,this.connectionTime=Date.now(),this.log("🔗 Initializing Gun...");const t={localStorage:!1,radisk:!1,...this.options.gunOptions};this.options.peers.length>0&&(t.peers=this.options.peers,this.log("📡 Connecting to peers:",this.options.peers)),this.gun=new this.options.gun(t),this.roomNode=this.gun.get(`yjs-room-${this._room}`),this.log("✅ Gun initialized for room:",this._room),this.setupUpdateListener(),this.setupAwarenessListener(),this._connected=!0}setupUpdateListener(){let e=0;let t=!1;this.roomNode.get("updates").once((e=>{if(!e)return t=!0,void this.log("📭 No existing updates found");this.log("📥 Loading initial state..."),Object.keys(e).forEach((t=>{if("_"===t)return;const n=e[t];if(!n||!n.data)return;const s=`${t}-${n.sequence||Math.floor(n.timestamp/100)}`;this.processedUpdates.has(s)||this.pendingUpdates.set(s,n)})),this.processPendingUpdates(),t=!0,this.log("✅ Initial state loaded")})),this.updateListener=this.roomNode.get("updates").map().on(((n,s)=>{if(!t)return;if(!n||!n.data)return;if(n.timestamp&&n.timestamp<this.connectionTime)return;const r=`${s}-${n.sequence||Math.floor(n.timestamp/100)}`;if(this.processedUpdates.has(r))return;this.pendingUpdates.set(r,n);const i=Date.now();i-e<300?this.throttleTimeout||(this.throttleTimeout=setTimeout((()=>{this.processPendingUpdates(),e=Date.now(),this.throttleTimeout=void 0}),300)):(e=i,this.processPendingUpdates())})),this.log("👂 Listening for new updates...")}async processPendingUpdates(){if(0===this.pendingUpdates.size)return;const e=Array.from(this.pendingUpdates.entries());this.pendingUpdates.clear();for(const[t,n]of e){if(this.processedUpdates.add(t),this.processedUpdates.size>200){const e=Array.from(this.processedUpdates);e.slice(0,e.length-200).forEach((e=>{this.processedUpdates.delete(e)}))}try{let t=n.data;if(n.encrypted&&this.encryptionEnabled&&(t=await this.decrypt(t),!t)){this.log("❌ Failed to decrypt update (wrong password?)");continue}const s=this.base64ToUint8Array(t);this._callback&&this._callback(s),1===e.length&&this.log("📥 Received update:",s.length,"bytes",n.encrypted?"(decrypted)":"")}catch(e){this.log("❌ Error processing update:",e)}}e.length>1&&this.log(`📥 Processed ${e.length} batched updates`)}disconnect(){this._connected&&(this.log("👋 Disconnecting..."),this.batchTimeout&&(clearTimeout(this.batchTimeout),this.batchTimeout=void 0),this.throttleTimeout&&(clearTimeout(this.throttleTimeout),this.throttleTimeout=void 0),this.processPendingUpdates(),this.flushBatch(),this.updateListener&&(this.updateListener=null),this.awarenessListener&&(this.awarenessListener=null),this.roomNode=null,this.gun=null,this._connected=!1,this.processedUpdates.clear(),this.pendingUpdates.clear(),this.log("✅ Disconnected"))}send(e){if(!this._connected||!this.roomNode)return void this.log("⚠️ Not connected, cannot send");1!==this.peekMessageType(e)?(this.updateBatch.push(e),this.batchTimeout&&clearTimeout(this.batchTimeout),this.batchTimeout=setTimeout((()=>{this.flushBatch()}),this.options.batchInterval)):this.sendAwareness(e)}peekMessageType(e){return e.length<5?-1:e[4]}async sendAwareness(e){let t=this.uint8ArrayToBase64(e);this.encryptionEnabled&&(t=await this.encrypt(t));const n=`aware-${Date.now()}-${Math.random().toString(36).substr(2,5)}`;this.lastAwarenessId=n,this.roomNode.get("awareness").put({data:t,id:n,timestamp:Date.now(),encrypted:this.encryptionEnabled}),this.log("📤 Sent awareness update",this.encryptionEnabled?"(encrypted)":"")}setupAwarenessListener(){this.awarenessListener=this.roomNode.get("awareness").on((async e=>{if(e&&e.data&&e.id!==this.lastAwarenessId&&!(e.timestamp&&e.timestamp<this.connectionTime))try{let t=e.data;if(e.encrypted&&this.encryptionEnabled&&(t=await this.decrypt(t),!t))return void this.log("❌ Failed to decrypt awareness (wrong password?)");const n=this.base64ToUint8Array(t);this._callback&&this._callback(n),this.log("📥 Received awareness update",e.encrypted?"(decrypted)":"")}catch(e){this.log("❌ Error processing awareness:",e)}})),this.log("👂 Listening for awareness updates...")}async flushBatch(){if(0===this.updateBatch.length)return;const e=this.updateBatch.reduce(((e,t)=>e+t.length),0),t=new Uint8Array(e);let n=0;for(const e of this.updateBatch)t.set(e,n),n+=e.length;this.updateBatch=[];let s=this.uint8ArrayToBase64(t);this.encryptionEnabled&&(s=await this.encrypt(s));const r=this.generateUpdateId(),i=Date.now(),o=Math.floor(i/100);this.processedUpdates.add(`${r}-${o}`);this.roomNode.get("updates").get(r).put({data:s,timestamp:i,sequence:o,size:t.length,encrypted:this.encryptionEnabled}),this.log("📤 Sent update:",t.length,"bytes",this.encryptionEnabled?"(encrypted)":"")}onMessage(e){return this._callback=e,()=>{this._callback=void 0}}get isConnected(){return this._connected}generateUpdateId(){const e=`slot-${this.updateSlot}`;return this.updateSlot=(this.updateSlot+1)%this.BUFFER_SIZE,e}uint8ArrayToBase64(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}base64ToUint8Array(e){const t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}async encrypt(e){return this.options.sea&&this.options.password?await this.options.sea.encrypt(e,this.options.password):e}async decrypt(e){if(!this.options.sea||!this.options.password)return e;try{return await this.options.sea.decrypt(e,this.options.password)||null}catch(e){return this.log("❌ Decryption failed:",e),null}}log(...e){this.options.debug&&console.log("[GunTransport]",...e)}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],fDdlt:[function(e,t,n){var s,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function c(e){if(s===setTimeout)return setTimeout(e,0);if((s===o||!s)&&setTimeout)return s=setTimeout,setTimeout(e,0);try{return s(e,0)}catch(t){try{return s.call(null,e,0)}catch(t){return s.call(this,e,0)}}}!function(){try{s="function"==typeof setTimeout?setTimeout:o}catch(e){s=o}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var u,h=[],d=!1,l=-1;function p(){d&&u&&(d=!1,u.length?h=u.concat(h):l=-1,h.length&&g())}function g(){if(!d){var e=c(p);d=!0;for(var t=h.length;t;){for(u=h,h=[];++l<t;)u&&u[l].run();l=-1,t=h.length}u=null,d=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===a||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{return r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}i.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];h.push(new f(e,t)),1!==h.length||d||c(g)},f.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=m,i.addListener=m,i.once=m,i.off=m,i.removeListener=m,i.removeAllListeners=m,i.emit=m,i.prependListener=m,i.prependOnceListener=m,i.listeners=function(e){return[]},i.binding=function(e){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(e){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},{}]},[],0,"parcelRequire55a5");
@@ -1 +0,0 @@
1
- !function(e,t,s,n,r){var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},a="function"==typeof i[n]&&i[n],o=a.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,s){if(!o[t]){if(!e[t]){var r="function"==typeof i[n]&&i[n];if(!s&&r)return r(t,!0);if(a)return a(t,!0);if(c&&"string"==typeof t)return c(t);var h=new Error("Cannot find module '"+t+"'");throw h.code="MODULE_NOT_FOUND",h}u.resolve=function(s){var n=e[t][1][s];return null!=n?n:s},u.cache={};var l=o[t]=new d.Module(t);e[t][0].call(l.exports,u,l,l.exports,this)}return o[t].exports;function u(e){var t=u.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.exports={}},d.modules=e,d.cache=o,d.parent=a,d.register=function(t,s){e[t]=[function(e,t){t.exports=s},{}]},Object.defineProperty(d,"root",{get:function(){return i[n]}}),i[n]=d;for(var h=0;h<t.length;h++)d(t[h])}({"3M9RT":[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"GenericProvider",(()=>r.GenericProvider)),n.export(s,"PubSubChannel",(()=>r.PubSubChannel)),n.export(s,"SyncHealthMonitor",(()=>i.SyncHealthMonitor)),n.export(s,"computeDocumentHash",(()=>i.computeDocumentHash));var r=e("./index"),i=e("./sync-monitor")},{"./index":"9b0Z3","./sync-monitor":"jgKsD","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],"9b0Z3":[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"PubSubChannel",(()=>g)),n.export(s,"GenericProvider",(()=>m));var r=e("yjs"),i=e("y-protocols/awareness"),a=e("y-protocols/sync"),o=e("lib0/encoding"),c=e("lib0/decoding"),d=e("lib0/observable"),h=e("lib0/broadcastchannel");const l=(()=>{const e=new Uint32Array(256);for(let t=0;t<256;t++){let s=t;for(let e=0;e<8;e++)s=1&s?s>>>1^3988292384:s>>>1;e[t]=s}return e})();function u(e){let t=4294967295;for(let s=0;s<e.length;s++)t=t>>>8^l[255&(t^e[s])];return(4294967295^t)>>>0}function p(e){const t=u(e),s=new Uint8Array(4+e.length);return s[0]=t>>>24&255,s[1]=t>>>16&255,s[2]=t>>>8&255,s[3]=255&t,s.set(e,4),s}function _(e){const t=r.encodeStateAsUpdate(e);let s=0;for(let e=0;e<t.length;e++)s=(s<<5)-s+t[e]|0;return s}class g extends d.Observable{constructor(e){super(),this.provider=e}publish(e,t){this.provider._sendPubSub(e,t)}subscribe(e,t){const s=(s,n)=>{"*"!==e&&e!==n||t(s,n)};return this.on("message",s),()=>this.off("message",s)}_handleMessage(e,t){this.emit("message",[t,e])}}class m extends d.Observable{constructor(e,t,s={}){super(),this._status={state:"disconnected"},this._synced=!1,this._destroying=!1,this._bcChannel="",this._bcConnected=!1,this._hashMismatchCount=0,this._lastHashMismatchTime=0,this._syncRequestTimes=[],this._maxSyncRequestsPerWindow=20,this._syncRequestWindowMs=1e4,this._localSeqNum=0,this._remoteSeqNums=new Map,this._corruptedMessageCount=0,this._lastCorruptedMessageTime=0,this._batchUpdates=0,this._pendingUpdate=null,this._awarenessInterval=100,this._pendingAwarenessClients=new Set,this._lastAwarenessTime=0,this.doc=e,this.transport=t,this.pubsub=new g(this),this.awareness=s.awareness||new i.Awareness(e),this._syncInterval=s.syncInterval??5e3,this._verifyUpdates=s.verifyUpdates??!0,this._batchUpdates=s.batchUpdates??0,this._disableBc=s.disableBc??!1,this._awarenessInterval=s.awarenessInterval??100,this._setupDocumentSync(),this._setupAwarenessSync()}async connect(e){if(this._destroying)throw new Error("Provider is being destroyed");if("connected"!==this._status.state)if("connecting"!==this._status.state){this._setStatus({state:"connecting"});try{if(this._setupBroadcastChannel(e),await this.transport.connect(e),this._unsubscribeTransport=this.transport.onMessage((e=>{this._handleIncomingMessage(e)})),this.transport.onPeerConnect){const e=this.transport.onPeerConnect((e=>{this._destroying||this.syncNow()})),t=this._unsubscribeTransport;this._unsubscribeTransport=()=>{t?.(),e()}}this._setStatus({state:"connected"}),this.syncNow(),this._broadcastAwareness([this.doc.clientID]),this._syncInterval>0&&(this._syncIntervalId=setInterval((()=>{if(this.transport.isConnected&&!this._destroying){const e=Date.now();this._syncRequestTimes=this._syncRequestTimes.filter((t=>e-t<this._syncRequestWindowMs)),this._syncRequestTimes.length<this._maxSyncRequestsPerWindow&&this._sendSyncStep1()}}),this._syncInterval))}catch(e){throw this._setStatus({state:"error",error:e instanceof Error?e:new Error(String(e))}),e}}else console.warn("[GenericProvider] Connection already in progress, ignoring connect() call");else console.warn("[GenericProvider] Already connected, ignoring connect() call")}disconnect(){if(void 0!==this._syncIntervalId&&(clearInterval(this._syncIntervalId),this._syncIntervalId=void 0),this._corruptedMessageCount=0,this._lastCorruptedMessageTime=0,void 0!==this._batchTimeoutId&&(clearTimeout(this._batchTimeoutId),this._batchTimeoutId=void 0,this._pendingUpdate&&this.transport.isConnected&&this._sendUpdate(this._pendingUpdate),this._pendingUpdate=null),void 0!==this._awarenessTimeoutId&&(clearTimeout(this._awarenessTimeoutId),this._awarenessTimeoutId=void 0,this._pendingAwarenessClients.size>0&&this.transport.isConnected)){const e=Array.from(this._pendingAwarenessClients);this._sendAwarenessNow(e)}this._pendingAwarenessClients.clear(),this._disconnectBroadcastChannel(),this._unsubscribeTransport&&(this._unsubscribeTransport(),this._unsubscribeTransport=void 0),i.removeAwarenessStates(this.awareness,[this.doc.clientID],"disconnect"),this.transport.disconnect(),this._synced=!1,this._setStatus({state:"disconnected"})}destroy(){this._destroying=!0,void 0!==this._syncIntervalId&&(clearInterval(this._syncIntervalId),this._syncIntervalId=void 0),void 0!==this._batchTimeoutId&&(clearTimeout(this._batchTimeoutId),this._batchTimeoutId=void 0,this._pendingUpdate&&this.transport.isConnected&&this._sendUpdate(this._pendingUpdate),this._pendingUpdate=null),this.disconnect(),this._updateHandler&&(this.doc.off("update",this._updateHandler),this._updateHandler=void 0),this._awarenessUpdateHandler&&(this.awareness.off("update",this._awarenessUpdateHandler),this._awarenessUpdateHandler=void 0),this._beforeUnloadHandler&&"undefined"!=typeof window&&(window.removeEventListener("beforeunload",this._beforeUnloadHandler),this._beforeUnloadHandler=void 0),this.awareness.destroy(),super.destroy()}get status(){return this._status}get connected(){return this.transport.isConnected}get bcConnected(){return this._bcConnected}get synced(){return this._synced}syncNow(){if(!this.transport.isConnected)return void console.warn("Cannot sync: transport not connected");const e=r.encodeStateAsUpdate(this.doc);e.length>0&&this._sendUpdate(e),this._sendSyncStep1(),this._broadcastAwareness([this.doc.clientID])}_setupDocumentSync(){this._updateHandler=(e,t)=>{t!==this&&(this._batchUpdates>0?this._batchUpdate(e):this._sendUpdate(e))},this.doc.on("update",this._updateHandler)}_batchUpdate(e){if(this._pendingUpdate)try{this._pendingUpdate=r.mergeUpdates([this._pendingUpdate,e])}catch(t){console.error("[GenericProvider] Failed to merge updates:",t),this._sendUpdate(this._pendingUpdate),this._pendingUpdate=e}else this._pendingUpdate=e;void 0!==this._batchTimeoutId&&clearTimeout(this._batchTimeoutId),this._batchTimeoutId=setTimeout((()=>{this._pendingUpdate&&(this._sendUpdate(this._pendingUpdate),this._pendingUpdate=null),this._batchTimeoutId=void 0}),this._batchUpdates)}_setupAwarenessSync(){this._awarenessUpdateHandler=({added:e,updated:t,removed:s},n)=>{const r=e.concat(t).concat(s);this._broadcastAwareness(r)},this.awareness.on("update",this._awarenessUpdateHandler),"undefined"!=typeof window&&(this._beforeUnloadHandler=()=>{i.removeAwarenessStates(this.awareness,[this.doc.clientID],"window unload"),this._disconnectBroadcastChannel()},window.addEventListener("beforeunload",this._beforeUnloadHandler))}_handleIncomingMessage(e){const t=function(e){if(e.length<4)return null;const t=(e[0]<<24|e[1]<<16|e[2]<<8|e[3])>>>0,s=e.subarray(4);return u(s)!==t?null:s}(e);if(null!==t)try{const e=c.createDecoder(t),s=c.readVarUint(e);switch(s){case 0:{const t=o.createEncoder();o.writeVarUint(t,0);a.readSyncMessage(e,t,this.doc,this)!==a.messageYjsSyncStep2||this._synced||(this._synced=!0,this.emit("synced",[!0])),o.length(t)>1&&this._send(o.toUint8Array(t));break}case 1:i.applyAwarenessUpdate(this.awareness,c.readVarUint8Array(e),this);break;case 2:{const t=c.readVarString(e),s=c.readVarUint8Array(e);try{const e=(new TextDecoder).decode(s),n=JSON.parse(e);this.pubsub._handleMessage(t,n)}catch(e){console.error("Error decoding pub/sub message:",e)}break}case 3:{const t=c.readVarUint(e),s=c.readVarUint(e),n=this._remoteSeqNums.get(s)??-1;if(t<=n){console.warn(`[GenericProvider] Duplicate or out-of-order update detected from client ${s}: seqNum ${t} <= lastSeen ${n}`);break}if(n>=0&&t>n+1){const e=t-n-1;console.warn(`[GenericProvider] Sequence gap detected from client ${s}: expected ${n+1}, got ${t} (gap of ${e} messages)`),this._sendSyncStep1()}this._remoteSeqNums.set(s,t);const r=o.createEncoder();o.writeVarUint(r,0);const i=a.readSyncMessage(e,r,this.doc,this),d=c.readVarInt(e),h=_(this.doc);if(h!==d){this._hashMismatchCount++;const e=Date.now();e-this._lastHashMismatchTime>1e4&&(this._hashMismatchCount=1),this._lastHashMismatchTime=e;const t=Math.min(1e4,10*Math.pow(5,this._hashMismatchCount-1));console.warn(`[GenericProvider] Hash mismatch #${this._hashMismatchCount} detected! Local: ${h}, Expected: ${d}`),console.warn(`[GenericProvider] Re-sync scheduled in ${t}ms...`),setTimeout((()=>{this.transport.isConnected&&!this._destroying&&this.syncNow()}),t)}else this._hashMismatchCount=0;i!==a.messageYjsSyncStep2||this._synced||h!==d||(this._synced=!0,this.emit("synced",[!0])),o.length(r)>1&&this._send(o.toUint8Array(r));break}default:console.warn("Unknown message type:",s)}}catch(e){console.error("[GenericProvider] Error handling message:",e)}else{this._corruptedMessageCount++;const e=Date.now();e-this._lastCorruptedMessageTime>1e4&&(this._corruptedMessageCount=1),this._lastCorruptedMessageTime=e,console.warn(`[GenericProvider] 💥 Corrupted message rejected (#${this._corruptedMessageCount}): CRC32 checksum mismatch. This is expected if data corruption simulation is enabled.`);const t=Math.min(5e3,100*Math.pow(5,Math.min(this._corruptedMessageCount-1,3)));setTimeout((()=>{this.transport.isConnected&&!this._destroying&&this._sendSyncStep1()}),t)}}_sendSyncStep1(){const e=Date.now();if(this._syncRequestTimes=this._syncRequestTimes.filter((t=>e-t<this._syncRequestWindowMs)),this._syncRequestTimes.length>=this._maxSyncRequestsPerWindow)return void console.warn(`[GenericProvider] Sync rate limit exceeded (${this._maxSyncRequestsPerWindow} requests per ${this._syncRequestWindowMs/1e3}s), throttling...`);this._syncRequestTimes.push(e);const t=o.createEncoder();o.writeVarUint(t,0),a.writeSyncStep1(t,this.doc),this._send(o.toUint8Array(t))}_sendUpdate(e){const t=o.createEncoder();if(this._verifyUpdates){o.writeVarUint(t,3),o.writeVarUint(t,this._localSeqNum++),o.writeVarUint(t,this.doc.clientID),a.writeUpdate(t,e);const s=_(this.doc);o.writeVarInt(t,s)}else o.writeVarUint(t,0),a.writeUpdate(t,e);this._send(o.toUint8Array(t))}_sendAwarenessUpdate(e){const t=o.createEncoder();o.writeVarUint(t,1),o.writeVarUint8Array(t,i.encodeAwarenessUpdate(this.awareness,e)),this._send(o.toUint8Array(t))}_sendPubSub(e,t){if(this.transport.isConnected)try{const s=o.createEncoder();o.writeVarUint(s,2),o.writeVarString(s,e);const n=JSON.stringify(t),r=(new TextEncoder).encode(n);o.writeVarUint8Array(s,r),this._send(o.toUint8Array(s))}catch(e){console.error("Error sending pub/sub message:",e)}else console.warn("Cannot send pub/sub message: not connected")}_broadcastAwareness(e){if(0===e.length)return;if(this._awarenessInterval<=0)return void this._sendAwarenessNow(e);for(const t of e)this._pendingAwarenessClients.add(t);if(void 0!==this._awarenessTimeoutId)return;const t=Date.now()-this._lastAwarenessTime,s=Math.max(0,this._awarenessInterval-t);this._awarenessTimeoutId=setTimeout((()=>{this._awarenessTimeoutId=void 0,this._lastAwarenessTime=Date.now();const e=Array.from(this._pendingAwarenessClients);this._pendingAwarenessClients.clear(),e.length>0&&this._sendAwarenessNow(e)}),s)}_sendAwarenessNow(e){const t=o.createEncoder();o.writeVarUint(t,1),o.writeVarUint8Array(t,i.encodeAwarenessUpdate(this.awareness,e)),this._send(o.toUint8Array(t))}_setupBroadcastChannel(e){if(this._disableBc||"undefined"==typeof BroadcastChannel||"undefined"==typeof window)return;this._bcChannel=`yjs-${e.room}`,this._bcSubscriber=(e,t)=>{if(t===this)return;const s=new Uint8Array(e);this._handleIncomingMessage(s)},h.subscribe(this._bcChannel,this._bcSubscriber),this._bcConnected=!0;const t=o.createEncoder();o.writeVarUint(t,0),a.writeSyncStep1(t,this.doc),h.publish(this._bcChannel,p(o.toUint8Array(t)),this);const s=o.createEncoder();if(o.writeVarUint(s,0),a.writeSyncStep2(s,this.doc),h.publish(this._bcChannel,p(o.toUint8Array(s)),this),null!==this.awareness.getLocalState()){const e=o.createEncoder();o.writeVarUint(e,1),o.writeVarUint8Array(e,i.encodeAwarenessUpdate(this.awareness,[this.doc.clientID])),h.publish(this._bcChannel,p(o.toUint8Array(e)),this)}}_disconnectBroadcastChannel(){if(!this._bcConnected||!this._bcSubscriber)return;const e=o.createEncoder();o.writeVarUint(e,1),o.writeVarUint8Array(e,i.encodeAwarenessUpdate(this.awareness,[this.doc.clientID],new Map)),h.publish(this._bcChannel,p(o.toUint8Array(e)),this),h.unsubscribe(this._bcChannel,this._bcSubscriber),this._bcConnected=!1,this._bcSubscriber=void 0}_send(e){const t=p(e);if(this._bcConnected&&h.publish(this._bcChannel,t,this),this.transport.isConnected)try{const e=this.transport.send(t);e instanceof Promise&&e.catch((e=>{console.error("Error sending data:",e)}))}catch(e){console.error("Error sending data:",e)}}_setStatus(e){this._status=e,this.emit("status",[e])}_testSetSequenceNumber(e){this._localSeqNum=e,console.warn(`[GenericProvider TEST] Sequence number set to ${e} (MAX_SAFE_INTEGER: ${Number.MAX_SAFE_INTEGER})`)}_testGetSequenceNumber(){return this._localSeqNum}}},{yjs:"dugeO","y-protocols/awareness":"dkAja","y-protocols/sync":"2fRsv","lib0/encoding":"iMu7f","lib0/decoding":"gVpVW","lib0/observable":"ewQE3","lib0/broadcastchannel":"42CYj","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],dkAja:[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"outdatedTimeout",(()=>h)),n.export(s,"Awareness",(()=>l)),n.export(s,"removeAwarenessStates",(()=>u)),n.export(s,"encodeAwarenessUpdate",(()=>p)),n.export(s,"modifyAwarenessUpdate",(()=>_)),n.export(s,"applyAwarenessUpdate",(()=>g));var r=e("lib0/encoding"),i=e("lib0/decoding"),a=e("lib0/time"),o=e("lib0/math"),c=e("lib0/observable"),d=e("lib0/function");e("yjs");const h=3e4;class l extends c.Observable{constructor(e){super(),this.doc=e,this.clientID=e.clientID,this.states=new Map,this.meta=new Map,this._checkInterval=setInterval((()=>{const e=a.getUnixTime();null!==this.getLocalState()&&h/2<=e-this.meta.get(this.clientID).lastUpdated&&this.setLocalState(this.getLocalState());const t=[];this.meta.forEach(((s,n)=>{n!==this.clientID&&h<=e-s.lastUpdated&&this.states.has(n)&&t.push(n)})),t.length>0&&u(this,t,"timeout")}),o.floor(h/10)),e.on("destroy",(()=>{this.destroy()})),this.setLocalState({})}destroy(){this.emit("destroy",[this]),this.setLocalState(null),super.destroy(),clearInterval(this._checkInterval)}getLocalState(){return this.states.get(this.clientID)||null}setLocalState(e){const t=this.clientID,s=this.meta.get(t),n=void 0===s?0:s.clock+1,r=this.states.get(t);null===e?this.states.delete(t):this.states.set(t,e),this.meta.set(t,{clock:n,lastUpdated:a.getUnixTime()});const i=[],o=[],c=[],h=[];null===e?h.push(t):null==r?null!=e&&i.push(t):(o.push(t),d.equalityDeep(r,e)||c.push(t)),(i.length>0||c.length>0||h.length>0)&&this.emit("change",[{added:i,updated:c,removed:h},"local"]),this.emit("update",[{added:i,updated:o,removed:h},"local"])}setLocalStateField(e,t){const s=this.getLocalState();null!==s&&this.setLocalState({...s,[e]:t})}getStates(){return this.states}}const u=(e,t,s)=>{const n=[];for(let s=0;s<t.length;s++){const r=t[s];if(e.states.has(r)){if(e.states.delete(r),r===e.clientID){const t=e.meta.get(r);e.meta.set(r,{clock:t.clock+1,lastUpdated:a.getUnixTime()})}n.push(r)}}n.length>0&&(e.emit("change",[{added:[],updated:[],removed:n},s]),e.emit("update",[{added:[],updated:[],removed:n},s]))},p=(e,t,s=e.states)=>{const n=t.length,i=r.createEncoder();r.writeVarUint(i,n);for(let a=0;a<n;a++){const n=t[a],o=s.get(n)||null,c=e.meta.get(n).clock;r.writeVarUint(i,n),r.writeVarUint(i,c),r.writeVarString(i,JSON.stringify(o))}return r.toUint8Array(i)},_=(e,t)=>{const s=i.createDecoder(e),n=r.createEncoder(),a=i.readVarUint(s);r.writeVarUint(n,a);for(let e=0;e<a;e++){const e=i.readVarUint(s),a=i.readVarUint(s),o=t(JSON.parse(i.readVarString(s)));r.writeVarUint(n,e),r.writeVarUint(n,a),r.writeVarString(n,JSON.stringify(o))}return r.toUint8Array(n)},g=(e,t,s)=>{const n=i.createDecoder(t),r=a.getUnixTime(),o=[],c=[],h=[],l=[],u=i.readVarUint(n);for(let t=0;t<u;t++){const t=i.readVarUint(n);let s=i.readVarUint(n);const a=JSON.parse(i.readVarString(n)),u=e.meta.get(t),p=e.states.get(t),_=void 0===u?0:u.clock;(_<s||_===s&&null===a&&e.states.has(t))&&(null===a?t===e.clientID&&null!=e.getLocalState()?s++:e.states.delete(t):e.states.set(t,a),e.meta.set(t,{clock:s,lastUpdated:r}),void 0===u&&null!==a?o.push(t):void 0!==u&&null===a?l.push(t):null!==a&&(d.equalityDeep(a,p)||h.push(t),c.push(t)))}(o.length>0||h.length>0||l.length>0)&&e.emit("change",[{added:o,updated:h,removed:l},s]),(o.length>0||c.length>0||l.length>0)&&e.emit("update",[{added:o,updated:c,removed:l},s])}},{"lib0/encoding":"iMu7f","lib0/decoding":"gVpVW","lib0/time":"bwglv","lib0/math":"8ydGZ","lib0/observable":"ewQE3","lib0/function":"bmDBb",yjs:"dugeO","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],"2fRsv":[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"messageYjsSyncStep1",(()=>o)),n.export(s,"messageYjsSyncStep2",(()=>c)),n.export(s,"messageYjsUpdate",(()=>d)),n.export(s,"writeSyncStep1",(()=>h)),n.export(s,"writeSyncStep2",(()=>l)),n.export(s,"readSyncStep1",(()=>u)),n.export(s,"readSyncStep2",(()=>p)),n.export(s,"writeUpdate",(()=>_)),n.export(s,"readUpdate",(()=>g)),n.export(s,"readSyncMessage",(()=>m));var r=e("lib0/encoding"),i=e("lib0/decoding"),a=e("yjs");const o=0,c=1,d=2,h=(e,t)=>{r.writeVarUint(e,o);const s=a.encodeStateVector(t);r.writeVarUint8Array(e,s)},l=(e,t,s)=>{r.writeVarUint(e,c),r.writeVarUint8Array(e,a.encodeStateAsUpdate(t,s))},u=(e,t,s)=>l(t,s,i.readVarUint8Array(e)),p=(e,t,s,n)=>{try{a.applyUpdate(t,i.readVarUint8Array(e),s)}catch(e){null!=n&&n(e),console.error("Caught error while handling a Yjs update",e)}},_=(e,t)=>{r.writeVarUint(e,d),r.writeVarUint8Array(e,t)},g=p,m=(e,t,s,n,r)=>{const a=i.readVarUint(e);switch(a){case o:u(e,t,s);break;case c:p(e,s,n,r);break;case d:g(e,s,n,r);break;default:throw new Error("Unknown message type")}return a}},{"lib0/encoding":"iMu7f","lib0/decoding":"gVpVW",yjs:"dugeO","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],"42CYj":[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"subscribe",(()=>l)),n.export(s,"unsubscribe",(()=>u)),n.export(s,"publish",(()=>p));var r=e("./map.js"),i=e("./set.js"),a=e("./buffer.js"),o=e("./storage.js");const c=new Map;const d="undefined"==typeof BroadcastChannel?class{constructor(e){this.room=e,this.onmessage=null,this._onChange=t=>t.key===e&&null!==this.onmessage&&this.onmessage({data:a.fromBase64(t.newValue||"")}),o.onChange(this._onChange)}postMessage(e){o.varStorage.setItem(this.room,a.toBase64(a.createUint8ArrayFromArrayBuffer(e)))}close(){o.offChange(this._onChange)}}:BroadcastChannel,h=e=>r.setIfUndefined(c,e,(()=>{const t=i.create(),s=new d(e);return s.onmessage=e=>t.forEach((t=>t(e.data,"broadcastchannel"))),{bc:s,subs:t}})),l=(e,t)=>(h(e).subs.add(t),t),u=(e,t)=>{const s=h(e),n=s.subs.delete(t);return n&&0===s.subs.size&&(s.bc.close(),c.delete(e)),n},p=(e,t,s=null)=>{const n=h(e);n.bc.postMessage(t),n.subs.forEach((e=>e(t,s)))}},{"./map.js":"erHG1","./set.js":"3aqr7","./buffer.js":"9uhqR","./storage.js":"3Gk2E","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],jgKsD:[function(e,t,s){var n=e("@parcel/transformer-js/src/esmodule-helpers.js");n.defineInteropFlag(s),n.export(s,"computeDocumentHash",(()=>i)),n.export(s,"SyncHealthMonitor",(()=>a));var r=e("yjs");function i(e){return function(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e[s]|0;return t.toString(36)}(r.encodeStateAsUpdate(e))}class a{constructor(e,t={}){this.options=t,this.localHash="",this.peerHashes=new Map,this.provider=e,this.options.checkInterval=t.checkInterval??1e4}start(){this.intervalId||(console.log("[SyncMonitor] Starting health checks..."),this.intervalId=setInterval((()=>{this.checkHealth()}),this.options.checkInterval),this.provider.pubsub.subscribe("sync-health",(e=>{"hash-broadcast"===e.type&&this.handlePeerHash(e.clientId,e.hash)})))}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=void 0)}checkHealth(){this.provider.connected&&(this.localHash=i(this.provider.doc),this.provider.pubsub.publish("sync-health",{type:"hash-broadcast",clientId:this.provider.doc.clientID,hash:this.localHash}),this.detectDivergence())}handlePeerHash(e,t){this.peerHashes.set(e,t)}detectDivergence(){const e=[];this.peerHashes.forEach(((t,s)=>{t!==this.localHash&&e.push(s)})),e.length>0&&(console.warn("[SyncMonitor] ⚠️ Desync detected with clients:",e),console.warn("[SyncMonitor] Local hash:",this.localHash,"Peer hashes:",Array.from(this.peerHashes.entries())),console.log("[SyncMonitor] 🔄 Triggering automatic re-sync..."),this.provider.syncNow(),this.options.onDesync&&this.options.onDesync({localHash:this.localHash,peerHashes:new Map(this.peerHashes),divergentClients:e,timestamp:Date.now()}))}}},{yjs:"dugeO","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}]},[],0,"parcelRequire55a5");
@@ -1 +0,0 @@
1
- !function(e,t,o,r,n){var s="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},i="function"==typeof s[r]&&s[r],c=i.cache||{},a="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function h(t,o){if(!c[t]){if(!e[t]){var n="function"==typeof s[r]&&s[r];if(!o&&n)return n(t,!0);if(i)return i(t,!0);if(a&&"string"==typeof t)return a(t);var d=new Error("Cannot find module '"+t+"'");throw d.code="MODULE_NOT_FOUND",d}p.resolve=function(o){var r=e[t][1][o];return null!=r?r:o},p.cache={};var l=c[t]=new h.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return c[t].exports;function p(e){var t=p.resolve(e);return!1===t?{}:h(t)}}h.isParcelRequire=!0,h.Module=function(e){this.id=e,this.bundle=h,this.exports={}},h.modules=e,h.cache=c,h.parent=i,h.register=function(t,o){e[t]=[function(e,t){t.exports=o},{}]},Object.defineProperty(h,"root",{get:function(){return s[r]}}),s[r]=h;for(var d=0;d<t.length;d++)h(t[d])}({kwJov:[function(e,t,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(o),r.export(o,"Sync",(()=>c));var n=e("../Base/index"),s=e("../../../../node_modules/y-generic/dist/providers/peerjs/index"),i=e("y-generic");class c extends n.Sync{syncFallbackTimer=null;destroy(){null!==this.syncFallbackTimer&&(clearTimeout(this.syncFallbackTimer),this.syncFallbackTimer=null),super.destroy(),this.provider?.disconnect()}async connect(e){if(super.connect(e),this.host=e.config?.host||void 0,this.port=e.config?.port?parseInt(e.config.port,10):void 0,this.peerPath=e.config?.path||void 0,e.config?.iceServers)try{this.iceServers=JSON.parse(e.config.iceServers)}catch{console.warn("PeerJS: invalid iceServers JSON, ignoring:",e.config.iceServers)}window.Peer?this.init(!0):this.load(["//unpkg.com/peerjs@1.5.4/dist/peerjs.min.js"],this)}init(e,t){const o=this.uniqueID();if(e&&window.Peer&&o)(async function(e){const t=(new TextEncoder).encode(e),o=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(o)).map((e=>e.toString(16).padStart(2,"0"))).join("")})(o).then((e=>{const t={};this.host&&(t.host=this.host,t.secure=!0),void 0!==this.port&&(t.port=this.port),this.peerPath&&(t.path=this.peerPath),this.iceServers&&(t.config={iceServers:this.iceServers}),this.transport=new(0,s.PeerJSTransport)({peer:window.Peer,...Object.keys(t).length>0?{peerOptions:t}:{},...this.password?{password:this.password}:{}}),this.provider=new(0,i.GenericProvider)(this.db.doc,this.transport),this.db.setAwareness(this.provider.awareness);let o=!1;const r=()=>{o||(o=!0,null!==this.syncFallbackTimer&&(clearTimeout(this.syncFallbackTimer),this.syncFallbackTimer=null),this.sendConnect())};this.provider.on("synced",(e=>{console.log("PeerJS: document synchronized",e.synced),r()})),this.provider.on("status",(e=>{const t=e.state;console.log(`PeerJS status: ${t}`),"connected"===t?this.syncFallbackTimer=setTimeout((()=>{console.log("PeerJS: sync fallback, proceeding as first peer"),r()}),2e3):"disconnected"===t&&console.warn("PeerJS: disconnected")})),this.provider.pubsub.subscribe("*",((e,t)=>{this.onReceive?.(t,e)})),this.provider.connect({room:e,...this.password?{password:this.password}:{}})}));else{let e="PeerJS unknown error";t?e="Could not load resource: "+t:window.Peer||(e="Could not load PeerJS library"),this.sendDisconnectError(e)}}pubsubSend(e,t){this.provider&&(this.provider.pubsub.publish(e,t),this.replyOnReceive&&this.onReceive?.(e,t))}}},{"../Base/index":"2cTju","../../../../node_modules/y-generic/dist/providers/peerjs/index":"bILLl","y-generic":"3M9RT","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],bILLl:[function(e,t,o){var r=e("@parcel/transformer-js/src/esmodule-helpers.js");r.defineInteropFlag(o),r.export(o,"PeerJSTransport",(()=>n));class n{constructor(e){if(this._connected=!1,this._room="",this.peer=null,this.peerId="",this.peers=new Map,this.knownPeers=new Set,this.isCoordinator=!1,this.coordinatorPeerId="",this.roomPeers=new Set,this.reElectionInProgress=!1,!e.peer)throw new Error('PeerJSTransport requires the "peer" option. Please provide the PeerJS constructor: import Peer from "peerjs"; new PeerJSTransport({ peer: Peer, ... })');this.options={peer:e.peer,peerOptions:e.peerOptions??{},password:e.password??"",maxConns:e.maxConns??20+Math.floor(15*Math.random()),debug:e.debug??!1}}async connect(e){if(this._connected)throw new Error("Already connected");return this._room=e.room,this.coordinatorPeerId=`yjs-coordinator-${this._room}`,new Promise(((e,t)=>{try{let o=new this.options.peer(this.coordinatorPeerId,{debug:this.options.debug?3:0,...this.options.peerOptions});const r=setTimeout((()=>{o.destroy(),this.createRegularPeer(e,t)}),3e3);o.on("open",(t=>{clearTimeout(r),t===this.coordinatorPeerId&&(this.log("Coordinator: claimed ID"),this.peer=o,this.peerId=t,this.isCoordinator=!0,this.roomPeers.add(this.peerId),this._connected=!0,this.setupPeerDiscovery(),this.peer.on("connection",(e=>{this.handleIncomingConnection(e)})),e())})),o.on("error",(n=>{clearTimeout(r),n.message.includes("ID is taken")||n.message.includes("taken")||n.message.includes("already")||"unavailable-id"===n.type?(o.destroy(),this.createRegularPeer(e,t)):(this.log("❌ Unexpected error claiming coordinator:",n),o.destroy(),this.createRegularPeer(e,t))}))}catch(e){t(e)}}))}createRegularPeer(e,t){const o=Math.random().toString(36).substring(7);this.peerId=`yjs-${this._room}-${o}`,this.peer=new this.options.peer(this.peerId,{debug:this.options.debug?3:0,...this.options.peerOptions}),this.peer.on("open",(t=>{this.peerId=t,this._connected=!0,this.setupPeerDiscovery(),this.peer.on("connection",(e=>{this.handleIncomingConnection(e)})),this.setupCrossBrowserDiscovery().then((()=>{e()})).catch((t=>{this.log("⚠️ Cross-browser discovery failed, continuing with BroadcastChannel only:",t),e()}))})),this.peer.on("error",(e=>{this.log("Peer error:",e),this._connected||t(e)})),this.peer.on("disconnected",(()=>{this.log("Peer disconnected, attempting reconnect...")}))}disconnect(){if(this._connected){if(this.discoveryInterval&&(clearInterval(this.discoveryInterval),this.discoveryInterval=void 0),this.broadcastChannel&&(this.broadcastChannel.postMessage({type:"leave",peerId:this.peerId}),this.broadcastChannel.close(),this.broadcastChannel=void 0),this.coordinatorConn){try{this.sendCoordinationMessage(this.coordinatorConn,{type:"leave",peerId:this.peerId}),this.coordinatorConn.close()}catch(e){}this.coordinatorConn=void 0}if(this.isCoordinator){for(const e of this.roomPeers)if(e!==this.peerId){const t=this.peers.get(e);if(t&&t.connected)try{this.sendCoordinationMessage(t.conn,{type:"coordinator-leaving",peerId:this.peerId})}catch(e){}}this.isCoordinator=!1,this.roomPeers.clear()}for(const e of this.peers.values())try{e.conn.close()}catch(e){}this.peers.clear(),this.knownPeers.clear(),this.reElectionInProgress=!1,this.peer&&(this.peer.destroy(),this.peer=null),this._connected=!1}}onPeerConnect(e){return this._peerConnectCallback=e,()=>{this._peerConnectCallback=void 0}}send(e){if(!this._connected)return void this.log("Not connected, cannot send");const t=this.options.password?this.encrypt(e,this.options.password):e;for(const e of this.peers.values())if(e.connected)try{e.conn.send(t)}catch(t){this.log("Error sending to peer:",e.peerId,t)}}onMessage(e){return this._callback=e,()=>{this._callback=void 0}}get isConnected(){return this._connected}get connectedPeers(){return Array.from(this.peers.values()).filter((e=>e.connected)).length}setupPeerDiscovery(){if("undefined"==typeof BroadcastChannel)return void this.log("❌ BroadcastChannel not available in this browser");const e=`yjs-peerjs-${this._room}`;this.broadcastChannel=new BroadcastChannel(e),this.broadcastChannel.onmessage=e=>{const t=e.data;t.peerId!==this.peerId&&("announce"===t.type?(this.knownPeers.add(t.peerId),this.connectToPeer(t.peerId)):"leave"===t.type&&(this.knownPeers.delete(t.peerId),this.removePeer(t.peerId)))},this.announcePeer(),this.discoveryInterval=setInterval((()=>{this._connected&&this.peers.size<this.options.maxConns&&this.announcePeer()}),5e3)}announcePeer(){if(this.broadcastChannel){const e={type:"announce",peerId:this.peerId};this.broadcastChannel.postMessage(e)}}async setupCrossBrowserDiscovery(){return await new Promise((e=>setTimeout(e,500))),new Promise(((e,t)=>{let o=!1;const r=setTimeout((()=>{if(!o){o=!0;const e=new Error("Timeout connecting to coordinator");this.log("⏱️ Timeout connecting to coordinator"),t(e)}}),5e3);try{const n=this.peer.connect(this.coordinatorPeerId,{reliable:!0,serialization:"binary",metadata:{role:"peer",peerId:this.peerId}});n.on("open",(()=>{if(o)return;o=!0,clearTimeout(r),this.log("Connected to coordinator"),this.coordinatorConn=n;const t={conn:n,connected:!0,peerId:this.coordinatorPeerId};this.peers.set(this.coordinatorPeerId,t),this.knownPeers.add(this.coordinatorPeerId),this._peerConnectCallback?.(this.coordinatorPeerId),this.sendCoordinationMessage(n,{type:"join",peerId:this.peerId}),n.on("data",(e=>{const t=e instanceof Uint8Array?e:new Uint8Array(e),o=this.tryDecodeCoordinationMessage(t);if(o)this.handleCoordinatorMessage(o);else if(this._callback)try{const e=this.options.password?this.decrypt(t,this.options.password):t;this._callback(e)}catch(e){this.log("Error handling coordinator data:",e)}})),n.on("close",(()=>{this.log("Coordinator disconnected"),this.peers.delete(this.coordinatorPeerId),this.knownPeers.delete(this.coordinatorPeerId),this.handleCoordinatorDisconnect()})),e()})),n.on("error",(e=>{o||(o=!0,clearTimeout(r),this.log("❌ Failed to connect to coordinator:",e.message),t(e))}))}catch(e){o||(o=!0,clearTimeout(r),this.log("⚠️ Error connecting to coordinator:",e),t(e))}}))}becomeCoordinator(){this.isCoordinator=!0,this.roomPeers.add(this.peerId),this.log("👑 I am now the coordinator. Room peers:",Array.from(this.roomPeers)),setInterval((()=>{if(this.isCoordinator){const e=Array.from(this.roomPeers).sort();e.length>0&&e[0]!==this.peerId&&(this.log("⚠️ I am no longer the lowest ID peer, stepping down as coordinator"),this.isCoordinator=!1)}}),1e4)}handleCoordinatorMessage(e){switch(e.type){case"peer-list":for(const t of e.peers)t===this.peerId||this.peers.has(t)||(this.knownPeers.add(t),this.connectToPeer(t));break;case"peer-joined":e.peerId===this.peerId||this.peers.has(e.peerId)||(this.knownPeers.add(e.peerId),this.connectToPeer(e.peerId));break;case"peer-left":this.knownPeers.delete(e.peerId),this.removePeer(e.peerId);break;case"coordinator-change":this.coordinatorPeerId=e.coordinatorId;break;case"coordinator-leaving":this.log("Coordinator leaving, re-election starting"),this.handleCoordinatorDisconnect()}}handleCoordinatorDisconnect(){if(this.reElectionInProgress)return void this.log("⏭️ Re-election already in progress, skipping");if("undefined"!=typeof navigator&&!navigator.onLine){this.log("📴 Offline – deferring re-election until network returns");const e=()=>{this.log("🌐 Network restored – resuming re-election"),this.handleCoordinatorDisconnect()};return void window.addEventListener("online",e,{once:!0})}this.log("🗳️ Coordinator disconnected, starting re-election"),this.reElectionInProgress=!0,this.coordinatorConn=void 0;const e=[this.peerId,...Array.from(this.knownPeers),...Array.from(this.peers.keys())].filter((e=>e!==this.coordinatorPeerId));e.sort();const t=e[0];this.log("🗳️ Coordinator election: Lowest peer ID is",t),t===this.peerId?(this.log("👑 I have the lowest ID, attempting to claim coordinator role"),this.transitionToCoordinator()):(this.log("⏳ Waiting for new coordinator:",t),setTimeout((()=>{this.attemptCoordinatorConnection()}),2e3))}attemptCoordinatorConnection(e=0){if(e>=5)return this.log("❌ Failed to connect to coordinator after",5,"attempts"),this.log("🔄 Attempting to become coordinator as fallback"),void this.transitionToCoordinator();this.log(`🔌 Attempting to connect to coordinator (attempt ${e+1}/5)`),this.setupCrossBrowserDiscovery().then((()=>{this.log("✅ Successfully connected to new coordinator"),this.reElectionInProgress=!1})).catch((t=>{this.log(`⚠️ Failed to connect to coordinator (attempt ${e+1}):`,t);const o=1e3*Math.pow(1.5,e);setTimeout((()=>{this.attemptCoordinatorConnection(e+1)}),o)}))}async transitionToCoordinator(){this.log("🔄 Transitioning to coordinator role...");const e=Array.from(this.peers.entries()),t=this._callback;this._room;this.peer&&this.peer.destroy(),this.peers.clear(),this._connected=!1;try{await new Promise(((o,r)=>{const n=new this.options.peer(this.coordinatorPeerId,{debug:this.options.debug?3:0,...this.options.peerOptions}),s=setTimeout((()=>{this.log("❌ Timeout claiming coordinator ID"),n.destroy(),r(new Error("Timeout claiming coordinator ID"))}),5e3);n.on("open",(r=>{if(clearTimeout(s),r===this.coordinatorPeerId){this.log("✅ Successfully claimed coordinator ID:",r),this.peer=n,this.peerId=r,this.isCoordinator=!0,this.roomPeers.clear(),this.roomPeers.add(this.peerId),this._connected=!0,this._callback=t,this.reElectionInProgress=!1,this.setupPeerDiscovery(),this.peer.on("connection",(e=>{this.handleIncomingConnection(e)})),this.log("🔗 Re-establishing connections with",e.length,"known peers");for(const[t,o]of e)t!==this.coordinatorPeerId&&(this.knownPeers.add(t),this.roomPeers.add(t));o()}})),n.on("error",(e=>{clearTimeout(s),this.log("❌ Error claiming coordinator ID:",e),n.destroy(),r(e)}))}))}catch(e){this.log("❌ Failed to transition to coordinator:",e),this.reElectionInProgress=!1,this.log("🔄 Falling back to regular peer"),this.reestablishAsRegularPeer()}}reestablishAsRegularPeer(){const e=Math.random().toString(36).substring(7);this.peerId=`yjs-${this._room}-${e}`,this.isCoordinator=!1,this.peer=new this.options.peer(this.peerId,{debug:this.options.debug?3:0,...this.options.peerOptions}),this.peer.on("open",(e=>{this.peerId=e,this._connected=!0,this.log("✅ Reestablished as regular peer:",e),this.setupPeerDiscovery(),this.peer.on("connection",(e=>{this.handleIncomingConnection(e)})),this.peer.on("disconnected",(()=>{this.log("Peer disconnected, attempting reconnect...")})),this.attemptCoordinatorConnection()})),this.peer.on("error",(e=>{this.log("❌ Error reestablishing as regular peer:",e);try{this.peer?.destroy()}catch(e){}this.peer=null,this._connected=!1;const t=()=>{this.log("🌐 Network restored – retrying reestablish as regular peer"),this.reestablishAsRegularPeer()};"undefined"==typeof navigator||navigator.onLine?setTimeout(t,3e3):window.addEventListener("online",t,{once:!0})}))}connectToPeer(e){if(e!==this.peerId&&!this.peers.has(e)&&!(this.peers.size>=this.options.maxConns||this.peerId&&this.peerId>e))try{const t=this.peer.connect(e,{reliable:!0,serialization:"binary"});if(!t)return void this.log("Failed to create connection object for:",e);this.setupConnection(t,e)}catch(t){this.log("Error connecting to peer:",e,t)}}handleIncomingConnection(e){const t=e.peer;if(this.peers.has(t))e.close();else{if(this.peers.size>=this.options.maxConns)return this.log("Max connections reached, rejecting peer:",t),void e.close();this.isCoordinator&&(this.roomPeers.add(t),e.on("close",(()=>{this.roomPeers.delete(t);for(const e of this.roomPeers)if(e!==this.peerId){const o=this.peers.get(e);if(o&&o.connected)try{this.sendCoordinationMessage(o.conn,{type:"peer-left",peerId:t})}catch(t){this.log("⚠️ Failed to notify peer of departure:",e)}}}))),this.setupConnection(e,t)}}setupConnection(e,t){const o={conn:e,connected:!1,peerId:t};this.peers.set(t,o),e.on("open",(()=>{o.connected=!0,this.knownPeers.add(t),this._peerConnectCallback?.(t)})),e.on("data",(o=>{const r=o instanceof Uint8Array?o:new Uint8Array(o),n=this.tryDecodeCoordinationMessage(r);if(n){if("coordinator-change"===n.type||"coordinator-leaving"===n.type||"peer-joined"===n.type||"peer-left"===n.type||"peer-list"===n.type)return void this.handleCoordinatorMessage(n);if("join"===n.type&&this.isCoordinator){const o=Array.from(this.roomPeers).filter((e=>e!==this.peerId&&e!==t));this.sendCoordinationMessage(e,{type:"peer-list",peers:o});for(const e of this.roomPeers)if(e!==this.peerId&&e!==t){const o=this.peers.get(e);if(o&&o.connected)try{this.sendCoordinationMessage(o.conn,{type:"peer-joined",peerId:t})}catch(t){this.log("⚠️ Failed to notify peer of new joiner:",e)}}return}}if(this._callback)try{const e=this.options.password?this.decrypt(r,this.options.password):r;this._callback(e)}catch(e){this.log("Error handling peer data:",e)}})),e.on("close",(()=>{this.removePeer(t)})),e.on("error",(e=>{this.log("⚠️ Connection error:",t,e),this.removePeer(t)})),setTimeout((()=>{}),1e3)}removePeer(e){const t=this.peers.get(e);if(t){try{t.conn.close()}catch(e){}this.peers.delete(e)}}sendCoordinationMessage(e,t){try{const o=JSON.stringify(t),r=(new TextEncoder).encode(o);e.send(r)}catch(e){this.log("Error encoding coordination message:",e)}}tryDecodeCoordinationMessage(e){try{const t=(new TextDecoder).decode(e),o=JSON.parse(t);return o&&"object"==typeof o&&o.type&&"string"==typeof o.type?o:null}catch(e){return null}}encrypt(e,t){const o=this.hashPassword(t),r=new Uint8Array(e.length);for(let t=0;t<e.length;t++)r[t]=e[t]^o[t%o.length];return r}decrypt(e,t){return this.encrypt(e,t)}hashPassword(e){return(new TextEncoder).encode(e)}log(...e){this.options.debug&&console.log("[PeerJSTransport]",...e)}}},{"@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],fDdlt:[function(e,t,o){var r,n,s=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function a(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:c}catch(e){n=c}}();var h,d=[],l=!1,p=-1;function u(){l&&h&&(l=!1,h.length?d=h.concat(d):p=-1,d.length&&g())}function g(){if(!l){var e=a(u);l=!0;for(var t=d.length;t;){for(h=d,d=[];++p<t;)h&&h[p].run();p=-1,t=d.length}h=null,l=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===c||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function f(e,t){this.fun=e,this.array=t}function m(){}s.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var o=1;o<arguments.length;o++)t[o-1]=arguments[o];d.push(new f(e,t)),1!==d.length||l||a(g)},f.prototype.run=function(){this.fun.apply(null,this.array)},s.title="browser",s.browser=!0,s.env={},s.argv=[],s.version="",s.versions={},s.on=m,s.addListener=m,s.once=m,s.off=m,s.removeListener=m,s.removeAllListeners=m,s.emit=m,s.prependListener=m,s.prependOnceListener=m,s.listeners=function(e){return[]},s.binding=function(e){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(e){throw new Error("process.chdir is not supported")},s.umask=function(){return 0}},{}]},[],0,"parcelRequire55a5");
@@ -1 +0,0 @@
1
- !function(r,n,e,t,a){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},o="function"==typeof u[t]&&u[t],i=o.cache||{},c="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function s(n,e){if(!i[n]){if(!r[n]){var a="function"==typeof u[t]&&u[t];if(!e&&a)return a(n,!0);if(o)return o(n,!0);if(c&&"string"==typeof n)return c(n);var f=new Error("Cannot find module '"+n+"'");throw f.code="MODULE_NOT_FOUND",f}b.resolve=function(e){var t=r[n][1][e];return null!=t?t:e},b.cache={};var l=i[n]=new s.Module(n);r[n][0].call(l.exports,b,l,l.exports,this)}return i[n].exports;function b(r){var n=b.resolve(r);return!1===n?{}:s(n)}}s.isParcelRequire=!0,s.Module=function(r){this.id=r,this.bundle=s,this.exports={}},s.modules=r,s.cache=i,s.parent=o,s.register=function(n,e){r[n]=[function(r,n){n.exports=e},{}]},Object.defineProperty(s,"root",{get:function(){return u[t]}}),u[t]=s;for(var f=0;f<n.length;f++)s(n[f]);if(e){var l=s(e);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd&&define((function(){return l}))}}({jUClR:[function(r,n,e){var t=r("@parcel/transformer-js/src/esmodule-helpers.js");t.defineInteropFlag(e),t.export(e,"fetch",(()=>i)),t.export(e,"addBase",(()=>c));var a=r("../../elm/Preview.elm"),u=r("../helper"),o={};function i(r,n){let e=new XMLHttpRequest;e.open("GET",r,!0),e.onload=function(t){if(4===e.readyState&&200===e.status)try{const t=a.Elm.Preview.init({flags:{cmd:""}});t.ports.output.subscribe((function(e){let[t,a]=e;if(t){""!==a.logo&&(a.logo=c(r,a.logo));try{a.tags=a.tags.split(",").map((r=>r.trim()))}catch(r){}try{a.icon=c(r,a.icon)}catch(r){a.icon="https://liascript.github.io/course/icon.svg"}o[r]=a,n(r,a)}else console.warn("preview-lia",a)})),t.ports.input.send(e.responseText)}catch(r){console.warn("fetching",r)}},e.send()}function c(r,n){if(u.allowedProtocol(n))return n;let e=r.split("/");return e.pop(),e.join("/")+"/"+n}class s extends HTMLElement{source_url="";constructor(){super();const r=document.createElement("template");r.innerHTML='<style>\n.card {\n border: 5px solid #399193;\n position: relative;\n background-color: white;\n display: flex;\n flex-direction: row;\n margin: 2rem auto;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n}\n\n.card:hover {\n transform: translateY(-1px);\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);\n}\n\n.card__media {\n flex: 1;\n max-width: 300px;\n min-height: 100%;\n}\n\n.card__image {\n height: 100%;\n width: 100%;\n object-fit: cover;\n object-position: center;\n}\n\n.card__content {\n flex: 2;\n padding: 2rem;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n\n.card__header {\n margin-bottom: 1.5rem;\n}\n\n.card__title {\n color: #4b4b4b;\n margin: 0;\n position: relative;\n}\n\n.card__title:before {\n content: "";\n position: absolute;\n bottom: -0.5rem;\n width: 50%;\n height: 2px;\n background-color: #399193;\n}\n\n.card__subtitle {\n color: #aeaeae;\n margin: 0.5rem 0 1rem;\n}\n\n.card__version {\n display: inline-block;\n padding: 0.5rem;\n background-color: #399193;\n color: white;\n position: absolute;\n font-size: x-small;\n top: -1.5rem;\n left: 1rem;\n z-index: 1;\n}\n\n.card__body {\n line-height: 1.5;\n}\n\n.card__contact {\n color: #399193;\n text-decoration: none;\n font-size: small;\n}\n\n@media (max-width: 640px) {\n .card {\n flex-direction: column;\n }\n\n .card__media {\n max-width: 100%;\n height: 200px;\n }\n\n .card__content {\n padding: 1.5rem;\n }\n}\n</style>\n<a id="container" target="_blank" href="">preview-lia</a>',this.container=this.attachShadow({mode:"open"}),this.container.appendChild(r.content.cloneNode(!0))}connectedCallback(){const r=this.getAttribute("src"),n=this.container.getElementById("container");if(!r)return;if(o[r])return void this.callback(r,o[r]);const e=r.split("/course/?");2===e.length?this.source_url=e[1]:this.source_url=e[0],null!==n&&(n.innerHTML=`<a href="${r}">preview-lia</a>`,i(this.source_url,((r,n)=>{this.callback(r,n)})))}callback(r,n){const e=this.container.getElementById("container");if(!e)return;const t=this.getAttribute("link")||"https://LiaScript.github.io/course/?"+this.source_url;let a="";n.tags&&n.tags.length>0&&(a=`<h3 class="card__subtitle">${n.tags.join(" | ")}</h3>`),n.logo&&(n.logo_alt=n.logo_alt?`alt="${n.logo_alt}"`:"",n.logo=`<div class="card__media">\n <img src="${n.logo}" ${n.logo_alt} class="card__image">\n </div>`),n.author&&n.email?n.author=`<a class="card__contact" href="mailto:${n.email}">${n.author} ✉️</a>`:n.author?n.author=`<span class="card__contact">${n.author}</span>`:n.email?n.author=`<a class="card__contact" href="mailto:${n.email}">${n.email} ✉️</a>`:n.author="",e.href=t,e.style.textDecoration="none",e.style.color="black",e.style.display="block",e.innerHTML=`<article class="card">\n <div class="card__version">V ${n.version}</div>\n ${n.logo||""}\n <div class="card__content">\n <img src="${n.icon}" alt="" style="display: block; height: 3rem; position: absolute; right: 5px; top: 5px">\n <header class="card__header">\n <h2 class="card__title">${n.title}</h2>\n ${a}\n </header>\n <div class="card__body">\n <p class="card__copy">${n.description}</p>\n </div>\n <footer>\n ${n.author}\n </footer>\n </div>\n \n </article>`}disconnectedCallback(){}}customElements.define("preview-lia",s)},{"../../elm/Preview.elm":"eQ40M","../helper":"967cd","@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],eQ40M:[function(r,n,e){!function(r){"use strict";function n(r,n,e){return e.a=r,e.f=n,e}function e(r){return n(2,r,(function(n){return function(e){return r(n,e)}}))}function t(r){return n(3,r,(function(n){return function(e){return function(t){return r(n,e,t)}}}))}function a(r){return n(4,r,(function(n){return function(e){return function(t){return function(a){return r(n,e,t,a)}}}}))}function u(r){return n(5,r,(function(n){return function(e){return function(t){return function(a){return function(u){return r(n,e,t,a,u)}}}}}))}function o(r,n,e){return 2===r.a?r.f(n,e):r(n)(e)}function i(r,n,e,t){return 3===r.a?r.f(n,e,t):r(n)(e)(t)}function c(r,n,e,t,a){return 4===r.a?r.f(n,e,t,a):r(n)(e)(t)(a)}function s(r,n,e,t,a,u){return 5===r.a?r.f(n,e,t,a,u):r(n)(e)(t)(a)(u)}var f=t((function(r,n,e){for(var t=Array(r),a=0;r>a;a++)t[a]=e(n+a);return t})),l=e((function(r,n){for(var e=Array(r),t=0;r>t&&n.b;t++)e[t]=n.a,n=n.b;return e.length=t,q(e,n)})),b=e((function(r,n){return n[r]})),d=t((function(r,n,e){for(var t=e.length,a=Array(t),u=0;t>u;u++)a[u]=e[u];return a[r]=n,a})),p=e((function(r,n){for(var e=n.length,t=Array(e+1),a=0;e>a;a++)t[a]=n[a];return t[e]=r,t}));function h(r){throw Error("https://github.com/elm/core/blob/1.0.0/hints/"+r+".md")}function g(r,n){for(var e,t=[],a=m(r,n,0,t);a&&(e=t.pop());a=m(e.a,e.b,0,t));return a}function m(r,n,e,t){if(r===n)return!0;if("object"!=typeof r||null===r||null===n)return"function"==typeof r&&h(5),!1;if(e>100)return t.push(q(r,n)),!0;for(var a in 0>r.$&&(r=Or(r),n=Or(n)),r)if(!m(r[a],n[a],e+1,t))return!1;return!0}function v(r,n,e){if("object"!=typeof r)return r===n?0:n>r?-1:1;if(void 0===r.$)return(e=v(r.a,n.a))||(e=v(r.b,n.b))?e:v(r.c,n.c);for(;r.b&&n.b&&!(e=v(r.a,n.a));r=r.b,n=n.b);return e||(r.b?1:n.b?-1:0)}var w=e((function(r,n){return 1>v(r,n)})),y=e((function(r,n){var e=v(r,n);return 0>e?Pr:e?zr:Vr}));function q(r,n){return{a:r,b:n}}function k(r,n,e){return{a:r,b:n,c:e}}function x(r,n){var e={};for(var t in r)e[t]=r[t];for(var t in n)e[t]=n[t];return e}var $=e(E);function E(r,n){if("string"==typeof r)return r+n;if(!r.b)return n;var e=D(r.a,n);r=r.b;for(var t=e;r.b;r=r.b)t=t.b=D(r.a,n);return e}var A={$:0};function D(r,n){return{$:1,a:r,b:n}}var L=e(D);function S(r){for(var n=A,e=r.length;e--;)n=D(r[e],n);return n}function T(r){for(var n=[];r.b;r=r.b)n.push(r.a);return n}var R=t((function(r,n,e){for(var t=[];n.b&&e.b;n=n.b,e=e.b)t.push(o(r,n.a,e.a));return S(t)})),N=e((function(r,n){return r+n})),_=e(Math.pow),C=Math.ceil,j=Math.floor,I=Math.log,B=e((function(r,n){return r+n})),U=e((function(r,n){return r+n})),O=t((function(r,n,e){for(var t=e.length,a=0;t>a;){var u=e[a],i=e.charCodeAt(a);a++,55296>i||i>56319||(u+=e[a],a++),n=o(r,u,n)}return n})),V=t((function(r,n,e){for(var t=e.length;t--;){var a=e[t],u=e.charCodeAt(t);56320>u||u>57343||(a=e[--t]+a),n=o(r,a,n)}return n})),z=e((function(r,n){return n.split(r)})),P=e((function(r,n){return n.join(r)})),H=t((function(r,n,e){return e.slice(r,n)})),M=e((function(r,n){return n.indexOf(r)>-1})),G=e((function(r,n){return 0===n.indexOf(r)})),F=e((function(r,n){return n.length>=r.length&&n.lastIndexOf(r)===n.length-r.length})),Z=e((function(r,n){var e=r.length;if(1>e)return A;for(var t=0,a=[];(t=n.indexOf(r,t))>-1;)a.push(t),t+=e;return S(a)}));function X(r){return r+""}function J(r){return{$:2,b:r}}J((function(r){return"number"!=typeof r?ar("an INT",r):r>-2147483647&&2147483647>r&&(0|r)===r?Zr(r):!isFinite(r)||r%1?ar("an INT",r):Zr(r)})),J((function(r){return"boolean"==typeof r?Zr(r):ar("a BOOL",r)})),J((function(r){return"number"==typeof r?Zr(r):ar("a FLOAT",r)})),J((function(r){return Zr(r)}));var K=J((function(r){return"string"==typeof r?Zr(r):r instanceof String?Zr(r+""):ar("a STRING",r)})),W=e((function(r,n){return{$:6,d:r,b:n}})),Y=e((function(r,n){return{$:10,b:n,h:r}})),Q=e((function(r,n){return rr(r,n)}));function rr(r,n){switch(r.$){case 2:return r.b(n);case 5:return null===n?Zr(r.c):ar("null",n);case 3:return er(n)?nr(r.b,n,S):ar("a LIST",n);case 4:return er(n)?nr(r.b,n,tr):ar("an ARRAY",n);case 6:var e=r.d;if("object"!=typeof n||null===n||!(e in n))return ar("an OBJECT with a field named `"+e+"`",n);var t=rr(r.b,n[e]);return Rn(t)?t:Hr(o(Gr,e,t.a));case 7:var a=r.e;return er(n)?n.length>a?(t=rr(r.b,n[a]),Rn(t)?t:Hr(o(Fr,a,t.a))):ar("a LONGER array. Need index "+a+" but only see "+n.length+" entries",n):ar("an ARRAY",n);case 8:if("object"!=typeof n||null===n||er(n))return ar("an OBJECT",n);var u=A;for(var i in n)if(n.hasOwnProperty(i)){if(t=rr(r.b,n[i]),!Rn(t))return Hr(o(Gr,i,t.a));u=D(q(i,t.a),u)}return Zr(fn(u));case 9:for(var c=r.f,s=r.g,f=0;s.length>f;f++){if(t=rr(s[f],n),!Rn(t))return t;c=c(t.a)}return Zr(c);case 10:return t=rr(r.b,n),Rn(t)?rr(r.h(t.a),n):t;case 11:for(var l=A,b=r.g;b.b;b=b.b){if(t=rr(b.a,n),Rn(t))return t;l=D(t.a,l)}return Hr(Xr(fn(l)));case 1:return Hr(o(Mr,r.a,n));case 0:return Zr(r.a)}}function nr(r,n,e){for(var t=n.length,a=Array(t),u=0;t>u;u++){var i=rr(r,n[u]);if(!Rn(i))return Hr(o(Fr,u,i.a));a[u]=i.a}return Zr(e(a))}function er(r){return Array.isArray(r)||"undefined"!=typeof FileList&&r instanceof FileList}function tr(r){return o(Tn,r.length,(function(n){return r[n]}))}function ar(r,n){return Hr(o(Mr,"Expecting "+r,n))}function ur(r){return r}var or=t((function(r,n,e){return e[r]=n,e}));function ir(r){return{$:0,a:r}}var cr=e((function(r,n){return{$:3,b:r,d:n}})),sr=0,fr=!1,lr=[];function br(r){if(lr.push(r),!fr){for(fr=!0;r=lr.shift();)dr(r);fr=!1}}function dr(r){for(;r.f;){var n=r.f.$;if(0===n||1===n){for(;r.g&&r.g.$!==n;)r.g=r.g.i;if(!r.g)return;r.f=r.g.b(r.f.a),r.g=r.g.i}else{if(2===n)return void(r.f.c=r.f.b((function(n){r.f=n,br(r)})));if(5===n){if(0===r.h.length)return;r.f=r.f.b(r.h.shift())}else r.g={$:3===n?0:1,b:r.f.b,i:r.g},r.f=r.f.d}}}var pr=a((function(r,n,e,t){return function(r,n,e,t,a){var u=o(Q,r,n?n.flags:void 0);Rn(u)||h(2);var i={},c=e(u.a),s=c.a,f=function(r,n){var e;for(var t in hr){var a=hr[t];a.a&&((e=e||{})[t]=a.a(t,n)),r[t]=gr(a,n)}return e}(i,(function(r,n){var e=o(t,r,s);s=e.a,yr(i,e.b,a(s))}));return yr(i,c.b,a(s)),f?{ports:f}:{}}(n,t,r.gb,r.cF,r.hs)})),hr={};function gr(r,n){var e,t={g:n,h:void 0},a=r.c,u=r.d,s=r.e,f=r.f;return t.h=(br(e={$:0,e:sr++,f:o(cr,(function r(n){return o(cr,r,{$:5,b:function(r){var e=r.a;return 0===r.$?i(u,t,e,n):s&&f?c(a,t,e.i,e.j,n):i(a,t,s?e.i:e.j,n)}})}),r.b),g:null,h:[]}),e)}function mr(r){return function(n){return{$:1,k:r,l:n}}}var vr=[],wr=!1;function yr(r,n,e){if(vr.push({p:r,q:n,r:e}),!wr){wr=!0;for(var t;t=vr.shift();)qr(t.p,t.q,t.r);wr=!1}}function qr(r,n,e){var t,a={};for(var u in kr(!0,n,a,null),kr(!1,e,a,null),r)(t=r[u]).h.push({$:"fx",a:a[u]||{i:A,j:A}}),br(t)}function kr(r,n,e,t){switch(n.$){case 1:var a=n.k,u=function(r,n,e,t){return o(r?hr[n].e:hr[n].f,(function(r){for(var n=e;n;n=n.t)r=n.s(r);return r}),t)}(r,a,t,n.l);return void(e[a]=function(r,n,e){return e=e||{i:A,j:A},r?e.i=D(n,e.i):e.j=D(n,e.j),e}(r,u,e[a]));case 2:for(var i=n.m;i.b;i=i.b)kr(r,i.a,e,t);return;case 3:return void kr(r,n.o,e,{s:n.n,t:t})}}function xr(r){hr[r]&&h(3)}var $r=e((function(r,n){return n}));function Er(r){var n=[],e=hr[r].u,a={$:2,b:function(r){var n=setTimeout((function(){r(ir(0))}),0);return function(){clearTimeout(n)}},c:null};return hr[r].b=a,hr[r].c=t((function(r,t){for(;t.b;t=t.b)for(var u=n,o=e(t.a),i=0;u.length>i;i++)u[i](o);return a})),{subscribe:function(r){n.push(r)},unsubscribe:function(r){var e=(n=n.slice()).indexOf(r);0>e||n.splice(e,1)}}}var Ar,Dr,Lr,Sr,Tr=e((function(r,n){return function(e){return r(n(e))}})),Rr=e((function(r,n){var e="g";r.aq&&(e+="m"),r.aj&&(e+="i");try{return Kr(RegExp(n,e))}catch(r){return Wr}})),Nr=t((function(r,n,e){for(var t,a=[],u=0,o=e,i=n.lastIndex,s=-1;u++<r&&(t=n.exec(o))&&s!=n.lastIndex;){for(var f=t.length-1,l=Array(f);f>0;){var b=t[f];l[--f]=b?Kr(b):Wr}a.push(c(ze,t[0],t.index,u,S(l))),s=n.lastIndex}return n.lastIndex=i,S(a)})),_r=a((function(r,n,e,t){var a=0;return t.replace(n,(function(n){if(a++>=r)return n;for(var t=arguments.length-3,u=Array(t);t>0;){var o=arguments[t];u[--t]=o?Kr(o):Wr}return e(c(ze,n,arguments[arguments.length-2],a,S(u)))}))})),Cr=t((function(r,n,e){for(var t=e,a=[],u=n.lastIndex,o=n.lastIndex;r--;){var i=n.exec(t);if(!i)break;a.push(t.slice(u,i.index)),u=n.lastIndex}return a.push(t.slice(u)),n.lastIndex=o,S(a)})),jr=1/0,Ir=function(r){return r},Br=L,Ur=t((function(r,n,e){for(;;){if(-2===e.$)return n;var t=e.d,a=r,u=i(r,e.b,e.c,i(Ur,r,n,e.e));r=a,n=u,e=t}})),Or=function(r){return i(Ur,t((function(r,n,e){return o(Br,q(r,n),e)})),A,r)},Vr=1,zr=2,Pr=0,Hr=function(r){return{$:1,a:r}},Mr=e((function(r,n){return{$:3,a:r,b:n}})),Gr=e((function(r,n){return{$:0,a:r,b:n}})),Fr=e((function(r,n){return{$:1,a:r,b:n}})),Zr=function(r){return{$:0,a:r}},Xr=function(r){return{$:2,a:r}},Jr=N,Kr=function(r){return{$:0,a:r}},Wr={$:1},Yr=$,Qr=X,rn=e((function(r,n){return o(P,r,T(n))})),nn=e((function(r,n){return S(o(z,r,n))})),en=t((function(r,n,e){for(;;){if(!e.b)return n;var t=e.b,a=r,u=o(r,e.a,n);r=a,n=u,e=t}})),tn=function(r){return i(en,e((function(r,n){return n+1})),0,r)},an=R,un=w,on=t((function(r,n,e){for(;;){if(v(r,n)>=1)return e;var t=r,a=n-1,u=o(Br,n,e);r=t,n=a,e=u}})),cn=e((function(r,n){return i(on,r,n,A)})),sn=e((function(r,n){return i(an,r,o(cn,0,tn(n)-1),n)})),fn=function(r){return i(en,Br,A,r)},ln=32,bn=a((function(r,n,e,t){return{$:0,a:r,b:n,c:e,d:t}})),dn=[],pn=C,hn=e((function(r,n){return I(n)/I(r)})),gn=pn(o(hn,2,ln)),mn=c(bn,0,gn,dn,dn),vn=f,wn=function(r){return{$:1,a:r}},yn=j,qn=function(r){return r.length},kn=e((function(r,n){return v(r,n)>0?r:n})),xn=function(r){return{$:0,a:r}},$n=l,En=e((function(r,n){for(;;){var e=o($n,ln,r),t=e.b,a=o(Br,xn(e.a),n);if(!t.b)return fn(a);r=t,n=a}})),An=function(r){return r.a},Dn=e((function(r,n){for(;;){var e=pn(n/ln);if(1===e)return o($n,ln,r).a;r=o(En,r,A),n=e}})),Ln=e((function(r,n){if(n.j){var e=n.j*ln,t=yn(o(hn,ln,e-1)),a=r?fn(n.o):n.o,u=o(Dn,a,n.j);return c(bn,qn(n.n)+e,o(kn,5,t*gn),u,n.n)}return c(bn,qn(n.n),gn,dn,n.n)})),Sn=u((function(r,n,e,t,a){for(;;){if(0>n)return o(Ln,!1,{o:t,j:e/ln|0,n:a});var u=wn(i(vn,ln,n,r));n-=ln,t=o(Br,u,t)}})),Tn=e((function(r,n){if(r>0){var e=r%ln;return s(Sn,n,r-e-ln,r,A,i(vn,e,r-e,n))}return mn})),Rn=function(r){return!r.$},Nn=Y,_n=W,Cn=(Sr=A,{$:2,m:Sr}),jn=K,In=(Ar="input",Dr=jn,xr(Ar),hr[Ar]={f:Tr,u:Dr,a:function(r,n){var e=A,a=hr[r].u,u=ir(null);return hr[r].b=u,hr[r].c=t((function(r,n){return e=n,u})),{send:function(r){var t=o(Q,a,r);Rn(t)||h(4);for(var u=t.a,i=e;i.b;i=i.b)n(i.a(u))}}}},mr(Ar)),Bn=t((function(r,n,e){return n(r(e))})),Un=ur,On=e((function(r,n){return i(en,function(r){return e((function(n,e){return e.push(r(n)),e}))}(r),[],n)})),Vn=function(r){return xr(r),hr[r]={e:$r,u:function(r){var n=r.b;return o(On,Ir,S([Un(r.a),n]))},a:Er},mr(r)}("output"),zn=e((function(r,n){return q(r,n)})),Pn=ur,Hn=function(r){return o(Bn,Yr("Error ("+r+") -> "),o(Bn,Pn,o(Bn,zn(!1),Vn)))},Mn=y,Gn=e((function(r,n){r:for(;;){if(-2===n.$)return Wr;var e=n.c,t=n.d,a=n.e;switch(o(Mn,r,n.b)){case 0:n=t;continue r;case 1:return Kr(e);default:n=a;continue r}}})),Fn=e((function(r,n){return n.$?Wr:Kr(r(n.a))})),Zn=t((function(r,n,e){return{aX:e,dN:n,hj:r}})),Xn=function(r){return r.length},Jn=function(r){return i(t((function(r,n,e){r:for(;;){if(e.b){var t=e.a,a=e.b,u=Xn(t),o=u+1;if(g(r,u))return i(Zn,t,n,r);if(v(r,u)>0){r-=o,n+=1,e=a;continue r}return i(Zn,t,n,r)}return i(Zn,"",n,r)}})),r.bJ,0,o(nn,"\n",r.fo))},Kn={$:-2},Wn=Kn,Yn=function(r){return""===r},Qn=function(r){return-r},re=e((function(r,n){return{cK:Yn(n)?"":"?"+n,cM:A,e7:"",bX:r,fl:A,fq:"",fs:!1,fJ:"",am:Wn,bA:A,gi:"en",gp:Wr,gr:"",dR:Wn,gA:Wr,gD:"US English Male",gO:"",at:A,es:-1,bR:Wn,hI:{fE:q("“","”"),hg:q("‘","’")},eR:-1,hL:"0.0.1"}})),ne="https://LiaScript.github.io",ee=ne+"/course/?",te="> The file you want me to load does not contain any content. Everything I see is only an empty string...\n \nIf you see this in message in an editor, try to copy and paste the following code:\n\n```` md\n\x3c!--\nauthor: Your Name\n\nemail: your@mail.org\n\nversion: 0.0.1\n\nlanguage: en\n\nnarrator: US English Female\n\ncomment: Try to write a short comment about\n your course, multiline is also okay.\n--\x3e\n\n# Course Main Title\n\nThis is your **course** initialization stub.\n\nPlease see the [Docs]("+ee+"https://raw.githubusercontent.com/liaScript/docs/master/README.md)\nto find out what is possible in [LiaScript]("+ne+').\n\nIf you want to use instant help in your Atom IDE, please type **lia** to see all available shortcuts.\n\n## Markdown\n\nYou can use common [Markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) syntax to create your course, such as:\n\n1. Lists\n2. ordered or\n\n * unordered\n * ones ...\n\n\n| Header 1 | Header 2 |\n| :--------- | :--------- |\n| Item 1 | Item 2 |\n\n\nImages:\n\n![images](https://farm2.static.flickr.com/1618/26701766821_7bea494826.jpg)\n\n\n### Extensions\n\n --{{0}}--\nBut you can also include other features such as spoken text.\n\n --{{1}}--\nInsert any kind of audio file:\n\n {{1}}\n?[audio](https://bigsoundbank.com/UPLOAD/mp3/1068.mp3)\n\n\n --{{2}}--\nEven videos or change the language completely.\n\n {{2-3}}\n!?[video](https://www.youtube.com/watch?v=bICfKRyKTwE)\n\n\n --{{3 Russian Female}}--\nПервоначально создан в 2004 году Джоном Грубером (англ. John Gruber) и Аароном\nШварцем. Многие идеи языка были позаимствованы из существующих соглашений по\nразметке текста в электронных письмах...\n\n\n {{3}}\nType "voice" to see a list of all available languages.\n\n\n### Styling\n\n\x3c!-- class = "animated rollIn" style = "animation-delay: 2s; color: purple" --\x3e\nThe whole text-block should appear in purple color and with a wobbling effect.\nWhich is a **bad** example, please use it with caution ...\n~~ only this is red ;-) ~~ \x3c!-- class = "animated infinite bounce" style = "color: red;" --\x3e\n\n## Charts\n\nUse ASCII-Art to draw diagrams:\n\n Multiline\n 1.9 | DOTS\n | ***\n y | * *\n - | r r r r r r r*r r r r*r r r r r r r\n a | * *\n x | * *\n i | B B B B B * B B B B B B * B B B B B\n s | * *\n | * * * * * *\n -1 +------------------------------------\n 0 x-axis 1\n\n## Quizzes\n\n### A Textquiz\n\nWhat did the **fish** say when he hit a **concrete wall**?\n\n [[dam]]\n\n### Multiple Choice\n\nJust add as many points as you wish:\n\n [[X]] Only the **X** marks the correct point.\n [[ ]] Empty ones are wrong.\n [[X]] ...\n\n### Single Choice\n\nJust add as many points as you wish:\n\n [( )] ...\n [(X)] <-- Only the **X** is allowed.\n [( )] ...\n\n\n## Executable Code\n\nYou can make your code executable and define projects:\n\n``` js -EvalScript.js\nlet who = data.first_name + " " + data.last_name;\n\nif(data.online) {\n who + " is online"; }\nelse {\n who + " is NOT online"; }\n```\n``` json +Data.json\n{\n "first_name" : "Sammy",\n "last_name" : "Shark",\n "online" : true\n}\n```\n<script>\n // insert the JSON dataset into the local variable data\n let data = @input(1);\n\n // eval the script that uses this dataset\n eval(`@input(0)`);\n<\/script>\n\n\n## More\n\nFind out what you also can do ...\n\n'+ee+"https://raw.githubusercontent.com/liaScript/docs/master/README.md\n````\n",ae=U,ue=a((function(r,n,e,t){if(t.b){var a=t.a,u=t.b;if(u.b){var s=u.a,f=u.b;if(f.b){var l=f.a,b=f.b;if(b.b){var d=b.b;return o(r,a,o(r,s,o(r,l,o(r,b.a,e>500?i(en,r,n,fn(d)):c(ue,r,n,e+1,d)))))}return o(r,a,o(r,s,o(r,l,n)))}return o(r,a,o(r,s,n))}return o(r,a,n)}return n})),oe=t((function(r,n,e){return c(ue,r,n,0,e)})),ie=e((function(r,n){return i(oe,e((function(n,e){return o(Br,r(n),e)})),A,n)})),ce=B,se=function(r){return o(ce,r,"")},fe=t((function(r,n,e){return r>0?i(fe,r>>1,E(n,n),1&r?E(e,n):e):e})),le=e((function(r,n){return i(fe,r,n,"")})),be=t((function(r,n,e){return E(o(le,r-Xn(e),se(n)),e)})),de=e((function(r,n){var e=Xn("\n\n"),t=Jn(n),a=t.aX+e+2;return"Parse error around line: "+Qr(t.dN)+"\n\n"+t.hj+"\n"+i(be,a," ","^")+"\nI expected one of the following:\n\n* "+o(rn,"\n* ",o(ie,(function(r){return o(ae,r,"\n")}),r))})),pe=e((function(r){return r})),he=function(r){return r},ge=e((function(r,n){return e((function(e,t){var a=i(he,n,e,t);if(a.c.$)return k(a.a,a.b,Hr(a.c.a));var u=a.a,o=a.b;return i(he,r(a.c.a),u,o)}))})),me=t((function(r,n,e){return o(r,e,n)})),ve=t((function(r,n,t){return e((function(e,a){var u=i(he,t,e,a);return k(u.a,u.b,u.c.$?Hr(n(u.c.a)):Zr(r(u.c.a)))}))})),we=e((function(r,n){return i(ve,r,Ir,n)})),ye=e((function(r,n){return o(ge,o(me,we,r),n)})),qe=e((function(r,n){return o(ye,r,o(we,pe,n))})),ke=o(e((function(r,n){return{b5:r,cf:n}})),mn,mn),xe=function(r,n,e,t,a,u,o){return 6===r.a?r.f(n,e,t,a,u,o):r(n)(e)(t)(a)(u)(o)}(function(r){return n(6,r,(function(n){return function(e){return function(t){return function(a){return function(u){return function(o){return r(n,e,t,a,u,o)}}}}}}))}((function(r,n,e,t,a,u){return{aD:e,dc:n,gf:t,gU:u,hk:a,hM:r}})),0,0,Wn,mn,Wr,Wr),$e=Wn,Ee=i(t((function(r,n,e){return{fI:r,d3:n,ey:e}})),A,mn,mn),Ae=e((function(r,n){return n.$?r:n.a})),De=t((function(r,n,e){return{P:{a0:!1,ae:A},aC:ke,c5:e,fw:!1,b2:0,al:xe,by:S([0]),dj:$e,cc:mn,dz:A,dA:!1,k:{fc:Ee,f_:!1,gd:!1},cp:mn,ct:o(Ae,Ir,n),bc:o(Ae,0,r),cB:mn,cC:mn,cE:mn}})),Le=e((function(r,n){return o(ye,r,o(we,me(pe),n))})),Se=e((function(r,n){return e((function(e,t){var a=i(he,r,e,t);if(a.c.$){var u=a.c.a,o=i(he,n,e,t);return o.c.$?k(e,t,Hr(E(u,o.c.a))):o}return a}))})),Te=ve(Ir),Re=e((function(r,n){return o(Te,pe(S([r])),n)})),Ne=Ir,_e=o(Re,"expected any character",(Lr=pe(!0),Ne(e((function(r,n){var e,t,a="could not satisfy predicate",u=(t=(e=n.k).charCodeAt(0),isNaN(t)?Wr:Kr(55296>t||t>56319?q(e[0],e.slice(1)):q(e[0]+e[1],e.slice(2))));if(u.$)return k(r,n,Hr(S([a])));var o=u.a,i=o.a,c=o.b;return Lr(i)?k(r,x(n,{k:c,bJ:n.bJ+1}),Zr(i)):k(r,n,Hr(S([a])))}))))),Ce=e((function(r,n){return t((function(e,t,a){for(;;){var u=i(he,n,t,a);if(!u.c.$)return k(b=u.a,d=u.b,Zr(fn(e)));var c=u.a,s=u.b,f=u.c.a,l=i(he,r,t,a);if(l.c.$)return k(c,s,Hr(f));var b=l.a,d=l.b;e=o(Br,l.c.a,e),t=b,a=d}}))(A)})),je=H,Ie=e((function(r,n){return 1>r?n:i(je,r,Xn(n),n)})),Be=G,Ue=function(r){return e((function(n,e){if(o(Be,r,e.k)){var t=Xn(r),a=e.bJ+t;return k(n,x(e,{k:o(Ie,t,e.k),bJ:a}),Zr(r))}return k(n,e,Hr(S(['expected "'+r+'"'])))}))},Oe=function(r){return e((function(n,e){return k(n,e,Zr(r))}))},Ve=o(Le,Oe(A),o(qe,o(Ce,_e,Ue("--\x3e")),Ue("\x3c!---"))),ze=a((function(r,n,e,t){return{dB:n,bH:r,gL:e,hq:t}})),Pe=Rr,He=function(r){return o(Pe,{aj:!1,aq:!1},r)},Me=Nr,Ge=/.^/,Fe=u((function(r,n,e,t,a){var u=o(Be,"^",e)?e:"^"+e,c=i(Me,1,o(Ae,Ge,r(u)),a.k);if(c.b&&!c.b.b){var s=c.a,f=Xn(s.bH),l=a.bJ+f;return k(t,x(a,{k:o(Ie,f,a.k),bJ:l}),Zr(n(s)))}return k(t,a,Hr(S(["expected input matching Regexp /"+u+"/"])))})),Ze=o(Bn,o(Fe,He,(function(r){return r.bH})),Ir),Xe=o(Re,"optional whitespace",Ze("\\s*")),Je=function(r){return o(Se,Ve,o(Le,o(Ce,r,Ue("--\x3e")),o(qe,Xe,Ue("\x3c!--"))))},Ke=e((function(r,n){return k(r,n,Hr(A))})),We=function(r){return i(oe,Se,Ke,r)},Ye=function(r){return e((function(n,e){var t=i(he,r,n,e);return t.c.$?k(n,e,Zr(Wr)):k(t.a,t.b,Zr(Kr(t.c.a)))}))},Qe=Ye(Ue("@")),rt=o(Le,Ze("\\w+[\\w\\-.\\d]*"),Qe),nt=function(r){return S(r.trim().split(/\s+/g))},et=o(Bn,nt,rn(" ")),tt=o(we,et,Ze("([ \t].*|[ \t]*\n)+")),at=function(r){return T(r).join("")},ut=function(r){return o(we,at,o(Ce,_e,r))},ot=ut(Ue("\n@end")),it=o(Se,o(Le,tt,Ze("[\t ]*:")),o(Le,ot,Ze("[\t ]*\n"))),ct=o(ye,it,o(we,zn,rt)),st=function(r){return we(pe(r))},ft=function(r){return o(st,0,r)},lt=function(r){return{$:0,a:r}},bt=function(r){return{$:2,a:r}},dt=function(r){return{$:1,a:r}},pt=u((function(r,n,e,t,a){return{$:-1,a:r,b:n,c:e,d:t,e:a}})),ht=u((function(r,n,e,t,a){if(-1!==a.$||a.a){if(-1!==t.$||t.a||-1!==t.d.$||t.d.a)return s(pt,r,n,e,t,a);var u=t.d;return o=t.e,s(pt,0,t.b,t.c,s(pt,1,u.b,u.c,u.d,u.e),s(pt,1,n,e,o,a))}var o,i=a.b,c=a.c,f=a.d,l=a.e;return-1!==t.$||t.a?s(pt,r,i,c,s(pt,0,n,e,t,f),l):s(pt,0,n,e,s(pt,1,t.b,t.c,t.d,o=t.e),s(pt,1,i,c,f,l))})),gt=t((function(r,n,e){if(-2===e.$)return s(pt,0,r,n,Kn,Kn);var t=e.a,a=e.b,u=e.c,c=e.d,f=e.e;switch(o(Mn,r,a)){case 0:return s(ht,t,a,u,i(gt,r,n,c),f);case 1:return s(pt,t,a,n,c,f);default:return s(ht,t,a,u,c,i(gt,r,n,f))}})),mt=t((function(r,n,e){var t=i(gt,r,n,e);return-1!==t.$||t.a?t:s(pt,1,t.b,t.c,t.d,t.e)})),vt=e((function(r,n){return x(n,{dR:i(mt,r.a,r.b,n.dR)})})),wt=e((function(r,n){return n.b?i(oe,Br,n,r):r})),yt=function(r){return r.b?Kr(r.a):Wr},qt=function(r){return r.toLowerCase()},kt=t((function(r,n,e){return function(r){switch(qt(o(Ae,"",yt(o(nn,":",r))))){case"https":case"http":case"data":case"file":case"hyper":case"dat":case"ipfs":case"ipns":case"blob":case"mailto":case"tel":return!0;default:return!1}}(e)||o(Be,"#",e)?e:E(r,E(e,n))})),xt=u((function(r,n,e,t,a){return o(wt,a,o(ie,o(Bn,o(kt,n,e),r),nt(t)))})),$t=t((function(r,n,e){return x(e,{at:s(xt,r,e.bX,e.cK,n,e.at)})})),Et=function(r){return r.trim()},At=e((function(r,n){var e=o(nn," ",Et(r));if(e.b){var t=e.a,a=e.b;return x(n,{am:i(mt,o(Be,"\\",t)?t:"\\"+t,Et(o(rn," ",a)),n.am)})}return n})),Dt=e((function(r,n){var e=o(nn,"/",n);r:for(;e.b&&e.b.b&&e.b.b.b;)switch(e.b.b.a){case"repos":if("api"===e.a&&"v1"===e.b.a)return"https://codeberg.org/api/v1/repos/"+o(rn,"/",e.b.b.b);break r;case"raw":if(e.b.b.b.b&&"branch"===e.b.b.b.a&&e.b.b.b.b.b){var t=e.b,a=t.b.b.b,u=a.a;return"https://codeberg.org/api/v1/repos/"+o(rn,"/",S([e.a,t.a,"raw",o(rn,"/",a.b)]))+"?ref="+u}break r;case"src":if(e.b.b.b.b&&"branch"===e.b.b.b.a&&e.b.b.b.b.b){var i=e.b,c=i.b.b.b;return u=c.a,"https://codeberg.org/api/v1/repos/"+o(rn,"/",S([e.a,i.a,"raw",o(rn,"/",c.b)]))+"?ref="+u}break r;default:break r}return"https://codeberg.org/"+n})),Lt=e((function(r,n){return"https://dl.dropbox.com/"+n})),St=t((function(r,n,e){return o(rn,n,o(nn,r,e))})),Tt=e((function(r,n){return"https://raw.githubusercontent.com/"+function(){var r=o(nn,"/",n);r:for(;r.b&&r.b.b;){if(!r.b.b.b)return n+"/master/README.md";switch(r.b.b.a){case"tree":return i(St,"/tree/","/",n)+"/README.md";case"raw":if(r.b.b.b.b&&"refs"===r.b.b.b.a&&r.b.b.b.b.b&&"heads"===r.b.b.b.b.a)return i(St,"/raw/refs/heads","/refs/heads",n);break r;default:break r}}return i(St,"/blob/","/",n)}()})),Rt=function(r){return encodeURIComponent(r)},Nt=e((function(r,n){var e=o(Ae,n,yt(o(nn,"?",n))),t=o(nn,"/",e);r:for(;t.b&&t.b.b&&t.b.b.b;)switch(t.b.b.a){case"projects":if("api"===t.a&&"v4"===t.b.a)return"https://gitlab.com/api/v4/projects/"+o(rn,"/",t.b.b.b);break r;case"-":if(!t.b.b.b.b||!t.b.b.b.b.b)break r;switch(t.b.b.b.a){case"raw":var a=t.b,u=a.b.b.b,i=u.a,c=u.b;return"https://gitlab.com/api/v4/projects/"+o(rn,"/",S([Rt(t.a+"/"+a.a),"repository/files",o(rn,"/",c),"raw"]))+"?ref="+i;case"blob":var s=t.b,f=s.b.b.b;return i=f.a,c=f.b,"https://gitlab.com/api/v4/projects/"+o(rn,"/",S([Rt(t.a+"/"+s.a),"repository/files",o(rn,"/",c),"raw"]))+"?ref="+i;default:break r}default:break r}return"https://gitlab.com/"+n})),_t=e((function(r,n){return 1>r?n:i(je,0,-r,n)})),Ct=function(r){switch(r){case 0:return"A";case 1:return"B";case 2:return"C";case 3:return"D";case 4:return"E";case 5:return"F";case 6:return"G";case 7:return"H";case 8:return"I";case 9:return"J";case 10:return"K";case 11:return"L";case 12:return"M";case 13:return"N";case 14:return"O";case 15:return"P";case 16:return"Q";case 17:return"R";case 18:return"S";case 19:return"T";case 20:return"U";case 21:return"V";case 22:return"W";case 23:return"X";case 24:return"Y";case 25:return"Z";case 26:return"a";case 27:return"b";case 28:return"c";case 29:return"d";case 30:return"e";case 31:return"f";case 32:return"g";case 33:return"h";case 34:return"i";case 35:return"j";case 36:return"k";case 37:return"l";case 38:return"m";case 39:return"n";case 40:return"o";case 41:return"p";case 42:return"q";case 43:return"r";case 44:return"s";case 45:return"t";case 46:return"u";case 47:return"v";case 48:return"w";case 49:return"x";case 50:return"y";case 51:return"z";case 52:return"0";case 53:return"1";case 54:return"2";case 55:return"3";case 56:return"4";case 57:return"5";case 58:return"6";case 59:return"7";case 60:return"8";case 61:return"9";case 62:return"+";default:return"/"}},jt=e((function(r,n){var e,t=n.a,a=n.b,u=n.c<<8|r;return 2===a?k(E(t,E(Ct(63&(e=u)>>>18),E(Ct(63&e>>>12),E(Ct(63&e>>>6),Ct(63&e>>>0))))),0,0):k(t,a+1,u)})),It=e((function(r,n){var e,t,a=55296>(t=(e=r).charCodeAt(0))||t>56319?t:1024*(t-55296)+e.charCodeAt(1)-56320+65536;return 128>a?o(jt,a,n):o(jt,128|63&a,2048>a?o(jt,192|a>>>6,n):o(jt,128|63&a>>>6,55296>a||a>=57344&&65535>=a?o(jt,224|a>>>12,n):o(jt,128|63&a>>>12,o(jt,240|a>>>18,n))))})),Bt=O,Ut=k("",0,0),Ot=F,Vt=e((function(r,n){var e,t;return e=function(r){var n=r.a,e=r.c;switch(r.b){case 1:return n+(Ct(63&e>>>2)+(Ct(63&e<<4)+"=="));case 2:return n+(Ct(63&e>>>10)+(Ct(63&e>>>4)+(Ct(63&e<<2)+"=")));default:return n}}(i(Bt,It,Ut,"https://onedrive.live.com/"+n)),"https://api.onedrive.com/v1.0/shares/u!"+(o(Ot,"=",t=i(St,"+","-",i(St,"/","_",e)))?o(_t,1,t):t)+"/root/content"})),zt=e((function(r,n){r:for(;;){if(r>0){if(n.b){r-=1,n=n.b;continue r}return n}return n}})),Pt=e((function(r,n){return i(oe,e((function(n,e){return r(n)?o(Br,n,e):e})),A,n)})),Ht=t((function(r,n,e){r:for(;;){if(r>0){if(n.b){var t=n.a;r-=1,n=n.b,e=o(Br,t,e);continue r}return e}return e}})),Mt=e((function(r,n){return fn(i(Ht,r,n,A))})),Gt=t((function(r,n,e){if(n>0){var t=q(n,e);r:for(;;){n:for(;;){if(!t.b.b)return e;if(!t.b.b.b){if(1===t.a)break r;break n}switch(t.a){case 1:break r;case 2:var a=t.b;return S([a.a,a.b.a]);case 3:if(t.b.b.b.b){var u=t.b,c=u.b;return S([u.a,c.a,c.b.a])}break n;default:if(t.b.b.b.b&&t.b.b.b.b.b){var s=t.b,f=s.b,l=f.b,b=l.b,d=b.b;return o(Br,s.a,o(Br,f.a,o(Br,l.a,o(Br,b.a,r>1e3?o(Mt,n-4,d):i(Gt,r+1,n-4,d)))))}break n}}return e}return S([t.b.a])}return A})),Ft=e((function(r,n){return i(Gt,0,r,n)})),Zt=e((function(r,n){var e=o(Ae,n,yt(o(nn,"?",n))),t=o(nn,"/",e),a=o(Ae,-1,o(Fn,An,yt(o(Pt,(function(r){return"-"===r.b}),o(sn,zn,t))))),u=o(Ae,"",yt(t)),i=a>1?o(rn,"/",o(Ft,a-1,o(zt,1,t))):"",c=""!==(a>=0&&v(tn(t),a+1)>0?o(Ae,"",yt(o(zt,a+1,t))):"")&&v(tn(t),a+2)>0?o(Ae,"main",yt(o(zt,a+2,t))):"main",s=""!==c&&v(tn(t),a+3)>0?o(rn,"/",o(zt,a+3,t)):"README.md";return"https://"+u+"/api/v4/projects/"+Rt(i)+"/repository/files/"+Rt(s)+"/raw?ref="+c})),Xt=e((function(r,n){var e,t=(e=o(nn,"?",n)).b?e.a:n;return o(Ot,"/download",t)?"https://"+t:"https://"+t+"/download"})),Jt=Yr("(?:http(?:s)?://)?(?:www\\.)?"),Kt=Jt("codeberg\\.org/(.*)"),Wt=Jt("dropbox\\.com/(.*)"),Yt=Jt("github\\.com/(.*)"),Qt=Jt("gitlab\\.com/(.*)"),ra=Jt("onedrive\\.live\\.com/(.*)"),na=o(Bn,He,Ae(Ge)),ea=e((function(r,n){var e=yt(i(Me,1,na(r),n));return e.$?Wr:o(Ae,Wr,yt(e.a.hq))})),ta=e((function(r,n){r:for(;;){if(r.b){var e=r.a,t=r.b,a=o(ea,e.ac,n);if(a.$){r=t;continue r}return q(!0,o(e.aa,n,a.a))}return q(!1,n)}})),aa=function(r){return r.b},ua=function(r){return o(Be,"https://api.allorigins.win/raw?url=",r)?r:o(ta,S([{aa:Tt,ac:Yt},{aa:Lt,ac:Wt},{aa:Vt,ac:ra},{aa:Dt,ac:Jt(Kt)},{aa:Nt,ac:Qt},{aa:Zt,ac:"gitlab://(.*)"},{aa:Xt,ac:"nextcloud://(.*)"}]),r).b},oa=e((function(r,n){return x(n,{bA:s(xt,ua,n.bX,n.cK,r,n.bA)})})),ia=e((function(r,n){var e=nt(r);return e.b&&e.b.b&&!e.b.b.b?x(n,{bR:i(mt,e.a,i(kt,n.bX,n.cK,e.b.a),n.bR)}):n})),ca=t((function(r,n,e){return{$:3,a:r,b:n,c:e}})),sa=e((function(r,n){return{$:2,a:r,b:n}})),fa=e((function(r,n){return{$:0,a:r,b:n}})),la=e((function(r,n){return{$:14,a:r,b:n}})),ba=e((function(r,n){return{$:11,a:r,b:n}})),da=t((function(r,n,e){return{$:5,a:r,b:n,c:e}})),pa=e((function(r,n){return{$:13,a:r,b:n}})),ha=t((function(r,n,e){return{$:2,a:r,b:n,c:e}})),ga=e((function(r,n){return{$:3,a:r,b:n}})),ma=t((function(r,n,e){return{$:0,a:r,b:n,c:e}})),va=t((function(r,n,e){return{$:1,a:r,b:n,c:e}})),wa=t((function(r,n,e){return{$:4,a:r,b:n,c:e}})),ya=function(r){return{$:6,a:r}},qa=function(r){return{$:7,a:r}},ka=e((function(r,n){return{$:8,a:r,b:n}})),xa=e((function(r,n){return{$:15,a:r,b:n}})),$a=e((function(r,n){return{$:9,a:r,b:n}})),Ea=e((function(r,n){return{$:12,a:r,b:n}})),Aa=e((function(r,n){return{$:4,a:r,b:n}})),Da=e((function(r,n){return{$:6,a:r,b:n}})),La=e((function(r,n){return{$:5,a:r,b:n}})),Sa=X,Ta=function(r){return r.a},Ra=function(r){return e((function(n,e){return i(he,Oe(0),r(n),e)}))},Na=p,_a=4294967295>>>32-gn,Ca=function(r){return[r]},ja=b,Ia=d,Ba=a((function(r,n,e,t){var a=_a&n>>>r;if(v(a,qn(t))>-1){if(5===r)return o(Na,wn(e),t);var u=xn(c(Ba,r-gn,n,e,dn));return o(Na,u,t)}var s=o(ja,a,t);return s.$?(u=xn(c(Ba,r-gn,n,e,Ca(s))),i(Ia,a,u,t)):(u=xn(c(Ba,r-gn,n,e,s.a)),i(Ia,a,u,t))})),Ua=e((function(r,n){var e=n.a,t=n.b,a=n.c,u=qn(n.d),o=qn(r),i=e+(o-u);if(g(o,ln)){if(v(i>>>gn,1<<t)>0){var s=t+gn,f=c(Ba,s,e,r,Ca(xn(a)));return c(bn,i,s,f,dn)}return c(bn,i,t,c(Ba,t,e,r,a),dn)}return c(bn,i,t,a,r)})),Oa=e((function(r,n){return o(Ua,o(Na,r,n.d),n)})),Va=e((function(r,n){var e=r.ey;return x(n,{d3:o(Oa,r.d3,n.d3),ey:o(Oa,e,n.ey)})})),za=function(r){return e((function(n,e){return i(he,r(n),n,e)}))},Pa=function(r){var n=r.a,e=r.b;return o(qe,Ra((function(r){var n=r.k;return n.gd||n.f_?x(r,{k:x(n,{fc:o(Va,e,n.fc)})}):r})),za((function(r){return Oe(q(Sa(.4*(n+2))+"em",r.k.gd||r.k.f_?Ta(r.k.fc.d3):-1))})))},Ha=function(r){return Ra((function(n){return x(n,{P:{a0:!1,ae:o(Br,r,n.P.ae)}})}))},Ma=u((function(r,n,e,t,a){return{e6:n,cN:t,cZ:e,eU:a,hM:r}})),Ga=e((function(r,n){return{cZ:n,gD:r}})),Fa=e((function(r,n){return 1===r.$?n:o(Oa,r.a,n)})),Za=t((function(r,n,e){for(;;){var t=o($n,ln,r),a=t.a,u=t.b;if(0>v(qn(a),ln))return o(Ln,!0,{o:n,j:e,n:a});r=u,n=o(Br,wn(a),n),e+=1}})),Xa=e((function(r,n){r:for(;n.b&&9===n.a.$;)switch(n.a.a.$){case 3:if(n.a.a.b.a)break r;var e=n.b;return{cN:Kr(n.a.a.b.b),aK:e,eU:Wr};case 4:if(n.a.a.b.a)break r;return{cN:Wr,aK:e=n.b,eU:Kr(n.a.a.b.b)};default:break r}var t;return r?x(t=o(Xa,!1,fn(n)),{aK:fn(t.aK)}):{cN:Wr,aK:n,eU:Wr}})),Ja=e((function(r,n){var e=n.a,t=n.b,a=n.c;return o(ge,(function(r){return Oe(q(e,r))}),o(Le,function(r){return za((function(n){var e;return Oe((e=o(Gn,r,n.al.aD)).$?0:Ta(e.a.cZ)-1)}))}(e),Ra((function(n){var u,c,f,l,b;return x(n,{al:(u=n.al,c=o(Xa,!0,a),f=c.cN,l=c.eU,b=c.aK,x(u,{aD:function(){var a=o(Gn,e,u.aD);if(a.$)return i(mt,e,o(Ga,o(Ae,n.c5.gD,o(Fn,Et,t)),(c=S([s(Ma,r,A,b,o(Fa,f,mn),o(Fa,l,mn))])).b?i(Za,c,A,0):mn),u.aD);var c,d=a.a;return i(mt,e,x(d,{cZ:o(Oa,s(Ma,r,A,b,o(Fa,f,mn),o(Fa,l,mn)),d.cZ)}),u.aD)}()}))})}))))})),Ka=function(r){return e((function(n,e){return k(n,e,Hr(S([r])))}))},Wa=o(Re,"expected an int",o(ge,o(Bn,(function(r){for(var n=0,e=r.charCodeAt(0),t=43==e||45==e?1:0,a=t;r.length>a;++a){var u=r.charCodeAt(a);if(48>u||u>57)return Wr;n=10*n+u-48}return a==t?Wr:Kr(45==e?-n:n)}),(function(r){return r.$?Ka("impossible state in Combine.Num.unwrap"):Oe(r.a)})),Ze("-?(?:0|[1-9]\\d*)"))),Ya=o(ge,(function(r){return o(Le,Oe(r),Ra((function(n){return x(n,{al:v(r,n.al.dc)>0?x(n.al,{dc:r}):n.al,by:o(Br,r,n.by)})})))}),Wa),Qa=o(we,Xn,Ze("(`){3,}")),ru=function(r){return o(rn,"",r)},nu=o(qe,Ra(e((function(r,n){return x(n,{dA:r})}))(!1)),za((function(r){return g(r.dz,A)?Oe(0):ft(r.dA?Oe(0):Ze(ru(r.dz)))}))),eu=function(r){return S([r])},tu=function(r){var n=o(le,r,"`");return o(we,o(Bn,ru,o(Bn,_t(1),eu)),o(Ce,o(Le,Ze("(.(?!"+n+"))*\n?"),Ye(nu)),o(Le,Ue(n),Ye(nu))))},au=e((function(r,n){return r?"<lia-keep><pre id='ls'><code style='background: #CCCCCC; white-space: pre;'>"+n+"</code></pre></lia-keep>":n})),uu=_r(jr),ou=t((function(r,n,e){var t=He(r);return t.$?e:i(uu,t.a,n,e)})),iu=e((function(r,n){var e=o(Be,"@@",r)?k(!0,!0,o(Ie,2,r)):o(Be,"@-@",r)?k(!0,!1,o(Ie,3,r)):k(!1,!1,o(Ie,1,r)),t=e.a,a=e.b,u=e.c;return o(Fn,(function(r){return k(t,a,r)}),function(){switch(u){case"author":return Kr(n.e7);case"date":return Kr(n.fq);case"email":return Kr(n.fJ);case"version":return Kr(n.hL);case"section":return Kr(Qr(n.es));case"uid":return Kr(Qr(n.es)+"_"+Qr(n.eR));default:return o(Gn,u,n.dR)}}())})),cu="iex3OAQpP4u3QT9xq",su=o(St,"\\@",cu),fu=function(r){return S(r.split(/\r\n|\r|\n/g))},lu=function(r){var n=t((function(n,e,t){for(;;){var a=i(he,r,e,t);if(a.c.$)return k(e,t,fn(n));var u=a.a,c=a.b,s=a.c.a;if(g(t,c))return k(u,c,fn(n));n=o(Br,s,n),e=u,t=c}}));return e((function(r,e){var t=i(n,A,r,e);return k(t.a,t.b,Zr(t.c))}))},bu=function(r){return o(ye,lu(r),o(we,Br,r))},du=e((function(r,n){return q(n.a,r(n.b))})),pu=e((function(r,n){return o(Se,n,Oe(r))})),hu=o(we,o(St,"\\`","`"),o(qe,Ue("`"),o(Le,Ze("([^`\n\\\\]*|\\\\`|\\\\)+"),Ue("`")))),gu=We(S([o(ge,(function(r){return ut(Ue(o(le,r,"`")))}),Qa),hu,Ze("[^),]+")])),mu=o(t((function(r,n,e){return o(qe,n,o(Le,e,r))})),Ue("("),Ue(")")),vu=e((function(r,n){return o(ye,lu(o(Le,n,r)),o(we,Br,n))})),wu=o(pu,A,mu(o(e((function(r,n){return o(Se,o(vu,r,n),Oe(A))})),Ue(","),gu))),yu=Ze("\\w[\\w\\d._]+"),qu=o(ye,o(pu,!1,o(st,!0,Ue("'"))),o(we,t((function(r,n,e){return q(E(r,e),n)})),Ze("@-?@?"))),ku=o(ye,yu,qu),xu=function(r){return e((function(n,e){return i(he,Oe(0),r,e)}))},$u=o(ye,o(ye,za((function(r){return Oe(q(r.c5.bX,r.c5.cK))})),o(qe,Ze("(\\)|[^)]*\\))"),o(ye,Ze("[^) ]*"),o(we,t((function(r,n,e){return o(wt,r,S([i(kt,e.a,e.b,n)]))})),o(qe,Ue("]("),wu))))),o(we,zn,o(ye,yu,o(qe,Ue("["),qu)))),Eu=t((function(r,n,e){return{fo:r,k:n,bJ:e}})),Au=t((function(r,n,e){var t=i(he,r,n,function(r){return i(Eu,r,r,0)}(e));return t.c.$?Hr(k(t.a,t.b,t.c.a)):Zr(k(t.a,t.b,t.c.a))})),Du=o(ye,wu,o(we,zn,ku)),Lu=function(r){return i(St,"${","\\${",i(St,"\t","\\t",i(St,"\n","\\n",i(St,"`","\\`",i(St,"'","\\'",i(St,'"','\\"',i(St,"\\","\\\\",r)))))))},Su=o(st,q(q("@uid",!1),A),o(Le,Ra((function(r){var n=r.c5;return x(r,{c5:x(n,{eR:n.eR+1})})})),Ue("@uid"))),Tu=o(St,cu,"\\@"),Ru=e((function(r,n){var e=n.b,t=n.c,a=o(_u,n.a,su(r)),u=a.b;return k(a.a,e+1,Tu(i(St,"@"+Qr(e),u,i(St,"@'"+Qr(e),Lu(u),su(t)))))})),Nu=e((function(r,n){var t=n.a,a=t.a,u=t.b,c=n.b;return za((function(n){var t=o(iu,a,n.c5);if(t.$)return Ka("macro definition not found");var s,f,l=t.a,b=l.a,d=l.b,p=l.c,h=r||g(n.dz,A)?p:o(rn,"\n"+i(St,"*","",i(St,"?","",ru(n.dz))),fu(p)),m=i(en,Ru,k(n,0,h),c),v=m.c;return o(qe,xu(m.a),(s=Yr((b?(f=d,o(Bn,o(ou,"[*+`{}#^|$\\[\\]]",o(Bn,(function(r){return r.bH}),Yr("\\"))),o(Bn,o(St,"<","\\<"),o(Bn,o(St,">","\\>"),o(Bn,o(St,"\\\\`","`"),o(Bn,o(St,"\n","<br id='ls'>"),o(Bn,o(ou,"@[a-zA-Z]+[\\w\\d._\\-]*",(function(r){return"@input"!==r.bH?"@-"+r.bH:r.bH})),o(Bn,o(St,"\\<br id='ls'\\>","<br id='ls'>"),au(f))))))))):Ir)(u?Lu(v):v)),e((function(r,n){return i(he,Oe(0),r,x(n,{k:s(n.k)}))}))))}))})),_u=e((function(r,n){var e=i(Au,o(we,ru,bu(o(Se,Ze("@input[^@]+"),o(Le,Ze("[^@]+"),Cu())))),r,n);if(e.$)return q(r,n);var t=e.a,a=t.a,u=t.b,c=t.c;return""===u.k?q(a,c):o(du,Yr(c),o(_u,a,u.k))}));function Cu(){return ft(Ye(bu(We(S([o(ge,Nu(!1),Su),o(ge,Nu(!1),Du),o(ge,Nu(!1),$u),ju()])))))}function ju(){return o(ge,(function(r){var n=r.a,e=r.b;return o(ge,(function(r){return o(ge,(function(r){return o(Nu,!0,q(e,r))}),o(we,wt(r),tu(n)))}),o(qe,Ze("[\t ]*\n"),wu))}),o(ye,ku,o(we,zn,o(qe,Ze("[\t ]*[a-zA-Z0-9_]*[\t ]*"),Qa))))}var Iu=Cu();Cu=function(){return Iu};var Bu=ju();ju=function(){return Bu};var Uu,Ou,Vu,zu=Ra((function(r){return x(r,{by:o(zt,1,r.by)})})),Pu=Ze("[\t ]+"),Hu=ft(o(ge,Ja(!1),o(qe,zu,o(ye,o(Ce,_e,Ue("--\x3e")),o(qe,Ze("}}--[\t ]*"),o(ye,Ye(o(Le,Ze("[A-Za-z0-9 ]+"),o(Le,Iu,Pu))),o(we,t((function(r,n,e){return k(r,n,S([o(fa,Et(at(e)),A)]))})),o(Le,Ya,Ze("\x3c!--[\t ]*--{{"))))))))),Mu=ft(lu(We(S([ft(Ve),Hu])))),Gu=t((function(r,n,e){var t=e.a,a=e.b;return q(t,"src"===t||"href"===t||"data"===t||"data-src"===t||"formaction"===t||"poster"===t?i(kt,r,n,a):a)})),Fu=(Uu=S([q("Aacute","Á"),q("aacute","á"),q("Abreve","Ă"),q("abreve","ă"),q("ac","∾"),q("acd","∿"),q("acE","∾̳"),q("Acirc","Â"),q("acirc","â"),q("acute","´"),q("Acy","А"),q("acy","а"),q("AElig","Æ"),q("aelig","æ"),q("af","⁡"),q("Afr","𝔄"),q("afr","𝔞"),q("Agrave","À"),q("agrave","à"),q("alefsym","ℵ"),q("aleph","ℵ"),q("Alpha","Α"),q("alpha","α"),q("Amacr","Ā"),q("amacr","ā"),q("amalg","⨿"),q("amp","&"),q("AMP","&"),q("andand","⩕"),q("And","⩓"),q("and","∧"),q("andd","⩜"),q("andslope","⩘"),q("andv","⩚"),q("ang","∠"),q("ange","⦤"),q("angle","∠"),q("angmsdaa","⦨"),q("angmsdab","⦩"),q("angmsdac","⦪"),q("angmsdad","⦫"),q("angmsdae","⦬"),q("angmsdaf","⦭"),q("angmsdag","⦮"),q("angmsdah","⦯"),q("angmsd","∡"),q("angrt","∟"),q("angrtvb","⊾"),q("angrtvbd","⦝"),q("angsph","∢"),q("angst","Å"),q("angzarr","⍼"),q("Aogon","Ą"),q("aogon","ą"),q("Aopf","𝔸"),q("aopf","𝕒"),q("apacir","⩯"),q("ap","≈"),q("apE","⩰"),q("ape","≊"),q("apid","≋"),q("apos","'"),q("ApplyFunction","⁡"),q("approx","≈"),q("approxeq","≊"),q("Aring","Å"),q("aring","å"),q("Ascr","𝒜"),q("ascr","𝒶"),q("Assign","≔"),q("ast","*"),q("asymp","≈"),q("asympeq","≍"),q("Atilde","Ã"),q("atilde","ã"),q("Auml","Ä"),q("auml","ä"),q("awconint","∳"),q("awint","⨑"),q("backcong","≌"),q("backepsilon","϶"),q("backprime","‵"),q("backsim","∽"),q("backsimeq","⋍"),q("Backslash","∖"),q("Barv","⫧"),q("barvee","⊽"),q("barwed","⌅"),q("Barwed","⌆"),q("barwedge","⌅"),q("bbrk","⎵"),q("bbrktbrk","⎶"),q("bcong","≌"),q("Bcy","Б"),q("bcy","б"),q("bdquo","„"),q("becaus","∵"),q("because","∵"),q("Because","∵"),q("bemptyv","⦰"),q("bepsi","϶"),q("bernou","ℬ"),q("Bernoullis","ℬ"),q("Beta","Β"),q("beta","β"),q("beth","ℶ"),q("between","≬"),q("Bfr","𝔅"),q("bfr","𝔟"),q("bigcap","⋂"),q("bigcirc","◯"),q("bigcup","⋃"),q("bigodot","⨀"),q("bigoplus","⨁"),q("bigotimes","⨂"),q("bigsqcup","⨆"),q("bigstar","★"),q("bigtriangledown","▽"),q("bigtriangleup","△"),q("biguplus","⨄"),q("bigvee","⋁"),q("bigwedge","⋀"),q("bkarow","⤍"),q("blacklozenge","⧫"),q("blacksquare","▪"),q("blacktriangle","▴"),q("blacktriangledown","▾"),q("blacktriangleleft","◂"),q("blacktriangleright","▸"),q("blank","␣"),q("blk12","▒"),q("blk14","░"),q("blk34","▓"),q("block","█"),q("bne","=⃥"),q("bnequiv","≡⃥"),q("bNot","⫭"),q("bnot","⌐"),q("Bopf","𝔹"),q("bopf","𝕓"),q("bot","⊥"),q("bottom","⊥"),q("bowtie","⋈"),q("boxbox","⧉"),q("boxdl","┐"),q("boxdL","╕"),q("boxDl","╖"),q("boxDL","╗"),q("boxdr","┌"),q("boxdR","╒"),q("boxDr","╓"),q("boxDR","╔"),q("boxh","─"),q("boxH","═"),q("boxhd","┬"),q("boxHd","╤"),q("boxhD","╥"),q("boxHD","╦"),q("boxhu","┴"),q("boxHu","╧"),q("boxhU","╨"),q("boxHU","╩"),q("boxminus","⊟"),q("boxplus","⊞"),q("boxtimes","⊠"),q("boxul","┘"),q("boxuL","╛"),q("boxUl","╜"),q("boxUL","╝"),q("boxur","└"),q("boxuR","╘"),q("boxUr","╙"),q("boxUR","╚"),q("boxv","│"),q("boxV","║"),q("boxvh","┼"),q("boxvH","╪"),q("boxVh","╫"),q("boxVH","╬"),q("boxvl","┤"),q("boxvL","╡"),q("boxVl","╢"),q("boxVL","╣"),q("boxvr","├"),q("boxvR","╞"),q("boxVr","╟"),q("boxVR","╠"),q("bprime","‵"),q("breve","˘"),q("Breve","˘"),q("brvbar","¦"),q("bscr","𝒷"),q("Bscr","ℬ"),q("bsemi","⁏"),q("bsim","∽"),q("bsime","⋍"),q("bsolb","⧅"),q("bsol","\\"),q("bsolhsub","⟈"),q("bull","•"),q("bullet","•"),q("bump","≎"),q("bumpE","⪮"),q("bumpe","≏"),q("Bumpeq","≎"),q("bumpeq","≏"),q("Cacute","Ć"),q("cacute","ć"),q("capand","⩄"),q("capbrcup","⩉"),q("capcap","⩋"),q("cap","∩"),q("Cap","⋒"),q("capcup","⩇"),q("capdot","⩀"),q("CapitalDifferentialD","ⅅ"),q("caps","∩︀"),q("caret","⁁"),q("caron","ˇ"),q("Cayleys","ℭ"),q("ccaps","⩍"),q("Ccaron","Č"),q("ccaron","č"),q("Ccedil","Ç"),q("ccedil","ç"),q("Ccirc","Ĉ"),q("ccirc","ĉ"),q("Cconint","∰"),q("ccups","⩌"),q("ccupssm","⩐"),q("Cdot","Ċ"),q("cdot","ċ"),q("cedil","¸"),q("Cedilla","¸"),q("cemptyv","⦲"),q("cent","¢"),q("centerdot","·"),q("CenterDot","·"),q("cfr","𝔠"),q("Cfr","ℭ"),q("CHcy","Ч"),q("chcy","ч"),q("check","✓"),q("checkmark","✓"),q("Chi","Χ"),q("chi","χ"),q("circ","ˆ"),q("circeq","≗"),q("circlearrowleft","↺"),q("circlearrowright","↻"),q("circledast","⊛"),q("circledcirc","⊚"),q("circleddash","⊝"),q("CircleDot","⊙"),q("circledR","®"),q("circledS","Ⓢ"),q("CircleMinus","⊖"),q("CirclePlus","⊕"),q("CircleTimes","⊗"),q("cir","○"),q("cirE","⧃"),q("cire","≗"),q("cirfnint","⨐"),q("cirmid","⫯"),q("cirscir","⧂"),q("ClockwiseContourIntegral","∲"),q("CloseCurlyDoubleQuote","”"),q("CloseCurlyQuote","’"),q("clubs","♣"),q("clubsuit","♣"),q("colon",":"),q("Colon","∷"),q("Colone","⩴"),q("colone","≔"),q("coloneq","≔"),q("comma",","),q("commat","@"),q("comp","∁"),q("compfn","∘"),q("complement","∁"),q("complexes","ℂ"),q("cong","≅"),q("congdot","⩭"),q("Congruent","≡"),q("conint","∮"),q("Conint","∯"),q("ContourIntegral","∮"),q("copf","𝕔"),q("Copf","ℂ"),q("coprod","∐"),q("Coproduct","∐"),q("copy","©"),q("COPY","©"),q("copysr","℗"),q("CounterClockwiseContourIntegral","∳"),q("crarr","↵"),q("cross","✗"),q("Cross","⨯"),q("Cscr","𝒞"),q("cscr","𝒸"),q("csub","⫏"),q("csube","⫑"),q("csup","⫐"),q("csupe","⫒"),q("ctdot","⋯"),q("cudarrl","⤸"),q("cudarrr","⤵"),q("cuepr","⋞"),q("cuesc","⋟"),q("cularr","↶"),q("cularrp","⤽"),q("cupbrcap","⩈"),q("cupcap","⩆"),q("CupCap","≍"),q("cup","∪"),q("Cup","⋓"),q("cupcup","⩊"),q("cupdot","⊍"),q("cupor","⩅"),q("cups","∪︀"),q("curarr","↷"),q("curarrm","⤼"),q("curlyeqprec","⋞"),q("curlyeqsucc","⋟"),q("curlyvee","⋎"),q("curlywedge","⋏"),q("curren","¤"),q("curvearrowleft","↶"),q("curvearrowright","↷"),q("cuvee","⋎"),q("cuwed","⋏"),q("cwconint","∲"),q("cwint","∱"),q("cylcty","⌭"),q("dagger","†"),q("Dagger","‡"),q("daleth","ℸ"),q("darr","↓"),q("Darr","↡"),q("dArr","⇓"),q("dash","‐"),q("Dashv","⫤"),q("dashv","⊣"),q("dbkarow","⤏"),q("dblac","˝"),q("Dcaron","Ď"),q("dcaron","ď"),q("Dcy","Д"),q("dcy","д"),q("ddagger","‡"),q("ddarr","⇊"),q("DD","ⅅ"),q("dd","ⅆ"),q("DDotrahd","⤑"),q("ddotseq","⩷"),q("deg","°"),q("Del","∇"),q("Delta","Δ"),q("delta","δ"),q("demptyv","⦱"),q("dfisht","⥿"),q("Dfr","𝔇"),q("dfr","𝔡"),q("dHar","⥥"),q("dharl","⇃"),q("dharr","⇂"),q("DiacriticalAcute","´"),q("DiacriticalDot","˙"),q("DiacriticalDoubleAcute","˝"),q("DiacriticalGrave","`"),q("DiacriticalTilde","˜"),q("diam","⋄"),q("diamond","⋄"),q("Diamond","⋄"),q("diamondsuit","♦"),q("diams","♦"),q("die","¨"),q("DifferentialD","ⅆ"),q("digamma","ϝ"),q("disin","⋲"),q("div","÷"),q("divide","÷"),q("divideontimes","⋇"),q("divonx","⋇"),q("DJcy","Ђ"),q("djcy","ђ"),q("dlcorn","⌞"),q("dlcrop","⌍"),q("dollar","$"),q("Dopf","𝔻"),q("dopf","𝕕"),q("Dot","¨"),q("dot","˙"),q("DotDot","⃜"),q("doteq","≐"),q("doteqdot","≑"),q("DotEqual","≐"),q("dotminus","∸"),q("dotplus","∔"),q("dotsquare","⊡"),q("doublebarwedge","⌆"),q("DoubleContourIntegral","∯"),q("DoubleDot","¨"),q("DoubleDownArrow","⇓"),q("DoubleLeftArrow","⇐"),q("DoubleLeftRightArrow","⇔"),q("DoubleLeftTee","⫤"),q("DoubleLongLeftArrow","⟸"),q("DoubleLongLeftRightArrow","⟺"),q("DoubleLongRightArrow","⟹"),q("DoubleRightArrow","⇒"),q("DoubleRightTee","⊨"),q("DoubleUpArrow","⇑"),q("DoubleUpDownArrow","⇕"),q("DoubleVerticalBar","∥"),q("DownArrowBar","⤓"),q("downarrow","↓"),q("DownArrow","↓"),q("Downarrow","⇓"),q("DownArrowUpArrow","⇵"),q("DownBreve","̑"),q("downdownarrows","⇊"),q("downharpoonleft","⇃"),q("downharpoonright","⇂"),q("DownLeftRightVector","⥐"),q("DownLeftTeeVector","⥞"),q("DownLeftVectorBar","⥖"),q("DownLeftVector","↽"),q("DownRightTeeVector","⥟"),q("DownRightVectorBar","⥗"),q("DownRightVector","⇁"),q("DownTeeArrow","↧"),q("DownTee","⊤"),q("drbkarow","⤐"),q("drcorn","⌟"),q("drcrop","⌌"),q("Dscr","𝒟"),q("dscr","𝒹"),q("DScy","Ѕ"),q("dscy","ѕ"),q("dsol","⧶"),q("Dstrok","Đ"),q("dstrok","đ"),q("dtdot","⋱"),q("dtri","▿"),q("dtrif","▾"),q("duarr","⇵"),q("duhar","⥯"),q("dwangle","⦦"),q("DZcy","Џ"),q("dzcy","џ"),q("dzigrarr","⟿"),q("Eacute","É"),q("eacute","é"),q("easter","⩮"),q("Ecaron","Ě"),q("ecaron","ě"),q("Ecirc","Ê"),q("ecirc","ê"),q("ecir","≖"),q("ecolon","≕"),q("Ecy","Э"),q("ecy","э"),q("eDDot","⩷"),q("Edot","Ė"),q("edot","ė"),q("eDot","≑"),q("ee","ⅇ"),q("efDot","≒"),q("Efr","𝔈"),q("efr","𝔢"),q("eg","⪚"),q("Egrave","È"),q("egrave","è"),q("egs","⪖"),q("egsdot","⪘"),q("el","⪙"),q("Element","∈"),q("elinters","⏧"),q("ell","ℓ"),q("els","⪕"),q("elsdot","⪗"),q("Emacr","Ē"),q("emacr","ē"),q("empty","∅"),q("emptyset","∅"),q("EmptySmallSquare","◻"),q("emptyv","∅"),q("EmptyVerySmallSquare","▫"),q("emsp13"," "),q("emsp14"," "),q("emsp"," "),q("ENG","Ŋ"),q("eng","ŋ"),q("ensp"," "),q("Eogon","Ę"),q("eogon","ę"),q("Eopf","𝔼"),q("eopf","𝕖"),q("epar","⋕"),q("eparsl","⧣"),q("eplus","⩱"),q("epsi","ε"),q("Epsilon","Ε"),q("epsilon","ε"),q("epsiv","ϵ"),q("eqcirc","≖"),q("eqcolon","≕"),q("eqsim","≂"),q("eqslantgtr","⪖"),q("eqslantless","⪕"),q("Equal","⩵"),q("equals","="),q("EqualTilde","≂"),q("equest","≟"),q("Equilibrium","⇌"),q("equiv","≡"),q("equivDD","⩸"),q("eqvparsl","⧥"),q("erarr","⥱"),q("erDot","≓"),q("escr","ℯ"),q("Escr","ℰ"),q("esdot","≐"),q("Esim","⩳"),q("esim","≂"),q("Eta","Η"),q("eta","η"),q("ETH","Ð"),q("eth","ð"),q("Euml","Ë"),q("euml","ë"),q("euro","€"),q("excl","!"),q("exist","∃"),q("Exists","∃"),q("expectation","ℰ"),q("exponentiale","ⅇ"),q("ExponentialE","ⅇ"),q("fallingdotseq","≒"),q("Fcy","Ф"),q("fcy","ф"),q("female","♀"),q("ffilig","ffi"),q("fflig","ff"),q("ffllig","ffl"),q("Ffr","𝔉"),q("ffr","𝔣"),q("filig","fi"),q("FilledSmallSquare","◼"),q("FilledVerySmallSquare","▪"),q("fjlig","fj"),q("flat","♭"),q("fllig","fl"),q("fltns","▱"),q("fnof","ƒ"),q("Fopf","𝔽"),q("fopf","𝕗"),q("forall","∀"),q("ForAll","∀"),q("fork","⋔"),q("forkv","⫙"),q("Fouriertrf","ℱ"),q("fpartint","⨍"),q("frac12","½"),q("frac13","⅓"),q("frac14","¼"),q("frac15","⅕"),q("frac16","⅙"),q("frac18","⅛"),q("frac23","⅔"),q("frac25","⅖"),q("frac34","¾"),q("frac35","⅗"),q("frac38","⅜"),q("frac45","⅘"),q("frac56","⅚"),q("frac58","⅝"),q("frac78","⅞"),q("frasl","⁄"),q("frown","⌢"),q("fscr","𝒻"),q("Fscr","ℱ"),q("gacute","ǵ"),q("Gamma","Γ"),q("gamma","γ"),q("Gammad","Ϝ"),q("gammad","ϝ"),q("gap","⪆"),q("Gbreve","Ğ"),q("gbreve","ğ"),q("Gcedil","Ģ"),q("Gcirc","Ĝ"),q("gcirc","ĝ"),q("Gcy","Г"),q("gcy","г"),q("Gdot","Ġ"),q("gdot","ġ"),q("ge","≥"),q("gE","≧"),q("gEl","⪌"),q("gel","⋛"),q("geq","≥"),q("geqq","≧"),q("geqslant","⩾"),q("gescc","⪩"),q("ges","⩾"),q("gesdot","⪀"),q("gesdoto","⪂"),q("gesdotol","⪄"),q("gesl","⋛︀"),q("gesles","⪔"),q("Gfr","𝔊"),q("gfr","𝔤"),q("gg","≫"),q("Gg","⋙"),q("ggg","⋙"),q("gimel","ℷ"),q("GJcy","Ѓ"),q("gjcy","ѓ"),q("gla","⪥"),q("gl","≷"),q("glE","⪒"),q("glj","⪤"),q("gnap","⪊"),q("gnapprox","⪊"),q("gne","⪈"),q("gnE","≩"),q("gneq","⪈"),q("gneqq","≩"),q("gnsim","⋧"),q("Gopf","𝔾"),q("gopf","𝕘"),q("grave","`"),q("GreaterEqual","≥"),q("GreaterEqualLess","⋛"),q("GreaterFullEqual","≧"),q("GreaterGreater","⪢"),q("GreaterLess","≷"),q("GreaterSlantEqual","⩾"),q("GreaterTilde","≳"),q("Gscr","𝒢"),q("gscr","ℊ"),q("gsim","≳"),q("gsime","⪎"),q("gsiml","⪐"),q("gtcc","⪧"),q("gtcir","⩺"),q("gt",">"),q("GT",">"),q("Gt","≫"),q("gtdot","⋗"),q("gtlPar","⦕"),q("gtquest","⩼"),q("gtrapprox","⪆"),q("gtrarr","⥸"),q("gtrdot","⋗"),q("gtreqless","⋛"),q("gtreqqless","⪌"),q("gtrless","≷"),q("gtrsim","≳"),q("gvertneqq","≩︀"),q("gvnE","≩︀"),q("Hacek","ˇ"),q("hairsp"," "),q("half","½"),q("hamilt","ℋ"),q("HARDcy","Ъ"),q("hardcy","ъ"),q("harrcir","⥈"),q("harr","↔"),q("hArr","⇔"),q("harrw","↭"),q("Hat","^"),q("hbar","ℏ"),q("Hcirc","Ĥ"),q("hcirc","ĥ"),q("hearts","♥"),q("heartsuit","♥"),q("hellip","…"),q("hercon","⊹"),q("hfr","𝔥"),q("Hfr","ℌ"),q("HilbertSpace","ℋ"),q("hksearow","⤥"),q("hkswarow","⤦"),q("hoarr","⇿"),q("homtht","∻"),q("hookleftarrow","↩"),q("hookrightarrow","↪"),q("hopf","𝕙"),q("Hopf","ℍ"),q("horbar","―"),q("HorizontalLine","─"),q("hscr","𝒽"),q("Hscr","ℋ"),q("hslash","ℏ"),q("Hstrok","Ħ"),q("hstrok","ħ"),q("HumpDownHump","≎"),q("HumpEqual","≏"),q("hybull","⁃"),q("hyphen","‐"),q("Iacute","Í"),q("iacute","í"),q("ic","⁣"),q("Icirc","Î"),q("icirc","î"),q("Icy","И"),q("icy","и"),q("Idot","İ"),q("IEcy","Е"),q("iecy","е"),q("iexcl","¡"),q("iff","⇔"),q("ifr","𝔦"),q("Ifr","ℑ"),q("Igrave","Ì"),q("igrave","ì"),q("ii","ⅈ"),q("iiiint","⨌"),q("iiint","∭"),q("iinfin","⧜"),q("iiota","℩"),q("IJlig","IJ"),q("ijlig","ij"),q("Imacr","Ī"),q("imacr","ī"),q("image","ℑ"),q("ImaginaryI","ⅈ"),q("imagline","ℐ"),q("imagpart","ℑ"),q("imath","ı"),q("Im","ℑ"),q("imof","⊷"),q("imped","Ƶ"),q("Implies","⇒"),q("incare","℅"),q("in","∈"),q("infin","∞"),q("infintie","⧝"),q("inodot","ı"),q("intcal","⊺"),q("int","∫"),q("Int","∬"),q("integers","ℤ"),q("Integral","∫"),q("intercal","⊺"),q("Intersection","⋂"),q("intlarhk","⨗"),q("intprod","⨼"),q("InvisibleComma","⁣"),q("InvisibleTimes","⁢"),q("IOcy","Ё"),q("iocy","ё"),q("Iogon","Į"),q("iogon","į"),q("Iopf","𝕀"),q("iopf","𝕚"),q("Iota","Ι"),q("iota","ι"),q("iprod","⨼"),q("iquest","¿"),q("iscr","𝒾"),q("Iscr","ℐ"),q("isin","∈"),q("isindot","⋵"),q("isinE","⋹"),q("isins","⋴"),q("isinsv","⋳"),q("isinv","∈"),q("it","⁢"),q("Itilde","Ĩ"),q("itilde","ĩ"),q("Iukcy","І"),q("iukcy","і"),q("Iuml","Ï"),q("iuml","ï"),q("Jcirc","Ĵ"),q("jcirc","ĵ"),q("Jcy","Й"),q("jcy","й"),q("Jfr","𝔍"),q("jfr","𝔧"),q("jmath","ȷ"),q("Jopf","𝕁"),q("jopf","𝕛"),q("Jscr","𝒥"),q("jscr","𝒿"),q("Jsercy","Ј"),q("jsercy","ј"),q("Jukcy","Є"),q("jukcy","є"),q("Kappa","Κ"),q("kappa","κ"),q("kappav","ϰ"),q("Kcedil","Ķ"),q("kcedil","ķ"),q("Kcy","К"),q("kcy","к"),q("Kfr","𝔎"),q("kfr","𝔨"),q("kgreen","ĸ"),q("KHcy","Х"),q("khcy","х"),q("KJcy","Ќ"),q("kjcy","ќ"),q("Kopf","𝕂"),q("kopf","𝕜"),q("Kscr","𝒦"),q("kscr","𝓀"),q("lAarr","⇚"),q("Lacute","Ĺ"),q("lacute","ĺ"),q("laemptyv","⦴"),q("lagran","ℒ"),q("Lambda","Λ"),q("lambda","λ"),q("lang","⟨"),q("Lang","⟪"),q("langd","⦑"),q("langle","⟨"),q("lap","⪅"),q("Laplacetrf","ℒ"),q("laquo","«"),q("larrb","⇤"),q("larrbfs","⤟"),q("larr","←"),q("Larr","↞"),q("lArr","⇐"),q("larrfs","⤝"),q("larrhk","↩"),q("larrlp","↫"),q("larrpl","⤹"),q("larrsim","⥳"),q("larrtl","↢"),q("latail","⤙"),q("lAtail","⤛"),q("lat","⪫"),q("late","⪭"),q("lates","⪭︀"),q("lbarr","⤌"),q("lBarr","⤎"),q("lbbrk","❲"),q("lbrace","{"),q("lbrack","["),q("lbrke","⦋"),q("lbrksld","⦏"),q("lbrkslu","⦍"),q("Lcaron","Ľ"),q("lcaron","ľ"),q("Lcedil","Ļ"),q("lcedil","ļ"),q("lceil","⌈"),q("lcub","{"),q("Lcy","Л"),q("lcy","л"),q("ldca","⤶"),q("ldquo","“"),q("ldquor","„"),q("ldrdhar","⥧"),q("ldrushar","⥋"),q("ldsh","↲"),q("le","≤"),q("lE","≦"),q("LeftAngleBracket","⟨"),q("LeftArrowBar","⇤"),q("leftarrow","←"),q("LeftArrow","←"),q("Leftarrow","⇐"),q("LeftArrowRightArrow","⇆"),q("leftarrowtail","↢"),q("LeftCeiling","⌈"),q("LeftDoubleBracket","⟦"),q("LeftDownTeeVector","⥡"),q("LeftDownVectorBar","⥙"),q("LeftDownVector","⇃"),q("LeftFloor","⌊"),q("leftharpoondown","↽"),q("leftharpoonup","↼"),q("leftleftarrows","⇇"),q("leftrightarrow","↔"),q("LeftRightArrow","↔"),q("Leftrightarrow","⇔"),q("leftrightarrows","⇆"),q("leftrightharpoons","⇋"),q("leftrightsquigarrow","↭"),q("LeftRightVector","⥎"),q("LeftTeeArrow","↤"),q("LeftTee","⊣"),q("LeftTeeVector","⥚"),q("leftthreetimes","⋋"),q("LeftTriangleBar","⧏"),q("LeftTriangle","⊲"),q("LeftTriangleEqual","⊴"),q("LeftUpDownVector","⥑"),q("LeftUpTeeVector","⥠"),q("LeftUpVectorBar","⥘"),q("LeftUpVector","↿"),q("LeftVectorBar","⥒"),q("LeftVector","↼"),q("lEg","⪋"),q("leg","⋚"),q("leq","≤"),q("leqq","≦"),q("leqslant","⩽"),q("lescc","⪨"),q("les","⩽"),q("lesdot","⩿"),q("lesdoto","⪁"),q("lesdotor","⪃"),q("lesg","⋚︀"),q("lesges","⪓"),q("lessapprox","⪅"),q("lessdot","⋖"),q("lesseqgtr","⋚"),q("lesseqqgtr","⪋"),q("LessEqualGreater","⋚"),q("LessFullEqual","≦"),q("LessGreater","≶"),q("lessgtr","≶"),q("LessLess","⪡"),q("lesssim","≲"),q("LessSlantEqual","⩽"),q("LessTilde","≲"),q("lfisht","⥼"),q("lfloor","⌊"),q("Lfr","𝔏"),q("lfr","𝔩"),q("lg","≶"),q("lgE","⪑"),q("lHar","⥢"),q("lhard","↽"),q("lharu","↼"),q("lharul","⥪"),q("lhblk","▄"),q("LJcy","Љ"),q("ljcy","љ"),q("llarr","⇇"),q("ll","≪"),q("Ll","⋘"),q("llcorner","⌞"),q("Lleftarrow","⇚"),q("llhard","⥫"),q("lltri","◺"),q("Lmidot","Ŀ"),q("lmidot","ŀ"),q("lmoustache","⎰"),q("lmoust","⎰"),q("lnap","⪉"),q("lnapprox","⪉"),q("lne","⪇"),q("lnE","≨"),q("lneq","⪇"),q("lneqq","≨"),q("lnsim","⋦"),q("loang","⟬"),q("loarr","⇽"),q("lobrk","⟦"),q("longleftarrow","⟵"),q("LongLeftArrow","⟵"),q("Longleftarrow","⟸"),q("longleftrightarrow","⟷"),q("LongLeftRightArrow","⟷"),q("Longleftrightarrow","⟺"),q("longmapsto","⟼"),q("longrightarrow","⟶"),q("LongRightArrow","⟶"),q("Longrightarrow","⟹"),q("looparrowleft","↫"),q("looparrowright","↬"),q("lopar","⦅"),q("Lopf","𝕃"),q("lopf","𝕝"),q("loplus","⨭"),q("lotimes","⨴"),q("lowast","∗"),q("lowbar","_"),q("LowerLeftArrow","↙"),q("LowerRightArrow","↘"),q("loz","◊"),q("lozenge","◊"),q("lozf","⧫"),q("lpar","("),q("lparlt","⦓"),q("lrarr","⇆"),q("lrcorner","⌟"),q("lrhar","⇋"),q("lrhard","⥭"),q("lrm","‎"),q("lrtri","⊿"),q("lsaquo","‹"),q("lscr","𝓁"),q("Lscr","ℒ"),q("lsh","↰"),q("Lsh","↰"),q("lsim","≲"),q("lsime","⪍"),q("lsimg","⪏"),q("lsqb","["),q("lsquo","‘"),q("lsquor","‚"),q("Lstrok","Ł"),q("lstrok","ł"),q("ltcc","⪦"),q("ltcir","⩹"),q("lt","<"),q("LT","<"),q("Lt","≪"),q("ltdot","⋖"),q("lthree","⋋"),q("ltimes","⋉"),q("ltlarr","⥶"),q("ltquest","⩻"),q("ltri","◃"),q("ltrie","⊴"),q("ltrif","◂"),q("ltrPar","⦖"),q("lurdshar","⥊"),q("luruhar","⥦"),q("lvertneqq","≨︀"),q("lvnE","≨︀"),q("macr","¯"),q("male","♂"),q("malt","✠"),q("maltese","✠"),q("Map","⤅"),q("map","↦"),q("mapsto","↦"),q("mapstodown","↧"),q("mapstoleft","↤"),q("mapstoup","↥"),q("marker","▮"),q("mcomma","⨩"),q("Mcy","М"),q("mcy","м"),q("mdash","—"),q("mDDot","∺"),q("measuredangle","∡"),q("MediumSpace"," "),q("Mellintrf","ℳ"),q("Mfr","𝔐"),q("mfr","𝔪"),q("mho","℧"),q("micro","µ"),q("midast","*"),q("midcir","⫰"),q("mid","∣"),q("middot","·"),q("minusb","⊟"),q("minus","−"),q("minusd","∸"),q("minusdu","⨪"),q("MinusPlus","∓"),q("mlcp","⫛"),q("mldr","…"),q("mnplus","∓"),q("models","⊧"),q("Mopf","𝕄"),q("mopf","𝕞"),q("mp","∓"),q("mscr","𝓂"),q("Mscr","ℳ"),q("mstpos","∾"),q("Mu","Μ"),q("mu","μ"),q("multimap","⊸"),q("mumap","⊸"),q("nabla","∇"),q("Nacute","Ń"),q("nacute","ń"),q("nang","∠⃒"),q("nap","≉"),q("napE","⩰̸"),q("napid","≋̸"),q("napos","ʼn"),q("napprox","≉"),q("natural","♮"),q("naturals","ℕ"),q("natur","♮"),q("nbsp"," "),q("nbump","≎̸"),q("nbumpe","≏̸"),q("ncap","⩃"),q("Ncaron","Ň"),q("ncaron","ň"),q("Ncedil","Ņ"),q("ncedil","ņ"),q("ncong","≇"),q("ncongdot","⩭̸"),q("ncup","⩂"),q("Ncy","Н"),q("ncy","н"),q("ndash","–"),q("nearhk","⤤"),q("nearr","↗"),q("neArr","⇗"),q("nearrow","↗"),q("ne","≠"),q("nedot","≐̸"),q("NegativeMediumSpace","​"),q("NegativeThickSpace","​"),q("NegativeThinSpace","​"),q("NegativeVeryThinSpace","​"),q("nequiv","≢"),q("nesear","⤨"),q("nesim","≂̸"),q("NestedGreaterGreater","≫"),q("NestedLessLess","≪"),q("NewLine","\n"),q("nexist","∄"),q("nexists","∄"),q("Nfr","𝔑"),q("nfr","𝔫"),q("ngE","≧̸"),q("nge","≱"),q("ngeq","≱"),q("ngeqq","≧̸"),q("ngeqslant","⩾̸"),q("nges","⩾̸"),q("nGg","⋙̸"),q("ngsim","≵"),q("nGt","≫⃒"),q("ngt","≯"),q("ngtr","≯"),q("nGtv","≫̸"),q("nharr","↮"),q("nhArr","⇎"),q("nhpar","⫲"),q("ni","∋"),q("nis","⋼"),q("nisd","⋺"),q("niv","∋"),q("NJcy","Њ"),q("njcy","њ"),q("nlarr","↚"),q("nlArr","⇍"),q("nldr","‥"),q("nlE","≦̸"),q("nle","≰"),q("nleftarrow","↚"),q("nLeftarrow","⇍"),q("nleftrightarrow","↮"),q("nLeftrightarrow","⇎"),q("nleq","≰"),q("nleqq","≦̸"),q("nleqslant","⩽̸"),q("nles","⩽̸"),q("nless","≮"),q("nLl","⋘̸"),q("nlsim","≴"),q("nLt","≪⃒"),q("nlt","≮"),q("nltri","⋪"),q("nltrie","⋬"),q("nLtv","≪̸"),q("nmid","∤"),q("NoBreak","⁠"),q("NonBreakingSpace"," "),q("nopf","𝕟"),q("Nopf","ℕ"),q("Not","⫬"),q("not","¬"),q("NotCongruent","≢"),q("NotCupCap","≭"),q("NotDoubleVerticalBar","∦"),q("NotElement","∉"),q("NotEqual","≠"),q("NotEqualTilde","≂̸"),q("NotExists","∄"),q("NotGreater","≯"),q("NotGreaterEqual","≱"),q("NotGreaterFullEqual","≧̸"),q("NotGreaterGreater","≫̸"),q("NotGreaterLess","≹"),q("NotGreaterSlantEqual","⩾̸"),q("NotGreaterTilde","≵"),q("NotHumpDownHump","≎̸"),q("NotHumpEqual","≏̸"),q("notin","∉"),q("notindot","⋵̸"),q("notinE","⋹̸"),q("notinva","∉"),q("notinvb","⋷"),q("notinvc","⋶"),q("NotLeftTriangleBar","⧏̸"),q("NotLeftTriangle","⋪"),q("NotLeftTriangleEqual","⋬"),q("NotLess","≮"),q("NotLessEqual","≰"),q("NotLessGreater","≸"),q("NotLessLess","≪̸"),q("NotLessSlantEqual","⩽̸"),q("NotLessTilde","≴"),q("NotNestedGreaterGreater","⪢̸"),q("NotNestedLessLess","⪡̸"),q("notni","∌"),q("notniva","∌"),q("notnivb","⋾"),q("notnivc","⋽"),q("NotPrecedes","⊀"),q("NotPrecedesEqual","⪯̸"),q("NotPrecedesSlantEqual","⋠"),q("NotReverseElement","∌"),q("NotRightTriangleBar","⧐̸"),q("NotRightTriangle","⋫"),q("NotRightTriangleEqual","⋭"),q("NotSquareSubset","⊏̸"),q("NotSquareSubsetEqual","⋢"),q("NotSquareSuperset","⊐̸"),q("NotSquareSupersetEqual","⋣"),q("NotSubset","⊂⃒"),q("NotSubsetEqual","⊈"),q("NotSucceeds","⊁"),q("NotSucceedsEqual","⪰̸"),q("NotSucceedsSlantEqual","⋡"),q("NotSucceedsTilde","≿̸"),q("NotSuperset","⊃⃒"),q("NotSupersetEqual","⊉"),q("NotTilde","≁"),q("NotTildeEqual","≄"),q("NotTildeFullEqual","≇"),q("NotTildeTilde","≉"),q("NotVerticalBar","∤"),q("nparallel","∦"),q("npar","∦"),q("nparsl","⫽⃥"),q("npart","∂̸"),q("npolint","⨔"),q("npr","⊀"),q("nprcue","⋠"),q("nprec","⊀"),q("npreceq","⪯̸"),q("npre","⪯̸"),q("nrarrc","⤳̸"),q("nrarr","↛"),q("nrArr","⇏"),q("nrarrw","↝̸"),q("nrightarrow","↛"),q("nRightarrow","⇏"),q("nrtri","⋫"),q("nrtrie","⋭"),q("nsc","⊁"),q("nsccue","⋡"),q("nsce","⪰̸"),q("Nscr","𝒩"),q("nscr","𝓃"),q("nshortmid","∤"),q("nshortparallel","∦"),q("nsim","≁"),q("nsime","≄"),q("nsimeq","≄"),q("nsmid","∤"),q("nspar","∦"),q("nsqsube","⋢"),q("nsqsupe","⋣"),q("nsub","⊄"),q("nsubE","⫅̸"),q("nsube","⊈"),q("nsubset","⊂⃒"),q("nsubseteq","⊈"),q("nsubseteqq","⫅̸"),q("nsucc","⊁"),q("nsucceq","⪰̸"),q("nsup","⊅"),q("nsupE","⫆̸"),q("nsupe","⊉"),q("nsupset","⊃⃒"),q("nsupseteq","⊉"),q("nsupseteqq","⫆̸"),q("ntgl","≹"),q("Ntilde","Ñ"),q("ntilde","ñ"),q("ntlg","≸"),q("ntriangleleft","⋪"),q("ntrianglelefteq","⋬"),q("ntriangleright","⋫"),q("ntrianglerighteq","⋭"),q("Nu","Ν"),q("nu","ν"),q("num","#"),q("numero","№"),q("numsp"," "),q("nvap","≍⃒"),q("nvdash","⊬"),q("nvDash","⊭"),q("nVdash","⊮"),q("nVDash","⊯"),q("nvge","≥⃒"),q("nvgt",">⃒"),q("nvHarr","⤄"),q("nvinfin","⧞"),q("nvlArr","⤂"),q("nvle","≤⃒"),q("nvlt","<⃒"),q("nvltrie","⊴⃒"),q("nvrArr","⤃"),q("nvrtrie","⊵⃒"),q("nvsim","∼⃒"),q("nwarhk","⤣"),q("nwarr","↖"),q("nwArr","⇖"),q("nwarrow","↖"),q("nwnear","⤧"),q("Oacute","Ó"),q("oacute","ó"),q("oast","⊛"),q("Ocirc","Ô"),q("ocirc","ô"),q("ocir","⊚"),q("Ocy","О"),q("ocy","о"),q("odash","⊝"),q("Odblac","Ő"),q("odblac","ő"),q("odiv","⨸"),q("odot","⊙"),q("odsold","⦼"),q("OElig","Œ"),q("oelig","œ"),q("ofcir","⦿"),q("Ofr","𝔒"),q("ofr","𝔬"),q("ogon","˛"),q("Ograve","Ò"),q("ograve","ò"),q("ogt","⧁"),q("ohbar","⦵"),q("ohm","Ω"),q("oint","∮"),q("olarr","↺"),q("olcir","⦾"),q("olcross","⦻"),q("oline","‾"),q("olt","⧀"),q("Omacr","Ō"),q("omacr","ō"),q("Omega","Ω"),q("omega","ω"),q("Omicron","Ο"),q("omicron","ο"),q("omid","⦶"),q("ominus","⊖"),q("Oopf","𝕆"),q("oopf","𝕠"),q("opar","⦷"),q("OpenCurlyDoubleQuote","“"),q("OpenCurlyQuote","‘"),q("operp","⦹"),q("oplus","⊕"),q("orarr","↻"),q("Or","⩔"),q("or","∨"),q("ord","⩝"),q("order","ℴ"),q("orderof","ℴ"),q("ordf","ª"),q("ordm","º"),q("origof","⊶"),q("oror","⩖"),q("orslope","⩗"),q("orv","⩛"),q("oS","Ⓢ"),q("Oscr","𝒪"),q("oscr","ℴ"),q("Oslash","Ø"),q("oslash","ø"),q("osol","⊘"),q("Otilde","Õ"),q("otilde","õ"),q("otimesas","⨶"),q("Otimes","⨷"),q("otimes","⊗"),q("Ouml","Ö"),q("ouml","ö"),q("ovbar","⌽"),q("OverBar","‾"),q("OverBrace","⏞"),q("OverBracket","⎴"),q("OverParenthesis","⏜"),q("para","¶"),q("parallel","∥"),q("par","∥"),q("parsim","⫳"),q("parsl","⫽"),q("part","∂"),q("PartialD","∂"),q("Pcy","П"),q("pcy","п"),q("percnt","%"),q("period","."),q("permil","‰"),q("perp","⊥"),q("pertenk","‱"),q("Pfr","𝔓"),q("pfr","𝔭"),q("Phi","Φ"),q("phi","φ"),q("phiv","ϕ"),q("phmmat","ℳ"),q("phone","☎"),q("Pi","Π"),q("pi","π"),q("pitchfork","⋔"),q("piv","ϖ"),q("planck","ℏ"),q("planckh","ℎ"),q("plankv","ℏ"),q("plusacir","⨣"),q("plusb","⊞"),q("pluscir","⨢"),q("plus","+"),q("plusdo","∔"),q("plusdu","⨥"),q("pluse","⩲"),q("PlusMinus","±"),q("plusmn","±"),q("plussim","⨦"),q("plustwo","⨧"),q("pm","±"),q("Poincareplane","ℌ"),q("pointint","⨕"),q("popf","𝕡"),q("Popf","ℙ"),q("pound","£"),q("prap","⪷"),q("Pr","⪻"),q("pr","≺"),q("prcue","≼"),q("precapprox","⪷"),q("prec","≺"),q("preccurlyeq","≼"),q("Precedes","≺"),q("PrecedesEqual","⪯"),q("PrecedesSlantEqual","≼"),q("PrecedesTilde","≾"),q("preceq","⪯"),q("precnapprox","⪹"),q("precneqq","⪵"),q("precnsim","⋨"),q("pre","⪯"),q("prE","⪳"),q("precsim","≾"),q("prime","′"),q("Prime","″"),q("primes","ℙ"),q("prnap","⪹"),q("prnE","⪵"),q("prnsim","⋨"),q("prod","∏"),q("Product","∏"),q("profalar","⌮"),q("profline","⌒"),q("profsurf","⌓"),q("prop","∝"),q("Proportional","∝"),q("Proportion","∷"),q("propto","∝"),q("prsim","≾"),q("prurel","⊰"),q("Pscr","𝒫"),q("pscr","𝓅"),q("Psi","Ψ"),q("psi","ψ"),q("puncsp"," "),q("Qfr","𝔔"),q("qfr","𝔮"),q("qint","⨌"),q("qopf","𝕢"),q("Qopf","ℚ"),q("qprime","⁗"),q("Qscr","𝒬"),q("qscr","𝓆"),q("quaternions","ℍ"),q("quatint","⨖"),q("quest","?"),q("questeq","≟"),q("quot",'"'),q("QUOT",'"'),q("rAarr","⇛"),q("race","∽̱"),q("Racute","Ŕ"),q("racute","ŕ"),q("radic","√"),q("raemptyv","⦳"),q("rang","⟩"),q("Rang","⟫"),q("rangd","⦒"),q("range","⦥"),q("rangle","⟩"),q("raquo","»"),q("rarrap","⥵"),q("rarrb","⇥"),q("rarrbfs","⤠"),q("rarrc","⤳"),q("rarr","→"),q("Rarr","↠"),q("rArr","⇒"),q("rarrfs","⤞"),q("rarrhk","↪"),q("rarrlp","↬"),q("rarrpl","⥅"),q("rarrsim","⥴"),q("Rarrtl","⤖"),q("rarrtl","↣"),q("rarrw","↝"),q("ratail","⤚"),q("rAtail","⤜"),q("ratio","∶"),q("rationals","ℚ"),q("rbarr","⤍"),q("rBarr","⤏"),q("RBarr","⤐"),q("rbbrk","❳"),q("rbrace","}"),q("rbrack","]"),q("rbrke","⦌"),q("rbrksld","⦎"),q("rbrkslu","⦐"),q("Rcaron","Ř"),q("rcaron","ř"),q("Rcedil","Ŗ"),q("rcedil","ŗ"),q("rceil","⌉"),q("rcub","}"),q("Rcy","Р"),q("rcy","р"),q("rdca","⤷"),q("rdldhar","⥩"),q("rdquo","”"),q("rdquor","”"),q("rdsh","↳"),q("real","ℜ"),q("realine","ℛ"),q("realpart","ℜ"),q("reals","ℝ"),q("Re","ℜ"),q("rect","▭"),q("reg","®"),q("REG","®"),q("ReverseElement","∋"),q("ReverseEquilibrium","⇋"),q("ReverseUpEquilibrium","⥯"),q("rfisht","⥽"),q("rfloor","⌋"),q("rfr","𝔯"),q("Rfr","ℜ"),q("rHar","⥤"),q("rhard","⇁"),q("rharu","⇀"),q("rharul","⥬"),q("Rho","Ρ"),q("rho","ρ"),q("rhov","ϱ"),q("RightAngleBracket","⟩"),q("RightArrowBar","⇥"),q("rightarrow","→"),q("RightArrow","→"),q("Rightarrow","⇒"),q("RightArrowLeftArrow","⇄"),q("rightarrowtail","↣"),q("RightCeiling","⌉"),q("RightDoubleBracket","⟧"),q("RightDownTeeVector","⥝"),q("RightDownVectorBar","⥕"),q("RightDownVector","⇂"),q("RightFloor","⌋"),q("rightharpoondown","⇁"),q("rightharpoonup","⇀"),q("rightleftarrows","⇄"),q("rightleftharpoons","⇌"),q("rightrightarrows","⇉"),q("rightsquigarrow","↝"),q("RightTeeArrow","↦"),q("RightTee","⊢"),q("RightTeeVector","⥛"),q("rightthreetimes","⋌"),q("RightTriangleBar","⧐"),q("RightTriangle","⊳"),q("RightTriangleEqual","⊵"),q("RightUpDownVector","⥏"),q("RightUpTeeVector","⥜"),q("RightUpVectorBar","⥔"),q("RightUpVector","↾"),q("RightVectorBar","⥓"),q("RightVector","⇀"),q("ring","˚"),q("risingdotseq","≓"),q("rlarr","⇄"),q("rlhar","⇌"),q("rlm","‏"),q("rmoustache","⎱"),q("rmoust","⎱"),q("rnmid","⫮"),q("roang","⟭"),q("roarr","⇾"),q("robrk","⟧"),q("ropar","⦆"),q("ropf","𝕣"),q("Ropf","ℝ"),q("roplus","⨮"),q("rotimes","⨵"),q("RoundImplies","⥰"),q("rpar",")"),q("rpargt","⦔"),q("rppolint","⨒"),q("rrarr","⇉"),q("Rrightarrow","⇛"),q("rsaquo","›"),q("rscr","𝓇"),q("Rscr","ℛ"),q("rsh","↱"),q("Rsh","↱"),q("rsqb","]"),q("rsquo","’"),q("rsquor","’"),q("rthree","⋌"),q("rtimes","⋊"),q("rtri","▹"),q("rtrie","⊵"),q("rtrif","▸"),q("rtriltri","⧎"),q("RuleDelayed","⧴"),q("ruluhar","⥨"),q("rx","℞"),q("Sacute","Ś"),q("sacute","ś"),q("sbquo","‚"),q("scap","⪸"),q("Scaron","Š"),q("scaron","š"),q("Sc","⪼"),q("sc","≻"),q("sccue","≽"),q("sce","⪰"),q("scE","⪴"),q("Scedil","Ş"),q("scedil","ş"),q("Scirc","Ŝ"),q("scirc","ŝ"),q("scnap","⪺"),q("scnE","⪶"),q("scnsim","⋩"),q("scpolint","⨓"),q("scsim","≿"),q("Scy","С"),q("scy","с"),q("sdotb","⊡"),q("sdot","⋅"),q("sdote","⩦"),q("searhk","⤥"),q("searr","↘"),q("seArr","⇘"),q("searrow","↘"),q("sect","§"),q("semi",";"),q("seswar","⤩"),q("setminus","∖"),q("setmn","∖"),q("sext","✶"),q("Sfr","𝔖"),q("sfr","𝔰"),q("sfrown","⌢"),q("sharp","♯"),q("SHCHcy","Щ"),q("shchcy","щ"),q("SHcy","Ш"),q("shcy","ш"),q("ShortDownArrow","↓"),q("ShortLeftArrow","←"),q("shortmid","∣"),q("shortparallel","∥"),q("ShortRightArrow","→"),q("ShortUpArrow","↑"),q("shy","­"),q("Sigma","Σ"),q("sigma","σ"),q("sigmaf","ς"),q("sigmav","ς"),q("sim","∼"),q("simdot","⩪"),q("sime","≃"),q("simeq","≃"),q("simg","⪞"),q("simgE","⪠"),q("siml","⪝"),q("simlE","⪟"),q("simne","≆"),q("simplus","⨤"),q("simrarr","⥲"),q("slarr","←"),q("SmallCircle","∘"),q("smallsetminus","∖"),q("smashp","⨳"),q("smeparsl","⧤"),q("smid","∣"),q("smile","⌣"),q("smt","⪪"),q("smte","⪬"),q("smtes","⪬︀"),q("SOFTcy","Ь"),q("softcy","ь"),q("solbar","⌿"),q("solb","⧄"),q("sol","/"),q("Sopf","𝕊"),q("sopf","𝕤"),q("spades","♠"),q("spadesuit","♠"),q("spar","∥"),q("sqcap","⊓"),q("sqcaps","⊓︀"),q("sqcup","⊔"),q("sqcups","⊔︀"),q("Sqrt","√"),q("sqsub","⊏"),q("sqsube","⊑"),q("sqsubset","⊏"),q("sqsubseteq","⊑"),q("sqsup","⊐"),q("sqsupe","⊒"),q("sqsupset","⊐"),q("sqsupseteq","⊒"),q("square","□"),q("Square","□"),q("SquareIntersection","⊓"),q("SquareSubset","⊏"),q("SquareSubsetEqual","⊑"),q("SquareSuperset","⊐"),q("SquareSupersetEqual","⊒"),q("SquareUnion","⊔"),q("squarf","▪"),q("squ","□"),q("squf","▪"),q("srarr","→"),q("Sscr","𝒮"),q("sscr","𝓈"),q("ssetmn","∖"),q("ssmile","⌣"),q("sstarf","⋆"),q("Star","⋆"),q("star","☆"),q("starf","★"),q("straightepsilon","ϵ"),q("straightphi","ϕ"),q("strns","¯"),q("sub","⊂"),q("Sub","⋐"),q("subdot","⪽"),q("subE","⫅"),q("sube","⊆"),q("subedot","⫃"),q("submult","⫁"),q("subnE","⫋"),q("subne","⊊"),q("subplus","⪿"),q("subrarr","⥹"),q("subset","⊂"),q("Subset","⋐"),q("subseteq","⊆"),q("subseteqq","⫅"),q("SubsetEqual","⊆"),q("subsetneq","⊊"),q("subsetneqq","⫋"),q("subsim","⫇"),q("subsub","⫕"),q("subsup","⫓"),q("succapprox","⪸"),q("succ","≻"),q("succcurlyeq","≽"),q("Succeeds","≻"),q("SucceedsEqual","⪰"),q("SucceedsSlantEqual","≽"),q("SucceedsTilde","≿"),q("succeq","⪰"),q("succnapprox","⪺"),q("succneqq","⪶"),q("succnsim","⋩"),q("succsim","≿"),q("SuchThat","∋"),q("sum","∑"),q("Sum","∑"),q("sung","♪"),q("sup1","¹"),q("sup2","²"),q("sup3","³"),q("sup","⊃"),q("Sup","⋑"),q("supdot","⪾"),q("supdsub","⫘"),q("supE","⫆"),q("supe","⊇"),q("supedot","⫄"),q("Superset","⊃"),q("SupersetEqual","⊇"),q("suphsol","⟉"),q("suphsub","⫗"),q("suplarr","⥻"),q("supmult","⫂"),q("supnE","⫌"),q("supne","⊋"),q("supplus","⫀"),q("supset","⊃"),q("Supset","⋑"),q("supseteq","⊇"),q("supseteqq","⫆"),q("supsetneq","⊋"),q("supsetneqq","⫌"),q("supsim","⫈"),q("supsub","⫔"),q("supsup","⫖"),q("swarhk","⤦"),q("swarr","↙"),q("swArr","⇙"),q("swarrow","↙"),q("swnwar","⤪"),q("szlig","ß"),q("Tab","\t"),q("target","⌖"),q("Tau","Τ"),q("tau","τ"),q("tbrk","⎴"),q("Tcaron","Ť"),q("tcaron","ť"),q("Tcedil","Ţ"),q("tcedil","ţ"),q("Tcy","Т"),q("tcy","т"),q("tdot","⃛"),q("telrec","⌕"),q("Tfr","𝔗"),q("tfr","𝔱"),q("there4","∴"),q("therefore","∴"),q("Therefore","∴"),q("Theta","Θ"),q("theta","θ"),q("thetasym","ϑ"),q("thetav","ϑ"),q("thickapprox","≈"),q("thicksim","∼"),q("ThickSpace","  "),q("ThinSpace"," "),q("thinsp"," "),q("thkap","≈"),q("thksim","∼"),q("THORN","Þ"),q("thorn","þ"),q("tilde","˜"),q("Tilde","∼"),q("TildeEqual","≃"),q("TildeFullEqual","≅"),q("TildeTilde","≈"),q("timesbar","⨱"),q("timesb","⊠"),q("times","×"),q("timesd","⨰"),q("tint","∭"),q("toea","⤨"),q("topbot","⌶"),q("topcir","⫱"),q("top","⊤"),q("Topf","𝕋"),q("topf","𝕥"),q("topfork","⫚"),q("tosa","⤩"),q("tprime","‴"),q("trade","™"),q("TRADE","™"),q("triangle","▵"),q("triangledown","▿"),q("triangleleft","◃"),q("trianglelefteq","⊴"),q("triangleq","≜"),q("triangleright","▹"),q("trianglerighteq","⊵"),q("tridot","◬"),q("trie","≜"),q("triminus","⨺"),q("TripleDot","⃛"),q("triplus","⨹"),q("trisb","⧍"),q("tritime","⨻"),q("trpezium","⏢"),q("Tscr","𝒯"),q("tscr","𝓉"),q("TScy","Ц"),q("tscy","ц"),q("TSHcy","Ћ"),q("tshcy","ћ"),q("Tstrok","Ŧ"),q("tstrok","ŧ"),q("twixt","≬"),q("twoheadleftarrow","↞"),q("twoheadrightarrow","↠"),q("Uacute","Ú"),q("uacute","ú"),q("uarr","↑"),q("Uarr","↟"),q("uArr","⇑"),q("Uarrocir","⥉"),q("Ubrcy","Ў"),q("ubrcy","ў"),q("Ubreve","Ŭ"),q("ubreve","ŭ"),q("Ucirc","Û"),q("ucirc","û"),q("Ucy","У"),q("ucy","у"),q("udarr","⇅"),q("Udblac","Ű"),q("udblac","ű"),q("udhar","⥮"),q("ufisht","⥾"),q("Ufr","𝔘"),q("ufr","𝔲"),q("Ugrave","Ù"),q("ugrave","ù"),q("uHar","⥣"),q("uharl","↿"),q("uharr","↾"),q("uhblk","▀"),q("ulcorn","⌜"),q("ulcorner","⌜"),q("ulcrop","⌏"),q("ultri","◸"),q("Umacr","Ū"),q("umacr","ū"),q("uml","¨"),q("UnderBar","_"),q("UnderBrace","⏟"),q("UnderBracket","⎵"),q("UnderParenthesis","⏝"),q("Union","⋃"),q("UnionPlus","⊎"),q("Uogon","Ų"),q("uogon","ų"),q("Uopf","𝕌"),q("uopf","𝕦"),q("UpArrowBar","⤒"),q("uparrow","↑"),q("UpArrow","↑"),q("Uparrow","⇑"),q("UpArrowDownArrow","⇅"),q("updownarrow","↕"),q("UpDownArrow","↕"),q("Updownarrow","⇕"),q("UpEquilibrium","⥮"),q("upharpoonleft","↿"),q("upharpoonright","↾"),q("uplus","⊎"),q("UpperLeftArrow","↖"),q("UpperRightArrow","↗"),q("upsi","υ"),q("Upsi","ϒ"),q("upsih","ϒ"),q("Upsilon","Υ"),q("upsilon","υ"),q("UpTeeArrow","↥"),q("UpTee","⊥"),q("upuparrows","⇈"),q("urcorn","⌝"),q("urcorner","⌝"),q("urcrop","⌎"),q("Uring","Ů"),q("uring","ů"),q("urtri","◹"),q("Uscr","𝒰"),q("uscr","𝓊"),q("utdot","⋰"),q("Utilde","Ũ"),q("utilde","ũ"),q("utri","▵"),q("utrif","▴"),q("uuarr","⇈"),q("Uuml","Ü"),q("uuml","ü"),q("uwangle","⦧"),q("vangrt","⦜"),q("varepsilon","ϵ"),q("varkappa","ϰ"),q("varnothing","∅"),q("varphi","ϕ"),q("varpi","ϖ"),q("varpropto","∝"),q("varr","↕"),q("vArr","⇕"),q("varrho","ϱ"),q("varsigma","ς"),q("varsubsetneq","⊊︀"),q("varsubsetneqq","⫋︀"),q("varsupsetneq","⊋︀"),q("varsupsetneqq","⫌︀"),q("vartheta","ϑ"),q("vartriangleleft","⊲"),q("vartriangleright","⊳"),q("vBar","⫨"),q("Vbar","⫫"),q("vBarv","⫩"),q("Vcy","В"),q("vcy","в"),q("vdash","⊢"),q("vDash","⊨"),q("Vdash","⊩"),q("VDash","⊫"),q("Vdashl","⫦"),q("veebar","⊻"),q("vee","∨"),q("Vee","⋁"),q("veeeq","≚"),q("vellip","⋮"),q("verbar","|"),q("Verbar","‖"),q("vert","|"),q("Vert","‖"),q("VerticalBar","∣"),q("VerticalLine","|"),q("VerticalSeparator","❘"),q("VerticalTilde","≀"),q("VeryThinSpace"," "),q("Vfr","𝔙"),q("vfr","𝔳"),q("vltri","⊲"),q("vnsub","⊂⃒"),q("vnsup","⊃⃒"),q("Vopf","𝕍"),q("vopf","𝕧"),q("vprop","∝"),q("vrtri","⊳"),q("Vscr","𝒱"),q("vscr","𝓋"),q("vsubnE","⫋︀"),q("vsubne","⊊︀"),q("vsupnE","⫌︀"),q("vsupne","⊋︀"),q("Vvdash","⊪"),q("vzigzag","⦚"),q("Wcirc","Ŵ"),q("wcirc","ŵ"),q("wedbar","⩟"),q("wedge","∧"),q("Wedge","⋀"),q("wedgeq","≙"),q("weierp","℘"),q("Wfr","𝔚"),q("wfr","𝔴"),q("Wopf","𝕎"),q("wopf","𝕨"),q("wp","℘"),q("wr","≀"),q("wreath","≀"),q("Wscr","𝒲"),q("wscr","𝓌"),q("xcap","⋂"),q("xcirc","◯"),q("xcup","⋃"),q("xdtri","▽"),q("Xfr","𝔛"),q("xfr","𝔵"),q("xharr","⟷"),q("xhArr","⟺"),q("Xi","Ξ"),q("xi","ξ"),q("xlarr","⟵"),q("xlArr","⟸"),q("xmap","⟼"),q("xnis","⋻"),q("xodot","⨀"),q("Xopf","𝕏"),q("xopf","𝕩"),q("xoplus","⨁"),q("xotime","⨂"),q("xrarr","⟶"),q("xrArr","⟹"),q("Xscr","𝒳"),q("xscr","𝓍"),q("xsqcup","⨆"),q("xuplus","⨄"),q("xutri","△"),q("xvee","⋁"),q("xwedge","⋀"),q("Yacute","Ý"),q("yacute","ý"),q("YAcy","Я"),q("yacy","я"),q("Ycirc","Ŷ"),q("ycirc","ŷ"),q("Ycy","Ы"),q("ycy","ы"),q("yen","¥"),q("Yfr","𝔜"),q("yfr","𝔶"),q("YIcy","Ї"),q("yicy","ї"),q("Yopf","𝕐"),q("yopf","𝕪"),q("Yscr","𝒴"),q("yscr","𝓎"),q("YUcy","Ю"),q("yucy","ю"),q("yuml","ÿ"),q("Yuml","Ÿ"),q("Zacute","Ź"),q("zacute","ź"),q("Zcaron","Ž"),q("zcaron","ž"),q("Zcy","З"),q("zcy","з"),q("Zdot","Ż"),q("zdot","ż"),q("zeetrf","ℨ"),q("ZeroWidthSpace","​"),q("Zeta","Ζ"),q("zeta","ζ"),q("zfr","𝔷"),q("Zfr","ℨ"),q("ZHcy","Ж"),q("zhcy","ж"),q("zigrarr","⇝"),q("zopf","𝕫"),q("Zopf","ℤ"),q("Zscr","𝒵"),q("zscr","𝓏"),q("zwj","‍"),q("zwnj","‌")]),i(en,e((function(r,n){return i(mt,r.a,r.b,n)})),Wn,Uu)),Zu=o(we,(function(r){return o(Ae,"&"+r+";",o(Gn,r,Fu))}),Ze("[a-zA-Z]+")),Xu=_,Ju=t((function(r,n,e){r:for(;;){if(!n.b)return Zr(e);var t=n.a,a=n.b;switch(t){case"0":r=u=r-1,n=i=a,e=c=e;continue r;case"1":var u=r-1,i=a,c=e+o(Xu,16,r);r=u,n=i,e=c;continue r;case"2":u=r-1,i=a,c=e+2*o(Xu,16,r),r=u,n=i,e=c;continue r;case"3":u=r-1,i=a,c=e+3*o(Xu,16,r),r=u,n=i,e=c;continue r;case"4":u=r-1,i=a,c=e+4*o(Xu,16,r),r=u,n=i,e=c;continue r;case"5":u=r-1,i=a,c=e+5*o(Xu,16,r),r=u,n=i,e=c;continue r;case"6":u=r-1,i=a,c=e+6*o(Xu,16,r),r=u,n=i,e=c;continue r;case"7":u=r-1,i=a,c=e+7*o(Xu,16,r),r=u,n=i,e=c;continue r;case"8":u=r-1,i=a,c=e+8*o(Xu,16,r),r=u,n=i,e=c;continue r;case"9":u=r-1,i=a,c=e+9*o(Xu,16,r),r=u,n=i,e=c;continue r;case"a":u=r-1,i=a,c=e+10*o(Xu,16,r),r=u,n=i,e=c;continue r;case"b":u=r-1,i=a,c=e+11*o(Xu,16,r),r=u,n=i,e=c;continue r;case"c":u=r-1,i=a,c=e+12*o(Xu,16,r),r=u,n=i,e=c;continue r;case"d":u=r-1,i=a,c=e+13*o(Xu,16,r),r=u,n=i,e=c;continue r;case"e":u=r-1,i=a,c=e+14*o(Xu,16,r),r=u,n=i,e=c;continue r;case"f":u=r-1,i=a,c=e+15*o(Xu,16,r),r=u,n=i,e=c;continue r;default:return Hr(se(t)+" is not a valid hexadecimal character.")}}})),Ku=e((function(r,n){return n.$?Hr(n.a):Zr(r(n.a))})),Wu=e((function(r,n){return n.$?Hr(r(n.a)):Zr(n.a)})),Yu=function(r){return r.b?Kr(r.b):Wr},Qu=V,ro=function(r){return i(Qu,Br,A,r)},no=o(ge,(function(r){var n=function(r){if(Yn(r))return Hr("Empty strings are not valid hexadecimal strings.");var n=function(){if(o(Be,"-",r)){var n=o(Ae,A,Yu(ro(r)));return o(Ku,Qn,i(Ju,tn(n)-1,n,0))}return i(Ju,Xn(r)-1,ro(r),0)}();return o(Wu,(function(n){return o(rn," ",S(['"'+r+'"',"is not a valid hexadecimal string because",n]))}),n)}(qt(r));return n.$?Ka(n.a):Oe(n.a)}),Ze("[0-9a-fA-F]+")),eo=(Ou=We(S([o(Le,no,Ze("(x|X)")),o(Le,Wa,Ze("0*"))])),o(Le,o(we,o(Bn,(function(r){return 0>r||r>1114111?"�":r>65535?String.fromCharCode(Math.floor((r-=65536)/1024)+55296,r%1024+56320):String.fromCharCode(r)}),se),Ou),Ue("#"))),to=o(Le,We(S([o(qe,Ue(";"),Zu),o(qe,Ue(";"),eo),Oe("&")])),Ue("&")),ao=function(r){return o(qe,Ue(r),o(Le,o(we,ru,lu(We(S([o(we,o(St,"\\"+r,r),Ze("([^"+r+"]*|\\\\"+r+"|\\\\)*")),to])))),Ue(r)))},uo=o(we,ru,bu(We(S([Ze("[^\\s\"'=<>`&]+"),to])))),oo=o(Se,o(Le,We(S([uo,ao('"'),ao("'")])),o(qe,Xe,Ue("="))),Oe("")),io=function(r){return o(we,o(Gu,r.a,r.b),o(qe,Xe,o(ye,oo,o(qe,Xe,o(we,zn,Ze("[A-Za-z0-9_\\-:]+"))))))},co=Ze("[\t ]*"),so=(Vu=o(ge,io,za((function(r){return Oe(q(r.c5.bX,r.c5.cK))}))),o(qe,Mu,o(we,Ae(A),Ye(o(Le,Je(Vu),co))))),fo=e((function(r,n){return{$:1,a:r,b:n}})),lo=o(we,fo,We(S([o(st,"⟷",Ue("<--\x3e")),o(st,"⟵",Ue("<--")),o(st,"⟶",Ue("--\x3e")),o(st,"↞",Ue("<<-")),o(st,"↠",Ue("->>")),o(st,"↔",Ue("<->")),o(st,"↣",Ue(">->")),o(st,"↢",Ue("<-<")),o(st,"→",Ue("->")),o(st,"←",Ue("<-")),o(st,"↜",Ue("<~")),o(st,"↝",Ue("~>")),o(st,"⟺",Ue("<==>")),o(st,"⟹",Ue("==>")),o(st,"⟸",Ue("<==")),o(st,"⇔",Ue("<=>")),o(st,"⇒",Ue("=>")),o(st,"⇐",Ue("<="))]))),bo=e((function(r,n){return n.$?Wr:r(n.a)})),po=t((function(r,n,e){var t=r(n);return t.$?e:o(Br,t.a,e)})),ho=e((function(r,n){return i(oe,po(r),A,n)})),go=e((function(r,n){return E(n,o(Ae,"",o(Fn,Yr("#"),o(bo,yt,Yu(o(nn,"#",r))))))})),mo=function(r){var n=o(Ae,A,o(Fn,nn("&"),o(bo,yt,o(Fn,nn("#"),o(bo,yt,Yu(o(nn,"?",r)))))));return o(Bn,ho((function(r){var e=o(Pt,Be(r),n);return e.b?Kr(e.a):Wr})),o(Bn,rn("&"),o(Bn,Yr("?"),o(Bn,go(r),(function(r){return"?"===r?"":r})))))},vo=S(["autoplay","cc_lang_pref","color","disablekb","enablejsapi","end","fs","hl","iv_load_policy","list","listType","loop","modestbranding","mute","origin","playlist","playsinline","rel","start","widget_referrer"]),wo=ta(S([{aa:e((function(r,n){var e="https://widget.deezer.com/widget/dark/"+n;return o(Be,"artist",n)?e+"/top_tracks":e})),ac:"https://(?:www\\.|widget\\.)?deezer\\.com/(?:.*)/(.*/.*)\\??"},{aa:e((function(r,n){return"https://www.youtube.com/embed/"+(n+o(mo,r,vo))})),ac:Jt("music\\.(?:youtu\\.be/|youtube\\.com/(?:(?:watch)?\\?(?:.*&)?v(?:i)?=|(?:v|vi|user)/))([^\\?&\"'<> #]+)")}])),yo=za((function(r){var n,t=r.P.ae;if(t.b){var a=t.a;return r.P.a0?Ka("abort"):o(ge,(function(r){return 1===r.$?Oe(0):o(Le,Ka("abort"),Ra((function(r){return x(r,{P:{a0:!0,ae:r.P.ae}})})))}),(n=Ye(Ue(a)),e((function(r,e){var t=i(he,n,r,e);return t.c.$?t:k(t.a,e,Zr(t.c.a))}))))}return Oe(0)})),qo=o(we,e((function(r,n){return{$:7,a:r,b:n}})),hu),ko=e((function(r,n){for(;;){var e=q(r,n);if(!e.a.b)return fn(n);if(e.a.a.$||e.a.a.b.b||!e.b.b||e.b.a.$||e.b.a.b.b){var t=e.a;r=t.b,n=o(Br,t.a,n)}else{var a=e.a,u=e.b,i=u.b;r=a.b,n=o(Br,o(fa,E(u.a.a,a.a.a),A),i)}}})),xo=function(r){return o(ko,r,A)},$o=We(S([o(Le,Oe(fa("—")),Ue("---")),o(Le,Oe(fa("–")),Ue("--"))])),Eo=function(r){return o(Bn,o(Fe,Pe({aj:r.aj,aq:r.aq}),(function(r){return r.bH})),Ir)},Ao=o(we,ru,o(Ce,We(S([Ze("[^@\"'`</]+"),Ze("\\s+"),Ue("@'"),Ue("@"),Ze("'([^'\\\\\n]*|\\\\'|\\\\)*('|\n)"),Ze('"([^"\\\\\n]*|\\\\"|\\\\)*("|\n)'),Ze("`([^`\\\\]*|\n|\\\\`|(\\\\)+)*`"),Ue("`"),Ze("<(?!/)"),Ze("/\\*[\\s\\S]*?\\*/"),Ze("//[^<\n]*"),Ue("/")])),o(Eo,{aj:!0,aq:!1},"<\/script>"))),Do=function(){var r=o(ge,io,za((function(r){return Oe(q(r.c5.bX,r.c5.cK))})));return o(ye,Ao,o(we,zn,o(qe,Ue(">"),o(Le,lu(o(Le,r,Xe)),o(Eo,{aj:!0,aq:!1},"<script")))))}(),Lo=e((function(r,n){var e=n.b;return q(r(n.a),e)})),So=function(r){return{$:1,a:r}},To=e((function(r,n){return i(oe,wt,A,o(ie,r,n))})),Ro=Nr(jr),No=e((function(r,n){for(;;){if(!n.b)return Wr;var e=n.a,t=e.b,a=n.b;if(g(e.a,r))return Kr(t);n=a}})),_o=function(r){return""===r||"1"===r||"true"===r},Co=function(r){return o(Bn,No(r),Fn(o(Bn,Et,o(Bn,qt,_o))))},jo=function(r){return o(Bn,Co(r),Ae(!1))},Io=function(r){return{$:0,a:r}},Bo={$:2},Uo={$:3},Oo={$:4},Vo={$:5},zo={$:6},Po={$:7},Ho={$:8},Mo={$:9},Go={$:10},Fo={$:11},Zo={$:13},Xo={$:14},Jo={$:16},Ko={$:17},Wo={$:18},Yo={$:19},Qo={$:20},ri={$:21},ni=o(Bn,No("options"),o(Bn,Fn(nn("|")),o(Bn,Ae(A),o(Bn,ie(Et),Pt(o(Bn,Yn,(function(r){return!r}))))))),ei=e((function(r,n){switch(n){case"button":return Io(!1);case"submit":return Io(!0);case"checkbox":return{$:1,a:ni(r)};case"color":return Bo;case"date":return Uo;case"datetime-local":return Oo;case"email":return Vo;case"file":return zo;case"hidden":return Po;case"image":return Ho;case"month":return Mo;case"number":return Go;case"password":return Fo;case"radio":return{$:12,a:ni(r)};case"range":return Zo;case"search":return Xo;case"select":return function(r){return{$:15,a:r}}(ni(r));case"tel":return Jo;case"textarea":return Wo;case"time":return Yo;case"url":return Qo;case"week":return ri;default:return Ko}})),ti=e((function(r,n){var e=q(n,r);if(!e.a.$)return e.a.a;if(1===e.b.$)return!1;switch(e.b.a.$){case 5:case 11:case 14:case 16:case 18:case 20:return!1;default:return!0}})),ai=function(r){var n=o(Ae,"",o(No,"value",r)),e=o(Fn,ei(r),o(No,"input",r)),t=o(jo,"input-always-active",r);return{bV:!!t||o(jo,"input-active",r),bW:t,fv:n,bh:e,eS:o(ti,e,o(Co,"update-on-change",r)),ay:n}},ui=S(["calendar","datestyle","day","dayperiod","era","formatmatcher","fractionalseconddigits","hour","hour12","hourcycle","localematcher","minute","month","numberingsystem","second","timestyle","timezone","timezonename","weekday","year"]),oi=S(["localematcher","type","localestyle"]),ii=function(r){return o(Bn,No("locale"),o(Bn,Ae(r),zn("locale")))},ci=S(["compactdisplay","currency","currencydisplay","currencysign","localematcher","maximumfractiondigits","maximumsignificantdigits","minimumfractiondigits","minimumintegerdigits","minimumsignificantdigits","notation","numberingsystem","signdisplay","localestyle","unit","unitdisplay","usegrouping"]),si=S(["localematcher","type","minimumintegerdigits","minimumfractiondigits","maximumfractiondigits","minimumsignificantdigits","maximumsignificantdigits"]),fi=S(["unit","localematcher","numeric","localestyle"]),li=e((function(r,n){for(;;){if(!n.b)return!1;var e=n.b;if(r(n.a))return!0;n=e}})),bi=e((function(r,n){return o(li,(function(n){return g(n,r)}),n)})),di=e((function(r,n){return o(bi,n.a,r)})),pi=e((function(r,n){return o(Bn,function(r){return Pt(di(r))}(n),o(Bn,Br(q("format",r)),Kr))})),hi=e((function(r,n){return o(Fn,Br(o(ii,r,n)),function(){var r=o(Fn,qt,o(No,"format",n));r:for(;!r.$;)switch(r.a){case"number":return i(pi,"number",ci,n);case"datetime":return i(pi,"datetime",ui,n);case"relativetime":return i(pi,"relativetime",fi,n);case"list":return i(pi,"list",oi,n);case"pluralrules":return i(pi,"pluralrules",si,n);default:break r}return Wr}())})),gi=o(Ae,Ge,He("@input\\(`([^`]+)`\\)")),mi={$:1},vi=function(r){return{$:2,a:r}},wi={$:0},yi=function(r){var n=o(No,"modify",r),e=o(Fn,o(Bn,Et,qt),n);if(1===e.$)return wi;switch(e.a){case"true":case"1":case"":return wi;case"false":case"0":return mi;default:return o(Ae,mi,o(Fn,o(Bn,o(St,"\\n","\n"),o(Bn,o(St,"\\t","\t"),vi)),n))}},qi=u((function(r,n,e,t,a){return o(Oa,{bZ:o(jo,"block",e),c$:0,da:!1,b2:n,dv:o(Ae,"javascript",o(Fn,o(St,"text/",""),o(No,"type",e))),k:ai(e),bD:o(ho,Ir,o(To,(function(r){return r.hq}),o(Ro,gi,t))),dG:o(hi,r,e),dV:yi(e),cm:o(No,"output",e),ek:o(Fn,So,o(No,"default",e)),em:o(jo,"run-once",e),en:!1,bb:t,cF:!1,eT:!1,bm:o(jo,"worker",e)},a)})),ki=o(Bn,Ta,Jr(-1)),xi=za(o(Bn,(function(r){return r.al}),o(Bn,(function(r){return r.gf}),o(Bn,ki,Oe)))),$i=function(r){return o(ye,xi,o(we,zn,o(ge,(function(r){var n=r.a,e=r.b;return o(Le,Oe(n),Ra((function(r){var t=r.al;return x(r,{al:x(t,{gf:s(qi,r.c5.gi,o(Ae,0,yt(r.by)),n,Et(e),t.gf)})})})))}),o(we,Lo((function(n){return o(wt,n,r)})),Do))))},Ei=o(Le,Oe(fa("…")),Ue("...")),Ai=o(we,Yr("mailto:"),o(Le,Ze("[a-zA-Z0-9_.\\-]+@[a-zA-Z0-9_.\\-]+"),Ye(Ue("mailto:")))),Di=t((function(r,n,e){return{$:8,a:r,b:n,c:e}})),Li=o(we,Di("true"),o(Le,ut(Ue("$$")),Ue("$$"))),Si=o(we,Di("false"),o(qe,Ue("$"),o(Le,Ze("[^\n$]+"),Ue("$")))),Ti=o(Se,Li,Si),Ri=za((function(r){return Oe(r.k.gd||r.k.f_)})),Ni=function(r){return o(we,(function(n){return x(r,{fb:n})}),Ya)},_i=function(r){return o(we,(function(n){return x(r,{fK:Kr(n)})}),o(Le,Wa,Ze("-[\t ]*")))},Ci=function(r){return o(Le,Oe(x(r,{gW:!0})),o(Se,Ue("!>"),Ue("|>")))},ji=function(r){return o(we,(function(n){return x(r,{hN:Et(n)})}),o(Le,Ze("([A-Za-z][A-Za-z0-9]+[ \t]*)+"),Iu))},Ii=function(r){return o(pu,r,o(Le,We(S([_i(r),Ni(r),Ci(r),ji(r)])),Xe))},Bi=o(ge,(function(r){return function(r){return!r.gW&&0>r.fb}(r)?Ka("no effect definition"):Oe(r)}),o(ge,Ii,o(ge,Ii,o(ge,Ii,o(ge,Ii,o(we,(function(r){return{fb:-1,cZ:A,fK:Wr,f9:-1,gW:!1,hN:r}}),za(o(Bn,(function(r){return r.c5}),o(Bn,(function(r){return r.gD}),Oe))))))))),Ui=o(qe,Ra((function(r){return x(r,{b2:r.b2+1})})),za(o(Bn,(function(r){return r.b2}),Oe))),Oi=function(r){return o(ye,Ui,o(qe,zu,o(ye,o(Ce,r,Ue("}")),o(qe,Ue("}{"),o(we,t((function(r,n,e){return x(r,{cZ:n,f9:e})})),o(Le,Bi,Ue("{")))))))},Vi=e((function(r,n){return{$:10,a:r,b:n}})),zi=e((function(r,n){return{$:2,a:r,b:n}})),Pi=t((function(r,n,e){return i(mt,r,n,e)})),Hi=function(r){var n=r.a,e=r.b;if(e.$)return Oe(Vi(n));var t=e.a;return o(Le,Oe(Vi(n)),function(r){var n=r.a,e=r.b;return Ra((function(r){return x(r,{dj:i(Pi,n,e,r.dj)})}))}(q(n,S([o(zi,A,t)]))))},Mi=function(r){return o(ge,Hi,o(ye,Ye(o(ye,za(Oe),o(we,e((function(n,e){return o(r,e,n)})),o(Le,ut(Ue(")")),Ue("("))))),o(we,zn,o(Le,ut(Ue("]")),Ue("[^")))))},Gi=function(r){return o(we,(function(n){return i(kt,n.a,n.b,r)}),za((function(r){return Oe(q(r.c5.bX,r.c5.cK))})))},Fi=o(ge,Gi,o(we,(function(r){return i(uu,o(Ae,Ge,He("\\\\([()])")),(function(r){return o(Ae,"",o(bo,Ir,yt(r.hq)))}),r)}),o(Se,Ze('[a-zA-Z]+://(/)?[a-zA-Z0-9\\.\\-\\_]+\\.([a-z\\.]{2,6})(\\\\.|[^ \\]\\)\t\n"])*'),o(qe,Ue(">"),o(Le,Ze("[a-zA-Z]+://(/)?[a-zA-Z0-9\\.\\-\\_]+\\.([a-z\\.]{2,6})[^>]*"),Ue("<")))))),Zi=o(we,(function(r){return $a(i(ma,S([o(fa,r,A)]),r,Wr))}),Fi),Xi=function(r){return o(ge,r,Oe(0))},Ji=function(r){return{$:1,a:r}},Ki=o(st,pe(o(pa,Ji("<br>"),A)),Ue("\\\n")),Wi=function(r){return o(Bn,Ce(r),ge((function(r){return r.b?Oe(r):Ka("not enough results")})))},Yi=S(["key","width","height","autoplay","autolightsoff","loop","chapters","related","responsive","t"]),Qi=S(["autopause","autoplay","background","byline","color","controls","dnt","keyboard","loop","muted","pip","playsinline","portrait","quality","speed","texttrack","title","transparent"]),rc=ta(S([{aa:e((function(r,n){return E("https://www.youtube-nocookie.com/embed/",E(n,o(mo,r,vo)))})),ac:Jt("(?:youtu\\.be/|youtube\\.com/(?:(?:watch)?\\?(?:.*&)?v(?:i)?=|(?:v|vi|user)/))([^\\?&\"'<> #]+)")},{aa:e((function(r,n){return"https://player.vimeo.com/video/"+(n+o(mo,r,Qi))})),ac:Jt("(?:player.)?(?:vimeo\\.com).*?(\\d+)")},{aa:e((function(r,n){return"https://www.dailymotion.com/embed/video/"+n})),ac:Jt("(?:dailymotion\\.com(?:/embed)?/video/)(.+)")},{aa:e((function(r,n){return"https://peertube.tv/videos/embed/"+n})),ac:Jt("(?:peertube\\.tv/videos/watch/)(.+)")},{aa:e((function(r,n){return"https://www.teachertube.com/embed/video/"+n})),ac:Jt("(?:teachertube\\.com).*?(\\d+.*)")},{aa:e((function(r,n){return"https://video.tu-freiberg.de/media/embed?key="+(n+o(mo,r,Yi))})),ac:Jt("(?:video\\.tu\\-freiberg\\.de/video/[^/]+/)(.+)")}])),nc=a((function(r,n,e,t){return i(r,n,e,t)})),ec=o(ge,io,za((function(r){return Oe(q(r.c5.bX,r.c5.cK))}))),tc=t((function(r,n,e){return{$:0,a:r,b:n,c:e}})),ac=t((function(r,n,e){return{$:2,a:r,b:n,c:e}})),uc=t((function(r,n,e){return{$:3,a:r,b:n,c:e}})),oc=function(r){var n=o(ge,(function(n){return g(qt(n),r)?Oe(0):Ka("closing tag does not match opening tag: "+r)}),Ze("\\w+(\\-\\w+)*"));return o(qe,Ze("\\s*>"),o(Le,n,Ze("[ \t\n]*</[ \t]*")))},ic=Z,cc=e((function(r,n){return 1>r?"":i(je,0,r,n)})),sc=e((function(r,n){return c(a((function(n,e,t,a){for(;;){var u=o(ic,"<foreignObject",n);if(!u.b)return q(o(rn,"",fn(o(Br,n,a))),fn(t));var c=u.a,s=c+Xn("<foreignObject"),f=o(Br,o(cc,c,n),a),l=o(Ie,s,n),b=o(Ae,Xn(l),yt(o(ic,">",l))),d=(v=Et(i(je,0,b,l)),(w=i(Au,lu(ec),r,v)).$?A:w.a.c),p=s+b+1,h=o(Ie,p,n),g=o(Ae,Xn(h),yt(o(ic,"</foreignObject>",h))),m=o(cc,g,h);n=o(Ie,g+Xn("</foreignObject>"),h),e=e+p+g+Xn("</foreignObject>"),t=o(Br,q(d,m),t),a=f}var v,w})),n,0,A,A)})),fc=Ze("\n*"),lc=o(qe,Oe(0),Ra((function(r){return x(r,{P:{a0:!1,ae:o(zt,1,r.P.ae)}})}))),bc=t((function(r,n,e){var t=i(Au,o(Le,lu(n),Ze("( |\t|\n)*")),r,e+"\n");if(t.$)return q(r,A);var a=t.a;return q(a.a,a.c)})),dc=o(Bn,ie((function(r){var n=r.b;return E(r.a,Yn(n)?"":'="'+n+'"')})),rn(" ")),pc=t((function(r,n,e){return"<"+r+" "+dc(n)+">"+e+"</"+r+">"})),hc=e((function(r,n){var t=n.a,a=n.b;switch(t.$){case 1:var u=t.a;return o(qe,lc,o(ye,o(Ce,o(Le,r,fc),oc(u)),o(qe,Ha("</"+u+">"),o(qe,Ze("[ \t]*>[ \t]*\n*"),Oe(o(tc,u,a))))));case 2:return u=t.a,o(qe,Ue(">"),o(qe,Xe,o(qe,Ye(Ue("/")),o(qe,Xe,Oe(i(tc,u,a,A))))));case 0:return o(ye,ut(oc(u=t.a)),o(qe,Ze("[ \t]*>"),Oe(o(ac,u,a))));case 3:return o(we,Ji,o(Le,ut(oc("lia-keep")),o(qe,Ue(">"),Xe)));default:return o(ge,(function(r){var n=r.a;return o(Le,Oe(r.b),xu(n))}),o(we,(function(n){var t=n.b,u=o(sc,t,n.a),c=u.a,s=u.b,f=i(en,e((function(n,e){var t=n.a,a=e.b,u=i(bc,e.a,r,n.b);return q(u.a,o(Br,q(t,u.b),a))})),q(t,A),s);return s.b?q(f.a,i(uc,a,c,f.b)):q(t,Ji(i(pc,"svg",a,c)))}),o(ye,za((function(r){return Oe(r)})),o(we,zn,o(Le,ut(oc("svg")),o(qe,Ue(">"),Xe))))))}})),gc={$:3},mc={$:4},vc=M,wc=S(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),yc=o(ge,(function(r){switch(r){case"script":return Ka("");case"lia-keep":return Oe(gc);case"svg":return Oe(mc);default:return Oe(o(vc,"-",r)?{$:0,a:r}:function(r){return o(bi,r,wc)}(r)?{$:2,a:r}:function(r){return{$:1,a:r}}(r))}}),o(we,qt,Ze("\\w+(\\-\\w+)*"))),qc=function(r){return o(ge,hc(r),o(ye,lu(ec),o(qe,Xe,o(we,zn,o(Le,yc,Ze("[ \t]*<[ \t]*"))))))},kc=e((function(r,n){return{d3:r,ey:n}})),xc=function(r){return i(St,"\\@","@",i(St,"\\]","]",i(St,"\\[","[",i(St,"\\)",")",i(St,"\\(","(",i(St,"\\|","|",r))))))},$c=a((function(r,n,e,t){var a=Et(t),u=r(n);return o(Be,"(",a)&&o(Ot,")",a)?q(e,u(xc(Et(i(je,1,-1,a))))):q(-1,u(xc(a)))})),Ec=Cr(jr),Ac=function(r){var n=o(Ae,Ge,He("(?<!\\\\)\\|"));return o(ie,o(St,"\\|","|"),o(Ec,n,r))},Dc=e((function(r,n){return{$:1,a:r,b:n}})),Lc=t((function(r,n,e){var t=Ac(n);if(t.b&&!t.b.b){var a=t.a,u=Et(i(St,"_"," ",a));return"?"===u||"!"===u||""===u?Ka(""):Oe(o(kc,A,{$:0,a:xc(Et(a))}))}var c,s=t;return Oe(o(kc,o(ie,aa,c=o(sn,o($c,r,e),s)),o(Dc,!1,o(ie,An,o(Pt,o(Bn,An,un(0)),c)))))})),Sc=t((function(r,n,e){return{$:2,a:r,b:n,c:e}})),Tc=function(r){return Oe(o(kc,o(ie,aa,r),i(Sc,!1,!1,o(ie,An,o(Pt,o(Bn,An,un(0)),r)))))},Rc=t((function(r,n,e){var t=Ac(n);if(t.b&&!t.b.b){var a=Et(t.a);return Tc(o(sn,o($c,r,e),S([o(Be,"(",a)&&o(Ot,")",a)?a:"("+a+")"])))}var u=t;return Tc(o(sn,o($c,r,e),u))})),Nc=o(Bn,Wi(o(Se,o(Le,Oe("]"),Ue("\\]")),_e)),we(at)),_c=function(r){return o(Se,o(ge,za,o(we,e((function(n,e){return o(we,zn(Xn(n)),i(Lc,r,n,e))})),o(Le,Nc(Ue("]]")),Ue("[[")))),o(ge,za,o(we,e((function(n,e){return o(we,zn(Xn(n)),i(Rc,r,n,e))})),o(Le,Nc(Ue("]]")),Ue("[->[")))))},Cc=function(r){if(3===r.$){var n=r.a,e=r.b,t=e.b,a=r.c;return e.a||!o(vc,"soundcloud.com",t)&&!o(vc,"spotify.com",t)?r:i(da,n,t,a)}return r},jc=za(o(Bn,(function(r){return r.ct}),Oe)),Ic=We(S([Fi,o(ye,Ze("#[^ \t\\)]+"),jc),o(ge,Gi,Ze('[^\\)\n "]*'))])),Bc=o(Se,Fi,o(ye,Ze('[^\\)\n "]*'),o(we,e((function(r,n){return i(kt,r.a,r.b,n)})),za((function(r){return Oe(q(r.c5.bX,r.c5.cK))}))))),Uc=o(we,fo,We(S([o(st,"🙂",Ue(":-)")),o(st,"😉",Ue(";-)")),o(st,"😀",Ue(":-D")),o(st,"😮",Ue(":-O")),o(st,"🙁",Ue(":-(")),o(st,"😐",Ue(":-|")),o(st,"😕",Ue(":-/")),o(st,"😕",Ue(":-\\")),o(st,"😛",Ue(":-P")),o(st,"😛",Ue(":-p")),o(st,"😜",Ue(";-P")),o(st,"😜",Ue(";-p")),o(st,"😗",Ue(":-*")),o(st,"😘",Ue(";-*")),o(st,"😂",Ue(":')")),o(st,"😢",Ue(":'(")),o(st,"😭",Ue(":'[")),o(st,"😠",Ue(":-[")),o(st,"😷",Ue(":-#")),o(st,"😷",Ue(":-X")),o(st,"😖",Ue(":-§"))]))),Oc=o(we,fa,Ze("[^\\[\\]\\(\\)@*+_~:;`\\^{}\\\\\\n<>=$ \"\\-|']+")),Vc=o(we,fa,Ze("[^\n*+\\-]+")),zc=o(we,fa,Ze("[\\[\\]\\(\\)~:_;=${}\\-+\"*<>|']")),Pc=o(we,fa,o(Le,Ze("[@\\^*_+~`\\\\${}\\[\\]|#\\-<>'\".]"),Ue("\\"))),Hc=o(we,fa,Ze("[ \t]+")),Mc=function(r){var n=xo(r);return n.b&&!n.b.b?n.a:o(la,n,A)},Gc=function(r){return 14!==r.$||r.b.b?S([r]):r.a},Fc=function(r){return o(we,o(Bn,xo,Mc),o(Le,o(Wi,ds(),Ue(r)),Ue(r)))},Zc=e((function(r,n){return o(we,o(Bn,xo,Mc),o(Le,o(Wi,ds(),Ue(n)),Ue(r)))})),Xc=e((function(r,n){var e=i(Au,bs(),r,i(St,"\n"," ",n));return e.$?A:e.a.c})),Jc=t((function(r,n,e){return o(qe,Ue(")"),o(ye,os(),o(ye,e,o(qe,Ue("("),o(we,nc(r),n)))))}));function Kc(){return o(Le,We(S([Zi,Ei,Oc,lo,$o,Uc,Pc,Wc(),Hc,o(we,pa,qc(ds())),zc,Ki,Vc])),yo)}function Wc(){return We(S([o(we,sa,Fc("**")),o(we,sa,Fc("__")),o(we,ga,Fc("*")),o(we,ga,Fc("_")),o(we,La,Fc("~~")),o(we,Aa,Fc("~")),o(we,Da,Fc("^")),Yc()]))}function Yc(){return o(Se,o(ye,za(o(Bn,(function(r){return r.c5}),o(Bn,(function(r){return r.hI}),o(Bn,(function(r){return r.fE}),Oe)))),o(we,e((function(r,n){var e=n.b;return la(S([o(fa,n.a,A),r,o(fa,e,A)]))})),Fc('"'))),o(ye,za(o(Bn,(function(r){return r.c5}),o(Bn,(function(r){return r.hI}),o(Bn,(function(r){return r.hg}),Oe)))),o(we,e((function(r,n){var e=n.b;return la(S([o(fa," "+n.a,A),r,o(fa,e,A)]))})),o(Zc," '","'"))))}function Qc(){return o(we,$a,We(S([fs(),rs(),es(),ss(),is(),us(),as(),cs()])))}function rs(){return o(Le,ns(),Ue("!?"))}function ns(){return o(qe,Ue(")"),o(ye,os(),o(ye,o(we,rc,Bc),o(qe,Ue("("),o(we,wa,ls())))))}function es(){return o(Le,ts(),Ue("?"))}function ts(){return o(we,Cc,o(qe,Ue(")"),o(ye,os(),o(ye,o(we,wo,Bc),o(qe,Ue("("),o(we,ca,ls()))))))}function as(){return o(qe,Ue(")"),o(ye,os(),o(ye,Ic,o(qe,Ue("("),o(st,ka,o(Eo,{aj:!0,aq:!1},"\\[\\w*qr-code\\w*]"))))))}function us(){return o(qe,Ue(")"),o(qe,os(),o(ye,Ic,o(qe,Ue("("),o(qe,Ze("\\w*]"),o(Le,We(S([o(st,ya,o(Eo,{aj:!0,aq:!1},"lia")),o(st,qa,o(Eo,{aj:!0,aq:!1},"link"))])),o(Eo,{aj:!0,aq:!1},"\\[\\w*preview-")))))))}function os(){return Ye(o(we,Gc,o(qe,co,o(Le,o(Se,Fc('"'),Fc("'")),co))))}function is(){return i(Jc,va,ls(),Ai)}function cs(){return i(Jc,ma,ls(),Ic)}function ss(){return o(Le,i(Jc,ha,ls(),Bc),Ue("!"))}function fs(){return o(Le,i(Jc,da,ls(),Ic),Ue("??"))}function ls(){return o(we,xo,o(we,ie((function(r){return 9!==r.$||r.a.$||!r.a.a.b||r.a.a.a.$||r.a.a.a.b.b||r.a.a.b.b||1!==r.a.c.$||r.b.b?r:o(fa,r.a.a.a.a,A)})),o(qe,lc,o(Le,o(Ce,ds(),Ue("]")),o(qe,Ha("]"),Ue("["))))))}function bs(){return o(we,xo,bu(ds()))}function ds(){return Xi((function(){return o(Le,o(Se,o(we,(function(r){return o(Ea,r.b,r.a)}),$i(A)),o(ye,o(Le,so,Iu),We(S([qo,Mi(Xc),Qc(),Ti,o(we,ba,Oi(ds())),ps(),Kc()])))),o(Le,Iu,yo))}))}function ps(){return o(ge,(function(r){return r?o(we,xa,o(ge,Pa,_c(Xc))):Ka("no inputs allowed")}),Ri)}var hs=Kc();Kc=function(){return hs};var gs=Wc();Wc=function(){return gs};var ms=Yc();Yc=function(){return ms};var vs=Qc();Qc=function(){return vs};var ws=rs();rs=function(){return ws};var ys=ns();ns=function(){return ys};var qs=es();es=function(){return qs};var ks=ts();ts=function(){return ks};var xs=as();as=function(){return xs};var $s=us();us=function(){return $s};var Es=os();os=function(){return Es};var As=is();is=function(){return As};var Ds=cs();cs=function(){return Ds};var Ls=ss();ss=function(){return Ls};var Ss=fs();fs=function(){return Ss};var Ts=ls();ls=function(){return Ts};var Rs=bs();bs=function(){return Rs};var Ns=ds();ds=function(){return Ns};var _s=ps();ps=function(){return _s};var Cs,js,Is=e((function(r,n){var e=i(Au,Rs,i(De,Wr,Wr,r),i(St,"\n"," ",n));return e.$?A:e.a.c})),Bs=S(["zh","en","es","ru","hi","id","ta","tr","ur","no","ko","af","sq","fil","eo","ga","mt","ia","io","ua","cy","gd"]),Us=S(["fr","am","ti","ug","rm"]),Os=S(["sv","fi","bg","hr","bs"]),Vs=S(["de","cs","sr","sk","lt","is","sl","sb","uz"]),zs=S(["nl","he"]),Ps=S(["bo","khb","tdd"]),Hs=function(r){return o(bi,r,Bs)?q("‘","’"):o(bi,r,Vs)?q("‚","‘"):o(bi,r,Us)?q("‹","›"):o(bi,r,zs)?q("‚","’"):o(bi,r,Os)?q("’","’"):o(bi,r,Ps)?q("〈","〉"):q("'","'")},Ms=S(["en","hi","id","pt","ur","vi","tr","ta","th","ko","fil","az","af","lo","lv","mt","ia","eo","ga","cy","gd"]),Gs=S(["de","sr","bg","cs","sk","lt","mk","sq","sl","ka","et","is","sb"]),Fs=S(["sv","fi","bs"]),Zs=S(["es","fr","ar","ru","fa","uz","kk","am","uk","ps","hy","km","oc","ca","gl","el","it","ug","eu","rm","ti","kaa","no","io"]),Xs=S(["pl","nl","hu","ro","hr"]),Js=S(["da"]),Ks=S(["bo","khb","tdd"]),Ws=S(["zh","ja"]),Ys=function(r){return o(bi,r,Ws)?q("「","」"):o(bi,r,Zs)?q("«","»"):o(bi,r,Ms)?q("“","”"):o(bi,r,Gs)?q("„","“"):o(bi,r,Xs)?q("„","”"):o(bi,r,Fs)?q("”","”"):o(bi,r,Ks)?q("《","》"):o(bi,r,Js)?q("»","«"):q('"','"')},Qs=function(r){return Ra((function(n){return x(n,{c5:r(n.c5)})}))},rf=We(S([ft(o(qe,ot,Ze("@@@.*\n"))),ft(o(qe,tt,Ze("@@.*\n"))),o(ge,(function(r){var n=r.a,e=r.b;switch(n){case"attribute":return Qs((function(r){return x(r,{cM:o(wt,r.cM,S([o(Is,r,e)]))})}));case"author":return Qs((function(r){return x(r,{e7:e})}));case"base":return Qs((function(r){return x(r,{bX:e})}));case"comment":return Qs((function(r){var n=et(e);return o(vt,q("comment",n),x(r,{fl:o(Is,r,n)}))}));case"dark":return Qs((function(r){return x(r,{gp:function(){switch(qt(e)){case"true":return Kr(!1);case"false":return Kr(!0);default:return Wr}}()})}));case"date":return Qs((function(r){return x(r,{fq:e})}));case"email":return Qs((function(r){return x(r,{fJ:e})}));case"import":return Qs(oa(e));case"language":return Qs((function(r){var n;return x(r,{gi:e,hI:(n=e,{fE:Ys(n),hg:Hs(n)})})}));case"link":return Qs(o($t,lt,e));case"logo":return Qs((function(r){return x(r,{gr:i(kt,r.bX,r.cK,e)})}));case"narrator":return Qs((function(r){return x(r,{gD:e})}));case"script":return Qs(o($t,dt,e));case"SCRIPT":return Qs(o($t,bt,e));case"translation":return Qs(ia(e));case"formula":return Qs(At(e));case"version":return Qs((function(r){return x(r,{hL:e})}));case"mode":return Qs((function(r){return x(r,{gA:function(){switch(qt(e)){case"textbook":return Kr(2);case"presentation":return Kr(1);case"slides":return Kr(0);default:return Wr}}()})}));case"debug":return Qs((function(r){return x(r,{fs:"true"===e})}));case"onload":return Qs((function(r){return x(r,{gO:e})}));case"icon":return Qs((function(r){return x(r,{dR:i(mt,"icon",i(kt,r.bX,r.cK,e),r.dR)})}));default:return Qs(vt(q(n,e)))}}),ct)])),nf=ft(Je(o(qe,Xe,bu(o(Le,rf,Xe))))),ef=ft(o(qe,Xe,Ye(o(Le,Ra((function(r){return x(r,{fw:!0})})),nf)))),tf=t((function(r,n,e){var t=n.a,a=n.b,u=v(a+10,Xn(t))>0?Xn(t):a+10,i=10>a?0:a-10;return(r?"\n> I was trying to parse the **first** part of the course, which is either an\n> HTML-comment or something else, until I reach the header (which is marked by\n> an `#`). But, everything I got was the following:":"> I have a problem with the following part of the code:")+'\n\n\x3c!-- data-showGutter data-firstLineNumber="'+Qr(i)+'" --\x3e\n````` markdown\n...\n'+o(rn,"\n",o(Ft,u-i,o(zt,i,fu(t))))+"\n...\n`````\n"+(r?"\n> I might be wrong, but in most cases this refers to a falsely loaded HTML page!\n>\n> Please make sure, that the course you try to load is a Markdown file, which\n> is served as a plain text file...\n":"> If you see this in the editor, try to fix it otherwise contact the creator.\n")+"\n---\n\n**Error Message:**\n\n```\n"+e+"\n```\n\n---\n\nIf it should work, and you think you have detected a bug, please contact us. For\nmore information see the [last Section](#get-help?).\n"})),af=t((function(r,n,e){var t=i(Au,o(qe,o(Se,Ue("#"),ut(Ze("\n#"))),o(Le,ef,Ze("\\s*"))),i(De,Wr,Wr,o(re,r,n)),e+"\n");if(t.$){var a=t.a,u=a.b,c=a.c;return Hr(""===Et(e)?te:i(tf,!0,q(e,Jn(u).dN),o(de,c,u)))}var s=t.a;return Zr(q(s.a.c5,"#"+s.b.k))})),uf=t((function(r,n,e){return{cW:e,dz:r,hF:n}})),of=o(Bn,Jn,(function(r){return r.aX})),cf=o(we,ru,lu(We(S([Ze("(?:[^#`<]+|[\\x0D\n]+|\x3c!--[\\S\\s]{0,1000}?--\x3e)"),Ze("(`{3,})[\\S\\s]*?\\1"),Ze("`.+?`"),o(Eo,{aj:!0,aq:!1},"<(?:area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)[ \t]*/?>"),Ze("(?:<([\\w+\\-]+)[\\S\\s]*?<[ \t]*/[ \t]*\\1[ \t]*>|`|<)"),Ze("#+(\\w|[^\\u0000-\\u007F]|[ \t]*\n)"),o(Le,Ue("#"),(Cs=function(r){return r?Oe(0):Ka("")},e((function(r,n){return i(he,Cs(of(n)),r,n)}))))])))),sf=Ue("\n"),ff=o(qe,sf,Rs),lf=o(qe,Pu,o(we,Xn,Ze("#+"))),bf=o(ye,cf,o(ye,ff,o(we,uf,lf))),df=e((function(r,n){var e=i(Au,bf,i(De,Wr,Wr,r),n);if(e.$){var t=e.a;return Hr(o(de,t.c,t.b))}var a=e.a;return Zr(q(a.c,a.b.k))})),pf=t((function(r,n,e){for(;;){var t=o(ja,_a&n>>>r,e);if(t.$)return o(ja,_a&n,t.a);r-=gn,e=t.a}})),hf=e((function(r,n){var e=n.a,t=n.b,a=n.c,u=n.d;return 0>r||v(r,e)>-1?Wr:v(r,function(r){return r>>>5<<5}(e))>-1?Kr(o(ja,_a&r,u)):Kr(i(pf,t,r,a))})),gf=e((function(r,n){r:for(;;){if(n.b){var e=n.a;if(r>0){r-=1,n=n.b;continue r}return Kr(e)}return Wr}})),mf=e((function(r,n){var e=r.fK;if(1===e.$)return 1>v(r.fb,n);var t=e.a;return 1>v(r.fb,n)&&v(t,n)>0})),vf=e((function(r,n){return o(Ae,!0,o(Fn,mf(n),r))})),wf=function(r){return 1===r.$?Kr(r.a):Wr},yf=e((function(r,n){r:for(;;){n:for(;;)switch(n.$){case 0:case 7:return n.a;case 2:case 3:case 4:case 5:case 6:n=n.a;continue r;case 8:return n.b;case 9:return o(qf,r,n.a);case 13:if(n.a.$)break n;return o(kf,r,n.a.c);case 14:return o(kf,r,n.a);case 11:var e=n.a;return o(vf,r.hM,e)?o(kf,r,e.cZ):"";case 12:return o(Ae,"",o(bo,wf,o(bo,(function(r){return r.ek}),o(hf,n.a,r.er))));case 15:var t=n.a.b,a=o(hf,t,r.k.cy);e:for(;!a.$;)switch(a.a.$){case 0:return a.a.a;case 1:if(a.a.b.b&&!a.a.b.b.b){var u=a.a.b.a;return g(u,-1)?"":o(Ae,"",o(Fn,kf(r),o(bo,gf(u),o(hf,t,r.k.d3))))}break e;default:break e}return"";default:break n}return""}})),qf=e((function(r,n){switch(n.$){case 4:case 2:case 3:case 0:case 1:case 5:return o(kf,r,n.a);case 6:return"preview-lia";case 7:return"preview-link";default:return"qr-code"}})),kf=function(r){return o(Bn,ie(yf(r)),ru)},xf=kf({k:{d3:mn,cy:mn},er:mn,hM:Wr});js={Preview:{init:pr({gb:function(){return q("",Cn)},hs:function(){return In(Ir)},cF:e((function(r){return function(r){var n=i(af,"","",r);if(n.$)return q("",o(Hn,"parse",n.a));var t,a,u=n.a,c=u.a,s=u.b,f=o(Ae,A,o(Fn,o(Bn,An,(function(r){return r.hF})),(a=o(df,c,s)).$?Wr:Kr(a.a)));return q(s,Vn(o(zn,!0,(t=S([q("logo",Pn(c.gr)),q("icon",o(Ae,null,o(Fn,Pn,o(Gn,"icon",c.dR)))),q("title",Pn(xf(f))),q("author",Pn(c.e7)),q("tags",Pn(o(Ae,"",o(Gn,"tags",c.dR)))),q("email",Pn(c.fJ)),q("description",Pn(xf(c.fl))),q("version",Pn(c.hL))]),i(en,e((function(r,n){return i(or,r.a,r.b,n)})),{},t)))))}(r)}))})(o(Nn,(function(r){return{$:0,a:{cV:r}}}),o(_n,"cmd",jn)))(0)}},r.Elm?function r(n,e){for(var t in e)t in n?"init"==t?h(6):r(n[t],e[t]):n[t]=e[t]}(r.Elm,js):r.Elm=js}(this)},{}],"967cd":[function(r,n,e){var t=r("@parcel/transformer-js/src/esmodule-helpers.js");function a(r){if(!window.cancelIdleCallback||!window.requestIdleCallback)return r;let n;return function(){window.cancelIdleCallback(n),n=window.requestIdleCallback((()=>{n=null,r.apply(null,arguments)}))}}function u(r,n=1e3,e=!1){let t;return function(...a){return void 0===t&&e&&r.apply(this,a),clearTimeout(t),setTimeout((()=>r.apply(this,a)),n)}}function o(r,n=500){let e=!1,t=null;function a(){null==t?e=!1:(r(...t),t=null,setTimeout(a,n))}return(...u)=>{e?t=u:(r(...u),e=!0,setTimeout(a,n))}}function i(r){return r.startsWith("https://")||r.startsWith("http://")||r.startsWith("file://")||r.startsWith("hyper://")||r.startsWith("dat://")||r.startsWith("ipfs://")||r.startsWith("ipns://")||r.startsWith("blob:")||r.startsWith("data:")}function c(r){let n=0;if(0==r.length)return n;for(let e=0;e<r.length;e++){n=(n<<5)-n+r.charCodeAt(e),n|=0}return n}function s(r){let n=r.toString(16);return 1==n.length?"0"+n:n}function f(r){let n=function(r){let n=(65280&r)>>8,e=255&r;return"#"+s((16711680&r)>>16)+s(n)+s(e)}(c(r));return n}t.defineInteropFlag(e),t.export(e,"debounce",(()=>a)),t.export(e,"debounce2",(()=>u)),t.export(e,"throttle",(()=>o)),t.export(e,"allowedProtocol",(()=>i)),t.export(e,"getHashCode",(()=>c)),t.export(e,"getColorFor",(()=>f)),t.export(e,"PROXY",(()=>l));const l="https://api.allorigins.win/get?url="},{"@parcel/transformer-js/src/esmodule-helpers.js":"XTfsy"}],XTfsy:[function(r,n,e){e.interopDefault=function(r){return r&&r.__esModule?r:{default:r}},e.defineInteropFlag=function(r){Object.defineProperty(r,"__esModule",{value:!0})},e.exportAll=function(r,n){return Object.keys(r).forEach((function(e){"default"===e||"__esModule"===e||n.hasOwnProperty(e)||Object.defineProperty(n,e,{enumerable:!0,get:function(){return r[e]}})})),n},e.export=function(r,n,e){Object.defineProperty(r,n,{enumerable:!0,get:e})}},{}]},["jUClR"],"jUClR","parcelRequire55a5");