Socket
Socket
Sign inDemoInstall

@techandsoftware/teletext-service

Package Overview
Dependencies
1
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.3 to 0.2.4

2

package.json
{
"name": "@techandsoftware/teletext-service",
"version": "0.2.3",
"version": "0.2.4",
"description": "Teletext service API and web application to view pages and navigate between them",

@@ -5,0 +5,0 @@ "module": "public/dist/teletext-service.min.js",

@@ -5,2 +5,2 @@ // SPDX-FileCopyrightText: (c) 2021 Tech and Software Ltd.

// LicenseRef-uk.ltd.TechAndSoftware-1.0 refers to https://tech-and-software.ltd.uk/LICENSES/LicenseRef-uk.ltd.TechAndSoftware-1.0.txt
const t=new Set(["Uint1Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","UInt32Array","Float32Array","Float64Array"]),s=Uint8Array,i=Symbol();class e{constructor(t,{length:i=null,buffer:e=null,byteOffset:n=0,byteLength:r=null}={}){let h;e?i=8*(r||e.byteLength):i||(i=0);const o=s.BYTES_PER_ELEMENT,a=8*o,c=a-1,l=(t=>{let s=0;for(;t>>=1;)s++;return s})(a),g=Math.max(1,i+c>>l);e?h=new s(e,n,g):(e=new ArrayBuffer(o*g),h=new s(e)),Object.assign(this,{buffer:e,byteOffset:n,length:i,wordSize:a,wordCount:g,wordSizeMask:c,wordSizeShift:l,internal:h})}toArray(){const t=new Uint8Array(this.length);for(let s=0;s<this.wordCount;s++){const i=this.internal[s];for(let e=s*this.wordSize;e<(s+1)*this.wordSize;e++)t[e]=this.getBit(e,i)}return t}getBit(t,s){if(!(t>=this.length))return null==s&&(s=this.internal[t>>this.wordSizeShift]),s>>(t&this.wordSizeMask)&1}setBit(t,s){if(t>=this.length)return;const i=t>>this.wordSizeShift,e=t&this.wordSizeMask,n=this.internal[i];let r=n;return r|=s<<e,r&=~((1&~s)<<e),n!==r&&(this.internal[i]=r),s}}class n{constructor(t,s=0,n=null){let h,l,g;switch(c(t)){case"Number":h=t=~~t,l=new e(this,{length:h});break;case"ArrayBuffer":l=new e(this,{buffer:t,byteOffset:s,byteLength:n});break;case"Undefined":case"Null":case"RegExp":case"Infinity":h=0,l=new e(this,{length:h});break;case"Array":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"UInt32Array":case"Float32Array":case"Float64Array":case"Uint1Array":case"Object":default:g=o(t),l=new e(this,{length:g.length}),g.forEach(((t,s)=>l.setBit(s,a(t))))}return this[i]=l,new r(this)}static get BYTES_PER_ELEMENT(){return.125}static get name(){return"Uint1Array"}static get length(){return 0}static get[Symbol.species](){return this}static[Symbol.hasInstance](t){return t.__proto__=this}static from(t){const s=o(t);return new n(s)}static of(...t){return n.from(t)}get buffer(){return this[i].buffer}get byteLength(){return this.length+7>>3}get byteOffset(){return this[i].byteOffset}get length(){return this[i].length}get[Symbol.toStringTag](){return"Uint1Array"}copyWithin(t,s=0,i=this.length){if(!Number.isInteger(t))return this;const e=new Uint8Array(i-s);for(let t=s;t<i;t++)e[t-s]=this[t];return this.set(e,t),this}entries(){return this[i].toArray().entries()}every(...t){return this[i].toArray().every(...t)}fill(t,s=0,i=this.length){for(let e=s;e<i;e++)this[e]=t;return this}filter(...t){return new n(this[i].toArray().filter(...t))}find(...t){return this[i].toArray().find(...t)}findIndex(...t){return this[i].toArray().findIndex(...t)}forEach(...t){this[i].toArray().forEach(...t)}includes(...t){return this[i].toArray().includes(...t)}indexOf(...t){return this[i].toArray().indexOf(...t)}join(...t){return this[i].toArray().join(...t)}keys(...t){return this[i].toArray().keys(...t)}lastIndexOf(...t){return this[i].toArray().lastIndexOf(...t)}map(...t){return new n(this[i].toArray().map(...t))}reduce(...t){return this[i].toArray().reduce(...t)}reduceRight(...t){return this[i].toArray().reduceRight(...t)}reverse(){const t=this[i].toArray().reverse();return this.set(t),this}set(s,i=0){if(!Number.isInteger(i))return;const e=c(s);if("Array"!==e&&!t.has(e))return;const n=Math.min(s.length+i,this.length);s=s.map((t=>a(t)));for(let t=i;t<n;t++)this[t]=s[t-i]}slice(...t){return new n(this[i].toArray().slice(...t))}sort(...t){const s=this[i].toArray().sort(...t);return this.set(s),this}subarray(...t){return new n(this[i].toArray().subarray(...t))}values(...t){return this[i].toArray().values(...t)}toLocaleString(...t){return Array.from(this).toLocaleString()}toString(){return""+Array.from(this)}[Symbol.iterator](){return this[i].toArray()[Symbol.iterator]()}valueOf(){return this}toJSON(){return Array.from(this)}}function r(t){const s=t[i];return new Proxy(t,{get(i,e,n){const r="string"==typeof e?parseInt(e):e;return Number.isInteger(r)?s.getBit(r):Reflect.get(t,e)},set(i,e,n,r){const h="string"==typeof e?parseInt(e):e;return Number.isInteger(h)?(s.setBit(h,a(n)),!0):Reflect.set(t,e,n)}})}const h=/\[object (\w+)]/;function o(t){const s=[];for(let i of t){const t=a(i);s.push(t)}return s}function a(t){return"number"!=typeof t||Number.isNaN(t)?new Boolean(t).valueOf():t%2}function c(t){const s=t&&t.constructor?t.constructor.name:null,i=h.exec(Object.prototype.toString.call(t))[1];return i!==s&&s?s:i}class l{static tt(t,s){const i=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(i){if(1===i)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-i).join("=")}const e=[...s(t)].map((t=>(t=>{if(t in g)return g[t];const s=[...t.charCodeAt(0).toString(2).padStart(8,"0")].reverse();return g[t]=Number.parseInt(s.join(""),2),g[t]})(t))),r=new ArrayBuffer(e.length);return new Uint8Array(r).set(e),(t=>{const s=[];for(let i=0;i<25;i++){const e=[];for(let s=0;s<40;s++){let n=6,r=0;const h=280*i+7*s;for(let s=h;s<h+7;s++)r+=t[s]*Math.pow(2,n),n--;e.push(String.fromCharCode(r))}s.push(e.join(""))}return s})(new n(r))}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(t){const s=[],i=/^OL,(\d{1,2}),(.*)/;for(const e of[...t]){const t=e.match(i);null!=t&&(s[t[1]]=l.st(t[2]))}return s}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}const g={},A={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmKCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},_="http://www.w3.org/2000/svg";let u,C,E=0;class I{constructor(){}rt(){return this.nt}ht(){this.nt=null}_t(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.nt.removeAttribute(s):this.nt.setAttribute(s,t[s]);else{if(void 0===s)return this.nt.getAttribute(t);null==s?this.nt.removeAttribute(t):this.nt.setAttribute(t,s)}return this}ot(t){if(!this.at(t)){const s=this.lt();s.push(t),this.nt.setAttribute("class",s.join(" "))}return this}at(t){return-1!==this.lt().indexOf(t)}lt(){const t=this.nt.getAttribute("class");return null==t?[]:t.split(" ")}At(t){return this.at(t)&&this.nt.setAttribute("class",this.lt().filter((s=>s!==t)).join(" ")),this}ct(t){return this.at(t)?this.At(t):this.ot(t),this}gt(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.nt.dataset[s]:this.nt.dataset[s]=t[s];else{if(void 0===s)return this.nt.dataset[t];null==s?delete this.nt.dataset[t]:this.nt.dataset[t]=s}return this}}class f extends I{constructor(t){return super(),u=t,C=u.document,this.nt=C.createElementNS(_,"svg"),this.nt.setAttribute("xmlns",_),this}ut(t){const s=C.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.nt),this}Ct(t){return this.nt.setAttribute("viewBox",t),this}ft(t,s){return this.nt.setAttribute("width",t),this.nt.setAttribute("height",s),this}It(t){const s=C.createElementNS(_,"style");return s.append(t),this.nt.append(s),this}Et(){const t=new B;return this.nt.append(t.rt()),t}Bt(){return this.nt.clientWidth}dt(){return this.nt.clientHeight}Qt(t){const s=new y(t);return this.nt.append(s.rt()),s}}class B extends I{constructor(){return super(),this.nt=C.createElementNS(_,"g"),this.yt=[],this}Et(){const t=new B;return this.nt.append(t.rt()),this.yt.push(t),t}bt(t){const s=new m(t);return this.nt.append(s.rt()),this.yt.push(s),s}wt(){const t=new p;return this.nt.append(t.rt()),t}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}xt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}vt(t){return this.nt.setAttribute("clip-path",`url("#${t.rt().id}")`),this}kt(){return this.nt.removeAttribute("clip-path"),this}Rt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null,this.yt.forEach((t=>t.ht())),this.yt=[]}Ft(t,s,i,e){const n=new v(t,s,i,e);return this.nt.append(n.rt()),this.yt.push(n),n}Lt(t){const s=new b(t);return this.nt.append(s.rt()),this.yt.push(s),s}Dt(t,s){const i=new d(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}Gt(t,s){const i=new Q(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}}class Q extends I{constructor(){return super(),this.nt=C.createElementNS(_,"svg"),this}attr(...t){return this._t(...t)}get node(){return this.rt()}}class d extends I{constructor(t,s){return super(),this.nt=C.createElementNS(_,"image"),this.nt.setAttribute("width",parseInt(t)),this.nt.setAttribute("height",parseInt(s)),this}attr(...t){return this._t(...t)}}class b extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"use"),this.nt.setAttribute("href","#"+t),this}Nt(t){return this.nt.setAttribute("fill",t),this}Ot(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}}class y extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"symbol"),this.nt.setAttribute("id",t),this}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),i}}class m extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"text"),this.nt.append(t),this}bt(t){return this.nt.textContent=t,this}Nt(t){return this.nt.setAttribute("fill",t),this}}class p extends I{constructor(){return super(),this.nt=C.createElementNS(_,"defs"),this}Ht(){const t=new w;return this.nt.append(t.rt()),t}jt(t){return[...this.nt.querySelectorAll(t)].map(k)}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),i}}class w extends I{constructor(){return super(),this.nt=C.createElementNS(_,"clipPath"),this.nt.setAttribute("id","clipPath-"+E),E++,this}Ut(){return[...this.nt.children].map(k)}Pt(t){this.nt.appendChild(t.rt())}}class S extends I{constructor(t,s){if(super(),t instanceof u.SVGElement)return this.nt=t,this;const i=t;return this.nt=C.createElementNS(_,"rect"),this.nt.setAttribute("width",parseInt(i)),this.nt.setAttribute("height",parseInt(s)),this}Nt(t){return this.nt.setAttribute("fill",t),this}Ot(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}Bt(t){return void 0===t?parseInt(this.nt.getAttribute("width")):(this.nt.setAttribute("width",parseInt(t)),this)}dt(t){return void 0===t?parseInt(this.nt.getAttribute("height")):(this.nt.setAttribute("height",parseInt(t)),this)}Rt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null}}class v extends I{constructor(t,s,i,e){return super(),this.nt=C.createElementNS(_,"line"),this.nt.setAttribute("x1",t),this.nt.setAttribute("y1",s),this.nt.setAttribute("x2",i),this.nt.setAttribute("y2",e),this}}function k(t){let s;switch(t.constructor.name){case"SVGRectElement":s=new S(t);break;default:throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name)}return s}const x={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(x);const U={Mt:Symbol(),qt:Symbol(),Tt:Symbol(),zt:Symbol()};Object.freeze(U);const N={Jt:Symbol(),Vt:Symbol(),Yt:Symbol(),Kt:Symbol()};Object.freeze(N);class D{static charFromTextColour(t){if(t in L)return L[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in P)return P[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in H)return H[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function O(t){return R[t]}D.TEXT_COLOUR=U.Mt,D.MOSAIC_COLOUR=Symbol(),D.NEW_BACKGROUND=Symbol(),D.BLACK_BACKGROUND=Symbol(),D.CONTIGUOUS_GRAPHICS=U.qt,D.SEPARATED_GRAPHICS=U.Tt,D.ESC=Symbol(),D.FLASH=Symbol(),D.STEADY=Symbol(),D.NORMAL_SIZE=N.Jt,D.DOUBLE_HEIGHT=N.Vt,D.DOUBLE_WIDTH=N.Yt,D.DOUBLE_SIZE=N.Kt,D.CONCEAL=Symbol(),D.HOLD_MOSAICS=Symbol(),D.RELEASE_MOSAICS=Symbol(),D.START_BOX=Symbol(),D.END_BOX=Symbol(),D.Zt=Symbol();const R={[x.BLACK]:"#000",[x.RED]:"#f00",[x.GREEN]:"#0f0",[x.YELLOW]:"#ff0",[x.BLUE]:"#00f",[x.MAGENTA]:"#f0f",[x.CYAN]:"#0ff",[x.WHITE]:"#fff"};Object.freeze(R);const F={"\0":x.BLACK,"":x.RED,"":x.GREEN,"":x.YELLOW,"":x.BLUE,"":x.MAGENTA,"":x.CYAN,"":x.WHITE};Object.freeze(F);const j={"":x.BLACK,"":x.RED,"":x.GREEN,"":x.YELLOW,"":x.BLUE,"":x.MAGENTA,"":x.CYAN,"":x.WHITE};Object.freeze(j);const G={"\b":D.FLASH,"\t":D.STEADY,"\n":D.END_BOX,"\v":D.START_BOX,"\f":D.NORMAL_SIZE,"\r":D.DOUBLE_HEIGHT,"":D.DOUBLE_WIDTH,"":D.DOUBLE_SIZE,"":D.CONCEAL,"":D.CONTIGUOUS_GRAPHICS,"":D.SEPARATED_GRAPHICS,"":D.ESC,"":D.BLACK_BACKGROUND,"":D.NEW_BACKGROUND,"":D.HOLD_MOSAICS,"":D.RELEASE_MOSAICS},L={};for(const t in F)L[F[t]]=t,G[t]=F[t];Object.freeze(L);const P={};for(const t in j)P[j[t]]=t,G[t]=j[t];Object.freeze(P),Object.freeze(G);const H={};for(const t in G)H[G[t]]=t;Object.freeze(H);const M={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(M);const q={};q[M[0]]=[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23],q[M[1]]=[...q[M[0]]].concat([10,11,12,13,24,25,26,27,28,29,30,31]),q[M[1.5]]=[...q[M[1]]].concat([0,16]),q[M[2.5]]=[...q[M[1.5]]].concat([14,15]),Object.freeze(q);const T={Xt:{Wt:10.4,$t:-5.2},ts:{Wt:10,$t:-4.5}};Object.freeze(T);class V{constructor(t,s){this.ss=new f(s).Ct("0 0 400 250").ft(600,500)._t({preserveAspectRatio:"none",style:"font-family: sans-serif"}).It("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.ss.Et()._t("class","conceal_concealed flash_flashing"),this.es=1.2,this.rs(),this.ns(),this.hs=null,this._s=t,this.os=this._s.As.ls((()=>this.cs())),this.gs=!1,this.us=!1,this.Cs=!1,this.fs={}}ut(t){this.ss.ut(t)}Is(){this._s.As.Is(this.os),this.os=null}cs(){let t=!1,s=!1;this.Cs=!1,this.d.At("flash_flashing"),this.Es.forEach(((i,e)=>{let n=!1;if(this.Bs(e),t)return t=!1,void this.ds(i,e);const r=this._s.Qs(e);let h,o;i.forEach(((t,i)=>{if(n)return n=!1,this.ys(t),this.bs(e),void(o&&this.ps());const a=r.ws(i),c=O(a.Ss),l=a.xs(),g=O(a.Us),A=this.vs(a.ks,l,a.et);this.Rs(t,a,A,g,i,e,l),a.Fs&&(o?this.ps():this.Ls(e,i),this.Cs=!0),h==c?this.bs(e):this.Ds(e,i,c),a.ft!=N.Yt&&a.ft!=N.Kt||(n=!0),h=c,o=a.Fs,a.Gs&&(s=!0)})),r.Ns?(this.Os(e),this.Hs(),t=!0):t=!1,this.js(e)})),"Ps"in this.fs&&this.fs.Ps(this.ss.Bt(),this.ss.dt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}Bs(t){this.qs(t),this.Ts(t)}ds(t,s){"zs"in this.fs&&this.fs.zs(t.length,s),t.forEach((t=>this.ys(t)))}ys(t){t.bt(" ")._t({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}Rs(t,s,i,e,n,r,h){this.Js(t,s,i,e,n,r),s.ks==U.qt&&h||s.ks==U.zt?t.ot("mosaic"):s.ks==U.Tt&&h&&t.ot("mosaic_separated")}Js(t,s,i,e,n,r){t.bt(s.Vs)._t(i).Nt(e),s.ft==N.Vt?t._t("transform",`translate(0 ${K(r)}) scale(1 2)`):s.ft==N.Yt?t._t("transform",`translate(${Z(n)} 0) scale(2 1)`):s.ft==N.Kt&&t._t("transform",`translate(${Z(n)} ${K(r)}) scale(2 2)`),s.Gs&&t.ot("flash"),s.Ys&&t.ot("conceal")}Ks(){this.d.ct("conceal_concealed")}Zs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.ss._t("style","font-family: "+s)}Xs(){this.hs?(this.hs.Rt(),this.hs=null):this.Ws()}$s(){this.us?(this.us=!1,this.ti._t("opacity",null).kt()):(this.us=!0,this.si())}ii(t){this.es=t,this.ei(this.ss.dt())}ei(t){this.ss.ft("natural"==this.es?1.6*t:t*this.es,t)}si(){this.gs&&this.Cs?this.ti._t("opacity",.3):this.Cs?this.ti.vt(this.ri)._t("opacity",.3):this.ti._t("opacity",0)}Ms(){this.us&&this.si()}ni(){this.gs?(this.d.kt(),this.gs=!1):(this.d.vt(this.ri),this.gs=!0),this.Ms()}Ws(){this.hs=this.d.Et();for(let t=0;t<25;t++)this.hs.Ft(0,10*t,399,10*t)._t({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this.hs.Ft(10*t,0,10*t,249)._t({stroke:"#555","stroke-width":.5})}ns(){this.hi=this.d.wt(),this._i=null,this.ri=this.hi.Ht()}rs(){this.oi(),this.ai()}oi(){const t=this.d.Et();t._t({"shape-rendering":"crispEdges",id:"background"}),this.li=[],this.ti=t}ai(){const t=[],s=this.d.Et()._t({"text-anchor":"middle",fill:"#fff"})._t("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.bt(String.fromCharCode(32+95*Math.random()))._t({x:10*t+5,y:10*i+8}));t.push(e)}this.Es=t,this.Ai=s}Ts(t){this.ri.Ut().filter((s=>s.gt("r")==t)).forEach((t=>t.Rt()))}qs(t){this.li[t]&&this.li[t].Rt(),this.li[t]=this.ti.Et()}bs(t){const s=this.li[t].xt(),i=s.Bt();s.Bt(i+10)}Ds(t,s,i){const e=10*s,n=10*t;this.li[t].St(10,10).Nt(i).Ot(e,n)}ps(){const t=this._i.Bt();this._i.Bt(t+10)}Os(t){this.li[t].Ut().forEach((t=>t._t("height",20)))}Hs(){this.hi.jt("[data-boxbuffer]").forEach((t=>t.dt(20)))}Ls(t,s){const i=10*s,e=10*t;this._i=this.hi.St(10,10).gt("boxbuffer",!0).Ot(i,e)}js(t){this.hi.jt("[data-boxbuffer]").forEach((s=>{s.gt({r:t,boxbuffer:null}),this.ri.Pt(s)}))}vs(t,s,i){return t==U.qt&&s||t==U.zt?{dx:T.Xt.$t,dy:-.15,textLength:T.Xt.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==U.Tt&&s?{dx:T.ts.$t,dy:null,textLength:T.ts.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?10:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.fs.ci=s.renderBackground),"renderMosaic"in s&&(this.fs.gi=s.renderMosaic),"endOfPageUpdate"in s&&(this.fs.Ps=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.fs.zs=s.clearCellsForRow),{lookupColour:X,isDoubleHeight:z,isDoubleWidth:J,isDoubleSize:Y,isSeparatedMosaic:$,createImageOverlay:this.ui.bind(this),createSVGOverlay:this.Ci.bind(this)}}ui(){const t=this.d.Dt(400,250);return t._t("preserveAspectRatio","none"),t}Ci(){const t=this.d.Gt();return t._t("preserveAspectRatio","none"),t}}V.fi=10,V.Ii=10,V.Ei=20,V.Bi=20,V.di=400,V.Qi=250,V.yi=T,V.ROWS=25,V.COLS=40;const X=t=>O(t),z=t=>t==N.Vt,J=t=>t==N.Yt,Y=t=>t==N.Kt,$=t=>t==U.Tt,K=t=>0-10*t,Z=t=>0-10*t,W={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},tt={};class st{constructor(t){this.type=t.ks,this.flashing=t.Gs,this.concealed=t.Ys,this.size=t.ft,this.sextants=t.bi()}}class it{constructor(){this.pi=" ",this.mi=" ",this.wi=x.WHITE,this.Si=x.BLACK,this.xi=U.Mt,this.Ui=!1,this.vi=N.Jt,this.ki=!1,this.Ri=!1,this.Fi=null,this.Li=!1,this.Di=null,this.Gi=null}set Ni(t){this.pi=t}get Ni(){return this.pi}set Us(t){this.wi=t}get Us(){return this.wi}set Ss(t){this.Si=t}get Ss(){return this.Si}get et(){return this.Li}Oi(t){const s=this.xi==U.qt||this.xi==U.Tt;this.xi==U.Mt||0==(32&this.pi.charCodeAt(0))&&s?(this.mi=nt(this.pi,t),this.Di>0&&(this.mi+=W.g2_latin[String.fromCharCode(this.Di+64)]),this.Li=!1,"g0_arabic"!=t&&"g2_arabic"!=t||(this.Li=l.et(this.mi))):this.xi==U.qt?this.mi=nt(this.pi,"g1_block_mosaic_to_unicode__legacy_computing"):this.xi==U.Tt?this.mi=nt(this.pi,"g1_block_mosaic_to_unicode__unscii_separated"):this.xi==U.zt&&(this.mi=nt(this.pi,"g3")),this.Fi=null}Hi(t){if(this.xi!=U.qt&&this.xi!=U.Tt||!t.ji)this.Fi=null,this.mi=" ";else{this.Fi=t.Vs,this.xi=t.ks;let s="g1_block_mosaic_to_unicode__legacy_computing";this.xi==U.Tt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.mi=nt(t.Vs,s)}}get Vs(){return this.mi}get ks(){return this.xi}set ks(t){this.xi=t}set Gs(t){this.Ui=t}get Gs(){return this.Ui}get ft(){return this.vi}set ft(t){this.vi=t}set Ys(t){this.ki=t}get Ys(){return this.ki}set Fs(t){this.Ri=t}get Fs(){return this.Ri}xs(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.pi.charCodeAt(0);return t<=127&&32==(32&t)}Pi(){const t=this.pi.charCodeAt(0);return(this.xi==U.qt||this.xi==U.Tt)&&t<=127&&32==(32&t)}bi(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.pi.charCodeAt(0);if(t>127)return null;if(t in tt)return tt[t];let s=t-32;return s>=64&&(s-=32),tt[t]=[...s.toString(2).padStart(6,"0")].reverse(),tt[t]}}class et extends it{constructor(t){super(),Object.assign(this,t)}set Mi(t){this.Di=t}get Mi(){return this.Di}set qi(t){this.Gi=t}get Vs(){return null==this.Gi?this.mi:this.Gi}}function nt(t,s){if(!(s in W))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in W[s])return W[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in W[e])return W[s][t]=W[e][t],W[e][t]}return t}class rt extends V{constructor(t,s,i){super(t,i),this.Ti=s,this.zi=new Set}rs(){super.rs(),this.Ji=[],this.Vi=this.d.Et()}Bs(t){super.Bs(t),this.Yi(t)}Rs(t,s,i,e,n,r,h){"ci"in this.fs&&this.fs.ci(r,n,s.ft,s.Ss),s.ks!=U.Mt&&s.ks!=U.zt&&h?h&&(t.bt(" ")._t(i),this.Ki(r,n,s,e)):(this.Js(t,s,i,e,n,r),s.ks==U.zt&&t.ot("mosaic"))}Ki(t,s,i,e){if("gi"in this.fs){const n=new st(i);if(this.fs.gi(t,s,n,e))return}const n=i.bi();if(!n.includes("1"))return;let r=i.ks==U.qt?"c":"s";r+=n.join("");let h,o=V.fi,a=V.Ii;if(i.ks==U.qt&&(o=V.fi+.3,a=V.Ii+.2),!this.zi.has(r)){this.zi.add(r);const t=this.ss.Qt(r);if(i.ks==U.qt){t._t({preserveAspectRatio:"none",width:o,height:a,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(6,6).Ot(s%2*6,6*Math.floor(s/2))}else{t._t({preserveAspectRatio:"none",width:o,height:a,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(4,4).Ot(s%2*6+1,6*Math.floor(s/2)+2)}}h=i.ks==U.qt?this.Ji[t].Lt(r).Ot(s*V.fi-.15,t*V.Ii-.1).Nt(e):this.Ji[t].Lt(r).Ot(s*V.fi,t*V.Ii).Nt(e),this.Ti&&h._t({width:o,height:a}),i.ft!=N.Vt&&i.ft!=N.Kt||h._t("height",V.Bi),i.ft!=N.Yt&&i.ft!=N.Kt||h._t("width",V.Ei),i.Gs&&h.ot("flash"),i.Ys&&h.ot("conceal")}Yi(t){this.Ji[t]&&this.Ji[t].Rt(),this.Ji[t]=this.Vi.Et()}vs(t,s,i){return t==U.zt?{dx:V.yi.Xt.$t,dy:-.15,textLength:V.yi.Xt.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?V.fi:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class ht{constructor(t){this._s=t,this.Zi=0,this.Xi=0,this.Wi=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Zi=t,this.Xi=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g0",Vs:t,Mi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g1",Vs:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g2",Vs:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g3",Vs:t}),this}putAt(){return this.Wi.push({$i:this.Zi,te:this.Xi,ks:"char",Vs:"@"}),this}end(){return this._s.se(this.Wi),this._s.ie(),this}}class ot extends V{}const at=["SPLASH","ENGINEERING","ADVERT","UK"];class ct{constructor(t,s){if(this.ee=null,"object"==typeof window&&(this.ee=window),this.re={ne:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this.re.ne=!1),"dom"in s&&(this.ee=s.dom)),null==this.ee)throw Error("TeletextController E24: No window dom object available");this.he=new rt(t,this.re.ne,this.ee),this._s=t,this._e=1,this.oe=0,this.ae(),this.le=null,this.Ae=null,this.ce=0,this.ge=0}setRowFromOutputLine(t,s){const i=l.st(s);this._s.ue(t,i)}setRow(t,s){this._s.ue(t,s)}setPageFromOutputLines(t,s){const i=l.it(t);void 0!==s&&(i[0]=this.Ce(s)),this.setPageRows(i)}setPageRows(t){this._s.fe(),this._s.Ie(t)}Ce(t){return(t=l.st(t)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(A[at[this.oe]]),this.oe++,4==this.oe&&(this.oe=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(t,s){const i=l.tt(t,this.ee.atob);void 0!==s&&(i[0]=this.Ce(s)),this.setPageRows(i)}ae(){this.ee.addEventListener("ttx.reveal",(()=>this.he.Ks())),this.ee.addEventListener("ttx.mix",(()=>this.he.$s())),this.ee.addEventListener("ttx.subtitlemode",(()=>this.he.ni()))}toggleReveal(){this.he.Ks()}toggleMixMode(){this.he.$s()}toggleBoxMode(){this.he.ni()}toggleGrid(){this.he.Xs()}setLevel(t){this._s.Ee(t)}addTo(t){this.Be=t,this.he.ut(t)}setFont(t){this.he.Zs(t)}clearScreen(t){this._s.fe(),this._s.de(t)}setAspectRatio(t){if("natural"==t)return void this.he.ii(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this.he.ii(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this.he.ei(s),this.Ae=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this._s.Qe(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this._s.ye(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this._s.be(t,s)}remove(){if(this.he.Is(),this.Be){const t=document.querySelector(this.Be);t&&t.removeChild(t.firstChild)}this.he=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this.he=new ot(this._s,this.ee);break;case"classic__graphic-for-mosaic":this.he=new rt(this._s,this.re.ne,this.ee);break;default:throw Error("setView E126: bad view name:"+t)}this.Ae&&this.he.ei(this.Ae),this.Be&&this.he.ut(this.Be),this._s.ie()}registerViewPlugin(t){t.registerWithView(this.he),this._s.ie()}enhance(){return new ht(this._s)}}class lt{constructor(t){this.pe=t,this.me=[]}ls(t){return this.me.push(t),this.me.length-1}ie(t){this.me.forEach((s=>null!=s&&s(this.pe,t)))}Is(t){this.me[t]=null}}class gt{constructor(){this.we=!1,this.Se=[]}get Ns(){return this.we}set Ns(t){this.we=t}xe(t){this.Se.push(t)}ws(t){if(t>=this.Se.length)throw Error("RowModel.getCell E20 bad cell index");return this.Se[t]}}const At=[M[1.5],M[2.5]],_t=new class{constructor(){this.Ue=[];for(let t=0;t<25;t++){const t=[];for(let s=0;s<40;s++)t.push(new it);this.Ue.push(t)}this.ve="g0_latin",this.ke=null,this.Re="g2_latin",this.Fe=D.charFromAttribute(D.START_BOX),this.Le=M[1],this.De=[],this.As=new lt(this)}ie(){this.As.ie()}ue(t,s){if(t>=25)throw Error("PageModel E29 bad row number");this.Ge(t,s),this.As.ie()}Ie(t){(t=t.slice(0,25)).forEach(((t,s)=>{this.Ge(s,t)})),this.As.ie()}Ge(t,s){let i=[...s];if(i=i.slice(0,40),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.Ue[t][i].Ni=s})),i.length<40)for(let s=i.length;s<40;s++)this.Ue[t][s].Ni=" "}Ee(t){this.Le=t,this.As.ie()}de(t){if(void 0===t||t){const t=[];for(let s=0;s<25;s++)t.push("");this.Ie(t)}else for(let t=0;t<25;t++)this.Ge(t,"")}Qe(t,s){this.ve=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in W?this.Re=t:"hebrew"==i[1]&&(this.Re="g2_arabic")}s&&this.As.ie()}ye(t,s){this.ke=t,s&&this.As.ie()}be(t,s){this.Re=t,s&&this.As.ie()}Qs(t){if(t>=25)throw Error("PageModel.getRow E42 bad rowNum");const s=new gt;let i,e,n=U.Mt,r=x.WHITE,h=!1,o=N.Jt,a=!1,c=!1,l=!1,g=!1,A=x.BLACK,_=U.qt,u={ji:!1,Vs:" ",ks:U.qt},C=[];return At.includes(this.Le)&&(C=this.De.filter((s=>s.te==t))),this.Ue[t].forEach(((E,I)=>{const f=E.Ni,B=((t,s)=>{let i=null,e=null;return s in G&&q[this.Le].includes(s.charCodeAt(0))?s in F?(i=D.TEXT_COLOUR,e=G[s]):s in j?(i=D.MOSAIC_COLOUR,e=G[s]):i=G[s]:s.charCodeAt(0)<=31&&(i=D.Zt),{Ne:i,Oe:e}})(0,f);switch(i=r,E.ks=n,E.Fs=g,e=a,B.Ne!=D.STEADY&&(E.Gs=h),B.Ne!=D.NORMAL_SIZE&&(E.ft=o),B.Ne!=D.CONCEAL&&(E.Ys=c),l&&(B.Ne!=D.HOLD_MOSAICS&&(u.ji=!1,u.Vs=" "),l=!1),B.Ne){case D.TEXT_COLOUR:n=U.Mt,r=B.Oe,c=!1,E.Hi(u);break;case D.MOSAIC_COLOUR:n=_,r=B.Oe,c=!1,E.Hi(u);break;case D.NEW_BACKGROUND:A=i,E.Hi(u);break;case D.BLACK_BACKGROUND:A=x.BLACK,E.Hi(u);break;case D.CONTIGUOUS_GRAPHICS:_=U.qt,E.ks==U.Tt&&(E.ks=U.qt),n==U.Tt&&(n=U.qt),E.Hi(u);break;case D.SEPARATED_GRAPHICS:_=U.Tt,E.ks==U.qt&&(E.ks=U.Tt),n==U.qt&&(n=U.Tt),E.Hi(u);break;case D.ESC:this.ke&&(a=!e),E.Hi(u);break;case D.FLASH:h=!0,E.Hi(u);break;case D.STEADY:E.Gs=!1,h=!1,E.Hi(u);break;case D.NORMAL_SIZE:E.ft=N.Jt,o=N.Jt,E.Hi(u);break;case D.DOUBLE_HEIGHT:o=N.Vt,s.Ns=!0,E.Hi(u);break;case D.DOUBLE_WIDTH:o=N.Yt,E.Hi(u);break;case D.DOUBLE_SIZE:o=N.Kt,s.Ns=!0,E.Hi(u);break;case D.CONCEAL:E.Ys=!0,c=!0,E.Hi(u);break;case D.HOLD_MOSAICS:u.ji=!0,E.Hi(u);break;case D.RELEASE_MOSAICS:l=!0,E.Hi(u);break;case D.START_BOX:I>=1&&this.Ue[t][I-1].Ni==this.Fe&&(E.Fs=!0,g=!0),E.Hi(u);break;case D.END_BOX:g=!1,E.Hi(u);break;case D.Zt:E.Hi(u);break;default:E.Oi(e?this.ke:this.ve),E.Pi()&&(u.Vs=f,u.ks=E.ks)}E.Us=i,E.Ss=A,C.filter((t=>t.$i==I)).forEach((t=>{const s=new et(E);E=s,"g0"==t.ks?(E.Ni=t.Vs,E.Mi=t.Mi,E.ks=U.Mt,E.Oi(e?this.ke:this.ve)):"g1"==t.ks?this.Le==M[2.5]&&(E.Ni=t.Vs,E.ks=_,E.Oi()):"g2"==t.ks?(E.Ni=t.Vs,E.ks=U.Mt,E.Oi(this.Re)):"g3"==t.ks?(this.Le!=M[1.5]||-1!="Q[\\]".indexOf(t.Vs))&&(E.Ni=t.Vs,E.ks=U.zt,E.Oi()):"char"==t.ks&&(E.qi=t.Vs,E.ks=U.Mt)})),s.xe(E)})),s}se(t){this.De=t}fe(){this.De=[]}};class ut{constructor(t){this.je="string"==typeof t?t:"./",this.Pe=null,this.He=null}async fetchPage(t){const s=t.match(/^([1-8])[0-9A-Fa-f]{2}$/);if(null==s)return null;const i=s[1];if(t=t.toUpperCase(),this.Pe!=i){const t=`${this.je}${i}.json`;try{const s=await fetch(t);if(s.ok){const t=await s.json();"pages"in t&&(this.He=t,this.Pe=i)}}catch(t){}}return this.Pe==i&&t in this.He.pages?this.He.pages[t]:null}}const Ct=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Et=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class It{constructor(t){this.Me=t}qe(){const t=new Date;return{"%%a":Ct[t.getDay()],"%%b":Et[t.getMonth()],"%d":(t.getDate()+"").padStart(2,0),"%e":(t.getDate()+"").padStart(2," "),"%m":(t.getMonth()+1+"").padStart(2," "),"%y":(t.getFullYear()+"").substring(2,2),"%H":(t.getHours()+"").padStart(2,0),"%M":(t.getMinutes()+"").padStart(2,0),"%S":(t.getSeconds()+"").padStart(2,0)}}Te(t){const s=this.qe();let i=this.Me;for(const t of Object.keys(s))i=i.replace(t,s[t]);return void 0!==t&&(i=i.replace("%%#",t)),i}}class ft{constructor(t){if("object"!=typeof t)throw Error("E8 Service.constructor: options object required");if(!("DOMSelector"in t))throw Error("E9 Service.constructor DOMSelector property required");this.Ve="caster"in t?t.caster:null,this.Xe="defaultG0Charset"in t?t.defaultG0Charset:"g0_latin",this.ze=new It("header"in t?t.header:" %%# %%a %e %%b C%H:%M/%S"),this.Je="fetcher"in t?t.fetcher:new ut(t.baseURL),this.Ye=new ct(_t,void 0),this.Ye.setDefaultG0Charset(this.Xe),this.Ye.setLevel(M[1.5]),this.Ye.addTo(t.DOMSelector),this.$e=null,this.Ke=null,this.Ze=0,this.We=null}get teletextInstance(){return this.Ye}async showPage(t){if("number"==typeof t&&(t+=""),null==t.match(/^[1-8][0-9A-Fa-f]{2}$/))return null;const s=await this.Je.fetchPage(t);if(null!=s){const i=this.tn(s);if(null!=i)return this.$e=s,this.Ke=t,this.Ze=i,this.sn(),this.en()}return null}showLink(t){return null!=this.We&&t in this.We?this.showPage(this.We[t]):Promise.resolve(null)}tn(t){const s=t.subpages;for(let t=0;t<s.length;t++)if(null!=s[t])return t;return null}nextSubPage(){const t=this.$e.subpages;let s=this.Ze,i=!1;for(;!i&&(s++,s==t.length&&(s=0),s!=this.Ze);)null!=t[s]&&(i=!0);return i&&(this.Ze=s,this.sn()),this.en()}previousSubPage(){const t=this.$e.subpages;let s=this.Ze,i=!1;for(;!i&&(s--,-1==s&&(s=t.length-1),s!=this.Ze);)null!=t[s]&&(i=!0);return i&&(this.Ze=s,this.sn()),this.en()}en(){return{pageNumber:this.Ke,subPage:this.Ze,numSubPages:this.$e.subpages.filter((t=>null!=t)).length,fastext:this.We,webUrl:"webUrl"in this.$e?this.$e.webUrl:null}}sn(){const t=this.$e.subpages[this.Ze],s="encoding"in t?t.encoding:this.Xe,i=this.ze.Te(this.Ke);let e={defaultG0Charset:s,header:i};if(this.Ye.clearScreen(!1),this.Ye.setDefaultG0Charset(s,!1),"outputLines"in t){const s=t.outputLines.split("\n");this.Ye.setPageFromOutputLines(s,i),e.outputLines=s}else if("packed"in t){const s=t.packed;this.Ye.loadPageFromEncodedString(s,i),e.packed=s}else e=null;e&&this.Ve&&this.Ve.display(e),this.We="fastext"in t?t.fastext:null}}class Bt{constructor(t){this.t=t,this.i=[]}attach(t){this.i.push(t)}notify(t){this.i.forEach(((s,i)=>this.i[i](this.t,t)))}}const Qt=new class{constructor(){this.available=new Bt(this),this.castStateChanged=new Bt(this)}o(){if("undefined"==typeof cast)return;const t={receiverApplicationId:"000F65B3",autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED};this.h=cast.framework.CastContext.getInstance(),this.h.setOptions(t),this.l=new cast.framework.RemotePlayer,this.u=new cast.framework.RemotePlayerController(this.l),this.h.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,(()=>this.castStateChanged.notify())),this.available.notify(),this.castStateChanged.notify()}async display(t){if(!this.m())return;const s=this.g();this.u.stop();const i=new chrome.cast.media.MediaInfo("https://teletextforchromecast.tech-and-software.ltd.uk/250-milliseconds-of-silence.mp3","audio/mpeg3");i.entity=t;const e=new chrome.cast.media.LoadRequest(i);try{await s.loadMedia(e)}catch(t){}}getCastState(){return this.h.getCastState()}clearScreen(){this.p("clear")}toggleGrid(){this.p("grid")}toggleReveal(){this.p("reveal")}toggleMixMode(){this.p("mix")}toggleBoxMode(){this.p("box")}setSmoothMosaics(){this.p("smoothmosaic")}setBlockMosaics(){this.p("blockmosaic")}async p(t){if(!this.m())return;const s=this.g();try{await s.sendMessage("urn:x-cast:uk.ltd.techandsoftware.teletext",`"${t}"`)}catch(t){}}m(){return"object"==typeof this.l&&this.l.isConnected}g(){return this.h.getCurrentSession()}};let dt=0;function bt(){window.setTimeout((()=>{"undefined"==typeof cast?(dt++,dt<10&&bt()):Qt.o()}),500)}window.__onGCastApiAvailable=t=>{t&&("undefined"==typeof cast?bt():Qt.o())};const yt=["sans-serif","Bedstead","native","serif","Unscii","monospace","cursive"],mt=["classic__graphic-for-mosaic","classic__font-for-mosaic"];class pt{constructor(t){const s={defaultG0Charset:"g0_latin__english",header:"FAXFAX %%# %%a %e %%b C%H:%M/%S",caster:Qt,DOMSelector:"#teletextscreen"};let i="",e=!1;if("object"==typeof t){for(const i of["defaultG0Charset","header","DOMSelector","baseURL"])i in t&&(s[i]=t[i]);"frontPage"in t&&("number"==typeof t.frontPage?i=t.frontPage+"":"string"==typeof t.frontPage&&(i=t.frontPage)),"smoothMosaics"in t&&t.smoothMosaics&&(e=!0)}""==i&&(i="100"),this.nn=new ft(s),this.Ke=3==i.length?i:"XXX",this.rn=0,this.hn=0,Qt.available.attach((()=>this.on.call(this))),Qt.castStateChanged.attach((()=>this.an.call(this))),this.cn(),e&&this.ln(),this.gn()}an(){const t=Qt.getCastState(),s=document.querySelector("#castOuter");switch(t){case"NO_DEVICES_AVAILABLE":s.title="Cast to Chromecast - no devices available",s.style.cursor="default";break;case"NOT_CONNECTED":s.title="Cast to Chromecast",s.style.cursor="pointer";break;case"CONNECTING":break;case"CONNECTED":this.gn(),this.An&&Qt.setSmoothMosaics()}}on(){document.querySelector("#castOuter").style.display="inline-block"}cn(){window.addEventListener("keydown",(t=>wt.call(this,t))),window.addEventListener("DOMContentLoaded",(()=>{document.querySelector("#revealButton").addEventListener("click",(()=>this._n())),document.querySelector("#mixButton").addEventListener("click",(()=>this.un()));for(const t of["red","green","yellow","blue","index"])document.querySelector("#"+t).addEventListener("click",(()=>this.Cn(t)));document.querySelectorAll("[data-num]").forEach((t=>t.addEventListener("click",(()=>this.En(t.dataset.num))))),document.querySelector("#left").addEventListener("click",(()=>this.In())),document.querySelector("#right").addEventListener("click",(()=>this.fn())),document.querySelector("#helpicon").addEventListener("click",(()=>this.Bn()))}))}_n(){window.dispatchEvent(new Event("ttx.reveal")),Qt.toggleReveal()}un(){window.dispatchEvent(new Event("ttx.mix")),Qt.toggleMixMode()}En(t){this.Ke=3==(this.Ke+"").length?t:this.Ke+""+t,this.Qn(),3==(this.Ke+"").length&&this.gn()}Qn(){document.querySelector("#pageNumber").innerHTML=this.Ke}dn(){this.Ke="XXX",document.querySelector("#pageNumber").innerHTML="- - -",document.querySelector("#subpage").style.visibility="hidden"}async gn(){if(null!=this.Ke.match(/[1-8][0-9A-Fa-f]{2}/)){const t=await this.nn.showPage(this.Ke);this.sn(t)}}fn(){const t=this.nn.nextSubPage();this.sn(t)}In(){const t=this.nn.previousSubPage();this.sn(t)}sn(t){null!=t&&(this.Ke=t.pageNumber,this.Qn(),this.bn(t),this.yn(t),this.mn(t.webUrl),this.pn())}pn(){document.activeElement.disabled&&document.activeElement.blur()}bn(t){const s=document.querySelector("#subpage");null!=t&&t.numSubPages>1?(s.innerHTML=`${t.subPage} of ${t.numSubPages}`,s.style.visibility="visible",document.querySelectorAll("#lrnav button").forEach((t=>t.disabled=!1))):(s.style.visibility="hidden",document.querySelectorAll("#lrnav button").forEach((t=>t.disabled=!0)))}yn(t){const s=null!=t?t.fastext:{};for(const t of["red","green","yellow","blue","index"]){let i=!0;null!=s&&t in s&&(i=!1),document.querySelector("#"+t).disabled=i}}mn(t){const s=document.querySelector("#webicon");null==t?(s.style.display="none",s.href=""):(s.href=t,s.style.display="")}async Cn(t){const s=await this.nn.showLink(t);this.sn(s)}wn(){for(const t of["red","green","yellow","blue","index","left","right"])document.querySelector("#"+t).disabled=!0}Bn(){this.dn(),this.wn();const t=this.nn.teletextInstance;t.setDefaultG0Charset("g0_latin__english",!1),t.loadPageFromEncodedString("OoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA6RQIECBAgQYOHDhw4cOHDhw4cOHDhw4cOHBAgQIECBAgQIDo0igQIECBBqAy8vnFvw8siDHv3dOW_ZzI_2qBAgQIECBAgQIECBAgQIEHdAgQIECBAgQIECDjz9IECBAgQIECBAgQIECA6RQIECBAgQIl69evXr169evXr169evXr169KgQIECBAgQIDqBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOhECCTmQed_VBow9sqDCg15fOLfh5ZFiDrzyoOmjKgQIECA6EQIN3Xbiy8kGvL55oMO7Ig6aMqDXl880GLLs390CBAgQIDoFAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOlNSNGjRo0aNGjRo0aNGjRo0aNGjRo0aNGjRo0aNGjR_2iA6U1BECBA_QIECCll7ZcOxAgQIECBAgQIECBAUQIECBB_aoDpTUEQIEG1AgQIJunwgQIECBAgQIECBAgQIEBRAgQIEH9qgOlNQRAgQW0CBAgocsvbTv680HPri4Yc-VAgQFECBAgQf2qA6U1BECBBdQIECCdl8dEHPri4Yc-VAgQIECAogQIECBB_aoDpTUE5L86_yvxIIe_Zv68kGLr06b93NAgQIEBRAgQIEH9qgOlNQRAgQaUCBAgk7smXwgxdenTfuQIECBAgQFECBAgQf2qA6U1BECBB0QIECCpl5ctObTjQZ-WHho04-aDfuX782Yp_aoDpTUEQIEGZAgQII2_d0Qc--npj0IECBAgQIEBRAgQIEH9qgOlNQRAgQekCBAgtZdyDbvyZUG_cv35syBAgQFECBAgQf2qA6U1IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBB_aoDpREvXr169evXr169evXr169evXr169evXr169evXr169KgOoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA6gQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIDqBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA")}Sn(){const t=Math.floor(360*Math.random()),s=Math.floor(360*Math.random());document.body.style.background=`linear-gradient(${s}deg, hsl(${t} 100% 7%) 0%, hsl(${t} 83% 52%) 86%, hsl(${t} 100% 85%) 100%)`}async ln(){if(this.An)this.nn.teletextInstance.setView(mt[this.hn]),this.An=!1,Qt.setBlockMosaics();else if(0==this.hn)try{const t=await import("https://cdn.jsdelivr.net/npm/@techandsoftware/teletext-plugin-smooth-mosaic@latest/dist/teletext-plugin-smooth-mosaic.min.js");this.nn.teletextInstance.registerViewPlugin(t.SmoothMosaicPlugin),this.An=!0,Qt.setSmoothMosaics()}catch(t){}}vn(){document.body.classList.toggle("zen")}}function wt(t){if(!(t.altKey||t.metaKey||t.ctrlKey))switch(t.key){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"0":document.querySelector("#b"+t.key).focus({preventScroll:!0}),this.En(t.key);break;case"?":this._n();break;case"m":this.un();break;case"f":this.rn++,this.rn==yt.length&&(this.rn=0),this.nn.teletextInstance.setFont(yt[this.rn]);break;case"w":this.nn.teletextInstance.clearScreen();break;case"h":this.Bn();break;case"v":this.hn++,this.hn==mt.length&&(this.hn=0),this.nn.teletextInstance.setView(mt[this.hn]),this.An=!1;break;case"t":this.ln();break;case"r":this.Cn("red");break;case"g":this.Cn("green");break;case"y":this.Cn("yellow");break;case"b":this.Cn("blue");break;case"i":this.Cn("index");break;case"=":case"+":case">":case"ArrowRight":this.fn();break;case"-":case"<":case"ArrowLeft":this.In();break;case"c":this.Sn();break;case"z":this.vn()}}export{ft as TeletextService,pt as TeletextServiceViewer};//# sourceMappingURL=teletext-service.min.js.map
const t=new Set(["Uint1Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","UInt32Array","Float32Array","Float64Array"]),s=Uint8Array,i=Symbol();class e{constructor(t,{length:i=null,buffer:e=null,byteOffset:n=0,byteLength:r=null}={}){let h;e?i=8*(r||e.byteLength):i||(i=0);const o=s.BYTES_PER_ELEMENT,a=8*o,c=a-1,l=(t=>{let s=0;for(;t>>=1;)s++;return s})(a),g=Math.max(1,i+c>>l);e?h=new s(e,n,g):(e=new ArrayBuffer(o*g),h=new s(e)),Object.assign(this,{buffer:e,byteOffset:n,length:i,wordSize:a,wordCount:g,wordSizeMask:c,wordSizeShift:l,internal:h})}toArray(){const t=new Uint8Array(this.length);for(let s=0;s<this.wordCount;s++){const i=this.internal[s];for(let e=s*this.wordSize;e<(s+1)*this.wordSize;e++)t[e]=this.getBit(e,i)}return t}getBit(t,s){if(!(t>=this.length))return null==s&&(s=this.internal[t>>this.wordSizeShift]),s>>(t&this.wordSizeMask)&1}setBit(t,s){if(t>=this.length)return;const i=t>>this.wordSizeShift,e=t&this.wordSizeMask,n=this.internal[i];let r=n;return r|=s<<e,r&=~((1&~s)<<e),n!==r&&(this.internal[i]=r),s}}class n{constructor(t,s=0,n=null){let h,l,g;switch(c(t)){case"Number":h=t=~~t,l=new e(this,{length:h});break;case"ArrayBuffer":l=new e(this,{buffer:t,byteOffset:s,byteLength:n});break;case"Undefined":case"Null":case"RegExp":case"Infinity":h=0,l=new e(this,{length:h});break;case"Array":case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"UInt32Array":case"Float32Array":case"Float64Array":case"Uint1Array":case"Object":default:g=o(t),l=new e(this,{length:g.length}),g.forEach(((t,s)=>l.setBit(s,a(t))))}return this[i]=l,new r(this)}static get BYTES_PER_ELEMENT(){return.125}static get name(){return"Uint1Array"}static get length(){return 0}static get[Symbol.species](){return this}static[Symbol.hasInstance](t){return t.__proto__=this}static from(t){const s=o(t);return new n(s)}static of(...t){return n.from(t)}get buffer(){return this[i].buffer}get byteLength(){return this.length+7>>3}get byteOffset(){return this[i].byteOffset}get length(){return this[i].length}get[Symbol.toStringTag](){return"Uint1Array"}copyWithin(t,s=0,i=this.length){if(!Number.isInteger(t))return this;const e=new Uint8Array(i-s);for(let t=s;t<i;t++)e[t-s]=this[t];return this.set(e,t),this}entries(){return this[i].toArray().entries()}every(...t){return this[i].toArray().every(...t)}fill(t,s=0,i=this.length){for(let e=s;e<i;e++)this[e]=t;return this}filter(...t){return new n(this[i].toArray().filter(...t))}find(...t){return this[i].toArray().find(...t)}findIndex(...t){return this[i].toArray().findIndex(...t)}forEach(...t){this[i].toArray().forEach(...t)}includes(...t){return this[i].toArray().includes(...t)}indexOf(...t){return this[i].toArray().indexOf(...t)}join(...t){return this[i].toArray().join(...t)}keys(...t){return this[i].toArray().keys(...t)}lastIndexOf(...t){return this[i].toArray().lastIndexOf(...t)}map(...t){return new n(this[i].toArray().map(...t))}reduce(...t){return this[i].toArray().reduce(...t)}reduceRight(...t){return this[i].toArray().reduceRight(...t)}reverse(){const t=this[i].toArray().reverse();return this.set(t),this}set(s,i=0){if(!Number.isInteger(i))return;const e=c(s);if("Array"!==e&&!t.has(e))return;const n=Math.min(s.length+i,this.length);s=s.map((t=>a(t)));for(let t=i;t<n;t++)this[t]=s[t-i]}slice(...t){return new n(this[i].toArray().slice(...t))}sort(...t){const s=this[i].toArray().sort(...t);return this.set(s),this}subarray(...t){return new n(this[i].toArray().subarray(...t))}values(...t){return this[i].toArray().values(...t)}toLocaleString(...t){return Array.from(this).toLocaleString()}toString(){return""+Array.from(this)}[Symbol.iterator](){return this[i].toArray()[Symbol.iterator]()}valueOf(){return this}toJSON(){return Array.from(this)}}function r(t){const s=t[i];return new Proxy(t,{get(i,e,n){const r="string"==typeof e?parseInt(e):e;return Number.isInteger(r)?s.getBit(r):Reflect.get(t,e)},set(i,e,n,r){const h="string"==typeof e?parseInt(e):e;return Number.isInteger(h)?(s.setBit(h,a(n)),!0):Reflect.set(t,e,n)}})}const h=/\[object (\w+)]/;function o(t){const s=[];for(let i of t){const t=a(i);s.push(t)}return s}function a(t){return"number"!=typeof t||Number.isNaN(t)?new Boolean(t).valueOf():t%2}function c(t){const s=t&&t.constructor?t.constructor.name:null,i=h.exec(Object.prototype.toString.call(t))[1];return i!==s&&s?s:i}class l{static tt(t,s){const i=(t=t.replace(/-/g,"+").replace(/_/g,"/")).length%4;if(i){if(1===i)throw Error("Utils.decodeBase64URLEncoded E16: Input base64url string is the wrong length to determine padding");t+=Array(5-i).join("=")}const e=[...s(t)].map((t=>(t=>{if(t in g)return g[t];const s=[...t.charCodeAt(0).toString(2).padStart(8,"0")].reverse();return g[t]=Number.parseInt(s.join(""),2),g[t]})(t))),r=new ArrayBuffer(e.length);return new Uint8Array(r).set(e),(t=>{const s=[];for(let i=0;i<25;i++){const e=[];for(let s=0;s<40;s++){let n=6,r=0;const h=280*i+7*s;for(let s=h;s<h+7;s++)r+=t[s]*Math.pow(2,n),n--;e.push(String.fromCharCode(r))}s.push(e.join(""))}return s})(new n(r))}static st(t){const s=[];let i=!1;for(const e of[...t]){const t=e.charCodeAt(0);27==t?i=!0:t>=128&&t<=159?(s.push(String.fromCharCode(t-128)),i=!1):t>=160?(s.push(""),i=!1):i?(s.push(String.fromCharCode(t-64)),i=!1):s.push(e)}return s}static it(t){const s=[],i=/^OL,(\d{1,2}),(.*)/;for(const e of[...t]){const t=e.match(i);null!=t&&(s[t[1]]=l.st(t[2]))}return s}static et(t){return-1!="ﻰﺋﺊﭼﭽﭘﭙﮔﻎﻼﻬﻪﻊﺔﺒﺘﺎﺑﺗﺛﺟﺣﺧﺳﺷﺻﺿﻃﻇﻋﻏﺜﺠﺤﺨـﻓﻗﻛﻟﻣﻧﻫﻰﻳﻴﻌﻐﻔﻘﻠﻤﻨ".indexOf(t)}}const g={},A={ENGINEERING:"QIECBAgQIIcWLGg2EDdy3QIKnXKgYtUE7f2QA2TB0wYr2DECAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYMS54fzJmix4-YCDToOLOjyZ0WLSkzo6AkcGHuZUcRHlB4dgyAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAQAEABAAWDP9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YNCho9zImSoAqBGoAp0FUy8-iChhz5UCA4MPEuZYgTAFyAFg1_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2DYCAAoACACeQHkBdYTJlixIkSKlSJEoUKIEBQABAAQAEABYN_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39g4AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGDn9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_YsAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIBix_f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f2LICAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAYs_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_39i0AgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgAIACAAgGLX9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9__f_3_9_Ytq-jT0yg7OXZs39w0Pzh3Ao_LLl3BZuHPl3dMIGllyBIWzrlLmkKJGTSJUycsoUqlZJYtXLzLBiyZlWjVs3IuHLp2UePXz9AgQokaBIlTJ0ChSqVoFi1cvQMGLJmgaNWzdA4cunaB49fP0ECDChoIkWNHQSJMqWgmTZ09BQo0qaCpVrV0FizatoLl29fQYMOLGgyZc2dBo06taDZt3b0HDjy5oOnXt3QePPr2g-ff38pgw4sZHJlzZyujTq1ktm3dvNcOPLmW6de3cn48-vZf59_fwZiHv3Y8uHYIjbMPPQDVCxcLf4E0-mXDk8mI-_dlFCn5a9_DKr6q-qvqr6q-qvqr6AFS390DJoGQKr6q-qvqr6q-qvqr6o",ADVERT:"QIECBAgQIJ9KDDmRUDZi3QU8PRk1QQeHIHDaIEDJiwYumDACdDwcnbLy6aeeXbl3dECBAgQIECBAgQIECBAgQIHwZkvcoCx0og8LNGjYwQPEjzpoWaNjBA82YHnTQwabEjTpowPEiBAgLHSiBbs1atjFA9SPe2pZqQNUHX1qQatSlrqQNW-5UsaIECAsdKIFidUqQJUCVAlVKlipchQJUCJanVIEqpAlSqlC5CgQIEB0ogQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQHSKBAgQYEH7ogQaGCApw_fEm54R3PCm5JuSKHoFUEVIECAudIoECBB6-___TB-_v0JTU_WqkZHFyQKHmjYgYBECpAqQIC50igQIEH___3_-iD__6FFSAig-IP6JCg26lzRr3avEgFUgLnSKBAg1f1X9lv_9NSBAgI6G-HX1V_EqBUqQJUqXBzagVSAudIoECD9_Qa2qL__6IMDzoq682qdAgQIEARAgQIECBAgVIC50igQIP_9AiaoFX__0VfV_1kjQIECBAgQBECBAgAoECpAgLnSKBBq__0CBCgQa___oreokCBAgQIECBAgQBECBAgVIECAudIoEHr__QIECBAg3_36FAgQIECBAgQIECAIgQIFSBAgQIAZ0igQf_7dAgKIECAinKf9bTR9QIv-N6i_ofzNagQIECBAgJnSKDR__tUBRAoe6NiBB_XYf_rqg_q2iD-gRb-iBAgQIECAmdIoNX_-1QFECDrq9IMH9h664P_D-w34P7DZ4ToECBAgQICZ0ig___5TQ8SfEHzQ82MPCzpoedEHzA82MPjDQ0-LNDSk0JnSOD___lNXVh_Qf9T3cx_oP-prqa_1S3Y0_q_zX-s1NdTUmdI6v_9-U1NUH9B_1NdTX-g_6mvpL_wMNTX-g1Nf6DAz1tSZ0j-_v0JREjQokaFEhRIUSNCiRoUCNAjRoEaBEhRo0CNGgBnSP9OgQFECCNPpIIVKfDkVaUWmggzoiCFPny5M6PTQIECAGdIjUAGlJnR0DBu5coGrFm0YMEE-kgpxYqChBjxUDNuwQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy92np007s6AFSy9tOXvzQA7O_ryQTd-7L5DQVtpBJ3ZMvg",UK:"QIECBAgQIIcWLGg2EDFy2QIJu_cgZNUETLjQA2TN0xYr2DAodJIECBAgQIEGDB4_PUCBAgQIECBAgQIECBAgQIEANkvaMih0kgQIECDA1Qfv__OgQYGCBAgQIECBAgQIECBAgQIECBAgKHSSBAgQIH6FR-__-v7___oECBAgQIEAORPmxUE6LXpoECAodJIECBAoQKum7______9-gQIECBAgQA82_Zs39-aB8-QIAh0kgQIECBAgSev_____v06BAgQIECBAgQIECBAgQIECBAgKHSSBAgQIECBR00____-_w9GCBAgQIECBAgQIECBAgQIECAodJIECBAgQIECD8rx________ECBAgQIECBAgQIECBAgQICh0kgQIECBAgQLETRlv_______6oECBAgQIECBAgQIECBAgKHSyBAgQIHGQlwYIEH_-_x_____9-dECBAgQIECBAgQIECAIdLIECDAmJbfz_-0RJ0qBV________7sECBAgQIECBAgQIAh0sgQIMzAl-__fX5Sg0JECvX______586IECBAgQIECBAgCHSyBAgwJiW9OjX_0qBAgQIEX________-l8fPjBAgQIECAIdLIEHBYhQIECBQxQICWDhg5fv____________tUCBAgQIAh0sgzIECBAgQIEGlAgQEtP_______________-lQIECBAgCHSyBUwQIECBAgQakCBASQqv_____________-6FAgQIECAIdLIECJygQIECBAgaoEBJBg______________5-OiBAgQIAh0sgQKGKBAgQIEHBKgJIMH7____8v__________QoECBAgCHSyBRmQIECBA4RoECAkgVoVaNel________r16FAgQIECAIdLINCFAgwOEyBAgQICSBAgQePn7___r06RAgQIECBAgQIAh0sgQLeKxCgQIECBAgJIECDR__v0aNGhQIECBAgQIECBAgCHSSBAgQIECBAgQIECBAgQYP3_-1QIECBAgQIECBAgQIECAIdJIECBAgQIECBAgQIECBB6boUSBAgQIECBAgQIECBAgQIAh0kgQIECBAgQIECBAgQIFStAgQIECBAgQIECBAgQIECBAgAzsvjognZe_MFIy4cmzTuy8wdTfwQU-G_l0DVKy-lhyad6A",SPLASH:"QIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECAsaMIEGDx8YIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQICxowg0N2bdmgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgLGjCBFvz9_6BAZQIECBAgQIECAig0NECBAgQIECBAgQIECAsaMcOD5tjyoGCBAgQIECBAgQICLhCgQIECBAgQIECBAgQICxowoTod79ArSEcHBAgQIECBAg0ITKBAgQcGCBAgQIECBAgLGjCBBgXIUCAyRXmlLBAgQIECBuZ4fPn___aoECBAgQIECBAaQIECBAgQIEBFAgQaTPDh8-f___-vXo9f9qgQIECBAgQIECBAgQIEBFAgQcOHz5____69ejRoECBAg__0CBAgQIECBAgQIECBAgQEUCL___r16NGXQIOHDh8-NCOD-3QIECBAgQIECBAgQIECBARQINf0ug-fPi9evRo0aBAgI6v6VAgQIECBAgQIECBAgQIEBFAgRf2hfBw4cOHD58-fPiAj-_oECBAgQIECBAgQIECBAgQEUCBBr-l0SNGjRo0CBAgQEcH9qgQIECBAgQIECBAgQIECBARQIECL-0Lr169ev-fPnxAR1f0KBAgQIECBAgQIAiBAgQIEBFAgQINf3hw4cOCBAgQIEBH-_QIECBAgQIECBAgCIECBAgQIEB1ARRL1-_____________7VAgOIECBAgQIECAIgQIECBAgQHUBNAgQf26BAgQIN_8ijRoECA4gQIECBAgQIAiBAgQIECA6gQE0CDV_QoECBAgRf2iBAgQIEBxAgQIECBAgCIECBAgQIDqBAgQE0aFAgQIECBAgQIECBAgQHECBAgQIECAIgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIBp0Kg3cNqDSggdMuPRh3ZOe_N074eWVf0y7MvTL46IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQKMalAyYMmKCplx6ECZBT35unfDyyoJnTIuQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA"},_="http://www.w3.org/2000/svg";let u,C,E=0;class I{constructor(){}rt(){return this.nt}ht(){this.nt=null}_t(t,s){if("object"==typeof t)for(const s in t)null==t[s]?this.nt.removeAttribute(s):this.nt.setAttribute(s,t[s]);else{if(void 0===s)return this.nt.getAttribute(t);null==s?this.nt.removeAttribute(t):this.nt.setAttribute(t,s)}return this}ot(t){if(!this.at(t)){const s=this.lt();s.push(t),this.nt.setAttribute("class",s.join(" "))}return this}at(t){return-1!==this.lt().indexOf(t)}lt(){const t=this.nt.getAttribute("class");return null==t?[]:t.split(" ")}At(t){return this.at(t)&&this.nt.setAttribute("class",this.lt().filter((s=>s!==t)).join(" ")),this}ct(t){return this.at(t)?this.At(t):this.ot(t),this}gt(t,s){if("object"==typeof t)for(const s in t)null==t[s]?delete this.nt.dataset[s]:this.nt.dataset[s]=t[s];else{if(void 0===s)return this.nt.dataset[t];null==s?delete this.nt.dataset[t]:this.nt.dataset[t]=s}return this}}class f extends I{constructor(t){return super(),u=t,C=u.document,this.nt=C.createElementNS(_,"svg"),this.nt.setAttribute("xmlns",_),this}ut(t){const s=C.querySelector(t);if(!s)throw Error("@techandsoftware/teletext: E117: addTo failed to match provided selector");return s.appendChild(this.nt),this}Ct(t){return this.nt.setAttribute("viewBox",t),this}ft(t,s){return this.nt.setAttribute("width",t),this.nt.setAttribute("height",s),this}It(t){const s=C.createElementNS(_,"style");return s.append(t),this.nt.append(s),this}Et(){const t=new B;return this.nt.append(t.rt()),t}Bt(){return this.nt.clientWidth}dt(){return this.nt.clientHeight}Qt(t){const s=new y(t);return this.nt.append(s.rt()),s}}class B extends I{constructor(){return super(),this.nt=C.createElementNS(_,"g"),this.yt=[],this}Et(){const t=new B;return this.nt.append(t.rt()),this.yt.push(t),t}bt(t){const s=new m(t);return this.nt.append(s.rt()),this.yt.push(s),s}wt(){const t=new p;return this.nt.append(t.rt()),t}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}xt(){return this.yt[this.yt.length-1]}Ut(){return this.yt}vt(t){return this.nt.setAttribute("clip-path",`url("#${t.rt().id}")`),this}kt(){return this.nt.removeAttribute("clip-path"),this}Rt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null,this.yt.forEach((t=>t.ht())),this.yt=[]}Ft(t,s,i,e){const n=new v(t,s,i,e);return this.nt.append(n.rt()),this.yt.push(n),n}Lt(t){const s=new b(t);return this.nt.append(s.rt()),this.yt.push(s),s}Dt(t,s){const i=new d(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}Gt(t,s){const i=new Q(t,s);return this.nt.append(i.rt()),this.yt.push(i),i}}class Q extends I{constructor(){return super(),this.nt=C.createElementNS(_,"svg"),this}attr(...t){return this._t(...t)}get node(){return this.rt()}}class d extends I{constructor(t,s){return super(),this.nt=C.createElementNS(_,"image"),this.nt.setAttribute("width",parseInt(t)),this.nt.setAttribute("height",parseInt(s)),this}attr(...t){return this._t(...t)}}class b extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"use"),this.nt.setAttribute("href","#"+t),this}Nt(t){return this.nt.setAttribute("fill",t),this}Ot(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}}class y extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"symbol"),this.nt.setAttribute("id",t),this}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),i}}class m extends I{constructor(t){return super(),this.nt=C.createElementNS(_,"text"),this.nt.append(t),this}bt(t){return this.nt.textContent=t,this}Nt(t){return this.nt.setAttribute("fill",t),this}}class p extends I{constructor(){return super(),this.nt=C.createElementNS(_,"defs"),this}Ht(){const t=new w;return this.nt.append(t.rt()),t}jt(t){return[...this.nt.querySelectorAll(t)].map(k)}St(t,s){const i=new S(t,s);return this.nt.append(i.rt()),i}}class w extends I{constructor(){return super(),this.nt=C.createElementNS(_,"clipPath"),this.nt.setAttribute("id","clipPath-"+E),E++,this}Ut(){return[...this.nt.children].map(k)}Pt(t){this.nt.appendChild(t.rt())}}class S extends I{constructor(t,s){if(super(),t instanceof u.SVGElement)return this.nt=t,this;const i=t;return this.nt=C.createElementNS(_,"rect"),this.nt.setAttribute("width",parseInt(i)),this.nt.setAttribute("height",parseInt(s)),this}Nt(t){return this.nt.setAttribute("fill",t),this}Ot(t,s){return this.nt.setAttribute("x",t),this.nt.setAttribute("y",s),this}Bt(t){return void 0===t?parseInt(this.nt.getAttribute("width")):(this.nt.setAttribute("width",parseInt(t)),this)}dt(t){return void 0===t?parseInt(this.nt.getAttribute("height")):(this.nt.setAttribute("height",parseInt(t)),this)}Rt(){this.nt.parentNode&&this.nt.parentNode.removeChild(this.nt),this.nt=null}}class v extends I{constructor(t,s,i,e){return super(),this.nt=C.createElementNS(_,"line"),this.nt.setAttribute("x1",t),this.nt.setAttribute("y1",s),this.nt.setAttribute("x2",i),this.nt.setAttribute("y2",e),this}}function k(t){let s;switch(t.constructor.name){case"SVGRectElement":s=new S(t);break;default:throw Error("SVG:wrapSVGElement Unable to wrap SVG element of type "+t.constructor.name)}return s}const x={BLACK:Symbol(),RED:Symbol(),GREEN:Symbol(),YELLOW:Symbol(),BLUE:Symbol(),MAGENTA:Symbol(),CYAN:Symbol(),WHITE:Symbol()};Object.freeze(x);const U={Mt:Symbol(),qt:Symbol(),Tt:Symbol(),zt:Symbol()};Object.freeze(U);const N={Jt:Symbol(),Vt:Symbol(),Yt:Symbol(),Kt:Symbol()};Object.freeze(N);class D{static charFromTextColour(t){if(t in L)return L[t];throw Error("Attributes.charFromTextColour: bad colour: "+t)}static charFromGraphicColour(t){if(t in P)return P[t];throw Error("Attributes.charFromGraphicColour: bad colour")}static charFromAttribute(t){if(t in H)return H[t];throw Error("Attributes.charFromAttribute: bad attribute")}}function O(t){return R[t]}D.TEXT_COLOUR=U.Mt,D.MOSAIC_COLOUR=Symbol(),D.NEW_BACKGROUND=Symbol(),D.BLACK_BACKGROUND=Symbol(),D.CONTIGUOUS_GRAPHICS=U.qt,D.SEPARATED_GRAPHICS=U.Tt,D.ESC=Symbol(),D.FLASH=Symbol(),D.STEADY=Symbol(),D.NORMAL_SIZE=N.Jt,D.DOUBLE_HEIGHT=N.Vt,D.DOUBLE_WIDTH=N.Yt,D.DOUBLE_SIZE=N.Kt,D.CONCEAL=Symbol(),D.HOLD_MOSAICS=Symbol(),D.RELEASE_MOSAICS=Symbol(),D.START_BOX=Symbol(),D.END_BOX=Symbol(),D.Zt=Symbol();const R={[x.BLACK]:"#000",[x.RED]:"#f00",[x.GREEN]:"#0f0",[x.YELLOW]:"#ff0",[x.BLUE]:"#00f",[x.MAGENTA]:"#f0f",[x.CYAN]:"#0ff",[x.WHITE]:"#fff"};Object.freeze(R);const F={"\0":x.BLACK,"":x.RED,"":x.GREEN,"":x.YELLOW,"":x.BLUE,"":x.MAGENTA,"":x.CYAN,"":x.WHITE};Object.freeze(F);const j={"":x.BLACK,"":x.RED,"":x.GREEN,"":x.YELLOW,"":x.BLUE,"":x.MAGENTA,"":x.CYAN,"":x.WHITE};Object.freeze(j);const G={"\b":D.FLASH,"\t":D.STEADY,"\n":D.END_BOX,"\v":D.START_BOX,"\f":D.NORMAL_SIZE,"\r":D.DOUBLE_HEIGHT,"":D.DOUBLE_WIDTH,"":D.DOUBLE_SIZE,"":D.CONCEAL,"":D.CONTIGUOUS_GRAPHICS,"":D.SEPARATED_GRAPHICS,"":D.ESC,"":D.BLACK_BACKGROUND,"":D.NEW_BACKGROUND,"":D.HOLD_MOSAICS,"":D.RELEASE_MOSAICS},L={};for(const t in F)L[F[t]]=t,G[t]=F[t];Object.freeze(L);const P={};for(const t in j)P[j[t]]=t,G[t]=j[t];Object.freeze(P),Object.freeze(G);const H={};for(const t in G)H[G[t]]=t;Object.freeze(H);const M={0:Symbol(),1:Symbol(),1.5:Symbol(),2.5:Symbol()};Object.freeze(M);const q={};q[M[0]]=[1,2,3,4,5,6,7,8,9,17,18,19,20,21,22,23],q[M[1]]=[...q[M[0]]].concat([10,11,12,13,24,25,26,27,28,29,30,31]),q[M[1.5]]=[...q[M[1]]].concat([0,16]),q[M[2.5]]=[...q[M[1.5]]].concat([14,15]),Object.freeze(q);const T={Xt:{Wt:10.4,$t:-5.2},ts:{Wt:10,$t:-4.5}};Object.freeze(T);class V{constructor(t,s){this.ss=new f(s).Ct("0 0 400 250").ft(600,500)._t({preserveAspectRatio:"none",style:"font-family: sans-serif"}).It("@font-face {\nfont-family: 'Unscii';\nsrc: url('fonts/unscii-16.woff') format('woff'), \nurl('fonts/unscii-16.ttf') format('truetype'),\nurl('fonts/unscii-16.otf') format('opentype');\nunicode-range: U+0000-00FF, U+2022, U+2500, U+2502, U+250C, U+2510, U+2514, U+2518, U+251C, U+251D, U+2524, U+2525, U+252C, U+252F, U+2534, U+2537, U+253C, U+253F, U+2588, U+258C, U+2590, U+2592, U+25CB, U+25CF, U+25E2-25E5, U+2B60-2B63, U+E0C0-E0FF, U+1FB00-1FB70, U+1FB75, U+1FBA0-1FBA7;\n-webkit-font-smoothing: none;\nfont-smooth: never;\n}\n@font-face {\nfont-family: 'Bedstead';\nsrc: url('fonts/bedstead.otf') format('opentype');\nunicode-range: U+0000-00FF;\n}\n@keyframes blink {\nto {\nvisibility: hidden;\n}\n}\n@keyframes fancyblink {\nfrom {\nfilter: none;\nopacity: 0.7;\n}\n33% {\nfilter: none;\nopacity: 1;\n}\n66% {\nfilter: blur(0px);\nopacity: 1;\n}\n95% {\nfilter: blur(4px);\nopacity: 0;\n}\nto {\nfilter: blur(0px);\nopacity: 0;\n}\n}\n#textlayer {\nfont-size: 10px;\n}\n.mosaic {\nfont-family: 'Unscii';\nfont-size: 10.3px;\n}\n.mosaic_separated {\nfont-family: 'Unscii';\nfont-size: 10px;\n}\n.flash_flashing .flash {\n/* animation: blink 2s steps(3, start) infinite; */\nanimation: fancyblink 2s linear infinite;\n}\n.conceal_concealed .conceal {\nvisibility: hidden;\n}\nsvg #background {\ntransition-property: opacity;\ntransition-duration: 0.25s;\n}\nsvg {\nbackground-color: transparent;\n}\nsvg use {\nshape-rendering: crispEdges;\n}\nrect { color: orange; }\n"),this.d=this.ss.Et()._t("class","conceal_concealed flash_flashing"),this.es=1.2,this.rs(),this.ns(),this.hs=null,this._s=t,this.os=this._s.As.ls((()=>this.cs())),this.gs=!1,this.us=!1,this.Cs=!1,this.fs={}}ut(t){this.ss.ut(t)}Is(){this._s.As.Is(this.os),this.os=null}cs(){let t=!1,s=!1;this.Cs=!1,this.d.At("flash_flashing"),this.Es.forEach(((i,e)=>{let n=!1;if(this.Bs(e),t)return t=!1,void this.ds(i,e);const r=this._s.Qs(e);let h,o;i.forEach(((t,i)=>{if(n)return n=!1,this.ys(t),this.bs(e),void(o&&this.ps());const a=r.ws(i),c=O(a.Ss),l=a.xs(),g=O(a.Us),A=this.vs(a.ks,l,a.et);this.Rs(t,a,A,g,i,e,l),a.Fs&&(o?this.ps():this.Ls(e,i),this.Cs=!0),h==c?this.bs(e):this.Ds(e,i,c),a.ft!=N.Yt&&a.ft!=N.Kt||(n=!0),h=c,o=a.Fs,a.Gs&&(s=!0)})),r.Ns?(this.Os(e),this.Hs(),t=!0):t=!1,this.js(e)})),"Ps"in this.fs&&this.fs.Ps(this.ss.Bt(),this.ss.dt()),this.d.ot("conceal_concealed"),s&&setTimeout((()=>this.d.ot("flash_flashing")),100),this.Ms()}Bs(t){this.qs(t),this.Ts(t)}ds(t,s){"zs"in this.fs&&this.fs.zs(t.length,s),t.forEach((t=>this.ys(t)))}ys(t){t.bt(" ")._t({dx:null,dy:null,textLength:null,lengthAdjust:null,"text-anchor":null,transform:null,class:null})}Rs(t,s,i,e,n,r,h){this.Js(t,s,i,e,n,r),s.ks==U.qt&&h||s.ks==U.zt?t.ot("mosaic"):s.ks==U.Tt&&h&&t.ot("mosaic_separated")}Js(t,s,i,e,n,r){t.bt(s.Vs)._t(i).Nt(e),s.ft==N.Vt?t._t("transform",`translate(0 ${K(r)}) scale(1 2)`):s.ft==N.Yt?t._t("transform",`translate(${Z(n)} 0) scale(2 1)`):s.ft==N.Kt&&t._t("transform",`translate(${Z(n)} ${K(r)}) scale(2 2)`),s.Gs&&t.ot("flash"),s.Ys&&t.ot("conceal")}Ks(){this.d.ct("conceal_concealed")}Zs(t){let s=t;"native"==t?s='-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif':"default"==t&&(s="sans-serif"),this.ss._t("style","font-family: "+s)}Xs(){this.hs?(this.hs.Rt(),this.hs=null):this.Ws()}$s(){this.us?(this.us=!1,this.ti._t("opacity",null).kt()):(this.us=!0,this.si())}ii(t){this.es=t,this.ei(this.ss.dt())}ei(t){this.ss.ft("natural"==this.es?1.6*t:t*this.es,t)}si(){this.gs&&this.Cs?this.ti._t("opacity",.3):this.Cs?this.ti.vt(this.ri)._t("opacity",.3):this.ti._t("opacity",0)}Ms(){this.us&&this.si()}ni(){this.gs?(this.d.kt(),this.gs=!1):(this.d.vt(this.ri),this.gs=!0),this.Ms()}Ws(){this.hs=this.d.Et();for(let t=0;t<25;t++)this.hs.Ft(0,10*t,399,10*t)._t({stroke:"#555","stroke-width":.5});for(let t=0;t<40;t++)this.hs.Ft(10*t,0,10*t,249)._t({stroke:"#555","stroke-width":.5})}ns(){this.hi=this.d.wt(),this._i=null,this.ri=this.hi.Ht()}rs(){this.oi(),this.ai()}oi(){const t=this.d.Et();t._t({"shape-rendering":"crispEdges",id:"background"}),this.li=[],this.ti=t}ai(){const t=[],s=this.d.Et()._t({"text-anchor":"middle",fill:"#fff"})._t("id","textlayer");for(let i=0;i<25;i++){const e=[];for(let t=0;t<40;t++)e.push(s.bt(String.fromCharCode(32+95*Math.random()))._t({x:10*t+5,y:10*i+8}));t.push(e)}this.Es=t,this.Ai=s}Ts(t){this.ri.Ut().filter((s=>s.gt("r")==t)).forEach((t=>t.Rt()))}qs(t){this.li[t]&&this.li[t].Rt(),this.li[t]=this.ti.Et()}bs(t){const s=this.li[t].xt(),i=s.Bt();s.Bt(i+10)}Ds(t,s,i){const e=10*s,n=10*t;this.li[t].St(10,10).Nt(i).Ot(e,n)}ps(){const t=this._i.Bt();this._i.Bt(t+10)}Os(t){this.li[t].Ut().forEach((t=>t._t("height",20)))}Hs(){this.hi.jt("[data-boxbuffer]").forEach((t=>t.dt(20)))}Ls(t,s){const i=10*s,e=10*t;this._i=this.hi.St(10,10).gt("boxbuffer",!0).Ot(i,e)}js(t){this.hi.jt("[data-boxbuffer]").forEach((s=>{s.gt({r:t,boxbuffer:null}),this.ri.Pt(s)}))}vs(t,s,i){return t==U.qt&&s||t==U.zt?{dx:T.Xt.$t,dy:-.15,textLength:T.Xt.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:t==U.Tt&&s?{dx:T.ts.$t,dy:null,textLength:T.ts.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?10:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}registerPlugin(t,s){return"renderBackground"in s&&(this.fs.ci=s.renderBackground),"renderMosaic"in s&&(this.fs.gi=s.renderMosaic),"endOfPageUpdate"in s&&(this.fs.Ps=s.endOfPageUpdate),"clearCellsForRow"in s&&(this.fs.zs=s.clearCellsForRow),{lookupColour:X,isDoubleHeight:z,isDoubleWidth:J,isDoubleSize:Y,isSeparatedMosaic:$,createImageOverlay:this.ui.bind(this),createSVGOverlay:this.Ci.bind(this)}}ui(){const t=this.d.Dt(400,250);return t._t("preserveAspectRatio","none"),t}Ci(){const t=this.d.Gt();return t._t("preserveAspectRatio","none"),t}}V.fi=10,V.Ii=10,V.Ei=20,V.Bi=20,V.di=400,V.Qi=250,V.yi=T,V.ROWS=25,V.COLS=40;const X=t=>O(t),z=t=>t==N.Vt,J=t=>t==N.Yt,Y=t=>t==N.Kt,$=t=>t==U.Tt,K=t=>0-10*t,Z=t=>0-10*t,W={g0_latin:{$:"¤","":"■"},g0_latin__czech_slovak:{"#":"#",$:"ů","@":"č","[":"ť","\\":"ž","]":"ý","^":"í",_:"ř","`":"é","{":"á","|":"|","}":"ú","~":"š"},g0_latin__english:{"#":"£",$:"$","@":"@","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"—","{":"¼","|":"‖","}":"¾","~":"÷"},g0_latin__estonian:{"#":"#",$:"õ","@":"Š","[":"Ä","\\":"Ö","]":"Ž","^":"Ü",_:"Õ","`":"š","{":"ä","|":"ö","}":"ž","~":"ü"},g0_latin__french:{"#":"é",$:"ï","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"#","`":"è","{":"â","|":"ô","}":"û","~":"ç"},g0_latin__german:{"#":"#",$:"$","@":"§","[":"Ä","\\":"Ö","]":"Ü","^":"^",_:"_","`":"°","{":"ä","|":"ö","}":"ü","~":"ß"},g0_latin__italian:{"#":"£",$:"$","@":"é","[":"°","\\":"ç","]":"→","^":"↑",_:"#","`":"ù","{":"à","|":"ò","}":"è","~":"ì"},g0_latin__latvian_lithuanian:{"#":"#",$:"$","@":"Š","[":"ė","\\":"ę","]":"Ž","^":"č",_:"ū","`":"š","{":"ą","|":"ų","}":"ž","~":"į"},g0_latin__polish:{"#":"#",$:"ń","@":"ą","[":"Ƶ","\\":"Ś","]":"Ł","^":"ć",_:"ó","`":"ę","{":"ż","|":"ś","}":"ł","~":"ź"},g0_latin__portuguese_spanish:{"#":"ç",$:"$","@":"¡","[":"á","\\":"é","]":"í","^":"ó",_:"ú","`":"¿","{":"ü","|":"ñ","}":"è","~":"à"},g0_latin__romanian:{"#":"#",$:"¤","@":"Ț","[":"Â","\\":"Ș","]":"Ă","^":"Î",_:"ı","`":"ț","{":"â","|":"ș","}":"ă","~":"î"},g0_latin__serbian_croatian_slovenian:{"#":"#",$:"Ë","@":"Č","[":"Ć","\\":"Ž","]":"Đ","^":"Š",_:"ë","`":"č","{":"ć","|":"ž","}":"đ","~":"š"},g0_latin__swedish_finnish_hungarian:{"#":"#",$:"¤","@":"É","[":"Ä","\\":"Ö","]":"Å","^":"Ü",_:"_","`":"é","{":"ä","|":"ö","}":"å","~":"ü"},g0_latin__turkish:{"#":"₺",$:"ğ","@":"İ","[":"Ş","\\":"Ö","]":"Ç","^":"Ü",_:"Ğ","`":"ı","{":"ş","|":"ö","}":"ç","~":"ü"},g2_latin:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"µ",6:"¶",7:"·",8:"÷",9:"’","!":"¡",'"':"¢","#":"£","%":"¥","&":"#","'":"§","(":"¤",")":"‘","*":"“","+":"«",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"»","<":"¼","=":"½",">":"¾","?":"¿","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"—",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"α",Y:null,Z:null,"[":null,"\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"Ω",a:"Æ",b:"Ð",c:"ª",d:"Ħ",e:null,f:"IJ",g:"Ŀ",h:"Ł",i:"Ø",j:"Œ",k:"º",l:"Þ",m:"Ŧ",n:"Ŋ",o:"ʼn",p:"ĸ",q:"æ",r:"đ",s:"ð",t:"ħ",u:"ı",v:"ij",w:"ŀ",x:"ł",y:"ø",z:"œ","{":"ß","|":"þ","}":"ŧ","~":"ŋ","":"■"},g0_greek:{"<":"«",">":"»","@":"ΐ",A:"Α",B:"Β",C:"Γ",D:"Δ",E:"Ε",F:"Ζ",G:"Η",H:"Θ",I:"Ι",J:"Κ",K:"Λ",L:"Μ",M:"Ν",N:"Ξ",O:"Ο",P:"Π",Q:"Ρ",R:"ʹ",S:"Σ",T:"Τ",U:"Υ",V:"Φ",W:"Χ",X:"Ψ",Y:"Ω",Z:"Ϊ","[":"Ϋ","\\":"ά","]":"έ","^":"ή",_:"ί","`":"ΰ",a:"α",b:"β",c:"γ",d:"δ",e:"ε",f:"ζ",g:"η",h:"θ",i:"ι",j:"κ",k:"λ",l:"μ",m:"ν",n:"ξ",o:"ο",p:"π",q:"ρ",r:"ς",s:"σ",t:"τ",u:"υ",v:"φ",w:"χ",x:"ψ",y:"ω",z:"ϊ","{":"ϋ","|":"ό","}":"ύ","~":"ώ","":"■"},g2_greek:{0:"°",1:"±",2:"²",3:"³",4:"×",5:"m",6:"n",7:"p",8:"÷",9:"’","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"”",";":"t","<":"¼","=":"½",">":"¾","?":"x","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"¹",R:"®",S:"©",T:"™",U:"♪",V:"₠",W:"‰",X:"ɑ",Y:"Ί",Z:"Ύ","[":"Ώ","\\":"⅛","]":"⅜","^":"⅝",_:"⅞","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_cyrillic:{"@":"Ю",A:"А",B:"Б",C:"Ц",D:"Д",E:"Е",F:"Ф",G:"Г",H:"Х",I:"И",J:"Ѝ",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",Q:"Я",R:"Р",S:"С",T:"Т",U:"У",V:"Ж",W:"В",X:"Ь",Z:"З","[":"Ш","]":"Щ","^":"Ч","`":"ю",a:"а",b:"б",c:"ц",d:"д",e:"е",f:"ф",g:"г",h:"х",i:"и",j:"ѝ",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",q:"я",r:"р",s:"с",t:"т",u:"у",v:"ж",w:"в",x:"ь",z:"з","{":"ш","}":"щ","~":"ч","":"■"},g0_cyrillic__russian_bulgarian:{"&":"ы",Y:"Ъ","\\":"Э",_:"Ы",y:"ъ","|":"э"},g0_cyrillic__serbian_croatian:{"@":"Ч",J:"Ј",Q:"Ќ",V:"В",W:"Ѓ",X:"Љ",Y:"Њ","[":"Ћ","\\":"Ж","]":"Ђ","^":"Ш",_:"Џ","`":"ч",j:"ј",q:"ќ",v:"в",w:"ѓ",x:"љ",y:"њ","{":"ћ","|":"ж","}":"ђ","~":"ш"},g0_cyrillic__ukranian:{"&":"ї",Y:"І","\\":"Є",_:"Ї",y:"і","|":"є"},g2_cyrillic:{0:"m",1:"n",2:"p",3:"t",4:"x",5:"x",6:"°",7:"±",8:"²",9:"³","!":"a",'"':"b","#":"£",$:"e","%":"h","&":"i","'":"§","(":":",")":"‘","*":"“","+":"k",",":"←","-":"↑",".":"→","/":"↓",":":"¼",";":"½","<":"¾","=":"÷",">":"’","?":"”","@":" ",A:"̀",B:"́",C:"̂",D:"̃",E:"̄",F:"̆",G:"̇",H:"̈",I:"̣",J:"̊",K:"̧",L:"̲",M:"̋",N:"̨",O:"̌",P:"?",Q:"©",R:"®",S:"¹",T:"ɑ",U:"Ί",V:"Ύ",W:"Ώ",X:"‰",Y:"₠",Z:"™","[":"⅛","\\":"⅜","]":"⅝","^":"⅞",_:"♪","`":"C",a:"D",b:"F",c:"G",d:"J",e:"L",f:"Q",g:"R",h:"S",i:"U",j:"V",k:"W",l:"Y",m:"Z",n:"Ά",o:"Ή",p:"c",q:"d",r:"f",s:"g",t:"j",u:"l",v:"q",w:"r",x:"s",y:"u",z:"v","{":"w","|":"y","}":"z","~":"Έ","":"■"},g0_arabic:{"#":"£","&":"ﻰ","'":"ﻱ","(":")",")":"(",";":"؛","<":">",">":"<","?":"؟","@":"ﺔ",A:"ﺀ",B:"ﺒ",C:"ﺏ",D:"ﺘ",E:"ﺕ",F:"ﺎ",G:"ﺍ",H:"ﺑ",I:"ﺓ",J:"ﺗ",K:"ﺛ",L:"ﺟ",M:"ﺣ",N:"ﺧ",O:"ﺩ",P:"ﺫ",Q:"ﺭ",R:"ﺯ",S:"ﺳ",T:"ﺷ",U:"ﺻ",V:"ﺿ",W:"ﻃ",X:"ﻇ",Y:"ﻋ",Z:"ﻏ","[":"ﺜ","\\":"ﺠ","]":"ﺤ","^":"ﺨ",_:"#","`":"ـ",a:"ﻓ",b:"ﻗ",c:"ﻛ",d:"ﻟ",e:"ﻣ",f:"ﻧ",g:"ﻫ",h:"ﻭ",i:"ﻰ",j:"ﻳ",k:"ﺙ",l:"ﺝ",m:"ﺡ",n:"ﺥ",o:"ﻴ",p:"ﻯ",q:"ﻌ",r:"ﻐ",s:"ﻔ",t:"ﻑ",u:"ﻘ",v:"ﻕ",w:"ﻙ",x:"ﻠ",y:"ﻝ",z:"ﻤ","{":"ﻡ","|":"ﻨ","}":"ﻥ","~":"ﻻ","":"■"},g2_arabic:{0:"٠",1:"١",2:"٢",3:"٣",4:"٤",5:"٥",6:"٦",7:"٧",8:"٨",9:"٩","!":"ﻉ",'"':"ﺁ","#":"ﺃ",$:"ﺅ","%":"ﺇ","&":"ﺋ","'":"ﺊ","(":"ﭼ",")":"ﭽ","*":"ﭺ","+":"ﭘ",",":"ﭙ","-":"ﭖ",".":"ﮊ","/":"ﮔ",":":"ﻎ",";":"ﻍ","<":"ﻼ","=":"ﻬ",">":"ﻪ","?":"ﻩ","@":"à","[":"ë","\\":"ê","]":"ù","^":"î",_:"ﻊ","`":"é","{":"â","|":"ô","}":"û","~":"ç","":"■"},g0_hebrew:{"#":"£","[":"←","\\":"½","]":"→","^":"↑",_:"#","`":"א",a:"ב",b:"ג",c:"ד",d:"ה",e:"ו",f:"ז",g:"ח",h:"ט",i:"י",j:"ך",k:"כ",l:"ל",m:"ם",n:"מ",o:"ן",p:"נ",q:"ס",r:"ע",s:"ף",t:"פ",u:"ץ",v:"צ",w:"ק",x:"ר",y:"ש",z:"ת","{":"₪","|":"‖","}":"¾","~":"÷","":"■"},g1_block_mosaic_to_unicode__legacy_computing:{0:"🬏",1:"🬐",2:"🬑",3:"🬒",4:"🬓",5:"▌",6:"🬔",7:"🬕",8:"🬖",9:"🬗"," ":" ","!":"🬀",'"':"🬁","#":"🬂",$:"🬃","%":"🬄","&":"🬅","'":"🬆","(":"🬇",")":"🬈","*":"🬉","+":"🬊",",":"🬋","-":"🬌",".":"🬍","/":"🬎",":":"🬘",";":"🬙","<":"🬚","=":"🬛",">":"🬜","?":"🬝","`":"🬞",a:"🬟",b:"🬠",c:"🬡",d:"🬢",e:"🬣",f:"🬤",g:"🬥",h:"🬦",i:"🬧",j:"▐",k:"🬨",l:"🬩",m:"🬪",n:"🬫",o:"🬬",p:"🬭",q:"🬮",r:"🬯",s:"🬰",t:"🬱",u:"🬲",v:"🬳",w:"🬴",x:"🬵",y:"🬶",z:"🬷","{":"🬸","|":"🬹","}":"🬺","~":"🬻","":"█"},g1_block_mosaic_to_unicode__unscii_separated:{0:"",1:"",2:"",3:"",4:"",5:"",6:"",7:"",8:"",9:""," ":" ","!":"",'"':"","#":"",$:"","%":"","&":"","'":"","(":"",")":"","*":"","+":"",",":"","-":"",".":"","/":"",":":"",";":"","<":"","=":"",">":"","?":"","`":"",a:"",b:"",c:"",d:"",e:"",f:"",g:"",h:"",i:"",j:"",k:"",l:"",m:"",n:"",o:"",p:"",q:"",r:"",s:"",t:"",u:"",v:"",w:"",x:"",y:"",z:"","{":"","|":"","}":"","~":"","":""},g3:{0:"🭇",1:"🭈",2:"🭉",3:"🭊",4:"🭋",5:"◢",6:"🭌",7:"🭍",8:"🭎",9:"🭏"," ":"🬼","!":"🬽",'"':"🬾","#":"🬿",$:"🭀","%":"◣","&":"🭁","'":"🭂","(":"🭃",")":"🭄","*":"🭅","+":"🭆",",":"🭨","-":"🭩",".":"🭰","/":"▒",":":"🭐",";":"🭑","<":"🭪","=":"🭫",">":"🭵","?":"█","@":"┷",A:"┯",B:"┝",C:"┥",D:"🮤",E:"🮥",F:"🮦",G:"🮧",H:"🮠",I:"🮡",J:"🮢",K:"🮣",L:"┿",M:"•",N:"●",O:"○",P:"│",Q:"─",R:"┌",S:"┐",T:"└",U:"┘",V:"├",W:"┤",X:"┬",Y:"┴",Z:"┼","[":"→","\\":"←","]":"↑","^":"↓",_:" ","`":"🭒",a:"🭓",b:"🭔",c:"🭕",d:"🭖",e:"◥",f:"🭗",g:"🭘",h:"🭙",i:"🭚",j:"🭛",k:"🭜",l:"🭬",m:"🭭",n:null,o:null,p:"🭝",q:"🭞",r:"🭟",s:"🭠",t:"🭡",u:"◤",v:"🭢",w:"🭣",x:"🭤",y:"🭥",z:"🭦","{":"🭧","|":"🭮","}":"🭯","~":null,"":null}},tt={};class st{constructor(t){this.type=t.ks,this.flashing=t.Gs,this.concealed=t.Ys,this.size=t.ft,this.sextants=t.bi()}}class it{constructor(){this.pi=" ",this.mi=" ",this.wi=x.WHITE,this.Si=x.BLACK,this.xi=U.Mt,this.Ui=!1,this.vi=N.Jt,this.ki=!1,this.Ri=!1,this.Fi=null,this.Li=!1,this.Di=null,this.Gi=null}set Ni(t){this.pi=t}get Ni(){return this.pi}set Us(t){this.wi=t}get Us(){return this.wi}set Ss(t){this.Si=t}get Ss(){return this.Si}get et(){return this.Li}Oi(t){const s=this.xi==U.qt||this.xi==U.Tt;this.xi==U.Mt||0==(32&this.pi.charCodeAt(0))&&s?(this.mi=nt(this.pi,t),this.Di>0&&(this.mi+=W.g2_latin[String.fromCharCode(this.Di+64)]),this.Li=!1,"g0_arabic"!=t&&"g2_arabic"!=t||(this.Li=l.et(this.mi))):this.xi==U.qt?this.mi=nt(this.pi,"g1_block_mosaic_to_unicode__legacy_computing"):this.xi==U.Tt?this.mi=nt(this.pi,"g1_block_mosaic_to_unicode__unscii_separated"):this.xi==U.zt&&(this.mi=nt(this.pi,"g3")),this.Fi=null}Hi(t){if(this.xi!=U.qt&&this.xi!=U.Tt||!t.ji)this.Fi=null,this.mi=" ";else{this.Fi=t.Vs,this.xi=t.ks;let s="g1_block_mosaic_to_unicode__legacy_computing";this.xi==U.Tt&&(s="g1_block_mosaic_to_unicode__unscii_separated"),this.mi=nt(t.Vs,s)}}get Vs(){return this.mi}get ks(){return this.xi}set ks(t){this.xi=t}set Gs(t){this.Ui=t}get Gs(){return this.Ui}get ft(){return this.vi}set ft(t){this.vi=t}set Ys(t){this.ki=t}get Ys(){return this.ki}set Fs(t){this.Ri=t}get Fs(){return this.Ri}xs(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.pi.charCodeAt(0);return t<=127&&32==(32&t)}Pi(){const t=this.pi.charCodeAt(0);return(this.xi==U.qt||this.xi==U.Tt)&&t<=127&&32==(32&t)}bi(){const t=null!=this.Fi?this.Fi.charCodeAt(0):this.pi.charCodeAt(0);if(t>127)return null;if(t in tt)return tt[t];let s=t-32;return s>=64&&(s-=32),tt[t]=[...s.toString(2).padStart(6,"0")].reverse(),tt[t]}}class et extends it{constructor(t){super(),Object.assign(this,t)}set Mi(t){this.Di=t}get Mi(){return this.Di}set qi(t){this.Gi=t}get Vs(){return null==this.Gi?this.mi:this.Gi}}function nt(t,s){if(!(s in W))throw Error("Cell getCharWithEncoding: bad encoding: "+s);if(t in W[s])return W[s][t];const i=s.match(/^(.+)__/);if(null!=i){const e=i[1];if(t in W[e])return W[s][t]=W[e][t],W[e][t]}return t}class rt extends V{constructor(t,s,i){super(t,i),this.Ti=s,this.zi=new Set}rs(){super.rs(),this.Ji=[],this.Vi=this.d.Et()}Bs(t){super.Bs(t),this.Yi(t)}Rs(t,s,i,e,n,r,h){"ci"in this.fs&&this.fs.ci(r,n,s.ft,s.Ss),s.ks!=U.Mt&&s.ks!=U.zt&&h?h&&(t.bt(" ")._t(i),this.Ki(r,n,s,e)):(this.Js(t,s,i,e,n,r),s.ks==U.zt&&t.ot("mosaic"))}Ki(t,s,i,e){if("gi"in this.fs){const n=new st(i);if(this.fs.gi(t,s,n,e))return}const n=i.bi();if(!n.includes("1"))return;let r=i.ks==U.qt?"c":"s";r+=n.join("");let h,o=V.fi,a=V.Ii;if(i.ks==U.qt&&(o=V.fi+.3,a=V.Ii+.2),!this.zi.has(r)){this.zi.add(r);const t=this.ss.Qt(r);if(i.ks==U.qt){t._t({preserveAspectRatio:"none",width:o,height:a,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(6,6).Ot(s%2*6,6*Math.floor(s/2))}else{t._t({preserveAspectRatio:"none",width:o,height:a,viewBox:"0 0 12 18"});for(let s=0;s<6;s++)"1"==n[s]&&t.St(4,4).Ot(s%2*6+1,6*Math.floor(s/2)+2)}}h=i.ks==U.qt?this.Ji[t].Lt(r).Ot(s*V.fi-.15,t*V.Ii-.1).Nt(e):this.Ji[t].Lt(r).Ot(s*V.fi,t*V.Ii).Nt(e),this.Ti&&h._t({width:o,height:a}),i.ft!=N.Vt&&i.ft!=N.Kt||h._t("height",V.Bi),i.ft!=N.Yt&&i.ft!=N.Kt||h._t("width",V.Ei),i.Gs&&h.ot("flash"),i.Ys&&h.ot("conceal")}Yi(t){this.Ji[t]&&this.Ji[t].Rt(),this.Ji[t]=this.Vi.Et()}vs(t,s,i){return t==U.zt?{dx:V.yi.Xt.$t,dy:-.15,textLength:V.yi.Xt.Wt,lengthAdjust:"spacingAndGlyphs","text-anchor":"start",transform:null,class:null}:{dx:null,dy:null,textLength:i?V.fi:null,lengthAdjust:i?"spacingAndGlyphs":null,"text-anchor":null,transform:null,class:null}}}class ht{constructor(t){this._s=t,this.Zi=0,this.Xi=0,this.Wi=[]}pos(t,s){return(t=parseInt(t))<0||t>39||(s=parseInt(s))<0||s>24||(this.Zi=t,this.Xi=s),this}putG0(t,s){let i=null;if(void 0!==s){const t=parseInt(s);t>=0&&t<=15&&(i=t)}const e=t.charCodeAt(0);return e<32||e>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g0",Vs:t,Mi:i}),this}putG1(t){const s=t.charCodeAt(0);return s<32||s>127||s>=64&&s<=95||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g1",Vs:t}),this}putG2(t){const s=t.charCodeAt(0);return s<32||s>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g2",Vs:t}),this}putG3(t){const s=t.charCodeAt(0);return s<32||s>127||this.Wi.push({$i:this.Zi,te:this.Xi,ks:"g3",Vs:t}),this}putAt(){return this.Wi.push({$i:this.Zi,te:this.Xi,ks:"char",Vs:"@"}),this}end(){return this._s.se(this.Wi),this._s.ie(),this}}class ot extends V{}const at=["SPLASH","ENGINEERING","ADVERT","UK"];class ct{constructor(t,s){if(this.ee=null,"object"==typeof window&&(this.ee=window),this.re={ne:!0},"object"==typeof s&&("webkitCompat"in s&&!s.webkitCompat&&(this.re.ne=!1),"dom"in s&&(this.ee=s.dom)),null==this.ee)throw Error("TeletextController E24: No window dom object available");this.he=new rt(t,this.re.ne,this.ee),this._s=t,this._e=1,this.oe=0,this.ae(),this.le=null,this.Ae=null,this.ce=0,this.ge=0}setRowFromOutputLine(t,s){const i=l.st(s);this._s.ue(t,i)}setRow(t,s){this._s.ue(t,s)}setPageFromOutputLines(t,s){const i=l.it(t);void 0!==s&&(i[0]=this.Ce(s)),this.setPageRows(i)}setPageRows(t){this._s.fe(),this._s.Ie(t)}Ce(t){return(t=l.st(t)).join("").substring(0,32).padStart(40," ")}showTestPage(){this.loadPageFromEncodedString(A[at[this.oe]]),this.oe++,4==this.oe&&(this.oe=0)}showRandomisedPage(){const t=[];for(let s=0;s<25;s++){const s=[];for(let t=0;t<40;t++)s.push(String.fromCharCode(127*Math.random()));t.push(s.join(""))}this.setPageRows(t)}loadPageFromEncodedString(t,s){const i=l.tt(t,this.ee.atob);void 0!==s&&(i[0]=this.Ce(s)),this.setPageRows(i)}ae(){this.ee.addEventListener("ttx.reveal",(()=>this.he.Ks())),this.ee.addEventListener("ttx.mix",(()=>this.he.$s())),this.ee.addEventListener("ttx.subtitlemode",(()=>this.he.ni()))}toggleReveal(){this.he.Ks()}toggleMixMode(){this.he.$s()}toggleBoxMode(){this.he.ni()}toggleGrid(){this.he.Xs()}setLevel(t){this._s.Ee(t)}addTo(t){this.Be=t,this.he.ut(t)}setFont(t){this.he.Zs(t)}clearScreen(t){this._s.fe(),this._s.de(t)}setAspectRatio(t){if("natural"==t)return void this.he.ii(t);const s=parseFloat(t);if(Number.isNaN(s))throw Error("E80 setAspectRatio: bad number");this.he.ii(s)}setHeight(t){const s=parseFloat(t);if(Number.isNaN(s))throw Error("E98 setHeight: bad number");this.he.ei(s),this.Ae=s}setDefaultG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E130 setDefaultG0Charset: Bad g0 set");this._s.Qe(t,s)}setSecondG0Charset(t,s){if(null==t.match(/g0_/))throw Error("E136 setSecondG0Charset: Bad g0 set");this._s.ye(t,s)}setG2Charset(t,s){if(null==t.match(/g2_/))throw Error("E142 setG2Charset: Bad g2 set");this._s.be(t,s)}remove(){if(this.he.Is(),this.Be){const t=document.querySelector(this.Be);t&&t.removeChild(t.firstChild)}this.he=null}setView(t){switch(this.remove(),t){case"classic__font-for-mosaic":this.he=new ot(this._s,this.ee);break;case"classic__graphic-for-mosaic":this.he=new rt(this._s,this.re.ne,this.ee);break;default:throw Error("setView E126: bad view name:"+t)}this.Ae&&this.he.ei(this.Ae),this.Be&&this.he.ut(this.Be),this._s.ie()}registerViewPlugin(t){t.registerWithView(this.he),this._s.ie()}enhance(){return new ht(this._s)}}class lt{constructor(t){this.pe=t,this.me=[]}ls(t){return this.me.push(t),this.me.length-1}ie(t){this.me.forEach((s=>null!=s&&s(this.pe,t)))}Is(t){this.me[t]=null}}class gt{constructor(){this.we=!1,this.Se=[]}get Ns(){return this.we}set Ns(t){this.we=t}xe(t){this.Se.push(t)}ws(t){if(t>=this.Se.length)throw Error("RowModel.getCell E20 bad cell index");return this.Se[t]}}const At=[M[1.5],M[2.5]],_t=new class{constructor(){this.Ue=[];for(let t=0;t<25;t++){const t=[];for(let s=0;s<40;s++)t.push(new it);this.Ue.push(t)}this.ve="g0_latin",this.ke=null,this.Re="g2_latin",this.Fe=D.charFromAttribute(D.START_BOX),this.Le=M[1],this.De=[],this.As=new lt(this)}ie(){this.As.ie()}ue(t,s){if(t>=25)throw Error("PageModel E29 bad row number");this.Ge(t,s),this.As.ie()}Ie(t){(t=t.slice(0,25)).forEach(((t,s)=>{this.Ge(s,t)})),this.As.ie()}Ge(t,s){let i=[...s];if(i=i.slice(0,40),i.forEach(((s,i)=>{const e=s.charCodeAt(0);if(Number.isNaN(e)||e>127)throw Error(`PageModel E51 failed to write row: bad character code (${e}) at row ${t} col ${i}`);this.Ue[t][i].Ni=s})),i.length<40)for(let s=i.length;s<40;s++)this.Ue[t][s].Ni=" "}Ee(t){this.Le=t,this.As.ie()}de(t){if(void 0===t||t){const t=[];for(let s=0;s<25;s++)t.push("");this.Ie(t)}else for(let t=0;t<25;t++)this.Ge(t,"")}Qe(t,s){this.ve=t;const i=t.match(/^g0_([a-z]+)/);if(null!=i){const t="g2_"+i[1];t in W?this.Re=t:"hebrew"==i[1]&&(this.Re="g2_arabic")}s&&this.As.ie()}ye(t,s){this.ke=t,s&&this.As.ie()}be(t,s){this.Re=t,s&&this.As.ie()}Qs(t){if(t>=25)throw Error("PageModel.getRow E42 bad rowNum");const s=new gt;let i,e,n=U.Mt,r=x.WHITE,h=!1,o=N.Jt,a=!1,c=!1,l=!1,g=!1,A=x.BLACK,_=U.qt,u={ji:!1,Vs:" ",ks:U.qt},C=[];return At.includes(this.Le)&&(C=this.De.filter((s=>s.te==t))),this.Ue[t].forEach(((E,I)=>{const f=E.Ni,B=((t,s)=>{let i=null,e=null;return s in G&&q[this.Le].includes(s.charCodeAt(0))?s in F?(i=D.TEXT_COLOUR,e=G[s]):s in j?(i=D.MOSAIC_COLOUR,e=G[s]):i=G[s]:s.charCodeAt(0)<=31&&(i=D.Zt),{Ne:i,Oe:e}})(0,f);switch(i=r,E.ks=n,E.Fs=g,e=a,B.Ne!=D.STEADY&&(E.Gs=h),B.Ne!=D.NORMAL_SIZE&&(E.ft=o),B.Ne!=D.CONCEAL&&(E.Ys=c),l&&(B.Ne!=D.HOLD_MOSAICS&&(u.ji=!1,u.Vs=" "),l=!1),B.Ne){case D.TEXT_COLOUR:n=U.Mt,r=B.Oe,c=!1,E.Hi(u);break;case D.MOSAIC_COLOUR:n=_,r=B.Oe,c=!1,E.Hi(u);break;case D.NEW_BACKGROUND:A=i,E.Hi(u);break;case D.BLACK_BACKGROUND:A=x.BLACK,E.Hi(u);break;case D.CONTIGUOUS_GRAPHICS:_=U.qt,E.ks==U.Tt&&(E.ks=U.qt),n==U.Tt&&(n=U.qt),E.Hi(u);break;case D.SEPARATED_GRAPHICS:_=U.Tt,E.ks==U.qt&&(E.ks=U.Tt),n==U.qt&&(n=U.Tt),E.Hi(u);break;case D.ESC:this.ke&&(a=!e),E.Hi(u);break;case D.FLASH:h=!0,E.Hi(u);break;case D.STEADY:E.Gs=!1,h=!1,E.Hi(u);break;case D.NORMAL_SIZE:E.ft=N.Jt,o=N.Jt,E.Hi(u);break;case D.DOUBLE_HEIGHT:o=N.Vt,s.Ns=!0,E.Hi(u);break;case D.DOUBLE_WIDTH:o=N.Yt,E.Hi(u);break;case D.DOUBLE_SIZE:o=N.Kt,s.Ns=!0,E.Hi(u);break;case D.CONCEAL:E.Ys=!0,c=!0,E.Hi(u);break;case D.HOLD_MOSAICS:u.ji=!0,E.Hi(u);break;case D.RELEASE_MOSAICS:l=!0,E.Hi(u);break;case D.START_BOX:I>=1&&this.Ue[t][I-1].Ni==this.Fe&&(E.Fs=!0,g=!0),E.Hi(u);break;case D.END_BOX:g=!1,E.Hi(u);break;case D.Zt:E.Hi(u);break;default:E.Oi(e?this.ke:this.ve),E.Pi()&&(u.Vs=f,u.ks=E.ks)}E.Us=i,E.Ss=A,C.filter((t=>t.$i==I)).forEach((t=>{const s=new et(E);E=s,"g0"==t.ks?(E.Ni=t.Vs,E.Mi=t.Mi,E.ks=U.Mt,E.Oi(e?this.ke:this.ve)):"g1"==t.ks?this.Le==M[2.5]&&(E.Ni=t.Vs,E.ks=_,E.Oi()):"g2"==t.ks?(E.Ni=t.Vs,E.ks=U.Mt,E.Oi(this.Re)):"g3"==t.ks?(this.Le!=M[1.5]||-1!="Q[\\]".indexOf(t.Vs))&&(E.Ni=t.Vs,E.ks=U.zt,E.Oi()):"char"==t.ks&&(E.qi=t.Vs,E.ks=U.Mt)})),s.xe(E)})),s}se(t){this.De=t}fe(){this.De=[]}};class ut{constructor(t){this.je="string"==typeof t?t:"./",this.Pe=null,this.He=null}async fetchPage(t){const s=t.match(/^([1-8])[0-9A-Fa-f]{2}$/);if(null==s)return null;const i=s[1];if(t=t.toUpperCase(),this.Pe!=i){const t=`${this.je}${i}.json`;try{const s=await fetch(t);if(s.ok){const t=await s.json();"pages"in t&&(this.He=t,this.Pe=i)}}catch(t){}}return this.Pe==i&&t in this.He.pages?this.He.pages[t]:null}}const Ct=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Et=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];class It{constructor(t){this.Me=t}qe(){const t=new Date;return{"%%a":Ct[t.getDay()],"%%b":Et[t.getMonth()],"%d":(t.getDate()+"").padStart(2,0),"%e":(t.getDate()+"").padStart(2," "),"%m":(t.getMonth()+1+"").padStart(2," "),"%y":(t.getFullYear()+"").substring(2,2),"%H":(t.getHours()+"").padStart(2,0),"%M":(t.getMinutes()+"").padStart(2,0),"%S":(t.getSeconds()+"").padStart(2,0)}}Te(t){const s=this.qe();let i=this.Me;for(const t of Object.keys(s))i=i.replace(t,s[t]);return void 0!==t&&(i=i.replace("%%#",t)),i}}class ft{constructor(t){if("object"!=typeof t)throw Error("E8 Service.constructor: options object required");if(!("DOMSelector"in t))throw Error("E9 Service.constructor DOMSelector property required");this.Ve="caster"in t?t.caster:null,this.Xe="defaultG0Charset"in t?t.defaultG0Charset:"g0_latin",this.ze=new It("header"in t?t.header:" %%# %%a %e %%b C%H:%M/%S"),this.Je="fetcher"in t?t.fetcher:new ut(t.baseURL),this.Ye=new ct(_t,void 0),this.Ye.setDefaultG0Charset(this.Xe),this.Ye.setLevel(M[1.5]),this.Ye.addTo(t.DOMSelector),this.$e=null,this.Ke=null,this.Ze=0,this.We=null}get teletextInstance(){return this.Ye}async showPage(t){if("number"==typeof t&&(t+=""),null==t.match(/^[1-8][0-9A-Fa-f]{2}$/))return null;const s=await this.Je.fetchPage(t);if(null!=s){const i=this.tn(s);if(null!=i)return this.$e=s,this.Ke=t,this.Ze=i,this.sn(),this.en()}return null}showLink(t){return null!=this.We&&t in this.We?this.showPage(this.We[t]):Promise.resolve(null)}tn(t){const s=t.subpages;for(let t=0;t<s.length;t++)if(null!=s[t])return t;return null}nextSubPage(){const t=this.$e.subpages;let s=this.Ze,i=!1;for(;!i&&(s++,s==t.length&&(s=0),s!=this.Ze);)null!=t[s]&&(i=!0);return i&&(this.Ze=s,this.sn()),this.en()}previousSubPage(){const t=this.$e.subpages;let s=this.Ze,i=!1;for(;!i&&(s--,-1==s&&(s=t.length-1),s!=this.Ze);)null!=t[s]&&(i=!0);return i&&(this.Ze=s,this.sn()),this.en()}en(){return{pageNumber:this.Ke,subPage:this.Ze,numSubPages:this.$e.subpages.filter((t=>null!=t)).length,fastext:this.We,webUrl:"webUrl"in this.$e?this.$e.webUrl:null}}sn(){const t=this.$e.subpages[this.Ze],s="encoding"in t?t.encoding:this.Xe,i=this.ze.Te(this.Ke);let e={defaultG0Charset:s,header:i};if(this.Ye.clearScreen(!1),this.Ye.setDefaultG0Charset(s,!1),"outputLines"in t){const s=t.outputLines.split("\n");this.Ye.setPageFromOutputLines(s,i),e.outputLines=s}else if("packed"in t){const s=t.packed;this.Ye.loadPageFromEncodedString(s,i),e.packed=s}else e=null;e&&this.Ve&&this.Ve.display(e),this.We="fastext"in t?t.fastext:null}}class Bt{constructor(t){this.t=t,this.i=[]}attach(t){this.i.push(t)}notify(t){this.i.forEach(((s,i)=>this.i[i](this.t,t)))}}const Qt=new class{constructor(){this.available=new Bt(this),this.castStateChanged=new Bt(this)}o(){if("undefined"==typeof cast)return;const t={receiverApplicationId:"000F65B3",autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED};this.h=cast.framework.CastContext.getInstance(),this.h.setOptions(t),this.l=new cast.framework.RemotePlayer,this.u=new cast.framework.RemotePlayerController(this.l),this.h.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,(()=>this.castStateChanged.notify())),this.available.notify(),this.castStateChanged.notify()}async display(t){if(!this.m())return;const s=this.g();this.u.stop();const i=new chrome.cast.media.MediaInfo("https://teletextforchromecast.tech-and-software.ltd.uk/250-milliseconds-of-silence.mp3","audio/mpeg3");i.entity=t;const e=new chrome.cast.media.LoadRequest(i);try{await s.loadMedia(e)}catch(t){}}getCastState(){return this.h.getCastState()}clearScreen(){this.p("clear")}toggleGrid(){this.p("grid")}toggleReveal(){this.p("reveal")}toggleMixMode(){this.p("mix")}toggleBoxMode(){this.p("box")}setSmoothMosaics(){this.p("smoothmosaic")}setBlockMosaics(){this.p("blockmosaic")}async p(t){if(!this.m())return;const s=this.g();try{await s.sendMessage("urn:x-cast:uk.ltd.techandsoftware.teletext",`"${t}"`)}catch(t){}}m(){return"object"==typeof this.l&&this.l.isConnected}g(){return this.h.getCurrentSession()}};let dt=0;function bt(){window.setTimeout((()=>{"undefined"==typeof cast?(dt++,dt<10&&bt()):Qt.o()}),500)}window.__onGCastApiAvailable=t=>{t&&("undefined"==typeof cast?bt():Qt.o())};const yt=["sans-serif","Bedstead","native","serif","Unscii","monospace","cursive"],mt=["classic__graphic-for-mosaic","classic__font-for-mosaic"];class pt{constructor(t){const s={defaultG0Charset:"g0_latin__english",header:"FAXFAX %%# %%a %e %%b C%H:%M/%S",caster:Qt,DOMSelector:"#teletextscreen"};let i="",e=!1;if(this.nn=yt,"object"==typeof t){for(const i of["defaultG0Charset","header","DOMSelector","baseURL"])i in t&&(s[i]=t[i]);"frontPage"in t&&("number"==typeof t.frontPage?i=t.frontPage+"":"string"==typeof t.frontPage&&(i=t.frontPage)),"smoothMosaics"in t&&t.smoothMosaics&&(e=!0),Array.isArray(t.fontList)&&(this.nn=t.fontList)}""==i&&(i="100"),this.rn=new ft(s),this.Ke=3==i.length?i:"XXX",this.hn=0,this.on=0,Qt.available.attach((()=>this.an.call(this))),Qt.castStateChanged.attach((()=>this.cn.call(this))),this.ln(),this.rn.teletextInstance.setFont(this.nn[0]),e&&this.gn(),this.An()}cn(){const t=Qt.getCastState(),s=document.querySelector("#castOuter");switch(t){case"NO_DEVICES_AVAILABLE":s.title="Cast to Chromecast - no devices available",s.style.cursor="default";break;case"NOT_CONNECTED":s.title="Cast to Chromecast",s.style.cursor="pointer";break;case"CONNECTING":break;case"CONNECTED":this.An(),this._n&&Qt.setSmoothMosaics()}}an(){document.querySelector("#castOuter").style.display="inline-block"}ln(){window.addEventListener("keydown",(t=>wt.call(this,t))),window.addEventListener("DOMContentLoaded",(()=>{document.querySelector("#revealButton").addEventListener("click",(()=>this.un())),document.querySelector("#mixButton").addEventListener("click",(()=>this.Cn()));for(const t of["red","green","yellow","blue","index"])document.querySelector("#"+t).addEventListener("click",(()=>this.En(t)));document.querySelectorAll("[data-num]").forEach((t=>t.addEventListener("click",(()=>this.In(t.dataset.num))))),document.querySelector("#left").addEventListener("click",(()=>this.fn())),document.querySelector("#right").addEventListener("click",(()=>this.Bn())),document.querySelector("#helpicon").addEventListener("click",(()=>this.Qn()))}))}un(){window.dispatchEvent(new Event("ttx.reveal")),Qt.toggleReveal()}Cn(){window.dispatchEvent(new Event("ttx.mix")),Qt.toggleMixMode()}In(t){this.Ke=3==(this.Ke+"").length?t:this.Ke+""+t,this.dn(),3==(this.Ke+"").length&&this.An()}dn(){document.querySelector("#pageNumber").innerHTML=this.Ke}bn(){this.Ke="XXX",document.querySelector("#pageNumber").innerHTML="- - -",document.querySelector("#subpage").style.visibility="hidden"}async An(){if(null!=this.Ke.match(/[1-8][0-9A-Fa-f]{2}/)){const t=await this.rn.showPage(this.Ke);this.sn(t)}}Bn(){const t=this.rn.nextSubPage();this.sn(t)}fn(){const t=this.rn.previousSubPage();this.sn(t)}sn(t){null!=t&&(this.Ke=t.pageNumber,this.dn(),this.yn(t),this.mn(t),this.pn(t.webUrl),this.wn())}wn(){document.activeElement.disabled&&document.activeElement.blur()}yn(t){const s=document.querySelector("#subpage");null!=t&&t.numSubPages>1?(s.innerHTML=`${t.subPage} of ${t.numSubPages}`,s.style.visibility="visible",document.querySelectorAll("#lrnav button").forEach((t=>t.disabled=!1))):(s.style.visibility="hidden",document.querySelectorAll("#lrnav button").forEach((t=>t.disabled=!0)))}mn(t){const s=null!=t?t.fastext:{};for(const t of["red","green","yellow","blue","index"]){let i=!0;null!=s&&t in s&&(i=!1),document.querySelector("#"+t).disabled=i}}pn(t){const s=document.querySelector("#webicon");null==t?(s.style.display="none",s.href=""):(s.href=t,s.style.display="")}async En(t){const s=await this.rn.showLink(t);this.sn(s)}Sn(){for(const t of["red","green","yellow","blue","index","left","right"])document.querySelector("#"+t).disabled=!0}Qn(){this.bn(),this.Sn();const t=this.rn.teletextInstance;t.setDefaultG0Charset("g0_latin__english",!1),t.loadPageFromEncodedString("OoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA6RQIECBAgQYOHDhw4cOHDhw4cOHDhw4cOHBAgQIECBAgQIDo0igQIECBBqAy8vnFvw8siDHv3dOW_ZzI_2qBAgQIECBAgQIECBAgQIEHdAgQIECBAgQIECDjz9IECBAgQIECBAgQIECA6RQIECBAgQIl69evXr169evXr169evXr169KgQIECBAgQIDqBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOhECCTmQed_VBow9sqDCg15fOLfh5ZFiDrzyoOmjKgQIECA6EQIN3Xbiy8kGvL55oMO7Ig6aMqDXl880GLLs390CBAgQIDoFAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOlNSNGjRo0aNGjRo0aNGjRo0aNGjRo0aNGjRo0aNGjR_2iA6U1BECBA_QIECCll7ZcOxAgQIECBAgQIECBAUQIECBB_aoDpTUEQIEG1AgQIJunwgQIECBAgQIECBAgQIEBRAgQIEH9qgOlNQRAgQW0CBAgocsvbTv680HPri4Yc-VAgQFECBAgQf2qA6U1BECBBdQIECCdl8dEHPri4Yc-VAgQIECAogQIECBB_aoDpTUE5L86_yvxIIe_Zv68kGLr06b93NAgQIEBRAgQIEH9qgOlNQRAgQaUCBAgk7smXwgxdenTfuQIECBAgQFECBAgQf2qA6U1BECBB0QIECCpl5ctObTjQZ-WHho04-aDfuX782Yp_aoDpTUEQIEGZAgQII2_d0Qc--npj0IECBAgQIEBRAgQIEH9qgOlNQRAgQekCBAgtZdyDbvyZUG_cv35syBAgQFECBAgQf2qA6U1IECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBB_aoDpREvXr169evXr169evXr169evXr169evXr169evXr169KgOoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA6gQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIDqBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgOoECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECBAgQIECA")}vn(){const t=Math.floor(360*Math.random()),s=Math.floor(360*Math.random());document.body.style.background=`linear-gradient(${s}deg, hsl(${t} 100% 7%) 0%, hsl(${t} 83% 52%) 86%, hsl(${t} 100% 85%) 100%)`}async gn(){if(this._n)this.rn.teletextInstance.setView(mt[this.on]),this._n=!1,Qt.setBlockMosaics();else if(0==this.on)try{const t=await import("https://cdn.jsdelivr.net/npm/@techandsoftware/teletext-plugin-smooth-mosaic@latest/dist/teletext-plugin-smooth-mosaic.min.js");this.rn.teletextInstance.registerViewPlugin(t.SmoothMosaicPlugin),this._n=!0,Qt.setSmoothMosaics()}catch(t){}}kn(){document.body.classList.toggle("zen")}get teletextInstance(){return this.rn.teletextInstance}}function wt(t){if(!(t.altKey||t.metaKey||t.ctrlKey))switch(t.key){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"0":document.querySelector("#b"+t.key).focus({preventScroll:!0}),this.In(t.key);break;case"?":this.un();break;case"m":this.Cn();break;case"f":this.hn++,this.hn==this.nn.length&&(this.hn=0),this.rn.teletextInstance.setFont(this.nn[this.hn]);break;case"w":this.rn.teletextInstance.clearScreen();break;case"h":this.Qn();break;case"v":this.on++,this.on==mt.length&&(this.on=0),this.rn.teletextInstance.setView(mt[this.on]),this._n=!1;break;case"t":this.gn();break;case"r":this.En("red");break;case"g":this.En("green");break;case"y":this.En("yellow");break;case"b":this.En("blue");break;case"i":this.En("index");break;case"=":case"+":case">":case"ArrowRight":this.Bn();break;case"-":case"<":case"ArrowLeft":this.fn();break;case"c":this.vn();break;case"z":this.kn()}}export{ft as TeletextService,pt as TeletextServiceViewer};//# sourceMappingURL=teletext-service.min.js.map

@@ -159,3 +159,4 @@ <!-- SPDX-FileCopyrightText: © 2021 Tech and Software Ltd. -->

* `numSubPages`: number - how many subpages in total for the page
* `fastext`: object - if the current page has fastext (coloured) links, the object will have corresponding properties. The property names are `red`, `green`, `yellow`, `blue` and `index`. The values for each are the linked page numbers.
* `fastext`: object - if the current page has fastext (coloured) links, the object will have corresponding properties. The property names are `red`, `green`, `yellow`, `blue` and `index`. The values for each are the linked page numbers
* `webUrl`: string - the `webUrl` property from the current page JSON if any. It's not part of teletext, but could be used to link to the original content source if there is one

@@ -196,3 +197,4 @@ ## service.nextSubPage()

smoothMosaics?: boolean,
baseURL?: string
baseURL?: string,
fontList? : array
}

@@ -206,3 +208,4 @@ ```

* `smoothMosaics` - if true will use a pixel-art scaling algorithm to generate smoother mosaic graphics when the service starts. Default is false
* `baseURL` - pass in a URL to use as the base URL for getting JSON content. The default base URL is the current directory of the URL running the javascript code. The URL should include a trailing `/`
* `baseURL` - URL to use as the base URL for getting JSON content. The default base URL is the current directory of the URL running the javascript code. The URL should include a trailing `/`
* `fontList` - an array of CSS font families. The teletext screen will used the first one automatically. The others are selected if 'f' is pressed. If not specified the default list is used - see FONTS in `ServiceView.js` in the repo

@@ -270,3 +273,4 @@ # Default page data source

Has one key:
Has up to two keys:
* `webUrl` key is optional. A URL corresponding to the page. The `TeletextServiceViewer` uses this in the UI to link to
* `subpages` key is required. Its value is an array of 1 or more `subpage` objects. Any of the subpages can be `null`

@@ -273,0 +277,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc